如何创建spaCy文档,因为我有原始文本和"单词"但没有"空格"数据



我想创建spacy doc给定我有原始文本和 words,但缺少whitespaces数据。

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', '.']}

根据我们在评论中的讨论,我建议这样做以下任一项:

首选路线:

替换您要改进的元素的旋转管道。如果您不信任POS标记器是有原因的,请在定制解析器中更适合使用。可选,您可以使用Prodigy等工具使用自己的带注释的数据来训练现有的POS Tagger模型。

快速而肮脏的路线:

  1. 将文档加载为Spacy Doc中的纯文本
  2. 随着Spacy解析它们并通过检查所有角色匹配的所有字符列表,
  3. 循环在令牌上。
  4. 如果您没有获得匹配项,请处理异常作为输入,以获得更好的令牌/检查令牌为什么您的令牌为何做事
  5. 如果您确实获得了匹配项,请加载其他信息作为扩展属性(https://spacy.io/usage/processing-pipelines#custom-components-atributes(
    1. 在进一步的循环中使用这些额外属性检查这些额外属性是否与Spacy解析器相匹配,并输出最终的培训数据集。

最新更新