Python剑桥真题词频统计
最好还是要学以致用,自主搜集了19年最近的14份剑桥真题之后,通过Python提供的jieba第三方库,对所有的文章信息进行了词频统计,并选择性地剔除了部分简易词汇,比如数字,普通冠词等,博主较懒,未清楚干净。
Python代码如下:
import jieba # 以只读方式打开text(即真题库) text = open('text.txt', 'r', encoding = 'utf-8').read() # len(text) #统一为小写 text = text.lower() # 需要剔除的词汇列表,也可以用记事本的形式,添加一个打开记事本的语句即可 # 即 stwlist = [line.strip() for line in open 'stopwords.txt',encoding='utf-8').readlines()] # 这里使用列表 stwlist = ['the','a','of','to','end','in','you','is','that','for','on','it','as','your','...','14', 'this','or','20','40','27','30','13','21','26','10','15','22', '32','31','1','2','4','5','6','7','8','9','0','10','11','12','13', '12','13','15','16','17','25','33','35','36','18','23','19','24', '38','29','34','37','000','...............................'] # 先进行分词 words = jieba.cut(text, cut_all = False, HMM = True) #cut_all:是否采用全模式 #HMM:是否采用HMM模型 word_ = {} for word in words: if (word.strip() not in stwlist): if len(word) > 1: if word != '\t': if word != '\r\n': # 计算词频 if word in word_: word_[word] += 1 else: word_[word] = 1 # 将结果保存为元组 word_freq = [] for word, freq in word_.items(): word_freq.append((word, freq)) # 降序排列 word_freq.sort(key = lambda x:x[1], reverse = True) #输出前3500个词汇 for i in range(3500): word, freq = word_freq[i] print('{0:10}{1:5}'.format(word, freq))
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍tr命令在统计英文单词出现频率中的妙用,包括了tr命令在统计英文单词出现频率中的妙用的使用技巧和注意事项,需要的朋友参考一下 tr命令我们很清楚,可以删除替换,删除字符串。 在英文中我们要经常会经常统计英文中出现的频率,如果用常规的方法,用设定计算器一个个算比较费事,这个时候使用tr命令,将空格分割替换为换行符,再用tr命令删除掉有的单词后面的点号,逗号,感叹号。先看看要替换的thi
本文向大家介绍python jieba分词并统计词频后输出结果到Excel和txt文档方法,包括了python jieba分词并统计词频后输出结果到Excel和txt文档方法的使用技巧和注意事项,需要的朋友参考一下 前两天,班上同学写论文,需要将很多篇论文题目按照中文的习惯分词并统计每个词出现的频率。 让我帮她实现这个功能,我在网上查了之后发现jieba这个库还挺不错的。 运行环境: 安装pyth
问题内容: 我有一个包含以下文件的Lucene-Index: 因此,这5个文档使用14个不同的术语: 每学期的频率: 为了易于阅读: 我现在想知道的是,如何获得一组文档的术语频率向量? 例如: 将导致输出: 删除所有零: 注意,结果向量仅包含该文档集的术语频率。不是整个索引的整体频率!在整个索引中,“行星”一词出现了4次,但是文档的原始集只包含2次。 天真的实现方式是仅遍历集合中的所有文档 ,创建
本文向大家介绍Python实现统计英文单词个数及字符串分割代码,包括了Python实现统计英文单词个数及字符串分割代码的使用技巧和注意事项,需要的朋友参考一下 字符串分割 结果 统计英文单词的个数的python代码
问题内容: 我想在elasticsearch中更改评分系统,以摆脱对一个术语的多次出现计数的麻烦。例如,我想要: “德克萨斯州德克萨斯州” 和 “得克萨斯州” 得分相同。我发现elasticsearch表示该映射将禁用词频统计,但是我的搜索结果却不一样: } 任何帮助将不胜感激,我无法找到很多有关此的信息。 编辑: 我正在添加搜索代码,并在使用解释时返回了什么。 我的搜索代码: 当我搜索解释时,我
问题内容: 我有一个具有以下格式的.txt文件, 尽管显然它要大得多,但实际上是这样。基本上,我试图总结每个单独字符串在文件中的次数(每个字母/字符串在单独的一行上,因此从技术上讲文件是C \ nV \ nEH \ n等。但是,当我尝试将这些文件转换为列表,然后使用count函数时,它会分离出字母,以使诸如’IRQ’之类的字符串为[‘\ n’I’,’R’ ,’Q’,’\ n’],这样当我计算它时,