Python_文本分析入門_SnowNLP(1)

SnowNLP是一個python寫的類庫,可以方便的處理中文文本內容,是受到了TextBlob的啓發而寫的,由於現在大部分的自然語言處理庫基本都是針對英文的,於是寫了一個方便處理中文的類庫,並且和TextBlob不同的是,這裏沒有用NLTK,所有的算法都是自己(不是本人)實現的,並且自帶了一些訓練好的字典。

1.簡單的文本分析嘗試
from snownlp import SnowNLP

s = SnowNLP(u'這真的很好')
print(s.words)       # 詞語
print(s.tags)        # 詞性    解開zip使用print(list(s.tags))
print(s.sentences)   # 句子
print(s.sentiments)  # 情感偏向
print(s.pinyin)      # 轉爲拼音
print(s.han)         # 轉爲漢體
print(s.keywords)    # 提取關鍵詞
print(s.summary)     # 提取主題
print(s.tf)          # 計算詞頻
  • 使用時,需要導入SnowNLP庫,安裝路徑爲pip install snownlp
  • 這其中出現了zip格式: zip()函數將可迭代對象作爲參數,並打包成元組,返回的是一個個zip對象,可以使用list或dict轉換返回結果,使用*zip可以將打包的對象分解成列表
  • 相應的輸出結果爲
['這', '真的', '很', '好']
<zip object at 0x00000217E1313CC8>
['這真的很好']
0.8333900543572382
['zhe', 'zhen', 'de', 'hen', 'hao']
這真的很好
<bound method SnowNLP.keywords of <snownlp.SnowNLP object at 0x00000217CA47F2E8>>
<bound method SnowNLP.summary of <snownlp.SnowNLP object at 0x00000217CA47F2E8>>
[{'這': 1}, {'真': 1}, {'的': 1}, {'很': 1}, {'好': 1}]

Process finished with exit code 0

2.使用變量輸入

使用變量輸入會使內容輸入變得更爲簡單,同時可以爲讀寫文件或者數據庫做鋪墊,如下代碼,使用txt作爲整個文本的引入,在SnowNLP函數內部只需要使用txt這一變量名即可完成相關功能的實現

from snownlp import SnowNLP
txt = u'''秦始皇(前259年農曆十二月初三—前210年),嬴姓,趙氏,名政,又名趙正(政)、
          秦政,或稱祖龍,秦莊襄王之子。中國歷史上著名的政治家、戰略家、改革家,完成華
          夏大一統的鐵腕政治人物,也是中國第一個稱皇帝的君主。'''

s = SnowNLP(txt)
print(s.words)       # 詞語
print(list(s.tags))  # 詞性
print(s.sentiments)  # 情感偏向
print(s.tf)          # 計算詞頻

雖然上面內容在一定程度上引入了變量,但我們還需改進,如果能夠接收用戶輸入會使整個函數功能更加流暢,以input函數作爲引入(後期會使用文件或者數據庫功能進行輸入)

from snownlp import SnowNLP

txt = input("Enter your message:")

s = SnowNLP(txt)
print(s.words)
print(s.words)       # 詞語
print(list(s.tags))  # 詞性
print(s.sentiments)  # 情感偏向
print(s.tf)          # 計算詞頻

3.簡易情感分析表

在開始使用文件個數據庫之前,可以進行簡答的情感分析的製作,我們使用列表來進行

from snownlp import SnowNLP

txt_in = []
sentiments_out = []

for i in range(3):   # 做三次循環
    txt = input("Enter:")
    txt_in.append(txt)
    s = SnowNLP(txt)
    sentiments_out.append(s.sentiments)

print(txt_in)
print(sentiments_out)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章