【注意】如果寻找分词和文本分析软件,为了完成内容分析和其他文本研究任务,直接使用集搜客分词和文本分析软件就可以了。本文是为了讲解集搜客分词和文本分析的实现原理,是给产品设计者和开发者看的。

最近在整理自然语言处理的相关知识图谱,关于中文分词这块,我们梳理了一些入门的知识点,并且整理汇总了一些常用的分词工具、词云图工具,觉得有用的可以收藏一下。

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

python 分词工具训练_中文分词入门和分词工具汇总攻略相关推荐

  1. python 分词工具训练_Python中文分词工具大合集:安装、使用和测试

    这篇文章事实上整合了前面两篇文章的相关介绍,同时添加一些其他的Python中文分词相关资源,甚至非Python的中文分词工具,仅供参考. 首先介绍之前测试过的8款中文分词工具,这几款工具可以直接在AI ...

  2. python词库介绍_中文分词原理及常用Python中文分词库介绍

    转自 进击的Coder 公众号 原理 中文分词,即 Chinese Word Segmentation,即将一个汉字序列进行切分,得到一个个单独的词.表面上看,分词其实就是那么回事,但分词效果好不好对 ...

  3. 结巴分词关键词相似度_中文文本相似度计算工具集

    [磐创AI导读]:前两篇文章中我们介绍了一些机器学习不错的项目合集和深度学习入门资源合集,本篇文章将对中文文本相似度计算工具做一次汇总.喜欢我们文章的小伙伴,欢迎大家点击上方蓝字关注我们的公众号:磐创 ...

  4. python双向最大匹配算法_中文分词算法 之 基于词典的逆向最大匹配算法

    在之前的博文中介绍了基于词典的正向最大匹配算法,用了不到50行代码就实现了,然后分析了词典查找算法的时空复杂性,最后使用前缀树来实现词典查找算法,并做了3次优化. 下面我们看看基于词典的逆向最大匹配算 ...

  5. java分词 词权重_分析牛:查询分词权重,巧妙布局网页关键词

    今天和大家分享一个纯干货,关键词的布局,也许很多人会说,这个还不容易,title出现一次,keywords出现一次,description在出现一次,然后正文的H标签里在出现一次,最后在每段的开头,末 ...

  6. python 文本分类卡方检验_中文文本分类:你需要了解的10项关键内容

    文本分类指的是计算机通过算法对输入的文本按照一定的类目体系进行自动化归类的过程.在人工智能浪潮席卷全球的今天,文本分类技术已经被广泛地应用在文本审核.广告过滤.情感分析和反黄识别等NLP领域.本文从达 ...

  7. 新手入门python的注意事项_【新手入门Python语言的方法】

    2018年编程语言榜,Python位居榜首,很多学员对这门表示有着强烈的兴趣. 中公优教育小编这次就来谈谈Python入门方法. 下面直接进入今天的主题: 学编程,python算是一个不错的选择.因为 ...

  8. python分为哪几个模块_干货:入门Python重点学哪几个模块才能成为高手?

    终于有时间写写作业了,入门python算是入了好几次了吧,包括自学的,其他课程学的.因为这关的基础之前我已经学过好几遍了,很多代码我就不放了,这里主要把入门经验交流分享下. python算是我接触到的 ...

  9. 什么是python中子类父类_零基础入门:python中子类继承父类的__init__方法实例

    前言: 今天为大家带来的内容是零基础入门:python中子类继承父类的__init__方法实例!具有不错的参考意义,希望在此能够帮助到各位!(喜欢的话记得点赞转发关注不迷路哦) 使用Python写过面 ...

最新文章

  1. TCP断开连接为什么是4次挥手?
  2. html第三方接口,关于调用三方平台接口与推送接口的总结(2020.7.27)
  3. struct 与class 的区别?
  4. python输出二进制数_二进制中1的个数(python)
  5. 中文只占一个字符_一文搞懂字符和字节的含义
  6. ENVI5.4完美实现MODIS NDVI数据格式转换和投影变换
  7. 微信小程序的多选改变样式_微信小程序radio的样式修改
  8. 《京华烟云》—— 读后总结
  9. c语言健身房会员管理系统,健身房会员管理系统c#.net
  10. 100: cf 878C set+并查集+链表
  11. nyoj 236 心急的C小加(贪心)
  12. 杀毒软件 对应的进程名称
  13. 如何学习摸具设计?怎样学习摸具设计?学习摸具设计的方法。
  14. Win10 清理备用内存
  15. 基于51单片机的数字气压计
  16. Binding的学习与使用
  17. 基于matlab的混合波束成形仿真
  18. PP生产计划-Routing工艺路线
  19. 搜索:多模态搜索算法实践【工业界:将其他模态(视频、音频)的信息降维到文本模态】【学术界:将所有模型信息映射到公共向量空间】
  20. Linux内核分析 笔记七 可执行程序的装载 ——by王玥

热门文章

  1. 二叉树的遍历(前,中,后)
  2. CascadingStyleSheets
  3. reactjs redux chrome扩展插件
  4. go包package的使用细节
  5. shell如果文件夹不存在则创建
  6. Scala变量介绍及入门示例
  7. geotools学习(一)IntelliJ快速入门
  8. golang变量使用细节
  9. Java对象的创建过程
  10. 为什么阿里巴巴Java开发手册中不允许用Executors去创建线程池?