Прислал(а)
Лавр

На Сомне с 22.10.2003
Для лучшего исследования ознакомься со связанными снами и узнай о 5 важных шагах к толкованию .

Проверка орфографии

Дело это хорошее, но явно недоделанное.

1. Что касается серверной части.

1.1 Есть люди, которые любят чистый русский язык и на не пишут. Для них можно нарыть где-нибудь словарь всех словоформ огромного количества слов и по нему делать проверку.

1.2 Для остальных людей лучше пользоваться старой проверкой. Чтобы больше не заморачиваться созданием списка слов-исключений вручную, можно за пять (!) минут написать прогу, которая генерит его из найденного толстого словаря.

2. Что касается гуя.

2.1. Вместо галочки можно сделать радиогруппу из трех кнопок: строгая проверка орфографии, слабая и вообще без проверки.

2.2. Если комментарий большой, то получив сообщение об ошибке часто приходится искать слово в тексте поиском. Хорошо бы автоматически подсвечивать неправильное слово и/или ставить на него курсор.

2.3. Если в комментарии встречается ошибка, которую пользователь не хочет исправлять, то поиск ошибок в дальнейшем тексте произвести невозможно. Хорошо бы подумать, как доводить до сведения пользователя все ошибки, а не только первую.

2.4. Сообщения в форуме тоже хотелось бы проверять на орфографические ошибки.

2.5. Тип проверки желательно сохранять в личных настройках.

ЗЫ. Запрещение использования ВВкода почему-то не отключается.

Комментарии посетителей

На странице нет скрытых сообщений. Потому что мы фильтруем вот что:
В списке можно скрыть неинтересные сообщения. Например, сообщения от какого-то человека, огромные или неинформативные сообщения.
Комментарий прислал
paganoid
> Дело это хорошее, но явно недоделанное.

Оч. верно подмечено


> 1. Что касается серверной части.

> 1.1 Есть люди, которые любят чистый русский
> язык и на не пишут. Для них можно нарыть
> где-нибудь словарь всех словоформ огромного
> количества слов и по нему делать проверку.

Увы, такого нет. Даже если и будет, на сайт не влезет. Словоформ пару миллионов миллионов, еще индексы... быстродействие будет на нулях.

> 1.2 Для остальных людей лучше пользоваться
> старой проверкой. Чтобы больше не
> заморачиваться созданием списка
> слов-исключений вручную, можно за пять (!)
> минут написать прогу, которая генерит его
> из найденного толстого словаря.

Я тоже так думал хыхы. И опять, плюсуем радость от скорости работы скриптовых языков со строками.

> 2. Что касается гуя.
> 2.1. Вместо галочки можно сделать
> радиогруппу из трех кнопок: строгая
> проверка орфографии, слабая и вообще без
> проверки.

Ну это можно, ежели вышеупомянутое будет сделано

> 2.2. Если комментарий большой, то получив
> сообщение об ошибке часто приходится искать
> слово в тексте поиском. Хорошо бы
> автоматически подсвечивать неправильное
> слово и/или ставить на него курсор.

При случае задумаюсь


> 2.3. Если в комментарии встречается ошибка,
> которую пользователь не хочет исправлять,
> то поиск ошибок в дальнейшем тексте
> произвести невозможно. Хорошо бы подумать,
> как доводить до сведения пользователя все
> ошибки, а не только первую.

Это тоже возможно...

> 2.4. Сообщения в форуме тоже хотелось бы
> проверять на орфографические ошибки.

А вот это невозможно :)...

> 2.5. Тип проверки желательно сохранять в
> личных настройках.

"Настроек", как таковых в текущей версии нет, будет в следующей

Комментарий прислал(а) автор обсуждения
Лавр
> 1.1 Есть люди, которые любят чистый русский
> язык и на не пишут. Для них можно нарыть
> где-нибудь словарь всех словоформ огромного
> количества слов и по нему делать проверку.

> Увы, такого нет. Даже если и будет, на
> сайт не влезет. Словоформ пару миллионов
> миллионов, еще индексы... быстродействие
> будет на нулях.

А программировать мы не умеем? Если держать этот словарь целиком в памяти в виде дерева, то проверка одно слова будет линейно зависеть от его длины и будет примерно такой же быстрой, как твоя.

> 2.4. Сообщения в форуме тоже хотелось бы
> проверять на орфографические ошибки.

> А вот это невозможно :)...

Это почему?

Комментарий прислал
paganoid
> Увы, такого нет. Даже если и будет, на
> сайт не влезет. Словоформ пару миллионов
> миллионов, еще индексы... быстродействие
> будет на нулях.
>
> А программировать мы не умеем? Если держать
> этот словарь целиком в памяти в виде
> дерева, то проверка одно слова будет
> линейно зависеть от его длины и будет
> примерно такой же быстрой, как твоя.

