sách gpt4 ăn đã đi

PHP cải thiện các hàm tương tự_text() và levenshtein() để tính toán độ tương tự của chuỗi

In lại Tác giả: qq735679552 Thời gian cập nhật: 29-09-2022 22:32:09 29 4
mua khóa gpt4 giày nike

CFSDN nhấn mạnh vào giá trị tạo ra nguồn mở và chúng tôi cam kết xây dựng nền tảng chia sẻ tài nguyên để mọi nhân viên CNTT có thể tìm thấy thế giới tuyệt vời của bạn tại đây.

Bài viết trên blog CFSDN này PHP cải thiện hàmsimilar_text() và levenshtein() để tính toán độ tương tự chuỗi được tác giả sưu tầm và biên soạn. Nếu bạn quan tâm đến bài viết này thì nhớ like nhé.

tương tự_text()Phiên bản ký tự Trung Quốc.

  。

Sao chép mã Mã này như sau:

          // Tách chuỗi 
     hàm split_str($str) { 
       preg_match_all("/./u", $str, $arr); 
       trả về $arr[0]; 
     } 
      
     // phát hiện sự giống nhau 
     hàm similar_text_cn($str1, $str2) { 
       $arr_1 = mảng_unique(split_str($str1)); 
       $arr_2 = mảng_unique(split_str($str2)); 
       $similarity = count($arr_2) - count(array_diff($arr_2, $arr_1)); 
        
       trả về $similarity; 
     }  

  。

levenshtein() phiên bản ký tự Trung Quốc.

  。

Sao chép mã Mã này như sau:

          // Tách chuỗi 
     hàm mbStringToArray($string, $encoding = 'UTF-8') { 
         $arrayResult = mảng(); 
         trong khi ($iLen = mb_strlen($string, $encoding)) { 
             mảng_đẩy($arrayResult, mb_substr($string, 0, 1, $encoding)); 
             $string = mb_substr($string, 1, $iLen, $encoding); 
         } 
         trả về $arrayResult; 
     } 
     //chỉnh sửa khoảng cách 
     hàm levenshtein_cn($str1, $str2, $costReplace = 1, $encoding = 'UTF-8') { 
         $count_same_letter = 0; 
         $d = mảng(); 
         $mb_len1 = mb_strlen($str1, $encoding); 
         $mb_len2 = mb_strlen($str2, $encoding); 
         $mb_str1 = mbStringToArray($str1, $encoding); 
         $mb_str2 = mbStringToArray($str2, $encoding); 
         cho ($i1 = 0; $i1 <= $mb_len1; $i1++) { 
             $d[$i1] = mảng(); 
             $d[$i1][0] = $i1; 
         } 
         đối với ($i2 = 0; $i2 <= $mb_len2; $i2++) { 
             $d[0][$i2] = $i2; 
         } 
         cho ($i1 = 1; $i1 <= $mb_len1; $i1++) { 
             đối với ($i2 = 1; $i2 <= $mb_len2; $i2++) { 
                 // $cost = ($str1[$i1 - 1] == $str2[$i2 - 1]) ? 0 : 1; 
                 nếu ($mb_str1[$i1 - 1] === $mb_str2[$i2 - 1]) { 
                     $chi phí = 0; 
                     $count_same_letter++; 
                 } khác { 
                     $chi phí = $costReplace; //Thay thế 
                 } 
                 $d[$i1][$i2] = min($d[$i1 - 1][$i2] + 1, //chèn 
                 $d[$i1][$i2 - 1] + 1, //Xóa 
                 $d[$i1 - 1][$i2 - 1] + $chi phí); 
             } 
         } 
         trả về $d[$mb_len1][$mb_len2]; 
         //trả về mảng('khoảng cách' => $d[$mb_len1][$mb_len2], 'count_same_letter' => $count_same_letter); 
     }  

  Dãy con chung dài nhất LCS().

Sao chép mã Mã này như sau:

                  //Phiên bản tiếng Anh của dãy con chung dài nhất 
         hàm LCS_en($str_1, $str_2) { 
           $len_1 = strlen($str_1); 
           $len_2 = strlen($str_2); 
           $len = $len_1 > $len_2 ? $len_1 : $len_2; 
           $dp = mảng(); 
           đối với ($i = 0; $i <= $len; $i++) { 
             $dp[$i] = mảng(); 
             $dp[$i][0] = 0; 
             $dp[0][$i] = 0; 
           } 
           đối với ($i = 1; $i <= $len_1; $i++) { 
             cho ($j = 1; $j <= $len_2; $j++) { 
               nếu ($str_1[$i - 1] == $str_2[$j - 1]) { 
                 $dp[$i][$j] = $dp[$i - 1][$j - 1] + 1; 
               } khác { 
                 $dp[$i][$j] = $dp[$i - 1][$j] > $dp[$i][$j - 1] ? $dp[$i - 1][$j] : $dp[$i][$j - 1]; 
               } 
             } 
           } 
           trả về $dp[$len_1][$len_2]; 
         } 
         // Tách chuỗi 
         hàm mbStringToArray($string, $encoding = 'UTF-8') { 
           $arrayResult = mảng(); 
           trong khi ($iLen = mb_strlen($string, $encoding)) { 
             mảng_đẩy($arrayResult, mb_substr($string, 0, 1, $encoding)); 
             $string = mb_substr($string, 1, $iLen, $encoding); 
           } 
           trả về $arrayResult; 
         } 
         //Phiên bản tiếng Trung của dãy con chung dài nhất 
         hàm LCS_cn($str1, $str2, $encoding = 'UTF-8') { 
           $mb_len1 = mb_strlen($str1, $encoding); 
           $mb_len2 = mb_strlen($str2, $encoding); 
           $mb_str1 = mbStringToArray($str1, $encoding); 
           $mb_str2 = mbStringToArray($str2, $encoding); 
           $len = $mb_len1 > $mb_len2 ? $mb_len1 : $mb_len2; 
           $dp = mảng(); 
           đối với ($i = 0; $i <= $len; $i++) { 
             $dp[$i] = mảng(); 
             $dp[$i][0] = 0; 
             $dp[0][$i] = 0; 
           } 
           đối với ($i = 1; $i <= $mb_len1; $i++) { 
             đối với ($j = 1; $j <= $mb_len2; $j++) { 
               nếu ($mb_str1[$i - 1] == $mb_str2[$j - 1]) { 
                 $dp[$i][$j] = $dp[$i - 1][$j - 1] + 1; 
               } khác { 
                 $dp[$i][$j] = $dp[$i - 1][$j] > $dp[$i][$j - 1] ? $dp[$i - 1][$j] : $dp[$i][$j - 1]; 
               } 
             } 
           } 
           trả về $dp[$mb_len1][$mb_len2]; 
         }

Cuối cùng, bài viết này về các hàm cải tiến của PHPsimilar_text() và levenshtein() để tính toán độ tương tự chuỗi sẽ kết thúc tại đây. tiếp tục duyệt các bài viết liên quan, tôi hy vọng bạn sẽ ủng hộ blog của tôi trong tương lai! .

29 4 0
qq735679552
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress