日文分词
日文分词是日文文本检索的基础。本章分析日文分词技术应用。
前言:关于日文稿件检索优化
检索技术水平分三个等级:字符比对检索、个性化检索、语义检索。目前业务系统中所涉及的检索基本都指的是字符比对检索。
以下探讨主要针对字符比对检索。
字符比对检索结果不好,不仅仅是词典的问题,分词器也很重要。
日文新闻稿件的检索效果好坏首先看词典、其次看分词器、然后看检索引擎、最后看展现结果。
编辑对稿件检索不满意,可以从以上四个层面找到原因,相应的可以从以上四个层面优化检索。
- A层:词典。
词典质量不好会影响分词,从而影响检索结果。日文词典有一些免费的比如ipadic、neologd、JMdict等等,也有一些如GSK会员制收费的。好的词典搭配好的分词器,实现好的检索效果。 - B层:分词器。
分词器选的不好会影响检索效果。日文开源分词器最好的是MeCab,其他的也不少,包括Juman、Juman++、ChaSen、Kytea、TinySegmenter
等。 - C层:检索引擎。
在分词器的上面是检索引擎,常用的是Eleasticsearch。也可以选择别的检索引擎。检索引擎会内嵌分词器。比如新华社的中文稿件检索Elasticsearch内嵌的是ik中文分词器,中国日报融媒体采编稿件采编Elasticsearch内嵌的是ansj中文分词器。 - D层:检索结果呈现。
检索结果呈现算法会影响检索效果。因为同样是检索出来100天结果,哪个排在第一条,哪个排在最后一条,需要算法优化,呈现的不好给编辑的
感觉就是检索系统不准确。
一、开源词典(免费)
1. ipadic日文词典(免费)
ipadic是mecab用的日文词典。2015年3月之后就少有更新维护了,所以有很多次新词分不出来。而MeCab的新用语词典(mecab-ipadic-neologd)侧更新的比较及时弥补了这个不足。
2. naist-jdic词典(免费)
利用NAIST-jdic作为种子词典,RWCテキストコーパス作为语料,用MeCab/ChaSen分词器可以训练学习新词。
3. neologd日文词典(免费)
全称是mecab-ipadic-neologd词典,可以和MeCab分词器搭配使用,可以分出来ipadict标准词典处理不了的单词,包含许多新词。neologd词典可以转化成JUMAN的格式转换程序github,neologd词典在JUMAN或者JUMAN++分词器中也可以使用。neologd词典可以和ipadic词典搭配一起使用。
MeCab分词器+neologd词典进行分词时的试用代码例子如下(python):
MeCab分词器使用neologd词典( mecab-ipadic-neologd)的开源代码在github上。 MeCab分词器+neologd词典github源码
4. UniDic日文词典(免费)
包含現代語用和古典語用两个词典。利用UniDic作为种子词典,日本語コーパスコアデータ作为语料,用MeCab/ChaSen分词器可以训练学习新词。
词典免费下载:[词典下载](http://unidic.ninjal.ac.jp/download)。
Demo:使用UniDic词典分词效果demo
5. juman(on JUMAN-7.0)/jumandic (on MeCab)日文词典
利用jumandic作为种子词典,利用京都大学テキストコーパス作为语料,可以训练学习新的词出来。
6. JMdict日文词典(免费)
JMdict或EDICT2是xml格式日语字典文件。JMdict是EDICT2格式的扩展。其版权属于EDRD(Electronic Dictionary Research and Development Group)。这个字典文件每天都会更新,词典JMdict词典FTP下载地址 。
JMdict字典中日语单词的格式是xml形式,如下图:
JMdict的字典数据库每天都会更新,每天更新的词可以在这看到: 新词
JMdict的字典数据也提供了一个检索接口,可以搜索。 jmdict词典检索 EDICT2字典的一个开源应用 EDICT2 github源码
7. ENAMDICT/JMnedict日文名称词典(免费)
包括日文地名、公司名、人名、产品牌名等各种名称。字典下载地址。
8. KANJIDIC/KANJD212日文汉字词典(免费)
下载地址
9. Canna dic
下载地址
10. 日本地名词典
日本地名大全:下载
日本の郡・市区町村:下载
二、商用词典(收费)
有日本官方、民间团体组织、日本公司正式开发的一些日本语词典或语料。
10. EDR単語辞書(V2.0)
EDR未知語集词典是日本JSP公司的产品。可以联系这个公司购买,该公司还提供分词软件、NLP日文文本分析软件等。该公司开发的Ko-BaKo/J软件自带150万词典。
11. GSK词典
[官网](http://www.gsk.or.jp/catalog/),注册GSK会员可以购买很多日本语言类资源。目前该组织也在逐渐把一些词典资源给开放免费。其中收费的词典如下[收费词典](http://www.gsk.or.jp/resource/)。
三、分词器
1. MeCab分词器
基于CRF学习模型的分词器。从机器学习的性能角度看,基于CRF的MeCab分词器是最好的。基于C++开发,也有python和java接口。 Mecab比较新,优于Juman、Chasen。mecab-ipadic(ipadic)是日文词典,mecab-ipadic-utf8是日文模型。MeCab分词器的用户词典是csv格式。
MeCab分词器中使用如下方式设置要选择的词典:
辞書タイプを選びます。"neologd", "all", "ipadic", "user", ""が選べます。
mecab_wrapper = JapaneseTokenizer.MecabWrapper(dictType='neologd')
MeCab分词器可以加载的词典有neoglod词典,或者ipadic词典。
2. neologd分词器
github源码
3. Juman分词器
Juman/Juman++京都大学の黒橋・河原研究室开发的一个分词器。juman分词器对单词的分类比MeCab更细一些。Juman分词器和文法分析KNP结合使用效果很好。Juman++分词器和KNP的组合。
使用效果更好。
Juman的分词体系。
Demo试用:Juman分词器试用1
Demo试用:[Juman分词器试用2](http://reed.kuee.kyoto-u.ac.jp/nl-resource/cgi-bin/juman.cgi)
4. Juman++分词器
Juman++是2016年以后新出来的分词器,应用了深度学习技术,使用RNN循环神经网络进行模型训练。
Demo试用:Juman++分词器试用
5. ChaSen分词器
基于HMM学习模型的分词器。chasen分词器比较老旧了。
ChaSen的分词体系。
6. Kytea分词器
Kytea的分词算法和Mecab、Juman都不同。使用了SVM和逻辑回归算法。分类器采用的是LIBLINEAR。附带了UniDic字典数据,
Kytea分词器源码:github源码
7. TinySegmenter
用javascript写的分词器,可用于web程序的nlp应用开发,在浏览器中既可以分词。js分词器中表现最好的。
原理介绍:论文
源代码:TinySegmenter分词器github开源代码
Demo试用:TinySegmenter分词器试用
8. kuromoji分词器
用java写的分词器。内嵌的是MeCab-ipadic词典。也支持用户自定义词典。
9. yahoo日文分词器
以api形式提供分词服务。Restful接口,24小时内请求不能超过5万次。Yahoo日本語形態素解析
10. Tofu日文分词器
一个比MeCab轻量级的日文分词器,词典量大约是MeCab的十分之一。.net技术开发的,所以只能用在windows环境下。
11. lgo日文分词器
java编写的日文分词器,字典可以和mecab的字典互换。源代码
12. Sudachi日文分词器
新推出的日文分词器,比mecab表现还要优github源码。
Sudachi配合Elasticsearch一起使用,使用配置手顺
13. 其他开源分词
- JapaneseTokenizers:github源码
用python写的一个分词包装程序,里面包装了多个分词器,包括Mecab、Juman、Juman++、Kytea
四、检索引擎
elasticsearch(Lucene)
elasticsearch可以带分词器插件ik,ansj等。
五、语料
京都大学文本语料
由每日新闻社的4万篇新闻稿件经过人工标注校对过后的日语文本语料。可供分词器juman和文法分析knp使用。
[语料下载](http://nlp.ist.i.kyoto-u.ac.jp/DLcounter/lime.cgi?down=http://nlp.ist.i.kyoto-u.ac.jp/nl-resource/corpus/KyotoCorpus4.0.tar.gz&name=KyotoCorpus4.0.tar.gz)
京都大学网络文本リード语料
[语料下载](http://nlp.ist.i.kyoto-u.ac.jp/nl-resource/KWDLC/download_kwdlc.cgi)。
日本語コーパスコアデータ语料
現時点では「正式公開版 DVD」に収録されているもの。
RWCテキストコーパス语料
跟NICT或者GSK (言語資源協会)可以买这个语料。
10. BCCWJ
『現代日本語書き言葉均衡コーパス』(BCCWJ),含1億430万词量。需要花钱购买。
六、その他
日文语言NLP关联
国立国語研究所コーパス開発センター
言語処理学会(The Association for Natural Language Processing)
言語情報処理ポータル
黒橋河原研究室
ACL
言語資源協会(GSK)
GeoNLP
用语中日对照
- 形態素解析器:分词器
- 品詞:单词词类,日文分为“体言(たいげん)”(没有活用的词)和“用言(ようげん)”(有活用的词)。体言包括名词,代词,数词,副词,连词(接続词せつぞくし),连体词(れんたいし),感叹词(感动词かんどうし);用言包括动词,形容词,形容动词
sennchi