Management of focus information sharing dialogues based on discourse tree

By constructing discourse trees and using rhetorical structure theory to analyze the logical organization of text, autonomous agents can effectively manage dialogues, solving the problem of incomplete information presentation in existing technologies and achieving orderly navigation of dialogues and accurate understanding of user intent.

CN113761158BActive Publication Date: 2026-03-24ORACLE INT CORP
View PDF 4 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-06-01
Publication Date
2026-03-24

AI Technical Summary

Technical Problem

Existing autonomous agents cannot effectively separate topic structure and navigation structure when managing conversations, resulting in incomplete or random information presentation, failure to fully understand user intent, and impact on task completion and the accuracy of suggestions.

Method used

By constructing discourse trees to manage dialogue, this approach utilizes Rhetorical Structure Theory (RST) to analyze the logical organization of text, creates discourse trees and provides navigation to identify topics, adjusts dialogue content based on user interests, identifies rhetorical connections, and provides relevant information.

Benefits of technology

It enables orderly navigation of dialogues and accurate presentation of information, improves the autonomous agent's ability to understand user intent, and ensures the integrity of information and the effective completion of tasks.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113761158B_ABST
    Figure CN113761158B_ABST
Patent Text Reader

Abstract

The present disclosure relates to management of focus information sharing conversations based on discourse trees. The disclosed technology relates to managing a conversation between a user device and an autonomous agent. For example, a computing device creates a discourse tree from a text body that includes segments. The discourse tree includes root nodes, non-terminal nodes, and terminal nodes. Each non-terminal node represents a rhetorical relationship between two of the segments, and each terminal node is associated with one of the segments. The computing device determines a primary topic of the text body from the discourse tree. The computing device provides the primary topic to the user device, and in response, receives a user utterance. The computing device determines an intent from the user utterance, and navigates the discourse tree to locate relevant information that is consistent with the intent.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross Reference to Related Applications

[0002] This application is a continuation-in-part of 16 / 995,302, filed August 17, 2020, which is a continuation of U.S. Application No. 16 / 145,644, filed September 28, 2018, now issued as U.S. Patent No. 10,853,574, which claims the benefit of U.S. Provisional Application No. 62 / 564,961, filed September 28, 2017, and U.S. Provisional Application No. 62 / 729,335, filed September 10, 2018, all of which are incorporated by reference herein in their entirety. This application claims the benefit of U.S. Provisional Application No. 63 / 032,895, filed June 1, 2020, which is incorporated by reference herein in its entirety. TECHNICAL FIELD

[0003] The present disclosure relates generally to linguistics. More specifically, the present disclosure relates to managing a dialogue session using a discourse tree. BACKGROUND

[0004] As computational linguistics and machine learning have improved, autonomous agents can be trained to answer questions received from a user device or to manage a dialogue with a user device. For example, an autonomous agent can be trained with various content, such as customer service histories or other databases.

[0005] However, autonomous agents operating using machine learning models trained from such content have deficiencies. For example, many deep learning systems are unable to separate topic structure and navigation structure, and such solutions also do not guarantee that all relevant information is actually presented to the user.

[0006] Accordingly, there is a need for improved solutions for presenting information to a user device. SUMMARY

[0007] Systems, devices, and methods of the present disclosure relate generally to managing a dialogue between an autonomous agent and a user device. For example, a computing device creates a discourse tree from a text body and determines a primary topic of the text body from the discourse tree. The computing device provides the primary topic to the user device and, in response, receives a user utterance. The computing device conducts a hybrid active dialogue and attempts to drive the user through text-based content segments for user interest. The computing device determines an intent from the user utterance and navigates the discourse tree to locate relevant information to the intent. The computing device navigates the user through text segments in an order determined by user interest and by configuration of the discourse tree. Figure 1

[0008] ​In one aspect, a method involves creating a discourse tree from a text comprising segments. The discourse tree includes a root node, non-terminal nodes, and terminal nodes. Each non-terminal node represents a rhetorical relationship between two of the segments, and each terminal node is associated with one of the segments. The segments are elementary discourse units. The method involves determining a subset of terminal nodes from the discourse tree, the subset of terminal nodes being associated with a non-terminal node representing a rhetorical relationship of an elaboration type and being associated with a core elementary discourse unit of the elaboration. The method further involves computing, for each node of the subset of terminal nodes, a respective path length from the root node. The method further involves identifying, from the subset of terminal nodes, a topic node having a path length that is a minimum path length of the path lengths. The method further involves determining a topic of the discourse tree from the topic node by extracting a noun phrase from the core elementary discourse unit associated with the topic node. The method further involves providing the topic to a user device.

[0009] In another aspect, the method further involves identifying, in the discourse tree, an auxiliary elementary discourse unit associated with the topic node by the rhetorical relationship of the elaboration type. The method further involves providing, to the user device, text associated with the auxiliary elementary discourse unit.

[0010] In another aspect, the method further involves identifying, in the discourse tree, an additional terminal node from the subset of terminal nodes, the additional terminal node having an additional path length that is equal to or greater than the path length. The method further involves extracting additional text from an additional core elementary discourse unit associated with the additional terminal node. The method further involves providing the additional text to the user device.

[0011] In another aspect, the method further involves navigating, in the discourse tree, to an additional non-terminal node, the additional non-terminal node being connected to the topic node and representing an additional rhetorical relationship. The method further involves determining an additional topic from the additional non-terminal node by extracting an additional noun phrase from an additional core elementary discourse unit associated with the additional non-terminal node. The method further involves performing an action in response to determining that the additional rhetorical relationship is one of the elaboration type, the condition type, or the temporal sequence type. The action includes extracting additional text from the additional core elementary discourse unit and providing the additional text to the user device.

[0012] In another aspect, the method further involves receiving speech from the user device. The method further involves determining that the speech indicates a familiarity with an additional topic. The method further involves identifying an additional non-terminal node in the discourse tree, the additional non-terminal node including text representing the additional topic and representing an additional rhetorical relation. The method further involves performing an action in response to determining that the additional rhetorical relation is one of an elaboration type, a condition type, or a contrast type. The method further involves extracting additional text from a base discourse unit associated with a terminal node connected to the additional terminal node. The method further involves providing the additional text to the user device.

[0013] In another aspect, the method further involves receiving speech from the user device. The method further involves determining that the speech includes a confirmation of interest in an additional topic. The method further involves identifying an additional non-terminal node in the discourse tree, the additional non-terminal node including text representing the additional topic and representing an additional rhetorical relation. The method further involves extracting additional text from a base discourse unit associated with a terminal node connected to the additional non-terminal node. The method further involves providing the additional text to the user device.

[0014] In another aspect, the method further involves receiving speech from the user device. The method further involves determining that the speech includes a question unrelated to the topic. The method further involves performing an action in response to the determination. The action includes identifying one or more keywords from the speech, identifying additional text by providing a query including the keywords to a search engine, and providing text of one or more base discourse units from the additional text to the user device.

[0015] In another aspect, the method further involves forming a conversational discourse tree representing the text from the discourse tree by matching each segment having a verb to a corresponding verb signature. The method further involves identifying a verb signature from the conversational discourse tree that corresponds to the topic node. The method further involves extracting a theme from the verb signature. The method further involves providing the theme to the user device.

[0016] The above-described methods can be implemented as tangible computer-readable media and / or operate within a computer processor and attached memory. BRIEF DESCRIPTION OF DRAWINGS

[0017] Figure 1 An exemplary rhetorical classification environment is shown in accordance with one aspect.

[0018] Figure 2 An example of a discourse tree is depicted in accordance with one aspect.

[0019] Figure 3 Another example of a discourse tree is depicted in accordance with an aspect.

[0020] Figure 4 An illustrative schema is depicted in accordance with an aspect.

[0021] Figure 5 A node-linked representation of a hierarchical binary tree is depicted in accordance with an aspect.

[0022] Figure 6 An example of an illustrative indented text encoding of a representation in Figure 5

[0023] Figure 7 An example DT is depicted in accordance with an aspect for an example request regarding property taxes.

[0024] Figure 8 An example response to a question represented in Figure 7

[0025] Figure 9 A discourse tree of an official answer is illustrated in accordance with an aspect.

[0026] Figure 10 A discourse tree of an original answer is illustrated in accordance with an aspect.

[0027] Figure 11 An exchange discourse tree of a first agent's claim is illustrated in accordance with an aspect.

[0028] Figure 12 An exchange discourse tree of a second agent's claim is illustrated in accordance with an aspect.

[0029] Figure 13 An exchange discourse tree of a third agent's claim is illustrated in accordance with an aspect.

[0030] Figure 14 A parse thicket is illustrated in accordance with an aspect.

[0031] Figure 15 An example process for constructing an exchange discourse tree is illustrated in accordance with an aspect.

[0032] Figure 16 An example of an extended discourse tree is depicted in accordance with an aspect.

[0033] Figure 17 A flowchart of an example of a process for creating an extended discourse tree is depicted in accordance with an aspect.

[0034] Figure 18 ​​Relationships between text units of documents of different granularity levels according to an aspect are also depicted.

[0035] Figure 19 A flowchart of an example of a process of navigating between documents using an extended discourse tree according to an aspect is depicted.

[0036] Figure 20 An example of an autonomous agent answering a user question using an extended discourse tree according to an aspect is depicted.

[0037] Figure 21 An example of an extended discourse tree according to an aspect is depicted.

[0038] Figure 22 A comparison between navigation using a search engine and navigation using an autonomous agent enabled with an extended discourse tree according to an aspect is depicted.

[0039] Figure 23 A flowchart of an example of a process of navigating within a document using a discourse tree according to an aspect is depicted.

[0040] Figure 24 An example discourse tree and its navigation according to an aspect is depicted.

[0041] Figure 25 An example of a dialogue resulting from a discourse tree depicted in Figure 24 An example of a dialogue resulting from a discourse tree depicted in

[0042] Figure 26 An example discourse tree and its navigation according to an aspect is depicted.

[0043] Figure 27 An example discourse tree and its navigation according to an aspect is depicted.

[0044] Figure 28 An example discourse tree and its navigation according to an aspect is depicted.

[0045] Figure 29 An example discourse tree and its navigation according to an aspect is depicted.

[0046] Figure 30 A simplified diagram of a distributed system for implementing one of the aspects is depicted.

[0047] Figure 31 A simplified block diagram of components of a system environment according to an aspect, through which services provided by components of an aspect system can be provided as a cloud service.

[0048] Figure 32 An example computer system in which aspects of the application can be implemented is illustrated. DETAILED DESCRIPTION

[0049] The disclosed technology provides technical improvements in the field of computer-implemented linguistics. More specifically, certain aspects relate to an autonomous agent that manages a conversation with a user device by utilizing discourse trees and / or conversational discourse trees. As explained herein, a discourse tree represents rhetorical relationships between elementary discourse units of a particular document. A conversational discourse tree (CDT) is a discourse tree supplemented by one or more conversational actions. A conversational action is a cooperative action taken by an individual on the basis of mutual negotiation and argumentation.

[0050] In an example, an autonomous agent ("chatbot") manages a conversational session. The agent processes an input document and forms a discourse tree from the document. The agent determines a topic of the document using rhetorical relations in the discourse tree and provides the topic to the user device. The user device transmits utterances to the agent, which in turn determines an intent of the utterances. Examples of intents include disagreement, request for further explanation, request for details, or request for opposing viewpoints. Based on the intent, the agent navigates the discourse tree according to one or more rhetorical relations to obtain a relevant response. This process can continue as the user device navigates the document.

[0051] In contrast, existing keyword-based solutions fail to capture the relevance of different text portions within a text body, resulting in an autonomous agent attempting to mimic human conversation without fully understanding the conversational discourse. Such solutions result in an autonomous agent issuing random sequences of utterances, making it difficult to complete a task or provide advice.

[0052] Discourse trees are derived from the theory of rhetorical structure (RST). RST models the logical organization of a text by the author in terms of the relationships between portions of the text. RST mimics text coherence by forming a hierarchical, connected text structure via discourse trees. Rhetorical relations are divided into the categories of coordinate and subordinate; these relations span two or more text spans and thus enable coherence. These text spans are referred to as elementary discourse units (EDUs). Clauses in a sentence and sentences in a text are logically connected by the author. The meaning of a given sentence is related to the meaning of the preceding and following sentences.

[0053] Leaves of a discourse tree correspond to connected atomic text ranges EDUs. Adjacent EDUs are connected together by coherent relations (e.g., attribution, sequence) to form higher-level discourse units. The leaves of a particular EDU are logically related. This relationship is referred to as the coherent structure of the text. Example relations include elaboration and enablement. As used herein, "nuclearity" refers to which text segment, snippet, or range is more important for the author's purpose. A "nucleus" refers to a text range that is more important for the author's purpose than a "satellite," which is less important for the author's purpose.

[0054] Certain Definitions

[0055] As used herein, "text unit" refers to a unit of text. Examples include basic discourse units, phrases, snippets, sentences, paragraphs, pages, and documents.

[0056] As used herein, "entity" refers to a distinct and independently existing thing. Entities can be used in text units. Examples of entities include a person, a company, a location, a thing, a document name, or a date or time.

[0057] As used herein, "rhetorical structure theory" is the field of study and learning that provides the theoretical basis for how the coherence of discourse can be analyzed.

[0058] As used herein, "discourse tree" or "DT" refers to a structure that represents the rhetorical relations of a sentence to a portion of the sentence.

[0059] As used herein, "rhetorical relation," "rhetorical relationship," or "coherent relation" or "discourse relation" refers to how two segments of discourse are logically connected to each other. Examples of rhetorical relations include elaboration, contrast, and attribution.

[0060] As used herein, "sentence snippet" or "snippet" is a portion of a sentence that can be separated from the rest of the sentence. A snippet is a basic discourse unit. For example, for the sentence "Investigator 1 said that the evidence indicated that Organization 1 was responsible for Incident 1," the two snippets are "Investigator 1 said that the evidence indicated that Organization 1" and "was responsible for Incident 1." A snippet can but is not required to include a verb.

[0061] As used herein, "index" is a table, data structure, pointer, or other mechanism that links two keywords, data, or portions of text. An index can include searchable content. Examples of indexes include an inverted index, a searchable index, and string matching. An inverted index is also searchable.

[0062] Turning now to the drawings, Figure 1 An example document navigation environment is shown in accordance with one aspect.Figure 1 One or more of input documents 110a-n, computing device 120, user device 170, and data network 150 are included. In Figure 1 In the depicted example, computing device 120 implements an autonomous agent that uses discourse trees and / or conversational discourse trees to manage a conversation with user device 170.

[0063] More specifically, computing device 120 can execute one or more of discourse navigation application 122, cognitive state manager 124, user intent recognizer 126, and machine learning model 130. Additionally, computing device 120 can include domain ontology 128 and training data 135. An example of computing device 120 is distributed system 3000 and client computing devices 3002, 3004, 3006, and 3008.

[0064] User device 170 can be any mobile device, such as a mobile phone, smart phone, tablet computer, laptop computer, smart watch, etc. User device 170 communicates with computing device 120 via data network 160 to computing device 120 or a remote server. Data network 160 can be any public or private network, wired or wireless network, wide area network, local area network, or the Internet. The functionality of user device 170 can be implemented in software, e.g., via an application or web application. User device 170 includes display 171.

[0065] In a more specific example, discourse navigation application 122 creates a discourse tree from one of input documents 110a-n. Discourse navigation application 122 uses the created discourse tree to navigate user device through the input document. For example, display 171 depicts three messages 181-183. Discourse navigation application 122 outputs message 181 to user device, which is “[Statement 1].” In response, user device provides message 182, which is “Why did they do that? Don’t believe this.” Discourse navigation application 122 determines the questioning in message 182 and generates message 183, which states “This is according to Media 1’s reporting.”

[0066] Various techniques can be used to determine such an intent of a message. Based on the intent, discourse navigation application 122 can determine how to respond. Examples of processes that involve how to respond can be found with respect to Figure 23 Examples of processes that involve how to respond can be found with respect to process 2300 in FIG. 23. Discourse navigation application 122 can continue this navigation process until the discourse tree is completely traversed.

[0067] The cognitive state manager 124 can model the state of knowledge of the user. For example, initially, the background knowledge of the user is unknown when the autonomous agent initiates a conversation with the user. But during the course of the conversation session, the cognitive state manager 124 updates based on new information received from the user device 170. In some cases, the cognitive state is used to provide adjusted responses to the user device 170.

[0068] The user intent recognizer 126 detects the user state from utterances received from the user device 170. For example, the user can desire more information. Or the user can desire to understand an opposing viewpoint.

[0069] The domain ontology 128 includes information such as terms, entities, etc. with respect to a particular domain (e.g., topic). In some cases, the autonomous agent can be domain specific. Examples of domains include finance, business, engineering, etc.

[0070] In some aspects, the disclosed technology can use machine learning to perform various functions. The machine learning model 130 can be trained and / or used by the discourse navigation application 122 for prediction and / or classification. For example, the machine learning model 130 can be trained with training data 135 to predict whether two discourse trees match each other or whether a particular discourse tree corresponds to text with a controversy.

[0071] Rhetorical structure theory and discourse trees

[0072] Linguistics is the scientific study of language. For example, linguistics can include the structure of sentences (syntax), such as subject-verb-object; the meaning of sentences (semantics), such as dog bites man versus man bites dog; and the behavior of speakers in conversation, i.e., discourse analysis or language analysis outside of sentences.

[0073] The theoretical foundation of discourse (rhetorical structure theory (RST)) can be traced to Mann, William and Thompson, Sandra, "Rhetorical structure theory: A Theory of Text organization", Text-Interdisciplinary Journal for the Study of Discourse, 8(3):243-281, 1988. Similar to the way that syntax and semantics of programming language theory help enable modern software compilers, RST helps enable discourse analysis. More specifically, RST posits structural chunks at at least two levels, a first level such as coreness and rhetorical relations, and a second level of structure or schema. A discourse parser or other computer software can parse text into discourse trees.

