我正在运行一个大型数据集并比较此数据集中字符串的相似性。如果两个(或更多)字符串足够相似,它们将在字典中的键值对下组合在一起。最终,我最终将会:
{1 : [string1, string2, ...], 2: [string3, string4, ...] ...}
因此,所有类似的字符串将与数字键分组成对。但是,由于数据集太大而且运行时间很长,因此我使用Pickle保存了所有内容,将处理后的字典转储为txt格式的文件。
但是,当我尝试从Pickle文件中检索数据时,字典会失真:只有一个键值对,并且所有字符串都被分组到同一个组中:
{1: [all the strings]}
起初我以为我的代码有一些东西,但我运行了一小部分数据集并且它有效。我使用标准的pickle.dump函数保存了我的数据。我想知道Pickle是否有内存或大小限制,以及这是否是潜在的问题?
编辑:
我很想提供一个最小的例子,但我用来比较字符串的代码有点复杂,这是我使用的Pickle代码:
with open("product30.txt", "wb") as f:
pickle.dump(mydict, f)
这是我用来检索Pickled数据的代码:
retrieveddict = pickle.load(open( "product30.txt", "rb"))
我确定比较代码是正确的。我运行了一些代码的随机部分并且它工作,我的数据集中的数据以相同的格式编写:基本上是5,000个物理地址的列表。