|
|
|
ช่วยดูโค๊ดให้หน่อยคะ จะหาค่าที่น้อยที่สุดของตัวเลข โดยให้แสดงผลเป็นตัวเลข |
|
|
|
|
|
|
|
LevenshteinDistance ไอ้นี่อยู่ใหนหว่า ไม่เอามาด้วยเหรอ
|
|
|
|
|
Date :
2012-03-14 20:56:57 |
By :
deawx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
$min_MED = 999;
while($row = mysql_fetch_assoc ($result))
{
$w_one = $row["w_one"];
$s=$word_err ;//คำผิด
$t= $w_one ;//คำที่ความยาวเท่ากับกับคำผิด
$str_Distance =LevenshteinDistance($s,$t);
// //////**$str_Distance เก็บตัวเลข1....n
if ($str_Distance<=$min_MED)
{
$min_MED = $str_Distance;
$arr[]=$min_MED;
$Minimum=Minimum($arr);
if($Minimum)
{
$Minimum = $str_Distance;
$arrWordmin[]=$t;
echo"คำ>>>> ".$t." ค่าความใกล้เคียง".$str_Distance."<br>";
echo $Minimum."<br>";
}
}//while
function Minimum($arr)
{
$countMem = count($arr);
if ($countMem <= 0) return 0;
$min = $arr[0];
for($i = 1; $i < $countMem; $i++)
{
if ($arr[$i] < $min)
{
$min = $arr[$i];
}
}
return $min;
}
function LevenshteinDistance($s,$t)
{
$n=strlen($s);
$m=strlen($t);
$matrix=array(range(0,$n+1),range(0,$m+1));
$ret=0;
if ($n==0){
return $m;
}
elseif ($m==0){
return $n;
}
for ($i=0;$i<=$n;$i++) {
$matrix[$i][0]=$i;
}
for ($j=0;$j<=$m;$j++) {
$matrix[0][$j]=$j;
}
for ($i=1;$i<=$n;$i++) {
for ($j=1;$j<=$m;$j++) {
if ($s[$i-1]==$t[$j-1]) {
$cost=0;
}else{
$cost=1;
}
$matrix[$i][$j]=min($matrix[$i-1][$j]+1,//a deletion
$matrix[$i][$j-1]+1,//an insertion
$matrix[$i-1][$j-1]+$cost);//a substitution
}
}
return $matrix[$n][$m];
}
|
|
|
|
|
Date :
2012-03-14 21:57:17 |
By :
ปอปลาตาโต |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ดัน ค่ะๆๆๆ
|
|
|
|
|
Date :
2012-03-16 17:07:27 |
By :
ปอปลาตาโต |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ก็ตัด string เข้า array แล้ว sort ก็ได้แล้วนี่ครับ
|
|
|
|
|
Date :
2012-03-17 13:55:40 |
By :
wirote_se |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|