[0074] Rhetorical relations

[0075] As discussed, aspects described herein use rhetorical relations and discourse trees. Rhetorical relations can be described in different ways. For example, Mann and Thompson describe twenty-three possible relations. C. Mann, William and Thompson, Sandra (1987) (Mann and Thompson). Rhetorical Structure Theory: A Theory of Text Organization.

[0076] Other numbers of relations are possible. Table 2 below lists different rhetorical relations.

[0077]

[0078]

[0079] Some empirical studies assume that most texts are built using core- satellite relations. See Mann and Thompson.

[0080] But other relations do not have a clear choice of core. Examples of such relations are shown in Table 3 below.

[0081]

[0082] Figure 2 An example of a discourse tree is depicted in accordance with an aspect. Figure 2 A discourse tree 200 is included. The discourse tree includes a text span 201, a text span 202, a text span 203, a relation 210, and a relation 211. Figure 2 The numbers in correspond to the three text spans. Figure 2 The following example text, which corresponds to the three text span numbers 1, 2, 3:

[0083] 1. The 2017 Hawaii History Conference will be held in Honolulu, Hawaii

[0084] 2. It is expected that 200 historians from the United States and Asia will attend

[0085] 3. The conference will address how Polynesians navigated to Hawaii

[0086] For example, the relation 210 or elaboration describes the relationship between text span 201 and text span 202. The relation 210 depicts the relationship between text span 203 and 204, namely elaboration. As depicted, text spans 202 and 203 further elaborate on text span 201. In the above example, given the goal of informing the reader of the conference, text span 1 is the core. Text spans 2 and 3 provide more details about the conference. In Figure 2In this figure, horizontal numbers such as 1-3, 1, 2, 3 cover the extent of the text (which can be made up of more extents); vertical lines represent one or more cores; and curved lines represent rhetorical relations (elaboration) and the direction of the arrow points from satellite to core. If the text extent is only satellite and not core, then removing the satellite will still leave coherent text. If a core is removed from Figure 2 the text extents 2 and 3 are then difficult to understand.

[0087] Figure 3 Another example of a discourse tree is depicted in accordance with an aspect. Figure 3 It includes components 301 and 302, text extents 305 to 307, relation 310 and relation 311. Relation 310 (elaboration) describes the relationship between component 306 and 305 and 307 and 305. Figure 3 It involves the following text extents:

[0088] 1. The new technical report abstract is currently in the library near the periodicals section.

[0089] 2. Please sign your name in any way you like to see.

[0090] 3. The last day for registration is May 31.

[0091] As can be seen, relation 310 depicts a relationship between entity 307 and 306, namely, elaboration. Figure 3 It is illustrated that although cores can be nested, there is only one most core text extent.

[0092] Building a discourse tree

[0093] A discourse tree can be generated in different ways. A simple example of a bottom-up approach to building a DT is:

[0094] (1) Split the discourse text into units by:

[0095] (a) Unit size can vary depending on the goal of the analysis

[0096] (b) Units are usually clauses

[0097] (2) Examine each unit and its adjacent units. Are there any relations between the units?

[0098] (3) If so, mark the relation.

[0099] (4) If not, the unit can be at the boundary of a higher-level relation. Look at the relations between larger units (extents).

[0100] (5) Continue until all units in the text have been considered.

[0101] Mann and Thompson also describe a second level of building block structures called schema applications. In RST, rhetorical relations do not map directly onto text; they fit onto structures called schema applications, which in turn fit onto text. Schema applications are derived from simpler structures called schemas (as shown in Figure 4 Each schema indicates how a particular text unit is decomposed into other, smaller text units. A rhetorical structure tree, or DT, is a hierarchical system of schema applications. Schema applications link multiple contiguous text spans and create complex text spans, which in turn can be linked by higher-level schema applications. RST asserts that the structure of each coherent discourse can be described by a single rhetorical structure tree, with the top schema creating a span that covers the entire discourse.

[0102] Figure 4 An illustrative schema according to an aspect is depicted. Figure 4 A joint schema is shown, which is a list of items made up of a core with no adjuncts. Figure 4 Schemas 401-406 are depicted. Schema 401 depicts an environmental relation between text spans 410 and 411. Schema 402 depicts a sequence relation between text spans 420 and 421 and a sequence relation between text spans 421 and 422. Schema 403 depicts a contrast relation between text spans 430 and 431. Schema 404 depicts a joint relation between text spans 440 and 441. Schema 405 depicts a motivation relation between 450 and 451 and an enabling relation between 452 and 451. Schema 406 depicts a joint relation between text spans 460 and 462. Figure 4 An example of a joint schema of the following three text spans is shown:

[0103] 1. Today's weather will be partly sunny in the New York metropolitan area.

[0104] 2. The weather will be more humid, with average temperatures in the 80's.

[0105] 3. Tonight will be mostly cloudy, with lows in the mid-60s to mid-70s.

[0106] While Figure 2 to Figure 4 Some graphical representations of discourse trees are depicted, but other representations are possible.

[0107] Figure 5 A node-link representation of a hierarchical binary tree according to an aspect is depicted. From Figure 5As can be seen, the leaves of the DT correspond to contiguous non-overlapping text spans called Elementary Discourse Units (EDUs). Adjacent EDUs are connected together by relations (e.g. Elaboration, Attribution...) and form larger discourse units which are also connected together by relations. "Discourse analysis in RST involves two subtasks: discourse segmentation is the task of identifying EDUs, and discourse parsing is the task of linking discourse units into a labeled tree". See Joty, Shafiq R and Giuseppe Carenini, Raymond T Ng and Yashar Mehdad 2013. Combining intra- and multi-sentential rhetorical parsing for document-level discourse analysis. In ACL (1), pages 486-496.

[0108] Figure 5 Text spans are depicted as leaves or terminal nodes on a tree, each text span being numbered in the order of its occurrence in the full text, as shown in Figure 6 Figure 5 The tree 500 is comprised. The tree 500 comprises for example nodes 501 to 507. The nodes indicate relations. The nodes are either non-terminal nodes, like node 501, or terminal nodes, like nodes 502 to 507. As can be seen, nodes 503 and 504 are associated by a joint relation. Nodes 502, 505, 506 and 508 are kernels. The dashed lines indicate that the branches or text spans are satellites. The relations are the nodes in the grey boxes.

[0109] Figure 6 An exemplary indented text encoding is depicted according to an aspect of the representation in Figure 5 Figure 6 The text 600 and text sequences 602 to 604 are comprised. The text 600 is presented in a way that is more computer programmable. The text sequence 602 corresponds to node 502, sequence 603 to node 503 and sequence 604 to node 504. In Figure 6 In the text 600, "N" indicates a kernel and "S" indicates a satellite.

[0110] Example of a discourse parser

[0111] ​​Automatic discourse segmentation can be performed in different ways. For example, given a sentence, a segmentation model identifies the boundaries of composite elementary discourse units by predicting whether a boundary should be inserted before each particular token in the sentence. For example, one framework considers each token in a sentence sequentially and independently. In this framework, the segmentation model scans the sentence token by token and uses a binary classifier such as a support vector machine or logistic regression to predict whether it is appropriate to insert a boundary before the token under examination. In another example, the task is a sequential labeling problem. Once the text is segmented into elementary discourse units, sentence-level discourse analysis can be performed to construct a discourse tree. Machine learning techniques can be used.

[0112] In one aspect of the application, two Rhetorical Structure Theory (RST) discourse parsers are used: a CoreNLP processor that relies on constituent syntax and a FastNLP processor that uses dependency syntax. See Surdeanu, Mihai and Hicks, Thomas and Antonio Valenzuela-Escarcega, Marco. "Two Practical Rhetorical Structure Theory Parsers." (2015).

[0113] In addition, both of the above discourse parsers, the CoreNLP processor and the FastNLP processor, use natural language processing (NLP) for syntactic parsing. For example, Stanford CoreNLP gives the base form of a word, its part of speech, whether it is a company name, a person name, etc., whether it is a normalized date, time, and quantity of number, whether it labels the sentence structure according to phrase and syntactic dependencies, and whether it indicates which noun phrases refer to the same entity. In practice, RST is a static theory that can work in many discourse cases, but can not work in some cases. There are many variables, including but not limited to what the EDUs are in the coherent text, i.e., what discourse segmenter is used, what list of relations is used and what relations are chosen for the EDUs, what document corpus is used for training and testing, and even what parser is used. Thus, for example, in the above-referenced Surdeanu et al. "Two Practical Rhetorical Structure Theory Parsers" paper, tests must be run on a specific corpus using specialized metrics to determine which parser provides better performance. Thus, unlike computer language parsers that give predictable results, discourse parsers (and segmenters) can give unpredictable results depending on the training and / or testing text corpus. Thus, discourse trees are a mix of predictable technology (e.g., compilers) and unpredictable technology (e.g., like chemistry where experiments are needed to determine what combination will give the desired result).

[0114] To objectively determine how well discourse analysis is done, a series of metrics are used, e.g., precision / recall / F1 metrics from Daniel Marcu, "The Theory and Practice of Discourse Parsing and Summarization," MIT Press, (2000). Precision or positive predictive value is the proportion of informative instances among the instances taken, while recall (also known as sensitivity) is the proportion of informative instances among the total amount of informative instances that have been taken. Thus, both precision and recall are based on an understanding and measure of relevance. Suppose a computer program for identifying dogs in photos identifies eight dogs in a photo containing 12 dogs and some cats. Out of the eight dogs identified, five are actually dogs (true positives), while the rest are cats (false positives). The program's precision is 5 / 8, while its recall is 5 / 12. When a search engine returns 30 pages, of which only 20 are informative, and does not return 40 additional informative pages, its precision is 20 / 30 = 2 / 3, while its recall is 20 / 60 = 1 / 3. Thus, in this case, precision is "how useful the search results are," while recall is "how complete the results are." The F1 score (also known as the F score or F measure) is a measure of the accuracy of a test. It considers both the precision and the recall of the test to compute the score: F1 = 2 x ((precision x recall) / (precision + recall)) and is the harmonic mean of precision and recall. The F1 score reaches its best value at 1 (perfect precision and recall) and worst score of 0.

[0115] Analyzing request and response pairs

[0116] Figure 7 An exemplary discourse tree for an example request about property tax is depicted in accordance with one aspect. The node labels are the associations, and the lines with arrows point to the auxiliaries. The cores are solid lines. Figure 7 A discourse tree 700 is depicted that represents the following text.

[0117] Request: "My husband's grandmother gave him his grandfather's truck. She signed the title over but due to my husband having unpaid fines on his license, he was not able to get the truck put in his name. I wanted to put in my name and paid the property tax and got insurance for the truck. By the time it came to sending off the title and getting the tag, I didn't have the money to do so. Now, due to circumstances, I am not going to be able to afford the truck. I went to the insurance place and was refused a refund. I am just wondering that since I am not going to have a tag on this truck, is it possible to get the property tax refunded?"

[0118] The response states: "Property tax is levied on the property you own. Just because you chose not to register it doesn't mean you don't own it, so the tax is not refundable. Even if you haven't been granted ownership of the vehicle yet, you still own it within the tax district and are therefore obligated to pay the tax. Note that all states have time limits for transferring title and paying the use tax. Applying late will incur penalties on top of the normal taxes and fees. You don't need to register the vehicle at the same time, but you absolutely must acquire ownership within the timeframe stipulated by state law." within the period of timestipulated in state law.)”

[0119] from Figure 7 As can be seen from the above text, the following results can be obtained. The statement "My husband's grandmother gave him his grandfather's truck" is explained by "His grandmother signed the ownership transfer agreement, but because of my husband," which is explained by "He still has outstanding fines on his driver's license, so he cannot put the truck in his name," which is further explained by "I want to put the truck in my name," "and paid the property tax," and "and bought insurance for the truck."

[0120] "My husband's grandmother gave him his grandfather's truck. She signed a title transfer agreement, but because my husband still has outstanding fines on his driver's license, he can't register the truck in his name. I want to register the truck in my name, pay the property tax, and buy insurance for it." This is explained below:

[0121] The phrase "I have no money," as used in the context of "accepting ownership and obtaining the license," is related to...

[0122] By "granting ownership"

[0123] This contrasts with the phrase "when it came time to receive the license" in the context of obtaining a license.

[0124] “My husband’s grandmother gave him his grandfather’s truck. She signed a title transfer agreement, but because my husband has outstanding fines on his driver’s license, he can’t put the truck in his name. I wanted to put the truck in my name, paid the property tax, and bought insurance for it. When it came time to accept ownership and get the license plates, I didn’t have the money.”

[0125] The statement "I can't afford this truck anymore" contrasts with "Now, due to various circumstances," the latter being...

[0126] I went to the place where I bought insurance.

[0127] The statement "but the refund was refused" is included.

[0128] “My husband’s grandmother gave him his grandfather’s truck. She signed a title transfer agreement, but because my husband has outstanding fines on his driver’s license, he can’t put the truck in his name. I wanted to put the truck in my name, paid the property tax, and bought insurance for it. When it came time to transfer ownership and get the license plates, I didn’t have the money to accept the ownership and get the plates. Now, due to various circumstances, I can’t afford the truck. I went to the insurance company, but they refused to refund my money.”

[0129] "I'm just wondering if it's possible to get a property tax refund since I'm not going to register this truck?"

[0130] "I am just wondering" is attributed to

[0131] "that" and "is it possible to get the property tax refunded?" are the same unit, which is conditioned on "since I am not going to have a tag on this truck."

[0132] As can be seen, the topic of the discourse is "car property tax." The question includes a contradiction: on the one hand, all property is taxed, on the other hand, the ownership is somewhat incomplete. A good response must address both topics of the question and clarify the inconsistency. To do so, the responder makes a stronger claim that the property owned must be taxed regardless of the registration status. This example is a member of the active training set from Yahoo Answers Evaluation Domain. The topic of the discourse is "car property tax." The question includes a contradiction: on the one hand, all property is taxed, on the other hand, the ownership is somewhat incomplete. A good answer / response must address both topics of the question and clarify the inconsistency. The reader can observe that since the question includes a contrastive rhetorical relation, the answer must match with a similar rhetorical relation to be convincing. Otherwise, even for someone who is not a domain expert, the answer looks incomplete.

[0133] Figure 8 An exemplary response to the question presented in the middle is depicted in accordance with certain aspects of the present invention. Figure 7 An exemplary response to the question presented in the middle is depicted in accordance with certain aspects of the present invention. Figure 8 The discourse tree 800 is depicted. The central core is "property tax is levied on property" explicated by "owned." "Property tax is levied on property owned" is also explicated by the core "just because you choose not to register it does not mean you do not own it, so the tax is not refunded. Even if you have not been granted ownership of the vehicle, you still own it within the tax district, so you should pay the tax. Note that all states have time limits for transferring ownership and paying the use tax."

[0134] The core "property tax is levied on property owned. Just because you choose not to register it does not mean you do not own it, so the tax is not refunded. Even if you have not been granted ownership of the vehicle, you still own it within the tax district, so you should pay the tax. Note that all states have time limits for transferring ownership and paying the use tax." is explicated by "fines in addition to the normal tax" conditioned on "if you delay the application," which in turn is explicated by the contrast "but you absolutely need to get the ownership within the time period specified by the state law" and "you do not need to register the vehicle at the same time."

[0135] TheFigure 7 DT of Figure 8 is compared to the DT of Figure 8 , the degree of match between the response Figure 7 and the request is determined. In some aspects of the invention, the DT of the request / response and the rhetorical consistency between the DTs are determined, at least in part, using the framework described above.

[0136] In another example, the question "What does the XYZ committee do?" has at least two answers, e.g., an official answer or a factual answer.

[0137] Figure 9 A discourse tree of an official answer is illustrated according to one aspect. Figure 9 A discourse tree 900 of an official answer or mission statement is depicted, stating that "the XYZ committee is an agency that operates as an... agency and has the responsibility to inspect... and combat... and is responsible for investigating..."

[0138] Figure 10 A discourse tree 1000 of a factual answer is illustrated according to one aspect. As Figure 10 depicted, another, perhaps more honest answer states that "the XYZ committee is supposed to... However, the XYZ committee... is accused of... (negative behavior). Not only that,... (more negative behavior). As a result of..., there is... (negative outcome)"

[0139] The choice of answer depends on the context. The rhetorical structure allows to distinguish between "official", "politically correct", template-based answers and "factual", "raw", "reporting from the field" or "controversial" answers. (See Figure 9 and Figure 10 ). Sometimes, the question itself gives a hint as to which kind of answer is expected. If the question is formulated as a fact question or a definition question without a second layer of meaning, the first kind of answer is appropriate. Otherwise, if the question has the meaning of "tell me what it really is", the second kind is appropriate. In general, after extracting the rhetorical structure from the question, it is easier to choose the appropriate answer with a similar, matching or complementary rhetorical structure.

[0140] The official answer is based on an exposition and a conjunction that is neutral in terms of controversy that the text can contain (see Figure 9 ). At the same time, the factual answer includes a contrastive relation. This relation is extracted from the phrases that express what the agent is expected to do and what the agent is found to do.

[0141] Extending the discourse tree

[0142] Aspects of the present disclosure facilitate navigating an extended discourse tree constructed from a corpus of related content such as multiple documents. The extended discourse tree is a combination of discourse trees from individual text units (e.g., paragraphs) from multiple documents. Aspects allow not only amplification based on keywords, but also navigation in and out or back based on how the documents are interconnected, enabling an autonomous agent to provide content navigation such as guided search.

