用python批量对txt文件进行去除停用词,分词和统计词频的详细代码,可以直接运行。并把输出的结果放进excel
时间: 2024-03-05 18:52:48 浏览: 59
好的,以下是用Python批量对txt文件进行去除停用词,分词和统计词频的详细代码,并将结果输出到Excel的步骤:
首先需要安装以下Python库:
- jieba(用于中文分词)
- openpyxl(用于操作Excel文件)
可以通过以下命令进行安装:
```
pip install jieba openpyxl
```
接下来是代码部分,注释已加入代码中,直接运行即可:
```python
import os
import jieba
import openpyxl
from openpyxl.utils import get_column_letter
from openpyxl.styles import Font
# 停用词文件路径
stopwords_path = "stopwords.txt"
# 获取停用词列表
stopwords_list = []
with open(stopwords_path, "r", encoding="utf-8") as f:
for line in f:
stopwords_list.append(line.strip())
# 创建工作簿和工作表
workbook = openpyxl.Workbook()
worksheet = workbook.active
# 设置表头
worksheet["A1"] = "文件名"
worksheet["B1"] = "词语"
worksheet["C1"] = "词频"
# 设置表头样式
for col in range(1, 4):
cell = worksheet.cell(row=1, column=col)
cell.font = Font(name="宋体", size=12, bold=True)
cell.alignment = openpyxl.styles.Alignment(horizontal="center", vertical="center")
# 获取所有txt文件
txt_files = [filename for filename in os.listdir() if filename.endswith(".txt")]
# 遍历所有txt文件
for index, filename in enumerate(txt_files):
# 读取文件内容
with open(filename, "r", encoding="utf-8") as f:
content = f.read()
# 分词并去除停用词
words = jieba.cut(content)
words_list = [word for word in words if word not in stopwords_list]
# 统计词频
words_count = {}
for word in words_list:
if word in words_count:
words_count[word] += 1
else:
words_count[word] = 1
# 将文件名、词语和词频写入Excel
for i, (word, count) in enumerate(words_count.items()):
worksheet.cell(row=index+2+i, column=1, value=filename)
worksheet.cell(row=index+2+i, column=2, value=word)
worksheet.cell(row=index+2+i, column=3, value=count)
# 自适应列宽
for col in worksheet.columns:
max_length = 0
column = get_column_letter(col[0].column)
for cell in col:
try:
if len(str(cell.value)) > max_length:
max_length = len(str(cell.value))
except:
pass
adjusted_width = (max_length + 2)
worksheet.column_dimensions[column].width = adjusted_width
# 保存Excel文件
workbook.save("word_frequency.xlsx")
```
这段代码会在当前文件夹中读取所有以`.txt`结尾的文件,对每个文件进行分词、去除停用词、统计词频,并将结果输出到一个名为`word_frequency.xlsx`的Excel文件中。其中,第一列为文件名,第二列为词语,第三列为词频。
需要注意的是,由于这段代码使用了中文分词,因此需要保证停用词文件和待处理的txt文件编码均为UTF-8。另外,由于分词的准确性和词频统计的效果与具体的业务场景和语料库有关,因此需要根据实际情况进行调整。
阅读全文