Language statement processing in a computing system

By using higher-order action annotation technology in the syntax tree, the problem of insufficient real data annotation in the existing technology is solved, and more efficient and accurate natural language processing is achieved.

CN114375447BActive Publication Date: 2025-07-08INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202080063909.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-09-18
Filing Date
2020-09-08
Publication Date
2025-07-08
Estimated Expiration
2040-09-08

AI Technical Summary

Technical Problem

现有技术在自然语言处理中难以有效利用真实数据注释语法树以提高信息处理的准确性和效率。

Method used

By annotating the syntax tree with higher order actions, determining actions that match action parameters, using real data to generate answers, including elements in the information space of the syntax tree corresponding to the input of the higher order actions, and applying these actions to generate answers.

Benefits of technology

It improves the accuracy and efficiency of syntax tree information processing, can control the application of actions more carefully, and generate more context-sensitive answers.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114375447B_ABST
    Figure CN114375447B_ABST
Patent Text Reader

Abstract

A method for annotating a syntax tree using higher-order actions, comprising: annotating the information space of the syntax tree using concepts corresponding to tokens in the syntax tree. The concepts include objects in the domain of the problem and are related to other concepts in the ontology of the domain. The higher-order actions specify an input, action parameters, and an output. Determine an element in the information space corresponding to the input of the higher-order action. Determine an action in the domain of the problem having parameters matching the action parameters. Determine that the element is input to the determined action to produce an output. The information space of the syntax tree is annotated using the output from the higher-order action for providing an answer to the problem.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention generally relates to language statement processing in computer systems, and more particularly to computer program products, systems, and methods for annotating syntax trees using higher-order actions with real data for concepts used to generate answers to questions. Background Art

[0002] An embedded commercial artificial intelligence framework from International Business Machines Corporation allows customers to create functions and ontologies for concepts and attributes for domain-specific natural language processing environments, which are used to identify and reason about natural language patterns to perform natural language understanding and link language tokens to appropriate concepts. Customers can provide actions in the domain that process nodes in a syntax tree formed from a sentence to be understood to generate real data for concepts. The annotated concepts are used to understand the sentence or provide an answer to a question modeled in the syntax tree. During the process of reasoning about a question, given a set of actions and rules, the system considers all possible outcomes it can take and ultimately selects the best one or requests user clarification in cases where the reasoning engine cannot find an answer.

[0003] There is a need in the art to provide improved techniques for adding real data to the information space of a sentence being processed to improve natural language processing. Summary of the Invention

[0004] There is provided a computer program product, system, and method for annotating a syntax tree using higher-order actions with real data for concepts used to generate answers to questions. The syntax tree is generated according to a question to be processed. The information space of the syntax tree is annotated with concepts corresponding to the tokens in the syntax tree, where the concepts include objects in the domain of the question and are related to other concepts in the ontology of the domain. The higher-order action specifies an input, action parameters, and an output. An element corresponding to the input of the higher-order action in the information space of the syntax tree is determined. An action among a plurality of actions in the domain of the question having parameters that match the action parameters is determined. The determined element is provided as an input to the determined action to produce an output of the determined action, which is processed according to the output specified by the higher-order action. The information space of the syntax tree is annotated with the output from the higher-order action for providing an answer to the question.

[0005] There is also provided a computer program product and system that includes generating a syntax tree according to a problem to be processed, the syntax tree including an information space that is annotated with concepts corresponding to tokens in the syntax tree. The concepts include objects in the domain of the problem and are related to other concepts in the ontology of the domain; multiple actions in the domain of the problem having parameters. Higher-order actions specify inputs, action parameters, and outputs. The higher-order actions are processed to determine elements in the information space of the syntax tree corresponding to the inputs of the higher-order actions, and to determine actions among the multiple actions having parameters that match the action parameters. The determined elements are provided as inputs to the determined actions to produce outputs of the determined actions, and the outputs are processed according to the outputs specified by the higher-order actions. The information space of the syntax tree is further annotated with outputs from the higher-order actions for providing an answer to the problem.

[0006] The above embodiments provide an improvement to computer techniques for annotating syntax trees for natural language processing by providing higher-order actions that take action parameters as arguments to match existing actions to be invoked to process inputs. The higher-order actions are processed to determine all actions having parameters that match the action parameters specified for the higher-order actions. This allows developers to define higher-order actions that specify action parameters or signatures for determining other previously defined actions to produce outputs from the current elements s in the syntax tree for annotating the information space of the syntax tree.

[0007] The subject matter of the embodiments may optionally include alternative embodiments in which each of the multiple actions has parameters: constraints, inputs, and outputs, the inputs including elements in the information space of the syntax tree to which the constraints apply, and the outputs being produced by the actions in response to inputs that satisfy the constraints. Determining actions that match the action parameters includes determining actions having constraints, inputs, and outputs that match the constraints, inputs, and outputs of the action parameters in the higher-order actions.

[0008] In the case of the above embodiments, constraints on the inputs allow users to specify constraints or conditions on the input parameters to ensure that the higher-order actions are applicable to those inputs that satisfy the constraint conditions, providing a finer-grained control over the applicability of the higher-order actions. Thus, actions having constraints, inputs, and output parameters that match the constraints, inputs, and output parameters of the higher-order actions are determined.

