Natural language processing social-based matrix refactorization

A method includes: receiving, by a computing device, an initial question from a first user device; receiving, by the computing device, a plurality of additional questions from a plurality of additional user devices; decomposing, by the computing device, the initial question and each of the plurality of additional questions using natural language processing; determining, by the computing device, an overall ranking for each of a plurality of words in the plurality of decomposed questions; and generating, by the computing device, a new question by combining words based on the overall ranking.

BACKGROUND

The present invention generally relates to computing devices and, more particularly, to methods and systems for natural language processing.

Natural language processing (NLP) systems are used to process natural language data. NLP processing is used for many purposes, including speech recognition, text-to-speech, natural language understanding, and question answering, among others. NLP systems are being deployed and used at scale with hundreds of simultaneous users. An NLP system that performs question answering may use iterative deepening to reformulate questions based on knowledge returned from a NLP system.

SUMMARY

In a first aspect of the invention, there is a method that includes: receiving, by a computing device, an initial question from a first user device; receiving, by the computing device, a plurality of additional questions from a plurality of additional user devices; decomposing, by the computing device, the initial question and each of the plurality of additional questions using natural language processing; determining, by the computing device, an overall ranking for each of a plurality of words in the plurality of decomposed questions; and generating, by the computing device, a new question by combining words based on the overall ranking.

In another aspect of the invention, there is a computer program product that includes a computer readable storage medium having program instructions embodied therewith. The program instructions are executable by a computing device to cause the computing device to: receive an initial question from a first user device; receive a plurality of additional questions from a plurality of additional user devices; decompose the initial question and each of the plurality of additional questions using natural language processing; determine an overall ranking for each of a plurality of words in the plurality of decomposed questions; and generate a new question by combining words based on the overall ranking.

In another aspect of the invention, there is a system that includes: a hardware processor, a computer readable memory, and a computer readable storage medium associated with a computing device; program instructions of a question receiver configured to receive an initial question from a first user device and a plurality of additional questions from a plurality of additional user devices; program instructions of a question decomposer configured to decompose the initial question and each of the plurality of additional questions received by the question receiver using natural language processing; and program instructions of a social refactorer configured to determine an overall ranking for each of a plurality of words in the plurality of questions decomposed by the question decomposer and generate a new question by combining words based on the overall ranking, wherein the program instructions are stored on the computer readable storage medium for execution by the hardware processor via the computer readable memory.

DETAILED DESCRIPTION

The present invention generally relates to computing devices and, more particularly, to methods and systems for natural language processing. Aspects of the invention decompose keyword searches between users using natural language processing into additional matrices to find hidden relationships and the highest-ranking words/content, unlocking key hidden patterns among users. High-ranking words or content are then used to feed back into the system to create additional queries and input to the system (e.g., using an iterative deepening technique).

An additional facet to augment the hidden relationships of meaning is introduced by the concept of “slang” and cultural-specific semantics. These semantic attributes can provide significant insight to unlock the real meaning of a question being posed. With more and more slang words and phrases being created and used every day, understanding how to interpret this in natural language processing systems is important. Aspects of the invention use contextual differences to perform parallel searches, unlocking and exposing hidden meanings and relationships that may be used to train the system in a way that increases both the scope and accuracy of its results. In addition, relationships may be further refined by introducing a time-weighted slang index as an additional dimension to the matrices to unlock additional relevance for improving the quality and accuracy of the returned answers. By using additional matrices, the system enables faster learning, exploiting trends.

As described herein, aspects of the invention include a method and system for improving question answering in a natural language processing system using matrix refactorization and accounting for slang/cultural specific semantics by collecting questions provided to the natural language processing system from a plurality of unique users with ranking of words/content from each user, creating overall rankings for words in the questions based on matrix refactorization of the questions and the user rankings of words/content and further based on slang/cultural specific semantics, creating new queries by combining the highest ranking parts of user questions, and processing the new queries by the natural language processing system. Additionally, aspects of the invention determine how likely a user is to search with a particular natural language question given the user's historical searches and other users' searches. Aspects of the invention also include an evidence-based system that finds related searches, generates a candidate hypothesis based on the related searches, and presents additional information determined to be relevant to the user's questions based upon the candidate hypothesis.

