Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Фильтр мата на Java 
:(
    Опции темы
chipset
Дата 22.1.2005, 02:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: нет
Всего: 165



А прикол в том что каждый третий захочет помочь нашей системе со словарным запасом... smile


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
sergejzr
Дата 22.1.2005, 02:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 6
Всего: 360



smile Можно удафф.ком прогнать smile smile


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
chipset
Дата 22.1.2005, 02:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: нет
Всего: 165



Цитата(sergej @ 21.1.2005, 15:36)
Предлагаю во первых открыть для проекта новую тему в "наших проектах". Кто откроет, тот и будет рулить smile

ИМХО, не следует пока... Пусть просто в топике поживет, а то ещё один мертвый раздел делать...


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
sergejzr
Дата 22.1.2005, 02:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 6
Всего: 360



Говорю же, если кто серьёзно решит. Просто помогать я смогу, а ещё один проект тянуть - нет.
Хотя ужасть как хочется smile


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
LSD
Дата 22.1.2005, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Давайте пока попробуем накидать общую концепцию, а там посмотрим как и на чем реализовывать. Как вам мое предложени по поводу схемы анализа. У меня пока нет полной ясности по поводу не регистрозависимого анализа, а в остальном вроде вопросов у меня нет.
sergej.z
Расскажи поподробнее про "кластерингм документов в последнее время занимаюсь с использованием онтологий. ну и wordprocessings всякие тоже туда принадлежат". А то я только онтологию знаю и то как раздел философии smile

P.S. Поскольку тему начал Се ля ви, предалгю его и назначить крайним за все это дело smile
Цитата
Инициатива наказума исполнением!
smile smile smile


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
chipset
Дата 22.1.2005, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: нет
Всего: 165



LSD
ИМХО, должен быть словарь матерных слов (бл*) и словарь защищеных слов (гребля, сабля и т.д.).
Далее, один из вариантов: определяем последовательность из буквы которые находятся недалеко друг от друга (f_u_c_k), проверяем - соответствует ли словарю защищеных слов и если нет - ... smile
Естественно всё это заоптимизируется и т.д и т.п..
Кстати: предлагаю модераторам снять ограничения на мат в этом топике smile

Это сообщение отредактировал(а) chipset - 22.1.2005, 15:15


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
sergejzr
Дата 22.1.2005, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 6
Всего: 360



smile smile
  • Первым делом текст следует нормализовать.
    т.е пробежаться, выкинуть все знаки, оставив только буквы. (позиции однако надо запоминать отдельно).
    Пример: Сейчас мы это используем на форуме. Для проверки соответствия быстрой цитаты и участника. особенно в опере, где возвращаемый выделеммый текст очень не похож на возвращаемое сообщение.
  • Пробелы, табы оставляем для разделения слов.
  • Теперь, нормализуем буквы. Т.е заменяем похожие латинские на русские. Знаки некоторые кстати и их сочетания тоже похожи на буквы так и заменяем |-|-| будет ж.
  • Весь текст в нижний регистр.
  • Теперь у нас прекрасный текст в котором можно искать. stammer-ом прходимся по словам делим на подозрительные и не подозрительные. Конечно альтернативно можно и весь словарь загнать smile
  • После этого проверяем подозрительные на исключения - иначе слово - мат. Исключения как раз "са". не так уж много приличных русских слов с "".
  • В добавку ищем в тексте удалив пробелы.


Как Альтернатива можно пробелы сразу удалять, а потом искать подозрительные корни. Найдя восстанавливать слово, проверять в словаре.





--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
chipset
Дата 22.1.2005, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: нет
Всего: 165



sergej.z, а где в твоем алгоритме средства для распознования слов типа: "f^u_c^k"?
Добавлено @ 17:05
Вижу..


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
sergejzr
Дата 22.1.2005, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 6
Всего: 360



Цитата(LSD @ 22.1.2005, 14:02)
ergej.z
Расскажи поподробнее

Там много рассказывать smile

Берётся онтология - дерево или граф. Как повезёт. Скорее на хватит просто таксономии, потому что онтологические связи я в алгоритме(пока) не учитываю.
Цитата
поездки
/        \
перемещение    проживание
    /        \                /        \
самлёт поезд      отель квартира


Это очень грубое разделение. В ральной жизни я пытаюс кластеровать мат. и физ. документы.


Каждый узел рассматривается ка концепт. для каждого документа создаётся вектор из концептов.

v(i)= |поездки|перемещение|проживание|самлёт|поезд|отель|квартира|
i - порядковый номер документа
Теперь мы пробегаем по документам и изменяем значение компоненты вектора, если находим в тексте
подходящее словосочетание.

Например
"Гостинница Россия" -> v(i)[отель]++
"Ту 154" -> v(i)[самлёт]++
итд.

Затем мы редуцируем количество компонентов в векторах хитрым алгоритмом коллег из Karlsruhe.
Таким образом сокращаем кол-во измерений в нашем документном пространстве.
То, что получилось кластеруем каким нибудь K-means'ом.

Вот вкратце и всё smile

Извиняюсь, но я многих терминов по русски не знаю, так что мог где нить чушь написать smile


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Се ля ви
Дата 22.1.2005, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java/SOAрхитектор
****


Профиль
Группа: Модератор
Сообщений: 2016
Регистрация: 5.6.2004
Где: place without tim e and space

Репутация: 8
Всего: 127



Цитата(LSD @ 22.1.2005, 15:02)
Поскольку тему начал Се ля ви, предалгю его и назначить крайним за все это дело smile
Цитата
Инициатива наказума исполнением!

Ок, давайте порулю я. :-)

