精华内容
下载资源
问答
  • 列举了当前常用的中文分词器及其地址链接,不用再进行网络查找,直接可以进行使用。
  • 常用的中文分词框架

    2020-08-06 09:37:46
    首先介绍之前测试过的8款中文分词工具,这几款工具可以直接在AINLP... Ubuntu16.04 的环境下测试及安装这些中文分词器。 再附加介绍12款其他的中文分词工具或者中文分词模块,最后的两款fnlp和ansj是比较棒的java

    首先介绍之前测试过的8款中文分词工具,这几款工具可以直接在AINLP公众号后台在线测试,严格的说,它们不完全是纯粹的中文分词工具,例如SnowNLP, Thulac, HanLP,LTP,CoreNLP都是很全面的(中文)自然语言处理工具。安装这些模块其实很简单,只要按官方文档的方法安装即可,以下做个简单介绍,主要是在Python3.x & Ubuntu16.04 的环境下测试及安装这些中文分词器。

    再附加介绍12款其他的中文分词工具或者中文分词模块,最后的两款fnlp和ansj是比较棒的java中文分词工具,貌似还没有python接口,记录一下。这些中文分词工具我没有测试,感兴趣的同学可以动手试试。

    1) Jieba: https://github.com/fxsjy/jieba

    “结巴”中文分词:做最好的 Python 中文分词组件(这个还是比较好用的)

    "Jieba" (Chinese for "to stutter") Chinese text segmentation: built to be the best Python Chinese word segmentation module.

    特点
    支持三种分词模式:

    精确模式,试图将句子最精确地切开,适合文本分析;
    全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;
    搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
    支持繁体分词

    支持自定义词典

    MIT 授权协议

    安装:

    代码对 Python 2/3 均兼容

    全自动安装:easy_install jieba 或者 pip install jieba / pip3 install jieba
    半自动安装:先下载 http://pypi.python.org/pypi/jieba/ ,解压后运行 python setup.py install
    手动安装:将 jieba 目录放置于当前目录或者 site-packages 目录

    中文分词示例:

     

    2) SnowNLP: https://github.com/isnowfy/snownlp

    SnowNLP是一个python写的类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于是写了一个方便处理中文的类库,并且和TextBlob不同的是,这里没有用NLTK,所有的算法都是自己实现的,并且自带了一些训练好的字典。注意本程序都是处理的unicode编码,所以使用时请自行decode成unicode。

    Features
    中文分词(Character-Based Generative Model)
    词性标注(TnT 3-gram 隐马)
    情感分析(现在训练数据主要是买卖东西时的评价,所以对其他的一些可能效果不是很好,待解决)
    文本分类(Naive Bayes)
    转换成拼音(Trie树实现的最大匹配)
    繁体转简体(Trie树实现的最大匹配)
    提取文本关键词(TextRank算法)
    提取文本摘要(TextRank算法)
    tf,idf
    Tokenization(分割成句子)
    文本相似(BM25)
    支持python3(感谢erning)

    安装:
    $ pip install snownlp

    中文分词示例:

     

    3) PkuSeg: https://github.com/lancopku/pkuseg-python

    pkuseg多领域中文分词工具; The pkuseg toolkit for multi-domain Chinese word segmentation

    主要亮点
    pkuseg具有如下几个特点:

    多领域分词。不同于以往的通用中文分词工具,此工具包同时致力于为不同领域的数据提供个性化的预训练模型。根据待分词文本的领域特点,用户可以自由地选择不同的模型。 我们目前支持了新闻领域,网络领域,医药领域,旅游领域,以及混合领域的分词预训练模型。在使用中,如果用户明确待分词的领域,可加载对应的模型进行分词。如果用户无法确定具体领域,推荐使用在混合领域上训练的通用模型。各领域分词样例可参考 example.txt。
    更高的分词准确率。相比于其他的分词工具包,当使用相同的训练数据和测试数据,pkuseg可以取得更高的分词准确率。
    支持用户自训练模型。支持用户使用全新的标注数据进行训练。
    支持词性标注。

    编译和安装
    目前仅支持python3
    为了获得好的效果和速度,强烈建议大家通过pip install更新到目前的最新版本
    通过PyPI安装(自带模型文件):

    pip3 install pkuseg
    之后通过import pkuseg来引用
    建议更新到最新版本以获得更好的开箱体验:

    pip3 install -U pkuseg

    中文分词示例:

     

    4) THULAC: https://github.com/thunlp/THULAC-Python

    THULAC:一个高效的中文词法分析工具包

    THULAC(THU Lexical Analyzer for Chinese)由清华大学自然语言处理与社会人文计算实验室研制推出的一套中文词法分析工具包,具有中文分词和词性标注功能。THULAC具有如下几个特点:

    能力强。利用我们集成的目前世界上规模最大的人工分词和词性标注中文语料库(约含5800万字)训练而成,模型标注能力强大。
    准确率高。该工具包在标准数据集Chinese Treebank(CTB5)上分词的F1值可达97.3%,词性标注的F1值可达到92.9%,与该数据集上最好方法效果相当。
    速度较快。同时进行分词和词性标注速度为300KB/s,每秒可处理约15万字。只进行分词速度可达到1.3MB/s。
    编译和安装
    python版(兼容python2.x版和python3.x版)
    从github下载(需下载模型文件,见获取模型)

    将thulac文件放到目录下,通过 import thulac 来引用
    thulac需要模型的支持,需要将下载的模型放到thulac目录下。
    pip下载(自带模型文件)

    pip install thulac
    通过 import thulac 来引用

    中文分词示例:

     

    5) pyhanlp: https://github.com/hankcs/pyhanlp

    pyhanlp: Python interfaces for HanLP

    自然语言处理工具包HanLP的Python接口, 支持自动下载与升级HanLP,兼容py2、py3。

    安装
    pip install pyhanlp

    注意pyhanlp安装之后使用的时候还会自动下载相关的数据文件,zip压缩文件600多M,速度有点慢,时间有点长

    中文分词示例:


    6)FoolNLTK:https://github.com/rockyzhengwu/FoolNLTK

    特点
    可能不是最快的开源中文分词,但很可能是最准的开源中文分词
    基于BiLSTM模型训练而成
    包含分词,词性标注,实体识别, 都有比较高的准确率
    用户自定义词典
    可训练自己的模型
    批量处理

    定制自己的模型
    get clone https://github.com/rockyzhengwu/FoolNLTK.git
    cd FoolNLTK/train
    详细训练步骤可参考文档

    仅在linux Python3 环境测试通过

    安装,依赖TensorFlow, 会自动安装:
    pip install foolnltk

    中文分词示例:


    7) LTP: https://github.com/HIT-SCIR/ltp

    pyltp: https://github.com/HIT-SCIR/pyltp

    pyltp 是 语言技术平台(Language Technology Platform, LTP) 的 Python 封装。

    安装 pyltp
    注:由于新版本增加了新的第三方依赖如dynet等,不再支持 windows 下 python2 环境。
    使用 pip 安装
    使用 pip 安装前,请确保您已安装了 pip

    $ pip install pyltp
    接下来,需要下载 LTP 模型文件。

    下载地址 - `模型下载 http://ltp.ai/download.html`_
    当前模型版本 - 3.4.0
    注意在windows下 3.4.0 版本的 语义角色标注模块 模型需要单独下载,具体查看下载地址链接中的说明。
    请确保下载的模型版本与当前版本的 pyltp 对应,否则会导致程序无法正确加载模型。

    从源码安装
    您也可以选择从源代码编译安装

    $ git clone https://github.com/HIT-SCIR/pyltp
    $ git submodule init
    $ git submodule update
    $ python setup.py install
    安装完毕后,也需要下载相应版本的 LTP 模型文件。

    这里使用"pip install pyltp"安装,安装完毕后在LTP模型页面下载模型数据:http://ltp.ai/download.html,我下载的是 ltp_data_v3.4.0.zip ,压缩文件有600多M,解压后1.2G,里面有不同NLP任务的模型。

    中文分词示例:

     

    8) Stanford CoreNLP: https://stanfordnlp.github.io/CoreNLP/
    stanfordcorenlp: https://github.com/Lynten/stanford-corenlp

    这里用的是斯坦福大学CoreNLP的python封装:stanfordcorenlp

    stanfordcorenlp is a Python wrapper for Stanford CoreNLP. It provides a simple API for text processing tasks such as Tokenization, Part of Speech Tagging, Named Entity Reconigtion, Constituency Parsing, Dependency Parsing, and more.

    安装很简单,pip即可:

    pip install stanfordcorenlp

    但是要使用中文NLP模块需要下载两个包,在CoreNLP的下载页面下载模型数据及jar文件,目前官方是3.9.1版本:

    https://nlp.stanford.edu/software/corenlp-backup-download.html

    第一个是:stanford-corenlp-full-2018-02-27.zip
    第二个是:stanford-chinese-corenlp-2018-02-27-models.jar

    前者解压后把后者也要放进去,否则指定中文的时候会报错。

    中文分词使用示例:

     

    9) NLPIR: NLPIR大数据语义智能分析平台
    https://github.com/NLPIR-team/NLPIR
    Python接口:https://github.com/tsroten/pynlpir

    10)DeepNLP: Deep Learning NLP Pipeline implemented on Tensorflow
    深度学习中文(分词)NLP工具
    https://github.com/rockingdingo/deepnlp

    11) kcws: Deep Learning Chinese Word Segment
    深度学习中文分词
    https://github.com/koth/kcws

    12) ID-CNN-CWS: Source codes and corpora of paper "Iterated Dilated Convolutions for Chinese Word Segmentation"
    基于迭代卷积神经网络的中文分词
    https://github.com/hankcs/ID-CNN-CWS

    13)Genius: a chinese segment base on crf
    中文分词 (Python) Genius是一个开源的python中文分词组件,采用 CRF(Conditional Random Field)条件随机场算法。
    https://github.com/duanhongyi/genius

    14)YaYaNLP:Pure python NLP toolkit
    纯python编写的中文自然语言处理包
    https://github.com/Tony-Wang/YaYaNLP

    15)小明NLP:提供中文分词, 词性标注, 拼写检查,文本转拼音,情感分析,文本摘要,偏旁部首
    https://github.com/SeanLee97/xmnlp

    16)loso: Chinese segmentation library
    https://github.com/fangpenlin/loso

    17) yaha:"哑哈"中文分词
    更快或更准确,由你来定义。通过简单定制,让分词模块更适用于你的需求。 "Yaha" You can custom your Chinese Word Segmentation efficiently by using Yaha
    https://github.com/jannson/yaha

    18) ChineseWordSegmentation:无需语料库的中文分词
    https://github.com/Moonshile/ChineseWordSegmentation

    19) fnlp: 中文自然语言处理工具包 Toolkit for Chinese natural language processing
    https://github.com/FudanNLP/fnlp
    这一款出自复旦NLP组,Java实现,貌似还没有Python接口。

    20)ansj分词
    ict的真正java实现.分词效果速度都超过开源版的ict. 中文分词,人名识别,词性标注,用户自定义词典
    这一款也是一个很棒的中文分词工具,不过貌似也没有很好的Python接口。

    展开全文
  • 最近接触一个翻译系统项目,里面记忆库使用到了lucene,因此需要对要翻译文本进行分词,...如果要翻译源语言是中文,采用中文分词器2.中文分词器:smartcn与IKanalyzer网上百度了很多,但是都没有文章能具体...

    最近接触一个翻译系统的项目,里面的记忆库使用到了lucene,因此需要对要翻译的文本进行分词,

    如果要翻译的源语言是英文,采用英文分词器

    1.英文分词器:StandardAnalyzer

    优点:支持中文采用的方法为单字切分。他会将词汇单元转换成小写形式,并去除停用词和标点符号。


    如果要翻译的源语言是中文,采用中文分词器

    2.中文分词器:smartcn与IKanalyzer


    网上百度了很多,但是都没有文章能具体说明两者的优缺点,两者的分词效果怎么样?几乎所有有关两者之间的区别都是类似“开源中文分词框架分词效果对比smartcn与IKanalyzer”这个标题的文章,内容都是一样的。在这里为了加深一下印象,也在这里敲一遍。

    总结:

    i、二者对于中文的分词效果相对其他分词器,效果都更加,分词效果都是值得肯定的。
    ii、smartcn分词器是lucene4.6版本之后自带的,中文分词效果不错,英文分词有问题,Lucene分词之后变成了Luncn
    iii、IKAnalyzer分词之后,碎片太多,可以和人工分析效果最对比。
    iiii、从自定义词库的角度做对比,因为smartcn是lucene自带的,目前不支持自定义词库,成为致命缺陷,因此只能放弃。

    后期如果看到有更好的总结,再来这里补充........

    展开全文
  • 目录前言安装使用IK分词器 前言 我们知道当我们存储一个文档...而最常用的中文分词器就是IK分词器,所以下面就简单介绍一下IK分词器的安装与使用 安装 ES提供了一个脚本elasticsearch-plugin(windows下为elasticsearc

    前言

    我们知道当我们存储一个文档到elasticsearch,elasticsearch会使用分词器从文档中取出若干词元来支持索引的存储和搜索。elasticsearch内置了很多分词器,但内置的分词器对中文的处理不好,只会一个字一个字的分,无法形成词语。所以我们还需要安装一个中文分词插件。而最常用的中文分词器就是IK分词器,所以下面就简单介绍一下IK分词器的安装与使用


    安装

    ES提供了一个脚本elasticsearch-plugin(windows下为elasticsearch-plugin.bat)来安装插件,脚本位于ES安装目录的bin目录下。elasticsearch-plugin脚本可以有三种命令,靠参数区分:

    1、 elasticsearch-plugin install 插件地址
    install 参数指定的命令是安装指定的插件到当前ES节点中。
    
    2、 elasticsearch-plugin list
    list参数指定的命令是显示当前ES节点已经安装的插件列表。
    
    3、 elasticsearch-plugin remove 插件名称
    remove 参数指定的命令是删除已安装的插件。
    

    插件地址我们可以使用远程的地址,也可以将插件下载到本地,然后使用本地的文件地址

    注:使用本地文件地址,需要带file:///协议头
    如:

    linux:
    elasticsearch-plugin  install file:///home/elasticsearch/elasticsearch-analysis-ik-x.x.x.zip
    
    windows:
    elasticsearch-plugin.bat install file:///E:/elasticsearch/elasticsearch-analysis-ik-x.x.x.zip
    

    IK分词器的版本和下载地址在以下地址

    链接: https://github.com/medcl/elasticsearch-analysis-ik/releases
    .

    注:分词器版本需要与你安装的elasticsearch版本一致

    安装中文分词插件,在elasticsearch的bin目录下执行以下命令,我的ES版本为6.2.2,所以分词器的版本也是6.2.2

    elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.2.2/elasticsearch-analysis-ik-6.2.2.zip
    

    安装完成后,输入elasticsearch-plugin list指令,如果安装成功,则会显示插件名称,如下

    E:\soft\elasticsearch-6.2.2\bin>elasticsearch-plugin list
    analysis-ik
    

    安装成功后,我们重新启动一下我们的Elasticsearch,以便这个plugin能被成功加载。


    使用IK分词器

    ik插件为我们提供了两个分词器,分别是ik_max_word 和ik_smart

    我们可以使用_analyze方法来看一下分词器的效果

    使用方式为:

    发送以下post请求

    http://localhost:9200/_analyze
    {  
        "analyzer": "ik_max_word",
        "text": "我们能做得更好,也应该做得更好"  
    }
    

    analyzer:用来指定使用的分词器
    text:需要进行分词的文本

    然后我们的输入就会被分词器分成一个一个的小部分词语
    在这里插入图片描述

    两个分词器的比较:

    我比较了一下这两个分词器的分词结果,发现ik_max_word比ik_smart得到的中文分词更多,这可能也是这两个分词器名称的由来

    ik_max_word对中文的支持更全面,但是存储上的开销也较大。ik_smart既能满足英文分词的要求,也能满足正常的中文分词需求,且较智能和轻量,占用存储也较小,如果不是对中文分词要求比较严格,推荐使用ik_smart。

    _analyze只适用于测试的时候,真实使用应该在我们创建文档或者索引时在mapping中定义使用的分词器

    例:

    PUT /my_index/_mapping/my_type
    {
        "my_type": {
            "properties": {
                "title": {
                    "type":     "text",
                    "analyzer": "ik_max_word",
                    "search_analyzer": "ik_smart"
                }
            }
        }
    }
    

    分词器主要有两种情况会被使用:

    第一种是插入文档时,将text类型的字段做分词然后插入倒排索引,

    第二种就是在查询时,先对要查询的text类型的输入做分词,再去倒排索引搜索

    如果想要让 索引 和 查询 时使用不同的分词器,ElasticSearch也是能支持的,只需要在字段上加上search_analyzer参数

    在索引时,只会去看字段有没有定义analyzer,有定义的话就用定义的,没定义就用ES预设的

    在查询时,会先去看字段有没有定义search_analyzer,如果没有定义,就去看有没有analyzer,再没有定义,才会去使用ES预设的

    展开全文
  • NLP中常用的分词器

    2018-04-17 19:34:08
    众所周知,NLP即自然语言...一、Mmseg4j:基于正向最大匹配(https://code.google.com/p/mmseg4j/) mmseg4j用Chih-HaoTsai的MMSeg算法实现的中文分词器,并实现lucene的analyzer和solr的TokenizerFactory以方便在...

           众所周知,NLP即自然语言处理,那么在NLP中常用的分词器都有哪些呢?本文主要介绍NLP中常用的分词器。


    一、Mmseg4j:基于正向最大匹配(https://code.google.com/p/mmseg4j/)

          mmseg4j用Chih-HaoTsai的MMSeg算法实现的中文分词器,并实现lucene的analyzer和solr的TokenizerFactory以方便在Lucene和Solr中使用。MMSeg算法有两种分词方法:Simple和Complex,都是基于正向最大匹配。Complex加了四个规则过虑。官方说:词语的正确识别率达到了98.41%。mmseg4j已经实现了这两种分词算法。


    二、结巴分词:(https://pypi.python.org/pypi/jieba/)

           结巴分词支持三种分词模式:1.精确模式,试图将句子最精确的切开,适合文本分析;2.全模式,把句子中所有的可以成词的词语都扫描出来,速度非常快,但是不能解释歧义;3.搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。


    三、Ansj:(https://github.com/NLPchina/ansj_seg)

           基于n-Gram+CRF+HMM的中文分词,支持ES比较好。


    四、IKAnalyzer:(https://code.google.com/archive/p/ik-analyzer/)

    IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。正向迭代最细粒度切分算法,支持ES比较好。

    展开全文
  • 常用的中文分词器 IK Analyzer hanlp中文分词器 彩蛋 概述  上一篇博文记录了elasticsearch插件安装和管理, 在地大物博的祖国使用es,不得不考虑中文分词器,es内置的分词器对中文分词的支持用惨不忍睹来...
  • StandardAnalyzer根据空格和符号来完成分词,还可以完成数字、字母、E-mail地址、IP地址以及中文字符分析处理,还可以支持过滤词表,用来代替StopAnalyzer能够实现过滤功能。 3、 SimpleAnalyzer Si...
  • 中文分词器的总结

    2017-07-18 10:02:24
    0 —— Lucene & Nutch是一种神奇的东西,包含了语义分析,自然语言处理,中文分析,网络爬取,索引建立,html解析等,下面介绍几种常用的中文分词工具  图 搜索引擎的框架 1
  • 不像英文那样单词之间有空格作为天然的分界线, 中文词语之间没有明显界限。...隐马尔科夫模型(HMM)是中文分词中一类常用的统计模型, 本文将使用该模型构造分词器。关于HMM模型的介绍可以参见隐式马尔
  • 讲除了字母以外符号全部去除,并且讲所有字符变为小写,需要注意是这个分词器同样把数据也去除了,同样不支持中文。 StopAnalyzer 这个和SimpleAnalyzer类似,不过比他增加了一个是,在其基础上还...
  • Java有11大开源中文分词器,分别是word分词器,Ansj分词器,Stanford分词器,...这里我就主要介绍Ansj中文分词器,它是一个开源的 Java 中文分词工具,基于中科院的 ictclas 中文分词算法,比其他常用的开源分词工具
  • 不像英文那样单词之间有空格作为天然的分界线, 中文词语之间没有明显界限。...隐马尔科夫模型(HMM)是中文分词中一类常用的统计模型, 本文将使用该模型构造分词器。关于HMM模型的介绍可以参见隐...
  • Java中文分词器Ansj

    千次阅读 2012-11-10 11:19:12
    Java中文分词器Ansj Ansj 是一个开源的 Java 中文分词工具,基于中科院的 ictclas 中文分词算法,比其他常用的开源分词工具(如mmseg4j)的分词准确率更高。 介绍一下Ansj! Ansj中文分词是一款纯...
  • IK:市面常用的中文分词器 拼音分词器:可通过拼音或拼音的首字母检索中文 IK分词器 下载地址 https://github.com/medcl/elasticsearch-analysis-ik 安装方式 1.在github页面找到 releases页签,通过上下页找到...
  • 《 Solr中使用IK-Analyzer实现中文分词器的配置详情 》 关于IK-Analyzer: IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。 采用了特有的“正向迭代最细粒度切分算法”,具有60万字/秒的...
  • Lucene中MMAnalyzer中文分词器

    千次阅读 2014-10-16 00:05:46
    //采用正向最大匹配的中文分词算法,相当于分词粒度等于0  MMAnalyzer analyzer = new MMAnalyzer(); //参数为分词粒度:当字数等于或超过该参数,且能成词,该词就被切分出来  MMAnalyzer analyzer = new
  • ES作为全文检索服务,势必要对原始文本进行内容拆分,然后才能够进行有效索引对吧,而拆分原始内容到一个一个小词或者说语音单元,这部分功能呢是由ES的分词器去完成呢,他本身就内置了许多的分词器,在...
  • ES的常用的中文分词有基于汉字的ik和基于拼音的pinyin https://github.com/medcl/elasticsearch-analysis-ik/releases https://github.com/medcl/elasticsearch-analysis-pinyin 安装的时候...
  • IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始,IKAnalyzer已经推出了3个大版本。最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词...
  • mmseg4j 中文分词器的一些简介整理

    千次阅读 2010-05-14 17:03:00
    在 lucene 中,我们是使用 IndexWriter 调用 Analyzer 将文章切成以词为单位的 Stream,然后生成索引的。lucene 内建的分词器很多,比如:按空白...这些自带的分词器对中文支持多不好,我觉得比较好的中文分词器是 mmse
  • (基于es5.4)先喵几眼github,按照步骤安装好分词器 link:https://github.com/medcl/elasticsearch-analysis-ik 复习一下常用的操作 1.查看集群健康状况 GET /_cat/health?v&pretty 2.查看my_index的mapping...
  • 开源 Java 中文分词器 Ansj

    千次阅读 2012-12-01 12:17:21
    ansj 是一个开源的 Java 中文分词工具,基于中科院的 ictclas 中文分词算法,比其他常用的开源分词工具(如mmseg4j)的分词准确率更高。 在线演示:http://ansj.sdapp.cn/demo/seg.jsp 官网地址:...
  • IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始,IKAnalyzer已经推出了3个大版本。最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词...

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 191
精华内容 76
关键字:

常用的中文分词器