Php 搜索字符串中的关键字(从矩阵中)(大约500个字符)
嘿,基本上我要做的是自动将标签分配给用户输入字符串。现在我有5个标签要分配。每个标签将有大约10个关键字。一个字符串只能分配一个标记。为了将标记分配给字符串,我需要搜索与所有五个标记的关键字匹配的单词。 例如: 用户字符串:迈出实现健身目标的第一步,支付199卢比的有氧运动、瑜伽、跆拳道、宝莱坞舞蹈,以及更高价值的1000卢比,在Koramangala的非常高级的F凿子BouncePhp 搜索字符串中的关键字(从矩阵中)(大约500个字符),php,algorithm,full-text-search,Php,Algorithm,Full Text Search,嘿,基本上我要做的是自动将标签分配给用户输入字符串。现在我有5个标签要分配。每个标签将有大约10个关键字。一个字符串只能分配一个标记。为了将标记分配给字符串,我需要搜索与所有五个标记的关键字匹配的单词。 例如: 用户字符串:迈出实现健身目标的第一步,支付199卢比的有氧运动、瑜伽、跆拳道、宝莱坞舞蹈,以及更高价值的1000卢比,在Koramangala的非常高级的F凿子Bounce 现在我需要为上面的字符串决定一个标记。我需要一个时间效率高的算法来解决这个问题。我不知道如何为字符串匹配关键字,
现在我需要为上面的字符串决定一个标记。我需要一个时间效率高的算法来解决这个问题。我不知道如何为字符串匹配关键字,但我确实考虑过如何确定标记。我想为每个标记维护一个数组计数,当关键字匹配时,相应标记的计数会增加。如果在任何时候,任何标签的计数达到5,我们可以停下来决定该标签,这将使我们免于搜索整个东西 请给出你对此的任何建议。我将使用php只是让你知道。
谢谢如果标签和关键字的数量较少,我可以省去编写复杂的算法,只需执行以下操作:
$tags = array(
'drink' => array('beer', 'whiskey', ...),
...
);
$string = 'Take first step ...';
$bestTag = '';
$bestTagCount = 0;
foreach ($tags as $tag => $keywords) {
$count = 0;
foreach ($keywords as $keyword) {
$count += substr_count($string, $keyword);
}
if ($count > $bestTagCount) {
$bestTagCount = $count;
$bestTag = $tag;
}
}
var_dump($bestTag);
该算法非常明显,但只适用于少量标记/关键字。有趣的主题!您所寻找的是类似于潜在语义索引的东西。还有任务。如果您不介意使用外部API,您应该尝试以下方法之一:
谢谢,这个链接真的很有趣,但我一直在寻找更简单的东西,因为我的需求在这里并不复杂。我已经在代码中加载了很多外部文件,这就是为什么不能使用其他api的原因
$tags = array(
'drink' => array('beer', 'whiskey', ...),
...
);
$string = 'Take first step ...';
$bestTag = '';
$bestTagCount = 0;
foreach ($tags as $tag => $keywords) {
$count = 0;
foreach ($keywords as $keyword) {
$count += substr_count($string, $keyword);
}
if ($count > $bestTagCount) {
$bestTagCount = $count;
$bestTag = $tag;
}
}
var_dump($bestTag);