N-грамм

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

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

Использование N-грамм[править | править вики-текст]

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

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

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

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

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

Другое применение N-грамм является выявление плагиата. Если разделить текст на несколько небольших фрагментов, представленных N-граммами, их легко сравнить друг с другом, и таким образом получить степень сходства контролируемых документов[3]. 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 слов, собранных с общедоступных веб-сайтов[4]

Методы для извлечения N-грамм[править | править вики-текст]

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

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

  1. Proceedings of the 7th Annual Conference ZNALOSTI 2008, Bratislava, Slovakia, pp. 54-65, February 2008. ISBN 978-80-227-2827-0.
  2. 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.
  3. Proceedings of the ITAT 2008, Information Technologies — Applications and Theory, Hrebienok, Slovakia, pp. 23-26, September 2008. ISBN 978-80-969184-8-5
  4. 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>. Созданная база N-грамм занимает 5 DVD и продается за 150$.
  5. 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.