环境:对天开发语言处理

务求:分析词语,将词语中之日文单词分割,转换形式。

分析:

  任务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操作,不然会怪缓慢好缓慢好缓慢,此时可以定义成静态常量或者单例模式。

迎接大家评论以及指教。

 

网站地图xml地图