Patent Publication Number: US-11663411-B2

Title: Ontology expansion using entity-association rules and abstract relations

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     The present application is a continuation of U.S. patent application Ser. No. 15/007,703, filed on Jan. 27, 2016, and entitled “ONTOLOGY EXPANSION USING ENTITY-ASSOCIATION RULES AND ABSTRACT RELATIONS”, which claims priority to U.S. Provisional Patent Application Ser. No. 62/108,264, filed Jan. 27, 2015 and U.S. Provisional Patent Application Ser. No. 62/108,229, filed Jan. 27, 2015. The disclosures of the above referenced applications are all incorporated herein by reference. 
    
    
     BACKGROUND 
     The present disclosure relates to the field of automated data processing, and more specifically to the application of ontology programming to process and analyze communication data. In the realms of computer and software sciences and information science, an ontology is a structural framework for organizing information regarding knowledge and linguistics within a domain. The ontology represents knowledge within a domain as a hierarchical set of concepts, and the relationships between those concepts, using a shared vocabulary to denote the types, properties, and interrelationship of those concepts. For example, the ontology models the specific meanings of terms as they apply to that domain. 
     SUMMARY 
     Methods are disclosed herein for expanding an initial ontology via processing of communication data, wherein the initial ontology is a structural representation of language elements comprising a set of entities, a set of terms, a set of term-entity associations, a set of entity-association rules, a set of abstract relations, and a set of relation instances. An exemplary method includes providing the initial ontology, providing a training set of communication data, processing the training set of communication data to extract significant phrases and significant phrase pairs from within the training set of communication data, creating new abstract relations based on the significant phrase pairs, creating new relation instances that correspond to the significant term pairs, storing the significant phrases as ontology terms ontology and associating an entity for the added terms, and storing the new relation instances and new abstract relations to the initial ontology. 
     Also disclosed herein is a method for extracting a set of significant phrases and a set of significant phrase co-occurrences from an input set of documents. An exemplary method includes providing a generic language model and providing the set of documents. The exemplary method extracts a set of significant phrases by, for example, generating a source-specific language model by subdividing each document into meaning units, accumulating phrase candidates by creating a set of candidates where each candidate is an n-gram and integrating over the n-grams to compute a prominence score for each n-gram and a stickiness core, and filtering the candidate phrases by calculating a frequency for each of the candidate phrases and calculating an overall phrase score for each of the candidate phrases. The exemplary method can extract significant phrase co-occurrences by, for example, iterating over the meaning units and locating the occurrences of individual phrases, counting the number of co-occurrences of pairs of phrases in the same meaning unit, computing a probability of a phrase and a probability of the co-occurrence of a pair of phrases based on the count, calculating a log-likelihood of the co-occurrence using the probability of the phrase and the probability of the co-occurrence of a pair of phrases and identifying a significant co-occurrence of the pair of phrases if the log-likelihood is over a predetermined log-likelihood threshold. 
     The details of one or more embodiments of the disclosure are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the disclosure will be apparent from the description, drawings, and from the claims. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG.  1    depicts an exemplary embodiment of the ontology process and programming disclosed herein. 
         FIG.  2    depicts examples of hierarchical presentations of ontologies refined according to the disclosed process. 
         FIG.  3    is a schematic diagram of an embodiment of a process for ontology refinement. 
         FIG.  4    is schematic diagram of an embodiment of a process for extracting significant phrases and significant phrase co-occurrences. 
         FIG.  5    is a schematic diagram of an embodiment of a process employing an ontology to tag communication data. 
         FIG.  6    is an exemplary embodiment of an ontology analytics program incorporating and analyzing multiple data platforms. 
         FIG.  7    is a system diagram of an exemplary embodiment of a system for developing an ontology for processing communication data. 
     
    
    
     DETAILED DISCLOSURE 
     According to the present invention, an ontology may be developed and applied across all types of communication data, for example, all types of customer interactions (which may include interactions in multiple languages) as a tool for processing and interpreting such data. The communication data may document or relate to any type of communication, including communications made via phone, via email, via internet chat, via text messaging, etc. For example, communication data may contain any spoken content or any written correspondence or communication, including but not limited to live speech, audio recording, streaming audio, transcribed textual transcripts, or documents containing written communications, such as manuscripts, web pages, email, physical mail, text messages, chats, etc. In the exemplary context of a customer service application, the communication data may be between a customer service agent or an automated system, such as an interactive voice response (IVR) recording, and a customer or caller. While the present disclosure is often exemplified herein by describing an embodiment involving the analysis of audio data, such as recorded audio transcripts, it is to be understood that in alternative embodiments other forms of oral or written communications may be used or analyzed. A particular ontology may be defined for and applied to any domain, and other examples include financial services, consumer products, subscription services, or some other business application involving communication data interactions. 
     In the generation, refinement, or development of an ontology, repeating patterns are identified and ranked based upon statistical significances and then clustered into terms and term relationships. The disclosed solution uses machine learning-based methods to improve the knowledge extraction process in a specific domain or business environment. By formulizing a specific company&#39;s internal knowledge and terminology, the ontology programming accounts for linguistic meaning to surface relevant and important content for analysis. For example, the disclosed ontology programming adapts to the language used in a specific domain, including linguistic patterns and properties, such as word order, relationships between terms, and syntactical variations. Based on the self-training mechanism developed by the inventors, the ontology programming automatically trains itself to understand the business environment by processing and analyzing a corpus of communication data. 
     The disclosed ontology programming, once built and refined for a specific business application, is applied to process communication data to provide valuable analytics for a variety of business needs. For example, the ontology programming can then be utilized to detect and surface meaningful items in a data set, such as a database of recorded employee-customer interactions, and can mine the data set to extract and analyze business data based on an enhanced formulization of a company&#39;s internal knowledge and terminology. 
     An exemplary embodiment of the presently disclosed ontology solution incorporates three main stages. As seen in  FIG.  1   , the three main stages include training  1 , ontology tagging  2 , and ontology analytics  3 . The training phase  1  involves internal machine learning in which the system learns the customer&#39;s specific domain and formulates an initial ontology  110 . The initial ontology  110  is then passed to the tagging module  2 . Tagging is a continuous online process that uses the ontology to tag tracked items in incoming interactions, and stores the tagged interactions in a persistent repository. Finally, the tagged interactions are then used by the analytics module  3  to analyze and extract business data based on an enhanced formulization of a company&#39;s internal knowledge and terminology. A detailed analysis of each stage is addressed in turn. In certain embodiments, the ontology tagging phase  2  and/or the ontology analytics phase  3  can be optional. 
     Generally, an ontology as   as disclosed herein can be defined as             wherein ε is a set of entities,   is a set of terms,   is a set of term-entity associations,   is a set of entity-association rules, in which,   is a set of abstract relations, and   is a set of relation instances. Terms are individual words or short phrases that represent the basic units or concepts that might come up in the communication data. Thus a set of terms   can be defined as a word n-gram that has some meaning. Non-limiting examples of terms, as used herein, include “device”, “iPhone”, “iPhone four”, “invoice”, “I”, “she”, “bill”, “cancel”, “upgrade”, “activate”, “broken”, or “cell phone”, “customer care”, or “credit card.” However, these are not intended to be limiting in any manner and are merely exemplary of basic units or concepts that may be found in a customer service interaction. In certain embodiments, all words in the corpus, or set of communication data, can only be associated with one term, and each term can only be counted once. 
     Development of an ontology involves the identification of term candidates. A set of communication data used for training purposes is divided into potential terms, or term candidates. Terms are then selected from those term candidates. Strong term candidates contain words or word sets that are compact and, in the instance of word sets, the frequency of finding the word set together is very high. An example of a term containing a word set is “credit card number,” as those words very often appear together and refer to a particular, defined object. In addition, good terms often contain words that make more conceptual sense when they are together, as opposed to being on their own. For example, the term “Nova Scotia” is comprised of words that make sense when found together, and would likely not appear or make sense separately. 
     The frequency that the words of a particular word set, or term, appear together may be referred to as the “stickiness” of the term. A “sticky” term is one whose words appear frequently appear together in the corpus. The higher the stickiness ranking, the stronger the term, as it means that the term has meaning in the corpus as a concept. Salient terms are those that stand out or have a higher score relative to similar or neighboring terms. Non-salient terms and less-salient terms are those that appear many times or a relatively large number of times in many different contexts. The score of such non-salient or less-salient terms is lowered as compared to the score for salient terms. The logic is that salient terms are likely to be meaningful as a concept, whereas non-salient terms are not likely to express a particular concept. For example, the score of the term “account number” would be higher than the score of the term “the account number” because the word “the” appears in many different contexts and also by itself. Therefore, the word “the” does not add any significant meaning when joined with the term “account number.” 
     Entities are broader concepts that encapsulate or classify a set of terms. Entities describe semantic concepts to which classified terms are related. Non-limiting examples of classes, may include “objects”, “actions”, “modifiers”, “documents”, “service”, “customers”, or “locations”. However, these are not intended to be limiting on the types of entities, particularly the types of entities that may appear in an ontology directed to a specific or specialized domain. Thus a set of entities ε can be organized in a hierarchical tree-like structure, where for each entity E∈ε, let π(E) be the parent entity of E. 
     The set of entities and terms in the ontology are connected by a set of term-entity associations  ⊆ ×  governed by entity-association rules  ⊆ε×ε×(ε∪{{tilde over (0)}, {tilde over (1)}, {tilde over (2)}}). Each term in the ontology is associated with at least one entity, namely ∀T∃E  T, E ∈ . In some embodiments it is possible for a term to have multiple entity associations. For example, if the term is “jaguar”, the term may be associate with the entity “Animal” and with the entity “CarBrand.” The distance between a term T and E, denoted d(T, E) is 0 in case  T, E ∈ . Alternatively, if there exists an entity E′ such that  T, E′ ∈  and E is an ancestor of E′, then d(T,E)=d(E′,E); in either of these two cases, T&lt;E. Otherwise, d(T,E)=∞. 
     Abstract relations express relations between two ontology entities. A set of abstract relations can be defined as  ⊆×ε×ε. The distance between two entities E 1 , E 2 ∈ε in the hierarchy chain, denoted d (E 1 , E 2 ), can be defined as the number of steps down or up the hierarchy of entities. For example, if E 1  is an ancestor of E 2  then d(E 1 , E 2 ) is defined as the number of steps down the hierarchy, whereas if E 2  is an ancestory of E 1  then then d(E 1 , E 2 ) is defined as the number of steps up the hierarchy of entities. If none of these conditions apply however, then d(E 1 , E 2 )=∞. 
     Relation instances express relations between ontology terms. A set of relation instances can be defined as  ⊆ × . For example, the term “pay” may be related to the term “bill” to form the relation “pay&gt;bill.” In another non-limiting example, the term “pay” may be associated under the entity “action” and the term “bill” may be defined in the entity “documents”. Still further binary directed relationships can be defined between these entity/term pairs. For example, the action/pay pair may be related to the document/bill pair in that the payment action requires an underlying document, which may be a bill. In another non-limiting example, the term “broken” may be defined in the entity “problems” and the term “iPhone” may be defined in the entity “device”. The problem/broken pair can also have a directed relationship to the “devices” entity in which the “iPhone” term is a specific example as represented by the devices/iPhone pair. 
       FIG.  2    depicts exemplary, non-limiting embodiments of a portion an ontology  10 , including entities  12  and  14 , and terms  16 . The arrows between the terms and entities represent some relations that may exist in the depicted portion of the exemplary ontology. 
       FIG.  3    represents an overview of an exemplary training phase  1  for refining an initial ontology  110 . The initial ontology  110  is refined by a step-by-step pipeline process that applies various features to the defined data. These features include the extracting and surfacing of words and phrases in the corpus that helps users make non-trivial observations about a customer-specific domain. 
     As exemplified in  FIG.  3   , the ontology training process begins with an initial ontology  110 . In certain embodiments, the initial ontology can be a canned ontology. A canned ontology is an ontology that is developed for a particular business application or sector—a unique language model that reflects, or fits, the relevant business application. For example, a canned ontology may be developed for telecommunications applications, and the telecom canned ontology would differ from that developed for insurance industry applications, which would differ from the canned ontology developed for the finance industry, etc. A user, or company, in a particular industry may begin the training process by implementing one or more relevant canned ontologies. The canned ontology is then refined during the ontology training phase  1  ( FIG.  1   ), to develop a specialized ontology for that particular user. If a user starts the training process by implementing more than one canned ontology, the canned ontologies are preferably unified during the ontology training phase  1 , so that one, unified and encompassing ontology structure is developed for the user. 
     A canned ontology can be developed in various ways. For example, a canned ontology may be developed by taking data samples generated by multiple different users or classes in a particular industry. Alternatively, a canned ontology may be created by combining multiple ontologies developed using sample data sets from a particular industry. For example, multiple users may develop an ontology for their particular business based on their own internal data. Those individual ontologies may then be combined through a process of comparison, wherein the common elements in the ontologies receive heavier weight than the elements that differ. In still other embodiments, a canned ontology could be developed over a series of training processes where one user develops an ontology based on its data, and then the next user uses the first user&#39;s ontology as a canned ontology input to its training process. Thereby, each subsequent user implements a previous user&#39;s output ontology as a canned ontology  201  input, and amends or refines that canned ontology through the training process to develop its own ontology. 
     In  FIG.  3   , after an initial ontology  110  is obtained, for example a canned ontology, the initial ontology  110  is refined using a developed training data set  205 . Training data set  205  can be developed by, for example, accumulating data for each planned ontology that contains a range of communications sufficient to be representative of the language and linguistic structure of that domain. In certain embodiments, the training data set  205  contains various types of data and originates over a sufficiently long time period, for example, between about a month previous to the date of implementing the training step up until the most recent available data at the time of execution of the training. The training data set  205  may include data from a single platform, such as transcriptions of customer service phone calls, or it may include data from multiple platforms, such as customer service calls, emails, web chats, text messages, web page comments, facebook or twitter interactions, customer surveys, etc (e.g., see  FIG.  7   ). In still other embodiments, the sample data set includes other types of business documents such as, but not limited to, white papers, user manuals, service manuals, or catalogs. 
     In certain of the embodiments, the ontology training phase  1  is not executed until a certain, predefined amount of data is gathered for the training. In one embodiment, a configured scheduler may monitor the data gathering process and count the number of records or amount of data added. When the number of records or amount of data in the training data set  205  reaches that predetermined amount, the scheduler may execute the ontology training process  1 . Alternatively or additionally, the scheduler may monitor the types and/or variety of data added to the training data set  205  so as to ensure that the training  301  does not begin until certain types and/or varieties of data are available to the training set. In certain embodiments, the communication data is transformed into a usable format as part of training phase  1 . For example, audio data from one or more customer interactions between a customer service agent/IVR and a customer/caller can be automatically transcribed into a textual file through speech recognition techniques, and the textual file can be processed as described herein to refine an ontology. 
     Once one or more initial ontologies  110  are selected and a training data set  205  is developed, the training phase  1  continues by executing a training module  300 , example of which is depicted in  FIG.  3   . In general, training module  300  is an automated process that accepts an initial ontology and a set of text documents, gives scores to the existing ontology components based on their relevance to the text documents, and enriches the initial ontology with additional terms, abstract relations and relation instances that are characteristic to those documents. 
     Starting with the embodiment of  FIG.  3   , at step  301 , the initial ontology  110  and training data set  205  and are is fed into the training module  300 . In certain embodiments, the training module  300  then extracts a set of significant phrases and significant phrase pairs from the training data set  205 , by executing, for example, method  400  as shown in  FIG.  4   , which is described in further detail below. In alternative embodiments, the set of significant phrases and significant phrase pairs are entered manually by a user and then used by training module  300  is the subsequent steps below. 
     After the set of significant phrases and significant phrase pairs are obtained whether through method  400  or manually, the significant phrases are then added as ontology terms to the initial ontology  110  and associated with ontology entities at step  302 . As used herein, a phrase ϕ=&lt;w 1 , . . . w n &gt; comprises a sequence for words. It can be said that a term T′ that comprises the word sequence &lt;w′ 1 , . . . , w′ k &gt; is contained in ϕ, and denoted by T′⊂ϕ, if k&lt;n and there exists some index i such that: w i =w′ 1 , . . . , w i+k−1 =w′ k . A pair of terms T′, T″ are mutually contained in ϕ, if both are contained in ϕ (namely T′, T″⊂ϕ) with no overlap between them, namely T′∩T″=ø. 
     In certain exemplary embodiments, given a set of phrases Φ, training module  300  performs step  302  by sorting the phrases according to their length (shorter phrases are processed first), and then for each ϕ∈Φ, and performing the following:
     1. If there exists a term T∈  comprising a word sequence that is identical to ϕ, there is no need to further process this phrase.   2. If there exists T 1 , T 2 ∈  that are mutually contained in ϕ, and there exists &lt;E 1 , E 2 &gt;∈  such that T 1 &lt;E 1  and T 2 &lt;E 2 —then this phrase contains a relation instance, and there is no need to further process it.   3. Iterate over all entity-association rules   and compute:   

     
       
         
           
             
               X 
               * 
             
             = 
             
               
                 argmin 
                 
                   
                     〈 
                     
                       
                         E 
                         1 
                       
                       , 
                       
                         E 
                         2 
                       
                       , 
                       
                         E 
                         ~ 
                       
                     
                     〉 
                   
                   ∈ 
                   𝒳 
                 
               
               ⁢ 
               
                 { 
                 
                   
                     
                       
                         d 
                         ⁡ 
                         ( 
                         
                           
                             T 
                             1 
                           
                           , 
                           
                             E 
                             1 
                           
                         
                         ) 
                       
                       + 
                       
                         d 
                         ⁡ 
                         ( 
                         
                           
                             T 
                             2 
                           
                           , 
                           
                             E 
                             2 
                           
                         
                         ) 
                       
                     
                     ❘ 
                     
                       T 
                       1 
                     
                   
                   , 
                   
                     
                       
                         
                           T 
                           2 
                         
                         ⊂ 
                         ϕ 
                       
                       ∧ 
                       
                         
                           T 
                           1 
                         
                         ⁢ 
                         ∩ 
                         ⁢ 
                         
                           T 
                           2 
                         
                       
                     
                     = 
                     ∅ 
                   
                 
                 } 
               
             
           
         
       
         
         
           
             Namely, identify the most specific rule in  that corresponds to the phrase. If no such rule exists, discard the phrase ϕ. Otherwise, act according to the third component {tilde over (E)} in the tuple that comprises the rule X* (recall that {tilde over (E)}∈ε∪{{tilde over (0)}, {tilde over (1)}, {tilde over (2)}}):
           If {tilde over (E)}={tilde over (0)}, discard the phrase ϕ.   If {tilde over (E)}={tilde over (1)}, add a new term T* into   that corresponds to ϕ, and add a term-entity associations  T*, E 1 &gt; into   where E 1  is the entity of the first contained sub-term with respect to the rule X*, namely T 1 .   If {tilde over (E)}={tilde over (2)}, add a new term T* into   that corresponds to ϕ, and add a term-entity associations  T*, E 2 &gt; into  , where E 2  is the entity of the second contained sub-term with respect to the rule X*, namely T 2 .   Otherwise, {tilde over (E)}∈ε, so add a new term T* into   that corresponds to ϕ, and add the term-entity associations  T*,{tilde over (E)}&gt;.   
         
           
         
       
    
     Following step  302 , at step  305  new abstract relations are then added to the initial ontology  110  using the obtained set of significant phrase pairs. As used herein, the set of significant phrase pairs are denoted Ψ⊆Φ×Φ, where ω: Ψ→   +  is a scoring function that associates a score to a phrase pair. 
     In certain exemplary embodiments, training module  300  performs step  304  in the following way:
     1. Define a weight function W: ε×ε→   + . Initially, W(E 1 , E 2 )←0 for each pair of entities &lt;E 1 , E 2 &gt;.   2. Iterate over all pairs &lt;ϕ 1 , ϕ 2 &gt;∈Ψ. If there exists T 1 , T 2  ∈  that correspond to ϕ 1 , ϕ 2 , respectively, iterate over all entity pairs &lt;E 1 , E 2    such that T 1 &lt;E 1  and T 2 &lt;E 2 , and update their weight as follows:   

     
       
         
           
             
               W 
               ⁡ 
               ( 
               
                 
                   E 
                   1 
                 
                 , 
                 
                   E 
                   2 
                 
               
               ) 
             
             ← 
             
               
                 W 
                 ⁡ 
                 ( 
                 
                   
                     E 
                     1 
                   
                   , 
                   
                     E 
                     2 
                   
                 
                 ) 
               
               + 
               
                 
                   ω 
                   ⁡ 
                   ( 
                   
                     
                       ϕ 
                       1 
                     
                     , 
                     
                       ϕ 
                       2 
                     
                   
                   ) 
                 
                 
                   
                     
                       d 
                       ⁡ 
                       ( 
                       
                         
                           T 
                           1 
                         
                         , 
                         
                           E 
                           1 
                         
                       
                       ) 
                     
                     · 
                     
                       d 
                       ⁡ 
                       ( 
                       
                         
                           T 
                           2 
                         
                         , 
                         
                           E 
                           2 
                         
                       
                       ) 
                     
                   
                 
               
             
           
         
       
         
         3. Finally, iterate over all entity pairs &lt;E 1 , E 2 &gt; that are not already contained in the set of abstract relations  , and do the following:
       If there exists an abstract relation &lt;E′ 1 , E′ 2   ∈  such that E′ 1  is an ancestor of E 1  and E′ 2  is an ancestor of E 2  (namely, if &lt;E 1 , E 2 &gt; refines an existing abstract relation), and W(E 1 , E 2 )&gt;W R  (where W R  is a parameter that serves as a weight threshold for refining abstract relations), add a new abstract relation &lt;E 1 , E 2 &gt; into  .   Otherwise, if W(E 1 , E 2 )&gt;W N  (where W N &gt;W R  is a parameter that serves as a weight threshold for completely new abstract relations), add a new abstract relation &lt;E 1 , E 2 &gt; into  .   
     
       
    
     After adding the new abstract relations to the ontology at step  304 , training module  300  then adds new relation instances to the ontology based on the significant phrase pairs Ψ and the scoring function ψ:Ψ→   +  at step  306 . Training module  300  performs step  304  in for example, the following way: Iterate over all pairs &lt;ϕ 1 , ϕ 2 &gt;E∈Ψ. If there exists T 1 , T 2  ∈  that correspond to ϕ 1 , ϕ 2 , respectively, compute an entity pair &lt;E 1 *, E 2 *&gt; such that: 
               〈       E   1   *     ,     E   2   *       〉     =       argmin         〈       E   1     ,     E   2       〉     ∈   𝒜     |         T   1     ≺     E   1       ∧       T   2     ≺     E   2             ⁢     {       d   ⁡   (       T   1     ,     E   1       )     +     d   ⁡   (       T   2     ,     E   2       )       }             
