aotd/mystem

Yandex Mystem wrapper

3.0.2 2018-11-02 13:32 UTC

This package is auto-updated.

Last update: 2024-12-13 22:49:32 UTC


README

Latest Stable Version Total Downloads Build Status Scrutinizer Code Quality License

Использование Mystem

Простая обертка для Yandex mystem. Работает исключительно с русской морфологией.

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

Установка

Библиотека доступна в Packagist (aotd/mystem) и устанавливается через Composer.

php composer.phar require aotd/mystem 'dev-master'

Никто не запрещает просто скачать исходники с GitHub и использовать любой PSR-0 автолоадер.

Использование

Все примеры собраны в папке examples.

  • antimat - проверка текста на наличие обсценной лексики.
  • jabberwocky - стемминг части стихотворения «Бармаглот» (в переводе Дины Орловской).
  • verb-tense - определение времени глагола

Использование с Yii

Устанавливаем библиотеку через composer

{
    "require": {
        "aotd/mystem": "dev-master"
    },
    "scripts": {
        "post-install-cmd": [ "MystemBinaryInstaller::install" ],
        "post-update-cmd":  [ "MystemBinaryInstaller::update" ]
    },
}
$ composer install

Секция scripts необходима для установки бинарного файла mystem от Яндекса в зависимости от целевой платформы (Win/Mac OS/Linux/FreeBSD)

Складываем ExtMystem.php в /protected/extensions/Mystem, добавлеям в конфиг в секцию components:

    ...
    'mystem' => array(
        'class' => 'ext.Mystem.ExtMystem',
//      'falsePositive' => __DIR__ . '/mystem/false-positive.txt',
//      'falsePositiveNormalized' => __DIR__ . '/mystem/false-positive-normalized.txt',
//      'falseNegative' => __DIR__ . '/mystem/false-negative.txt',
//      'falseNegativeNormalized' => __DIR__ . '/mystem/false-negative-normalized.txt',
    ),
    ...

Опционально указываем списки ложно-положительных, ложно-отрицательных слов для фильтра обсценной лексики...

    Yii::app()->mystem->checkArticle('Текст для проверки на наличие матов');

Profit!

P.S. Никто не отменяет великость и могучесть русского языка, потому всецело доверять такому решению не стоит :)