2.2 准确提取关键信息

在上一章中,我们一起认识了第一个面向特定问题的优化 GPT 回答准确度的方法,也就是用正向表述来准确地排除不想 GPT 生成的内容。而在这章中,我们将一起来认识第二个优化特定问题准确度的方法。

在使用 GPT 时,根据问题类型的差异,我们对生成内容结果的准确度实际上有着截然不同的要求。对于一些开放性问题或需要创新性回答的问题,即便是每次 GPT 都生成的不同答案,我们或许都会认为是合理的。

但针对某些特定的问题时,我们需要每次都返回相似的信息。例如,本章中将要定向优化的任务就是信息提取类的,我们就不期望 GPT 返回的提取信息每次都不一样,更不希望它利用它的创造力凭空给我们生成虚假的信息。

所以,我们就可以利用 GPT 在训练时接收语料的方式,借助编程语言中的数据结构思维,来约束信息提取类的任务中 GPT 返回的内容结构,进而提高这类问题中 GPT 的准确性。

更准确的信息提取方式

面对信息提取类任务时,读者们往往都会使用举例或者填空法。但在实践中,GPT 有很多时候都会返回错误的结果,或者根本不理解我们要提取哪些信息;这时候我们就需要一个更准确的信息提取方式——JSON 提取法。

JSON 提取法的原理是,由于 GPT 的训练集中包含大量的编程语言,使得 GPT 在学习语法的同时,也让其分析信息的思路更为接近编程1。因此,我们可以利用编程语言中的 JSON 格式来定义我们所需的信息,就如同在超市货架上贴上标签,告诉 GPT 我们需要什么。这样,GPT能够更好地理解我们的需求,并从复杂的文本中准确提取出所需信息。

JSON 是编程语言中常见的结构化数据储存方式,以{"键名":"键值", "键名":"键值"} 的形式储存数据,通过查找键名就可以获得对应的键值。

使用 JSON 提取法的步骤其实很简单,首先根据需要提取的信息,创建一个 JSON 结构。比如,我们需要提取的信息是 A 和 B,就可以创建一个{"需要提取的信息 A":"", "需要提取的信息 B":""}的 JSON 结构。

接着,将创建的 JSON 结构作为 Prompt,输入到 GPT 中。这样 GPT 会在返回的文本中,按照 JSON 结构,填充我们需要的信息。

需要提取的内容......
{"需要提取的信息 A":"", "需要提取的信息 B":""......}

例如,我们需要从一段新闻报道中提取出事件的发生时间、地点和涉及的人物,我们可以创建如下的 JSON 结构:{"时间": "","地点": "","人物": ""},GPT 在返回的文本中,会自动填充这些信息,如:{"时间": "2023年6月9日","地点": "华盛顿","人物": "乔 Biden"}

GPT-3.5 JSON 方法提取信息的效果对比

JSON 提取法的优势

JSON 提取法的优势主要体现在以下几点:

  • 提高准确性:JSON 提取法最明显的优势是提高了信息提取的准确性。由于 GPT 在训练过程中学习了大量的编程语言,因此,使用 JSON 格式可以让 GPT 更准确地理解我们需要提取哪些信息,从而极大地提高了信息提取的准确性。

  • 简化复杂任务:有些信息提取任务非常复杂,涉及多个字段和层级。使用 JSON 格式,可以将复杂的信息提取任务简化为一种结构化的方式,让 GPT 更容易理解和处理。

  • 高度可定制:JSON 格式的灵活性,使得这种方法具有高度的可定制性。你可以根据需要提取的信息来定制 JSON 结构,满足各种复杂的信息提取需求。

  • 提升效率:传统的信息提取方法可能需要手动进行,或者依赖复杂的正则表达式,而 JSON 提取法可以将这些步骤自动化,极大地提高了效率。

  • 结构化输出:可以直接生成结构化的数据。GPT 在返回的文本中,会按照 JSON 结构,填充我们需要的信息。这样,我们就可以直接获得结构化的数据,无须再进行额外的处理。这样每次返回的结果都是统一的,非常适合我们将人工智能与任何现有的服务/应用进行对接,也能更方便地将人工智能当成一个服务器后端来使用。

JSON 提取法适合的问题类型

