很多站长朋友们都不太清楚php相似度匹配算法,今天小编就来给大家整理php相似度匹配算法,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 php 怎么匹配两个字符串的相似度 2、 similar_text — 计算两个字符串的相似度? 3、 php+mysql 怎么让一段字符串 和 数据库中的 指定字段 比较他们内容的相似度,然后按相似度排序? 4、 有人用php实现文本相似度算法吗 5、 php similar_text()函数的定义和用法 6、 PHP如何计算两个字符串的相似度? php 怎么匹配两个字符串的相似度php自带一个函数similar_text,可以计算两个字符串的相似度,但是这个的准确性、速度不是很好。网上有很多其他的方法和现成的包,你可以搜索看看。下面简单列举一个类
class LCS {
var $str1;
var $str2;
var $c = array();
/*返回串一和串二的最长公共子序列*/
function getLCS($str1, $str2, $len1 = 0, $len2 = 0) {
$this->str1 = $str1;
$this->str2 = $str2;
if ($len1 == 0) $len1 = strlen($str1);
if ($len2 == 0) $len2 = strlen($str2);
$this->initC($len1, $len2);
return $this->printLCS($this->c, $len1 - 1, $len2 - 1);
}
/*返回两个串的相似度*/
function getSimilar($str1, $str2) {
$len1 = strlen($str1);
$len2 = strlen($str2);
$len = strlen($this->getLCS($str1, $str2, $len1, $len2));
return $len * 2 / ($len1 + $len2);
}
function initC($len1, $len2) {
for ($i = 0; $i < $len1; $i++) $this->c[$i][0] = 0;
for ($j = 0; $j < $len2; $j++) $this->c[0][$j] = 0;
for ($i = 1; $i < $len1; $i++) {
for ($j = 1; $j < $len2; $j++) {
if ($this->str1[$i] == $this->str2[$j]) {
$this->c[$i][$j] = $this->c[$i - 1][$j - 1] + 1;
} else if ($this->c[$i - 1][$j] >= $this->c[$i][$j - 1]) {
$this->c[$i][$j] = $this->c[$i - 1][$j];
} else {
$this->c[$i][$j] = $this->c[$i][$j - 1];
}
}
}
}
function printLCS($c, $i, $j) {
if ($i == 0 || $j == 0) {
if ($this->str1[$i] == $this->str2[$j]) return $this->str2[$j];
else return "";
}
if ($this->str1[$i] == $this->str2[$j]) {
return $this->printLCS($this->c, $i - 1, $j - 1).$this->str2[$j];
} else if ($this->c[$i - 1][$j] >= $this->c[$i][$j - 1]) {
return $this->printLCS($this->c, $i - 1, $j);
} else {
return $this->printLCS($this->c, $i, $j - 1);
}
}
}
similar_text — 计算两个字符串的相似度?similar_text
(PHP 4, PHP 5, PHP 7, PHP 8)
similar_text — 计算两个字符串的相似度
说明
similar_text ( string $first , string $second , float $percent = ? ) : int
两个字符串的相似程度计算依据 Programming Classics: Implementing the World's Best Algorithms by Oliver (ISBN 0-131-00413-1) 的描述进行。注意该实现没有使用 Oliver 虚拟码中的堆栈,但是却进行了递归调用,这个做法可能会导致整个过程变慢或变快。也请注意,该算法的复杂度是 O(N**3),N 是最长字符串的长度。
参数
first
第一个字符串。
second
第二个字符串。
percent
通过引用方式传递第三个参数,similar_text() 将计算相似程度百分数。
返回值
返回在两个字符串中匹配字符的数目。
php+mysql 怎么让一段字符串 和 数据库中的 指定字段 比较他们内容的相似度,然后按相似度排序?纯sql的话,应该实现不了,相似的这个应该还是PHP来处理的,排第三的都没有相似的内容了,也要显示。那就是所有的数据,然后再foreach来做对比判断,我觉得可以将字符串分为数组,然后对比两个数组的交集个数,再按交集的个数来排序
有人用php实现文本相似度算法吗本文实例讲述了PHP简单实现文本计数器的方法。分享给大家供大家参考,具体如下:
<?php if (file_exists('count_file.txt')) { $fil = fopen('count_file.txt', r); $dat = fread($fil, filesize('count_file.txt')); echo $dat+1; fclose($fil); $fil = fopen('count_file.txt', w); fwrite($fil, $dat+1); } else { $fil = fopen('count_file.txt', w); fwrite($fil, 1); echo '1'; fclose($fil); } ?>
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php正则表达式用法总结》、《PHP+ajax技巧与应用小结》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php操作office文档技巧总结(包括word,excel,access,ppt)》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
php similar_text()函数的定义和用法php
similar_text()
函数计算比较两个字符串的相似度,本文章向码农介绍php
similar_text()
函数的基本使用方法和基本使用实例,感兴趣的码农可以参考一下。
定义和用法
similar_text()
函数计算两个字符串的相似度。
该函数也能计算两个字符串的百分比相似度。
注释:levenshtein() 函数比
similar_text()
函数更快。不过,similar_text()
函数通过更少的必需修改次数提供更精确的结果。
语法
similar_text(string1,string2,percent)
参数
描述
string1
必需。规定要比较的第一个字符串。
string2
必需。规定要比较的第二个字符串。
percent
可选。规定供存储百分比相似度的变量名。
技术细节
返回值:
返回两个字符串的匹配字符的数目。
PHP
版本:
4+
实例
计算两个字符串之间的百分比相似度:
<?phpsimilar_text("Hello
World","Hello
Shanghai",$percent);echo
$percent.
"%";?>
以上这篇php
similar_text()函数的定义和用法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
PHP如何计算两个字符串的相似度?similar_text('my name is php', 'my name is java', $result);
var_dump($result);
参考链接:网页链接
关于php相似度匹配算法的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php相似度匹配算法 php相似度匹配算法公式的详细内容...