我正在尝试做的是找到一种算法,通过比较他们发送的消息与他们的同伴发送的消息,我可以实现向人们生成“智能”建议。
例如,A 向 B 发送一条谈论 Obj1 的消息。如果 C 向 D 发送有关 Obj1 的消息,它会注意到他们在谈论相同的事情,并可能建议 A 与 C 交谈。
我已经实现了收集统计数据以捕获人们共同提及但不知道使用哪种算法来分析它。
有什么建议么?(我希望这足够有意义)
我正在尝试做的是找到一种算法,通过比较他们发送的消息与他们的同伴发送的消息,我可以实现向人们生成“智能”建议。
例如,A 向 B 发送一条谈论 Obj1 的消息。如果 C 向 D 发送有关 Obj1 的消息,它会注意到他们在谈论相同的事情,并可能建议 A 与 C 交谈。
我已经实现了收集统计数据以捕获人们共同提及但不知道使用哪种算法来分析它。
有什么建议么?(我希望这足够有意义)
这与 Twitter 正在解决的问题完全相同。如果你破解了这个,你最终可能会在那里找到一份工作;)
严肃地说,可以使用一些粗略的措施(即基于启发式)来做这样的事情,但它有很大的错误百分比。正如德尔南在评论中所说。
NLP 是一个肯定的选择。请注意,使用 NLP 也有一些错误百分比,但它比您使用的任何启发式方法都准确得多。如果您使用的是 python,我建议您使用这个工具包,我不时使用它 - NLP。
对于其他语言,我相信有一些软件包可以在这方面为您提供帮助。
UPDATE1:如果你有办法让用户标记他们的消息(就像 stackoverflow 那样),你可以解决这个问题,除非是 NLP。然后你可以简单地取两条消息的标签的交集,看看是否有任何共同点,并为共同项目推荐一些最重要的项目。
但是还有其他问题您必须处理 - 使标签成为强制性的,另外您需要确保用户实际上输入了正确的标签等......但这极大地简化了您的问题。
UPDATE2:随着 Q 的更新 - 因为您只有一些您感兴趣的特定关键字/短语。这种简化了它。您需要获取每条信息,将其拆分为单词,然后对每个单词进行词干处理。词干提取后,将此集合与您拥有的关键字集相交。你会得到一个集合(S1)。对第二条消息做同样的事情,你会得到一个集合(S2)。与 S1、S2 相交。如果您发现某些东西很常见,宾果游戏!message1,message2之间有一些主题是共同的。否则什么都没有。