美文网首页有趣的代码
「笔记」用Python进行文本情感分析

「笔记」用Python进行文本情感分析

作者: 高正杰 | 来源:发表于2018-01-24 18:58 被阅读100次

    声明

    原文来自: http://news.ifeng.com/a/20170628/51337227_0.shtml

    因原文格式比较乱,所以我按照自己的方式进行了整理。结果整理完之后才发现王树义老师的简书里面也同样有这篇文章,附上地址 https://www.jianshu.com/p/d50a14541d01 。若本文侵犯了您的权益,请随时与我联系,给您带来的不便还请谅解!

    定义

    文本情感分析(sentiment analysis)也称为意见挖掘,是指用自然语言处理、文本挖掘以及计算机语言学等方法来识别和提取原素材中的主观信息。

    适用场景

    商品评论挖掘、电影推荐、股市预测……

    早在2010年,Jonhan Bollen 等人就在《Twitter mood predicts the stock market》一文中提出利用 Twitter 中的公开信息进行情感分析,以此来对股市的涨落做预测,准确率高达87.6%!并且他们认为,只要能获得大量实时社交媒体文本数据,并进行相应的情感分析就能保证得到较好预测效果。

    当前,随着电子商务的飞速发展,我们可以获得的文本数据非常多,例如大众点评、豆瓣和亚马逊等等。

    NLTK

    Natural Language Toolkit,自然语言处理工具包,在NLP领域中,最常使用的一个Python库。NLTK由Steven Bird和Edward Loper在宾夕法尼亚大学计算机和信息科学系开发。

    系统环境说明

    本文的实验环境是 Python 3.6.1 |Anaconda 4.4.0 (64-bit),Win10

    英文情感分析例子

    工具

    TextBlob

    安装依赖包

    pip install textblob
    
    python -m textblob.download_corpora
    

    代码

    from textblob import TextBlob
    
    text = "I am happy today. I feel sad today."
    blob = TextBlob(text)
    
    # 拆分句子
    blob.sentences  # [Sentence("I am happy today."), Sentence("I feel sad today.")]
    
    # polarity代表情感极性,取值范围是[-1, 1],-1代表完全负面,1代表完全正面
    # subjectivity代表主观性程度
    blob.sentences[0].sentiment  # Sentiment(polarity=0.8, subjectivity=1.0)
    blob.sentences[1].sentiment  # Sentiment(polarity=-0.5, subjectivity=1.0)
    
    # 对整段话进行情感分析
    blob.sentiment  # Sentiment(polarity=0.15000000000000002, subjectivity=1.0)
    

    中文情感分析例子

    工具

    SnowNLP

    安装依赖包

    pip install snownlp
    

    代码

    from snownlp import SnowNLP
    
    text = u"我今天很快乐。我今天很愤怒。"  # 使用Unicode编码
    s = SnowNLP(text)
    s.sentences  # ['我今天很快乐', '我今天很愤怒']
    
    SnowNLP(s.sentences[0]).sentiments  # 0.971889316039116
    SnowNLP(s.sentences[1]).sentiments  # 0.07763913772213482
    s.sentiments  # 0.7237619924203508
    

    说明
    SnowNLPTextBlob 的计分方法不同。SnowNLP 的情感分析取值,表达的是“这句话代表正面情感的概率”。也就是说,对“我今天很愤怒”一句,SnowNLP 认为,它表达正面情感的概率很低很低。

    相关文章

      网友评论

      • 泰勒不会展开:这种程序好有意思,学的Python有用武之地了。
        泰勒不会展开:@高正杰 如果说我们还有丝毫联系,那大概就是一起学习了吧:stuck_out_tongue:
        高正杰:期待你写更多有意思的程序,我们一起学习!让学习陪伴我度过最艰难的岁月吧:sunglasses:

      本文标题:「笔记」用Python进行文本情感分析

      本文链接:https://www.haomeiwen.com/subject/qpguaxtx.html