gpt4 book ai didi

python - spaCy,准备训练数据 : doc. char_span 返回 'None'

转载 作者:行者123 更新时间:2023-12-05 08:46:17 26 4
gpt4 key购买 nike

我正在按照 spaCy 文档中的说明准备我自己的训练数据 (here)。

我的问题从这一行开始:

span = doc.char_span(start, end, label=label)

对于我标记为组织(“ORG”)的实体,它似乎工作正常,即它返回一个 span 对象。但是,对于我标记为金钱(“金钱”)的实体,它返回一个 None 对象。

这是我训练集中的两个例子:

('Payments from the Guardian, Kings Place, 90 York Way, London N1 9GU, for articles:', [(18, 26, 'ORG')]) // Returns a span object for 'Guardian'

('24 July 2020, received £100. Hours: 1 hr. (Registered 02 February 2021)', [(24, 28, 'MONEY')]) // Returns None for '£100'

注意: Â 出现在控制台中,但它不在原始 json 文本文件中。以防万一它是问题的一部分

有人对我哪里出错有什么建议吗?

[我对 spacy 很陌生(上周开始学习),所以请 ELI5!]

更新:看来 Â 可能是问题所在,以下是我加载数据的方式。我如何摆脱 Â's? (在原始文件中不可见)

with open('training_data.json') as train_data:
train_data_json = json.load(train_data)

最佳答案

正如其他答案所指出的,您有一个需要解决的编码问题。我们不能在没有看到文件的情况下说出您的文件是什么编码。通常在 Linux 上,您可以使用 file 命令来检查编码(不完美,但相当不错),但 JSON 应该始终是 UTF8,所以这对这里没有帮助。如果您有权访问 JSON 之前的数据源,您可能需要检查一下。

但是除此之外,问题是如果您的跨度无效,即如果您的字符索引与标记边界不对齐,char_span 将返回None。例如,如果您想在“Tokyo Tower is...”示例中标记“Tokyo”,但给出字符索引 0 和 4(“Toky”),您将得到 None

在这种情况下,听起来你有一个需要修复的系统错误,但如果少量注释是错误的,你可以将一些选项传递给函数,告诉它在对齐关闭时扩展或收缩.检查the docs了解更多详情。

关于python - spaCy,准备训练数据 : doc. char_span 返回 'None',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69976538/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com