gpt4 book ai didi

php - tf-idf 错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:25:55 24 4
gpt4 key购买 nike

您好,我有一个关于 tf-idf 的问题。代码显示:“0”

这是代码:

$terms = array_count_values( explode( ' ', $frase ) );
$total_term = asort( $terms );
$total_array = count($total_term);

for ($i=1; $i<=$total_array; $i++){
$SQL = mysql_query("SELECT webTitulo, webDescripcion, webkeywords, weburl FROM webs WHERE MATCH (webTitulo, webDescripcion, webkeywords, weburl) AGAINST ('$total_term[$i]')", $server_link) or die(mysql_error());
$frec_term = mysql_num_rows($SQL);
}
$sssql = mysql_query("SELECT uDR.webTitulo, uDR.webDescripcion, uDR.webkeywords, uDR.weburl, SUM(uDR.priority) as SPriority
FROM (

(SELECT s1.webTitulo, s1.webDescripcion, s1.weburl, s1.webkeywords, 3 as priority FROM webs s1 WHERE MATCH (webTitulo) AGAINST ('$frase'))

UNION

(SELECT s2.webTitulo, s2.webDescripcion, s2.weburl, s2.webkeywords, 1 as priority FROM webs s2 WHERE MATCH (webkeywords) AGAINST ('$frase'))

UNION

(SELECT s3.webTitulo, s3.webDescripcion, s3.weburl, s3.webkeywords, 2 as priority FROM webs s3 WHERE MATCH (webDescripcion) AGAINST ('$frase'))) uDR

GROUP BY uDR.webTitulo, uDR.weburl, uDR.webDescripcion, uDR.webkeywords

ORDER BY SPriority DESC ", $server_link)
or die(mysql_error());
$totalRows = mysql_num_rows($sssql);
$tf_idf = $frec_term * log10($totalRows/70);
echo $tf_idf;

70 是一个数字,用于替换不存在的变量。

问候

最佳答案

你的逻辑是错误的:如果你用一个句子替换 $frase,你最终会得到 $total_term as true 而不是一个数组,参见 this example .

即使 $total 是一个数组,由于 array_count_values,键也将是字符串而不是数字。

即使它们的键是数字,它们也可能是从零开始的,这意味着您最后的 $frec_term = mysql_num_rows($SQL); 的计算结果将是 0.

$tf_idf 会是 0 的原因有很多,它们都是因为 $frec_term 是 NULL/undefined/0

关于php - tf-idf 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13828530/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com