Chart parser
|
A chart parser is a type of parser commonly used for natural languages that uses a data-driven approach based on a set of grammatical rules and a dictionary with each of the possible grammatical senses of each word indicated. There may also be a set of probabilities obtained from analysis of a text corpus.
A systematic search is used to explore the space of possible parses of the input string, and a data structure called a "chart" is used to eliminate backtracking and prevent a combinatorial explosion.
Types of Chart Parsers
- A common approach is to use a variant of the Viterbi algorithm.
- The Earley parser is a type of chart parser mainly used for parsing in computational linguistics, named for its inventor.
- Another chart parsing algorithm is the Cocke-Kasami-Younger (CKY) algorithm.
Chart parsers can also be used for parsing computer languages. Earley parsers in particular have been used in compiler compilers such as the Accent programming language where their ability to parse using arbitrary Context-free grammars eases the task of writing the grammar for a particular language. However their lower efficiency has led to people avoiding them for most compiler work.
In bidirectional chart parsing, edges of the chart are marked with a direction, either forwards or backwards, and rules are enforced on the direction edges must point in to be combined into further edges.
In incremental chart parsing, the chart is constructed incrementally as the text is edited by the user, with each change to the text resulting in the minimal possible corresponding change to the chart.
We can distinguish top-down and bottom-up chart parsers, and active and passive chart parsers.
See also: