泡菜数据被截断
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 文件,它工作正常
我创建了一个语料库文件,然后存储在一个 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 文件,它工作正常