Method and system for ranking words and concepts in a text using graph-based ranking

The present invention is a method and system for identifying words, text fragments, or concepts of interest in a corpus of text. A graph is built which covers the corpus of text. The graph includes nodes and links, where nodes represent a word or a concept and links between the nodes represent directed relation names. A score is then computed for each node in the graph. Scores can also be computed for larger sub-graph portions of the graph (such as tuples) The scores are used to identify desired sub-graph portions of the graph, those sub-graph portions being referred to as graph fragments.

BACKGROUND OF THE INVENTION

The present invention relates to identifying and retrieving text. More specifically, the present invention relates to identifying and retrieving text portions (or text fragments) of interest from a larger corpus of textual material by generating a graph covering the textual material and scoring portions of the graph.

There are a wide variety of applications which would benefit from the ability to identify text of interest in a larger text corpus. For instance, document clustering and document summarization both attempt to identify concepts associated with documents. Those concepts are used to cluster the documents into clusters, or to summarize the documents. In fact, some attempts have been made to both cluster documents and summarize an entire cluster of documents, automatically, for use in later processing (such as information retrieval).

Prior systems have attempted to order sentences based on how related they are to the concept or subject of a document. The sentences are then compressed and sometimes slightly rewritten to obtain a summary.

In the past, sentence ordering has been attempted in a number of different ways. Some prior systems attempt to order sentences based on verb specificity. Other approaches have attempted to order sentences using heuristics that are based on the sentence position in the document and the frequency of entities identified in the sentence.

All such prior systems have certain disadvantages. For instance, all such prior systems are largely extractive. The systems simply extract words and sentence fragments from the documents being summarized. The words and word order are not changed. Instead, the words or sentence fragments are simply provided, as written in the original document, and in the original order that they appear in the original document, as a summary for the document. Of course, it can be difficult for humans to decipher the meaning of such text fragments.

In addition, most prior approaches have identified words or text fragments of interest by computing a score for each word in the text based on term frequency. The technique which is predominantly used in prior systems in order to compute such a score is the term frequency*inverse document frequency (tf*idf) function, which is well known and documented in the art. Some prior systems used minor variations of the tf*idf function, but all algorithms using the tf*idf class of functions are word-based.

In another area of technology, graphs have been built in order to rank web pages. The graphs are ranked using a hub and authorities algorithm that uses the web pages as nodes in the graph and links to the web page as links in the graph. Such graphing algorithms have not been applied to graph text.

SUMMARY OF THE INVENTION

The present invention is a method and system for identifying words, text fragments, or concepts of interest in a corpus of text. A graph is built which covers the corpus of text. The graph includes nodes and links, where nodes represent a word or a concept and links between the nodes represent directed relation names. A score is then computed for each node in the graph. Scores can also be computed for larger sub-graph portions of the graph (such as tuples). The scores are used to identify desired sub-graph portions of the graph, those sub-graph portions being referred to as graph fragments.

In one embodiment, a textual output is generated from the identified graph fragments. The graph fragments are provided to a text generation component that generates the textual output which is indicative of the graph fragments provided to it.

DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS

The present invention relates to identifying words, text fragments, or concepts of interest in a larger corpus of text. Before describing the present invention in greater detail, one illustrative environment in which the present can be used will be described.

FIG. 2is a block diagram of a text processing system200in accordance with one embodiment of the present invention. Text processing system200can be used in a wide variety of text manipulation applications. For instance, as is described in greater detail below, it can be used for document clustering, document summarization, summarization of document clusters, question answering, information retrieval, etc. For the sake of simplicity, the present invention will be described in terms of cluster summarization. However, the invention is not to be so limited. System200includes graph builder202, scoring component204, optional discourse planning system205, sub-graph extraction component206and generation component208.FIG. 3is a flow diagram illustrating the operation of system200shown inFIG. 2.

In operation, graph builder202first receives input text210. This is indicated by block212inFIG. 3. Input text210can, for example, be a text corpus comprised of one or more documents. In the case where system200is used to summarize document clusters, then the input text210is a set of documents which have been previously clustered using any known clustering system.

In any case, graph builder202receives input text210and builds a graph214that covers the entire input text210. This is illustratively done by first building graphs for the individual sentences in input text210. The individual graphs are then connected together to form the overall graph214. In doing this, the individual graphs are somewhat collapsed in that words or concepts in the individual graphs will correspond to a single node in the overall graph214, no matter how many times they occur in the individual graphs. Generating the overall graph214is indicated by block216inFIG. 3. In one illustrative embodiment, graph214includes nodes and links. The nodes represent a word, event, entity or concept in input text210, and the links between the nodes represent directed relation names. In one embodiment, a certain set of words can be excluded from graph214. Such words are commonly referred to as stop words.

