前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >中文分词组件:thulac及jieba试用手记

中文分词组件:thulac及jieba试用手记

作者头像
菩提树下的杨过
发布2018-08-21 17:17:12
1K0
发布2018-08-21 17:17:12
举报
文章被收录于专栏:菩提树下的杨过

一、THULAC

THULAC由《清华大学自然语言处理与社会人文计算实验室》研制推出的一套中文词法分析工具包。 官网地址:http://thulac.thunlp.org,该项目提供了多种语言,本文以java版为例,先下载以下二个组件: 1、THULAC_lite_v1_2分词java版可执行的jar包:THULAC_lite_java_v1_2_run.jar 2、THULAC模型,包括分词模型和词性标注模型(v1_2): Models_v1_v2(v1_2).zip 把THULAC模型解压到与jar文件相同的目录下,默认会生成models目录。

然后创建一个input.txt做为输入,这里选择了一首歌词:

代码语言:javascript
复制
郁可唯-茶汤
词曲:方文山
山岚像茶杯上的云烟
颜色越来越浅
你越走越远
有好多的话还来不及兑现,你就不见
我身后窗外那片梯田
像一段段从前
我站在茶园,抬头望着天,想象你会在山的,那一边
我说再喝一碗我熬的茶汤
你说你现在马上要渡江
渡江到那遥远的寒冷北方
就怕你的手会冻僵
你何时回来喝我熬的茶汤
这次我会多放一些老姜
你寄来的信一直搁在桌上
不知要寄还哪地方
北风它经过多少村落
来来回回绕过
分不清那年,我求天保佑,只见风声大做,却更寂寞  

使用方法:

代码语言:javascript
复制
java -jar THULAC_lite_java_v1_2_run.jar -seg_only  -input input.txt -output output.txt

上面表示,将从input.txt做为输入,然后仅分词(不做词性标注),并将结果生成到output.txt(如果这个文件没生成,会自动创建) 

输出结果:

代码语言:javascript
复制
郁可唯 - 茶 汤
词曲 : 方文山
山岚 像 茶杯 上 的 云烟
颜色 越来越 浅
...
北风 它 经过 多少 村落
来来回 回绕 过
分 不 清 那年 , 我 求 天 保佑 , 只见 风声 大 做 , 却 更 寂寞

 其它一些通用的参数:

代码语言:javascript
复制
####1.2.通用参数
	-t2s			    将句子从繁体转化为简体
	-seg_only		    只进行分词,不进行词性标注
	-deli delimeter		设置词与词性间的分隔符,默认为下划线_
	-filter				使用过滤器去除一些没有意义的词语,例如“可以”。
	-user userword.txt	设置用户词典,用户词典中的词会被打上uw标签。词典中每一个词一行,UTF8编码(python版暂无)
	-model_dir dir		设置模型文件所在文件夹,默认为models/
	
####1.3.Java版特有的参数
	-input input_file	设置从文件读入,默认为命令行输入
	-output output_file	设置输出到文件中,默认为命令行输出

 比较有用的参数:-user userword.txt,可以创建自定义词典,比如象上面的歌词,“茶汤”、“来来回回”、“分不清” 这三个词,都拆成了:

代码语言:javascript
复制
茶 汤

来来回 回绕 过

分 不 清 那年 

如果希望这3个词不分,可以创建一个userword.txt的文件,类似下面这样:

代码语言:javascript
复制
茶汤
来来回回
绕过
分不清
风声大做

然后加上-user userword.txt,输出结果会有变化:

代码语言:javascript
复制
郁可唯 - 茶汤
...
来来回 回绕 过
分不清 那年 , 我 求 天 保佑 , 只见 风声大做 , 却 更 寂寞

 “茶汤”,“分不清”这二个词,已经按预期正确识别了,但是“来来回回”却并没有。 

二、jieba分词组件

官网地址:https://github.com/fxsjy/jieba

这里我们使用python版本(java版本的功能比较弱),pip3 install jieba后,可以参考如下使用方法:

代码语言:javascript
复制
python3 -m jieba -u /Users/yangjunming/Downloads/thulac/userword.txt -d ' ' /Users/yangjunming/Downloads/thulac/input.txt > /Users/yangjunming/Downloads/thulac/jieba_output.txt

 解释一下:

-u 表示使用自定义词典

-d ' ' 表示分词的间隔符,使用空格(默认是/)

结果如下:(左侧的是thulac的输出,右侧的是jieba的输出) 

个人感觉:默认情况下,jieba分词的颗粒度要粗一些,而thulac则分得太细(但对于一些人名,thulac识别要好一些)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-08-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档