Войти

Показать полную графическую версию : проверка орфографии


pva
07-07-2012, 16:15
Всем привет! Хочу собрать "на коленке" программу для проверки орфографии русского языка. Пока что склоняюсь к нечёткому поиску по словарю. Формулирую как 2 задачи:
1. Дан набор слов русского языка и текст, который следует проверить. Требуется написать список неправильных слов и предложить до 10 вариантов исправления.
2. Дана строка запроса и текст. Требуется написать список до 20 строк из текста, которые чем-то похожи на строку запроса.
Хотелось бы быстрый, но несложный алгоритм. Кто что может подсказать?

Tonny_Bennet
09-07-2012, 10:33
1. Дан набор слов русского языка и текст, который следует проверить. Требуется написать список неправильных слов и предложить до 10 вариантов исправления. »

Можно текст разбить на слова и пословно делать сравнение с словарём. Правда если словарь будет большой то по-моему код будет не очень быстро работать. Как пример можно воспользоваться таким (http://msdn.microsoft.com/ru-ru/library/af26w0wa.aspx) сравнением. Но его функционал без примера мне пока не сильно понятен.

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

PhilB
09-07-2012, 17:14
Вот неплохой обзорчик: http://habrahabr.ru/post/114997/
И еще алогоритм Ландау-Вишкина: http://algolist.ru/search/fsearch/index.php

Beyound
09-07-2012, 20:44
возможно есть смысл подумать о использовании свойств русского языка. скажем придумать как выделять в слове корень и искать в словаре корни слов, а по найденому корню проверять допустимое словообразование от этого корня. тут правда есть загвоздка - слова с 2-мя корнями. вообще русский язык слишком сложный чтобы влоб его так делать, английский бы прокатил влегкую.
незнаю нормальная ли идея, но стоит проверить. так мы просто создадим гиперсловарь (а-ля гипертекст) и ясное дело верхушка намного меньше чем полное содержание словаря и ищется там быстрее, вопрос в том компенсирует ли время, затраченное на разбор текста по корням и т.п.
можно сделать так - есть очень большой словарь исключительно правильных слов и делается предположение, что допустить с неким нелинейным % относительно длинны слов ошибок реально, и если в словаре нет написанного слова - то показывать все возможные, отличающиеся на это число букв.
но опять же - все эти наборы будут как у англичанина с русским словарем - слова те, но связи между ними просто 0.

pva
12-07-2012, 00:11
Tonny_Bennet,
Делаем шаг первый: тупо проверяем правильность слова, но не предлагаем варианты.
словарь взят отсюда: http://files.speakrus.ru/dict/pldf-win.zip
проверяем фрагмент книги братьев Стругацких "Обитаемый остров".
Правда если словарь будет большой то по-моему код будет не очень быстро работать »
На машине i3-2350M 2.30 GHz, 4G RAM, без оптимизации кода, с использованием хеш-таблицы поиск занял 45 мс - это вполне приемлимо.

#include <hash_map>
#include <string>
#include <cstring>
#include <list>
#include <fstream>
#include <iostream>
#include <ctime>
using namespace std;

// слова храним в обычном списке,
// индексируем список хеш-таблицей указателей

struct hash_fun {
size_t operator()(const char* str) const {
return __gnu_cxx::__stl_hash_string(str);
}
};

struct hash_cmp {
bool operator()(const char* a, const char* b) const {
return strcmp(a,b)==0;
}
};

// контейнер для слов
typedef list<string> wlist_type;
typedef __gnu_cxx::hash_map<const char*, int, hash_fun, hash_cmp> windex_type;

// проверка на русский символ
inline bool is_ru_alpha(int c) {
return unsigned(c - 0xc0) < 0x40 || c=='ё' || c=='Ё';
}

// проверка на нерусский символ
inline bool is_not_ru_alpha(int c) {
return 0<c && !is_ru_alpha(c);
}

// Загрузить слово в нижнем регистре.
bool get_word(streambuf& stm, string& str) {
str.clear();

while(is_not_ru_alpha(stm.sgetc())) {
stm.sbumpc();
}

while(is_ru_alpha(stm.sgetc())) {
str.push_back(stm.sbumpc() | 32);
}

return !str.empty();
}

// загрузить русский словарь.
void load_dict(streambuf *file, wlist_type& dict, windex_type& index)
{
if (file) {
string word;

dict.clear();
while(get_word(*file, word)) {
dict.insert(dict.end(), word);
}

index.resize(dict.size());
for(wlist_type::iterator a1=dict.begin(), a2=dict.end(); a1!=a2; ++a1) {
index[a1->c_str()];
}

clog << "indexed " << index.size() << " words\n";
}
}

// проверить файл
void check_file(streambuf* file, windex_type& index)
{
static int const max_errors = 25;

if (file) {
string word;
int cnt_errors = 0,
cnt_total = 0;

while(get_word(*file, word)) {
++cnt_total;
if (index.find(word.c_str())==index.end()) {
if (++cnt_errors < max_errors) {
cout << "spell: " << word << "\n";
}
}
}

if (max_errors <= cnt_errors) {
cout << " ...\n";
clog << "showing only first " << max_errors << " errors\n";
}

cout << "misspelled " << cnt_errors << " of " << cnt_total << " words\n";
}
}

int main(int argc, char** argv) {
clock_t start_time;
int duration;
filebuf fbuf;

#define BENCHMARK(name, foo) \
start_time = clock();\
foo; \
duration = clock() - start_time;\
clog << name " spent " << double(duration)/CLOCKS_PER_SEC << " secs\n";\

wlist_type dict;
windex_type index;

BENCHMARK("load dictionary", load_dict(fbuf.open("pldf-win.txt", ios_base::in), dict, index));
fbuf.close();

BENCHMARK("spell check", check_file(fbuf.open("strugackie_ostrov.txt", ios_base::in), index));
fbuf.close();

return 0;
}

Вывод:

spell: ладошек
spell: ладошки
spell: солнцу
spell: карманные
spell: компьютеры
spell: стругацкие
spell: первая
spell: приоткрыл
spell: высунулся
spell: поглядел
spell: было
spell: низкое
spell: какое
spell: твердое
spell: этой
spell: легкомысленной
spell: прозрачности
spell: намекающей
spell: космоса
spell: обитаемых
spell: миров
spell: настоящая
spell: библейская
spell: гладкая
...
misspelled 41216 of 93652 words
indexed 125140 words
load dictionary spent 0.272 secs
showing only first 25 errors
spell check spent 0.045 secs


PhilB, статью на хабре читал, но ума понять расстояние Ливенштейна не хватило (суть понятна, как считать - непонятно). Можель объяснить его для тупых?

Beyound, судя по "ошибкам", которые выдаёт программа на основании словаря из 120К слов, двигаться нужно в твоём направлении. Типа метод триграмм, только разбивать по частям слова. Но тогда нужно добавлять ограничение на применимость частей слова друг к другу?

yurfed
12-07-2012, 00:55
скажем придумать как выделять в слове корень и искать в словаре корни »Вы хотите переписать словари Даля и Ожёгова? Задача вроде вся из себя, чтобы по корням угадывать правописание любого слова.
Других альтернатив для подобных целей не имеется?

ferget
12-07-2012, 02:15
расстояние Ливенштейна не хватило (суть понятна, как считать - непонятно) »

можно исходник посмотреть
тут (http://ru.wikibooks.org/wiki/%D0%A0%D0%B0%D1%81%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D0%B5_%D0%9B%D0%B5%D0%B2%D0%B5%D0%BD%D1%88%D1 %82%D0%B5%D0%B9%D0%BD%D0%B0)

yurfed
12-07-2012, 02:36
расстояние Ливенштейна не хватило » :) Ну хоть что то у него хватает?

pva
12-07-2012, 21:18
yurfed, к сожалению, не понял суть ваших советов.
ferget, а есть ссылка на теорию, а не реализацию?

pva
12-07-2012, 23:57
После нескольких итераций чтения предложенных ссылок до меня допёрло, как сделать. Получилось вот что (расстояние Левенштейна):

spell: ладошек
1. ладоше (1)
2. ладоней (2)
3. ладоши (2)
4. ладошку (2)
5. людишек (2)
spell: компьютеры
1. компьютерный (2)
2. комитеты (4)
3. компота (5)
4. копьев (5)
5. копаются (5)
spell: стругацкие
1. чумацкие (4)
2. рыбацкие (4)
3. дурацкие (4)
4. стругать (4)
5. стрюцких (4)
spell: робинзон
1. робенок (3)
2. родиной (3)
3. родинок (3)
4. рубикон (3)
5. родион (3)
spell: люк
1. лак (1)
2. люд (1)
3. лек (1)
4. лю (1)
5. лют (1)
spell: намекающей
1. намекающий (1)
2. намекающая (2)
3. замирающей (3)
4. заменяющей (3)
5. вытекающей (3)
spell: бездонность
1. бездарность (2)
2. бездонном (3)
3. бездонной (3)
4. бездонное (3)
5. безличность (3)
spell: космоса
1. комода (2)
2. космой (2)
3. тоскова (3)
4. козлова (3)
5. косятся (3)
spell: множественность
1. мужественность (2)
2. божественность (2)
3. мужественности (3)
4. множественное (3)
5. торжественность (3)
spell: твердь
1. тверда (1)
2. тверд (1)
3. твердо (1)
4. твердя (1)
5. тверь (1)
spell: твердь
1. тверда (1)
2. тверд (1)
3. твердо (1)
4. твердя (1)
5. тверь (1)
spell: атланта
1. таланта (2)
2. атлета (2)
3. танта (2)
4. атласа (2)
5. атласная (3)
spell: фосфоресцировала
1. сформировал (6)
2. восторжествовала (6)
3. лорнировала (7)
4. откомандировала (7)
5. отретировалс (7)
spell: пробитую
1. побитую (1)
2. пролитую (1)
3. прибитую (1)
4. пробита (2)
5. пробитая (2)
spell: расплывались
1. расплевались (1)
2. расписывались (2)
3. раскрывались (2)
4. расплылись (2)
5. раскалывались (2)
spell: кляксы
1. классы (2)
2. клятвы (2)
3. лясы (2)
4. клялся (2)
5. клюквы (2)
spell: туши
1. тушки (1)
2. тужи (1)
3. тучи (1)
4. тушь (1)
5. туш (1)
spell: люк
1. лак (1)
2. люд (1)
3. лек (1)
4. лю (1)
5. лют (1)
spell: раздавленной
1. раздавленног (1)
2. раздавленное (1)
3. раздавленный (1)
4. раздавленно (1)
5. раздавленная (2)
spell: кривоватые
1. кривоглазые (3)
2. кроватке (3)
3. розоватые (3)
4. хриповатым (3)
5. провожатые (3)
spell: голубизны
1. голубизну (1)
2. голубине (2)
3. глубины (2)
4. голубиных (2)
5. голубятня (3)
spell: пологими
1. полонили (2)
2. положили (2)
3. порогами (2)
4. положим (2)
5. плохими (2)
spell: склонами
1. склонам (1)
2. клоками (2)
3. склянками (2)
4. словами (2)
5. склонах (2)
spell: размытому
1. размытом (1)
2. разлитому (2)
3. развитому (2)
4. разбитому (2)
5. накрытому (3)
...
misspelled 8619 of 93652 words
indexed 162163 words
load dictionary spent 0.519 secs
showing only first 25 errors
spell check spent 9.292 secs

Среднее время поиска вариантов - 0.371 сек. Что-то долго мне кажется.

pva
13-07-2012, 23:56
Используя ограничение на длину слова (удалили не больше 2-х и добавили не больше 2-х букв) получается увеличить скорость в 2 раза, сохранив результаты.

spell: ладошек
1. ладоше (1)
2. ладоней (2)
3. ладошки (2)
4. ладошку (2)
5. людишек (2)
spell: компьютеры
1. компьютерный (2)
2. комитеты (4)
3. компроме (5)
4. компрене (5)
5. комитета (5)
spell: стругацкие
1. дурацкие (4)
2. чумацкие (4)
3. турецкие (4)
4. строжайшие (4)
5. трусоцким (4)
spell: робинзон
1. родиной (3)
2. рубинов (3)
3. робенок (3)
4. рубикон (3)
5. родинок (3)
spell: люк
1. люд (1)
2. люб (1)
3. лак (1)
4. глюк (1)
5. лют (1)
spell: намекающей
1. намекающий (1)
2. намекающая (2)
3. намекаете (3)
4. вытекающей (3)
5. намекают (3)
spell: бездонность
1. бездарность (2)
2. бездонного (3)
3. бездонной (3)
4. бездонное (3)
5. безличность (3)
spell: космоса
1. комода (2)
2. космой (2)
3. корма (3)
4. кошма (3)
5. косность (3)
spell: множественность
1. мужественность (2)
2. божественность (2)
3. множественном (3)
4. множественное (3)
5. художественность (3)
spell: твердь
1. тверда (1)
2. тверд (1)
3. тверди (1)
4. твердя (1)
5. тверды (1)
spell: твердь
1. тверда (1)
2. тверд (1)
3. тверди (1)
4. твердя (1)
5. тверды (1)
spell: атланта
1. атлета (2)
2. атласа (2)
3. таланта (2)
4. танта (2)
5. атласная (3)
spell: фосфоресцировала
1. восторжествовала (6)
2. восторжествовал (7)
3. откомандировала (7)
4. господствовала (7)
5. восторжествовали (7)
spell: пробитую
1. прибитую (1)
2. пролитую (1)
3. побитую (1)
4. пробита (2)
5. продиктую (2)
spell: расплывались
1. расплевались (1)
2. расплылись (2)
3. раскалывались (2)
4. расписывались (2)
5. раскрывались (2)
spell: кляксы
1. клятвы (2)
2. клюквы (2)
3. классы (2)
4. клялся (2)
5. лясы (2)
spell: туши
1. туше (1)
2. туш (1)
3. тужи (1)
4. тушит (1)
5. тушил (1)
spell: люк
1. люд (1)
2. люб (1)
3. лак (1)
4. глюк (1)
5. лют (1)
spell: раздавленной
1. раздавленног (1)
2. раздавленное (1)
3. раздавленный (1)
4. раздавленно (1)
5. раздавленного (2)
spell: кривоватые
1. розоватые (3)
2. кроватке (3)
3. виноватые (3)
4. красноватые (3)
5. кривоглазые (3)
spell: голубизны
1. голубизну (1)
2. голубине (2)
3. голубиных (2)
4. глубины (2)
5. голубятня (3)
spell: пологими
1. плохими (2)
2. долгими (2)
3. положим (2)
4. похожими (2)
5. полосами (2)
spell: склонами
1. склонам (1)
2. клоками (2)
3. словами (2)
4. слонам (2)
5. склонными (2)
spell: размытому
1. размытом (1)
2. разлитому (2)
3. развитому (2)
4. разбитому (2)
5. накрытому (3)
...
misspelled 8619 of 93652 words
indexed 162163 words
load dictionary spent 0.652 secs
showing only first 25 errors
spell check spent 5.621 secs


Теперь используем другую функцию: за различие символов добавляем штраф +1, за различие соседних символов ещё +1.
Если символы на одинаковых позициях на клавиатуре расположены дальше круга радиусом 1 клавиши, добавляем штраф +3:

indexed 162163 words
load dictionary spent 0.661 secs
showing only first 25 errors
spell check spent 0.392 secs
spell: ладошек
1. лавочек (6)
2. ладоней (6)
3. ладошку (6)
4. ладонке (8)
5. людишек (8)
spell: компьютеры
1. кухмистеры (14)
2. контролеры (15)
3. компактный (15)
4. компаньоны (15)
5. компанейцы (15)
spell: стругацкие
1. мертвецкие (15)
2. строжайшие (16)
3. струменцию (16)
4. строжайшее (17)
5. стебницкий (17)
spell: робинзон
1. рутинное (12)
2. починков (12)
3. новинкой (12)
4. поминутн (12)
5. романовн (12)
spell: люк
1. лак (3)
2. лек (3)
3. лок (3)
4. ляк (3)
5. лук (3)
spell: намекающей
1. намекающий (3)
2. намекающая (8)
3. вытекающей (9)
4. набегающий (9)
5. замечающий (9)
spell: бездонность
1. бездарность (5)
2. бездарности (8)
3. безличность (8)
4. преданность (11)
5. безличности (11)
spell: космоса
1. косушка (9)
2. косынка (9)
3. костела (9)
4. косятся (9)
5. косится (9)
spell: множественность
1. торжественность (11)
2. торжественности (14)
3. торжественностью (16)
4. семейственности (18)
5. торжественностию (19)
spell: твердь
1. тверди (3)
2. тверда (3)
3. тверды (3)
4. твердя (3)
5. твердо (3)
spell: твердь
1. тверди (3)
2. тверда (3)
3. тверды (3)
4. твердя (3)
5. твердо (3)
spell: атланта
1. таланта (5)
2. таланте (8)
3. фаланга (8)
4. таланты (8)
5. таланту (8)
spell: фосфоресцировала
1. восторжествовала (25)
2. сфотографирована (28)
3. компрометировала (28)
4. восторжествовали (30)
5. восторжествовать (33)
spell: пробитую
1. прибитую (3)
2. пролитую (3)
3. пробитые (6)
4. пролитою (8)
5. пробитая (8)
spell: расплывались
1. расплевались (3)
2. раскрывались (6)
3. расставались (9)
4. расплываться (9)
5. расплываются (9)
spell: кляксы
1. клятвы (6)
2. клямку (8)
3. клюквы (8)
4. клялся (8)
5. клятву (9)
spell: туши
1. куши (3)
2. туше (3)
3. суши (3)
4. тушу (3)
5. души (3)
spell: люк
1. лак (3)
2. лек (3)
3. лок (3)
4. ляк (3)
5. лук (3)
spell: раздавленной
1. раздавленный (3)
2. раздавленное (5)
3. раздавленног (5)
4. раздраженной (8)
5. раздавленная (8)
spell: кривоватые
1. провожатые (11)
2. кохловатые (13)
3. желтоватые (14)
4. кровожадцы (14)
5. кровожадны (14)
spell: голубизны
1. голубизну (3)
2. голубятня (9)
3. голубиная (9)
4. голубятне (11)
5. голубчику (11)
spell: пологими
1. порогами (6)
2. полонили (6)
3. полосами (6)
4. похожими (8)
5. положили (8)
spell: склонами
1. салопами (6)
2. коконами (8)
3. склонили (8)
4. законами (8)
5. склонений (9)
spell: размытому
1. разлитому (8)
2. разбитому (8)
3. развитому (8)
4. накрытому (9)
5. разумному (10)
...
misspelled 8619 of 93652 words

Если не показывать слова с расстоянием больше 8, то вполне имхо сносные предложения получаются. Правда функция туповата получается при вставке или удалении символа. Как её можно улучшить (производительность хотелось бы сохранить)?

pva
15-07-2012, 23:25
пробуем другие варианты: у меня с орфографией в принципе нормально, но есть опечатки:
1. нажатие вместо рядом находящейся клавиши
2. набор части слова в другом прядке (иногда пальцы срабатывают в обратной последовательности. Обычно пара букв, но изредка до 4-х)
3. пропуск буквы
4. лишняя буква из окрестности клавиши
Решение: будем сравнивать так: растянем слово №1 и №2 на одну и ту же длину. Если в некоторой окрестности буквы из слова 1 оказалась такая же буква из слова 2, значит добавляем штраф, равный расстоянию между буквами обоих слов на растянутом отрезке. Таким образом не требуется матрица как в методе Левенштейна, а нужен только проход по диагонали матрицы.
Если буквы в окрестности не найдено, то добавляем второй штраф - расстояние между символами на клавиатуре.

ё й ц у к е н г ш щ з х ъ
ф ы в а п р о л д ж э
я ч с м и т ь б ю

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

indexed 162163 words
load dictionary spent 0.688 secs
showing only first 25 errors
spell check spent 0.55 secs
spell: ладошек
1. лондоне (81)
2. горошек (83)
3. шпажонку (85)
4. хорошее (87)
5. большее (87)
spell: компьютеры
1. камердинеру (95)
2. камердинер (97)
3. кропотливая (100)
4. камердинера (102)
5. кормильцев (102)
spell: стругацкие
1. страницами (100)
2. маркграфине (100)
3. своенравнее (100)
4. смиренными (102)
5. варварские (104)
spell: робинзон
1. орлиного (91)
2. полтинник (91)
3. подлинное (95)
4. портного (97)
5. плотного (97)
spell: люк
1. любу (112)
2. обок (112)
3. лжец (112)
4. олиц (112)
5. люду (112)
spell: намекающей
1. намекающий (81)
2. намекающая (89)
3. примыкающей (91)
4. намекавший (92)
5. наступающей (93)
spell: бездонность
1. бездарность (102)
2. бездарности (107)
3. бездарностию (112)
4. наклонность (112)
5. преданность (113)
spell: космоса
1. красота (91)
2. кассира (91)
3. красотка (92)
4. красотку (92)
5. неисправ (92)
spell: множественность
1. торжественность (94)
2. торжественности (97)
3. торжественностью (98)
4. преднамеренность (99)
5. второстепенность (99)
spell: твердь
1. твердом (102)
2. твердое (102)
3. твердос (102)
4. твердой (106)
5. откроют (108)
spell: твердь
1. твердом (102)
2. твердое (102)
3. твердос (102)
4. твердой (106)
5. откроют (108)
spell: атланта
1. встретив (90)
2. пролеток (90)
3. еропегов (91)
4. пролети (92)
5. смоленск (92)
spell: фосфоресцировала
1. сфотографирована (116)
2. компрометировала (116)
3. скомпрометирован (117)
4. компрометировали (119)
5. компрометировать (122)
spell: пробитую
1. пробитыми (107)
2. пролитыми (107)
3. пробирала (110)
4. пролитую (110)
5. пролиться (110)
spell: расплывались
1. расплевались (91)
2. раскрывались (91)
3. расставались (91)
4. расписывались (91)
5. раскалывались (91)
spell: кляксы
1. кровавы (102)
2. классы (106)
3. кличка (110)
4. крикса (110)
5. капская (110)
spell: туши
1. танта (130)
2. тигра (130)
3. таков (130)
4. такты (130)
5. трушу (130)
spell: люк
1. любу (112)
2. обок (112)
3. лжец (112)
4. олиц (112)
5. люду (112)
spell: раздавленной
1. раздавленное (82)
2. раздавленног (82)
3. продавленном (88)
4. раздраженное (91)
5. раздраженной (91)
spell: кривоватые
1. варварства (98)
2. варварстве (98)
3. красноватые (98)
4. неисправные (100)
5. красноватый (100)
spell: голубизны
1. голубизну (105)
2. голубиному (113)
3. коломбина (114)
4. полусонный (115)
5. соловьиный (116)
spell: пологими
1. поглотим (68)
2. прогоните (70)
3. проломами (70)
4. поглотити (70)
5. полотнами (70)
spell: склонами
1. сапогами (79)
2. салопами (82)
3. вагонами (84)
4. склонными (84)
5. капорами (86)
spell: размытому
1. грамматику (105)
2. даровитому (107)
3. размыслив (109)
4. разбитому (109)
5. радоваться (109)
...
misspelled 8619 of 93652 words

только поиск знакомых букв

indexed 162163 words
load dictionary spent 0.656 secs
showing only first 25 errors
spell check spent 0.38 secs
spell: ладошек
1. ладонке (16)
2. младшег (16)
3. ладошки (16)
4. ладошку (16)
5. людишек (16)
spell: компьютеры
1. комментарии (18)
2. кухмистеры (18)
3. компостелло (18)
4. комплименты (18)
5. композитор (18)
spell: стругацкие
1. испугавшие (18)
2. содрогание (18)
3. строжайшие (18)
4. содроганием (18)
5. ассигнацией (18)
spell: робинзон
1. повинной (17)
2. пробитое (17)
3. коринной (17)
4. повинною (17)
5. поодиноч (17)
spell: люк
1. глюк (16)
2. лек (17)
3. лак (17)
4. люд (17)
5. плю (17)
spell: намекающей
1. намекающий (14)
2. намекающая (15)
3. задевающее (16)
4. надлежащей (16)
5. надлежащее (16)
spell: бездонность
1. бездарность (14)
2. обязанность (15)
3. преданность (15)
4. бездарности (15)
5. безличность (15)
spell: космоса
1. корамора (17)
2. косточка (17)
3. косности (17)
4. косность (17)
5. косилось (17)
spell: множественность
1. торжественность (14)
2. художественность (14)
3. торжественности (15)
4. торжественностью (15)
5. художественности (15)
spell: твердь
1. твердо (15)
2. тверда (15)
3. тверды (15)
4. твердя (15)
5. тверди (15)
spell: твердь
1. твердо (15)
2. тверда (15)
3. тверды (15)
4. твердя (15)
5. тверди (15)
spell: атланта
1. таланта (14)
2. атласная (15)
3. ханаана (16)
4. атамана (16)
5. фаланга (16)
spell: фосфоресцировала
1. восторжествовала (17)
2. компрометировала (17)
3. сфотографирована (17)
4. восторжествовали (17)
5. восторжествовать (18)
spell: пробитую
1. пролитую (14)
2. прибитую (14)
3. продиктую (15)
4. прочитаю (16)
5. пролитою (16)
spell: расплывались
1. расписывались (14)
2. расплевались (14)
3. раскалывались (14)
4. расползались (15)
5. располагались (15)
spell: кляксы
1. коляск (17)
2. клямки (17)
3. колосс (17)
4. клялся (17)
5. классы (17)
spell: туши
1. тушил (15)
2. тушит (15)
3. тушки (15)
4. тучи (16)
5. тиши (16)
spell: люк
1. глюк (16)
2. лек (17)
3. лак (17)
4. люд (17)
5. плю (17)
spell: раздавленной
1. раздавленное (13)
2. раздавленног (13)
3. раздавленного (13)
4. раздавленный (13)
5. раздраженной (14)
spell: кривоватые
1. хриповатым (16)
2. кохловатые (16)
3. красноваты (16)
4. красноватые (16)
5. кривоглазые (16)
spell: голубизны
1. голубизну (14)
2. полуубиты (15)
3. голубчики (17)
4. голубятни (17)
5. голубиному (17)
spell: пологими
1. полонили (16)
2. положили (16)
3. порогами (16)
4. поглотим (16)
5. волооким (16)
spell: склонами
1. склонными (14)
2. поклонами (15)
3. колоннами (15)
4. склянками (15)
5. законами (16)
spell: размытому
1. разумному (15)
2. разбитому (15)
3. разлитому (15)
4. развитому (15)
5. размытарит (17)
...
misspelled 8619 of 93652 words




© OSzone.net 2001-2012