nltk.pos_tag()是如何工作的?是否涉及语料库的使用?我找到了一个源代码(nltk.tag -NLTK3.0文档),它说
_POS_TAGGER = 'taggers/maxent_treebank_pos_tagger/english.pickle'.加载_POS_TAGGER会给出一个对象:
nltk.tag.sequential.ClassifierBasedPOSTagger似乎没有经过语料库的训练。当我在名词之前用几个形容词连用(例如,快棕色狐狸)时,标签是不正确的。我想知道我是否可以通过使用更好的标注方法来提高效果,或者用更好的语料库进行某种程度的训练。有什么建议吗?
发布于 2016-12-29 17:52:06
据源代码称,pos_tag使用的是NLTK目前使用的POS标签,即2018年的PerceptronTagger。
这是文件 for PerceptronTagger和这是源代码.
要使用标记器,只需调用pos_tag(tokens)即可。这将调用PerceptronTagger的默认构造函数,该构造函数使用“预培训”模型。这是NLTK分发的一个已被腌制的模型,文件位于:taggers/averaged_perceptron_tagger/averaged_perceptron_tagger.pickle。这在“华尔街日报”语料库上进行了培训和测试。
或者,您可以实例化一个PerceptronTagger并通过提供有标记的示例来训练它的模型,例如:
tagger = PerceptronTagger(load=False) # don't load existing model
tagger.train([[('today','NN'),('is','VBZ'),('good','JJ'),('day','NN')],
[('yes','NNS'),('it','PRP'),('beautiful','JJ')]])文档链接到这篇博客文章,它很好地描述了理论。
PerceptronTagger是一个贪婪的平均感知器。这基本上意味着它有一个与特征关联的权重字典,它用来预测给定的一组特征的正确标记。在训练过程中,标记者根据猜测是否正确来猜测标签并调整权重。“平均”是指对迭代次数的加权调整。
发布于 2015-08-16 13:58:48
tagger是一个机器学习标记器,它已经被训练并为您保存。没有一个标签是完美的,但如果你想要最佳的性能,你不应该尝试自己的。看看那些可以免费下载和使用的最先进的tagger,比如斯坦福tagger,NLTK为它提供了一个接口。
特别是斯坦福标签,请参见help(nltk.tag.stanford)。您需要自己从http://nlp.stanford.edu/software/下载斯坦福工具。
发布于 2019-04-18 07:37:16
是的,它涉及的语料库名为佩恩树银行,它定义了句法和语义信息,一个语言树库。
https://stackoverflow.com/questions/32016545
复制相似问题