2013-05-01 4 views
1

Взяв Stackoverflow в качестве примера, как можно настроить один из способов устранения проблемных вопросов? Вопросы, которые содержат только:Проверка ввода пользователя для качества

  1. Пространства
  2. тарабарщину
  3. Повторяющиеся символы
  4. Комбинация символов, таких как «fsdgh» и т.д.
  5. Другие комбинации, как объяснено в Джеффа post на Мета.

Если я хочу сделать это в Javascript, есть ли способ программно найти такие комбинации символов в сообщении? Jeff's post на Meta объясняет некоторые эвристики и шаблоны для такой системы.

Я понимаю, что могут быть другие способы борьбы с подобной регистрацией пользователя и ограничениями скорости и т. Д., Но чисто из проверки и точки зрения UX, как мы можем это сделать, будь то на стороне сервера или на стороне клиента? Было бы отличным способом сказать хорошим пользователям, что система не будет ожидать плохих сообщений в любом случае.

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

+0

Итак, вы говорите об анализе фактического текста постстатистического, чтобы попытаться определить, является ли он «плохим»? – 2013-05-01 14:12:40

+1

Да и программно. – user

+4

Один совет: если вы беспокоитесь о «плохих» данных, пожалуйста, проверьте также серверную сторону. Проверка JavaScript выполняется только для пользователей. Это хороший быстрый ответ на ввод пользователя без выполнения поиска на сервере, но, в конце концов, вы не можете полагаться на него, так как «плохие» пользователи могут создавать форму и размещать любой мусор, который может возникнуть на вашем сервере, без вашего JavaScript, когда-либо существовавшего вызывается. Это может быть даже сделано случайно пользователями, у которых не включен Javascript. – HMR

ответ

1

Вопросы, которые содержат только:

  1. Пространства
  2. Джиббериш
  3. Повторяющиеся символы
  4. комбинации символов, таких как 'fsdgh' и т.д.
  1. Получите текст сообщения, сделайте trim(); на нем (удалите пробел), если размер текста теперь равен нулю, ваш пост содержит пробелы. Это плохо.
  2. Жесткий, может быть, поиск общих слов и фраз, таких как «, из, если, это», если многие отсутствуют или все отсутствуют, это может быть плохо.
  3. Я не думаю, что на английском языке есть слова, содержащие более двух повторяющихся символов подряд. Итак, когда вы анализируете текст, помните, какой последний символ вы видели, если следующий символ - последний символ, который вы видели, установите флаг, если установлен флаг, следующий символ - тот, который вы видели в последний раз, плохая запись.
  4. Такая же идея, как и выше, но поиск слов с длинными символами, но без гласных, исследуйте, какие слова имеют самые длинные цепочки негласных, если вы когда-либо находите что-то еще, это плохой пост.

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

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

К сожалению, не увидело вы хотите использовать Regex ... Но до сих пор его трудно сделать с любой точки зрения ,(Я думаю)

+0

Большое спасибо! Ваше решение по номеру 2 очень логично. Я обновил вопрос с поста Джеффа на Meta, который объясняет некоторые эвристики и шаблоны, которые Stackoverflow ищет при расчете качества сообщений. Есть ли способ создать RegExps даже для подмножества этих? – user

+1

Я не знаю правила Regex, но если есть выражение Regex для «[согласный] [согласный] [согласный]», это может быть полезно. Просто найдите набор правил, которым вы хотите, чтобы текст соблюдался, а именно самые крайние случаи английского языка (vacUUm, bOOKKEEper, floccinaucinihilipilification). Все действующие английские слова, но имеют последовательности, которые могут отображаться как тарабарщина. - Для # 2 также, возможно, ищите «отельный», «логичный», «ing», «ed», т. Е. Общие концы могут помочь чуть больше. – 2013-05-01 15:00:10

Смежные вопросы