暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Python十二钗之NLTK:文本的情感分析

健谈始于戊戌年 2021-07-01
1658

接上文

Python十二钗之NLTK:文本分析神器


3.8情感分析(Sentiment Analysis)


现在公司有的时候想知道产品中出现了什么问题?客户对新功能有什么看法。通过情感分析,公司可以量化衡量客户的留言的内容、想法和观点。

客户经常会在社交媒体反馈他们对产品的体验。如果公司能够分析这些信息,就可以帮助公司实现产品的迭代。情感分析可以让公司更加精确地了解客户。当然,情感分析不仅可以用在产品体验中,它也可以用于研究社会安全等问题。

人与人的交流不仅限于词语,通常还包括语调、表达方式等等。情感分析可以将这些信息相互融合,让数据科学家了解一个人真正想表的的含义。

情感分析通过研究用户的语句,将客户的情感分为正面、负面和中性。常见的情感分析方法有两种。


第一种是通过词汇在字典中的含义,计算正面和负面词汇在一段文字中出现的频率。

第二种是通过机器学习的方法,根据以前训练产生的正面、负面和中性数据库,设计分类模型。这也是本文主要介绍的内容。

 

3.9文本分类

 

文本分类是文本挖掘的重要工作。它是一种将社交媒体、网页、新闻、书籍等分类的监督学习方法。在当今的计算机世界中,它可以用于鉴别垃圾邮件、客户关系分类、电子商务产品分类、客户体验分类等等。当然,除了了解理论,我们更关心如何利用Python实现文本分类。

 

3.10用情感分析进行文本分类

 

在之前的介绍中,我们已经介绍了如何使用Python中的NLTK库进行文本数据的预处理。接下来我们通过“电影评论的情感分析”案例来介绍文本分类。

 

在这个数据库中,包括了4列:PhraseId,SentenceId,Phrase, Sentiment。在Sentiment列中,是观众对电影的评价:

0 很差

1 差

2 中等

3 好

4 很好

 

我们先来读取数据。首先引用“大熊猫”:Pandas

import pandas as pd

 

然后读取“电影评论的情感分析”的数据train.tsv

data=pd.read_csv('train.tsv', sep='\t')

 

我们来看一下数据的一部分

data.head()

  

我们还可以看到更多Phrase里的内容。里面似乎还有一句谚语:what is good for the goose is good for the gander。这里goose 是雌鹅,gander是雄鹅。这句话直译就是说对雌鹅好的东西,对雄鹅也好。通常是指男人能拥有的或能做的,女人也能拥有或能做。也就是说男女平等。

 

言归正传!我们来看一下数据的整体情况:

data.info()

 

 

观众对这部电影评价最多的是2,也就是中等。评价为3和4的人数多于评价为1和0的人数。这说明观众对这部电影的看法是中等偏上。

data.Sentiment.value_counts()

2    79582

3    32927

1    27273

4     9206

0     7072

Name: Sentiment, dtype: int64

 

我们也可以通过图形来说明这个问题:

Sentiment_count=data.groupby('Sentiment').count()

plt.bar(Sentiment_count.index.values, Sentiment_count['Phrase'])

plt.xlabel('Review Sentiments')

plt.ylabel('Number of Review')

plt.show()

 


(未完待续)

文章转载自健谈始于戊戌年,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论