Referring now toFIG. 1, a schematic of an example of a computing infrastructure is shown. Computing infrastructure10is only one example of a suitable computing infrastructure and is not intended to suggest any limitation as to the scope of use or functionality of embodiments of the invention described herein. Regardless, computing infrastructure10is capable of being implemented and/or performing any of the functionality set forth hereinabove.

FIG. 2depicts an illustrative environment200in accordance with aspects of the invention. As shown, the environment200comprises a computer server210which is in communication with a search server230via a computer network240. The environment200may also comprise a plurality of user devices, including user device1250-1, user device2250-2, and user device n250-n, each of which is in communication with the computer server210and/or the search server230via the computer network240. The computer network240may be any suitable network such as a LAN, WAN, or the Internet. The computer server210, the search server230, the user device1250-1, the user device250-2, and the user device n250-nmay be physically collocated, or may be situated in separate physical locations.

The quantity of devices and/or networks in the environment200is not limited to what is shown inFIG. 2. In practice, the environment200may include additional devices and/or networks; fewer devices and/or networks; different devices and/or networks; or differently arranged devices and/or networks than illustrated inFIG. 2. Also, in some implementations, one or more of the devices of the environment200may perform one or more functions described as being performed by another one or more of the devices of the environment200.

In embodiments, the computer server210may be a computer server12as shown inFIG. 1. The computer server210may be implemented as hardware and/or software using components such as mainframes; RISC (Reduced Instruction Set Computer) architecture based servers; servers; blade servers; storage devices; networks and networking components; virtual servers; virtual storage; virtual networks, including virtual private networks; virtual applications and operating systems; and virtual clients.

In embodiments, the computer server210may include a natural language processing program module220, which may include hardware and/or software and may be one or more of the program modules42shown inFIG. 1. According to an embodiment, the natural language processing program module220includes program instructions for performing natural language processing, including social-based matrix refactorization. The program instructions included in the natural language processing program module220of the computer server210may be executed by one or more hardware processors. According to an embodiment, the natural language processing program module220performs functions related to improving question answering in a natural language processing system using matrix refactorization and accounting for slang/cultural specific semantics.

Still referring toFIG. 2, in embodiments, the search server230may be a computer server12as shown inFIG. 1. The search server230may be implemented as hardware and/or software using components such as mainframes; RISC (Reduced Instruction Set Computer) architecture based servers; servers; blade servers; storage devices; networks and networking components; virtual servers; virtual storage; virtual networks, including virtual private networks; virtual applications and operating systems; and virtual clients.

In embodiments, the search server230may receive search requests from one or more of the user device1250-1, the user device250-2, and the user device n250-n, either directly or via the computer server210. The search server230may process the received search requests and return search results responsive to the search requests to the requesting user devices (e.g., one or more of the user device1250-1, the user device250-2, and the user device n250-n), either directly or via the computer server210.

The search server230may receive search requests in any format and may provide the search results in any format. For example, the search request may be a question in a text format. Additionally, the search server230may provide hyperlinks, full documents or other media files, or excerpts from documents or media files as the search results (e.g., answers to the question). The search server230may be hosted by or provided by a third party. For example, the search server230may be provided as a web service.

Still referring toFIG. 2, in embodiments, each of the user device1250-1, the user device2250-2, and the user device n250-nmay be a computer system12as shown inFIG. 1. The user device1250-1, the user device2250-2, and the user device n250-nmay be desktop computers, laptop computers, tablets, smartphones, wearable devices, or any other type of computing device.

