Обнаружение спама в (цель-) C - PullRequest
1 голос
/ 04 декабря 2009

В настоящее время я пишу приложение для iPhone, которое получает некоторые данные от пользователя и загружает их на сервер. Загруженные данные будут отображаться другим пользователям той же программы (это еще не все, но для простоты ...). Загружаемые данные - это всего лишь три строки: имя (макс. 50 знаков), заголовок (макс. 50 знаков) и некоторый текст (практически неограниченный символ). Что мне нужно, так это в основном функция, сервис или алгоритм, который может определить, насколько достоверен ввод данных. Он должен был бы иметь возможность обнаруживать серии повторяющихся символов, определенные «нелегальные» слова, ненормальные пробелы и т. Д. Итак, мои вопросы таковы; есть ли библиотека C или Objective-C (встроенная или с открытым исходным кодом) для такого рода проверки данных, или как мне провести такую ​​проверку?

Вот два примера хороших и плохих данных:

ХОРОШО:

Name: "John Aaron Smith"  
Title: "Why am I still here?"  
Text: "Can anybody please help me? I'm feeling lonely!"

ПЛОХО:

Name: "f**k you, kldsanfklds"   
Title: "Only $99. Buy Now. Only $99"  
Text: "ndsaklgnvds lakævndsaklæfhadsæhdsjka fhdskjafhdskj lafhsdkhf. €#&/ #&()(/&%& ># €%€#% €#& hidosæahviædshvidshfiodsa. adsifjDSILFJIDSH \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"

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

С уважением, BEN.

РЕДАКТИРОВАТЬ: Мой самый «свободный» язык - target-C, но я также неплохо справляюсь с C и знаю PHP и JAVA. Библиотеки / примеры на других языках могут быть трудны для понимания и «переведены» на действительный язык iPhone.

РЕДАКТИРОВАТЬ-РЕДАКТИРОВАТЬ: Я не ищу что-то слишком сложное. Просто простой способ сделать черновую обработку.

Ответы [ 3 ]

1 голос
/ 04 декабря 2009

Вы видели Моллом ? Он имеет связку библиотек разработчиков (php, ruby, perl и т. Д.), Которые связываются с серверами Mollom для определения нежелательной записи. Нетрудно перевести один из них на Objective-C.

1 голос
/ 11 марта 2011

Я сделал что-то похожее на то, что вы хотите, но это в php. Весь текст, с которым я имею дело, вводится с помощью капчи, поэтому я блокирую бесполезный спам в комментариях, похожий на ваш плохой пример. Вот то, что у меня так далеко, что блокирует хорошие 80% мусора. Он может блокировать некоторый допустимый текст от людей с плохими правописаниями, но я предпочитаю это, чем редактировать текст вручную.

  1. проверьте, что текст не пустой, и убедитесь, что это не все пробелы
  2. Проверьте длину, я использую минимум 3 символа.
  3. проверить серию совпадающих символов, например, !!!!!! Я использую не более 3.
  4. проверить слова длиннее 15 символов. например lakævndsaklæfhadsæhdsjka
  5. преобразовать копию текста в нижний регистр и пробежаться по словарю плохих слов

Вы можете добавить это, заблокировав текст подозрительными символами, например, % ^ [] Кроме того, вы можете составить список символов, которые никогда не должны использоваться рядом друг с другом, например, фд, гф, кп, йт, внд На данный момент вам нужно автоматизировать, добавив в алгоритм. Это будет означать, что алгоритм должен понимать некоторую грамматику, и общий процесс начнет умножаться по интенсивности. Все остальное за пределами моего понимания на данный момент.

1 голос
/ 04 декабря 2009

Это очень сложная проблема, которую нужно решить. Я не пытался бы создать свое собственное обнаружение спама, я бы использовал решение, которое уже существует и имеет хорошую репутацию, такое как SpamAssassin .

...