Abstract:
A computer system implemented method of creating and using structured data from a textual input, comprising: providing a table for structured data, receiving at least one textual input, dividing at least a portion of the textual input into paragraphs, for each of the paragraphs, creating a profile by extracting predicative phrases from the paragraph, for each of the predicative phrases, extracting a noun from the predicative phrase, for each extracted noun, receiving a textual definition from the dictionary corresponding to the noun, dividing the textual definition for each noun into definition paragraphs, and creating a profile for each definition paragraph by extracting predicative phrases of the definition paragraph, comparing the profile of the definition paragraphs to the profile of the paragraph containing the noun based upon an algorithm for compatibility; and adding the predicative phrase containing the noun into the table for structured data if the algorithm is satisfied.

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
       [0001]    This application claims the benefit of priority under 35 U.S.C. 119(e) to U.S. Provisional Application Ser. No. 61/242,631, filed Sep. 15, 2009, entitled “SYSTEMS AND METHODS FOR CREATING STRUCTURED DATA,” the entire disclosure of which is incorporated by reference herein. 
     
    
     INCORPORATION BY REFERENCE 
       [0002]    U.S. Pat. No. 6,199,067 titled “System and method for generating personalized user profiles and for utilizing the generated user profiles to perform adaptive interne searches,” and issued to the same inventor, is incorporated by reference herein. 
       FIELD OF THE INVENTION 
       [0003]    The present invention is directed to the field of digital information processing. 
       BACKGROUND OF THE INVENTION 
       [0004]    In the modern world information is increasingly being stored digitally, and the volume of such digitally stored information is growing rapidly. Searching this volume of information and separating the wheat from the chafe is increasingly important, as well as difficult. The ability to quickly search and find relevant information in volumes of unrelated, or superfluous, information can be of utmost importance. Accordingly, the present invention is directed towards a system and method of creating structured data which organizes digital information and reduces lexical noise. 
       SUMMARY OF THE INVENTION 
       [0005]    In one embodiment, there is disclosed a computer system implemented method of creating and using structured data from a textual input. The method includes the steps of providing a table for structured data and receiving at least one textual input at least a portion of which is then divided into one or more paragraphs. These paragraphs are profiled by extraction of one or more predicative phrases contained therein. Nouns are then extracted from each predicative phrase that was extracted from the paragraph. For each of these extracted nouns, a connection a definition is retrieved from a dictionary. This definition is then divided into one or more paragraphs, which are then profiled by extracting one or more predicative phrases from each of the definition paragraphs. The profiles of the definition paragraphs are then compared, according to an appropriate compatibility algorithm, to the profile of the paragraph from which the noun extracted. If the algorithm is satisfied, the predicative phrase containing the noun is saved in a table for structured data. In further embodiments the uploaded text may be further divided into chapters. 
         [0006]    In another embodiment, there is disclosed a computer readable medium containing a program which performs the functions of providing a table for structured data and receiving at least one textual input. The program further performs the functions of dividing at least a portion of the textual input into one or more chapters, and, for each of the chapters, dividing into one or more paragraphs. For each of the paragraphs, the program also performs the function of creating a profile by extracting one or more predicative phrases of the paragraph and, for each of the predicative phrases, establishing a connection to a dictionary and extracting textual definition from the dictionary corresponding to each noun in the predicative phrases. The program further performs the functions of dividing each textual definition for the respective nouns into one or more definition paragraphs and creating a profile for each definition paragraph by extracting one or more predicative phrases of the definition paragraph. The program also performs the functions of comparing the profiles of each definition paragraph to the profile of the paragraph containing the noun corresponding to the definition paragraph and its surrounding paragraphs based upon an algorithm for compatibility and adding the predicative phrases containing the noun into the database for structured data if the formula for compatibility is satisfied. In further embodiments the 
     
    
     
       BRIEF DESCRIPTION OF THE FIGURES 
         [0007]      FIG. 1  is flow chart diagram of an exemplary embodiment of the present invention; and 
           [0008]      FIG. 2  is a flow chart of an exemplary process for creating definitions for new words, that may be used in an embodiment of the present invention. 
       
    
    
     DETAILED DESCRIPTION 
       [0009]    Certain embodiments of the present invention will be discussed and it should be noted that references in the specification to phrases such as “one embodiment” or “an embodiment” means that a particular feature, structure or characteristic described in connection with the embodiment is included in at least one embodiment of the invention. The appearance of phrases such as “in one embodiment” in various places in the specification are not necessarily, but can be, referring to same embodiment. 
         [0010]    In an embodiment of the invention, a computer system is specifically programmed to convert digital textual information into structured data using a process that minimizes the amount of lexical noise within the structured data. Such lexical noise is typically superfluous predicative definitions that do not explain the central themes contained within the digital textual information and, accordingly, removal of such noise often results in an improvement in the quality of the structured data. This structured data may then be used for efficient searching, and may be utilized by interne search engines, archival systems, information management systems and other systems maintaining textual information. 
         [0011]    The computer system preferably includes such art recognized components as are ordinarily found in computer systems, including but not limited to processors, RAM, ROM, clocks, hardware drivers, associated storage, and the like. The computer-based system may include servers and connections to networks such as the Internet, Intranet, LAN, or other communication networks. The programming loaded on the computer system may be created in any programming language presently known or hereafter developed, for example, C, C++, JAVA, and C#. 
         [0012]    With reference to  FIG. 1 , an embodiment of the process  100  may commence, in step  5  with text being uploaded to a database of a computer system. The text may be a book, a periodical, electronic mail, SMS and/or any other text containing one or more words, sentences or phrases. 
         [0013]    In step  10 , the uploaded text is preferably divided into chapters. A chapter is typically the minimal textual division or a part of the given text that includes at least one paragraph, but preferably more than one paragraph. This division may be performed based upon a textual indicator within the text itself, such as a chapter heading or a specific font that designates a chapter heading, additionally or alternatively it may be performed based upon metadata, and/or any other type of indicator. In further embodiments, additionally or alternatively, the text may be divided into chapters, according to an algorithm by way of example, without regard to how the text has been divided the text into chapters. 
         [0014]    In step  15  each chapter is preferably divided into paragraphs. A paragraph is a subdivision of a written composition that consists of one or more sentences, deals with one or more points/ideas or gives the words of one speaker, and can be extracted from text based upon textual indicators such as, for example, a hard return or tab (although any other suitable means or algorithm may be used). 
         [0015]    In step  20  predicative phrases are preferably extracted from each sentence or clause of that exists in a paragraph. Clauses in complex sentences may be identified through the use of grammar rules, for example, by identifying commas and semicolons and presence of multiple predicates, or any other suitable algorithm A predicative phrase is a predicative definition preferably characterized by combinations of nouns and other parts of speech, such as a verb and an adjective and an article (e.g., the-grey-city-is). In the preferred embodiment each predicative phrase is a combination of an article, noun, verb, and adjective, although in alternate embodiments various combinations of nouns and verbs and other figures of speech may be utilized, for example, noun, verb, and adverb. Predicative phrases convey the central idea or ideas contained within a given sentence. 
         [0016]    In certain embodiments, when extracting predicative phrases, the system may be configured to control for common noun phrases, idioms, or similar phrases. For example, “hot dog” may be treated as a noun, as opposed to a noun plus an adjective. Additionally, idioms such as “under the weather” may be treated as a single adjective. These noun phrases and idioms may be identified based upon a database of common phrases or idioms, but the system is not limited to any specific way of identifying them. Furthermore, in certain embodiments both the “noun phrases” and their components may be used to form predicative definitions, while in other embodiments they are mutually exclusive. 
         [0017]    In step  25 , a profile is preferably compiled for each paragraph that has been extracted. The profile of a paragraph typically includes the predicative phrases of the paragraph, and their respective weight, or importance, within that paragraph. The profile of a paragraph is essentially a summary of the theme or themes of a paragraph and it may include lexical noise. In other embodiments, profiles may also be created for the entire text or a part thereof. Such profiles would include the predicative phrases in the text, or a part thereof, and references to the paragraphs from which those phrases originated preferably saved into metadata. 
         [0018]    Starting with step  30 , the computer system preferably commences a recursive process that is, in a preferred embodiment, performed on each paragraph of each chapter in the uploaded text, proceeding from first to last paragraph from the first chapter to the last. In step  30 , the computer system selects a paragraph (“Selected Paragraph”), analyzes the Selected Paragraph, and extracts nouns from the predicative phrases of the Selected Paragraph. It should be noted that the invention is not limited to any method of traversing the paragraphs and, in alternate embodiments, the paragraphs may be traversed in any order with or without regard to the order of the paragraphs in the text (in those embodiments, step  10  may be optional). In certain embodiments of the invention, a profile may be created for the entire text, or a part thereof. 
         [0019]    It should be further noted that although the process is described as being linear, and recursive, in alternate embodiments the steps can be performed simultaneously or several at a time, for example steps  30 - 50  may be performed on all paragraphs, simultaneously, using parallel processing. 
         [0020]    In step  35 , the computer system preferably establishes a connection to a dictionary source and extracts definitions for one or more, or each, noun contained within the Selected Paragraph. It should be noted that the dictionary may be stored in a database and included within the computer system, or the computer system may connect to a dictionary that is created and administered by a third-party (e.g., Merriam-Webster), and the computer system may establish a connection thereto via a network such as the internet 
         [0021]    In step  40 , since most dictionaries have multiple definitions for a single word, the set of definitions for the nouns is divided into paragraphs, with each paragraph preferably signifying a single possible definition for the noun (“Definition Paragraph”). It should be noted, that in certain embodiments, the dictionary used may be an encyclopedia, in which case each paragraph would not be a definition for the noun, and in which case the Definition Paragraph would include all, or several, of the paragraphs in the definition. As described herein, in certain cases multiple words may have a single definition paragraph, for example in cases of phrases, such as “hot dog” or idioms such as “under the weather.” These paragraphs may be profiled using methods described in U.S. Pat. No. 6,199,067, which is incorporated by reference herein. 
         [0022]    In step  45  the profile of each Definition Paragraph (or the entire definition if the dictionary is an encyclopedia or a similar dictionary) is preferably compared to the profile of the paragraph from which the noun was extracted as well as the paragraph or paragraphs immediately prior and the paragraph or paragraphs immediately subsequent (“Surrounding Paragraphs”) in order to determine the compatibility between the Definition Paragraph and the themes or contexts and/or optionally the subtext of the text surrounding the predicative phrase from which the noun was extracted. If the selected paragraph happens to be the first paragraph of the text or the chapter, then the profile of the Definition Paragraph is compared to the profile Selected Paragraph and profiles of some—for example, two-three—paragraphs subsequent thereto. Similarly, if the Selected Paragraph is the last paragraph, then the profile of the Definition Paragraph is compared to the profile of the Selected Paragraph and profiles of two-three preceding paragraphs. An exemplary method of determining compatibility is described in further detail below. 
         [0023]    If the compatibility between the profile of the Definition Paragraph and either one of the profiles of the Selected Paragraph or the Surrounding Paragraphs exceeds a certain threshold then, in Step  50 , the predicative phrase from which the noun originated is stored in a new database that is intended to hold the structured data representative of the text that was uploaded (“Structured DB”). This is because a sufficient compatibility indicates the relevance of the noun, and the predicative phrase from which the noun originated, to the text. Once the computer system processes one or more or all of the nouns within a Selected Paragraph, it selects another next paragraph and restarts the process at step  30  until all of the paragraphs within a given text have been processed. In alternate embodiments, the Structured DB may be an existing database, or, alternatively, the information may be stored within the metadata of the text that has been uploaded. 
         [0024]    Within the context of step  45 , in order to utilize a substantial sample of context and/or subtext of text when determining relevance, the paragraphs that precede and follow the Selected Paragraph are preferably defined as being at least 200 words long. Other lengths are also contemplated herein. Therefore, for example, if the Selected Paragraph is preceded by a paragraph that is less than 200 words, then the computer system preferably considers further preceding paragraphs, until the number of words within the preceding paragraphs equals or is greater than 200 words. Thus, if the Selected Paragraph is in the middle of a chapter, it will be preceded and followed by at least 200 words, and if the Selected Paragraph is first or last paragraph it will be followed or preceded by at least 400 words, respectively. It should be noted, that the invention should not be limited to any specific number of words or paragraphs, the profiles of which, are compared to the profile of the Definition Paragraph. 
         [0025]    One exemplary method of determining compatibility between the profile of the Definition Paragraph and the Selected Paragraph and Surrounding Paragraphs, may be based upon a compatibility algorithm, such as: 
         [0000]    
       
         
           
             Compatibility 
             = 
             
               
                 ( 
                 
                   
                     Sum 
                      
                     
                       ( 
                       
                         
                           
                             
                               Weight 
                                
                               
                                   
                               
                                
                               of 
                                
                               
                                   
                               
                                
                               the 
                                
                               
                                   
                               
                                
                               same 
                                
                               
                                   
                               
                                
                               phrase 
                                
                               
                                   
                               
                                
                               in 
                                
                               
                                   
                               
                                
                               User 
                                
                               
                                   
                               
                                
                               summary 
                               * 
                             
                           
                         
                         
                           
                             
                               Weight 
                                
                               
                                   
                               
                                
                               of 
                                
                               
                                   
                               
                                
                               the 
                                
                               
                                   
                               
                                
                               same 
                                
                               
                                   
                               
                                
                               phrase 
                                
                               
                                   
                               
                                
                               in 
                                
                               
                                   
                               
                                
                               Text 
                                
                               
                                   
                               
                                
                               summary 
                             
                           
                         
                       
                       ) 
                     
                   
                   
                     sqrt 
                     ( 
                     
                       
                         
                           
                             
                               Sum 
                                
                               
                                 ( 
                                 
                                   Weight 
                                    
                                   
                                       
                                   
                                    
                                   of 
                                    
                                   
                                       
                                   
                                    
                                   each 
                                    
                                   
                                       
                                   
                                    
                                   phrase 
                                    
                                   
                                       
                                   
                                    
                                   in 
                                    
                                   
                                       
                                   
                                    
                                   User 
                                    
                                   
                                       
                                   
                                    
                                   
                                     summary 
                                     2 
                                   
                                 
                                 ) 
                               
                             
                             * 
                           
                         
                       
                       
                         
                           
                             Sum 
                              
                             
                               ( 
                               
                                 Weight 
                                  
                                 
                                     
                                 
                                  
                                 of 
                                  
                                 
                                     
                                 
                                  
                                 each 
                                  
                                 
                                     
                                 
                                  
                                 phrase 
                                  
                                 
                                     
                                 
                                  
                                 in 
                                  
                                 
                                     
                                 
                                  
                                 Text 
                                  
                                 
                                     
                                 
                                  
                                 
                                   summary 
                                   2 
                                 
                               
                               ) 
                             
                           
                         
                       
                     
                     ) 
                   
                 
                 ) 
               
               * 
               100 
             
           
         
       
     
         [0000]    where the weight refers to the frequency that a context phrase occurs in relation to other context phrases. 
         [0026]    In the exemplary algorithm, determination of the weight of a predicative phrase in a paragraph, is preferably performed by first analyzing the weight of the predicative phrase in each sentence of the paragraph. Each clause of a sentence may be treated as an individual sentence—the clauses are determined (based upon figures of speech and punctuation marks). For each such sentence, the number of all context phrases that occur in that sentence is calculated. If there are 24 different context phrases in a sentence, then the weight of each phrase in the text is 1/24. 
         [0027]    To determine the weight of a context phrase in the paragraph, the weights of the relevant context phrases in each sentence of the paragraph are added together. If there are four sentences and the weights of the relevant context phrase are 1/24, 1/4, 1/6, and 1/2, then the weight of the context phrase in the paragraph is 23/24. 
         [0028]    Additionally, because paragraphs can be different lengths, in order to improve accuracy of the matching, the weight of the context phrase in each paragraph may be further weighted based on the size of the entire paragraph. For example, if the paragraph is 120 words then the weight of the context phrase in that paragraph is divided by 120: (23/24)/120. It should be noted this algorithm is exemplary, and alternate algorithms may be used within the scope of this invention so long as the desired accuracy in matching is achieved. Furthermore, when compiling the profile of the definition paragraph, the weighing based upon the length of the paragraph is not necessary, and may be totally, or partially, discounted due to the expectation that the definition paragraph is unlikely to contain any extraneous information. In the preferred embodiment the compatibility score for including a predicative phrase in the Structured DB is at least 20, although any other score or compatibility algorithm and resulting scores, may be utilized. 
         [0029]    In alternate embodiments of the present invention, steps  6  through  10  may be performed with figures of speech other than nouns, such as verbs, idioms, common phrases or expressions, or adjectives, in order to increase the precision of the Structured DB. For example, if a noun of a particular predicative phrase has a Definition Paragraph that is compatible with the Selected Paragraph and/or Surrounding Paragraphs, but the verb of the predicative phrase is not compatible, then the predicative phrase may be excluded from the Structured DB. 
         [0030]    Since textual information is often not perfect in terms of grammar or spelling, in certain embodiments it may be advantageous to include methods of extracting predicative phrases from sentences that include missing subjects, missing predicates, and/or other grammatical mistakes or oddities. Such a method is preferably incorporated into step  20 , although it may be incorporated at other times, for example, before starting process  100 . 
         [0031]    In certain embodiments of the present invention the computer system may compensate for clauses or sentences that are missing subjects, predicates, or adjectives. To compensate for a missing predicate, the verb “is” or one of its forms (e.g., are, were, was) may be used when extracting predicative phrases from the sentence or clause, where the selection of the proper tense of the verb “is” is preferably based upon rules of grammar and the contexts and subtexts of the surrounding sentences. 
         [0032]    For sentences or clauses that are missing a subject, the computer system may add to the sentence a pronoun “it”, “I”, “he”, “she”, “they,” may be used when extracting predicative phrases from the sentence or sentence, where the selection of the form of the pronoun is preferably selected based upon rules of grammar and the contexts and subtexts of the surrounding sentences. For example, if the sentences that surround the given sentence or clause (that is lacking a subject) are about a woman, then the pronoun “she” is preferably added to the clause that is lacking a subject. 
         [0033]    It should be noted that addition of missing subjects or predicates do not have to be performed together, and algorithms other than the ones described may be used to add subjects or predicates to sentences or clauses that lack them, for example by using the subject or predicate of the immediately preceding clause or sentence or some alternative algorithm that accounts for the missing subject and/or predicate. 
         [0034]    The system may also be configured to handle clauses or sentences that include no parts of speech beside the noun/verb subject/predicate pair. In those instances, the computer system may add a preposition/adjective “in” when extracting predicative phrases from the sentence, although other prepositions may be used and additional or alternative parts of speech may be added such as an article. 
         [0035]    As described with reference to  FIG. 2 , the system for creating structured data may include a process  200  for creating definitions for new words that exist in the text being analyzed, but do not exist in dictionaries. This can be particularly useful in creating structured data from works of fiction where the author makes up their own names for things. For example, Lewis Carroll&#39;s famous poem, “Jabberwocky,” includes many words that have no conventional meaning but make sense in context. 
         [0036]    The process  200  for defining new words begins with step  210 , where a system checks whether a word is in the dictionary. If such word is not, the system, in step  220 , removes an ending from the word, for example -s, -es endings which connote whether the word plural or singular, or that it is a verb, however, in alternate embodiments other endings such as -ing, may also be removed. After the removal of the ending, in step  230 , the word is again checked against the dictionary. If it is still not in the dictionary, the system can assume that the word is a “new word” that needs a definition. This new word is then analyzed to determine what part of speech it is in step  240 . This analysis may be based upon common laws of grammar, whether it is adjacent to a proposition, whether includes known suffixes and/or endings, and/or the words that surround the new word. Once the new word&#39;s part of speech is determined, the paragraph containing the new word, becomes the new word&#39;s Definition paragraph in step  250 . If, in the future, the system ever comes across the same word, it would apply this definition paragraph instead of repeating the process. It should be noted that this exemplary process assumes correct spelling of words in the text, however, a spell-check program may be executed before this process  200 , or during this process  200 , for example after step  220 , to ensure that a new word is, indeed new, and not simply an accidental misspelling