# Metrics on Words

DevFeed: [Metrics on Words](<https://devfeed.tech/articles/metrics-on-words-40250.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2011/12/19/metrics-on-words/>)

Published: 2011-12-19T20:59:31Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Mathematics](<https://devfeed.tech/topics/mathematics.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Algorithms](<https://devfeed.tech/topics/algorithms.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [algorithms](<https://devfeed.tech/tags/algorithms.md>), [analysis](<https://devfeed.tech/tags/analysis.md>), [code](<https://devfeed.tech/tags/code.md>), [decoding](<https://devfeed.tech/tags/decoding.md>), [dynamic-programming](<https://devfeed.tech/tags/dynamic-programming.md>), [functional-programming](<https://devfeed.tech/tags/functional-programming.md>), [github](<https://devfeed.tech/tags/github.md>), [levenshtein-distance](<https://devfeed.tech/tags/levenshtein-distance.md>), [linguistics](<https://devfeed.tech/tags/linguistics.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>), [metric](<https://devfeed.tech/tags/metric.md>), [monoids](<https://devfeed.tech/tags/monoids.md>), [ngrams](<https://devfeed.tech/tags/ngrams.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [programming](<https://devfeed.tech/tags/programming.md>), [python](<https://devfeed.tech/tags/python.md>), [string](<https://devfeed.tech/tags/string.md>)

## AI overview

This introductory article defines finite strings over an alphabet and explains that they form a monoid under concatenation, with the empty string as the identity element. It introduces a series on probabilistic analysis of Google's ngrams for tasks including spelling correction, word segmentation, typing prediction, and cipher decoding.

## Source excerpt

We are about to begin a series where we analyze large corpora of English words. In particular, we will use a probabilistic analysis of Google's ngrams to solve various tasks such as spelling correction, word segmentation, on-line typing prediction, and decoding substitution ciphers. This will hopefully take us on a wonderful journey through elementary probability, dynamic programming algorithms, and optimization. As usual, the code implemented in this post is available from this blog's Github page, and we encourage the reader to use the code to implement our suggested exercises.