关键字:超过3个字符的所有单词

我想比较两个字符串之间的关键字与这些条件:

  1. 移动单词并不重要(example1适用于这种情况)
  2. 不计算少于3个字符的单词(示例2适用于此情况)
  3. 在str1中放入较短的句子(字符数)。 (示例3适用于此情况)
  4. 我只想在str1中使用与str2相比的不同单词。 (例4是针对这种情况)

事实上,我有一个机器人每天攻击两个新闻网站并将新闻复制到我的数据库。 然后我需要一个算法来比较新闻标题和识别重复的新闻。 (如你所知,同样的新闻在不同的新闻网站上有不同的标题。但通常,相同新闻的标题都包括相同的关键字)

例1:移动单词并不重要

str1= 'hello petter'
str2= 'petter hello'

result: 0 

示例2:不计算小于3个字符的单词

str1= 'hello !!'
str2= 'petter hello'

result: 0 // '!!' are less than 3characters and str1 is 'hello'. then result:0

要么

str1= 'hello petter‌ how are u?'
str2= 'petter hello how are you'

result: 0 // str1 is 'hello petter how are'

example3:必须更改变量

str1= 'hello petter‌ how are you ?'
str2= 'petter hello how are you?'
// Then
str1= 'hello petter‌ how are you?'
str2= 'petter hello how are you ?'

result:1 // 1 is for 'you' (in str1)

例4: str2中不同的单词并不重要

str1= 'hello petter‌ how are you?'
str2= 'petter hello how are you ?'

result: 1 // str2 is 'petter hello how are you', then 1 is for: 'you?' (in str1)

注意: '你'(在str2中)对我来说并不重要,因为它与str1的任何单词都不匹配。

咒骂的例子:( 更多信息)

str1= 'petter‌ hello how are you pal?'
str2= 'petter hello how are... !!'

// In first str1 change with str2
str1= 'petter hello how are... !!'
str2= 'petter‌ hello how are you pal?'

// Then remove '!!' (in str1)
str1= 'petter hello how are...'
str2= 'petter‌ hello how are you pal?'

result: 1 // 1 for 'are...' (in str1) - ['are','you','pal?' does not matter (in str2)]

最后,我需要一个函数来通过结果和关键字的数量(所有超过3个字符的单词)识别重复的新闻。

$keywords_numb=7;
$result=2;

function identify_duplicate($keywords_numb,$result){
    if($keywords_numb / 3 >= $result){
        $Specified = 'this is a new news';
    }

    else $Specified = 'this is a duplicate news';
        return $Specified;

}

    echo $Specified;

输出:

this is a new news

谁知道我怎么写这个程序? 问候

===============>>#1 票数:2

你不需要正则表达式..你可以使用以下函数并以任何顺序传递字符串:

function identify_duplicate($var1, $var2){
   if(strlen($var1)>=strlen($var2)){
       $str1 = $var1;
       $str2 = $var2;
   }
   else{
       $str1 = $var2;
       $str2 = $var1;
   }
   $str1 = explode(" ", $str1);
   $str2 = explode(" ", $str2);

  $return = sizeof($str1);

  foreach($str1 as $val){
     if(in_array($val, $str2) || strlen($val) <= 3){
         $return = $return - 1;
     }
  }

   return $return;
}

===============>>#2 票数:0 已采纳

@karthik manchala的帮助下,我做到了......

   $str1='this news is about a player named Ronaldo';
   $str2='The player who called Ronaldo';

 function identify_duplicate($str1, $str2){
   if(strlen($str1)>strlen($str2)){
       list($str1, $str2) = array($str2, $str1); // swap two variables
   }

   $str1 = explode(" ", $str1);
   $str2 = explode(" ", $str2);

    $words_numb = sizeof($str1);
    $result=$words_numb;

    foreach($str1 as $val){
     if(in_array($val, $str2) || strlen($val) <= 3){
         $result--;
     }
  }

   if($words_numb / 3 >=$result){
        $Specified = 'this is a duplicate news';
       }
    else $Specified = 'this is a new news';
        return $Specified;
}


