import jieba
file = open("sample.txt", "r", encoding='utf-8')
txt = file.read()
words = jieba.lcut(txt)
count = {}
for word in words:
if len(word) < 2:
continue
else:
count[word] = count.get(word, 0) + 1
exclude = ["可以", "一起", "这样"]
for key in list(count.keys()):
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):
word, number = list[i]
print("关键字:{:-<10}频次:{:+>8}".format(word, number))
思路:1.通过jieba库分词获取所有的词语列表;2.计算列表里出现词语及其对应的频次,存储为字典;3.删除字典中键为无关且频次高的词语的键值对;4.对字典里的词语按照频次进行排序;5.输出频次前五的词语及其频次;如果没有安装 jieba 库,需要使用 cmd 进入命令提示符窗口,通过 pip install jieba 进行安装。源代码如下import jiebafile...
with open("D:/hdfs/novels/天龙八部.txt", encoding="gb18030") as f:
text = f.read()
with open('D:/hdfs/novels/names.txt', encoding="utf-8") as f:
for line in f:
一篇文章如何可以快速锁定核心内容,可以初步用文章中出现频次最高的词语作为文章的核心。那有什么办法快速展示呢?
下面就以一篇AI人工智能的文章作为测试文件,测试结果如图:
1、想要实现该效果,首先需要先安装好python,然后还需要在自己的电脑安装以下几个插件:
pip install re # 正则表达式库
pip install collections # 词频统计库
pip install numpy # numpy数据处理库
pip install jieba # 结巴分词
pip instal
可以使用Python中的collections模块中的Counter类来统计多个文本的词频。具体步骤如下:
1. 首先,将多个文本读入内存,可以使用Python中的open函数打开文件,使用read方法读取文件内容,然后将文本内容存储到一个列表中。
2. 接下来,将列表中的文本内容合并成一个长文本字符串。
3. 然后,使用Python中的re模块中的sub函数去除文本中的非字母字符和数字,只留下英文单词。
4. 将文本字符串按照空格分割成单词列表。
5. 使用Counter类统计单词出现的频率。
代码示例:
```python
import collections
import re
# 读取多个文本文件
file_names = ['file1.txt', 'file2.txt', 'file3.txt']
texts = []
for file_name in file_names:
with open(file_name, 'r') as f:
text = f.read()
texts.append(text)
# 合并文本
all_text = ' '.join(texts)
# 去除非字母字符和数字
all_text = re.sub('[^a-zA-Z]', ' ', all_text)
# 将文本按照空格分割成单词列表
words = all_text.split()
# 统计单词出现频率
word_count = collections.Counter(words)
# 输出前10个出现频率最高的单词
for word, count in word_count.most_common(10):
print(word, count)