Reference articles on history, science, culture and more
Encyclopedia

Syntactic pattern recognition

Form of pattern recognition

Syntactic pattern recognition, or structural pattern recognition, is a form of pattern recognition in which each object can be represented by a variable-cardinality set of symbolic nominal features. This allows for representing pattern structures, taking into account more complex relationships between attributes than is possible in the case of flat, numerical feature vectors of fixed dimensionality that are used in statistical classification.

Syntactic pattern recognition can be used instead of statistical pattern recognition if clear structure exists in the patterns. One way to present such structure is via strings of symbols from a formal language. In this case, the differences in the structures of the classes are encoded as different grammars.

An example of this would be diagnosing heart problems with electrocardiogram (ECG) measurements. ECG waveforms can be approximated with diagonal and vertical line segments. If normal and unhealthy waveforms can be described as formal grammars, ECG signals can be classified as healthy or unhealthy by first describing them in terms of the basic line segments, and then trying to parse the descriptions according to the grammars. Another example is tessellation of tiling patterns.

A second way to represent relations are graphs, where nodes are linked if corresponding subpatterns are related. An item can be assigned a certain class label if its graph representation is isomorphic with prototype graphs of that class.

Typically, patterns are constructed from simpler sub-patterns in a hierarchical fashion. This helps divide the recognition task into easier subtasks of first identifying sub-patterns, and then the actual patterns.

Structural methods provide descriptions of items, which may be useful in their own right. For example, syntactic pattern recognition can be used to determine what objects are present in an image. Furthermore, structural methods are strong when applied to finding a "correspondence mapping" between two images of an object. Under natural conditions, corresponding features will be in different positions and/or may be occluded in the two images, due to camera attitude and perspective, as in face recognition. A graph matching algorithm will yield the optimal correspondence.

Watch videos about Syntactic pattern recognitionExplainers and documentaries on YouTube (opens in a new tab)

Sources and credits

This article is adapted from the Wikipedia article Syntactic pattern recognition, written by its contributors and licensed under CC BY-SA 4.0. Fathomly has changed the layout, removed citation markers, navigation and maintenance notices, and adjusted punctuation. This adapted version is shared under the same license. For references, see the original article.

Fathomly is not affiliated with or endorsed by the Wikimedia Foundation. Spotted a problem? Tell us.

Continue exploring

Related topics

Grammar induction

Grammar induction is the process in machine learning of learning a formal grammar (usually as a collection of re-write rules or productions or alternatively as a finite-state machine or automaton of some kind) from a set of observations, thus constructing a model which accounts for the characteristics of the observed objects. More generally, grammatical inference is that branch of machine learning where the instance space consists of discrete combinatorial objects such as strings, trees and graphs.

String-searching algorithm

A string-searching algorithm, sometimes called string-matching algorithm, is an algorithm that searches a body of text for portions that match by pattern. A basic example of string searching is when the pattern and the searched text are arrays of elements of an alphabet Σ. Σ may be a human language alphabet, for example, the letters A through Z and other applications may use a binary alphabet (Σ = {0,1}) or a DNA alphabet (Σ = {A,C,G,T}) in bioinformatics.

Hopcroft-Karp algorithm

In computer science, the Hopcroft-Karp algorithm is an algorithm that takes a bipartite graph as input and produces a maximum-cardinality matching as output, a set of as many edges as possible with the property that no two edges share an endpoint. It runs in O ( | E | | V | ) {\displaystyle O(|E|{\sqrt {|V|}})} time in the worst case, where E {\displaystyle E} is set of edges in the graph, V {\displaystyle V} is set of vertices of the graph, and it is assumed that | E | = Ω ( | V | ) {\displaystyle |E|=\Omega (|V|)} .