Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Разное

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Защита от безсмысленного текста.
 
 автор: Владимир55   (11.08.2010 в 19:44)   письмо автору
 
 

Иногда пользователи вводят лишенный смысла текст типа бодьлодукншлшщзщэдзолр Едва ли от этого можно защититься...

  Ответить  
 
 автор: Commander   (12.08.2010 в 06:32)   письмо автору
 
   для: Владимир55   (11.08.2010 в 19:44)
 

В принципе, можно воспользоваться методом Punto Switcher'a - блокировать слова, которые не отвечают нормам русского языка (мягкий знак после "щ", три-четыре согласные подряд и т.д.). Проблема в том, что боты махом научатся это обходить...

  Ответить  
 
 автор: DJ Paltus   (12.08.2010 в 09:00)   письмо автору
 
   для: Commander   (12.08.2010 в 06:32)
 

агентство. пять согласных )
Можно, конечно, применять аналогичные пунто-свитчеру алгоритмы, но информативный текст не всегда бывает грамотно написан. Сокращения, ошибки, сленг, транслитерация, олбанский язык, спецтермины и символы... Имхо, работа для настоящего ИИ, либо модератора-человека.

  Ответить  
 
 автор: psychomc   (12.08.2010 в 11:03)   письмо автору
 
   для: Commander   (12.08.2010 в 06:32)
 

а школота не сможет оставлять сообщения

  Ответить  
 
 автор: Саня   (12.08.2010 в 09:19)   письмо автору
 
   для: Владимир55   (11.08.2010 в 19:44)
 

Для начала вам нужно проанализировать какой именно бред вводят пользователи. Определить обшие черты.
Если они все длинные, то имеет смысл проверять только длинные слова. Например от 18 символов и уже проверять их по "алгоритму пунто свитчера". Или по какому-нибудь ещё. Ограничение по длине позволит не заморачиваться со словарём исключений в случае слов, о которых говорит DJ Paltus.

  Ответить  
 
 автор: Владимир55   (12.08.2010 в 09:59)   письмо автору
 
   для: Саня   (12.08.2010 в 09:19)
 

Статистики пока немного, но в основном такие проблемы:
- десятки восклицательных знаков;
- сотни точек подряд;
- десятки пробелов;
- тарабарщина типа приведенной в первом посте;
- повторяющиеся группы букв типа "прппрппрп" или другие по две-три-четыре буквы.

С тремя первыми я справился. А с последним что-то можно сделать?

  Ответить  
 
 автор: DJ Paltus   (12.08.2010 в 10:53)   письмо автору
 
   для: Владимир55   (12.08.2010 в 09:59)
 

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

  Ответить  
 
 автор: Владимир55   (12.08.2010 в 10:57)   письмо автору
 
   для: DJ Paltus   (12.08.2010 в 10:53)
 

Капча не поможет, ибо пишут люди. Они так хотят. Примерно половина постов автоматически удаляется (точнее, даже не публикуется).

Трех буквенные повторы не свойственны русскому языку (вроде бы). Может, их можно убрать регуляркой?

  Ответить  
 
 автор: DJ Paltus   (12.08.2010 в 11:18)   письмо автору
 
   для: Владимир55   (12.08.2010 в 10:57)
 

ООО "МММ" предлагает ППП "1С", длинношеее, змееед.

  Ответить  
 
 автор: Владимир55   (12.08.2010 в 11:34)   письмо автору
 
   для: DJ Paltus   (12.08.2010 в 11:18)
 

"МММ" и "ППП" я заблокировал - обойдемся без них. А теперь имею в виду трехбуквенные повторы. Типа "апрапрапр".

  Ответить  
 
 автор: DJ Paltus   (12.08.2010 в 11:36)   письмо автору
 
   для: Владимир55   (12.08.2010 в 11:34)
 

Можно попробовать. Но если юзеры всерьез взялись флудить, остановить их можно только организационными методами. Покажите хоть, где это все происходит?

  Ответить  
 
 автор: Владимир55   (12.08.2010 в 12:12)   письмо автору
 
   для: DJ Paltus   (12.08.2010 в 11:36)
 

Я предоставил посетителям возможность дополнять содержимое страниц (подобно ВИКИ). Пока что просматриваю почту, куда приходят их дополнения - для контроля, и в ручную убираю то, что считаю неудачным. Но в будущем планирую от контроля отказаться, так как это требует много времени. А потому ужесточаю требования. Пусть остается лишь то, что написано нормально и приятно читать.

  Ответить  
 
 автор: Loki   (12.08.2010 в 14:25)   письмо автору
 
   для: Владимир55   (12.08.2010 в 12:12)
 

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

  Ответить  
 
 автор: Владимир55   (12.08.2010 в 14:57)   письмо автору
 
   для: Loki   (12.08.2010 в 14:25)
 

Не хочется модерировать...

Я вот отсутствовал 4 дня. Приехал - 773 записи. Ну, нафига мне их читать? Не говоря уже о том, чтобы править. Тем более, что забраковано всего лишь три.

  Ответить  
 
 автор: sl1p   (12.08.2010 в 15:12)   письмо автору
 
   для: Владимир55   (12.08.2010 в 14:57)
 

А что за проэкт вообще?
Наймите модератора :)

  Ответить  
 
 автор: elenaki   (12.08.2010 в 18:34)   письмо автору
 
   для: Владимир55   (12.08.2010 в 14:57)
 