[0009] The subject matter of the embodiments may optionally include alternative embodiments where a higher-order action specifies constraints on an input. Determining an element in the information space of the syntax tree corresponding to the input of the higher-order action includes determining whether the information space of the syntax tree includes a concept that satisfies the constraints of the input of the higher-order action. The determined action is applied to the concept that satisfies the constraints of the input of the higher-order action. The output from the higher-order action provides ground truth data for the concept corresponding to the input of the higher-order action.

[0010] In the case of the above embodiments, a higher-order action is used to determine a concept that satisfies the constraints on the input such that the determined action can be applied to the concept that satisfies the constraint to provide an output of data for the concept to annotate in the information space of the syntax tree. This allows the higher-order action to trigger the application of other qualifying actions to concepts in the information space, thereby generating data for concepts in the information space to improve the determination of the answer to the problem represented in the syntax tree.

[0011] The subject matter of the embodiments may optionally include alternative embodiments where a higher-order action and an action receive a concept in the information space as an input to produce an output including data for the concept. Candidate answers to a question and a sensory metric for each candidate answer are determined based on the data for the concept from at least one higher-order action. The sensory metric of a candidate answer is used to select the candidate answer as the answer to the question.

[0012] In the case of the above embodiments, if there are multiple candidate answers resulting from processing the data for the concept from at least one higher-order action, the sensory metric of the candidate answers is used to select the candidate answer with the best sensory metric value to return the best answer to the question.

[0013] The subject matter of the embodiments may optionally include alternative embodiments where determining an action includes determining a plurality of actions having parameters that match action parameters. For each of the determined plurality of actions, a match intensity is determined, which indicates the strength of the match of the parameters of the determined action to the action parameters. The action with the highest match intensity is selected to be applied to the element in the information space of the syntax tree corresponding to the input of the higher-order action.

[0014] In the case of the above embodiments, if there are multiple determined actions having parameters that match the action parameters of the higher-order action, the match intensity of the determined actions is used to select an action to process the element in the information space with the highest match intensity. This allows for determining a plurality of different possible actions that match the higher-order action parameters, to expand the number of actions considered to be a match, thereby increasing the likelihood of finding the best action that satisfies the higher-order action parameters. BRIEF DESCRIPTION OF THE DRAWINGS

[0015] Figure 1 An embodiment of a natural language computing system is shown.

[0016] Figure 2 An embodiment of an action for annotating a syntax tree information space with real data is shown.

[0017] Figure 3 An embodiment of a higher-order action is shown, which uses actions that already exist in the domain, takes actions as parameters, and further annotates the syntax tree information space with real data.

[0018] FIG. 4a, FIG. 4b, and FIG. 4c show embodiments of operations for generating an information space for a question to generate an answer to the question.

[0019] Figure 5 An example of a syntax tree generated according to question terms is shown.

[0020] Figure 6 An example of a syntax tree further annotated with the concept of question tokens in the syntax tree is shown.

[0021] Figure 7 Shows Figure 6 The annotated syntax tree, which is represented as nodes for question tokens and concepts linked to the question tokens.

[0022] Figure 8 An example of a syntax tree further annotated with real data linked to concepts by processing actions and higher-order actions applied to concepts and data nodes in the annotated syntax tree is shown.

[0023] Figure 9 Depicts a computing environment in which the Figure 1 components can be implemented. DETAILED DESCRIPTION

[0024] In the current system, a user can create actions in the domain, which are used to generate real data into nodes of the syntax tree for concepts in the syntax tree. The actions are encoded to perform specific data collection operations based on concepts and data in the annotated syntax tree, such as determining multiple items that satisfy an attribute, the number or description of items, and collecting other information from a database or the user. The data output by the actions can be added to the information space and used to answer questions modeled in the syntax tree in the information space.

[0025] The described embodiments provide an improvement to computer technology for natural language processing of information in a syntax tree by providing higher-order actions that take action parameters as arguments to match existing actions to be invoked to process an input that can be defined as a set of terms or concepts. The higher-order actions are processed to identify all actions having parameters that match the action parameters specific to the higher-order action. This allows a developer to define higher-order actions specifying action parameters or signatures for identifying other previously defined actions in a domain having parameters or signatures that match, with some confidence, the action parameters specified in the higher-order action. Then, the identified previously defined actions in the domain that match the parameters of the higher-order action can be applied to concepts or data in the annotated syntax tree, including a set of terms in the annotated syntax tree.

[0026] Figure 1 An embodiment of a computer system having a processor 102 for executing program components stored in a memory / storage device 104 is shown. The memory / storage device 104 includes program components executed by the processor 102, including a natural language parser 106, a pattern matching module 108, a semantic action module 110, and a machine reasoning module 112. The natural language parser 106 parses a question 114 of words into a syntax tree 116, including an initial information space of the syntax tree 116, such as by performing part-of-speech tagging to label it with a corresponding part of speech based on the definition, context, and lemmatization of the words to determine the part of speech of the words based on their meaning; a pattern matching module 108 for matching natural language tokens in the syntax tree 118 from the question 114 to concepts in a domain, in which the question is asked to produce an annotated syntax tree 118 or an updated information space of the syntax tree 118, where the concepts provide attributes and information about the meaning of the tokens / language in the question 114.

