Nlp 日本门规则优先权未得到尊重

Nlp 日本门规则优先权未得到尊重,nlp,grammar,gate,Nlp,Grammar,Gate,我有以下案文: 1 hwb wert: 330 kWh 在第一步中,以下映射是定位点: 330 kWh映射为:Lookup.major=“unit” hwb-wert映射为:Lookup.major=“关键字” 日本规则: Phase: composedUnits Input: Token Lookup Options: control=appelt debug=true Rule: TableRow Priority:10 ( ({Lookup.majorType == "keywo

我有以下案文:

1 hwb wert: 330 kWh
在第一步中,以下映射是定位点:

330 kWh
映射为:
Lookup.major=“unit”

hwb-wert
映射为:
Lookup.major=“关键字”

日本规则:

Phase: composedUnits
Input: Token Lookup
Options: control=appelt debug=true

Rule: TableRow
Priority:10
 (
  ({Lookup.majorType == "keyword"})
  ({Token.kind == punctuation})[0,4]
  ({Lookup.majorType == "unit"})
 )

Rule: ReversedTableRow
Priority: -2
(
 ({Token.kind == number})
 ({Lookup.majorType == "keyword"})
)

我不明白为什么
ReversedTableRow
-规则匹配,而
TableRow

appelt优先级仅适用于相同的文本区域(例如较早的比赛获胜和较长的比赛获胜)。前一个规则使用的文本无法与后一个规则匹配

发件人:

对于appelt样式,同一地区只能制定一条规则 根据一组优先级规则,对文本进行排序。优先权在 下面的方法

  • 从与文档的区域匹配的所有规则开始 某些点X,与最长区域匹配的点为红色
  • 如果 有多条规则与同一个区域相匹配,该区域具有最高的 优先权是红色的
  • 如果有多条规则具有相同的 优先权,语法中前面定义的优先权为红色
  • 另请注意,根据控制风格,使用规则可能会 “使用”文本的该部分,使其无法匹配 根据其他规则。例如,如果一条规则使用 上下文使其更具体,而上下文则被 后来的规则,由于使用例如 “布里尔”控制风格



    通过以下修改,规则
    TableRow
    可以赢得更长的时间,请注意,我添加了
    :TableRow
    标签,其中不包括前导号码标记

    (
     ({Token.kind == number})?
     (
      ({Lookup.majorType == "keyword"})
      ({Token.kind == punctuation})[0,4]
      ({Lookup.majorType == "unit"})
     ):tableRow
    )
    

    因为规则不匹配相同的文本间隔…顺便说一句,无法在此文本上匹配TableRow,因为两个查找之间有冒号(
    )标记-s@dedek我更新了规则,但另一个仍然匹配!如果我删除
    reversedTableRow
    规则,则
    tableRowRule
    将匹配。现在怎么了?谢谢你的回答。那么,除了在不同的文件->不同的阶段中分离规则之外,还有什么方法可以解决这个问题吗?@Paul您是否希望在示例文本中激发
    TableRow
    ,而不激发
    ReversedTableRow
    。只需将
    TableRow
    移动到一个单独的第一阶段,在
    ReversedTableRow
    的内部,您可以检查类似
    {Lookup.majorType==“keyword”,!TableRow}