Contextual updating of existing documents using natural language processing

A method, system, and computer program product for contextual updating of existing documents using natural language processing (NLP) are provided in the illustrative embodiments. Information is received about a subject-matter domain. A portion of the existing document is identified, where the portion corresponds to the subject-matter domain. A search query is formed based on the portion, wherein the search query returns a result set, the result set including current information corresponding to the subject-matter domain, the current information being recent as compared to an age of the portion. A natural language (NL) update content is formed by processing the current information through an NLP application. The existing document is updated using the NL update content.

TECHNICAL FIELD

The present invention relates generally to a method, system, and computer program product for updating existing documents. More particularly, the present invention relates to a method, system, and computer program product for contextual updating of existing documents using natural language processing.

BACKGROUND

Document repositories include documents that are created for a variety of purposes over time and that include a variety of content. With the passage of time, availability of new information, changes in business environment, marketplace dynamics, changed needs, or due to a combination of these and other factors, the contents of an existing document, an old document, have to be updated.

Natural language processing (NLP) is a technique that facilitates exchange of information between humans and data processing systems. For example, one branch of NLP pertains to answering questions about a subject matter based on information available about the subject matter domain.

Information about a domain can take many forms and can be sourced from any number of data sources. The presenter of the information generally selects the form and content of the information. Before information can be used for NLP, generally, the information has to be transformed into a form that is usable by an NLP engine.

SUMMARY

The illustrative embodiments provide a method, system, and computer program product for contextual updating of existing documents using natural language processing. An embodiment includes a method for updating an existing document using natural language processing (NLP). The embodiment receives information about a subject-matter domain. The embodiment identifies a portion of the existing document, wherein the portion corresponds to the subject-matter domain. The embodiment forms a search query based on the portion, wherein the search query returns a result set, the result set including current information corresponding to the subject-matter domain, the current information being recent as compared to an age of the portion. The embodiment forms natural language (NL) update content by processing the current information through an NLP application. The embodiment updates the existing document using the NL update content.

Another embodiment includes a computer program product for updating an existing document using natural language processing (NLP). The embodiment further includes one or more computer-readable tangible storage devices. The embodiment further includes program instructions, stored on at least one of the one or more storage devices, to receive information about a subject-matter domain. The embodiment further includes program instructions, stored on at least one of the one or more storage devices, to identify a portion of the existing document, wherein the portion corresponds to the subject-matter domain. The embodiment further includes program instructions, stored on at least one of the one or more storage devices, to form a search query based on the portion, wherein the search query returns a result set, the result set including current information corresponding to the subject-matter domain, the current information being recent as compared to an age of the portion. The embodiment further includes program instructions, stored on at least one of the one or more storage devices, to form natural language (NL) update content by processing the current information through an NLP application. The embodiment further includes program instructions, stored on at least one of the one or more storage devices, to update the existing document using the NL update content.

