当前位置: 首页 > 知识库问答 >
问题:

使用php为SEO提取关键字对

童冠玉
2023-03-14

我目前正在研究长尾SEO的一些新想法。我有一个网站,人们可以创建自己的博客,这已经带来了相当不错的长尾流量。我已经在文章的标题标签中显示文章标题。

但是,标题通常与内容中的关键字不匹配,我有兴趣在标题中添加一些 php 实际确定的最好的关键字。

我试着用我制作的脚本来计算页面上最常见的单词是什么。这还可以,但问题是它会出现一些无用的单词。

我想到了一个有用的方法,那就是编写一个php脚本,提取频繁出现的单词对(或3个单词的集合),然后将它们放入一个按出现频率排序的数组中。

我的问题是:如何以更动态的方式解析文本,以寻找重复出现的成对或三元组单词。我该怎么做?

function extractCommonWords($string, $keywords){
  $stopWords = array('i','a','about','an','and','are','as','at','be','by','com','de','en','for','from','how','in','is','it','la','of','on','or','that','the','this','to','was','what','when','where','who','will','with','und','the','www');

  $string = preg_replace('/\s\s+/i', '', $string); // replace whitespace
  $string = trim($string); // trim the string
  $string = preg_replace('/[^a-zA-Z0-9 -]/', '', $string); // only take alphanumerical characters, but keep the spaces and dashes too…
  $string = strtolower($string); // make it lowercase

  preg_match_all('/\b.*?\b/i', $string, $matchWords);
  $matchWords = $matchWords[0];

  foreach ( $matchWords as $key=>$item ) {
      if ( $item == '' || in_array(strtolower($item), $stopWords) || strlen($item) <= 3 ) {
          unset($matchWords[$key]);
      }
  }   
  $wordCountArr = array();
  if ( is_array($matchWords) ) {
      foreach ( $matchWords as $key => $val ) {
          $val = strtolower($val);
          if ( isset($wordCountArr[$val]) ) {
              $wordCountArr[$val]++;
          } else {
              $wordCountArr[$val] = 1;
          }
      }
  }
  arsort($wordCountArr);
  $wordCountArr = array_slice($wordCountArr, 0, $keywords);
  return $wordCountArr;
}

共有1个答案

夏意蕴
2023-03-14

为了包含一些代码,这里有另一个原始改编,它返回给定长度和出现次数的多词关键字,而不是去掉所有常见的单词,它只过滤关键字开头和结尾的单词。它仍然会返回一些废话,但这确实是不可避免的。

function getLongTailKeywords($str, $len = 3, $min = 2){ $keywords = array();
  $common = array('i','a','about','an','and','are','as','at','be','by','com','de','en','for','from','how','in','is','it','la','of','on','or','that','the','this','to','was','what','when','where','who','will','with','und','the','www');
  $str = preg_replace('/[^a-z0-9\s-]+/', '', strtolower(strip_tags($str)));
  $str = preg_split('/\s+-\s+|\s+/', $str, -1, PREG_SPLIT_NO_EMPTY);
  while(0<$len--) for($i=0;$i<count($str)-$len;$i++){ 
     $word = array_slice($str, $i, $len+1);
    if(in_array($word[0], $common)||in_array(end($word), $common)) continue;
    $word = implode(' ', $word);
    if(!isset($keywords[$len][$word])) $keywords[$len][$word] = 0;
    $keywords[$len][$word]++;
  }
  $return = array();
  foreach($keywords as &$keyword){
    $keyword = array_filter($keyword, function($v) use($min){ return !!($v>$min); });
    arsort($keyword);
    $return = array_merge($return, $keyword);
  }
  return $return;
}

在随机的BBC新闻文章上运行代码*

忽略普通单词、语法和标点符号的问题是,它们在句子中仍然有意义。如果你去掉它们,最好的情况是改变意思,最坏的情况是产生难以理解的短语。甚至提取“关键词”的想法本身也是有缺陷的,因为单词可能有不同的含义——当你把它们从句子中删除时,你就脱离了上下文。

这不是我的领域,但对自然语言有复杂的研究,没有简单的解决方案——尽管一般理论是这样的:计算机无法破译单个文本的含义,它必须依赖于交叉引用相关材料的语义标记语料库(这是一个巨大的开销)。

 类似资料:
  • 本文向大家介绍php实现屏蔽掉黑帽SEO的搜索关键字,包括了php实现屏蔽掉黑帽SEO的搜索关键字的使用技巧和注意事项,需要的朋友参考一下 相信很多站长遇到过这种情况:网站内的搜索功能被不良分子利用,通过在站内搜索框中不断搜索敏感关键词,产生一大批TITLE上带有敏感关键词的垃圾搜索结果页(如下图)。由于Baiduspider对每个站点的抓取额是有限定的,所以这些垃圾搜索结果页被百度收录,会导致其

  • 问题内容: 我有一个充满关键字的索引,根据这些关键字,我想从输入文本中提取关键字。 以下是示例关键字索引。请注意,关键字也可以是多个单词,或者基本上是唯一的标签。 现在,如果输入文本为 “我在Facebook上看到了借贷俱乐部的新闻,您的故事和法定人数” ,则搜索结果应为 [“借贷俱乐部”,“ facebook”,“您的故事”,“法定人数”] 。此外,搜索应 区分大小写 问题答案: 只有一种真正的

  • 问题内容: 是一样的“和”,是一样的PHP“或”? 我已经进行了一些测试,看来它们的行为相同。有什么区别吗? 如果不是,是否还有其他具有单词等效功能的PHP标志,您认为它使代码更易于阅读吗? 问题答案: 并且具有 更高的 优先级比和。更准确地说,它的优先级比赋值运算符()的优先级更高,而和则更低。

  • 本文向大家介绍php自动获取关键字的方法,包括了php自动获取关键字的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php自动获取关键字的方法。分享给大家供大家参考。 具体实现方法如下: 希望本文所述对大家的php程序设计有所帮助。

  • 我想使用PHP从JSON格式的文件中提取键值对输出,并将其放入html表中 正如我们在那篇文章中所讨论的,将问题分开,以避免同一个问题变得杂乱无章。

  • 问题内容: 我的数据库中有三个表: 这些表中的每个表都有两个字段,分别称为“内容”和“标题”。我希望能够在我的sql语句中使用“赞”来查看“ messages.content”,“ messages.title”,“ topics.content”,“ topics.title”,“ comments.content”和“ comments”。标题”使用关键字。 到目前为止,我的查询仅能从一张表中

  • 本文向大家介绍使用MySQL EXPLAIN关键字获取信息?,包括了使用MySQL EXPLAIN关键字获取信息?的使用技巧和注意事项,需要的朋友参考一下 让我们首先创建一个表- 这是在列上创建索引的查询- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出- 以下是使用EXPLAIN的查询- 这将产生以下输出-

  • 本文向大家介绍python数据分析:关键字提取方式,包括了python数据分析:关键字提取方式的使用技巧和注意事项,需要的朋友参考一下 TF-IDF TF-IDF(Term Frequencey-Inverse Document Frequency)指词频-逆文档频率,它属于数值统计的范畴。使用TF-IDF,我们能够学习一个词对于数据集中的一个文档的重要性。 TF-IDF的概念 TF-IDF有两部