我有一些训练数据,当我将其分配给jupyter笔记本中的变量时,它似乎会自动转换为对象,
例如
train_data = [("Uber blew through $1 million a week", [(0, 4, 'ORG')]),("Android Pay expands to Canada", [(0, 11, 'PRODUCT'), (23, 30, 'GPE')])]
但是当我使用
从文本文件中读取相同的数据时with open(path, 'r') as myfile:
data = myfile.read()
并将其分配给train_data变量,我不再需要遍历训练脚本中的对象
for _, annotations in train_data:
for ent in annotations.get('entities'):
ner.add_label(ent[2])
答案 0 :(得分:2)
erotavlas。 File.read()返回一个字符串,这不是您将其视为对象的类型。您可以在读取字符串时像data = eval(myfile.read())
那样对字符串求值,但这可能会带来安全风险,具体取决于您在何处使用它。另一个解决方案是使用记录在here中的json库。希望这对您有用!
答案 1 :(得分:1)
您可能会混淆变量和字符串。第一个示例是类型为list的变量,文件的内容以字符串形式返回。您必须先将其解析为适当的格式。