查找搜索列表“最佳主题”的算法——python

查找搜索列表“最佳主题”的算法——python,python,nlp,nltk,sentence,Python,Nlp,Nltk,Sentence,我正试图做一个程序,自定义广告的基础上,您的搜索历史 因此,我需要一个算法/脚本,根据搜索中单词的频率和搜索所用的时间,找到适合特定人的最佳广告关键字 比如说, 如果我的搜索列表为: 如何找到句子的主词-2018-03-31 15:16:04.752350 句子的主词-python-2018-03-28 15:16:04.752350 狗的食物-2016-03-28 15:16:04.752350 狗和它们的食物-2016-03-25 15:16:04.752350 狗粮-2016-03-23

我正试图做一个程序,自定义广告的基础上,您的搜索历史

因此,我需要一个算法/脚本,根据搜索中单词的频率和搜索所用的时间,找到适合特定人的最佳广告关键字

比如说,

如果我的搜索列表为:

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

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

狗的食物-2016-03-28 15:16:04.752350

狗和它们的食物-2016-03-25 15:16:04.752350 狗粮-2016-03-23 15:16:04.752350 因此,即使狗、食物被搜索了3次,而句子的主词只有2个,但由于用户搜索狗的食物已经过了很长时间,所以选择的主题是-句子的主词

到目前为止,我已经做了一些算法,可以找到句子的主要主题,而不需要对经过的时间进行排序。但是,正如我所说的,我需要一个基于时间的算法。我考虑过一些简单的想法,比如最近用常数搜索“good”的分数,但我想要更好的算法

非常感谢


Omer

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

例如,如果一个单词在上个月出现,则它将被视为 1.

如果时间超过一个月,但快于一年,则将其计算在内 0.5

如果超过一年,则将其计算为0.1

这是一种简化,但是你可以用这个想法来强调最近的单词

稍微提高一点,就可以使用正态分布。下面是一个绘制正态分布的好例子:


在您的情况下,您不需要将其绘制在图形上,而是希望将y轴值乘以频率

请加上你到目前为止所做的,以及你在这方面所经历的困难。完成了,我希望它很好:谢谢,但我想要更复杂的算法,它会带来更好的结果。由大公司或一组开发人员检查和开发的东西。不管怎样,我投你的票:我很想看看你是否发现了什么,我不认为大公司太渴望分享这些类型的算法!通过在正态分布上建模,你可以使我的例子更加复杂,在正态分布中,你可以根据你期望用户拥有的平均注意力跨度选择标准偏差,你能解释更多吗?我做过统计学课程,所以我知道什么是正态分布和其他统计概念。有意识地,你可以根据正态分布自动生成这些数字,而不是像我选择1,0.5,0.1以上的随机数。还有一件事,我如何生成标准偏差,我真的不知道哪个数字可以调整