我的结果已经过去了。我保持条件在一个数组上提供名词和形容词,如下所示:
function printTag($tags) {
$var = array();
foreach($tags as $t) {
echo $t['token'] . "/" . $t['tag'] . " ";
if($t['tag'] == 'NN'|| $t['tag']== 'JJ'){
array_push($var, $t['token']) ;
}
}
return $var;
}
但它没有给出正确的结果:
我的回音是:
The/DT quick/JJ brown/JJ fox/NN
jumped/VBD over/IN the/DT lazy/JJ
dog./NN this/DT is/VBZ really/RB yummy/JJ and/CC excellent/JJ
pizza/NN
I/NN have/VBP seen/VBN have/VBP really/RB in/IN love/NN it/PRP
it/PRP
当我执行var_dump($ var)时,它给出:
array(6) {
[0]=>
string(5) "quick"
[1]=>
string(5) "brown"
[2]=>
string(4) "dog."
[3]=>
string(5) "yummy"
[4]=>
string(1) "I"
[5]=>
string(4) "love"
}
为什么有些名词和形容词会跳过?
答案 0 :(得分:1)
原因是您要比较的字符串中可能包含endline或空格字符。
可以使用以下方法解决此问题:
trim($t['tag']) == 'NN'
比较字符串时,这通常是一个好主意。