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