Namely, select the most specific abstract relation &lt;E 1 *, E 2 *&gt; that corresponds to the term pair  T 1 , T 2 &gt;.
         If no such abstract relation exists, discard the term pair.   Otherwise, if ω(ϕ 1 ,ϕ 2 )&gt;τ(τ is a parameter), add the relation instance &lt; T 1 , E 1 *&gt;,  T 2 , E 2 *&gt;&gt; into  .       

     Upon completion of the adding of new relation instances at step  306 , the training phase  1  may be completed  308  and the training module  300  may output and store the refined ontological structure at step  310 , which is a refined version of the initial ontology  110  referred to in the discussion of  FIG.  1   . Optionally, the output ontology can be updated and further refined through a new ontology training  1 . For example, a training phase  1  may be initiated every week, month, year, etc. The new training phase may use the existing ontology as a “canned ontology” of sorts, and may use a recent training data set generated in a defined recent period. For example, if a new training phase is scheduled to occur every month to update an existing ontology, then the training data set would preferably include data collected during the most recent month. Thus, the training process  1  will update the existing ontology to incorporate, for example, new terms, term-entity associations, abstract relations, and relation instances. Thereby, the ontology is automatically updated to keep up with the changes that occur in the company, the industry, the customers, etc. 
       FIG.  4    depicts a schematic diagram of an exemplary process  400  for extracting a set of significant phrases and a set of significant phrase co-occurrences from an input set of text documents. Given a large collection of text documents that originate from a common source or are related to a certain domain, the exemplary process  400  identifies the phrases in the collection that carry some significance to a specific domain and identifies pairs of phrases that tend to co-occur in the collection. Such documents may include articles that are taken from a journal, social media posts of a specific group, for example. Such documents may even include texts obtained by transcribing audio recording for a specific company. 
     Exemplary method  400  beings by accepting as inputs a generic language model L G  and a set of documents, wherein generic model L G  is a model that is supposed to model the language distribution of generic texts that are not specific to the common source or its associated field of interest. 
     For ease of description and conception, the exemplary process  400  is divided into four exemplary phases  402 ,  404 ,  406 , and  408 , three of which can be used for the extraction of significant phrases  402 ,  404 , and  406 , and one of which can be used in for the extraction of significant phrase co-occurrences. However, such divisions are not intended to be a limiting of the embodiment or the invention. In certain embodiments not all of the phases need be performed. 
     In regards to the extraction of a set of significant phrases, an exemplary method  400  can include, for example: first, exemplary language-model generation phase (step  402 ); second, exemplary candidate accumulation phase (step  404 ), and third, exemplary significant phrase filtering phase (step  406 ). 
     As used, L(w 1 , . . . , w m ) denotes the log-probability of the word sequence w 1 , . . . w m , as induced by the language model L. For example, if L is a trigram model this log-probability can be expressed as: 
     
       
         
           
             
               L 
               ⁡ 
               ( 
               
                 
                   w 
                   1 
                 
                 , 
                 … 
                     
                 , 
                 
                   w 
                   m 
                 
               
               ) 
             
             = 
             
               
                 log 
                 10 
               
               ( 
               
                 
                   p 
                   ⁡ 
                   ( 
                   
                     w 
                     1 
                   
                   ) 
                 
                 · 
                 
                   p 
                   ⁡ 
                   ( 
                   
                     
                       w 
                       2 
                     
                     ❘ 
                     
                       w 
                       1 
                     
                   
                   ) 
                 
                 · 
                 
                   
                     ∏ 
                     
                       k 
                       = 
                       3 
                     
                     n 
                   
                   
                     p 
                     ⁡ 
                     ( 
                     
                       
                         
                           w 
                           k 
                         
                         ❘ 
                         
                           w 
                           
                             k 
                             - 
                             2 
                           
                         
                       
                       , 
                       
                         w 
                         
                           k 
                           - 
                           1 
                         
                       
                     
                     ) 
                   
                 
               
               ) 
             
           
         
       
     
     The language-model generation phase step  402  can include, or example, iterating over the input documents and subdividing each document into meaning units. Meaning units are sequences of words that express an idea. In the context of spoken or informal communications, the meaning unit may be the equivalent of a sentence. Meaning units can divide scripts or utterances into a basic segments of meaning or the equivalent of a sentence, when narrated text is compared to written text. A meaning unit may be a sequence of words spoken by one speaker in a conversation without interference. A non-limiting example of a meaning unit in a customer service context would be the customer statement “I would like to buy a phone.” In some embodiments, the meaning unit may include some level of speaker interference, e.g. very short acknowledgement statements by the other speaker. All terms in the meaning unit are linked within the boundaries of the meaning unit. In certain embodiments the subdividing above is induced by punctuation marks. However, if the input texts are generated by transcribing audio data, the subdividing can be performed using a zoning algorithm; see for example the zoning algorithm described in U.S. Pat. No. 14,467,783. 
     Once the meaning units have been subdivided, the Language-model generation phase (step  402 ) can process each of the meaning units and count the number of n-grams up to some predetermined order (unigrams, bigrams, trigrams, etc.). An order of 3 or 4 has been seen to yield good results. Once the number of n-grams are counted, language-model probabilities can be estimated based on the given counters, and a source-specific language model L s  can be obtained. One suitable way of obtaining source-specific language model L s , is by a applying a suitable smoothing technique; see, for example: S. F. Chen and J. Goodman,  An empirical study of smoothing techniques for language modeling, in Computer Speech and Language  (1999) volume 13, pages 359-394. 
     In an exemplary candidate accumulation phase (step  404 ), a set of candidates   are created, where each candidate is an n-gram (a sequence of n words), and its respective number of occurrences stored. For example, once that the input text documents have been subdivided into meaning units, the following can be performed for each meaning unit:
         For each 1≤n≤n max  (n max  is the maximal number of words per phrase):
           Iterate over all n-grams in the meaning unit. Let &lt;w 1 , . . . , w n    be the words in the current n-gram:
               1. Compute the prominence score for the n-gram:   
               
               

     
       
         
           
             
               P 
               ⁡ 
               ( 
               
                 
                   w 
                   1 
                 
                 , 
                 … 
                     
                 , 
                 
                   w 
                   n 
                 
               
               ) 
             
             = 
             
               
                 1 
                 n 
               
               · 
               
                 ( 
                 
                   
                     
                       L 
                       S 
                     
                     ( 
                     
                       
                         w 
                         1 
                       
                       , 
                       … 
                           
                       , 
                       
                         w 
                         n 
                       
                     
                     ) 
                   
                   - 
                   
                     
                       L 
                       G 
                     
                     ( 
                     
                       
                         w 
                         1 
                       
                       , 
                       … 
                           
                       , 
                       
                         w 
                         n 
                       
                     
                     ) 
                   
                 
                 ) 
               
             
           
         
       
         
         
           
             
               
                 
                   
                     2. If P(w 1 , . . . , w n )&lt;τ P  (where τ P  is a prominence threshold), discard the n-gram. 
                     3. Otherwise:
                   If n=1, store the unigram (namely, if the unigram is already in  , increment its occurrences counter—and otherwise insert it into   with a single occurrence).   if n&gt;1, compute-the-stickiness score for the n-gram:   
                 
                   
                 
               
             
           
         
       
    
     
       
         
           
             
               S 
               ⁡ 
               ( 
               
                 
                   w 
                   1 
                 
                 , 
                   
                 … 
                     
                 , 
                 
                   w 
                   n 
                 
               
               ) 
             
             = 
             
               
                 
                   L 
                   S 
                 
                 ( 
                 
                   
                     w 
                     1 
                   
                   , 
                   … 
                       
                   , 
                   
                     w 
                     n 
                   
                 
                 ) 
               
               - 
               
                 
                   max 
                   
                     1 
                     ≦ 
                     k 
                     &lt; 
                     n 
                   
                 
                 
                   { 
                   
                     
                       
                         L 
                         S 
                       
                       ( 
                       
                         
                           w 
                           1 
                         
                         , 
                         … 
                             
                         , 
                         
                           w 
                           k 
                         
                       
                       ) 
                     
                     + 
                     
                       
                         L 
                         S 
                       
                       ( 
                       
                         
                           w 
                           
                             k 
                             + 
                             1 
                           
                         
                         , 
                         … 
                              
                         , 
                         
                           w 
                           n 
                         
                       
                       ) 
                     
                   
                   } 
                 
               
             
           
         
       
         
         
           
             
               
                 
                   
                     
                       
                         If S(w 1 , . . . , w n )&lt;τ S  (where τ S  is a stickiness threshold), discard the n-gram. 
                         Check if there exists in   a partially overlapping m-gram &lt;u 1 , . . . , u m &gt; that has a significantly higher significance score than &lt;w 1 , . . . , w n &gt;, namely (τ O  is a threshold):
 
 S ( u   1   , . . . ,u   m )− S ( w   1   , . . . ,w   n )&gt;τ O  
 
                         If so, discard the n-gram. 
                         Otherwise, store the n-gram in  . 
                       
                     
                   
                 
               
             
           
         
       
    
     Once the candidate accumulation phase (step  404 ) is completed, the significant phrase filtering phase (step  406 ) can calculate a phase score for each candidate phrase and then keep only those phrases whose score is above a threshold. The candidate accumulation phase (step  404 ) can be performed by, for example, integrating over the n-grams in  , let f(w 1 , . . . , w n ) be the frequency of the phrase &lt;w 1 , . . . , w n &gt;, which can be computed by the counter stored at   normalized by the total number of words encountered in all text documents. The overall phrase score for the candidate &lt;w 1 , . . . , w n &gt; can computed in, for example, the following manner:
 
