WO2019229768A1 - A bot engine for automatic dynamic intent computation - Google Patents

A bot engine for automatic dynamic intent computation Download PDF

Info

Publication number
WO2019229768A1
WO2019229768A1 PCT/IN2019/050414 IN2019050414W WO2019229768A1 WO 2019229768 A1 WO2019229768 A1 WO 2019229768A1 IN 2019050414 W IN2019050414 W IN 2019050414W WO 2019229768 A1 WO2019229768 A1 WO 2019229768A1
Authority
WO
WIPO (PCT)
Prior art keywords
embeddings
intent
matrix
word
words
Prior art date
Application number
PCT/IN2019/050414
Other languages
French (fr)
Inventor
Sanjeev THOTTAPILLY
Animesh SAMUEL
Original Assignee
Thottapilly Sanjeev
Samuel Animesh
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Thottapilly Sanjeev, Samuel Animesh filed Critical Thottapilly Sanjeev
Publication of WO2019229768A1 publication Critical patent/WO2019229768A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/58Use of machine translation, e.g. for multi-lingual retrieval, for server-side translation for client devices or for real-time translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/247Thesauruses; Synonyms

Definitions

  • This invention relates to the field of computer networks.
  • this invention relates to a hot engine for dynamic intent computation.
  • bots are computer programs which perform automated tasks.
  • these messaging systems have enabled bots which are intelligent bots capable of improving computer process and further capable of applying intelligence to defined tasks in order to cause some translational effect associated nodes in the network of the messaging system.
  • An object of the invention is to provide a system, method, and bot engine to enhance user experience.
  • Another object of the invention is to provide a system, method, and bot engine to accurately identify at least an intent of input subject matter from a user.
  • Yet another object of the invention is to provide a system, method, and bot engine to robustly identify at least an intent of input subject matter from a user.
  • Still another object of the invention is to provide a system, method, and bot engine to quickly identify at least an intent of input subject matter from a user.
  • a method for communicating with a bot engine with automatic dynamic intent computation said bot engine connected to a plurality of nodes, said method comprising the steps of:
  • word embeddings and character embeddings per parsed text / data, using a training corpus node, on a training corpus, said word embeddings and said character embeddings being an embeddings’ matrix of index vectors with respect to feature vectors; employing a neural network node to input word embeddings and character embeddings to output a concatenated embeddings’ matrix of word embeddings and character embeddings;
  • an intent-based network of nodes said network comprising channel paths provided to correspond with the bot engine, said intent-based network of nodes being dynamically computed pertinent output per every parsed input text / data for facilitating full-duplex, intent-based, communication channel between a natural user and a bot engine based on said second intent.
  • said method comprises a step of labeling each of said second intent.
  • said method comprises a step of applying intent hook and intent skipper (315) to said second intent vis-a-vis said first set of intents to check if intent has changed
  • a bot engine for automatic dynamic intent computation comprising:
  • a parser configured to parse input subject matter to provide a parsed structured tree network of nodes, of an input query, said parser comprising a keyword classifier configured to capture keywords from input subject matter and to classify said captured keywords based on pre-defined classification parameters; an NLP extraction module, through an NLP node, configured to act on parsed input subject matter to identify features (focus word feature, attribute word feature, named entity relationship feature, common sense path feature, part-of- speech tags);
  • embeddings configurator configured to represent captured keywords, from said input subject matter, in numeral format in terms of its constituent extracted features (focus word feature, attribute word feature, named entity relationship feature, common sense path feature, part-of-speech tags);
  • a dependence tree configurator configured to define structural relationship between different words in parsed input subject matter in order to output at least focus words, at least attribute words, at least named entity relationship words, at least common sense paths;
  • a dynamic intent transitioner configured to effectively transition between intents of the parsed input subject matter, said dynamic intent transitioner comprising an intent skipper configured to skip or omit an identified intent based on pre-defined parameters, said dynamic intent transitioner comprising an intent hook configured to hook at least an intent for a parsed input subject matter until a user does not provide or alter information required by said engine;
  • an output node configured to output a full-duplex, intent-based, communication channel between a natural user and a bot engine based on intent.
  • said parser comprising a translator to receive input subject matter in any language and to translate the input subject matter as configured by the system.
  • said embeddings configurator being configured to process word embeddings created on training data for pre-configured languages to represent keywords in a numerical form, characterised in that, said word embeddings being vectors of [m x n] where m represents number of words and n represents the number of features tuned to represent a single word, where a first axis defines an index of the word and a second axis defines its features.
  • said embeddings configurator being configured to process character embeddings in terms of vectors of [a x b] where a represents number of characters and b represents the number of features tuned to represent a single character, where a first axis defines an index of the word and a second axis defines its features.
  • said embeddings configurator being configured to process sentence embeddings formed by taking representation of a word from a word embedding matrix and representation of a character from a character embedding matrix and combing said word representation and said character representation to provide a concatenated matrix.
  • said NLP extraction module comprising a POS (part of speech) tagger configured to find out POS tags for words in parsed input subject matter.
  • said dependence tree configurator comprises a focus extractor configured to pin point at least a focus word from the parsed input subject matter.
  • said dependence tree configurator comprises a focus extractor configured to pin point at least a focus word from the parsed input subject matter, characterised in that, features used to train are word embeddings, parts of speech tags, Named Entity Relationship.
  • said dependence tree configurator comprises an attribute identifier configured to identify attribute words from the parsed input subject matter.
  • said dependence tree configurator comprises an attention mechanism used to generate a score with a softmax function giving a confidence score of an attribute being present on not in a current input.
  • said dependence tree configurator comprises an attribute identifier configured to identify attribute words from the parsed input subject matter, characterised in that, features used to train are word embeddings, parts of speech (POS) tags, Named Entity Relationship.
  • said dependence tree configurator comprises an acronyms substitutor configured to identify acronyms from the parsed input subject matter and to fetch substitutive full words correlative to the identified acronyms from a pre-fed acronyms vocabulary database.
  • said dependence tree configurator comprises an synonyms substitutor (SS) configured to identify synonyms from the parsed input subject matter and to fetch substitutive full words correlative to the identified synonyms from a pre-fed synonyms vocabulary database.
  • SS synonyms substitutor
  • said dependence tree configurator comprises a dynamic feature extractor (DFE) configured to extract NER (named entity relationship) words from the parsed input subject matter.
  • said dependence tree configurator comprises a dynamic feature extractor configured to extract NER (named entity relationship) words from the parsed input subject matter, characterised in that, features used to train are word embeddings, character embeddings, part-of- speech tags; to determine a class label of the keyword and a confidence score.
  • said dependence tree configurator comprises a common sense extractor (CSE) configured to extract common sense for all words from the parsed input subject matter other than stop words and most frequently used words from a corpus.
  • CSE common sense extractor
  • focus word embeddings are embeddings where representation is only taken where the feature words are present; rest of everything is masked and has a value 0.0.
  • said engine comprising a selector to resolve ambiguities in the parses input based subject matter once the subject matter is processed.
  • Ambiguity is defined in terms of options provided to a user with the selector prompting the user to select at least one option from the options.
  • FIGURE 1.1 illustrates a schematic of a conversational intent-based function of a bot engine depicting a first scenario where determined intent is of a first type
  • FIGURE 1.2 illustrates a schematic of a conversational intent-based function of a bot engine depicting a first scenario where determined intent is of a second type
  • FIGURE 1.3 illustrates a schematic of a conversational intent-based function of a bot engine depicting a first scenario where determined intent is of a third type
  • FIGURE 2 illustrates a schematic of the system (100) of this invention.
  • FIGURE 3 illustrates a schematic block diagram from input to output.
  • a bot engine for dynamic intent computation.
  • a network of nodes is defined to achieve an output or a purpose.
  • the configuration of these nodes is such that for each and every input, an output that is linearly causal to the input based on the processing parameters is defined. This is static in nature.
  • node is defined as a connected object or device or application or data in a network.
  • a node is defined by parameters such as its position, behaviour, and value.
  • a node’s position and value defines the network behaviour.
  • a node’s position defines its relativity with connected nodes and cumulatively defines the network behaviour.
  • network is defined to mean a collection of nodes connected to each other. This connection may change based on determined / computed intent. This connection is by way of “channels” which, together with the nodes, form a network of nodes.
  • an“intent” for the subject matter of this invention can be meant to understand a weighted and / or scored set of aligned nodes in a network of nodes which form a specific hierarchical pattern so as to form a linked pathway, of channels, towards an output which is most correlative to the input.
  • the term,“intent” is further defined as a vector which assigns a specific behaviour, weight, direction, and associative capabilities to a node which means that the node’s position in a network is defined, a node’s association (“channel” to be followed) with its connected node is defined, a node’s relative position relative to associated nodes is defined, a node’s input is defined (thereby defining behaviour), and a node’s output is defined (thereby defining behaviour) by this intent vector.
  • a rule engine may define such intent vectors as outputs.
  • a“node” is defined by means of at least an intent vector.
  • channels is defined to mean connections between nodes. These channels form pathways which, essentially, lead to shape- shifting of the network so that based on“intent”, the network architecture changes and the same set of inputs may cause a different intent-specific ouput.
  • dynamic intent computation is defined as a mechanism which derives determined / computed intent based on user inputs and also based on a pre-defined set of rules to understand the intent.
  • the manner in which what set of rules is used at what point / node in the architecture forms the inventive concept of this invention.
  • a feed- back based full-duplex communication can be initiated by this bot engine, which is connected to a plurality of nodes (defined below), between a human user and an automated agent. While a primary intent is based on input data and context, a subsequent intent is based on a primary intent as well as additional input to this system.
  • the final output is to achieve an“intent-based network of nodes” comprising intent-based channels connecting nodes, dynamically.
  • determination / computation of intent is important. Based on this determined / computed intent, channels are formed between nodes and, thus, a new network of nodes with new intent-based channels, for each conversation, if formed based on determined / computed intent.
  • FIGURE 1.1 illustrates a schematic of a conversational intent-based function of a bot engine depicting a first scenario where determined intent is of a first type.
  • a first input (i/p - 1) results into a first output (o/p - 1) when processed by the bot engine (BE) of this invention.
  • a first network of nodes is defined by the channels formed by the input nodes till the output nodes in order to process full-duplex communication between the input nodes and output nodes.
  • a user Based on the first output (o/p - 1), a user inputs a second input (i/p - 2) to the bot engine (BE).
  • This second input (i/p - 2) has an inherent first type of first feedback (f/b - 1.1) which is fed to the bot engine (BE) which determines the degree of causality or intent between inputs and outputs and subsequent inputs and subsequent outputs.
  • a second network of nodes is defined by intent-based channels formed by the input nodes till the output nodes in order to process full- duplex communication between the input nodes and output nodes.
  • the user inputs a third input (i/p - 3) to the bot engine (BE).
  • This third input (i/p - 3) has an inherent first type of second feedback (f/b - 2.1) which is fed to the bot engine (BE) which determines the degree of causality or intent between inputs and outputs and subsequent inputs and subsequent outputs.
  • a third network of nodes is defined by intent-based channels formed by the input nodes till the output nodes in order to process full-duplex communication between the input nodes and output nodes.
  • the user inputs a fourth input (i/p - 4) to the bot engine (BE).
  • This fourth input (i/p - 4) has an inherent first type of third feedback (f/b - 3.1) which is fed to the bot engine (BE) which determines the degree of causality or intent between inputs and outputs and subsequent inputs and subsequent outputs. This is how a full-duplex, intent based, network-shape-shifting, conversation is achieved.
  • FIGURE 1.2 illustrates a schematic of a conversational intent-based function of a bot engine depicting a first scenario where determined intent is of a second type.
  • a first input (i/p - 1) results into a first output (o/p - 1) when processed by the bot engine (BE) of this invention.
  • a first network of nodes is defined by the channels formed by the input nodes till the output nodes in order to process full-duplex communication between the input nodes and output nodes.
  • a user Based on the first output (o/p - 1), a user inputs a second input (i/p - 2) to the bot engine (BE).
  • This second input (i/p - 2) has an inherent second type of first feedback (f/b - 1.2) which is fed to the bot engine (BE) which determines the degree of causality or intent between inputs and outputs and subsequent inputs and subsequent outputs.
  • a different second output (o/p - 2.1) which not only considers the second input (i/p - 2) but also considers the second type of first feedback (f/b - 1.2), thereby causing to create a second intent.
  • a fourth network of nodes is defined by intent-based channels formed by the input nodes till the output nodes in order to process full-duplex communication between the input nodes and output nodes.
  • the user inputs a third input (i/p - 3) to the bot engine (BE).
  • This third input (i/p - 3) has an inherent second type of second feedback (f/b - 2.2) which is fed to the bot engine (BE) which determines the degree of causality or intent between inputs and outputs and subsequent inputs and subsequent outputs.
  • a fifth network of nodes is defined by intent-based channels formed by the input nodes till the output nodes in order to process full-duplex communication between the input nodes and output nodes.
  • the user inputs a fourth input (i/p - 4) to the bot engine (BE).
  • This fourth input (i/p - 4) has an inherent second type of third feedback (f/b - 3.2) which is fed to the bot engine (BE) which determines the degree of causality or intent between inputs and outputs and subsequent inputs and subsequent outputs. This is how a full-duplex, intent based, network- shape- shifting, conversation is achieved.
  • FIGURE 1.3 illustrates a schematic of a conversational intent-based function of a bot engine depicting a first scenario where determined intent is of a third type.
  • a first input (i/p - 1) results into a first output (o/p - 1) when processed by the bot engine (BE) of this invention.
  • a first network of nodes is defined by the channels formed by the input nodes till the output nodes in order to process full- duplex communication between the input nodes and output nodes.
  • a user Based on the first output (o/p - 1), a user inputs a second input (i/p - 2) to the bot engine (BE).
  • This second input (i/p - 2) has an inherent third type of first feedback (f/b - 1.3) which is fed to the bot engine (BE) which determines the degree of causality or intent between inputs and outputs and subsequent inputs and subsequent outputs.
  • a sixth network of nodes is defined by intent-based channels formed by the input nodes till the output nodes in order to process full-duplex communication between the input nodes and output nodes.
  • the user inputs a third input (i/p - 3) to the bot engine (BE).
  • This third input (i/p - 3) has an inherent third type of second feedback (f/b - 2.3) which is fed to the bot engine (BE) which determines the degree of causality or intent between inputs and outputs and subsequent inputs and subsequent outputs.
  • a seventh network of nodes is defined by intent-based channels formed by the input nodes till the output nodes in order to process full-duplex communication between the input nodes and output nodes.
  • the user inputs a fourth input (i/p - 4) to the bot engine (BE).
  • This fourth input (i/p - 4) has an inherent third type of third feedback (f/b - 3.3) which is fed to the bot engine (BE) which determines the degree of causality or intent between inputs and outputs and subsequent inputs and subsequent outputs. This is how a full-duplex, intent based, network- shape- shifting, conversation is achieved.
  • FIGURE 2 illustrates a schematic of the system (100) of this invention.
  • this bot engine may be a messenger application with a parser (P) configured to parse input subject matter (IP) to find out intent of the input subject matter (query).
  • P parse input subject matter
  • IP input subject matter
  • the parser (P) is one of the nodes of this system and method.
  • a user inputs a query or text / data using an input node which is then fed to the parser (P).
  • the query is corrected / adjusted by using this parser.
  • the output of this parser is a parsed structured tree network of nodes, of the input query. This is essential for extracting multiple features (e.g. focus words, attribute words, NER words, common-sense attributes) by a NLP extraction module (NLP) and further to achieve a dependence tree network of nodes by a dependence tree configurator (DTC).
  • NLP NLP extraction module
  • a keyword classifier is configured to capture keywords from input subject matter and to classify the keywords based on pre- defined classification parameters, at a keyword classification node.
  • the keyword classifier is an Artificial Neural Networks’ based classifier. Training data is entered into this classifier in order to extract potential intents from the input data.
  • the system comprises a translator (T) to receive input subject matter in any language and to translate the input subject matter as configured by the system. Multiple languages are supported: local languages like Hindi, Marathi, Tamili, Punjabi is possible with foreign languages like Spanish, German, French. Language is not a barrier, for this system, as user can switch the language used in a conversation; i.e. previous query asked may be in English and the language for the current query may be other language for e.g. Hindi / Spanish / Arabic.
  • the bot engine of this invention, is trained on training data where the query and its intent are defined in multiple languages and the bot engine (BE) is configured.
  • Word embeddings (WE) is learnt during the training process and multiple languages can be used this way by the user to communicate with the bot.
  • a translator (T) module irrespective of the language used, translates the sentence in an embedding (numerical form of sentence).
  • the bot engine uses these embedding rather than the keywords itself to make predictions. Embeddings are fed to the model to determine intent of the query.
  • word embeddings are created on the training data, training corpus node, for pre-configured languages to represent keywords in a numerical form.
  • Word embeddings are vectors of [1 x 300] where 300 represents the number of features tuned to represent a single word. If the vocabulary consists of 50,000 words, then the word embedding will be a representation of [50000 x 300] matrix, where a first axis defines an index of the word and a second axis defines its features.
  • Representation of words is tuned during the training process so that the bot engine is able to compute / determine a correct intent.
  • Confidence score if obtained between 0 to 1 defines the correctness of the intent. Training is done on the input data (training data set) in multiple epochs (i.e. multiple times, the same data is fed to the model at different time step) and error is back propagated and the keyword embeddings are tuned to minimize the error in the confidence score.
  • embeddings can be represented as an embeddings’ matrix of index vectors with respect to feature vectors.
  • word embedding matrix if there are 75,000 words in a vocabulary of training set, then word embedding matrix will be of shape [75,000 x No. of dimensions]. No. of dimension defines the word in each dimension (it can also be called as word feature). In at least one embodiment, this dimension is 300. Therefore, the word embedding matrix is [75,000 x 300]. Words which are similar to each other will share similar features and will come close to each other and words which are not similar will fall apart from each.
  • character embeddings are vectors of [1 x 8] where 8 represents the features for a single character.
  • [No. of character words x 8] matrix is the representation matrix, where the first axis defines the index of the character and second axis defines its features.
  • character embedding matrix will be of shape [75 x No. of dimensions].
  • No. of dimension defines the character in each dimension (it can also be called as character feature). In at least one embodiment, this dimension is 8. Therefore, the character embedding matrix is [75 x 8]. Characters which are more often near to each other in a sequence will be close to each other and vice versa.
  • sentence embedding is formed by taking representation of a word from the word embedding matrix and representation of a character from character embedding matrix and combing both.
  • Sentence I need to book a ticket from Pune to Mumbai
  • Character embedding flows through a CNN and a projected matrix is concatenated with Word embedding.
  • a limit of how many words can be present in a sentence is kept and the matrix is formed for a sentence which is of size [No. of words limit x 300]. If the sentence has more than the limit words then those words are not considered and if the sentence has less no of words then the remaining space is padded with a special symbol [PAD]
  • a keyword classifier comprises an NLP extraction module (NLP), through an NLP node, configured to act on text based input subject matter. From the parsed structured tree network of nodes, the following features are extracted, using standard natural language extraction mechanisms:
  • the NLP extraction module resolves Coreference with a previous question asked by the same user (whether the current query has some pronouns which needs to be resolved with the help of previous conversation).
  • POS part of speech tagger
  • Finding accurate parts of a speech is one of the features used by an intent classifier to define intents from a training data set.
  • a tag is represented with extracted keywords, from the keyword classifier (KC), in the question.
  • KC keyword classifier
  • These features are also used in other feature extractions like Named Entity, Focus Words, Attributes, Corefence Resolution, Dependency Parse Tree (i.e. dependence tree network of nodes); all listed above.
  • Named Entity for example, uses a POS tag as the main features as the representation of keywords with the tags in sequence helps it to point to an entity with its appropriate class.
  • a dependency parse tree (i.e. a dependence tree network of nodes) is formed for the input through input node which links keywords together with a relationship; the relationship being subject, object, predicates etc.
  • a channel / links / bond determines the relationship in the keywords and helps the bot engine to understand semantics and context of the associated words.
  • dependence tree configurator focus words (FW) and attributes (AT) are extracted which are used by the bot engine to determine the intent and actions to be taken by the bot engine.
  • Corefence resolution for example, uses dependence tree configurator, as a key feature while training and determining correctly resolved pronouns with the entity link / channel.
  • the dependence tree configurator comprises a focus extractor (FE) configured to pin point at least a focus word (FW) from the text based subject matter.
  • FE focus extractor
  • FW focus word
  • Focus extractors are used as a feature by the bot engine to determine exactly what the input is all about. It is also used to determine the scope of an input.
  • the bot engine of this invention, needs to determine whether the input is within the scope of this hot engine to answer or out of scope for the hot engine.
  • An attention mechanism is used to focus more on the given keywords in order to determine the focus word. For example, while reading a paragraph or quickly searching for an answer to a query, humans tends to put more focus on some part rather reading the complete paragraph text; this is known as attention (A).
  • attention attention
  • attention attention
  • attention attention
  • attention attention
  • Features used to train are word embeddings + parts of speech (POS) tags + Named Entity Relationship (NER) + dependence tree configurator (DTC).
  • the dependence tree configurator comprises an attribute identifier (AI) configured to identify attribute words of a text based input subject matter.
  • the attribute identifier considers focus words whilst identifying attributes of these identified focus word(s). The attribute, therefore, become data resident on an attribute node.
  • a correlative link i.e. a correlative channel, is established between the extracted focus node and the identified attribute node.
  • atribute entities are determined which say what attributes are asked about in a given message. Attributes may or may not be present depending on the type of input to the bot engine.
  • the attention mechanism is used to generate a score with a softmax function (SF) giving the confidence score of an attribute being present on not in a current input.
  • SF softmax function
  • Features used to train are word embeddings + Focus words (FW) + parts of speech (POS) tags + Named Entity Relationship (NER) + dependence tree configurator (DTC).
  • the dependence tree configurator comprises an acronyms substitutor (AS) configured to identify acronyms (at the stage of parsing) in the text based input subject matter and to fetch substitutive full words correlative to the identified acronyms from a pre-fed acronyms vocabulary database.
  • AS acronyms substitutor
  • the acronym therefore, become data resident on an acronym node e.g. How many SL do I get a year
  • AS substitutor
  • the dependence tree configurator comprises a synonyms substitutor (SS) configured to identify synonyms (at the stage of parsing) of extracted focus words in the text based input subject matter and to fetch corretlative synonyms to the extracted focus words from a pre-fed synonyms vocabulary database.
  • the synonym therefore, become data resident on a synonym node.
  • Synonyms from an input is determined and appropriate synonym is chosen from a vocabulary and a user’s input is modified.
  • synonyms are substituted from the vocabulary on which the bot engines are trained at the time of training. This phenomenon improves the understanding of a query. More confidence score is obtained in the intent classification task by this method.
  • the dependence tree configurator comprises a dynamic feature extractor (DFE) configured to extract NER (named entity relationship) words from the text based input subject matter.
  • DFE dynamic feature extractor
  • the extracted feature list comprises dates, city, country, company name, person’s name, price, mobile number, email identities, domain names, and the like. Dynamic entities like employee identities which could be 16 digit alpha-numeric characters can also can be extracted once defined.
  • Predefined entities as well as use-case defined entities are extracted by this extractor. If a user mentions his name or address or his phone number or an order id etc., this extractor extracts and uses these entities for determining the entities asks the user and the entities given to the user is of the same form. In order to get the details of the user, some verification needs to be done and for that, a user’s detail is asked by the bot engine. In order to verify the data provided by the user, the dynamic feature extractors are trained. Correct features are used to communicate with background sendees to get details from the database.
  • the dynamic feature extractor is configured to identify a plurality of different entities trained on a large corpus. According to an exemplary embodiment, up to 128 different entities are trained on a large corpus. User-defined entities can also be trained depending on use-case scenarios.
  • entities are marked on the platform and label for the entities is provided and these marked entities are used to train the model which are known as user defined entities.
  • fine tuning type of transfer learning
  • new entities are trained on the already available multiple (e.g. 128) entities pre-trained model. BIO type of representation is created of the training data, where B is the Beginning part of the entity, I is the Inside part of the entity and O is the non-entity.
  • Model uses embedding (word + character) + part of speech (POS) tags + dependence tree configurator (DTC) features together to determine the class label (e.g. movie, genre, city, location, country, dates, etc; as seen in the example below) of the keyword and the confidence score.
  • TWO rales are used to determine the entity starting and end are: 1. Entities cannot be more than five words long; and
  • Second prediction pointing as the end of the entity should be always greater than the first prediction.
  • the Godfather is a 1972 American crime film directed by Francis Ford Coppola and produced by Albert S. Ruddy , based on Mario Puzo 's best - selling novel of the same name .
  • the dependence tree configurator comprises a common sense extractor (CSE) configured to extract common sense for all the words in an input other than stop words and most frequently used words from the corpus.
  • Common Sense has two nodes with a relationship in between the two nodes and can have multiple levels.
  • the common sense extractor determines common sense as follows:
  • the system comprises a verifier (V) configured to identify verified sources in response to the input subject matter. This verifies applies weightage and scoring to the responses. The verifier determines if the response can be fetched generically or requires domain expertise. The verifier acts in real-time.
  • V verifier
  • the verifier (V) module In order to respond to a user’s input, the verifier (V) module is trained to determine a correct source of response / output that is to be provided. The verifier, based on the intent, verifies the source and discards other sources of responses / outputs based on the score.
  • Focus word embedding Attribute word embedding, Named Entity embedding, Common Sense embedding are the embeddings where the representation is only taken where the feature words are present; rest of everything is masked and has a value 0.0.
  • the system comprises a selector (S) to resolve ambiguities in the input based subject matter once the subject matter is processed.
  • Ambiguity is defined in terms of options provided to a user with the selector prompting the user to select at least one option from the options. These options may be presented in the form interactive hyperlinked cards
  • Interactive cards are also used to provide a form to the end user to fill.
  • Feedback forms or collecting information from the user can be done with the help of interactive cards.
  • Interactive cards can be converted into auto conversation mode, where the form is filled with an interactive conversation.
  • the selector module asks the user to provide more information by presenting user options to select and determines the correct intent in order to proceed.
  • the system comprises a dynamic intent transitioner (DIT) configured to effectively transition between intents of the input subject matter.
  • DIT dynamic intent transitioner
  • the system can land up on any state in a hierarchy. However, this system makes an intelligent decision based on the input subject matter. Hierarchy of intents can be created in the system.
  • first-level intent can be book a ticket
  • second-level intent can be asking number of passengers
  • third-level intent can be asking for sources and destinations
  • fourth-level intent can be asking for date of travel, and so on and so forth. While the user can land-up on any state in the hierarchy based on what is asked.
  • the system makes an intelligent decision based on the input subject matter to choose the level of intent and provide outputs (converse) after that choice.
  • a user while communicating with the bot engine of this invention, may switch intents and may not go with the flow.
  • the bot engine of this invention, is configured keep the references and allow a user to change intent and uses the saved references so that the bot engine does not keep repeating and conversing the same thing, over and over again, with the user which was already done in the past. Entities asked to the user and entities extracted by the bot engine are saved and the flow does not need to start from the very beginning. With this, an absolute human- like interaction with the bot engine is possible; without this, the bot-engine works like a computer program and not like the Artificial Intelligence platform.
  • the system of this invention, comprises an authenticator configured to authenticate users to use this system. Context and relevance can be adjusted and / or attributed to input subject matter for parsing and processing based on authentication.
  • the dynamic intent transitioner (DIT), of this invention comprises an intent skipper (IS) configured to skip or omit an identified intent based on pre-defined parameters.
  • pre-defined parameters may be user-type. E.g. if the end user is a retailer, then different set of intents can be used, for a given input subject matter as opposed to a consumer.
  • the intent skipper is configured to skip an intent, sometimes based, on the details of the user interacting with the bot engine. Some details may already be provided by the user or is present with the bot engine based on user identification. Intent skipper determines the intent to be skipped as the same information is already present with the bot.
  • the dynamic intent transitioner (DIT), of this invention comprises an intent hook (IH) configured to hook at least an intent for a given subject matter until a user does not provide or alter information required by the system of this invention.
  • IH intent hook
  • the system comprises an output node configured to output a full-duplex, intent-based, communication channel between a natural user and a bot engine based on intent.
  • Intent Output Matrix Intent output vectors are one hot vectors with dimension [1 x No. of output Intents]
  • the output matrix would be [1 x 25]
  • FIGURE 3 illustrates a schematic block diagram from input to output.
  • CE is learnt on a training corpus.
  • Word embeddings are the vectors of [1 x 300] where 300 represents the features for a single word.
  • [No. of vocab words x 300] matrix is the representation matrix, where the first axis defines the index of the word and second axis defines its features.
  • Character embedding are the vectors of [1 x 8] where 8 represents the features for a single character.
  • [No. of character words x 8] matrix is the representation matrix, where the first axis defines the index of the character and second axis defines its features.
  • Sentence embedding is formed by taking representation of a word from the word embedding matrix and representation of a character from character embedding matrix and combing both.
  • FW Focus word embeddings
  • Matrix data from the training corpus node is used along with parsed input text / data in order to assign weights to extracted focus words in said embeddings’ matrix to obtain a focus- weighted embeddings’ matrix.
  • Word Embedding (WE) is substituted where the words are present and all the features in word embedding are 0.0 wherever it is absent.
  • Attribute word embeddings are extracted and used.
  • Matrix data from the training corpus node is used along with parsed input text / data in order to assign weights to extracted attribute words in said embeddings’ matrix to obtain a attribute-weighted embeddings’ matrix.
  • Word Embedding (WE) is substituted where the words are present and all the features in word embedding are 0.0 wherever it is absent.
  • NER Named entity word embeddings
  • Matrix data from the training corpus node is used along with parsed input text / data in order to assign weights to extracted named-entity-relationship words in said embeddings’ matrix to obtain a named-entity -relationship- weighted embeddings’ matrix.
  • Word Embedding (WE) is substituted where the words are present and all the features in word embedding are 0.0 wherever it is absent.
  • Common-sense words path embedding are extracted and used.
  • Matrix data from the training corpus node is used along with parsed input text / data in order to assign weights to extracted common-sense words in said embeddings’ matrix to obtain a common-sense-weighted embeddings’ matrix.
  • Word Embedding is substituted for a complete path.
  • CNN convolution neural network
  • WE word embedding
  • CE character embedding
  • Output of CNN is a concatenated embeddings’ matrix of word embeddings (302) and character embeddings (303). Adding character embedding solves the problem on unseen words as the characters in the unseen words are known.
  • BiLSTMs Bidirectional Long-Short Term Memory nodes are fed with said focus- weighted embeddings’ matrix, said attribute- weighted embeddings’ matrix, said named-entity-relationship- weighted embeddings’ matrix, said common-sense weighted embeddings’ matrix in order to provide a first set of intents, said first set of intent being a matrix of intents comprising weight-assigned intent vectors for said input text / data.
  • An output layer is generated which is combined with Focus word embedding (305), Attribute embedding (306), Named entity word embedding (307), and common sense path embedding (308).
  • Focus word embedding (305), Attribute embedding (306), Named entity word embeddings (307), and common sense path embeddings (308); are used as a separate feature and with the help of self-attention (310), LSTM output is combined with the masked Focus word embedding, Attribute embedding, Named entity word embeddings, and Common sense path embedding. Training is done over multiple epochs and classification error is calculated which is back propagated to the model over a different time step to learn and tune the model to correctly classify the intent. Commonsense (CS) is used to semantically improve the score of intent having a strong relation with the query and decrease the score where relationship is not present. Based on user feedback, model is fine-tuned with negative feedback and fine tuning is done to correct the wrong identified intents at a regular intervals.
  • CS Commonsense
  • 311 Self- Attention (SA) - determines where attention should be for that input.
  • An attention vector is defined where attention (311) should be based on said focus- weighted embeddings’ matrix, said attribute- weighted embeddings’ matrix, said named-entity-relationship-weighted embeddings’ matrix, said common-sense weighted embeddings’ matrix;
  • 313- Normalisation (softmax method) is done in order to normalize every value to a range between 0 and Iso that only vector values remain.
  • DIT Dynamic Intent Transitional
  • IH intent hook
  • IS is applied to the number of intents (314) to check if intent has changed and to output a dynamically computed pertinent output per every input (316).
  • Output is - outputting (316) an intent-based network of nodes, said network comprising channel paths provided to correspond with the bot engine, said intent-based network of nodes being dynamically computed pertinent output per every parsed (301) input text / data for facilitating full-duplex, intent-based, communication channel between a natural user and a bot engine based on said second intent.
  • the TECHNICAL ADVANCEMENT of this invention lies in providing an intelligent system and method which considers contexts, relevance, hierarchies to understand intent for input subject matter to provide real-time accurately relevant and context- defined outputs. Furthermore, this invention allows insertion of new intent(s), dynamically, in an existing structure, without affecting existing structures. While this detailed description has disclosed certain specific embodiments for illustrative purposes, various modifications will be apparent to those skilled in the art which do not constitute departures from the spirit and scope of the invention as defined in the following claims, and it is to be distinctly understood that the foregoing descriptive matter is to be interpreted merely as illustrative of the invention and not as a limitation.

