<?php
// 基本設定ファイル
if (!extension_loaded('mecab')) {
$_module_suffix = (PHP_SHLIB_SUFFIX == 'dylib') ? 'so' : PHP_SHLIB_SUFFIX;
dl('mecab.' . $_module_suffix) || die('skip');
}
// N-Best 解を表示するときの上限
define('NBEST_MAX_RESULT', 3);
$N = strval(NBEST_MAX_RESULT);
// 辞書のパス
$dic = '/opt/local/lib/mecab/dic/ipadic-utf8';
// 解析オプションは配列か文字列で指定する
// 添字配列と連想配列の混合もOK
$arg = array("-d" => $dic, "-N" => $N, "-l" => "2");
//$arg = array("-d", $dic, "-N{$N}", "-l" => "2");
//$arg = array("-d{$dic}", "-N{$N}", "-l2");
//$arg = "-d {$dic} -N3 -l2";
// 配列の要素として "-d {$dic}" (d の後にスペースあり) を指定すると
// それ全体が一つの引数として解釈されるので、下の例はエラーとなる。
$arg_invalid = array("-d {$dic}", "-N3", "-l2");
// 配列の要素としてではなく、単一の文字列として与えられるときは
// オプション名の後にスペースがあっても構わない。
$arg_only_dic = "-d {$dic}";
$str = "太郎は次郎が持っている本を花子に渡した。";
$str_long = <<<EOS
MeCab は 京都大学情報学研究科−日本電信電話株式会社コミュニケーション科学基礎研究所
共同研究ユニットプロジェクトの一環として開発されたオープンソース形態素解析エンジンです.
言語, 辞書, コーパスに依存しない汎用的な設計を基本方針としています.
EOS;
function border()
{
static $border = NULL;
if ($border === NULL) {
$border = PHP_EOL . str_repeat('-', 72) . PHP_EOL . PHP_EOL;
}
echo $border;
}
function catcher($errno, $errstr, $errfile, $errline, $errcontext)
{
border();
printf('%s:%d: %s%s', $errfile, $errline, $errstr, PHP_EOL);
//print_r($errcontext);
die($errno);
}
function format($surface, $feature, $id, $stat)
{
switch ($stat) {
case MECAB_BOS_NODE:
$str = 'BOS';
break;
case MECAB_EOS_NODE:
$str = 'EOS';
break;
default:
$str = $surface;
}
return sprintf('%d: %s [%s]', $id, $str, $feature);
}
set_error_handler('catcher');
?>
syntax highlighted by Code2HTML, v. 0.9.1