使用智能文档理解 (SDU) 来改进搜索结果
在本教程中,您使用 Discovery 服务的“智能文档理解”功能部件来创建用户训练的“智能文档理解”(SDU) 模型。 然后,将单个文档拆分为多个较小的文档,以便更容易找到某些类型的答案。
本教程适用于受管部署和已安装的部署。
学习目标
完成本教程后,您将了解如何执行以下操作:
- 在 Discovery中创建文档检索项目。
- 将 PDF 文档上载到 Discovery 项目。
- 使用“智能文档理解”(SDU) 工具来创建用户训练的 SDU 模型。
- 将文档拆分为更小,更易于使用的块。
持续时间
本教程大约需要3个小时才能完成。
先决条件
-
开始之前,必须使用 IBM Cloud设置付费帐户。
您可以免费使用 Plus 套餐来完成本教程,该套餐提供 30 天免费试用。 但是,要创建服务的 Plus 套餐实例,您必须具有付费帐户 (在其中提供信用卡详细信息)。 有关创建付费帐户的更多信息,请参阅 升级帐户。
-
创建 Plus 套餐 Discovery 服务实例。
转至 IBM Cloud 目录中的 Discovery 资源 页面,并创建 Plus 套餐服务实例。
如果您决定停止使用 Plus 套餐并且不想为其付费,请在 30 天试用期结束之前删除 Plus 套餐服务实例。
创建文档检索项目
创建项目。 选择创建“文档检索”项目类型。 此类型经过优化,可查找从大型文档中作为段落返回的答案。
有关项目类型的更多信息,请参阅 创建项目。
- 从 Discovery IBM Cloud中的 Plus 套餐服务页面,单击 启动 Discovery。
- 在 “我的项目”页面中,点击 “新建项目”。
- 将项目命名为
Finance tutorial project
,然后选择 文档检索 项目类型。 - 单击下一步。
您将在下一步中配置项目的数据源。
上载 PDF 文件
我们希望搜索应用程序能够回答有关算法交易的问题。 因此,我们将添加于 5 2020 年 8 月创建的“美国资本市场算法交易员工报告”PDF,作为该项目的数据源。
-
获取 PDF 的副本,以便您可以将其上载到项目。 您可以从 美国证券交易委员会 Web 站点下载该文件。
-
上载数据 到集合。
-
单击完成。
仅添加一个文件。 在实际场景中,您可以上载多个文件,其中包含有关同一主题的信息。 通过添加更多文件,您可以扩展搜索应用程序可利用的信息的广度。
服务将上载文档。 在上载文档时,Discovery 将搜寻数据并对密钥信息建立索引。 因为您创建了“文档检索”项目类型,所以 Discovery 会记录它在搜寻文档时找到并识别的 实体 信息。
查看文档
对文档进行分析和建立索引可能需要几分钟时间。 正在进行处理时,请查看源文档以了解其内容。 最好先了解自己文档的结构,然后再使用“智能文档理解”工具对其进行注释。
智能文档理解 (SDU) 使用视觉成像技术,通过分析文本的格式和定位来理解文档的结构。 您可以标注文档的部分 (例如,子标题或表),以指导 Discovery 识别这些部分。 您还可以对希望搜索功能忽略的部分添加标签。 例如,您可能不想搜索页脚或目录信息。 例如,在指导 SDU 工具识别页脚之后,可以从索引中排除页脚字段。
-
通过打开 活动 选项卡来监视收集处理的进度。
从导航面板中单击 管理集合。
Manage collections menu option from the navigation panel 单击 算法交易 PDF 集合磁贴。 集合将打开到“活动”选项卡。
-
在等待集合就绪时,打开先前下载的
Algo_Trading_Report_2020.pdf
文件。 -
查看文档的结构。
请注意,该文档主要由以下结构组成:
- 标题
- 目录
- 子标题
- 文本
- 注释
- 书目
-
除了
footnotes
和bibliography
,SDU 工具还具有所有预定义的标签。 您将在后续过程中为这两个文档结构创建新的字段标签。
当页面显示一个文档可用时,将完成处理。

