nlu.png
NLU(自然語言理解)系統(tǒng)是任何現(xiàn)代語音系統(tǒng)的最關(guān)鍵模塊莹妒。如上圖nlu.png所示,第二部分NLP Tool就是我們這篇文章要討論的双揪,我們這里不討論NLU和NLP的區(qū)別动羽,都以NLU指代。
NLU的輸入輸出
- 輸入是一段人類語言文本渔期,如上圖1模塊所示
- 輸出是一段結(jié)構(gòu)化數(shù)據(jù)(json/xml etc.)运吓,如上圖模塊3所示。主要包含意圖(Intent)和實體(Entities)的抽取結(jié)果
NLU服務(wù)提供商
正如上圖模塊2所指示疯趟,現(xiàn)在很多服務(wù)以Restful API和SDK形式向外提供服務(wù)拘哨。
-
國外:
- Dialogflow 也就是改名前的API.ai (被Google收購的公司)
- Wit.ai (被Facebook收購的公司)
- LUIS (微軟的服務(wù))
-
國內(nèi):
筆者用過Dialogflow做英文,也是支持中文信峻,但是服務(wù)國內(nèi)可能被墻倦青;使用過UNIT做中文;同時了解過其他幾個盹舞,給出建議是:
- 英文用Dialogflow产镐,免費好用
- 中文可以直接試試DUI,思必馳的這個開放比較晚踢步,更接近Dialogflow的感覺癣亚,UNIT對于需要大規(guī)模自己訓(xùn)練內(nèi)容的領(lǐng)域來說,泛化效果一般
- 當然获印,大家自己都可以試試述雾,有好的結(jié)果還望相互交流
自己搭建NLU平臺的原因
- 數(shù)據(jù)敏感
因為前面提到過的平臺都是需要將數(shù)據(jù)上傳訓(xùn)練才能獲得服務(wù),對于數(shù)據(jù)敏感的需求,顯然不能滿足玻孟。 - 領(lǐng)域效果差
開放平臺都是通用NLU平臺唆缴,各個公司的不收費還愿意提供服務(wù)的原因就是想要更多的數(shù)據(jù)上傳來訓(xùn)練自己的模型,那么你們業(yè)務(wù)所在領(lǐng)域的模塊如果是重要的模型黍翎,這些平臺不一定開放已經(jīng)訓(xùn)練好的模型面徽。那么結(jié)果就是你自己需要大量的訓(xùn)練。 - 本地支持
如果你還需要本地NLU匣掸,而不僅僅是聯(lián)網(wǎng)NLU斗忌,顯然也不符合要求。
開源NLU引擎選擇
NLU是一個巨大的輪子旺聚,沒有足夠的資源自己是搞不起的,尋找開源方案是最快速實現(xiàn)商業(yè)模式的方法眶蕉,目前找到兩家:
-
Rasa nlu
- 開源時間長砰粹,社區(qū)稍微活躍
- 官方還不支持中文,但是有童鞋已經(jīng)搭建了中文版造挽,引用并感謝他
- 支持本地部署碱璃,但是是python程序,各種平臺得自己解決饭入,比如android, ios等等
-
Snips nlu
- 剛剛開源
- 官方不支持中文嵌器,也沒有童鞋搞過中文版
- 支持本地部署,而且跨平臺支持谐丢,是Rust實現(xiàn)
所以結(jié)論
本人NLU小白爽航,想要快速達到效果并可實現(xiàn),得站在巨人肩膀乾忱。所以計劃如下:
- 基于Rasa nlu來實現(xiàn)
- 密切關(guān)注Snips nlu