【发布时间】:2018-05-14 18:54:30
【问题描述】:
我有一个相当长的文本被 Spacy 解析成一个 Doc 实例:
import spacy
nlp = spacy.load('en_core_web_lg')
doc = nlp(content)
doc 在这里变成了Doc class instance。
现在,由于文本很大,我想在 Jupyter 笔记本中仅使用文档的一部分(例如前 100 个句子)进行处理、实验和可视化。
如何从现有文档的一部分切片并创建一个新的Doc 实例?
【问题讨论】:
-
具体问题有些不清楚。你可以通过
Doc[index1:index2]从Doc中获取一个切片,就像你通常使用python列表或数组一样。只要内容是字符串,切片内容也可以正常工作。如果你想对句子本身进行切片,那么它会变得有点困难。 -
@Uvar 对不起,如果它有点混乱。切片
doc[index1:index2]的第一个问题是切片的结果将是Span类型而不是Doc类型,第二个问题,正如您所提到的,是“按句子切片”。谢谢。 -
好吧...我将在这里提出一个完全古怪的东西..随意将其更正为更有意义的东西,例如将句子切入理解而不是外面。 (我没有对它进行广泛的测试,所以我觉得工作很安全):
sentences = [sent.string.strip() for sent in doc.sents][:100];minidoc = nlp(' '.join(sentences)) -
@Uvar 是的,我想这是一种方法,请随时将其发布为答案。不确定 Spacy 是否有更好的选择。谢谢!