2016-08-29 4 views
-3

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

Для обнаружения спама у нас есть наборы данных, которые проверяют, является ли конкретный текст спамом или ветчиной.

Для взрослого содержания, я нашел набор данных я хочу использовать (извлечение ниже):

arrBad = [ 
'acrotomophilia', 
'anal', 
'anilingus', 
'anus', 
. 
. etc. 
. 
'zoophilia'] 

Вопрос

Как я могу использовать этот набор данных для фильтрации текстовых экземпляров?

+1

Свободный путь? – percusse

ответ

7

Я рассматривал бы это как проблему классификации текста, потому что использование черных списков слов обычно не очень хорошо подходит для классификации полных текстов. Основная причина, по которой черные списки не работают, заключается в том, что у вас будет много ложных срабатываний (один пример: ваш список содержит слово «sexy», которого недостаточно, чтобы обозначить документ как для взрослых). Для этого вам нужен учебный комплект с документами, помеченными как «взрослый контент», а другие «безопасны для работы». Итак, вот что я хотел бы сделать:

  1. проверить, можно ли использовать существующий помеченный набор данных. Вам нужно несколько тысяч документов каждого класса.
  2. Если вы не нашли, создайте его. Например, вы можете создать скребок и загрузить содержимое Reddit. Читайте, например, Text Classification of NSFW Reddit Posts
  3. Создайте текстовый классификатор с помощью NLTK. Если вы не знаете, как это делается, прочитайте: Learning to Classify Text
0

Возможно, вас заинтересует TextRazor. Используя свой API, вы сможете классифицировать входной текст.

И, например, вы можете удалить все входные тексты, которые содержат некоторые категории или ключевые слова, которые вы не хотите.

0

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

  1. Проверьте, как Grep семейство алгоритмов работы, особенно алгоритм bitap и реализация Wu-Manber для fgrep..Depending от того, насколько точно вы хотите быть, может потребоваться добавить некоторые нечеткой логики обработки (думаю, почему люди используют fukc вместо fuck..right?).

  2. Вы можете найти Bloom фильтр интересен, так как он не будет иметь каких-либо ложных негативов (набор данных), недостатком является то, что он может содержать ложных срабатываний ..

1

Это можно рассматривать как проблема классификации двоичного текста. Вы должны собирать документы, содержащие «контент для взрослых», а также документы, которые не содержат контент для взрослых («универсальный»). Может случиться так, что слово/фраза, которую вы включили в список arrBad, может присутствовать в «универсальном» документе, например, «девушка сверху» в предложении «Она хотела быть первой девочкой на вершине горы , Эверест.«Вам нужно получить вектор счета количества раз, когда каждое слово/фраза происходит в документе« взрослый контент »и« универсальном »документе.

Предлагаю вам рассмотреть возможность использования алгоритмов, таких как Naive Bayes (которые должны хорошо работать в вашем случае). Однако, если вы хотите захватить контекст, в котором используется каждая фраза, вы можете также рассмотреть алгоритм поддержки векторных машин (но это будет включать в себя настройку множества сложных параметров).

+1

Лично я предпочитаю использовать sklearn для классификации текста по сравнению с NLTK. http://scikit-learn.org/stable/tutorial/text_analytics/working_with_text_data.html – PJay

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

  • Нет связанных вопросов^_^