centOSにmecabをインストール

cd /usr/local/src
wget “https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7cENtOXlicTFaRUE” -O mecab-0.996.tar.gz
sudo tar -zxvf mecab-0.996.tar.gz

[vagrant@localhost src]$ ls
mecab-0.996 mecab-0.996.tar.gz

sudo ./configure –with-charset=utf8

sudo wget “https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7MWVlSDBCSXZMTXM” -O mecab-ipadic-2.7.0-20070801.tar.gz

$ tar zxfv mecab-ipadic-2.7.0-20070801.tar.gz
$ cd mecab-ipadic-2.7.0-20070801
$ ./configure –with-charset=utf8
$ make
$ make install

[vagrant@localhost mecab-ipadic-2.7.0-20070801]$ echo すもももももももものうち | mecab
すもも 名詞,一般,*,*,*,*,すもも,スモモ,スモモ
も 助詞,係助詞,*,*,*,*,も,モ,モ
もも 名詞,一般,*,*,*,*,もも,モモ,モモ
も 助詞,係助詞,*,*,*,*,も,モ,モ
もも 名詞,一般,*,*,*,*,もも,モモ,モモ
の 助詞,連体化,*,*,*,*,の,ノ,ノ
うち 名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
EOS

ぎゃああああああああああああああああああああ

$ git clone https://github.com/rsky/php-mecab.git
$ cd php-mecab/mecab/
$ phpize
$ ./configure –with-mecab=/usr/local/src/mecab-0.996/mecab-config
$ make
$ make test
$ make install
[vagrant@localhost mecab]$ ls /usr/lib64/php/modules/ | grep mecab
mecab.so
[vagrant@localhost mecab]$ vim /etc/php.d/mecab.ini
-bash: vim: コマンドが見つかりません
[vagrant@localhost mecab]$ vi /etc/php.d/mecab.ini
[vagrant@localhost mecab]$ sudo vi /etc/php.d/mecab.ini
[vagrant@localhost mecab]$ sudo service httpd restart
httpd を停止中: [ OK ]
httpd を起動中: httpd: Could not reliably determine the server’s fully qualified domain name, using localhost.localdomain for ServerName
[ OK ]
[vagrant@localhost mecab]$ php -m | grep mecab
mecab

ぎょえええええええええええええええええええ

$str = 'すもももももももものうち';

$mecab = new Mecab_Tagger();
$nodes = $mecab->parseToNode($str);
foreach ($nodes as $n) {
    $items = $n->getFeature();
    echo $items . "<br>";
}

BOS/EOS,*,*,*,*,*,*,*,*
名詞,一般,*,*,*,*,すもも,スモモ,スモモ
助詞,係助詞,*,*,*,*,も,モ,モ
名詞,一般,*,*,*,*,もも,モモ,モモ
助詞,係助詞,*,*,*,*,も,モ,モ
名詞,一般,*,*,*,*,もも,モモ,モモ
助詞,連体化,*,*,*,*,の,ノ,ノ
名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
BOS/EOS,*,*,*,*,*,*,*,*

oh my god.

さくらのphp-mecabをインストールする際に嵌ってしまった

mecabはphp7.0とphp5.*では、クラスの書き方が異なります。
例:MeCab_Tagger
例:\MeCab\Tagger

その為、git-cloneもしくはwgetでファイルを取得して展開した後に、以下のようにコンパイルするかと思いますが、./configureで、phpのバージョンを指定する必要があります。

phpize
./configure
make
make install

configureでphp-configとmecab-configを指定しますが、さくらの場合、php-configをphpのバージョンごとにディレクトリを分けて管理されている為、利用しているバージョンのディレクトリを指定して、configureしなければなりません。

./configure --with-php-config=/usr/local/php/5.6/bin/php-config --with-mecab=/usr/local/bin/mecab-config

上記は5.6ですが、phpinfoで確認できます。

これを解決するのに、5時間ぐらい調べて何度も試していました。馬鹿ですね。

アナリストレポートの頻出単語を形態素分析で比較

フィーチャーベンチャーキャピタルの2/9と2/6のレポートで、2回以上書かれている単語を見てみます。
http://www.jpx.co.jp/listing/ir-clips/analyst-report/detail/tvdivq0000023hz1-att/ana_re_8462_20180209_1.pdf
http://www.jpx.co.jp/listing/ir-clips/analyst-report/detail/tvdivq0000023hz1-att/ana_up_8462_20180206_2.pdf

<?php

$text = "レポート内容(略)";
$appearances = 2;

$meishiPosIdArr = array(38, 41, 42, 43, 44, 45, 46, 47);

$meishiArr = &#91;&#93;;

$mecab = new MeCab_Tagger();
$nodes = $mecab->parseToNode($text);


foreach($nodes as $node){
	if($node->getStat() === MECAB_BOS_NODE || $node->getStat() === MECAB_EOS_NODE){
		continue;
	}
	if (in_array($node->getPosId(), $meishiPosIdArr)){
		$meishiArr[] = $node->getSurface();
	}
}

$retArr = array_count_values($meishiArr);
$retArr = array_filter($retArr, function($v) use($appearances){
	return ($v >= $appearances);
});

arsort($retArr, SORT_NUMERIC);
print_r($retArr);

2/9のレポート
Array ( [月] => 10 [Q] => 10 [利益] => 8 [赤字] => 7 [業績] => 5 [経常] => 3 [パラグラフ] => 2 [持分] => 2 [会社] => 2 [株式] => 2 [ファンドレイズ] => 2 [ZMP] => 2 [特] => 2 [子会社] => 2 [利] => 2 [売上] => 2 [幅] => 2 [最終] => 2 [段階] => 2 [ファンド] => 2 [ANEW] => 2 )

2/6のレポート
Array ( [IPO] => 5 [ZMP] => 3 [会社] => 3 [利益] => 3 [株式] => 2 [A] => 2 [ファンド] => 2 [収益] => 2 [M] => 2 [キャピタルゲイン] => 2 [期間] => 2 [黒字] => 2 [株] => 2 [月] => 2 [負] => 2 [経費] => 2 [Q] => 2 [事業] => 2 [状況] => 2 )

頻出単語から推察するに、2/6はIPOが話題に上がっているようですが、2/9は業績に関するレポートに変わっているようですね。