泡菜数据被截断

pickle data was truncated

我创建了一个语料库文件,然后存储在一个 pickle 文件中。 我的消息文件是不同新闻文章数据框的集合。

from nltk.corpus import stopwords
from nltk.stem.porter import PorterStemmer
import re
ps = PorterStemmer()
corpus = []
for i in range(0, len(messages)):
    review = re.sub('[^a-zA-Z]', ' ', messages['text'][i])
    review = review.lower()
    review = review.split()

    review = [ps.stem(word) for word in review if not word in stopwords.words('english')]
    review = ' '.join(review)
    #print(i)
    corpus.append(review)

import pickle
with open('corpus.pkl', 'wb') as f:
   pickle.dump(corpus, f)

相同的代码我 运行 在我的笔记本电脑(jupyter 笔记本)和 google colab 上。

corpus.pkl => Google colab,下载代码如下:

from google.colab import files
files.download('corpus.pkl')

corpus1.pkl => 从 jupyter notebook 代码保存。

现在当我运行这个代码时:

import pickle
with open('corpus.pkl', 'rb') as f:   # google colab
    corpus = pickle.load(f)

我收到以下错误:

UnpicklingError: pickle data was truncated

但这很好用:

import pickle
with open('corpus1.pkl', 'rb') as f:  # jupyter notebook saved
    corpus = pickle.load(f)

两者之间的唯一区别是 corpus1.pkl 是 运行 并通过 Jupyter notebook(在本地)保存,而 corpus.pkl 保存在 google 协作并下载。

谁能告诉我为什么会这样?

供参考..

corpus.pkl  => 36 MB
corpus1.pkl => 50.5 MB

我只会使用本地机器创建的 pickle 文件,它工作正常