IBM Cloud Docs
定义规则

本文档适用于 IBM Watson® Knowledge Studio 上的 IBM Cloud®。 要查看 Knowledge Studio Marketplace 上 IBM 先前版本的文档,请单击此链接

定义规则

使用规则编辑器来定义规则。

关于本任务

避免多个用户同时编辑规则、类和正则表达式,因为这可能会导致意外的覆盖或重复。

过程

要定义规则,请完成以下步骤:

  1. 以 Knowledge Studio 管理员或项目经理的身份登录,然后单击基于规则的模型 > 规则

  2. 单击“文档”标题旁边的加号 (+) 以添加文档。

    有关更多信息,请参阅添加用于定义规则的文档

    例如,可以添加一个名为 My Document 的文档并包含以下单行文本:

    A 50-year-old driver was driving the 2017 Example Horizon.
    
  3. 如果计划定义正则表达式或添加字典,请创建要与其关联的类。

    1. 面板中,单击“类”旁边的加号 (+)。

    2. 添加类名。

      如果要将该类与正则表达式或字典相关联,请考虑将类命名为您可识别其源的内容。 例如,如果计划使用正则表达式为示例句子中的年龄定义模式,那么可以创建一个名为 AGE_REGEX 的类。 如果计划使用字典对句子中的汽车制造商进行注释,那么可以添加名为 MANUFACTURER_DICT 的类。

      请记住以下命名规则:

      • 类名中的第一个字符必须是字母。
      • 对于要添加到类中的值,仅使用以下字母数字 ASCII 字符和下划线字符:AZaz09
      • 名称不能包含空格。
      • 名称长度不能超过 64 个字符。
  4. 可选:要在文档中对类快速进行注释,可以将字典与规则编辑器相关联。 文档中与字典中的条目匹配的术语会自动使用您为该字典选择的类进行注释。

    1. 单击字典选项卡。

      这将显示已创建的所有字典。

      如果尚未添加字典,请从主导航栏打开资产 > 字典页面以添加一个字典。 有关更多信息,请参阅创建字典

    2. 单击字典,将类与该字典相关联,然后单击保存

      例如,如果您有包含组织名称的字典,那么可以创建名为 ORGANIZATION 的规则类,并将该类与该字典相关联。 样本文档中出现的任何组织名称都将作为 ORGANIZATION 类的实例进行注释。

    如果日后要从规则编辑器中除去字典关联,那么可以除去相应的类映射。 要执行此操作,请选择下拉列表顶部的空选项。

  5. 可选:要定义正则表达式以帮助您构造规则,请单击正则表达式选项卡。

    1. 单击“正则表达式”标题旁边的加号 (+)。

    2. 对正则表达式命名。 例如,MyAgeRegex

      名称长度不能超过 64 个字符。

    3. 将表达式与类相关联。 例如,AGE_REGEX

    4. 单击添加条目

    5. 添加表达式。

      例如,要捕获表示年龄(最高年龄为 99)的数字,可以指定 [0-9]{1,2}。 要捕获时间的表达式(如 12:30 AM),可以指定以下正则表达式:

      (1[0-2]|0?[1-9]):([0-5][0-9])(\s+[AaPp][Mm])?
      

      您可以选择更改最小和最大词记号数。 在英语中,记号通常等同于句子中用空格分隔的单词。 但是,它们并不总是与单词一一匹配。 在某些情况下,会将其他文本元素视为令牌。 例如,术语 50 岁 中的连字符每个都计为一个令牌,这意味着此术语中使用的令牌总数为 5。 文本 12:30 PM 包含 4 个标记。 (12 | : | 30 | PM)

      单击添加

    6. 如果要添加更多表达式,请重复上述两个步骤。

    7. 单击保存

    正则表达式编辑器会关闭,并且会显示文档。 您应该会看到为正则表达式(应用于要与其匹配的文本)定义的类。 如果看不到注释,请检查表达式。 可能需要对表达式进行修改,使其与您要查找的文本相匹配。

    The rule editor showing the "Regex" tab selected, a regular expression called "Age" that's associated with the class "AGE_REGEX", and a document that shows the text "50" highlighted in yellow. The highlighted text matches the regular expression that was created. "显示所选" Regex "选项卡的规则编辑器,与类" AGE_REGEX "关联的名为" Age "的正则表达式,以及显示以黄色突出显示的文本" 50 " 的文档。 突出显示的文本与创建的正则表达式匹配。")

  6. 要定义规则,请单击导航中的规则

  7. 打开包含要作为规则捕获的模式的文档。 例如,如果创建了名为 My Document 的文档,并且该文档中的样本文本包含短语 50-year-old,请打开该文档。

  8. 在文档的文本中,选择说明要捕获的模式的字符。 例如,可以选择以下词和连字符 (-):

    50-year-old
    

    选择字符后,可以添加规则。

  9. 单击规则面板中的加号 (+)。

    规则编辑器会将选择的文本表示为两层单元格。 您将在顶层中的单元格中对底层记号的类进行注释。 您将在底层单元格中定义记号参与模式时所依据的条件。

    The rule editor that shows the "Create a rule" panel. "在从文档中选择文本并单击" 规则 "面板中的加号之后,显示" 创建规则 " 面板外观的规则编辑器。 显示了以下图形元素: 输入了术语 "AGE" 的 "规则名称" 字段, "创建规则" 面板和 "类" 面板。 在 "创建规则" 面板中,带有虚线的单元格显示在顶部。 对于所选文本的每个标记,将显示一个单元格。 在这些单元格中,您将对令牌的类进行注释。 在 "创建规则" 面板的底部,将显示具有实线的单元格。 每个单元格都包含所选文本的标记 "50 岁"。 标记为 "50" , "-" (连字符) , "year" , "-" 和 "old"。 每个实线单元格旁边都有两个图标,可用于调整单词或注释的情况。")

  10. 定义每个令牌参与模式时依据的条件。