Программировать умеем, в том то и дело - насчет держания массива в памяти в скриптовых языках, это ты сильно загнул. Гипотетически это можно сделать через unix shared memory, но ее нам дается не боле 32 мегебе (а у нового хостера и вообще наверно не будет), т.ч. словарь туда не влезет. Да и структура "дерево" таких размеров, опять же, боль-менее быстро функцикляет в сях, но никак не в PHP.

Кроме того, вообще, ты упускаешь что надо держать пары "корявая словоформа"=>"правильная словоформа". А таких пар у тебя уже не миллионы, а сотни миллионов - болевар не выдержит. Если напишешь это за пять минут, можешь отправить на заслуженный отдых все крупные компании типа Орфо, да и вообще всю индустрию :)

> 2.4. Сообщения в форуме тоже хотелось бы
> проверять на орфографические ошибки.

> А вот это невозможно :)...
Это почему?

Движок форума не наш, прикручивать свой модуль к такой катавасии рука не подымается. Да и просто жаль время, которое может быть потрачено на новый движок.

Комментарий прислал(а) автор обсуждения
Лавр
> Программировать умеем, в том то и дело -
> насчет держания массива в памяти в
> скриптовых языках, это ты сильно загнул.

Значит надо писать на сях и думать, как это прикручивать к php.

> Гипотетически это можно сделать через unix
> shared memory, но ее нам дается не боле 32
> мегебе (а у нового хостера и вообще
> наверно не будет), т.ч. словарь туда не
> влезет.

Давай считать: на нелистовой узел нужно (количество_букв * размер_указателя + размер_символа + размер_флага) = 32 * 4 + 4 + 4 = 136 байт (с выравниванием). Всего нелистовых узлов немного меньше, чем словоформ (мне так кажется), листы не считаем - это мелочи. Пусть слов будет 100 000, каждое имеет около 10 словоформ, получается 100 * 100 000 * 10 б = 100 000 000 б = 100 Мб. Не мало. Но это в идеале. А если взять словарик их 10 000 слов со всеми их словоформами, получится около 10 Мб, а это уже очень даже реально!

> Кроме того, вообще, ты упускаешь что надо
> держать пары "корявая
> словоформа"=>"правильная словоформа".

Это необязательно, можно только тыкать пользователю в корявое слово, и пусть он сам думает, как его исправить.

> Если напишешь это за пять минут, можешь
> отправить на заслуженный отдых все крупные
> компании типа Орфо, да и вообще всю
> индустрию :)

За пять минут - нет, за день - да. А Орфо пусть отправляется на пенсию, что мне до него? Или я неправ?

> Движок форума не наш, прикручивать свой
> модуль к такой катавасии рука не
> подымается. Да и просто жаль время,
> которое может быть потрачено на новый
> движок.

Дык, к новому движку и нужно прикрутить!

Пага, что это за стеб про запятые, типа у меня их нет? Я вот только что написал вполне нормальный комментарий, и по правилам русского языка там ни одной запятой быть не должно :)

Комментарий прислал
paganoid
> Значит надо писать на сях и думать, как это
> прикручивать к php.

И думать, где бы для некомерческого сайта нарыть $200 в месяц на выделенный сервер с шеллом

> Кроме того, вообще, ты упускаешь что надо
> держать пары "корявая
> словоформа"=>"правильная словоформа".
> Это необязательно, можно только тыкать
> пользователю в корявое слово, и пусть он
> сам думает, как его исправить.

Я все таки не понимаю, где ты найдешь 10000 __корявых__ словоформ :))

> Если напишешь это за пять минут, можешь
> отправить на заслуженный отдых все крупные
> компании типа Орфо, да и вообще всю
> индустрию :)
> За пять минут - нет, за день - да. А Орфо
> пусть отправляется на пенсию, что мне до
> него? Или я неправ?

У тебя случайно нет дня лишнего ? ;)

> Дык, к новому движку и нужно прикрутить!

Чойнить придумаем...

З.Ы. Скажу по секрету, чем морочиться с этой всей ботвой, проше прикрутить к сайту unix'овую утилиту ispell . Только и её у нас у хостера нет :(

Комментарий прислал(а) автор обсуждения
Лавр
> Я все таки не понимаю, где ты найдешь
> 10000 __корявых__ словоформ :))

Е-мое, я же говорю про словарь __правильных__ словоформ для 10000-100000 слов.

> У тебя случайно нет дня лишнего ? ;)

Увы, нет :( К сведению: на прошлой недели я спал по три часа в сутки. Правда, когда я раньше тренировался в программистском спорте я бы такую задачку за полчаса-час решил. В прЫнципе могу конечно забить на насущные дела и написать, если ты изыщешь возможность ее возюзать.

> З.Ы. Скажу по секрету, чем морочиться с
> этой всей ботвой, проше прикрутить к сайту
> unix'овую утилиту ispell .

Это ж неинтересно!

Комментарий прислал
paganoid
> Е-мое, я же говорю про словарь
> __правильных__ словоформ для 10000-100000
> слов.

так, да, точно. Тогда ты замучаешься с составлением списка правил по превращению нормального слово в корявое. Тем более, надо учитывать глагол/неглагол и еще тучу признаков. То есть "длинношее" - это как "более длиннее в шее" или это опечатка в "длинношеее" ? и т.п. По такому признаку сейчас приблизительно проверка работает - проверяет слова по небольшому списку правил. Исключения ты видишь :)