Abstract

A method for communicating with a bot engine with automatic dynamic intent computation, said method comprising: parsing (301) input text / data; identifying word embeddings (302) and character embeddings (303); obtaining a concatenated embeddings' matrix; obtaining a focus-weighted embeddings' matrix, attribute-weighted embeddings' matrix, named-entity-relationship-weighted embeddings' matrix, common-sense weighted embeddings' matrix; feeding a Bidirectional Long-Short Term Memory (310) to provide a first set of intents being a matrix of intents comprising weight-assigned intent vectors; determining an attention vector; multiplying (312) said intent vectors, with attention vector to obtain a second intent vector; outputting (316) an intent-based network of nodes, comprising channel paths to correspond with bot engine, said intent-based network of nodes being dynamically computed pertinent output per every parsed (301) input text / data for facilitating full-duplex, intent-based, communication channel between a natural user and a bot engine based on said second intent.

Description

A BOT ENGINE FOR AUTOMATIC DYNAMIC INTENT COMPUTATION
FIEUD OF THE INVENTION:
This invention relates to the field of computer networks.
Particularly, this invention relates to a hot engine for dynamic intent computation.
BACKGROUND OF THE INVENTION:
Conventionally, the term, ‘hot’, has been used in the context of computational engines. Typically, bots are computer programs which perform automated tasks. In recent times, these messaging systems have enabled bots which are intelligent bots capable of improving computer process and further capable of applying intelligence to defined tasks in order to cause some translational effect associated nodes in the network of the messaging system.
With the evolution of smart computing systems including mobile computing systems and with the interfacing messaging systems on such computing and mobile systems, along with their ubiquitous deployments - users and organizations have been mobile in nature. This means that a user or an aspect of an organization can be accessed from any location and can also be monitored from any location.
With the advent of smart devices and such technological devices, human interaction is moving towards being guided by artificial intelligence and reduction in human labour. With the assistance of such technology, computational prowess can be used to enhance a user’s experience. OBJECTS OF THE INVENTION:
An object of the invention is to provide a system, method, and bot engine to enhance user experience.
Another object of the invention is to provide a system, method, and bot engine to accurately identify at least an intent of input subject matter from a user.
Yet another object of the invention is to provide a system, method, and bot engine to robustly identify at least an intent of input subject matter from a user.
Still another object of the invention is to provide a system, method, and bot engine to quickly identify at least an intent of input subject matter from a user.
SUMMARY OF THE INVENTION:
According to this invention, there is provided a method for communicating with a bot engine with automatic dynamic intent computation, said bot engine connected to a plurality of nodes, said method comprising the steps of:
parsing input text / data, at an input node a parsed structured tree network of nodes;
capturing and classifying constituent keywords, at a keyword classification node, from said parsed input text / data based on pre-defined classification parameters;
identifying word embeddings and character embeddings, per parsed text / data, using a training corpus node, on a training corpus, said word embeddings and said character embeddings being an embeddings’ matrix of index vectors with respect to feature vectors; employing a neural network node to input word embeddings and character embeddings to output a concatenated embeddings’ matrix of word embeddings and character embeddings;
extracting and representing focus word embeddings, using NLP extraction node, and using matrix data from said training corpus node, from the parsed input text / data in order to assign weights to extracted focus words in said embeddings’ matrix to obtain a focus-weighted embeddings’ matrix;
extracting and representing attribute word embeddings, using NLP extraction node , and using matrix data from said training corpus node, from the parsed input text / data in order to assign weights to extracted attribute words in said embeddings’ matrix to obtain an attribute-weighted embeddings’ matrix;
extracting and representing named entity relationship embeddings, using NLP extraction node, and using matrix data from said training corpus node, from the parsed input text / data in order to assign weights to extracted named-entity- relationship words in said embeddings’ matrix to obtain a named-entity- relationship- weighted embeddings’ matrix;
extracting and representing common- sense words embeddings, and using matrix data from said training corpus node, using NLP extraction node, from the parsed input text / data in order to assign weights to extracted common-sense words in said embeddings’ matrix to obtain a common-sense weighted embeddings’ matrix;
feeding at least a Bidirectional Long-Short Term Memory node with said focus- weighted embeddings’ matrix, said attribute- weighted embeddings’ matrix, said named-entity-relationship-weighted embeddings’ matrix, said common-sense weighted embeddings’ matrix in order to provide a first set of intents, said first set of intent being a matrix of intents comprising weight-assigned intent vectors for said input text / data; determining, an attention vector, in order to define where attention should be based on said said focus- weighted embeddings’ matrix, said attribute- weighted embeddings’ matrix, said named-entity-relationship- weighted embeddings’ matrix, said common-sense weighted embeddings’ matrix;
multiplying each of said intent vectors, from said first set of intents, with said attention vector in order to obtain a second intent vector;
normalising the values of said second intent vector in a pre-determined range;
outputting an intent-based network of nodes, said network comprising channel paths provided to correspond with the bot engine, said intent-based network of nodes being dynamically computed pertinent output per every parsed input text / data for facilitating full-duplex, intent-based, communication channel between a natural user and a bot engine based on said second intent.
Typically, said method comprises a step of labeling each of said second intent.
Typically, said method comprises a step of applying intent hook and intent skipper (315) to said second intent vis-a-vis said first set of intents to check if intent has changed
According to this invention, there is provided a bot engine for automatic dynamic intent computation, said engine comprising:
a parser configured to parse input subject matter to provide a parsed structured tree network of nodes, of an input query, said parser comprising a keyword classifier configured to capture keywords from input subject matter and to classify said captured keywords based on pre-defined classification parameters; an NLP extraction module, through an NLP node, configured to act on parsed input subject matter to identify features (focus word feature, attribute word feature, named entity relationship feature, common sense path feature, part-of- speech tags);
embeddings configurator configured to represent captured keywords, from said input subject matter, in numeral format in terms of its constituent extracted features (focus word feature, attribute word feature, named entity relationship feature, common sense path feature, part-of-speech tags);
a dependence tree configurator configured to define structural relationship between different words in parsed input subject matter in order to output at least focus words, at least attribute words, at least named entity relationship words, at least common sense paths;
a dynamic intent transitioner configured to effectively transition between intents of the parsed input subject matter, said dynamic intent transitioner comprising an intent skipper configured to skip or omit an identified intent based on pre-defined parameters, said dynamic intent transitioner comprising an intent hook configured to hook at least an intent for a parsed input subject matter until a user does not provide or alter information required by said engine; and
an output node configured to output a full-duplex, intent-based, communication channel between a natural user and a bot engine based on intent.
Typically, said parser comprising a translator to receive input subject matter in any language and to translate the input subject matter as configured by the system.
Typically, said embeddings configurator being configured to process word embeddings created on training data for pre-configured languages to represent keywords in a numerical form, characterised in that, said word embeddings being vectors of [m x n] where m represents number of words and n represents the number of features tuned to represent a single word, where a first axis defines an index of the word and a second axis defines its features.
Typically, said embeddings configurator being configured to process character embeddings in terms of vectors of [a x b] where a represents number of characters and b represents the number of features tuned to represent a single character, where a first axis defines an index of the word and a second axis defines its features.
Typically, said embeddings configurator being configured to process sentence embeddings formed by taking representation of a word from a word embedding matrix and representation of a character from a character embedding matrix and combing said word representation and said character representation to provide a concatenated matrix.
Typically, said NLP extraction module comprising a POS (part of speech) tagger configured to find out POS tags for words in parsed input subject matter.
Typically, said dependence tree configurator comprises a focus extractor configured to pin point at least a focus word from the parsed input subject matter.
Typically, said dependence tree configurator comprises a focus extractor configured to pin point at least a focus word from the parsed input subject matter, characterised in that, features used to train are word embeddings, parts of speech tags, Named Entity Relationship. Typically, said dependence tree configurator comprises an attribute identifier configured to identify attribute words from the parsed input subject matter.
Typically, said dependence tree configurator comprises an attention mechanism used to generate a score with a softmax function giving a confidence score of an attribute being present on not in a current input.
Typically, said dependence tree configurator comprises an attribute identifier configured to identify attribute words from the parsed input subject matter, characterised in that, features used to train are word embeddings, parts of speech (POS) tags, Named Entity Relationship.
Typically, said dependence tree configurator comprises an acronyms substitutor configured to identify acronyms from the parsed input subject matter and to fetch substitutive full words correlative to the identified acronyms from a pre-fed acronyms vocabulary database.
Typically, said dependence tree configurator comprises an synonyms substitutor (SS) configured to identify synonyms from the parsed input subject matter and to fetch substitutive full words correlative to the identified synonyms from a pre-fed synonyms vocabulary database.
Typically, said dependence tree configurator comprises a dynamic feature extractor (DFE) configured to extract NER (named entity relationship) words from the parsed input subject matter. Typically, said dependence tree configurator comprises a dynamic feature extractor configured to extract NER (named entity relationship) words from the parsed input subject matter, characterised in that, features used to train are word embeddings, character embeddings, part-of- speech tags; to determine a class label of the keyword and a confidence score.
Typically, said dependence tree configurator comprises a common sense extractor (CSE) configured to extract common sense for all words from the parsed input subject matter other than stop words and most frequently used words from a corpus.
Typically, focus word embeddings, attribute word embeddings, named entity relationship word embeddings, common sense embedding are embeddings where representation is only taken where the feature words are present; rest of everything is masked and has a value 0.0.
Typically, said engine comprising a selector to resolve ambiguities in the parses input based subject matter once the subject matter is processed. Ambiguity is defined in terms of options provided to a user with the selector prompting the user to select at least one option from the options.
BRIEF DESCRIPTION OF THE ACCOMPANYING DRAWINGS:
The invention will now be described in relation to the accompanying drawings, in which:
FIGURE 1.1 illustrates a schematic of a conversational intent-based function of a bot engine depicting a first scenario where determined intent is of a first type; FIGURE 1.2 illustrates a schematic of a conversational intent-based function of a bot engine depicting a first scenario where determined intent is of a second type; FIGURE 1.3 illustrates a schematic of a conversational intent-based function of a bot engine depicting a first scenario where determined intent is of a third type; FIGURE 2 illustrates a schematic of the system (100) of this invention; and
FIGURE 3 illustrates a schematic block diagram from input to output.
DETAILED DESCRIPTION OF THE ACCOMPANYING DRAWINGS: According to this invention, there is provided a bot engine (BE) for dynamic intent computation.
In a computer architectural environment, a network of nodes is defined to achieve an output or a purpose. The configuration of these nodes is such that for each and every input, an output that is linearly causal to the input based on the processing parameters is defined. This is static in nature.
However, intelligent systems beg these environments and, hence, networks to be more dynamic in nature. In other words, the same input should not always provide the same output; the same input may lead to a variety of outputs based on context understanding or ‘intent’ understanding. Upon understanding this context understanding or‘intent’ understanding, the network of nodes shape-shifts and aligns itself to form a variant output even if input is seemingly the same. This is dynamic in nature.
For the purposes of this invention, the term,“node” is defined as a connected object or device or application or data in a network. Typically, a node is defined by parameters such as its position, behaviour, and value. A node’s position and value defines the network behaviour. A node’s position defines its relativity with connected nodes and cumulatively defines the network behaviour.
For the purposes of this invention, the term,“network” is defined to mean a collection of nodes connected to each other. This connection may change based on determined / computed intent. This connection is by way of “channels” which, together with the nodes, form a network of nodes.
For the purposes of this invention, the term,“intent”, is defined to mean true and accurate representation of a query on subject matter. While it is to be understood that the subject matter may not comprise the most accurate syntax or the most accurate grammar or the most accurate choice of words or that the subject matter may not be the most articulate, it is still very important to understand the intent of the subject matter irrespective of these deviations. Therefore, an“intent” for the subject matter of this invention can be meant to understand a weighted and / or scored set of aligned nodes in a network of nodes which form a specific hierarchical pattern so as to form a linked pathway, of channels, towards an output which is most correlative to the input.
For the purposes of this invention, the term,“intent” is further defined as a vector which assigns a specific behaviour, weight, direction, and associative capabilities to a node which means that the node’s position in a network is defined, a node’s association (“channel” to be followed) with its connected node is defined, a node’s relative position relative to associated nodes is defined, a node’s input is defined (thereby defining behaviour), and a node’s output is defined (thereby defining behaviour) by this intent vector. A rule engine may define such intent vectors as outputs. In at least an embodiment of this invention, a“node” is defined by means of at least an intent vector.
For the purposes of this invention, the term, “channels” is defined to mean connections between nodes. These channels form pathways which, essentially, lead to shape- shifting of the network so that based on“intent”, the network architecture changes and the same set of inputs may cause a different intent-specific ouput.
For the purposes of this invention, the term,“dynamic intent computation” is defined as a mechanism which derives determined / computed intent based on user inputs and also based on a pre-defined set of rules to understand the intent. The manner in which what set of rules is used at what point / node in the architecture forms the inventive concept of this invention.
Additionally, with the determination / computation of the dynamic intent, a feed- back based full-duplex communication can be initiated by this bot engine, which is connected to a plurality of nodes (defined below), between a human user and an automated agent. While a primary intent is based on input data and context, a subsequent intent is based on a primary intent as well as additional input to this system.
The final output is to achieve an“intent-based network of nodes” comprising intent-based channels connecting nodes, dynamically.
In a conversational system, as defined or enabled by the bot engine of this invention, determination / computation of intent is important. Based on this determined / computed intent, channels are formed between nodes and, thus, a new network of nodes with new intent-based channels, for each conversation, if formed based on determined / computed intent.
FIGURE 1.1 illustrates a schematic of a conversational intent-based function of a bot engine depicting a first scenario where determined intent is of a first type.
In at least an embodiment, as seen in Figure 1.1, a first input (i/p - 1) results into a first output (o/p - 1) when processed by the bot engine (BE) of this invention. A first network of nodes is defined by the channels formed by the input nodes till the output nodes in order to process full-duplex communication between the input nodes and output nodes. Based on the first output (o/p - 1), a user inputs a second input (i/p - 2) to the bot engine (BE). This second input (i/p - 2) has an inherent first type of first feedback (f/b - 1.1) which is fed to the bot engine (BE) which determines the degree of causality or intent between inputs and outputs and subsequent inputs and subsequent outputs. This results in the bot engine (BE) to cause a second output (o/p - 2) which not only considers the second input (i/p - 2) but also considers the first type of first feedback (f/b - 1.1), thereby causing to create a first intent. Thus, a second network of nodes is defined by intent-based channels formed by the input nodes till the output nodes in order to process full- duplex communication between the input nodes and output nodes. Similarly, based on the second output (o/p - 2), the user inputs a third input (i/p - 3) to the bot engine (BE). This third input (i/p - 3) has an inherent first type of second feedback (f/b - 2.1) which is fed to the bot engine (BE) which determines the degree of causality or intent between inputs and outputs and subsequent inputs and subsequent outputs. This results in the bot engine (BE) to cause a third output (o/p - 3) which not only considers the third input (i/p - 3) but also considers the first type of second feedback (f/b - 2.1), thereby causing to create a first intent. Thus, a third network of nodes is defined by intent-based channels formed by the input nodes till the output nodes in order to process full-duplex communication between the input nodes and output nodes. Similarly, based on the third output (o/p - 3), the user inputs a fourth input (i/p - 4) to the bot engine (BE). This fourth input (i/p - 4) has an inherent first type of third feedback (f/b - 3.1) which is fed to the bot engine (BE) which determines the degree of causality or intent between inputs and outputs and subsequent inputs and subsequent outputs. This is how a full-duplex, intent based, network-shape-shifting, conversation is achieved.
FIGURE 1.2 illustrates a schematic of a conversational intent-based function of a bot engine depicting a first scenario where determined intent is of a second type.
As intents change, feedbacks change.
Similarly, in at least another embodiment, as seen in Figure 1.2, a first input (i/p - 1) results into a first output (o/p - 1) when processed by the bot engine (BE) of this invention. A first network of nodes is defined by the channels formed by the input nodes till the output nodes in order to process full-duplex communication between the input nodes and output nodes. Based on the first output (o/p - 1), a user inputs a second input (i/p - 2) to the bot engine (BE). This second input (i/p - 2) has an inherent second type of first feedback (f/b - 1.2) which is fed to the bot engine (BE) which determines the degree of causality or intent between inputs and outputs and subsequent inputs and subsequent outputs. This results in the bot engine (BE) to cause a different second output (o/p - 2.1) which not only considers the second input (i/p - 2) but also considers the second type of first feedback (f/b - 1.2), thereby causing to create a second intent. Thus, a fourth network of nodes is defined by intent-based channels formed by the input nodes till the output nodes in order to process full-duplex communication between the input nodes and output nodes. Similarly, based on the second output (o/p - 2.1), the user inputs a third input (i/p - 3) to the bot engine (BE). This third input (i/p - 3) has an inherent second type of second feedback (f/b - 2.2) which is fed to the bot engine (BE) which determines the degree of causality or intent between inputs and outputs and subsequent inputs and subsequent outputs. This results in the bot engine (BE) to cause a different third output (o/p - 3.1) which not only considers the third input (i/p - 3) but also considers the second type of second feedback (f/b - 2.2), thereby causing to create a second intent. Thus, a fifth network of nodes is defined by intent-based channels formed by the input nodes till the output nodes in order to process full-duplex communication between the input nodes and output nodes. Similarly, based on the third output (o/p - 3.2), the user inputs a fourth input (i/p - 4) to the bot engine (BE). This fourth input (i/p - 4) has an inherent second type of third feedback (f/b - 3.2) which is fed to the bot engine (BE) which determines the degree of causality or intent between inputs and outputs and subsequent inputs and subsequent outputs. This is how a full-duplex, intent based, network- shape- shifting, conversation is achieved.
FIGURE 1.3 illustrates a schematic of a conversational intent-based function of a bot engine depicting a first scenario where determined intent is of a third type.
As intents change more, feedbacks change, more too.
Similar to the description of Figure 1.2, in at least another embodiment, as seen in Figure 1.3, a first input (i/p - 1) results into a first output (o/p - 1) when processed by the bot engine (BE) of this invention. A first network of nodes is defined by the channels formed by the input nodes till the output nodes in order to process full- duplex communication between the input nodes and output nodes. Based on the first output (o/p - 1), a user inputs a second input (i/p - 2) to the bot engine (BE). This second input (i/p - 2) has an inherent third type of first feedback (f/b - 1.3) which is fed to the bot engine (BE) which determines the degree of causality or intent between inputs and outputs and subsequent inputs and subsequent outputs. This results in the bot engine (BE) to cause a different second output (o/p - 2.2) which not only considers the second input (i/p - 2) but also considers the third type of first feedback (f/b - 1.3), thereby causing to create a third intent. Thus, a sixth network of nodes is defined by intent-based channels formed by the input nodes till the output nodes in order to process full-duplex communication between the input nodes and output nodes. Similarly, based on the second output (o/p - 2.2), the user inputs a third input (i/p - 3) to the bot engine (BE). This third input (i/p - 3) has an inherent third type of second feedback (f/b - 2.3) which is fed to the bot engine (BE) which determines the degree of causality or intent between inputs and outputs and subsequent inputs and subsequent outputs. This results in the bot engine (BE) to cause a different third output (o/p - 3.3) which not only considers the third input (i/p - 3) but also considers the third type of second feedback (f/b - 2.3), thereby causing to create a third intent. Thus, a seventh network of nodes is defined by intent-based channels formed by the input nodes till the output nodes in order to process full-duplex communication between the input nodes and output nodes. Similarly, based on the third output (o/p - 3.3), the user inputs a fourth input (i/p - 4) to the bot engine (BE). This fourth input (i/p - 4) has an inherent third type of third feedback (f/b - 3.3) which is fed to the bot engine (BE) which determines the degree of causality or intent between inputs and outputs and subsequent inputs and subsequent outputs. This is how a full-duplex, intent based, network- shape- shifting, conversation is achieved.
FIGURE 2 illustrates a schematic of the system (100) of this invention.
In at least an embodiment, this bot engine may be a messenger application with a parser (P) configured to parse input subject matter (IP) to find out intent of the input subject matter (query). Essentially, by means of the parser (P), correction of spelling mistakes and slang used in a query, is provided, based on context. The parser (P) is one of the nodes of this system and method. A user inputs a query or text / data using an input node which is then fed to the parser (P). The query is corrected / adjusted by using this parser. The output of this parser is a parsed structured tree network of nodes, of the input query. This is essential for extracting multiple features (e.g. focus words, attribute words, NER words, common-sense attributes) by a NLP extraction module (NLP) and further to achieve a dependence tree network of nodes by a dependence tree configurator (DTC).
In at least an embodiment, a keyword classifier (KC) is configured to capture keywords from input subject matter and to classify the keywords based on pre- defined classification parameters, at a keyword classification node. The keyword classifier is an Artificial Neural Networks’ based classifier. Training data is entered into this classifier in order to extract potential intents from the input data. In at least an embodiment, the system, of this invention, comprises a translator (T) to receive input subject matter in any language and to translate the input subject matter as configured by the system. Multiple languages are supported: local languages like Hindi, Marathi, Gujarati, Punjabi is possible with foreign languages like Spanish, German, French. Language is not a barrier, for this system, as user can switch the language used in a conversation; i.e. previous query asked may be in English and the language for the current query may be other language for e.g. Hindi / Spanish / Arabic.
The bot engine, of this invention, is trained on training data where the query and its intent are defined in multiple languages and the bot engine (BE) is configured. Word embeddings (WE) is learnt during the training process and multiple languages can be used this way by the user to communicate with the bot. A translator (T) module, irrespective of the language used, translates the sentence in an embedding (numerical form of sentence). The bot engine uses these embedding rather than the keywords itself to make predictions. Embeddings are fed to the model to determine intent of the query.
In at least an embodiment of an embeddings configurator, word embeddings (WE) are created on the training data, training corpus node, for pre-configured languages to represent keywords in a numerical form. Word embeddings are vectors of [1 x 300] where 300 represents the number of features tuned to represent a single word. If the vocabulary consists of 50,000 words, then the word embedding will be a representation of [50000 x 300] matrix, where a first axis defines an index of the word and a second axis defines its features. These representations of keywords are in numerical form which is used by the bot engine so that correct intent can be identified for the training data set. Representation of words is tuned during the training process so that the bot engine is able to compute / determine a correct intent. Confidence score if obtained between 0 to 1 defines the correctness of the intent. Training is done on the input data (training data set) in multiple epochs (i.e. multiple times, the same data is fed to the model at different time step) and error is back propagated and the keyword embeddings are tuned to minimize the error in the confidence score.
In other words, embeddings can be represented as an embeddings’ matrix of index vectors with respect to feature vectors.
According to a non-limiting exemplary embodiment in respect of a word embedding matrix, if there are 75,000 words in a vocabulary of training set, then word embedding matrix will be of shape [75,000 x No. of dimensions]. No. of dimension defines the word in each dimension (it can also be called as word feature). In at least one embodiment, this dimension is 300. Therefore, the word embedding matrix is [75,000 x 300]. Words which are similar to each other will share similar features and will come close to each other and words which are not similar will fall apart from each.
Figure imgf000020_0001
In at least an embodiment of an embeddings configurator, character embeddings (CE) are vectors of [1 x 8] where 8 represents the features for a single character. [No. of character words x 8] matrix is the representation matrix, where the first axis defines the index of the character and second axis defines its features.
According to a non-limiting exemplary embodiment in respect of a character embedding matrix, if there are 75 different alphabets (A-Z a-z 0-9 , . ! ? ( ) { } $ & 8 # @ : ; ...) in a training set, then character embedding matrix will be of shape [75 x No. of dimensions]. No. of dimension defines the character in each dimension (it can also be called as character feature). In at least one embodiment, this dimension is 8. Therefore, the character embedding matrix is [75 x 8]. Characters which are more often near to each other in a sequence will be close to each other and vice versa.
Figure imgf000021_0001
In at least an embodiment of an embeddings configurator, sentence embedding is formed by taking representation of a word from the word embedding matrix and representation of a character from character embedding matrix and combing both. e.g.: Sentence: I need to book a ticket from Pune to Mumbai For the above sentence, embeddings of all the words in a sentence is taken and kept in a matrix in a sequence and all embeddings of all the characters is taken and kept in a matrix in the same sequence in which they appear. Character embedding flows through a CNN and a projected matrix is concatenated with Word embedding. A limit of how many words can be present in a sentence is kept and the matrix is formed for a sentence which is of size [No. of words limit x 300]. If the sentence has more than the limit words then those words are not considered and if the sentence has less no of words then the remaining space is padded with a special symbol [PAD]
(note: [PAD] token has a special word embedding)
Figure imgf000022_0001
In at least an embodiment, a keyword classifier comprises an NLP extraction module (NLP), through an NLP node, configured to act on text based input subject matter. From the parsed structured tree network of nodes, the following features are extracted, using standard natural language extraction mechanisms:
1. Synonyms (used by synonym substitutor, defined further ahead)
2. Acronyms (used by acronym substitutor, defined further ahead)
3. POS tags (used by POS tagger, defined further ahead)
4. Named Entities Relationships (used by dependence tree configurator, defined further ahead)
5. Coreference Resolution (used by verifier and selector, defined further ahead)
6. Focus words (used by focus extractor, defined further ahead)
7. Attributes (used by attributes identifier, defined further ahead)
8. Common Sense Extraction (used by a common sense extractor, defined further ahead)
In at least an embodiment, the NLP extraction module resolves Coreference with a previous question asked by the same user (whether the current query has some pronouns which needs to be resolved with the help of previous conversation).
According to one embodiment of the NLP extraction module, there is a POS (part of speech) tagger (PST) configured to find out POS tags for words in the text based input subject matter (e.g. - nouns, proper nouns, adjectives, adverbs, verbs, preposition, determiners, and the like).
Finding accurate parts of a speech is one of the features used by an intent classifier to define intents from a training data set. A tag is represented with extracted keywords, from the keyword classifier (KC), in the question. These features are also used in other feature extractions like Named Entity, Focus Words, Attributes, Corefence Resolution, Dependency Parse Tree (i.e. dependence tree network of nodes); all listed above. Named Entity, for example, uses a POS tag as the main features as the representation of keywords with the tags in sequence helps it to point to an entity with its appropriate class.
Some examples are as follows:
Figure imgf000024_0001
Figure imgf000025_0001
Figure imgf000026_0001
A dependency parse tree (i.e. a dependence tree network of nodes) is formed for the input through input node which links keywords together with a relationship; the relationship being subject, object, predicates etc. A channel / links / bond determines the relationship in the keywords and helps the bot engine to understand semantics and context of the associated words. With dependence tree configurator, focus words (FW) and attributes (AT) are extracted which are used by the bot engine to determine the intent and actions to be taken by the bot engine. Corefence resolution, for example, uses dependence tree configurator, as a key feature while training and determining correctly resolved pronouns with the entity link / channel.
In at least an embodiment, the dependence tree configurator (DTC) comprises a focus extractor (FE) configured to pin point at least a focus word (FW) from the text based subject matter. These focus words help identify intent since, more often than not, they have the highest weightage in the text based input subject matter. The focus word, therefore, become data resident on a focus node
e.g. What are the documents required for Home Loan
Figure imgf000026_0002
Focus extractors are used as a feature by the bot engine to determine exactly what the input is all about. It is also used to determine the scope of an input. The bot engine, of this invention, needs to determine whether the input is within the scope of this hot engine to answer or out of scope for the hot engine. An attention mechanism is used to focus more on the given keywords in order to determine the focus word. For example, while reading a paragraph or quickly searching for an answer to a query, humans tends to put more focus on some part rather reading the complete paragraph text; this is known as attention (A). In the same way, based on identification of focus words, attention is applied to a neural model network to correctly pin point to a focus word within a question. Features used to train are word embeddings + parts of speech (POS) tags + Named Entity Relationship (NER) + dependence tree configurator (DTC).
In at least an embodiment, the dependence tree configurator (DTC) comprises an attribute identifier (AI) configured to identify attribute words of a text based input subject matter. The attribute identifier considers focus words whilst identifying attributes of these identified focus word(s). The attribute, therefore, become data resident on an attribute node. A correlative link, i.e. a correlative channel, is established between the extracted focus node and the identified attribute node.
e.g. What are the documents required for Home Loan
[Attribute]
Based on the dependence tree configurator (DTC), linkage of the focus entities (i.e. focus entities’ channel) and the attention mechanism, atribute entities are determined which say what attributes are asked about in a given message. Attributes may or may not be present depending on the type of input to the bot engine.
The attention mechanism is used to generate a score with a softmax function (SF) giving the confidence score of an attribute being present on not in a current input. Features used to train are word embeddings + Focus words (FW) + parts of speech (POS) tags + Named Entity Relationship (NER) + dependence tree configurator (DTC).
In at least an embodiment, the dependence tree configurator (DTC) comprises an acronyms substitutor (AS) configured to identify acronyms (at the stage of parsing) in the text based input subject matter and to fetch substitutive full words correlative to the identified acronyms from a pre-fed acronyms vocabulary database. The acronym, therefore, become data resident on an acronym node e.g. How many SL do I get a year
[Sick Leave]
Depending on use cases, users, while typing or inputting, do not always write readable keywords. Rather, they may use short forms. In order to correctly understand the meaning of a word, in a context, short form needs to be converted in their original form. This acronyms substitutor (AS) reduces the out of vocabulary words and improves the performance of the bot engine.
In at least an embodiment, the dependence tree configurator (DTC) comprises a synonyms substitutor (SS) configured to identify synonyms (at the stage of parsing) of extracted focus words in the text based input subject matter and to fetch corretlative synonyms to the extracted focus words from a pre-fed synonyms vocabulary database. The synonym, therefore, become data resident on a synonym node.
e.g. 1 am looking for a vehicle loan
[car]
Synonyms from an input is determined and appropriate synonym is chosen from a vocabulary and a user’s input is modified. In order to semantically improve the accuracy, synonyms are substituted from the vocabulary on which the bot engines are trained at the time of training. This phenomenon improves the understanding of a query. More confidence score is obtained in the intent classification task by this method.
In at least an embodiment, the dependence tree configurator (DTC) comprises a dynamic feature extractor (DFE) configured to extract NER (named entity relationship) words from the text based input subject matter. In at least a non- limiting exemplary embodiment, the extracted feature list comprises dates, city, country, company name, person’s name, price, mobile number, email identities, domain names, and the like. Dynamic entities like employee identities which could be 16 digit alpha-numeric characters can also can be extracted once defined.
In other words, entities extracted could be:
Figure imgf000029_0001
Features play a vital part in evidence scoring to find exact answers to the text based input subject matter.
Predefined entities as well as use-case defined entities are extracted by this extractor. If a user mentions his name or address or his phone number or an order id etc., this extractor extracts and uses these entities for determining the entities asks the user and the entities given to the user is of the same form. In order to get the details of the user, some verification needs to be done and for that, a user’s detail is asked by the bot engine. In order to verify the data provided by the user, the dynamic feature extractors are trained. Correct features are used to communicate with background sendees to get details from the database.
The dynamic feature extractor is configured to identify a plurality of different entities trained on a large corpus. According to an exemplary embodiment, up to 128 different entities are trained on a large corpus. User-defined entities can also be trained depending on use-case scenarios. At the time of creation of bot engine, entities are marked on the platform and label for the entities is provided and these marked entities are used to train the model which are known as user defined entities. With the help of fine tuning (type of transfer learning), new entities are trained on the already available multiple (e.g. 128) entities pre-trained model. BIO type of representation is created of the training data, where B is the Beginning part of the entity, I is the Inside part of the entity and O is the non-entity. Model uses embedding (word + character) + part of speech (POS) tags + dependence tree configurator (DTC) features together to determine the class label (e.g. movie, genre, city, location, country, dates, etc; as seen in the example below) of the keyword and the confidence score. TWO rales are used to determine the entity starting and end are: 1. Entities cannot be more than five words long; and
2. Second prediction pointing as the end of the entity should be always greater than the first prediction.
With these two predictions, a class label is also predicted to determine the class of entity
For example: The Godfather is a 1972 American crime film directed by Francis Ford Coppola and produced by Albert S. Ruddy , based on Mario Puzo 's best - selling novel of the same name .
Figure imgf000031_0001
Figure imgf000032_0001
In at least an embodiment, the dependence tree configurator (DTC) comprises a common sense extractor (CSE) configured to extract common sense for all the words in an input other than stop words and most frequently used words from the corpus. Common Sense has two nodes with a relationship in between the two nodes and can have multiple levels.
For example, if an input states,‘ Which of the living species are obtained from the mines?’, the common sense extractor determines common sense as follows:
living -> is_related_to -> life (1 level ) species -> is_related_to -> kingdom -> derived_by -> emperor -> is_related_to -> leader (3 level)
species -> is_related_to -> race (1 level)
mines -> is_form_of -> mine -> found_at -> home (2 level)
mines -> is_form_of -> mine -> found_at -> home -> is_related_to -> people
(3 level)
In at least an embodiment, the system, of this invention, comprises a verifier (V) configured to identify verified sources in response to the input subject matter. This verifies applies weightage and scoring to the responses. The verifier determines if the response can be fetched generically or requires domain expertise. The verifier acts in real-time.
In order to respond to a user’s input, the verifier (V) module is trained to determine a correct source of response / output that is to be provided. The verifier, based on the intent, verifies the source and discards other sources of responses / outputs based on the score.
Focus word embedding, Attribute word embedding, Named Entity embedding, Common Sense embedding are the embeddings where the representation is only taken where the feature words are present; rest of everything is masked and has a value 0.0.
Figure imgf000033_0001
Figure imgf000034_0001
Figure imgf000035_0002
Figure imgf000035_0001
Common Sense word Matrix:
Figure imgf000036_0001
In at least an embodiment, the system, of this invention, comprises a selector (S) to resolve ambiguities in the input based subject matter once the subject matter is processed. Ambiguity is defined in terms of options provided to a user with the selector prompting the user to select at least one option from the options. These options may be presented in the form interactive hyperlinked cards
e.g. What is my account balance - Bot ask for resolution between saving or current. Interactive cards are also used to provide a form to the end user to fill.
Feedback forms or collecting information from the user can be done with the help of interactive cards.
Interactive cards can be converted into auto conversation mode, where the form is filled with an interactive conversation. In cases of ambiguity present in the input, provided by a user to the bot engine, where complete information is not enough to arrive to an intent conclusion, the selector module asks the user to provide more information by presenting user options to select and determines the correct intent in order to proceed.
In at least an embodiment, the system, of this invention, comprises a dynamic intent transitioner (DIT) configured to effectively transition between intents of the input subject matter. The system can land up on any state in a hierarchy. However, this system makes an intelligent decision based on the input subject matter. Hierarchy of intents can be created in the system.
E.g. if booking a ticket is a use case, then top most i.e. first-level intent can be book a ticket, second-level intent can be asking number of passengers, third-level intent can be asking for sources and destinations, fourth-level intent can be asking for date of travel, and so on and so forth. While the user can land-up on any state in the hierarchy based on what is asked. The system makes an intelligent decision based on the input subject matter to choose the level of intent and provide outputs (converse) after that choice.
A user, while communicating with the bot engine of this invention, may switch intents and may not go with the flow. The bot engine, of this invention, is configured keep the references and allow a user to change intent and uses the saved references so that the bot engine does not keep repeating and conversing the same thing, over and over again, with the user which was already done in the past. Entities asked to the user and entities extracted by the bot engine are saved and the flow does not need to start from the very beginning. With this, an absolute human- like interaction with the bot engine is possible; without this, the bot-engine works like a computer program and not like the Artificial Intelligence platform. In at least an embodiment, the system, of this invention, comprises an authenticator configured to authenticate users to use this system. Context and relevance can be adjusted and / or attributed to input subject matter for parsing and processing based on authentication.
In at least an embodiment, the dynamic intent transitioner (DIT), of this invention, comprises an intent skipper (IS) configured to skip or omit an identified intent based on pre-defined parameters. One such pre-defined parameters may be user-type. E.g. if the end user is a retailer, then different set of intents can be used, for a given input subject matter as opposed to a consumer.
The intent skipper is configured to skip an intent, sometimes based, on the details of the user interacting with the bot engine. Some details may already be provided by the user or is present with the bot engine based on user identification. Intent skipper determines the intent to be skipped as the same information is already present with the bot.
In at least an embodiment, the dynamic intent transitioner (DIT), of this invention, comprises an intent hook (IH) configured to hook at least an intent for a given subject matter until a user does not provide or alter information required by the system of this invention.
Intents are switched with the help of intent hook. The bot engine requires some intent which needs to be activated first for the current intent to be proceed. Intent hook switches the intent and first completes those intents and then comes back to the current intent. In at least an embodiment, the system, of this invention, comprises an output node configured to output a full-duplex, intent-based, communication channel between a natural user and a bot engine based on intent.
Intent Output Matrix: Intent output vectors are one hot vectors with dimension [1 x No. of output Intents]
For example, If there are 25 intents, then the output matrix would be [1 x 25]
Figure imgf000039_0001
For the above example text 0 being the correct label intent has a probability of 0.95
FIGURE 3 illustrates a schematic block diagram from input to output.
301 - Text matter is input through a parser.
302, 303 - Words embeddings (WE) as well as Character level embedding
(CE) is learnt on a training corpus. Word embeddings (WE) are the vectors of [1 x 300] where 300 represents the features for a single word. [No. of vocab words x 300] matrix is the representation matrix, where the first axis defines the index of the word and second axis defines its features. Character embedding (CE) are the vectors of [1 x 8] where 8 represents the features for a single character. [No. of character words x 8] matrix is the representation matrix, where the first axis defines the index of the character and second axis defines its features. Sentence embedding is formed by taking representation of a word from the word embedding matrix and representation of a character from character embedding matrix and combing both.
304 - Input (301), through a parser, is provided to an NLP extraction module (304).
305 - Focus word embeddings (FW) are extracted and used. Matrix data from the training corpus node is used along with parsed input text / data in order to assign weights to extracted focus words in said embeddings’ matrix to obtain a focus- weighted embeddings’ matrix. Word Embedding (WE) is substituted where the words are present and all the features in word embedding are 0.0 wherever it is absent.
306 - Attribute word embeddings (AT) are extracted and used. Matrix data from the training corpus node is used along with parsed input text / data in order to assign weights to extracted attribute words in said embeddings’ matrix to obtain a attribute-weighted embeddings’ matrix. Word Embedding (WE) is substituted where the words are present and all the features in word embedding are 0.0 wherever it is absent.
307 - Named entity word embeddings (NER) are extracted and used. Matrix data from the training corpus node is used along with parsed input text / data in order to assign weights to extracted named-entity-relationship words in said embeddings’ matrix to obtain a named-entity -relationship- weighted embeddings’ matrix. Word Embedding (WE) is substituted where the words are present and all the features in word embedding are 0.0 wherever it is absent.
308 - Common-sense words path embedding (CS) are extracted and used. Matrix data from the training corpus node is used along with parsed input text / data in order to assign weights to extracted common-sense words in said embeddings’ matrix to obtain a common-sense-weighted embeddings’ matrix. Word Embedding (WE) is substituted for a complete path.
309 - With the help of CNN (convolution neural network), at a neural network node, word embedding (WE) (302) and character embedding (CE) (303) are combined and used as a single feature. Output of CNN is a concatenated embeddings’ matrix of word embeddings (302) and character embeddings (303). Adding character embedding solves the problem on unseen words as the characters in the unseen words are known.
310 - BiLSTMs (Bidirectional Long-Short Term Memory) nodes are fed with said focus- weighted embeddings’ matrix, said attribute- weighted embeddings’ matrix, said named-entity-relationship- weighted embeddings’ matrix, said common-sense weighted embeddings’ matrix in order to provide a first set of intents, said first set of intent being a matrix of intents comprising weight-assigned intent vectors for said input text / data. An output layer is generated which is combined with Focus word embedding (305), Attribute embedding (306), Named entity word embedding (307), and common sense path embedding (308). Focus word embedding (305), Attribute embedding (306), Named entity word embeddings (307), and common sense path embeddings (308); are used as a separate feature and with the help of self-attention (310), LSTM output is combined with the masked Focus word embedding, Attribute embedding, Named entity word embeddings, and Common sense path embedding. Training is done over multiple epochs and classification error is calculated which is back propagated to the model over a different time step to learn and tune the model to correctly classify the intent. Commonsense (CS) is used to semantically improve the score of intent having a strong relation with the query and decrease the score where relationship is not present. Based on user feedback, model is fine-tuned with negative feedback and fine tuning is done to correct the wrong identified intents at a regular intervals.
311 - Self- Attention (SA) - determines where attention should be for that input. An attention vector is defined where attention (311) should be based on said focus- weighted embeddings’ matrix, said attribute- weighted embeddings’ matrix, said named-entity-relationship-weighted embeddings’ matrix, said common-sense weighted embeddings’ matrix;
312 - Output of BiLSTM (310) is multiplied by output of Self- Attention (311) to clear sequence of words to help identify intent even if words’ set is finite
313- Normalisation (softmax method) is done in order to normalize every value to a range between 0 and Iso that only vector values remain.
314 - label intent - a number of intents are identified
315 - Dynamic Intent Transitional (DIT) - intent hook (IH) and intent skipper
(IS) is applied to the number of intents (314) to check if intent has changed and to output a dynamically computed pertinent output per every input (316). Output is - outputting (316) an intent-based network of nodes, said network comprising channel paths provided to correspond with the bot engine, said intent-based network of nodes being dynamically computed pertinent output per every parsed (301) input text / data for facilitating full-duplex, intent-based, communication channel between a natural user and a bot engine based on said second intent.
The TECHNICAL ADVANCEMENT of this invention lies in providing an intelligent system and method which considers contexts, relevance, hierarchies to understand intent for input subject matter to provide real-time accurately relevant and context- defined outputs. Furthermore, this invention allows insertion of new intent(s), dynamically, in an existing structure, without affecting existing structures. While this detailed description has disclosed certain specific embodiments for illustrative purposes, various modifications will be apparent to those skilled in the art which do not constitute departures from the spirit and scope of the invention as defined in the following claims, and it is to be distinctly understood that the foregoing descriptive matter is to be interpreted merely as illustrative of the invention and not as a limitation.

Claims

CLAIMS,
1. A method for communicating with a bot engine with automatic dynamic intent computation, said bot engine connected to a plurality of nodes, said method comprising the steps of:
- parsing (301) input text / data, at an input node a parsed structured tree
network of nodes;
- capturing and classifying constituent keywords, at a keyword
classification node, from said parsed input text / data based on pre-defined classification parameters;
- identifying word embeddings (302) and character embeddings (303), per parsed text / data, using a training corpus node, on a training corpus, said word embeddings and said character embeddings being an embeddings’ matrix of index vectors with respect to feature vectors;
- employing a neural network node (309) to input word embeddings (302) and character embeddings (303) to output a concatenated embeddings’ matrix of word embeddings (302) and character embeddings (303);
- extracting and representing focus word embeddings (305), using NLP
extraction node (304), and using matrix data from said training corpus node, from the parsed input text / data in order to assign weights to extracted focus words in said embeddings’ matrix to obtain a focus- weighted embeddings’ matrix;
- extracting and representing attribute word embeddings (306), using NLP extraction node (304) , and using matrix data from said training corpus node, from the parsed input text / data in order to assign weights to extracted attribute words in said embeddings’ matrix to obtain an attribute- weighted embeddings’ matrix; - extracting and representing named entity relationship embeddings (307), using NLP extraction node (304), and using matrix data from said training corpus node, from the parsed input text / data in order to assign weights to extracted named-entity-relationship words in said embeddings’ matrix to obtain a named-entity-relationship-weighted embeddings’ matrix;
- extracting and representing common-sense words embeddings (308), and using matrix data from said training corpus node, using NLP extraction node (304), from the parsed input text / data in order to assign weights to extracted common-sense words in said embeddings’ matrix to obtain a common-sense weighted embeddings’ matrix;
feeding at least a Bidirectional Long-Short Term Memory node (310) with said focus- weighted embeddings’ matrix, said attribute- weighted embeddings’ matrix, said named-entity-relationship- weighted embeddings’ matrix, said common-sense weighted embeddings’ matrix in order to provide a first set of intents, said first set of intent being a matrix of intents comprising weight-assigned intent vectors for said input text / data;
- determining, an attention vector, in order to define where attention (311) should be based on said said focus- weighted embeddings’ matrix, said attribute- weighted embeddings’ matrix, said named-entity-relationship- weighted embeddings’ matrix, said common-sense weighted embeddings’ matrix;
- multiplying (312) each of said intent vectors, from said first set of intents, with said attention vector in order to obtain a second intent vector;
- normalising (313) the values of said second intent vector in a pre-determined range;
- outputting (316) an intent-based network of nodes, said network
comprising channel paths provided to correspond with the bot engine, said intent-based network of nodes being dynamically computed pertinent output per every parsed (301) input text / data for facilitating full-duplex, intent-based, communication channel between a natural user and a bot engine based on said second intent.
2. The method as claimed in claim 1 wherein, said method comprises a step of labeling (314) each of said second intent.
3. The method as claimed in claim 1 wherein, said method comprises a step of applying intent hook (315) and intent skipper (315) to said second intent vis-a- vis said first set of intents to check if intent has changed.
4. A bot engine for automatic dynamic intent computation, said engine
comprising:
- a parser (P) configured to parse input subject matter (IP) to provide a
parsed structured tree network of nodes, of an input query, said parser comprising a keyword classifier (KC) configured to capture keywords from input subject matter and to classify said captured keywords based on pre- defined classification parameters;
- an NLP extraction module (NLP), through an NLP node, configured to act on parsed input subject matter to identify features (focus word feature, attribute word feature, named entity relationship feature, common sense path feature, part-of-speech tags);
- embeddings configurator configured to represent captured keywords, from said input subject matter, in numeral format in terms of its constituent extracted features (focus word feature, attribute word feature, named entity relationship feature, common sense path feature, part-of-speech tags); - a dependence tree configurator (DTC) configured to define structural relationship between different words in parsed input subject matter in order to output at least focus words, at least attribute words, at least named entity relationship words, at least common sense paths;
- a dynamic intent transitioner (DIT) configured to effectively transition between intents of the parsed input subject matter, said dynamic intent transitioner (DIT) comprising an intent skipper (IS) configured to skip or omit an identified intent based on pre-defined parameters, said dynamic intent transitioner (DIT) comprising an intent hook (IH) configured to hook at least an intent for a parsed input subject matter until a user does not provide or alter information required by said engine; and
- an output node configured to output a full-duplex, intent-based,
communication channel between a natural user and a bot engine based on intent.
5. The bot engine as claimed in claim 2 wherein, said parser (P) comprising a translator (T) to receive input subject matter in any language and to translate the input subject matter as configured by the system.
6. The bot engine as claimed in claim 2 wherein, said embeddings configurator being configured to process word embeddings (WE) created on training data for pre-configured languages to represent keywords in a numerical form, characterised in that, said word embeddings being vectors of [m x n] where m represents number of words and n represents the number of features tuned to represent a single word, where a first axis defines an index of the word and a second axis defines its features.
7. The bot engine as claimed in claim 2 wherein, said embeddings configurator being configured to process character embeddings (CE) in terms of vectors of [a x b] where a represents number of characters and b represents the number of features tuned to represent a single character, where a first axis defines an index of the word and a second axis defines its features.
8. The bot engine as claimed in claim 2 wherein, said embeddings configurator being configured to process sentence embeddings formed by taking representation of a word from a word embedding matrix and representation of a character from a character embedding matrix and combing said word representation and said character representation to provide a concatenated matrix.
9. The bot engine as claimed in claim 2 wherein, said NLP extraction module comprising a POS (part of speech) tagger (PST) configured to find out POS tags for words in parsed input subject matter.
10. The bot engine as claimed in claim 2 wherein, said dependence tree configurator (DTC) comprises a focus extractor (FE) configured to pin point at least a focus word (FW) from the parsed input subject matter.
11. The bot engine as claimed in claim 2 wherein, said dependence tree configurator (DTC) comprises a focus extractor (FE) configured to pin point at least a focus word (FW) from the parsed input subject matter, characterised in that, features used to train are word embeddings, parts of speech (POS) tags, Named Entity Relationship (NER).
12. The bot engine as claimed in claim 2 wherein, said dependence tree configurator (DTC) comprises an attribute identifier (AI) configured to identify attribute words from the parsed input subject matter.
13. The bot engine as claimed in claim 2 wherein, said dependence tree configurator (DTC) comprises an attention mechanism used to generate a score with a softmax function (SF) giving a confidence score of an attribute being present on not in a current input.
14. The bot engine as claimed in claim 2 wherein, said dependence tree configurator (DTC) comprises an attribute identifier (AI) configured to identify attribute words from the parsed input subject matter, characterised in that, features used to train are word embeddings, parts of speech (POS) tags, Named Entity Relationship (NER)
15. The bot engine as claimed in claim 2 wherein, said dependence tree configurator (DTC) comprises an acronyms substitutor (AS) configured to identify acronyms from the parsed input subject matter and to fetch substitutive full words correlative to the identified acronyms from a pre-fed acronyms vocabulary database.
16. The bot engine as claimed in claim 2 wherein, said dependence tree configurator (DTC) comprises an synonyms substitutor (SS) configured to identify synonyms from the parsed input subject matter and to fetch substitutive full words correlative to the identified synonyms from a pre-fed synonyms vocabulary database.
17. The bot engine as claimed in claim 2 wherein, said dependence tree configurator (DTC) comprises a dynamic feature extractor (DFE) configured to extract NER (named entity relationship) words from the parsed input subject matter.
18. The bot engine as claimed in claim 2 wherein, said dependence tree configurator (DTC) comprises a dynamic feature extractor (DFE) configured to extract NER (named entity relationship) words from the parsed input subject matter, characterised in that, features used to train are word embeddings, character embeddings, part-of-speech (POS) tags; to determine a class label of the keyword and a confidence score.
19. The bot engine as claimed in claim 2 wherein, said dependence tree configurator (DTC) comprises a common sense extractor (CSE) configured to extract common sense for all words from the parsed input subject matter other than stop words and most frequently used words from a corpus.
20. The bot engine as claimed in claim 2 wherein, focus word embeddings, attribute word embeddings, named entity relationship word embeddings, common sense embedding are embeddings where representation is only taken where the feature words are present; rest of everything is masked and has a value 0.0.
21. The bot engine as claimed in claim 2 wherein, said engine comprising a selector (S) to resolve ambiguities in the parses input based subject matter once the subject matter is processed. Ambiguity is defined in terms of options provided to a user with the selector prompting the user to select at least one option from the options.
PCT/IN2019/050414 2018-05-28 2019-05-28 A bot engine for automatic dynamic intent computation WO2019229768A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN201821019826 2018-05-28
IN201821019826 2018-05-28

Publications (1)

Publication Number Publication Date
WO2019229768A1 true WO2019229768A1 (en) 2019-12-05

Family

ID=68696850

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IN2019/050414 WO2019229768A1 (en) 2018-05-28 2019-05-28 A bot engine for automatic dynamic intent computation

Country Status (1)

Country Link
WO (1) WO2019229768A1 (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200050667A1 (en) * 2018-08-09 2020-02-13 CloudMinds Technology, Inc. Intent Classification Method and System
CN111611797A (en) * 2020-05-22 2020-09-01 云知声智能科技股份有限公司 Prediction data labeling method, device and equipment based on Albert model
CN111949793A (en) * 2020-08-13 2020-11-17 深圳市欢太科技有限公司 User intention identification method and device and terminal equipment
CN112270188A (en) * 2020-11-12 2021-01-26 佰聆数据股份有限公司 Questioning type analysis path recommendation method, system and storage medium
CN112765959A (en) * 2020-12-31 2021-05-07 康佳集团股份有限公司 Intention recognition method, device, equipment and computer readable storage medium
CN113239693A (en) * 2021-06-01 2021-08-10 平安科技(深圳)有限公司 Method, device and equipment for training intention recognition model and storage medium
CN113254613A (en) * 2021-05-24 2021-08-13 深圳壹账通智能科技有限公司 Dialogue question-answering method, device, equipment and storage medium
CN113343694A (en) * 2021-04-29 2021-09-03 山东师范大学 Medical named entity identification method and system
CN114004165A (en) * 2021-11-05 2022-02-01 中国民航大学 Civil aviation single unit intention modeling method based on BilSTM

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100145694A1 (en) * 2008-12-05 2010-06-10 Microsoft Corporation Replying to text messages via automated voice search techniques
US9406020B2 (en) * 2012-04-02 2016-08-02 Taiger Spain Sl System and method for natural language querying
US20180133900A1 (en) * 2016-11-15 2018-05-17 JIBO, Inc. Embodied dialog and embodied speech authoring tools for use with an expressive social robot

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100145694A1 (en) * 2008-12-05 2010-06-10 Microsoft Corporation Replying to text messages via automated voice search techniques
US9406020B2 (en) * 2012-04-02 2016-08-02 Taiger Spain Sl System and method for natural language querying
US20180133900A1 (en) * 2016-11-15 2018-05-17 JIBO, Inc. Embodied dialog and embodied speech authoring tools for use with an expressive social robot

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10831997B2 (en) * 2018-08-09 2020-11-10 CloudMinds Technology, Inc. Intent classification method and system
US20200050667A1 (en) * 2018-08-09 2020-02-13 CloudMinds Technology, Inc. Intent Classification Method and System
CN111611797A (en) * 2020-05-22 2020-09-01 云知声智能科技股份有限公司 Prediction data labeling method, device and equipment based on Albert model
CN111611797B (en) * 2020-05-22 2023-09-12 云知声智能科技股份有限公司 Method, device and equipment for marking prediction data based on Albert model
CN111949793A (en) * 2020-08-13 2020-11-17 深圳市欢太科技有限公司 User intention identification method and device and terminal equipment
CN111949793B (en) * 2020-08-13 2024-02-27 深圳市欢太科技有限公司 User intention recognition method and device and terminal equipment
CN112270188B (en) * 2020-11-12 2023-12-12 佰聆数据股份有限公司 Questioning type analysis path recommendation method, system and storage medium
CN112270188A (en) * 2020-11-12 2021-01-26 佰聆数据股份有限公司 Questioning type analysis path recommendation method, system and storage medium
CN112765959A (en) * 2020-12-31 2021-05-07 康佳集团股份有限公司 Intention recognition method, device, equipment and computer readable storage medium
CN113343694A (en) * 2021-04-29 2021-09-03 山东师范大学 Medical named entity identification method and system
CN113343694B (en) * 2021-04-29 2023-04-07 山东师范大学 Medical named entity identification method and system
CN113254613A (en) * 2021-05-24 2021-08-13 深圳壹账通智能科技有限公司 Dialogue question-answering method, device, equipment and storage medium
CN113239693A (en) * 2021-06-01 2021-08-10 平安科技(深圳)有限公司 Method, device and equipment for training intention recognition model and storage medium
CN113239693B (en) * 2021-06-01 2023-10-27 平安科技(深圳)有限公司 Training method, device, equipment and storage medium of intention recognition model
CN114004165A (en) * 2021-11-05 2022-02-01 中国民航大学 Civil aviation single unit intention modeling method based on BilSTM

Similar Documents

Publication Publication Date Title
WO2019229769A1 (en) An auto-disambiguation bot engine for dynamic corpus selection per query
WO2019229768A1 (en) A bot engine for automatic dynamic intent computation
Poongodi et al. Chat-bot-based natural language interface for blogs and information networks
US11151318B2 (en) System and method for detecting undesirable and potentially harmful online behavior
Chopra et al. Natural language processing
US8972408B1 (en) Methods, systems, and articles of manufacture for addressing popular topics in a social sphere
CN110704576B (en) Text-based entity relationship extraction method and device
Kumar et al. Automating reading comprehension by generating question and answer pairs
US11681872B2 (en) Language sequence labeling method and apparatus, storage medium, and computing device
KR102041621B1 (en) System for providing artificial intelligence based dialogue type corpus analyze service, and building method therefor
US20220405484A1 (en) Methods for Reinforcement Document Transformer for Multimodal Conversations and Devices Thereof
CN111026840B (en) Text processing method, device, server and storage medium
Vinnarasu et al. Speech to text conversion and summarization for effective understanding and documentation
Yan et al. Response selection from unstructured documents for human-computer conversation systems
CN115310551A (en) Text analysis model training method and device, electronic equipment and storage medium
Sitender et al. Sanskrit to universal networking language EnConverter system based on deep learning and context-free grammar
Ostendorf Continuous-space language processing: Beyond word embeddings
Diao et al. Emotion cause detection with enhanced-representation attention convolutional-context network
WO2019051057A1 (en) Machine learning lexical discovery
WO2019051064A1 (en) Semantic vector rule discovery
CN115714030A (en) Medical question-answering system and method based on pain perception and active interaction
CN115169370A (en) Corpus data enhancement method and device, computer equipment and medium
Rocchietti et al. FANCY: A Diagnostic Data-Set for NLI Models.
Dey et al. EKTVQA: Generalized Use of External Knowledge to Empower Scene Text in Text-VQA
Nand et al. A HMM POS tagger for micro-blogging type texts

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19810702

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19810702

Country of ref document: EP

Kind code of ref document: A1