知识图到文本的生成(十一)
2021SC@SDUSC
本篇文章将针对eval.py函数进行进一步分析,
def evaluate(self, get_scores=True, live=False, **kwargs):
if live:
temp_ref = kwargs.pop('ref', {})
cand = kwargs.pop('cand', {})
else:
reference_path = kwargs.pop('ref', '')
candidate_path = kwargs.pop('cand', '')# load caption data
with open(reference_path, 'rb') as f:
temp_ref = pickle.load(f)
with open(candidate_path, 'rb') as f:
cand = pickle.load(f)
首先判断当前目标是否存活,如果存活则从kwargs中移出ref和cand 赋值给局部变量temp_ref和cand
如果不存在,则将关联路径设置为ref并将候选路径设置为cand,并读取相应路径的文件,调用pickle.load函数,实现原python对象的重构
# make dictionary
hypo = {}
ref = {}
i = 0
for vid, caption in cand.items():
hypo[i] = [caption]
ref[i] = temp_ref[vid]
i += 1
这部分代码的主要作用是构建字典,计算出人工评价, 初始化三个空集合分别为hypo表示推测,ref表示实际结果,i表示索引
遍历cand中的每个项,获得vid和caption,存放在hypo和ref集合中,集合可自动实现去重,获取到所有不重复的字符集合。
# compute scores
final_scores = self.score(ref, hypo)
#"""
# print out scores
print ('Bleu_1:\t', final_scores['Bleu_1'])
print ('Bleu_2:\t', final_scores['Bleu_2'])
print ('Bleu_3:\t', final_scores['Bleu_3'])
print ('Bleu_4:\t', final_scores['Bleu_4'])
print ('METEOR:\t', final_scores['METEOR'])
print ('ROUGE_L:', final_scores['ROUGE_L'])
#print ('CIDEr:\t', final_scores['CIDEr'])
# """if get_scores:
return final_scores
调用self对象的score函数计算出最终结果存放进final_score数组中,分别打印出最后的结果,包括BLUE,METEOR,ROUGE_L,CIDEr
if __name__ == '__main__':
'''
cands = {'generated_description1': 'how are you', 'generated_description2': 'Hello how are you'}
refs = {'generated_description1': ['what are you', 'where are you'],
'generated_description2': ['Hello how are you', 'Hello how is your day']}
'''
with open(sys.argv[1]) as f:
cands = {'generated_description'+str(i):x.strip() for i,x in enumerate(f.readlines())}
with open(sys.argv[2]) as f:
refs = {'generated_description'+str(i):[x.strip()] for i,x in enumerate(f.readlines())}
x = Evaluate()
x.evaluate(live=True, cand=cands, ref=refs)
在主函数中载入相关数据集,调用evaluate函数,得出最后的评估结果,并对不同模型的结果进行比较 ,最终结果如下图所示
实验中将图变换网络替换为图注意力网络,将其模型表示为GAT;将不使用知识图信息而只使用图中实体的网络表示为EntityWriter。另外与baseline方法Rewriter做了比较。根据此表数据可见,利用了知识图信息的GraphWriter和GAT模型整体结果好于另外两个未考虑图信息的模型。另外GraphWriter模型结果好于GAT模型结果,说明图变换网络的效果要好于图注意力网络。
知识图到文本的生成(十一)相关推荐
- 知识图到文本的生成——叁
2021SC@SDUSC 上篇博客我们提到了RawField类除了__init__函数外,还内含了两个函数,分别为preprocess(self, x)和process(self, batch, *a ...
- 知识图到文本的生成(六)
2021SC@SDUSC 本文将就数据迭代部分和数据集产生部分的代码进行详细分析 首先我们对mkiters函数进行分析,详细分析如下 args = self.args train = data ...
- 图形化文本编辑器_使用图形转换器从知识图生成文本
图形化文本编辑器 A summary of the structure 结构总结 This 2019 paper is a bit of an anachronism, given the speed ...
- 从知识图谱到文本:结合局部和全局图信息生成更高质量的文本
论文标题: Modeling Global and Local Node Contexts for Text Generation from Knowledge Graphs 论文作者: Leonar ...
- 强烈推荐十大NLP主流经典项目:预训练BERT、知识图谱、智能问答、机器翻译、文本自动生成等...
自然语言处理技术近几年发展非常快,像BERT.GPT-3.图神经网络.知识图谱等技术被大量应用于项目实践中. 今年大厂的NLP面试中对项目方面的考察深度也随之提升了很多,经常会被面试官揪着细节一步一步 ...
- 根据文本自动生成UML时序图(draw.io格式)
1. 前言 已有一些工具可以根据文本自动生成UML时序图,如PlantUML(https://plantuml.com/zh/).Mermaid(https://mermaid-js.github.i ...
- 《预训练周刊》第11期:全球最大智能模型“悟道2.0”重磅发布、谷歌KELM:将知识图与语言模型预训练语料库集成...
No.11 智源社区 预训练组 预 训 练 研究 观点 资源 活动 关于周刊 超大规模预训练模型是当前人工智能领域研究的热点,为了帮助研究与工程人员了解这一领域的进展和资讯,智源社区整理了第11期&l ...
- 论文浅尝 - ACL2020 | 利用常识知识图对会话流进行显式建模
笔记整理 | 韩振峰,天津大学硕士 链接:https://arxiv.org/pdf/1911.02707.pdf 动机 人类对话自然地围绕相关概念发展,并分散到多跳概念.本文提出了一种新的会话生成模 ...
- 生物医学文献知识图创建的关系提取
生物医学文献知识图创建的关系提取 Paper: https://arxiv.org/pdf/2201.01647 摘要 生物医学研究正以如此指数级的速度增长,以致于科学家.研究人员和从业人员不再能够处 ...
- 论文浅尝 | 常识问答中的忠诚知识图解释
笔记整理:邹铭辉,天津大学硕士,研究方向为知识图谱 链接:https://aclanthology.org/2022.emnlp-main.743 动机 知识图谱通常被用作常识问答的信息来源,同时也可 ...
最新文章
- java23中设计模式——结构模式——Composite(组合)
- 表格内部的文本对齐类
- [ ArcGIS for Server 10.1 系列 ] - 重新创建Site
- Delphi 7 定义你自己的事件
- 【李宏毅2020 ML/DL】P62-65 More about Auto-encoder
- Linux驱动设置log打印开关
- 产品经理的常见分类和术语
- 在线验证18位身份证
- [经验教程]拼多多退店保证金多久到账 拼多多退店正确操作35天内保证金到账
- 耳机插头3.5与2.5三段与四段i版与n版等详解
- Shader toy (顺手写两个Gyro)(纯代码写3D)
- Java提供的网络支持
- 网络:以太网类型(EthernetType)整理
- PyTorch 自然语言处理(Natural Language Processing with PyTorch)翻译完成 | ApacheCN
- 我国长征系列航天飞船剖解
- 英特尔第十代处理器为什么不支持win7_新硬件不支持Win7怎么回事? 新CPU仅兼容Win10的原因解析...
- 2017.0311.数字电路与系统-数据选择器分配器的理解
- BeautifulSoup抓取百思不得姐图片
- W3C代码标准规范--
- 不盲目选择定购直播系统,不要单看价格——云豹直播分析