来自:开源最前线(ID:OpenSourceTop)
分词技术是一种比较基础的模块,就英文而言,词与词之间通常由空格分开,因此英文分词则要简单的多,但中文和英文的词是有区别的,再加上中国文化的博大精深,分词的时候要考虑的情况比英文分词要复杂的多,如果处理不好就会直接影响到后续词性标注、句法分析等的准确性,
目前,我们最常用的分词工具大概有四种哈工大LTP、中科院计算所NLPIR、清华大学THULAC和jieba。
不过最近,北大开源了一个中文分词工具包,名为 —— PKUSeg,基于Python。据介绍其准确率秒杀THULAC和结巴分词等工具。
一经开源,pkuseg已经在GitHub上获得 1738 个Star,244 个Fork(GitHub地址:https://github.com/lancopku/PKUSeg-python)
pkuseg具有如下几个特点:
多领域分词:不同于以往的通用中文分词工具,此工具包同时致力于为不同领域的数据提供个性化的预训练模型。根据待分词文本的领域特点,用户可以自由地选择不同的模型。 我们目前支持了新闻领域,网络文本领域和混合领域的分词预训练模型,同时也拟在近期推出更多的细领域预训练模型,比如医药、旅游、专利、小说等等。
更高的分词准确率:相比于其他的分词工具包,当使用相同的训练数据和测试数据,pkuseg可以取得更高的分词准确率。
支持用户自训练模型:支持用户使用全新的标注数据进行训练。
各类分词工具包的性能对比
前面有提到说pkuseg的准确率远超其他分词工具包,现在就是用数据说话的时候了,下面就是在 Linux 环境下,各工具在新闻数据 (MSRA) 和混合型文本 (CTB8) 数据上的准确率测试情况
测试使用的是第二届国际汉语分词评测比赛提供的分词评价脚本,从上图看出结巴分词准确率最低,
跨领域测试结果
以下是在其它领域进行测试,以模拟模型在“黑盒数据”上的分词效果。
默认模型在不同领域的测试效果
以下是各个工具包的默认模型在不同领域的测试效果
使用方式
代码示例1:使用默认模型及默认词典分词
import pkuseg
seg = pkuseg.pkuseg() # 以默认配置加载模型
text = seg.cut('我爱北京天安门') # 进行分词
print(text)
代码示例2:设置用户自定义词典
import pkuseg
lexicon = ['北京大学', '北京天安门'] # 希望分词时用户词典中的词固定不分开
seg = pkuseg.pkuseg(user_dict=lexicon) # 加载模型,给定用户词典
text = seg.cut('我爱北京天安门') # 进行分词
print(text)
代码示例3:使用其它模型
import pkuseg
seg = pkuseg.pkuseg(model_name='./ctb8') # 假设用户已经下载好了ctb8的模型
# 并放在了'./ctb8'目录下,通过设置model_name加载该模型
text = seg.cut('我爱北京天安门') # 进行分词
print(text)
代码示例4:对文件分词
import pkuseg
pkuseg.test('input.txt', 'output.txt', nthread=20) # 对input.txt的文件分词输出到output.txt中,
# 使用默认模型和词典,开20个进程
代码示例5:训练新模型
import pkuseg
# 训练文件为'msr_training.utf8'
# 测试文件为'msr_test_gold.utf8'
# 模型存到'./models'目录下,开20个进程训练模型
pkuseg.train('msr_training.utf8', 'msr_test_gold.utf8', './models', nthread=20)
此外,pkuseg提供了三种在不同类型数据上训练得到的模型,根据具体需要,用户可以选择不同的预训练模型:
MSRA:在MSRA(新闻语料)上训练的模型。
下载地址:https://pan.baidu.com/s/1twci0QVBeWXUg06dK47tiA
CTB8:在CTB8(新闻文本及网络文本的混合型语料)上训练的模型。随pip包附带的是此模型。
下载地址:https://pan.baidu.com/s/1DCjDOxB0HD2NmP9w1jm8MA
WEIBO:在微博(网络文本语料)上训练的模型。
下载地址:https://pan.baidu.com/s/1QHoK2ahpZnNmX6X7Y9iCgQ
最后附上前面提到的另外四大分词工具的GitHub地址:
1、LTP:https://github.com/HIT-SCIR/ltp
2、NLPIR:https://github.com/NLPIR-team/NLPIR
3、THULAC:https://github.com/thunlp/THULAC
4、jieba:https://github.com/yanyiwu/cppjieba
●编号754,输入编号直达本文
●输入m获取文章目录