Patent Publication Number: US-8996359-B2

Title: Taxonomy and application of language analysis and processing

Description:
RELATED APPLICATION DATA 
     This application claims the benefit of U.S. Provisional Patent Application Ser. No. 61/487,620, filed May 18, 2012, which is herein incorporated by reference for all purposes. 
    
    
     FIELD 
     This invention pertains to semantics, and more particularly to attitudes represented in text. 
     BACKGROUND 
     While human beings have an intuitive ability to understand language, getting machines to understand language remains a complicated problem. The field of Artificial Intelligence has been working on understanding language for decades. But to date systems either have a very limited ability to understand language in general, or a significant ability to understand language in a very specialized subset of language. For example, voice response systems tend to have fairly limited vocabularies: outside the words the systems are designed to understand, they are lost. 
     Textual analysis has not fared better than understanding spoken language. With textual analysis, the entirety of the text is present, and (usually) in a form that leaves the system with no uncertainty about the specific letters being used (ignoring the problems of character recognition from scanned text). But systems still have difficulty understanding what the text represents. For example, the sentence “The old man the boats” can confuse systems that think the word “old” is an adjective and the word “man” is a noun, where in fact the word “old” is a noun and the word “man” is a verb. 
     Aside from the problem of discerning the intended meaning of various words—words that can be used in different parts of a sentence, or words that are homophones, for example—systems have difficulty discerning the underlying context of text. People when they write, no less than when they speak, convey an attitude about a subject. But systems have difficulty understanding what the writer&#39;s attitude is. 
     A need remains for a way to address these and other problems associated with the prior art. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  shows a system for determining an attitude in text, according to an embodiment of the invention. 
         FIG. 2  shows dimensions along which categories from the category set of  FIG. 1  can be aligned. 
         FIG. 3  shows words in the word set of  FIG. 1 , assigned to various communication types constructed from categories in the category set of  FIG. 1 . 
         FIG. 4  shows how the signature generator of  FIG. 1  can generate a signature for words in a block of text. 
         FIG. 5  shows how the word adder of  FIG. 1  can be used to add a new word to the word set of  FIG. 1 . 
         FIG. 6  shows the system of  FIG. 1 , combining an attitude search engine and a document search engine. 
         FIGS. 7A-7B  show a flowchart of a procedure for using a signature to search a corpus of documents in the system of  FIG. 1 . 
         FIG. 8  show a flowchart of a procedure for generating a signature using the signature generator of  FIG. 1 . 
     
    
    
     DETAILED DESCRIPTION 
       FIG. 1  shows a system for determining an attitude in text, according to an embodiment of the invention.  FIG. 1  shows machine  105 , which can be, for example, a server or a user&#39;s personal computer. In  FIG. 1 , machine  105  is shown as including computer  110 , monitor  115 , keyboard  120 , and mouse  125 . A person skilled in the art will recognize that other components can be included with machine  105 : for example, other input/output devices, such as a printer. In addition,  FIG. 1  machine  105  can include conventional internal components (not shown): for example, a central processing unit, a memory, storage, etc. Although not shown in  FIG. 1 , a person skilled in the art will recognize that machine  105  can interact with other machine, either directly or over a network (not shown) of any type. Finally, although  FIG. 1  shows machine  105  as a conventional desktop computer, a person skilled in the art will recognize that computer system  105  can be any type of machine or computing device capable of providing the services attributed herein to machine  105 , including, for example, a laptop computer, a personal digital assistant (PDA), or a cellular telephone. 
     Machine  105  can include category set  130 , word set  135 , word identifier  140 , signature generator  145 , and word adder  150 . Category set  130  includes a set of categories along which words can be aligned. For example, as shown in  FIG. 2 , one possibility for category set includes the categories of “content” (along dimension  205 ), “quality” (along dimension  210 ), and “form” (along dimension  215 ). In the example embodiment shown in  FIG. 2 , “content” dimension  205  relates to what the content (word or other unit of text) is about, “quality” dimension  210  relates to the quality of the content, and “form” dimension  215  relates to the direction the information is flowing (to or from the speaker). (“Form” dimension  215  is shown with a dashed line to represent that “form” dimension  215  is orthogonal to the page.) 
     Along each dimension (category), a word can take any value along the spectrum: this value represents the word&#39;s membership in the category. For example, along “content” dimension  205 , a word can be either temporal or spatial in nature, and to any extent. Similarly, along “quality” dimension  210 , a word can be dynamic or static in nature, and to any extent, and along “form” dimension  215 , a word can be receiving or giving in nature, and to any extent. In general, each category is independent of the other categories, and therefore can be represented by a dimension that is orthogonal to the dimensions representing the other categories. 
     Either end of the spectrum can be associated with positive or negative numerical values, provided the association is consistent for all words. While the numerical values a word can take along any dimension can be unbounded, keeping the numerical values within the range of [−1, 1] has an advantage of keeping the numerical values normalized. But a person of ordinary skill in the art will recognize that normalization can occur after the membership numerical values are assigned. 
     While  FIG. 2  shows three dimensions, a person of ordinary skill in the art will recognize that there can be any number of dimensions. The graph shown in  FIG. 2  would be modified according to the number of categories (although a representation on paper becomes more complicated when the number of categories exceeds 3). 
     While it is possible to generate signatures for text based on the direct category membership numerical values for words, another way to generate signatures is to identify communication types. A communication type is a combination of categories. For example, using just the “content” and “quality” dimensions  205  and  210 , there are four categories: one for each quadrant in the graph of the two dimensions. These communication types can be identified by the ends of the respective dimensions: “temporal static”, “temporal dynamic”, “spatial static”, and “spatial dynamic”. Words can then be assigned membership in these communication types, as shown in  FIG. 3 . Words can be assigned membership in the communication types directly or indirectly. As an example of indirect membership can be to take the category memberships as they are known, and extrapolate the communication memberships from there. For example, the word “abandon” might be categorized along both “content” and “quality” dimensions  205  and  210 , resulting in a membership in the “spatial static” communication type. In contrast, the word “abound” (word  305 ) might be categorized along “content” dimension  205  but neutral along “quality” dimension  210 , resulting in membership in both the “spatial static” and “spatial dynamic” communication types. 
     In  FIG. 3 , “content” and “quality” dimensions  205  and  210  are shown, with various words assigned to each communication type (i.e., a quadrant of the graph). The word lists shown in  FIG. 3  are partial lists: there are many more words included in each communication type, of which  FIG. 3  shows a subset. A complete list of words in each communication type can be found in U.S. Provisional Patent Application Ser. No. 61/487,620, filed May 18, 2012, incorporated by reference herein. 
     Examination of the word lists in  FIG. 3  reveals some interesting points. First, not every word is necessarily present, even in only one list. For example, common words, such as “a”, “an”, and “the” do not necessarily appear. Second, words can appear in multiple lists. For example, “abound” (word  305 ) appears in both the “spatial static” and “spatial dynamic lists”. This can be indicative of the word “abound” (word  305 ) having no specific quality (i.e., the word “abound” is neutral relative to quality dimension  210 ), and only has membership in the “content” category (dimension  205 ). 
     Each communication type can be assigned a symbol, such as symbols  310 ,  315 ,  320 , and  325 . These symbols can be used as a shorthand for the specific communication type. For example, a reference to symbol “A” (symbol  310 ) can be a shorthand reference for the “spatial static” communication type. This notation provides benefits in how the signature is generated, as discussed below with reference to  FIG. 4 . 
     While  FIG. 3  shows communication types associated with combinations of only two categories, a person of ordinary skill in the art will recognize that any number of categories can be combined to define the communication types, and  FIG. 3  represents only an example embodiment. For example,  FIG. 2  shows three dimensions: “content”  205 , “quality”,  210 , and “form”  215 : the communication types can be associated with all three dimensions. As should be apparent, the number of communication types grows exponentially with the number of categories. Thus, if all three dimensions shown in  FIG. 2  are used in defining the communication types, there will be a total of 8 communication types; if 4 dimensions are used, there will be a total of 16 communication types, and so on. 
     While the term “word” implies a single lexicographic token, a person of ordinary skill in the art will recognize a “word” can be anything, including what might otherwise be considered multiple separate words. For example, the term “baseball bat” consists of two lexicographic words. But while each token of the term “baseball bat” might be a separate word, the images conveyed by each word separately differ from the image conveyed by the complete term. Thus, the meaning of the term “word” is not limited to concepts that can be represented with one word in the language. 
     Returning to  FIG. 1 , word set  135  is a set of words that have memberships in the various categories (or communication types). Word set  135  can be complete, in the sense that it includes every word in the language, or it can be partial, reflecting only those words that are considered significant to date. As discussed above with reference to  FIG. 3 , there are likely words, such as “a”, “an”, and “the”, that are so common as to convey no particular meaning, and therefore do not need to be included in word set  135 . 
     Word identifier  140  is responsible for identifying a word in some text: be it a block of text for which a signature is to be generated, or a document that is being searched. As discussed above, a “word” might include multiple tokens that could be considered separate words: word identifier  140  is responsible for identifying “words”, regardless of how many tokens might be used to represent the concept. 
     Signature generator  145  is responsible for generating a signature for a block of text. Signature generator  145  is discussed further below with reference to  FIG. 4 . 
     Word adder  150  is responsible for adding new words to word set  135 . Word adder  150  is discussed further below with reference to  FIG. 5 . 
       FIG. 4  shows how the signature generator of  FIG. 1  can generate a signature for words in a block of text. In  FIG. 4 , for each word in the block of text, the words have memberships  405 ,  410 ,  415  in various communication types. These membership numerical values  405 ,  410 ,  415  are input to signature generator  145 , and the signature generator can then calculate signature  420 . Signature generator  145  can use any desired formula to calculate signature  420 . 
     As an example of how signature generator  145  can calculate a signature for a block of text, consider three words w 1 , w 2 , and w 3 . Word w 1  is assigned a membership value of 1 in communication type A (referring back to  FIG. 3 , this communication type is the “spatial static” communication type). Word w 2  is assigned a membership value of 0.5 in communication type A, and a membership value of 0.5 in communication type B. Word w 3  is assigned a membership value of 1 in communication type B. Then, for the combination of communication types A and B (represented as “AB”), the portion of the signature attributable to that combination can be calculated as the sum of the membership numerical values for each word in either the A or B communication types, divided by the number of membership numerical values being considered. In the provided example, the contribution of the AB combination can be calculated as (1+0.5+0.5+1)/4, or 0.75. Calculating this formula for each combination of communication types then produces the signature 0.75AA+0.75AB+0.75AC+0.75 AD+0.75BB+0.75BC+0.75 BD+0CC+0CD+0DD. This example is contrived and simple, but the calculation can be used for more complicated blocks of text, and can produce other signatures: for example, 0.17AA+0.37AB+0.15AC+0.14AD+0.66BB+0.43BC+0.04BD+0.71CC+0.29CD+0.03DD, or 0.34AA+0.25AB+0.04AC+0.80AD+0.22BB+0.72BC+0.91BD+0.10CC+0.19CD+0.37DD. 
     The above examples express the signatures as additive over the combinations of communication types. A person of ordinary skill in the art will recognize that the mathematical combination of the combinations of communication types can use any mathematical operation, and that the use of addition is merely exemplary. 
     As can be seen from the example signatures, a communication type can be combined with itself. Thus, “AA” represents a valid communication type, as do “BB”, “CC”, and “DD”. 
     A cursory examination of the example signatures above, along with the algorithm used to calculate the signatures, shows that combinations of communication types are commutative. That is, there is no difference between “AB” and “BA” as communication types. But a person of ordinary skill in the art will recognize that if combinations of communication types are not commutative, then both combinations can be part of a signature. 
       FIG. 5  shows how the word adder of  FIG. 1  can be used to add a new word to the word set of  FIG. 1 . In  FIG. 5 , new word  505  represents a word not currently in word set  135 , and therefore not categorized within category set  130 . Word adder  150  can be used to add new word  505  to word set  135 , producing updated word set  510 . 
     Word adder  150  can include membership assigner  155 . Membership assigner  155  can be used assign new word  505  to one or more categories in category set  130 , shown as new word membership  515 . In embodiments of the invention using communication types as opposed to straight category memberships, membership assigner  155  can be used to assign new word  505  to communication types. 
       FIG. 6  shows the system of  FIG. 1 , combining an attitude search engine and a document search engine. In  FIG. 6 , machine  105  is shown as including both attitude search engine  605  and document search engine  610 . Document search engine  610  is similar to known search engines that can be used to search for text, such as the Google™ search engine. (Google is a trademark of Google Inc.) Attitude search engine  605  can search for documents, rather than by text, by attitude. Given a signature, such as those discussed above, attitude search engine  605  can look for documents with a similar signature/attitude. Attitude search engine can locate just documents with an identical attitude, but it would be unusual for a document to have a signature identical to a given signature. Instead, attitude search engine  605  can locate documents that have similar, but not identical, attitudes: the located documents can be sorted based on how close/far their signature is from the given signature. Distance can be measured in any desired manner. Example distance measures can include Euclidean distance (square root of the sum of the squares of the distances between the corresponding coordinates) and taxicab distance (sum of the absolute values of the distances between the corresponding coordinates), among other possibilities. 
     Attitude search engine  605  obviously depends on knowing the attitude of the documents in the corpus (set) being searched. If the signatures of any of the documents in the corpus are not known in advance, they can be calculated as discussed above, just like a signature can be calculated for any other block of text. The signatures can be stored anywhere: with the document (as metadata), separately from the document (for example, in a signature storage database), or cached locally on machine  105 , among other possibilities. 
     Attitude search engine  605  and document search engine  610  can be combined in any sequence. For example, document search engine  610  can be used to reduce the corpus of documents to a subset; the attitudes of this subset can then be searched using attitude search engine  605  to identify documents that have a similar attitude to a given signature. Alternatively, attitude search engine  605  can be used to identify documents in the corpus that have a similar attitude to a given signature, after which those documents can be searched using document search engine  610 . 
     A person of ordinary skill in the art will recognize that a “document” can be anything that includes a set of words. For example, “documents” can include objects created by word processing programs, or a website on the Internet. But “documents” can also include objects that might not otherwise be considered documents: for example an image file that includes text that can be scanned, or a file that includes text as hidden metadata. In short, a “document” can include anything that has text that can be used to generate a signature. 
       FIGS. 7A-7B  show a flowchart of a procedure for using a signature to search a corpus of documents in the system of  FIG. 1 . In  FIG. 7A , at block  705 , words in a text are identified. At block  710 , category memberships are determined for the identified words. As discussed above, the category memberships can be communication type memberships. At block  715 , a signature for the text is generated, using the category memberships. 
     Once a signature has been generated, it can be used to search a corpus of documents. As shown in  FIG. 7B , one possibility is to search the corpus of documents first using a text search, as shown in block  720 . Then, at block  725 , attitudes can be determined for the results of the search, and the results filtered using the signature, as shown in block  730 . 
     Alternatively, attitudes can be determined for the documents in the corpus, as shown in block  735 . The attitudes can be used to filter the documents in the corpus as shown in block  740 , after which the results can be searched for text, as shown in block  745 . 
     A person of ordinary skill in the art will recognize that the blocks shown in  FIGS. 7A-7B  can be performed in various different orders. Further, various blocks can be omitted. For example, blocks  705 ,  710 , and  715  can be performed to generate a signature, without performing any search based on the signature. This could occur as part of determining an attitude for a document to support a search of the document against other signatures later. 
     The above discussion does not reflect what is considered to be “close” to a given signature. Any desired measure of “closeness” can be used. For example, relative to a given signature, any other signature that is no more distant than some pre-determined limit (either fixed or percentage) can be considered “close”. 
     While the above discussion suggests that signatures are generated using a source text, a person of ordinary skill in the art will recognize that signatures can be generated in other manners. For example, a user can manually enter a signature to use. Even more generally, a user can input a range of signatures. For example, a user can enter several signatures that represent the corners of an m-dimensional polygon: any signature within that polygon is considered to be within the range of the signatures. Or a user can enter ranges for the individual combinations of communication types, with any signature that satisfies the various coordinate ranges considered to be within the range of the signatures. Other possible sources for signatures, and limits for ranges, can be used. 
       FIG. 8  show a flowchart of a procedure for generating a signature using the signature generator of  FIG. 1 . In  FIG. 8 , at block  805  communication types are identified. At block  810 , membership numerical values in the communication types for the identified words are determined. At block  815 , a signature can be calculated using the membership numerical values. 
     The following discussion is intended to provide a brief, general description of a suitable machine in which certain aspects of the invention may be implemented. Typically, the machine includes a system bus to which is attached processors, memory, e.g., random access memory (RAM), read-only memory (ROM), or other state preserving medium, storage devices, a video interface, and input/output interface ports. The machine may be controlled, at least in part, by input from conventional input devices, such as keyboards, mice, etc., as well as by directives received from another machine, interaction with a virtual reality (VR) environment, biometric feedback, or other input signal. As used herein, the term “machine” is intended to broadly encompass a single machine, or a system of communicatively coupled machines or devices operating together. Exemplary machines include computing devices such as personal computers, workstations, servers, portable computers, handheld devices, telephones, tablets, etc., as well as transportation devices, such as private or public transportation, e.g., automobiles, trains, cabs, etc. 
     The machine may include embedded controllers, such as programmable or non-programmable logic devices or arrays, Application Specific Integrated Circuits, embedded computers, smart cards, and the like. The machine may utilize one or more connections to one or more remote machines, such as through a network interface, modern, or other communicative coupling. Machines may be interconnected by way of a physical and/or logical network, such as an intranet, the Internet, local area networks, wide area networks, etc. One skilled in the art will appreciated that network communication may utilize various wired and/or wireless short range or long range carriers and protocols, including radio frequency (RF), satellite, microwave, Institute of Electrical and Electronics Engineers (IEEE) 810.11, Bluetooth, optical, infrared, cable, laser, etc. 
     The invention may be described by reference to or in conjunction with associated data including functions, procedures, data structures, application programs, etc. which when accessed by a machine results in the machine performing tasks or defining abstract data types or low-level hardware contexts. Associated data may be stored in, for example, the volatile and/or non-volatile memory, e.g., RAM, ROM, etc., or in other storage devices and their associated storage media, including hard-drives, floppy-disks, optical storage, tapes, flash memory, memory sticks, digital video disks, biological storage, etc. Associated data may be delivered over transmission environments, including the physical and/or logical network, in the form of packets, serial data, parallel data, propagated signals, etc., and may be used in a compressed or encrypted format. Associated data may be used in a distributed environment, and stored locally and/or remotely for machine access. 
     Having described and illustrated the principles of the invention with reference to illustrated embodiments, it will be recognized that the illustrated embodiments may be modified in arrangement and detail without departing from such principles. And, though the foregoing discussion has focused on particular embodiments, other configurations are contemplated. In particular, even though expressions such as “in one embodiment” or the like are used herein, these phrases are meant to generally reference embodiment possibilities, and are not intended to limit the invention to particular embodiment configurations. As used herein, these terms may reference the same or different embodiments that are combinable into other embodiments. 
     Consequently, in view of the wide variety of permutations to the embodiments described herein, this detailed description and accompanying material is intended to be illustrative only, and should not be taken as limiting the scope of the invention. What is claimed as the invention, therefore, is all such modifications as may come within the scope and spirit of the following claims and equivalents thereto.