EP1522930B1 - Method and apparatus for identifying semantic structures from text - Google Patents
Method and apparatus for identifying semantic structures from text Download PDFInfo
- Publication number
- EP1522930B1 EP1522930B1 EP04103457A EP04103457A EP1522930B1 EP 1522930 B1 EP1522930 B1 EP 1522930B1 EP 04103457 A EP04103457 A EP 04103457A EP 04103457 A EP04103457 A EP 04103457A EP 1522930 B1 EP1522930 B1 EP 1522930B1
- Authority
- EP
- European Patent Office
- Prior art keywords
- semantic
- entity
- entities
- text
- semantic structure
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/216—Parsing using statistical methods
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99936—Pattern matching access
Definitions
- the present invention relates to natural language processing.
- the present invention relates to processing text to identify the semantics of the text.
- the goal of natural language processing is to decipher the meaning or semantics of a free-form linguistic input.
- Some systems attempt to identify the semantics of a natural language input by applying semantic rules directly to the individual words in the input. Since words can have multiple meanings, these rules are very complex and difficult to develop. For example, the word “room” can be a verb as in "Bill asked if he could room with Jake” or a noun as in "The table is in the living room”. To determine which sense of the word is being used, the rules have to determine what other words are present in the text. Because a large number of words can be used with each sense of a word, a large number of rules are needed. As a result, a direct application of semantic rules to words in the text is considered to be unworkable in many environments.
- TJING-SHIN CHANG, YIH-FEN LUO AND TKEH-YIH SU uses an integrated formulation for lexical, syntactic and semantic knowledge to derive the semantic score for semantic preference evaluation.
- a particular semantic interpretation of a sentence can be characterized by a set of lexical categories (or parts of speech), a syntactic structure, and the semantic annotations associated with it.
- the best choice should be the most probable semantic interpretation for the given input words. In other words, the interpretation that maximizes a score function or analysis score which considers a semantic score, a syntactic score and a lexical score.
- DANIEL GILDEA AND DANIEL JURAFSKY "Automatic labeling of semantic roles", Computational Linguistics, vol. 28, no. 3, 2002, pages 245-288 , presents a system for identifying the semantic relationships, or semantic roles, filled by constituents of a sentence within a semantic frame is presented. Given an input sentence and a target word and frame, the system labels constituents with either abstract semantic roles or more domain specific roles.
- EP-A-0 387 226 relates to a process for semantic speech analysis, wherein words and associated semantic labels are processed by means of stochastic processes.
- a method and apparatus for identifying a semantic structure from an input text forms at least two candidate semantic structures.
- a semantic score is determined for each candidate semantic structure based on the likelihood of the semantic structure.
- a syntactic score is also determined for each semantic structure based on the position of a word in the text and the position in the semantic structure of a semantic entity formed from the word. The syntactic score and the semantic score are combined to select a semantic structure for at least a portion of the text.
- the semantic structure is built incrementally by building and scoring candidate structures for a portion of the text, pruning low scoring candidates, and adding additional semantic elements to the retained candidates.
- FIG. 1 illustrates an example of a suitable computing system environment 100 on which the invention may be implemented.
- the computing system environment 100 is only one example of a suitable computing environment and is not intended to suggest any limitation as to the scope of use or functionality of the invention. Neither should the computing environment 100 be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary operating environment 100.
- the invention is operational with numerous other general purpose or special purpose computing system environments or configurations.
- Examples of well-known computing systems, environments, and/or configurations that may be suitable for use with the invention include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, telephony systems, distributed computing environments that include any of the above systems or devices, and the like.
- the invention may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer.
- program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types.
- the invention is designed to be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network.
- program modules are located in both local and remote computer storage media including memory storage devices.
- an exemplary system for implementing the invention includes a general-purpose computing device in the form of a computer 110.
- Components of computer 110 may include, but are not limited to, a processing unit 120, a system memory 130, and a system bus 121 that couples various system components including the system memory to the processing unit 120.
- the system bus 121 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures.
- such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus also known as Mezzanine bus.
- ISA Industry Standard Architecture
- MCA Micro Channel Architecture
- EISA Enhanced ISA
- VESA Video Electronics Standards Association
- PCI Peripheral Component Interconnect
- Computer 110 typically includes a variety of computer readable media.
- Computer readable media can be any available media that can be accessed by computer 110 and includes both volatile and nonvolatile media, removable and non-removable media.
- Computer readable media may comprise computer storage media and communication media.
- Computer storage media includes both volatile and nonvolatile, 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.
- Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computer 110.
- Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media.
- modulated data signal means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal.
- communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer readable media.
- the system memory 130 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 131 and random access memory (RAM) 132.
- ROM read only memory
- RAM random access memory
- BIOS basic input/output system
- RAM 132 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 120.
- FIG. 1 illustrates operating system 134, application programs 135, other program modules 136, and program data 137.
- the computer 110 may also include other removable/non-removable volatile/nonvolatile computer storage media.
- FIG. 1 illustrates a hard disk drive 141 that reads from or writes to non-removable, nonvolatile magnetic media, a magnetic disk drive 151 that reads from or writes to a removable, nonvolatile magnetic disk 152, and an optical disk drive 155 that reads from or writes to a removable, nonvolatile optical disk 156 such as a CD ROM or other optical media.
- removable/non-removable, volatile/nonvolatile computer storage media that can be used in the exemplary operating environment include, but are not limited to, magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM, solid state ROM, and the like.
- the hard disk drive 141 is typically connected to the system bus 121 through a non-removable memory interface such as interface 140, and magnetic disk drive 151 and optical disk drive' 155 are typically connected to the system bus 121 by a removable memory interface, such as interface 150.
- hard disk drive 141 is illustrated as storing operating system 144, application programs 145, other program modules 146, and program data 147. Note that these components can either be the same as or different from operating system 134, application programs 135, other program modules 136, and program data 137. Operating system 144, application programs 145, other program modules 146, and program data 147 are given different numbers here to illustrate that, at a minimum, they are different copies.
- a user may enter commands and information into the computer 110 through input devices such as a keyboard 162, a microphone 163, and a pointing device 161, such as a mouse, trackball or touch pad.
- Other input devices may include a joystick, game pad, satellite dish, scanner, or the like.
- a monitor 191 or other type of display device is also connected to the system bus 121 via an interface, such as a video interface 190.
- computers may also include other peripheral output devices such as speakers 197 and printer 196, which may be connected through an output peripheral interface 195.
- the computer 110 is operated in a networked environment using logical connections to one or more remote computers, such as a remote computer 180.
- the remote computer 180 may be a personal computer, a hand-held device, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 110.
- the logical connections depicted in FIG. 1 include a local area network (LAN) 171 and a wide area network (WAN) 173, but may also include other networks.
- LAN local area network
- WAN wide area network
- Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets and the Internet.
- the computer 110 When used in a LAN networking environment, the computer 110 is connected to the LAN 171 through a network interface or adapter 170. When used in a WAN networking environment, the computer 110 typically includes a modem 172 or other means for establishing communications over the WAN 173, such as the Internet.
- the modem 172 which may be internal or external, may be connected to the system bus 121 via the user input interface 160, or other appropriate mechanism.
- program modules depicted relative to the computer 110, or portions thereof may be stored in the remote memory storage device.
- FIG. 1 illustrates remote application programs 185 as residing on remote computer 180. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.
- the present invention provides a method and apparatus for efficiently identifying semantic structures in an input text even if the input text is poorly formed or fragmented.
- a block diagram showing the system of the present invention is presented in FIG. 2 and a method for identifying a semantic structure is shown in the flow diagram of FIG. 3 .
- a schema 200 is defined that includes semantic types and probabilities 202, Markov probabilities 204, and semantic rules 206.
- An example of a portion of a schema is shown in FIG. 4 .
- the schema is defined using an XML format that begins with ⁇ Schema> tag 400 and ends with ⁇ /Schema> tag 402.
- a semantic type is defined within ⁇ Entity> tags such as ⁇ Entity> tags 404 and 406.
- the identity of the entity is listed as the value for the "Type" attribute. For instance, for ⁇ Entity> tag 400, the entity is identified as "Flight”.
- the opening ⁇ Entity> tag also contains a "seen” attribute, which indicates the number of times this entity occurred in a set of training data. For example, the "Flight" entity was seen one-hundred twenty-one times in the training data.
- Each ⁇ With> tag includes an attribute of "EntityType" that identifies an entity that can appear as a child entity for the entity listed in the opening ⁇ Entity> tag.
- ⁇ With> tag 408 indicates that a "TimeEntity” can appear as a child entity to the "Flight” entity found in tag 404.
- Each ⁇ With> tag also includes a "Seen” attribute that indicates the number of times the entity of the ⁇ With> tag was found as a child entity to the entity in the ⁇ Entity> tag.
- tag 414 indicates that the "Airline" entity was found as a child entity of "Flight" thirty-nine times.
- tags 410 and 412 are both for an entity of "City". However, tag 410 is restricted to a city that is a "goal” or destination for a trip, while tag 412 is restricted to a city that is a "source” or origin of a trip.
- a word or phrase between two ⁇ Denoted> tags is a word or phrase that appeared in' the training data and was associated with this entity. For example, the word "flights" was found in the training text and was associated with the "flight” entity as indicated by ⁇ Denoted> tag 418.
- a ⁇ Denoted> tag can include a "seen” attribute that indicates the number of times the word or phrase between the ⁇ Denoted> tags was associated with this entity. For example, the word "flights" was associated with the "flight” entity seventy-nine times.
- a table construction unit 208 used in step 302 by a table construction unit 208 to construct a semantic structure table 210.
- the semantic types 202 that are defined between ⁇ Entity> tags in the schema are used to construct semantic structure table 210.
- Structure table 210 consists of a separate entry for each possible pair of entities in the schema. Each entry includes a listing of all of the structures that can be built in which both entities will be present. Note that these structures include structures where the two entities are directly linked together and structures where the two entities are connected through another entity. For example, one entity may be the grand-child of another entity such that there is an entity between them or the two entities may share a common ancestor entity. Only those entities that are required to form the connection between the two entities are listed for any one structure in the table. By creating this table initially, the present invention reduces the number of computations that must be done at run time to identify the different ways in which two entities may be connected together under the schema.
- a text 212 is received by a semantic entity identifier 214, which identifies all of the entities that could be represented by the text at step 306.
- entity identifier utilizes the ⁇ Denoted> tags in the ⁇ entity> tags of schema 200. If a word or phrase from the text is found in a pair of ⁇ Denoted> tags, a semantic node is created for the word or phrase and the entity that included the ⁇ Denoted> tag is added as a possible entity for the node. Note that a single node may have multiple entities. Also, if the span of two entities (the words or phrase associated with the entities) partially overlap, they are considered to be part of the same semantic node. The result is a semantic entity lattice.
- FIG. 5 provides a diagram showing an example entity lattice formed through step 306.
- the poorly formed input sentence "I am in Boston and I want to be in Detroit on Tuesday, show me United flights” is processed to identify the entity lattice.
- "Boston” and “Detroit” are mapped to two separate "cityname” entities 500 and 502, which represent two sequential semantic nodes.
- "Tuesday” is mapped to a' "daysofweek” entity 504 at a third semantic node.
- the word “show” is mapped to four possible entities that overlap at the fourth node.
- Show is mapped to "ShowAirlineServed” entity 506, "ShowFlight” entity 508, "ListTransport” entity 510, and "ShowCapacity” entity 512.
- the words “United” and “flights” are mapped to "Airline” entity 514 and "Flight” entity 516, respectively, which represent the last two semantic nodes in the lattice.
- semantic rules 206 are applied to the entities identified in step 306. Examples of such semantic rules are shown in the example schema of FIG. 4 between ⁇ GrammarRule> tags such as ⁇ GrammarRule> tags 420 and 422 and ⁇ GrammarRule> tags 424 and 426.
- Each ⁇ Constit> tag represents an entity that is identified within the ⁇ Constit> tag by an "Entity" attribute.
- the entity lattice formed in step 306 is examined to see if all of the entities listed within the ⁇ Constit> tags of the rule are present in separate semantic nodes along the lattice. Under some embodiments, the entities must appear in the lattice in the same order as the ⁇ Constit> tags. For example, if a grammar rule contains the following sequence of tags:
- the ⁇ Constit> tags also include a "Number" attribute. This attribute assigns a value to the entity that can be used to identify the entity during execution of the rule. This value is needed since two entities of the same entity type can be used in a single grammar rule.
- each grammar rule combines the constituent entities found in the ⁇ Constit> tags to form a new entity in which the constituent entities are embedded.
- One type of grammar rule forms a parent entity where each constituent entity becomes a child to the parent entity.
- Such rules utilize a ⁇ Parent> tag with an "Entity" attribute that identifies the entity to be used as the parent.
- the grammar rules may include more complicated structure formations in which the entities of the ⁇ Constit> tags are combined through multiple level structures or the attributes of an entity are changed or an entity itself is changed.
- Such rules include a ⁇ Rule> tag that designates the final structure to be formed from the constituent entities using the values assigned through the "number" attribute of the ⁇ Constit> tags.
- the "Restriction” attribute is a special type of entity.
- a restriction entity includes ⁇ Denoted> tags in its definition that indicate which words will generate the entity.
- a "Goal” restriction entity is denoted by the word “to” or the phrase “arriving at”.
- Restriction entities differ from other entities in that they modify another entity, on the same level in the structure. Thus, Goal, Source, and Via modify a City entity. Together, the restriction entity and the entity being modified form a single entity with a restriction. In the discussion below, the restriction entity is often referred to as just a restriction.
- the restriction is identified using the "Type" attribute in the ⁇ With> tag.
- ⁇ With> tag 416 indicates that the "Flight” entity accepts a "City” entity with a "Via” restriction.
- FIG. 6 shows the results of performing the grammar rules found in FIG. 4 on the entity lattice of FIG. 5 .
- the grammar rule found within ⁇ GrammarRule> tags 424 and 426 has been applied to "CityName” entities 500 and 502.
- the grammar rule within ⁇ GrammarRule> tags 420 and 422 has been applied to "DaysofWeek” entity 504 to produce a "TimeEntity" structure 608 with a "TimeEntity” parent node 610 and a "DaysofWeek” child entity 504.
- the first two semantic nodes are selected at step 310. Under most embodiments, this involves selecting the two left-most semantic nodes.
- a structure generator 216 uses semantic structure table 210 to identify all of the possible structures that can be formed using the entities listed for the two selected semantic nodes. For example, if the first node contains entities A and B and the second node contains entities C and D, separate structures are identified for the entity pairs AC, AD, BC and BD. Note that multiple structures may be identified for each entity pair. This process can be performed quickly at run time because the possible structures for each entity pair have been previously identified and stored in structure table 210.
- FIG. 7 Examples of structures generated from the first two entities of the modified entity lattice of FIG. 6 are shown in FIG. 7 . Since there is only one entity for each of the first two semantic nodes in FIG. 6 , there is only one entity pair to consider. However, the structure generator has identified six separate structures that can be formed with this single entity pair. Specifically, six "Flight" semantic structures 700, 702, 704, 706, 708, and 710 are identified.
- each "City” semantic structure can be used to fill one of three slots for the restricted entities “Source City”, “Via City”, and "Goal City” found in the "Flight” entity.
- the six “Flight” structures thus represent the six different possible assignment combinations for the two "City” semantic structures.
- the "Flight” entity is a parent entity to each of the city entities in that each city entity is listed in a ⁇ With>' tag within the definition of the "Flight” entity.
- each city entity is a child entity that is considered to be beneath the "Flight” entity in the semantic structure.
- the structures are provided to a structure scoring module 218, which scores each structure at step 314.
- the score for each structure is the product of three semi-orthogonal scores. One of these scores is based on the likelihood of the semantic structure, another of the scores is based on the order in which semantic entities were expressed in the input text, and the last score is based on the syntactic correctness of the semantic structure.
- E j are the separate entities in the entity structure S
- C E is all of the children entities of entity E j
- p ( E j ) is the probability of entity E j
- E j ) is the probability of child entity c i given entity E j .
- the probabilities in the semantic probability are determined from the schema using the "seen" attributes in the ⁇ Entity> tags and the ⁇ With> tags. Specifically, the probability of an entity p ( E j ) is determined by dividing the value of the "Seen” attribute in the ⁇ Entity> tag for that entity by the sum of the values for "Seen” attributes in the ⁇ Entity> tags of all of the entities in the schema. The probability of a child entity given the parent entity p ( c ⁇
- the semantic score of Equation 1 is augmented with a penalty factor that is applied to reduce the probability of an entity if the entity was not derived directly from the text but instead was created to connect two entities that were derived from the text.
- a penalty factor that is applied to reduce the probability of an entity if the entity was not derived directly from the text but instead was created to connect two entities that were derived from the text.
- the probability of "Flight” entity 750 would be reduced by a penalty factor since the "Flight" entity was placed in the semantic structure to connect the two "city” entities and was not taken directly from the entity lattice produced from the text.
- the penalty factor is .90.
- the second score which is based on the order in which the semantic entities are expressed in the input text, is referred to as a Markov score or a transition score.
- the Markov score is calculated as the product of transition probabilities for each pair of entities that are at the same level in the semantic structure.
- the Markov probability for semantic structure 700 of FIG. 7 would be calculated as simply the transition probability for having a source city followed by a goal city. If there were another child node on the same level after the goal city, an additional transition probability would be determined for having a goal city followed by the additional entity.
- transition probability for a pair of same-level entities is determined from ⁇ TransitionProb> tags (denoted as Markov Probabilities 204 in FIG. 2 ) within schema 200. Examples of such ⁇ TransitionProb> tags are found in FIG. 4 as ⁇ TransitinProb> tags 430 and 432.
- the order of the entities is denoted using the "R1", “E1", “R2”, and “E2” attributes.
- the "R1” and “E1” attributes identify the restriction and the entity, respectively, for the left-most entity of the two entities and the “R2" and “E2” attributes identify the restriction and the entity for the right-most entity of the two entities.
- the transition probability in ⁇ Transitionprob> tag 430 is for a Goal City followed by a Source City and the transition probability in ⁇ Transitionprob> tag 432 is for a Source City followed by a Goal City.
- Each ⁇ Transitionprob> tag also includes a "Seen” attribute, which indicates the number of times the two entities were found together in the order listed in the tag.
- the probability of a specific ordering of the two entities is determined by dividing the "Seen" value for that ordering by the sum of the "Seen” values for all of the ⁇ Transitionprob> tags that include the two entities. For example the probability of a Goal City followed by a Source City in FIG. 4 is calculated as 2/71 while the probability of a Source City followed by a Goal City is calculated as 69/71.
- the product of the individual transition probabilities for each pair of same-level entities is then determined to form the Markov probability for the structure. Note that although only two-entity transition probabilities are used above, any number of entities may be used to determine the transition probabilities.
- the last probability, which indicates the syntactic correctness of the semantic structure, is referred to as the syntactic score.
- This score can be generated in a number of different ways. Under one embodiment, a syntactic parse structure is formed based on the semantic structure. Specifically the words spanned by the entities in the semantic structure are placed in a syntactic structure in the same relative position as the entities in the semantic structure. A score for the resulting syntactic parse tree is then determined and used as the syntactic score for the semantic structure.
- the syntactic score is calculated by determining a separate score for each parent-child relationship in the semantic structure. For each parent-child relationship, the token position of the word or phrase that is spanned by the parent entity and the token position of the word or phrase that is spanned by the child entity are identified, where the token position is the number of tokens from the beginning of the sentence to the word or phrase.
- a token includes individual words or a phrase that operates as a single entity. For example, New York City is a single token.
- the token positions are then used to identify a probability that describes the likelihood of a parent entity being at token position X when a child entity is at token position Y.
- the product of the semantic score, the Markov score, and the syntactic score is the full score for each semantic structure.
- By integrating these three semi-orthogonal scores it is possible to identify semantic structures from even poorly formed text because although the candidate structures generated from such poorly formed sentences may have low syntactic scores, they will still be scored semantically and the semantic scores may be high enough for at least one of the structures to make it a viable semantic structure.
- the present invention greatly reduces the amount of time needed to identify a semantic structure from the text.
- one or more of the structures is pruned from consideration at step 316 by a pruning system 220.
- pruning can be performed by taking the top N semantic structures or by taking those semantic structures within a threshold of the top scoring semantic structure.
- the top four semantic structures are retained. Specifically, structures 700, 704, 708, and 710 are retained.
- the lattice is examined at step 318 to determine if there are any other semantic nodes to process. If there are additional semantic nodes to process, the entities at the next node are combined with the retained semantic structures by structure generator 216 to form all possible combinations of the entities and the retained structures at step 320.
- an ordered search is performed to determine how an entity can be attached to a semantic structure. First, a search is performed to find structures in which the new entity fits below any of the entities in the semantic structure. Next, a search is performed to find structures in which the head of the semantic structure fits beneath the new entity. Lastly, a search is performed to see if there is a common ancestor between the head of the semantic structure and the new entity. Each of these searches is performed using semantic structure table 210.
- FIG. 8 Examples of the new structures formed from the structures of FIG. 7 and the "TimeEntity” entity are shown in FIG. 8 .
- structures 800, 802, 804, and 806 have been formed from structures 700, 704, 708, and 710, respectively.
- the "TimeEntity” entity has been added as a child node to the "Flight” entity.
- Steps 314 and 316 are repeated to score each of the semantic structures and to prune the set of structures. Since there are only four structures in the example of FIG. 8 , none of the structures are pruned.
- Steps 318 and 320 are then performed to combine the structures of FIG. 8 with "ShowAirlineServed” entity 506, "ShowFlight” entity 508, "ListTransport” entity 510, and "ShowCapacity” entity 512 of the next semantic node.
- Scoring and pruning steps 314 and 316 are repeated for new semantic structures 900, 902, 904, and 906 before determining that there are more semantic nodes to process at step 318.
- the "Airline” entity is then added to semantic structures 900, 902, 904, and 906 at step 320. For each of these structures, this involves adding the "Airline” entity as a child node to the "Flight" entity.
- the resulting structures are shown as semantic structures 1000, 1002, 1004, and 1006 in FIG. 10 .
- Steps 314, 316 and 318 are then repeated for the new structures before adding the "Flight” entity to the structures of FIG. 10 . Since a "Flight" entity was created to connect the two city entities, a "Flight” entity does not need to be added to the structures. However, the fact that a "Flight” entity was found in the lattice means that the scores for the semantic structures no longer include a penalty factor for the creation of the "Flight” entity.
- step 318 After scoring and pruning the new structures, there are no more semantic nodes to' process at step 318 and the process of FIG. 3 continues at step 322 where the highest-scoring structure is examined by a command identifier 222 to determine if it is a command structure.
- a command structure will be headed by an entity with a "Command” attribute that has been set to "True” in schema 200. If the highest-scoring semantic structure is a command structure, the structure is returned at step 324 as the command represented by the text.
- command identifier 222 attempts to identify commands that can accept the highest-scoring structure at step 326.
- the highest-scoring structure is then incorporated into each of these command structures and the command structures are scored at step 328.
- the highest-scoring command structure is then returned as the command represented by the text.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Machine Translation (AREA)
- Document Processing Apparatus (AREA)
Abstract
Description
- The present invention relates to natural language processing. In particular, the present invention relates to processing text to identify the semantics of the text.
- The goal of natural language processing is to decipher the meaning or semantics of a free-form linguistic input. Some systems attempt to identify the semantics of a natural language input by applying semantic rules directly to the individual words in the input. Since words can have multiple meanings, these rules are very complex and difficult to develop. For example, the word "room" can be a verb as in "Bill asked if he could room with Jake" or a noun as in "The table is in the living room". To determine which sense of the word is being used, the rules have to determine what other words are present in the text. Because a large number of words can be used with each sense of a word, a large number of rules are needed. As a result, a direct application of semantic rules to words in the text is considered to be unworkable in many environments.
- To reduce the number of rules that are needed, many systems perform a syntactic analysis to identify the parts of speech of the words in the text and the syntactic relationships between the words before identifying the semantics of the text. The parts of speech can then be used as conditions in the rules instead of using the words directly. Thus, instead of having to list every possible noun in a rule, the rule can be written to simply require a noun. This normalization greatly reduces the complexity of the semantic rules.
- However, using a separate syntactic parse produces a two-stage evaluation process in which the content of the entire sentence must be fully considered in each stage. This makes the process slow. In addition, if the syntactic parse fails due to a poorly formed, fragmentary, or erroneous input, the semantic process will also fail.
- In addition, the semantic rules have been difficult to write because they have been written as a series of logical comparisons and operations. This makes the addition of new semantic structures time consuming.
- TJING-SHIN CHANG, YIH-FEN LUO AND TKEH-YIH SU: "GPSM: A generalized probabilistic semantic model for ambiguity resolution", Meeting of the Association for Computational Linguistics, 1992, pages 177-184, uses an integrated formulation for lexical, syntactic and semantic knowledge to derive the semantic score for semantic preference evaluation. A particular semantic interpretation of a sentence can be characterized by a set of lexical categories (or parts of speech), a syntactic structure, and the semantic annotations associated with it. Among the various interpretations of a sentence, the best choice should be the most probable semantic interpretation for the given input words. In other words, the interpretation that maximizes a score function or analysis score which considers a semantic score, a syntactic score and a lexical score.
- KEH-YIH SU AND JING-SHIN CHANG: "Syntactic and semantic aspects of score function", Proceedings of the 12th International Conference on Computational Linguistics, August 1988 pages 642-644, states that in a machine translation system, the number of possible analyses for a given sentence is largely due to the ambiguous characteristics of the source language. A mechanism is proposed for measuring the quality of the ambiguous syntax trees such that the one that best fits interpretation by human is selected.
- DANIEL GILDEA AND DANIEL JURAFSKY: "Automatic labeling of semantic roles", Computational Linguistics, vol. 28, no. 3, 2002, pages 245-288, presents a system for identifying the semantic relationships, or semantic roles, filled by constituents of a sentence within a semantic frame is presented. Given an input sentence and a target word and frame, the system labels constituents with either abstract semantic roles or more domain specific roles.
-
EP-A-0 387 226 relates to a process for semantic speech analysis, wherein words and associated semantic labels are processed by means of stochastic processes. - It is the object of the present invention to reduce the number of computations at run time.
- This object is solved by the subject matter of the independent claims.
- Preferred embodiments are defined by the dependent claims.
- A method and apparatus for identifying a semantic structure from an input text forms at least two candidate semantic structures. A semantic score is determined for each candidate semantic structure based on the likelihood of the semantic structure. A syntactic score is also determined for each semantic structure based on the position of a word in the text and the position in the semantic structure of a semantic entity formed from the word. The syntactic score and the semantic score are combined to select a semantic structure for at least a portion of the text. In many embodiments, the semantic structure is built incrementally by building and scoring candidate structures for a portion of the text, pruning low scoring candidates, and adding additional semantic elements to the retained candidates.
-
-
FIG. 1 is a block diagram of one computing environment in which the present invention may be practiced. -
FIG. 2 is a block diagram of a system for identifying semantic structures from an input text. -
FIG. 3 is a flow diagram of a method of identifying semantic structures under one embodiment of the present invention. -
FIG. 4 is an example of a portion of a schema that defines semantic types, Markov probabilities, and semantic rules under one embodiment of the present invention. -
FIG. 5 is a diagram showing the creation of semantic entities from an input text. -
FIG. 6 is a diagram showing the effects of various semantic rules on the semantic entities ofFIG. 5 . -
FIG. 7 is a diagram of initial semantic structures formed from the first two semantic entities ofFIG. 5 . -
FIG. 8 is a diagram of the retained semantic structures with the addition of the TimeEntity semantic entity. -
FIG. 9 is a diagram of the retained semantic structures with the addition of the ShowFlight entity. -
FIG. 10 is a diagram of the retained semantic structures with the addition of the Airline and Flight entities. -
FIG. 1 illustrates an example of a suitablecomputing system environment 100 on which the invention may be implemented. Thecomputing system environment 100 is only one example of a suitable computing environment and is not intended to suggest any limitation as to the scope of use or functionality of the invention. Neither should thecomputing environment 100 be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in theexemplary operating environment 100. - The invention is operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well-known computing systems, environments, and/or configurations that may be suitable for use with the invention include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, telephony systems, distributed computing environments that include any of the above systems or devices, and the like.
- The invention may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The invention is designed to be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules are located in both local and remote computer storage media including memory storage devices.
- With reference to
FIG. 1 , an exemplary system for implementing the invention includes a general-purpose computing device in the form of acomputer 110. Components ofcomputer 110 may include, but are not limited to, aprocessing unit 120, asystem memory 130, and asystem bus 121 that couples various system components including the system memory to theprocessing unit 120. Thesystem bus 121 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus also known as Mezzanine bus. -
Computer 110 typically includes a variety of computer readable media. Computer readable media can be any available media that can be accessed bycomputer 110 and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. Computer storage media includes both volatile and nonvolatile, 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. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed bycomputer 110. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term "modulated data signal" means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer readable media. - The
system memory 130 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 131 and random access memory (RAM) 132. A basic input/output system 133 (BIOS), containing the basic routines that help to transfer information between elements withincomputer 110, such as during start-up, is typically stored inROM 131.RAM 132 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processingunit 120. By way of example, and not limitation,FIG. 1 illustratesoperating system 134,application programs 135,other program modules 136, andprogram data 137. - The
computer 110 may also include other removable/non-removable volatile/nonvolatile computer storage media. By way of example only,FIG. 1 illustrates ahard disk drive 141 that reads from or writes to non-removable, nonvolatile magnetic media, amagnetic disk drive 151 that reads from or writes to a removable, nonvolatile magnetic disk 152, and anoptical disk drive 155 that reads from or writes to a removable, nonvolatileoptical disk 156 such as a CD ROM or other optical media. Other removable/non-removable, volatile/nonvolatile computer storage media that can be used in the exemplary operating environment include, but are not limited to, magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM, solid state ROM, and the like. Thehard disk drive 141 is typically connected to thesystem bus 121 through a non-removable memory interface such asinterface 140, andmagnetic disk drive 151 and optical disk drive' 155 are typically connected to thesystem bus 121 by a removable memory interface, such asinterface 150. - The drives and their associated computer storage media discussed above and illustrated in
FIG. 1 , provide storage of computer readable instructions, data structures, program modules and other data for thecomputer 110. InFIG. 1 , for example,hard disk drive 141 is illustrated as storingoperating system 144,application programs 145,other program modules 146, andprogram data 147. Note that these components can either be the same as or different fromoperating system 134,application programs 135,other program modules 136, andprogram data 137.Operating system 144,application programs 145,other program modules 146, andprogram data 147 are given different numbers here to illustrate that, at a minimum, they are different copies. - A user may enter commands and information into the
computer 110 through input devices such as akeyboard 162, amicrophone 163, and apointing device 161, such as a mouse, trackball or touch pad. Other input devices (not shown) may include a joystick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to theprocessing unit 120 through auser input interface 160 that is coupled to the system bus, but may be connected by other interface and bus structures, such as a parallel port, game port or a universal serial bus (USB). Amonitor 191 or other type of display device is also connected to thesystem bus 121 via an interface, such as avideo interface 190. In addition to the monitor, computers may also include other peripheral output devices such asspeakers 197 andprinter 196, which may be connected through an outputperipheral interface 195. - The
computer 110 is operated in a networked environment using logical connections to one or more remote computers, such as aremote computer 180. Theremote computer 180 may be a personal computer, a hand-held device, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to thecomputer 110. The logical connections depicted inFIG. 1 include a local area network (LAN) 171 and a wide area network (WAN) 173, but may also include other networks. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets and the Internet. - When used in a LAN networking environment, the
computer 110 is connected to theLAN 171 through a network interface oradapter 170. When used in a WAN networking environment, thecomputer 110 typically includes amodem 172 or other means for establishing communications over theWAN 173, such as the Internet. Themodem 172, which may be internal or external, may be connected to thesystem bus 121 via theuser input interface 160, or other appropriate mechanism. In a networked environment, program modules depicted relative to thecomputer 110, or portions thereof, may be stored in the remote memory storage device. By way of example, and not limitation,FIG. 1 illustratesremote application programs 185 as residing onremote computer 180. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used. - The present invention provides a method and apparatus for efficiently identifying semantic structures in an input text even if the input text is poorly formed or fragmented. A block diagram showing the system of the present invention is presented in
FIG. 2 and a method for identifying a semantic structure is shown in the flow diagram ofFIG. 3 . - In
step 300 ofFIG. 3 , aschema 200 is defined that includes semantic types andprobabilities 202,Markov probabilities 204, andsemantic rules 206. An example of a portion of a schema is shown inFIG. 4 . - In
FIG. 4 , the schema is defined using an XML format that begins with <Schema>tag 400 and ends with </Schema>tag 402. A semantic type is defined within <Entity> tags such as <Entity> tags 404 and 406. Within the opening <Entity> tag, the identity of the entity is listed as the value for the "Type" attribute. For instance, for <Entity>tag 400, the entity is identified as "Flight". The opening <Entity> tag also contains a "seen" attribute, which indicates the number of times this entity occurred in a set of training data. For example, the "Flight" entity was seen one-hundred twenty-one times in the training data. - Between the opening and closing <Entity> tags, a set of <With> tags can be found such as <With> tags 408, 410, 412, 414, and 416. Each <With> tag includes an attribute of "EntityType" that identifies an entity that can appear as a child entity for the entity listed in the opening <Entity> tag. For example, <With>
tag 408 indicates that a "TimeEntity" can appear as a child entity to the "Flight" entity found intag 404. Each <With> tag also includes a "Seen" attribute that indicates the number of times the entity of the <With> tag was found as a child entity to the entity in the <Entity> tag. For example,tag 414 indicates that the "Airline" entity was found as a child entity of "Flight" thirty-nine times. - Some entities in a <With> tag are further defined by a restriction set in a "Type" attribute. For example, <With>
410 and 412 are both for an entity of "City". However,tags tag 410 is restricted to a city that is a "goal" or destination for a trip, whiletag 412 is restricted to a city that is a "source" or origin of a trip. - Another tag within the <Entity> tag is the <Denoted> tag. A word or phrase between two <Denoted> tags is a word or phrase that appeared in' the training data and was associated with this entity. For example, the word "flights" was found in the training text and was associated with the "flight" entity as indicated by <Denoted>
tag 418. A <Denoted> tag can include a "seen" attribute that indicates the number of times the word or phrase between the <Denoted> tags was associated with this entity. For example, the word "flights" was associated with the "flight" entity seventy-nine times. - Returning to
FIG. 3 , after the schema has been defined, it used instep 302 by atable construction unit 208 to construct a semantic structure table 210. Specifically, thesemantic types 202 that are defined between <Entity> tags in the schema are used to construct semantic structure table 210. - Structure table 210 consists of a separate entry for each possible pair of entities in the schema. Each entry includes a listing of all of the structures that can be built in which both entities will be present. Note that these structures include structures where the two entities are directly linked together and structures where the two entities are connected through another entity. For example, one entity may be the grand-child of another entity such that there is an entity between them or the two entities may share a common ancestor entity. Only those entities that are required to form the connection between the two entities are listed for any one structure in the table. By creating this table initially, the present invention reduces the number of computations that must be done at run time to identify the different ways in which two entities may be connected together under the schema.
- At
step 304, atext 212 is received by asemantic entity identifier 214, which identifies all of the entities that could be represented by the text atstep 306. To do this, entity identifier utilizes the <Denoted> tags in the <entity> tags ofschema 200. If a word or phrase from the text is found in a pair of <Denoted> tags, a semantic node is created for the word or phrase and the entity that included the <Denoted> tag is added as a possible entity for the node. Note that a single node may have multiple entities. Also, if the span of two entities (the words or phrase associated with the entities) partially overlap, they are considered to be part of the same semantic node. The result is a semantic entity lattice. -
FIG. 5 provides a diagram showing an example entity lattice formed throughstep 306. InFIG. 5 , the poorly formed input sentence "I am in Boston and I want to be in Detroit on Tuesday, show me United flights" is processed to identify the entity lattice. During this process, "Boston" and "Detroit" are mapped to two separate "cityname" 500 and 502, which represent two sequential semantic nodes. "Tuesday" is mapped to a' "daysofweek"entities entity 504 at a third semantic node. The word "show" is mapped to four possible entities that overlap at the fourth node. Specifically, "show" is mapped to "ShowAirlineServed"entity 506, "ShowFlight"entity 508, "ListTransport"entity 510, and "ShowCapacity"entity 512. The words "United" and "flights" are mapped to "Airline"entity 514 and "Flight"entity 516, respectively, which represent the last two semantic nodes in the lattice. - At
step 308,semantic rules 206 are applied to the entities identified instep 306. Examples of such semantic rules are shown in the example schema ofFIG. 4 between <GrammarRule> tags such as <GrammarRule> tags 420 and 422 and <GrammarRule> tags 424 and 426. - Between each pair of <GrammarRule> tags are one or more <Constit> tags such as <Constit>
tag 428. Each <Constit> tag represents an entity that is identified within the <Constit> tag by an "Entity" attribute. To determine if a particular grammar rule should execute, the entity lattice formed instep 306 is examined to see if all of the entities listed within the <Constit> tags of the rule are present in separate semantic nodes along the lattice. Under some embodiments, the entities must appear in the lattice in the same order as the <Constit> tags. For example, if a grammar rule contains the following sequence of tags: - <Constit Number="0" Entity="Number" />
- <Constit Number="1" Entity="Flight">
- As shown above, the <Constit> tags also include a "Number" attribute. This attribute assigns a value to the entity that can be used to identify the entity during execution of the rule. This value is needed since two entities of the same entity type can be used in a single grammar rule.
- In general, each grammar rule combines the constituent entities found in the <Constit> tags to form a new entity in which the constituent entities are embedded. One type of grammar rule forms a parent entity where each constituent entity becomes a child to the parent entity. Such rules utilize a <Parent> tag with an "Entity" attribute that identifies the entity to be used as the parent. When this tag is encountered and the entities of the <Constit> tag are present in the entity lattice, the individual entities of the <Constit> tags are removed and a semantic structure is generated in which the entities of the <Constit> tag become child entities to the entity found in the <Parent> tag. The span of this structure is then the combination of the span of the child entities.
- The grammar rules may include more complicated structure formations in which the entities of the <Constit> tags are combined through multiple level structures or the attributes of an entity are changed or an entity itself is changed. Such rules include a <Rule> tag that designates the final structure to be formed from the constituent entities using the values assigned through the "number" attribute of the <Constit> tags. For example:
creates a "Flight" structure with a parent "Flight" entity, a child source city entity that is filled with the city entity designated as entity "0", a child via city entity that is filled with the city entity designated as entity "1", and a child goal city entity that is filed with the city entity designated as entity "2". Note that in this rule, the city entity designated as entity "1" is changed from a "goal" entity to a "via" entity.<Constit Number="0" Entity="City" Restriction="Source" /> <Constit Number="1" Entity="City" Restriction="Goal" /> <Constit Number="2" Entity="City" Restriction="Goal" /> <Rule>{Flight[(Source,City,0)(Via,City,!) (Goal,City,2)]}</Rule> - In the example above, the "Restriction" attribute is a special type of entity. Like other entities, a restriction entity includes <Denoted> tags in its definition that indicate which words will generate the entity. For example, a "Goal" restriction entity is denoted by the word "to" or the phrase "arriving at". Restriction entities differ from other entities in that they modify another entity, on the same level in the structure. Thus, Goal, Source, and Via modify a City entity. Together, the restriction entity and the entity being modified form a single entity with a restriction. In the discussion below, the restriction entity is often referred to as just a restriction.
- In the schema, if an entity accepts another entity with a restriction, the restriction is identified using the "Type" attribute in the <With> tag. For example, <With>
tag 416 indicates that the "Flight" entity accepts a "City" entity with a "Via" restriction. -
FIG. 6 shows the results of performing the grammar rules found inFIG. 4 on the entity lattice ofFIG. 5 . Specifically, the grammar rule found within <GrammarRule> tags 424 and 426 has been applied to "CityName" 500 and 502. This produces "City"entities 600 and 602 with parent "City"semantic structures 604 and 606 and child "CityName"entities 500 and 502. The grammar rule within <GrammarRule> tags 420 and 422 has been applied to "DaysofWeek"entities entity 504 to produce a "TimeEntity"structure 608 with a "TimeEntity"parent node 610 and a "DaysofWeek"child entity 504. - After the semantic rules have executed, the first two semantic nodes are selected at
step 310. Under most embodiments, this involves selecting the two left-most semantic nodes. - At
step 312, astructure generator 216 uses semantic structure table 210 to identify all of the possible structures that can be formed using the entities listed for the two selected semantic nodes. For example, if the first node contains entities A and B and the second node contains entities C and D, separate structures are identified for the entity pairs AC, AD, BC and BD. Note that multiple structures may be identified for each entity pair. This process can be performed quickly at run time because the possible structures for each entity pair have been previously identified and stored in structure table 210. - Examples of structures generated from the first two entities of the modified entity lattice of
FIG. 6 are shown inFIG. 7 . Since there is only one entity for each of the first two semantic nodes inFIG. 6 , there is only one entity pair to consider. However, the structure generator has identified six separate structures that can be formed with this single entity pair. Specifically, six "Flight" 700, 702, 704, 706, 708, and 710 are identified.semantic structures - Although all of the identified semantic structures are "Flight" structures, they each use "City" semantic structure 600 (consisting of "City"
entity 604 and "CityName=Boston" entity 500) and "City" semantic structure 602 (consisting of "City"entity 606 and "CityName=Detroit" entity 502) to fill different slots in the "Flight" structure. Specifically, each "City" semantic structure can be used to fill one of three slots for the restricted entities "Source City", "Via City", and "Goal City" found in the "Flight" entity. The six "Flight" structures thus represent the six different possible assignment combinations for the two "City" semantic structures. - For example, in "Flight"
structure 700, "City"entity 604 fills a "Source"city slot 720 and "City"entity 606 fills a "Goal"city slot 722. However, in "Flight"structure 702, "City"entity 604 fills a "Goal"city slot 724 and "City"entity 606 fills a "Source"city slot 726. - In "Flight"
structure 704, "City"entity 604 fills a "Source"city slot 728 and "City"entity 606 fills a "Via"city slot 730 while in "Flight"structure 706, "City"entity 604 fills a "Via"city slot 732 and "City"entity 606 fills a "Source"city slot 734. - Lastly, in "Flight"
structure 708, "City"entity 604 fills a "Goal"city slot 736 and "City"entity 606 fills a "Via" city slot 738 while in "Flight"structure 710, "City"entity 604 fills a "Via"city slot 740 and "City"entity 606 fills a "Goal"city slot 742. - In the semantic structures of
FIG. 7 , the "Flight" entity is a parent entity to each of the city entities in that each city entity is listed in a <With>' tag within the definition of the "Flight" entity. Thus, each city entity is a child entity that is considered to be beneath the "Flight" entity in the semantic structure. - After all of the possible structures for the two nodes have been created, the structures are provided to a
structure scoring module 218, which scores each structure atstep 314. Under the present invention, the score for each structure is the product of three semi-orthogonal scores. One of these scores is based on the likelihood of the semantic structure, another of the scores is based on the order in which semantic entities were expressed in the input text, and the last score is based on the syntactic correctness of the semantic structure. -
- The probabilities in the semantic probability are determined from the schema using the "seen" attributes in the <Entity> tags and the <With> tags. Specifically, the probability of an entity p(Ej ) is determined by dividing the value of the "Seen" attribute in the <Entity> tag for that entity by the sum of the values for "Seen" attributes in the <Entity> tags of all of the entities in the schema. The probability of a child entity given the parent entity p(c¡ | Ej ) is determined by dividing the value of the "Seen" attribute in the <With> tag for the child entity by the value of the "Seen" attribute in the <Entity> tag of the parent entity.
- In some examples of the present invention, the semantic score of Equation 1 is augmented with a penalty factor that is applied to reduce the probability of an entity if the entity was not derived directly from the text but instead was created to connect two entities that were derived from the text. For example, in
FIG. 7 , the probability of "Flight"entity 750 would be reduced by a penalty factor since the "Flight" entity was placed in the semantic structure to connect the two "city" entities and was not taken directly from the entity lattice produced from the text. In some examples, the penalty factor is .90. - The second score, which is based on the order in which the semantic entities are expressed in the input text, is referred to as a Markov score or a transition score. Under one example, the Markov score is calculated as the product of transition probabilities for each pair of entities that are at the same level in the semantic structure. For example, the Markov probability for
semantic structure 700 ofFIG. 7 would be calculated as simply the transition probability for having a source city followed by a goal city. If there were another child node on the same level after the goal city, an additional transition probability would be determined for having a goal city followed by the additional entity. - The transition probability for a pair of same-level entities is determined from <TransitionProb> tags (denoted as
Markov Probabilities 204 inFIG. 2 ) withinschema 200. Examples of such <TransitionProb> tags are found inFIG. 4 as <TransitinProb> tags 430 and 432. - Within the <TransitionProb> tags the order of the entities is denoted using the "R1", "E1", "R2", and "E2" attributes. The "R1" and "E1" attributes identify the restriction and the entity, respectively, for the left-most entity of the two entities and the "R2" and "E2" attributes identify the restriction and the entity for the right-most entity of the two entities. Thus, the transition probability in <Transitionprob>
tag 430 is for a Goal City followed by a Source City and the transition probability in <Transitionprob>tag 432 is for a Source City followed by a Goal City. Each <Transitionprob> tag also includes a "Seen" attribute, which indicates the number of times the two entities were found together in the order listed in the tag. - To determine a probability for a specific order of two entities, all of the <Transitionprob> tags that contain the two entities are located. (There will either be one or two such tags). The probability of a specific ordering of the two entities is determined by dividing the "Seen" value for that ordering by the sum of the "Seen" values for all of the <Transitionprob> tags that include the two entities. For example the probability of a Goal City followed by a Source City in
FIG. 4 is calculated as 2/71 while the probability of a Source City followed by a Goal City is calculated as 69/71. - The product of the individual transition probabilities for each pair of same-level entities is then determined to form the Markov probability for the structure. Note that although only two-entity transition probabilities are used above, any number of entities may be used to determine the transition probabilities.
- The last probability, which indicates the syntactic correctness of the semantic structure, is referred to as the syntactic score. This score can be generated in a number of different ways. Under one embodiment, a syntactic parse structure is formed based on the semantic structure. Specifically the words spanned by the entities in the semantic structure are placed in a syntactic structure in the same relative position as the entities in the semantic structure. A score for the resulting syntactic parse tree is then determined and used as the syntactic score for the semantic structure.
- Under another embodiment of the present invention, the syntactic score is calculated by determining a separate score for each parent-child relationship in the semantic structure. For each parent-child relationship, the token position of the word or phrase that is spanned by the parent entity and the token position of the word or phrase that is spanned by the child entity are identified, where the token position is the number of tokens from the beginning of the sentence to the word or phrase. A token includes individual words or a phrase that operates as a single entity. For example, New York City is a single token.
- The token positions are then used to identify a probability that describes the likelihood of a parent entity being at token position X when a child entity is at token position Y. Thus, the syntactic score is calculated as:
where PX is the set of all parent entities, CY is the set of child entities for each parent entity, X is the token position of the parent entity and Y is the token position of the child entity. - The product of the semantic score, the Markov score, and the syntactic score is the full score for each semantic structure. By integrating these three semi-orthogonal scores, it is possible to identify semantic structures from even poorly formed text because although the candidate structures generated from such poorly formed sentences may have low syntactic scores, they will still be scored semantically and the semantic scores may be high enough for at least one of the structures to make it a viable semantic structure. In addition, by integrating a syntactic component and a semantic component of the score during the progressive building of the semantic structure, the present invention greatly reduces the amount of time needed to identify a semantic structure from the text.
- After the semantic structures have been scored at
step 314, one or more of the structures is pruned from consideration atstep 316 by apruning system 220. Such pruning can be performed by taking the top N semantic structures or by taking those semantic structures within a threshold of the top scoring semantic structure. For the example ofFIG. 7 , the top four semantic structures are retained. Specifically, 700, 704, 708, and 710 are retained.structures - After pruning, the lattice is examined at
step 318 to determine if there are any other semantic nodes to process. If there are additional semantic nodes to process, the entities at the next node are combined with the retained semantic structures bystructure generator 216 to form all possible combinations of the entities and the retained structures atstep 320. - Under one embodiment, an ordered search is performed to determine how an entity can be attached to a semantic structure. First, a search is performed to find structures in which the new entity fits below any of the entities in the semantic structure. Next, a search is performed to find structures in which the head of the semantic structure fits beneath the new entity. Lastly, a search is performed to see if there is a common ancestor between the head of the semantic structure and the new entity. Each of these searches is performed using semantic structure table 210.
- Examples of the new structures formed from the structures of
FIG. 7 and the "TimeEntity" entity are shown inFIG. 8 . Specifically, 800, 802, 804, and 806 have been formed fromstructures 700, 704, 708, and 710, respectively. In all of the structures, the "TimeEntity" entity has been added as a child node to the "Flight" entity.structures -
314 and 316 are repeated to score each of the semantic structures and to prune the set of structures. Since there are only four structures in the example ofSteps FIG. 8 , none of the structures are pruned. -
318 and 320 are then performed to combine the structures ofSteps FIG. 8 with "ShowAirlineServed"entity 506, "ShowFlight"entity 508, "ListTransport"entity 510, and "ShowCapacity"entity 512 of the next semantic node. - Of the four entities at the next semantic node, only the "ShowFlight" entity can be combined with the structures of
FIG. 8 . In addition, the "ShowFlight" entity can only be combined to each of the structures such that the "ShowFlight" entity becomes the head of the structure with the "Flight" entity as its immediate child. This results in 900, 902, 904, and 906 ofsemantic structures FIG. 9 , which correspond to 800, 802, 804, and 806 ofstructures FIG. 8 . - Scoring and
314 and 316 are repeated for newpruning steps 900, 902, 904, and 906 before determining that there are more semantic nodes to process atsemantic structures step 318. The "Airline" entity is then added to 900, 902, 904, and 906 atsemantic structures step 320. For each of these structures, this involves adding the "Airline" entity as a child node to the "Flight" entity. The resulting structures are shown as 1000, 1002, 1004, and 1006 insemantic structures FIG. 10 . -
314, 316 and 318 are then repeated for the new structures before adding the "Flight" entity to the structures ofSteps FIG. 10 . Since a "Flight" entity was created to connect the two city entities, a "Flight" entity does not need to be added to the structures. However, the fact that a "Flight" entity was found in the lattice means that the scores for the semantic structures no longer include a penalty factor for the creation of the "Flight" entity. - After scoring and pruning the new structures, there are no more semantic nodes to' process at
step 318 and the process ofFIG. 3 continues atstep 322 where the highest-scoring structure is examined by acommand identifier 222 to determine if it is a command structure. A command structure will be headed by an entity with a "Command" attribute that has been set to "True" inschema 200. If the highest-scoring semantic structure is a command structure, the structure is returned atstep 324 as the command represented by the text. - If the highest-scoring semantic structure is not a command entity at
step 322,command identifier 222 attempts to identify commands that can accept the highest-scoring structure atstep 326. The highest-scoring structure is then incorporated into each of these command structures and the command structures are scored atstep 328. The highest-scoring command structure is then returned as the command represented by the text. - Although the present invention has been described with reference to particular embodiments, workers skilled in the art will recognize that changes may be made in form and detail without departing from the scope of the invention. In particular, the scoring functions may be modified or combined within the scope of the present invention.
Claims (18)
- A method of identifying a semantic structure from a text, the method comprising:defining (300) a schema (200) that includes semantic entities;using (302) the semantic entities included in the schema to construct a semantic structure table (210) with an entry that is indexed by two semantic entities of the schema and that contains a set of semantic structures found in the schema, each semantic structure containing the two semantic entities used to index the entry;identifying semantic entities from the text using the schema;accessing (312) the semantic structure table to find an entry indexed by two semantic entities identified from the text;forming a candidate semantic structure for each of the semantic structures provided by the entry;generating (314) a semantic score for each candidate semantic structure based on the likelihood of the semantic structures;generating (314) a syntactic score for each candidate semantic structure based in part on the position of a word in the text and the position in the semantic structure of a semantic entity formed from the word; andcombining the syntactic score and the semantic score for each semantic structure to select one of the candidate semantic structures for at least a portion of the text.
- The method of claim 1 wherein generating a syntactic score comprises for each parent-child relationship between semantic entities in a candidate semantic structure, identifying a token position of a word associated with a parent semantic entity and identifying a token position of a word associated with a child semantic entity and determining a probability based on the token positions.
- The method of claim 1 further comprising generating a transition score based on the order in which semantic entities identified from the text are aligned with the text.
- The method of claim 3 wherein generating a transition score comprises generating a separate transition probability for each pair of semantic entities that appear on a same level in a candidate semantic structure.
- The method of claim 1 wherein forming a candidate semantic structure comprises including semantic entities in the candidate semantic structure that are not identified from the text.
- The method of claim 5 wherein generating a semantic score comprises using a penalty factor to discount a probability of a semantic entity if the semantic entity was not identified from the text.
- The method of claim 1 wherein identifying semantic entities comprises using the schema in which text is associated with semantic entities.
- The method of claim 7 wherein a single word is associated with multiple semantic entities in the schema.
- The method of claim 7 wherein forming a candidate semantic structure comprises basing the semantic structure on relationships between semantic entities that are defined in a schema.
- The method of claim 9 wherein the schema that defines the relationships between semantic entities and the schema that associates text with semantic entities is the same schema.
- The method of claim 1 further comprising combining a selected semantic structure with a further semantic entity identified from the text to form an expanded semantic structure.
- The method of claim 11 further comprising generating a semantic score and a syntactic score for the expanded semantic structure.
- The method of claim 11 wherein combining a selected semantic structure with a further semantic entity comprises performing an ordered search comprising:determining if the further semantic entity can be placed beneath any of the entities in the selected semantic structure;determining if a head of the selected semantic structure can be placed beneath the further semantic entity; anddetermining if there is a common ancestor entity that both the further semantic entity and the head of the selected semantic structure can be placed beneath.
- The method of claim 1 further comprising:determining that a selected semantic structure is not a command semantic structure;placing the selected semantic structure in a command semantic structure; andidentifying the command semantic structure as the semantic structure of the text.
- The method of claim 14 further comprising placing the selected semantic structure in multiple command semantic structures.
- The method of claim 15 further comprising scoring each command semantic structure and selecting a highest scoring command semantic structure as the semantic structure of the text.
- The method of claim 1 further comprising pruning a candidate semantic structure from further consideration based on the syntactic score and the semantic score for the semantic structure.
- A computer-readable medium having computer-executable instructions for performing the steps of the method of one of claims 1 to 17.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US10/679,556 US7593845B2 (en) | 2003-10-06 | 2003-10-06 | Method and apparatus for identifying semantic structures from text |
| US679556 | 2003-10-06 |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| EP1522930A2 EP1522930A2 (en) | 2005-04-13 |
| EP1522930A3 EP1522930A3 (en) | 2006-10-04 |
| EP1522930B1 true EP1522930B1 (en) | 2010-03-31 |
Family
ID=34314088
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP04103457A Expired - Lifetime EP1522930B1 (en) | 2003-10-06 | 2004-07-20 | Method and apparatus for identifying semantic structures from text |
Country Status (7)
| Country | Link |
|---|---|
| US (1) | US7593845B2 (en) |
| EP (1) | EP1522930B1 (en) |
| JP (1) | JP2005115922A (en) |
| KR (1) | KR101120798B1 (en) |
| CN (1) | CN1606004B (en) |
| AT (1) | ATE463013T1 (en) |
| DE (1) | DE602004026258D1 (en) |
Families Citing this family (41)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7618778B2 (en) | 2004-06-02 | 2009-11-17 | Kaufman Joseph C | Producing, cataloging and classifying sequence tags |
| PT1666074E (en) | 2004-11-26 | 2008-08-22 | Ba Ro Gmbh & Co Kg | Disinfection lamp |
| US7669119B1 (en) * | 2005-07-20 | 2010-02-23 | Alexa Internet | Correlation-based information extraction from markup language documents |
| US7328199B2 (en) * | 2005-10-07 | 2008-02-05 | Microsoft Corporation | Componentized slot-filling architecture |
| US7822699B2 (en) * | 2005-11-30 | 2010-10-26 | Microsoft Corporation | Adaptive semantic reasoning engine |
| US7606700B2 (en) * | 2005-11-09 | 2009-10-20 | Microsoft Corporation | Adaptive task framework |
| US20070106496A1 (en) * | 2005-11-09 | 2007-05-10 | Microsoft Corporation | Adaptive task framework |
| US20070130134A1 (en) * | 2005-12-05 | 2007-06-07 | Microsoft Corporation | Natural-language enabling arbitrary web forms |
| US7933914B2 (en) * | 2005-12-05 | 2011-04-26 | Microsoft Corporation | Automatic task creation and execution using browser helper objects |
| US7831585B2 (en) * | 2005-12-05 | 2010-11-09 | Microsoft Corporation | Employment of task framework for advertising |
| US20070203869A1 (en) * | 2006-02-28 | 2007-08-30 | Microsoft Corporation | Adaptive semantic platform architecture |
| US7996783B2 (en) * | 2006-03-02 | 2011-08-09 | Microsoft Corporation | Widget searching utilizing task framework |
| RU2643438C2 (en) * | 2013-12-25 | 2018-02-01 | Общество с ограниченной ответственностью "Аби Продакшн" | Detection of linguistic ambiguity in a text |
| US9984071B2 (en) * | 2006-10-10 | 2018-05-29 | Abbyy Production Llc | Language ambiguity detection of text |
| JP4451435B2 (en) | 2006-12-06 | 2010-04-14 | 本田技研工業株式会社 | Language understanding device, language understanding method, and computer program |
| CN101226523B (en) * | 2007-01-17 | 2012-09-05 | 国际商业机器公司 | Method and system for analyzing data general condition |
| US9053113B2 (en) | 2007-03-28 | 2015-06-09 | International Business Machines Corporation | Autonomic generation of document structure in a content management system |
| CN101114282B (en) * | 2007-07-12 | 2010-05-26 | 华为技术有限公司 | A word segmentation processing method and device |
| WO2009029905A2 (en) * | 2007-08-31 | 2009-03-05 | Powerset, Inc. | Identification of semantic relationships within reported speech |
| US8463593B2 (en) * | 2007-08-31 | 2013-06-11 | Microsoft Corporation | Natural language hypernym weighting for word sense disambiguation |
| US8712758B2 (en) * | 2007-08-31 | 2014-04-29 | Microsoft Corporation | Coreference resolution in an ambiguity-sensitive natural language processing system |
| US8639708B2 (en) | 2007-08-31 | 2014-01-28 | Microsoft Corporation | Fact-based indexing for natural language search |
| US8868562B2 (en) | 2007-08-31 | 2014-10-21 | Microsoft Corporation | Identification of semantic relationships within reported speech |
| US8316036B2 (en) | 2007-08-31 | 2012-11-20 | Microsoft Corporation | Checkpointing iterators during search |
| US8229730B2 (en) | 2007-08-31 | 2012-07-24 | Microsoft Corporation | Indexing role hierarchies for words in a search index |
| US8346756B2 (en) * | 2007-08-31 | 2013-01-01 | Microsoft Corporation | Calculating valence of expressions within documents for searching a document index |
| US8301437B2 (en) * | 2008-07-24 | 2012-10-30 | Yahoo! Inc. | Tokenization platform |
| EP2583421A1 (en) * | 2010-06-16 | 2013-04-24 | Sony Mobile Communications AB | User-based semantic metadata for text messages |
| US20130106894A1 (en) | 2011-10-31 | 2013-05-02 | Elwha LLC, a limited liability company of the State of Delaware | Context-sensitive query enrichment |
| US9471606B1 (en) * | 2012-06-25 | 2016-10-18 | Google Inc. | Obtaining information to provide to users |
| US9424249B1 (en) * | 2012-09-18 | 2016-08-23 | Amazon Technologies, Inc. | Encoding text units |
| US10558926B2 (en) * | 2014-11-20 | 2020-02-11 | Academia Sinica | Statistical pattern generation for information extraction |
| US10672390B2 (en) * | 2014-12-22 | 2020-06-02 | Rovi Guides, Inc. | Systems and methods for improving speech recognition performance by generating combined interpretations |
| WO2017094967A1 (en) * | 2015-12-03 | 2017-06-08 | 한국과학기술원 | Natural language processing schema and method and system for establishing knowledge database therefor |
| US10282411B2 (en) * | 2016-03-31 | 2019-05-07 | International Business Machines Corporation | System, method, and recording medium for natural language learning |
| CN105957530B (en) | 2016-04-28 | 2020-01-03 | 海信集团有限公司 | Voice control method and device and terminal equipment |
| US10380247B2 (en) | 2016-10-28 | 2019-08-13 | Microsoft Technology Licensing, Llc | Language-based acronym generation for strings |
| RU2679988C1 (en) * | 2017-12-11 | 2019-02-14 | Общество с ограниченной ответственностью "Аби Продакшн" | Extracting information objects with the help of a classifier combination |
| CN110276080B (en) * | 2019-06-28 | 2023-10-17 | 第四范式(北京)技术有限公司 | Semantic processing method and system |
| TWI735380B (en) * | 2019-11-20 | 2021-08-01 | 中央研究院 | Natural language processing method and computing apparatus thereof |
| US11797610B1 (en) * | 2020-09-15 | 2023-10-24 | Elemental Cognition Inc. | Knowledge acquisition tool |
Family Cites Families (25)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4635199A (en) * | 1983-04-28 | 1987-01-06 | Nec Corporation | Pivot-type machine translating system comprising a pragmatic table for checking semantic structures, a pivot representation, and a result of translation |
| SE466029B (en) | 1989-03-06 | 1991-12-02 | Ibm Svenska Ab | DEVICE AND PROCEDURE FOR ANALYSIS OF NATURAL LANGUAGES IN A COMPUTER-BASED INFORMATION PROCESSING SYSTEM |
| US5418717A (en) * | 1990-08-27 | 1995-05-23 | Su; Keh-Yih | Multiple score language processing system |
| EP0481107B1 (en) * | 1990-10-16 | 1995-09-06 | International Business Machines Corporation | A phonetic Hidden Markov Model speech synthesizer |
| US5748840A (en) * | 1990-12-03 | 1998-05-05 | Audio Navigation Systems, Inc. | Methods and apparatus for improving the reliability of recognizing words in a large database when the words are spelled or spoken |
| DE69432575T2 (en) * | 1993-01-28 | 2004-03-18 | Kabushiki Kaisha Toshiba, Kawasaki | Document recognition system with improved effectiveness of document recognition |
| US5414836A (en) * | 1993-09-29 | 1995-05-09 | International Business Machines Corporation | Software testing system that employs a graphical interface to generate test cases configured as hybrid tree structures |
| US5873056A (en) * | 1993-10-12 | 1999-02-16 | The Syracuse University | Natural language processing system for semantic vector representation which accounts for lexical ambiguity |
| JP3459712B2 (en) * | 1995-11-01 | 2003-10-27 | キヤノン株式会社 | Speech recognition method and device and computer control device |
| US5778341A (en) * | 1996-01-26 | 1998-07-07 | Lucent Technologies Inc. | Method of speech recognition using decoded state sequences having constrained state likelihoods |
| US5781879A (en) * | 1996-01-26 | 1998-07-14 | Qpl Llc | Semantic analysis and modification methodology |
| US5987414A (en) * | 1996-10-31 | 1999-11-16 | Nortel Networks Corporation | Method and apparatus for selecting a vocabulary sub-set from a speech recognition dictionary for use in real time automated directory assistance |
| US6076051A (en) * | 1997-03-07 | 2000-06-13 | Microsoft Corporation | Information retrieval utilizing semantic representation of text |
| US6112168A (en) * | 1997-10-20 | 2000-08-29 | Microsoft Corporation | Automatically recognizing the discourse structure of a body of text |
| JP3004254B2 (en) * | 1998-06-12 | 2000-01-31 | 株式会社エイ・ティ・アール音声翻訳通信研究所 | Statistical sequence model generation device, statistical language model generation device, and speech recognition device |
| US6233557B1 (en) * | 1999-02-23 | 2001-05-15 | Motorola, Inc. | Method of selectively assigning a penalty to a probability associated with a voice recognition system |
| US6480819B1 (en) * | 1999-02-25 | 2002-11-12 | Matsushita Electric Industrial Co., Ltd. | Automatic search of audio channels by matching viewer-spoken words against closed-caption/audio content for interactive television |
| US6714941B1 (en) * | 2000-07-19 | 2004-03-30 | University Of Southern California | Learning data prototypes for information extraction |
| US7035802B1 (en) * | 2000-07-31 | 2006-04-25 | Matsushita Electric Industrial Co., Ltd. | Recognition system using lexical trees |
| US7194454B2 (en) * | 2001-03-12 | 2007-03-20 | Lucent Technologies | Method for organizing records of database search activity by topical relevance |
| US7117144B2 (en) * | 2001-03-31 | 2006-10-03 | Microsoft Corporation | Spell checking for text input via reduced keypad keys |
| DE10122756A1 (en) | 2001-05-10 | 2002-11-21 | Daimler Chrysler Ag | Process for generating data for semantic language analysis |
| US7181465B2 (en) * | 2001-10-29 | 2007-02-20 | Gary Robin Maze | System and method for the management of distributed personalized information |
| US7177799B2 (en) * | 2002-01-14 | 2007-02-13 | Microsoft Corporation | Semantic analysis system for interpreting linguistic structures output by a natural language linguistic analysis system |
| US20040220892A1 (en) * | 2003-04-29 | 2004-11-04 | Ira Cohen | Learning bayesian network classifiers using labeled and unlabeled data |
-
2003
- 2003-10-06 US US10/679,556 patent/US7593845B2/en not_active Expired - Fee Related
-
2004
- 2004-07-20 DE DE602004026258T patent/DE602004026258D1/en not_active Expired - Lifetime
- 2004-07-20 EP EP04103457A patent/EP1522930B1/en not_active Expired - Lifetime
- 2004-07-20 AT AT04103457T patent/ATE463013T1/en not_active IP Right Cessation
- 2004-08-10 CN CN2004100567259A patent/CN1606004B/en not_active Expired - Fee Related
- 2004-08-16 KR KR1020040064211A patent/KR101120798B1/en not_active Expired - Fee Related
- 2004-08-19 JP JP2004239993A patent/JP2005115922A/en active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| EP1522930A3 (en) | 2006-10-04 |
| EP1522930A2 (en) | 2005-04-13 |
| CN1606004B (en) | 2013-03-27 |
| US20050075859A1 (en) | 2005-04-07 |
| JP2005115922A (en) | 2005-04-28 |
| CN1606004A (en) | 2005-04-13 |
| KR20050033420A (en) | 2005-04-12 |
| ATE463013T1 (en) | 2010-04-15 |
| US7593845B2 (en) | 2009-09-22 |
| KR101120798B1 (en) | 2012-03-26 |
| DE602004026258D1 (en) | 2010-05-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP1522930B1 (en) | Method and apparatus for identifying semantic structures from text | |
| EP1582997B1 (en) | Machine translation using logical forms | |
| KR101084786B1 (en) | Computer-readable recording medium storing tree sequencing components | |
| US7113905B2 (en) | Method and apparatus for determining unbounded dependencies during syntactic parsing | |
| US7603267B2 (en) | Rules-based grammar for slots and statistical model for preterminals in natural language understanding system | |
| EP0907923B1 (en) | Method and system for computing semantic logical forms from syntax trees | |
| US7970600B2 (en) | Using a first natural language parser to train a second parser | |
| US6990439B2 (en) | Method and apparatus for performing machine translation using a unified language model and translation model | |
| US7003445B2 (en) | Statistically driven sentence realizing method and apparatus | |
| US7636657B2 (en) | Method and apparatus for automatic grammar generation from data entries | |
| US7574347B2 (en) | Method and apparatus for robust efficient parsing | |
| US7529657B2 (en) | Configurable parameters for grammar authoring for speech recognition and natural language understanding | |
| US9110883B2 (en) | System for natural language understanding | |
| US20050246158A1 (en) | Method and apparatus for improved grammar checking using a stochastic parser | |
| JPH07200591A (en) | Parser | |
| US10503769B2 (en) | System for natural language understanding | |
| US9075864B2 (en) | Method and system for semantic searching using syntactic and semantic analysis | |
| JP3781561B2 (en) | Natural language analysis device, system and recording medium | |
| EP1465155B1 (en) | Automatic resolution of segmentation ambiguities in grammar authoring | |
| CN108491381A (en) | A kind of syntactic analysis method of Chinese bipartite structure | |
| US7505896B2 (en) | Method and apparatus for reattaching nodes in a parse structure | |
| Coppola et al. | Automatic framenet-based annotation of conversational speech | |
| Seco et al. | Using CBR for semantic analysis of software specifications | |
| Atserias et al. | Using a Diathesis Model for Semantic Parsing | |
| Seneff | Semantic understanding by combining extended CFG parser with HMM model |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| AK | Designated contracting states |
Kind code of ref document: A2 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LI LU MC NL PL PT RO SE SI SK TR |
|
| AX | Request for extension of the european patent |
Extension state: AL HR LT LV MK |
|
| PUAL | Search report despatched |
Free format text: ORIGINAL CODE: 0009013 |
|
| AK | Designated contracting states |
Kind code of ref document: A3 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LI LU MC NL PL PT RO SE SI SK TR |
|
| AX | Request for extension of the european patent |
Extension state: AL HR LT LV MK |
|
| 17P | Request for examination filed |
Effective date: 20070320 |
|
| AKX | Designation fees paid |
Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LI LU MC NL PL PT RO SE SI SK TR |
|
| 17Q | First examination report despatched |
Effective date: 20071109 |
|
| GRAP | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOSNIGR1 |
|
| GRAS | Grant fee paid |
Free format text: ORIGINAL CODE: EPIDOSNIGR3 |
|
| GRAA | (expected) grant |
Free format text: ORIGINAL CODE: 0009210 |
|
| AK | Designated contracting states |
Kind code of ref document: B1 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LI LU MC NL PL PT RO SE SI SK TR |
|
| REG | Reference to a national code |
Ref country code: GB Ref legal event code: FG4D Ref country code: CH Ref legal event code: EP |
|
| REG | Reference to a national code |
Ref country code: IE Ref legal event code: FG4D |
|
| REF | Corresponds to: |
Ref document number: 602004026258 Country of ref document: DE Date of ref document: 20100512 Kind code of ref document: P |
|
| REG | Reference to a national code |
Ref country code: NL Ref legal event code: VDEP Effective date: 20100331 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: SI Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20100331 Ref country code: PL Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20100331 Ref country code: FI Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20100331 Ref country code: AT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20100331 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: CY Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20100331 Ref country code: ES Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20100712 Ref country code: NL Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20100331 Ref country code: RO Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20100331 Ref country code: SE Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20100331 Ref country code: BE Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20100331 Ref country code: EE Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20100331 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: SK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20100331 Ref country code: CZ Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20100331 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: PT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20100802 Ref country code: DK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20100331 |
|
| PLBE | No opposition filed within time limit |
Free format text: ORIGINAL CODE: 0009261 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: MC Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20100731 |
|
| REG | Reference to a national code |
Ref country code: CH Ref legal event code: PL |
|
| 26N | No opposition filed |
Effective date: 20110104 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: CH Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20100731 Ref country code: LI Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20100731 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: IE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20100720 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: LU Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20100720 Ref country code: HU Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20101001 Ref country code: BG Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20100331 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: TR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20100331 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: BG Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20100630 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: GR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20100331 |
|
| REG | Reference to a national code |
Ref country code: DE Ref legal event code: R082 Ref document number: 602004026258 Country of ref document: DE Representative=s name: GRUENECKER, KINKELDEY, STOCKMAIR & SCHWANHAEUS, DE |
|
| REG | Reference to a national code |
Ref country code: GB Ref legal event code: 732E Free format text: REGISTERED BETWEEN 20150115 AND 20150121 |
|
| REG | Reference to a national code |
Ref country code: DE Ref legal event code: R081 Ref document number: 602004026258 Country of ref document: DE Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, REDMOND, US Free format text: FORMER OWNER: MICROSOFT CORP., REDMOND, WASH., US Effective date: 20150126 Ref country code: DE Ref legal event code: R082 Ref document number: 602004026258 Country of ref document: DE Representative=s name: GRUENECKER PATENT- UND RECHTSANWAELTE PARTG MB, DE Effective date: 20150126 |
|
| REG | Reference to a national code |
Ref country code: FR Ref legal event code: TP Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, US Effective date: 20150724 |
|
| REG | Reference to a national code |
Ref country code: FR Ref legal event code: PLFP Year of fee payment: 13 |
|
| REG | Reference to a national code |
Ref country code: FR Ref legal event code: PLFP Year of fee payment: 14 |
|
| PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: FR Payment date: 20170613 Year of fee payment: 14 |
|
| PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: IT Payment date: 20170720 Year of fee payment: 14 Ref country code: GB Payment date: 20170719 Year of fee payment: 14 |
|
| GBPC | Gb: european patent ceased through non-payment of renewal fee |
Effective date: 20180720 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: FR Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20180731 Ref country code: GB Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20180720 |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: IT Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20180720 |
|
| REG | Reference to a national code |
Ref country code: DE Ref legal event code: R079 Ref document number: 602004026258 Country of ref document: DE Free format text: PREVIOUS MAIN CLASS: G06F0017270000 Ipc: G06F0040200000 |
|
| PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: DE Payment date: 20200707 Year of fee payment: 17 |
|
| REG | Reference to a national code |
Ref country code: DE Ref legal event code: R119 Ref document number: 602004026258 Country of ref document: DE |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: DE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20220201 |