在底层单元格中,单击第一个记号以复查其条件。 如果要指示可以在模式中的当前位置使用任何记号,那么单击打开属性,然后选择允许任何记号。 单击关闭属性。 如果记号是正则表达式(例如,示例中的 AGE_REGEX),那么允许任何记号不可用。

每个单元格的重复设置小于或等于 1 时,可以参与模式的最大组单元格数为 15。 组单元格包括单个记号、注释或允许任何记号的记号。 模式中允许的最大记号总数为 20。 在定义模式时,请考虑每个单元格的重复设置。 例如,每个单元格的重复设置小于或等于 1 时,可以定义包含 15 个记号的模式。 但是,如果每个记号的重复设置大于或等于 1,那么可以在模式中定义的记号数不能超过 4 个,因为每个记号会重复最多 5 次。 4 个记号重复 5 次即达到允许的最大值 20。

要指示需要特定类型的记号,可以定义以下类型的条件设置:

  • 重复设置:指定模式中必须包含当前记号的次数。 可以更改重复设置,但每个记号只能指定一个重复设置。 下表中描述了这些选项。

    表 1. 重复设置

    设置选项 描述
    必需 (精确 1) 此令牌必须在模式中存在一次。 缺省情况下会应用此选项,但可以更改此选项。
    重复 1 次或更多次 此标记必须至少在模式中存在一次,并且可以重复更多次。
    重复 0 次或更多次 此标记可以选择在模式中重复多次,但不必重复。
    发生 0 或 1 时间 此令牌是可选的。
    高级: custom 此令牌必须在模式中重复此处指定的次数。 要定义定制重复设置,请单击 "打开属性" ,选择 "高级" ,然后选择要定义的准确重复次数或重复范围。 令牌允许的最大重复次数为 5。
  • 功能设置:必须至少定义一个功能设置。 可以添加更多功能,以增加要使文本与此模式匹配所必须满足的条件数。 下表中描述了这些选项。

    表 2. 功能设置

    设置选项 它添加的条件
    文本 必须与此标记中的精确文本匹配。 缺省情况下将应用此选项。 您可以将其除去,但仅当添加其他设置作为条件或应用 "任何令牌" 设置时才可以。
    长度 必须与此标记的字符长度匹配。 从第一个字符前面的 0 开始计算长度。

