夜的独白

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Python数据分析:情感分析

自然语言处理(NLP)
  • 将自然语言(文本)转化为计算机程序更容易理解的形式
  • 预处理得到的字符串进行向量化
  • 经典应用:
    1. 情感分析
    2. 文本相似度
    3. 文本分类
简单情感分析:
  • 情感字典(sentiment dictionary)

    • 人工构造一个字典
    • 根据关键词匹配
  • 优点:简单实用

  • 缺点:遇到新词,特殊词等,扩展性较差

  • 实用机器学习模型,nltk.classify

    # 简单的例子
    
    import nltk
    from nltk.stem import WordNetLemmatizer
    from nltk.corpus import stopwords
    from nltk.classify import NaiveBayesClassifier
    
    text1 = 'I like the movie so much!'
    text2 = 'That is a good movie.'
    text3 = 'This is a great one.'
    text4 = 'That is a really bad movie.'
    text5 = 'This is a terrible movie.'
    
    def proc_text(text):
        """
            预处处理文本
        """
        # 分词
        raw_words = nltk.word_tokenize(text)
        
        # 词形归一化
        wordnet_lematizer = WordNetLemmatizer()    
        words = [wordnet_lematizer.lemmatize(raw_word) for raw_word in raw_words]
        
        # 去除停用词
        filtered_words = [word for word in words if word not in stopwords.words('english')]
        
        # True 表示该词在文本中,为了使用nltk中的分类器
        return {word: True for word in filtered_words}
    
    # 构造训练样本
    train_data = [[proc_text(text1), 1],
                  [proc_text(text2), 1],
                  [proc_text(text3), 1],
                  [proc_text(text4), 0],
                  [proc_text(text5), 0]]
    
    # 训练模型
    nb_model = NaiveBayesClassifier.train(train_data)
    
    # 测试模型
    text6 = 'Everything is good.'
    print(nb_model.classify(proc_text(text6)))

运行:
在这里插入图片描述

在这里插入图片描述

posted on 2021-07-12 12:11  夜的独白  阅读(776)  评论(0)    收藏  举报