Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Excerpt

Matches advanced recursive patterns of tokens and semantic tags. Pattern databases can be very large (millions) of entries.

The new patterns can be formed by previously defined tags and text literals. For example, the pattern "{name} likes likes {product}" where "{name}" and "{product}" are tags are tags and "likes" is the text literal.  Since Since this stage allows for complex entity tagging, is also known as the "Advance Advanced Recognizer".

Operates On:  Lexical Items with SEMANTIC_TAG or TOKEN, and possibly other flags as specified below.

Saga_is_recognizer


Easy Heading Free
navigationTitleOn this Page

Include Page
Generic Configuration Parameters
Generic Configuration Parameters

Configuration Parameters

  • Parameter
    summaryThe resource which contains the pattern database
    namepatterns
    requiredtrue
  • Parameter
    summaryMaximum number of repeating elements checked for when matching wilcards wildcards * and +.
    default5
    namemaxRepeats
    typeinteger
    requiredtrue


Code Block
boundaryFlagstext block split
requiredFlagstoken, semantic tag
languagejs
skipFlagsSTOP word
"patterns":"saga_provider:saga_advanced",
"maxRepeats": 5

Example Output

The following shows sample output from the advanced pattern matcher, which has multiple patterns for the {product} and {person-product-preference} semantic tags.

Code Block
V--------------------[Abe Lincoln likes the iPhone-7]--------------------V 
^---[Abe]----V--[Lincoln]--V--[likes]--V--[the]--V------[iPhone-7]-------^ 
                                                 ^---[iPhone]----V--[7]--^
^---[abe]----^--[lincoln]--^                     ^---[iphone]----^
^--[{name}]--^--[{place}]--^           ^-----------[{product}]-----------^
                                       ^-------[{product}]-------^
^---------[{name}]---------^                     ^--[{product}]--^
^--------[{place}]---------^                     ^------[iphone-7]-------^
                                                 ^------[{product}]------^
^-----------------[{person-product-preference}]------------------^
^---------------------[{person-product-preference}]----------------------^

Output Flags

Lexical Item Flags:

  • SEMANTIC_TAG - Identifies all lexical items which are semantic tags.
  • ENTITY - Identifies the token as an entity.

Vertex Flags:

Info

No vertices are created in this stage.

Patterns

The Advanced Pattern Stage accepts patterns that span any number of tokens/items. This is not a character matching/regex engine. The way the patterns works is to replace and expand tokens, not characters, using precedence rules and simple symbols to define repetitions and optional tokens.

Warning

An advanced pattern always requires a tag to work. (e.g "token {tag}")


These are the symbols supported for patterns:


SymbolUsage
Zero or more of preceding*{tag}* token*
One or more of preceding+{tag}+ token+
Zero or one of preceding? or [ ]{tag}? [{tag}] token? [token]
Grouping and escaping( ) " "({tag} token) "some tokens" "what?"
Alternations |token1|{tag}|token2
Note

There cannot be whitespaces between the tokens and the symbols, for example “token1 | token2” (notice there are whitespaces between token1 and the pipe symbol as well as after) is not valid, it should be written as “token1|token2”. Or “{tag}?”, adding a space between the closing curly bracket and the question mark will not yield the expected result.

Precedence

This is the precedence order used by the pattern expansion process (from highest to lowest):

""escapingAll other symbols are turned off inside of quotes
( ) [ ]groupings and optionalAll other chars will act on groups
? + *wildcardsApply to tokens, tags, or groups
|alternationsApply to tokens, tags, or groups
Note

Wildcards such as + and * have a limit of repetitions set by the "Maximum Repeats" value on the configuration.


Example patterns:

this that

Matches the literal token "this" followed by the literal token "that"

this|thatMatches "this" or "that".
{animal} Matches any token that has been tagged as an {animal}.
this {tag}? thatMatches "this" followed by "that", optionally with a {tag} token in between
this {tag}* thatAs above, but with any number (zero or more) of {tag} tokens in between.
this {tag}+ thatAs above, but with at least one {tag} token in between
(this that)+Matches "this that this that..." etc.
(left handed)|(right handed) toolMatches "left handed tool" or "right handed tool".
Phrase “here is optional”?Matches “Phrase” and “here is optional” might be at the end of the phrase.
Phrase [here is optional]Matches same as above.
Is the last phrase “here optional?”Matches the whole phrase as the ? mark is within the escaping.
One|two|three|more alternativesMatches multiple optional values. 
In a galaxy far+ awayMatches up to 5 (depending on Maximum Repeats values) repetitions of “far” e.g. In a galaxy far far far far far away.


Resource Data

The resource data is a database of advanced patterns and the resulting semantic tags that they produce.

Resource Format

The pattern database is a series of JSON records, typically indexed by "pattern block ID".  Each JSON record represents a block of patterns (one or more) that all produce the same semantic tag.  The format is as follows:

Code Block
TitleEntity Json Format
languagejs
"_id" : "KGAAJGsBemSwA0nZTLXA",
"tag": "recipe",
"pattern": "("how many"|"how much") {ingredient} ",
"confAdjust": 0.95
. . . additional fields as needed go here . . . 
Note
  • Multiple entries can have the same pattern. If the pattern is matched, then it will be tagged with multiple (ambiguous) entry IDs.
  • Additional fielded data can be added to the record; as needed by downstream processes.

Fields

  • Parameter
    summaryTag which will identify any match in the graph, as an interpretation
    nametag
    requiredtrue
    • These will all be added to the interpretation graph with the SEMANTIC_TAG flag.

      Tip

      Tags are hierarchical representations of the same intent. For example, {city} → {administrative-area} → {geographical-area}

  • Parameter
    summaryPattern to match in the content
    namepattern
    requiredtrue

Include Page
Generic Resource Fields
Generic Resource Fields