鱼C论坛

 找回密码
 立即注册
查看: 1276|回复: 2

python统计关键字

[复制链接]
发表于 2021-12-7 19:38:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
文件sample.txt和程序是在一个文件的
Traceback (most recent call last):
  File "C:/Users/惠姣月/AppData/Roaming/JetBrains/PyCharmCE2021.2/scratches/实训.py", line 3, in <module>
    file = open("sample.txt", "r", encoding='utf-8')  # 此处需打开txt格式且编码为UTF-8的文本
FileNotFoundError: [Errno 2] No such file or directory: 'sample.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))

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-12-7 22:24:34 | 显示全部楼层
import jieba
import os

print(os.getcwd())
   # 加一下红色字看看实际脚本运行路径。然后截个图给我们看一下sample.txt所在位置。
file = open("sample.txt", "r", encoding='utf-8')  # 此处需打开txt格式且编码为UTF-8的文本
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-8 08:48:18 | 显示全部楼层
二楼正解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 17:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表