用句子“场所は多少わかりづらいんですけど、感じのいいところでした。”(即“有点难找,但这是个不错的地方。”)使用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/