在python中标记多词

时间:2019-01-29 16:43:29

标签: python nltk tokenize

我是python的新手。我有来自twitter的大数据集,我想对其进行标记化。 但是我不知道如何标记这样的动词:“寻找,起飞,成长等”。这对我很重要。 我的代码是:

>>> from nltk.tokenize import word_tokenize
>>> s = "I'm looking for the answer"
>>> word_tokenize(s)
['I', "'m", 'looking', 'for', 'the', 'answer']

我的数据集很大,我无法使用此页面代码: Find multi-word terms in a tokenized text in Python

那么,我该如何解决我的问题?

1 个答案:

答案 0 :(得分:0)

您需要为此使用parts of speech标签,否则实际上dependency parsing会更准确。我还没有尝试使用nltk,但是使用spaCy可以这样做:

import spacy
nlp = spacy.load('en_core_web_lg')
def chunk_phrasal_verbs(lemmatized_sentence):

    ph_verbs = []
    for word in nlp(lemmatized_sentence):
        if word.dep_ == 'prep' and word.head.pos_ == 'VERB':
            ph_verb = word.head.text+ ' ' + word.text
            ph_verbs.append(ph_verb)
    return ph_verbs

我还建议您先lemmatizing去除句子中的词缀变化。另外,如果您需要名词短语,则可以类似的方式使用复合关系。