如何拼接两个spaCy Doc对象?寻求简便实现方案
合并spaCy Doc对象的简便方法
spaCy从v2.1版本开始已支持直接合并多个Doc对象,官方提供的Doc.from_docs()是最简便且能保留原Doc标注信息的方案,无需手动处理token或重新解析文本。
示例代码
import spacy nlp = spacy.load('en') doc1 = nlp(u'This is the doc number one.') doc2 = nlp(u'And this is the doc number two.') # 合并两个Doc对象 new_doc = spacy.tokens.Doc.from_docs([doc1, doc2]) # 验证合并结果 print(new_doc.text) # 输出: This is the doc number one. And this is the doc number two.
关键说明
Doc.from_docs()会完整保留每个原Doc中token的所有标注信息(如词性标注、实体识别结果、依存关系等),避免了重新调用nlp解析带来的资源消耗和结果不一致问题。- 如果仅需拼接文本创建新Doc(比如
nlp(doc1.text + " " + doc2.text)),虽可行但会丢失原Doc已有的所有标注,需重新计算,仅适合不需要保留原有分析结果的场景。
内容的提问来源于stack exchange,提问作者pyoupyou
相关产品推荐
相关产品推荐

