准备一个巨大的文本文件的相关矩阵

时间:2012-04-29 19:26:18

标签: string split out-of-memory text-files large-data

我有两个文本文件目录。一个包含User Description,另一个包含User Messages字段DATE<\t>NAME<\t>DESCRIPTIONDATE<\t>NAME<\t>MESSAGE。我的主要目标是获得这两个文件之间的配置文件和消息字之间的相关矩阵。

一个例子是:

                              *message words*
                          cat     dog    mouse ....
*profile words*    cat    100     20      50
                   dog     2      30      22  ...
                   ...
                   ...

这里,猫与猫之间的数字100意味着“单词”cat“在任何用户在其个人资料描述中用”cat“写的所有消息中出现了100次”。

我尝试使用Java解决这个问题,但是由于文本文件的大小,甚至更简单的程序版本也没有运行。这是我几天前发布的problemawk工具确实解决了我之前的问题。

我的问题是,有没有有效的方法来解决这类问题?我没有语言限制。另外,我对diff,cat等bash实用程序有一些了解。

仅供参考,我的User Messages有1.7G的多个文本文件。 User Description大约400M也有多个文件。我可以给Java的最大内存是-Xmx1800m。

另外,如果这不是一个有效的问题,请告诉我。我会删除帖子。

谢谢!

1 个答案:

答案 0 :(得分:0)

试一下Lucene库,它源自java,但也移植到C#和C ++(至少)。

你所做的就是所谓的“索引” - 你创建文档,(例如它可以与简单文件相关联)。每个文档都可以包含可选字段 - 文件出现的目录。之后,很容易计算特定单词的数量或甚至更多的单词形式(如猫与猫)