前提・実現したいこと
windows環境でphpを使い特定のurlから<title>タグを取得し、その<title>タグの中のテキストに対して形態素解析を行っています。
形態素解析にはmecabを使っているのですが、特定の品詞のみを抽出する方法がわかりません。
preg_match関数を使い正規表現で「地域」と判断された単語を抽出したいです。
<var_dumpでの出力結果>
array(31) {
[0]=>
string(41) "#★< 名詞,サ変接続,,,,,*
"
[1]=>
string(73) "成田 名詞,固有名詞,地域,一般,,,成田,ナリタ,ナリタ
"
[2]=>
string(63) "午前 名詞,副詞可能,,,,,午前,ゴゼン,ゴゼン
"
[3]=>
string(50) "発 名詞,接尾,一般,,,,発,ハツ,ハツ
"
[4]=>
string(33) "/ 名詞,サ変接続,,,,,
"
[5]=>
string(79) "香港 名詞,固有名詞,地域,一般,,,香港,ホンコン,ホンコン
"
[6]=>
string(57) "午後 名詞,副詞可能,,,,,午後,ゴゴ,ゴゴ
"
[7]=>
string(50) "発 名詞,接尾,一般,,,,発,ハツ,ハツ
"
[8]=>
string(42) "> 記号,括弧閉,,,,,>,>,>
"
[9]=>
string(59) "デラックスクラスホテル 名詞,一般,,,,,
"
[10]=>
string(47) "に 助詞,格助詞,一般,,,,に,ニ,ニ
"
[11]=>
string(42) "3 名詞,数,,,,,3,サン,サン
"
[12]=>
string(53) "連 名詞,接尾,助数詞,,,,連,レン,レン
"
[13]=>
string(51) "泊 名詞,サ変接続,,,,,泊,ハク,ハク
"
[14]=>
string(35) "♪ 名詞,サ変接続,,,,,*
"
[15]=>
string(79) "香港 名詞,固有名詞,地域,一般,,,香港,ホンコン,ホンコン
"
[16]=>
string(79) "マカオ 名詞,固有名詞,地域,一般,,,マカオ,マカオ,マカオ
"
[17]=>
string(63) "黄金 名詞,一般,,,,,黄金,オウゴン,オーゴン
"
[18]=>
string(63) "海岸 名詞,一般,,,,,海岸,カイガン,カイガン
"
[19]=>
string(69) "物語 名詞,一般,,,,,物語,モノガタリ,モノガタリ
"
[20]=>
string(28) "II 名詞,一般,,,,,*
"
[21]=>
string(24) "4 名詞,数,,,,,*
"
[22]=>
string(71) "日間 名詞,接尾,助数詞,,,,日間,ニチカン,ニチカン
"
[23]=>
string(33) "( 名詞,サ変接続,,,,,
"
[24]=>
string(28) "NT 名詞,一般,,,,,*
"
[25]=>
string(27) "2531 名詞,数,,,,,*
"
[26]=>
string(27) "A 名詞,一般,,,,,*
"
[27]=>
string(36) ")| 名詞,サ変接続,,,,,*
"
[28]=>
string(134) "阪急交通社 名詞,固有名詞,組織,,,*,阪急交通社,ハンキュウコウツウシャ,ハンキューコーツーシャ
"
[29]=>
string(5) "EOS
"
[30]=>
bool(false)
}
該当のソースコード
<?php $html = file_get_contents('http://www.hankyu-travel.com/tour/detail_i.php?p_course_id=NT2531A&p_hei=10'); // htmlをXMLに変換 $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); $title = $xpath->query('//head/title[1]')->item(0)->nodeValue; echo "タイトル:", $title, "<br>"; /*------------行先の取得mecab------------------*/ $path = '"C:\Program Files\MeCab\bin\mecab.exe"'; $input = $title; $descriptorspec = array( 0 => array("pipe","r"), 1 => array("pipe","w") ); $process = proc_open($path, $descriptorspec, $pipes); if(is_resource($process)) { fwrite($pipes[0], $input); fclose($pipes[0]); while(!feof($pipes[1])){ $output[] = fgets($pipes[1]); } fclose($pipes[1]); proc_close($process); } echo "<pre>"; print_r($output);//形態素解析の結果の出力 echo "</pre>"; ?>
補足情報(FW/ツールのバージョンなど)
php 5.6.34
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/13 05:31
2018/06/13 09:19
2018/06/13 09:38
2018/06/13 09:38
2018/06/13 09:41
2018/06/13 09:46
2018/06/13 09:49
2018/06/13 09:57
2018/06/13 10:02
2018/06/13 10:04
2018/06/13 10:09
2018/06/13 10:12
2018/06/13 10:17
2018/06/13 10:23
2018/06/13 10:26
2018/06/13 10:27
2018/06/13 10:29
2018/06/13 10:31
2018/06/13 10:37
2018/06/13 10:41
2018/06/13 10:49
2018/06/13 10:52
2018/06/13 10:57
2018/06/13 11:03