Цензура. Как сделать?

Ответить
AliMan
Сообщения: 34
Зарегистрирован: 18 мар 2014, 19:11

Цензура. Как сделать?

Сообщение AliMan » 21 мар 2014, 10:33

У меня в наличии база данных из 43к анекдотов. Нужно определить какие из них матерные.
Есть идеи как это сделать?

Аватара пользователя
mdzht
Сообщения: 124
Зарегистрирован: 11 ноя 2013, 11:33
Откуда: fock it
Контактная информация:

Re: Цензура. Как сделать?

Сообщение mdzht » 21 мар 2014, 11:08

AliMan писал(а):У меня в наличии база данных из 43к анекдотов. Нужно определить какие из них матерные.
Есть идеи как это сделать?
создай таблицы, anecdotes и fuck_anecdotes
«Life is too short to spend rewriting code»

AliMan
Сообщения: 34
Зарегистрирован: 18 мар 2014, 19:11

Re: Цензура. Как сделать?

Сообщение AliMan » 21 мар 2014, 11:16

mdzht писал(а):создай таблицы, anecdotes и fuck_anecdotes
Любителям поязвить прошу продвигаться в сторону лесных массивов окольными путями дабы не смущать светлые умы android-разработчиков и не разлагать рабочее настроение.

П.С. Если я захочу услышать язвительные замечание, нелепые советы или поговорить на отвлеченные темы - то напишу в разделе "флудильня".

siberprogs
Сообщения: 93
Зарегистрирован: 05 мар 2014, 06:20

Re: Цензура. Как сделать?

Сообщение siberprogs » 21 мар 2014, 13:48

На "анекдотов.нет" эту задачу не решили.
Первое что приходит в голову это сделать таблицу, занести в нее всевозможные матерные слова, и уже относительно нее делать фильтр.
Но навряд ли это получится, так как Русский язык велик и могуч! Эта таблица по объему может оказатся больше чем база с анекдотами.
Linux Fedora RFRemix + Intellij Idea

Аватара пользователя
mdzht
Сообщения: 124
Зарегистрирован: 11 ноя 2013, 11:33
Откуда: fock it
Контактная информация:

Re: Цензура. Как сделать?

Сообщение mdzht » 21 мар 2014, 13:52

AliMan писал(а): П.С. Если я захочу услышать язвительные замечание, нелепые советы или поговорить на отвлеченные темы - то напишу в разделе "флудильня".
Ну раз не хочешь трогать базу
[syntax=java5]if jokes.equals(offensive_jokes){
print("Fuck fuck fuck");
}else{
print("don't disturb the enlightened minds of android developers");
}[/syntax]
«Life is too short to spend rewriting code»

AliMan
Сообщения: 34
Зарегистрирован: 18 мар 2014, 19:11

Re: Цензура. Как сделать?

Сообщение AliMan » 21 мар 2014, 13:56

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

AliMan
Сообщения: 34
Зарегистрирован: 18 мар 2014, 19:11

Re: Цензура. Как сделать?

Сообщение AliMan » 21 мар 2014, 14:29

mdzht писал(а):
AliMan писал(а): П.С. Если я захочу услышать язвительные замечание, нелепые советы или поговорить на отвлеченные темы - то напишу в разделе "флудильня".
Ну раз не хочешь трогать базу
[syntax=java5]if jokes.equals(offensive_jokes){
print("Fuck fuck fuck");
}else{
print("don't disturb the enlightened minds of android developers");
}[/syntax]
Не скомпелируется - скобочку после "if" забыл(а)

Код: Выделить всё

if(!isOfftop(msgObj) || !isTrolling(msgObj)){
	this.send(toWork);
}else{
	User user = msgObj.getUser();
	user.send(toWood);
	user.ignor();		
}

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Цензура. Как сделать?

Сообщение altwin » 21 мар 2014, 18:41

siberprogs писал(а): Первое что приходит в голову это....
Первое, что приходит в голову и единственный способ решения данной проблемы: Machine learning. И называется это: Supervised learning
http://www.rtexttools.com/
Последний раз редактировалось altwin 21 мар 2014, 18:44, всего редактировалось 2 раза.
Изображение

Аватара пользователя
mdzht
Сообщения: 124
Зарегистрирован: 11 ноя 2013, 11:33
Откуда: fock it
Контактная информация:

Re: Цензура. Как сделать?

Сообщение mdzht » 21 мар 2014, 18:43

AliMan писал(а):Не скомпелируется - скобочку после "if" забыл(а)

Код: Выделить всё

if(!isOfftop(msgObj) || !isTrolling(msgObj)){
	this.send(toWork);
}else{
	User user = msgObj.getUser();
	user.send(toWood);
	user.ignor();		
}
Вот вот сам себе и ответил, только чуть чуть поправлю, если не будешь ныть
[syntax=java5]if(!isOfftop(msgObj) && !isTrolling(msgObj)){
this.send(ToSuck);
}else{
User user = msgObj.getUser();
user.send(toWood);
user.ignor();
aliwoman.whine();
}[/syntax]
«Life is too short to spend rewriting code»

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Цензура. Как сделать?

Сообщение klblk » 22 мар 2014, 05:26

Думаю изначально база создавалась не правильно... К каждому анекдоту нужны теги, и по ним делать выборки.
Подготовить базу: поискать матерные слова, в нужных местах поставить звездочку. А уже на устройстве эту звездочку учитывать. как-то так наверное.

AliMan
Сообщения: 34
Зарегистрирован: 18 мар 2014, 19:11

Re: Цензура. Как сделать?

Сообщение AliMan » 24 мар 2014, 10:05

klblk писал(а):К каждому анекдоту нужны теги, и по ним делать выборки.
Тегов нет и взять их не от куда
klblk писал(а):Подготовить базу: поискать матерные слова, в нужных местах поставить звездочку. А уже на устройстве эту звездочку учитывать. как-то так наверное.
Как их поискать? в этом и загвоздка... была.
Проблему решил с помощью регулярок.
Помогла статья http://habrahabr.ru/post/101232/
И еще http://matov.net.ru/
Но переделать все на java вот это вот https://github.com/alrusdi/php-censure/ ... ensure.php лень было.
В целом вышло все нормально. На тестовой выборке в 1000 матерных анекдотов не распознал только 6.
На тестовой выборке в 1000 нормальных анекдотов распознал матерными только 12.

Ответить