非结构化文本解决方案打标签

最近领导让我们把自己公司内部的知识库平台里面的方案进行打标

材料类型:80%为ppt、word

材料概述:产品、方案、案例(偏售前的方案)

一、PPT:我自己是没有什么更好的方案做打标工作,应该会用到图像算法之类的,我现在的水平解决不了,只能用微信截图识别文本复制粘贴,顶多用GPT帮我处理一下文本格式

二、WORD:word如果用了结构分明的heading格式做目录,那么将会非常好处理。由于文档是只读格式,所以纯纯用word转化为excel是可以通过wps或者office做到,但是对于目录格式有限制,但是由于我没有编辑权限所以采用了python脚本处理

预期效果:提取目录文本为结构化数据,且heading1在表格的第一列,heading2为表格的第二列,依次排布且行之间要有对应关系。

使用脚本:

import pandas as pd
from docx import Document

def read_toc(doc_path):
    doc = Document(doc_path)
    toc = []

    for paragraph in doc.paragraphs:
        if paragraph.style.name.startswith('Heading'):
            level = int(paragraph.style.name.split(' ')[-1])
            text = paragraph.text
            toc.append((level, text))

    return toc

def toc_to_excel(toc, excel_path):
    max_level = max(level for level, _ in toc)
    data = {f'Title_{i+1}': [] for i in range(max_level)}

    current_row = {f'Title_{i+1}': '' for i in range(max_level)}

    for level, text in toc:
        current_row[f'Title_{level}'] = text
        for i in range(level + 1, max_level + 1):
            current_row[f'Title_{i}'] = ''

        data = {key: data[key] + [current_row[key]] for key in data}

    df = pd.DataFrame(data)
    df.to_excel(excel_path, index=False)


# 使用示例
doc_path =r'C:\Users\xxx\Downloads\xxxxx.docx'
excel_path = 'output_excel_file.xlsx'
toc = read_toc(doc_path)
toc_to_excel(toc, excel_path)

处理结果:

复制粘贴问题解决~ 

代码解释:

这段代码的目标是读取一个 Word 文档中的标题,根据标题的层级将其放入 Excel 表格的不同列中,并保存为一个 Excel 文件。

具体步骤如下:

  1. read_toc 函数:

    • 该函数接收一个 Word 文档的路径 doc_path 作为输入。
    • 使用 docx 库的 Document 类来打开 Word 文档。
    • 遍历文档中的每个段落,检查段落的样式是否以 'Heading' 开头,如果是则提取出标题的层级和文本内容,并将它们作为元组 (level, text) 添加到列表 toc 中。
    • 返回包含标题信息的 toc 列表。
  2. toc_to_excel 函数:

    • 该函数接收标题信息列表 toc 和 Excel 文件路径 excel_path 作为输入。
    • 计算出标题的最大层级 max_level
    • 初始化两个字典 datacurrent_row,它们用于存储数据和当前行的标题信息。
    • 遍历 toc 中的每个标题信息,更新 current_row 中对应层级的标题,并将数据添加到 data 中。
    • 创建一个 DataFrame df,其中每个列的标题都以 'Title_' 开头,并将数据保存为 Excel 文件。
  3. 使用示例:

    • 提供了一个具体的 Word 文档路径 doc_path 和保存 Excel 文件的路径 excel_path
    • 调用 read_toc 函数读取标题信息,并将其传递给 toc_to_excel 函数,生成 Excel 文件。

在使用时,你需要将 doc_path 替换为你的实际 Word 文档路径,然后运行脚本。生成的 Excel 文件将包含每个层级的标题,并且每个层级的标题都会在 Excel 表格的相应列中。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值