gpt4 book ai didi

php - PHP中的关键字分析

转载 作者:IT王子 更新时间:2023-10-28 23:46:33 25 4
gpt4 key购买 nike

对于我正在构建的 Web 应用程序,我需要分析网站,检索并排列最重要的关键字并显示这些关键字。

获取所有单词、它们的密度并显示它们相对简单,但这会产生非常倾斜的结果(例如,停用词排名非常高)。

基本上,我的问题是:如何在 PHP 中创建一个关键字分析工具,以生成按单词重要性正确排序的列表?

最佳答案

最近,我自己一直在做这件事,我会尽量解释我做了什么。

步骤

  1. 过滤文本
  2. 分词
  3. 删除 2 个字符的单词和停用词
  4. 确定词频+密度
  5. 确定单词的突出度
  6. 确定单词容器
    1. 标题
    2. 元描述
    3. 网址
    4. 标题
    5. 元关键字
  7. 计算关键字值

1。过滤文字

您需要做的第一件事是过滤确保编码正确,因此转换为UTF-8:

iconv ($encoding, "utf-8", $file); // where $encoding is the current encoding

之后,您需要去除所有 html 标签、标点、符号和数字。在 Google 上查找有关如何执行此操作的功能!

2。拆分成单词

$words = mb_split( ' +', $text );

3。删除 2 个字符的单词和停用词

由 1 个或 2 个字符组成的任何单词都没有任何意义,因此我们将它们全部删除。

要删除停用词,我们首先需要检测语言。有几种方法可以做到这一点: - 检查 Content-Language HTTP header - 检查 lang=""或 xml:lang=""属性 - 检查语言和内容语言元数据标签如果这些都没有设置,您可以使用像 AlchemyAPI 这样的外部 API。 .

您需要一份每种语言的停用词列表,可以在网络上轻松找到。我一直在用这个:http://www.ranks.nl/resources/stopwords.html

4。确定词频+密度

要计算每个单词的出现次数,请使用:

$uniqueWords = array_unique ($keywords); // $keywords is the $words array after being filtered as mentioned in step 3
$uniqueWordCounts = array_count_values ( $words );

现在循环遍历 $uniqueWords 数组并计算每个单词的密度,如下所示:

$density = $frequency / count ($words) * 100;

5。确定单词突出度

单词突出度由单词在文本中的位置定义。例如,第一句中的第二个词可能比第 83 句中的第 6 个词更重要。

要计算它,请在上一步的同一循环中添加以下代码:'

$keys = array_keys ($words, $word); // $word is the word we're currently at in the loop
$positionSum = array_sum ($keys) + count ($keys);
$prominence = (count ($words) - (($positionSum - 1) / count ($keys))) * (100 / count ($words));

6。确定单词容器

一个非常重要的部分是确定一个词的位置 - 在标题、描述等中。

首先,您需要使用 DOMDocument 或 PHPQuery 之类的东西获取标题、所有元数据标签和所有标题(不要尝试使用正则表达式!)然后你需要在同一个循环中检查这些是否包含这些单词。

7。计算关键字值(value)

最后一步是计算关键字值。为此,您需要权衡每个因素 - 密度、突出度和容器。例如:

$value = (double) ((1 + $density) * ($prominence / 10)) * (1 + (0.5 * count ($containers)));

这个计算远非完美,但它应该会给你不错的结果。

结论

我没有提到我在工具中使用的每一个细节,但我希望它可以为关键字分析提供一个很好的视角。

注意是的,这是受今天关于回答您自己问题的博文的启发!

关于php - PHP中的关键字分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10721836/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com