优化find_text_in_pdf函数,支持列表类型查询结果的合并,调整阈值以提高匹配准确性,更新主函数示例以支持多行查询

This commit is contained in:
2025-08-05 22:50:31 +08:00
parent c8f96ee41e
commit ec30b8d78a

View File

@@ -166,7 +166,7 @@ def find_text_in_pdf(pdf_path,
"matched_text": matched_text
})
if results:
batch_results[idx].append(results)
batch_results[idx].extend(results)
doc.close()
return batch_results
@@ -204,28 +204,91 @@ def highlight_matches(pdf_path, matches, output_path="highlighted.pdf"):
if __name__ == "__main__":
pdf_path = 'F:\\2\\2024深化智慧城市发展推进城市全域数字化转型的指导意见.pdf'
query = '''2222二、全领域推进城市数字化转型
(四)建立城市数字化共性基础。深化完善统一规划、统一架构、统一标准、统一运维的城市智能中枢体系,打造线上线下联动、服务管理协同的城市共性支撑平台,构建开放兼容、共性赋能、安全可靠的综合性基础环境,推进算法、模型等数字资源一体集成部署,探索建立共性组件、模块等共享协作机制。鼓励发展基于人工智能等技术的智能分析、智能调度、智能监管、辅助决策,全面支撑赋能城市数字化转型场景建设与发展。鼓励有条件的地方推进城市信息模型、时空大数据、国土空间基础信息、实景三维中国等基础平台功能整合、协同发展、应用赋能,为城市数字化转型提供统一的时空框架,因地制宜有序推进数字孪生城市建设,推动虚实共生、仿真推演、迭代优化的数字孪生场景落地。'''
pdf_path = 'e:\\2\\2024深化智慧城市发展推进城市全域数字化转型的指导意见.pdf'
pdf_path = 'G:\\SynologyDrive\\大模型\\RAG\\20250805党建\\中国共产党领导干部廉洁从业若干准则.pdf'
query = [
'''一、总体要求
以习近平新时代中国特色社会主义思想为指导完整、准确、全面贯彻新发展理念统筹发展和安全充分发挥数据的基础资源和创新引擎作用整体性重塑智慧城市技术架构、系统性变革城市管理流程、一体化推动产城深度融合全面提升城市全域数字化转型的整体性、系统性、协同性不断满足人民日益增长的美好生活需要为全面建设社会主义现代化国家提供强大动力。到2027年全国城市全域数字化转型取得明显成效形成一批横向打通、纵向贯通、各具特色的宜居、韧性、智慧城市有力支撑数字中国建设。到2030年全国城市全域数字化转型全面突破人民群众的获得感、幸福感、安全感全面提升涌现一批数字文明时代具有全球竞争力的中国式现代化城市。''',
'''二、全领域推进城市数字化转型
(一)建立城市数字化共性基础。构建统一规划、统一架构、统一标准、统一运维的城市运行和治理智能中枢,打造线上线下联动、服务管理协同的城市共性支撑平台,构建开放兼容、共性赋能、安全可靠的综合性基础环境,推进算法、模型等数字资源一体集成部署,探索建立共性组件、模块等共享协作机制。鼓励发展基于人工智能等技术的智能分析、智能调度、智能监管、辅助决策,全面支撑赋能城市数字化转型场景建设与发展。鼓励有条件的地方推进城市信息模型、时空大数据、国土空间基础信息、实景三维中国等基础平台功能整合、协同发展、应用赋能,为城市数字化转型提供统一的时空框架,因地制宜有序探索推进数字孪生城市建设,推动虚实共生、仿真推演、迭代优化的数字孪生场景落地。
(二)培育壮大城市数字经济。深入推进数字技术与一二三产业深度融合,鼓励平台企业构建多层次产业互联网服务平台。因地制宜发展智慧农业,加快工业互联网规模化应用,推动金融、物流等生产性服务业和商贸、文旅、康养等生活性服务业数字化转型,提升“上云用数赋智”水平。深化数字化转型促进中心建设,促进城市数字化转型和大中小企业融合创新协同发展。因地制宜发展新兴数字产业,加强大数据、人工智能、区块链、先进计算、未来网络、卫星遥感、三维建模等关键数字技术在城市场景中集成应用,加快技术创新成果转化,打造具有国际竞争力的数字产业集群。培育壮大数据产业,发展一批数据商和第三方专业服务机构,提高数据要素应用支撑与服务能力。''',
"""(三)促进新型产城融合发展。创新生产空间和生活空间融合的数字化场景,加强城市空间开发利用大数据分析,推进数字化赋能郊区新城,实现城市多中心、网络化、组团式发展。推动城市“数字更新”,加快街区、商圈等城市微单元基础设施智能化升级,探索利用数字技术创新应用场景,激发产城融合服务能级与数字活力。深化城市场景开放促进以城带产,提升产业聚合力。加速创新资源共享助力以产促城,发展虚拟园区和跨区域协同创新平台,增强城市数字经济就业吸附力。"""
]
query = ["""执政党的党风关系党的生死存亡。坚决惩治和有效预防腐败,是党必须始终抓好
的重大政治任务。党员领导干部廉洁从政是坚持以邓小平理论和“三个代表"重要思想为
指导,深入贯彻落实科学发展观,全面贯彻党的路线方针政策的重要保障;是新时期
从严治党,不断加强党的执政能力建设和先进性建设的重要内容;是推进改革开放和
社会主义现代化建设的基本要求;是正确行使权力、履行职责的重要基础。
党员领导干部必须具有共产主义远大理想和中国特色社会主义坚定信念,践行社
会主义核心价值体系;必须坚持全心全意为人民服务的宗旨,立党为公、执政为民;
必须在党员和人民群众中发挥表率作用,自重、自省、自警、自励;必须模范遵守党
纪国法,清正廉洁,忠于职守,正确行使权力,始终保持职务行为的廉洁性;必须弘
扬党的优良作风,求真务实,艰苦奋斗,密切联系群众。
促进党员领导干部廉洁从政,必须坚持标本兼治、综合治理、惩防并举、注重预
防的方针,按照建立健全惩治和预防腐败体系的要求,加强教育,健全制度,强化监
督,深化改革,严肃纪律,坚持自律和他律相结合。
""",
"""第三条 禁止违反公共财物管理和使用的规定,假公济私、化公为私。不准有下
列行为:
(一)用公款报销或者支付应由个人负担的费用;
(二)违反规定借用公款、公物或者将公款、公物借给他人;
(三)私存私放公款;
(四)用公款旅游或者变相用公款旅游;
(五)用公款参与高消费娱乐、健身活动和获取各种形式的俱乐部会员资格;
(六)违反规定用公款购买商业保险,缴纳住房公积金,滥发津贴、补贴、奖金
等;
(七)非法占有公共财物,或者以象征性地支付钱款等方式非法占有公共财物;
(八)挪用或者拆借社会保障基金、住房公积金等公共资金或者其他财政资金。
""",
"""
第六条禁止讲排场、比阔气、挥霍公款、铺张浪费。不准有下列行为:
(一)在公务活动中提供或者接受超过规定标准的接待,或者超过规定标准报销
招待费、差旅费等相关费用;
(二)违反规定决定或者批准兴建、装修办公楼、培训中心等楼堂馆所,超标准
配备、使用办公用房和办公用品;
(三)擅自用公款包租、占用客房供个人使用;
(四)违反规定配备、购买、更换、装饰或者使用小汽车;
(五)违反规定决定或者批准用公款或者通过摊派方式举办各类庆典活动。
第七条禁止违反规定干预和插手市场经济活动,谋取私利。不准有下列行为:
(一)干预和插手建设工程项目承发包、土地使用权出让、政府采购、房地产开
发与经营、矿产资源开发利用、中介机构服务等市场经济活动;
""",
"""第七条禁止违反规定干预和插手市场经济活动,谋取私利。不准有下列行为:
(一)干预和插手建设工程项目承发包、土地使用权出让、政府采购、房地产开
发与经营、矿产资源开发利用、中介机构服务等市场经济活动;
(二)干预和插手国有企业重组改制、兼并、破产、产权交易、清产核资、资产
评估、资产转让、重大项目投资以及其他重大经营活动等事项;
(三)干预和插手批办各类行政许可和资金借贷等事项;
四)干预和插手经济纠纷;
(五)干预和插手农村集体资金、资产和资源的使用、分配、承包、租赁等事
项。
"""
]
# 1. 找跨行正则匹配
matches = find_text_in_pdf(
pdf_path,
query, # 你的正则
threshold=75
threshold=60
)
# 修改:正确处理二维列表结果
print(matches)
print("------------------")
# print(matches)
# print("------------------")
for idx,query_matches in enumerate(matches):
for m_item in query_matches:
highlight_matches(pdf_path, m_item, "example_highlighted.pdf")
for m in m_item:
# 输出匹配结果
#print(m)
print(f"{idx} 个查询结果:")
print(query_matches)
#highlight_matches(pdf_path, query_matches, "example_highlighted.pdf")
for m in query_matches:
print(f"{m['page']} 页 匹配: {m['matched_text'][:50]}... 位置: {m['bbox']}")
print("------------------")
# 2. 高亮并保存
# 修改:展平二维列表用于高亮