JSON 提取法的优化方法适用于广泛的问题类型,特别是在处理复杂、结构化的数据时,表现得尤为出色:

  • 数据清洗和预处理:如果你需要从一段文本或一组文本中提取多个关键数据,例如人名、日期、地点等,JSON 提取法可以帮助你准确地提取所需的信息,无须人工逐个查找和提取。

  • 结构化输出:在需要将输入的文本信息转换为结构化数据时(如表格、列表等),使用 JSON 提取法可以让 GPT 更好地理解你的需求,返回你需要的格式和内容。

  • 文本分析:如果你想对输入的文本进行深度分析,从中提取特定的信息,如语义分析、统计词频、提取主题等,JSON 提取法可以帮助你完成这样的任务。

  • 文档摘要:如果你需要从大段文本中提取关键信息,生成内容摘要或概述,JSON 提取法可以提供精确的摘要信息。

  • 语义关系提取:如果你需要从文本中识别并提取实体之间的关系,如人物关系、时间线等,JSON 提取法能够帮助你完成这种复杂的语义关系提取。

  • 信息核实:如果你需要核实一段文本中的某些信息,比如核实一个日期或者事件的准确性,你可以使用 JSON 提取法来提取出这些信息,然后进行核实。

  • 辅助 GPT 提炼信息:如果你要 GPT 从一段内容中生成新的内容。先写一个 JSON 样式关键信息提取器,在后面接着写生成模版,大概率就能让 GPT 写出一个更高质量的稿子。

总的来说,无论你是需要进行数据整理、文本分析,还是需要提取复杂的语义关系,JSON 提取法都能为你提供有效的帮助。

JSON 提取法的使用技巧

在使用 JSON 提取法进行信息提取时,可以参考以下一些技巧,来提高其效果:

  • 明确定义需求:首先,需要明确并定义好你需要提取的信息。比如需要提取的信息是人名、日期还是地点,或者是更复杂的信息,如主题或语义关系。明确的需求可以帮助 GPT 更好地理解你的提取任务。

  • 正确使用 JSON 结构:使用 JSON 提取法时,必须要保证你的 JSON 结构是正确的。错误的 JSON 结构可能会导致 GPT 无法理解你的需求。你可以使用在线的 JSON 格式化工具(JSON Lint 等)进行检查和修复。

  • 利用条件语句:在某些情况下,你可能需要提取的信息是有条件的,比如需要提取的信息不能是空值,或者需要提取的信息必须符合某个类型。在这种情况下,你可以在 JSON 结构中加入条件语句或者指定默认值,来提升提取的精确性。

  • 适当使用嵌套结构:在处理更复杂的信息提取任务时,可以利用 JSON 的嵌套结构。例如,你可以在一个 JSON 对象中嵌套另一个 JSON 对象,来处理更复杂的层次和关系。

  • 灵活应用:最后,需要注意的是,JSON 提取法并不仅仅适用于信息提取,还可以用于生成复杂的对话、制定任务流程等。你可以根据实际需求,灵活应用这种方法。

在模板的基础上,我们还可以添加更加复杂的条件,有某个值必须符合某个特定的历史情况,某个值必须在其他相关值都达到一定条件时候才生效等等;在提取信息这类问题上,这个方法可以达到非常高的准确度。从另一个角度来所,JSON 提取法也是最能体现 GPT「格式大于内容」的方法。

一个包含条件和嵌套的例子

总结

虽然我们现在大部分人使用 GPT 的时候,都是直接通过对话来解决问题。那如果你是想利用 GPT 来提升自己的应用或者服务的使用质量,又或者是根据 GPT 来创造新的应用和功能,这个时候普通的问题生成结果会给我们带来很多额外的工作量和不稳定性。

通过本章的 JSON 提取法,我们可以将输入内容进行准确、统一且稳定的整理,最终生成相同结构的输出;相信利用这个方法,无论是个人日常使用还是商业场景,都有非常优秀的输出结果。

而在下一章中,我将介绍另一个优化特定问题准确度的方法,来帮助大家提高 GPT 在知识检索类问题的回答准确度。

  • 1据开发人员所说,GPT 的涌现能力可能就是在训练编程语言时出现的

最后更新于