[0143] Figure 16 An example of an extended discourse tree is depicted in accordance with one aspect. Figure 16 An extended discourse tree 1600 is depicted. The extended discourse tree 1600 includes groups 1600, 1620, 1630, 1640, and 1650. Each group includes a document and a discourse tree generated from the document. For example, the group 1610 includes a discourse tree 1616 and a document 1612, the group 1620 includes a discourse tree 1621 and a document 1622, and so on.

[0144] In addition to links between particular discourse trees, such as discourse trees 1616, 1621, 1631, 1641, and 1651, the extended discourse tree 1600 includes inter-discourse tree links 1661-1664 and associated inter-document links 1671-1674. As explained further below, the discourse navigation application 122 constructs the discourse trees 1616-1615. The discourse tree 1616 represents the document 1612, the discourse tree 1621 represents the document 1622, and so on. The extended discourse tree 1600 is constructed by constructing a discourse tree for each paragraph or document. Figure 12 As explained further below, the discourse navigation application 122 constructs the discourse trees 1616-1615. The discourse tree 1616 represents the document 1612, the discourse tree 1621 represents the document 1622, and so on. The extended discourse tree 1600 is constructed by constructing a discourse tree for each paragraph or document.

[0145] The inter-discourse tree link 1661 connects the discourse trees 1616 and 1621, the inter-discourse tree link 1662 connects the discourse trees 1621 and 1631, the inter-discourse tree link 1663 connects the discourse trees 1616 and 1641, and the inter-discourse tree link 1664 connects the discourse trees 1621 and 1651. Based on the inter-discourse tree links 1661-1664, the discourse navigation application 122 creates inter-document links 1671, 1672, 1673, and 1674, which correspond to the inter-discourse tree links 1661, 1662, 1663, and 1664, respectively. The inter-document links 1671-1674 can be used to navigate the documents 1612, 1622, 1632, 1642, and 1652.

[0146] The discourse navigation application 122 determines one or more entities in a first discourse tree of the discourse trees 1616-1615. Examples of entities include a place, a thing, a person, or a company. The discourse navigation application 122 then identifies the same entity present in other discourse trees. Based on the determined entity, the discourse navigation application 122 determines a rhetorical relationship between each matching entity.

[0147] For example, if the entity "San Francisco" appears in document 1612, e.g., "San Francisco is in California," and document 1622 further explains "San Francisco has a moderate climate but can be quite windy," the discourse navigation application 122 will determine that one of the rhetorical relationships between the entities "San Francisco" is "elaboration" and will label links 1661 and 1671 as "elaboration." Continuing the example, the discourse navigation application 122 determines links 1662 through 1664 and corresponding links 1672 through 1674 based on the determined rhetorical associations. The discourse navigation application 122 combines the discourse trees of the paragraphs of the documents to form the extended discourse tree 1600.

[0148] By using the links in the extended discourse tree 1600, the discourse navigation application can navigate between paragraphs of the same document or between documents (e.g., documents 1612 and 1622). For example, if a user is interested in more information about a particular topic, the discourse navigation application 122 navigates within a paragraph from the core to the auxiliary through the elaboration rhetorical association, or hyperlinks to a document that provides more specific information about the topic through the elaboration rhetorical association.

[0149] Conversely, if the user decides that the recommended topic is not exactly what is needed, the user can return to a higher level view of the documents (e.g., from auxiliary to core, or from narrow document to wide document). In reverse, the discourse navigation application 122 navigates the elaboration relationship at the paragraph or between the documents in the reverse order (i.e., from auxiliary to core). Similarly, the discourse navigation application 122 facilitates other navigation options such as exploring controversial topics relying on the contrast or conditional rhetorical relationships.

[0150] To construct the rhetorical links between text segments in different paragraphs or documents, the discourse navigation application 122 identifies the relationships between the entities by using the fictitious text segments or temporary paragraphs from the corresponding text segments of the original paragraphs and performs co-reference analysis and discourse parsing on the paragraphs.

[0151] Figure 17 A flowchart depicting an example of a process 1700 for creating an extended discourse tree, according to one aspect, is depicted. The input to the process 1700 is a collection of documents, and the output is an extended discourse tree encoded as a regular discourse tree with document identification tags for each node. The process 1700 is described with respect to two documents (e.g., documents 110a-b) for example purposes, but the process 1700 can use any number of documents.

[0152] At block 1701, the process 1700 involves accessing a first document and a second document. Examples of documents include texts, books, news articles, and other electronic documents.

[0153] In one aspect, the discourse navigation application 122 selects documents that are similar or identical in topic. For example, the discourse navigation application 122 can determine a content score for each document, e.g., by determining the similarity of keywords between the documents. For example, the discourse navigation application 122 determines that a first content score of a first document and a second content score of a second document are within a threshold, and uses the first document and the second document to create an expanded discourse tree based on the similarity.

[0154] In one aspect, the discourse navigation application 122 performs a document analysis that includes generating a document tree representing the sentence and phrase structure of the document. The rhetorical associations associated with the inter-document links can determine different navigation scenarios. By default, an exposition can be used. If the user is interested in questions like "why" or "how," the discourse navigation application 122 provides a link to another document that is associated by a causation relationship. If the user indicates disagreement with the initially presented document or requests a document that is opposite to the current document, the discourse navigation application 122 can provide a link to a document that is associated by a contrast relationship.

[0155] In another aspect, the discourse navigation application 122 obtains the first document and the second document by performing a user query. Examples of user queries include "climate change" or "documents on linguistics."

[0156] At block 1702, the process 1700 involves creating a first discourse tree for a first paragraph of the first document. The discourse navigation application 122 accesses a paragraph from the first document. Each sentence in the paragraph includes a segment or a basic discourse unit. At least one segment includes a verb. Each word in a segment includes a role of the word in the segment, e.g., a function. The discourse navigation application 122 generates a discourse tree representing the rhetorical relationships between the segments. The discourse tree includes a plurality of nodes, each non-terminal node representing a rhetorical relationship between two segments, and each terminal node being associated with one of the segments. The discourse navigation application 122 continues in this manner, thereby constructing a set of discourse trees for each paragraph in the first document. The process 1700 is described with respect to paragraphs as units of text, but other text sizes can also be used.

[0157] At box 1703, procedure 1700 involves creating a second discourse tree for the second paragraph of the second document. At box 1703, procedure 1700 performs steps on the second document that are substantially similar to those performed on the first document at box 1702. In the case where procedure 1700 creates extended discourse trees for more than two documents, procedure 1700 performs the function described at box 1702 on multiple documents. Procedure 1700 can iterate through all discourse tree pairs in the set of discourse trees corresponding to each document. A discourse tree pair can be represented as:

[0158] DT i and DT j ∈DTA.

[0159] At box 1704, process 1700 involves determining entities and corresponding first basic discourse units based on the first discourse tree. Various methods can be used, such as keyword processing (searching for a keyword from a predefined keyword list within sentences of the first document), using a trained machine learning model or searching internet resources. Discourse navigation application 122 identifies the discourse tree DT. i and DT j All noun phrases and named entities in .

[0160] In the example, discourse navigation application 122 extracts noun phrases from the discourse tree. Discourse navigation application 122 then classifies the noun phrases into (i) entities or (ii) non-entities using a trained machine learning model.

[0161] At box 1705, process 1700 involves identifying a second basic discourse unit in the second discourse tree that matches the first basic discourse unit. More specifically, discourse navigation application 122 calculates overlap and identifies DT. i With DT j Public entity E between . i,j The discourse navigation application 122 is built on E i,j Relationships between entities appearing in the discourse navigation, such as equality, sub-entity, or part. Discourse navigation application 122 then targets E... i,j Each entity pair appearing in the text forms a rhetorical link R(E) between paragraphs. i,j ).

