3

是否有描述 Mecab 算法的文档?

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

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

我需要在我的免费网站和电话应用程序中使用此功能来教授语言 (www.jtlanguage.com)。我还想将它推广到其他语言,并利用我已经实现的共轭检测机制,而且我也需要它而无需许可。因此,我想创建自己的实现(C#)。

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

谢谢你。

4

1 回答 1

3

有些想法太长,无法在评论中显示。

§ 有哪些许可产权负担?MeCab 是包括 BSD 在内的双重许可,因此您可以获得尽可能多的自由。

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

§ MeCab 实现了一种称为条件随机字段的机器学习技术,用于词法解析(将自由文本分成词素)和词性标记(标记那些词素)日语文本。它能够使用各种字典作为训练数据,您已经看到了——IPADIC、UniDic 等。这些字典是词素和词性的汇编,是人类多年语言研究的成果。链接的论文由 MeCab 的作者提供。

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

  • Kytea可以同时使用支持向量机和逻辑回归来解决同一个问题。C++、Apache 许可,并且可以阅读这些文件。
  • Rakuten MA使用 JavaScript,也获得了自由许可(又是 Apache),并带有一个普通字典和一个用于受限应用程序的轻量级字典——但它不会让你阅读汉字。您可以在那里找到描述该算法的学术论文。

§ 鉴于上述情况,我认为您可以看到像 EDICT 和 JMDICT 这样的简单字典不足以进行这些形态解析器所做的高级分析。而且这些算法对于其他更容易解析的语言(即带空格的语言)来说可能是一种过度杀伤力。

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

尽管请注意似乎存在与 MeCab 的 C# 绑定:请参阅此答案

在几个小项目中,我只是使用 MeCab,然后读取并解析它的输出。我的TypeScript 示例使用 UniDic for Node.js。

§ 但也许你不需要完整的形态解析和词性标注?您是否曾经使用过Rikaichamp,这是一个使用 JMDICT 和其他低权重公开可用资源来对网站文本进行修饰的 Firefox 插件?(也存在 Chrome 版本。)它使用了一个更简单的去偏转器,坦率地说,与 MeCab 等人相比,它很糟糕。但通常可以完成工作。

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

于 2019-05-09T01:17:17.880 回答