python - 在python中对多个单词进行分词

标签 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

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

最佳答案

您需要使用词性标签,或者实际上依赖解析会更准确。我没有尝试过使用 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

我还建议首先对句子进行词形还原以消除词形变化。另外,如果您需要名词短语,可以使用类似的方式使用复合关系。

关于python - 在python中对多个单词进行分词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54425786/

相关文章:

python - Pandas:如果字符串存在于几列中的任何一列中,我想对计数进行求和,并将该计数添加到具有搜索术语的另一个数据框中

python - Urwid 键盘触发弹出窗口

python - 我如何开始学习 Python for web

python - 在发送之前修改url以在scrapy中获取

python - NLTK树数据结构,找到一个节点,它是父节点或子节点

java - 使用 ICUTokenizer JAVA 标记泰语句子

python - NLTK NaiveBayesClassifier 在 Python 中非常慢?

python - nltk python 法语 Stemmer

java - 如何为 OpenNLP 准备训练数据以对包含多个单词的标记进行标记?

java - 读取文件并映射到 Map<String, List<String>>