面试题答案
一键面试import os
from textblob import TextBlob
def sentiment_analysis():
positive_count = 0
negative_count = 0
neutral_count = 0
comment_sentiments = []
folder_path = 'your_folder_path'
for filename in os.listdir(folder_path):
if filename.endswith('.txt'):
file_path = os.path.join(folder_path, filename)
with open(file_path, 'r', encoding='utf-8') as file:
comment = file.read()
analysis = TextBlob(comment)
sentiment = analysis.sentiment.polarity
if sentiment > 0:
sentiment_label = 'positive'
positive_count += 1
elif sentiment < 0:
sentiment_label = 'negative'
negative_count += 1
else:
sentiment_label = 'neutral'
neutral_count += 1
comment_sentiments.append((comment, sentiment_label))
result = {
'positive_count': positive_count,
'negative_count': negative_count,
'neutral_count': neutral_count,
'comments': comment_sentiments
}
return result
TextBlob情感分析原理
TextBlob库使用基于词汇和基于机器学习的方法进行情感分析。
- 基于词汇的方法:它依赖于一个预定义的情感词典。对于文本中的每个单词,根据词典中该单词的情感得分(积极或消极)来计算整个文本的情感倾向。例如,如果文本中积极情感单词的数量多于消极情感单词,那么文本倾向于积极情感。
- 基于机器学习的方法:TextBlob还可以使用诸如朴素贝叶斯或支持向量机等机器学习算法。这些算法在大量已标注情感(积极、消极、中性)的文本数据上进行训练,学习到文本特征与情感之间的关系。当对新文本进行情感分析时,算法根据学到的关系预测文本的情感类别。
调用示例:
if __name__ == "__main__":
result = sentiment_analysis()
print(result)
以上代码实现了对文件夹内文本文件进行情感分析,并统计积极、消极和中性评论数量,以字典形式返回结果。TextBlob
库通过词汇和机器学习方式实现情感分析。将your_folder_path
替换为实际存放文本文件的文件夹路径。