采用UIE抽取实体时,len(result)只能输出实体类型的个数为6个,我如何修改代码才能输出具体抽取的实体个数呢?
#抽取实体
from pprint import pprint
import json
from paddlenlp import Taskflow
def openreadtxt(file_name):
data = []
file = open(file_name,'r',encoding='UTF-8') #打开文件
file_data = file.readlines() #读取所有行
for row in file_data:
data.append(row) #将每行数据插入data中
return data
data_input=openreadtxt('./input/中长期规划.txt')
schema = ["战略定位", "财税支持", "政策目标", "产业体系", "建设应用", "制度保障", "组织实施"]
few_ie = Taskflow('information_extraction', schema=schema, batch_size=1,task_path='./checkpoint/model_best')
results=few_ie(data_input)
info_count = sum(len(result) for result in results)
with open("./output/out中长期规划.txt", "w+",encoding='UTF-8') as f: #写入文件,若文件不存在则会先创建再写入,但不会覆盖原文件,而是追加在文件末尾
for result in results:
line = json.dumps(result, ensure_ascii=False) #对中文默认使用的ascii编码.想输出真正的中文需要指定ensure_ascii=False
f.write(line + "\n")
print("抽取实体个数:", info_count)
for idx, text in enumerate(data_input):
print(results[idx])
下面是输出的内容
抽取实体个数: 6
{'财税支持': [{'text': '强化财政金融支持', 'start': 6885, 'end': 6893, 'probability': 0.9977543776663893}], '政策目标': [{'text': '10-20 万吨', 'start': 2282, 'end': 2290, 'probability': 0.8295114755887738}, {'text': '5 万辆', 'start': 2256, 'end': 2260, 'probability': 0.8832630322984194}], '产业体系': [{'text': '着力打造产业创新支撑平台', 'start': 2951, 'end': 2963, 'probability': 0.888475244401107}, {'text': '积极开展氢能技术创新国际合作', 'start': 3462, 'end': 3476, 'probability': 0.9399201726605249}], '建设应用': [{'text': '统筹推进氢能基础设施建设', 'start': 3631, 'end': 3643, 'probability': 0.683781604701359}, {'text': '合理布局制氢设施', 'start': 3721, 'end': 3729, 'probability': 0.9262853188766407}, {'text': '有序推进交通领域示范应用', 'start': 4319, 'end': 4331, 'probability': 0.8531930510891073}, {'text': '稳步推进氢能多元化示范应用', 'start': 4214, 'end': 4227, 'probability': 0.9259579090671508}, {'text': '积极开展储能领域示范应用', 'start': 4496, 'end': 4508, 'probability': 0.9929209466887414}, {'text': '逐步探索工业领域替代应用', 'start': 4863, 'end': 4875, 'probability': 0.9958242233518462}, {'text': '合理布局发电领域多元应用', 'start': 4658, 'end': 4670, 'probability': 0.9987073774893602}, {'text': '储能', 'start': 5195, 'end': 5197, 'probability': 0.55036255874505}], '制度保障': [{'text': '建立完善氢能产业标准体系', 'start': 5861, 'end': 5873, 'probability': 0.9817167318170696}, {'text': '建立健全氢能政策体系', 'start': 5640, 'end': 5650, 'probability': 0.9342529675982405}, {'text': '加强全链条安全监管', 'start': 6079, 'end': 6088, 'probability': 0.8695369867737313}], '组织实施': [{'text': '充分发挥统筹协调机制作用', 'start': 6469, 'end': 6481, 'probability': 0.4291306701117037}, {'text': '加强全链条安全监管', 'start': 6079, 'end': 6088, 'probability': 0.9854434161541015}, {'text': '做好规划督导评估', 'start': 7152, 'end': 7160, 'probability': 0.992682947623166}]}