Где я могу найти статистику о реальном мире в реальном мире?Справочная информация о реальном мире?
Я пытаюсь сопоставить вводный текст людей с внутренними объектами, и люди склонны совершать орфографические ошибки.
Есть 2 вида ошибок:
typos
- "Helllo" вместо "Hello"/"Satudray" вместо "субботы" и т.д.Spelling
- "Shikago" вместо "Чикаго"
Я использую Damerau-Levenshtein distance для опечаток и Double Metaphone для проверки орфографии (реализации Python here и here).
Я хочу сосредоточиться на Дамерау-Левенштейне (или просто edit-distance
). Реализации учебников всегда используют «1» для веса делеций, замен вставки и транспозиций. Хотя это просто и позволяет использовать хорошие алгоритмы, он не соответствует «реальности»/«реальным возможностям».
Примеры:
- Я уверен, что вероятность "Helllo" ("Hello") больше, чем "Helzlo", но они оба-редактировать расстояние.
- «Gello» ближе, чем «Qello» к «Hello» на клавиатуре QWERTY.
- Юникодские транслитерации: что такое «реальное» расстояние между «Мюнхен» и «Мюнхен»?
В чем должны быть веса «реального мира» для делеций, вставок, замещений и транспозиций?
Даже Norvig's very cool spell corrector использует невесомое расстояние редактирования.
BTW- Я уверен, что весовые коэффициенты должны быть функции, а не простые поплавки (в приведенных выше примерах ) ...
я могу настроить алгоритм, но где я могу «изучить» эти веса? Я не имею доступа к Google-scale data ...
Должен ли я просто угадать их?
EDIT - пытается ответить на вопросы пользователей:
- Мой текущий невзвешенная алгоритм не может часто, сталкиваясь с опечатками по указанным выше причинам. «Возвращение в четверг»: каждый «настоящий человек» может легко сказать, что четверг более вероятно, чем во вторник, но они оба находятся на расстоянии 1-править на расстоянии! (Да, я регистрирую и измеряю свою работу).
- Я разрабатываю поисковую систему NLP Travel, поэтому мой словарь содержит ~ 25 тыс. Пунктов назначения (ожидается, что они вырастут до 100 тыс.), Time Expressions ~ 200 (ожидается 1K), выражения People ~ 100 (ожидается 300), Money Expressions ~ 100 (ожидаемые 500), «логические слова клея» («от», «красивая», «квартира») ~ 2K (ожидается 10K) и т. д.
- Использование расстояния редактирования отличается для каждого из вышеперечисленных словесные группы. Я пытаюсь «автоматически корректировать, когда очевидно», например. 1 отредактируйте расстояние от 1 другого слова в словаре.У меня есть многие другие правила ручной настройки, например. Двойное исправление метафона, которое не более чем на 2 расстояния редактирования от словаря с длиной> 4 ... Список правил продолжает расти по мере того, как я узнаю из реального мира.
- «Сколько пар словарных статей находится в пределах вашего порога?»: Хорошо, это зависит от «причудливой системы взвешивания» и от реального мира (будущего) ввода, не так ли? Во всяком случае, у меня есть обширные модульные тесты, так что каждое изменение, которое я делаю в системе, только делает его лучше (на основе прошлых входов, конечно). Большинство букв под 6 букв находятся в пределах 1 расстояния редактирования от слова, которое находится на расстоянии 1 от другого словаря.
- Сегодня, когда есть 2 словарных словаря на том же расстоянии от ввода, я пытаюсь применить различные статистические данные, чтобы лучше угадать, что имел в виду пользователь (например, Париж, Франция, скорее всего, появится в моем поиске, чем в Паризе, Иран).
- Стоимость выбора неправильного слова возвращает полуслучайные (часто смешные) результаты конечному пользователю и потенциально теряя клиента. Стоимость непонимания немного дешевле: пользователю будет предложено перефразировать.
- Возможно ли, что стоимость его стоит? Да, я уверен, что так оно и есть. Вы не поверили бы, что количество опечаток, которые люди бросают в систему, и ожидать, что это будет понятно, и я мог бы уверенно использовать повышение в Precision and Recall.
Возможно, MS провела исследование (хотя коррекция заклинания Word не так умна, на самом деле я думаю, что это действительно проверяет каждую орфографию на список распространенных ошибок). Кроме того, Google довольно готов открыть исходный код, возможно, они дадут вам такие данные, если вы спросите красиво? –
Данные Google-масштаба интересны.Это что-то, что можно получить и запросить или это просто пример страницы? –
Это может помочь, если вы каким-то образом включили ключевую близость в свой вес. Набирать Hellp чаще, чем Hellz, потому что ключ q близок к «правильному» ключу o (при условии, что QWERTY ...) –