假设经过专业⼈⼠构建有: negtive.txt positive.txt 两个情感词典, 现在对多家公司的年报进⾏统计, 输出结果 ⽂件名、正⾯词数、负⾯词数
时间: 2024-03-14 21:47:34 浏览: 166
可以使用Python来实现对多家公司年报进行情感分析,并输出结果文件,具体步骤如下:
1. 首先读取negtive.txt和positive.txt两个情感词典,将里面的正面词和负面词分别存储在两个列表中。
2. 读取多家公司的年报文本文件,分别对每个文件进行情感分析。对于每个文件,可以统计其中正面词和负面词的数量,可以使用Python的计数器(Counter)来实现。
3. 将每个文件的情感分析结果保存在一个字典中,字典的键为文件名,值为一个元组,包含正面词数和负面词数。
4. 将所有文件的情感分析结果写入输出文件中,输出文件包括文件名、正面词数和负面词数三列,可以使用Python的csv库来实现。
下面是一个示例代码,假设年报文件存储在report文件夹中,输出结果保存在result.csv文件中:
```python
import os
from collections import Counter
import csv
# 读取情感词典
positive_words = []
negative_words = []
with open('positive.txt', 'r', encoding='utf-8') as f:
for line in f:
positive_words.append(line.strip())
with open('negative.txt', 'r', encoding='utf-8') as f:
for line in f:
negative_words.append(line.strip())
# 对每个年报进行情感分析
results = {}
for filename in os.listdir('report'):
if filename.endswith('.txt'):
filepath = os.path.join('report', filename)
with open(filepath, 'r', encoding='utf-8') as f:
text = f.read()
words = text.split()
positive_count = Counter(word for word in words if word in positive_words)
negative_count = Counter(word for word in words if word in negative_words)
results[filename] = (sum(positive_count.values()), sum(negative_count.values()))
# 将结果写入输出文件
with open('result.csv', 'w', encoding='utf-8', newline='') as f:
阅读全文