FIG. 3depicts a block diagram of an exemplary natural language processing program module220in the server210(ofFIG. 2) in accordance with aspects of the invention. In embodiments, the natural language processing program module220includes a question receiver300, a question decomposer310, and a social refactorer320, each of which may comprise one or more program modules42as described with respect toFIG. 1. In embodiments, the natural language processing program module220may include additional or fewer components than those shown inFIG. 3. In embodiments, separate components may be integrated into a single computing component or module. Additionally, or alternatively, a single component may be implemented as multiple computing components or modules.

In embodiments, the question receiver300receives a current question from the search server230or another device connected to or accessible through the computer network240, such as the user device1250-1, the user device2250-2, or the user device n250-n. The current question may be a question provided by a user via the user device1250-1, the user device2250-2, or the user device n250-nas a search request. The current question may be a string of text or may be audio (e.g., speech) that is converted to text by the computer server210or the search server230.

Still referring toFIG. 3, in embodiments, the question decomposer310decomposes the current question received by the question receiver300by performing tokenization and vectorization (i.e., feature extraction). In particular, natural language processing techniques are used to generate a vector representation of the current question received by the question receiver300, such as a document-term matrix or any other vector representation. The document-term matrix may include a ranking of each of the words in the current question.

The question decomposer310may use a bag-of-words model or any other model or natural language processing technique to perform the tokenization and vectorization of the current question received by the question receiver300. The question decomposer310may store the vector representation of the current question (e.g., the document-term matrix) in a storage device associated with or accessible by the computer server210, such as the storage system34ofFIG. 1.

In embodiments, the question receiver300may receive additional questions provided by other users as search requests, for example, via the user device1250-1, the user device2250-2, or the user device n250-n, and the question decomposer310may decompose these additional questions by performing tokenization and vectorization, generating vector representations of the additional questions (e.g., document-term matrices). The question receiver300may be configured to receive a predetermined number of additional questions (e.g., a predetermined number of questions previously submitted to the search server230) or may be configured to receive all questions from a predetermined time window adjacent to the time of the current question. The question decomposer310may store these additional vector representations (e.g., additional document-term matrices) generated from the additional questions in the storage device associated with or accessible by the computer server210, such as the storage system34ofFIG. 1.

Still referring toFIG. 3, in embodiments, the social refactorer320uses the stored additional vector representations (e.g., additional document-term matrices) to refactor the vector representation (e.g., document-term matrix) generated by the question decomposer310for the current question received by the question receiver300. In particular, the social refactorer320refactors questions from n number of unique users, capturing the highest-ranking words/content from each user.

The social refactorer320uses the matrix refactorization formula of V=W*H, where V is the document-term matrix (e.g., a document-term matrix generated by the question decomposer310for the current question received by the question receiver310), W is the feature matrix (e.g., word ranking of the features by one or more ranking techniques including Google Rank, Lucene Rank, Twitter Rank, Facebook Rank, or any other ranking technique), and H is the question/priority weighting. In embodiments, the social refactorer320determines the feature of a word by its rank in the matrix W (e.g., a 10×1 matrix) and determines the rank of a word from the matrix H (e.g., a 1×10 matrix). The social refactorer320uses machine learning techniques to find the best weights H, and calculates V based on the weighting. Accordingly, the social refactorer320determines the overall ranking of nouns, verbs, and adverbs in the current question received by the question receiver310.

In embodiments, the social refactorer320adds slang rankings as an additional dimension to the matrix W to determine additional relationships and unlock hidden meanings. The social refactorer320may also add the element of time to the ranking weight to optimize the time period in which the slang was most relevant or prolific. In other embodiments, a pre-processing step may be performed. In this case, the system may use the matrix refactorization formula of V=W*H*S(time). In embodiments, the social refactorer320may use a slang dictionary with a word embedding technique.

