WordNetLemmatizer:wn.ADJ和wn.ADJ_SAT的不同处理方式?

时间:2018-08-01 13:17:00

标签: python nlp nltk wordnet lemmatization

我需要使用nltk对文本进行词法化。为此,我将nltk.pos_tag应用于每个句子,然后将得到的Penn Treebank标签(http://www.ling.upenn.edu/courses/Fall_2003/ling001/penn_treebank_pos.html)转换为WordNet标签。我需要这样做是因为WordNetLemmatizer.lemmatize()希望单词及其正确的pos_tag都作为参数,否则它将假定所有内容都是动词。

我刚刚发现WordNet中定义了五个不同的标签:

  • wn.VERB
  • wn.ADV
  • wn.NOUN
  • wn.ADJ
  • wn.ADJ_SAT

但是,当我在Internet上找到的每个示例,在将Treebank标签转换为WordNet标签时,只会忽略wn.ADJ_SAT 。它们都只是将Penn标签映射到WordNet标签,如下所示:

  • 如果Penn标签以J开头:请转换为wn.ADJ
  • 如果Penn标签以V开头:请转换为wn.VERB
  • 如果Penn标签以N开头:请转换为wn.NOUN
  • 如果Penn标签以R开头:请转换为wn.ADV

因此永远不会使用wn.ADJ_SAT。

我的问题,现在是,在某些情况下,定理器对ADJ_SAT返回的结果与对ADJ返回的结果不同。卫星形容词(ADJ_SAT)而不是普通形容词(ADJ)的单词的例子是什么?

1 个答案:

答案 0 :(得分:0)

WordNetLemmatizer中的NLTK不能区分卫星形容词和普通形容词。

nltk.stem.WordNetLemmatizer.lemmatize使用"WordNet’s built-in morphy function. Returns the input word unchanged if it cannot be found in WordNet."

在WordNet中,卫星形容词(更广泛地称为“卫星同义词集”)更多地是WordNet在其他地方使用的语义标签,而不是nltk中的特殊词性。

从词网glossary

  

卫星同义词集:   形容词簇中的同义词集,表示一个概念,其含义与它的头部同义词集表示的概念相似。

用户tripleeeout in this question指出以下几点:

  

形容词在形容词副词中被分为“头部”和“卫星”同义词集

此外,除非另有说明,否则nltk.stem.WordNetLemmatizer.lemmatize的{​​{3}}会假定语音的默认部分是名词而不是动词。