前提・実現したいこと
php-mecabを用いてweb上の指定したurlから<h1>タグを取り出し、取り出した要素に対して形態素解析を行っています。
形態素解析の結果を配列に入れらたのはよいのですが、以下のような形で配列に入れたいです。
<理想の出力結果>
array(31) {
[0]=>国内 名詞,一般,,,,,国内,コクナイ,コクナイ
[1]=>ツアー 名詞,一般,,,,,ツアー,ツアー,ツアー
[2]=>、 記号,読点,,,,,、,、,、
[3]=>海外ツアー 名詞,固有名詞,一般,,,*,海外ツアー,カイガイツアー,カイガイツアー
・
・
・
のような形で、分けられた単語をそれぞれ配列に入れたいです。今現在では、[0]の中にすべての解析結果が入ってしまっています。
該当のソースコード
<!DOCTYPE html> <html> <head> <title>研究</title> </head> <body> <?php $opts = array('http'=>array('header' => "User-Agent:MyAgent/1.0rn")); $context = stream_context_create($opts); //対象URL $url = "https://search.mwt.co.jp/mintl/detail/CFMZ58AAH002.html?mediacd=ZTP"; $html = file_get_contents($url,false,$context); $dom = new DOMDocument; @$dom->loadHTML( mb_convert_encoding($html, 'HTML-ENTITIES', 'ASCII,JIS,UTF-8,eucJP-win,SJIS-win'), LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD ); $xpath = new DOMXPath($dom); $options = array('-d', '/usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd'); $mecab = new \MeCab\Tagger($options); echo "/*------------h1----------------*/<br>"; foreach ($xpath->query('//h1') as $h1_result){ $h1_values[]=$h1_result->nodeValue; } echo "<pre>"; print_r($h1_values); echo "</pre>"; if(empty($h1_result->nodeValue)){ $mecab_h1_result = []; echo "<br>該当なし<br>"; }else{ echo "<br>h1タグの形態素解析結果"; foreach($h1_values as $n){ $mecab_h1_result[] = $mecab->parse($n); } echo "<pre>"; print_r($mecab_h1_result); echo "</pre>"; } ?>
出力結果
/*------------h1----------------*/ Array ( [0] => 国内ツアー、海外ツアー、ホテル・旅館のご予約は名鉄観光で ) h1タグの形態素解析結果 Array ( [0] => 国内 名詞,一般,*,*,*,*,国内,コクナイ,コクナイ ツアー 名詞,一般,*,*,*,*,ツアー,ツアー,ツアー 、 記号,読点,*,*,*,*,、,、,、 海外ツアー 名詞,固有名詞,一般,*,*,*,海外ツアー,カイガイツアー,カイガイツアー 、 記号,読点,*,*,*,*,、,、,、 ホテル 名詞,一般,*,*,*,*,ホテル,ホテル,ホテル ・ 記号,一般,*,*,*,*,・,・,・ 旅館 名詞,一般,*,*,*,*,旅館,リョカン,リョカン の 助詞,連体化,*,*,*,*,の,ノ,ノ ご 接頭詞,名詞接続,*,*,*,*,ご,ゴ,ゴ 予約 名詞,サ変接続,*,*,*,*,予約,ヨヤク,ヨヤク は 助詞,係助詞,*,*,*,*,は,ハ,ワ 名鉄 名詞,固有名詞,組織,*,*,*,名鉄,メイテツ,メイテツ 観光 名詞,サ変接続,*,*,*,*,観光,カンコウ,カンコー で 助詞,格助詞,一般,*,*,*,で,デ,デ EOS )
補足情報(FW/ツールのバージョンなど)
ubuntu18.04
Apache/2.4.29
PHP 7.2.5
辞書:mecab-ipadic-NEologd
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/03 08:47
2018/07/03 08:51
2018/07/03 09:33