[0027] The patterns captured by the pattern matching module 108 add syntactic context in which the tokens of question 114 are used. For example, the term "weather" in this case denotes a noun subject. However, the word "weather" can have very different semantic meanings in other sentences, such as "can we weather the storm?". Based on the above natural language patterns, the pattern matching module 112 understands that this use of "weather" is different from the first use, and subsequently, when answering the second type of question, it will not introduce the concept ":Weather" into its reasoning pipeline. The colon before a term, such as ":Term", indicates that "Term" is a concept defined in the ontology of the domain in which question 114 is asked. Concepts can include attributes in the data model of the domain. The pattern matching module 108 enables mapping the natural language in question 114 to concepts in the ontology of the domain. There can be a concept tree for the tokens in question 114, which includes separately listed annotations, forming an annotation tree of separate concepts that provides a starting point for reasoning about the meaning of the terms in question 114. The concepts of the tokens in the annotation syntax tree 116 allow the system to consider and identify these concepts as part of the tokens of question 114 when processing question 114. For example, if the question requests "show trending products", the term "trending" can be annotated with the concept ":Trending", providing information on what "trending" means in a specific domain in which questions about products will be asked, and the term "product" can be annotated with the concept "Product", providing information on what a product means in the domain, such as for a specific retailer. Each token in the syntax tree 116 can be annotated with a concept.

[0028] The semantic action module 110 processes nodes in the annotated syntax tree 118 using the declared actions 200 and higher-order actions 300. The nodes include tokens from the question 114 and the annotated concepts for the tokens. The higher-order actions include functions that output real data corresponding to the concepts in the annotated syntax tree 118. The output of the semantic action module 110 is a further annotated syntax tree 120 or a further updated information space of the syntax tree 120 annotated with concepts and real data, where the real data can provide system information from a database related to the concepts, such as a list of products that satisfy the concepts, the number of products, etc. The machine reasoning module 112 processes the annotated syntax tree 120 with real data for the concepts and generates candidate answers 122 for the question 114. The candidate answers 122 have a sensory metric that indicates the value or strength with which the answers 122 respond to the question 114. In one embodiment, the sensory metric can be based on the number of words used to generate the candidate answer, the number of concepts processed for the answer, and the similarity between the semantic and syntactic representations of the question 114 and the answer 122. Each applied action 200 i and higher-order action 300 i can incrementally update the information space of the syntax tree 120 such that subsequent actions 200 i and higher-order actions 300 i can process as input-output the content added to the information space of the syntax tree 120 from previously executed actions and higher-order actions.

[0029] The memory / storage device 104 can include appropriate volatile or non-volatile memory for storing programs to be executed and information used by the programs 110 to execute.

[0030] Generally, program modules such as program components 106 to 124 can include routines, programs, objects, components, logic, data structures, etc. that perform specific tasks or implement specific abstract data types. Figure 1 The program components and hardware devices of the computer system 100 can be implemented in one or more computer systems. If they are implemented in multiple computer systems, the computer systems can communicate via a network.

[0031] The programs 106, 108, 110, 112, 200, 300 can include program code loaded into the memory and executed by the processor. Alternatively, some or all of the functions can be implemented in a hardware device, such as in an application-specific integrated circuit (ASIC), or executed by a separate dedicated processor.

[0032] In one embodiment, programs 106, 108, 110, 112 may implement machine learning techniques such as decision tree learning, association rule learning, neural networks, inductive programming logic, support vector machines, Bayesian networks, etc. to perform their specific tasks in a natural language processing pipeline. Programs 106, 108, 110, 112 may include artificial neural network programs. Each neural network may be trained using backpropagation to adjust the weights and biases at the nodes in the hidden layer, thereby generating a computed output, such as a syntax tree 116, an annotated syntax tree 118 with concepts, performing actions to further annotate the syntax tree 120 with real data, and generating and answering questions. In backpropagation for training a neural network machine learning module, the biases at the nodes in the hidden layer are adjusted accordingly to produce a desired result based on a specified confidence level. Backpropagation may include an algorithm for supervised learning of an artificial neural network using the gradient descent method. Given an artificial neural network and an error function, the method may compute the gradient of the error function with respect to the weights and biases of the neural network.

[0033] In Figure 1 , arrows are shown between components in the memory / storage device 104. These arrows represent the flow of information to and from the program components 106, 108, 110, and 112 and do not represent data structures in the memory 104.

[0034] Figure 2 An embodiment of an instance of action 200 i is shown, including parameters, also referred to as a signature, which includes a constraint 202 (which is optional), an input 204 (such as a concept or data), an output 206, and code 208 for transforming the input 204 into the output 206. For an input 204 that satisfies the constraint 202, such as a concept or data node in the annotated syntax tree 118, the code 208 generates the output 206 based on the input 204, such as a real data node for the concept, such as multiple instances of an item identified by the concept 204, and other information about the concept.

[0035] The constraint 202 may include qualification conditions for a concept and includes a subject (input 204), a predicate, and an object, where the predicate constrains the subject to the object. For example, "a subClassOf.list" restricts the symbol a to any list, such that the concept nodes in the annotated syntax tree 118 must include a list in order to undergo action 200 i。The input 204 may include a concept tree that must match the action to be selected for execution. The output 206 may include a flat list of concepts or real data including concepts. The concepts within the signature may be further qualified using additional specifications. The default parameter of the input may be a concept. However, the input may also include real data generated by another action for the concept, such as real product data, real invoice data, etc.

[0036] Examples of actions include:

[0037] :ActionShow - A concept that represents a user's request to display data. It will produce: displayable data.

[0038] :ActionModify - A concept that represents a user's request to update data. It will modify the data and post a message to the user.

[0039] :ActionDelete - A concept that represents a user's request to remove data. It will remove the data and produce a text response to the user.

[0040] Another example of an action is GetTrendingProducts, which has the signature "Products(Trending)->data:products". This action specifies that for the concept "Products" that is input and is trending (which is a constraint), data about trending products, such as recently popular products, i.e., trending, will be output.