其余选项因记号类型而异。

  • 与正则表达式或字典术语不匹配的未注释记号:这些设置可用于未注释且与正则表达式或字典术语不匹配的记号。

    表 3。 未注释的令牌设置

    设置选项 描述
    词性 必须与此记号的词性相同。 支持以下类型:
    • 形容词
    • 介系词
    • 副词
    • 连词
    • 限定词
    • 感叹词
    • 名词
    • 数词
    • 代词
    • 残差
    • 动词
    引理 必须具有与此令牌相同的引理。
    字符类型 必须具有与此标记相同的字符类型。 支持以下类型:
    • Arabic:包含阿拉伯语字符序列
    • ChineseNumeral:仅包含中文数字
    • ClauseEndingPunctuation:用于分隔相邻的从句或句子的标点符号字符
    • Han:包含汉字字符
    • Hangul:包含韩文音节字符
    • Hebrew:包含希伯来语字符序列
    • Hiragana:包含日文平假名音节字符
    • Ideographic:包含表示构想或事物的表意文字或符号
    • Katakana:包含日文片假名音节字符
    • Lowercase:仅包含小写字母字符
    • Numeric:仅包含数字字符
    • Punctuation:用于在文本中提供标点符号的一个或多个字符
    • Syllabic:包含音节字符
    • Thai:包含泰语字符
    • Titlecase:以单个大写字母字符开头,后跟一个或多个小写字母字符
    • 大写: 仅包含大写字母字符的标记
  • 规则匹配:

    表 4。 规则匹配

    设置选项 描述
    Rule Match 必须与指定的类匹配。 请记住,类可以从正则表达式、字典或规则派生。 例如,如果此处指定的类派生自正则表达式,那么此标记必须与表达式的搜索模式匹配。
  1. 对于具有从字典注释或正则表达式匹配项间接添加的注释的记号,可以选择模式是应该需要任何具有相同注释类型的词,还是改为需要已进行注释的实际底层词。

在底层单元格中,可以看到哪些单元格包含在模式中,因为有一条水平线将这些单元格连接在一起。 在应用了注释之处,单元格会拆分。 带有原始词的单元格会显示在带有注释标签的单元格下面。 可以单击其中任一组单元格来更改线条的路径,从而更改模式中包含的单元格。

例如,可以选择让模式使用 50,而不是让模式与 age 正则表达式相匹配。

"创建规则" 面板,显示在规则中使用注释 "AGE_REGEX" 的标记 "50" 的编辑。 缺省情况下,将使用 "AGE_REGEX" 注释,但您可以编辑模式,以便改为使用底层单词 "50"。

  1. 设置模式顺序后,可以对文本中的记号进行注释。

在顶层单元格中,单击表示要注释的记号的单元格,然后向其应用类标签。 要选择多个单元格,请单击一个单元格,然后按住 Shift 键并单击其他单元格。

为所选一个或多个单元格分配类。 如果要分配的类不存在,那么可以添加该类。 在分配类字段中输入类名,然后按 Enter 键。

为规则添加的类不能超过 10 个。

"创建规则" 部分,显示单击令牌时打开的 "分配类" 窗口。 该窗口将显示一个字段,您可以在该字段中输入新类的名称,或者从列表中选择现有类。

  1. 对规则命名。

规则名称长度不能超过 64 个字符。

  1. 单击“规则”面板中的保存以保存规则。