给定我有原始文本和“单词”但没有“空格”数据的情况下如何创建spaCy文档

时间:2019-05-06 16:52:31

标签: spacy

鉴于我有原始文本和doc但缺少空白数据,因此我想创建spaCy words

from spacy.tokens import Doc
doc = Doc(nlp.vocab, words=words, spaces=spaces)

如何正确执行此操作,以确保有关空白的信息不会丢失? 我拥有的数据示例:

data= {'text': 'This is just a test sample.', 'words': ['This', 'is', 'just', 'a', 'test', 'sample', '.']}

1 个答案:

答案 0 :(得分:0)

根据我们在评论中的讨论,我建议您执行以下任一操作:

首选路线:

在Spacy管道中替换您要改进的那些元素。如果您出于某种原因不信任POS标记器,请使用更适合目的的自定义解析器代替。可选地,您可以使用Prodigy之类的工具使用您自己的注释数据来训练现有POS标记器模型。

快速而肮脏的路线:

  1. 将文档作为纯文本加载到Spacy文档中
  2. Spacy解析它们时,请遍历标记,并通过检查所有字符是否匹配来匹配您自己的标记列表。
  3. 如果您没有找到匹配项,则将异常作为更好的令牌生成器的输入/检查您的令牌生成器的工作方式是否不同
  4. 如果您确实有匹配项,请加载其他信息作为扩展属性(https://spacy.io/usage/processing-pipelines#custom-components-attributes
    1. 在其他循环中使用这些额外的属性,以检查这些额外的属性是否与Spacy解析器匹配,并输出最终的训练数据集。