nlp - 可以平衡 unidic 与 unidic-neologd 吗?

标签 nlp mecab

用句子“场所は多少わかりづらいんですけど、感じのいいところでした。”(即“有点难找,但这是个不错的地方。”)使用mecab-d mecab-unidic-neologd 输出的第一行是:

場所  バショ バショ 場所  名詞-固有名詞-人名-姓

即它说“场所”是一个人的姓氏。使用普通的 mecab-unidic 它更准确地说“场所”只是一个简单的名词。

場所  バショ バショ 場所  名詞-普通名詞-一般      

我的第一个问题是 unidic-neologd 是替换了 unidic 中的所有条目,还是只是简单地附加了它的 300 万个专有名词?

然后,其次,假设它是合并,是否可以重新加权条目,更强烈地偏爱普通的 unidic 条目? IE。我很乐意让中居正広のミニナる図书馆和 SMAP 都被识别为单独的专有名词,但我还需要它来了解场所总是意味着“地方”(除了在它后面跟着一个的情况下名字后缀,例如 さん 或様,当然)。

引用文献:unidic-neologd

最佳答案

Neologd 与 unidic(或 ipadic)合并,这就是它在名称中保留“unidic”的原因。如果条目具有多个词性,例如场所,则通过使用词性转换最小化整个句子的成本来选择使用哪个条目,对于字典中的单词,每个标记的成本。

如果您查看包含 neologd 字典条目的 CSV 文件,您将看到两个关于场所的条目:

場所,4786,4786,4329,名詞,固有名詞,一般,*,*,*,バショ,場所,場所,バショ,場所,バショ,固,*,*,*,*                              
場所,4790,4790,4329,名詞,固有名詞,人名,姓,*,*,バショ,場所,場所,バショ,場所,バショ,固,*,*,*,*

而在lex.csv中,默认的unidic字典:

場所,5145,5145,4193,名詞,普通名詞,一般,*,*,*,バショ,場所,場所,バショ,場所,バショ,混,*,*,*,*

第四列是成本。成本较低的项目更有可能被选中,因此在这种情况下,您可以提高场所作为专有名词的成本,但老实说我会删除它。您可以阅读更多关于摆弄成本的信息 here (日语)。

如果您想对所有默认的 unidic 条目进行更强的加权,可以修改 neolog CSV 文件以增加所有权重。这是创建这样的文件的一种方法:

awk -F, 'BEGIN{OFS=FS}{$4 = $4 * 100; print $0}' neolog.csv > neolog.fix.csv

您必须在构建之前删除原始 csv 文件(请参阅下面的注释 2)。

在这种特殊情况下,我认为您应该将此作为错误报告给 Neologd 项目。


注1:如上所述,由于选择哪个条目取决于整个句子,因此即使使用默认配置也有可能获得非专有名词标签。例句:

お店の場所知っている?

注意 2:neologd 字典与默认 unidic 字典结合的方式是基于 Mecab 字典构建工作方式的一个微妙方面。具体来说,在创建系统词典时,会使用词典构建目录中的所有 CSV 文件。未指定顺序,因此不清楚发生碰撞时会发生什么。

Mecab 文档中提到了此功能 here (日本人)。

关于nlp - 可以平衡 unidic 与 unidic-neologd 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45131858/

相关文章:

machine-learning - OneVsRestClassifier 的损失函数

Python 2.7 - 如何将 MeCab 解析的信息写入文本文件?

python - Mac 10.8.3 MeCab Python "Symbol Not found"错误

ubuntu - 在使用 UniDic 2.3.0 构建 MeCab 0.996 用户字典时,如何确定左右上下文 ID 应该是什么?

nlp - 来自人类语音的电话号码和出生日期

machine-learning - 用于自然语言处理的转录数据集

python - 它叫什么,通过 NLP 从 HTML 中提取地址

java - 使用 Stanford CoreNLP 的段落中断

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