1、snownlp是一個(gè)處理中文的類庫(kù)脓鹃,有中文分詞蛋辈、詞性標(biāo)注、情感分析将谊、文本分類冷溶、拼音、繁簡(jiǎn)尊浓、提取關(guān)鍵詞摘要等功能逞频。下載后可以直接用,不用訓(xùn)練栋齿。
2.能重新訓(xùn)練的模塊有seg(分析詞性)苗胀、sentiments(情感分析)、tag瓦堵、normal基协、
以sentiments模塊為例:
????sentiments目錄下有5個(gè)文件,其中init是程序菇用,neg和pos分別是消極和積極語(yǔ)料庫(kù)(也就是用來(lái)訓(xùn)練的數(shù)據(jù)集)sentiment.marshal.3和sentiment.marshal是訓(xùn)練保存的模型澜驮。(python2保存的是sentiment.marshal;python3保存的是sentiment.marshal.3)
替換語(yǔ)料集(數(shù)據(jù)集)
首先要找到能夠替換數(shù)據(jù)集的語(yǔ)料集惋鸥,數(shù)據(jù)格式要與原來(lái)相同杂穷,編碼方式為utf-8悍缠。
訓(xùn)練
????????找到函數(shù)接口(一般都在同級(jí)文件中)
init文件:
train()是訓(xùn)練函數(shù)、save是保存模型所用的函數(shù)
? ? ? ? ? ? 外部調(diào)用函數(shù)進(jìn)行訓(xùn)練
其中train.positive.txt和train.negative.txt為替換的數(shù)據(jù)集耐量,new.marshal為訓(xùn)練保存的模型飞蚓。
運(yùn)行這段代碼,成功后找到保存的模型(保存模型的位置是可以自定義的)
應(yīng)用新模型
方式一:將新模型名稱改為和原來(lái)模型名稱一致廊蜒,復(fù)制到sentiments目錄下替換原來(lái)的
方式二:改變讀取模型的路徑趴拧,同在init文件中操作
記得原路徑要注釋!山叮!
檢驗(yàn)?zāi)P褪欠裉鎿Q成功
用同一個(gè)例子應(yīng)用sentiments方法八堡,看原模型和新模型算出來(lái)的積極的概率(訓(xùn)練集不同,訓(xùn)練出兩個(gè)相同模型的概率很衅肝摺)概率不同則上述操作成功,如果概率不變缝龄,極有可能出現(xiàn)了誤操作汰现。
下面講一個(gè)seg與tag模塊的小方法
這是我找到的詞性數(shù)據(jù)集,需要將里面的BC兩列內(nèi)容轉(zhuǎn)化為txt文件(還有格式要求:每個(gè)具體例子之間有空格)
代碼實(shí)現(xiàn)如下:
第一個(gè)為表格路徑叔壤,第二個(gè)為表單名瞎饲,第三個(gè)為目標(biāo)保存路徑(均可自定義),運(yùn)行代碼炼绘,查看保存的文件嗅战。其中值得注意的是txt編碼方式需要轉(zhuǎn)換為utf-8。