spacy-3 - 无法将旧的 spacy 2.0 数据转换为新的 spacy 3.0 可接受的格式
问题描述
我正在尝试将旧的 spacy 2.0 数据集转换为新的 spacy 3.0 可接受的格式,但我收到此错误“char_span() got an unexpected keyword argument 'alignment_mode'”错误,我应该如何解决这个错误?我正在使用此代码
import pandas as pd
from tqdm import tqdm
import spacy
from spacy.tokens import DocBin
nlp = spacy.blank("en") # load a new spacy model
db = DocBin() # create a DocBin object
for text, annot in tqdm(TRAIN_DATA): # data in previous format
doc = nlp.make_doc(text) # create doc object from text
ents = []
for start, end, label in annot["entities"]: # add character indexes
span = doc.char_span(start, end, label=label, alignment_mode="contract")
if span is None:
print("Skipping entity")
else:
ents.append(span)
doc.ents = ents # label the text with the ents
db.add(doc)
db.to_disk("./train.spacy") # save the docbin object
运行此脚本后,我收到此错误
TypeError: char_span() 得到了一个意外的关键字参数“alignment_mode”
解决方案
该alignment_mode
选项是在 spaCy v3 中添加的,但您似乎使用的是 spaCy v2。因此,如果您使用 spaCy v3 运行上述代码,它应该可以工作。
推荐阅读
- javascript - NodeJS 脚本不使用 async/await 操作
- jquery - 没有视差插件适用于我的网站
- c# - 如何将我的所有输出和光标保持在 Visual Studios 的中心?
- go - 在 goroutine 中使用 exec.CommandContext 时如何调用 cancel()
- visual-studio - Intellisense PCH Warning: Header stop not at file scope. An intellisense PCH file was not generated
- html - 向一个元素添加 2 个 CSS 动画
- bash - 在菜单中循环,直到选择条件或退出/注销选项
- python - Beautiful Soup 去掉标签
- database - 为什么 LevelDB 的下层比上层大 10 倍?
- r - `lapply` 是否可以在“超时”约束下返回部分处理结果?