python 分词工具训练_中文分词入门和分词工具汇总攻略
【注意】如果尋找分詞和文本分析軟件,為了完成內容分析和其他文本研究任務,直接使用集搜客分詞和文本分析軟件就可以了。本文是為了講解集搜客分詞和文本分析的實現原理,是給產品設計者和開發者看的。
最近在整理自然語言處理的相關知識圖譜,關于中文分詞這塊,我們梳理了一些入門的知識點,并且整理匯總了一些常用的分詞工具、詞云圖工具,覺得有用的可以收藏一下。
1.分詞難點
1.1.有多種分詞標準,不同的分詞標準會對下游結果產生影響
1.2.如何識別未登錄詞 OOV
1.3. 歧義
組合型歧義;
交集型歧義;
真歧義;
2.分詞方法
2.1.基于詞典(字符串匹配分詞算法)
(1)正向最大匹配法 FMM:對文本從左至右切出最長的詞
(2)逆向最大匹配法 BMM:對文本從右至左切出最長的詞
(3)N-最短路徑方法
(4)雙向匹配分詞法:由左到右、由右到左兩次掃描
缺點:對歧義和未登錄詞處理不好。
2.2.機器學習
(1)隱馬爾科夫模型 HMM
(2)條件隨機場模型 CRF
(3)最大熵模型 ME
(4)N元文法模型 N-gram
(5)支持向量機 SVM
(6)深度學習基于神經網絡的分詞器
textCNN
序列到序列模型 seq2seq
注意力機制 Attention Mechanism
BERT模型
缺點:訓練集需要大量人工標注語料、整理統計特征。
優點:不僅考慮詞頻,還考慮上下文,可有效消除歧義、識別未登錄詞。
2.3.其他
(1)詞向量轉換/特征降維
詞嵌入 Word2Vec連續詞袋模型 CBOW
Skip-gram
子詞嵌入 FastText
全局向量詞嵌入 GloVe
(2)TF-IDF
TF 表示某個詞語在一個語料中出現的頻次;DF 表示在全部語料中,共有多少個語料出現了這個詞,IDF 是DF的倒數(取log);TF- IDF 越大,表示這個詞越重要。
常用于關鍵詞提取。
(3)TextRank
根據詞語之間的鄰近關系構建網絡,通過PageRank迭代計算出詞語的排名;
常用于關鍵詞提取、自動摘要提取。
3.分詞工具
3.1.開源或免費
(1)Hanlp分詞器
https://github.com/hankcs/HanLP
最短路徑分詞,有中文分詞、詞性標注、新詞識別、命名實體識別、自動摘要、文本聚類、情感分析、詞向量word2vec等功能,支持自定義詞典;
采用HMM、CRF、TextRank、word2vec、聚類、神經網絡等算法;
支持Java,C++,Python語言;
(2)結巴分詞
https://github.com/yanyiwu/cppjieba
找出基于詞頻的最大切分組合,有中文分詞、關鍵詞提取、詞性標注功能,支持自定義詞典;
采用HMM模型、 Viterbi算法;
支持Java,C++,Python語言;
(3)哈工大的LTP
https://github.com/HIT-SCIR/ltp
有中文分詞、詞性標注、句法分析等功能;
商用需付費;調用接口,每秒請求的次數有限制;
編寫語言有C++、Python、Java版;
(4)清華大學THULAC
https://github.com/thunlp/THULAC
有中文分詞、詞性標注功能;
有Java、Python和C++版本;
(5)北京大學 pkuseg
https://github.com/lancopku/PKUSeg-python
支持按領域分詞、有詞性標注功能、支持用戶自訓練模型;
基于CRF模型、自研的ADF訓練方法;
有python版本;
(6)斯坦福分詞器
https://nlp.stanford.edu/software/segmenter.shtml
支持多語言分詞包括中英文,提供訓練模型接口,也可用已有模型,但速度較慢;
Java實現的CRF算法;
(7)KCWS分詞器
https://github.com/koth/kcws
有中文分詞、詞性標注功能,支持自定義詞典;
采用word2vec、Bi-LSTM、CRF算法;
(8)ZPar
https://github.com/frcchang/zpar/releases
有中文、英文、西班牙語分詞、詞性標注;
C++語言編寫;
(9)IKAnalyzer
https://github.com/wks/ik-analyzer
有中文分詞功能,支持自定義詞典;
(10)Jcseg
https://gitee.com/lionsoul/jcseg
有中文分詞、關鍵詞提取、自動摘要、詞性標注、實體識別等功能,支持自定義詞典;
基于mmseg、textRank、BM25等算法;
(11)FudanNLP
https://github.com/FudanNLP/fnlp
中文分詞 詞性標注 實體名識別 關鍵詞抽取等;
(12)SnowNLP
https://github.com/isnowfy/snownlp
有中文分詞、詞性標注、情感分析、文本分類、提取關鍵詞等功能;
基于HMM、Naive Bayes、TextRank、tf-idf等算法;
Python類庫;
(13)ansj分詞器
https://github.com/NLPchina/ansj_seg
有中文分詞、人名識別、詞性標注、用戶自定義詞典等功能;
基于n-Gram+CRF+HMM算法;
(14)NLTK
https://github.com/nltk/nltk
擅長英文分詞,也支持中文分詞處理,但建議先用其他分詞工具對中文語料分詞,再用它的處理功能;
python庫;
(15)庖丁解牛
https://code.google.com/p/paoding
3.2.其他
(1)中科院計算所NLPIR
http://ictclas.nlpir.org/nlpir
具有分詞、詞性標注、新詞識別、命名實體識別、情感分析、關鍵詞提取等功能,支持自定義詞典;
(2)騰訊文智
nlp.qq.com/semantic.cgi
(3)BosonNLP
https://bosonnlp.com/dev/center
(4)百度NLP
https://cloud.baidu.com/doc/NLP/NLP-API.html
(5)阿里云NLP
https://data.aliyun.com/product/nlp
(6)新浪云
https://www.sinacloud.com/doc/sae/python/segment.html
(7)盤古分詞
https://archive.codeplex.com/?p=pangusegment
具有中英文分詞功能,支持自定義詞典;
4.詞云圖制作工具
(1)Wordart
https://wordart.com
(2)Tagul
https://tagul.com
(3)Wordle
http://www.wordle.net
(4)WordItOut
http://worditout.com
(5)Tagxedo
http://www.tagxedo.com
(6)Tocloud
http://www.tocloud.com
(7)圖悅
http://www.picdata.cn
(8)office的PPT插件Pro Word Cloud
(9)BDP個人版
參考資料:
https://www.zhihu.com/question/19578687/answer/190569700
https://zhuanlan.zhihu.com/p/64409753
https://zhuanlan.zhihu.com/p/33261835
https://zhuanlan.zhihu.com/p/58688732
https://zhuanlan.zhihu.com/p/42044315
https://zhuanlan.zhihu.com/p/66155616
https://www.zhihu.com/question/24658552/answer/117539890
https://blog.csdn.net/nawenqiang/article/details/80847087
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的python 分词工具训练_中文分词入门和分词工具汇总攻略的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python创建模块文件夹_python
- 下一篇: python显示语言错误_Python错