words 已经得道到了,用一个 word_dict 当作 map 统计回频度就可以了:text = raw_input(&答quot;Enter a sentence:")words = text.split()word_dict = {}for w in words:    if w not in word_dict:        word_dict[w] = 1    else:        word_dict[w] = word_dict[w] + 1print word_dict

text = raw_input("enter a sentence:")words = text.split()wordscount = [words.count(elem) for elem in words]worddict={map(None,words,wordscount)}要完成你的目标:我要计算每个词语出现的7a686964616fe78988e69d8331333236376464次数,把词语出现的次数和词语列表组合成字典;伪代码出来了,程序也就有了....python有着强大的列表解析,内建模块使用C完成,他们很快,所以能够调用内建模块你就不要自己多事。尽量按照伪代码去完成程序,除非必须细化,否则让python为你操作低层吧,他很聪明第三句释义:对于列表元素计数有很简单的list.count()方法。这个语句就是利用了这个,statement for element in list fileter expression这是list的解析式。通过这个你可以方便的将一个list解析为另一个。这一句就对list中所有的元素运用count()方法,并且建立新的list。另外一个例子:a=[2,3,4,7,8]找到这个list中的偶数,并得到它们的平方列表这样写:[elem*elem for elem in a if elem%2==0] 第四句释义:list有个map方法,它可以提供list的映射。map(statement,list1,list2)就是将list1,list2按照statement规则映射。我的表达式是none所以得到的结果就是简单的[('this', 3), ('is', 4), ('a', 1)]这样的二元tuple列表。dict函数则是针对上述list的。它能把上述list转化为字典。这在你做数据处理时很有好处,你可以很轻松的建立一个hash表。python的强大在于简明,遇到程序尝试着用最简单地方法去解决,你会很快喜欢上的。以上^乐于与您交流

以下是一种可能的计算e69da5e6ba90e79fa5e9819331333363363430方法。sentence='''by: William Shakespeare From fairest creatures we desire increase,That thereby beauty's rose might never die,But as the riper should by time decease,His tender heir might bear his memory;But thou, contracted to thine own bright eyes,Feed'st thy light's flame with self-substantial fuel,Making a famine where abundance lies,Thyself thy foe, to thy sweet self too cruel.Thout that are now the world's fresh ornamentAnd only herald to the gaudy spring,Within thine own bud buriest thy contentAnd, tender churl, mak'st waste in niggarding.Pity the world, or else this glutton be,To eat the world's due, by the grave and thee.'''words=sentence.split()from string import punctuationwords=[w.strip() for w in words]for p in punctuation:    words=[w.strip(p) for w in words]diff_words=set(words)stat={}for w in diff_words:    stat[w]=words.count(w)print(stat) 本回答被提问者采纳

def get_words(sentence):return sentence.split(" ")def get_word(word):if word.isalpha():return wordelse:return word[:-1]if __name__ == "__main__":test = "this is a test, thanks!zd this is another test, thanks!"test_words = get_words(test)test_words_clear = list()for word in test_words:test_words_clear.append(get_word(word))result = dict()for word in test_words_clear:if result.get(word, None) is None:result[word] = 1else:result[word] += 1print(result) 本回答由网友推荐

众所周知,英文是以词为单位的,词和词之间是靠空格隔开,而中文是以字为单位,句子中所有的字连起来才能描述一个意思。例如,英文句子I am a student,用中文则为:“我是一个学生”。计算机可以很简单通过空格知道student是一个单词,但是不能很容易明白“学”、“生”两个字合起来才表示一个词。把中文的汉字序列切分成有意义的词,就是中文分词,有些人也称为切词。我是一个学生,分词的结果是:我 是 一个 学生。 中文分词技术属于自然语言处理技术范畴,对于一句话,人可以通过自己的知识来明白哪些是词,哪些不是词,但如何让计算机也能理解?其处理过程就是分词算法。现有的分词算法可分为三大类:基于字符串匹配的分词方法、基于理解的分词方法和基于统计的分词方法。1、基于字符串匹配的分词方法这种方法又叫做机械分词方法,它是按照一定的策略将待分析的汉字串与一个“充分大的”机器词典中的词条进行配,若在词典中找到某个字符串,则匹配成功(识别出一个词)。按照扫描方向的不同,串匹配分词方法可以分为正向匹配和逆向匹配;按照不同长度优先匹配的情况,可以分为最大(最长)匹配和最小(最短)匹配;按照是否与词性标注过程相结合,又可以分为单纯分词方法和分词与标注相结合的一体化方法。常用的几种机械分词方法如下:1)正向最大匹配法(由左到右的方向);2)逆向最大匹配法(由右到左的方向);3)最少切分(使每一句中切出的词数最小)。还可以将上述各种方法相互组合,例如,可以将正向最大匹配方法和逆向最大匹配方法结合起来构成双向匹配法。由于汉语单字成词的特点,正向最小匹配和逆向最小匹配一般很少使用。一般说来,逆向匹配的切分精度略高于正向匹配,遇到的歧义现象也较少。统计结果表明,单纯使用正向最大匹配的错误率为1/169,单纯使用逆向最大匹配的错误率为1/245。但这种精度还远远不能满足实际的需要。实际使用的分词系统,都是把机械分词作为一种初分手段,还需通过利用各种其它的语言信息来进一步提高切分的准确率。一种方法是改进扫描方式,称为特征扫描或标志切分,优先在待分析字符串中识别和切分出一些带有明显特征的词,以这些词作为断点,可将原字符串分为较小的串再来进机械分词,从而减少匹配的错误率。另一种方法是将分词和词类标注结合起来,利用丰富的词类信息对分词决策提供帮助,并且在标注过程中又反过来对分词结果进行检验、调整,从而极大地提高切分的准确率。对于机械分词方法,可以建立一个一般的模型,在这方面有专业的学术论文,这里不做详细论述。2、基于理解的分词方法这种分词方法是通过让计算机模拟人对句子的理解,达到识别词的效果。其基本思想就是在分词的同时进行句法、语义分析,利用句法信息和语义信息来处理歧义现象。它通常包括三个部分:分e799bee5baa6e79fa5e9819331333365646365词子系统、句法语义子系统、总控部分。在总控部分的协调下,分词子系统可以获得有关词、句子等的句法和语义信息来对分词歧义进行判断,即它模拟了人对句子的理解过程。这种分词方法需要使用大量的语言知识和信息。由于汉语语言知识的笼统、复杂性,难以将各种语言信息组织成机器可直接读取的形式,因此目前基于理解的分词系统还处在试验阶段。3、基于统计的分词方法从形式上看,词是稳定的字的组合,因此在上下文中,相邻的字同时出现的次数越多,就越有可能构成一个词。因此字与字相邻共现的频率或概率能够较好的反映成词的可信度。可以对语料中相邻共现的各个字的组合的频度进行统计,计算它们的互现信息。定义两个字的互现信息,计算两个汉字X、Y的相邻共现概率。互现信息体现了汉字之间结合关系的紧密程度。当紧密程度高于某一个阈值时,便可认为此字组可能构成了一个词。这种方法只需对语料中的字组频度进行统计,不需要切分词典,因而又叫做无词典分词法或统计取词方法。但这种方法也有一定的局限性,会经常抽出一些共现频度高、但并不是词的常用字组,例如“这一”、“之一”、“有的”、“我的”、“许多的”等,并且对常用词的识别精度差,时空开销大。实际应用的统计分词系统都要使用一部基本的分词词典(常用词词典)进行串匹配分词,同时使用统计方法识别一些新的词,即将串频统计和串匹配结合起来,既发挥匹配分词切分速度快、效率高的特点,又利用了无词典分词结合上下文识别生词、自动消除歧义的优点。到底哪种分词算法的准确度更高,目前并无定论。对于任何一个成熟的分词系统来说,不可能单独依靠某一种算法来实现,都需要综合不同的算法。笔者了解,海量科技的分词算法就采用“复方分词法”,所谓复方,相当于用中药中的复方概念,即用不同的药才综合起来去医治疾病,同样,对于中文词的识别,需要多种算法来处理不同的问题。

