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

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

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

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

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

谢谢你。

最佳答案

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

§ 什么许可证负担? MeCab 是双重许可的,包括 BSD,因此您可以尽可能不受阻碍。

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

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

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

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

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

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

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

    在几个小项目中,我只是使用 MeCab,然后读取并解析其输出。我的 TypeScript example using UniDic 用于 Node.js。

    § 但也许您不需要完整的词形解析和词性标注?您是否使用过 Rikaichamp ,它是使用 JMDICT 和其他低权重公开可用资源的 Firefox 附加组件来为网站文本添加注释? (Chrome 版本也存在。)它使用了一个更简单的 deinflector,坦率地说,与 MeCab 等人相比,它很糟糕。但通常可以完成工作。

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

    关于mecab - 有没有关于mecab(日语单词解析器)算法的描述?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56046070/

    10-13 01:14