[英]Tokenizing using Pandas and spaCy
我正在处理我的第一个 Python 项目,并且拥有相当大的数据集(数千行的 10 行)。 我需要在 5 个文本列(每个“单元格”的多个文本句子)上做一些 nlp(聚类、分类),并且一直在使用 pandas 来组织/构建数据集。 我希望对所有 nlp 使用 spaCy,但不太清楚如何标记我的专栏中的文本。 我已经阅读了一堆 spaCy 文档,并四处搜索,但我发现的所有示例都是针对单个句子或单词的 - 而不是 pandas df 中的 75K 行。
我试过类似的东西: df['new_col'] = [token for token in (df['col'])]
但肯定会感谢一些帮助/资源。
我从来没有使用过spaCy(nltk总是为我完成工作)但是从浏览文档看起来应该可行:
import spacy
nlp = spacy.load('en')
df['new_col'] = df['text'].apply(lambda x: nlp(x))
请注意, nlp
默认运行整个SpaCy管道,其中包括词性标注,解析和命名实体识别。 通过使用nlp.tokenizer(x)
而不是nlp(x)
,或者在加载模型时禁用部分管道,可以显着加快代码速度。 例如nlp = spacy.load('en', parser=False, entity=False)
。
使用 pandarallel 让它更快
import spacy
from pandarallel import pandarallel
pandarallel.initialize(progress_bar=True)
nlp = spacy.load("en_core_web_sm")
df['new_col'] = df['text'].parallel_apply(lambda x: nlp(x))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.