【问题标题】:Convert the Brown corpus tagset to upenn tagset将布朗语料库标签集转换为 upenn 标签集
【发布时间】: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


【解决方案1】:

目前,这似乎是不可能的(请参阅this 问题)。使用第三方工具(例如 this)的变通办法可能会奏效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-02
    • 1970-01-01
    • 2020-09-23
    • 1970-01-01
    相关资源
    最近更新 更多