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