今天想学LSTM的情感分类,结果碰到了一系列问题,耽误了很多时间。特此记录!
lesson53-情感分类实战
B站视频
之前我们调用Field,TabularDataset,Iterator,BucketIterator是通过torchtext.data
import torch
import torchtext
from torchtext.data import Field,TabularDataset,Iterator,BucketIterator
在torchtext0.9环境下,会报AttributeError: module ‘torchtext.data’ has no attribute ‘Field’
import torch
import torchtext
from torchtext.legacy.data import Field,TabularDataset,Iterator,BucketIterator
因为这个项目是2020年,所以我把torchtext的版本往后退了。
pip uninstall torchtext
pip install torchtext==0.6.0
需要下载en_core_web_sm-3.0.0.tar.gz
在指定虚拟环境下执行命令:
pip install 存放位置/en_core_web_sm-3.0.0.tar.gz
同时需要下载spacy
pip install spacy==3.0.0
注意:spacy的版本要与en_core_web_sm版本要相同!!!spacy的版本要与en_core_web_sm版本要相同!!!spacy的版本要与en_core_web_sm版本要相同!!!重要的抒情说三遍!!!
import torch
from torch import nn, optim
from torchtext import data, datasets
TEXT = data.Field(tokenize='spacy',tokenizer_language='en_core_web_sm')
LABEL = data.LabelField(dtype=torch.float)
train_data, test_data = datasets.IMDB.splits(TEXT, LABEL)
print('Number of training examples:', len(train_data))
print('Number of testing examples:', len(test_data))
虽然没报错了,但是数据集没下载下载,加载数据集为空,如下图:
这里的最后一行代码一般会自动下载imdb数据集,但是常常速度很慢很慢,而且如果没下载完成就退出的话,再运行就不会自动下载了。这里我发现下载的数据集会在project里面的.data\imdb\文件夹下。
解决方法是去
aclImdb_v1.tar.gz下载包,用浏览器下会稍微快点,主要是不会丢失连接。下载完成以后,把压缩包放到.data\imdb\文件夹下并且解压。之后再运行以上代码就不会报错了。