相关疑难解决方法(0)

使用nltk的一般同义词和词性处理

我正在尝试为句子中的单词创建一个通用的同义词标识符(即"a"或"the"),我在python中使用自然语言工具包(nltk).我遇到的问题是nltk中的同义词查找器需要一个词性参数才能链接到它的同义词.我试图解决的问题是使用nltk中存在的简化词性标记,然后减少第一个字母以便将此参数传递给同义词查找器,但这不起作用.

def synonyms(Sentence):
    Keywords = []
    Equivalence = WordNetLemmatizer()
    Stemmer = stem.SnowballStemmer('english')
    for word in Sentence:
        word = Equivalence.lemmatize(word)
    words = nltk.word_tokenize(Sentence.lower())
    text = nltk.Text(words)
    tags = nltk.pos_tag(text)
    simplified_tags = [(word, simplify_wsj_tag(tag)) for word, tag in tags]
    for tag in simplified_tags:
        print tag
        grammar_letter = tag[1][0].lower()
        if grammar_letter != 'd':
            Call = tag[0].strip() + "." + grammar_letter.strip() + ".01"
            print Call
            Word_Set = wordnet.synset(Call)
            paths = Word_Set.lemma_names
            for path in paths:
                Keywords.append(Stemmer.stem(path))
    return Keywords
Run Code Online (Sandbox Code Playgroud)

这是我目前正在处理的代码,正如你所看到的那样,我首先将输入变为lematizing以减少我将长期运行的匹配数量(我计划在成千上万的句子上运行),并且理论我会在此之后产生这个词,以进一步发挥这种作用并减少我产生的冗余单词的数量,但是这种方法几乎总是以下面的形式返回错误:

Traceback (most recent call last): …
Run Code Online (Sandbox Code Playgroud)

python nlp machine-learning nltk wordnet

8
推荐指数
1
解决办法
3759
查看次数

标签 统计

machine-learning ×1

nlp ×1

nltk ×1

python ×1

wordnet ×1