Не хочется модерировать...

====================
а это что тогда? не модерирование?

==========================
и в ручную убираю то, что считаю неудачным.

  Ответить  
 
 автор: Владимир55   (12.08.2010 в 18:43)   письмо автору
 
   для: elenaki   (12.08.2010 в 18:34)
 

Это модерирование. Сейчас, на стадии отладки, без него не обойтись. Но требуется сделать так, что бы в будущем на публикацию проходили только относительно "чистые" тексты. И тогда можно будет от модерации отказаться.

  Ответить  
 
 автор: elenaki   (12.08.2010 в 21:00)   письмо автору
 
   для: Владимир55   (12.08.2010 в 18:43)
 

нереально.
"Лорем ипсум" легко пройдет любую проверку.
тут искусственный интеллект нужен. закиньте идейку в Сколково.

  Ответить  
 
 автор: DJ Paltus   (13.08.2010 в 13:19)   письмо автору
 
   для: Владимир55   (12.08.2010 в 18:43)
 

А еще не следует забывать, что если идея реализована в стиле "Вики", то бессмысленные записи со временем сами будут вдруг замещаться осмысленными, пришедшими от сознательных пользователей.

  Ответить  
 
 автор: psychomc   (12.08.2010 в 22:58)   письмо автору
 
   для: Владимир55   (11.08.2010 в 19:44)
 

лучше премодерации еще пока ничего не придумали...

  Ответить  
 
 автор: lElectroHardl   (17.08.2010 в 12:00)   письмо автору
 
   для: psychomc   (12.08.2010 в 22:58)
 

Я вот думаю уже 2-й день над такой мыслью.

Что если собрать все слова русского языка в массива (если такого еще нет) и делать проверку, совпадает ли напечатанное слово тем, которые находятся в массиве. Если нет, просто не пропускать его сообщение/текст/заметку, либо выдавать сообщение "Замените слово "" ".
И не нужна будет никакая перемодеризация.

Может идея и бредовая, а может и нет.

  Ответить  
 
 автор: Владимир55   (17.08.2010 в 12:26)   письмо автору
 
   для: lElectroHardl   (17.08.2010 в 12:00)
 

На мой взгляд, идея очень хорошая!

Разумеется, проверка потребует намалого времени, но ведь интенсивность записей не столь велика, чтобы это стало проблемой.

Вот только есть ли такие словари?

  Ответить  
 
 автор: Commander   (17.08.2010 в 12:39)   письмо автору
 
   для: Владимир55   (17.08.2010 в 12:26)
 

А может попробовать составить такой словарь, используя сами сообщения?

При этом можно проверить "по алгоритму пунто свитчера" имеющиеся сообщения и поставить подозрительные в очередь модерации.

  Ответить  
 
 автор: Владимир55   (17.08.2010 в 13:32)   письмо автору
 
   для: Commander   (17.08.2010 в 12:39)
 

Можно и так, когда статистика наберется. Но словарь решил бы проблему радикально раз и навсегда. Лично я бы выбрал словарное решение, если бы такой словарь существовал.

  Ответить  
 
 автор: lElectroHardl   (17.08.2010 в 15:07)   письмо автору
 
   для: Владимир55   (17.08.2010 в 13:32)
 

По-поводу скорости проверки. Что если написать JS, который проверял бы каждое новое вводимое слово пользователем. Т.е. юзер ввел слово,его сразу проверили, ввел второе - опять проверка. Что бы не весь текст за раз проверять, а каждое слово по отдельности. Такое возможно?

  Ответить  
 
 автор: tvv123456   (17.08.2010 в 15:23)   письмо автору
 
   для: lElectroHardl   (17.08.2010 в 15:07)
 

НУ яваскрипт вообще штука ненадежная, так как это пользователю решать, пользоваться ли этим чудом света.

  Ответить  
 
 автор: lElectroHardl   (17.08.2010 в 15:30)   письмо автору
 
   для: tvv123456   (17.08.2010 в 15:23)
 

Возможно.
Погуглив, нашел немного нужного. Кому эта тема интересна, прошу:

http://www.ozhegov.org
http://ru.wiktionary.org/wiki/Индекс:Русский_язык
http://www.artint.ru/projects/frqlist.asp
http://dict.buktopuha.net/

Последняя ссылка вырыта запросом "словарь русского языка .rar".

  Ответить  
 
 автор: Eugene77   (17.08.2010 в 17:02)   письмо автору
 
   для: Владимир55   (17.08.2010 в 13:32)
 

Словари содержат исходные словоформы да и то, как правило, не всех слов.
А как вы остальные формы будете фильтровать?

Например глагол "шить"
имеет форму "шью" как определить, что это тоже допустимая форма?

  Ответить  
 
 автор: lElectroHardl   (17.08.2010 в 19:28)   письмо автору
 
   для: Eugene77   (17.08.2010 в 17:02)
 

Указать это в массиве допустимых слов? Вернее "слово -> его синонимы -> его склонения -> его время -> единичная/множественная форма и т.д. и т.п.". Вопрос в том, будет ли этим то-то заниматься.

Но если так делать, то на обработку сего текста будет уходить больше времени, чем на его написание :). Поэтому и предлагаю JS как вариант. По такому алгоритму - "ввел слово - проверил слово - если слово не подходит, вывел предупреждение".

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования