天猫商品评论情感词分析(基于SnowNLP)
簡介
SnowNLP是一個(gè)python寫的類庫,可以方便的處理中文文本內(nèi)容,是受到了TextBlob的啟發(fā)而寫的,由于現(xiàn)在大部分的自然語言處理庫基本都是針對(duì)英文的,于是寫了一個(gè)方便處理中文的類庫,并且和TextBlob不同的是,這里沒有用NLTK,所有的算法都是自己實(shí)現(xiàn)的,并且自帶了一些訓(xùn)練好的字典。而且SnowNLP非常適合商品評(píng)論的情感詞分析。
參考鏈接:https://github.com/isnowfy/snownlp功能
- 中文分詞(Character-Based Generative Model)
- 詞性標(biāo)注(TnT?3-gram 隱馬)
- 情感分析(現(xiàn)在訓(xùn)練數(shù)據(jù)主要是買賣東西時(shí)的評(píng)價(jià),所以對(duì)其他的一些可能效果不是很好,待解決)
- 文本分類(Naive Bayes)
- 轉(zhuǎn)換成拼音(Trie樹實(shí)現(xiàn)的最大匹配)
- 繁體轉(zhuǎn)簡體(Trie樹實(shí)現(xiàn)的最大匹配)
- 提取文本關(guān)鍵詞(TextRank算法)
- 提取文本摘要(TextRank算法)
- tf,idf(信息衡量)
- Tokenization(分割成句子)
- 文本相似(BM25)
功能介紹
安裝
pip install snownlp功能
from snownlp import SnowNLPtext = u''' 自然語言處理是計(jì)算機(jī)科學(xué)領(lǐng)域與人工智能領(lǐng)域中的一個(gè)重要方向。 它研究能實(shí)現(xiàn)人與計(jì)算機(jī)之間用自然語言進(jìn)行有效通信的各種理論和方法。 自然語言處理是一門融語言學(xué)、計(jì)算機(jī)科學(xué)、數(shù)學(xué)于一體的科學(xué)。 因此,這一領(lǐng)域的研究將涉及自然語言,即人們?nèi)粘J褂玫恼Z言, 所以它與語言學(xué)的研究有著密切的聯(lián)系,但又有重要的區(qū)別。 自然語言處理并不是一般地研究自然語言, 而在于研制能有效地實(shí)現(xiàn)自然語言通信的計(jì)算機(jī)系統(tǒng), 特別是其中的軟件系統(tǒng)。因而它是計(jì)算機(jī)科學(xué)的一部分。 ''' s=SnowNLP(text)# 1、分詞 print(s.words)['自然', '語言', '處理', '是', '計(jì)算機(jī)', '科學(xué)', '領(lǐng)域', '與', '人工', '智能', '領(lǐng)域', '中', '的', '一個(gè)', '重要', '方向', '。', '它', '研究', '能', '實(shí)現(xiàn)', '人', '與', '計(jì)算機(jī)', '之間', '用', '自然', '語言', '進(jìn)行', '有效', '通信', '的', '各種', '理論', '和', '方法', '。', '自然', '語言', '處理', '是', '一', '門融', '語言', '學(xué)', '、', '計(jì)算機(jī)', '科學(xué)', '、', '數(shù)學(xué)', '于', '一體', '的', '科學(xué)', '。', '因此', ',', '這', '一', '領(lǐng)域', '的', '研究', '將', '涉及', '自然', '語言', ',', '即', '人們', '日常', '使用', '的', '語言', ',', '所以', '它', '與', '語言學(xué)', '的', '研究', '有著', '密切', '的', '聯(lián)系', ',', '但', '又', '有', '重要', '的', '區(qū)別', '。', '自然', '語言', '處理', '并', '不', '是', '一般', '地', '研究', '自然', '語言', ',', '而', '在于', '研制', '能', '有效', '地', '實(shí)現(xiàn)', '自然', '語言', '通信', '的', '計(jì)算機(jī)', '系統(tǒng)', ',', '特別', '是', '其中', '的', '軟件', '系統(tǒng)', '。', '因而', '它', '是', '計(jì)算機(jī)', '科學(xué)', '的', '一', '部分', '。']# 2、詞性標(biāo)注 tags=[x for x in s.tags] print(tags)[('自然', 'n'), ('語言', 'n'), ('處理', 'v'), ('是', 'v'), ('計(jì)算機(jī)', 'n'), ('科學(xué)', 'n'), ('領(lǐng)域', 'n'), ('與', 'c'), ('人工', 'b'), ('智能', 'n'), ('領(lǐng)域', 'n'), ('中', 'f'), ('的', 'u'), ('一個(gè)', 'm'), ('重要', 'a'), ('方向', 'n'), ('。', 'w'), ('它', 'r'), ('研究', 'v'), ('能', 'v'), ('實(shí)現(xiàn)', 'v'), ('人', 'n'), ('與', 'p'), ('計(jì)算機(jī)', 'n'), ('之間', 'f'), ('用', 'v'), ('自然', 'a'), ('語言', 'n'), ('進(jìn)行', 'v'), ('有效', 'a'), ('通信', 'vn'), ('的', 'u'), ('各種', 'r'), ('理論', 'n'), ('和', 'c'), ('方法', 'n'), ('。', 'w'), ('自然', 'n'), ('語言', 'n'), ('處理', 'v'), ('是', 'v'), ('一', 'm'), ('門融', 'q'), ('語言', 'n'), ('學(xué)', 'v'), ('、', 'w'), ('計(jì)算機(jī)', 'n'), ('科學(xué)', 'n'), ('、', 'w'), ('數(shù)學(xué)', 'n'), ('于', 'p'), ('一體', 'n'), ('的', 'u'), ('科學(xué)', 'n'), ('。', 'w'), ('因此', 'c'), (',', 'w'), ('這', 'r'), ('一', 'm'), ('領(lǐng)域', 'n'), ('的', 'u'), ('研究', 'vn'), ('將', 'd'), ('涉及', 'v'), ('自然', 'a'), ('語言', 'n'), (',', 'w'), ('即', 'v'), ('人們', 'n'), ('日常', 'b'), ('使用', 'vn'), ('的', 'u'), ('語言', 'n'), (',', 'w'), ('所以', 'c'), ('它', 'r'), ('與', 'p'), ('語言學(xué)', 'a'), ('的', 'u'), ('研究', 'vn'), ('有著', 'v'), ('密切', 'a'), ('的', 'u'), ('聯(lián)系', 'vn'), (',', 'w'), ('但', 'c'), ('又', 'd'), ('有', 'v'), ('重要', 'a'), ('的', 'u'), ('區(qū)別', 'n'), ('。', 'w'), ('自然', 'n'), ('語言', 'n'), ('處理', 'vn'), ('并', 'c'), ('不', 'd'), ('是', 'v'), ('一般', 'a'), ('地', 'u'), ('研究', 'vn'), ('自然', 'n'), ('語言', 'n'), (',', 'w'), ('而', 'c'), ('在于', 'v'), ('研制', 'v'), ('能', 'v'), ('有效', 'a'), ('地', 'u'), ('實(shí)現(xiàn)', 'v'), ('自然', 'n'), ('語言', 'n'), ('通信', 'vn'), ('的', 'u'), ('計(jì)算機(jī)', 'n'), ('系統(tǒng)', 'n'), (',', 'w'), ('特別', 'd'), ('是', 'v'), ('其中', 'r'), ('的', 'u'), ('軟件', 'n'), ('系統(tǒng)', 'n'), ('。', 'w'), ('因而', 'c'), ('它', 'r'), ('是', 'v'), ('計(jì)算機(jī)', 'n'), ('科學(xué)', 'n'), ('的', 'u'), ('一', 'm'), ('部分', 'n'), ('。', 'w')]# 3、斷句 print(s.sentences)['自然語言處理是計(jì)算機(jī)科學(xué)領(lǐng)域與人工智能領(lǐng)域中的一個(gè)重要方向', '它研究能實(shí)現(xiàn)人與計(jì)算機(jī)之間用自然語言進(jìn)行有效通信的各種理論和方法', '自然語言處理是一門融語言學(xué)、計(jì)算機(jī)科學(xué)、數(shù)學(xué)于一體的科學(xué)', '因此', '這一領(lǐng)域的研究將涉及自然語言', '即人們?nèi)粘J褂玫恼Z言', '所以它與語言學(xué)的研究有著密切的聯(lián)系', '但又有重要的區(qū)別', '自然語言處理并不是一般地研究自然語言', '而在于研制能有效地實(shí)現(xiàn)自然語言通信的計(jì)算機(jī)系統(tǒng)', '特別是其中的軟件系統(tǒng)', '因而它是計(jì)算機(jī)科學(xué)的一部分']# 4、正負(fù)情感詞判斷得分 print(s.sentiments)1.0# 5、轉(zhuǎn)換為拼音 print(s.pinyin)['Zi', 'ran', 'yu', 'yan', 'chu', 'li', 'shi', 'ji', 'suan', 'ji', 'ke', 'xue', 'ling', 'yu', '與', 'ren', 'gong', 'zhi', 'neng', 'ling', 'yu', 'zhong', 'de', 'yi', 'ge', 'zhong', 'yao', 'fang', 'xiang', '。', 'ta', 'yan', 'jiu', 'neng', 'shi', 'xian', 'ren', '與', 'ji', 'suan', 'ji', 'zhi', 'jian', 'yong', 'Zi', 'ran', 'yu', 'yan', 'jin', 'xing', 'you', 'xiao', 'tong', 'xin', 'de', 'ge', 'zhong', 'li', 'lun', 'huo', 'fang', 'fa', '。', 'Zi', 'ran', 'yu', 'yan', 'chu', 'li', 'shi', 'yi', 'men', 'rong', 'yu', 'yan', 'xue', '、', 'ji', 'suan', 'ji', 'ke', 'xue', '、', 'shu', 'xue', '于', 'yi', 'ti', 'de', 'ke', 'xue', '。', 'yin', 'ci', ',', 'zhe', 'yi', 'ling', 'yu', 'de', 'yan', 'jiu', 'jiang', 'she', 'ji', 'Zi', 'ran', 'yu', 'yan', ',', 'ji', 'ren', 'men', 'ri', 'chang', 'shi', 'yong', 'de', 'yu', 'yan', ',', 'suo', 'yi', 'ta', '與', 'yu', 'yan', 'xue', 'de', 'yan', 'jiu', 'you', 'zhe', 'mi', 'qie', 'de', 'lian', 'xi', ',', 'dan', 'you', 'you', 'zhong', 'yao', 'de', 'qu', 'bie', '。', 'Zi', 'ran', 'yu', 'yan', 'chu', 'li', 'bing', 'bu', 'shi', 'yi', 'ban', 'di', 'yan', 'jiu', 'Zi', 'ran', 'yu', 'yan', ',', 'er', 'zai', 'yu', 'yan', 'zhi', 'neng', 'you', 'xiao', 'di', 'shi', 'xian', 'Zi', 'ran', 'yu', 'yan', 'tong', 'xin', 'de', 'ji', 'suan', 'ji', 'xi', 'tong', ',', 'te', 'bie', 'shi', 'qi', 'zhong', 'de', 'ruan', 'jian', 'xi', 'tong', '。', 'yin', 'er', 'ta', 'shi', 'ji', 'suan', 'ji', 'ke', 'xue', 'de', 'yi', 'bu', 'fen', '。']# 6、繁體轉(zhuǎn)換為簡體 print(s.han)自然語言處理是計(jì)算機(jī)科學(xué)領(lǐng)域與人工智能領(lǐng)域中的一個(gè)重要方向。 它研究能實(shí)現(xiàn)人與計(jì)算機(jī)之間用自然語言進(jìn)行有效通信的各種理論和方法。 自然語言處理是一門融語言學(xué)、計(jì)算機(jī)科學(xué)、數(shù)學(xué)于一體的科學(xué)。 因此,這一領(lǐng)域的研究將涉及自然語言,即人們?nèi)粘J褂玫恼Z言, 所以它與語言學(xué)的研究有著密切的聯(lián)系,但又有重要的區(qū)別。 自然語言處理并不是一般地研究自然語言, 而在于研制能有效地實(shí)現(xiàn)自然語言通信的計(jì)算機(jī)系統(tǒng), 特別是其中的軟件系統(tǒng)。因而它是計(jì)算機(jī)科學(xué)的一部分。# 7、關(guān)鍵字抽取 print(s.keywords(10))['語言', '自然', '計(jì)算機(jī)', '領(lǐng)域', '研究', '科學(xué)', '通信', '系統(tǒng)', '智能', '人工']# 8、摘要 print(s.summary(3))['因而它是計(jì)算機(jī)科學(xué)的一部分', '自然語言處理是計(jì)算機(jī)科學(xué)領(lǐng)域與人工智能領(lǐng)域中的一個(gè)重要方向', '自然語言處理是一門融語言學(xué)、計(jì)算機(jī)科學(xué)、數(shù)學(xué)于一體的科學(xué)']案例展示
爬取天貓上olay官方旗艦店的一個(gè)商品,對(duì)評(píng)論內(nèi)容進(jìn)行情感詞分析,得出評(píng)論正負(fù)情感的概率,從而判斷產(chǎn)品的好壞。代碼如下所示
from snownlp import SnowNLP from snownlp import sentiment import pandas as pd import csvresult=pd.read_csv('./olay.csv',encoding='utf-8') # print(result['評(píng)論內(nèi)容']) items=result['評(píng)論內(nèi)容'].astype(str).tolist() # print(items)D=[] for i in range(len(items)):s=SnowNLP(items[i])t=s.sentimentsprint(t)a=[items[i],t]D.append(a) print(D) with open('./情感詞分析.csv','a',encoding='gb18030',newline='')as f1:write=csv.writer(f1)write.writerows(D)結(jié)果展示
觀察正負(fù)情感詞概率分布可以看出,在0.8以上的好評(píng)率占比最高,觀察數(shù)據(jù)評(píng)分,在0.1以下的snownlp才認(rèn)為是差評(píng),
隨著大數(shù)據(jù)的時(shí)代的到來,數(shù)據(jù)變得越來越重要,數(shù)據(jù)可以幫助我們來看清行業(yè)的本質(zhì),也可以幫助我們更加快速的了解一個(gè)行業(yè),關(guān)注公眾號(hào)——DT學(xué)說,走進(jìn)數(shù)據(jù)的時(shí)代
總結(jié)
以上是生活随笔為你收集整理的天猫商品评论情感词分析(基于SnowNLP)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: iMacros Chrome 插件
- 下一篇: 原生微信小程序实现手写签名功能
