Semantic analysis is the deep linguistic analysis process that maps tokens to Knowledge Graph entries.
This is the process that makes linguistic analysys "deep" by attributing a meaning to each term of the text.
Note: tokens corresponding to parts-of-speech like punctuation, conjunctions, articles, prepositions and pronouns are not mapped to Knowledge Graph entries. That it isn't because they lack meaning, but because part-of-speech tagging and morphological analysis provide enough information.
Meaning attribution is a relatively easy task if a term is unambiguous.
The problem arises when a term has multiple meanings. For example take the word:
which can be interpreted as:
- Simple present tense, third person singular of the verb to bank in the sense of "to deposit in a bank"
- Plural form of the noun bank in the sense of "financial institution"
- Plural form of the noun bank in the sense of "slope beside a body of water"
and more. In this case automatic disambiguation is needed, and this is the precisely what semantic analysis does using the context's Knowledge Graph and the relationships it contains.
Semantic analysis output is part of the JSON object returned by deep linguistic analysis.