查找搜索列表 "best topic" 的算法 - python

algorithm to find the "best topic" of searching list - python

我正在尝试制作一个程序,根据您的搜索历史定制广告。

因此,我需要一个算法/脚本来找到广告的最佳关键词,根据搜索中单词的频率和搜索经过的时间,为特定的人调整。

例如,

如果我的搜索列表是:

  1. 如何找到句子的主词 - 2018-03-31 15:16:04.752350

  2. 句子主词 - python - 2018-03-28 15:16:04.752350

  3. 狗粮 - 2016-03-28 15:16:04.752350

  4. 狗和它们的食物 - 2016-03-25 15:16:04.752350
  5. 狗粮-2016-03-2315:16:04.752350

所以即使 dog, food 出现了 3 次并且句子的主词只有 2 个,由于自从用户搜索 dog's food 以来已经过去了一段时间,因此会选择的主题是 - main一句话一句话。

到目前为止,我已经做了一些算法来找到句子的主题,而不考虑经过的时间。但是,正如我所说,我需要一种基于时间的算法。我坚持简单的想法,比如乘法,最近用常数搜索“好”的分数,但我想要更好的算法。

非常感谢,

奥马尔

您可以计算每个单词的频率,对较旧的单词进行某种惩罚。

  • 例如,如果某个词出现在上个月,则它被计为 “1”。

  • 如果超过一个月但不到一年,算作 "0.5"

  • 如果超过一年,算“0.1”

这是一种简化,但您可以使用此想法更加强调最近的单词。

可以使用 "normal distribution" 稍作改进。这是一个如何绘制正态分布的好例子:python pylab plot normal distribution

在您的例子中,您不想将其绘制在图表上,而是希望将 y 轴值乘以频率。