2010-02-10 2 views
9

Что книги о том, как построить программу синтаксического анализа естественного языка, как это:Построить модель естественного языка, который исправляет орфографические ошибки

 
input: I got to TALL you 
output: I got to TELL you 

input: Big RAT box 
output: Big RED box 

in: hoo un thum zend three 
out: one thousand three 

Он должен иметь языковую модель, которая позволяет предсказать, какие слова написаны с ошибками!

Каковы лучшие книги о том, как построить такой инструмент?

p.s. Существуют ли бесплатные веб-сервисы для проверки орфографии? С помощью Google может быть? ..

+5

+1 для орфографической ошибки «орфографическая ошибка». Это была шутка, верно? – APC

+1

@APC hahaha видa. Быстрая типизация, но она демонстрирует, как такие инструменты могут быть полезны. – EugeneP

+0

+1, используйте Spelly в Google Wave!: P –

ответ

7

Питер Норвиг написал потрясающий spell checker. Может быть, это может вам помочь.

+0

Просто собирался связать его :-) +1 –

+0

Прохладный сценарий. Похоже, что было бы просто расширить его до слова bigrams или триграмм, если бы у вас был правильный текст на выбранном языке. –

+0

Точно, это сценарий, который я пытался запомнить в своем сообщении ниже. +1 –

2

soundex (wiki) является одним из вариантов

+0

Поскольку Джордж Бернард Шоу (среди многих других) всегда жаловался, часто возникает большое расхождение между тем, как вещи пишутся и как они выражаются. По крайней мере, на английском. SOUNDEX() может быть эффективным подходом, например, к итальянскому. – APC

+0

Этот встроенный в Delphi RTL, его довольно непредсказуемый, но довольно крутой - хороший для людей, которым нравится писать fenetiklee err .. фонетически. –

1

В Dev Days London Майкл Спаркс представил сценарий Python, закодированный именно для этого. Это было удивительно просто! Посмотрите, можете ли вы найти в Google. Может быть, у кого-то здесь будет ссылка.

+3

Согласно потоку DevDays на MetaSO, сценарий Майкл Спаркс был представлен на сценарии Питера Норвига, который уже упоминался: http://meta.stackexchange.com/questions/27859/devdays-london-can-i-get-hold -of-the-presentation-material/28522 # 28522 – APC

+0

Да, это правильно, спасибо –

4

У вас есть по крайней мере три варианта

  1. Вы можете написать программу, которая понимает язык (то есть то, что означает слово). Сегодня это тема для исследований. Ожидайте первые результаты, когда вы можете купить компьютер, который достаточно быстр, чтобы запустить такую ​​программу (что, вероятно, через 10 лет, когда компьютеры стали в 1000 раз быстрее, чем сегодня).

  2. Используйте огромный корпус (текстовые документы) для обучения Hidden Marcov Model.

  3. Использование огромного корпуса и генерация статистики о quadruplets n-граммов, то есть, как часто появляется кортеж из N слов. У меня нет ссылки для этого, но идея состоит в том, что некоторые слова всегда появляются в контексте других слов. Поэтому, когда вы анализируете текст в 4 грамма и просматриваете их в своей базе данных, и вы не можете найти его, возможно, что с текущим кортежем что-то не так. Следующий шаг - найти все возможные совпадения (другие 4-граммовые, которые имеют небольшое звуковое сопровождение или аналогичное расстояние до текущего), и попробуйте тот, который имеет самую высокую частоту.

    Google имеет эти данные на нескольких языках, и вы можете найти больше в Google labs об этом.

[EDIT] Через некоторое Googling, я, наконец, нашел ссылку: На this page, вы можете купить английский от 1 до 5 граммов, которые Google, собранных по всему Интернету на 6 DVD-дисков.

Google google для «статистики орфографии google n-grams» также будет содержать некоторые интересные ссылки.

+0

Будет ли Google делиться этими данными со мной? ;) – EugeneP

+0

Думаю, что да. Я действительно должен найти ссылку снова. –

+0

Спасибо за полный и интересный ответ. – EugeneP

2

Существует довольно много библиотек Java для обработки естественного языка, которые помогут вам внедрить корректор орфографии. Но вы спросили о книге. Foundations of Statistical Natural Language Processing Кристофер Д. Мэннинг и Хинрих Шютце выглядят неплохо. Первый автор - профессор Стэнфорда, возглавляющий группу, которая занимается обработкой естественного языка и разработкой Java-библиотек и ресурсов НЛП, которые используют многие люди.

Смежные вопросы