关于词频Python

Python一个文本文件 如何对其进行分词 去停 保留动词名词统计词频,以字典形式返回后按词频降序排列

可以用jieba模块,参考


python中文分词之jieba分词的使用_张海玲的博客-CSDN博客_python分词jieba 文章目录1.特点2.安装说明安装示例下载:安装:测试:3.算法4.主要功能(1)分词(2)添加自定义词典载入词典调整词典(3)关键词提取一、基于 TF-IDF 算法的关键词抽取二、基于 TextRank 算法的关键词抽取小应用:查看《西游记》这本书的人物关系。(4)词性标注(5)Tokenize:返回词语在原文的起止位置(6)命令行分词中文分词的工具有很多种,例如HanLP、jieba分词、Fu... https://blog.csdn.net/weixin_42014622/article/details/86475484

有好多分词的包,如jieba、nltk

import jieba.posseg as psg
with open('d:\\test.txt','r') as f:
    data=f.read()

seg = psg.cut(data)
dic = {s.word:s.flag for s in seg if s.flag.startswith('n') or s.flag.startswith('v')}
print('排序前的字典:\n',dic)

seg = psg.cut(data)  #cut()返回的是迭代器用完就清空,再用只能再cut()
words = [s.word for s in seg if s.flag.startswith('n') or s.flag.startswith('v')]

dic = {d:dic[d] for d in sorted(dic,key=lambda x:words.count(x))}
print('排序后的字典:\n',dic)

'''
排序前的字典:
 {'汽车': 'n', '': 'n', '词性': 'n', '进行': 'v', '区分': 'n', '动词': 'n', '比如': 'v', '名词': 'n', '房子': 'n', '植物': 'n', '提取': 'v', '': 'v'}
排序后的字典:
 {'': 'n', '词性': 'n', '进行': 'v', '区分': 'n', '比如': 'v', '房子': 'n', '植物': 'n', '': 'v', '名词': 'n', '提取': 'v', '汽车': 'n', '动词': 'n'}
'''

库jieba只能分中文词性,英文词性要用到nltk库

jieba,nltk库