> Увы, нет :( К сведению: на прошлой недели я
> спал по три часа в сутки.

А чем ты там занимаешься?

> Правда, когда я раньше тренировался в
> программистском спорте я бы такую задачку
> за полчаса-час решил. В прЫнципе могу
> конечно забить на насущные дела и написать,
> если ты изыщешь возможность ее возюзать.

Не, боюсь вскладывать такую ответственность на себя - завязнем, ты вообще по 2 часа спать будешь хыхы

> unix'овую утилиту ispell .
> Это ж неинтересно!

Ну зато проверено

Комментарий прислал(а) автор обсуждения
Лавр
> Тогда ты замучаешься с составлением списка
> правил по превращению нормального слово в
> корявое.

Чего-то ты, пардон, тормозишь. На хрена нам все нормальные слова в корявые превращать? Мы словарь можем использовать в двух целях:

1. Для генерации списка исключений для твоей проги. В таком случае мы пробегаемся по словарю один раз в жизни даже не храня его в памяти.

2. Для строгой проверки орфографии, ориентированной на любителей чистого русского языка. В таком случае мы загружаем словарь в память редко и надолго, попутно преобразуя его в дерево. В этом дереве мы храним только правильные словоформы.

Вот и всех делов, не надо нам слова извращать.

> А чем ты там занимаешься?

Работаю - 40 в неделю, свободный рабочий день, свободная рабочая неделя. Дома монитор месяца три как уже сломан, а починить лень, поэтому на Сомне сижу тоже на работе. Получается, что на работе я провожу не меньше полусуток подряд, если в институт бежать не надо (сессия и все такое). На транспорт уходит три часа в день. Кроме того, не выспавшись, я утром жутко торможу. Вот и получается, что в будний день на сон остается не больше шести часов. Если в выходной можно не идти на работу и отоспаться - это праздник, отмечаю его целым днем втыкания телевизора. А на той недели мне просто было интересно поставить на себе опыт - смогу я по три часа в сутки спать или нет? Оказалось, смог, правда к вечеру воскресенью раздолбан был в мясо.

> Не, боюсь вскладывать такую
> ответственность на себя - завязнем, ты
> вообще по 2 часа спать будешь хыхы

Это логично, давай на потом отложим? Не в смысле забьем, а в смысле отложим )

[ Это Сообщение было отредактировано: Лавр в 2004-01-21 19:44 ]

Комментарий прислал
paganoid
> Чего-то ты, пардон, тормозишь. На хрена нам
> все нормальные слова в корявые превращать?
> Мы словарь можем использовать в двух целях:

> 1. Для генерации списка исключений для
> твоей проги. В таком случае мы пробегаемся
> по словарю один раз в жизни даже не храня
> его в памяти.

Ну так как исключения-то генерить?? В словаре хранятся _правильные_ слова. А для проверки текста нужно бежать по содержащимся словам и искать _неправильные_

> Вот и всех делов, не надо нам слова
> извращать.

Комментарий прислал(а) автор обсуждения
Лавр
> Ну так как исключения-то генерить??

Элементарно, Ватсон. Натравливаем твою проверку орфографии на словарь правильных словоформ, и сразу становится ясно, ху ис ху. Сохраняем список найденные исключений на диске и юзаем его, сколько душе будет угодно.

А к извращению слов это не имеет никакого отношения :)

Комментарий прислал
paganoid
> Ну так как исключения-то генерить??
> Элементарно, Ватсон. Натравливаем твою
> проверку орфографии на словарь правильных
> словоформ, и сразу становится ясно, ху ис
> ху. Сохраняем список найденные исключений
> на диске и юзаем его, сколько душе будет
> угодно.

О! И тут до меня допёрло хыхыхых :) Ладно, а с словоформами?... В основном-то слова в словоформах, однакысь

Комментарий прислал(а) автор обсуждения
Лавр
> О! И тут до меня допёрло хыхыхых :) Ладно,
> а с словоформами?... В основном-то слова в
> словоформах, однакысь

Рассказываю большой секрет (держись за стул крепче, чтобы не упасть): мы достаем большущий словарь сразу со всеми словоформами!

> 100 Мб. Не мало. Но это в идеале. А если
> взять словарик из 10 000 слов со всеми их
> словоформами, получится около 10 Мб, а это
> уже очень даже реально!

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

Представься,

Здравствуй,

отсылаю пароль...

Твой комментарий к теме


в начало