1. Field
This disclosure relates generally to data processing of linguistic data, and, more particularly, to ontology-driven natural language processing.
2. Background
Natural language processing utilizes software to analyze and understand human languages. Understanding a human language requires knowing what a word or phrase stands for, and how to link concepts together in meaningful ways. One method in which this is accomplished is dictionary-based annotation. Dictionaries are prepared with lists of words, including common parts of speech, such as nouns, verbs, conjunctions, etc. The dictionaries are then used to annotate each word in a phrase to be processed. Subsequently, post-processing must be done to eliminate redundant annotations by utilizing grammatical rules. Because of the large number of possible grammatical rules in a language, hundreds or thousands of rules may need to be applied to each word.
In one aspect of this disclosure, a computer implemented system and method is disclosed for natural language processing ambiguity resolution. The system and method comprise storing, in computer memory, an ontology specifying a set of grammatical rules. Using the computer processor, a phrase comprising at least one current word to be processed is retrieved. A current word from the phrase is annotated with possible ontological classes to which the current word belongs according to the ontology. Using the processor, any ontological rules associated with the possible ontological classes to which the current word belongs are retrieved. Possible ontological classes are eliminated based on the ontological rules. A surviving possible ontological class is determined to be an accurate ontological class for the current word.
In another aspect of this disclosure, a computer-implemented system and method is disclosed for generating a dictionary from a selected ontological classification for use in natural language processing. A request to generate a dictionary from a selected ontological classification is received using a computer processor. All word instances belonging to the selected ontological classification are retrieved using the computer processor and compiled into a list.
The foregoing has outlined rather generally the features and technical advantages of one or more embodiments of this disclosure in order that the following detailed description may be better understood. Additional features and advantages of this disclosure will be described hereinafter, which may form the subject of the claims of this application.
This disclosure is further described in the detailed description that follows, with reference to the drawings, in which:
This application discloses a computer-implemented system and method for natural language processing ambiguity resolution and generating an ontology-based dictionary. The natural language processing ambiguity resolution system and method utilizes a language ontology instead of simplistic word dictionaries to understand language. Language ontologies are known in the art, but will be briefly discussed here for the sake of clarity (and with more detail in
The use of an ontology conveys a benefit to natural language processing ambiguity resolution. Because the structure of the language is represented by the ontology, it is unnecessary for the system to apply every possible grammatical rule to the ambiguous word. Instead, only the rules associated with the possible Ontological Classes, Relations, etc. need be retrieved and applied to the word to resolve its grammatical ambiguity, greatly reducing the processing time necessary to resolve word ambiguity. The language ontology may also be used to generate conventional dictionaries by, for example, retrieving every word instance directly associated with a selected Ontological Class, and compiling it into a list.
Software processes ambiguity resolver 130 and the dictionary generator 135 may be stored in memory 120 and are executable by the CPU 105 to operate on the natural language processing ambiguity resolution and ontology-based dictionary generator system 100, facilitating or executing the actual processes of resolving word ambiguity and generating word dictionaries from ontological libraries. The ambiguity resolver 130 and the dictionary generator 135 may be separate software processes, or they may be implemented within the same software process. The ontological library 125 may be stored as a data structure in memory 120 (or in other storage accessible by the system 100), and include an ontological universe for one or more desired languages.
Referring to
Some rules may not yet be useable because of ambiguity of surrounding words. For example, if an ontological rule states that an adjective must precede a noun, but the next word in the sentence has not yet been determined to be a noun, the ambiguity may be unresolveable until the system 100 processes the adjacent word. These ambiguities will be resolved in subsequent loops of the system 100, since the process continues as long as there are unresolved ambiguities, and the process always selects a new word different than the previous word for processing. Naturally, the system may in some cases encounter unresolveable ambiguities. A count may be imposed on to trigger termination of the loop, and a generated notification of the problem may be sent to an administrator if the system 100 detects that it is trapped in an infinite loop with an unresolveable ambiguity.
Aspects of the present invention have been described with respect to block diagrams and/or flowchart illustrations of methods, apparatus (system), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer instructions. These computer instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
The aforementioned programs can be written in any combination of one or more programming languages, including low-level, high-level, object-oriented or non object-oriented languages, such as Java, Smalltalk, C, and C++. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet service provider). Alternatively, the functions of the aforementioned programs can be implemented in whole or in part by computer circuits and other hardware (not shown).
The foregoing description of various embodiments of the present invention has been presented for purposes of illustration and description. It is not intended to be exhaustive nor to limit the invention to the precise form disclosed. Many modifications and variations are possible. Such modifications and variations that may be apparent to a person skilled in the art of the invention are intended to be included within the scope of the invention as defined by the appended claims.
Number | Name | Date | Kind |
---|---|---|---|
4862408 | Zamora | Aug 1989 | A |
5060155 | van Zuijlen | Oct 1991 | A |
5181163 | Nakajima et al. | Jan 1993 | A |
5794050 | Dahlgren et al. | Aug 1998 | A |
6085187 | Carter | Jul 2000 | A |
6405162 | Segond et al. | Jun 2002 | B1 |
7899666 | Varone | Mar 2011 | B2 |
7991760 | Kolz et al. | Aug 2011 | B2 |
8370130 | Yun et al. | Feb 2013 | B2 |
8442814 | Ceusters et al. | May 2013 | B2 |
8463593 | Pell et al. | Jun 2013 | B2 |
8504359 | Yun et al. | Aug 2013 | B2 |
20020059289 | Wenegrat | May 2002 | A1 |
20050049852 | Chao | Mar 2005 | A1 |
20050149510 | Shafrir | Jul 2005 | A1 |
20050234709 | Klavans | Oct 2005 | A1 |
20060053175 | Gardner | Mar 2006 | A1 |
20070010994 | Mueller | Jan 2007 | A1 |
20070118357 | Kasravi et al. | May 2007 | A1 |
20070143285 | Drumm et al. | Jun 2007 | A1 |
20080109212 | Witbrock | May 2008 | A1 |
20080255826 | Hio | Oct 2008 | A1 |
20100082331 | Brun et al. | Apr 2010 | A1 |
20100217764 | Labrou | Aug 2010 | A1 |
20100299288 | Gruber | Nov 2010 | A1 |
20120284259 | Jehuda | Nov 2012 | A1 |
20150106079 | Bostick | Apr 2015 | A1 |
20150142419 | Edwards | May 2015 | A1 |
20150378984 | Ateya | Dec 2015 | A1 |
Number | Date | Country |
---|---|---|
101216819 | Jul 2008 | CN |
2011051970 | May 2011 | WO |
Entry |
---|
Hyponymy and Hypernymy, Wikipedia, 6 Pages, downloaded Oct. 30, 2014. |
B.A. Galler et al., Syntactic Techniques in Information Retrieval, IP.com No. IPCOM000128818D (Sep. 19, 2005). |
H. Nomiyama et al., Two-Pass Lexical Ambiguity Resolution, IBM Technical Disclosure Bulletin, vol. 34, No. 7A (IP.com No. IPCOM000122407D) (Dec. 1991). |
M. Temizsoy et al., An Ontology-Based Approach to Parsing Turkish Sentences (1998). |
English language Abstract for CN 101216819 (cited above in this IDS). |
Number | Date | Country | |
---|---|---|---|
20130332145 A1 | Dec 2013 | US |