处理非常大的文本文件和聚类分析

时间:2018-11-07 04:55:16

标签: c# python text cluster-analysis

我正在尝试使用一个非常大的45gb .txt文件,该文件无法使用常规文本编辑器打开。

每行中的数据都用空格隔开,尽管每个参数中也有空格。例如,第一行看起来像这样:

  

剑桥大学CB2 1TQ 0001234567 2011-01-25 12345 11.12345   12.12345 13.12345 14.1234 16.2716)

我实际上想要清除的内容,过滤一些数据,汇总一些单元格/参数,向每行添加一些其他数据并执行聚类分析(可能是使用python或C#,因为我开始捡起来。)

1 个答案:

答案 0 :(得分:0)

将其存储在数据库中听起来像是一个不错的开始,而不是尝试通过文本文件处理所有数据。如果您知道可以现在 过滤数据,那么这也可能使生活更轻松。

with open("file.txt", "r") as file:
    for line in file:
        # Filter
        # If filter passes, add to batch
        # At a batch size n, insert to db and restart batch

现在,您的数据在数据库中,您可以以更高性能的方式对其执行任意SQL查询,获取总计之类的汇总统计信息,并附加值。您可以从中提取样本进行ML操作,也可以使用进行查询的fit generator方法。我已经在Python scikit-learn中使用了集群实现,并且喜欢与它们一起工作,但是我不记得有任何内存不足的实现。 (因为我没有使用过C#库,所以我无法与其交谈。)

Python在stdlib中具有DB API,例如https://docs.python.org/3/library/sqlite3.html

Python的ORM带有https://www.sqlalchemy.org/

Python还具有公共云数据库SDK,例如

  

https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html

  

https://cloud.google.com/python/getting-started/using-cloud-sql