【问题标题】:WordNetLemmatizer: Different handling of wn.ADJ and wn.ADJ_SAT?WordNetLemmatizer:wn.ADJ 和 wn.ADJ_SAT 的不同处理方式?
【发布时间】:2019-01-09 02:04:41
【问题描述】:

我需要使用 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) 的词有哪些例子?

【问题讨论】:

标签: python nlp nltk wordnet lemmatization


【解决方案1】:

NLTK 中的 WordNetLemmatizer 不区分附属形容词和普通形容词。

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 中的特殊词性。

来自wordnetglossary

卫星同步集: 形容词簇中的同义词组表示的概念在含义上与其头部同义词组所代表的概念相似。

用户tripleeeout in this question如下:

形容词在形容词集群中被细分为“head”和“satellite”同义词集

另外,nltk.stem.WordNetLemmatizer.lemmatizethe nltk documentation 假定默认词性是名词而不是动词,除非另有说明。

【讨论】:

  • @Simon-h 这回答了你的问题还是我离题了?
  • 一个例子可以完成你的答案。
猜你喜欢
  • 1970-01-01
  • 2016-06-14
  • 1970-01-01
  • 1970-01-01
  • 2018-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多