Есть ли возможность включить на форуме автоматическое исправление ошибок, хотя бы в терминах? Уж изрезали все глаза эти бесконечные "оссегматизмы" и т.п.
Может, сделать таблицу: слева - распространенные, но неправильные написания, справа - соотв. правильные, и пусть программа сама правит?
admin
01.12.2009, 20:35
Мысль хорошая. Мы будем Вам очень благодарны, если Вы окажете помощь форуму и напишете такую программу, совместимую с vBulletin. Можно сразу ориентироваться на версию 4 Suite.
Rodionov
01.12.2009, 22:41
У меня какая-то приблуда стоит в системе, которая проверяет грамматику a la Word во всех приложениях, в т.ч. при работе в Мозилле, т.е. сомнительные слова красненьким подчеркивает.
А что касается таблицы, идея хорошая.
Могу начать:
Неправильно: Правильно:
гармон гормон
врачь врач
педиатор педиатр
п-те п-та помогите, пожалуйста...
qwerty
01.12.2009, 23:43
У меня какая-то приблуда стоит в системе, которая проверяет грамматику a la Word во всех приложениях, в т.ч. при работе в Мозилле, т.е. сомнительные слова красненьким подчеркивает.
А что касается таблицы, идея хорошая.
Могу начать:
Неправильно: Правильно:
гармон гормон
врачь врач
педиатор педиатр
п-те п-та помогите, пожалуйста...
Продолжаю
аскарид аскарида
токсокар токсокара
бластоцист бластоцистис
бильтрицид билтрицид
трусится испытывает озноб (как перевести глагол в существительное?
трусится чешется (подключить к замене исключительно в Педиатрии и Паразитарных болезнях)
Sergey_
02.12.2009, 18:02
Вот такой вариант на РНР:
//создаем таблицу замен (запускается один раз)
function createTable()
{
$table[0][0]='ассегматизм'; $table[0][1]='астигматизм';
$table[1][0]='фтизиатор'; $table[1][1]='фтизиатр';
...
return;
}
//правим строку
function Orthograph(&$bad)
{
foreach ($table as $zamena)
{
str_replace($zamena[0],$zamena[1],$bad);
}
return;
}
//использование: пусть юзер ввел строку $UserStr...
//запускаем
Orthograph($UserStr);
//и строка выправлена
Недостатки:
*чувствительность к регистру
*нет учета грамматики языка
Скажем, строка "найдено много аскарид" была бы заменена на "найдено много аскарида", а "Помогите! Аскарид вылез!" осталась бы без изменений.
admin
02.12.2009, 18:47
Принцип работы этой программы понятен. Вопрос в написании модуля конкретно для vBulletin 4.
Sergey_
03.12.2009, 15:06
А какие конкретно есть доп. требования?
PS. Первый недостаток лечится удвоением строк таблицы: первые буквы строчные; первые буквы прописные.
opto_dive
03.12.2009, 18:56
Вот такой вариант на РНР:
*нет учета грамматики языка
Скажем, строка "найдено много аскарид" была бы заменена на "найдено много аскарида", а "Помогите! Аскарид вылез!" осталась бы без изменений.
Это мне кажется можно оставить только для основы слов/не учитывать окончания.
* педиатр/педиатром/педиатру и т.д.. но не пидиатер и т.д.
С уважением, спасибо за начинание.
Dr.IrMa
03.12.2009, 19:10
Тогда уж проще вывесить в ЧАВО где-нибудь список слов с правописанием.
А то про гЕнИкологов уже читать совершенно невозможно.
Я уж не говорю про эрозии, гарднерелл и тому подобных. :)
Annabella
03.12.2009, 19:15
Коллеги, какое ЧАВО! Пациенты не читают простейших правил. Так что так и буду фтизиатОром, и буду видеть слово из трех букв в русском и латинском написании - твс или tbc - что есть жуткая безграмотность, тубик и флюшка - из зоны ну а далее везде. Это общество, а не скрипт форума.
Sergey_
03.12.2009, 19:35
Это мне кажется можно оставить только для основы слов/не учитывать окончания.
* педиатор/педиатром/педиатру и т.д.. но не пидиатер и т.д.
Да, именно так. После заменяемой строки идет окончание слова или все слово уже кончилось - программа не следит.
Еще надо будет добавить такого сорта замены:
можно-ли можно ли
вследствии вследствие
врачем врачом
!!!! !
???? ?
По поводу адаптации подпрограмм к программе форума. Наверное, есть какое-то место в программе форума, где пост юзера уже занесен в какую-то переменную, но еще не сохранен в базу. Сюда и надо, видимо, вставить вызов функции Orthograph($...).
И, кстати, а можно ли/нужно ли будет пропустить через эту функцию уже существующую базу постов?
admin
03.12.2009, 22:10
По поводу адаптации подпрограмм к программе форума. Наверное, есть какое-то место в программе форума, где пост юзера уже занесен в какую-то переменную, но еще не сохранен в базу. Сюда и надо, видимо, вставить вызов функции Orthograph($...).
Речь может идти только о готовом, протестированном модуле, написанном с учетом особенностей vBulletin. Заниматься экспериментами на работающем форуме мы не можем, а собственного опыта написания модулей у нас нет. Модули не предполагают вмешательство в исходный текст программы - в этом смысл их реализации. Мы можем только проверить модуль в другом месте и установить его здесь в случае работоспособности.
На мой взгляд, отсутствие учета морфологии русского языка является очень существенным недостатком данной программы и ставит под сомнение целесообразность ее использования. Забивать в файл все словоформы всех слов - не самая лучшая идея. Насколько я понимаю, в рамках простейших функций сравнения в PHP программу для учета морфологии написать нельзя. Возможно, Вы что-нибудь знаете о готовых профессиональных решениях, которые можно подключить и сделать модуль для их вызова. Например, Яндекс предлагает решение Яндекс-сервер для поиска по собственному серверу или другим сайтам, работающее в среде Unix или Windows. Там реализован поиск с учетом морфологии русского языка. Если бы нашлось подобное решение для данной задачи, то можно было бы подумать о его установке.
Sergey_
04.12.2009, 05:36
В файл нужно забивать только основы слов. Например, если в таблице будет запись "педиатор педиатр", то "педиаторы" будет все равно заменено на "педиатры" и т.д. Это достоинство подхода.
Неучет грамматики как недостаток заключается в том, что в некоторых случаях пары слов нельзя заносить в таблицу. "аскарид аскарида", например, нельзя, а другие можно. Ошибка должна быть где-то внутри основы слова, а не заключаться в отсутствии последней буквы.
vBulletin, насколько я понял, - коммерческий продукт. Покупать себе версию для тестирования - не вариант.
admin
04.12.2009, 13:24
vBulletin, насколько я понял, - коммерческий продукт. Покупать себе версию для тестирования - не вариант.
Согласен. Но выход есть. Есть сайты, где можно скачать себе бесплатную версию для тестирования.
admin
04.12.2009, 22:59
Да, принцип такой.
Vision
11.01.2010, 22:30
Вопрос в написании модуля конкретно для vBulletin 4.
А почему 4-ка? Здесь же явно из 3-ей линейки стоит движок. Четверка еще сырая до ужаса.
Есть возможность прикрутить проверку правописания, но конечно же не на автомате, просто будет кнопка "проверить правописание" рядом с кнопками ответить, etc
Вы забыли учесть, то, что, слово для программиста это- символьный массив! Зачем загромождать исходник если можно слово разбить на несколько частей(подобное делается в начальных классах(корень, суффикс, и т.д. и т.п.))и для каждой части использовать соответствующую проверку...
admin
12.01.2010, 13:48
Тема превращается во флуд по программированию. Мы решили не заниматься установкой модуля и обходиться только штатными средствами программы, т.к. установка непрофессионально написанного модуля создаст проблем гораздо больше, чем будет пользы.
Закрыто.