IP Library › Granted Patent US 12,694,209
Granted Patent B2
US 12,694,209 · App. 18/428,817 · Granted Jul 28, 2026

Detecting unrelated utterances in a chatbot system

Inventors: Crystal C. Pan (Palo Alto, CA); Guatam Singaraju (Dublin, CA); Vishal Vishnoi (Redwood City, CA); Srinivasa Phani Kumar Gadde (Belmont, CA)
Assignee: Oracle International Corporation
G06F40/284G06F18/23213G06F18/24G06F40/216G06F40/35G06N20/00H04L51/02
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,694,209
App. No.
18/428,817
Filed
Jan 31, 2024
Granted
Jul 28, 2026
Kind
B2
Art Unit
2146
USPC
709/206
Abstract

Techniques are described to determine whether an input utterance is unrelated to a set of skill bots associated with a master bot. In some embodiments, a system described herein includes a training system and a master bot. The training system trains a classifier of the master bot. The training includes accessing training utterances associated with the skill bots and generating training feature vectors from the training utterances. The training further includes generating multiple set representations of the training feature vectors, where each set representation corresponds to a subset of the training feature vectors, and configuring the classifier with the set representations. The master bot accesses an input utterance and generates an input feature vector. The master bot uses the classifier to compare the input feature vector to the multiple set representations so as to determine whether the input feature falls outside and, thus, cannot be handled by the skill bots.

Claims (86)

1 . A computer-implemented method comprising:

accessing an input utterance;

determining that the input utterance includes a word that is not included in a plurality of training utterances;

in response to determining that the input utterance includes a word that is not included in the plurality of training utterances, processing the input utterance to generate an input feature vector for the input utterance;

providing the input feature vector to a trained classifier model;

using the trained classifier model to determine that the input utterance is unrelated to any skill bot of a plurality of skill bots based on the input feature vector, wherein the trained classifier model determines that the input utterance is unrelated to any skill bot of the plurality of skill bots by comparing the input feature vector to each set representation of a plurality of set representations, wherein each set representation of the plurality of set representations represents a cluster of training feature vectors associated with training data used to train the trained classifier model, a composite feature vector that is an aggregate of one or more of the training feature vectors, or a combination thereof; and

in response to determining that the input utterance is unrelated to any skill bot of the plurality of skill bots, outputting an indication representing that the input utterance cannot be handled by any skill bot of the plurality of skill bots.

2 . The method of claim 1 , further comprising:

accessing the training data, wherein the training data comprises the training utterances;

generating training feature vectors from the training utterances, the training feature vectors comprising respective training feature vectors associated with each skill bot of the plurality of skill bots;

generating the plurality of set representations; and

training a classifier model to result in the trained classifier model based on the plurality of set representations.

3 . The method of claim 2 , wherein:

generating the plurality of set representations comprises generating clusters to which the training feature vectors are assigned.

4 . The method of claim 3 , further comprising:

accessing a second input utterance as a second user input;

generating a second input feature vector from the second input utterance;

determining that the second input feature vector falls inside a boundary of a respective cluster of training feature vectors of the plurality of clusters of training feature vectors; and

in response to determining that the second input feature vectors falls inside the boundary of the respective cluster of training feature vectors, forwarding the second input utterance to a skill bot associated with the respective cluster of training feature vectors for processing.

5 . The method of claim 2 , wherein generating the plurality of set representations:

dividing the training utterances into conversation categories; and

generating a plurality of composite feature vectors, wherein the plurality of composite feature vectors correspond to the conversation categories, wherein generating the plurality of composite feature vectors comprises, for each conversation category of the conversation categories, generating a respective composite feature vector of the plurality of composite feature vectors as an aggregate of respective training feature vectors of the training feature vectors.

6 . The method of claim 5 , further comprising:

accessing a second input utterance as a second user input;

generating a second input feature vector from the second input utterance;

determining that the second input feature vector is sufficiently similar to a respective composite feature vector of the plurality of composite feature vectors; and

in response to determining that the second input feature vector is sufficiently similar to the composite feature vector, forwarding the second input utterance to a skill bot associated with the respective composite feature vector for processing.

7 . The method of claim 1 , further comprising:

processing the input utterance to perform an action responsive to the input utterance.

8 . A system comprising:

one or more processors; and

one or more computer readable storage media storing instructions that, when executed by the one or more processors, cause the system to perform operations comprising:

accessing an input utterance;

determining that the input utterance includes a word that is not included in a plurality of training utterances;