Φ( w   1   , . . . ,w   n )α P   ·P ( w   1   , . . . ,w   n )+α S   ·S ( w   1   , . . . ,w   n )+α f ·log  f ( w   1   , . . . ,w   n )
 
     The significant phrase filtering phase  406  only keeps those phrases for which Φ(w 1 , . . . , w n )&gt;τ Φ . Where τ Φ  is a threshold for the overall phrase score α P , α S  and α f  fare scaling parameters that can be used to give more significance to one of the measures over another, these may be optional. 
     After the set of significant terms are extracted, method  400  continues can continue to the fourth phase  408  where significant phrase co-occurrences are extracted. Namely, those pairs of phrases that tend to co-occur in the same meaning unit, possible up to some distance. The extraction of significant phrase co-occurrences can begin by, for example, iterating over all meaning units and locating the occurrences of the individual phrases. In certain embodiments longer phrases are preferred over shorter ones. In case of overlapping occurrences of a pair of phrases, only the occurrence of the longer phrases is kept. As used herein, c(ϕ) denotes the number of occurrences of the phrase ϕ. The number of co-occurrence of pairs of phrases in the same meaning unit is counted. Depending on parameter, one may count only pairs of phrases that are separated by m words at most. As used herein, c(ϕ 1 , ϕ 2 ) denotes the number of co-occurrences of the phrases ϕ 1  and ϕ 2  Depending on another parameter, this counter may or may not be sensitive to order. 
     Based on the counter values, it is possible to compute the probability p(ϕ) of a phrase and the probability p(ϕ 1 ,ϕ 2 ) of the co-occurrence of a pair of phrases. The log-likelihoods of the co-occurrence of phrases ϕ 1  and ϕ 2  can be defined as follows: 
     
       
         
           
             
               ℓ 
               ⁡ 
               ( 
               
                 
                   ϕ 
                   1 
                 
                 , 
                 
                   ϕ 
                   2 
                 
               
               ) 
             
             = 
             
               log 
               ⁢ 
               
                 
                   p 
                   ⁡ 
                   ( 
                   
                     
                       ϕ 
                       1 
                     
                     , 
                     
                       ϕ 
                       2 
                     
                   
                   ) 
                 
                 
                   
                     p 
                     ⁡ 
                     ( 
                     
                       ϕ 
                       1 
                     
                     ) 
                   
                   · 
                   
                     p 
                     ⁡ 
                     ( 
                     
                       ϕ 
                       2 
                     
                     ) 
                   
                 
               
             
           
         
       
     
     After calculating the log-likelihoods, phase  408  then identifies a co-occurrence of a pair of phases &lt;ϕ 1 ,ϕ 2 &gt; if l(ϕ 1 ,ϕ 2 )&gt;τ l , where τ l  is a log-likelihood threshold. 
     In summary, the exemplary process  400  described above is capable of extracting a set of significant phrases and a set of significant phrase co-occurrences from an input set of text documents that related to some specific domain. Since phrases must be significantly more prominent in the processed texts with respect to the generic model, the prominence score can help filter very frequency phrases in the language that carry no special significance in the specific domain. Similarly, the stickiness score can help filter false phrases that are induced by an incidental concatenation of a pair of shorter terms. Process  400  can be used in in ontology refining process described in  FIG.  1    to automate the identification of a set of significant phrases and significant phrase pairs 
     Referring back to  FIG.  1   , once the training phase  1  generates and/or updates a refined ontology, the ontology can then be used be by any number of analytics modules or algorithms (see stages  2  and  3  of  FIG.  1   ) to interpret textual transcripts of customer service interactions for example. In this context, the interpretation of these customer service interactions can be used to identify content or meaning of a particular customer service interaction, or may be used across many customer service interactions in order to identify topics, trends, or emerging issues. 
     More specifically, once the initial ontology  110  has been refined in training stage  1 , the system can use a tagging process  2  to tag meaningful elements in incoming communications data, such as transcribed interactions, and then store the tagged data for use by a analytics module  3 . In certain embodiments for instance, the tagging process  2  can include loading key ontology data is loaded into the tagging system, and then executing the process depicted at  FIG.  5   , wherein communications data is fetched  320 , tagged  322 , and stored  330 . Specifically, during the loading stage, the ontology and produced during the training stage  1  is imported into the tagger&#39;s internal memory so that they may be used for tagging  2 . This data includes ontology data            —i.e., entities, terms, term-entity associations, entity-association rules, abstract relations, and relation instances. The data is used by the tagger during the pipeline process of tagging new, incoming communications data. 
     Once the refined ontology data has been loaded into the tagger&#39;s internal memory, the fetch/tag/store process begins. In the exemplary embodiment of  FIG.  5   , communication data is fetched  320  from the queue and then tagged  322  in accordance with the entity-association rules set up by the ontology data. More specifically, the tagger retrieves a communication data set, such as the next customer interaction transcript, from the queue, for example using the Post-Processing Framework (PPFW). Depending on the system configurations, the tagger can process several interactions simultaneously. The tagger then tags  322  meaningful elements in the communication data set, such as abstract relations and relation instances  328  defined by the ontology. Optionally, the tagging can include tagging of scripts  324  and/or meaning units  326  (zoning) as well. Optionally, the tagging can include the tagging of terms as well. The tagging and zoning above can be assisted by, for example, method  400 . The tagged communications data is then stored  330  in a dedicated database, such as a Sybase IQ database. 
     In one embodiment, for each data set (or bulk of datasets, depending on the system configuration) the system tags specific elements and then saves the interaction in a temporary repository, the Context module  321 . The process tagging process can be repeated for each element—scripts  324 , zoning  326  (meaning unit tagging), and relations  328 . After the interactions have been tagged with relations  328 , the Write to Database module  333  processes the tagged interaction and sends it to the database for storing  330 . As described above, the data set can include any number of types and formats of data. For example, the data set may include audio recordings, transcribed audio, email communications, text message communications, etc. 
     The tagged communications data can then be used to generate any number of analytics  3  (see  FIG.  1   ). For example, the tagged communications data can be processed by a user to develop qualitative and quantitative data about the user company&#39;s customer service interactions. This may be done, for instance, via analysis of themes. As described above, themes are groups or abstracts that contain synonymous relations, and they provide users with a compressed view of the characteristics of interactions throughout the data set. As one theme represents a single concept occurring in many different calls, themes provide a summary of the calls. In this way, themes allow users to quickly and easily understand the nature of a multitude of interactions within the call set. 
     Any variety of data can be processed and tagged.  FIG.  6    illustrates a flow chart demonstrating one embodiment of a communication data set  10  that can be tagged  2  and analyzed  3  using an ontology refined according to the above-described process. As shown therein, communication data  10  may include, for example, audio data, text transcription, email, chat, web page feedback or comments, social networking interactions (such as via Facebook or Twitter), and customer surveys (e.g. taken via phone or email). For example, in a customer service application or industry, a customer service interaction, or series of interactions, may take place over multiple platforms regarding a certain issue with a particular customer. In a preferred embodiment, all such data can be incorporated and analyzed using the ontology to create a complete picture of the entire customer service system. The communication data  10  is all tagged  2  utilizing the ontology. In a preferred embodiment, the ontology is constructed according to the above described process using a sample dataset that included all types of communication data  10  that will be processed using that ontology because such training may provide a more robust ontology that can account for the linguistic norms of those particular data types. However, the invention also contemplates that a robust ontology may be applied to tag and analyze data types not used in the training of that ontology. Once a communication data set  10  is tagged and analyzed, it is stored and outputted for use and/or review by the user. 
       FIG.  7    is a system diagram of an exemplary embodiment of a system  1200  for automated language model adaptation implementing an ontology training module  300 . The system  1200  is generally a computing system that includes a processing system  1206 , storage system  1204 , software  1202 , communication interface  1208  and a user interface  1210 . The processing system  1206  loads and executes software  1202  from the storage system  1204 , including a software application module  1230 . When executed by the computing system  1200 , software module  1230  directs the processing system  1206  to operate as described in herein in further detail, including execution of the ontology training module  300  and process  400 . 
     Although the computing system  1200  as depicted in  FIG.  7    includes one software module in the present example, it should be understood that one or more modules could provide the same operation. Similarly, while description as provided herein refers to a computing system  1200  and a processing system  1206 , it is to be recognized that implementations of such systems can be performed using one or more processors, which may be communicatively connected, and such implementations are considered to be within the scope of the description. 
     The processing system  1206  can comprise a microprocessor and other circuitry that retrieves and executes software  1202  from storage system  1204 . Processing system  1206  can be implemented within a single processing device but can also be distributed across multiple processing devices or sub-systems that cooperate in existing program instructions. Examples of processing system  1206  include general purpose central processing units, applications specific processors, and logic devices, as well as any other type of processing device, combinations of processing devices, or variations thereof. 
     The storage system  1204  can comprise any storage media readable by processing system  1206 , and capable of storing software  1202 . The storage system  1204  can include volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. Storage system  1204  can be implemented as a single storage device but may also be implemented across multiple storage devices or sub-systems. Storage system  1204  can further include additional elements, such a controller capable, of communicating with the processing system  1206 . 
     Examples of storage media include random access memory, read only memory, magnetic discs, optical discs, flash memory, virtual memory, and non-virtual memory, magnetic sets, magnetic tape, magnetic disc storage or other magnetic storage devices, or any other medium that can be used to store the desired information and that may be accessed by an instruction execution system, as well as any combination or variation thereof, or any other type of storage medium. In some implementations, the storage media can be a non-transitory storage media. In some implementations, at least a portion of the storage media may be transitory. It should be understood that in no case is the storage media merely a propagated signal. 
     User interface  1210  can include a mouse, a keyboard, a voice input device, a touch input device for receiving a gesture from a user, a motion input device for detecting non-touch gestures and other motions by a user, and other comparable input devices and associated processing elements capable of receiving user input from a user. Output devices such as a video display or graphical display can display an interface further associated with embodiments of the system and method as disclosed herein. Speakers, printers, haptic devices and other types of output devices may also be included in the user interface  1210 . 
     As described in further detail herein, the computing system  1200  receives communication data  10 . The communication data  10  may be, for example, an audio recording or a conversation, which may exemplarily be between two speakers, although the audio recording may be any of a variety of other audio records, including multiple speakers, a single speaker, or an automated or recorded auditory message. The audio file may exemplarily be a .WAV file, but may also be other types of audio files, exemplarily in a pulse code modulated (PCM) format and an example may include linear pulse code modulated (LPCM) audio data. Furthermore, the audio data is exemplarily mono audio data; however, it is recognized that embodiments of the method as disclosed herein may also be used with stereo audio data. In still further embodiments, the communication data  10  may be streaming audio or video data received in real time or near-real time by the computing system  1200 . 
     This written description uses examples to disclose the invention, including the best mode, and also to enable any person skilled in the art to make and use the invention. The patentable scope of the invention is defined by the claims, and may include other examples that occur to those skilled in the art. Such other examples are intended to be within the scope of the claims if they have structural elements that do not differ from the literal language of the claims, or if they include equivalent structural elements with insubstantial differences from the literal languages of the claims.