Concept disambiguation for natural language processing
By using user-specific concept metrics and concept embedding models, ambiguous concepts are identified and eliminated, solving the interpretation difficulties of natural language processing systems in the absence of context and improving the accuracy of ambiguous concept interpretation.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- INTERNATIONAL BUSINESS MACHINE CORPORATION
- Filing Date
- 2021-05-19
- Publication Date
- 2026-06-26
AI Technical Summary
When faced with ambiguous concepts, natural language processing systems often lack sufficient contextual information, making it difficult to accurately interpret the meaning of short messages.
By collecting and utilizing user-specific concept metrics, based on the frequency of concepts used in the user's history and concept embedding models, ambiguous concepts are identified and disambiguated to determine the most likely meaning.
It improves the accuracy and interpretability of natural language processing systems when faced with ambiguous concepts, especially in the absence of clear context.
Smart Images

Figure CN115552389B_ABST
Abstract
Description
Technical Field
[0001] This invention generally relates to natural language processing by a programmable computer, and more specifically to the elimination of conceptual ambiguity in a natural language processing system. Background Technology
[0002] Natural Language Processing (NLP) is a field of computer science, artificial intelligence, and linguistics that deals with the interaction between computers and human (natural) language. Therefore, NLP is related to the field of human-computer interaction. Many challenges in NLP involve natural language understanding, that is, enabling computers to extract meaning from human or natural language input.
[0003] Modern NLP algorithms are based on machine learning, particularly statistical machine learning. The machine learning paradigm differs from most previous attempts in language processing. Previous implementations of language processing tasks typically involved the direct, manual encoding of large numbers of rules, while the machine learning paradigm instead invokes general learning algorithms (often, though not always, based on statistical inference) to automatically learn such rules by analyzing large corpora of typical real-world examples. A corpus (plural, "corpus") is a collection of documents (or sometimes single sentences) that have been manually annotated with the correct values to be learned.
[0004] Many different categories of machine learning algorithms have been applied to NLP tasks. These algorithms take a large number of “features” generated from the input data as input. Some of the earliest algorithms used (such as decision trees) produced hard if-then rule systems similar to the later common handwritten rule systems. However, increasing research has focused on statistical models that make soft probabilistic decisions based on attaching real-valued weights to each input feature. Such models have the advantage that they can represent the relative certainty of many different possible answers, rather than just one, and produce more reliable results when included as components of larger systems.
[0005] One type of NLP system is a search engine, such as an internet search engine like Google. TM Yahoo! TM Such a search system receives one or more words and searches a corpus of content to find matching words, returning results that indicate the source of the content containing the specified words. In some instances, more advanced processing of the search terms is performed, which includes implementing NLP algorithms to improve the results generated by the search engine.
[0006] Another type of NLP system is the question-answering (QA) system, which takes an input question, analyzes the input question using NLP algorithms, and returns a result indicating the most likely answer. QA systems provide an automated mechanism for searching large sets of content sources (e.g., electronic documents) and analyzing them against input questions to determine answers and to determine a confidence metric on how accurately the answer addresses the question.
[0007] One such QA system is the IBM Watson, available from IBM in Armonk, New York. TM System. IBM Watson TM The system applies advanced natural language processing, information retrieval, knowledge representation and reasoning, and machine learning techniques to the open-domain question answering field. (IBM Watson) TM The system is built on IBM's DeepQA platform for hypothesis generation, large-scale evidence collection, analysis, and scoring. TM Beyond technology. DeepQA TM The system takes an input question, analyzes it, breaks it down into components, generates one or more hypotheses based on the results of the main search based on the decomposed question and answer sources, executes the hypothesis and evidence scoring based on evidence retrieved from evidence sources, performs the synthesis of one or more hypotheses, and performs the final merging and sorting based on the trained model to output the answer to the input question and a confidence metric. Summary of the Invention
[0008] Embodiments of the present invention relate to concept ambiguity resolution for natural language processing. In one aspect of the invention, a computer-implemented method includes receiving a message from a user by a processor. The method further includes identifying ambiguous concepts in the message. The method further includes determining a plurality of candidate concepts corresponding to the ambiguous concept. The method further includes: for each of the plurality of candidate concepts, determining a corresponding similarity score based on a user-specific concept metric corresponding to the user. The method further includes ranking the plurality of candidate concepts based on the corresponding similarity scores. The method further includes determining that the ambiguous concept corresponds to the highest-ranked candidate concept among the ranked plurality of candidate concepts.
[0009] In another aspect, a system includes a memory having computer-readable instructions, and one or more processors for executing the computer-readable instructions, the computer-readable instructions controlling the one or more processors to perform operations including receiving a message from a user. The operations also include identifying ambiguous concepts in the message. The operations further include determining a plurality of candidate concepts corresponding to the ambiguous concept. The operations also include determining a corresponding similarity score for each of the plurality of candidate concepts based on a user-specific concept metric corresponding to the user. The operations further include ranking the plurality of candidate concepts based on the corresponding similarity scores. The operations also include determining that the ambiguous concept corresponds to the highest-ranked candidate concept among the ranked plurality of candidate concepts.
[0010] In another aspect, a computer program product includes a computer-readable storage medium having program instructions contained therein, the program instructions being executable by one or more processors to cause the one or more processors to perform operations, the operations including receiving a message from a user. The operations also include identifying ambiguous concepts in the messages. The operations further include determining a plurality of candidate concepts corresponding to the ambiguous concepts. The operations also include determining a corresponding similarity score for each of the plurality of candidate concepts based on a user-specific concept metric corresponding to the user. The operations further include ranking the plurality of candidate concepts based on the corresponding similarity scores. The operations also include determining that the ambiguous concept corresponds to the highest-ranked candidate concept among the ranked plurality of candidate concepts.
[0011] A non-limiting example computer-implemented method includes receiving text corresponding to a first user by a processor. The method further includes identifying explicit concepts in the text corresponding to the first user. The method also includes incrementing a count of explicit concepts in a user-specific concept metric corresponding to the first user.
[0012] A non-limiting example system includes a memory having computer-readable instructions and one or more processors for executing the computer-readable instructions, the computer-readable instructions controlling the one or more processors to perform operations including receiving text corresponding to a first user. The operations also include identifying explicit concepts in the text corresponding to the first user. The operations further include incrementing a count of explicit concepts in a user-specific concept metric corresponding to the first user.
[0013] Additional technical features and advantages are achieved through the technology of this invention. Embodiments and aspects of the invention are described in detail herein and are considered part of the claimed subject matter. For a better understanding, refer to the detailed description and accompanying drawings. Attached Figure Description
[0014] The details of the exclusive rights described herein are specifically pointed out and explicitly claimed in the claims at the end of the specification. The foregoing and other features and advantages of embodiments of the invention will be apparent from the following detailed description taken in conjunction with the accompanying drawings, wherein:
[0015] Figure 1 This is a block diagram describing a computational environment for concept ambiguity resolution in natural language processing according to an embodiment of the present invention;
[0016] Figure 2 This is a flowchart of a process for concept ambiguity resolution in natural language processing according to one or more embodiments of the present invention;
[0017] Figure 3 This is a flowchart of a process for concept ambiguity resolution in natural language processing according to one or more embodiments of the present invention;
[0018] Figure 4A This is a block diagram illustrating a portion of a layered body according to an embodiment of the present invention;
[0019] Figure 4B This is a block diagram illustrating a portion of the conceptual hierarchy according to an embodiment of the present invention;
[0020] Figure 5A This is a block diagram illustrating a user-specific concept metric according to an embodiment of the present invention;
[0021] Figure 5B This is a block diagram illustrating a user-specific conceptual metric according to an embodiment of the present invention;
[0022] Figure 6 A cloud computing environment according to an embodiment of the present invention is described;
[0023] Figure 7 An abstract model layer according to an embodiment of the present invention is described; and
[0024] Figure 8 This is a block diagram of an exemplary computer system used in conjunction with one or more implementations of concept ambiguity resolution for natural language processing. Detailed Implementation
[0025] One or more embodiments of the present invention provide conceptual ambiguity resolution for Natural Language Processing (NLP). An NLP system may encounter ambiguous concepts in messages received for processing by the NLP system, including but not limited to abbreviations or words that can have multiple meanings. If there is not a sufficient number of contexts in the message that are in the form of juxtaposed concepts (or other external contexts) such that the meaning of the ambiguous concept is self-evident, the NLP system may import information from another service to help resolve the ambiguity of the text. For example, if the NLP system has access to a patient's history and knows that the patient has had a hip replacement, the NLP system may determine that the acronym "PT" in a message corresponding to the patient likely means "physical therapy." However, in a clinical context, "PT" could also mean "prothrombin time." The NLP system may not have access to a larger context or external context (such as a patient record). Therefore, if the NLP system receives messages, particularly relatively short messages, containing ambiguous concepts such as "Do I accept PT?" or "Tell me about patients admitted with PT last year," there may not be a sufficient context system for the NLP system to correctly determine the meaning of these messages.
[0026] User-specific concept metrics that quantify a user's historical use of explicit concepts can be collected and used to assist NLP systems in performing concept disambiguation. For example, an NLP system might receive multiple instances of text about insurance from a specific user, and explicit concepts included in the user-specific concept metrics for that user could include less technical terms like "knee replacement surgery" or "bariatric surgery," rather than more technical terms like "prothrombin time." For text received from clinical support applications used by doctors or nurses to ask questions, the distribution of concepts included in the user-specific concept metrics corresponding to the clinical support application can be more technical than the metrics for users performing insurance-related tasks. When an ambiguous concept is detected in a message by an NLP system, the user-specific concept metrics associated with the sending user can be consulted to see if there is evidence from previous messages that should be pushing for disambiguation of the ambiguous concept in one direction, rather than in the other.
[0027] When text containing explicit concepts is received from a user, the explicit concepts can be stored along with associated counts in a user-specific concept metric (e.g., a data structure). The counts can indicate how frequently a particular user has historically generated text containing a specific concept. User-specific concept metrics can be partitioned by tenant, user, application, or any other suitable system grouping. In some embodiments, each explicit concept included in a user-specific metric can be represented via a dense vector representation.
[0028] Figure 1This is a block diagram illustrating a system 100 for concept ambiguity resolution in natural language processing according to an embodiment of the present invention. As shown, system 100 includes user equipment 105A-N and an NLP server 135 connected via network 165. It should be understood that the functional division between the components of system 100 has been chosen for the purpose of explaining the embodiments of the present invention and should not be construed as a limiting example.
[0029] User equipment 105A-N each includes a corresponding network interface (I / F) 106A-N, at least one processor 107A-N, a display 110A-N, and memory 115A-N. Memory 115A-N may include applications 120A-N. User equipment 105A-N may include laptop computers, tablet computers, netbook computers, personal computers (PCs), desktop computers, personal digital assistants (PDAs), smartphones, thin clients, or any programmable electronic device capable of executing computer-readable program instructions. Network interface 106A-N enables components of user equipment 105A-N to send and receive data over a network (e.g., network 165). User equipment 105A-N may include internal and external hardware components, such as those related to… Figure 8 To describe and depict in more detail.
[0030] Displays 110A-N may include any electronic device capable of presenting information in a visual form. For example, the display in displays 110A-N may be a liquid crystal display (LCD), a cathode ray tube (CRT) display, a light-emitting diode (LED) display, an electronic ink display, etc. Information related to NLP services hosted on NLP server 135 can be displayed to the user of user equipment 105A-N via displays 110A-N.
[0031] Application 120A-N may include one or more modules or units to perform various functions of embodiments of the present invention described below. Application 120A-N may be implemented by any combination of any number of software and / or hardware modules or units, and may reside in the memory 115A-N of user equipment 105A-N for execution by a processor (e.g., processor 107A-N).
[0032] Instances of applications 120A-N enable users of any of user devices 105A-N to send messages (e.g., any suitable text, including queries) to NLP server 135 for processing by NLP module 155. In some embodiments of the invention, messages received from user devices 105A-N can be processed by NLP server 135 and used to retrieve information from an information source (e.g., in different embodiments of the invention, the information is stored in storage device 160 and / or in an external database communicating with NLP server 135 via network 165). In response to the processed message, the retrieved information can be provided back to the sending user device of user device 105A-N via application 120A-N. Applications 120A-N may include multiple different applications, each tailored to a specific type of user. In some embodiments of the invention, user-specific conceptual metrics can be collected and maintained based on the type of application used to send generated text or messages, and conceptual ambiguity resolution can be performed.
[0033] NLP server 135 includes a network interface 136, at least one processor 137, memory 140, and storage device 160. Memory 140 includes a concept ambiguity resolution module 145, a concept embedding module 150, and an NLP module 155. In various embodiments of the invention, NLP server 135 may include a laptop computer, tablet computer, netbook computer, personal computer (PC), desktop computer, personal digital assistant (PDA), smartphone, or any programmable electronic device capable of executing computer-readable program instructions. Network interface 136 enables components of NLP server 135 to send and receive data via a network such as network 165. Typically, NLP server 135 and its modules can perform concept ambiguity resolution for natural language processing requests from any of user devices 105A-N. NLP server 135 may include internal and external hardware components, such as those described above. Figure 8 To describe and depict in more detail.
[0034] The concept embedding module 150, the concept ambiguity resolution module 145, and the NLP module 155 may include one or more modules or units for performing different functions of embodiments of the invention described below. The concept embedding module 150, the concept ambiguity resolution module 145, and the NLP module 155 may be implemented by any combination of any number of software and / or hardware modules or units, and may reside in the memory 140 of the NLP server 135 for execution by a processor (such as processor 137).
[0035] The concept embedding module 150 can process the ontology of concepts, either alone or in combination with data obtained from a lexical corpus, to generate concept embeddings for a vector space model. Specifically, the concept embedding module 150 extracts training examples of concepts from adjacent context windows. Each context window can include other concepts linked to concepts selected according to the hierarchy of the ontology. For example, a concept training window can include one or more parent concepts, one or more child concepts, one or more grandchild concepts, etc. The concept embedding module 150 can generate vectors for each concept in the ontology and use these vectors to train the concept embeddings. The hierarchical ontology processed by the concept embedding module 150 can have any number of concepts forming any number of hierarchies. The hierarchical ontology includes concepts and relationships between concepts. The hierarchical ontology can include any known or other ontology, such as... Genetic ontology (GO), or a systematic medical nomenclature-clinical terminology (SNOMED-CT). The ontology and lexical corpus processed by the concept embedding module 150 can be stored on any suitable computer device, including but not limited to memory 160 or a remote database communicating with an NLP server 135 via network 165. Relative to Figure 4A The description refers to instances that can be processed as part of the input hierarchical ontology by embodiments of the concept embedding module 150, and relative to Figure 4B The description includes instances of concept embeddings that can be generated as part of the concept hierarchy output by the concept embedding module 150.
[0036] The concept embedding module 150 can perform training on the vector set by iteratively adjusting the vectors to optimize the loss function. The loss function calculates the cosine similarity between two vectors: one representing a specific concept, and another vector representing the context window of that concept. The vector representing the context window of the concept can itself be the average of vectors associated with concepts within the selected concept window. For example, vectors corresponding to the parent and / or child concepts (or grandparents, grandchildren, etc.) of the focus concept can be averaged to produce a single vector, which is compared to the vector of the focus concept by calculating the cosine similarity between these two vectors. In an embodiment, the loss function can be mathematically represented according to the following relationship:
[0037] Loss (concept_focus) ∝ cos(concept_focus, average value (concept_parent & child))
[0038] The output value of the loss function (e.g., "loss") of the selected concept (e.g., "concept_focus") is proportional to the cosine similarity between the vector of the focused concept (e.g., "concept_focus") and the vectors of the parent and / or child concepts of the focused concept (e.g., "average(concept_parent&child)")). The mean vector can be the mean of the vectors corresponding to any concept in the adjacent context window of the focused concept and can include any combination of parent vectors, child vectors, grandfather vectors, grandson vectors, etc. The ratio of the loss function to the cosine similarity value can include a multiple of the cosine similarity value, such as 1.5 times the cosine similarity value, 3 times the cosine similarity value, 0.8 times the cosine similarity value, etc.
[0039] The concept embedding module 150 can randomly initialize the values of one or more features for each vector. A vector can include multiple dimensions, each representing a feature. In some embodiments, a vector is a hotspot vector where each dimension has a specific meaning; in other embodiments, a vector is a dense vector in which the values of each dimension (and therefore features) are derived from data to capture word and / or concept embeddings in a corpus and / or ontology. The loss function can be optimized by iteratively adjusting the values of each vector to minimize the output value of the loss function when the vector is compared with a positive training example and maximize the output value of the loss function when the vector is compared with a negative training example. Positive training examples can represent concepts related to the concept of interest, and negative training examples can represent concepts unrelated to the concept of interest. In some embodiments, the concept embedding module 150 generates positive training examples by selecting vectors representing the parent and / or child of the concept of interest and calculating the average of the selected vectors. The concept embedding module 150 generates negative training examples by selecting concept vectors unrelated to the concept of interest (e.g., according to a hierarchical ontology) and similarly calculating the average of the selected vectors.
[0040] Positive training examples can be based on a portion of the ontology. For example, if the ontology includes the concept of "phospholipid" with a parent concept "lipid" and a child concept "phosphatidylcholine," the concept embedding module 150 can generate positive training examples by calculating the average of three vectors: a vector representing the phospholipid concept, a vector representing the lipid concept, and a vector representing the phosphatidylcholine concept. Negative training examples can be generated by selecting concepts in a window and replacing one or more of them with irrelevant concepts. Irrelevant concepts can be selected by randomly selecting concepts that are not yet included in the context window. For example, "dog" can be replaced with "phospholipid" to form a negative training instance of lipid / dog / phosphatidylcholine. Since the concept of dog logically does not fit the ontological position between phospholipid and phosphatidylcholine, this embodiment is considered a poor representation of the relevance of these concepts and can therefore be used as a negative training embodiment.
[0041] The concept embedding module 150 iteratively adjusts the values of the vector set representing concepts in the ontology until a desired level of convergence is reached. In some embodiments, when the surface form of a concept has an unambiguous, well-embedded textual representation (e.g., in a corpus), the concept embedding module 150 applies lexical pressure by combining concept embedding information with word embedding information. The surface form of a concept can be identified in the ontology and can include any term for that concept, including synonyms and terms from different vocabularies. The concept embedding module 150 can identify unambiguous, well-embedded textual representations by determining that the surface form meets certain criteria. Criteria may include terms that appear a threshold number of times (e.g., 30 times) in a document or document corpus. If a surface form appears in multiple incompatible concepts (e.g., concepts with different semantic types), these surface forms can be excluded from consideration. For example, if a surface form is associated with a concept belonging to the semantic type "eukaryote" and also with another concept belonging to the semantic type "educational activity," the surface form will be excluded as potentially ambiguous. Alternatively, the concept embedding module 150 may be excluded from the surface form of short acronyms (e.g., below a threshold number of characters).
[0042] Once the concept embedding module 150 has identified an unambiguous, well-embedded textual representation of the surface form of a concept, the concept embedding module 150 can utilize a loss function to apply lexical pressure to the concept vectors during training. In an embodiment, the loss function can be mathematically represented according to the following relation:
[0043] Loss(concept_focus) ∝ cos(concept_focus, average(concept_parent & child)) + cos(concept_focus, average(word_concept))
[0044] The loss function is proportional to both the cosine similarity of the concept's vector and the vectors of adjacent concepts, and the cosine similarity of the concept's vector and the average of the word vectors corresponding to other words appearing in the same context as the focal word in the corpus (e.g., "mean(words_concept)"). The ratio of the loss function to the cosine similarity value can include a multiple of the cosine similarity value, such as 1.5 times, 3 times, or 0.8 times. Therefore, optimizing the loss function encourages concepts to be embedded in a space aligned with the existing word embedding space. The concept embedding module 150 can output a vector space model, which includes a hierarchical structure of concepts combining concept vectors and word vectors, providing the ability to find words surrounding concepts and concepts surrounding words. Specifically, the vector space model can be used to identify concept-related words by recognizing any word vector that is closest to the concept vector in terms of cosine similarity. Similarly, the vector space model can be used to identify word-related concepts by using a cosine similarity metric to identify the concept vector that is closest to the word vector. For example, a query for a specific concept can be provided to a vector space model to return results that identify the five closest characters based on the cosine similarity of the corresponding vectors of the five closest characters.
[0045] The conceptual ambiguity resolution module 145 can be based on the following discussion. Figure 2 In an implementation of method 200, user-specific concept metrics corresponding to users or user groups of user equipment 105A-N are collected and maintained. In some embodiments of the invention, user-specific concept metrics generated by concept ambiguity resolution module 145 may be stored in memory 160. Concept ambiguity resolution module 145 may also be based on messages containing ambiguous concepts identified by NLP module 155 from any user equipment 105A-N, based on the concept ambiguity resolution module 145's... Figure 3 The implementation of method 300 collects user-specific concept metrics to perform concept ambiguity removal, which is discussed below. The concept ambiguity removal module 145 can perform concept ambiguity removal based on concept embedding data determined by the concept embedding module 150.
[0046] NLP module 155 can use the vector space model generated by concept embedding module 150 to perform any appropriate natural language processing task. For example, NLP module 155 can utilize the vector space model to perform tasks such as topic recognition, sentiment analysis, question answering, machine translation, semantic disambiguation, etc.
[0047] Memory 160 may include any non-volatile storage medium known in the art. For example, memory 160 may be implemented using a tape library, an optical library, one or more individual hard disk drives, or multiple hard disk drives in a redundant array of independent disks (RAID). Similarly, data in storage device 160 may follow any suitable storage architecture known in the art, such as files, relational databases, object-oriented databases, and / or one or more tables. Memory 160 may store data related to developing vector space models and / or performing natural language processing, including one or more vocabularies, one or more concept ontologies, vector representations of concept embeddings and / or word embeddings, user-specific concept metrics, etc.
[0048] Network 165 may include a local area network (LAN), a wide area network (WAN) such as the Internet, or a combination of both, and may include wired, wireless, or fiber optic connections. Typically, according to embodiments of the invention, network 165 may be any combination of connections and protocols known in the art that will support communication between user equipment 105A-N and NLP server 135 via their respective network interfaces.
[0049] It should be understood that Figure 1 The block diagram is not intended to indicate that system 100 will include Figure 1 All components shown. Conversely, system 100 may include... Figure 1 Any suitable fewer or additional components not shown herein (e.g., additional user equipment, network connectivity, database, memory components, embedded controllers, function blocks, connections between function blocks, modules, inputs, outputs, etc.). Furthermore, the embodiments described herein with respect to system 100 can be implemented with any suitable logic, wherein the logic mentioned herein may include any suitable hardware (e.g., processor, embedded controller, or application-specific integrated circuit, etc.), software (e.g., applications, etc.), firmware, or any suitable combination of hardware, software, and firmware.
[0050] Figure 2 A processing flowchart of a method 200 for concept ambiguity resolution in natural language processing according to one or more embodiments of the present invention is shown. It can be combined with... Figure 1 System 100 Concept Ambiguity Removal Module 145 Implementation Figure 2 An embodiment of method 200 is described. In block 201 of method 200, text corresponding to a user is received. The text can be any appropriate text generated by the user or associated with the user. The text in block 201 can be received by NLP server 135 from any appropriate source (including, but not limited to, a text corpus associated with a user or user group, or any message from user devices 105A-N associated with a user or user group) and can be processed by NLP module 155.
[0051] In box 202, unambiguous concepts are identified in the received text. Unambiguous concepts can be recognized by NLP module 155 and can be recognized in any suitable manner. For example, the message in box 201 can be a relatively long message (e.g., longer than a threshold length), such that in some embodiments, the context of the unambiguous concept can be determined from the message, or the unambiguous concept can be clearly stated in the message (e.g., the text spells "physical therapy" instead of using the associated acronym "PT"). In some embodiments of the invention, unambiguous concepts can be identified based on unambiguous concepts included in the hierarchical ontology.
[0052] In block 203, the concept ambiguity resolution module 145 updates the counts corresponding to unambiguous concepts in the user-specific concept metric associated with the received text. In different embodiments of the invention, the user-specific concept metric may be associated with an individual user or with a group of users including the user who generated the text (e.g., a tenant). User-specific concept metrics can be partitioned and maintained by the concept ambiguity resolution module 145 in any suitable manner, including but not limited to grouping by tenants, users, organizations, subgroups, applications, or any other system. Relative to Figures 5A-5B It shows that it can be based on Figure 2 The implementation of method 200 generates instances of user-specific concept metrics. Method 200 can be repeated throughout the operation of system 100 and can be triggered whenever NLP server 135 receives text containing unambiguous concepts from any user. Figure 2 Method 200, whenever an unambiguous concept is encountered, the count of any unambiguous concept encountered in the text corresponding to a specific user or user group can be increased in the user-specific concept metric.
[0053] Figure 2 The processing flowchart is not intended to indicate that the operations of method 200 should be performed in any particular order, or that all operations of method 200 should be included in every case. Furthermore, method 200 may include any suitable number of additional operations.
[0054] Figure 3 A processing flowchart of a method 300 for concept ambiguity resolution in natural language processing according to one or more embodiments of the present invention is shown. This can be combined with... Figure 1 System 100 Concept Ambiguity Removal Module 145 Implementation Figure 3 An embodiment of method 300. In block 301 of method 300, a message is received from a user. This message can be received from... Figure 1The message is received by any of the user equipment 105A-N of system 100 and can be received via NLP server 135. In some embodiments of the invention, the message may include a query. In block 302, an ambiguous concept is identified in the message received in block 301. The ambiguous concept may be identified by NLP module 155. In some embodiments of the invention, the ambiguous concept may be identified based on the message received in block 301 being shorter than a threshold length, such that the message does not include sufficient context for the ambiguous concept. In some embodiments, the threshold length may be about 15 words. In some embodiments of the invention, the ambiguous concept identified in block 302 may include any acronym (e.g., “PT”) or word (e.g., “sterile” or “aspiration”) with multiple possible meanings.
[0055] In block 303, the concept ambiguity resolution module 145 identifies candidate concepts corresponding to the ambiguous concept. In some embodiments, candidate concepts may be identified based on concept hierarchy. For example, an ambiguous concept may include a string in multiple entries located in a concept hierarchy; in block 303, concepts associated with entries including strings can be selected as candidate concepts. Relative to Figure 4B An example of concept hierarchies that can be used in box 303 is shown. In box 303, any appropriate number of candidate concepts corresponding to the ambiguous concept can be identified.
[0056] In box 304, according to the conceptual ambiguity resolution module 145 Figure 2 Method 200 generates a user-specific concept metric that ranks the identified candidate concepts from box 303. The user-specific concept metric may include a set of unambiguous concepts encountered in text corresponding to the user or user group, and a corresponding count of the number of times each unambiguous concept has been encountered in text corresponding to the user or user group. In some embodiments of the invention, a similarity score may be determined for each candidate concept for each unambiguous concept included in the user-specific concept metric. In some embodiments of the invention, the similarity score of each unambiguous concept may be weighted according to the count corresponding to its respective unambiguous concept, such that similarity to more frequently used unambiguous concepts may yield a higher similarity score. In some embodiments of the invention, the similarity score may be determined based on a hierarchical ontology, and the similarity score may be determined in any suitable manner, including but not limited to cosine similarity, frequency-weighted cosine, or learning methods.
[0057] In box 305, ambiguity is eliminated by determining that the ambiguous concept corresponds to the highest-ranked candidate concept (e.g., the candidate concept with the highest determined similarity score) identified by the concept ambiguity elimination module 145 in box 304. In box 306, the NLP module 155 processes the message text including the disambiguated concept based on the identified highest-ranked candidate. For example, in box 306, the message text including the disambiguated concept can be used to query a knowledge base and provide information from the knowledge base back to the user who sent the message. Figure 3 Method 300 can be used Figure 1 The system repeats throughout its operation and can be triggered whenever a message containing ambiguous concepts is received. Regarding Figure 5A -B and Table 1-4 below show Figure 3 Example embodiments of method 300.
[0058] Figure 3 The process flowchart is not intended to indicate that the operations of method 300 should be performed in any particular order, or that all operations of method 300 should be included in every case. Furthermore, method 300 may include any suitable number of additional operations.
[0059] Figure 4A This is a block diagram depicting a portion of a hierarchical knowledge ontology 400A according to an embodiment of the present invention. As depicted, portions of the hierarchical knowledge ontology 400A include concepts linked to each other. Each link may indicate a relationship between two concepts, and each concept may be placed in a specific hierarchy to establish parent and child concepts of the selected concept. For example, the concept "phospholipid" has two child concepts "phosphatidylcholine" and "phosphatidylserine," and two parent concepts "membrane component" and "lipid."
[0060] Figure 4B This is a block diagram depicting a portion of a concept hierarchy 400B according to an embodiment of the present invention. As described, portions of the concept hierarchy structure 400B include concepts, terms associated with the concepts, and strings associated with the terms.
[0061] Each concept in the ontology can be assigned a unique identifier, and similar words or phrases used for that concept can also be grouped in the concept hierarchy based on the terms assigned the unique identifier. For example, the concept “C0004238” can refer to a specific form of fibrillation occurring in the atria of the heart. Strings used for this concept include atrial fibrillation and atrial fibrillation assigned to the term “L0004238”, and ear fibrillation and ear tremor assigned to the term “L0004327”. Thus, each string can represent a specific surface form of a concept in the concept hierarchy.
[0062] Figures 4A to 4B This is shown for illustrative purposes only. Figure 4A The embodiments of the hierarchical ontology shown may include any appropriate number and type of concepts represented and linked in any suitable manner. For example... Figure 4B The implementation of the concept hierarchy shown may include any suitable number and type of concepts, terms, and strings represented and linked in any suitable manner.
[0063] Figure 5A -B is a block diagram depicting user-specific concept metrics 500A-B according to an embodiment of the present invention. User-specific concept metrics 500A include concept metrics corresponding to a specific user or user group (e.g., a tenant, organization, or subgroup of an organization), and user-specific concept metrics 500B include concept metrics corresponding to different specific users or user groups. Figure 5A As shown, according to Figure 2 Method 200 has received and processed text including explicit references to concepts 501-504 for users or user groups associated with user-specific concept metrics 500A. This can be based on a concept hierarchy structure (such as...) Figure 4B The concept hierarchy structure (400B) assigns concept identifiers to user-specific concept metrics (500A). For example... Figure 5A As shown, concept 501 corresponds to “cryotherapy” and has been cited 10 times; concept 502 corresponds to “metformin” and has been cited 2 times; concept 503 corresponds to “ACL surgery” and has been cited 3 times; and concept 504 corresponds to “baria surgery” and has been cited 4 times.
[0064] Based on data received from the user and including Figure 3 The message associated with the user-specific concept metric 500A of the acronym "PT" in box 301 of method 300, the acronym "PT" can be identified in box 302 and based on the user-specific concept metric 500A. Figure 3 Method 300 is treated as an ambiguous concept. In block 303 of method 300, candidate concepts corresponding to "PT" can be identified, including "physical therapy" and "prothrombin time". In some embodiments of the invention, it can be based on, for example... Figure 4B The concept grading in box 400B is used to identify candidate concepts. In box 304, each candidate concept identified in box 303 is evaluated based on user-specific concept metric 500A. For example, a similarity score can be calculated for the candidate concept "physical therapy" for each of concepts 501-504 in user-specific concept metric 500A, as shown in Table 1:
[0065] Table 1: Similarity score of C0949766 (physical therapy)
[0066] 1. Cryotherapy (C0008138): 0.56548
[0067] 2. Metformin (C0025598): 0.1035
[0068] 3. ACL surgery (C0187769): 0.4994
[0069] 4. Bariatric surgery (C1456587): 0.4913
[0070] It can also calculate the similarity score of the candidate concept "prothrombin time" for each concept 501-504 in the user-specific concept metric 500A, as shown in Table 2:
[0071] Table 2: Similarity score (prothrombin time) for C0033707
[0072] 1. Cryotherapy (C0008138): 0.0517
[0073] 2. Metformin (C0025598): 0.0696
[0074] 3. ACL surgery (C0187769): 0.169
[0075] 4. Bariatric surgery (C1456587): -0.039
[0076] In some embodiments of the present invention, the similarity scores shown in Tables 1 and 2 can be based on explicit concepts and hierarchical ontology (such as...). Figure 4A The corresponding counts of the hierarchical ontology 400A are used to determine this. In the examples shown in Tables 1 and 2, the similarity score used for the comparison of box 304 is cosine similarity. Frequency-weighted cosine or the learned method can be used... Figure 3 This is implemented in some embodiments of block 304 of method 300. As shown by Tables 1 and 2, "physical therapy" has a higher similarity score than "prothrombin time" relative to frequently used concepts (particularly "cryotherapy" and "ACL surgery") included in the user-specific concept metric 500A. Therefore, it is determined in block 305 that "PT" in the message refers to "physical therapy", and the message is processed accordingly in block 306 of method 300.
[0077] Turn Figure 5B ,according to Figure 2 Method 200, for a user or user group associated with a user-specific concept metric 500B, has received and processed text including explicit references to concepts 505-507. This can be based on, for example... Figure 4B The concept grading 400B is a concept assignment identifier included in the user-specific concept metric 500B. For example... Figure 5BAs shown, concept 505 corresponds to “platelet activation” and has been referenced once; concept 506 corresponds to “radial fracture” and has been referenced three times; and concept 507 corresponds to “oxygen saturation” and has been referenced four times.
[0078] Based on the message received by the user in block 301 of method 300 from a user-specific concept metric 500B that includes the acronym “PT”, the acronym “PT” can be identified in block 302 and based on the user-specific concept metric 500B according to… Figure 3 Method 300 is treated as an ambiguous concept. In block 303 of method 300, candidate concepts corresponding to "PT" can be identified, including "physical therapy" and "prothrombin time". In some embodiments of the invention, it can be based on, for example... Figure 4B The concept grading 400B is used to identify candidate concepts. In box 304, each of the candidate concepts identified in box 303 is evaluated based on the user-specific concept metric 500B. For example, a similarity score can be calculated for the candidate concept "physical therapy" for each concept 505-507 in the user-specific concept metric 500B, as shown in Table 3:
[0079] Table 3: Similarity score of C0949766 (physical therapy)
[0080] 1. Platelet activation (C0032173): 0.056
[0081] 2. Radial fracture (C0034628): 0.1369
[0082] 3. Oxygen saturation (C0523807): 0.097
[0083] It can also calculate the similarity score of the candidate concept "prothrombin time" for each concept 505-507 in the user-specific concept metric 500B, as shown in Table 4:
[0084] Table 4: Similarity score (prothrombin time) for C0033707
[0085] 1. Platelet activation (C0032173): 0.639
[0086] 2. Radial fracture (C0034628): 0.136
[0087] 3. Oxygen saturation (C0523807): 0.097
[0088] In some embodiments of the present invention, it can be based on explicit concepts and hierarchical ontology (such as...) Figure 4AThe similarity score shown in Tables 3 and 4 is determined by the corresponding counts of the hierarchical ontology 400A. In the examples shown in Tables 3 and 4, the similarity score used for the comparison of box 304 is cosine similarity. Frequency-weighted cosine or the learned method can be used... Figure 3 In some embodiments of method 300, block 304 is implemented. As shown by Tables 3 and 4, "prothrombin time" has a higher similarity score than "physical therapy" relative to frequently used concepts (especially "platelet activation") included in the user-specific concept metric 500B. Therefore, in block 305, it is determined that "PT" in the message refers to "prothrombin time," and the message is processed accordingly in block 306.
[0089] Figure 5A -B is shown for illustrative purposes only. For example... Figures 5A to 5B The illustrated examples of user-specific concept metrics may include any suitable quantity and type of concepts and accompanying metrics, expressed in any suitable manner.
[0090] It should be understood that while this disclosure includes a detailed description of cloud computing, the implementation of the teachings cited herein is not limited to cloud computing environments. Rather, embodiments of the invention can be implemented in conjunction with any other type of computing environment now known or developed hereafter.
[0091] Cloud computing is a service delivery model that enables convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services), which can be rapidly provisioned and released with minimal management effort or interaction with the service provider. This cloud model may include at least five features, at least three service models, and at least four deployment models.
[0092] The features are as follows:
[0093] On-demand self-service: Cloud consumers can unilaterally and automatically provide computing power, such as server time and network storage, as needed, without requiring human interaction with the service provider.
[0094] Extensive network access: Capabilities are available through networks and accessed via standard mechanisms that facilitate the use of heterogeneous thin client or thick client platforms (e.g., mobile phones, laptops, and PDAs).
[0095] Resource pooling: A provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, where different physical and virtual resources are dynamically assigned and reassigned as needed. There is a sense of location independence because consumers typically do not have control or knowledge of the exact location of the resources provided, but may be able to specify the location at a higher level of abstraction (e.g., country, state, or data center).
[0096] Rapid flexibility: The ability to provide capacity quickly and flexibly, automatically scaling down and up rapidly in some situations to scale up rapidly. For consumers, the available supply capacity often appears unlimited and can be purchased in any quantity at any time.
[0097] Measuring services: Cloud systems automatically control and optimize resource usage by leveraging metering capabilities at a level of abstraction appropriate to the service type (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency to both service providers and consumers.
[0098] The service model is as follows:
[0099] Software as a Service (SaaS): This provides consumers with the ability to use the provider's applications running on cloud infrastructure. Applications can be accessed from different client devices via thin client interfaces such as web browsers (e.g., web-based email). Consumers do not manage or control the underlying cloud infrastructure, including the network, servers, operating system, storage, or even individual application capabilities, with possible exceptions such as limited user-specific application configuration settings.
[0100] Platform as a Service (PaaS): This provides consumers with the ability to deploy applications created or acquired by the consumer using programming languages and tools supported by the provider onto cloud infrastructure. Consumers do not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, but they have control over the deployed applications and the configuration of any application hosting environment.
[0101] Infrastructure as a Service (IaaS): The capabilities offered to consumers are processing, storage, networking, and other basic computing resources that enable consumers to deploy and run arbitrary software, which may include operating systems and applications. Consumers do not manage or control the underlying cloud infrastructure, but rather have control over the operating system, storage, deployed applications, and potentially limited control over selected networking components (e.g., host firewalls).
[0102] The deployment model is as follows:
[0103] Private cloud: A cloud infrastructure that operates solely for an organization. It can be managed by the organization or a third party and can exist on-site or off-site.
[0104] Community cloud: A cloud infrastructure shared by several organizations and supporting a specific community with shared concerns (e.g., tasks, security requirements, policies, and compliance considerations). It can be managed by an organization or a third party and can exist on-site or off-site.
[0105] Public cloud: Makes cloud infrastructure available to the public or large industry groups and is owned by an organization that sells cloud services.
[0106] Hybrid cloud: A cloud infrastructure is a combination of two or more clouds (private, community, or public) that remain a single entity but are bound together by standardized or proprietary technologies that enable data and applications to be ported (e.g., cloud bursting for load balancing between clouds).
[0107] Cloud computing environments are service-oriented, focusing on statelessness, loose coupling, modularity, and semantic interoperability. At the heart of cloud computing is the infrastructure comprising a network of interconnected nodes.
[0108] See now Figure 6 The diagram illustrates an illustrative cloud computing environment 50. As shown, the cloud computing environment 50 includes one or more cloud computing nodes 10 to which local computing devices used by cloud consumers can communicate. These local computing devices include, for example, personal digital assistants (PDAs) or cellular phones 54A, desktop computers 54B, laptop computers 54C, and / or automotive computer systems 54N. The nodes 10 can communicate with each other. They can be physically or virtually grouped (not shown) in one or more networks, such as private clouds, community clouds, public clouds, or hybrid clouds, or combinations thereof, as described above. This allows the cloud computing environment 50 to provide infrastructure, platforms, and / or software as services that cloud consumers do not need to maintain on their local computing devices. It should be understood that... Figure 6 The types of computing devices 54A-N shown are intended to be illustrative only, and computing node 10 and cloud computing environment 50 can communicate with any type of computerized device via any type of network and / or network-addressable connection (e.g., using a web browser).
[0109] See now Figure 7 This demonstrates a cloud computing environment of 50 ( Figure 6 This provides a set of functional abstractions. It should be understood beforehand. Figure 7 The components, layers, and functions shown are intended to be illustrative only, and embodiments of the invention are not limited thereto. As described, the following layers and corresponding functions are provided:
[0110] The hardware and software layer 60 includes hardware and software components. Examples of hardware components include: a mainframe 61; a RISC (Reduced Instruction Set Computer) based server 62; a server 63; a blade server 64; a storage device 65; and network and networking components 66. In some embodiments, software components include network application server software 67 and database software 68.
[0111] The virtualization layer 70 provides an abstraction layer from which the following examples of virtual entities can be provided: virtual server 71; virtual storage 72; virtual network 73, including virtual private network; virtual application and operating system 74; and virtual client 75.
[0112] In one example, management layer 80 can provide the functionality described herein. Resource provisioning 81 provides dynamic procurement of computing resources and other resources used to perform tasks within the cloud computing environment. Metering and pricing 82 provides cost tracking as resources are utilized within the cloud computing environment and bills or invoices for the consumption of these resources. In one example, these resources may include application software licenses. Security provides authentication for cloud consumers and tasks, as well as protection for data and other resources. User portal 83 provides access to the cloud computing environment for consumers and system administrators. Service level management 84 provides cloud resource allocation and management to ensure that required service levels are met. Service level agreement (SLA) planning and fulfillment 85 provides pre-scheduling and procurement of cloud resources based on anticipated future needs according to the SLA.
[0113] Workload layer 90 provides examples of functionalities that can leverage a cloud computing environment. Examples of workloads and functionalities that can be provided from this layer include: mapping and navigation 91; software development and lifecycle management 92; virtual classroom education delivery 93; data analytics and processing 94; transaction processing 95; and NLP services 96. NLP services 96 can implement... Figure 1 Any suitable aspect of the embodiment of the NLP server 135, and may be implemented Figure 2 Method 200 and Figure 3 An embodiment of method 300.
[0114] Turn now Figure 8A computer system 800 is generally illustrated according to embodiments. The computer system 800 may be an electronic computer framework that includes and / or employs any number and combination of computing devices and networks utilizing different communication technologies, as described herein. The computer system 800 can be easily extended, scalable, and modularized, with the ability to be changed to different services or to reconfigure certain features independently of other features. The computer system 800 may be, for example, a server, desktop computer, laptop computer, tablet computer, or smartphone. In some examples, the computer system 800 may be a cloud computing node. The computer system 800 can be described in the general context of computer system executable instructions (such as program modules) executed by the computer system. Generally, program modules may include routines, programs, objects, components, logic, data structures, etc., that perform specific tasks or implement specific abstract data types. The computer system 800 can be practiced in a distributed cloud computing environment, where tasks are performed by remote processing devices linked via a communication network. In a distributed cloud computing environment, program modules may reside in local and remote computer system storage media, including memory storage devices.
[0115] like Figure 8 As shown, the computer system 800 has one or more central processing units (CPUs) 801a, 801b, 801c, etc. (collectively or commonly referred to as processor 801). Processor 801 can be a single-core processor, a multi-core processor, a computing cluster, or any number of other configurations. Processor 801 (also referred to as processing circuitry) is coupled to system memory 803 and various other components via system bus 802. System memory 803 may include read-only memory (ROM) 804 and random access memory (RAM) 805. ROM 804 is coupled to system bus 802 and may include a basic input / output system (BIOS) that controls certain basic functions of computer system 800. RAM is a read-write memory coupled to system bus 802 for use by processor 801. System memory 803 provides temporary memory space for the operation of instructions during operation. System memory 803 may include random access memory (RAM), read-only memory, flash memory, or any other suitable memory system.
[0116] Computer system 800 includes an input / output (I / O) adapter 806 and a communication adapter 807 coupled to a system bus 802. I / O adapter 806 may be a Small Computer System Interface (SCSI) adapter that communicates with a hard disk 808 and / or any other similar component. I / O adapter 806 and hard disk 808 are collectively referred to herein as mass storage 810.
[0117] Software 811 executing on computer system 800 may be stored in mass storage 810. Mass storage 810 is an example of a tangible storage medium readable by processor 801, wherein software 811 is stored as instructions for execution by processor 801 to operate computer system 800, such as those described herein with respect to the various figures. Examples of computer program products and the execution of such instructions are discussed in more detail herein. Communication adapter 807 interconnects system bus 802 with network 812, which may be an external network enabling computer system 800 to communicate with other such systems. In one embodiment, system memory 803 and a portion of mass storage device 810 jointly store an operating system, which can be any suitable operating system, such as z / OS or AIX from IBM, for coordination. Figure 8 The functions of the different components shown.
[0118] Additional input / output devices are shown connected to system bus 802 via display adapter 815 and interface adapter 816. In one embodiment, adapters 806, 807, 815, and 816 may be connected to one or more I / O buses connected to system bus 802 via an intermediate bus bridge (not shown). Display 819 (e.g., screen or display monitor) is connected to system bus 802 via display adapter 815, which may include a graphics controller and a video controller for improving the performance of graphics-intensive applications. Keyboard 821, mouse 822, speaker 823, etc., may be interconnected to system bus 802 via interface adapter 816, which may include, for example, a super I / O chip integrating multiple device adapters into a single integrated circuit. Suitable I / O buses for connecting peripheral devices such as hard disk controllers, network adapters, and graphics adapters typically include common protocols such as Peripheral Component Interconnect (PCI). Therefore, as Figure 8 The computer system 800 configured includes processing capabilities in the form of a processor 801, storage capabilities including system memory 803 and mass storage 810, input devices such as a keyboard 821 and a mouse 822, and output capabilities including a speaker 823 and a display 819.
[0119] In some embodiments, the communication adapter 807 may use any suitable interface or protocol (such as an Internet Small Computer System Interface) to transmit data. The network 812 may be a cellular network, radio network, wide area network (WAN), local area network (LAN), or the Internet. External computing devices may be connected to the computer system 800 via the network 812. In some examples, the external computing device may be an external web server or a cloud computing node.
[0120] It should be understood that Figure 8 The block diagram is not intended to indicate that the computer system 800 will include Figure 8 All components shown. Conversely, computer system 800 may include... Figure 8 Any suitable fewer or additional components not shown herein (e.g., additional memory components, embedded controllers, modules, additional network interfaces, etc.). Furthermore, the embodiments described herein with respect to computer system 800 may be implemented with any suitable logic, wherein the logic as mentioned herein may include any suitable hardware (e.g., processor, embedded controller, or application-specific integrated circuit, etc.), software (e.g., applications, etc.), firmware, or any suitable combination of hardware, software, and firmware.
[0121] Various embodiments of the invention are described herein with reference to the accompanying drawings. Alternative embodiments of the invention may be devised without departing from its scope. In the following description and drawings, various connections and positional relationships (e.g., above, below, adjacent, etc.) are illustrated between elements. Unless otherwise specified, these connections and / or positional relationships may be direct or indirect, and the invention is limited in this respect by not illustrating the figures. Therefore, the connection of entities may refer to direct or indirect connections, and the positional relationship between entities may be direct or indirect positional relationships. Furthermore, the various tasks and process steps described herein may be incorporated into a more comprehensive procedure or process with additional steps or functions not described in detail herein.
[0122] One or more methods described herein can be implemented using any of the following techniques or combinations thereof, each of which is well known in the art: discrete logic circuits having logic gates for implementing logical functions on data signals, application-specific integrated circuits (ASICs) having appropriately combined logic gates, programmable gate arrays (PGAs), field-programmable gate arrays (FPGAs), etc.
[0123] For the sake of brevity, conventional techniques relating to the manufacture and use of the present invention may or may not be described in detail herein. Specifically, various aspects of the computing systems and specific computer programs used to implement the different technical features described herein are well known. Consequently, for the sake of brevity, many conventional implementation details are only briefly mentioned or omitted entirely herein, without providing well-known system and / or process details.
[0124] In some embodiments, various functions or actions may occur at a given location and / or in conjunction with the operation of one or more devices or systems. In some embodiments, a portion of a given function or action may be performed at a first device or location, and the remainder of the function or action may be performed at one or more additional devices or locations.
[0125] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting. As used herein, unless the context clearly indicates otherwise, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well. It should also be understood that when the terms “comprises” and / or “comprising” are used in this specification, they specify the presence of the stated features, integrals, steps, operations, elements, and / or components, but do not exclude the presence or addition of one or more other features, integrals, steps, operations, elements, components, and / or combinations thereof.
[0126] All means or steps in the following claims, plus corresponding structures, materials, actions, and equivalents of the functional elements, are intended to include any structure, material, or action for performing the function in conjunction with other claimed elements as specifically claimed. This disclosure has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the forms disclosed. Many modifications and variations will be apparent to those skilled in the art without departing from the scope of this disclosure. These embodiments were chosen and described in order to best explain the principles and practical application of this disclosure, and to enable others skilled in the art to understand this disclosure with respect to different embodiments having different modifications suitable for the particular intended use.
[0127] The diagrams depicted herein are illustrative. Many variations may be made to the diagrams or steps (or operations) described herein without departing from the scope of this disclosure. For example, actions may be performed in a different order, or actions may be added, deleted, or modified. Furthermore, the term "coupled" describes a signal path between two elements and does not imply a direct connection between elements without intermediate elements / connections. All such variations are considered part of this disclosure.
[0128] The following definitions and abbreviations are used to interpret the claims and description. As used herein, the terms “comprises,” “comprising,” “includes,” “including,” “has,” “having,” “contains,” or “containing,” or any other variations thereof, are intended to cover non-exclusive inclusion. For example, a composition, mixture, process, method, article, or apparatus that comprises a list of elements is not necessarily limited to those elements, but may include other elements not expressly listed or inherent to such composition, mixture, process, method, article, or apparatus.
[0129] Furthermore, the term "exemplary" is used herein to mean "used as an example, illustration, or illustration." Any implementation or design described herein as "exemplary" is not necessarily to be construed as superior to or better than other implementations or designs. The terms "at least one" and "one or more" should be understood to include any integer greater than or equal to one, i.e., one, two, three, four, etc. The term "multiple" should be understood to include any integer greater than or equal to two, i.e., two, three, four, five, etc. The term "connection" can include both indirect "connection" and direct "connection."
[0130] The terms “about,” “substantially,” “roughly,” and their variations are intended to include the degree of error associated with a measurement based on a specific quantity of equipment available at the time of application submission. For example, “about” could include a range of ±8%, 5%, or 2% of a given value.
[0131] This invention can be a system, method, and / or computer program product with any possible level of technical detail integration. The computer program product may include a computer-readable storage medium (or media) having computer-readable program instructions thereon for causing a processor to execute aspects of the invention.
[0132] Computer-readable storage media can be tangible means for retaining and storing instructions for use by an instruction execution device. Computer-readable storage media can be, for example, but not limited to, electronic storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer-readable storage media includes: portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital universal disk (DVD), memory sticks, floppy disks, mechanical encoding devices such as punch cards or protrusions in slots having instructions recorded thereon, and any suitable combination of the foregoing. As used herein, computer-readable storage media should not be construed as transient signals themselves, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., light pulses passing through fiber optic cables), or electrical signals transmitted through wires.
[0133] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to a suitable computing / processing device via a network (e.g., the Internet, a local area network, a wide area network, and / or a wireless network), or to an external computer or external storage device. The network may include copper cables, optical fibers, wireless transmissions, 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 them to a computer-readable storage medium within the suitable computing / processing device.
[0134] Computer-readable program instructions used to perform the operations of this invention may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, integrated circuit configuration data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages (such as Smalltalk, C++, etc.) and procedural programming languages (such as the "C" programming language or similar programming languages). The computer-readable program instructions may be executed entirely on a user's computer, partially on a user's computer, as a standalone software package, partially on a 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 via any type of network (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, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLAs) may execute computer-readable program instructions by utilizing state information from the computer-readable program instructions to personalize the electronic circuitry in order to perform aspects of this invention.
[0135] The present invention will now be described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It should 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.
[0136] 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, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions / actions specified in one or more blocks of a flowchart and / or block diagram. These computer-readable program instructions may also be stored in a computer-readable storage medium that causes a computer, programmable data processing apparatus, and / or other device to operate in a particular manner, such that the computer-readable storage medium storing the instructions includes an article of manufacture containing instructions that implement aspects of the functions / actions specified in one or more blocks of a flowchart and / or block diagram.
[0137] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus, or other device to produce computer-implemented processing, such that the instructions executed on the computer, other programmable apparatus, or other device perform the functions / actions specified in one or more boxes of a flowchart and / or block diagram.
[0138] 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. Each block in a flowchart or block diagram may represent a module, segment, or portion of instructions, including one or more executable instructions for implementing a specified logical function. In some alternative implementations, the functions marked in the blocks may occur in a different order than indicated in the figures. For example, depending on the functions involved, two consecutively shown blocks may actually be executed substantially simultaneously, or these blocks may sometimes be executed in reverse order. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can be implemented using a dedicated hardware-based system that performs the specified function or action or executes a combination of dedicated hardware and computer instructions.
[0139] Various embodiments of the invention have been described for illustrative purposes, but are not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope of the described embodiments. The terminology used herein has been chosen to best explain the principles of the embodiments, their practical application, or technical improvements over those found in the market, or to enable those skilled in the art to understand the embodiments described herein.
Claims
1. A computer-implemented method, comprising: The processor receives messages from the user via the application; Identify ambiguous concepts in the message; Identify multiple candidate concepts corresponding to the ambiguous concept; For each of the plurality of candidate concepts, a corresponding similarity score is determined based on a user-specific concept metric, which corresponds to a user group including the user and the application used by the user to send the message; Multiple candidate concepts are ranked based on a determined similarity score; as well as The ambiguous concept is determined to correspond to the highest-ranked candidate concept among the plurality of candidate concepts in the ranking.
2. The method according to claim 1, wherein, The user-specific concept metric includes a plurality of explicit concepts already identified in the text corresponding to the user, and for each of the plurality of explicit concepts, a count thereof.
3. The method according to claim 2, wherein, Each similarity score is determined based on the concept embedding corresponding to the natural language processing service and the respective count of each of the plurality of explicit concepts.
4. The method according to claim 1, wherein, Identifying the ambiguous concept in the message includes determining that the message is shorter than a threshold message length.
5. The method according to any of the preceding claims, further comprising processing the message by a natural language processing service based on the highest-ranked candidate concept.
6. A computer system, comprising: Memory, containing computer-readable instructions; as well as One or more processors for executing the computer-readable instructions, the computer-readable instructions controlling the one or more processors to perform operations, the operations including: Receive messages from users via the application; Identify ambiguous concepts in the message; Identify multiple candidate concepts corresponding to the ambiguous concept; For each of the plurality of candidate concepts, a corresponding similarity score is determined based on a user-specific concept metric, which corresponds to a user group including the user and the application used by the user to send the message; The candidate concepts are ranked based on their corresponding similarity scores; and The ambiguous concept is determined to correspond to the highest-ranked candidate concept among the plurality of candidate concepts in the ranking.
7. The computer system according to claim 6, wherein, The user-specific concept metric includes multiple explicit concepts that have been identified in the text corresponding to the user, and for each of the multiple explicit concepts, a respective count.
8. The computer system according to claim 7, wherein, Each similarity score is determined based on the concept embedding corresponding to the natural language processing service and the corresponding count of each of the plurality of explicit concepts.
9. The computer system according to claim 6, wherein, Identifying the ambiguous concept in the message includes determining that the message is shorter than a threshold message length.
10. The computer system according to any one of claims 6 to 9, the operation further comprising processing the message via a natural language processing service based on the highest-ranked candidate concept.
11. A computer program product comprising program instructions executable by one or more processors to cause the one or more processors to perform the following operations: Receive messages from users via the application; Identify ambiguous concepts in the message; Identify multiple candidate concepts corresponding to the ambiguous concept; For each of the plurality of candidate concepts, a corresponding similarity score is determined based on a user-specific concept metric, which corresponds to a user group including the user and the application used by the user to send the message; The candidate concepts are ranked based on the corresponding similarity scores. as well as The ambiguous concept is determined to correspond to the highest-ranked candidate concept among the plurality of candidate concepts in the ranking.
12. The computer program product according to claim 11, wherein, The user-specific concept metric includes multiple explicit concepts that have been identified in the text corresponding to the user, and for each of the multiple explicit concepts, a respective count.
13. The computer program product according to claim 12, wherein, Each similarity score is determined based on the concept embedding corresponding to the natural language processing service and the respective count of each of the plurality of explicit concepts.
14. A computer-implemented method, comprising: The processor receives the text corresponding to the first user via the application. Identify specific concepts in the text that correspond to the first user; as well as The increment corresponds to the count of explicit concepts in the user-specific concept metric of the first user. The user-specific concept metric corresponds to one of the application used by the first user to generate the text and one of the user groups that include the first user.
15. The method of claim 14, further comprising: Receive a message, wherein the message is received from a second user in the user group and an instance of the application; Identify ambiguous concepts in the message; Identify multiple candidate concepts corresponding to the ambiguous concept; A similarity score is determined for each of the plurality of candidate concepts based on the user-specific concept metric. The candidate concepts are ranked based on their corresponding similarity scores. as well as The ambiguous concept is determined to correspond to the highest-ranked candidate concept among the plurality of candidate concepts in the ranking.
16. A computer system, comprising: Memory, containing computer-readable instructions; as well as One or more processors for executing the computer-readable instructions, the computer-readable instructions controlling the one or more processors to perform operations, the operations including: By receiving text corresponding to the first user; Identify explicit concepts corresponding to the first user in the text; and The increment corresponds to the count of the explicit concepts in the user-specific concept metric of the first user. Wherein, the user-specific concept metric corresponds to the application used by the first user to generate the text and one of the user groups that include the first user.
17. The computer system of claim 16, further comprising: Receive a message, wherein the message is received from a second user of the user group and an instance of the application; Identify ambiguous concepts in the message; Identify multiple candidate concepts corresponding to the ambiguous concept; A similarity score is determined for each of the plurality of candidate concepts based on the user-specific concept metric. The candidate concepts are ranked based on their corresponding similarity scores. as well as The ambiguous concept is determined to correspond to the highest-ranked candidate concept among the plurality of candidate concepts in the ranking.