我不知道如何扩展/重新训练现有模型。我不想从头开始训练我自己的标记器,我只是想根据自己的需要使用现有的标记器并进行一些更改。例如
tagger = PerceptronTagger(load=True)
tagger.train([[('restaurant','NN')]])
tokens = nltk.word_tokenize("Show me restaurant in Berlin")
tags = tagger.tag(tokens)
for i in tags:
print(i)
这当然是默认输出:
<'显示','VB'> <'我','PRP'> <'餐厅','VB'> <'in','IN'> <'柏林','NNP'>
我期望的是餐厅-NN。 或者,小写的实体(例如柏林,韩国等)(这将是NN,JJ和NN)存在一个普遍问题。有什么想法或建议吗?
答案 0 :(得分:1)
我建议您只用小写字母训练标记器,这样您就不会遇到像您所说的“柏林”和“柏林”这样的麻烦问题。
我不知道PerceptronTagger
的工作原理,但是我建议你这样做。为了在有新数据时重新训练模型,必须对“更新后的”数据再次重复整个训练过程。
否则,如果标记器具有某种内部字典,例如dict
,该词将单词与相对标记相关联,则可以尝试使用新数据更新它,在这种情况下为“ <'resturant' > <'NN'>