PHP和RSS - 根据描述创建“得分”

时间:2011-11-17 19:06:57

标签: php parsing rss

希望这是有道理的。我有一个php脚本,magpierss,解析RSS提要并将数据插入MySql,它工作正常。我将RSS项目的各个部分变为变量以使它们更易于使用,因此获取rss的各个部分不是问题。

但是,我的目标是能够过滤故事并仅导入某些故事。我想尽可能地自动化这个,并允许误报/否定,因为它们将在之后手动验证。

我希望能够为每个单词设置一个关键字列表和“权重”。因此,当解析新的RSS项时,脚本将根据描述字段中单词的权重创建“得分”。

例如:

stackoverflow = 10
very = 7
helpful = 8

所以“stackoverflow非常有帮助”将得到25分

并且“stackoverflow总是非常有用”仍然会得到25分,因为'是'和'总是'不是分配了权重的关键字。

由于没有关键字,

和“随机随机”得分为0。

然后我可以使用关键字权重和分数来计算过滤rss Feed的最佳设置。

我大多数都可以搞清楚。我只需要知道一种解析项目描述的方法,并为指定的关键字指定权重以创建“得分”。

1 个答案:

答案 0 :(得分:1)

PHP附带了一些有用的功能,例如strpos()和preg_match。前者将搜索特定字符串,preg_match将搜索正则表达式。您应该创建关键字及其权重的数组,然后运行每个关键字并检查描述是否包含该值。如果是这样,你增加一个重量计数器。这是一个简单的例子:

$keywords = array(
   'stackoverflow' => 10,
   'very' => 7,
   'helpful' => 8
);
$description = $feed->getDescription(); // or wherever
$total_weight = 0;
foreach ($keywords as $keyword => $weight) {
  if (strpos($keyword, $description))
      $total_weight += $weight;
}
return $total_weight; // total weight of this item

无论如何都是这样的。还有其他方法可以做到这一点,但这应该让你开始。

祝你好运。