日语分词工具-Kuromoji 日本語単語割り切れツール:Kuromoji
11月20日, 2018 能源公司 admin
11月20日, 2018
环境:对天开发语言处理
务求:分析词语,将词语中之日文单词分割,转换形式。
分析:
任务1:词语拆分
任务2:转换形式
日文的款型转换可以用kanavetor去贯彻 非常简单
直接调用Kana类的convert方法就是足以,在Kana的官网及得看来用法(即便看不掌握介绍,看到管网的报表应该也就是一目了然了~)。
最主要在词语的拆分上:
辞拆分使用了Kuromoji,Kuromoji是如出一辙暂缓非常好用的日语分词工具,并且,分解后底词是得自动将汉字,平假名等转移成カタカナ的,有像样需要的足直接用是只要不用重新失去摸其余工具了。Kuromoji我找到了少于个版,一个凡是kuromoji,0.7.7版本,官网上说捐献给了apache,内置在Lucene的4.0,5.0本里,由于忘记Lucene的用法,暂且不考虑。另外一个版本是kuromoji-ipadic,这个东东跟kuromoji都是一个供销社来底,但是略有不同,稍微研究了一下,kuromoji在采取的时光是只能找到jar包,找不交源代码文件之,通过maven下载好,但是gradle是引入无了之。而kuromoji-ipadic则是gradlle也可引用,并且引入之后可以看源码。此外kuromoji毕竟是先前的api,还有局部微细的毛病。
kuromoji官网:http://www.atilika.org/
Kuromoji-ipadic官网:http://www.atilika.com/en/kuromoji/
Kuromoji用法:
1 Tokenizer tokenizer = Tokenizer.builder().build();
2 for (Token token : tokenizer.tokenize("寿司が食べたい。")) {
// token 中存放的是分割后的词 不同的属性可以取到该词的不同内容
// surfaceForm:原内容
3 System.out.println(token.getSurfaceForm() + "\t" + );
// baseForm:内容词语的基础 例如 食べたい⇒食べ
System.out.println(token.getBaseForm() + "\t" + );
4 }
↑↑↑这个api对日文汉字之识别率不如下面的api(有些简体日文汉字和专门生疏的鉴别不下,毕竟是镇版本),并且遇到不认得的汉字时token调用get方法会得到null。。。不建议使用。
Kuromoji-ipadic用法:
1 Tokenizer tokenizer = new Tokenizer() ;
2 List<Token> tokens = tokenizer.tokenize("お寿司が食べたい。");
3 for (Token token : tokens) {
4 System.out.println(token.getSurface()); // 读取到的原内容
5 System.out.println(token.getReading()); // カタカナ
6 }
顺带一提,kuromoji-ipadic由于是故new产生有实例的,所以若你的家伙要系统要更换大量词汇,要专注不要开最多之new操作,不然会怪缓慢好缓慢好缓慢,此时可以定义成静态常量或者单例模式。
迎接大家评论以及指教。
原文地址: https://www.finalreturns.com/nygs/1443.html
转载时必须以链接形式注明原始出处及本声明。