N-грамма: различия между версиями

 
(не показано 50 промежуточных версий 26 участников)
Строка 1: Строка 1:
{{викифицировать}}{{стиль}}
+
'''N-Грамма''' — последовательность, состоящая из n элементов, которые могут быть звуками, слогами, словами или буквами, в зависимости от контекста. Чаще всего N-грамма - это последовательность слов, устойчивые сочетания которых называются словосочетаниями.
  
'''N-грамм''' — последовательность из n элементов.<ref>Proceedings of the 7th Annual Conference ZNALOSTI 2008, Bratislava, Slovakia, pp. 54-65, February 2008. ISBN 978-80-227-2827-0.</ref> С [[семантика|семантической]] точки зрения, это может быть [[последовательность]] звуков, слогов, слов или букв. На практике чаще встречается N-грамм как ряд слов. Последовательность из двух последовательных элементов часто называют биграммы, последовательность из трех элементов называется триграмма. Не менее четырех и выше элементов обозначаются как N-грамм, N заменяется на количество последовательных элементов.
+
Последовательность из двух элементов называется биграммой, а последовательность из трёх элементов называется триграммой. Последовательность, состоящая из четырёх или более элементов, называется N-граммой, где N - количество элементов.
  
 
== Использование N-грамм ==
 
== Использование N-грамм ==
  
 
=== Общее использование N-грамм ===
 
=== Общее использование N-грамм ===
N-граммы в целом находят свое применение в широкой области наук. Они могут применяться, например, в области теоретической [[математика|математики]], [[биология|биологии]], [[картография|картографии]], а также в [[музыка|музыке]]. Наиболее часто использование N-грамм, включает следующие области:
+
N-граммы в целом находят своё применение в широкой области наук. Они могут применяться, например, в области теоретической [[математика|математики]], [[биология|биологии]], [[картография|картографии]], а также в [[музыка|музыке]]. Наиболее часто использование N-грамм включает следующие области:
* извлечение данных для кластеризации серии спутниковых снимков Земли из космоса, чтобы затем решить, какие конкретные части Земли на изображении,
+
* извлечение [[данные|данных]] для [[кластеризация|кластеризации]] серии спутниковых снимков Земли из космоса, чтобы затем решить, какие конкретные части Земли на изображении,
* поиск генетических последовательностей,
+
* поиск [[Генетический код|генетических последовательностей]],
 
* в области [[генетика|генетики]] используются для определения того, с каких конкретных видов животных собраны образцы [[ДНК]],
 
* в области [[генетика|генетики]] используются для определения того, с каких конкретных видов животных собраны образцы [[ДНК]],
 
* в компьютерном [[сжатие данных|сжатии]],
 
* в компьютерном [[сжатие данных|сжатии]],
* с использованием N-грамм, как правило, индексированы данные, связанные со звуком.
+
* для [[поисковый индекс|индексирования]] данных в [[поисковая система|поисковых системах]]; с использованием N-грамм, как правило, индексированы данные, связанные со звуком.
Также N-граммы широко применяются в обработке естественного языка.
+
Также N-граммы широко применяются в [[Обработка естественного языка|обработке естественного языка]].
  
 
=== Использование N-грамм для нужд обработки естественного языка ===
 
=== Использование N-грамм для нужд обработки естественного языка ===
В области обработки естественного языка, N-граммы используется в основном для предугадывания на основе вероятностных моделей. N-граммная модель рассчитывает вероятность последнего слова N-грамма если известны все предыдущие. При использовании этого подхода для моделирования языка предполагается, что появление каждого слова зависит только от предыдущих слов.<ref>URAFSKY, Daniel, MARTIN, James H. Speech And Language Processing : An Introduction To Natural Language Processing, Computational Linguistics, And Speech Recognition. 2nd edition. Upper Saddle River: Prentice Hall, 2008. 1024 s. Доступно по адресу: <http://books.google.com/books?id=fZmj5UNK8AQC&dq=Speech+and+language+processing+:an+introduction+to+natural+language+processing&printsec=frontcover&source=bl&ots=LqS8_-HLQI&sig=0hNFclP0wlsKmjUtfyShEm437ws&hl=en&ei=sjrvSZaHCImI_QbE_cjDDw&sa=X&oi=book_result&ct=result&resnum=9>. ISBN 0-13-504196-1.</ref>
+
В области обработки естественного языка N-граммы используется в основном для предугадывания на основе [[Теория вероятностей|вероятностных моделей]]. N-граммная модель рассчитывает [[вероятность]] последнего слова N-граммы, если известны все предыдущие. При использовании этого подхода для моделирования языка предполагается, что появление каждого слова зависит только от предыдущих слов<ref>{{книга
 +
| автор        = Jurafsky, D. and Martin, J.H.
 +
| заглавие      = Speech and Language Processing: An Introduction to Natural Language Processing, Computational Linguistics, and Speech Recognition
 +
| издательство  = Pearson Prentice Hall
 +
| год          = 2009
 +
| allpages      = 988
 +
| isbn          = 9780131873216
 +
| ref          = Jurafsky, D. and Martin, J.H.
 +
}}</ref>.
  
