youaoi/php-mecab

为PHP7提供的meCab阅读器

1.0.0 2019-02-04 04:56 UTC

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系服务器上进行了操作验证。特别是以具有许多限制的租赁服务器使用为前提进行开发。

作者正在以下环境中使用