NLP之淘宝商品评论情感分析
感謝關(guān)注天善智能,走好數(shù)據(jù)之路↑↑↑
歡迎關(guān)注天善智能,我們是專注于商業(yè)智能BI,大數(shù)據(jù),數(shù)據(jù)分析領(lǐng)域的垂直社區(qū),學習,問答、求職一站式搞定!
前言
最近學習NLP,還在初級階段,上次jieba分詞那篇寫完,還在學習哈工大的pyltp。
發(fā)現(xiàn)一個比較有趣的中文類庫:snownlp
SnowNLP是一個Python寫的類庫,可以方便的處理中文文本內(nèi)容。
使用環(huán)境
Python3
Features
中文分詞(Character-Based Generative Model)
詞性標準(TnT 3-gram 隱馬)
情感分析(現(xiàn)在訓練數(shù)據(jù)主要是買賣東西時的評價,所以對其他的一些可能效果不是很好,待解決)
文本分類(Naive Bayes)
轉(zhuǎn)換成拼音
繁體轉(zhuǎn)簡體
提取文本關(guān)鍵詞(TextRank算法)
提取文本摘要(TextRank算法)
tf,idf
Tokenization(分割成句子)
文本相似(BM25)
支持python3
安裝snownlp
在cmd下輸入:pip3 install snownlp
(ps:為什么用pip3而不用pip,在之前的文章中已經(jīng)說過原因)
如圖,我之前已經(jīng)安裝過
snownlp分詞
from snownlp import SnowNLP
s = SnowNLP(u'一次滿意的購物')
s.words
['一', '次', '滿意', '的', '購物']
PS:這里使用的是它自帶的詞典
snownlp情感分析
這里的情感分析結(jié)果是【0,1】區(qū)間上的一個值,越接近1,情感越積極,越接近0,情感越消極。
或者可以理解為positive的概率。
s.sentiments#positive的概率
0.8463107097139686
漢語轉(zhuǎn)拼音
s.pinyin
['yi', 'ci', 'man', 'yi', 'de', 'gou', 'wu']
繁體字轉(zhuǎn)簡體
s = SnowNLP(u'「繁體字」「繁體中文」的叫法在臺灣亦很常見。')
s.han
'「繁體字」「繁體中文」的叫法在臺灣亦很常見。'
提取文章關(guān)鍵詞
text = u'''
自然語言處理(NLP)是計算機科學,人工智能,語言學關(guān)注計算機和人類(自然)語言之間的相互作用的領(lǐng)域。因此,自然語言處理是與人機交互的領(lǐng)域有關(guān)的。在自然語言處理面臨很多挑戰(zhàn),包括自然語言理解,因此,自然語言處理涉及人機交互的面積。在NLP諸多挑戰(zhàn)涉及自然語言理解,即計算機源于人為或自然語言輸入的意思,和其他涉及到自然語言生成。
現(xiàn)代NLP算法是基于機器學習,特別是統(tǒng)計機器學習。機器學習范式是不同于一般之前的嘗試語言處理。語言處理任務的實現(xiàn),通常涉及直接用手的大套規(guī)則編碼。
許多不同類的機器學習算法已應用于自然語言處理任務。這些算法的輸入是一大組從輸入數(shù)據(jù)生成的"特征"。一些最早使用的算法,如決策樹,產(chǎn)生硬的if-then規(guī)則類似于手寫的規(guī)則,是再普通的系統(tǒng)體系。然而,越來越多的研究集中于統(tǒng)計模型,這使得基于附加實數(shù)值的權(quán)重,每個輸入要素柔軟,概率的決策。此類模型具有能夠表達許多不同的可能的答案,而不是只有一個相對的確定性,產(chǎn)生更可靠的結(jié)果時,這種模型被包括作為較大系統(tǒng)的一個組成部分的優(yōu)點。
自然語言處理研究逐漸從詞匯語義成分的語義轉(zhuǎn)移,進一步的,敘事的理解。然而人類水平的自然語言處理,是一個人工智能完全問題。它是相當于解決中央的人工智能問題使計算機和人一樣聰明,或強大的AI。自然語言處理的未來一般也因此密切結(jié)合人工智能發(fā)展。
'''
s = SnowNLP(text)
s.keywords(4)#提取關(guān)鍵詞
['語言', '自然', '計算機', '涉及']
總結(jié)文章
s.summary(3)
['許多不同類的機器學習算法已應用于自然語言處理任務', '在NLP諸多挑戰(zhàn)涉及自然語言理解', '包括自然語言理解']
切分為句子
s.sentences
['自然語言處理(NLP)是計算機科學',
'人工智能',
'語言學關(guān)注計算機和人類(自然)語言之間的相互作用的領(lǐng)域',
'因此',
'自然語言處理是與人機交互的領(lǐng)域有關(guān)的',
'在自然語言處理面臨很多挑戰(zhàn)',
'包括自然語言理解',
'因此',
'自然語言處理涉及人機交互的面積',
'在NLP諸多挑戰(zhàn)涉及自然語言理解',
'即計算機源于人為或自然語言輸入的意思',
'和其他涉及到自然語言生成',
'現(xiàn)代NLP算法是基于機器學習',
'特別是統(tǒng)計機器學習',
'機器學習范式是不同于一般之前的嘗試語言處理',
'語言處理任務的實現(xiàn)',
'通常涉及直接用手的大套規(guī)則編碼',
'許多不同類的機器學習算法已應用于自然語言處理任務',
'這些算法的輸入是一大組從輸入數(shù)據(jù)生成的"特征"',
'一些最早使用的算法',
'如決策樹',
'產(chǎn)生硬的if-then規(guī)則類似于手寫的規(guī)則',
'是再普通的系統(tǒng)體系',
'然而',
'越來越多的研究集中于統(tǒng)計模型',
'這使得基于附加實數(shù)值的權(quán)重',
'每個輸入要素柔軟',
'概率的決策',
'此類模型具有能夠表達許多不同的可能的答案',
'而不是只有一個相對的確定性',
'產(chǎn)生更可靠的結(jié)果時',
'這種模型被包括作為較大系統(tǒng)的一個組成部分的優(yōu)點',
'自然語言處理研究逐漸從詞匯語義成分的語義轉(zhuǎn)移',
'進一步的',
'敘事的理解',
'然而人類水平的自然語言處理',
'是一個人工智能完全問題',
'它是相當于解決中央的人工智能問題使計算機和人一樣聰明',
'或強大的AI',
'自然語言處理的未來一般也因此密切結(jié)合人工智能發(fā)展']
接下來,進入正題!
from snownlp import seg#現(xiàn)在提供訓練的包括分詞,詞性標注,情感分析,而且都提供了我用來訓練的原始文件 以分詞為例 分詞在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')
這些訓練內(nèi)容是自己找的,可以是情感積極消極詞庫,也可以是爬到的淘寶積極消極情感文檔。
訓練好了就可以計算情感啦~
最后這個不科學。。。【捂臉】
一定是訓練集太小啦~,還需要擴充訓練集
本文作者:天善智能社區(qū)小編樂子原創(chuàng),轉(zhuǎn)載請注明出處。
總結(jié)
以上是生活随笔為你收集整理的NLP之淘宝商品评论情感分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Silverlight-TextBloc
- 下一篇: 小树T3打印机