某处是否有描述 Mecab 算法的文档?
或者有人可以给出简单的一段或一页的描述吗?
我发现很难理解现有代码以及数据库包含的内容。
我需要在我的免费网站和手机应用程序中使用此功能来教授语言 (www.jtlanguage.com)。我也想将它推广到其他语言,并利用我已经实现的共轭检测机制,我也需要它而没有许可证负担。因此我想创建我自己的实现(C#)。
我已经有一个源自 EDICT 的字典数据库。还需要什么?使用频率数据库?
谢谢你。
最佳答案
一些想法太长而无法放入评论中。
§ 什么许可证负担? MeCab 是双重许可的,包括 BSD,因此您可以尽可能不受阻碍。
§ 还有一个名为 Kuromoji 的 Mecab 的 Java 重写,它是 Apache 许可的,也非常商业友好。
§ MeCab 实现了一种称为 conditional random fields 的机器学习技术,用于词法解析(将自由文本分离为词素)和词性标注(标记这些词素)日语文本。它能够使用各种词典作为训练数据,您已经看到过——IPADIC、UniDic 等。这些词典是语素和词性的汇编,是人类多年语言研究的成果。链接的论文由 MeCab 的作者撰写。
§ 其他人已经将其他强大的机器学习算法应用于日语解析问题。
§ 综上所述,我认为您可以看到像 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/