$out=identify_duplicate($str1, $str2);
echo $out;

输出:

这是重复的新闻

  ask by Shafizadeh translate from so

未解决问题?本站智能推荐:

3回复

解析短语和关键字的搜索字符串

例如,我需要在php中解析关键字和短语的搜索字符串 字符串1: value of "measured response" detect goal "method valuation" study 将产生: value,of,measured reponse,detect,goal,m
2回复

突出显示PHP字符串中仅键入的关键字

我正在使用以下功能来突出显示字符串中搜索到的关键字。 它工作正常,但问题不大。 使用以下功能,它突出显示了“简单”和“文本”两个词,而我只希望突出显示“ sim”和“文本”两个词。 为了实现此结果,我需要进行哪些类型的更改。 请指教。
2回复

PHP在关键字前后提取字符串的一部分,然后替换除关键字之外的所有内容

我有一个字符串应该被处理: $ str =“ Lorem ipsum dolor ,在我的关键词1之前,之后 ,sius do tempor incididunt ut 在我的关键词2 之前,之后和之后尼科ut aliquip从前的后代”; 在关键字前后提取字符串的一部分:
3回复

在PHP中,将字符串与关键字列表进行匹配的最有效方法是什么?

我有一个关键字列表,需要检查是否其中任何一个出现在字符串中。 例如: 我可以将关键字放入数组中,循环遍历并在每次迭代中执行preg_match()或substr(),但这似乎有点cpu昂贵。 我已经用正则表达式搞糊涂了,但是没有成功。 什么是最有效的方法(就精简代码和低CPU负
1回复

如何提取字符串中特定关键字之前和之后的单词?

我想知道最好的方法是从字符串中获取特定关键字前后的单词吗? 例: 然后,我想Kavrulmuş一下Kavrulmuş和Fasulye 。 我的动态代码段是(用于获取字符串) 有任何想法吗?
2回复

以不区分大小写的方式突出显示字符串中所有匹配的关键字,并在返回的tex中保留大小写

我试图突出显示/标记另一个字符串中所有出现的字符串。 我搜索并找到了这个: http://www.php.net/manual/en/function.str-ireplace.php#87417 但是在那之后的一分钟我发现了错误/问题(也许我也是错的) 但是这是我的代码:
3回复

PHP –用其他不同的字符串替换多个相似的字符串

我有一个字符串,其中包含纯文本“ [var-X]”的各种实例,其中X可以是任何正整数。 我不了解在任何给定脚本中X可以达到多高(如果需要的话,我可以得到它)。 这些[var-X]中的每一个都必须求值并用不同的字符串替换。 不同字符串的值取决于我没有问题解析的外部xml文件。 所以
4回复

PHP Regex替换相似字符串中字符的所有实例

我有一个包含集合字符串的文件。 所有字符串都以相同的字符集开头,并以相同的字符结尾。 我需要找到与特定模式匹配的所有字符串,然后在保存文件之前从其中删除特定字符。 每个字符串如下所示: 其中每个字符串的Data_相同,星号是两位或三位数字的递增整数,每个字符串的冒号和双引号都相同。
1回复

识别并显示字符串中禁止使用的字符

我正在尝试找到在PHP中执行此操作的最佳方法: 我必须分析一个字符串。 禁止使用某些字符(即:逗号,半逗号,空格,百分比...,但可以是我想要的任何字符,不仅是标点符号!) 我想在字符串中打印一行FOR FORACH禁止字符: 经过分析,我想打印: Character
2回复

在Textblock中搜索给定关键字的最短通过时间

我有一个任务,我不确定应该如何解决问题。 我有一个主意,但我不知道这是否是解决它的最佳方法。 这是任务:给定文本块和一些关键字来查找。 我们需要找到一段可以找到所有单词并且使用最少单词的段落。 仅需考虑AZ和az的字母。 这是一个例子: 文字区块: Ein收费者Beis