US 11,869,497 B2
Parallel hypothetical reasoning to power a multi-lingual, multi-turn, multi-domain virtual assistant
James Kaplan, Marina Del Rey, CA (US)
Assigned to MeetKai, Inc., Marina Del Rey, CA (US)
Filed by MeetKai, Inc., Marina Del Rey, CA (US)
Filed on Mar. 10, 2021, as Appl. No. 17/197,959.
Claims priority of provisional application 62/987,814, filed on Mar. 10, 2020.
Prior Publication US 2021/0287673 A1, Sep. 16, 2021
Int. Cl. G10L 15/22 (2006.01); G10L 15/28 (2013.01); G06N 5/04 (2023.01)
CPC G10L 15/22 (2013.01) [G06N 5/04 (2013.01); G10L 15/28 (2013.01); G10L 2015/223 (2013.01)] 7 Claims
OG exemplary drawing
 
1. A method for providing virtual assistance comprising:
receiving a user input from a user comprising a user request for action or information;
generating two or more primary interpretations for the user input by processing the user input to generate the two or more primary interpretations of the user input, the two or more primary interpretations comprising unique possible transcriptions for the user input;
generating one or more secondary interpretations for one or more of the two or more primary interpretations by processing one or more of the primary interpretations to form alternative interpretations;
determining one or more primary actions responsive to the two or more primary interpretations and the one or more secondary interpretations;
preparing one or more non-terminal results from executing the one or more primary actions;
determining whether one or more secondary actions exist responsive to at least one of the one or more primary actions;
if the one or more secondary actions exist, continuing to process the two or more of the primary interpretations, the one or more secondary interpretations, the one or more primary actions, and the one or more secondary actions until no further additional actions can be predicted;
upon one or more additional actions not existing, designating one or more non-terminal results for which no additional actions are predicted as one or more terminal results;
scoring the one or more terminal results to create one or more terminal results with the highest score;
designating the one or more terminal results with the highest score as one or more top results; and
outputting at least one of the top results to the user or taking an action defined by at least one of the top results.