检查*.bib参考文献是否重复

安装bibtexparser

pip install bibtexparser

代码

import bibtexparser
from difflib import SequenceMatcherdef parse_bib_file(filename):with open(filename, 'r', encoding='utf-8') as bibfile:bib_database = bibtexparser.load(bibfile)return bib_database.entriesdef find_duplicates(entries):duplicates = dict()all_dict = dict()NO_ID_Duplicate = Truefor i, entry in enumerate(entries):if entry['ID'] in all_dict.keys():print('发现重复: ', f"{entry['ID'], entry['title']}")  # ID 重复NO_ID_Duplicate = Falsecontinueall_dict[entry['ID']] = entry['title']for k, v in all_dict.items():out = title_in_values(v, list(all_dict.values()))  # title 重复duplicates.update(out)return duplicates,NO_ID_Duplicatedef title_in_values(title: str, values: list):values.remove(title)re_d = dict()for i in values:ratio = SequenceMatcher(None, i, title).ratio()re_d[i] = [title, ratio]out = sorted(re_d.items(), key=lambda x: x[1][1], reverse=True)out = filter(lambda x: x[1][1] > 0.9, out)return dict(out)def main():bib_filename = './file/MAGNet.bib'  # 你的.bib文件名entries = parse_bib_file(bib_filename)duplicates,NO_ID_Duplicate = find_duplicates(entries)if len(duplicates) == 0 and NO_ID_Duplicate:print('未发现重复!')else:for i in duplicates:print('发现疑似重复:', i)if __name__ == "__main__":main()

效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/2652.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【电控笔记5.10】Luenberger估测器

Luenberger估测计 单积分器:pi控制器的补偿 双积分器:使用pid控制器的补偿 除了受控厂跟传感器,其他都在mcu 去掉Rs就是一个PLL锁相环 带宽比PLL更大

齐护K210系列教程(九)_## 播放音频文件wav

播放音频文件wav 播放音频只支持带喇叭的型号:AIstart_掌机、AIstart_Mini AIstart可以播放SD卡中的wav音频文件,在编写程序前请将文件准备好存放到SD卡内。 注:播放wav格式音频:wav格式的音频频率不能超过16KHZ。 1&#xff0…

ui生成代码详细教程

被askmanyai的图生代码技术秀到了!前端开发效率,提升到秒级 完全吊打了阿里的图生代码技术! 上传一张网站图片或者UI稿,然后用askmanyai生成实现这个网站的代码的教程来啦! 在askmanyai的中文网站上一分钟就能实现&…

simulink使用俩种方式封装(mask)画板/子系统的步骤

文章目录 创建子系统创建封装编制封装以参数控件方式封装以代码方式封装 添加约束效果 对封装概念不熟的可以看simulink封装概述,这是我简化的。我还是推荐看官方帮助文档 创建子系统 搭建一个简易的加法模型 ,创建子系统 创建封装 右键-》封装-》创建封…

spring @value @configurationProperties比较

今天项目中需要使用数组的方式 来加载一批 配置 yml: xxxx: - xxxxx - xsssss javaBean Value("${xxxxx.xxxxx}") private List<String> xxxs; 启动时候报错&#xff0c;无法加载&#xff0c;TM试验了1个小时&#xff0c;我一开始想到是格式的问题&#x…

VirtualFlow亮相核反应堆技术全国重点实验室2024学术年会

为加强先进核能技术领域科技创新与应用&#xff0c;核反应堆技术全国重点实验室及先进核能技术全国重点实验室2024年学术年会在四川成都启幕&#xff0c;9名院士和近百家科研院所、高校和企业等近700名专家学者齐聚一堂&#xff0c;聚焦和探讨核反应堆及先进核能重大基础理论和…

震惊!小红书矩阵账号管理-批量发布笔记

“小红书引流软件矩阵工具-笔记批量发” 昨天&#xff0c;有个粉丝急匆匆地来找我&#xff0c;一脸焦急地说&#xff1a;“大佬&#xff0c;我现在运营着好几个小红书账号&#xff0c;每天都要发布内容&#xff0c;可把我忙坏了&#xff0c;有没有什么高效的管理方法啊&#xf…

【学习笔记二十五】EWM PPF自动WT后台配置和前台展示

一、概述 SAP EWM(Extended Warehouse Management)模块中的PPF(Post Processing Framework)是一个用于执行通用功能和流程的工具。PPF为SAP EWM提供了一个统一的接口,用于触发各种动作,例如打印托盘标签、交货单、拣选票或发送消息和传真。这些动作在特定条件满足时生成,…

电力作业平台车必备:防倾倒预警装置,智能守护你的工作

