You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
« Previous
Version 12
Next »
Looks up matches to regular expressions in a dictionary and then tags the match with one or more semantic tags as an alternative representation(s).
Operates On: Lexical Items with TOKEN flag
Configuration Parameters
- patterns (string, required) - The resource which contains the pattern database
- See below for the format.
- maxLength (integer, optional) - The max length of text to test for regex, default is 25 characters.
- For each token, the stage will increase the size by adding tokens before and after, until a match or the 25 character limit is reach
- caseInsensitive (boolean, optional) - If true, all regex will be process as case insensitive (default = true)
- boundaryFlags (string, optional)
- The tokens to process must be inside two vertex mark with this flags (e.g ["TEXT_BLOCK_SPLIT"])
- skipFlags (string array, optional) - Flags to be skipped by this stage
- Tokens marked with this flags will be ignore by this stage, and no process will be performed.
- requiredFlags (string array, optional)
- Tokens need to have all the specified flags, in order to be processed
- debug (boolean, optional)
- Enable all debug log functionality of the stage, if any.
{
"type":"RegexPatternStage",
"patterns":"regex-provider:patterns",
"maxLength": 25,
"caseInsensitive": true
}
Example Output
In the following example, "What's your name" is in the dictionary as a regex for self-name, and there are also regex for number "[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}]--^
^-------------[{self-name}]--------------^ ^---------[{number}]----------^
^-------------[{self-name}]--------------^
^-------------[{self-name}]--------------^
^-------------[{self-name}]--------------^
Output Flags
Lex-Item Flags:
- SEMANTIC_TAG - Identifies all lexical items which are semantic tags.
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.
The only file which is absolutely required 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:
{
"_id" : "ca84",
"tags" : [
"number"
],
"patterns" : [
"[0-9]+",
"[0-9]+\\.[0-9]+"
],
"confidence" : 0.95
. . . additional fields as needed go here . . .
}
Notes
- Multiple patterns can have the same entry.
- Additional fielded data can be added to the record
- As needed by downstream processes.
Fields
- id (required, string) - 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 which is using the Language Processing Toolkit.
- tags (required, array of string) - The list of semantic tags which will be added to the interpretation graph whenever any of the patterns are matched.
- These will all be added to the interpretation graph with the SEMANTIC_TAG flag.
- patterns (required, array of string) - A list of patterns to match in the content.
- splitMatch (optional, boolean) - Indicates if the partialmatch will create a regex tag even if a full match was not met.
- confidence (optional, float) - 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 randomly encountered.
Other, Optional Fields
- display (optional, string) - What to show the user when browsing this entity.
- context (optional, object) - A context vector which can help disambiguate this entity from others with the same pattern.
- Format TBD, but probably a list of weighted words, phrases and tags.