[0041] An example of an action to search for a product in a database by name (SearchProductByName) may have the signature "Product(optional:WithName(data:UserString))->data Product", such that for a concept in the tree that is constrained to have the name "UserString", the output data: Product, including the product with that product name, will be output.

[0042] Figure 3 An example of a higher - order action 300 i is shown, which includes a constraint 302 for the input 304, including nodes in the annotation syntax tree 118, action parameters 306 (such as signatures), indication parameters (such as constraints, inputs, and outputs), for finding one or more matching actions having parameters 202, 204, 206 that match the parameters of the action signature 306, and an output 308 for the output 206 produced by the action 200 i generated.

[0043] For input 304, the tree nodes are scanned to identify concepts or data that match the input 304 and satisfy any provided constraints 302, and then the concepts or data 304 that satisfy the constraints 302 are provided as input 204 to an action 200 having parameters 202, 204, 206 that match the action parameters 306 i 。Higher-order action 300 i may further have code 310 for transforming the input 304 into an output 306.

[0044] Via the higher-order action 300 i , developers of domain actions can specify the action parameters as 306 for finding a matching action 200 i to apply to a set of inputs 304, such as a set of constraints that modify the input 304, such as including or excluding the input 304.

[0045] For example, a higher-order action with exclusions can be of the following form:

[0046] ExcladedeItems: xs isListOf a => ActionExclude(data xs,action[data xs->data xs])->:Message, where the action name "ExcladedeItems" has the concept xs as an input, which is constrained to be a list, some of whose items have the property a. ActionExclude specifies that the subsequent action parameter 306 takes the set xs, includes the list a, and returns a set, which is then output in the message.

[0047] Thus, the higher-order action 300 i takes another action as a parameter and takes a set of data as an input, including the constraints 302 (including concept or data nodes) for the input 304 node, and then performs an action 200i with parameters 202, 204 that matches the action parameter 306 on the set of data in order to include or exclude items, such as locating a subset of items from the set of data formed by the input 304 based on properties, parameters, or queries defined by the matching action 200 i defined properties, parameters, or queries to locate a subset of items from the set of data formed by the input 304. In Figure 3 the case of the embodiment, the developer or user does not have to pre-determine the specified action, but can locate an action having parameters that match the parameters (e.g., signature) of the action parameter 306 for excluding data from the set based on the input 304 and constraints 302 and producing output data to be included in the information space of the annotated syntax tree 120. If the higher-order action 300 i specifies the code 310, then if the input 304 satisfies the constraints 302, the code 310 can be further executed.

[0048] Figures 4a, 4b, and 4c provide an example of the operations performed by the natural language parser 106, the pattern matching module 108, the semantic action module 110, and the machine reasoning module 112 to process the input question 114 to determine the answer 124 provided for the question 114. When receiving (at block 400) the question 114 to be processed, the natural language parser 106 parses (at block 402) the question to generate a syntax tree 116 with tokens and part-of-speech annotations. The pattern matching module 108 processes the syntax tree 116 to annotate the tree 116 with concepts for the tokens in the syntax tree, thereby forming nodes beyond the tokens to produce an annotated syntax tree 118. The semantic action module 110 executes a loop of the operations at blocks 406 to 426 for each higher-order action 300i in the domain of the question 114. If (at block 408) there is no matching element in the tree 118, control proceeds to block 426 to process the next higher-order action 300 i , until all higher-order actions 300 have been processed. If (at block 408) there is at least one element, such as a concept or data, in the annotated syntax tree 118 that matches the input 304 of the higher-order action 300 i and satisfies the constraint 302, then for each matching element j that satisfies the constraint 302, control continues (at block 410) to execute blocks 412 to 426 in Figure 4b to apply the higher-order action i to the element j.

[0049] If (at block 412) the action parameter 306 in the higher-order action 300 i matches the parameter (constraint 202, input 204, output 206) of at least one of the actions 200 k in the domain, and if (at block 414) there are actions 200 i with multiple matching parameters, then the semantic action module 110 selects (at block 416) one action among the actions with matching parameters 202, 204, 206 that has the syntax that best matches the question 114. Otherwise, if (at block 414) there is only one matching action 200 k , then that one matching action 200 is selected k (at block 418). From block 416 or 418, (at block 420) the code 208 for the selected action 200 k is executed to produce the output 206 for the determined element j, e.g., real data, such as multiple items or multiple items that satisfy the criteria. From the executed selected action 200 kThe output 206 is output (at block 422) based on the output 308 of the higher-order action i and added to the annotated syntax tree 120 as data or some other element. If there is no matching action or after the actual data is output at block 422, according to the no-branch of block 412, control continues (at block 424) to return to block 410 in FIG. 4a. Additionally, if provided, the code 310 for the higher-order action 300 i can also be executed.

[0050] After processing all the higher-order actions 300 to add real data to the annotated syntax tree 120, control (at block 428) continues to block 430 in FIG. 4c to continue processing the annotated syntax tree 120 to determine the final answer 124. At block 430, the semantic action module 110 can further process the action 200 to output real data for the input node 204 in the annotated syntax tree 120, thereby providing further real data for the information space to answer the question 114, such as providing information from a database or other specific information for a concept, e.g., a list of multiple products that meet criteria, a product list, etc. The machine reasoning module 112 processes the annotated syntax tree 120 to determine (at block 432) a candidate answer 122 for the received question based on the real data added to the annotated syntax tree by processing the action 200 and the higher-order action 300. If (at block 434) there is only one candidate answer 122, then the candidate answer 122 is returned (at block 436) as the final answer 124 to the question 114. If (at block 434) there are multiple candidate answers 122, then a sensory metric is determined (at block 438) for each candidate answer 122, which indicates the degree to which the candidate answer 122 is a response to the question 114. The candidate response 122 with the best sensory metric is returned (at block 440) as the final response 124.

