zoukankan      html  css  js  c++  java
  • 情感分析

    情感分析

    自然语言处理(NLP)

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

    简单的情感分析

    • 情感字典(sentiment dictionary)

      • 人工构造一个字典,如: like -> 1, good -> 2, bad -> -1, terrible-> -2
      • 根据关键词匹配
    • 如 AFINN-111: http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6010,虽简单粗暴,但很实用

    • 问题:

      遇到新词,特殊词等,扩展性较差

      使用机器学习模型,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 = 'That is a bad one.' print(nb_model.classify(proc_text(text5)))
     
  • 相关阅读:
    SQL带参数拼接
    ASP.NET+ashx+jQuery动态添加删除表格
    ASP.NET中常用重置数据的方法
    多表联合查询
    zTree在Asp.Net中的使用
    ASP.NET中常用方法
    DropDownList
    (转)一个form表单实现提交多个action
    svn简单用法
    每日三问
  • 原文地址:https://www.cnblogs.com/alexzhang92/p/9794415.html
Copyright © 2011-2022 走看看