本技术概览( First Look )介绍了 InterSystems IRIS® 数据平台 支持使用 Natural Language ProcessingNLP,自然语言处理 )文本分析的能力,NLP文本分析以各种自然语言对非结构化文本数据进行语义分析。能让您发现有关大量文本文档内容的有用信息,而无需事先了解文本内容。

本技术概览( First Look )介绍了 InterSystems IRIS  Natural Language Processing(自然语言处理),并介绍了一些与索引文本数据相关的初始任务,以进行语义文本分析。完成这些任务后,您将对一组文本建立索引并执行分析,以确定这些文本中最常见的实体(entity)、关于这些实体的度量指标、实体之间的各种关联,以及查看实体在源文本的表现形式。这些活动仅设置使用默认设置和功能,以便您熟悉 NLP 文本分析的基础知识。有关Text Analytics(文本分析)的完整文档,请参阅InterSystems IRIS Natural Language Processing (NLP) Guide (《InterSystems IRIS 自然语言处理 (NLP) 指南》)

处理非结构化文本的一个相关但独立的工具是InterSystems IRIS SQL SearchSQL Search允许您search(搜索)这些相同的实体,以及多个文本中的单个单词、正则表达式(regular expression)和其他结构。本质上,搜索解决方案的前提是您知道自己要寻找的目标。NLP 文本分析旨在帮助您发现内容和内容实体之间的联系,而无需明确要寻找的目标。

要浏览技术概要(First Look)的所有内容,包括可以InterSystems IRIS的免费评估实例上执行的许多内容 请参阅InterSystems First Looks (《InterSystems 技术概要》)

 

  1. 为什么 NLP 文本分析很重要

企业逐渐累积的越来越多的非结构化文本数据,远远超出了他们阅读或记载这些文本的能力。通常,企业可能对这些文本文档的内容知之甚少。基于纯search(搜索)技术传统的“自上而下”文本分析,对这些文本的内容做出假设,可能会遗漏重要内容。

InterSystems IRIS Natural Language Processing NLP)可以在预先不了解这些文本的主题的情况下,对这些文本进行文本分析。它通过应用识别语义实体的特定语言规则来实现这项功能。由于这些规则是专门针对语言而非内容,因此 NLP 可以在不使用字典或本体的情况下提供对文本内容的深入分析。

 

  1. InterSystems IRIS 如何实施 NLP 文本分析

要为 NLP 分析准备文本,您必须将这些文本加载到domain(域)中,然后构建域。基于对这些文本的分析,NLP为该域构建索引, NLP可以使用域快速分析大量文本。文本可以从各种数据位置输入,包括 SQL 表、文本文件、strings(字符串)、globals RSS 数据。

NLP 支持以下功能:

<wrapblock><rect alt="" fillcolor="gray" id="docshape10" stroked="f" style="position:absolute; left:0; text-align:left; margin-left:72px; margin-top:22px; width:486pt; height:.5pt; z-index:-15728640"></rect></wrapblock>

 

  1. 亲自尝试 NLP 文本分析

使用 InterSystems IRIS 文本分析很容易。这个简单的程序将引导您按基本步骤生成NLP 度量指标。

提供此示例是为了让您初步体验InterSystems IRIS Natural Language Processing。不应将此示例用作开发实际应用程序的基础。如要在真实情况下使用 NLP,您应该充分研究该软件提供的可用选项,然后开发您的应用程序以生成稳健且高效的代码。

    1. 用前须知

要使用该程序,您需要一个正在运行的 InterSystems IRIS 实例。您的选择包括多种类型的已授权的和免费的评估实例;该实例不需要在您工作的系统中(尽管它们必须相互具有网络访问权限)。如果您还没有一个可以使用的实例,如何部署每种类型实例的有关信息,请参阅InterSystems IRIS Basics: Connecting an IDEINTERSYSTEMS IRIS 基础:连接一个IDE)中的Deploying InterSystems IRIS部署 InterSystems IRIS

您还需要获取 Aviation.Event SQL 表,该表可在 GitHub 上找到,网址为https://github.com/intersystems/Sam-ples-Aviation。按照First Look: SQL Search with InterSystems Products《技术概览:使用 InterSystems 产品进行 SQL 搜索》)中的Downloading and Setting up the Sample Files(下载和设置示例文件)提供的说明下载和设置文件

    1. 创建域并添加数据位置

所有 NLP 分析都发生在一个域内。将多个文本关联到一个域。然后构建域,创建 NLP 查询使用的索引。

域是在namespace(命名空间)中创建的,例如在上一节中按照First Look: SQL Search with InterSystems Products技术概览:使用 InterSystems 产品进行 SQL 搜索)的过程,创建的SAMPLES命名空间。可以在一个命名空间内创建多个域。可以将一个文本与多个域进行关联。

