我做了以下函数来清理我的数据集的文本注释:
import spacy
nlp = spacy.load("en")
def clean(text):
"""
Text preprocessing for english text
"""
# Apply spacy to the text
doc=nlp(text)
# Lemmatization, remotion of noise (stopwords, digit, puntuaction and singol characters)
tokens=[token.lemma_.strip() for token in doc if
not token.is_stop and not nlp.vocab[token.lemma_].is_stop # Remotion StopWords
and not token.is_punct # Remove puntuaction
and not token.is_digit # Remove digit
]
# Recreation of the text
text=" ".join(tokens)
return text.lower()
问题是当我想清理我所有的数据集文本时,需要一个小时一个小时。(我的数据集是 70k 行,每行 100 到 5000 个单词)
我尝试使用swifter
这样的多线程运行该apply
方法:data.note_line_comment.swifter.apply(clean)
但它并没有变得更好,因为它花了将近一个小时。
我想知道是否有任何方法可以制作我的函数的矢量化形式,或者可能还有其他方法来加快这个过程。任何想法 ?