中文分词:分词工具及使用实践总结

中文分词:分词工具及使用实践总结

引子: 前几篇文章我们介绍了,中文分词的历程,从机械分词、机器学习分词、深度学习分词方面,讲解了分词算法以及相应的代码实践。今天,我们主要去看看在开源工作中,有哪些在中文场景下,进行中文分词的工具,能够让我们在自己的项目中,快速上手并应用。

回顾:

  1. 中文分词总结:历程、问题、发展
  2. 中文分词:机械分词算法详解与实践总结
  3. 中文分词:机器学习分词算法详解与实践总结【ing】
  4. 中文分词:深度学习分词算法详解与实践总结【ing】

中文分词(Chinese Word Segmentation,CWS)是自然语言处理(NLP)的基础任务之一,其效果直接影响文本分析、情感分析、机器学习等下游任务的质量。本次对 13 种主流中文分词工具 进行总结并简单测评,涵盖通用工具与垂域能力,旨在为开发者提供选型参考。

01-jieba

具体实践与说明,可看项目:https://github.com/liu673/Awesome-Chinese-Word-Segmentation-Tools

  • 简介:jieba是Python中文分词库,支持精确、全模式和搜索引擎模式,基于统计词典与动态规划算法实现高效分词。
  • github地址:https://github.com/fxsjy/jieba
  • 开源协议:MIT license
  • 下载:pip install jieba
  • 测试案例及使用说明:01-jieba.py
    • 测试案例中jieba版本为0.42.1

02-cutword

具体实践与说明,可看项目:https://github.com/liu673/Awesome-Chinese-Word-Segmentation-Tools

  • 简介:cutword 是一个中文分词库,字典文件根据截止到2024年1月份的最新数据统计得到,词频更加合理。
    基于ac自动机实现的分词算法,分词速度是jieba的两倍。
  • github地址:https://github.com/liwenju0/cutword
  • 开源协议:Apache-2.0 license
  • 下载:pip install cutword
  • 测试案例及使用说明:02-cutword.py
    • 测试案例中cutword版本为0.1.1

03-pkuseg

具体实践与说明,可看项目:https://github.com/liu673/Awesome-Chinese-Word-Segmentation-Tools

  • 简介:pkuseg
    是基于论文Luo et. al, 2019
    的工具包。其简单易用,支持细分领域分词,有效提升了分词准确度。

  • github地址:https://github.com/lancopku/pkuseg-python

  • 开源协议:MIT license

  • 下载:pip install pkuseg

  • 测试案例及使用说明:03-pkuseg.py

    • 测试案例中pkuseg版本为0.0.25
  • 目前pkuseg支持细分领域模型的分词

    {
      "mixed": "混合领域,默认模型", 
      "default_v2": "领域自适应通用模型,相较于默认模型规模更大,但泛化性能更好",
      "medicine": "医药领域模型", 
      "news": "MSRA(新闻语料)模型",
      "web": "微博(网络文本语料)模型",
      "tourism": "旅游领域模型",
      "art": "艺术领域模型",
      "entertainment": "娱乐体育领域模型",
      "science": "科技领域模型",
      "postag": "词性标注模型,这个在参数postag=True时使用"
    }
    
    

    细分领域模型下载地址:https://github.com/lancopku/pkuseg-python/releases

04-baidu lac

具体实践与说明,可看项目:https://github.com/liu673/Awesome-Chinese-Word-Segmentation-Tools

  • 简介:LAC全称Lexical Analysis of Chinese,是百度自然语言处理部研发的一款联合的词法分析工具,实现中文分词、词性标注、专名识别等功能。

  • github地址:https://github.com/baidu/lac

  • 开源协议:Apache-2.0 license

  • 下载:pip install lac

  • 测试案例及使用说明:04-baidu_lac.py

    • 测试案例中lac版本为2.1.2

    TIPS:
    注意paddlepaddle版本(paddlepaddle为2.5.2)、python版本(python为3.10.18)、lac版本(lac为2.1.2)
    ,得三者匹配(在这吐槽baidu,尾大不掉,在各个开源上摆烂了)

05-jiagu

具体实践与说明,可看项目:https://github.com/liu673/Awesome-Chinese-Word-Segmentation-Tools

  • 简介:Jiagu使用大规模语料训练而成。将提供中文分词、词性标注、命名实体识别、情感分析、知识图谱关系抽取、关键词抽取、文本摘要、新词发现、情感分析、文本聚类等常用自然语言处理功能。
  • github地址:https://github.com/ownthink/Jiagu
  • 开源协议:MIT license
  • 下载:pip install jiagu
  • 测试案例及使用说明:05-jiagu.py
    • 测试案例中jiagu版本为0.2.3

06-HanLP

