首页 > 解决方案 > 停用词删除和词形还原后的空白

问题描述

处理前的文本看起来像这样

0   [It's, good, for, beginners]                        positive
1   [I, recommend, this, starter, Ukulele, kit., I...   positive

经过stopword去除和词形还原的预处理

nlp = spacy.load('en', disable=['ner', 'parser']) # disabling Named Entity Recognition for speed

def cleaning(doc):
    txt = [token.lemma_ for token in doc if not token.is_stop]
    if len(txt) > 2:
        return ' '.join(txt)
brief_cleaning = (re.sub("[^A-Za-z']+", ' ', str(row)).lower() for row in df3['reviewText'])

txt = [cleaning(doc) for doc in nlp.pipe(brief_cleaning, batch_size=5000, n_threads=-1)]

结果是这样的

0   ' good ' ' ' ' beginner '                       positive
1   ' ' ' recommend ' ' ' ' starter ' ' ukulele ... positive

如您所见,' '结果中有很多,这是什么原因造成的?我假设它是导致它的return ' '.join(txt)and re.sub("[^A-Za-z']+", ' ',但是如果我删除了 space 或 use return (txt),它根本不会删除任何stopword内容或进行词形还原。

这些空白空间会引起麻烦,还是有必要,因为我正在做二元和word2vec之后。

如何修复它并将结果返回为' recommend ' ' starter ' ' ukulele ' ' kit ' ' need ' ' learn ' ' ukulele '

标签: pythonnlpspacyword2vecsentiment-analysis

解决方案


推荐阅读