[0051] In the case of the embodiments of FIGS. 4a, 4b, and 4c, the higher-order action can be used to exclude or modify items in the set to which the action is applied by having the higher-order action take as input another action having constraint inputs and outputs that match the action parameters specific to the higher-order action, to find all actions that can perform the operation specified by the action parameters in the higher-order action 300 i . The described embodiments allow for the reuse of existing semantic actions in order to develop new functionality by specifying a set or list of items for a concept and then specifying the signature or parameters of an action to find one or more actions to apply to the set of items.

[0052] Figure 5Shows an example of an initial information space of a syntax tree 500 (such as syntax tree 116) generated from a natural language parser 106 using the word tokens and functions of word tokens in the question for the example question "show me a list of all contacts in my organization".

[0053] Figure 6 Shows an example of an information space of an annotated syntax tree 600 (such as annotated syntax tree 118) using concept annotations, such concepts as providing concepts for items or word tokens of syntax tree 116: ActionShow, :ContactLists, :Contains delation, Organization, and :Own.

[0054] Figure 7 Shows an information space of a syntax tree 700 representing the syntax tree 600 in node form, where the nodes with terms in question 114 are shown as solid fills and linked to concept nodes shown with white centers.

[0055] Figure 8 Shows a further annotated information space of a syntax tree 800 (such as annotated syntax tree 120) after applying action 200 to add real data nodes linked to concept nodes, where the real data nodes generated by the action are shown as white nodes with colored centers. The variant panel 802 shows the actions for generating real data nodes, the real data nodes are shown as white nodes with solid centers, and the concepts are shown as solid nodes with white centers. The annotated syntax tree 800 can be processed to generate candidate answers to the question by considering the real data generated for the concepts linked to the question word tokens or terms.

[0056] The present invention can be a system, a method, and / or a computer program product. The computer program product can include a computer-readable storage medium (or media) having computer-readable program instructions thereon for causing a processor to execute aspects of the present invention.

[0057] A computer-readable storage medium can be a tangible device that is capable of retaining and storing instructions for use by an instruction execution device. A computer-readable storage medium can be, by way of example and not limitation, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer-readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disc (DVD), a memory stick, a floppy disk, a mechanical encoding device such as a punched card or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. As used herein, a computer-readable storage medium should not be construed to be a transient signal per se, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., a light pulse through an optical fiber cable), or an electrical signal transmitted through a wire.

[0058] The computer-readable program instructions described herein can be downloaded to a respective computing / processing device from a computer-readable storage medium or can be downloaded to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network can include copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium within the respective computing / processing device.

[0059] The computer-readable program instructions for performing the operations of the present invention may be assembly instructions, instruction set architecture (ISA) instructions, machine-related instructions, microcode, firmware instructions, state-setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Java, Smalltalk, C++, etc., and conventional procedural programming languages such as the "C" programming language or similar programming languages. The computer-readable program instructions may be executed entirely on the user's computer, partially on the user's computer, executed as a stand-alone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter case, the remote computer may be connected to the user's computer through any type of network connection, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., via the Internet using an Internet service provider). In some embodiments, in order to perform aspects of the present invention, an electronic circuit, including, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), may execute the computer-readable program instructions by utilizing the state information of the computer-readable program instructions to personalize the electronic circuit.

[0060] Aspects of the present invention are described herein with reference to the flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the present invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.

[0061] These computer-readable program instructions may be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions executed via the processor of the computer or other programmable data processing apparatus create a means for implementing the functions / acts specified in one or more blocks of the flowchart and / or block diagram. These computer-readable program instructions may also be stored in a computer-readable storage medium, which may direct a computer, a programmable data processing apparatus, and / or other devices to operate in a particular manner, such that the computer-readable storage medium in which the instructions are stored comprises an article of manufacture including instructions for implementing aspects of the functions / acts specified in one or more blocks of the flowchart and / or block diagram.

[0062] The computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus, or other devices to produce a computer-implemented process, such that the instructions executed on the computer, other programmable apparatus, or other devices implement the functions / acts specified in one or more blocks of the flowchart and / or block diagram.

[0063] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagram may represent a module, segment, or portion of instructions, which includes one or more executable instructions for implementing the specified logical function. In some alternative implementations, the functions noted in the blocks may occur out of the order noted in the figures. For example, two blocks shown in succession may in fact be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and / or flowchart illustrations, and combinations of blocks in the block diagrams and / or flowchart illustrations, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.

[0064] Figure 1 The computing components, including computer system 100, can be implemented in one or more computer systems. The computer system / server 902 can be described in the general context of computer system-executable instructions, such as program modules executed by a computer system. Generally, program modules can include routines, programs, objects, components, logic, data structures, etc. that perform particular tasks or implement particular abstract data types. The computer system / server 902 can be practiced in a distributed cloud computing environment where tasks are performed by remote processing devices linked through a communications network. In a distributed cloud computing environment, program modules can be located in both local and remote computer system storage media including memory storage devices.