In one illustrative embodiment, graph builder202is implemented by a natural language processing system that produces an abstract analysis of input text210. The abstract analysis normalizes surface word order, assigns relation names using function words (such as “be”, “have”, “with”, etc.). The natural language processing system comprising graph builder202can also perform anaphora resolution that resolves both pronominal and lexical noun phrase co-reference. One embodiment of such an abstract analysis of input text210is referred to as a logical form, and one suitable system for generating the abstract analysis (the logical form) is set out in U.S. Pat. No. 5,966,686 issued Oct. 12, 1999, entitledMETHOD AND SYSTEM FOR COMPUTING SEMANTIC LOGICAL FORMS FROM SYNTAX TREES. The logical forms are directed acyclic graphs that cover the input text for each sentence. The graphs for each sentence are illustratively connected to one another into a larger graph214that covers the entire input text210.

Of course, graph builder202can be another suitable system as well. For instance, graph builder202can be configured to produce a syntactic parse of each input sentence in input text210and then produce a dependency tree given the syntactic parse. A graph is then illustratively constructed from the dependency tree. Alternatively, graph builder202can construct graph214for input text210by defining pairs of adjacent or co-located words as the nodes in the graph and by positing a link between the nodes where the directionality of the link is either assigned arbitrarily or computed given the parts of speech of the nodes. This can be done either using heuristic or machine-learned methods.

In any case, once graph builder202has generated graph214from input text210, nodes or sub-graph components of graph214are scored by scoring component204. This is indicated by block218inFIG. 3. In one illustrative embodiment, a publicly available graph ranking algorithm is used for scoring the nodes in graph214. One example of such a publicly available graph ranking algorithm is referred to as theHub and Authorities Algorithmby John Kleinberg (see:Authoritative sources in a hyperlinked environment.Proc. 9th ACM-SIAM Symposium on Discrete Algorithms, 1998. Extended version in Journal of the ACM 46(1999). Also appears as IBM Research Report RJ 10076, l May 1997.), which has been used, for example, to rank web pages as set out in Sergey Brin and Lawrence Page. The anatomy of a large-scale hypertextual Web search engine. In Ashman and Thistlewaite [2], pages 107-117. Brisbane, Australia. Briefly, such an algorithm takes the directionality of links in the graph into account in order to produce the ranking. Each node in the graph receives a weight according to how many nodes link to it, and according to how many nodes the given node links to. The output of the algorithm is a score for each node in the graph. The score for a node can be used in place of a score computed using term frequency, for example, in text manipulation applications such as information retrieval, question answering, clustering, summarization, etc.

Once the scores for the nodes are computed, scores for tuples in graph214can be calculated. A tuple includes sub-graph components of graph214of the form nodeB→relation→nodeA, where node A is referred to as the target node in the tuple and node B is referred to as the initial node in the tuple. In one illustrative embodiment, the score for each tuple is a function of all the scores for nodes linking to node A, the score of node B, and the frequency count of the given tuple in the text corpus210. The score for each tuple can be used in substantially any application that calls for matching tuples. However, it is described herein with respect to document summarization only, for the sake of simplicity.

In accordance with one embodiment of the present invention, the specific calculation of a tuple score only weights tuples with respect to the target node. For instance, in the tuple nodeB→relation→nodeA, the weight of the tuple is calculated with respect to all the other nodes pointing to node A, and not with respect to other tuples or other nodes. One example of a specific formula used to do this is as follows:
TupleScore(nodeB→relation→nodeA)=NodeScore(B)* Count(nodeB→relation→nodeA)/Sum(For all nodesXand relationsRsuch that nodeX→R→nodeA|NodeScore(X)*Count(nodeX→R→nodeA)).   Eq. 1

Where TupleScore( ) indicates the score of the given tuple;

NodeScore( ) indicates the score of the given node; and

Count( ) is the frequency of the identified tuple in the input text.

Of course, other scoring mechanisms and equations can be used as well.

Both the scores generated by scoring component204and the graph214are provided to sub-graph extraction component206. Sub-graph extraction component206uses high scoring nodes and tuples corresponding to graph214to identify important sub-graphs generated from input text210. The sub-graphs are then extracted based on the NodeScores and TupleScores. The sub-graphs can also be ranked by sub-graph extraction component206based on their corresponding scores. Extraction of graph fragments corresponding to high scoring nodes and sub-graphs, and ranking the graph fragments based on the scores is indicated by blocks220and222inFIG. 3. The ranked graph fragments provided by component206are indicated by block224inFIG. 2.

