Python文本文档关键词统计个数

新建一个txt文档,在里面输入一些关键词,关键词之间用一些特殊符号分开,使用字符串的一些函数实现将该文档的内容进行关键词分类并统计每个关键词的个数,将分类的关键词的个数写入另一个txt文档。

由于缺乏具体数据,你参考一下下面实现方案:

import jieba

file = open("sample.txt", "r", encoding='utf-8') #此处需打开txt格式且编码为UTF-8的文本
txt = file.read()
words = jieba.lcut(txt)      # 使用jieba进行分词,将文本分成词语列表

count = {}
for word in words:            #  使用 for 循环遍历每个词语并统计个数
    if len(word) < 2:          # 排除单个字的干扰,使得输出结果为词语
        continue
    else:
        count[word] = count.get(word, 0) + 1    #如果字典里键为 word 的值存在,则返回键的值并加一,如果不存在键word,则返回0再加上1
        
exclude = ["可以", "一起", "这样"]  # 建立无关词语列表
for key in list(count.keys()):     # 遍历字典的所有键,即所有word
    if key in exclude:
        del count[key]                  #  删除字典中键为无关词语的键值对
        
list = list(count.items())         # 将字典的所有键值对转化为列表
list.sort(key=lambda x: x[1], reverse=True)     # 对列表按照词频从大到小的顺序排序

for i in range(5):  #   此处统计排名前五的单词,所以range(5)
    word, number = list[i]
    print("关键字:{:-<10}频次:{:+>8}".format(word, number))



纯字符串操作,使用split,replace及count方法来做,假如文本t0316.txt的内容如下:

text#test#测试#文本,文本#测试#操作#test。

操作代码:

with open('t0316.txt','r',encoding='utf-8') as f:
    data = f.read()
for x in ['#',',','。']:
    data=data.replace(x,' ')
for x in set(data.split()):
    print(x,data.count(x))

运行结果:

F:\2022\pythontest>t7
text 1
操作 1
测试 2
test 2
文本 2

如对你有帮助,请点击采纳该答案按钮。