资讯专栏INFORMATION COLUMN

日文文本分析最强王者——Kuromoji

levinit / 3368人阅读

摘要:在我认识范围内完成的是在日文文本分析方面的最强王者。简介是一个开源的日文词法分析的库。功能你可以用它来对日文文本进行如下的处理,包括且不仅包括分词给出读音包括汉字词性词干提取你也可以在的尝试。关联可以将日文汉字转换成平假名,片假名或的

在我认识范围内atilika完成的Kuromoji是在日文文本分析方面的最强王者。

简介

kuromoji是一个开源的日文词法分析的JAVA库。

但也有Ruby,javascript,go等语言的版本,你可以在github或则语言对应的库管理工具中找到。

官网有更多的信息。

功能

你可以用它来对日文文本进行如下的处理,包括且不仅包括:

分词

给出读音( 包括汉字)

词性

词干提取

…...

你也可以在kuromoji.js的playground尝试kuromoji

使用

作为一名前端小卒,我就以js版的kuromoji来做示范吧,JAVA同胞们可以看这里JAVA简要教程。

安装

kuromoji的npm页面在这里。

在 Node.js 中使用:

先通过npm来安装到项目中

npm install kuromoji

再在JS文件中引用其。

var kuromoji = require("kuromoji");

接来下你可以如下来实例化一个解析器。

kuromoji.builder({ dicPath: "指定/对应的路径/到你使用/的/词典上去" }).build(function (err, tokenizer) {
    // tokenizer is ready
    var path = tokenizer.tokenize("すもももももももものうち");
    console.log(path);
});
/* !!注意 !!
*
* Kuromoji可以指定不同的词典,因此在实例化解析器的过程中需要指定使用
* 词典的路径,`kuromoji.builder`中的参数的`dicPath`的值应指向使用
* 得词典。
* 若在node.js中使用,一般来说直接使用该库中的字典即可,即设置
*     {dicPath:"./node_modules/kuromoji/dict/"}
*/

在 浏览器 中使用:

如果使用npm安装,那么你需要使用到包中的build/kuromoji.jsdict/*.dat.gz下的文件。

你可以直接使用前端模块管理Bower来安装浏览器专用的kuromoji

bower install kuromoji

你也可以直接使用github、CDN等其他网络链接的方式来引入该文件。

再在你的JS中这样使用

设置路径到kuromoji.builder({ dicPath: "指定/对应的路径/到你使用/的/词典上去" }).build(function (err, tokenizer) {
    // tokenizer is ready
    var path = 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/" }
*/
API

tokenize()函数将会返回一个如下格式的JSON数组:

[ {
    word_id: 509800,          // 词典中的词所在ID
    word_type: "KNOWN",       // 单词类型(存在词典的为KNOWN,不存在的为UNKNOWN)
    word_position: 1,         // 单词开始的位置
    surface_form: "黒文字",    // 单词的表面(不知什么意思)
    pos: "名詞",               // 词性
    pos_detail_1: "一般",      // 词性细分类别1
    pos_detail_2: "*",        // 词性细分类别2
    pos_detail_3: "*",        // 词性细分类别3
    conjugated_type: "*",     // 活用型
    conjugated_form: "*",     // 活用形
    basic_form: "黒文字",      // 基本型
    reading: "クロモジ",       // 阅读
    pronunciation: "クロモジ"  // 发育
  } ]

以处理 “世界の神” 为例子

tokenizer.tokenize("世界の神");

将会返回

[  { word_id: 2633350,
    word_type: "KNOWN",
    word_position: 6,
    surface_form: "世界",    
    pos: "名詞",
    pos_detail_1: "一般",
    pos_detail_2: "*",
    pos_detail_3: "*",
    conjugated_type: "*",
    conjugated_form: "*",
    basic_form: "世界",
    reading: "セカイ",
    pronunciation: "セカイ" },
  { word_id: 93100,
    word_type: "KNOWN",
    word_position: 8,
    surface_form: "の",
    pos: "助詞",
    pos_detail_1: "連体化",
    pos_detail_2: "*",
    pos_detail_3: "*",
    conjugated_type: "*",
    conjugated_form: "*",
    basic_form: "の",
    reading: "ノ",
    pronunciation: "ノ" },
  { word_id: 2771160,
    word_type: "KNOWN",
    word_position: 9,
    surface_form: "神",
    pos: "名詞",
    pos_detail_1: "一般",
    pos_detail_2: "*",
    pos_detail_3: "*",
    conjugated_type: "*",
    conjugated_form: "*",
    basic_form: "神",
    reading: "カミ",
    pronunciation: "カミ" },
]
备注

你尝试了一下,然后会发现kuromoji虽然强大,但是有一个问题——慢。

不过别担心,kuromojin(node.js)可以帮你解决这个问题。

kuromojin

kuromojin是一个对kuromoji进行了高度包装的语法糖,并且还实现了缓冲层来保证速度。

使用kuromojin,你可以:

不用设置词典的地址。

实例化解析器后,除了第一次之外,之后的速度会非常块。

基于Promise实现了APi。

使用方面它的文档已经很详细,RDD我就不多作介绍了。

关联

可以将 日文汉字 转换成 平假名,片假名或Romaji 的 KAKASI

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/67209.html

相关文章

  • 日文文本分析最强王者——Kuromoji

    摘要:在我认识范围内完成的是在日文文本分析方面的最强王者。简介是一个开源的日文词法分析的库。功能你可以用它来对日文文本进行如下的处理,包括且不仅包括分词给出读音包括汉字词性词干提取你也可以在的尝试。关联可以将日文汉字转换成平假名,片假名或的 在我认识范围内atilika完成的Kuromoji是在日文文本分析方面的最强王者。 简介 kuromoji是一个开源的日文词法分析的JAVA库。 但也...

    张红新 评论0 收藏0
  • Solr vs. Elasticsearch谁是开源搜索引擎王者

    摘要:本文,我们将比较业界两个最流行的开源搜索引擎,和。关于基于业界大名鼎鼎的开源搜索引擎,更多的是一个软件包,还不能称之为搜索引擎,而则完成对的封装,是一个真正意义上的搜索引擎框架。 当前是云计算和数据快速增长的时代,今天的应用程序正以PB级和ZB级的速度生产数据,但人们依然在不停的追求更高更快的性能需求。随着数据的堆积,如何快速有效的搜索这些数据,成为对后端服务的挑战。本文,我们将比较业...

    freewolf 评论0 收藏0
  • Redis实战之限制操作频率

    摘要:场景场景留言功能限制,秒内只能评论次,超出次数不让能再评论,并提示过于频繁场景点赞功能限制,秒内只能点赞次,超出次数后不能再点赞,并禁止操作个小时,提示过于频繁,被禁止操作小时场景上传记录功能,限制一天只能上传次,超出次数不让能再上传,并提 场景 场景1 留言功能限制,30秒 内只能评论 10次,超出次数不让能再评论,并提示:过于频繁 场景2 点赞功能限制,10秒 内只能点赞 10次,...

    张率功 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<