The graph fragments can be extracted in different ways. For instance, they can be extracted from the individual graphs (or logical forms) generated from the individual sentences in the input text210, and that spawned the high scoring nodes and tuples in overall graph214. Alternatively, they can be extracted directly from overall graph214.

In one illustrative embodiment, sub-graph extraction component206identifies the important sub-graphs by matching logical forms generated from input text210with the high scoring nodes and tuples. By “high scoring”, it is meant that a threshold may be empirically determined and nodes and tuples having a score that meets the threshold are identified as high scoring. Further, each sub-graph can be further investigated in order to extract additional high scoring nodes that are linked to that sub-graph. This process is illustratively iterated, using the high scoring tuple as an anchor, for every high scoring node that the sub-graph can link to.

In addition, nodes in the logical form can be related to another node. This can happen, for example, through pro-nominalization or by virtue of referring to the same entity or event. For instance, the term “General Augusto Pinochet” and “Pinochet” are related by virtue of referring to the same entity. These related nodes, in one illustrative embodiment can also be used during the matching process.

In addition, in an illustrative embodiment, certain relations and their values given a specific node type can be extracted as part of the matching sub-graph. For example, for the node type that corresponds to an event, the nuclear arguments of the event (such as the subject and/or object links, if present) can also be retained as part of the matching sub-graph. This improves the coherence of the sub-graph, especially in the embodiment in which the goal of identifying the sub-graph is to pass it to a generation component.

The entire sub-graph matched as described above is referred to as a graph fragment. In one illustrative embodiment, a cut-off threshold is used to determine a minimum score that will be used for matching, and the graph fragments that score above the minimum are kept for further processing.

In one illustrative embodiment, the graph fragments224are ordered according to the node and tuple score and are provided to generation component208which produces a natural language output for the graph fragments224.

Alternatively, in one embodiment, optional discourse planning system205is also provided. Planning system205receives graph fragments224and produces an optimal ordering of the graph fragments not only taking into account the node and tuple scores for the graph fragments, but also accounting for the placement of similar nodes, and the order in which two nodes (related through part of speech) occur, and high level considerations, such as event timeline, topic and focus, etc. For instance, assume that three sentences (S1, S2and S3) are to be generated, and if only scores were considered, the sentence order would be S1S2S3. However, if sentences S1and S3both mention the same entity, the planning system205will produce S1S3S2, and may also replace the entity in S3with a pronoun, or sentences S1and S3may be combined into one longer sentence. Grouping sentences that involve common nodes increases the readability of the generated summary.

Similarly, assume that two sentences S1and S2both mention, for example, the words “arrest”, but it is used in S1as a noun and in S2as a verb. Planning system205re-orders the sentence to S2S1. This produces a summary that mentions, for example “X got arrested yesterday . . . ” and then “the arrest . . . ”, which again increases readability of the generated summary.

In any case, based on the additional considerations, planning system205reorders the graph fragments224and provides them as re-ordered graph fragments225to generation component208. The optional step of reordering graph fragments with discourse planning system205is indicated by block224inFIG. 3.

A set of graph fragments are provided to generation component208. Generation component208can then generate output text226based on the graph fragments received. This is indicated by block228inFIG. 3.

The generation component208must simply be consistent with the type of graph fragment it is receiving. Component208can be rules-based, such as found in Aikawa, T., M. Melero, L. Schwartz, and A. Wu. (2001).Multilingual Sentence Generation, InProceedings of8th European Workshop on Natural Language Generation, l Toulouse, and Aikawa, T., M. Melero, L. Schwartz, and A. Wu. (2001).Sentence Generation for Multilingual Machine Translation,InProceedings of the MT Summit VIII, Santiago de Compostela, Spain. It can also be machine-learned, such as found in Gamon, M., E. Ringger, and S. Corston-Oliver. 2002.Amalgam: A machine-learned generation module. Microsoft Research Technical Report: MSR-TR-2002-57

At this point, an example may be useful. Assume input text210includes the following group of sentences:Pinochet was reported to have left London Bridge Hospital on Wednesday.President Eduardo Frei Ruiz_Tagle said that Pinochet, now an unelected senator for life, carried a diplomatic passport giving him legal immunity.The arrest of Gen. Augusto Pinochet shows the growing significance of international human_rights law.Former Chilean dictator Gen. Augusto Pinochet has been arrested by British police, despite protests from Chile that he is entitled to diplomatic immunity.The individual graphs (logical forms) for each individual sentence are as follows:Pinochet was reported to have left London Bridge Hospital on Wednesday.