具体实践与说明,可看项目:https://github.com/liu673/Awesome-Chinese-Word-Segmentation-Tools

  • 简介:HanLP覆盖新闻、社交媒体、金融、法律等多个领域,在分词标准上,HanLP提供细粒度和粗粒度两种颗粒度,细粒度适合搜索引擎业务,粗粒度适合文本挖掘业务。
  • github地址:https://github.com/hankcs/HanLP
    • pyhanlp:https://github.com/hankcs/pyhanlp
  • 开源协议:Apache-2.0 license
  • 下载:pip install pyhanlp
  • 测试案例及使用说明:06-pyhanlp.py
    • 测试案例中pyhanlp版本为0.1.89

07-jiojio

具体实践与说明,可看项目:https://github.com/liu673/Awesome-Chinese-Word-Segmentation-Tools

  • 简介:基于 CPU 的高性能、持续优化 中文分词器,支持中文分词、词性标注、添加自定义词典(静态、动态)
  • github地址:https://github.com/dongrixinyu/jiojio
  • 开源协议:GPL-3.0 license
  • 下载:pip install jiojio
  • 测试案例及使用说明:07-jiojio.py
    • 测试案例中jiojio版本为1.2.8

08-HarvestText

具体实践与说明,可看项目:https://github.com/liu673/Awesome-Chinese-Word-Segmentation-Tools

  • 简介:HarvestText是一个专注无(弱)监督方法,能够整合领域知识(如类型,别名)对特定领域文本进行简单高效地处理和分析的库。其中分词器用的应该是jieba分词。
  • github地址:https://github.com/blmoistawinde/HarvestText
  • 开源协议:MIT license
  • 下载:pip install harvesttext
  • 测试案例及使用说明:08-harvesttext.py
    • 测试案例中harvesttext版本为0.8.2.1

09-pynlpir

具体实践与说明,可看项目:https://github.com/liu673/Awesome-Chinese-Word-Segmentation-Tools

  • 简介:NLPIR大数据语义智能分析平台是针对大数据内容处理的需要,融合了网络精准采集、自然语言理解、文本挖掘和网络搜索技术的十三项功能:精准采集、文档转换、新词发现、批量分词、语言统计、文本聚类、文本分类、摘要实体、情感分析、智能过滤、文档去重、全文检索、编码转换。
  • github地址:https://github.com/tsroten/pynlpir
  • 开源协议:MIT license
  • 下载:pip install pynlpir,然后魔法运行 pynlpir update
  • 测试案例及使用说明:09-pynlpir.py
    • 测试案例中pynlpir版本为0.6.1

10-THULAC

具体实践与说明,可看项目:https://github.com/liu673/Awesome-Chinese-Word-Segmentation-Tools

  • 简介:一个高效的中文词法分析工具包,具有中文分词和词性标注功能。
  • github地址:https://github.com/thunlp/THULAC-Python
  • 开源协议:MIT license
  • 下载:pip install thulac
  • 测试案例及使用说明:10-thulac.py
    • 测试案例中thulac版本为0.2.2

11-macropodus

具体实践与说明,可看项目:https://github.com/liu673/Awesome-Chinese-Word-Segmentation-Tools

  • 简介:Macropodus是一个以Albert+BiLSTM+CRF网络架构为基础,用大规模中文语料训练的自然语言处理工具包。将提供中文分词、词性标注、命名实体识别、关键词抽取、文本摘要、新词发现、文本相似度、计算器、数字转换、拼音转换、繁简转换等常见NLP功能。
  • github地址:https://github.com/yongzhuo/Macropodus
  • 开源协议:MIT license
  • 下载:pip install macropodus
  • 测试案例及使用说明:11-macropodus.py
    • 测试案例中macropodus版本为0.0.7

12-pyltp & ltp

具体实践与说明,可看项目:https://github.com/liu673/Awesome-Chinese-Word-Segmentation-Tools

  • 简介:LTP(Language Technology Platform) 提供了一系列中文自然语言处理工具,用户可以使用这些工具对于中文文本进行分词、词性标注、句法分析等等工作。
  • github地址:https://github.com/HIT-SCIR/pyltp
  • 开源协议:MIT license
  • 测试案例及使用说明:12-pyltp.py
    • 测试案例中pyltp版本为0.4.0

总结

目前是对中文分词的工具进行了简单测评,并没有形成一个完整的测评标准,后续考虑进行测评框架,进行批量测试。

若是从速度上来说的话,可以优先看jieba分词,毕竟这个项目算是最稳定的项目了。在自己的垂域上,最好的方法是添加自己垂域的数据,而后进行训练;或者也可以增加相应的词典,不过这都是一个人工性比较重的工作了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

故事挺秃然

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值