Другое применение N-граммов является выявление [[плагиат]]а. Если разделить текст на несколько небольших фрагментов, представленных n-граммами, их легко сравнить друг с другом, и таким образом получить степень сходства контролируемых документов.<ref>Proceedings of the ITAT 2008, Information Technologies - Applications and Theory, Hrebienok, Slovakia, pp. 23-26, September 2008. ISBN 978-80-969184-8-5</ref> N-грамм, часто успешно используется для категоризации текста и языка. Кроме того, их можно использовать для создания функций, которые позволяют получать знания из текстовых данных. Используя N-грамм можно эффективно найти кандидатов, чтобы заменить слова с ошибками правописания.
+
Другим применением N-грамм является выявление [[плагиат]]а. Если разделить текст на несколько небольших фрагментов, представленных N-граммами, их легко сравнить друг с другом и таким образом получить степень сходства анализируемых документов<ref>Proceedings of the ITAT 2008, Information Technologies — Applications and Theory, Hrebienok, Slovakia, pp. 23-26, September 2008. ISBN 978-80-969184-8-5</ref>. N-граммы часто успешно используются для категоризации текста и языка. Кроме того, их можно использовать для создания функций, которые позволяют получать знания из текстовых данных. Используя N-граммы, можно эффективно найти кандидатов, чтобы заменить слова с ошибками правописания.
  
 
=== Пример биграммной модели ===
 
=== Пример биграммной модели ===
 +
Целью построения N-граммных моделей является определение вероятности употребления заданной фразы. Эту вероятность можно задать формально как вероятность возникновения последовательности слов в неком [[Корпусная лингвистика|корпусе]] (наборе текстов). К примеру, вероятность фразы «счастье есть удовольствие без раскаяния» можно вычислить как произведение вероятностей каждого из слов этой фразы:
  
Цель постраения N-граммных моделей является определение вероятности употребления заданной фразы. Эту вероятность можно задать формально как вероятность возникновения последовательности слов в неком корпусе (наборе текстов). К примеру, вероятность фразы «счастье есть удовольствие без раскаяния» можно вычислить как произведение вероятностей каждого из слов этой фразы:
+
<small><pre>P = P(счастье) * P(есть|счастье) * P(удовольствие|счастье есть) * P(без|счастье есть удовольствие) * P(раскаяния|счастье есть удовольствие без)</pre></small>
  
<pre>P = P(счастье) * P(есть|счастье) * P(удовольствие|счастье есть) * P(без|счастье есть удовольствие) * P(раскаяния|счастье есть удовольствие без)</pre>
+
Чтобы определить P(счастье), нужно посчитать, сколько раз это слово встретилось в тексте, и поделить это значение на общее число слов. Рассчитать вероятность P(раскаяния|счастье есть удовольствие без) сложнее. Чтобы упростить эту задачу, примем, что вероятность слова в тексте зависит только от предыдущего слова. Тогда наша формула для расчета фразы примет следующий вид:
  
Рассчитать вероятность P(счастье) дело нехитрое: нужно всего лишь посчитать сколько раз это слово встретилось в тексте и поделить это значение на общее число слов. Но рассчитать вероятность P(раскаяния|счастье есть удовольствие без) уже не так просто. К счастью, мы можем упростить эту задачу. Примем, что вероятность слова в тексте зависит только от предыдущего слова. Тогда наша формула для расчета фразы примет следующий вид:
+
<small><pre>P = P(счастье) * P(есть|счастье) * P(удовольствие|есть) * P(без|удовольствие) * P(раскаяния|без)</pre></small>
  
