首页 > 其他分享 >常见的分词方法接口+ jieba自定义领域内的词表然后加载词表进行分词

常见的分词方法接口+ jieba自定义领域内的词表然后加载词表进行分词

时间:2022-12-28 15:03:29浏览次数:64  
标签:jieba github 分词器 自定义 词表 https com 分词


​​中文分词常见方法_mandagod的博客_中文分词​​

另外,我们收集了如下部分分词工具,供参考:

中科院计算所NLPIR ​​http://ictclas.nlpir.org/nlpir/​

ansj分词器 ​https://github.com/NLPchina/ansj_seg

哈工大的LTP ​​https://github.com/HIT-SCIR/ltp​

清华大学THULAC ​https://github.com/thunlp/THULAC

斯坦福分词器 ​​https://nlp.stanford.edu/software/segmenter.shtml​

Hanlp分词器 ​​https://github.com/hankcs/HanLP​

结巴分词 ​​https://github.com/yanyiwu/cppjieba​

KCWS分词器(字嵌入+Bi-LSTM+CRF) ​​https://github.com/koth/kcws​

ZPar ​​https://github.com/frcchang/zpar/releases​

IKAnalyzer ​https://github.com/wks/ik-analyzer

以及部分分词器的简单说明:

哈工大的分词器:主页上给过调用接口,每秒请求的次数有限制。

清华大学THULAC:目前已经有Java、Python和C++版本,并且代码开源。

斯坦福分词器:作为众多斯坦福自然语言处理中的一个包,目前最新版本3.7.0, Java实现的CRF算法。可以直接使用训练好的模型,也提供训练模型接口。

Hanlp分词:求解的是最短路径。优点:开源、有人维护、可以解答。原始模型用的训练语料是人民日报的语料,当然如果你有足够的语料也可以自己训练。

结巴分词工具:基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图 (DAG);采用了动态规划查找最大概率路径, 找出基于词频的最大切分组合;对于未登录词,采用了基于汉字成词能力的 HMM 模型,使用了 Viterbi 算法。

字嵌入+Bi-LSTM+CRF分词器:本质上是序列标注,这个分词器用人民日报的80万语料,据说按照字符正确率评估标准能达到97.5%的准确率,各位感兴趣可以去看看。

ZPar分词器:新加坡科技设计大学开发的中文分词器,包括分词、词性标注和Parser,支持多语言,据说效果是公开的分词器中最好的,C++语言编写。

关于速度:

由于分词是基础组件,其性能也是关键的考量因素。通常,分词速度跟系统的软硬件环境有相关外,还与词典的结构设计和算法复杂度相关。比如我们之前跑过字嵌入+Bi-LSTM+CRF分词器,其速度相对较慢。另外,开源项目 ​​https://github.com/ysc/cws_evaluation​​ 曾对多款分词器速度和效果进行过对比,可供大家参考。

最后附上公开的分词数据集

测试数据集

1、SIGHAN Bakeoff 2005 MSR,560KB

http://sighan.cs.uchicago.edu/bakeoff2005/

2、SIGHAN Bakeoff 2005 PKU, 510KB

http://sighan.cs.uchicago.edu/bakeoff2005/

3、人民日报 2014, 65MB

https://pan.baidu.com/s/1hq3KKXe

在使用bert_wwm的时候 要基于句子的分词 结巴的分词是 有一些的问题的因为不是针对某一领域的 所以要制作某一领域内的词表。

先来一个示例:

import jieba

print("|".join(jieba.lcut("滴滴代驾不靠谱,在司机端总是接不到单子。")))
print("|".join(jieba.lcut("今天空车返回,在路上遇到行政执法,平台不派单")))

jieba.load_userdict("/Users/didi/Downloads/关键词提取/dict.txt")
print("|".join(jieba.lcut("滴滴代驾不靠谱,在司机端总是接不到单子。")))
print("|".join(jieba.lcut("今天空车返回,在路上遇到行政执法,平台不派单。")))

常见的分词方法接口+ jieba自定义领域内的词表然后加载词表进行分词_分词器

结巴内置的词表在哪里呢?

在结巴的库里面 :/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/jieba

把自己定义的词加进去就好了

常见的分词方法接口+ jieba自定义领域内的词表然后加载词表进行分词_中文分词_02

标签:jieba,github,分词器,自定义,词表,https,com,分词
From: https://blog.51cto.com/u_15429890/5974531

相关文章

  • 006 使用动态代理实现自定义注解功能
    问题的提出:自定义一个注解,如@MyLog,当把此注解加在函数上时,该函数的调用会被自动日志。解题思路:创建函数所在对象的动态代理,当该函数被调用时,在代理中进行日志。两种方法:......
  • Vue自定义hook
    自定义hook函数什么是hook?——本质是一个函数,把setup函数中使用的CompositionAPI进行了封装。类似于vue2.x中的mixin。自定义hook的优势:复用代码,让setup中......
  • iOS6下自定义UI控件外观效果
    尽管iOS原生的UI控件就已经有很不错的显示效果,但是App开发者仍然希望自己的产品与众不同,所以自定义UI外观成了每个App产品开发必做之事。今天就来做一个在iOS6下实现自定义U......
  • 自定义异常
    自定义异常:       ......
  • ASP.NET 2.0中使用自定义provider (2)
     在teched2005上,有对asp.net2.0的介绍,其中讲到asp.net2.0提供了很多功能,让程序员做少很多东西,这引起了大家的疑惑:asp.net2.0的自定义能力如何?扩......
  • 【WPF】自定义一个自删除的多功能ListBox
    原文地址https://www.cnblogs.com/younShieh/p/17008534.html❤如果本文对你有所帮助,不妨点个关注和推荐呀,这是对笔者最大的支持~❤我需要一个ListBox,他在界面上分为几......
  • SpringBoot - 自定义拦截器HandlerInterceptor
    1.实现HandlerInterceptor接口/***自定义拦截器*/publicclassMyInterceptorimplementsHandlerInterceptor{@OverridepublicbooleanpreHandle(Htt......
  • Vue 封装自定义组件,通过npm install的方式安装使用
    1、新创建一个空的项目,我创建了一个新的项目(common-package-ui)2、在src下创建一个package文件夹用于存放自己的自定义组件,我创建了一个测试文件夹(test),下面创建了一个test......
  • QT打开摄像头(自定义取景器)
    自建取景器.h#ifndefCAMERASURFACE_H#defineCAMERASURFACE_H#include<QAbstractVideoSurface>#include<QObject>classCameraSurface:publicQAbstractVideoS......
  • Azure ARM (25) 自定义Role,不允许移动Azure资源
    《WindowsAzurePlatform系列文章目录》 我们把一个资源从资源组A移动到资源组B的时候,如果这时候有其他人对资源组A或者资源组B的时候,会遇到创建失败的错误,并......