Недавно я реализовал алгоритм проверки орфографии, который учитывает частоты биграмм (т.е. считает предыдущее слово словом, написанным с ошибкой, чтобы помочь определить правильную коррекцию орфографии).
Сейчас я хочу получить представление о средней производительности моего алгоритма. Для этого я планирую дать алгоритму множество слов с ошибками, где я уже знаю правильное написание, и проверить, предлагает ли мой алгоритм правильное исправление. Кто-нибудь знает несколько наборов данных о неправильных написаниях и их исправлениях, которые я мог бы использовать для оценки своего алгоритма таким образом?
Чтобы проиллюстрировать это несколькими примерами, вот данные, которые мне нужны,
buildMap.put("is neccasary", "is necessary");
buildMap.put("was uneque", "was unique");
buildMap.put("of conciderable", "of considerable");
buildMap.put("must rember", "must remember");
Здесь первым словом в первой строке является слово context , а вторым словом является слово с ошибкой . Вторая строка представляет правильно написанную версию слова с ошибкой ( цель ).
Я, очевидно, мог бы сгенерировать орфографические ошибки программно (например, вычислить строки с расстояния редактирования на расстоянии один или два), но это не идеально, потому что эти орфографические ошибки, вероятно, не будут следовать образцу реальных орфографических ошибок (например, символ с большей вероятностью будет заменен) другим рядом с клавиатурой, чем тот, который должен быть напечатан другой рукой). Любые предложения будут с благодарностью.