当前位置: 首页 > news >正文

网站手机版模板免费下载网站建设条款

网站手机版模板免费下载,网站建设条款,疯狂购网站开发商,做私房蛋糕在哪些网站写东西引言RAG数据简介PDF解析方法及工具代码实现总结 二、正文内容 引言 本文将介绍如何将RAG数据拆分至PDF格式#xff0c;并探讨PDF解析的方法和工具#xff0c;最后提供代码示例。 RAG数据简介 RAG#xff08;关系型属性图#xff09;是一种用于表示实体及其关系的图数据…引言RAG数据简介PDF解析方法及工具代码实现总结 二、正文内容 引言 本文将介绍如何将RAG数据拆分至PDF格式并探讨PDF解析的方法和工具最后提供代码示例。 RAG数据简介 RAG关系型属性图是一种用于表示实体及其关系的图数据结构。在RAG中节点表示实体边表示实体之间的关系属性则用于描述实体和边的特征。 PDF解析方法及工具 1PDF解析方法 DOM解析将PDF文档转换为树形结构便于操作和遍历。SAX解析基于事件驱动适用于处理大型PDF文档。 2PDF解析工具 PyPDF2一个Python库用于读取、分割、合并PDF文件。PDFMiner一个强大的PDF解析库支持提取文本、图片等元素。pdfplumber一个专注于文本提取的PDF解析库。 代码实现 以下是一个使用PyPDF2将RAG数据拆分至PDF的示例代码 import PyPDF2# 读取PDF文件 with open(source.pdf, rb) as file:reader PyPDF2.PdfFileReader(file)num_pages reader.numPages# 遍历每一页for page_num in range(num_pages):page reader.getPage(page_num)text page.extractText()# 拆分RAG数据# 假设RAG数据以特定格式存储例如实体1-关系-实体2entities text.split(-)# 创建新的PDF文件pdf_writer PyPDF2.PdfFileWriter()pdf_writer.addPage(page)with open(foutput/page_{page_num 1}.pdf, wb) as output_file:pdf_writer.write(output_file)print(PDF文件拆分完成)解析表格 def extract_continuous_tables(pdf, start_page_num):从指定页开始提取连续的表格内容:param pdf: PDF文档对象:param start_page_num: 开始页码:return: 包含处理页码和表格文本的字典continuous_tables [] # 存储连续表格内容processed_pages [] # 存储处理过的页码current_page_num start_page_num# 添加起始页processed_pages.append(current_page_num)while current_page_num len(pdf.pages):current_page pdf.pages[current_page_num]current_page remove_header_footer(current_page)# 提取当前页的表格current_tables current_page.extract_tables()if current_tables:# 将当前页的表格添加到结果中continuous_tables.extend(current_tables)# 检查是否还有下一页if current_page_num 1 len(pdf.pages):break# 获取下一页内容next_page pdf.pages[current_page_num 1]next_page remove_header_footer(next_page)# 提取下一页的内容next_page_tables next_page.extract_tables()next_page_words next_page.extract_words(keep_blank_charsTrue, extra_attrs[fontname, size])# 过滤页眉页脚header_height 50footer_height 50def is_header_content(word):text word[text].lower()# 位置检查if word[top] header_height or word[top] (next_page.height - footer_height):return True# 电话号码模式phone_patterns [rtel[\s:]*[\d\-/],r电话[\s:]*[\d\-/],r传真[\s:]*[\d\-/],rfax[\s:]*[\d\-/],r\d{2,4}[\-/]\d{4,8}, # 匹配常见电话号码格式]# 使用正则表达式匹配import reif any(re.search(pattern, text, re.IGNORECASE) for pattern in phone_patterns):return True# 页眉特征检查header_features [# 位置特征word[top] header_height * 1.2, # 稍微放宽高度限制word[size] 10, # 字体较小# 内容特征any(pattern in text for pattern in [页码, 第, 页, page,copyright, 版权所有,机密, 保密,草稿, draft,文档编号, doc,日期, date]),# 格式特征bool(re.match(r.*\d.*页, text)), # 包含页码bool(re.match(r.*\d{4}[-/]\d{1,2}[-/]\d{1,2}, text)), # 日期格式]return any(header_features)# 过滤词filtered_words [word for word in next_page_wordsif not is_header_content(word)]# 如果需要还可以按垂直位置排序filtered_words.sort(keylambda x: x[top])# 判断下一页是否以表格开始starts_with_table Falseif filtered_words and next_page_tables: # 确保有文字和表格try:if next_page_tables[0] and next_page_tables[0][0]: # 确保表格有内容# 获取第一个表格的位置first_table next_page.find_tables()[0]if first_table:first_table_top first_table.bbox[1]# 获取第一个文字的位置first_word_top filtered_words[0][top]# 如果表格在文字之前则认为页面以表格开始if first_table_top first_word_top:starts_with_table Trueexcept (IndexError, AttributeError):starts_with_table Falseif not starts_with_table:# 如果下一页不是以表格开始则结束提取break# 继续处理下一页current_page_num 1processed_pages.append(current_page_num)# 将表格转换为文本table_texts []for table in continuous_tables:if table:table_text []for row in table:# 过滤None和空字符串并确保所有值都转换为字符串row_text []for cell in row:if cell is not None and str(cell).strip():cell_str str(cell).strip().replace(\n, )# if cell_str: # 只添加非空字符串row_text.append(cell_str)else:row_text.append( ) # 将None转换为空字符串if row_text: # 只添加非空行table_text.append(##.join(row_text))filtered_table_text [row for row in table_text if ## in row]if filtered_table_text:table_texts.append(\n.join(filtered_table_text))# 返回包含页码列表和表格文本的字典result {processed_pages: processed_pages,table_text: \n\n.join(table_texts) if table_texts else }return result 1.pdfplumber https://blog.csdn.net/fuhanghang/article/details/122579548 1 pdfplumber的主要类和方法 pdfplumber对于表格的提取 参考https://github.com/jsvine/pdfplumber/blob/stable/examples/notebooks/extract-table-ca-warn-report.ipynb 1 代码 pdf pdfplumber.open(../pdfs/ca-warn-report.pdf) p0pdf.pages[0] im p0.to_image()  #display 第一页 table p0.extract_table() 抽取其中最大的表格import pandas as pd df pd.DataFrame(table[1:], columnstable[0]) for column in [Effective, Received]:df[column] df[column].str.replace( , )  使用panda来吧table抽取到的数据转成dataFrame格式 总结 本文介绍了RAG数据拆分至PDF的方法和工具并通过代码示例展示了如何使用PyPDF2进行PDF文件拆分。在实际应用中可根据需求选择合适的解析方法和工具。 希望这个分享笔记大纲和代码示例能帮助你完成你的分享笔记。在实际编写过程中可以根据具体需求进行调整和优化。
http://www.hkea.cn/news/14566095/

