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之淘宝商品评论情感分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Silverlight-TextBloc
- 下一篇: 为小白打造的MySQL安装(包括可视化工