[0065] As Figure 9 shown, the computer system / server 902 is shown in the form of a general-purpose computing device. The components of the computer system / server 902 may include, but are not limited to, one or more processors or processing units 904, a system memory 906, and a bus 908 that couples various system components including the system memory 906 to the processor 904. The bus 908 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. By way of example and not limitation, these architectures 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.

[0066] The computer system / server 902 generally includes various computer system-readable media. Such media can be any available media accessible by the computer system / server 902, and it includes volatile and non-volatile media, removable and non-removable media.

[0067] System memory 906 can include computer system-readable media in the form of volatile memory, such as random access memory (RAM) 910 and / or cache 912. The computer system / server 902 can also include other removable / non-removable, volatile / non-volatile computer system storage media. By way of example only, a storage system 913 can be provided for reading from and writing to an non-removable, non-volatile magnetic medium (not shown and typically referred to as a "hard disk drive"). Although not shown, a disk drive can be provided for reading from and writing to a removable, non-volatile disk (e.g., a "floppy disk"), and an optical disk drive can be provided for reading from or writing to a removable, non-volatile optical disk such as a CD-ROM, DVD-ROM or other optical media. In such instances, each can be connected to the bus 908 via one or more data media interfaces. As will be further depicted and described below, the memory 906 can include at least one program product having a set (e.g., at least one) of program modules that are configured to execute the functions of embodiments of the present invention.

[0068] A program / utility 914 having a set (at least one) of program modules 916, as well as an operating system, one or more application programs, other program modules, and program data can be stored in the memory 906, by way of example and not limitation. Each of the operating system, one or more application programs, other program modules, and program data or some combination thereof can include an implementation of a networked environment. The components of the computer 902 can be implemented as program modules 916, which generally execute the functions and / or methods of embodiments of the present invention as described herein. Figure 1 The system can be implemented in one or more computer systems 902, and if they are implemented in multiple computer systems 902, the computer systems can communicate via a network.

[0069] The computer system / server 902 can also communicate with one or more external devices 918, such as a keyboard, a pointing device, a display 920, etc., one or more devices that enable a user to interact with the computer system / server 902, and / or any device that enables the computer system / server 902 to communicate with one or more other computing devices (e.g., a network card, a modem, etc.). Such communication can occur via an input / output (I / O) interface 922. In addition, the computer system / server 902 can communicate with one or more networks, such as a local area network (LAN), a general wide area network (WAN), and / or a public network (e.g., the Internet), via a network adapter 924. As depicted, the network adapter 924 communicates with other components of the computer system / server 902 via a bus 908. It should be understood that, although not shown, other hardware and / or software components can be used in conjunction with the computer system / server 902. Examples include, but are not limited to, microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archival storage systems, etc.

[0070] The terms “embodiment,” “multiple embodiments,” “the embodiment,” “these embodiments,” “one or more embodiments,” “some embodiments,” and “an embodiment” mean “one or more (but not all) embodiments of the present invention” unless otherwise expressly specified.

[0071] Unless otherwise expressly specified, the terms “comprise,” “include,” “have,” and variations thereof mean “including but not limited to.”

[0072] Unless otherwise expressly specified, a list of enumerated items does not imply that any or all of the items are mutually exclusive.

[0073] Unless otherwise expressly specified, the terms “a,” “an,” and “the” mean “one or more.”

[0074] Unless otherwise expressly specified, devices that communicate with each other need not communicate with each other continuously. Additionally, devices that communicate with each other can communicate directly or indirectly through one or more intermediaries.

[0075] The description of an embodiment having several components that communicate with each other does not imply that all such components are required. Instead, various optional components are described to illustrate various possible embodiments of the present invention.

[0076] When a single device or product is described herein, it will be apparent that more than one device / product (whether they cooperate or not) can be used in place of the single device / product. Similarly, where more than one device or product (whether they cooperate or not) are described herein, it will be readily understood that a single device / product can be used in place of the more than one device or product, or different numbers of devices / products can be used in place of the shown number of devices or programs. The functions and / or features of the device can alternatively be embodied by one or more other devices not expressly described as having such functions / features. Accordingly, other embodiments of the present invention need not include the device itself.

[0077] For purposes of illustration and description, the foregoing description of various embodiments of the present invention has been given. It is not exhaustive nor is it intended to limit the invention to the precise forms disclosed. Many modifications and variations are possible in light of the above teachings. The scope of the invention is not limited by this detailed description, but rather by the appended claims. The foregoing description, examples and data provide a complete description of the manufacture and use of the composition of the present invention. Since many embodiments of the present invention can be made without departing from the scope of the invention, the invention resides in the appended claims.

Claims

1. A computer program product for processing language statements in a computing system, wherein the computer program product includes a computer-readable storage medium having computer-readable program instructions that are executed by a processor to perform operations, the operations including: Generating a syntax tree according to a problem to be processed; Annotating an information space of the syntax tree with concepts corresponding to tokens in the syntax tree, wherein the concepts include objects in the domain of the problem and are related to other concepts in an ontology of the domain; Providing a higher-order action that specifies an input, action parameters, and an output; Determining an element in the information space of the syntax tree corresponding to the input of the higher-order action; Determining an action among a plurality of actions in the domain of the problem that has parameters matching the action parameters; Providing the determined element as an input to the determined action to produce an output of the determined action, and the output of the determined action is processed according to the output specified by the higher-order action; and Annotating the information space of the syntax tree with the output from the higher-order action for providing an answer to the problem.