in response to determining that the input utterance includes a word that is not included in the plurality of training utterances, processing the input utterance to generate an input feature vector for the input utterance;

providing the input feature vector to a trained classifier model;

using the trained classifier model to determine that the input utterance is unrelated to any skill bot of a plurality of skill bots based on the input feature vector, wherein the trained classifier model determines that the input utterance is unrelated to any skill bot of the plurality of skill bots by comparing the input feature vector to each set representation of a plurality of set representations, wherein each set representation of the plurality of set representations represents a cluster of training feature vectors associated with training data used to train the trained classifier model, a composite feature vector that is an aggregate of one or more of the training feature vectors, or a combination thereof; and

in response to determining that the input utterance is unrelated to any skill bot of the plurality of skill bots, outputting an indication representing that the input utterance cannot be handled by any skill bot of the plurality of skill bots.

9 . The system of claim 8 , wherein the operations further comprise:

accessing the training data, wherein the training data comprises the training utterances;

generating training feature vectors from the training utterances, the training feature vectors comprising respective training feature vectors associated with each skill bot of the plurality of skill bots;

generating the plurality of set representations; and

training a classifier model to result in the trained classifier model based on the plurality of set representations.

10 . The system of claim 9 , wherein:

generating the plurality of set representations comprises generating clusters to which the training feature vectors are assigned.

11 . The system of claim 10 , wherein the operations further comprise:

accessing a second input utterance as a second user input;

generating a second input feature vector from the second input utterance;

determining that the second input feature vector falls inside a boundary of a respective cluster of training feature vectors of the plurality of clusters of training feature vectors; and

in response to determining that the second input feature vectors falls inside the boundary of the respective cluster of training feature vectors, forwarding the second input utterance to a skill bot associated with the respective cluster of training feature vectors for processing.

12 . The system of claim 9 , wherein generating the plurality of set representations comprises:

dividing the training utterances into conversation categories; and

generating a plurality of composite feature vectors, wherein the plurality of composite feature vectors correspond to the conversation categories, wherein generating the plurality of composite feature vectors comprises, for each conversation category of the conversation categories, generating a respective composite feature vector of the plurality of composite feature vectors as an aggregate of respective training feature vectors of the training feature vectors.

13 . The system of claim 12 , wherein the operations further comprise:

accessing a second input utterance as a second user input;

generating a second input feature vector from the second input utterance;

determining that the second input feature vector is sufficiently similar to a respective composite feature vector of the plurality of composite feature vectors; and

in response to determining that the second input feature vector is sufficiently similar to the composite feature vector, forwarding the second input utterance to a skill bot associated with the respective composite feature vector for processing.

14 . The system of claim 8 , further comprising the skill bot, wherein the skill bot is configured to process the input utterance to perform an action responsive to the input utterance.

15 . One or more non-transitory computer-readable media storing computer-readable instructions that, when executed by a processing system, cause a system to perform operations comprising:

accessing an input utterance;

determining that the input utterance includes a word that is not included in a plurality of training utterances;

in response to determining that the input utterance includes a word that is not included in the plurality of training utterances, processing the input utterance to generate an input feature vector for the input utterance;

providing the input feature vector to a trained classifier model;

using the trained classifier model to determine that the input utterance is unrelated to any skill bot of a plurality of skill bots based on the input feature vector, wherein the trained classifier model determines that the input utterance is unrelated to any skill bot of the plurality of skill bots by comparing the input feature vector to each set representation of a plurality of set representations, wherein each set representation of the plurality of set representations represents a cluster of training feature vectors associated with training data used to train the trained classifier model, a composite feature vector that is an aggregate of one or more of the training feature vectors, or a combination thereof; and

in response to determining that the input utterance is unrelated to any skill bot of the plurality of skill bots, outputting an indication representing that the input utterance cannot be handled by any skill bot of the plurality of skill bots.

16 . The one or more non-transitory computer-readable media of claim 15 , wherein the operations further comprise:

accessing the training data, wherein the training data comprises the training utterances;

generating training feature vectors from the training utterances, the training feature vectors comprising respective training feature vectors associated with each skill bot of the plurality of skill bots;

generating the plurality of set representations; and

training a classifier model to result in the trained classifier model based on the plurality of set representations.

17 . The one or more non-transitory computer-readable media of claim 16 , wherein:

generating the plurality of set representations comprises generating clusters to which the training feature vectors are assigned.

18 . The one or more non-transitory computer-readable media of claim 17 , wherein the operations further comprise:

accessing a second input utterance as a second user input;

generating a second input feature vector from the second input utterance;

determining that the second input feature vector falls inside a boundary of a respective cluster of training feature vectors of the plurality of clusters of training feature vectors; and

in response to determining that the second input feature vectors falls inside the boundary of the respective cluster of training feature vectors, forwarding the second input utterance to a skill bot associated with the respective cluster of training feature vectors for processing.

19 . The one or more non-transitory computer-readable media of claim 16 , wherein generating the plurality of set representations comprises:

dividing the training utterances into conversation categories; and

generating a plurality of composite feature vectors, wherein the plurality of composite feature vectors correspond to the conversation categories, wherein generating the plurality of composite feature vectors comprises, for each conversation category of the conversation categories, generating a respective composite feature vector of the plurality of composite feature vectors as an aggregate of respective training feature vectors of the training feature vectors.

20 . The one or more non-transitory computer-readable media of claim 19 , wherein the operations further comprise:

accessing a second input utterance as a second user input;

generating a second input feature vector from the second input utterance;

determining that the second input feature vector is sufficiently similar to a respective composite feature vector of the plurality of composite feature vectors; and

in response to determining that the second input feature vector is sufficiently similar to the composite feature vector, forwarding the second input utterance to a skill bot associated with the respective composite feature vector for processing.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2024
From: PAN, CRYSTAL C; SINGARAJU, GAUTAM; VISHNOI, VISHAL; GADDE, SRINIVASA PHANI KUMAR
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 066320/0087 →
Continuity (3)
Continuation 17017076 · Sep 10, 2020
Provisional Application 62899700 · Sep 12, 2019
Related Publication 20240169153A1 · May 23, 2024
References Cited (71)
US 5692100A · Tsuboka et al. · 1997 [cited by applicant]
US 6393460B1 · Gruen · 2002 [cited by examiner]
US 7970766B1 · Shamsi · 2011 [cited by examiner]
US 10616148B2 · Akbulut et al. · 2020 [cited by applicant]
US 10715470B1 · Rolia et al. · 2020 [cited by applicant]
US 10726830B1 · Mandal et al. · 2020 [cited by applicant]
US 10812424B1 · Bommaraju et al. · 2020 [cited by applicant]
US 11004454B1 · Srinivasan et al. · 2021 [cited by applicant]
US 11151988B1 · Yavagal et al. · 2021 [cited by applicant]
US 20020188681A1 · Gruen et al. · 2002 [cited by applicant]
US 20050044487A1 · Bellegarda et al. · 2005 [cited by applicant]
US 20050131932A1 · Weare · 2005 [cited by applicant]
US 20050182625A1 · Azara et al. · 2005 [cited by applicant]
US 20130325759A1 · Rachevsky et al. · 2013 [cited by applicant]
US 20140288917A1 · Orsini · 2014 [cited by examiner]
US 20150317383A1 · Alkov et al. · 2015 [cited by applicant]
US 20170180284A1 · Smullen et al. · 2017 [cited by applicant]
US 20180025069A1 · Kataria · 2018 [cited by applicant]
US 20180114313A1 · Feng et al. · 2018 [cited by applicant]
US 20180181558A1 · Emery · 2018 [cited by examiner]
US 20180247648A1 · Nadimpalli et al. · 2018 [cited by applicant]
US 20180331839A1 · Gao et al. · 2018 [cited by applicant]
US 20190108836A1 · Kato et al. · 2019 [cited by applicant]
US 20190266287A1 · Chen et al. · 2019 [cited by applicant]
US 20190327103A1 · Niekrasz · 2019 [cited by applicant]
US 20190362712A1 · Karpukhin · 2019 [cited by applicant]
US 20190392826A1 · Lee et al. · 2019 [cited by applicant]
US 20200042613A1 · Jiang · 2020 [cited by examiner]
US 20200126533A1 · Doyle et al. · 2020 [cited by applicant]
US 20200185102A1 · Leventhal et al. · 2020 [cited by applicant]
US 20200259891A1 · Abraham · 2020 [cited by examiner]
US 20200336802A1 · Russell · 2020 [cited by examiner]
US 20200395008A1 · Cohen et al. · 2020 [cited by applicant]
US 20210083994A1 · Pan et al. · 2021 [cited by applicant]
US 20210280185A1 · Tan et al. · 2021 [cited by applicant]
US 20210311973A1 · Radhakrishnan et al. · 2021 [cited by applicant]
US 20220164542A1 · Silverstein et al. · 2022 [cited by applicant]
CA 2068041A1 · 1993 [cited by applicant]
CN 106062871A · 2016 [cited by applicant]
CN 107766559A · 2018 [cited by applicant]
CN 108829818A · 2018 [cited by applicant]
CN 108960402A · 2018 [cited by applicant]
JP 2000347685A · 2000 [cited by applicant]
JP 2005164836A · 2005 [cited by applicant]
JP 2006039575A · 2006 [cited by applicant]
JP 2017534941A · 2017 [cited by applicant]
JP 2019070957A · 2019 [cited by applicant]
JP 6555838B1 · 2019 [cited by applicant]
KR 20190058256A · 2019 [cited by applicant]
WO 2018061774A1 · 2018 [cited by applicant]
Guo, Shang, et al. “Conversational bootstrapping and other tricks of a concierge robot.” Proceedings of the 2017 ACM/IEEE international conference on human-robot interaction. (Year: 2017). [cited by examiner]
Worswick, Steve, Dealing with Off Topic Input (Sep. 5, 2019) (available at https://medium.com/pandorabots-blog/dealing-with-off-topic-input-3857af3e5024) (Year: 2019). [cited by examiner]
Xu, Lin, et al. “End-to-end knowledge-routed relational dialogue system for automatic diagnosis.” Proceedings of the AAAI conference on artificial intelligence. vol. 33. No. 01. 2019 (Year: 2019). [cited by examiner]
U.S. Appl. No. 17/017,076 , First Action Interview Office Action Summary, Mailed on Oct. 18, 2023, 33 pages. [cited by applicant]
U.S. Appl. No. 17/017,076 , First Action Interview Pilot Program Pre-Interview Communication, Mailed on Sep. 25, 2023, 33 pages. [cited by applicant]
U.S. Appl. No. 17/017,076 , Notice of Allowance, Mailed on Dec. 28, 2023, 10 pages. [cited by applicant]
European Application No. EP20797238.1 , Office Action, Mailed on Jun. 22, 2023, 6 pages. [cited by applicant]
Gowda et al., “Semi-Supervised Text Categorization Using Recursive K-means Clustering”, Communications in Computer and Information Science, vol. 709, 2017, 10 pages. [cited by applicant]
Kim et al., “Joint Learning of Domain Classification and Out-of-Domain Detection with Dynamic Class Weighting for Satisficing False Acceptance Rates”, Available Online at :https://arxiv.org/pdf/1807.00072.pdf, Jun. 29, … [cited by applicant]
Li et al., “Distributed Open-Domain Conversational Understanding Framework With Domain Independent Extractors”, IEEE Spoken Language Technology Workshop, Dec. 7, 2014, pp. 566-571. [cited by applicant]
Nakano et al., “A Two-Stage Domain Selection Framework for Extensible Multi-Domain Spoken Dialogue Systems”, Proceedings of the Sigdial 2011: The 12th Annual Meeting of the Special Interest Group on Discourse and Dialog… [cited by applicant]
International Application No. PCT/US2020/050429 , International Preliminary Report on Patentability, Mailed on Mar. 24, 2022, 15 pages. [cited by applicant]
International Application No. PCT/US2020/050429 , International Search Report and Written Opinion, Mailed on Jan. 20, 2021, 20 pages. [cited by applicant]
Singaraju “Introduction to Embedding in Natural Language Processing”, Oracle AI & Data Science Blog, Available Online at: https://blogs.oracle.com/datascience/introduction-to-embedding-in-natural-language-processing, Ja… [cited by applicant]
Stockl , “Classification of Chatbot Inputs”, Available Online at https://www.researchgate.net/profile/Andreas-Stoeckl/publication/318661551_Classification_of_Chatbot_Inputs/links/597642e8a6fdcc8348aa52e4/Classification-… [cited by applicant]
EP20797238.1 , “Summons to Attend Oral Proceedings”, Feb. 26, 2024, 8 pages. [cited by applicant]
JP2022-516179 , “Office Action”, Nov. 5, 2024, 4 pages. [cited by applicant]
CN202080063757.9, “Office Action”, May 12, 2025, 25 pages. [cited by applicant]
IN202247007973, “First Examination Report”, Feb. 28, 2025, 8 pages. [cited by applicant]
JP2022-516179, “Notice of Decision to Grant”, Feb. 18, 2025, 3 pages. [cited by applicant]
JP2025-040153, “Office Action”, Mar. 31, 2026, 7 pages. [cited by applicant]