Skip to content

PixxxeL/djantimat

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 

Django Antimat

About

Detect dirty slang in russian text and process it.

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

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

В основе модуля лежат два принципа:

  • морфологический анализ слов посредством модуля pymorphy2, их сопоставление с базой заранее заготовленных
  • анализ текста на основе регулярного выражения.

Можно использовать либо тот, либо другой способ.

Второй вариант работает быстрее, но менее точный. Зато работает вне Django. Первый вариант медленнее, но его легко "обучать", добавляя слова в список. Первый вариант также можно использовать вне Django, но Вам придется самим разобрать базу из файла djantimat/fixtures/initial_data.json и подменить свойство PymorphyProc.words их списком.

Модуль работает только с unicode-объектами.

Installation

$ pip install djantimat

Добавление модуля в джанго:

INSTALLED_APPS += ('djantimat',)

синхронизация модели:

$ python manage.py migrate
$ python manage.py syndb # для добавления существующей базы слов

Dependencies

Pymorphy2

Pymorph2 Method Usage

$ python manage.py shell
>>> from djantimat.helpers import PymorphyProc

Есть ли матерные слова в тексте:

>>> slang_detected = PymorphyProc.test(u'Здесь текст с матерками')

Замена матерных слов в тексте шаблоном:

>>> without_slang = PymorphyProc.replace(u'Здесь текст с матерками', repl='[xxx]')

Оборачивание матерных слов в тексте например тегом:

>>> without_slang = PymorphyProc.wrap(u'Здесь текст с матерками', wrap=('<pre>', '</pre>',))

Regexp Method Usage

$ python
>>> from djantimat.helpers import RegexpProc

Есть ли матерные слова в тексте:

>>> slang_detected = RegexpProc.test(u'Здесь текст с матерками')

Замена матерных слов в тексте шаблоном:

>>> without_slang = RegexpProc.replace(u'Здесь текст с матерками', repl='[xxx]')

Оборачивание матерных слов в тексте например тегом:

>>> without_slang = RegexpProc.wrap(u'Здесь текст с матерками', wrap=('<pre>', '</pre>',))

About

Detect dirty slang in russian text and process it

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages