MST

星途 面试题库

面试题:Python多文本情感分析

假设你有一个包含多个文本文件的文件夹,每个文件代表一条用户评论。使用Python和相关库(如NLTK或TextBlob)对这些评论进行情感分析,判断每条评论是积极、消极还是中性,并统计积极、消极和中性评论的数量,最后将结果以合适的数据结构返回。同时,解释你所选用库中情感分析的大致原理。
39.7万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
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库使用基于词汇和基于机器学习的方法进行情感分析。

  1. 基于词汇的方法:它依赖于一个预定义的情感词典。对于文本中的每个单词,根据词典中该单词的情感得分(积极或消极)来计算整个文本的情感倾向。例如,如果文本中积极情感单词的数量多于消极情感单词,那么文本倾向于积极情感。
  2. 基于机器学习的方法:TextBlob还可以使用诸如朴素贝叶斯或支持向量机等机器学习算法。这些算法在大量已标注情感(积极、消极、中性)的文本数据上进行训练,学习到文本特征与情感之间的关系。当对新文本进行情感分析时,算法根据学到的关系预测文本的情感类别。

调用示例:

if __name__ == "__main__":
    result = sentiment_analysis()
    print(result)

以上代码实现了对文件夹内文本文件进行情感分析,并统计积极、消极和中性评论数量,以字典形式返回结果。TextBlob库通过词汇和机器学习方式实现情感分析。将your_folder_path替换为实际存放文本文件的文件夹路径。