sergej.z
Схема хорошая. Надо решить, на каких этапах всё делать регэкспами, а где можно и вручную(для быстроты)...

Думаю, сначала можно всё сделать регэкспами, а потом какие-то этапы переписывать, оптимизируя.

Итак, фазы:
1.
Цитата(sergej @ 22.1.2005, 16:57)
Первым делом текст следует нормализовать.
т.е пробежаться, выкинуть все знаки, оставив только буквы. (позиции однако надо запоминать отдельно).

2.
Цитата(sergej @ 22.1.2005, 16:57)
Пробелы, табы оставляем для разделения слов.

3.
Цитата(sergej @ 22.1.2005, 16:57)
Теперь, нормализуем буквы. Т.е заменяем похожие латинские на русские. Знаки некоторые кстати и их сочетания тоже похожи на буквы так и заменяем |-|-| будет ж.

4.
Цитата(sergej @ 22.1.2005, 16:57)
Весь текст в нижний регистр.

5.
Цитата(sergej @ 22.1.2005, 16:57)
Теперь у нас прекрасный текст в котором можно искать. stammer-ом прходимся по словам делим на подозрительные и не подозрительные. Конечно альтернативно можно и весь словарь загнать

6.
Цитата(sergej @ 22.1.2005, 16:57)
После этого проверяем подозрительные на исключения - иначе слово - мат. Исключения как раз "са". не так уж много приличных русских слов с ""

7.
Цитата(sergej @ 22.1.2005, 16:57)
В добавку ищем в тексте удалив пробелы


Думаю, это должен быть класс без конструктора и все его медоды должны быть статичными и более того - private`ными, кроме одного, который возвращает уже отфильтрованный текст. В качестве входного параметра можно ему передавать объект JavaBean с библиотекой регэкспов и, собственно, слово, на которое мы заменяем весь мат.
JavaBean (не Enterprise, конечно) - в свою очередь может быть интерфейсом к файлу, к БД или вообще наполняться программой извне через setter`ы - это уже как usr`у будет удобней.

Какие будут встречные предложения? Прежде всего - относительно того, на каких фазах мы пользуемся RegExp`ами...

P.S. sergej.z вот только я не понял - что такое stammer?...
Добавлено @ 17:40
Да, собственно, все его методы этого главного класса должны соответствовать фазам. :-)


--------------------
  )
 (
[_])
проф. блог

Кролики думали, что занимаются любовью, а на самом деле их просто разводили...
PM MAIL WWW Skype GTalk   Вверх
sergejzr
Дата 22.1.2005, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 6
Всего: 360



stammer оставляет от слова лишь его корень.
обрезаются приставки и окончания. посмотрим действие на практике...

RegExp можно применять в конце не стандартизированный текст. ИМХО в ручную лучше регулировать мелочи можно

Добавлено @ 17:56
Надо еще функцию, которая возвращает процент мата в тексте.

PS:
Сейчас в голову пришло:
Заменять мат можно на "Гав, гав" как у старика Хоттабыча smile smile smile


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
LSD
Дата 22.1.2005, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Цитата(sergej @ 22.1.2005, 16:57)
Весь текст в нижний регистр.

Таким макаром мы исключим весь текс типа: nJIaksa.spb.

На мой взгляд надо текст разбить на атомарные единицы: токены. А далее анализировать: если токен состоит из букв одного алфавита, то просто анализировать его, независимо от регистра. Если нет, то надо попробовать его транслитерировать (тут есть над чем поработать). Все возможные варианты транслитерации сохраняются, как возможные варианты толкования токена. А затем они анализируются по словарю.
Так же надо анализировать возможные варианты когда сами токены не несут орицательной нагрузки, но вот их последовательность имеет негативный смысл:
Цитата(chipset @ 22.1.2005, 17:04)
f^u_c^k
Вообщем полный: RFC!


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
sergejzr
Дата 22.1.2005, 19:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 6
Всего: 360



Цитата(LSD @ 22.1.2005, 18:34)
текс типа: nJIaksa.spb.

По этому в нижний регистр переводится в самом конце. До этого фильтруются знако и буквосочетания.
Mы кстати мысленно при чтении делаем так же smile

LSD На практике не знаю, можно ли будет такой анализатор реализовать.
Особенно
Цитата
возможные варианты толкования токена

Я просто боюсь, что такое не реализуется, потому что всем надоест проект до того, как будут интересные результаты.
Т.е идею вижу, реализацию концепта - нет.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Се ля ви
Дата 23.1.2005, 01:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java/SOAрхитектор
****


Профиль
Группа: Модератор
Сообщений: 2016
Регистрация: 5.6.2004
Где: place without tim e and space

Репутация: 8
Всего: 127



smile
Мне вот тут вдруг стало непонятно другое - ну перелопатили мы текст, всё вбили в нижний регистр, да ещё и пробелы убрали - отфильстровали мат - и что с этим месивом делать? Это ведь всё восстановить в нормальном виде ещё надо...

Это сообщение отредактировал(а) Се ля ви - 23.1.2005, 01:01


--------------------
  )
 (
[_])
проф. блог

Кролики думали, что занимаются любовью, а на самом деле их просто разводили...
PM MAIL WWW Skype GTalk   Вверх
sergejzr
Дата 23.1.2005, 01:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 6
Всего: 360



см. пункт 1
Цитата
(позиции однако надо запоминать отдельно).

каждая буква в стандартизированном массиве соответстует индексу в настоящей мессаге. Его мы запоминаем.
Это сделсть очень легко, если например вести параллельный массив.
Добавлено @ 01:08
По индексам и находим нехорошие слова.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0978 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.