python中SequenceMatcher的内存错误

时间:2016-08-02 06:24:15

标签: python-2.7 difflib

我有一个包含单词列表的大文件,其中一些不完全正确。 Ex - (用于保湿的保湿剂,用于保湿剂的保湿剂,用于保湿剂的保湿剂等)。我在python中使用SequenceMatcher来区分这些单词并让我得到正确的单词。这是我的代码。

for pair in list(itertools.combinations(index_list,2)):
    s1 = stop_tag.term[pair[0]]
    s2 = stop_tag.term[pair[1]]
    m = SequenceMatcher(None, s1, s2)       #Similarity
    if m.ratio() > 0.90:
        pair_list.append(pair)  

stop_tag是数据框,term是列的名称。 问题是数据帧非常大,当我运行它时,python会抛出这样的错误:

Traceback (most recent call last):
  File "C:/Users/admin/Pycharm/term_freq_v2.py", line 58, in <module>
    for i in list(itertools.combinations(index_list,2)):
MemoryError

是因为difflib无法处理大量数据吗?因为我在这里阅读了一些帖子,这些帖子使用的数据集比我的大。 有没有解决这个问题? 我可以使用任何其他库而不是difflib吗? 我对python很新,所以不确定这是什么。任何帮助将不胜感激。

0 个答案:

没有答案