2. The computer program product according to claim 1, wherein, Each of the plurality of actions has parameters: a constraint, an input, and an output, where the input includes an element in the information space of the syntax tree to which the constraint applies, and the output is produced by the action in response to the input satisfying the constraint. Determining an action matching the action parameters includes determining an action having constraints, an input, and an output that match the constraints, input, and output of the action parameters in the higher-order action.

3. The computer program product according to claim 1, wherein, The higher-order action specifies a constraint for the input, and determining an element in the information space of the syntax tree corresponding to the input of the higher-order action includes: Determining whether the information space of the syntax tree includes a concept that satisfies the constraint of the input of the higher-order action, where the determined action is applied to the concept that satisfies the constraint of the input of the higher-order action, and where the output from the higher-order action provides real data for the concept corresponding to the input of the higher-order action.

4. The computer program product according to claim 1, wherein, Determining an element in the information space of the syntax tree that satisfies the input of the higher-order action includes determining a plurality of elements in the information space of the syntax tree, where the determined action is applied to each of the determined plurality of elements to produce the output of the higher-order action, thereby annotating each of the determined plurality of elements in the information space of the syntax tree corresponding to the input of the higher-order action.

5. The computer program product according to claim 1, wherein, The higher-order action and the action receive a concept in the information space as an input to produce an output including data for the concept, and wherein the operations further include: Determining candidate answers according to data produced for a concept from at least one higher-order action; Determining a sensory metric for each candidate answer to the problem; and Using the sensory metric of the candidate answer to select the candidate answer as the answer to the problem.

6. The computer program product according to claim 1, wherein, The input of the higher-order action indicates a concept or data without specifying constraints on the indicated concept or data, wherein the operation further includes: Determining whether the information space of the syntax tree includes the following elements: the elements include the concept or data indicated in the input of the higher-order action, wherein an action having a parameter matching the action parameter is processed in response to an element corresponding to the data or concept specified in the input in the information space of the syntax tree to generate an output of the higher-order action.

7. The computer program product according to claim 1, wherein, Determining that the action includes determining a plurality of actions having parameters matching the action parameter, wherein the operation further includes: For each of the determined plurality of actions, determining a matching strength, the matching strength indicating the strength of the match between the parameter of the determined action and the action parameter; and Selecting the action having the highest matching strength to be applied to an element corresponding to the input of the higher-order action in the information space of the syntax tree.

8. The computer program product according to claim 1, wherein, The input of the higher-order action specifies a concept and constraints on the concept, the constraints forming a set of the concepts, wherein an action determined according to the action parameter is applied to the set of the concepts.

9. A computer program product for processing language statements in a computing system, wherein, The computer program product includes a computer-readable storage medium, the computer-readable storage medium including: Generating a syntax tree according to a problem to be processed, the syntax tree including an information space annotated with concepts corresponding to tokens in the syntax tree, wherein the concepts include objects in the domain of the problem and are related to other concepts in the ontology of the domain; A plurality of actions having parameters in the domain of the problem; and A higher-order action that specifies an input, an action parameter, and an output, wherein the higher-order action is processed to determine an element corresponding to the input of the higher-order action in the information space of the syntax tree, and to determine an action among the plurality of actions having a parameter matching the action parameter, wherein the determined element is provided as an input of the determined action to generate an output of the determined action, the output is processed according to the output specified by the higher-order action, and wherein the information space of the syntax tree is further annotated with the output from the higher-order action for providing an answer to the problem.

10. The computer program product according to claim 9, wherein, Each of the plurality of actions has parameters: a constraint, an input, and an output, the input including an element in the information space of the syntax tree to which the constraint is applied, the output being generated by the action in response to the input satisfying the constraint, wherein an action having a parameter matching the action parameter includes an action having constraints, an input, and an output matching the constraints, the input, and the output of the action parameter in the higher-order action.

11. The computer program product according to claim 9, wherein, The higher-order action specifies constraints on the input, wherein the determined elements in the information space of the syntax tree corresponding to the input of the higher-order action include concepts that satisfy the constraints on the input of the higher-order action, wherein the determined action is applied to the concepts that satisfy the constraints on the input of the higher-order action, and wherein the output from the higher-order action provides true data for the concepts corresponding to the input of the higher-order action.

12. A system for processing language statements, comprising: a processor; and a computer-readable storage medium having computer-readable program instructions that, when executed by the processor, perform operations including: generating a syntax tree according to a problem to be processed; annotating the information space of the syntax tree with concepts corresponding to the tokens in the syntax tree, wherein the concepts include objects in the domain of the problem and are related to other concepts in the ontology of the domain; providing a higher-order action that specifies an input, action parameters, and an output; determining elements in the information space of the syntax tree corresponding to the input of the higher-order action; determining an action among a plurality of actions in the domain of the problem that has parameters matching the action parameters; providing the determined elements as the input to the determined action to produce an output of the determined action, and the output of the determined action is processed according to the output specified by the higher-order action; and annotating the information space of the syntax tree with the output from the higher-order action for providing an answer to the problem.

13. The system according to claim 12, wherein, Each of the plurality of actions has parameters: a constraint, an input, and an output, where the input includes elements in the information space of the syntax tree to which the constraint applies, and the output is produced by the action in response to the input satisfying the constraint, and wherein determining an action matching the action parameters includes determining an action having constraints, an input, and an output that match the constraints, input, and output of the action parameters in the higher-order action.

