当前位置: 首页 > 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/14420435/

相关文章:

  • php网站开发待遇网站域名的建立
  • 常州天启建设公司网站wordpress淘宝客主题使用说明
  • 房山石家庄网站建设淮安市建设局网站首页
  • 当当网网站建设策划书wordpress建站vip全站教程
  • 免费网站电视剧全免费的app那些网站可以做推广
  • 服装网站的建设与管理建行的官网网址是什么
  • 网页制作一个网站八个页面咋做创新的武进网站建设
  • 文化馆的网站怎么建设wordpress导出word
  • 苏州网站建设最佳方案码迷seo
  • 定制网站开发全屋定制装修加盟网
  • 免费网站统计代码中国人做跨电商有什么网站
  • 网站怎么建设教程东莞健康app下载
  • 响应式网站工具会展中心网站建设
  • 百度网站大全帝国网站管理系统视频教程
  • 东莞高端网站建设哪个好wordpress用七牛
  • 一流的句容网站建设小程序定制开发公司前十名
  • 申请网站空间是申请域名吗蚌埠网站建设蚌埠
  • 为什么访问外国网站速度慢找工程包工平台app
  • 做网站创业需要注册公司吗湘西州住房和城乡建设局网站
  • 房地产微网站模板深圳建网站公司
  • 网站安全注意哪些问题吗网站前台模板下载
  • 软件网站排名潍坊网站制作厂家
  • 外贸 网站设计公司网站的服务器
  • 寻找在山西运城专业做网站推广的峨眉山网站建设
  • 西昌城乡建设网站网站开发会员功能教程
  • 六盘水住房和城乡建设部网站网站建设120
  • 如何在网站页面做标注wordpress添加flash
  • 单页面网站 seo17网站一起做网店白沟
  • 深圳做分销网站的公司logoko
  • 西安网站建设的网站如何修改管理网站