引言 在电力作业中&#xff0c;平台车作为一种重要的高空作业设备&#xff0c;广泛应用于线路检修、设备维护等工作场景。然而&#xff0c;平台车在高空作业过程中存在的倾倒风险&#xff0c;一直是困扰作业人员的难题。为了有效预防此类事故的发生&#xff0c;防倾倒预警装置…

电子温度计不准需要怎么处理?

电子温度计不准需要怎么处理&#xff1f; 首选将温度计完全浸入温度为0℃左右的水中&#xff0c;使温度计指示值与0℃相等&#xff0c;拿出测量待测物的温度。其次将温度计完全浸入温度为100℃左右的水中&#xff0c;使温度计指示值与100℃相等&#xff0c;拿出测量待测物的温…

男生一般穿什么裤子好看?五大爆款男装精选测评!

男生裤子要怎么选才能找到适合自己的裤子呢&#xff1f;这肯定是大家选裤子时经常出现的一个疑问了&#xff0c;现在的市面上虽然款式风格非常多&#xff0c;但是由于品牌鱼龙混杂的原因&#xff0c;不同的裤子质量也参差不齐。为了帮助各位男同胞能选到适合自己的裤子&#xf…

抖音老阳讲的选品师项目普通人能赚钱吗?

随着互联网的快速发展&#xff0c;电商行业也迎来了前所未有的繁荣。在这个背景下&#xff0c;选品师这一职业逐渐走进人们的视野。老阳作为行业内的知名人士&#xff0c;经常分享选品师的经验和项目。那么&#xff0c;普通人能否参与老阳讲的选品师项目并且赚钱吗?答案是肯定…

为什么要写技术方案?

技术方案是为研究解决各类技术问题&#xff0c;有针对性&#xff0c;系统性的提出的方法、应对措施及相关对策。技术方案设计是一个技术开发者必备的能力&#xff0c;特别是对于高级、资深、架构师等角色。技术方案设计不仅能够帮助我们明确需求&#xff0c;规划架构&#xff0…

【计算机网络】MAC地址简介

MAC&#xff08;Medium Access Control&#xff09;&#xff0c;即媒介访问控制&#xff0c;是计算机网络通信中的重要概念。每个NIC&#xff08;Network Interface Card&#xff09;&#xff0c;即网络适配器&#xff0c;都具有独自且不变的MAC地址&#xff08;烧录的&#xf…

windows/linux 安装php的 sql server 扩展

Windowsphpstudyphp7.1 下载&#xff1a;ODBC、下载php 的sql server 扩展 路径&#xff1a;下载地址 版本&#xff1a;我的是7.1 对应的ODBC 是13&#xff0c;php 的sql server 扩展为4.3 安装&#xff1a;msodbcsql 直接安装、sqlsrv43 安装完把 扩展复制到php71 的扩展文…

今天我要和 javaScript 勾搭一下

今天阳光明媚&#xff0c;心情好好呀。&#x1f970; 文章目录 前言一、javaScript 是一门编程语言二、JavaScript 的重要性三、TypeScript 会取代 JavaScript 吗 &#xff1f;更多知识点继续看我的博客吧&#xff0c;最近在慢慢优化文章&#xff0c;耐心等待&#xff0c;嘿嘿。…

三丰云搭建QQ-bot的服务器python运行环境

网址&#xff1a;https://www.sanfengyun.com >> 三丰云免费云服务器 使用 点击Python项目管理器的小三角 新建新项目 按照下面的说明勾选和填写&#xff0c;点击确定即可 然后就可以开始运行代码了

【论文笔记】设计一款针对情境障碍的视力减弱型文件浏览应用程序(下)

论文关键点 ps&#xff1a;这篇文章可以学习的内容比较多&#xff0c;笔记内容也比较丰富因此本次论文笔记会分为上下期 提出的问题&#xff1a; 不方便视觉障碍的情况下(通勤、走路、眼睛疲劳也算)会用text-speech 系统,但是这种听觉是线性的,不适合skim 推导出了融合听觉和…

InternLM2-lesson3作业+笔记

茴香豆 https://www.bilibili.com/video/BV1QA4m1F7t4/?vd_source902e3124d4683c41b103f1d1322401fa 一、笔记 RAG RAG(Retrieval Augmented Generation)是一种结合了检索(Retrieval)和生成(Generation)的技术&#xff0c;旨在通过利用外部知识库来增强大预言模型的性能。…

【C++】C++的四种类型转换

一、C语言中的类型转换 在C语言中有两种类型转换&#xff0c;隐式类型转换和显示类型转换。 如果赋值运算符左右两侧类型不同&#xff0c;或者形参与实参类型不匹配&#xff0c;或者返回值类型与接收返回值类型不一致时&#xff0c;就需要发生类型转化。 隐式类型转换&#…