梦应逍遥 发表于 2024-12-26 16:43:04

解析交通变乱报告:使用 PDF、AI 与数据标准化技能构建智能分析体系

在交通变乱处理中,数据的正确性与完整性至关重要。传统上,交通变乱报告通常以 PDF 格式呈现,这使得手动提取数据成为一项繁琐且容易出错的任务。随着人工智能与数据处理技能的发展,如何主动化这一过程并提升数据质量,成为了一个重要的研究方向。
在这篇博客中,我将分享一个基于 Python 的智能交通变乱报告解析体系,它联合了 PDF 文本解析、AI 大模子分析以及数据标准化与导出功能。这一体系能够从交通变乱报告中提取关键信息,并将其标准化为统一格式,终极导出为可用的 Excel 文件或 JSON 数据,为后续的数据分析与决策提供坚固底子。
https://i-blog.csdnimg.cn/direct/a8e76df97a4a4c779bbcc1caf958c205.png
项目概述

本项目的焦点目标是通过以下几步主动化交通变乱报告数据的处理:

[*]PDF 文本解析:从 PDF 文件中提取文本内容。
[*]AI 模子分析:使用大语言模子对变乱报告进行智能分析,主动提取关键字段。
[*]数据标准化:将提取的字段进行标准化处理,确保数据同等性。
[*]结果导出:将处理后的数据导出为 Excel 或 JSON 格式,以便后续使用。
这四个步骤贯穿了整个流程,从数据提取到数据导出都实现了主动化,并确保了数据的质量与同等性。
1. PDF 文件解析:提取文本信息

PDF 文件由于其固定格式,给数据提取带来了不少挑战。荣幸的是,pdfplumber 这一 Python 库能够高效地从 PDF 中提取文本。以下是我们在代码中用到的焦点方法:
import pdfplumber

def extract_cases_from_text(text):
    """
    从完整文本中提取每个事故案例
    """
    pattern = r"\d+[\.:]\sARB Number:.*?(?=\d+[\.:]\sARB Number:|$)"
    cases = re.findall(pattern, text, re.DOTALL)
    logger.info(f"共提取到 {len(cases)} 个事故案例")
    return cases
在这段代码中,正则表达式被用来从整个报告中提取每个单独的变乱案例。通过这种方式,我们可以确保从 PDF 中提取的每个案例都是完整的,便于后续分析。
2. AI 模子分析:主动化提取关键信息

通过与通义千问大语言模子的联合,我们可以主动化地将变乱报告转化为标准化的 JSON 数据。这一过程的焦点是 analyze_with_qwen() 方法,它调用了大语言模子 API,并传递给它一个包罗变乱数据的文本块:
def analyze_with_qwen(self, text_block):
    """
    调用通义千问大模型,将文本转换为标准JSON格式
    """
    try:
      response = dashscope.Generation.call(
            "qwen-max",
            messages=[{
                'role': 'user',
                'content': (
                  '请将以下交通事故报告数据转换为标准的JSON字典格式,一定要确保所有字段完整且准确。'
                  '固定字段包括:ARB Number, Severity, Site, TD Site, Police Grid, Police Map Grid, Time, '
                  'Natural Light, Road Condition, Weather, At or Near, Acc. CF, Precise Location, How it happened。'
                  '其中ARB Number 作为唯一的主键。'
                  '另外,请提取所有涉及的车辆和伤亡信息,使用Vehicle_1, Vehicle_2,… 和 Casualty_1, Casualty_2,… 的格式。'
                  '每辆车的字段包括:Vehicle No., Class, Age, Collided with, Manoeuvre, Dri. CF, Veh. CF。'
                  '每个伤亡的字段包括:Casualty No., Role, Age, Injury, Location, Bound, Cas. CF。'
                  '请仅返回纯JSON格式的数据,不要包含任何额外的文本或标记。'
                  '以下是事故报告数据:\n' + text_block
                )
            }],
            api_key=self.api_key,
            result_format='message'
      )
AI 模子通过解析交通变乱的形貌性文本,主动识别出如 ARB Number、Severity、Vehicles 和 Casualties 等关键信息,并返回结构化的 JSON 数据。
3. 数据标准化:统一字段格式

一旦模子提取了数据,接下来的任务是确保这些数据的同等性。我们使用了字段标准化的方法,将全部数据统一格式化为一个标准化的 JSON 结构。以下是相关代码:
def standardize_fields(parsed_data):
    """
    根据 FIXED_FIELDS 和 POSSIBLE_SUFFIX_FIELDS 标准化字段
    """
    standardized_data = {}

    # 添加固定字段
    for field in FIXED_FIELDS:
      standardized_data = parsed_data.get(field, "N/A")

    # 处理车辆信息
    vehicles = parsed_data.get("Vehicles", "N/A")
    standardized_data["Vehicles"] = vehicles if vehicles else "N/A"

    # 处理伤亡信息
    casualties = parsed_data.get("Casualties", "N/A")
    standardized_data["Casualties"] = casualties if casualties else "N/A"
   
    # 处理 Police Grid 为空的情况
    if not standardized_data.get("Police Grid") or standardized_data["Police Grid"].strip() == "":
      police_map_grid = parsed_data.get("Police Map Grid", "")
      if police_map_grid.strip():
            standardized_data["Police Grid"] = police_map_grid.strip()
            logger.info("从Police Map Grid填充Police Grid字段")
      else:
            standardized_data["Police Grid"] = "N/A"
            logger.warning("Police Grid和Police Map Grid均为空,填充为 'N/A'")

    return standardized_data
这段代码确保了全部的固定字段都被添补,而且对车辆信息和伤亡信息进行了标准化处理。别的,如果 Police Grid 字段为空,还会主动实验从 Police Map Grid 中获取数据。
4. 数据导出:从 JSON 到 Excel

将处理后的数据导出为 Excel 格式,是本项目的另一个重要功能。我们使用了 pandas 库来处理这一操作:
def export_flattened_json_to_excel(flattened_data, output_excel_path):
    """
    将扁平化后的JSON数据导出为Excel文件。
    """
    # 创建DataFrame
    df = pd.json_normalize(flattened_data)

    # 确保固定列的顺序
    df = df.reindex(columns=fixed_columns_order)

    # 导出到Excel
    df.to_excel(output_excel_path, index=False, engine='openpyxl')
    logger.info(f"成功将数据导出到 {output_excel_path}")
通过这一方法,我们能够将终极的数据保存为 Excel 文件,并确保全部列按照固定的顺序分列,缺失的数据会被添补为 N/A。
总结

通过将 PDF 文件解析、AI 智能分析、数据标准化和结果导出这四个步骤联合,我们实现了一个高效的交通变乱报告主动处理体系。这不但大大提升了工作效率,还确保了数据的正确性和同等性。在未来,随着 AI 技能的不断进步,主动化数据处理将会变得更加智能和精准,为各种范畴的数据分析提供强大的支持。
你可以如何使用这个体系?



[*]交通变乱数据管理:主动化地从变乱报告中提取并标准化数据,节流大量的人工录入工作。
[*]决策支持:通过结构化的数据,可以更好地进行变乱原因分析、变乱模式识别等数据驱动的决策。
[*]报告生成与统计:将提取的结构化数据导出为 Excel 或 JSON,方便生成定期报告,支持进一步的统计分析。
[*]https://i-blog.csdnimg.cn/direct/d5813fb504974d16a3aaa043f724b848.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 解析交通变乱报告:使用 PDF、AI 与数据标准化技能构建智能分析体系