根据关键词文档内容,对文档B进行词频统计,并且输出excel,列为关键词文档中的关键词,行为对应词频,python代码怎么写
时间: 2023-04-09 20:01:49 浏览: 61
以下是Python代码示例,用于对文档B进行词频统计并输出Excel:
```python
import pandas as pd
import re
# 读取文档B
with open('文档B.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 读取关键词文档
with open('关键词文档.txt', 'r', encoding='utf-8') as f:
keywords = f.read().splitlines()
# 统计词频
word_freq = {}
for keyword in keywords:
pattern = re.compile(r'\b{}\b'.format(keyword))
freq = len(pattern.findall(text))
word_freq[keyword] = freq
# 输出Excel
df = pd.DataFrame(list(word_freq.items()), columns=['关键词', '词频'])
df.to_excel('词频统计.xlsx', index=False)
```
请注意,这只是一个示例代码,实际情况可能因文档格式、关键词数量等因素而有所不同。
相关问题
根据关键词文本文档的关键词对文件夹中各文本进行对应关键词词频统计,并且生成excel,excel的行为关键词文档中的文件词,列问文件夹中各文档名称,python怎么写
这个问题可以回答。你可以使用Python中的第三方库,如pandas和nltk,来实现这个功能。首先,你需要读取文件夹中的所有文本文件,并将它们存储在一个列表中。然后,你需要使用nltk库来对每个文本文件进行分词,并统计每个词在文本文件中出现的次数。最后,你可以使用pandas库来将这些统计结果存储在一个Excel文件中。具体的代码实现可以参考以下示例:
```python
import os
import pandas as pd
from nltk.tokenize import word_tokenize
from collections import Counter
# 定义文件夹路径和关键词列表
folder_path = 'path/to/folder'
keywords = ['keyword1', 'keyword2', 'keyword3']
# 读取文件夹中的所有文本文件
files = [f for f in os.listdir(folder_path) if f.endswith('.txt')]
# 定义一个空的字典,用于存储每个文件中关键词的词频统计结果
results = {}
# 对每个文件进行关键词词频统计
for file in files:
# 读取文件内容
with open(os.path.join(folder_path, file), 'r', encoding='utf-8') as f:
text = f.read()
# 对文件内容进行分词
tokens = word_tokenize(text)
# 统计每个关键词在文件中出现的次数
counts = Counter([token for token in tokens if token in keywords])
# 将统计结果存储在字典中
results[file] = counts
# 将统计结果转换为DataFrame格式,并存储为Excel文件
df = pd.DataFrame.from_dict(results, orient='index').fillna(0)
df.to_excel('keyword_counts.xlsx')
```
这段代码会将文件夹中所有以`.txt`结尾的文本文件读取出来,并对每个文件中出现的关键词进行词频统计。最后,它会将统计结果存储在一个名为`keyword_counts.xlsx`的Excel文件中。你可以根据需要修改关键词列表和文件夹路径。
根据关键词文档a.txt中的关键词,对文档h.txt进行关键词词频统计,并根据相应词频绘制词云图,python代码怎么写
我可以回答这个问题。您可以使用Python中的jieba库进行关键词提取和词频统计,使用wordcloud库绘制词云图。以下是示例代码:
```python
import jieba
from collections import Counter
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# 读取文本文件
with open('a.txt', 'r', encoding='utf-8') as f:
keywords = f.read().split()
with open('h.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 使用jieba库进行分词和关键词提取
words = jieba.lcut(text)
keywords_count = Counter(words)
# 统计关键词词频
for keyword in keywords:
print(keyword, keywords_count[keyword])
# 绘制词云图
wordcloud = WordCloud(font_path='msyh.ttc', background_color='white').generate_from_frequencies(keywords_count)
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()
```
其中,`a.txt`是包含关键词的文本文件,每个关键词占一行;`h.txt`是需要进行关键词词频统计的文本文件。关键词提取和词频统计使用了Python中的`jieba`库和`collections`模块中的`Counter`类。绘制词云图使用了`wordcloud`库和`matplotlib`库。