第一抄题袭:百度import reimport stringinText = raw_input('Please enter a string of text (the bigger the better): ')outText = inText.lower()outText = re.sub(r"[^知a-z]","", outText)count, letter = [], []for l in string.ascii_lowercase:    n = outText.count(l)    if n !道= 0:        count.append(n)        letter.append(l)map = sorted(zip(count, letter), key=lambda x:(x[0]), reverse=True)print 'The distribution of characters in "' + inText + '" is:'for c in map:    print c[1] * c[0] 更多追问追答 追问 求教剩下两题会追加分数 追答 自己动手学习最好。第二题inText = raw_input('Please enter a string of text (the bigger the better): ')print 'The distribution of characters in "' + inText + '" is:'outText1 = "";for l in inText[::-1]:    outText1 += l;print outText1outText2 = "";for l in inText.split(" ")[::-1]:    if outText2 == "":        outText2 = l;    else:        outText2 += " " + l;print outText2outText3 = "";for l in inText.split(" "):    if outText3 == "":        outText3 = l[::-1];    else:        outText3 += " " + l[::-1];print outText3 追问 改了一下应该没问题吧 本回答被提问者和网友采纳

(你确定是单词不是字母?)1.(python可以用中文变量,看不顺眼就换成英文)百句子 = "This is a sentence"    #可以写别的字典 = {}句子拆成的单词度列表问 = 句子.split()for 单词 in 句子拆成的单词列表: 答if 单词 in 字典.keys(): 字典[单词] += 1 else: 字典[单词] = 0for 单词,次数 in 字典.items(): print('%-20s:'%单词,次数)2.素数表 = [2]上限 = 100print(2)for 数 in range(3,上限+1): 这个数还可能是素数 = True for 素数 in 素数表: if 数 % 素数 != 0: continue else: 这个数还可能是素数 = False if 这个数还可能是素数: print(数) 素数表.append(数)print()print(素数表)