[撒花\*/]百度詞法分析工具LAC


百度詞法分析工具LAC 2.0

 

LAC(Lexical Analysis of Chinese),是百度的詞法分析工具,實現中文分詞、詞性標注、專名識別等功能。

使用的模型論文Chinese Lexical Analysis with Deep Bi-GRU Network

據官方介紹整體任務F1超過0.91,CPU單線程800QPS,移動端200QPS,支持Android、C++、Java、python接口。

我只試了python的版本,如果想要使用C++、Android,有CMakeLists直接編譯就好。

  • 安裝
  1. pip install lac -i https://mirror.baidu.com/pypi/simple

     

  2. #先下載 http://pypi.python.org/pypi/lac/
    #解壓后
    python setup.py install
  • 分詞
from LAC import LAC

#加載模型
lac = LAC(mode='seg')

#單個樣本
text = 'LAC是一個優秀的分詞工具'
results = lac.run(text)

#多樣本
texts = ['LAC是一個優秀的分詞工具','我愛中華人民共和國']
results = lac.run(texts)
  • 詞性標注和命名實體識別
from LAC import LAC

lac = LAC(mode='lac')

#單個樣本
text = 'LAC是一個優秀的分詞工具'
results = lac.run(text)

#多樣本
texts = ['LAC是一個優秀的分詞工具','我愛中華人民共和國']
results = lac.run(texts)
標簽 含義 標簽 含義 標簽 含義 標簽 含義
n 普通名詞 f 方位名詞 s 處所名詞 nw 作品名
nz 其他專名 v 普通動詞 vd 動副詞 vn 名動詞
a 形容詞 ad 副形詞 an 名形詞 d 副詞
m 數量詞 q 量詞 r 代詞 p 介詞
c 連詞 u 助詞 xc 其他虛詞 w 標點符號
PER 人名 LOC 地名 ORG 機構名 TIME 時間

 

 

 

 

 

 

 

 

  • 支持自定義詞典

通過裝載詞典文件的形式實現該功能,詞典文件每行表示一個定制化的item,由一個單詞或多個連續的單詞組成,每個單詞后使用'/'表示標簽,如果沒有'/'標簽則會使用模型默認的標簽。每個item單詞數越多,干預效果會越精准。

custom.txt自定義內容

春天/SEASON
花/n 開/v
秋天的風
落 陽
from LAC import LAC
lac = LAC()

# 裝載干預詞典
lac.load_customization('custom.txt')

# 干預后結果
custom_result = lac.run(u"春天的花開秋天的風以及冬天的落陽")


#輸出結果
#不用自定義字典
#春天/TIME 的/u 花開/v 秋天/TIME 的/u 風/n 以及/c 冬天/TIME 的/u 落陽/n

#使用自定義字典
#春天/SEASON 的/u 花/n 開/v 秋天的風/n 以及/c 冬天/TIME 的/u 落/n 陽/n
  • 增量訓練

官方提供了增量訓練的接口,用戶可以使用自己的數據,進行增量訓練,首先需要將數據轉換為模型輸入的格式,並且所有數據文件均為"UTF-8"編碼。

1.分詞訓練

數據樣例,使用空格作為單詞的切分標記:

LAC 是 個 優秀 的 分詞 工具 。
百度 是 一家 高科技 公司 。
春天 的 花開 秋天 的 風 以及 冬天 的 落陽 。
from LAC import LAC

# 選擇使用分詞模型
lac = LAC(mode = 'seg')

# 訓練和測試數據集,格式一致
train_file = "./data/seg_train.tsv"
test_file = "./data/seg_test.tsv"
lac.train(model_save_dir='./my_seg_model/',train_data=train_file, test_data=test_file)

# 使用自己訓練好的模型
my_lac = LAC(model_path='my_seg_model')

2.詞法分析訓練

樣例數據:

LAC/nz 是/v 個/q 優秀/a 的/u 分詞/n 工具/n 。/w
百度/ORG 是/v 一家/m 高科技/n 公司/n 。/w
春天/TIME 的/u 花開/v 秋天/TIME 的/u 風/n 以及/c 冬天/TIME 的/u 落陽/n 。/w
from LAC import LAC

# 選擇使用默認的詞法分析模型
lac = LAC()

# 訓練和測試數據集,格式一致
train_file = "./data/lac_train.tsv"
test_file = "./data/lac_test.tsv"
lac.train(model_save_dir='./my_lac_model/',train_data=train_file, test_data=test_file)

# 使用自己訓練好的模型
my_lac = LAC(model_path='my_lac_model')

 

歡迎大家討論

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM