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

Compare with Current View Page History

« Previous Version 4 Next »

Looks up matches to regular expressions in a dictionary within a single token and then tags the match with one or more semantic tags as an alternative representation.

Operates On:  Lexical Items with TOKEN flag

All possibilities are tagged, including overlaps and sub-patterns, with the expectation that later disambiguation stages will choose which tags are the correct interpretation.


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 (string, required) - The resource containing the pattern database.
    • See below for the format.


Example Configuration
{
 "type":"SimpleRegex",
 "patterns":"regex-provider:patterns"
}

Example Output

In the following example, "number" is in the dictionary as a regex for using "[0-9]+" and "[0-9]+\\.[0-9]+" :

 V--------------------------------------[What's your name 12 @#$ 25 63.3]---------------------------------------V  
  ^-----[What's]-----V--[your]--V--[name]--V-----[12]-----V--[@#$]--V-----[25]-----V-----------[63.3]------------^  
  ^--[What]--V--[s]--^                     ^--[{number}]--^         ^--[{number}]--^-----[63]-----V-----[3]------^  
  ^-----[what's]-----^                                                             ^---------[{number}]----------^  
  ^--[what]--^                                                                     ^--[{number}]--^--[{number}]--^                                        

Notice that on the example for Regex Pattern Stage the "self-name" tag would have a potential match with "What's your name". However, the Simple Regex Stage does not lookup for matches beyond a single token (as the Regex Patter Stage does).

Output Flags

Lex-Item Flags

  • SEMANTIC_TAG - Identifies all lexical items that are semantic tags.
  • PROCESSED - Placed on all tokens that compose the semantic tag.

Resource Data

The regex pattern must have an "pattern dictionary" (a string to JSON map) which is a list of JSON records, indexed by entity ID. In addition, there may also be a pattern map and a token index.

Pattern (Regex) Dictionary Format

The only required file is the pattern dictionary. It is a series of JSON records, typically indexed by entity ID.

Each JSON record represents an entity. The format is as follows:

Entity JSON Format
{
    "_id" : "ca84",
    "tags" : [ 
        "number"
    ],
    "patterns" : [ 
        "[0-9]+", 
        "[0-9]+\\.[0-9]+"
    ],
    "confidence" : 0.95
    "splitMatch": false,
	"literal": false,
	"caseInsensitive": true
}

Notes

  1. Multiple patterns can have the same entry.
  2. Additional fielded data can be added to the record.
    • As needed by downstream processes.

Fields

  • id ( type=string | required ) - Identifies the entity by unique ID. This identifier must be unique across all entries (across all dictionaries).
    • Typically, this is an identifier with meaning to the larger application that is using the Language Processing Toolkit.
  • tags ( type=string array | required ) - The list of semantic tags that will be added to the interpretation graph whenever any of the patterns are matched.
    • These will be added to the interpretation graph with the SEMANTIC_TAG flag.
  • patterns ( type=string array | required ) - A list of patterns to match in the content.
  • literal ( type=string | default=false | optional ) - When this flag is specified then the input string that specifies the pattern is treated as a sequence of literal characters. Metacharacters or escape sequences in the input sequence will be given no special meaning.
  • caseInsensitive ( type=boolean | default=true | optional ) - Set to true if the pattern is not case sensitive.
  • spliMatch ( type=boolean | default=false | optional ) - Indicates if the partialmatch will create a regex tag even if a full match was not met.
  • confidence ( type=double | optional ) - Specifies the confidence level of the entity, 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 entry will be encountered randomly.

Other Optional Fields

  • display (optional, string) - What to show the user when browsing the entity.
  • context (optional, object) - A context vector that helps disambiguate the entity from others with the same pattern.
    • Format TBD, but probably a list of weighted words, phrases and tags.


  • No labels