14. The system according to claim 12, wherein, The higher-order action specifies constraints on the input, wherein determining elements in the information space of the syntax tree corresponding to the input of the higher-order action includes: determining whether the information space of the syntax tree includes concepts that satisfy the constraints on the input of the higher-order action, wherein the determined action is applied to the concepts that satisfy the constraints on the input of the higher-order action, and wherein the output from the higher-order action provides true data for the concepts corresponding to the input of the higher-order action.

15. The system according to claim 12, wherein, The higher-order action and the action receive concepts in the information space as input to produce an output including data for the concepts, and wherein the operations further include: determining candidate answers according to data generated for concepts from at least one higher-order action; determining a sensory metric for each candidate answer to the problem; and using the sensory metric of the candidate answers to select a candidate answer as the answer to the problem.

16. The system according to claim 12, wherein The input of the higher-order action indicates a concept or data without specifying constraints on the indicated concept or data, and wherein the operation further includes: Determining whether the information space of the syntax tree includes an element that includes the concept or data indicated in the input of the higher-order action, wherein an action having a parameter matching the action parameter is processed in response to an element corresponding to the data or concept specified in the input in the information space of the syntax tree to produce an output of the higher-order action.

17. The system according to claim 12, wherein, Determining the action includes determining a plurality of actions having parameters matching the action parameter, and wherein the operation further includes: For each of the determined plurality of actions, determining a matching strength that indicates the strength of the match between the parameter of the determined action and the action parameter; and Selecting the action having the highest matching strength to be applied to an element corresponding to the input of the higher-order action in the information space of the syntax tree.

18. A system for processing language statements, comprising: A processor; And A computer-readable storage medium having computer-readable program code executed by the processor, including: Generating a syntax tree according to a problem to be processed, the syntax tree including an information space annotated with concepts corresponding to tokens in the syntax tree, wherein the concepts include objects in the domain of the problem and are related to other concepts in the ontology of the domain; A plurality of actions having parameters in the domain of the problem; and A higher-order action that specifies an input, an action parameter, and an output, wherein the higher-order action is processed to determine an element corresponding to the input of the higher-order action in the information space of the syntax tree, and to determine an action among the plurality of actions having a parameter matching the action parameter, wherein the determined element is provided as an input to the determined action to produce an output of the determined action, the output of the determined action is processed according to the output specified by the higher-order action, and wherein the information space of the syntax tree is further annotated with the output from the higher-order action for providing an answer to the problem.

19. The system according to claim 18, wherein, The higher-order action specifies a constraint on the input, wherein the determined element corresponding to the input of the higher-order action in the information space of the syntax tree includes a concept that satisfies the constraint of the input of the higher-order action, wherein the determined action is applied to the concept that satisfies the constraint of the input of the higher-order action, and wherein the output from the higher-order action provides real data for the concept corresponding to the input of the higher-order action.

20. A method for processing language statements, comprising: Generating a syntax tree according to a problem to be processed; Annotating the information space of the syntax tree with concepts corresponding to tokens in the syntax tree, wherein the concepts include objects in the domain of the problem and are related to other concepts in the ontology of the domain; Providing a higher-order action that specifies an input, an action parameter, and an output; Determine an element in the information space of the syntax tree corresponding to the input of the higher-order action; Determine an action among a plurality of actions in the domain of the problem that has parameters matching the action parameters; Provide the determined element as the input of the determined action to generate the output of the determined action, and the output of the determined action is processed according to the output specified by the higher-order action; and Annotate the information space of the syntax tree with the output from the higher-order action for providing an answer to the problem.

21. The method according to claim 20, wherein, Each of the plurality of actions has parameters: a constraint, an input, and an output, where the input includes elements in the information space of the syntax tree to which the constraint is applied, and the output is what the action generates in response to the input satisfying the constraint. Determining an action with matching action parameters includes determining an action having constraints, an input, and an output that match the constraints, input, and output of the action parameters in the higher-order action.

22. The method according to claim 20, wherein, The higher-order action specifies a constraint on the input. Determining an element in the information space of the syntax tree corresponding to the input of the higher-order action includes: Determine whether the information space of the syntax tree includes a concept that satisfies the constraint of the input of the higher-order action. The determined action is applied to the concept that satisfies the constraint of the input of the higher-order action, and the output from the higher-order action provides real data for the concept corresponding to the input of the higher-order action.

23. The method according to claim 20, wherein, The higher-order action and the action receive a concept in the information space as input to generate an output including data for the concept, and the method further includes: Determine a candidate answer based on data generated for a concept from at least one higher-order action; Determine the sensory metric of each candidate answer to the problem; and Use the sensory metric of the candidate answer to select the candidate answer as the answer to the problem.

24. The method according to claim 20, wherein, The input of the higher-order action indicates a concept or data without specifying a constraint on the indicated concept or data. The method further includes: Determine whether the information space of the syntax tree includes an element that includes the concept or data indicated in the input of the higher-order action. An action having parameters matching the action parameters is processed in response to an element in the information space of the syntax tree corresponding to the data or concept specified in the input to generate the output of the higher-order action.

25. The method according to claim 20, wherein Determining the action includes determining a plurality of actions having parameters matching the action parameters. The method further includes: For each of the determined plurality of actions, determine a matching strength, where the matching strength indicates the strength of the match between the parameters of the determined action and the action parameters; and Select the action with the highest matching strength to apply to the element in the information space of the syntax tree corresponding to the input of the higher-order action.

Citation Information

Patent Citations

  • Classification retrieval-based automatic question and answer method and system

    CN107885844A

  • Intelligent question generation method and device and computer-readable storage medium

    CN108363743A