由atilika完成的黑文字是我所知范围内日文解析最强王者。简介kuromoji是一个用于日语词法分析的开源JAVA库。但是也有Ruby、javascript、go等语言的版本,可以在github或者语言对应的库管理工具中找到。官方网站有更多信息。功能你可以用它来处理日语文本如下,包括但不仅限于:分词给出发音(包括汉字)词性词干提取......你也可以在kuromoji.js的游乐场试试kuromoji。作为前端小卒,我就用js版的kuromoji作为演示。JAVA的同胞可以在这里看一个简单的JAVA教程。安装kuromoji的npm页面在这里。在Node.js中使用:先通过npmnpminstallkuromoji安装到项目中,然后在JS文件中引用。varkuromoji=require("kuromoji");接下来你可以像下面这样实例化一个解析器。kuromoji.builder({dicPath:"Specify/correspondingpath/tothe/dictionaryyouuse/"}).build(function(err,tokenizer){//分词器准备好了うち");console.log(path);});/*!!注意!!**kuromoji可以指定不同的字典,所以需要在实例化解析器的过程中指定使用*字典的路径,`kuromoji.builder`中的参数`dicPath`的值要指向使用*字典。*如果在node.js中使用,一般来说可以直接使用库中的字典,即设置*{dicPath:"./node_modules/kuromoji/dict/"}*/在浏览器中使用:如果使用npm安装需要使用包中build/kuromoji.js和dict/*.dat.gz下的文件。可以直接使用前端模块管理Bower来安装浏览器专用黑文字。bowerinstallkuromoji也可以直接使用github、CDN等网络链接导入文件。然后在你的JS中使用这个设置路径到kuromoji.builder({dicPath:"指定/对应的路径/到你使用的/字典/去up"}).build(function(err,tokenizer){//tokenizer就绪varpath=tokenizer.tokenize("すもももももものうち");console.log(path);});/*!!注意!!**kuromoji可以指定不同的字典,所以需要在实例化解析器的过程中指定使用*字典的路径,`kuromoji.builder`中的参数`dicPath`的值要指向使用*字典。*如果是在浏览器中使用,只需设置相应网络位置的路径即可。*比如字典放在http://apps.bdimg.com/libs/kuromoji.js/0.3.2/dict/*,那么设置{dicPath:"http://apps.bdimg.com/libs/kuromoji.js/0.3.2/dict/"}*/APItokenize()函数将返回以下格式的JSON数组:[{word_id:509800,//单词在字典中的IDword_type:'KNOWN',//单词类型(如果有字典,则为已知,如果不存在,则为未知)word_position:1,//单词开始的位置surface_form:'Blacktext',//的表面这个词(我不知道它是什么意思)pos:'Noun',//Partofspeechpos_detail_1:'General',//Part-of-speechcategory1pos_detail_2:'*',//Part-of-speechcategory2pos_detail_3:'*',//词性类别3conjugated_type:'*',//Conjugated_form:'*',//Flexibleformbasic_form:'Blacktext',//Basictypereading:'クロモji',//读音:'クロモji'//开发}]以处理“世界の神”为例tokenizer.tokenize("Worldの神");将返回[{word_id:2633350,word_type:'KNOWN',word_position:6,surface_form:'world',pos:'noun',pos_detail_1:'general',pos_detail_2:'*',pos_detail_3:'*',conjugated_type:'*',conjugated_form:'*',basic_form:'世界',reading:'セカイ',读音:'セカイ'},{word_id:93100,word_type:'KNOWN',word_position:8,surface_form:'の',pos:'particle',pos_detail_1:'Siamese',pos_detail_2:'*',pos_detail_3:'*',conjugated_type:'*',conjugated_form:'*',basic_form:'の',读法:'ノ',发音:'ノ'},{word_id:2771160,word_type:'KNOWN',word_position:9,surface_form:'God',pos:'noun',pos_detail_1:'General',pos_detail_2:'*',pos_detail_3:'*',conjugated_type:'*',conjugated_form:'*',basic_form:'God',reading:'カミ',发音:'カミ'},]备注,你试过之后,你会发现黑文字虽然强大,但有个问题——慢但是不用担心,kuromojin(node.js)可以帮你解决这个问题。kuromojinkuromojin是kuromoji高度封装的语法糖,同时还实现了一个缓冲层来保证速度。使用kuromojin,您可以:无需设置字典地址。解析器实例化后,除了第一次,之后的速度会很慢。API是基于Promise实现的。在使用方面,它的文档已经很详细了,关于RDD我就不多介绍了。关联KAKASI,可以将汉字转换为平假名、片假名或罗马字
