概述
前言
最近由于项目需要对微博内容进行分词,但是由于微博中通常会有很多的颜文字(使用标点符号拼凑成的表情符号),但现有的mecab在分词的时候会将颜文字分成多个单独的标点符号,为了方便,我直接使用现有的颜文字库对Mecab的词典进行扩充.特意在这里做个记录,方便以后复习.
关于为什么使用Mecab,有时间了把我了解的关于分词的工具整理一下,单独写一篇文章.
mecab追加词条有两种方法(推荐使用方法1):
方法1: 在用户词典中追加
更新系统词典比较耗时;词典更新频繁,或者没有权限变更系统词典的时候,可以使用用户词典.
方法2: 直接在系统词典中追加
当词典更新不频繁,且不想降低解析速度时,最好直接修改系统词典.
颜文字库
据说颜文字起源于日本,我这里就直接使用JumanDic词典中关于颜文字的词库,JumanDic可以从git上直接访问,下面是链接:
JumanDic词典中的颜文字: https://github.com/ku-nlp/JumanDIC/blob/master/kaomoji/jumandic.dic
下面开始介绍具体的操作步骤:
颜文字数据准备:
从JumanDic中提取出颜文字内容,格式如下,每一行代表一个颜文字:
。゜(T^T)゜。
。°(ToT)°。
。o@(^_^)@o。
... (゜O゜;)
...((( *−*)
・ ∇ ・;
・・)
:^D
:)
:−/
方法1:
步骤1:将颜文字制作成词条
词条的格式如下(其实就是csv格式):
工藤,1223,1223,6058,名詞,固有名詞,人名,名,*,*,くどう,クドウ,クドウ
词条格式从左往右依次为:
表层形, 上文语境ID, 下文语境ID, cost, 词性,词性细分类1,词性细分类2,词性细分类3,活用形,活用型,原形,读音,发音
按照词条的格式对颜文字进行整理,整理后的词条如下(我这里只需要能标记出颜文字就可以,大家可以根据自己的实际情况填入更加详细的信息):
。゜(T^T)゜。,*,*,*,記号,顔文字,*,*,*,*,*,*,*
。°(ToT)°。,*,*,*,記号,顔文字,*,*,*,*,*,*,*
。o@(^_^)@o。,*,*,*,記号,顔文字,*,*,*,*,*,*,*
... (゜O゜;),*,*,*,記号,顔文字,*,*,*,*,*,*,*
...((( *−*),*,*,*,記号,顔文字,*,*,*,*,*,*,*
・ ∇ ・;,*,*,*,記号,顔文字,*,*,*,*,*,*,*
・・),*,*,*,記号,顔文字,*,*,*,*,*,*,*
:^D,*,*,*,記号,顔文字,*,*,*,*,*,*,*
:),*,*,*,記号,顔文字,*,*,*,*,*,*,*
:−/,*,*,*,記号,顔文字,*,*,*,*,*,*,*
步骤2:将上一步制作好的词条编译成词典
使用如下命令进行编译:
/usr/local/libexec/mecab/mecab-dict-index -d /usr/local/lib/mecab/dic/ipadic -u kaomoji_mecab.dic -f utf8 -t utf8 kaomoji_mecab.csv
命令中各个参数的含义:
-d DIR: 包含系统词典的目录
-u FILE: FILE 生成的用户词典文件
-f charset: CSV 文件的编码
-t charset: 生成的二进制词典的编码
kaomoji_mecab.csv: 上一步骤中制作好的词条
执行完成后,命令行中出现如下信息说明词典编译成功 .
此时,会在当前目录下生成kaomoji_mecab.dic文件,就是我们编译好的词典.
注意:
在这一步中,一定要注意-f和-t对应的编码格式,编码格式不正确,在使用时会报错.
步骤3:将编译后的词典追加到系统词典中
在/usr/local/lib/mecab/dic/ipadic/dicrc文件中追加如下内容(配置的时候记得把路径替换成自己对应的路径):
userdic = /home/foo/bar/kaomoji_mecab.dic
注意:
在这一步中可以通过如下方式来配置多个词典文件,格式如下(将词典文件路径之间使用逗号隔开):
userdic = /home/foo/bar/kaomoji_mecab.dic,/home/foo/bar2/usr.dic,/home/foo/bar3/bar.dic
方法2:
步骤1:
(1) 进入包含文件 mecab-ipadic的目录
(2) 按照方法1中的步骤创建文件kaomoji_mecab.csv
步骤2:
执行如下命令重新编译安装词典:
/usr/local/libexec/mecab/mecab-dict-index -f utf8 -t utf8
make install
注意:
-f charset: CSV文件的编码
-t charset: 生成的二进制词典的编码
最后
以上就是炙热含羞草为你收集整理的Mecab往现有的词典中追加词条方法1:方法2: 的全部内容,希望文章能够帮你解决Mecab往现有的词典中追加词条方法1:方法2: 所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复