<pre>P = P(счастье) * P(есть|счастье) * P(удовольствие|есть) * P(без|удовольствие) * P(раскаяния|без)</pre>
+
Рассчитать условную вероятность P(есть|счастье) несложно. Для этого считаем количество пар 'счастье есть', и делим на количество в тексте слова 'счастье'.
 
 
Уже проще. Рассчитать условную вероятность P(есть|счастье) несложно. Для этого считаем количество пар 'счастье есть' и делим на количество в тексте слова 'счастье'.
 
  
 
В результате, если мы посчитаем все пары слов в некотором тексте, мы сможем вычислить вероятность произвольной фразы. Этот набор рассчитанных вероятностей и будет биграммной моделью.
 
В результате, если мы посчитаем все пары слов в некотором тексте, мы сможем вычислить вероятность произвольной фразы. Этот набор рассчитанных вероятностей и будет биграммной моделью.
  
 
== Научно-исследовательские проекты Google ==
 
== Научно-исследовательские проекты Google ==
Исследовательские центры Google использовали N-граммные модели для широкого круга исследований и разработок. К ним относятся такие проекты, как статистический перевод с одного языка на другой, распознавание речи, исправление орфографических ошибок, извлечение информации и многое другое. Для целей этих проектов были использованы тексты корпусов, содержащих несколько триллионов слов.
+
Исследовательские центры [[Google (компания)|Google]] использовали N-граммные модели для широкого круга исследований и разработок. К ним относятся такие проекты, как [[Статистический машинный перевод|статистический перевод]] с одного языка на другой, [[распознавание речи]], исправление орфографических ошибок, [[извлечение информации]] и многое другое. Для целей этих проектов были использованы текстовые корпусы, содержащие несколько триллионов слов.
  
