【发布时间】:2018-09-19 02:22:16
【问题描述】:
我正在研究文本分类问题,我尝试过 WordNetLemmmatizer,然后是 TF-IDF、CountVectorizer。现在,我正在尝试在输入 TF-IDF 之前使用 Spacy 清理文本。输入文件有大约 20,000 条记录,每条记录只有几个句子。文件的总大小为 45MB。
使用 WordNet 进行词形还原只需几秒钟。但是下面使用 Spacy 的代码花费了太长时间。 20 分钟后,我的笔记本电脑挂了。请建议如何优化 Spacy 以进行文本预处理和词形还原。
我正在使用 Spacy 2.0.12。
import spacy
nlp = spacy.load('en', disable=['parser', 'tagger', 'ner'])
def spacy_lemma_text(text):
doc = nlp(text)
tokens = [tok.lemma_.lower().strip() for tok in doc if tok.lemma_ != '-PRON-']
tokens = [tok for tok in tokens if tok not in nltk_stopwords and tok not in punctuations]
tokens = ' '.join(tokens)
return tokens
df['spacy_lemma_text'] = df['text'].apply(spacy_lemma_text)
【问题讨论】:
标签: nlp text-processing spacy lemmatization