2012-01-05 32 views
3

我们有一个数字,代表许多主题每分钟的帖子数量。我们希望能够找到模式,以便我们可以预测未来帖子的数量。用于基于时间的数据进行模式挖掘的Java库

我们希望模式检测过程是自动的(不需要人为交互),我们一直在想,是否有任何方法可以自动化它。我们一直在阅读关于“模式挖掘”的内容,但是我们一直无法找到任何可以开始使用的Java库。

是否有任何Java库用于模式挖掘基于时间的数据,我们可以使用这些数据来自动执行此模式挖掘过程?提前致谢。

+0

如果是关于日期解析,为什么不使用'SimpleDateFormat'?或者,更好,乔达时间?你能给一个样品吗? – fge 2012-01-05 14:50:30

+0

通过“自动化”我会写代码来做到这一点。数据挖掘通常针对您要挖掘的内容以及数据如何表示。计算机不会像人类那样自动寻找模式,您需要编写代码来确定数据与模型的吻合程度。 – 2012-01-05 14:51:18

回答

0

那么,Java中有一些非常可靠的数据挖掘库。我已经使用WEKA进行分类和关联挖掘(http://www.cs.waikato.ac.nz/ml/weka/)。我也使用Mahout进行集群(http://mahout.apache.org/)。在处理数据方面,你需要事先知道你在做什么。 95%的时间将花在清理坏数据和预处理剩余的格式上,这些框架可以使用这些格式。

你对你的问题的细节有点轻。听起来就像你想要基于数据中某些事件的频率的某种警报系统。如果它完全基于频率(也就是说 - 会随着时间的推移而违背你假定的事件分布),那么你可能想要看一种叫做n-gramming的技巧。尽量避免在这里深奥,但你想使用n-gram,其中n不是固定的长度。这是一种常用于NLP的技术,如果您熟悉最长的常见子字符串问题,那么您应该了解如何做到这一点。

+0

我已经给出了有关该问题的更多细节。我不确定n-gramming能够在这里帮助我们。不过,有没有其他想法可以建议我们? – rreyes1979 2012-01-05 15:22:14

+0

好的,你想要做的是建立一个回归模型。我不是一个真正的回归家伙,但是如果你使用像WEKA这样的框架,他们很容易。实际上,这里有一篇关于它的文章:http://www.ibm.com/developerworks/opensource/library/os-weka1/index.html。基本上从你的角度来看,你想要格式化数据,将它提供给WEKA,坚持你训练的回归模型,然后用这个模型做预测。 – 2012-01-06 00:25:21

-1

您可以使用GATE(用于文本工程的通用架构)文本处理的开放源代码基础结构,您可以使用其IDE(门开发人员)使用一组全面的其他插件构建文本处理组件,或者如果您需要使用它在你的代码中需要将它的jar文件嵌入到你的项目中。 这个工具有一种名为JAPE(Java Annotation Patterns Engine)的语言,它允许你识别文档注释中的正则表达式(你可以使用门分析器注释文档,或者你可以开发你自己的分析器)。

0

您正在寻找做两个非常不同的事情: 1)文本分类(主题) 2)预测未来的主题/体积

1)对于文本分类,任何标准的NLP库是OK- GATE ,OpenNLP,LingPipe等。就我个人而言,我会使用NLTK或者只是写我自己的主题分类器,因为我认为这些大型Java库是笨拙和用户不友好的。更轻松地拥有一些东西。

您可能需要使用带标签的数据对分类器进行训练 - 如果您已标记了数据,那么即使不是,也应该开始标记数据。一如既往最重要的是数据质量 - 您希望看到的数据的培训数据的代表性如何?你的特征有多好(n-gram,word n-gram等)?

2)对于预测,可以使用任意数量的统计模型。就我个人而言,我会选择一个随机模型,但这只是因为我花了太多时间来研究这些模型。

2

你可以检查我的开源数据挖掘框架:http://www.philippe-fournier-viger.com/spmf/(SPMF)

它提供了超过130种算法。它们中的一些被设计用于执行时间相关的数据挖掘任务,例如发现一系列序列中的顺序模式和顺序规则。

我不知道他们中的一些是否适合您的需求。但你可以检查出来。