我想知道有效的算法/数据结构来识别流数据中的以下信息。
考虑像 twitter 这样的实时流数据。我主要对以下查询感兴趣,而不是存储实际数据。
我需要我的查询在实际数据上运行,而不是在任何重复数据上运行。
由于我对存储完整数据不感兴趣,因此我很难识别重复的帖子。但是,我可以散列所有帖子并检查它们。但我也想找出几乎重复的帖子。我怎样才能做到这一点。
确定用户讨论的前 k 个主题。
我想确定用户讨论的热门话题。我不想要 twitter 显示的高频词。相反,我想给出一些最常用词的高级主题名称。
我希望我的系统是实时的。我的意思是,我的系统应该能够处理任何数量的流量。
我可以想到 map reduce 方法,但我不确定如何处理同步问题。例如,重复的帖子可以到达不同的节点,并且它们都可以将它们存储在索引中。
在典型的新闻源中,将删除数据中的所有停用词。在我的系统中,我想通过识别各种主题中最常见的词来更新我的停用词列表。
什么是有效的算法/数据结构来实现这一点。
我想在一段时间内存储主题以检索数据中有趣的模式。比如说,星期五晚上每个人都想去看电影。存储这些数据的有效方法是什么。
我正在考虑将它存储在 hadoop 分布式文件系统中,但是随着时间的推移,这些索引变得如此之大,以至于 I/O 将成为我的主要瓶颈。
考虑来自世界各地推文的多语言数据。如何识别跨地理区域正在讨论的类似主题?
这里有2个问题。一是识别正在使用的语言。它可以根据发推文的人来识别。但是这些信息可能会影响用户的隐私。其他想法,可以通过训练算法运行它。目前为此遵循的最佳方法是什么。其他问题实际上是在字典中查找单词并将其与常见的中间语言相关联,例如说英语。如何处理词义消歧,就像在不同比赛中使用同一个词一样。
识别单词边界
一种可能性是使用某种训练算法。但是最好的方法是什么。这在某种程度上类似于词义消歧,因为您将能够根据实际句子识别词边界。
我正在考虑开发一个原型并评估系统,而不是具体的实现。我认为不可能废弃实时推特数据。我认为这种方法可以在一些在线免费提供的数据上进行测试。任何想法,我可以在哪里获得这些数据。
感谢您的反馈。
谢谢你的时间。
——巴拉