查找词典中频率最高的词

本文仅为作者自学之用,系统为macOS,不保证信息准确。

使用gensim对一系列文章做处理,从分词结果制作词典。但是文章由于不是随机抓取,可能有聚类,导致某些词语以不恰当的频率出现过多次。又不敢直接过滤掉频率超过50%的词,那该怎么做呢?
经过一番查找并没有发现gensim的corpora库中有直接显示词频最高词的功能,于是只能自己利用它提供的方法来做了,代码如下:

from gensim import corpora

dictionary = corpora.Dictionary.load('/dir/to/your.dict')
# print(dictionary.dfs)  
# print(type(dictionary.dfs))
result = sorted(dictionary.dfs.items(), key=lambda d: d[1])
result.reverse()
# print(dictionary)
biao = dictionary.token2id
biao_new = {v : k for k, v in biao.items()}
for x in range(20):
    print(biao_new[result[x][0]] + ":  " + str(result[x][1]))

其中,使用

biao = dictionary.token2id
biao_new = {v : k for k, v in biao.items()}

方法的原因是,不知为何,id2token在我这里返回的是一个空dict格式的文件。所以只有使用token2id后翻转词典了。
这样的话,显示的结果就大致如图所示

结果

从图中可以看书,前几个词明显属于对文章内容造成污染的词汇,应该加以限制或去除。去除的方式就是加进jieba分词的停用词文件,那么分词的结果中便不会再有该词汇出现了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容