【发布时间】:2015-08-16 04:45:53
【问题描述】:
我想在布朗语料库中查找带有特定 upenn 标记的单词。我尝试使用以下代码执行此操作:
poss = ['TO', 'NNS', 'RB', 'DT', 'VBD', 'JJ', 'RBS',
'PDT', 'IN', 'VBN', 'RP', 'NN', 'VB', 'CC',
'JJS', 'VBG', 'WRB', 'PRP$', 'WP$', 'WP',
'EX', 'CD', 'JJR', 'VBZ', 'MD', 'VBP', 'WDT', 'PRP', 'RBR']
PARTS_OF_SPEECH = {p: set() for p in poss}
words = set([(w, t) for w, t in nltk.corpus.brown.tagged_words()])
for word, tag in words:
if tag in poss:
PARTS_OF_SPEECH[tag].add(word)
所以我可以通过PARTS_OF_SPEECH["NN"] 获取所有带有 upenn 标签“NN”的 Brown 单词。
不幸的是,这不起作用,因为brown.tagged_words() 返回带有 Brown 标签而不是 upenn 标签的单词,两者略有不同。我知道brown.tagged_words() 有一个tagset 关键字参数,但我找不到除了“通用”之外的任何参数,这不是我想要的。有没有返回 upenn 标签的参数?
【问题讨论】:
-
您可能必须创建一个从 Brown 到 upenn 标签的映射,或者可能要找到一个现有的标签。但是,这并不完美,因为标签集不容易交换。每个标签集都基于单独的注释指南,不可避免地包括基础语言理论的差异。
标签: python-3.x nltk corpus