Another embodiment includes a computer system for updating an existing document using natural language processing (NLP. The embodiment further includes one or more processors, one or more computer-readable memories and one or more computer-readable tangible storage devices. The embodiment further includes program instructions, stored on at least one of the one or more storage devices for execution by at least one of the one or more processors via at least one of the one or more memories, to receive information about a subject-matter domain. The embodiment further includes program instructions, stored on at least one of the one or more storage devices for execution by at least one of the one or more processors via at least one of the one or more memories, to identify a portion of the existing document, wherein the portion corresponds to the subject-matter domain. The embodiment further includes program instructions, stored on at least one of the one or more storage devices for execution by at least one of the one or more processors via at least one of the one or more memories, to form a search query based on the portion, wherein the search query returns a result set, the result set including current information corresponding to the subject-matter domain, the current information being recent as compared to an age of the portion. The embodiment further includes program instructions, stored on at least one of the one or more storage devices for execution by at least one of the one or more processors via at least one of the one or more memories, to form natural language (NL) update content by processing the current information through an NLP application. The embodiment further includes program instructions, stored on at least one of the one or more storage devices for execution by at least one of the one or more processors via at least one of the one or more memories, to update the existing document using the NL update content.

DETAILED DESCRIPTION

A salesperson makes notes during a sales call with a customer. The notes include unorganized or unstructured information about one or more conversations pertaining to one or more topics. For example, a part of the meeting during which the salesperson takes notes may concern the customer's industry generally. Another part of the meeting may concern a need or limitation experienced by the customer during a given period. Another part of the meeting may concern a product or products the salesperson is offering, a product or products a competitor is offering, or a product or features the customer desires. Another part of the meeting may concern topics for a follow-up discussion.

A context is a subject-matter area to which a portion of a document pertains. For example, each example concern described above is a context. The salesperson's notes include portions pertaining to these example concerns and other similar concerns. Those portions in the salesperson's notes are therefore related to those respective contexts. For example, one portion of the notes relates or corresponds to the industry context, another portion of the notes corresponds to product features context, and yet another portion of the notes corresponds to the context of a follow-up topic.

The illustrative embodiments recognize, as in the above example, that a document created at a certain point in time and under certain circumstances can include one or more portions directed to one or more contexts. Furthermore, such contextual portions may have to be updated differently, at different intervals, for different purposes, using different data sources, or a combination thereof.

For example, the salesperson's notes may include a portion that pertains to an undesirable product feature context, to wit, a product feature that the customer finds undesirable at the time of the meeting. For a future meeting, that portion of the notes document should be updated with current information about industry trends as to that feature, factors affecting the desirability of the feature after the time the old notes were taken, and other information that could alter the customer's opinion of the feature in the future meeting.

At the same time, the update should selectively exclude information that is not related to the context within a threshold degree. For example, the context of an undesirable feature is related to information about a similar feature in some product in the market, but is probably not sufficiently related to a new feature that product includes. The manner of relating a piece of information to a context, a degree of such relation, and thresholds for comparing such degrees of relations are dependent upon the nature of the subject matter in question.

As one example, a piece of information is regarded as related to a given context if the piece includes at least a threshold number of textual matches with the product name or a synonym thereof. As another example, a piece of information is regarded as related to a given context if the piece includes at least a threshold number of references to a category of the named product or an equivalent thereof.

Some other examples of old documents with portions pertaining to different contexts include product documentation, catalogs, conversation records, whitepapers, research work products, and publications. For the foregoing reasons, and other similar reasons, the illustrative embodiments recognize that updating a portion of, or the entirety of, an old document is often a non-trivial task.

The illustrative embodiments used to describe the invention generally address and solve the above-described problems and other problems related to the updating old documents. The illustrative embodiments provide a method, system, and computer program product for contextual updating of existing documents using natural language processing.

An embodiment identifies a context, e.g., a product, a feature, a topic, a subject, or a subject-matter domain, that is to be used for updating a set of one or more old documents. As an example, the embodiment receives the context information by receiving an ontology, a taxonomy, or a lexicon of context-specific terms, phrases, or information.

In an old document from the set of old documents, an embodiment identifies a set of one or more portions that relate or correspond to the provided context. The embodiment parses the text of the identified set of portions so that one or more natural language (NL) search queries, search criteria, or a combination thereof, can be constructed. A search query searches for data that satisfies a condition in the query. A search criterion is a condition that bounds the scope of the search, the information that is searched for such data, or both. A search can use a search query, a search criterion, or both. Within the scope of the disclosure, a circumstance of using a search query or a search criterion can also include a circumstance of using the search query and the search criterion unless otherwise specified.

In one example, a sentence in a portion is parsed to identify the {subject, predicate, object} triple from which an NL query or criterion can be constructed. In another example, a group of words are lemmatized to identify one or more terms to use in an NL search query or criterion. From this disclosure, those of ordinary skill in the art will be able to conceive many other ways of parsing the contents of an identified portion of an old document for a similar purpose, and the same are contemplated within the scope of the illustrative embodiments.

An embodiment uses the contextual search queries and/or criteria constructed from a portion of an old document to identify a set of current information that is relevant to the context and satisfies the NL search query or criterion. For example, at any given time, a set of one or more data sources may provide a variety of current information about a variety of contexts. Current information is information that is believed to be up-to-date at the given time.

Some data sources in the set of data sources provide current information that is relevant to the context in question. The embodiment identifies such data sources, applies the search query or criterion, and finds current contextual information.

An embodiment further constructs NL content from the found current contextual information. An embodiment applies the NL content to the old document, thereby contextually updating the old document with current information using NLP.

The illustrative embodiments are described with respect to certain contexts, documents, document types, data, forms of data, data processing systems, environments, components, and applications only as examples. Any specific manifestations of such artifacts are not intended to be limiting to the invention. Any suitable manifestation of data processing systems, environments, components, and applications can be selected within the scope of the illustrative embodiments.

FIG. 1depicts a block diagram of a network of data processing systems in which illustrative embodiments may be implemented. Data processing environment100is a network of computers in which the illustrative embodiments may be implemented. Data processing environment100includes network102. Network102is the medium used to provide communications links between various devices and computers connected together within data processing environment100. Network102may include connections, such as wire, wireless communication links, or fiber optic cables. Server104and server106couple to network102along with storage unit108. Software applications may execute on any computer in data processing environment100.

In addition, clients110,112, and114couple to network102. A data processing system, such as server104or106, or client110,112, or114may contain data and may have software applications or software tools executing thereon.

Only as an example, and without implying any limitation to such architecture,FIG. 1depicts certain components that are useable in an embodiment. For example, Application105in server104implements an embodiment for contextual updating of existing documents using natural language processing as described herein. NLP engine107in server106implements a combination of tools and techniques to be used within or in conjunction with application105for NLP as described herein. Old documents109in storage108includes one or more old documents as described herein. Data sources132and134comprise any number of data sources that are accessible over network102and provide current information for one or more contexts. In one embodiment, data source132is an example of a local data source, for example, accessible over a bus or a local area network, and data source134is an example of an external data source, for example, accessible over a wide area network.

With reference toFIG. 2, this figure depicts a block diagram of a data processing system in which illustrative embodiments may be implemented. Data processing system200is an example of a computer, such as server104or client110inFIG. 1, or another type of device in which computer usable program code or instructions implementing the processes may be located for the illustrative embodiments.

With reference toFIG. 3, this figure depicts a block diagram of a configuration for contextual updating of existing documents using natural language processing in accordance with an illustrative embodiment. Application302is an example of application105inFIG. 1.

Application302receives one or more old document304as an input. Application302further receives as input information306about a context. For example, in one embodiment, information306about a context is taxonomy of a subject-matter domain. One or more current data feeds308from one or more data sources, e.g., data sources132and134inFIG. 1, form another input to application302.

Pre-processing component310identifies one or more portions in old document304that correspond to the context of information306. Operating according to an embodiment, application302updates these identified portions with current contextual information.

NLP formulation component312parses the contents of the portions identified by component310. The parsing of the content by component312enables an NLP engine, e.g., NLP engine107inFIG. 1, to form NL search queries, criteria, or a combination thereof. The NLP engine (not shown) accepts the parsed contents of the portions as input and provides the NL search queries, search criteria, or a combination thereof, back to application302.

Component314uses the NL search queries or criteria to perform a search for current information such that the resulting information is usable for updating the portions identified by component310. In other words, component314performs a contextual search resulting in information that is current at the time of executing the search, satisfies the search queries or criteria returned by the NLP engine, is relevant to the context of a portion identified by component310, and is usable for updating that portion. For example, component314directs the contextual search to data sources including, but not limited to, news feeds, social media sources, and crowd sources

Component316generates an output using the result of the search. For example, component316receives the search results from a variety of data sources in response to the search queries or criteria. Different data sources may provide their respective information in differing forms. For example, one data source may provide current information in tabular form, and another data source may provide current information in narrative text form. Another data source may provide current information in the form of database records, and another data source may provide current information in a comma delimited form.

Component316prepares the current information received from the various data sources for an NLP engine. For example, component316aggregates the search results, and parses the aggregate contents in a manner suitable for consumption by the given NLP engine.

The NLP engine returns the current information collected in this manner in a suitable human readable form. Component316presents the returned human readable form of the current information as the output of component316.

In one embodiment, the output of component316, takes the form of updated document318. In one embodiment, the output comprises one or more supplements to old document304. In another embodiment, component316modifies one or more of the identified portions in old document304with the human readable current information received from the NLP engine.

In another embodiment, component316does not pass the result of the search query or criteria to an NLP engine. Component316identifies the data source contributing one or more pieces of current information in the result. Component316produces updated document318where a reference to the contributing data source is inserted in the identified portion of old document304. In other words, old document304, including one or more references to one or more data sources in one or more portions forms updated document318in such an embodiment. Only as an example and without implying any limitation thereto, the reference can take the form of a uniform resource locator (URL) or a similarly purposed variation thereof.

Another embodiment causes component316to use the human readable information returned from the NLP engine as well as references to the data sources. Accordingly, updated document318includes a modified portion or a supplement containing the human readable current information and a reference to a data source that contributed the underlying data for the human readable current information.

In some cases, an actual update of old document304may not be preferred or desirable. For example, even when current contextual information is available, certain implementations may delegate the updating activity to another application or user, such as for verification of the current contextual information, authorization of the updating activity on old document304, or billing/accounting/audit resulting from such updates, or other reasons. Accordingly, updated document318may associate with a portion, not an actual update incorporating the current contextual information but an indicator to indicate that the portion should be updated in view of the current contextual information. Some examples of associating the indicators in this manner include flagging, marking a checkbox, adding a graphic, highlighting, font or color change, and suitably incorporating other similarly purposed indicators in old document304.

Whether updated document318includes update indicators, aggregated current information, human readable current information, reference to data sources, supplements, or an otherwise modified portion is implementation dependent. Some implementations may find one type of updated document318more suitable than another under certain circumstances. The illustrative embodiments do not impose any restriction on the particular form output318takes, and the various forms or combinations thereof are contemplated within the scope of the illustrative embodiments.

According to one embodiment, application302further includes component320for associating a confidence rating with the current information updates applied in updated document318. The confidence rating of a current information update in updated document318is indicative of a reliability of the current information, recency of that information, provenance of a data source that supplied the underlying current information, relevance of the update to the context of information306, or a combination of these and other factors.

For example, the current information from one data source may be more reliable than the current information from another data source in the search result set. As another example, the degree of relevance of the current information from one data source to the context may be greater than the relevance of the current information from another data source. As another example, the current information from one data source may be more recent than the current information from another data source.

Accordingly, an update based on the information from the first source receives a higher confidence rating than an update based on the information from the second source. When the update includes information from several sources, component320computes the overall confidence rating of the update by suitably weighting the sources, the underlying information provided by those sources, and any number of other confidence rating factors.

With reference toFIG. 4, this figure depicts a configuration for using NLP in contextual updates to old documents in accordance with an illustrative embodiment. Application402is an example of application302inFIG. 3. NLP engine404is an example of NLP engine107inFIG. 1.

Application402sends parsed contents406from an old document, such as from a portion identified in old document304inFIG. 3according to a context, to NLP engine404. NLP engine404returns to application402one or more NL search queries, NL search criteria, or a combination thereof (408).

Application402executes a search for current information according to NL search queries and/or criteria408. Application402sends parsed current information410from the search result to NLP engine404. NLP engine404returns to application402NL content412. NL content412includes the contextual current information received from one or more data sources as a result of NL search queries408, such that the contextual current information is presented in a human readable natural language form. Application402uses NL content412for updating the old document, e.g., to output updated document318ofFIG. 3.

With reference toFIG. 5, this figure depicts a flowchart of an example process for contextual updating of existing documents using natural language processing in accordance with an illustrative embodiment. Process500can be implemented in application402inFIG. 4.

The application selects an existing document, e.g., old document304inFIG. 3(block502). The application determines a context for updating or supplementing the old document or a portion thereof, e.g., according to information306about a context inFIG. 3, (block504).

The application pre-processes the old document to identify one or more portions related to the context (block506). The application parses one or more of the identified portions to enable an NLP engine to construct a natural language search for current information that is relevant to the context and applicable to the parsed portions (block508).

The application forms one or more natural language search queries or criteria, such as by passing the parsed information of block508to an NLP engine (block510). Using the NL search queries or criteria formed in block510, the application searches a set of data sources for current information (block512). In one embodiment, a data source in the set of data source being searched is available as one or more input data streams from any suitable type of data source.

From the search result set, the application identifies the current information that has at least a threshold degree of relevance to the context (block514). The application constructs NL content from the current information identified in block514, e.g., by parsing and sending the parsed current information of block514to an NLP engine (block516).

Optionally, the application also computes a confidence rating for the NL content constructed in block516(block518). For example, in one embodiment, the application computes the confidence rating based on suitably weighted numerosity, provenance, recency, reliability, or a combination of these or other similarly purposed confidence factors associated with a data source, and/or the current information they provide, that participates in the NL content of block516.

The application outputs the NL content for use with the old document (block520). The application ends process500thereafter. For example, the application can output the NL content in any of the example forms of updated document318inFIG. 3, in any of the forms described inFIG. 6, or other similarly purposed form.

With reference toFIG. 6, this figure depicts a flowchart of an example process for updating an old document with current contextual information in accordance with an illustrative embodiment. Process600can be implemented in application402ifFIG. 4, e.g. in block520of process500inFIG. 5.

For updating an old document, or a portion thereof, that pertains to a given context, the application can use any of the non-exhaustive update methods according to alternative blocks of process600. For example, the application can change a priority of a portion of the old document based on the NL content of block516ofFIG. 5(block602). For example, if the portion pertains to a context of a product feature that was of low (or high) priority for discussion at a past time, and the NL content suggests that the industry adoption of that product feature has significantly increased (or decreased) at a present time, the application changes a priority associated with that portion of the old document so that the product feature is accorded a higher (or lower) importance in an upcoming discussion.

Alternatively, the application can modify the contents of the portion of the old document using the NL content (block604). The modification may replace the entire portion, or selectively change the portion.

Alternatively, the application can insert the NL content proximate to the portion in the old document (block606). For example, the application can add the NL content adjacent to the old content of the portion, or add the NL content elsewhere in the old document as an appendix or supplement to the portion.

Alternatively, at the portion in the old document, the application can add one or more references to a data source that contributed some current contextual information. The application can similarly add a reference to the NL content or non-NL content generated from the current contextual information in a search result.

The application ends process600thereafter. The application can select more than one alternatives for updating a portion or different portions of one or more old documents. Furthermore, from this disclosure, other ways of updating portions of old documents using the current contextual information will be conceivable to those of ordinary skill in the art and the same are contemplated within the scope of the illustrative embodiments. For example, the application may only flag a portion of the old document in view of current contextual information, for some other process to perform the actual update.

Thus, a computer implemented method, system, and computer program product are provided in the illustrative embodiments for contextual updating of existing documents using natural language processing. In one embodiment, the types of data sources providing current information can include but are not limited to social media, blogs, and the like.