Google решила создать свой ​​учебный корпус. Проект называется Google teracorpus и он содержит 1 024 908 267 229 слов, собраных с общедоступных веб-сайтов.<ref>FRANZ, Alex, BRANTS, Thorsten. Official Google Research Blog : All Our N-gram are Belong to You [online]. Thursday, August 03, 2006 at 8/03/2006 11:26:00 AM. Доступно по адресу: <http://googleresearch.blogspot.com/2006/08/all-our-n-gram-are-belong-to-you.html>.</ref>
+
Google решила создать свой учебный корпус. Проект называется Google teracorpus и он содержит 1 024 908 267 229 слов, собранных с общедоступных веб-сайтов<ref>FRANZ, Alex, BRANTS, Thorsten. [https://googleresearch.blogspot.com/2006/08/all-our-n-gram-are-belong-to-you.html Official Google Research Blog: All Our N-gram are Belong to You] {{Wayback|url=http://googleresearch.blogspot.com/2006/08/all-our-n-gram-are-belong-to-you.html |date=20061017225954 }}. Thursday, August 03, 2006 at 8/03/2006 11:26:00 AM. Созданная база N-грамм продаётся в виде 5 DVD.</ref>.
  
== Методы для извлечения n-граммов ==
+
== Методы для извлечения N-грамм ==
В связи с частым использованием N-граммов для решения различных задач, необходим надежный и быстрый алгоритм для извлечения их из текста. Подходящий инструмент для извлечения n-граммов должен быть в состоянии работать с неограниченным размером текста, работать быстро и эффективно использовать имеющиеся ресурсы. Есть несколько методов извлечения N-граммов из текста. Эти методы основаны на разных принципах:
+
В связи с частым использованием N-грамм для решения различных задач необходим надежный и быстрый [[алгоритм]] для извлечения их из текста. Подходящий инструмент для извлечения N-грамм должен быть в состоянии работать с неограниченным размером текста, работать быстро и эффективно использовать имеющиеся ресурсы. Есть несколько методов извлечения N-грамм из текста. Эти методы основаны на разных принципах:
* ''Алгоритм Nagao 94'' для текстов на японском<ref>M. Nagao and S. Mori. A New Method of N-gram Statistics for Large Number of n and Automatic Extraction of Words and Phrases from Large Text Data of Japanese. In Proceedings of the 15th International Conference on Computational Linguistics (COLING 1994), Kyoto, Japan, 1994.</ref>
+
* ''Алгоритм Nagao 94'' для текстов на [[Японский язык|японском]]<ref>M. Nagao and S. Mori. A New Method of N-gram Statistics for Large Number of n and Automatic Extraction of Words and Phrases from Large Text Data of Japanese. In Proceedings of the 15th International Conference on Computational Linguistics (COLING 1994), Kyoto, Japan, 1994.</ref>
 
* [[Алгоритм Лемпеля — Зива — Велча]]
 
* [[Алгоритм Лемпеля — Зива — Велча]]
 
* [[Суффиксный массив]]
 
* [[Суффиксный массив]]
 
* [[Суффиксное дерево]]
 
* [[Суффиксное дерево]]
 
* [[Инвертированный индекс]]
 
* [[Инвертированный индекс]]
 +
 +
== Синтаксические N-граммы ==
 +
Синтаксические N-граммы представляют собой последовательности элементов, определяемые на основе структуры синтаксических зависимостей или составляющих, а не линейной последовательности слов в тексте<ref name="sng">Grigori Sidorov, Francisco Velasquez, Efstathios Stamatatos, Alexander Gelbukh, and Liliana Chanona-Hernández. Syntactic Dependency-based N-grams as Classification Features. LNAI 7630, pp. 1-11, 2012.</ref><ref>Grigori Sidorov. Syntactic Dependency Based N-grams in Rule Based Automatic English as Second Language Grammar Correction. International Journal of Computational Linguistics and Applications, Vol. 4, No. 2, pp. 169—188, 2013.</ref>.
 +
 +
Синтаксические N-граммы представляют собой инструмент, позволяющий анализировать и описывать синтаксическую структуру языка. В отличие от линейных N-грамм, они могут быть использованы в тех же областях, что и последние, включая применение в качестве элементов векторной модели.
 +
 +
== Частотность n-грамм в текстах на русском языке ==
 +
Частотность n-грамм в текстах на русском языке можно найти напр. здесь: https://www.wolosz.hu/russian_n-grams.html<ref>{{Cite web|url=https://www.wolosz.hu/russian_n-grams.html|title=Частотность состоящих из слов n-грамм в текстах на русском языке|lang=ru|author=R. Wołosz|date=2024|url-status=live}}</ref>
  
 
== См. также ==
 
== См. также ==
Строка 51: Строка 66:
 
== Примечания ==
 
== Примечания ==
 
{{примечания}}
 
{{примечания}}
 +
 +
{{Обработка естественного языка}}
  
 
[[Категория:Информатика]]
 
[[Категория:Информатика]]
 
+
[[Категория:Обработка естественного языка]]
[[ca:N-grama]]
+
[[Категория:Языковое моделирование]]
[[cs:N-gram]]
 
[[de:N-Gramm]]
 
[[en:N-gram]]
 
[[es:N-grama]]
 
[[eu:N-grama]]
 
[[fi:N-grammi]]
 
[[fr:N-gramme]]
 
[[it:N-gramma]]
 
[[mhr:N-грам]]
 
[[sk:N-gram]]
 

Текущая версия от 21:25, 20 августа 2025

N-Грамма — последовательность, состоящая из n элементов, которые могут быть звуками, слогами, словами или буквами, в зависимости от контекста. Чаще всего N-грамма - это последовательность слов, устойчивые сочетания которых называются словосочетаниями.

Последовательность из двух элементов называется биграммой, а последовательность из трёх элементов называется триграммой. Последовательность, состоящая из четырёх или более элементов, называется N-граммой, где N - количество элементов.

Использование N-граммПравить

Общее использование N-граммПравить

N-граммы в целом находят своё применение в широкой области наук. Они могут применяться, например, в области теоретической математики, биологии, картографии, а также в музыке. Наиболее часто использование N-грамм включает следующие области:

Также N-граммы широко применяются в обработке естественного языка.

Использование N-грамм для нужд обработки естественного языкаПравить

В области обработки естественного языка N-граммы используется в основном для предугадывания на основе вероятностных моделей. N-граммная модель рассчитывает вероятность последнего слова N-граммы, если известны все предыдущие. При использовании этого подхода для моделирования языка предполагается, что появление каждого слова зависит только от предыдущих слов[1].

Другим применением N-грамм является выявление плагиата. Если разделить текст на несколько небольших фрагментов, представленных N-граммами, их легко сравнить друг с другом и таким образом получить степень сходства анализируемых документов[2]. N-граммы часто успешно используются для категоризации текста и языка. Кроме того, их можно использовать для создания функций, которые позволяют получать знания из текстовых данных. Используя N-граммы, можно эффективно найти кандидатов, чтобы заменить слова с ошибками правописания.

Пример биграммной моделиПравить

Целью построения N-граммных моделей является определение вероятности употребления заданной фразы. Эту вероятность можно задать формально как вероятность возникновения последовательности слов в неком корпусе (наборе текстов). К примеру, вероятность фразы «счастье есть удовольствие без раскаяния» можно вычислить как произведение вероятностей каждого из слов этой фразы:

P = P(счастье) * P(есть|счастье) * P(удовольствие|счастье есть) * P(без|счастье есть удовольствие) * P(раскаяния|счастье есть удовольствие без)

Чтобы определить P(счастье), нужно посчитать, сколько раз это слово встретилось в тексте, и поделить это значение на общее число слов. Рассчитать вероятность P(раскаяния|счастье есть удовольствие без) сложнее. Чтобы упростить эту задачу, примем, что вероятность слова в тексте зависит только от предыдущего слова. Тогда наша формула для расчета фразы примет следующий вид:

P = P(счастье) * P(есть|счастье) * P(удовольствие|есть) * P(без|удовольствие) * P(раскаяния|без)

Рассчитать условную вероятность P(есть|счастье) несложно. Для этого считаем количество пар 'счастье есть', и делим на количество в тексте слова 'счастье'.

В результате, если мы посчитаем все пары слов в некотором тексте, мы сможем вычислить вероятность произвольной фразы. Этот набор рассчитанных вероятностей и будет биграммной моделью.

Научно-исследовательские проекты GoogleПравить

Исследовательские центры Google использовали N-граммные модели для широкого круга исследований и разработок. К ним относятся такие проекты, как статистический перевод с одного языка на другой, распознавание речи, исправление орфографических ошибок, извлечение информации и многое другое. Для целей этих проектов были использованы текстовые корпусы, содержащие несколько триллионов слов.

Google решила создать свой учебный корпус. Проект называется Google teracorpus и он содержит 1 024 908 267 229 слов, собранных с общедоступных веб-сайтов[3].

Методы для извлечения N-граммПравить

В связи с частым использованием N-грамм для решения различных задач необходим надежный и быстрый алгоритм для извлечения их из текста. Подходящий инструмент для извлечения N-грамм должен быть в состоянии работать с неограниченным размером текста, работать быстро и эффективно использовать имеющиеся ресурсы. Есть несколько методов извлечения N-грамм из текста. Эти методы основаны на разных принципах:

Синтаксические N-граммыПравить

Синтаксические N-граммы представляют собой последовательности элементов, определяемые на основе структуры синтаксических зависимостей или составляющих, а не линейной последовательности слов в тексте[5][6].

Синтаксические N-граммы представляют собой инструмент, позволяющий анализировать и описывать синтаксическую структуру языка. В отличие от линейных N-грамм, они могут быть использованы в тех же областях, что и последние, включая применение в качестве элементов векторной модели.

Частотность n-грамм в текстах на русском языкеПравить

Частотность n-грамм в текстах на русском языке можно найти напр. здесь: https://www.wolosz.hu/russian_n-grams.html[7]

См. такжеПравить

ПримечанияПравить

  1. Jurafsky, D. and Martin, J.H. Speech and Language Processing: An Introduction to Natural Language Processing, Computational Linguistics, and Speech Recognition. — Pearson Prentice Hall, 2009. — 988 p. — ISBN 9780131873216.
  2. Proceedings of the ITAT 2008, Information Technologies — Applications and Theory, Hrebienok, Slovakia, pp. 23-26, September 2008. ISBN 978-80-969184-8-5
  3. FRANZ, Alex, BRANTS, Thorsten. Official Google Research Blog: All Our N-gram are Belong to You Архивная копия от 17 октября 2006 на Wayback Machine. Thursday, August 03, 2006 at 8/03/2006 11:26:00 AM. Созданная база N-грамм продаётся в виде 5 DVD.
  4. M. Nagao and S. Mori. A New Method of N-gram Statistics for Large Number of n and Automatic Extraction of Words and Phrases from Large Text Data of Japanese. In Proceedings of the 15th International Conference on Computational Linguistics (COLING 1994), Kyoto, Japan, 1994.
  5. Grigori Sidorov, Francisco Velasquez, Efstathios Stamatatos, Alexander Gelbukh, and Liliana Chanona-Hernández. Syntactic Dependency-based N-grams as Classification Features. LNAI 7630, pp. 1-11, 2012.
  6. Grigori Sidorov. Syntactic Dependency Based N-grams in Rule Based Automatic English as Second Language Grammar Correction. International Journal of Computational Linguistics and Applications, Vol. 4, No. 2, pp. 169—188, 2013.
  7. R. Wołosz. Частотность состоящих из слов n-грамм в текстах на русском языке (2024).

Ошибка Lua в Модуль:Navbox на строке 353: attempt to index local 'listText' (a nil value).