Обработка естественного языка: Находите матом на английском? - PullRequest
6 голосов
/ 02 декабря 2009

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

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

Ответы [ 11 ]

11 голосов
/ 02 декабря 2009

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

Несколько быстрых мыслей:

  • Проблема Scunthorpe (и перейдите по ссылкам на " Фильтр ругательств " для получения дополнительной информации)
  • Британский или американский английский? фанни, педик и т. д.
  • Политкорректность: «черный» или «афроамериканец»?

Edit:

8 голосов
/ 04 декабря 2009
2 голосов
/ 02 декабря 2009

Обратите внимание, что любая подобная логика НЛП будет подвергаться атакам «замены персонажа»:

Например, я могу написать "привет" как "he11o", заменив L на One. То же самое с матом. Таким образом, пока нет идеального ответа, может подойти «черный список» «плохих слов». Остерегайтесь ложных срабатываний (я бы проверил свой черный список по большой книге, чтобы посмотреть, что произойдет)

2 голосов
/ 02 декабря 2009

Я бы сделал огромный список.

В Regex'ах возникает проблема пропуска зажигания при применении к естественному языку, особенно с некоторым исключением из английского.

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

Одной из проблем с фильтрами такого типа является их тенденция помечать полностью правильные английские названия городов, такие как Сканторп. Хотя это можно уменьшить, проверив слово целиком, а не его части, вы обнаружите, что люди пользуются этим преимуществом, объединяя свои оскорбительные слова с соседним текстом.

0 голосов
/ 19 марта 2017

В Melissa Data, когда мой менеджер, директор отдела исследований и разработок штата Массачусетс, и я произвели рефакторинг Data Profiler, предназначенного для реляционных баз данных, мы посчитали ненормативную лексику по количеству совпадений расстояния Левинштейна, где настраивается количество вставок, удалений и замен. пользователем, чтобы допустить орфографические ошибки, германские эквиваленты английского языка, множественное число, а также пробельные и непропускные знаки препинания. Мы ускорили время выполнения расчета расстояния Левинштейна, посмотрев только на диагональные полосы матрицы n на n.

0 голосов
/ 19 мая 2010

Существуют веб-сервисы, которые делают подобные вещи на английском языке.

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

0 голосов
/ 03 декабря 2009

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

Вот несколько полезных ссылок:

План для спама - Первое предложение использовать байесовский анализ для борьбы со спамом.

Data Mining (ppt) - Это было написано моим коллегой.

Classifier4J - библиотека классификаторов текста, написанная на Java (они существуют для каждого языка, но вы пометили этот вопрос Java).

0 голосов
/ 03 декабря 2009

Я бы выступил за большой список простых регулярных выражений. Меньше, чем список вариантов, но не пытается захватить ничего, кроме буквенных альтернатив, в любом заданном выражении: например, "f [u _- @ # $% ^ & *.] Ck".

0 голосов
/ 02 декабря 2009

Используйте морфийский лемматизатор, встроенный в WordNet, а затем определите, является ли лемма матом. Это решит проблему различных форм глаголов, множественного числа и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...