aotd / mystem
Yandex Mystem wrapper
Installs: 11 707
Dependents: 0
Suggesters: 0
Security: 0
Stars: 18
Watchers: 6
Forks: 4
Open Issues: 0
Requires (Dev)
- phpunit/phpunit: 4.*
- squizlabs/php_codesniffer: 2.*
README
Использование 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. Никто не отменяет великость и могучесть русского языка, потому всецело доверять такому решению не стоит :)