In embodiments, the social refactorer320correlates any n number of user questions, weighting and ranking the components of each question as discussed above. The social refactorer320then correlates the highest-ranking nouns, verbs, and adverbs of multiple related questions, combining them together to form a new question. For example, the social refactorer320may correlate the highest-ranking words from related questions associated with two or three users to form the new question. The social refactorer320thereby generates a new question that may be provided to the search server230to obtain search results and additional information that may be relevant to the current question. The new question is then transmitted to the search server230, which provides search results for the new question.

In embodiments, the social refactorer320may use machine learning techniques to compare the search results returned by the search server230for the new question to search results returned by the search server230for the original question to optimize the refactorization and tune the system.

FIG. 4depicts a flowchart of an exemplary method in accordance with aspects of the invention. The steps of the method may be performed in the environment ofFIG. 2and are described with reference to the elements and steps described with respect toFIGS. 1, 2, and 3.

At step400, the system receives a question from a user. In embodiments, as described with respect toFIG. 3, step400comprises the question receiver300receiving a question from the search server230or another device connected to or accessible through the computer network240, such as the user device1250-1, the user device2250-2, or the user device n250-n.

At step410, the system decomposes the question received at step400. In embodiments, as described with respect toFIG. 3, step410comprises the question decomposer310performing tokenization and vectorization (i.e., feature extraction) on the question received by the question receiver300.

At step420, the system determines a number of users' questions to use in the refactoring. In embodiments, as described with respect toFIG. 3, step420comprises the question receiver300being configured to receive a predetermined number of additional questions (e.g., a predetermined number of questions previously submitted to the search server230) or being configured to receive all questions from a predetermined time window adjacent to the time of the current question.

At step430, the system determines whether or not to use another question. In embodiments, as described with respect toFIG. 3, step430comprises the question receiver300determining whether or not the predetermined number of additional questions has been received (or whether or not all questions from the predetermined time window have been received). If the system determines at step430that another question should be used, then the flow returns to step400. On the other hand, if the system determines at step430that another question should not be used, then the flow proceeds to step440.

At step440, the system stores the question data, for example, the document term matrix generated at step410for each question. In embodiments, as described with respect toFIG. 3, step440comprises the question decomposer310storing the document-term matrices in the storage device associated with or accessible by the computer server210, such as the storage system34ofFIG. 1.

At step450, the system populates/ranks the feature matrix, using the document-term matrices stored at step440. In embodiments, as described with respect toFIG. 3, step450comprises the social refactorer320populating the feature matrix W by using a word ranking of the features from the document-term matrices stored at step440.

At step460, the system populates/ranks the priority matrix, using the document-term matrices stored at step440. In embodiments, as described with respect toFIG. 3, step460comprises the social refactorer320populating the priority matrix H by using the document-term matrices stored at step440.

At step470, the system forms a new question, using the feature matrix populated at step450and the priority matrix populated at step460. In embodiments, as described with respect toFIG. 3, step470comprises the social refactorer320correlating the highest-ranking nouns, verbs, and adverbs of multiple questions, combining them together to form a new question, using the matrix refactorization formula of V=W*H.

At step480, the system performs a search using the new question formed at step470. In embodiments, step480comprises the computer server210sending the new question formed by the social refactorer320to the search server230as a search request.

At step490, the system provides a result to the user for the search performed at step480. In embodiments, step490comprises the search server230providing a search result to the user device1250-1, the user device2250-2, or the user device n250-n, either directly or via the computer server210.

Accordingly, the system improves the functioning of a computer by providing for improved natural language processing. Additionally, the system improves the functioning of a computer by providing the functionality of decomposing keyword searches between users into additional matrices to find hidden relationships. This improved functionality allows the computer to present additional information that may be relevant to the user's question. In particular, the system may receive a question from a user, perform automated (computer-based) question answering using these improved methods for natural language processing, and provide a result to the user. Additionally, the system uses techniques that are, by definition, rooted in computer technology (e.g., natural language processing and machine learning) that cannot be performed manually by a person.