测试项目
-
完成搜寻后,转至“改进和定制”页面。 在导航面板中,单击 改进和定制。
-
在 搜索 字段中,输入
When did the Flash Crash occur and why?
以下段落将作为响应返回:
These could in turn generate systemic destabilizing market events, such as the May 2010 “Flash Crash.” The “Flash Crash” occurred on May 6, 2010, when an algorithm rapidly sold 75,000 S&P500 e-mini futures contracts.
返回的段落包含对问题的准确答案。
搜索结果 -
提出另一个问题,
What is the purpose of Rule 15c3-5?
以下段落将作为响应返回:
mechanism.306 b. 15c3-5 In November 2011, the SEC implemented the final provision of Rule 15c3-5 curbing unfiltered market access. The provision mandated that brokers verify their clients’ order flow for compliance with credit and capital thresholds before routing to market centers
同样,答案是准确的 (尽管在段落开头有一些无关的文本)。
在这两个示例中,都提出了一个有点复杂的问题,并且返回的段落提供了有效的答案。
但是,并非每个问题都返回明确的答案。 接下来,我们尝试一些生成我们可能想要改进的答案的查询。
-
输入
Where do muni bond trades get reported to?
在这种情况下,响应不会完全回答问题。
Post-trade transparency, in the form of transaction reports, generally is available for corporate and municipal bonds. 1. Transaction Reports in Corporate Bonds: TRACE Transactions in corporate bonds must be reported to the Trade Reporting
-
同样,搜索查询
What are PTFs?
不会返回直接答案。Despite the surge in trading volume during the event window, there was no noticeable change in net positions of PTFs or bank-dealers. However, the report also finds evidence that some PTFs and bank-dealers may have contributed to the volatility
您的项目正在成功回答一些问题。 对于每个查询,仅返回一个段落。 让我们来看看我们是否可以改进针对这些更简单的搜索查询提供的响应。
创建用户训练的智能文档理解 (SDU) 模型
要提高搜索结果的质量,请为此文档构建“智能文档理解”模型。 该模型可帮助 Discovery 了解文档结构。 然后,您可以指示 Discovery 有关要搜索的文档部分以及要忽略的部分。
-
从“改进和定制”页面的“改进工具”面板中,展开 定义结构,然后单击 新建字段。
New fields tool in the Improvement tools panel -
此时将显示 标识字段 选项卡,您可以在其中选择要使用的“智能文档理解”模型的类型。
Identify fields tab - 预训练的模型 将应用不可定制的模型,该模型将抽取文本并标识表,列表和部分。 预训练的模型是节省时间的伟大选择。
- 在本教程中,我们要探索“智能文档理解”工具的工作方式,我们将选择使用 用户训练的模型。
如果未选择模型,那么将自动应用 文本抽取 模型。 通过文本抽取模型,大部分文档内容将被视为标准文本,并在
text
字段中建立索引。 -
单击 用户训练的模型,然后单击 提交。
Confirmation dialog for user-trained model -
单击应用更改并重新处理。
Apply changes and reprocess button 评估过程完成后,将在“智能文档理解”工具中显示文档的表示。
PDF is displayed in the SDU tool 该工具向您显示原始文档的视图以及文档的表示,其中文本将替换为块。 块表示字段类型。
最初,这些块都是
text
字段标签的颜色,因为所有文档内容都被视为标准文本,并且将在text
字段中建立索引。字段标签 列表显示可用的预定义字段标签。
我们将使用相应的字段标签来标注表示特定类型信息的块,例如标题和字幕。 (使用标签来标识文档结构的不同部分的过程称为 注释 文档。)
-
要对文档进行注释,请首先单击标签。 然后,单击要标记的文本块。
从 字段标签 列表中单击
title
,然后在文档表示中单击位于文档标题位置的黄色块。A title is being labeled in the Smart Document Understanding tool 您已成功标记文档的标题!
-
页面上的其余文本可作为
text
字段的一部分建立索引。 因此,请单击 提交页面。 -
下一页是文档的 目录。 单击
table_of_contents
标签,然后选择页面上的所有文本对其进行标签。 (您可以单击并拖动鼠标以全部选中。) 单击 提交页面 以移至下一页。A table of contents is being labeled in the Smart Document Understanding tool -
页面上的两个标题是子标题。 单击
subtitle
标签,然后选择标题。此页面有一个脚注。 正如我们先前指出的那样,该文件有许多脚注,其中提供了一些重要信息。 让我们为脚注添加标签,以便稍后可以包含或排除此类信息。 没有脚注标签,所以我们必须添加一个。
-
从 字段标签 列表中,单击 新建。 添加名称
footnote
作为标签名称。 重复单击颜色块,直到找到要用于标签的唯一颜色,然后单击 创建。New label dialog -
单击您添加的新脚注标签,然后使用该标签在页面上标注脚注。 单击 提交页面 以移至下一页。
A footnote is being labeled in the Smart Document Understanding tool -
重复此过程以标注并提交多个页面。
对于大多数页面,内容包含
subtitle
和footnote
,并且页面上的大部分内容仍标注为text
。Subtitle, footnote, and text labels are being applied 当您标注和提交页面时,模型将从您所做的注释中学习。 渐渐地,应用的标签会自动变得准确,不需要任何调整。
如果工具在应用标签时过度热情,请将
text
标签应用于标准文本的部分以进行更正。 -
对于表,请选择表文字说明和整个表,并使用
table
标签对其进行标注。A table is being labeled -
当页面包含图像时,该图像不会显示在页面的表示中。
从不复制映像。 但是,您可以从图像中捕获文本,以便可以搜索图像文本。 为此,请在创建集合时启用“光学字符识别”(OCR) 功能。 OCR 在以下情况下很有用: 您希望从图像中抽取文本,例如从扫描的 PDF 中抽取文本,其中文本嵌入在图像中。 有关更多信息,请参阅 光学字符识别。
启用 OCR 后,如果要从集合索引中除去带注释的图像文本,那么可以对该图像添加标签,以便可以排除关联的文本。 您将在下一个过程中了解如何配置索引。
Shows an image in the page -
当您访问 Bibliography时,请创建名为
bibliography
的新标签。Creating a bibliography label 将新标签应用于每个页面。
A bibliography label is being applied -
对所有页面进行注释并提交后,单击 应用更改并重新处理。
系统会显示一条通知,提示您收藏已更新。 您保留在 SDU 工具页面上,但 应用更改并重新处理 按钮处于禁用状态。
将根据您在本文档中标注的结构生成 SDU 模型。
有关“智能文档理解”功能的更多信息,请参阅 使用智能文档理解。
简化可搜索数据
现在,您有了一个可以识别文档中不同类型的部分的 SDU 模型,您可以指示它在搜索中包含某些部分并排除其他部分。 要控制搜索哪些数据,请在搜索索引中包含或排除字段。
-
单击 管理字段。
The Manage fields tab -
从要建立索引的字段列表中,将除以下字段以外的所有字段的切换器设置为 No:
footnote
html
subtitle
table
text
索引 -
单击应用更改并重新处理。
系统会显示一条通知,提示您收藏已更新。 您将保留在“管理字段”页面上,但将禁用 应用更改并重新处理 按钮。
您已成功配置索引以控制可用于搜索的内容! 排除的字段可能包含热门搜索项,但不包含有意义的内容。
有关管理字段的更多信息,请参阅 从查询结果中排除内容。
拆分文档
现在,Discovery 更了解文档的结构,我们可以将单个 99 页文档拆分为更多文档。 请记住,对于之前提交的每个查询,仅返回一个段落。 如果我们将文档拆分为多个段,那么 Discovery 可以返回所有文档段中的最佳段落。
拆分文档时,会将一个文档转换为多个文档。 请注意计划类型的文档限制。 通过将文档计数分割为计划的文档限制而生成的每个文档分段。
对文档进行注释时,标识了 subtitle
字段。 这些子标题是一个很好的标记,每个新的文档段都可以从它开始。
-
从“管理字段”页面的 通过拆分文档来改进查询结果 部分中,单击 拆分文档。
-
从 在每次出现时拆分文档 字段中选择
subtitle
。选择在字幕字段上分割文档* 显示从分割文档字段中选择的字幕字段* 选择在字幕字段上分割文档 -
单击应用更改并重新处理。
系统会显示一条通知,提示您收藏已更新。 您将保留在“管理字段”页面上,但将禁用 应用更改并重新处理 按钮。
-
单击页面标题中的 活动 以返回到“活动”页面,您可以在该页面中监视所做更改的进度。
未处理任何文档时,将完成文档分割。
有关拆分文档的更多信息,请参阅 拆分文档以使查询结果更简洁。
再次测试项目
让我们来了解一下我们是否通过为文档添加用户训练的 SDU 模型来改进了搜索功能。 为此,让我们重新测试该项目。
-
在导航面板中,单击 改进和定制 以打开“改进和定制”页面。
-
首先,为了确保我们没有降低搜索的质量,让我们问一个在我们之前测试时返回了良好响应的问题。
在 搜索 字段中,输入
What is the purpose of Rule 15c3-5?
Query added to the Improve and customize page 此时将返回多个响应。 以下响应包含对该问题的准确回答,没有任何无关的文本:
In November 2011, the SEC implemented the final provision of Rule 15c3-5 curbing unfiltered market access. The provision mandated that brokers verify their clients’ order flow for compliance with credit and capital thresholds before routing to market centers.
Multiple responses are returned for the query 我们的更新仅提高了之前返回的准确响应的质量。
-
现在,让我们提出一个先前结果不佳的问题。 输入
What are PTFs?
作为搜索查询。将再次返回上次作为唯一响应返回的相同响应。 但是,这次我们得到了不止一个回应。 我们可以看到,返回的第二个响应定义了我们的首字母缩略词。
(“principal trading firms” or “PTFs”)
Responses that answer the question about PTFs -
让我们尝试其他有问题的搜索查询。 输入
Where do muni bond trades get reported to?
作为搜索查询。这次是第三个回答提供了问题的答案。 您必须查看完整通道才能查看整个定义。
Responses that answer the question about muni bonds 单击 查看文档中的段落 链接以查看文档中突出显示的完整定义。
Transactions in municipal bonds must be reported to the Municipal Securities Rulemaking Board’s (MSRB) Real-time Transaction Reporting System (RTRS).
祝贺您! 您已成功添加用户训练的“智能文档理解”(SDU) 模型,以提高搜索项目的质量。
使用基于字典的构面过滤结果
现在,每个查询都返回了更多段落,因此对结果进行过滤可能很有用。 要根据所提及的金融工具类型来过滤结果,我们可以添加搜索构面。 构面的一个可用源是字典。
-
要创建字典,请从“改进和定制”页面的 改进工具 面板中展开 Teach 域概念,然后单击 字典。
-
单击新建。
New button in the dictionary page -
输入
Financial instruments
作为字典名称,添加术语municipal bond
,然后单击 添加术语 按钮。Financial instruments dictionary with one term -
通过单击术语的“编辑”图标来添加术语的同义词。
Municipal Bonds, muni, munis, muni bonds
在以逗号分隔的列表中添加同义词,然后单击 保存术语。
-
单击保存字典。
您可以在文档中选择要应用扩充项的字段。 让我们选择创建用户训练的 SDU 模型时生成的
subtitle
字段。 从 要扩充的字段 字段中,选择subtitle
。 单击应用。将创建字典,并分析文档中的每个子标题以获取字典中定义的术语或同义词的提及项。 在索引中记录找到的任何提及项。
-
从导航面板中单击 改进和定制。
-
从“改进和定制”页面的“改进工具”面板中,展开 定制显示,然后单击 构面。
-
点击 “新方面”,然后选择 “从集合中的现有字段”。
-
选择与已应用于
subtitle
字段的字典扩充项关联的索引字段。 从 字段 字段中,选择enriched_subsection.entities.mentions.text
Fields from which you can create a facet 您可能需要将鼠标悬停在条目上以查看完整的字段名称。
-
将标签 (例如
Dictionary terms
) 添加到 标签 字段,然后单击 应用。Facet was created -
输入
Where do muni bond trades get reported to?
作为搜索查询。将显示您创建的 字典术语 构面以及搜索结果。 将显示
Municipal Bonds
复选框,指示至少有一个返回的段落是从其subtitle
字段中具有术语Municipal Bonds
的文档段中抽取的。Dictionary term facet with a Municipal Bonds option -
要过滤结果以仅显示子标题中包含
Municipal Bonds
的部分中的段落,请选中Municipal Bonds
复选框。现在,最佳答案被列为第二个响应,而不是第三个响应。
最佳答案是第二个结果* 最佳答案是第二个
摘要
在本教程中,您创建了“文档检索”项目,“智能文档理解”(SDU) 模型,字典扩充项和搜索构面。 您已将基于字典的构面应用于 SDU 模型生成的定制字段,以过滤查询结果以获得更好的答案。