前言:作NLP工程時少不了利用各類現成的工具包來對文字進行處理,學習工做這麼久,接觸使用了很多nlp工具包,NLP中大可能是以Python語言爲主,所以大部分工具是Python的,少部分的是Java的以及C++的,主要功能無非實現校訂,分詞,詞性標註,句法分析,句法依存等主流功能,具體使用方法見各官網以及博客,簡單列舉以下:
博主用過的:java
NLTK:Python的,安裝方便,處理英文功能強大,中文也可,處於領先地位,語料庫豐富,下載方便,能夠實現統計,分詞,詞性標註,句法分析(這塊好像有點弱),作NLP不知道nltk?你是火星的nlp? jieba:python的,是最經常使用的中文分詞工具,支持多精度分詞,安裝使用十分方便。 ltp:哈工大的,業界很出名的一套處理中文系統,好像是python的,忘記了,反正python可使用,不過安裝可能報一個缺乏微軟的一個vc++東西錯,忘記怎麼解決的了,有機會再補充,能夠實現分詞,詞性標註,命名實體識別,句法分析,依存關係等功能。 stanford NLP:這個是java的,不過Python能夠安裝使用,稍微麻煩一點,須要安裝jdk,下載一些jar文件在本地,而後Python調用給jdk解析,有不少博客講解安裝的,就不細說了,能夠實現分詞,標準,識別,句法分析樹等,能夠處理中文 spaCy:這個功能比較強大,實現英語分詞,詞性還原,標註,識別,句法分析等,Python的,安裝簡單實用方便。 hanlp:用過這個的分詞,其餘功能沒用過 bonsonlp:這個是一個專門作NLP的公司開發的收費平臺,能夠去官網體驗一下,也有多個精度的分詞,體驗感受還不錯。
以上是nlp工具平臺,下面是具備針對性的工具(都是python的):python
word2vec:某大公司(我有些混淆了)開發的,利用已有語料庫和深度學習進行訓練,獲得能夠帶有語意含義的詞向量,效果不錯,網絡上有利用搜狗語料訓練的博客,語料搜狗免費提供。獲得詞向量用處就大了,關鍵得訓練的好。 gloven:好像是另外一大公司針對上面公司的word2vec開發的,效果也相差不大,能夠本身訓練,亦能夠下載該公司提供訓練好的詞向量,好像叫gloven100d什麼的。 Gensim:是一個大型的python庫,博主用它實現word2vec訓練,其餘功能沒試過,好像功能挺強大的。 fasttext:脫胎於word2vec的算法的一個文本快速分類包,速度快,使用簡單。 infersent:訓練後,能夠實現提取文本的關鍵詞,可是博主屢次懷疑是否是經過統計詞頻來識別的,哈哈。 grammer check:這個是用來檢測英語語法錯誤的,這麼說,檢測出來的必定是有錯的,檢測不出來的不必定沒錯,能夠用來過濾一部分數據。
聽過沒用過的:c++
ICTCLAS:中科院的,也挺好 FudanNLP:復旦大學的 OpenNLP 庖丁解牛中文分詞 盤古分詞中文分詞
下面幾個博主也沒用過,就放着了,你們能夠本身去查查。算法
NaNLTK Apache OpenNLP Gate NLP library language tool Pattern TextBlob PyNLPI Polyglot MontyLingua BLLIP Parser Quepy MBSP SnowNLP thulac pynlpir
注:無論用什麼工具進行分詞,標註,識別,都會有偏差,而且領域性越強,數據集越小,偏差越明顯,一方面能夠多個工具結合使用,不一樣工具算法或語料不一樣,分詞標註結果也不一樣,結合使用會有必定效果,再者本身添加本身領域內的詞表補充完善,人工智能即先人工再智能。網絡