FIG. 4illustrates a graph300centered on the node for “Pinochet”, connecting the nodes from the logical forms for the input sentences. Graph300is also represented virtually as follows:

leave2({Verb})TsubPinochet2 ({Noun})carry1({Verb})TsubPinochet2 ({Noun})
Note that anaphora resolution is used to resolve “he” to “Pinochet”

Note that the Appostn relation is “unpacked” to result in two (or however many Appostns there are) links. So that from this Logical Form, in addition to the link “arrest-Tobj-dictator”, the link “arrest—Tobj—Gen._Augusto_Pinochet” is also identified.

Note that this last logical form indicates the “similar word” concept discussed above, in that if the node under consideration is Gen._Augusto_Pinochet, the node “Pinochet” is also included. This is based on the LASTNAME rein:

The following node scores show an example of just a portion of the entire graph for this cluster, so the scores are indicative rather than exact:Pinochet_Noun 8.86931560843612arrest_Noun 5.65798261000217dictator_Noun 4.66735025856776leave_Verb 3.19016764263043show_Verb 3.05887157398304arrest_Verb 2.99724084165062immunity_Noun 2.61908266128404give_Verb 2.59211486749912police_Noun 2.23721253134214Gen._Augusto_Pinochet_Noun 2.14890018458375senator_Noun 1.99746859744986diplomatic_immunity_Noun 1.52760640157329carry _Verb 1.4547668737008passport_Noun 1.08547333802503diplomatic_Adj 0.949668310003334entitle_Verb 0.760364251949961significance_Noun 0.518215630826775London_Bridge_Hospital_Noun 0.493827515638096

The fragments are ranked by scores. In this example, fragments chosen rooted in Verb part of speech are ordered before fragments chosen rooted in Noun part of speech.

Note that Time and Tobj are also selected to be part of the graph fragment because they are both nuclear arguments to “leave”, even though “London_Bridge_Hospital” itself is a low-scoring tuple.

Note that “significant” is selected because it is a nuclear argument. Because “significance” is Noun, but with event properties, we also select arguments for the noun (Attrrib and “of”)

Note that this is the tuple score for “arrest Tobj Pinochet” but “dictator” and “Pinochet” are the same entity, as identified through coreference

Note that this is an example of a noun phrase that is available for expanding nodes in the graphs when the high-scoring events have either been used or when the weight limits have been reached.

The following are examples of re-ordering and grouping similar/same nodes together when the optional planning system205is used:

The following shows Combining graph-fragments 1 and 4 since they both share the node for “Pinochet”:

The following shows reordering of graph-fragments 2 and 3 to reflect the preferred ordering of the same nodes with different parts of speech as Verb first, then Noun:

The following illustrates generation output226. In this example, during generation, the referring expression is chosen for generation. Typically, that is the most specific referring expression first (Gen. Augusto Pinochet), a short form second (Pinochet), followed by pronominalization if it is in a nuclear argument position. Therefore, one embodiment of generation output226is as follows:Gen. Augusto Pinochet, an unelected senator, left London Bridge Hospital on Wednesday.Pinochet has been arrested in London by the police.His arrest shows the growing significance of international human_rights.

It can thus be seen that the present invention provides distinct advantages over the prior art. The present invention ranks events based on a graph generated from the input text. This has been found to be more accurate when deciding what to include in a summary than word frequency-based approaches. Another aspect of the invention generates a summary given ranked graph fragments. This provides better coherence and readability than sentence extraction or compression for multi-document summaries.

Of course, it will also be appreciated that the present invention can be used in a wide variety of other applications as well. For instance, identifying words or text fragments or events in an input text by generating a graph for the input text and then calculating a score for the components of the graph is useful in many situations. It can be used, for example, when attempting to identify a relationship between two textual inputs, such as information retrieval, indexing, document clustering, question answering, etc. In those instances, the scores for words or tuples of a first input are compared against the scores for words or tuples of a second input to determine the relationship between the two inputs. In information retrieval, a first input is a query and the second input is either an index or a document being compared to the query. In question answering, the first input is a question and the second input is text being examined to determine whether it answers the question. In document clustering, the two inputs are documents or summaries thereof, or summaries of clusters. Similarly, the scores generated for the graph that covers the input text can be used in determining which terms in the document are used for indexing the input text, as well as any weights calculated for those terms.

Of course, the present invention can also be used as described to generate output text corresponding to the input text. The text can be a summary of a single document, the summary of a cluster, etc. Thus, while the present invention has been described primarily with respect to document summarization, the invention has wide applicability and is not to be limited to summarization.