当前位置: 首页 > news >正文

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

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

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

回顾:

  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分词,毕竟这个项目算是最稳定的项目了。在自己的垂域上,最好的方法是添加自己垂域的数据,而后进行训练;或者也可以增加相应的词典,不过这都是一个人工性比较重的工作了。

http://www.lryc.cn/news/584752.html

相关文章:

  • 26-计组-外存
  • Docker-构建镜像并实现LNMP架构
  • 差分和前缀和
  • day01 - 数组part01
  • 如何安装python以及jupyter notebook
  • 黄瓜苦多于意外,苦瓜苦来自本源——“瓜苦”探源
  • BERT模型基本原理及实现示例
  • 强化学习 MDP
  • 从代码生成到智能运维的革命性变革
  • 集成平台业务编排设计器
  • 在虚拟机中安装Linux系统
  • 下一代防火墙-终端安全防护
  • 【数据结构】顺序表(sequential list)
  • Python3邮件发送全指南:文本、HTML与附件
  • 力扣61.旋转链表
  • 【会员专享数据】2013-2024年我国省市县三级逐日SO₂数值数据(Shp/Excel格式)
  • 【Linux基础命令使用】VIM编辑器的使用
  • WinUI3入门17:本地文件存储LocalApplicationData在哪里
  • 企业数据开发治理平台选型:13款系统优劣对比
  • Building Bridges(搭建桥梁)
  • HVV注意事项(个人总结 非技术)
  • 在VMware中安装虚拟机
  • 数据结构 --- 队列
  • XCZU47DR-2FFVG1517I Xilinx FPGA AMD ZynqUltraScale+ RFSoC
  • 超声波刻刀适用于一些对切割精度要求高、材料厚度较薄或质地较软的场景,典型应用场景如下:
  • 测试开发和后端开发到底怎么选?
  • UGF开发记录_3_使用Python一键转换Excle表格为Txt文本
  • 穿梭时空的智慧向导:Deepoc具身智能如何赋予导览机器人“人情味”
  • Qt中处理多个同类型对象共享槽函数应用
  • 广州华锐互动在各领域打造的 VR 成功案例展示​