You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
« Previous
Version 22
Next »
Looks up matches to regular expressions in a dictionary across multiple tokens and then tags the match with one or more semantic tags as an alternative representation. For a simple regex expression, a match only needs to occur against a singe token. Simple Regex Stage is recommended.
Operates On: Lexical Items with TOKEN flag
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
| optional
)
- The resource that contains the pattern database.
- See below for the format.
-
maxLength ( type=integer
| default=25
| optional
)
- The max length of text to test for regex. The 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 reached.
-
caseInsensitive ( type=boolean
| default=true
| optional
)
- If true, all regex will be process as case insensitive.
{
"type":"RegexPattern",
"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 numbers "[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}]--------------^
Output Flags
Lex-Item Flags
- SEMANTIC_TAG - Identifies all lexical items that are semantic tags.
- PROCESSED - Placed on all tokens composing the semantic tag.
Vertex Flags:
Resource Data
The regex pattern must have a "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 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:
{
"_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 ( type=string
| required
)
- Identifies the entity by unique ID. This identifier must be unique across all entries (across all dictionaries).
- Typically, this identifier has meaning to the larger application that is using the Language Processing Toolkit.
-
tags ( type=string array
| required
)
- The list of semantic tags to add 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 ( type=string array
| required
)
- A list of patterns to match in the content.
-
splitMatch ( type=boolean
| default=false
| optional
)
- Indicates whether or not 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 randomly encountered.
Other, Optional Fields
-
display ( type=string
| optional
)
- What to show the user when browsing the entity.
-
context ( type=string
| optional
)
- A context vector that can help disambiguate the entity from others with the same pattern.
- Format TBD, but probably a list of weighted words, phrases and tags.