将结果输出到 csv 文件 - TypeError writerow() 采用 2 个位置参数,但给出了 5 个
Output result to csv file - TypeError writerow() takes 2 positional arguments but 5 were given
我正在尝试将我的 spaCy NER 结果输出到 csv 文件而不是纯文本文件。
到目前为止,我有这段代码可以尝试实现:
def spacy_ner():
with open("spacy_results.txt", "w") as f:
cf = csv.DictWriter(f, ['Character', 'begin', 'end'\
, 'Label'], extrasaction='ignore')
cf.writeheader()
nlp = spacy.load('en_core_web_md')
doc = nlp(text)
for ent in doc.ents:
if ent.label_ == 'PERSON':
cf.writerow(ent.text, ent.start_char, ent.end_char, ent.label_)
print("Processing done")
我不确定如何创建 csv 文件,同时尝试显示上述所有属性:ent.text, ent.start_char, ent.end_char, ent.label_
运行 上面的代码调用了一个 TypeError: writerow() takes 2 positional arguments but 5 were given
如果我将结果写入 .txt 文件,它工作正常,但如果它是一个更结构化且易于访问的 csv 文件,那就更好了。
我在这里没有看到需要更改的内容?任何帮助都会很棒!
A csv.DictWriter 需要字典来书写。如果您的 ent
对象没有 to_dict()
方法,您将不得不创建一个。
for ent in doc.ents:
if ent.label_ == 'PERSON':
d = {'Character':ent.text, 'begin':ent.start_char,
'end':ent.end_char,'Label':ent.label_}
cf.writerow(d)
我正在尝试将我的 spaCy NER 结果输出到 csv 文件而不是纯文本文件。
到目前为止,我有这段代码可以尝试实现:
def spacy_ner():
with open("spacy_results.txt", "w") as f:
cf = csv.DictWriter(f, ['Character', 'begin', 'end'\
, 'Label'], extrasaction='ignore')
cf.writeheader()
nlp = spacy.load('en_core_web_md')
doc = nlp(text)
for ent in doc.ents:
if ent.label_ == 'PERSON':
cf.writerow(ent.text, ent.start_char, ent.end_char, ent.label_)
print("Processing done")
我不确定如何创建 csv 文件,同时尝试显示上述所有属性:ent.text, ent.start_char, ent.end_char, ent.label_
运行 上面的代码调用了一个 TypeError: writerow() takes 2 positional arguments but 5 were given
如果我将结果写入 .txt 文件,它工作正常,但如果它是一个更结构化且易于访问的 csv 文件,那就更好了。
我在这里没有看到需要更改的内容?任何帮助都会很棒!
A csv.DictWriter 需要字典来书写。如果您的 ent
对象没有 to_dict()
方法,您将不得不创建一个。
for ent in doc.ents:
if ent.label_ == 'PERSON':
d = {'Character':ent.text, 'begin':ent.start_char,
'end':ent.end_char,'Label':ent.label_}
cf.writerow(d)