NLTK - TypeError:tagged_words()得到了一个意外的关键字参数' simplify_tags'

时间:2015-04-02 17:55:57

标签: python-3.x nlp nltk corpus tagged-corpus

我刚刚关注了NLTK第5章,tagged_words()中的'simplify_tags'参数似乎是出乎意料的。我使用Python 3.4,PyCharm和标准的NLTK包。

In[4]: nltk.corpus.brown.tagged_words()
Out[4]: [('The', 'AT'), ('Fulton', 'NP-TL'), ...]
In[5]: nltk.corpus.brown.tagged_words(simplify_tags = True)
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\IPython\core\interactiveshell.py", line 2883, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-5-c4f914e3e846>", line 1, in <module>
    nltk.corpus.brown.tagged_words(simplify_tags = True)
TypeError: tagged_words() got an unexpected keyword argument 'simplify_tags'

没有simplify_tags运行此函数没有问题。我感谢任何建议或意见。谢谢!

2 个答案:

答案 0 :(得分:5)

是的,如上所述,简化标记的最新版本是将它们映射到通用标记集(https://code.google.com/p/universal-pos-tags/)。

>>> from nltk.corpus import brown
>>> brown.tagged_words(tagset='universal')
[(u'The', u'DET'), (u'Fulton', u'NOUN'), ...]
>>> brown.tagged_words(tagset='universal')[:10]
[(u'The', u'DET'), (u'Fulton', u'NOUN'), (u'County', u'NOUN'), (u'Grand', u'ADJ'), (u'Jury', u'NOUN'), (u'said', u'VERB'), (u'Friday', u'NOUN'), (u'an', u'DET'), (u'investigation', u'NOUN'), (u'of', u'ADP')]

但请注意,仍然有一个语料库阅读器具有simplify_tags参数,请参阅https://github.com/nltk/nltk/blob/develop/nltk/corpus/reader/ipipan.py#L23

可能它正在为ipipan语料库阅读器移动到通用标签集。

此外,请注意并非所有语料库阅读器都能够映射到unviersal标记集,有些是在TODO列表中,例如, https://github.com/nltk/nltk/blob/develop/nltk/corpus/reader/tagged.py#L260

答案 1 :(得分:3)

问题解决了。我现在正在阅读本书的latest version,该书仍在更新中,它使用了tagset =&#39; universal&#39;参数而不是。