NLP之淘宝商品评论情感分析

感谢关注天善智能,走好数据之路↑↑↑

欢迎关注天善智能,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区,学习,问答、求职一站式搞定!

前言

最近学习NLP,还在初级阶段,上次jieba分词那篇写完,还在学习哈工大的pyltp。

发现一个比较有趣的中文类库:snownlp

SnowNLP是一个Python写的类库,可以方便的处理中文文本内容。

使用环境

Python3

Features

中文分词(Character-Based Generative Model)

词性标准(TnT 3-gram 隐马)

情感分析(现在训练数据主要是买卖东西时的评价,所以对其他的一些可能效果不是很好,待解决)

文本分类(Naive Bayes)

转换成拼音

繁体转简体

提取文本关键词(TextRank算法)

提取文本摘要(TextRank算法)

tf,idf

Tokenization(分割成句子)

文本相似(BM25)

支持python3

安装snownlp

在cmd下输入:pip3 install snownlp

(ps:为什么用pip3而不用pip,在之前的文章中已经说过原因)

如图,我之前已经安装过

snownlp分词

from snownlp import SnowNLP

s = SnowNLP(u'一次满意的购物')

s.words

['一', '次', '满意', '的', '购物']

PS:这里使用的是它自带的词典

snownlp情感分析

这里的情感分析结果是【0,1】区间上的一个值,越接近1,情感越积极,越接近0,情感越消极。

或者可以理解为positive的概率。

s.sentiments#positive的概率

0.8463107097139686

汉语转拼音

s.pinyin

['yi', 'ci', 'man', 'yi', 'de', 'gou', 'wu']

繁体字转简体

s = SnowNLP(u'「繁體字」「繁體中文」的叫法在臺灣亦很常見。')

s.han

'「繁体字」「繁体中文」的叫法在台湾亦很常见。'

提取文章关键词

text = u'''

自然语言处理(NLP)是计算机科学,人工智能,语言学关注计算机和人类(自然)语言之间的相互作用的领域。因此,自然语言处理是与人机交互的领域有关的。在自然语言处理面临很多挑战,包括自然语言理解,因此,自然语言处理涉及人机交互的面积。在NLP诸多挑战涉及自然语言理解,即计算机源于人为或自然语言输入的意思,和其他涉及到自然语言生成。

现代NLP算法是基于机器学习,特别是统计机器学习。机器学习范式是不同于一般之前的尝试语言处理。语言处理任务的实现,通常涉及直接用手的大套规则编码。

许多不同类的机器学习算法已应用于自然语言处理任务。这些算法的输入是一大组从输入数据生成的"特征"。一些最早使用的算法,如决策树,产生硬的if-then规则类似于手写的规则,是再普通的系统体系。然而,越来越多的研究集中于统计模型,这使得基于附加实数值的权重,每个输入要素柔软,概率的决策。此类模型具有能够表达许多不同的可能的答案,而不是只有一个相对的确定性,产生更可靠的结果时,这种模型被包括作为较大系统的一个组成部分的优点。

自然语言处理研究逐渐从词汇语义成分的语义转移,进一步的,叙事的理解。然而人类水平的自然语言处理,是一个人工智能完全问题。它是相当于解决中央的人工智能问题使计算机和人一样聪明,或强大的AI。自然语言处理的未来一般也因此密切结合人工智能发展。

'''

s = SnowNLP(text)

s.keywords(4)#提取关键词

['语言', '自然', '计算机', '涉及']

总结文章

s.summary(3)

['许多不同类的机器学习算法已应用于自然语言处理任务', '在NLP诸多挑战涉及自然语言理解', '包括自然语言理解']

切分为句子

s.sentences

['自然语言处理(NLP)是计算机科学',

'人工智能',

'语言学关注计算机和人类(自然)语言之间的相互作用的领域',

'因此',

'自然语言处理是与人机交互的领域有关的',

'在自然语言处理面临很多挑战',

'包括自然语言理解',

'因此',

'自然语言处理涉及人机交互的面积',

'在NLP诸多挑战涉及自然语言理解',

'即计算机源于人为或自然语言输入的意思',

'和其他涉及到自然语言生成',

'现代NLP算法是基于机器学习',

'特别是统计机器学习',

'机器学习范式是不同于一般之前的尝试语言处理',

'语言处理任务的实现',

'通常涉及直接用手的大套规则编码',

'许多不同类的机器学习算法已应用于自然语言处理任务',

'这些算法的输入是一大组从输入数据生成的"特征"',

'一些最早使用的算法',

'如决策树',

'产生硬的if-then规则类似于手写的规则',

'是再普通的系统体系',

'然而',

'越来越多的研究集中于统计模型',

'这使得基于附加实数值的权重',

'每个输入要素柔软',

'概率的决策',

'此类模型具有能够表达许多不同的可能的答案',

'而不是只有一个相对的确定性',

'产生更可靠的结果时',

'这种模型被包括作为较大系统的一个组成部分的优点',

'自然语言处理研究逐渐从词汇语义成分的语义转移',

'进一步的',

'叙事的理解',

'然而人类水平的自然语言处理',

'是一个人工智能完全问题',

'它是相当于解决中央的人工智能问题使计算机和人一样聪明',

'或强大的AI',

'自然语言处理的未来一般也因此密切结合人工智能发展']

接下来,进入正题!

from snownlp import seg#现在提供训练的包括分词,词性标注,情感分析,而且都提供了我用来训练的原始文件 以分词为例 分词在snownlp/seg目录下

用data.txt可以用于训练

seg.train('C:\Anaconda3\Lib\site-packages\snownlp\seg\data.txt')

seg.save('seg.marshal')

这样训练好的文件就存储为seg.marshal了

训练情感

from snownlp import sentiment

sentiment.train('C:/Anaconda3/Lib/site-packages/snownlp/sentiment/negtive1.txt','C:/Anaconda3/Lib/site-packages/snownlp/sentiment/positive1.txt')#注意路径斜线别写错

sentiment.save('C:/Anaconda3/Lib/site-packages/snownlp/sentiment/sentiment2.marshal')

这些训练内容是自己找的,可以是情感积极消极词库,也可以是爬到的淘宝积极消极情感文档。

训练好了就可以计算情感啦~

最后这个不科学。。。【捂脸】

一定是训练集太小啦~,还需要扩充训练集

本文作者:天善智能社区小编乐子原创,转载请注明出处。

你可能感兴趣的:(NLP之淘宝商品评论情感分析)