将word文本文件导入python,文件地址为C:\Users\Admin\Desktop\三国演义.docx,用jieba实现词频统计,输出前10个频率最高的词
时间: 2023-10-28 21:04:05 浏览: 93
用Python中的jieba对文章进行词频统计
首先需要安装python-docx库和jieba库,可以在命令行中输入以下命令安装:
```
pip install python-docx
pip install jieba
```
然后可以使用以下代码实现读取word文本文件并进行词频统计:
```python
import docx
import jieba
# 读取word文本文件
doc = docx.Document(r'C:\Users\Admin\Desktop\三国演义.docx')
# 初始化词频统计字典
word_freq = {}
# 遍历每个段落
for para in doc.paragraphs:
# 分词并统计词频
words = jieba.lcut(para.text)
for word in words:
if len(word) > 1:
word_freq[word] = word_freq.get(word, 0) + 1
# 输出前10个频率最高的词
top_words = sorted(word_freq.items(), key=lambda x: x[1], reverse=True)[:10]
for word, freq in top_words:
print(word, freq)
```
其中,使用python-docx库读取word文本文件,使用jieba库进行分词和词频统计。由于文本量较大,建议使用并行分词来提高效率,可以使用jieba的并行分词模式:
```python
import docx
import jieba
import multiprocessing
# 读取word文本文件
doc = docx.Document(r'C:\Users\Admin\Desktop\三国演义.docx')
# 初始化词频统计字典
word_freq = multiprocessing.Manager().dict()
# 定义并行分词函数
def parallel_cut(para):
words = jieba.lcut(para.text)
for word in words:
if len(word) > 1:
word_freq[word] = word_freq.get(word, 0) + 1
# 多进程分词
pool = multiprocessing.Pool()
pool.map(parallel_cut, doc.paragraphs)
pool.close()
pool.join()
# 输出前10个频率最高的词
top_words = sorted(word_freq.items(), key=lambda x: x[1], reverse=True)[:10]
for word, freq in top_words:
print(word, freq)
```
阅读全文