質問編集履歴
2
foreach文の中で$mecab_resultを$mecab_result[]とすることで0番目の要素を取得できました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -71,12 +71,10 @@
|
|
71
71
|
|
72
72
|
print_r($h5_values);
|
73
73
|
|
74
|
-
$mecab_result = [];
|
75
|
-
|
76
74
|
$options = array('-d', '/usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd');
|
77
75
|
$mecab = new \MeCab\Tagger($options);
|
78
76
|
foreach($h5_values as $n){
|
79
|
-
$mecab_result = $mecab->parse($n);
|
77
|
+
$mecab_result[] = $mecab->parse($n);
|
80
78
|
|
81
79
|
}
|
82
80
|
var_dump($mecab_result);
|
1
不要な変数の削除、自分の行ったことを載せました。
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
配列にある要素に対して形態素解析を行い
|
1
|
+
配列にある要素に対して形態素解析を行い配列に格納したい
|
body
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
|
-
DOMXpathを用いて指定したURLのhtmlから特定タグを取り出し、その文章に対して形態素解析を行っています。<h5>タグを取り出した際に、以下のような結果になりました。
|
2
|
+
DOMXpathを用いて指定したURLのhtmlから特定タグを取り出し、その文章に対して形態素解析を行っています。<h5>タグを取り出した際に、以下のような結果になりました。
|
3
3
|
|
4
|
-
|
4
|
+
<$h5_values>
|
5
5
|
|
6
6
|
Array
|
7
7
|
(
|
@@ -10,6 +10,29 @@
|
|
10
10
|
)
|
11
11
|
|
12
12
|
|
13
|
+
|
14
|
+
|
15
|
+
|
16
|
+
この配列($h5_values)に対して、各要素ごとにmecabを用いて形態素解析を行い、その結果を配列($mecab_result)に格納したいのですが、以下のように出力したいです。
|
17
|
+
|
18
|
+
Array(0)
|
19
|
+
(
|
20
|
+
[0] => 旅行 名詞,一般
|
21
|
+
[1] => 代金 名詞,一般
|
22
|
+
・
|
23
|
+
・
|
24
|
+
・
|
25
|
+
[6] => ) 記号,括弧閉
|
26
|
+
[7] => 追加 名詞,一般
|
27
|
+
[8] => 料金 名詞,一般
|
28
|
+
・
|
29
|
+
・
|
30
|
+
・
|
31
|
+
[13] => ) 記号,括弧閉
|
32
|
+
)
|
33
|
+
|
34
|
+
現時点では、$h5_valuesの0番目の要素が取れていないのと、解析結果全てが一つの要素として配列に入ってしまい困っています。
|
35
|
+
|
13
36
|
### 該当のソースコード
|
14
37
|
|
15
38
|
```ここに言語名を入力
|
@@ -35,8 +58,6 @@
|
|
35
58
|
|
36
59
|
$xpath = new DOMXPath($dom);
|
37
60
|
|
38
|
-
$h4_values = [];
|
39
|
-
|
40
61
|
echo "/*------------<h5>----------------*/\n";
|
41
62
|
foreach ($xpath->query('//h5') as $h5_result){
|
42
63
|
$h5_values[]=$h5_result->nodeValue;
|
@@ -45,16 +66,49 @@
|
|
45
66
|
echo "該当なし";
|
46
67
|
}
|
47
68
|
|
69
|
+
$options = array('-d', '/usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd');
|
70
|
+
$mecab = new \MeCab\Tagger($options);
|
71
|
+
|
48
72
|
print_r($h5_values);
|
49
73
|
|
74
|
+
$mecab_result = [];
|
75
|
+
|
50
76
|
$options = array('-d', '/usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd');
|
51
77
|
$mecab = new \MeCab\Tagger($options);
|
78
|
+
foreach($h5_values as $n){
|
79
|
+
$mecab_result = $mecab->parse($n);
|
80
|
+
|
81
|
+
}
|
82
|
+
var_dump($mecab_result);
|
52
83
|
```
|
53
|
-
|
84
|
+
出力結果
|
85
|
+
```
|
86
|
+
<!DOCTYPE html>
|
87
|
+
<html>
|
88
|
+
<head>
|
89
|
+
<title>研究</title>
|
90
|
+
</head>
|
91
|
+
<body>
|
92
|
+
/*------------<h5>----------------*/
|
93
|
+
Array
|
94
|
+
(
|
95
|
+
[0] => 旅行代金(お一人様)
|
96
|
+
[1] => 追加料金(お一人様)
|
97
|
+
)
|
98
|
+
string(381) "追加 名詞,サ変接続,*,*,*,*,追加,ツイカ,ツイカ
|
99
|
+
料金 名詞,一般,*,*,*,*,料金,リョウキン,リョーキン
|
100
|
+
( 記号,括弧開,*,*,*,*,(,(,(
|
101
|
+
お 接頭詞,名詞接続,*,*,*,*,お,オ,オ
|
102
|
+
一人 名詞,固有名詞,人名,名,*,*,一人,カズト,カズト
|
103
|
+
様 名詞,接尾,人名,*,*,*,様,サマ,サマ
|
104
|
+
) 記号,括弧閉,*,*,*,*,),),)
|
105
|
+
EOS
|
106
|
+
```
|
54
107
|
### 試したこと
|
55
108
|
|
56
109
|
php-mecabの動作は確認済みです。きちんと動作しています。
|
57
110
|
|
111
|
+
|
58
112
|
### 補足情報(FW/ツールのバージョンなど)
|
59
113
|
|
60
114
|
ubuntu18.04
|