【发布时间】:2019-08-01 02:21:00
【问题描述】:
最近我正在训练为德语单词的词形还原构建服务。
我找到了很好的文章here
在完成文章中描述的所有步骤后,我的服务运行良好,但在测试时我注意到某些动词无法转换为不定式。
例如科赫斯特->科钦。 根本原因是我的词性标注器给了我“kochst”的ADV,而应该是VVFIN或至少是V...,因为这是一个动词。
我还发现原始的 TIGER 语料库文件不包含“kochst”形式,而只有“kocht”。
我不熟悉 conll 格式,但添加了一行如下所示
50475_11 kochst kochen _ VVFIN _ number=sg|person=2|tense=pres|mood=ind _ 0 _ -- _ _ _ _
并重新训练标记器但没有成功,请参见下面的清单
>>> import nltk
>>> corp = nltk.corpus.ConllCorpusReader('.', 'tiger_release_aug07.corrected.16012013.conll09',
... ['ignore', 'words', 'ignore', 'ignore', 'pos'],
... encoding='utf-8')
>>>
>>> tagged_sents = corp.tagged_sents()
>>>
>>> from ClassifierBasedGermanTagger.ClassifierBasedGermanTagger import ClassifierBasedGermanTagger
>>> tagger = ClassifierBasedGermanTagger(train=tagged_sents)
>>> tagger.tag(['kochst'])
[('kochst', u'ADV')]
>>>
>>>
>>> tagged_sents[-1]
[(u'kochst', u'VVFIN')]
所以可能是我错误地添加了 'kochst' 记录或者 TIGER 语料库不完整(我发现很多第二人称形式的动词不存在)或者我只是不明白这里的东西,如何训练 POS 标注器变位动词的返回动词。
'kochst'只是一个例子,我猜还有很多其他动词无法识别
>>> tagger.tag(['fahre'])
[('fahre', u'XY')]
>>> tagger.tag(['musst'])
[('musst', u'PPER')]
【问题讨论】:
标签: nlp nltk lemmatization