有多种方法可以创建、填充和构建域。以下示例使用Domain Architect界面。

  1. 在浏览器(browser)中为实例打开 Management Portal (管理门户),使用 InterSystems IRIS Basics: Connecting an IDE(《INTERSYSTEMS IRIS 基础:连接一个IDE 》)URL described for your instance实例适用的URL
  2. 导航到 Domain Architect 页面(Analytics > Text Analytics > Domain Architect)。使用Analytics选项之前,可能需要切换到启用分析功能的SAMPLES命名空间
  3. 点击 New (新建)按钮定义域。指定以下域值(按给定的顺序):
    • Domain name:分配给域的名称在当前命名空间必须是唯一的(不仅仅是在其package class(包类)中唯一);域名不区分大小写。本示例指定名称为 MyTest
    • Definition class name:域定义 package name (包名)和 class name(类名),用句号分隔。从 Domain  name字段按 Tab 键生成默认Definition class nameSamples.MyTest
    • Allow Custom Updates:此复选框允许手动将数据或字典添加到此域。本示例请勿选中此框。

点击 Finish(结束) 按钮来创建域。在屏幕中将显示 Model Elements 选项。

  1. 在域内,可以为域定义数据位置和其他模型元素。要添加或修改模型元素,请单击标题之一旁边的扩展三角形。一开始,没有扩展三角形出现。定义一些模型元素后,单击扩展三角形会显示您定义的模型元素。

点击 Data Locations 三角形以在屏幕右侧显示 Details 选项卡。Details选项卡显示五个 Add Data 选项。选择 Add data from table

此选项允许您指定存储在 SQL 表中的数据。在本例中,我们将指定以下字段:

如果当前域定义有未保存的更改,Domain Architect 页面标题后跟一个星号 (*)。点击 Save (保存)保存更改。

  1. Compile(编译) 按钮,编译 Domain
  2. Build 按钮,为源数据构建NLP索引。
    1. 分析数据

使用以下过程分析数据:

<wrapblock><rect alt="" fillcolor="gray" id="docshape18" stroked="f" style="position:absolute; left:0; text-align:left; margin-left:72px; margin-top:22px; width:486pt; height:.5pt; z-index:-15727616"></rect></wrapblock>

  1. Domain Architect 页面上,选择屏幕右侧的 Tools 选项卡,然后单击 Domain Explorer 按钮
  2. Domain Explorer 最初显示源文本中最重要概念的列表:
    • frequency选项卡按频率降序显示Top Concepts。每个列出的项目都列示其频度计数(出现次数)和分布计数(包含该概念的源数量)。

例如, pilot概念的重复出现次数为6206,分布计数为1085student pilot概念的重复出现次数为 319,分布计数为 141

例如,pilot概念拥有 351.6008 dominancestudent pilot概念拥有 49.3625 dominance

  1. 当您选择上述其中一项概念,将显示该概念的另一个Domain Explorer列表:
    • Similar Entities 列出所选概念以及包含该概念的所有其他概念,每个概念都有其重复出现次数和分布计数。

例如,选择student pilotSimilar Entities 将显示包括student pilot, student pilot certificate, student pilot's logbook, solo student pilot在内的列表

例如,选择student pilotRelated Concepts 将显示包括flight instructorairplane在内的列表

例如,选择student pilotProximity Profile 将列示 airplane的相邻程度为 2702,以及flight instructor相邻程度为 1662

在上述任一列表中的选择一个概念,这些列表将根据该概念进行刷新。或者,您也可以将实体(ConceptRelation)键入到 Domain Explorer Explore 区域并单击 Explore! 按钮。

通过使用这些列表,可以确定源文档中出现哪些概念、它们的重要性以及与它们相关联的其他概念。

Domain Explorer 的下部分允许您查看所选概念在源文本中的显示方式:

通过点击 eye 图标,可以显示源的完整文本,所选概念将被高亮显示,并使用红色文本表示否定。

  1. 您可以添加一个 skiplist 来排除不需要的概念。通常,top concepts(上层概念)列表始于那些非常常见或在几乎没有什么有用信息的概念。这些可能是出现在所有来源中的词或短语(例如“accident report(事故报告)”或“conclusions(结论)”)、一般概念(例如“airplane(飞机)”或“pilot(飞行员)”),或与您所使用数据无关的概念(例如城市列表)。您可以使用 skiplist 避免显示这些概念。Skiplist 仅影响某些查询结果中概念的显示;它对概念的 NLP 索引没有影响。
  1. Domain Architect 中单击 Open 按钮并选择 Samples >>,然后是 MyTest 打开现有域 Samples.MyTest
  2. 点击 Skiplists 扩展三角形。将在屏幕右侧的 Details 选项卡显示 Add skiplist 按钮。点击 Add skiplist 以显示 Name Entries 字段。接受 skiplist 的默认名称 Skiplist_1)。在 Entries 框列示条目(概念),一行一个概念;条目不区分大小写。本例中列出如下概念:pilot(飞行员) student pilot(学生飞行员)、 co-pilot(副驾驶)、 passenger(乘客)、instructor(教官)、flight instructor(飞行教官)、certified flight instructor(认证飞行教官)。
  3. Save(保存)Compile(编译)域。(不需要使用 Build 功能去添加、修改或删除 skiplists 的域)。
  4. Domain Explorer中单击 sunglasses 右上角的图标。将显示您可以应用的为该域定义的skiplists的列表。选择Skiplist_1。请注意,Top Concepts 不再列出 skiplists 的概念。

 

  1. 了解有关 NLP 文本分析的更多信息

InterSystems 有其他相关资料可帮助您了解有关 NLP 文本分析的更多信息,包括:

  • InterSystems IRIS Natural Language Processing (NLP) Guide(《InterSystems IRIS自然语言处理 (NLP) 指南》)