我有一段PHP代码,如下所示:
$words = array(
'Art' => '1',
'Sport' => '2',
'Big Animals' => '3',
'World Cup' => '4',
'David Fincher' => '5',
'Torrentino' => '6',
'Shakes' => '7',
'William Shakespeare' => '8'
);
$text = "I like artists, and I like sports. Can you call the name of a big animal? Brazil World Cup matchers are very good. William Shakespeare is very famous in the world.";
$all_keywords = $all_keys = array();
foreach ($words as $word => $key) {
if (strpos(strtolower($text), strtolower($word)) !== false) {
$all_keywords[] = $word;
$all_keys[] = $key;
}
}
echo $keywords_list = implode(',', $all_keywords) ."<br>";
echo $keys_list = implode(',', $all_keys) . "<br>";
Run Code Online (Sandbox Code Playgroud)
代码回显Art,Sport,World Cup,Shakes,William Shakespeare和1,2,4,7,8; 但是,该代码非常简单,并且不够准确,无法呼应正确的关键字。例如,'Shakes' => '7'由于Shakespearein 中的单词而返回了代码$text,但是如您所见,“ Shakes”不能将“ Shakespeare”表示为适当的关键字。基本上我想返回Art,Sport,World Cup,William Shakespeare和1,2,4,8而不是Art,Sport,World Cup,Shakes,William Shakespeare和1,2,4,7,8。因此,您能帮我如何开发出更好的代码来提取关键字而又不会遇到类似问题吗?谢谢你的帮助。