cuốn sách gpt4 ai đã làm

php(模糊)搜索匹配

In lại Tác giả: Hồ Xil 更新时间:2023-11-01 06:44:19 30 4
mua khóa gpt4 Nike

如果有人曾经向 digg 提交过故事,它会检查该故事是否已经提交,我假设是通过模糊搜索。

我想实现类似的东西,想知道他们是否使用开源的 php 类?

Soundex 不这样做,句子/字符串的长度可达 250 个字符

câu trả lời hay nhất

不幸的是,在 PHP 中执行此操作非常昂贵(高 CPU 和内存利用率)。但是,您当然可以将该算法应用于小型数据集。

具体扩展如何创建服务器崩溃:几个内置的 PHP 函数将确定字符串之间的“距离”:levenshteinvăn bản tương tự.

虚拟数据:(假装它们是新闻标题)

$titles = <<< EOFAppleApplesOrangeOrangesBananaEOF;

$titles = explode("\n", $titles );

此时,$titles 应该只是一个字符串数组。现在,创建一个矩阵并将每个标题与其他每个标题进行相似性比较。换句话说,对于 5 个标题,您将得到一个 5 x 5 矩阵(25 个条目。)这就是 CPU 和内存槽的用武之地。

这就是为什么这种方法(通过 PHP)不能应用于数千个条目的原因。但是如果你想:

$matches = array();foreach( $titles as $title ) { $matches[$title] = array(); foreach( $titles as $compare_to ) { $matches[$title][$compare_to] = levenshtein( $compare_to, $title ); } asort( $matches[$title], SORT_NUMERIC );}

此时您基本上拥有的是一个带有“文本距离”的矩阵。在概念上(不是在实际数据中)它看起来有点像下表。请注意如何有一组 0 值沿对角线方向移动 - 这意味着在匹配循环中,两个相同的词 - 嗯,完全相同。

       Apple Apples Orange Oranges BananaApple 0 1 5 6 6Apples 1 0 6 5 6Orange 5 6 0 1 5Oranges 6 5 1 0 5Banana 6 6 5 5 0

实际的 $matches 数组看起来像这样(截断):

Array( [Apple] => Array ( [Apple] => 0 [Apples] => 1 [Orange] => 5 [Banana] => 6 [Oranges] => 6 ) [Apples] => Array ( ...

无论如何,这取决于您(通过实验)确定一个好的数值距离截止值可能最匹配 - 然后应用它。否则,请阅读 sphinx-search 并使用它 - 因为它确实有 PHP 库。

Orange 你很高兴你问了这个问题?

关于php(模糊)搜索匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3208743/

30 4 0
Bài viết khuyến nghị: MySQL 查询 : How to select rows that don't have a certain value?
Bài viết khuyến nghị: ios - 什么时候投swift
Bài viết khuyến nghị: string - 在 swift 中将单个 c char 转换为字符串
Bài viết khuyến nghị: 加入时删除mysql?
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