使用Pandas和spaCy进行标记

LMG*_*gne 5 python tokenize python-3.x pandas spacy

我正在研究我的第一个Python项目,并拥有相当大的数据集(数十万行).我需要在5个文本列(每个'单元格的多个文本句子)上做一些nlp(聚类,分类),并且已经使用pandas来组织/构建数据集.我希望将spaCy用于所有nlp,但无法弄清楚如何对我的列中的文本进行标记.我已经阅读了一堆spaCy文档,然后用Google搜索,但我发现的所有例子都是单句或单词 - 而不是pandas df中的75K行.

我尝试过这样的事情: df['new_col'] = [token for token in (df['col'])]

但肯定会感谢一些帮助/资源.

这里提供了完整的(虽然是凌乱的)代码

小智 17

我从来没有使用过spaCy(nltk总是为我完成工作)但是从浏览文档看起来应该可行:

import spacy
nlp = spacy.load('en')

df['new_col'] = df['text'].apply(lambda x: nlp(x))
Run Code Online (Sandbox Code Playgroud)

请注意,nlp默认情况下会运行整个SpaCy管道,其中包括词性标注,解析和命名实体识别.通过在加载模型时使用nlp.tokenizer(x)代替nlp(x)或禁用部分管道,可以显着加快代码速度.例如nlp = spacy.load('en', parser=False, entity=False).