是否有有关mecab(日语单词解析器)算法的描述?

时间:2019-05-08 17:24:05

标签: mecab

在某处有描述Mecab算法的文档吗?

或者有人可以给出一个简单的段落或一页描述吗?

我发现很难理解现有代码以及数据库包含的内容。

我需要在免费的网站和用于语言教学的电话应用程序(www.jtlanguage.com)中使用此功能。我还想将其概括为其他语言,并利用已经实现的共轭检测机制,并且我也需要没有许可证负担的机制。因此,我想创建自己的实现(C#)。

我已经有一个来自EDICT的字典数据库。还需要什么?使用频率数据库?

谢谢。

1 个答案:

答案 0 :(得分:0)

有些想法太长而无法放入评论中。

§哪些许可负担? MeCab是双重许可的,包括BSD,因此您将获得最大的保障。

§还有一个名为Kuromoji的Mecab的Java重写,它是Apache许可的,也非常商业友好。

§MeCab实现了一种称为conditional random fields的机器学习技术,用于形态分析(将自由文本分离为词素)和词性标记(标记这些词素)日语文本。它能够使用各种字典作为训练数据,如IPADIC,UniDic等。这些字典是词素和词性的汇编,并且是许多人年级的语言研究工作。链接的论文是由MeCab的作者撰写的。

§其他人已将其他功能强大的机器学习算法应用于日语解析问题。

  • Kytea可以同时使用支持向量机和逻辑回归来解决同一问题。 C ++,Apache许可,并且可以阅读这些论文。
  • Rakuten MA使用JavaScript并获得了广泛的许可(再次使用Apache),并附带有常规词典和用于受限制应用程序的轻量级词典,尽管它不会显示汉字。您可以在此处找到描述算法的学术论文。

§鉴于以上所述,我认为您可以看到像EDICT和JMDICT这样的简单词典不足以进行这些形态分析器所做的高级分析。对于其他更易于解析的语言(即带有空格的语言),这些算法可能会过大。

如果您需要这些库的强大功能,最好编写运行这些系统之一的微服务(我为Kuromoji写了一个REST前端,名为clj-kuromoji-jmdictfurigana),而不是尝试在C#中重新实现它们。

尽管请注意,似乎存在与MeCab的C#绑定:see this answer

在几个小项目中,我只是将外壳插入MeCab,然后读取并解析其输出。我的TypeScript example using UniDic for Node.js。

§但是也许您不需要完整的形态分析和词性标记?您是否曾经使用过Rikaichamp(一种使用JMDICT和其他轻量级公共资源的Firefox插件)在网站文本上添加修饰符? (也存在Chrome版本。)与MeCab等人相比,坦率地说,它使用的deinflector简单得多。但通常可以完成工作。

§您对字典的结构有疑问(您称它们为“数据库”)。 Kimtaro(Jisho.org的作者)关于如何向IPADIC添加自定义词汇的本注释至少可以阐明IPADIC的工作方式:https://gist.github.com/Kimtaro/ab137870ad4a385b2d79。其他更现代的词典(我倾向于使用UniDic)使用不同的格式,这就是为什么MeCab的输出根据您使用的词典的不同而有所差异的原因。