You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

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 {product}" where "{name}" and "{product}" are tags and "likes" is the text literal. Since this stage allows for complex entity tagging, is also know as the "Advance Recognizer".

Operates On:  Lexical Items with either TOKEN or SEMANTIC_TAG.

Stage is a Recognizer for Saga Solution, and can also be used as part of a manual pipeline or a base pipeline


Generic Configuration Parameters

  • boundaryFlags ( type=string array | optional ) - List of vertex flags that indicate the beginning and end of a text block.
    Tokens to process must be inside two vertices marked with this flag (e.g ["TEXT_BLOCK_SPLIT"])
  • skipFlags ( type=string array | optional ) - Flags to be skipped by this stage.
    Tokens marked with this flag will be ignored by this stage, and no processing will be performed.
  • requiredFlags ( type=string array | optional ) - Lex items flags required by every token to be processed.
    Tokens need to have all of the specified flags in order to be processed.
  • atLeastOneFlag ( type=string array | optional ) - Lex items flags needed by every token to be processed.
    Tokens will need at least one of the flags specified in this array.
  • confidenceAdjustment ( type=double | default=1 | required ) - Adjustment factor to apply to the confidence value of 0.0 to 2.0 from (Applies for every pattern match).
    • 0.0 to < 1.0  decreases confidence value
    • 1.0 confidence value remains the same
    • > 1.0 to  2.0 increases confidence value
  • debug ( type=boolean | default=false | optional ) - Enable all debug log functionality for the stage, if any.
  • enable ( type=boolean | default=true | optional ) - Indicates if the current stage should be consider for the Pipeline Manager
    • Only applies for automatic pipeline building

Configuration Parameters

  • patterns ( type=string array | required ) - The resource which contains the pattern database


$action.getHelper().renderConfluenceMacro("$codeS$body$codeE")

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.

 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.
  • PROCESSED - Placed on all tokens that compose the semantic tag.

Vertex Flags:

No vertices are created in this stage.

Resource Data

The resource data will be a database of advanced patterns, and the resulting semantic tag 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: $action.getHelper().renderConfluenceMacro("$codeS$body$codeE")

  1. Multiple entries can have the same pattern.
    1. If the pattern is matched, then it will be tagged with multiple (ambiguous) entry IDs.
  2. Additional fielded data can be added to the record
    1. As needed by downstream processes.

Fields

  • id ( type=string | required ) - Identifies the entry. This identifier may not be unique, and is not the id of the database, but an specific use case id
    • Typically, this is an identifier with meaning to the larger application that is using the Language Processing Toolkit.
  • display ( type=string | required ) - What to show the user when browsing this entity
  • tag ( type=string | required ) - Tag which will identify any match in the graph, as an interpretation
    • These will all be added to the interpretation graph with the SEMANTIC_TAG flag.
    • Tags are hierarchical representations of the same intent. For example, {city} → {administrative-area} → {geographical-area}

  • pattern ( type=string | required ) - Pattern to match in the content

    • Currently, tokens are separated on simple white-space and punctuation, and then reduced to lowercase.

  • confidence ( type=boolean | required ) - Specifies the confidence level of the entry, independent of any patterns matched
    • This is the confidence of the entry, in comparison to all of the other entries. (Essentially, the likelihood that this entity will be randomly encountered.)
  • fields ( type=json | default=empty json | optional ) - Additional information for the entry. At the moment this information is not expected
  • updatedAt ( type=date epoch | required ) - Date in milliseconds of the last time the entry was updated
  • createdAt ( type=date epoch | required ) - Date in milliseconds of the creation time of the entry

  • No labels