相关文章:

  • 便宜网站设计做网站建站点
  • 茶叶网站模板动态域名可以做网站吗
  • 建设校园网站的意义北京市网站建设公司
  • 岳阳建网站深圳十大品牌策划公司
  • 鄂州市城市建设档案馆网站建设银行住房公积网站
  • 语音网站怎么做广东基层团组织建设部网站
  • 自助建站系统平台有关建设旅行网站的建设
  • 网站图片要求网站空间免费试用
  • 张家港高端网站制作深圳网络推广有几种方法
  • wordpress视频站主题ui设计
  • 广东圆心科技网站开发需要多少钱网站备案贵州电话
  • 注册网站帐号注销昆明公司做网站的价格
  • 上海培训机构seo顾问多少钱
  • 南阳建设网站网站开发者 地图
  • 什么网站做的比较好大连三丰建设集团公司网站
  • 汽贸做网站有用处吗局域网聊天工具免费版
  • 网站推广优化网址罗玉凤做网站
  • 企业网站建设排名资讯策划书怎么写 范文
  • 搭建个人视频网站2018淘宝客网站开发
  • 网页设计网站建设做竞价的网站
  • wordpress网站导航爱站网关键词长尾挖掘
  • 网站后台管理系统html下载专门做图片的网站
  • 免费房地产网站模板婚庆公司加盟
  • 义乌外贸公司网站网站空间 支持什么程序
  • 响应式网站开发原理交易网站开发
  • 阿里巴巴国际站客户经理南昌网站建设制作商
  • 网站ui怎么做的洛阳建设网站
  • 做网站关键词必须要中文网址安卓html编辑器
  • 网站做贷款许可证部队网站建设总结
  • 网站平台建设包括哪些wordpress主题首页文件夹