2010-12-03 49 views
4

假设我有一个口号列表(简短的多词短语),并且人们已经为他们最喜欢的那个投了票,我想评估哪些单词(如果有的话)使一些口号比其他口号更受欢迎。什么是实现这一目标的最佳方式?我的第一个想法是找到口号中的所有独特单词,并将每一个单词作为包含所述单词的所有口号的平均投票数,但我认为频率也应以某种方式发挥作用以下应该是正确的:确定哪些单词使短语流行的算法

  • 如果单词A只出现在获得最多选票的口号中,并且单词B仅出现在获得第二最多的口号中,则单词A更多地是“流行性生成”
  • 但是,如果Word A只出现在排名最高的口号中,而Word B出现在排名第二和第三的口号中,则Word B应该赢,因为它将更多口号推到顶端。
  • 然而,如果单词出现在顶部口号中的Word A在其他口号中应该仍然胜过三次出现的字B,例如,如果它们位于包的中间或下半部分(也就是说,需要在投票中获得投票和频率的平衡)。

我也想排除一般常见的词(如“the”或“of”)。这与关于识别过去曾被问过的趋势词有关的问题有关,但与之不同的是,随着时间的推移并不是一个因素。就文学而言,我很乐意指出这方面的正确方向,但我不确定要寻找什么。这是其他人处理的一类问题吗?

+0

http://metaoptimize.com/qa上的人会对此有所了解。 – Frank 2010-12-04 00:48:53

回答

2

这是一个机器学习问题。您正试图从监督数据中学习模型。为此,您可以运行一个类似Perceptron或SampleRank的简单算法(pdf):

首先定义适用于口号中单词的功能。特征可以跨单词共享,例如“和平” 二字的特点可能是:

  • “和平”,
  • “名词”,
  • “抽象名词”,
  • “短名词”,
  • “开始在“S'的声音 “与对”
  • ” 结尾,
  • ...

的网络连接第一个特点是“和平”是一个独特的特征,只能在“和平”上发射,而其他特征也可以用其他词语发射。

每个功能都有一个权重(越高越好)。所以你有一个特征向量和一个权重向量。这将使您能够为任何口号(仅在口号中的单词上激发的所有加权特征的总和)分配权重(分数)。所有权重都初始化为0.0。

现在你开始训练:

你循环所有的口号对。对于每一对你知道真正的排名(根据你已有的票数)。然后根据特征及其当前权重计算排名。如果根据您当前的特征权重(即根据您当前的模型)的真实排名和排名是相同的,那么您只需转到下一对。如果您的模型分配了错误的排名,则可以更正要素权重:您可以将1.0添加到更好口号(根据人们的投票更好)的要素的权重中,并从火灾要素的权重中减去1.0在糟糕的口号上(它的分数显然太高了,所以你现在降低它)。这些重量更新会影响您的模型分配给下一对的分数,依此类推。

您可以多次运行此循环,直到您的模型获得大部分对(或其他收敛标准)为止。

通常情况下,你不会真的加或减1.0,但eta乘以1.0,其中eta是学习率,可以通过实验设置。通常在训练开始时它会更高,并且在训练期间会逐渐降低,因为您的重量正在朝着正确的方向移动。 (另请参见随机梯度下降。)要开始,您可以将其设置为0.1作为常量。

此程序处理停用词(“the”,“of”,...),因为它们应该同时出现在好的和不好的口号中(如果他们真的不这样做,那么你也会知道)。

训练结束后,您可以根据学习到的特征权重计算每个单词的分数。

0

Bayesian inference怎么样?

+0

我的印象是,贝叶斯推断主要是关于特定的证据,无论是证实还是不证实假设。我的问题在这里并不是特别的“是或不是”,也就是说,这不是“这个词是否受欢迎 - 促进与否?”而是“这些词在多大程度上促进了人气的排名?”你还认为贝叶斯分析适用于这种情况吗? – 2010-12-03 22:41:25

+0

嗯,现在听起来您正在寻找Google使用(或曾用于?)的PageRank之类的内容。它基本上是通过相关性来连接术语的图表。实质上,具有最多连接的术语是相关的。我同意贝叶斯不会给你在这种情况下的条款的相关性。不过,你可以用它来推断你不知道的关系。 – SRM 2010-12-03 23:29:25

0

我想我会用一种算法,做这样的事情:

  1. 省去停止词(常用词)(http://en.wikipedia.org/wiki/Stop_word
  2. 规范和干字(http://en.wikipedia.org/wiki/Stemming
  3. 计算标准化词频和票
  4. 通过票数/频率订单标准化单词
+0

这很接近,我想。停用词的消除有点棘手,因为(在这里我应该更加清楚),它可能不仅仅是我想消除的停用词,而且更可能是这个数据集中没有更频繁出现的词比他们一般做。这只是一种预感,但我怀疑,如果我专注于那些统计上不可能的话,结果会更有趣。也许我可以将此数据集与某个参考语料库进行比较,否则请按照您的方法进行操作? – 2010-12-03 22:44:52

相关问题