最近,北大开源了一个中文分词工具包,它在多个分词数据集上都有非常高的分词准确率。其中广泛使用的结巴分词误差率高达 18.55% 和 20.42,而北大的 pkuseg 只有 3.25% 与 4.32%。
pkuseg 是由北京大学语言计算与机器学习研究组研制推出的一套全新的中文分词工具包。它简单易用,支持多领域分词,也支持用全新的标注数据来训练模型。
pkuseg 具有如下几个特点:
预训练模型
分词模式下,用户需要加载预训练好的模型。研究组提供了三种在不同类型数据上训练得到的模型,根据具体需要,用户可以选择不同的预训练模型。以下是对预训练模型的说明:
PKUSeg提供了三个预训练模型,用户需要加载预训练好的模型,根据具体需要,用户可以选择不同的预训练模型,以下是说明:
其中,MSRA 数据由第二届国际汉语分词评测比赛提供,CTB8 数据由 LDC 提供,WEIBO 数据由 NLPCC 分词比赛提供。
安装与使用
pkuseg 的安装非常简单,我们可以使用 pip 安装,也可以直接从 GitHub 下载:
pip install pkuseg
使用 pkuseg 实现分词也很简单,基本上和其它分词库的用法都差不多:
'''代码示例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 #假设用户已经下载好了ctb8的模型并放在了'./ctb8'目录下,通过设置model_name加载该模型 seg = pkuseg.pkuseg(model_name='./ctb8') text = seg.cut('我爱北京天安门') print(text)
对于大型文本数据集,如果需要快速分词的话,我们也可以采用多线程的方式:
'''代码示例4''' import pkuseg #对input.txt的文件分词输出到output.txt中,使用默认模型和词典,开20个进程 pkuseg.test('input.txt', 'output.txt', nthread=20)
最后,pkuseg 还能重新训练一个分词模型:
'''代码示例5''' import pkuseg #训练文件为'msr_training.utf8',测试文件为'msr_test_gold.utf8',模型存到'./models'目录下,开20个进程训练模型 pkuseg.train('msr_training.utf8', 'msr_test_gold.utf8', './models', nthread=20)
这些都是 GitHub 上的示例,详细的内容请参考 GitHub 项目,例如参数说明和参考论文等。
大家可以按照自己的需要,选择加载不同的模型。
除此之外,也可以用全新的标注数据,来训练新的模型。
代码示例
1代码示例1 使用默认模型及默认词典分词 2import pkuseg 3seg = pkuseg.pkuseg() #以默认配置加载模型 4text = seg.cut('我爱北京天安门') #进行分词 5print(text) 1代码示例2 设置用户自定义词典 2import pkuseg 3lexicon = ['北京大学', '北京天安门'] #希望分词时用户词典中的词固定不分开 4seg = pkuseg.pkuseg(user_dict=lexicon) #加载模型,给定用户词典 5text = seg.cut('我爱北京天安门') #进行分词 6print(text) 1代码示例3 2import pkuseg 3seg = pkuseg.pkuseg(model_name='./ctb8') #假设用户已经下载好了ctb8的模型并放在了'./ctb8'目录下,通过设置model_name加载该模型 4text = seg.cut('我爱北京天安门') #进行分词 5print(text)
如果想自己训练一个新模型的话:
1代码示例5 2import pkuseg 3pkuseg.train('msr_training.utf8', 'msr_test_gold.utf8', './models', nthread=20) #训练文件为'msr_training.utf8',测试文件为'msr_test_gold.utf8',模型存到'./models'目录下,开20个进程训练模型
欲知更详细的用法,可前往文底传送门。
GitHub传送门:
https://github.com/lancopku/PKUSeg-python
论文传送门:
http://www.aclweb.org/anthology/P12-1027
http://aclweb.org/anthology/P16-2092
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31509949/viewspace-2375574/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/31509949/viewspace-2375574/