训练默认的Perceptron Tagger

时间:2019-12-08 15:57:12

标签: python nltk pos-tagger

我不知道如何扩展/重新训练现有模型。我不想从头开始训练我自己的标记器,我只是想根据自己的需要使用现有的标记器并进行一些更改。例如

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)存在一个普遍问题。有什么想法或建议吗?

1 个答案:

答案 0 :(得分:1)

我建议您只用小写字母训练标记器,这样您就不会遇到像您所说的“柏林”和“柏林”这样的麻烦问题。

我不知道PerceptronTagger的工作原理,但是我建议你这样做。为了在有新数据时重新训练模型,必须对“更新后的”数据再次重复整个训练过程

否则,如果标记器具有某种内部字典,例如dict,该词将单词与相对标记相关联,则可以尝试使用新数据更新它,在这种情况下为“ <'resturant' > <'NN'>