百度NLP權威發布,可能是最好用的中文詞法分析工具——LAC 2.0閃亮登場!與LAC 1.0相比,LAC 2.0在性能與效果上有明顯提升,且支持多種開發語言,一鍵安裝調用,更加快速便捷。
開源地址見下方評論區!
LAC是什麼
LAC全稱Lexical Analysis of Chinese,是百度NLP(自然語言處理部)研發的一款詞法分析工具,可實現中文分詞、詞性標註、專名識別等功能。
LAC在分詞、詞性、專名識別的整體準確率超過90%,以專名識別為例,其效果要比同類詞法分析工具提升10%以上。
例如:我知道你不知道,百度開源詞法LAC幫你更懂中文!
LAC 2.0可以從語義合理性角度精確完成分詞、詞性標註和專名的一體化識別。
LAC 2.0有哪些優勢
自開源以來,LAC得到了不少關注與好評。為了進一步提升廠內外開發者的使用體驗,我們對LAC進行了新一輪全面升級,帶來5大優勢:
效果好:通過大規模語料自動標註和聯合模型訓練,整體效果業內領先
通過前沿的深度學習模型BiGRU-CRF,LAC 2.0可以聯合學習分詞、詞性標註和實體識別這三個具有強關聯性的任務,模型的整體效果F1值超過了0.91,詞性標註F1值超過了0.94,專名識別F1值超過了0.85,效果對比業內其他開源工具達到了領先的水平。
同時,對於詞法分析而言,OOV(新詞,out of vocabulary)是當前模型效果提升最大的障礙,最有效的解決方法是增加數據量,但是人工標註數據需要巨大的人力成本。我們基於強大的NLP技術積累,通過自動標註生成大規模數據集,讓模型可以學習到強大的泛化特徵,並通過一定量的人工標註數據對模型進行修正。相較於僅用人工標註數據集進行模型訓練,通過該方法訓練得到的模型整體效果提升超過3%。
效率高:優化模型參數與性能,重構C++調用代碼,簡化編譯流程,性能提升約2倍
與舊版本相比,LAC 2.0的效率得到較大的提升。通過精簡模型參數,結合飛槳預測庫的性能優化,LAC 2.0詞法分析的CPU單線程性能優於其他主流工具(詳細數據參考表4詞性標註與實體識別性能評估)。
可定製:LAC 2.0可以實現簡單可控的幹預機制,能夠精準匹配用戶詞典對模型進行幹預,詞典支持長片段形式,使得幹預更為精準。
調用便捷:增加Python的pip一鍵安裝,增加Java和Android的支持與調用
LAC 1.0僅支持C++和Python,調用相對複雜有一定門檻。LAC 2.0則同時提供了Java、android、C++和Python語言,重構相關代碼,相比LAC1.0版本使用更便捷。同時,LAC 2.0支持一鍵安裝,開發者可以實現快速調用和集成。
支持移動端:定製超輕量級模型,體積僅為2M
LAC 2.0在對Android應用的支持上,定製了一版超輕量級的模型,該模型的體積僅為2M,在主流千元手機上測試單線程性能達到了200 QPS,能夠滿足大多數移動應用的需求,效果大幅超過了同等體積量級的模型。
LAC 2.0對比其他開源工具
分詞效果
我們選擇市面上流行的3款分詞工具進行模型比較。並在pku、msr、ctb、weibo等多個開源數據集對模型效果進行評測,從結果上看,LAC在不同數據集的分詞效果均明顯優於相關工具,平均分詞錯誤至少降低38.5%,如下所示:
該表格列出的數據是通過各個工具提供的訓練接口在不同開源數據集上進行微調訓練得出。採用數據集微調訓練後再評估,是因為目前分詞結果並沒有統一的標準,比如人名「張三」,MSR數據集切分時會將其作為一個完整的單詞,而工具A數據集標準則認為姓和名需要進行切分,故而會切分為「張 三」。不同標準導致結果差異大,故而通過微調訓練使得模型在一個分詞標準下進行比較。
LAC默認模型的分詞標準偏向於實體粒度,會比其他開源工具的分詞粒度更大一些,有需要的同學,可通過增量訓練接口和定製接口快速實現模型微調和粒度遷移。
專名識別效果
標註任務中,我們以詞法任務中難度最大的專名識別任務對LAC的效果進行評估,在開源的新聞實體識別數據集(MSRA)與簡歷實體識別數據集(Resume)上比較了LAC 2.0與其他工具的效果差異:
表1、表2中LAC的人名識別效果顯示會稍低於工具B,實則是因為LAC認為"張先生"、"李老師"才是一個完整的人名實體,而其他工具和MSRA數據集則將其中"張"字、"李"字標註為人名實體。故而LAC的人名識別效果實際上會顯著高於表中的數值,並優於工具B。
綜上可知,LAC的專名識別的整體效果要顯著優於其他工具。
性能比較
我們也對LAC與其他工具的性能進行比較,測試環境為:Python語言,Linux系統,CPU E5-2650 v3。
其分詞的性能如表3所示,詞性標註與實體識別性能如表4所示,LAC還可實現批處理的形式,性能會更快一些。
從結果上看,在分詞速率上,LAC性能優於工具A和工具B。而在詞性標註和實體識別上,LAC的性能是最高的。
LAC 2.0如何安裝使用
LAC 2.0安裝非常簡單,Python語言的開發者可直接使用pip安裝,兼容Python2/3,兼容Windows、Linux和MacOS,其他語言(JAVA、C++、Android)的調用可以參考GitHub的README文檔中安裝與使用部分。
pip install lac
from LAC import LAC
lac = LAC()
lac.run("百度是一家高科技公司")
感謝大家的關注,點擊「閱讀原文」或打開下方連結,可了解更多技術詳情!
LAC項目地址見下方評論區!
百度自然語言處理(Natural Language Processing,NLP)以『理解語言,擁有智能,改變世界』為使命,研發自然語言處理核心技術,打造領先的技術平臺和創新產品,服務全球用戶,讓複雜的世界更簡單。