[0162] At box 1706, process 1700 involves creating an extended discourse tree by linking the first and second discourse trees through a rhetorical relationship in response to determining a rhetorical relationship between a first basic discourse unit and a second basic discourse unit. More specifically, discourse navigation application 122 forms text fragments (e.g., EDU (E i ) and EDU(E j) are merged to classify the rhetorical link of each rhetorical link, thereby constructing its DT and marking it with the identified association of this rhetorical link.

[0163] In one aspect, the discourse navigation application 122 combines the first base discourse unit and the second base discourse unit into a temporary passage. The discourse navigation application 122 then determines a rhetorical relationship between the first base discourse unit and the second base discourse unit within the temporary passage by applying discourse parsing to the temporary passage.

[0164] In another aspect, in response to not determining a rhetorical relationship, the discourse navigation application 122 creates a default rhetorical relationship of the type of elaboration between the first base discourse unit and the second base discourse unit, and links the first discourse tree and the second discourse tree.

[0165] In one aspect, the discourse navigation application 122 performs automatic construction and classification of links between text ranges across documents. Here a range of methods can be used: lexical distance, lexical chains, information extraction, and linguistic template matching. Lexical distance can use cosine similarity across sentence pairs, and lexical chains can more robustly exploit synonymy and hypernymy relationships.

[0166] The extended discourse trees can form relationships between two or more documents at different levels of granularity. For example, relationships between base discourse units can be determined as described with respect to the process 1700. In addition, the extended discourse trees can represent relationships between words, sentences, passages, document sections, or entire documents. As depicted, each individual graph is composed of smaller sub-graphs of each individual document. Links are shown that represent logical connections between topics within a single document.

[0167] Figure 18 Relationships between text units of documents at different levels of granularity are also depicted in accordance with one aspect. Figure 18 Discourse trees 1801, 1802, and 1803 are depicted, each corresponding to a separate document. Figure 18 Various inter-document links are also depicted, such as word links 1810 linking words in discourse trees 1802 and 1803, passage / sentence links 1811 linking passages or sentences in documents 1801 and 1802, phrase links 1812 linking phrases in documents 1801 and 1803, and cross-document links 1818 linking documents 1801 and 1803. The discourse navigation application 122 can use links 1810-1818 to navigate between documents 1801-1803.

[0168] Navigation using extended discourse trees

[0169] An extended discourse tree, such as the extended discourse tree created by the process 1700, can be used to navigate documents or other text bodies. The extended discourse tree enables different applications, such as autonomous agents, improved search and navigation, and question-answer coordination.

[0170] Figure 19 A flowchart depicting an example of a process 1900 for navigating between documents using an extended discourse tree, according to one aspect, is shown.

[0171] At block 1901, the method 1900 involves accessing an extended discourse tree representing a plurality of documents. As described with respect to the process 1200, the extended discourse tree can include a first discourse tree for a first document and a second discourse tree for a second document, and a set of links representing rhetorical connections between the documents.

[0172] In one aspect, the documents can be responsive to a particular user question or query. The discourse navigation application 122 can perform a search of a set of documents, a database, or an Internet resource to determine relevant documents. Additionally, the discourse navigation application 122 can use the question or query as the first document, and a document including an answer to the question or query as the second document.

[0173] At block 1902, the method 1900 involves determining, from the extended discourse tree, a first base discourse unit responsive to a query from a user device and a first location corresponding to the first base discourse unit. Determining the first base discourse unit can involve matching one or more keywords from the query in the first base discourse unit. For example, a base discourse unit is selected if a threshold number of keywords in the query match the base discourse unit.

[0174] For example, the discourse navigation application 122 receives a user query, e.g., "Atlanta." The discourse navigation application 122 determines a first base discourse unit including the entity "Atlanta." The discourse navigation application 122 then determines a relevant location within the first discourse tree. The location can be indicated in different ways, such as a node number or an ordered pair including a document identifier and a paragraph identifier.

[0175] At block 1903, the method 1900 involves determining a set of navigation options from the extended discourse tree. The options can include rhetorical relationships between base discourse units within a document, such as a first rhetorical relationship between a first base discourse unit and a second base discourse unit of the first discourse tree. The options can also include rhetorical connections between documents, such as a second rhetorical relationship between the first base discourse unit of the first discourse tree and a third base discourse unit of the second discourse tree.

[0176] Continuing the above example, the conversational navigation application 122 determines that two options are available: one option within the first conversational tree that sets forth "Atlanta" (e.g., "the Atlanta Braves") and another option in the second conversational tree that includes additional information about "Georgia Tech."

[0177] At block 1904, the method 1900 involves presenting the first rhetorical relationship and the second rhetorical relationship to the user device. Continuing the above example, the user device 170 presents "the Atlanta Braves" and "Georgia Tech" to the user.

[0178] At block 1905, the method 1900 involves presenting a second base conversational unit to the user device in response to (i) receiving a selection of the first rhetorical relationship from the user device, or (ii) receiving a selection of the second rhetorical relationship from the user device.

[0179] Continuing the above example, the user device 170 receives a selection of "Georgia Tech," and in response, the conversational navigation application 122 provides the base conversational unit corresponding to "Georgia Tech" to the user device 170, e.g., "Georgia Tech is a research university in Atlanta."

[0180] In one aspect, the conversational navigation application 122 uses the selected result to perform additional analysis. For example, based on the selection of "Georgia Tech," the conversational navigation application can search one or more documents for entities related to "Georgia Tech," or search for additional documents to analyze and optionally integrate into an expanded conversational tree.

[0181] Applying an expanded conversational tree to an autonomous agent

[0182] Autonomous agents are designed to mimic human intellectual activity, thereby maintaining a conversation. Agents can operate in an iterative fashion to provide efficient and effective information to a user. Existing solutions for implementing autonomous agents, including solutions that use deep learning of word sequences in a conversation, attempt to construct seemingly reasonable word sequences to respond to user queries. In contrast, certain aspects described herein use an expanded conversational tree to enable an agent to guide a user to navigate as quickly as possible to an appropriate answer.

[0183] For example, if the user formulates the query "Can I pay with one credit card for another," the agent attempts to identify the user's intent and background knowledge about this user to establish the proper context. For example, a person can wish to pay with one credit card for another to avoid paying late fees when there is no cash. Rather than giving an answer in the form of a snippet linking to a relevant web page, as do major search engines, some aspects provide a set of answer topics for the user to select from. Such topics give the user an opportunity to assess how the agent understands its request and what knowledge domain is associated with its problem. In the example, the topics include "balance transfer," "using funds on a checking account," or "canceling your credit card." The user is prompted to select a clarifying option, drill down into any of these options, or reject all of the options and request a new set of topics that the agent can identify.

[0184] Using the extended discourse tree, the discourse navigation application 122 can start from the root node of the discourse tree, which represents the text segment that best matches the user query. The discourse navigation application 122 then constructs a set of possible topics by extracting phrases from the base discourse units that are ancillary to the root node of the discourse tree. If the user accepts a given topic, then the navigation continues along the selected edges of the graph. Otherwise, if the topic does not cover the user's interest, then the discourse navigation application 122 navigates back in the extended discourse tree and proceeds to another other segment or another document that matches the original user query.

[0185] Figure 20 An example of an autonomous agent answering a user's question using an extended discourse tree is depicted in accordance with one aspect. Figure 20 A chat window 2000 is depicted that includes messages 2001-2006. Messages 2001, 2003, and 2005 are sent by the user device 170, and messages 2002, 2004, and 2006 are sent by an autonomous agent implemented by the discourse navigation application 122.

[0186] As can be seen, the user device 170 initiates a conversation with the agent by sending a message 2001 stating "I am broke and have no money." The agent navigates the extended discourse tree, finds topics in the first discourse tree within the extended discourse tree, and determines several topics that are responsive to the message 2001.

[0187] As illustrated by message 2002, the topics include "Is out of your financial reach," "Bad decisions have consequences," "What I learned from being broke," "Life after broke," "Suffering from breakup issues with different guys," and "Cut your existing bills." Each topic is determined by a navigation link in the extended discourse tree. Each topic can be in the first discourse tree or another discourse tree, as the extended discourse tree includes links between and within documents.

[0188] With message 2003, the user device 170 selects the "Cut bills" option from the options provided by the agent. The agent then provides a segment of relevant text to the user device 170. The process continues as illustrated by messages 2004-2006.

[0189] Applying the extended discourse tree to search and content exploration

[0190] On the web, information is often presented in the form of web pages and documents that have some section structure. Answering questions, forming candidate answer topics, and attempting to provide answers based on user-selected topics are operations that can be represented with the aid of the structure of a discourse tree that includes the involved text. When a user is recommended a certain portion of text as an answer, this user can want to drill down to something more specific, rise to a more general level of knowledge, or move to a topic at the same level. These user intentions to navigate from one portion of text to another can be represented as a coordinated or subordinate discourse relationship between the portions.

[0191] Aspects of the present disclosure improve the access time for web-based search. For example, aspects can dynamically organize blocks of text from various web pages and documents into a tree such that, according to a user's selection, the system navigates as quickly as possible to the intended terminal leaf of the tree. Additionally, if a user describes its question with multiple sentences, the autonomous agent attempts to solve the question by finding an answer that coordinates with the rhetorical structure of the question. By doing so, the agent not only provides an answer about the entities from the question, but also matches the logical interrelationships among them.

[0192] Content exploration

[0193] In one aspect, the expanded discourse tree is used to facilitate content exploration. In an example, the user device 170 receives the question "What is faceted search?" from the user. The user desires to understand how faceted search works, and thus wishes to familiarize himself with other related concepts.

[0194] In response, the discourse navigation application 122 provides additional content exploration or search options. The discourse navigation application 122 determines the set of relevant documents by forming an expanded discourse tree.

[0195] Figure 21 An example of an expanded discourse tree is depicted in accordance with one aspect. Figure 21 An expanded discourse tree 2100 is depicted, which includes discourse trees 2102, 2103, and 2104. Each discourse tree 2102-2104 is created from a particular text passage. In this example, the discourse navigation application 122 creates separate discourse trees 2102-2104 from different text passages. However, text units of different sizes are possible, such as a sentence or multiple passages.

[0196] More specifically, the discourse navigation application 122 creates discourse tree 2103 from the following text, which is related to the faceted search topic: "Aspects correspond to attributes of information elements. They are usually derived by analyzing item text using entity extraction techniques, or from pre-existing fields in databases (such as author, descriptor, language, and format). Thus, existing sets of web pages, product descriptions, or online articles can be augmented with navigational aspects."

[0197] Additionally, the discourse navigation application 122 creates discourse tree 2102 from the following text, which is also related to the faceted search topic: "In the academic world, faceted search has mainly attracted the interest of librarians and information science researchers, but the interest of computer science researchers specializing in information retrieval has been limited."

[0198] The discourse navigation application 122 creates discourse tree 2104 from the following text, which is related to the entity extraction topic: "Entity extraction (also known as entity name extraction or named entity recognition) is an information retrieval technique that refers to the process of identifying key elements from text and classifying them into predefined categories."

[0199] The utterance navigation application 122 identifies the following additional entities for content exploration from the created utterance tree: (1) entity extraction; (2) information retrieval; (3) pre-existing fields in a database; and (4) augmented with navigation aspects. More specifically, the utterance navigation application 122 determines that these entities are related by articulation and creates links 2120-2123. Information retrieval, represented by node 2111, articulates the facet search represented by node 2110, so link 2120 connects nodes 2110 and 2111. Entity extraction, represented by node 2113, articulates the facet search represented by node 2112, so link 2121 connects nodes 2112 and 2113. Information retrieval, represented by node 2115, articulates entity extraction node 2114, so link 2123 connects nodes 2114 and 2115. Finally, node 2115 articulates the utterance navigation application 122 for entity extraction, so the utterance navigation application 122 creates link 2122 connecting nodes 2113 and 2115.

[0200] The utterance navigation application 122 provides the entities to the user device 170. The user device 170 provides the entities to the user, who can follow the links to land on individual information or run a new search to obtain multiple search results for selection. For example, starting from the “facet search,” the user device 170 can navigate to information retrieval (e.g., through link 2120 to node 2111), entity extraction (e.g., through link 2121 from node 2112 to node 2113), information retrieval (through link 2122), or additional information about information retrieval (through link 2123 to node 2115).

[0201] Creating additional augmented utterance trees

[0202] The utterance navigation application 122 can construct additional augmented utterance trees from existing augmented utterance trees. More specifically, by using the machine learning model 130, the utterance navigation application 122 can create an augmented utterance tree based on an utterance tree of text in a first domain (e.g., engineering), by using a set of augmented utterance trees of text in a second domain (e.g., law).

[0203] In an example process, the utterance navigation application 122 accesses a first utterance tree representing a first document of a set of documents and a second utterance tree representing a second document of the set of documents.

[0204] Continuing the example, the discourse navigation application 122 obtains the reference extended discourse tree from a set of extended discourse trees by applying the first discourse tree and the second discourse tree to a trained classification pattern (e.g., the machine learning model 130). The set of extended discourse trees includes a plurality of extended discourse trees created by a process such as the process 1700. More specifically, the classification model iterates through the set of extended discourse trees to identify the first candidate discourse tree and the second candidate discourse tree. The classification model identifies the first candidate discourse tree and the second candidate discourse tree as the best match to the first discourse tree and the second discourse tree. The classification model can use different models such as a classifier or nearest neighbor, among others.

[0205] Continuing the example, the discourse navigation application 122 determines one or more links between the first reference discourse tree and the second reference discourse tree from the reference extended discourse tree. The links can be determined by using the process 1700 (e.g., block 1706). The discourse navigation application 122 then propagates the links to the first discourse tree and the second discourse tree, creating an extended discourse tree. In this way, the discourse navigation application 122 creates an extended discourse tree by identifying an extended discourse tree that includes discourse trees similar to the first discourse tree and the second discourse tree and then creating appropriate inter-discourse tree links.

[0206] Datasets for evaluation

[0207] Experiments were conducted on the TREC datasets for Web 2009 (queries 1-50) and Web 2010 (queries 51-100), which together contain 100 queries and their relevance assessments on the Clueweb09 Category B dataset2(50,220,423 English web pages crawled between January and February 2009). These datasets were chosen because they are widely used in the community, allowing comparisons with state-of-the-art techniques. Spam was removed using the spam ranking of Cormack et al., with a recommended percentage score setting <70 indicating spam3. A subset of this collection was considered, consisting of the top 1000 documents retrieved in response to each query using the Indri IR system by a baseline retrieval model using adjusted settings (described in Section 4.1.2).

[0208] A dataset of Q / A pairs related to car repair advice was formed. These pairs were extracted from conversations as first and second utterances, so that the question is seven to fifteen key words and the answer is three to six sentences. This resource was obtained to train a dialogue support system, but it was also shown to be useful for evaluating search. This dataset was downloaded from (CarPros 2017) and is available at (Github Car Repair Dataset 2017).

[0209] The Webscope 2017 corpus is a collection of question-answer pairs on a wide range of topics. Out of a collection of 140,000 user questions, 3,300 were selected, which included three to five sentences. Most of the answers to the questions were quite detailed, so no sentence length filtering was applied to the answers.

[0210] Our social media corpus includes request-response pairs from posts on Facebook, primarily. A small portion of employment-related LinkedIn.com and vk.com conversations were also used. In the social domain, the writing is quite low standard. The text has very limited cohesion, and logical structure and relevance are often missing. The training set was formed by the authors through their own accounts and public Facebook accounts available through the API over the years (not available at the time of writing the Facebook API to obtain messages). In addition, 860 email threads from the Enron dataset were used. Also, manual response data to posts representing an agent that automatically generates posts on behalf of human users was collected. 4,000 pairs were formed from various social network sources.

[0211] The financial question corpus was downloaded from Fidelity.com. This corpus will demonstrate how to improve search relevance in a reasonably covered vertical domain. For queries that have relevant answers for both systems, we will compare the efficiency of information access by the proposed chatbot with that of a major web search engine, such as Google. For the search engine, a miss is a search result before the search result that is relevant to the given user. For the chatbot, a miss is an answer that leads the user to select other options suggested by the agent or to request another topic.

[0212] The topic of the questions includes personal finance. Twelve users (the authors’ colleagues) asked the agent 15 to 20 questions that reflect their financial situation, and stopped asking when they were satisfied or dissatisfied and gave up. The same questions were sent to Google, and the evaluators had to click on each search result snippet to get the document or web page and decide whether the document or web page satisfied them.

[0213] The structure of the comparison of the search efficiency of the chatbot and the search engine is shown in Table 4. The top part of the arrow shows that all search results (on the left) were used to form a list of topics for clarification. The bottom arrow shows that the chatbot finally selected the bottom answer according to two rounds of user feedback and clarification.

[0214] Figure 22 A comparison between navigation using a search engine and navigation using an autonomous agent enabled with an extended discourse tree is depicted in accordance with an aspect. Figure 22A comparison 2200 is depicted, which includes a question presented to the search engine 2201, results 2102-2105 collected in response to the search, interactions between the user and the autonomous agent 2201-2206. The arrows show how multiple search results for different topics are pooled into a single clarification request that enumerates the automatically extracted topics.

[0215] Instead of looking through all search results to find relevant ones (using the search engine, left), the user answers clarification requests written by the agent and drills down into topics of interest (right). The arrows show how multiple search results for different topics are pooled into a single clarification request that enumerates the automatically extracted topics. Then, the selected topic navigates the user to a new document or a new section of the same document.

[0216]

[0217] It can be observed from Table 4 that the chatbot’s knowledge exploration session time is longer than the search engine’s. While this does not seem to benefit the user much, since the user’s chances of getting what he or she wants are increased, businesses prefer users to stay longer on their websites. It is expected that spending more than 7% of the time reading agent answers to get a better feel for a certain area, especially when these answers follow this user’s choices. The number of steps in the agent’s exploration session is one fourth of the number of steps required by the search engine. Traditional methods for measuring search engine performance, such as MAP and NDCG, are also applicable to the comparison between the traditional search engine and the chatbot in terms of information access efficiency (Sakai 2007). Compared to traditional search engines and chatbots that focus on mimicking human intellectual activities, using chatbots with extended discourse tree-driven navigation is an efficient and productive way of information access.

[0218] Dialogue management using discourse trees

[0219] As discussed, certain aspects relate to using discourse trees or conversational discourse trees to navigate text. An example of an application is data exploration. In some task-oriented domains, the goal is to fully inform the user of a certain important piece of information. Further, the credibility of the information is helpful. The user should trust the information provided. To facilitate this, in certain cases, the autonomous agent can rely on text that is associated with the rhetoric of type explanation and argumentation. In this way, the autonomous agent can navigate the user through possible disagreements and misunderstandings to ensure that the question is fully explained.

[0220] In a more specific example, an autonomous agent can enhance the educational value of text by dividing it into logical parts determined using a discourse tree, rather than presenting the user with entire paragraphs and relevant sections item by item. The agent uses a discourse tree (DT), which provides a structure of how the text's author organizes their thoughts. As discussed, a DT is a tree of labeled units (basic discourse units, EDUs) whose leaves correspond to clauses. Adjacent EDUs, and higher-level (larger) discourse units, are organized hierarchically through rhetorical associations (e.g., cause, chronological order). Antisymmetric associations involve pairs of EDUs: a nuclei, which is the core part of the association, and satellites, which are supporting parts of the rhetorical association. Once the corresponding nuclei has been received and acknowledged by the user, the autonomous agent delivers the satellites as speech to the user. Rhetorical associations are applied recursively throughout the text until all units in the text are components of a rhetorical association. Thus, the discourse tree includes top-level associations that encompass other lower-level associations.

[0221] Furthermore, some aspects utilize Communicative Discourse Trees (CDTs). CDTs are designed to combine rhetorical information with speech act structures; a CDT is a DT (Discourse Tree) that uses arc-tagged expressions to represent communicative actions. These expressions are logical predicates and their subjects representing agents involved in the corresponding speech acts. The purpose of adding these tags is to incorporate speech act-specific information into the DT, allowing its learning to occur on a richer set of features, rather than just the rhetorical associations and syntax of basic discourse units (EDUs).

[0222] As discussed, the rhetorical connection between the core and the auxiliary elements can be considered the most important part of the text, while the auxiliary elements, which contribute to the core, are secondary. The core contains basic information, while the auxiliary elements contain additional information about the core. Without a corresponding core, the auxiliary elements can often be incomprehensible. In contrast, text without the auxiliary elements can be understood to some extent. Therefore, content delivery should generally be established by delivering the core first, followed by the auxiliary elements. If the user explicitly asks about the topic that occurs in the auxiliary elements, then the auxiliary elements can be delivered, but the core should also be presented in one form or another.

[0223] The main body of the navigation text can be done linearly: starting with the first phrase or sentence fragment and ending with the last. However, navigating in this way does not present general information to specific information (including relationships between attributes and entities). Therefore, some aspects improve readability and comprehensibility by using discourse-based techniques. Alternatively, user intent can be determined based on user speech. Determining intent helps navigate the text in a way that allows the user to focus on listening or reading. A list of user intents is presented in Table 5.

[0224] User intent Request specific topic Confirm topic is familiar Confirm interest in a certain topic Go to more details / zoom in Understand reasons Understand consequences Understand arguments for a claim Disagree with a statement Table 5: Basic user intents

[0225] Figure 23 A flowchart depicting an example of a process 2300 for navigating within a document using a discourse tree according to an aspect is shown. The process 2300 can be used to traverse a discourse tree and provide information that satisfies a user’s intent when the intent changes throughout the navigation.

[0226] At block 2301, the process 2300 involves making an introduction and providing a main topic of the text to the user device. In an example, the discourse navigation application 122 accesses the input document 110a-n, identifies a main topic from one or more of the input documents 110a-n, and provides the topic to the user device 170.

[0227] The discourse navigation application 122 implements an autonomous agent. Navigating a discourse tree of a text T is an efficient way to convey the content of the text. The agent starts by making an introduction and then providing a main topic M T In an aspect, the introduction includes encouraging the user to continue the conversation, such as a question or a knowledge sharing request.

[0228] The main topic can be obtained from the discourse tree. As discussed with respect to the process 1500, creating a discourse tree involves identifying segments or basic discourse units from the text. Each discourse tree includes a root node (typically shown at the top of the graph), non-terminal nodes, and terminal nodes, each non-terminal node representing a rhetorical relationship between two of the segments. Each terminal node is associated with one of the segments (e.g., represents the text of the segment).

[0229] To form the main topic, the discourse navigation application 122 computes, for each node of a subset of the terminal nodes, a respective path length from the root node. The discourse navigation application 122 identifies, from the subset of the terminal nodes, a topic node having a path length that is a minimum path length of the path lengths. The discourse navigation application 122 then determines, from the topic node, a topic of the discourse tree by extracting a noun phrase from a core basic discourse unit associated with the topic node.

[0230] At block 2302, the process 2300 involves receiving user speech and determining a user intent. For example, the agent can ask whether the user wants more details, whether the user disagrees, and so on. The user can ask for more details E T , disagree E T , or ask about a topic outside the scope of this text O T .

[0231] Determining intent can involve machine learning or algorithmic techniques. For example, discourse navigation application 122 can feed speech to machine learning model 130, which can be trained to categorize speech as requests for more details, disagreements, requests for specific topics, etc. In other cases, algorithmic techniques can be used, such as analyzing a set of rules for words or phrases in speech. An example of such a technique is disclosed in co-pending U.S. Patent Application 17 / 162,740 entitled “Using Communicative Discourse Trees To Detect A Request For An Explanation,” which is incorporated herein by reference in its entirety.

[0232] The agent's continued encouragement of users can depend on the current navigation node (which is currently M). T The rhetorical association of nodes. Users answer (ask) questions in some form based on the agent's encouraging questions. Examples include:

[0233] Explanation -> Want to know more?

[0234] Comparison -> But do you know what?

[0235] Attribution -> Do you know the source?

[0236] Cause / Consequence / Reason -> Do you know why?

[0237] Once the agent receives a user question, it analyzes the question regarding whether external knowledge sources should be searched and / or whether machine reading comprehension methods should be initiated to find the value of the factual question, and also identifies the location of the basic utterance units where the answer may appear. Based on the stated intent, the agent determines whether the user has changed the topic and whether navigation around the utterance tree is necessary.

[0238] At box 2303, process 2300 involves determining that the user is requesting more details (by I). T (indicates), and provides information related to the main topic (M) T The description of the associated EDU. Examples of statements indicating a request for more details include “tell me about entity e” (where e is an entity) or “Yes, tell me more.” In some cases, machine learning can be used to classify the intent.

[0239] In a more particular example, the discourse navigation application 122 identifies a parent node directly connected to the topic node in the discourse tree. From the parent node, the discourse navigation application 122 identifies an additional terminal node related to the parent node through a rhetorical relation of type “elaboration.”

[0240] The discourse navigation application 122 extracts additional text from the basic discourse unit associated with the additional terminal node and provides the additional text to the user device.

[0241] At block 2304, the process 2300 involves determining that the user disagrees, provides an explanation or reason for the M T or I T connected EDU. An example of text indicating a disagreement intent is “I disagree” or “I don’t believe that.”

[0242] Continuing the example, the discourse navigation application 122 identifies a parent node directly connected to the topic node in the discourse tree. The discourse navigation application 122 identifies an additional terminal node related to the parent node through a rhetorical relation of type “elaboration” or type “reason.” The discourse navigation application 122 extracts additional text from the basic discourse unit associated with the additional terminal node and provides the additional text to the user device. In some cases, the additional text is provided to the user device along with the agent insisting that the reply is correct.

[0243] At block 2305, the process 2300 involves determining that the user has asked a question outside the scope of the topic and then answering the question as a factual question and then providing an EDU that is an elaboration of the main topic. More particularly, if the question is outside the scope, it should be answered as a factual question, but because the agent should bring the user back to T, the reply should end with an elaboration (I T ). T

[0244] The discourse navigation application 122 identifies an auxiliary basic discourse unit associated with the topic node through a rhetorical relation of type elaboration in the discourse tree. The discourse navigation application 122 provides text associated with the auxiliary basic discourse unit to the user device.

[0245] At block 2306, the process 2300 involves determining that the user doubts the validity of the claim and then providing an EDU connected to the main topic through attribution. If the claim in M T is disputed, the agent should try to convince the user in other ways. Attribution (M T ) is an answer that informs the user of the source. Alternatively, the user can explicitly ask for the source.​

[0246] Continuing the example, the discourse navigation application 122 identifies a parent node in the discourse tree that is directly connected to the topic node. The discourse navigation application 122 identifies additional terminal nodes in the discourse tree that are related to the parent node through type-attributed rhetorical relations. The discourse navigation application 122 extracts additional text from the base discourse units associated with the additional terminal nodes and provides the additional text to the user device. In some cases, the additional text is provided to the user device along with the agent insisting on a correct statement.

[0247] At block 2307, the process 2300 involves identifying from the utterance that a specific topic is asked for and providing a response based on a current base discourse unit type and a current rhetorical relation type. The vast variability of conversations can be achieved by generating specific replies for each user’s intent and the current position type in the discourse tree. The mapping of intent to current node, to relation, to agent reply is shown in Table 6.

[0248] The process 2300 performs operations as shown in Table 6. As shown in Table 6, if a class of intent is “ask for a specific topic” and the current node (e.g., in the discourse tree) is a core and the relevant rhetorical relation is of the type of elaboration, then the discourse navigation application 122 can return text of the core, optionally with a prompt “do you want to learn more” or similar prompt. As shown, other examples are possible based on whether the current node is a core or a satellite and based on the rhetorical relation type.

[0249]

[0250]

[0251] At block 2308, the process 2300 involves identifying from the utterance that a specific topic is known and providing a response based on a current base discourse unit type and a current rhetorical relation type. At block 2308, the process 2300 performs operations as shown in Table 6. For example, if the user intent is identified as the topic being known, the current node type is a core, and the current rhetorical relation is of the type of condition, then the discourse navigation application 122 can indicate to the user that the user knows it, but can ask the user if it is known when it is true.

[0252] At block 2309, the process 2300 involves identifying interest in a topic from the utterance and providing a response based on the current base discourse unit type and the current rhetorical relation type. At block 2309, the process 2300 performs the operations as shown in Table 6. For example, if the user confirms interest in the topic provided by the agent, and the current node is assist, and the rhetorical relation is the type of expound, then the discourse navigation application 122 returns the text corresponding to assist and continues traversal.

[0253] At block 2310, the process 2300 involves identifying a question about an actor, forming a CDT, and providing a response based on the communicative action. The CDT can provide additional information that is useful for navigating the conversation. For example, the discourse navigation application 122 can create a communicative discourse tree for the discourse tree used in the process 2300.

[0254] Thus, the agent can access the communicative action associated with the current node and present to the user a question generated from the communicative action. For example, the communicative action CA = tell (topic) means that the agent is to inform about the topic, while the communicative action CA = refuse (topic) => the agent does not want the topic to happen.

[0255] At block 2311, the process 2300 involves continuing the iteration when there are EDUs that have not been provided to the user device. The process 2300 iterates until there are no more EDUs in T or the user terminates the conversation. If the agent is too persistent for the user to return to T, the user can prematurely terminate the conversation. Otherwise, if the agent is too low in persistence, the user will deviate too far from T and can read less of the content of T (EDU(T)). It is desirable to optimize the agent to maintain an optimal persistence to maximize the number of EDUs(T) delivered until the user abandons the conversation.

[0256] Figure 24 An example discourse tree and its navigation according to one aspect are depicted. Figure 24 An example discourse tree 2400, base discourse units 2401, 2402, 2403, and 2404 (other base discourse units are shown but not labeled), and utterances 2410-2414 (which are part of a conversation between an agent and a user) are depicted. The discourse tree 2400 is shown in text-based form. The level of indentation encodes the depth of each node. Terminal nodes with EDUs are labeled as 'text:' and the rhetorical relations are matched as such ("Attribution", "Expound", etc.).

[0257] The discourse tree 2400 represents the following text: "Media 1 reports that [Statement 1]. Someone XX explained to Media 1 that this is because [Statement 2] and [Statement 3]. However, Organization 1 believes that [Statement 4]. [Statement 5]..."

[0258] Utterances 2410 through 2413 are utterances received from a user device, e.g., generated by a user in response to display of one or more of the basic units of discourse 2401 through 2404. First agent utterances are indicated by the arrow from the user utterance 2410 to 2412. The basic units of discourse that can be used as agent responses are indicated by the arrows from the user utterances 2410 through 2412. T The dialog depicted in FIG. 24 is an example of a dialog that can be generated by a dialog system in accordance with one aspect.

[0259] For example, the dialog based on the discourse tree 2400 begins with the agent presenting the text "Media 1 reports, [Statement 1]" from the basic units of discourse 2401 and 2402. In response, as reflected in utterance 2410, the user asks "Why did they do that? I don't believe this." The agent recognizes the intent in utterance 2410 as a request for more information. The agent recognizes that the basic units of discourse 2401 and 2402 provide an answer. The user then asks at utterance 2411 "Was a certain group involved?" The agent recognizes utterance 2411 as a request for more information, and the basic units of discourse 2403 and 2404 include information that addresses the request.

[0260] Continuing the example, the user then asks at utterance 2413 "Who is XX?" The agent recognizes utterance 2413 as a request for information beyond the scope of the initial text. As can be seen, there is no explanation in the initial text of who "XX" is.

[0261] Figure 25 An example dialog generated by a discourse tree as depicted in FIG. 23 in accordance with one aspect is depicted. Figure 24 An example dialog generated by a discourse tree as depicted in FIG. 23 in accordance with one aspect is depicted. Figure 25 A dialog 2500 between an agent and a user device is depicted. The dialog 2500 includes utterances 2501 through 2515. Utterances 2501, 2503, 2505, 2507, 2509, 2511, 2513, 2515 are generated by the agent (e.g., by the process 2300). In these utterances, italics indicate phrases added by the agent, and the results of the agent's analysis of the utterance and the reply selection rules / results are provided in square brackets. EDUs from the source text are in double quotes. Utterances 2502, 2504, 2506, 2508, 2510, 2512, and 2514 are provided by the user (e.g., by the user device).

[0262] As can be observed, the dialog is reasonable, despite not applying a data-driven approach. It does not matter if the user deviates from the target text, as long as the agent always brings the user back to the EDUs and the rhetorical connections relevant to what the user is asking or asserting, or just follows the DT navigation flow (from more important, closer to the root node, to less important).

[0263] If the user's question is outside the scope of the target text, the agent provides an answer from an external source and then also switches topics and returns to the business scope of the target answer, thus continuing the navigation.

[0264] The final example dialogue is shown below:

[0265] Agent: [Statement 1]

[0266] User: Why did they do that? Don't trust this.

[0267] Agent: This is according to a report by Media 1

[0268] User: Was a certain group involved?

[0269] Agent: This is because [Statement 2]

[0270] User: Why is this?

[0271] Agent: Someone XX explained that...

[0272] User: Who is XX?

[0273] Agent: XX is... and, [Statement 3]

[0274] User: [Question about Statement 3]

[0275] Agent: Organization 1 believes that, [Statement 4]

[0276] User: What does this have to do with Organization 1?

[0277] Agent: Organization 1 is concerned that...

[0278] Agent: Do you know [question about Statement 5]?

[0279] User: I do,.......

[0280] Agent: [Statement 5]

[0281] Figure 26 An example discourse tree and its navigation according to one aspect is depicted. Figure 26 An example discourse tree 2600, basic discourse units 2601-2605, and utterances 2610-2612 are depicted. The discourse tree 2600 is shown in text-based form. The level of indentation encodes the depth of each node. Terminal nodes with EDUs are labeled 'Text:' and the rhetorical relations are also matched this way ("Attribution," "Elaboration," etc.). Utterances 2610-2612 are utterances received from a user device. Arrows from user utterances 2610-2613 point to basic discourse units that can be used as agent responses.

[0282] Figure 26A dialog flow through discourse tree 2600 is shown. First, an introductory topic (I T ) is introduced: "Continue using Tu-104" and is derived from base discourse unit 2601. Next, a main topic M T "Airplanes are unreliable."

[0283] Because the user did not indicate a specific interest, the agent proceeds along the "elaboration" rhetorical link to the next subtopic, "Airplanes are very unreliable, heavy, very unstable, and poorly controlled," which is from base discourse unit 2602. As can be seen from Figure 26 , base discourse unit 2602 is related to the parent of base discourse unit 2601, the "contrast" rhetorical link, through the "elaboration" rhetorical link.

[0284] The user then interrupts the default navigation flow with utterance 2610, asking the question "Did it cause accidents?", forcing a jump to base discourse unit 2604 "At least two accidents have occurred."

[0285] The user question "Why did it happen?" in utterance 2612 does not violate the original text flow, and the agent arrives at base discourse unit 2605 "Because of the pitch-up phenomenon." When the user asks "What caused it?" (rather than "What does this phenomenon cause?", which would be a direct response), the agent is forced to jump back to the cause answer "Poor wing aerodynamic design." For "why" questions about a topic and "explanation" or "cause" rhetorical links associated with auxiliary nodes, the agent provides text from the auxiliary node as an answer. A "why" question without a "cause" forces the agent to attempt to determine a reason (e.g., by web mining or converting the "why" question to a "what" question and finding an entity for "what" through more traditional search means rather than discourse techniques).

[0286] The EDUs of the top I T and M T are highlighted. The introductory text T "Continue using Tu-104" is followed by the main topic "Airplanes are unreliable." Note that this main topic M T is not an auxiliary to the introductory part, but rather the next core that is closest to the root of this DT. In the given exploration scenario, an auxiliary (I T ) has not been reached.

[0287] Figure 27 An example discourse tree and its navigation according to an aspect are depicted. Figure 27 A dialog flow in which the user is initially passive is depicted. Figure 27A discourse tree 2700, elementary discourse units 2701-2704, and utterances 2710-2715 are depicted. The discourse tree 2700 is shown in text-based form. The level of indentation encodes the depth of each node. Terminal nodes with EDUs are labeled 'Text:' and the rhetorical relations are also matched this way ("Attribution," "Elaboration," etc.).

[0288] If I T and M T Once the user is announced to have decided on the question, the agent tries to raise the user's interest in the secondary elementary discourse (I T ) content by relying on a "Contrast" question "But did you know that...?"

[0289] Once the user responds with "Tell me!" (utterance 2711), the agent responds with "Although the safety record of the aircraft was poor...," thus priming the user question "How do pilots feel in it?" The agent answers "Aircrew would fly approaches above the recommended approach speed. Do you know why?" A second utterance is added because the navigation leads to secondary information.

[0290] The flow of the dialogue does not always follow the flow of the initial text, as the user can ask questions in a completely different order. Also, providing a complete paragraph as an answer to a question about a specific point can overwhelm the user with information.

[0291] This is a mixed initiative dialogue: the agent starts the dialogue, introduces the topic. Then, the user can follow the agent's initiative, accept its offer to share information, or start asking the user's own questions about the topic, thus forcing the agent to jump in the DT navigation.

[0292] Figure 28 An exemplary discourse tree and its navigation according to an aspect are depicted. Figure 28 A discourse tree 2800, elementary discourse units 2801-2804, and utterances 2810-2814 are included. The discourse tree 2800 is shown in text-based form. The level of indentation encodes the depth of each node. Terminal nodes with EDUs are labeled 'Text:' and the rhetorical relations are also matched this way ("Attribution," "Elaboration," etc.).

[0293] Figure 28The depicted example illustrates a user with less engagement than other examples. Here, the agent is somewhat more proactive. The agent initiates the conversation, asking in utterance 2810, "Do you know what people with gout experience?" The user responds at utterance 2811, saying "Tell me!" In response, the agent responds by telling the user, "a burning, itching, or tingling feeling in a joint," as shown in utterance 2803.

[0294] Additionally, Figure 28 The illustrated exchange dialogue tree (CDT) illustrates how it can provide additional information about the mental state of an individual mentioned in the text. When the user asks a question that involves an exchange action or mental state, the agent can match the question to an arc tag for an exchange action in the CDT, and then to the subject of that exchange action. For example, the user asks in utterance 2812, "how can one learn from body messages?"

[0295] Figure 29 An example dialogue tree and its navigation according to one aspect are depicted. Figure 29 The dialogue tree 2900, basic dialogue units 2901-2906, and utterances 2910-2919 are included. The dialogue tree 2900 is shown in text-based form. The level of indentation encodes the depth of each node. Terminal nodes with EDUs are labeled as 'text:' and the rhetorical relations are matched as well ("Attribution," "Elaboration," etc.).

[0296] The discourse tree 2900 corresponds to the following text related to epilepsy: "Status epilepticus is a common, life-threatening neurologic disorder that is essentially an acute, prolonged epileptic crisis. Status epilepticus can represent an exacerbation of a preexisting seizure disorder, the initial manifestation of a seizure disorder. However, it can also be an insult other than a seizure disorder. In patients with known epilepsy, the most common cause is a change in medication. Most seizures terminate spontaneously. Aggressive treatment is necessary for status epileptics. Clinicians should not wait for blood level results before administering a loading dose of phenytoin, regardless of whether the patient is already taking phenytoin. Most patients with status epilepticus who are aggressively treated with benzodiazepines, fosphenytoin, and / or phenobarbital experience complete cessation of their seizures."(Most patients with status epilepticus who are treated aggressively with abenzodiazepine, fosphenytoin, and / or phenobarbital experience completecessation of their seizures.) If status epilepticus does not stop, generalanesthesia is indicated.

[0297] The user starts the conversation with a speech 2910 that states "what is epilepticus?" As a response, the agent poses the question "do you know what epilepticus represents?" in speech 2911 and the user answers "yes, tell me!" The agent navigates the discourse tree 2900 from there. The agent provides an I T , "status epilepticus can represent an exacerbation of a preexisting seizure disorder," and then asks "do you know that it is not necessarily a seizure disorder?" in speech 2913. In response, the user asks "tell me" at speech 2914.

[0298] In response, the agent continues with the statement "it can also be an insult" in speech 2915. The user asks "how do most seizures terminate?" at speech 2916. The agent then navigates to the base discourse unit 2906 that states "spontaneously."

[0299] The agent then asks at utterance 2917, "Do you know the most common cause in patients with known epilepsy?" and the user replies at utterance 2918, "I know. It is a change in drug." The agent confirms this from the base utterance unit 2905 at utterance 2919, "a change in medication."

[0300] Topic classification

[0301] In one aspect, topics and intents can be measured in parallel. For example, a first classification model can be trained to predict topics, and a second classification model can be trained to predict intents. The first and second classification models can each receive user utterances and perform their respective classifications in parallel. A third classification model can also be run in parallel, predicting both topics and intents. The predicted topics (i.e., from the first and third models) can then be merged, and the predicted intents (i.e., from the second and third models) can be merged.

[0302] In open-domain dialogue agents, topic and dialogue intent classification can be viewed as a text classification problem. Compared to general text classification, utterance classification presents greater challenges due to the following reasons: (1) the trend of human utterances becoming short; (2) the frequent mentioning of out-of-vocabulary words and entities by users; and (3) the lack of labeled open-domain human-machine dialogue data available.

[0303] Natural dialogue requires utterances that depend on context, so it is impossible to classify topics and intents without taking into account the preceding utterances. For example, when a customer replies with the "Oh, yeah" expression, it can be interpreted as one of several options such as "accepting agreement" or "topic switching." To help address these issues, a context-aware topic and dialogue intent classification model for open-domain conversational agents is presented. To identify topics and dialogue intents, a Mixture of Experts model is developed.

[0304] The topic classifier is trained on new topics like "diabetes" and "lung disease" and the intent classifier is trained on new intents like "yes-answer". In addition, the intent classifier aims to improve the quality of some specific classes to better adapt to the health use case. For example, it was observed that the default intent classifier would consider a user disagreement as a "topic shift", even if this is not the most accurate label of the current conversation situation. To improve this situation, another intent "refusal" was added to cover the situation where the user disagrees with the last system response but does not intend to end the current discussion topic.

[0305] Cognitive state

[0306] One of the goals of a text-centered conversation is to ensure that the recipient takes the information from the text, is able to follow the instructions voluntarily, believes the text and is able to share the idea with others. In other words, one goal is to convince the user that the topic is important and needs to be well understood. The agent plays the role of the persuader and the user plays the role of the persuaded. However, to achieve this goal in a more reliable way, the roles can be interchanged and the user is encouraged to answer questions, like the answer can be confirmed / updated / modified by the agent in a subsequent utterance.

[0307] The goal of persuasion is to make the persuader change the mind of the persuaded and providing good arguments and possibly counterarguments is essential to this. Some recent advances in the field of computational persuasion focus on the need to model the idea of the persuaded to make the persuader better select arguments to present to the persuaded. For example, if the persuader wants to convince the persuaded to stop running on the sidewalk and the persuader knows that the persuaded believes that if he gives up any running his weight will increase, the persuader can start the conversation by providing a counterargument to this, for example, by saying that there is a very nice sports field in the neighborhood that is perfect for running on the grass.

[0308] One way to model the persuaded is to use an argumentation graph. The cognitive state manager 124 can perform this function. Argumentation graphs are used to present the argument and attacks between them. When the agent starts the conversation with the persuaded, there is no model of what the persuaded already knows and what the persuaded does not know. This is the initial default cognitive state. Then during the conversation, the participants move according to some protocol. After each move, the cognitive state is updated using the update function defined on the discourse tree.

[0309] Text with DT composed of n EDUs. Initially, the agent believes that the user does not know anything about this text: Unknown (user, EDU(i)). i = 0..n is ordered according to how the DT is constructed (initial order). The user cannot get these EDU(i) in any order: this order should follow the navigation of the DT, as for example, EDU(i) cannot be retrieved as secondary as long as its core EDU(i-1) is retrieved. The agent cannot just traverse the DT, as each user has different initial knowledge and interests and guides the agent session through its chosen cognitive state. The actual sequence thus deviates from 0..n.

[0310] When the user asks for EDU(i), the agent assumes that the user wants to know EDU(i). If the user shares EDU(i), the agent decides that this user also wants to know or wants to share EDU(i+1) as well as EDU(i-1), thus traversing the DT from both core and secondary directions and returning.

[0311] If the user interrupts the agent and wants a new topic t, the agent finds a topic t ~ EDU(i) that is determined to be similar or initiates an external search and tries to relate the external search results to EDU(i). If a question about an attribute a of e is given by the user, which cannot be accessed from the current node i, the agent shifts to the machine reading comprehension mode and determines the value a together with a new node j.

[0312] If the agent is in the secondary node, it has delivered the main point e and is now able to produce speech about the elaboration of e, the attribution of e, the cause of e, the temporal order of e without changing the current topic. In contrast, if the agent is in the core mode, it shares the main core topic e with the user and expects the user to request more detailed information about e, the attribution of e, the cause of e, etc. The goal is to reduce the un-delivered EDUs as much as possible before the user gives up the conversation. Offline, a discourse analysis is performed on the piece of text to be delivered. Then it is additionally customarily parsed to determine the specific rhetorical links of the navigation. Moreover, the ontology is integrated to distinguish between questions that can be answered by the text from questions that need an external search.

[0313] Online, when the user replies, its intention is established (classified into one of the pre-determined categories). Moreover, when the user shares its knowledge, the knowledge has to match the given paragraph of the text to be delivered to be compatible, contradictory or independent of this text.

[0314] The central part of the persistent agent is the discourse tree navigator. Its main function is to establish the type of reply by the user intent and the current position in the discourse tree. After each user utterance, the navigator decides which next node to proceed to. If the user has an explicit knowledge request, it needs to jump to a node with a text block to handle the request. Otherwise, the persistent agent takes the initiative and generates a set of options for the user to continue with. These options match the rhetorical associations into and out of the current node of the discourse tree. As part of the user intent characterization, the matching between the user cognitive states is also done by the navigator.

[0315] Depending on the cognitive state, the navigator selects a text snippet to reply to the user and also encourages the user to continue the knowledge exploration in some form or another. The decision about which text to reply to and the decision about which next step to propose are done independently.

[0316] The internal and external search engines first match the user query or user statement to each EDU of the discourse tree. In both cases of questions and statements, it jumps to the node that is closest to the user utterance in syntax and semantics. In the case of questions, the answer (this EDU) is returned and in the case of statements, it confirms whether it matches this EDU or is rejected and then encourages the user to receive the correct information block. The search engine implementation is based on structured word2vec combined with syntactic and semantic features to find the best text snippet that matches the user utterance.

[0317] Both the knowledge reply generator and the navigation reply generator employ machine learning based rhetorical coherence to ensure that the selected utterance not only fits the topic but is also consistent with the previous utterances in style and logic.

[0318] Evaluation

[0319] One of the main challenges researchers face is the lack of good mechanisms for measuring performance due to the lack of explicit goals for task-oriented dialogues. To measure the quality of a response given a set of previous utterances, the following seven questions for the evaluator can be used.

[0320] Is the response meaningful in the given context? Meaningfulness is a necessary feature to achieve humanization of the conversation. Meaningfulness includes: relevance to the question, consistency of cognitive state when the agent follows the user request to share information, common sense, and coherence in logic and rhetoric. Meaningfulness also includes other important aspects of the agent such as consistency. The evaluator is asked to judge the response as completely reasonable in the context of the previous utterances using common sense. If anything seems off - confusing, illogical, out of context, or factually incorrect - it should be marked as "not meaningful".

[0321] How specific is the response. Reasonableness is not enough: a general response (e.g., I don't know) can be reasonable, but also boring and not specific. Such responses are usually generated by bots that evaluate only by reasonableness and similar metrics. It is required that the evaluator determines whether the agent response is specific to the given context, providing information to the user in the given step. Specificity Average (SSA) combines this measure with the evaluation 1) as a key aspect of a human-like agent: meaningful and specific. Turing Test competition participants often try to avoid being discovered by strategic obfuscation (Venkatesh et al., 2018), so we intend to avoid this approach.

[0322] Engagement is a measure of interest in the dialogue (Yu et al., 2004). Researchers in the field of dialogue evaluation try to identify correlates of engagement, such as the number of dialogue turns and the total dialogue duration, which are indicators of user engagement in the dialogue. Since task-oriented bots do not understand the user's intent, there are cases where the number of turns can be high, resulting in subsequent turns directed at clarification and modification, and also leading to user dissatisfaction. Analysis of random dialogue samples (Venkatesh et al., 2018) concluded that the effect of this is negligible.

[0323] Relevant response indicates an understandable and relevant response to the user's request. A response can be considered weakly relevant if it is somewhat relevant. For example, when the user says: "What do you think about the entity e?"; the response should be about e, a broader category of e, or related things. A response that is related to e but not entirely related to a category of e or things that are related to e will be considered weakly relevant. For open-domain dialogues, the complexity of the response space makes this problem very difficult, but within a specific text T, the evaluation is simple.

[0324] Dialogue depth. Relevance is usually measured at the turn level. However, in multi-turn dialogues, the context can be carried through multiple turns. When evaluating dialogue agents, it is important to detect the context and depth of the dialogue. Human dialogues usually go deep into a certain specific topic. An agent that is able to capture the depth of the topic (Galitsky 2017) can sound more natural. To evaluate agents in terms of dialogue depth, one can rely on topic models to identify the domain of each individual utterance. Dialogue depth can be calculated as the average number of consecutive turns within the same topic domain. More accurately, it can be estimated as the depth of the chain of entities conveyed, such as disease-specific symptoms - specific features of that symptom.

[0325] Dialog breadth. This is a characteristic of chat open-domain robots. It can identify topics and keywords from a given utterance, have a conversation around the same topic and share relevant concepts. Natural conversations have a high degree of topicality and humans often use keywords in their interactions. Users are typically dissatisfied with robots that lack topic diversity. Unlike potentially highly scripted conversations about a small number of limited domains, evaluating dialog breadth is important to understand how broadly an agent can support a conversation.

[0326] Overall user satisfaction score. For a given dialog, the user confirms that it reached its goal, understood what it wanted to understand (+1) or did not understand (0). To dialog with humans correctly, the responses of the robot must be meaningful in context; humans typically take this for granted when talking to each other and 97% of human produced statements meet this criterion. To evaluate the usefulness of DT navigation, overall measures such as user satisfaction score are used, indicating the need to read T after the dialog. If the text needs to be consulted after a session with the agent, the user is considered unsatisfied. Then, the average of multiple sessions of multiple users is computed for T.

[0327]

[0328]

[0329] The level of persuasiveness in answering the user’s question is evaluated first. Navigation algorithms vary from focusing the user on the text T to more accurately answering the user’s question.

[0330] This evaluation can also be seen as an ablation study that turns on / off various components and tracks the percentage of information covered in T and the overall user satisfaction score.

[0331]

[0332]

[0333] In the evaluation, focus on text passages (5 to 7 sentences per passage) that contain important instructions on how to do things. Domains range from home to professional domains, from low to high responsibility up to the aviation domain.

[0334] The overall sense of coherence of the dialogues and rhetoric is now evaluated. 20% of the dialogues in each domain are evaluated manually. For the remaining 80%, a specially designed evaluation agent is used, which is designed to reproduce the evaluation scores of human evaluators, without taking into account the error types of the main agent. This evaluation agent is designed to ask basic questions in case the main agent or the user gives a speech. The main underlying algorithm is used to summarize the received sentences and convert them into questions about the properties of the entities that appear in this question. The detailed description of the algorithm is available in the doc2dialogue paper (Galitsky and Ilvovsky, 2019).

[0335] The evaluation agent is tuned to produce the same evaluation as a human for the 20% part of the evaluation dataset. Then, the evaluation performance of the evaluation agent (not the main agent) is evaluated on the remaining 10% of this dataset, which is evaluated manually. The remaining 70% is evaluated by the evaluation agent in a fully automatic mode.

[0336]

[0337] In Table 9, it can be seen that the user satisfaction reaches a higher 70%. Some of the more complex health domains lag behind the simpler ones like cough, muscle spasm, and throat irritation by 3% to 5%. In the health-related domains, missing important knowledge is a big drawback, which can lead to the trainee having to read through the entire passage after the agent mode. The evaluators apply stricter meaningful criteria in these domains. In other entertainment-related domains of knowledge, the dialogue mode is sufficient in most cases, and missing some EDUs does not seriously affect the knowledge acquisition results.

[0338] To compare the DT navigation with a purely data-driven approach, a given text passage is taken as a seed and a few hundred similar texts are mined from health resources and the web. Then, a dialogue model similar to (?) is learned from them and applied. The evaluation agent representing the user is the same, but now the dialogue is completely different. What is most lacking is the systematic navigation through the text: the data-driven agent jumps from one topic to another abruptly, and the content exploration becomes chaotic (the rightmost column in Table 5).

[0339] The evaluation results show that the DT navigation approach has an advantage over the data-driven content exploration method. When the data-driven system replaces the DT navigation, the user satisfaction drops by 11%.

[0340]

[0341] The evaluation results for other dialogue criteria are presented in Table 10.

[0342] Specificity column shows the percentage of specific utterances when speaking about the same or related entities. Non-specific answers will include completely foreign entities or no specific entities at all.

[0343] Engagement column shows the percentage of the conversation that successfully covers the text passage being communicated. If a human user abandons the conversation after the second question and decides that it is in their best interest to read this text rather than continue the conversation, then the engagement is considered to be subpar.

[0344] Coherence column shows the percentage of the conversation where the user did not interrupt the conversation when encountering completely incoherent utterances from the agent. Such incoherent utterances break the user's train of thought and abruptly change the flow of the conversation. A given conversation is considered incoherent if less than five utterances in total result in loss of coherence.

[0345] Conversation depth measures the highest number of nested entities conveyed by the agent's responses. For example, the depth of the diabetes-chronic disease- abnormal high sugar levels-glucose-in blood-insulin chain gives depth = 6.

[0346] Conversation breadth measures the number of different entities covered in the conversation such that one entity is not a sub-entity of another entity (do not evaluate chains based on depth).

[0347] Note that failures in specificity, engagement, and coherence are not mutually exclusive: some problematic conversations can fail on more than one criterion.

[0348] Data-driven agents form responses that are averaged over many similar text passages and conversation passages to construct fluent and seemingly credible conversations. While such conversations can be accepted by human annotators as meaningful conversations, the conversations constructed by averaging do not have any purpose. Optimizing conversations for confusion ensures that the focus of the conversation evolves constantly, but does not impart any meaning to the interlocutors or the reader of the conversation. Learning from more data ensures that any utterance that performs well in the training set used for averaging is performed by the user, but also does not make the conversation more meaningful.

[0349] Conversations that start with "Hi" followed by "I am well / How are you" are meant to continue this conversation and keep the interlocutors busy. In contrast, we propose a conversation pattern that explicitly aims to inform the user by conveying a certain chunk of knowledge in a comprehensive, systematic, and interpretable way.

[0350] Personalization in health agents

[0351] In the field of medical education, it is important to maintain high-quality content with well-organized structure. Agent-delivered content needs to have well-organized structure and smooth logical flow. It is important to navigate users through various parts and types of knowledge, from symptoms to treatments. It is best to keep the original paragraphs of the text intact.

[0352] Many developed DL-based end-to-end agents end up being slot fillers at best and random chat tools at worst. These agents can rely on the association between symptoms and diseases. In an online setting, once a candidate disease is established, the agent can simultaneously understand the symptom-disease association, dialogue management, and speech generation in real time. Thus, it is difficult to achieve high-quality content delivery.

[0353] Over the past two decades, the number of personalized studies in healthcare and medicine has continued to increase, with growing evidence of its effectiveness. One important limitation in the literature of healthcare personalization is to equate it with genomics- supported medical research. Genomic markers are only one aspect of personalization that helps to identify the uniqueness of individuals and personalize their medication. There are other factors that influence this healthcare personalization, such as people’s lifestyle choices, their socio-economic background and living environment, and other healthcare services that can be personalized, like health education and therapy.

[0354] A dialogue system can provide fine-grained possibilities to personalize the information to be delivered to the user based on the user’s inferred goals, intentions, knowledge concepts, and everything said before in the dialogue.

[0355] Learning from the previous dialogue history plays a key role in ensuring continuity of the health communication that occurs over multiple interactions over time. A review of behavior change interventions characterized them into four intervention groups according to the degree of personalization in the messages delivered to individuals: generic (one-size-fits-all messages), personalized (information with personal names), targeted (messages specific to a subgroup within a general population), or tailored (messages specific to individual characteristics).

[0356] Personalization is mainly used to customize the content to be delivered. Personalized content includes: (1) about emotional states, narrative techniques, symptom summaries, meditation exercises, and feedback on current progress toward setting goals; (2) reminders, warnings, and alerts (Harper et al., 2008); (3) multimedia; and (4) questions about pain, physical activity, and health status.

[0357] The user interface can be personalized by changing the dialogue style according to the user's motivational state, the user's level of expertise with the system, and the dialogue history. The authors used a didactic, a conversational, or an inspirational dialogue style based on the user profile and progress. The didactic style was used for training-related dialogues, the conversational style was used at the beginning of the session to increase user engagement based on the answers received from the user. The inspirational style was used to collect information related to progress and then provide customized responses to support the user. In a simpler implementation, another study used a shorter question format for subsequent sessions.

[0358] While the technology behind intelligent agents is constantly evolving, they currently do not have fully human-level language capabilities, leading to misunderstandings and user dissatisfaction. In addition, as machine learning algorithms evolve, it becomes increasingly challenging to track their development, evolution, and the reasoning behind their responses. While the black box effect seems to be an unavoidable consequence of using AI, there are some new studies on making AI transparent and interpretable. However, currently, its use can affect the safety and accuracy of therapy and should be carefully monitored and evaluated when used in healthcare.

[0359] Agents are evolving from performing simple transactional tasks to more complex end points such as long-term disease management and behavior change. Most conversational agents target patients, and only a few are directed at healthcare professionals, for example, by automatically receiving patients or helping with patient triage and diagnosis.

[0360] Robots were created to include the following features oriented to the therapeutic process: (1) empathic responses: the robot replies in an empathic way that is appropriate to the recognized user's mood. For example, in response to a complaint about feeling alienated, the robot replies "Sorry you are feeling lonely. I guess we all feel a little alienated sometimes," or it shows excitement, "Yay, always good to hear that!" (2) customization: sending specific content to the individual according to the mood state. For example, providing in-vivo assistance for anxiety events to participants who show signs of feeling anxious. (3) goal setting: the conversational agent asks the participant if he has personal goals that he wishes to achieve in a 2-week period. (4) accountability: to promote accountability, the agent sets expectations for regular check-ins and tracks earlier activities, e.g., the status of stated goals. (5) motivation and engagement: to engage the individual in daily monitoring, the robot sends a personalized message every day or every other day to initiate a conversation (i.e., a prompt). In addition, "emoticons" and animated gifs with messages that provide positive reinforcement can be used to encourage effort and task completion.

[0361] Reflection: the robot also provides a weekly chart that describes each participant's mood over time. Each chart is sent with a brief description of the data to facilitate reflection, e.g., "Overall, your mood has been fairly steady, though you tend to become tired after periods of anxiety. It looks like Tuesday was your best day."

[0362] The persistent agent is particularly valuable in organizations that are unable to ensure a systematic educational approach.

[0363] Two main themes emerged in response to the question about the social robot's favorite feature: process and content. In the process theme, subthemes that emerged were the accountability of daily check-ins, the empathic role the robot assumes or other factors related to its "personality"; and the learning that the robot facilitates, which in turn was divided into the subthemes of emotional insight, general insight, and additional subthemes about cognitive insight Figure 17 .

[0364] Figure 30 A simplified diagram depicting a distributed system 3000 for implementing one of the aspects is depicted. In the illustrated aspect, the distributed system 3000 includes one or more client computing devices 3002, 3004, 3006, and 3008, which are configured to execute and operate a client application, such as a web browser, a proprietary client (e.g., Oracle Forms), or the like. Server 3012 can be communicatively coupled with remote client computing devices 3002, 3004, 3006, and 3008 via network 3010.

[0365] In various aspects, server 3012 can be adapted to execute one or more services or software applications provided by one or more of the components of the system. The services or software applications can include non-virtual and virtual environments. Virtual environments can include environments for virtual events, trade shows, simulators, classrooms, shopping transactions, and enterprises, whether they are two-dimensional or three-dimensional (3D) representations, page-based logical environments, or other environments. In some aspects, these services can be provided as web-based services or cloud services or under a software as a service (SaaS) model to users of client computing devices 3002, 3004, 3006, and / or 3008. Users operating client computing devices 3002, 3004, 3006, and / or 3008 can in turn utilize one or more client applications to interact with server 3012 to utilize the services provided by these components.

[0366] In the configuration depicted in the figure, software components 3018, 3020, and 3022 of distributed system 3000 are shown as being implemented on server 3012. In other aspects, one or more of the components of distributed system 3000 and / or the services provided by these components can also be implemented by one or more of client computing devices 3002, 3004, 3006, and / or 3008. Users operating the client computing devices can then utilize one or more client applications to use the services provided by these components. These components can be implemented in hardware, firmware, software, or a combination thereof. It should be appreciated that various different system configurations are possible, which can be different from distributed system 3000. Therefore, the aspect illustrated in the figure is one example of a distributed system for implementing an aspect system and is not intended to be limiting.

[0367] Client computing devices 3002, 3004, 3006, and / or 3008 can be portable handheld devices (e.g., an iPhone®, cellular smart phone), computers (e.g., laptops), tablets (e.g., iPad®, Androids®), or wearable devices (e.g., Google Glass®). cellular telephone, tablet computer, personal digital assistant (PDA), or wearable device. Head-mounted displays (such as Microsoft Windows) Running software and / or various mobile operating systems, such as iOS, Windows Phone, Android, BlackBerry 10, Palm OS, etc., and supporting internet, email, and SMS services. Alternatively, it may support other communication protocols. The client computing device can be a general-purpose personal computer, including, for example, those running various versions of Microsoft... Apple Personal computers and / or laptops running Linux operating systems. Client computing devices can be running various commercially available operating systems. Workstation computers operating any of the UNIX-like operating systems, including but not limited to various GNU / Linux operating systems, such as Google Chrome OS. Alternatively or additionally, client computing devices 3002, 3004, 3006, and 3008 can be any other electronic device capable of communicating via networks(multiple) 3010, such as thin client computers, Internet-enabled gaming systems (e.g., with or without...). A gesture input device (Microsoft Xbox game console) and / or a personal messaging device.

[0368] Although the exemplary distributed system 3000 is shown as having four client computing devices, any number of client computing devices can be supported. Other devices (such as devices with sensors, etc.) can interact with the server 3012.

[0369] The distributed system 3000 may contain multiple networks 3010 that are any type of network familiar to those skilled in the art that supports data communication using any of a variety of commercially available protocols, including but not limited to TCP / IP (Transmission Control Protocol / Internet Protocol), SNA (System Network Architecture), IPX (Internet Packet Switching), AppleTalk, etc. By way of example only, the multiple networks 3010 may be local area networks (LANs), such as LANs based on Ethernet, Token Ring, etc. The multiple networks 3010 may be wide area networks (WANs) and the Internet. They may include virtual networks, including but not limited to Virtual Private Networks (VPNs), intranets, extranets, Public Switched Telephone Networks (PSTN), infrared networks, and wireless networks (e.g., according to the IEEE 802.30 protocol suite). (and / or any other wireless protocol operating on a network); and / or any combination of these and / or other networks.

[0370] Server 3012 may consist of: one or more general-purpose computers, dedicated server computers (including PC (personal computer) servers by way of example), Server 3012 may be a server, mid-range server, mainframe computer, rack server, server cluster, or any other suitable arrangement and / or combination thereof. Server 3012 may include one or more virtual machines running a virtual operating system or other computing architecture involving virtualization. One or more flexible pools of logical storage devices may be virtualized to maintain the server's virtual storage devices. The virtual network may be controlled by server 3012 using software-defined networking. In various aspects, server 3012 may be adapted to run one or more services or software applications described in the foregoing disclosure. For example, according to aspects of this disclosure, server 3012 may correspond to a server used to perform the above-described processes.

[0371] Server 3012 can run any of the operating systems discussed above, as well as any commercially available server operating system. Server 3012 can also run any of a variety of additional server applications and / or middleware applications, including HTTP (Hypertext Transfer Protocol) servers, FTP (File Transfer Protocol) servers, CGI (Common Gateway Interface) servers, etc. Servers, database servers, etc. Exemplary database servers include, but are not limited to, those commercially acquired from Oracle Corporation, Microsoft Corporation, Sybase Corporation, IBM Corporation, etc.

[0372] In some implementations, server 3012 may include one or more applications to analyze and merge data feeds and / or event updates received from users of client computing devices 3002, 3004, 3006, and 3008. As an example, data feeds and / or event updates may include, but are not limited to, those provided in the original text. feed, The server 3012 may receive real-time updates from one or more third-party information sources and continuous data streams. These real-time updates may include real-time events related to sensor data applications, financial reporting machines, network performance measurement tools (e.g., network monitoring and traffic management applications), clickstream analysis tools, vehicle traffic monitoring, and the like. The server 3012 may also include one or more applications to display data feeds and / or real-time events via one or more display devices of client computing devices 3002, 3004, 3006, and 3008.

[0373] The distributed system 3000 can also include one or more databases 3014 and 3016. The databases 3014 and 3016 can reside in a variety of locations. By way of example, one or more of the databases 3014 and 3016 can reside on a non-transitory storage medium local to the server 3012 (and / or reside therein). Alternatively, the databases 3014 and 3016 can be remote from the server 3012 and in communication with the server 3012 via a network-based or dedicated connection. In one set of aspects, the databases 3014 and 3016 can reside in a storage area network (SAN). Similarly, any necessary files for performing the functions attributed to the server 3012 can be stored locally on the server 3012 and / or remotely as appropriate. In one set of aspects, the databases 3014 and 3016 can include a relational database, such as an Oracle® database provided by Oracle Corporation, adapted to store, update, and retrieve data in response to SQL-formatted commands.

[0374] Figure 31 is a simplified block diagram of one or more components of a system environment 3100 in accordance with an aspect of the present disclosure, through which services provided by one or more components of an aspect system can be offered as a cloud service. In the illustrated aspect, the system environment 3100 includes one or more client computing devices 3104, 3106, and 3108, which can be used by users to interact with a cloud infrastructure system 3102 that provides cloud services. The client computing devices can be configured to operate a client application such as a web browser, a proprietary client application (e.g., Oracle Forms), or some other application, which can be used by a user of the client computing device to interact with the cloud infrastructure system 3102 to use services provided by the cloud infrastructure system 3102.

[0375] It should be appreciated that the cloud infrastructure system 3102 depicted in the figure can have other components than those depicted. Further, the aspect shown in the figure is only one example of a cloud infrastructure system that can incorporate an aspect of the present disclosure. In some other aspects, cloud infrastructure system 3102 can have more or fewer components, can combine two or more components, or can have a different configuration or arrangement of components than that shown in the figure.

[0376] The client computing devices 3104, 3106, and 3108 can be similar to the devices described above for 3002, 3004, 3006, and 3008.

[0377] Although the example system environment 3100 is shown with three client computing devices, any number of client computing devices can be supported. Other devices, such as devices with sensors, etc., can interact with the cloud infrastructure system 3102.

[0378] Network(s) 3110 can facilitate data communications and exchanges among client computing devices 3104, 3106, and 3108, and cloud infrastructure system 3102. Each network can be any type of network familiar to those skilled in the art that can support data communications using any of a variety of commercially-available protocols, including those described above for network(s) 3110.

[0379] Cloud infrastructure system 3102 can comprise one or more computers and / or servers that can include those described above for server 1712.

[0380] In certain aspects, the services provided by the cloud infrastructure system can include a host of services offered to users of the cloud infrastructure system on-demand, such as online data storage and backup solutions, Web-based e-mail services, managed office suites and document collaboration services, database processing, managed technical support services, and the like. The services provided by the cloud infrastructure system can dynamically scale to meet the needs of its users. A specific instance of a service provided by the cloud infrastructure system is referred to herein as a "service instance." In general, any service offered by the cloud

[0381] In some examples, services in a computer network cloud infrastructure can include protected computer network access to storage, hosted databases, hosted web servers, software applications, or other services offered by a cloud provider to users, or other services known in the art. For example, a service can include password-protected access to remote storage on the cloud over the Internet. As another example, a service can include a web service-based, hosted relational database and scripting language middleware engine for the exclusive use of a network developer. As another example, a service can include access to an email software application hosted on a cloud provider's website.

[0382] In certain aspects, cloud infrastructure system 3102 can comprise a suite of applications, middleware, and database service offerings that are delivered to a customer in a self-service, subscription-based fashion over the Internet. An example of such a cloud infrastructure system is Oracle Public Cloud, offered by the present assignee.

[0383] Large amounts of data, sometimes referred to as big data, can be hosted and / or manipulated by infrastructure systems at multiple levels and at different scales. Such data can include very large and complex data sets that are difficult to process using typical database management tools or traditional data processing applications. For example, petabytes of data can be difficult to store, retrieve, and process using a personal computer or its rack-based equivalent. Such large data can be difficult to handle using current most relational database management systems as well as desktop statistical and visualization packages. It can require large-scale parallel processing software operating thousands of server computers beyond the structure of common software tools to capture, organize, manage, and process the data within a tolerable elapsed time.

[0384] Analysts and researchers can store and manipulate very large data sets to visualize large amounts of data, detect trends, and / or otherwise interact with the data. Tens, hundreds, or thousands of parallel linked processors can act on such data to render the data or simulate forces on the data or what it renders. These data sets can involve structured data, such as structured data organized in a database or otherwise organized according to a structured model, and / or unstructured data (e.g., emails, images, blobs (binary large objects), web pages, complex event processing). By leveraging the ability to relatively quickly focus more (or less) computing resources on an aspect of interest, cloud infrastructure systems can be better used to perform tasks on large data sets based on demand from businesses, government agencies, research organizations, private individuals, groups or organizations of like-minded individuals, or other entities.

[0385] In various aspects, cloud infrastructure system 3102 can be adapted to automatically provision, manage and track a customer's subscription to services offered by cloud infrastructure system 3102. Cloud infrastructure system 3102 can offer cloud services through different deployment models. For example, services can be offered under a public cloud model in which cloud infrastructure system 3102 is owned by an organization selling cloud services (e.g., owned by Oracle Corporation) and the services are made available to the general public or different industry enterprises. As another example, services can be offered under a private cloud model in which cloud infrastructure system 3102 is operated solely for a single organization and can provide services for this organization alone. Cloud services can also be offered under a community cloud model in which cloud infrastructure system 3102 and the services provided by cloud infrastructure system 3102 are shared by several organizations within a community. Cloud services can also be offered under a hybrid cloud model, which is a combination of two or more different models.

[0386] In some aspects, the services provided by the cloud infrastructure system 3102 can include one or more services provided under the Software as a Service (SaaS) category, the Platform as a Service (PaaS) category, the Infrastructure as a Service (IaaS) category, or a hybrid service comprising services provided under the SaaS category, the PaaS category, and the laaS category. A customer, through a subscription order, can order one or more services provided by the cloud infrastructure system 3102. The cloud infrastructure system 3102 then performs processing to provide the services ordered by the customer in the subscription order.

[0387] In some aspects, the services provided by the cloud infrastructure system 3102 can include, without limitation, application services, platform services, and infrastructure services. In some examples, the cloud infrastructure system can provide application services through a SaaS platform. The SaaS platform can be configured to provide cloud services that fall under the SaaS category. For example, the SaaS platform can provide the capability for customers to acquire and use application software running on the cloud infrastructure. Customers can acquire application software without the need for customers to purchase, install, and manage the underlying software and hardware. Customers can acquire access to the application software and related support services on a subscription basis. Various different application services can be provided. Examples include, without limitation, services for enterprise resource planning, customer relationship management, enterprise performance management, digital marketing and commerce, human capital management, and so on.

[0388] In some aspects, the cloud infrastructure system can provide platform services through a PaaS platform. The PaaS platform can be configured to provide cloud services that fall under the PaaS category. Examples of platform services can include, without limitation, services that enable organizations (such as Oracle Corporation) to combine existing applications with shared services provided by the platform, and to build new applications using the shared services provided by the platform. The PaaS platform can manage and control the underlying software and infrastructure for providing the PaaS services. Customers can acquire the PaaS services provided by the cloud infrastructure system without the need for customers to purchase, install, and manage the underlying software and infrastructure. Examples of platform services include, without limitation, Oracle Java Cloud Service (JCS), Oracle Database Cloud Service (DBCS), and so on.

[0389] By utilizing the services provided by the PaaS platform, customers can access development tools and deploy applications programming languages and frameworks of their choice. In some aspects, platform services provided by the cloud infrastructure system can include database cloud services, middleware cloud services (e.g., Oracle Fusion Middleware services), and Java cloud services. In one aspect, database cloud services can support a shared service deployment model that enables organizations to pool database resources and offer customers a Database as a Service in the form of a database cloud. Middleware cloud services can provide a platform for customers to develop and deploy various business applications, and Java cloud services can provide a platform for customers to deploy Java applications, in the cloud infrastructure system.

[0390] The laaS platform in the cloud infrastructure system can provide the fundamental computing resources for customers to construct, operate, and control their own infrastructure environments. Customers can utilize the laaS platform to deploy and manage various applications and tools that are part of their computing resource environment.

[0391] In certain aspects, the cloud infrastructure system 3102 can also include infrastructure resources 3130 that are used to provide the resources used to offer various services to customers of the cloud infrastructure system. In one aspect, the infrastructure resources 3130 can include a combination of hardware components and software components that are pre-integrated and optimized to work together.

[0392] In some aspects, the resources in the cloud infrastructure system 3102 can be shared by multiple users and dynamically re-allocated per demand. Additionally, the resources can be allocated to users in different time zones. For example, the cloud infrastructure system 3102 can enable a first group of users in a first time zone to utilize the resources of the cloud infrastructure system for a specified number of hours, and then enable the same resources to be reallocated to another group of users located in a different time zone, thereby maximizing the utilization of the resources.

[0393] In certain aspects, a number of internal shared services 3132 can be provided that are shared by different components or modules of the cloud infrastructure system 3102 and by the services provided by the cloud infrastructure system 3102. These internal shared services can include, but are not limited to, security and identity services, integration services, enterprise repository services, enterprise manager services, virus scanning and white list services, high availability, backup and recovery services, services for implementing cloud support, email services, notification services, file transfer services, and the like.

[0394] In certain aspects, cloud infrastructure system 3102 can provide overall management of the cloud services (e.g., SaaS, PaaS, and IaaS services) in the cloud infrastructure system. In one aspect, cloud management functionality can include the ability to provision, manage and track subscriptions of customers of the cloud infrastructure system 3102, etc.

[0395] In one aspect, as depicted in the figure, cloud management functionality can be provided by one or more modules, such as an order management module 3126, an order orchestration module 3122, an order provisioning module 3124, an order management and monitoring module 3126, and an identity management module 3128. These modules can include or use one or more computers and / or servers, which can be general purpose computers, specialized server computers, server farms, server clusters, or any other appropriate arrangement and / or combination.

[0396] In example operation 3134, a customer using a client device such as client computing devices 3104, 3106, or 3108 can interact with cloud infrastructure system 3102 by requesting and placing an order to subscribe to one or more services provided by cloud infrastructure system 3102. In certain aspects, the customer can access cloud user interfaces (UIs) 3112, 3114, and / or 3116 and place an order to subscribe through these UIs. Order information received by cloud infrastructure system 3102 in response to a customer placing an order can include information identifying the customer and the one or more services provided by cloud infrastructure system 3102 that the customer intends to subscribe to.

[0397] After a customer places an order, order information is received through cloud UIs 3131, 3114, and / or 3116.

[0398] At operation 3136, the order is stored in order database 3118. Order database 3118 can be one of several databases operated by cloud infrastructure system 3102 and operated in conjunction with other system elements.

[0399] At operation 3138, order information is forwarded to order management module 3126. In some cases, order management module 3126 can be configured to perform billing and accounting functions related to orders, such as validating orders and reserving orders after validation.

[0400] At operation 3140, information about the order is communicated to order orchestration module 3122. Order orchestration module 3122 can utilize order information to orchestrate provisioning of services and resources for the order placed by the customer. In some cases, order orchestration module 3122 can use the services of order provisioning module 3124 to orchestrate provisioning of resources to support the subscribed services.

[0401] In certain aspects, the order orchestration module 3122 enables management of the business processes associated with each order and application of business logic to determine whether an order should proceed to provisioning. At operation 3142, upon receiving an order for a new subscription, the order orchestration module 3122 sends a request to the order provisioning module 3124 to allocate resources and configure those resources needed to fulfill the subscription order. The order provisioning module 3124 enables allocation of resources for services ordered by customers. The order provisioning module 3124 provides a level of abstraction between the cloud services offered by the cloud infrastructure system 3102 and the physical implementation layer of resources used to provision the requested services. Thus, the order orchestration module 3122 can be insulated from implementation details, such as whether services and resources are actually provisioned in real time or pre-provisioned and only allocated / designated when requested.

[0402] At operation 3144, once the services and resources are provisioned, the order provisioning module 3124 of the cloud infrastructure system 3102 can send a notification of the provisioned services to the customer on the client end computing devices 3104, 3106, and / or 3108.

[0403] At operation 3146, the customer's subscription order can be managed and tracked by the order management and monitoring module 3126. In some cases, the order management and monitoring module 3126 can be configured to collect usage statistics for the services in the subscription order, such as amount of storage used, amount of data transferred, number of users, and amount of system up time and system down time.

[0404] In certain aspects, the cloud infrastructure system 3102 can include an identity management module 3128. The identity management module 3128 can be configured to provide identity services, such as access management and authorization services in the cloud infrastructure system 3102. In some aspects, the identity management module 3128 can control information about customers who wish to utilize services provided by the cloud infrastructure system 3102. Such information can include information that authenticates the identities of such customers and information that describes what actions those customers are authorized to perform with respect to various resources (e.g., files, directories, applications, communication ports, memory segments, etc.). The identity management module 3128 can also include management of descriptive information about each customer and can access and modify the descriptive information and how and who can access and modify the descriptive information.

[0405] Figure 32FIGURE 1 illustrates a computer system 3200 in which aspects of the present application can be implemented. The computer system 3200 can be used to implement any of the computer systems described above. As shown, the computer system 3200 includes a processing unit 3204 that communicates with a number of peripheral subsystems via a bus subsystem 3202. These peripheral subsystems can include a processing acceleration unit 3206, an I / O subsystem 3208, a storage subsystem 3218, and a communication subsystem 3224. The storage subsystem 3218 includes tangible computer-readable storage media 3222 and a system memory 3210.

[0406] The bus subsystem 3202 provides an infrastructure for interconnecting various other subsystems of the computer system 3200. Although the bus subsystem 3202 is shown schematically as a single bus, alternative aspects of the bus subsystem can utilize multiple buses. The bus subsystem 3202 can be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. For example, such architectures can include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus (the PCI bus can be implemented as a Mezzanine bus manufactured to the IEEE P3286.1 standard).

[0407] The processing unit 3204, which can be implemented as one or more integrated circuits (e.g., a conventional microprocessor or microcontroller), controls the operation of the computer system 3200. The processing unit 3204 can include one or more processors. The processors can include single core processors or multicore processors. In certain aspects, the processing unit 3204 can be implemented as one or more independent processing units 3232 and / or 3234, each including a single core processor or multicore processor. In other aspects, the processing unit 3204 can also be implemented as a quad-core processing unit formed by integrating two dual-core processors into a single chip.

[0408] In various aspects, the processing unit 3204 can execute various programs in response to program code and can maintain multiple simultaneously executing programs or processes. Some or all of the program code to be executed can be resident in the processing unit 3204 and / or the storage subsystem 3218 at any given time. The processing unit 3204 can provide various functionalities according to the program code, and upon being triggered by a corresponding event. The computer system 3200 can additionally include a processing acceleration unit 3206, which can include a digital signal processor (DSP), a special-purpose processor, and so forth.

[0409] I / O subsystem 3208 can include user interface input devices and user interface output devices. User interface input devices can include a keyboard, pointing devices such as a mouse or trackball, touchpad or touch screen incorporated into a display, a scroll wheel, a click wheel, a dial, a button, a switch, a keypad, audio input devices with voice command recognition systems, microphones, and other types of input devices. User interface input devices can include, for example, motion sensing and / or gesture recognition devices such as the Microsoft Kinect® gesture and motion sensing input device. Motion sensors that enable users to control and interact with input devices, such as Microsoft 360 game controller, using natural user interfaces with gestures and spoken commands. User interface input devices can also include eye gesture recognition devices, such as Google Glass®'s eye gesture recognition system that detects and interprets the movement of the user's eyes to input commands into input devices (e.g., Google Glass®'s head-mounted display ) to various systems and software applications, or to otherwise input information into a user interface.

[0410] User interface input devices can also include, without limitation, three-dimensional (3D) mice, joysticks or pointing sticks, gamepads and game controllers, graphics tablets, and audio / visual devices such as speakers, digital cameras, digital camcorders, portable media players, webcams, image scanners, fingerprint scanners, barcode reader 3D scanners, 3D printers, laser rangefinders, and eye gaze tracking devices. Additionally, user interface input devices can include, for example, medical imaging input devices such as computerized tomography scanners, magnetic resonance imaging systems, positron emission tomography scanners, and medical ultrasonic imaging equipment. User interface input devices can also include, for example, audio input devices such as MIDI keyboards, digital musical instruments, and the like.

[0411] User interface output devices can include display subsystems, indicator lights, or non- visual display devices such as audio output devices. Display subsystems can be cathode ray tubes (CRT), flat-panel devices such as liquid crystal displays (LCDs) or plasma display panels (PDPs), projection devices, touch-screen displays, and the like. In general, use of the term "output device" is intended to include all possible types of devices and mechanisms for outputting information from computer system 3200 to a user or other computer. For example, user interface output devices can include, without limitation, a variety of display devices that visually convey text, graphics, and audio / video information such as monitors, printers, speakers, headphones, automotive navigation systems, plotters, voice output devices, and modems.

[0412] Computer system 3200 can include a storage subsystem 3218 that includes software elements, shown as being currently located within a system memory 3210. System memory 3210 can store program instructions for execution by processing unit 3204, as well as data which is generated when the programs are executed.

[0413] Depending on the configuration and type of computer system 3200, system memory 3210 can be volatile (such as random access memory (RAM)) and / or non-volatile (such as read-only memory (ROM), flash memory, etc.) The RAM typically contains data and / or program modules that are immediately accessible to and / or presently being operated and executed by processing unit 3204. In some implementations, system memory 3210 can include multiple different types of memory, such as static random access memory (SRAM) or dynamic random access memory (DRAM). In some implementations, a basic input / output system (BIOS), containing the basic routines that help to transfer information between elements within computer system 3200, such as during start-up, can typically be stored in the ROM. By way of example, and not limitation, system memory 3210 also illustrates application programs 3212, which can include client applications, Web browsers, mid-tier applications, relational database management systems (RDBMS), etc., program data 3214, and an operating system 3216. By way of example, operating system 3216 can include various versions of Microsoft Windows®, Apple Macintosh® or Linux operating systems, UNIX or UNIX-like operating systems Apple and / or Linux operating systems, various commercially available UNIX operating systems (including without limitation the various GNU / Linux operating systems, the Google OS, and / or mobile operating systems such as iOS, phone, OS, 10 OS, and OS operating systems.

[0414] Storage subsystem 3218 can also provide a tangible computer-readable storage medium for storing the basic programming and data constructs that provide the functionality of some aspects. Software (programs, code modules, instructions) that when executed by a processor provide the functionality described above can be stored in storage subsystem 3218. These software modules or instructions can be executed by processing unit 3204. Storage subsystem 3218 can also provide a repository for storing data used in accordance with the present application.

[0415] The storage subsystem 3218 can also include a computer- readable storage media reader 3220 that can further connect the computer- readable storage media 3222 to the computer system 3200. The computer- readable storage media reader 3220 can fully or at least partially, and optionally in combination with the system memory 3210, represent a remote, local, fixed, and / or removable storage device as well as storage media for temporarily and / or more permanently containing, storing, transmitting, and retrieving computer-readable information.

[0416] The computer-readable storage media reader 3220 can contain or include any suitable media, including storage media and communication media, that can be accessed by a computer system 3200 and include both volatile and nonvolatile media, removable and non-removable media implemented in any method or technology for storage and / or transmission of information. The media can include tangible, non-transitory computer-readable storage media, such as RAM, ROM, electrically erasable programmable ROM (EEPROM), flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or other tangible computer-readable media. The media can also include non-tangible, transitory computer-readable media, such as data signals, data transmissions, or any other medium that can be used to transport the desired information and which can be accessed by the computer system 3200.

[0417] By way of example, the computer-readable storage media reader 3220 can include a hard disk drive, a magnetic disk drive, and / or a optical disk drive, as well as a floppy disk drive, a magnetic tape drive, a flash memory card reader, a universal serial bus (USB) flash drive reader, a secure digital (SD) card reader, a DVD reader, and / or a Blu-ray reader, among others. The computer-readable storage media reader 3220 can be connected with the computer system 3200 by, for example, a bus, a wireless link, and / or a wired connection, among others, as is well known in the art. The computer-readable storage media 3222 can include, without limitation, a hard disk drive, a magnetic disk drive, a flash memory card, a universal serial bus (USB) flash drive, a secure digital (SD) card, a DVD, a Blu-ray disk, and / or other optical storage, among others. The computer-readable storage media reader 3220 can be connected with the computer system 3200 by, for example, a bus, a wireless link, and / or a wired connection, among others, as is well known in the art. The computer-readable storage media reader 3220 can contain or include any suitable media, including storage media and communication media, that can be accessed by a computer system 3200 and include both volatile and nonvolatile media, removable and non-removable media implemented in any method or technology for storage and / or transmission of information. The media can include tangible, non-transitory computer-readable storage media, such as RAM, ROM, electrically erasable programmable ROM (EEPROM), flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or other tangible computer-readable media. The media can also include non-tangible, transitory computer-readable media, such as data signals, data transmissions, or any other medium that can be used to transport the desired information and which can be accessed by the computer system 3200.

[0418] The communications subsystem 3224 provides an interface to other computer systems and networks. The communications subsystem 3224 serves as an interface for receiving data from and transmitting data to other systems from the computer system 3200. For example, the communications subsystem 3224 can enable the computer system 3200 to connect to one or more devices over the Internet. In some aspects, the communications subsystem 3224 can include radio frequency (RF) transceiver components (e.g., for use in wireless communication devices), global positioning system (GPS) receiver components, and / or other components. In some aspects, the communications subsystem 3224 can provide wired communication capabilities (e.g., using Ethernet) in addition to or instead of wireless connectivity.

[0419] In some aspects, the communications subsystem 3224 can also receive input, including structured and / or unstructured data feeds 3226, event streams 3228, event updates 3230, and the like, on behalf of one or more users of the computer system 3200.

[0420] By way of example, the communications subsystem 3224 can be configured to receive structured and / or unstructured data feeds 3226, event streams 3228, event updates 3230, and the like on behalf of a user of the computer system 3200 and / or a user of another communication feed, update, web feed (e.g., Rich Site Summary (RSS) feed), and / or the like from one or more third party information sources.

[0421] Additionally, the communications subsystem 3224 can also be configured to receive data in the form of continuous data streams, which can include event streams 3228 of real-time events and / or event updates 3230, that can be continuous (with no explicit end) and / or unbounded (with no end in sight). Examples of applications that can generate continuous data streams include, for example, sensor data applications, financial ticker applications, network performance monitoring applications, clickstream analysis applications, automobile traffic monitoring applications, and the like.

[0422] The communications subsystem 3224 can also output structured and / or unstructured data feeds 3226, event streams 3228, event updates 3230, and the like to one or more databases that can be in communication with the computer system 3200.

[0423] The computer system 3200 can be one of various types, including a handheld portable device (e.g., an iPhone® cellular phone, an iPad® computing tablet, a smartphone, computers, PDAs), wearable devices (e.g., Google head-mounted displays), PCs, workstations, mainframes, kiosks, server racks, or any other data processing system.

[0424] Because of the ever-changing nature of computers and networks, the description of computer system 3200 depicted herein is intended only as a specific example. Many other configurations having more or fewer components than the system depicted in the figures are possible. For example, customized hardware might also be used and / or particular elements might be implemented in hardware, firmware, software (including applets), or a combination. Further, connection to other computing devices such as network input / output devices can be employed. Based on the disclosure and teachings provided herein, a person of ordinary skill in the art will appreciate other ways and / or methods to implement the various aspects.

[0425] In the foregoing specification, aspects of the application are described with reference to specific aspects thereof, but those skilled in the art will recognize that the application is not limited thereto. Various features and aspects of the above-described application can be used individually or jointly. Further, aspects can be utilized in any number of environments and applications beyond the scope of the specification. Therefore, the specification and drawings are to be regarded as illustrative rather than a restrictive.

Claims

1. A computer-implemented method for navigating text using a discourse tree, the method comprising: A discourse tree is created from text including fragments, wherein the discourse tree includes a root node, non-terminal nodes and terminal nodes, each non-terminal node representing a rhetorical relationship between two fragments in the fragment, and each terminal node being associated with one of the fragments, wherein the fragment is a basic discourse unit; A subset of terminal nodes is determined based on the discourse tree, wherein the subset of terminal nodes (i) is associated with non-terminal nodes representing rhetorical relations of exposition type, and (ii) is associated with the core basic discourse unit of the exposition; For each node in the subset of terminal nodes, calculate the corresponding path length starting from the root node; Identify the topic node with the path length that is the minimum path length among the path lengths from the subset of terminal nodes; The topic of the discourse tree is determined based on the topic node by extracting noun phrases from the core basic discourse units associated with the topic node; and Provide the topic to the user equipment.

2. The method of claim 1, further comprising: In the discourse tree, identify auxiliary basic discourse units that are associated with the topic node through the rhetorical relationship of the exposition type; as well as Provide the user equipment with text associated with the auxiliary basic discourse unit.

3. The method of claim 1, further comprising: Additional terminal nodes are identified from the subset of terminal nodes in the discourse tree, the additional terminal nodes having an additional path length equal to or greater than the path length; Extract additional text from the additional core basic discourse unit associated with the additional terminal node; as well as The additional text is provided to the user equipment.

4. The method of claim 1, further comprising: Navigate in the discourse tree to an additional non-terminal node, which is connected to the topic node and represents an additional rhetorical association; Additional topics are determined based on the additional non-terminal nodes by extracting additional noun phrases from the additional core basic discourse units associated with the additional non-terminal nodes; and In response to determining that the additional rhetorical association is one of the exposition type, condition type, or chronological type: Extract additional text from the aforementioned additional core basic discourse units; and The additional text is provided to the user equipment.

5. The method of claim 1, further comprising: Receive speech from the user equipment; Determine the degree of familiarity of the verbal instruction with the additional topic; Additional non-terminal nodes are identified in the discourse tree, the additional non-terminal nodes including text representing the additional topic and representing additional rhetorical associations; In response to determining that the additional rhetorical association is one of the exposition type, condition type, or contrast type: Extract additional text from the basic discourse unit associated with the terminal node connected to the additional non-terminal node; and The additional text is provided to the user equipment.

6. The method of claim 1, further comprising: Receive speech from the user equipment; Determining the speech includes confirming interest in additional topics; Additional non-terminal nodes are identified in the discourse tree, the additional non-terminal nodes including text representing the additional topic and representing additional rhetorical associations; Extract additional text from the basic discourse unit associated with the terminal node connected to the additional non-terminal node; as well as The additional text is provided to the user equipment.

7. The method of claim 1, further comprising: Receive speech from the user equipment; The statement is determined to include requests for additional details related to the topic; as well as In response to this determination: Identify the parent node directly connected to the topic node in the discourse tree; In the discourse tree, identify additional terminal nodes that are related to the parent node through rhetorical associations of the exposition type; Extract additional text from the basic discourse unit associated with the additional terminal node; as well as The additional text is provided to the user equipment.

8. The method of claim 1, further comprising: Receive speech from the user equipment; The speech was determined to include questions unrelated to the topic. as well as In response to this determination: Identify one or more keywords from the speech; The additional text is identified by providing a query to the search engine that includes the keywords; as well as Provide the user equipment with text from one or more basic discourse units of the additional text.

9. The method of claim 1, further comprising: A communicative discourse tree representing the text is formed based on the discourse tree by matching each segment containing a verb with its corresponding verb signature; Identify the verb signatures corresponding to the topic nodes from the communication discourse tree; Extract the topic from the verb signature; as well as The topic is provided to the user equipment.

10. A system comprising: Non-transitory computer-readable media that stores instructions for a computer-executable program; as well as A processing device communicatively coupled to the non-transitory computer-readable medium to execute computer-executable program instructions, wherein executing the computer-executable program instructions configures the processing device to perform operations including: A discourse tree is created from text including fragments, wherein the discourse tree includes a root node, non-terminal nodes and terminal nodes, each non-terminal node representing a rhetorical relationship between two fragments in the fragment, and each terminal node being associated with one of the fragments, wherein the fragment is a basic discourse unit; A subset of terminal nodes is determined based on the discourse tree, wherein the subset of terminal nodes (i) is associated with non-terminal nodes representing rhetorical relations of exposition type, and (ii) is associated with the core basic discourse unit of the exposition; For each node in the subset of terminal nodes, calculate the corresponding path length starting from the root node; Identify the topic node with the path length that is the minimum path length among the path lengths from the subset of terminal nodes; The topic of the discourse tree is determined based on the topic node by extracting noun phrases from the core basic discourse units associated with the topic node; and Provide the topic to the user equipment.

11. The system of claim 10, wherein, The operation also includes: In the discourse tree, auxiliary basic discourse units associated with the topic node through the rhetorical relationship of the exposition type are identified; and Provide the user equipment with text associated with the auxiliary basic discourse unit.

12. The system of claim 10, wherein, The operation also includes: Additional terminal nodes are identified from the subset of terminal nodes in the discourse tree, the additional terminal nodes having an additional path length equal to or greater than the path length; Extract additional text from the additional core basic discourse unit associated with the additional terminal node; and The additional text is provided to the user equipment.

13. The system of claim 10, wherein, The operation also includes: Navigate in the discourse tree to an additional non-terminal node, which is connected to the topic node and represents an additional rhetorical association; Additional topics are determined based on the additional non-terminal nodes by extracting additional noun phrases from the additional core basic discourse units associated with the additional non-terminal nodes; and In response to determining that the additional rhetorical association is one of the exposition type, condition type, or chronological type: Extract additional text from the aforementioned additional core basic discourse units; and The additional text is provided to the user equipment.

14. The system of claim 10, wherein, The operation also includes: Receive speech from the user equipment; Determine the degree of familiarity of the verbal instruction with the additional topic; Additional non-terminal nodes are identified in the discourse tree, the additional non-terminal nodes including text representing the additional topic and representing additional rhetorical associations; In response to determining that the additional rhetorical association is one of the exposition type, condition type, or contrast type: Extract additional text from the basic discourse unit associated with the terminal node connected to the additional non-terminal node; and The additional text is provided to the user equipment.

15. The system of claim 10, wherein, The operation also includes: Receive speech from the user equipment; Determining the speech includes confirming interest in additional topics; Additional non-terminal nodes are identified in the discourse tree, the additional non-terminal nodes including text representing the additional topic and representing additional rhetorical associations; Extract additional text from the basic discourse unit associated with the terminal node connected to the additional non-terminal node; and The additional text is provided to the user equipment.

16. The system of claim 10, wherein, The operation also includes: A communicative discourse tree representing the text is formed based on the discourse tree by matching each segment containing a verb with its corresponding verb signature; Identify the verb signatures corresponding to the topic nodes from the communication discourse tree; Extract the topic from the verb signature; and The topic is provided to the user equipment.

17. A non-transitory computer-readable medium storing computer-executable program instructions, which, when executed by a processor, perform operations including: Create a discourse tree from the text, including fragments, where The discourse tree includes a root node, non-terminal nodes, and terminal nodes. Each non-terminal node represents the rhetorical relationship between two segments in the segment, and each terminal node is associated with one of the segments, wherein the segment is a basic discourse unit. A subset of terminal nodes is determined based on the discourse tree, wherein the subset of terminal nodes (i) is associated with non-terminal nodes representing rhetorical relations of exposition type, and (ii) is associated with the core basic discourse unit of the exposition; For each node in the subset of terminal nodes, calculate the corresponding path length starting from the root node; Identify the topic node with the path length that is the minimum path length among the path lengths from the subset of terminal nodes; The topic of the discourse tree is determined based on the topic node by extracting noun phrases from the core basic discourse units associated with the topic node; and Provide the topic to the user equipment.

18. The non-transitory computer-readable medium of claim 17, wherein, The operation also includes: Navigate in the discourse tree to an additional non-terminal node, which is connected to the topic node and represents an additional rhetorical association; Additional topics are determined based on the additional non-terminal nodes by extracting additional noun phrases from the additional core basic discourse units associated with the additional non-terminal nodes; and In response to determining that the additional rhetorical association is one of the exposition type, condition type, or chronological type: Extract additional text from the aforementioned additional core basic discourse units; and The additional text is provided to the user equipment.

19. The non-transitory computer-readable medium of claim 17, wherein, The operation also includes: Receive speech from the user equipment; Determine the degree of familiarity of the verbal instruction with the additional topic; Additional non-terminal nodes are identified in the discourse tree, the additional non-terminal nodes including text representing the additional topic and representing additional rhetorical associations; In response to determining that the additional rhetorical association is one of the exposition type, condition type, or contrast type: Extract additional text from the basic discourse unit associated with the terminal node connected to the additional non-terminal node; and The additional text is provided to the user equipment.

20. The non-transitory computer-readable medium of claim 17, wherein, The operation also includes: Receive speech from the user equipment; Determining the speech includes confirming interest in additional topics; Additional non-terminal nodes are identified in the discourse tree, the additional non-terminal nodes including text representing the additional topic and representing additional rhetorical associations; Extract additional text from the basic discourse unit associated with the terminal node connected to the additional non-terminal node; and The additional text is provided to the user equipment.

Citation Information

Patent Citations

  • Navigating electronic documents using domain discourse trees

    US10853574B2

  • Using communicative discourse trees to detect a request for an explanation

    US20210150153A1

  • Method of and system for inferring user intent in search input in a conversational interfaction system

    CN104871150A

  • Context-aware human-to-computer dialog

    CN108268587A