【问题标题】:Is nltk wordnet lemmatizer language independent?nltk wordnet lemmatizer 语言是否独立?
【发布时间】:2018-10-06 22:28:09
【问题描述】:

nltk's wordnet lemmatizer 是否真的不依赖于输入文本的语言?我会使用相同的命令序列吗:

>>> from nltk.stem import WordNetLemmatizer
>>> wnl = WordNetLemmatizer()
>>> print(wnl.lemmatize('dogs'))
dog
>>> print(wnl.lemmatize('churches'))
church
>>> print(wnl.lemmatize('aardwolves'))
aardwolf
>>> print(wnl.lemmatize('abaci'))
abacus
>>> print(wnl.lemmatize('hardrock'))
hardrock

例如英语和法语?

【问题讨论】:

  • 不,NLTK 中的 Wordnet lemmatizer 仅适用于英语。

标签: nlp nltk lemmatization


【解决方案1】:

简而言之

不,NLTK 中的 Wordnet lemmatizer 仅适用于英语。

长期

如果我们查看https://github.com/nltk/nltk/blob/develop/nltk/stem/wordnet.py#L15

class WordNetLemmatizer(object):

    def __init__(self):
        pass

    def lemmatize(self, word, pos=NOUN):
        lemmas = wordnet._morphy(word, pos)
        return min(lemmas, key=len) if lemmas else word

    def __repr__(self):
        return '<WordNetLemmatizer>' 

它基于https://github.com/nltk/nltk/blob/develop/nltk/corpus/reader/wordnet.py#L1764_morphy() 函数,它应用了多个English specific substitutions

    MORPHOLOGICAL_SUBSTITUTIONS = {
    NOUN: [('s', ''), ('ses', 's'), ('ves', 'f'), ('xes', 'x'),
           ('zes', 'z'), ('ches', 'ch'), ('shes', 'sh'),
           ('men', 'man'), ('ies', 'y')],
    VERB: [('s', ''), ('ies', 'y'), ('es', 'e'), ('es', ''),
           ('ed', 'e'), ('ed', ''), ('ing', 'e'), ('ing', '')],
    ADJ: [('er', ''), ('est', ''), ('er', 'e'), ('est', 'e')],
    ADV: []}

MORPHOLOGICAL_SUBSTITUTIONS[ADJ_SAT] = MORPHOLOGICAL_SUBSTITUTIONS[ADJ]

【讨论】:

    猜你喜欢
    • 2013-04-17
    • 1970-01-01
    • 2016-02-10
    • 2015-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 2017-01-11
    相关资源
    最近更新 更多