youaoi / php-mecab
为PHP7提供的meCab阅读器
1.0.0
2019-02-04 04:56 UTC
Requires
- php: >=7.0.0
This package is auto-updated.
Last update: 2024-09-20 20:05:57 UTC
README
将开源形态素解析引擎MeCab、PHP用无需安装的库ateliee/mecab进一步简化,使其更加易于使用。
此外,还进行了调整,使其更容易与Laravel等集成。
用法
请先通过Console使MeCab可用。
此外,使用不同的词典可能会影响解析结果。
composer.json
"require": {
"youaoi/php-mecab": "dev-master"
},
php
use Youaoi\MeCab\MeCab;
...
// 設定 ※任意。不要な値は省略できます。
MeCab::setDefaults([
// PATHが通っていないmecabを起動させる時に設定(default: mecab)
'command' => '~/.local/bin/mecab',
// 独自の辞書ディレクトリを利用する場合に設定(default: null)
'dictionaryDir' => '~/.local/mecab-neologd',
// 指定辞書を利用し解析。複数利用時はカンマ区切り(default: null)
'dictionary' => 'hoge1.dic,hoge2.dic',
// 解析時に生成するMeCabWordのclass名を指定(default: Youaoi\\MeCab\\MeCabWord)
'wordClass' => User\\MeCab\\MeCabWord::class,
]);
...
// シンプルな使い方1
echo MeCab::toReading('すもももももももものうち');
// Output: スモモモモモモモモノウチ
echo MeCab::toReading('山田太郎');
// Output: ヤマダタロウ
echo MeCab::toReading('C-3PO');
// Output:
echo MeCab::toReading('出席番号:13番');
// Output: シュッセキバンゴウバン
// シンプルな使い方2
echo MeCab::toSortText('すもももももももものうち');
// Output: スモモモモモモモモノウチ
echo MeCab::toSortText('山田太郎');
// Output: ヤマダタロウ
echo MeCab::toSortText('C-3PO');
// Output: C-3PO
echo MeCab::toSortText('出席番号:13番');
// Output: シュッセキバンゴウ:13バン
// ソート用文字列の作成方法
$sentence = '仕様書_copy-new(3)';
$text = MeCab::toSortText($sentence);
$text = strtoupper(mb_convert_kana($text, 'rnashk'));
// 漢字範囲など精度が悪いが、精密に判定する必要が無いので、ざっくりと削除
$text = preg_replace('/[^ヲ-ンA-Z0-9一-龠]+/u','' ,$text);
echo $text;
// Output: シヨウショCOPYNEW3
...
// データを解析する
var_dump($a = MeCab::parse('すもももももももものうち'));
$mecab = new MeCab();
var_dump($b = $mecab->analysis('すもももももももものうち'));
// $a == $b
※根据使用环境,解析结果可能不同,测试用例可能无法通过。
预期应用环境
在UNIX系服务器上进行了操作验证。特别是以具有许多限制的租赁服务器使用为前提进行开发。
作者正在以下环境中使用