Let’s examine the ways in which EBA boosts natural language understanding.
When conversing with EBA, you can mention a certain concept only once in a pattern in order for EBA to be able to recognize it in various future contexts. EBA records stable morphological and syntactical features for concept so it becomes identifiable thereafter.
Every pattern is automatically extended with synonyms using an embedded, extendable thesaurus. For example: Without any additional training, it’s enough to mention “merchandise” in order to get “product”.
Every sentence is automatically checked for common misspellings. Both the original version and the corrected version are considered as candidates in the reasoning process.
EBA detects the language for every sentence. Non-English input is automatically translated, and the translated version is considered as another candidate in reasoning process.
Concepts-based reasoning allows EBA to incorporate permutations without additional training. For example: :ActionDelete(data :Product) will consider “delete product”, “remove item”, “destroy merchandise”, etc.
Composability of actions and concepts allows EBA to deconstruct complex questions into simple building blocks, this is yet another dimension of permutation analysis you get without additional training.
Ontology-driven polymorphic actions and rules allow EBA to apply generic knowledge at scale. For example, consider the following rule: a hasAttribute :Size => :HowBig (a) -> :ActionShow (:SizeValue (:Relation (a))). With this rule, EBA can handle “how big”-style questions for any entity where ‘size’ is an attribute, across all connected agents.
NLU pipeline remains under the engineer’s control. You can enhance or even fully replace it. Here are some examples:
You can add/replace WordNet based synonyms with Word2Vec synonyms that are trained on a corpus of articles relevant to your business domain.
You can add/replace Duckling-based NL data extraction with Stanford NLP or IBM Watson NLU.
You can use IBM Watson NLC for high level intent classification and use its output in downstream reasoning.
You can even intercept the reasoning pipeline in the middle of a conversation and apply a completely different approach to handle NL questions. Check out our Riddle and Zork examples to see this in action!
Through these mechanisms, a single pattern will receive a boost factor as cardinality of the Cartesian product:
portable NL pattern ✕ auto synonyms ✕ spell checking ✕ auto translation ✕ permutations ✕ composability ✕ polymorphism