我目前正在研究长尾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;
}
为了包含一些代码,这里有另一个原始改编,它返回给定长度和出现次数的多词关键字,而不是去掉所有常见的单词,它只过滤关键字开头和结尾的单词。它仍然会返回一些废话,但这确实是不可避免的。
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有两部