首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对imdb电影评论数据进行情感分析时出现问题

对imdb电影评论数据进行情感分析时出现问题
EN

Stack Overflow用户
提问于 2019-02-01 18:17:01
回答 1查看 157关注 0票数 0

我在对imdb影评数据集进行情感分析时,在使用LinearSVC()进行预测时得到了值错误。

# STOP IS FOR STOPWORDS

代码语言:javascript
复制
trainset,testset=dataloader(r'C:\Users\kkk\Desktop\nlp\aclImdb_v1\aclImdb')

trainset["text"]=trainset["text"].apply(lambda x:' '.join([word for word in x.split() if word not in (stop)] ))
trainset.iloc[1]["text"]
testset["text"]=testset["text"].apply(lambda x:' '.join([word for word in x.split() if word not in (stop)] ))
trainset["text"]=trainset["text"].apply(lambda x:x.lower())
replacebyspace=re.compile('[/(){}\[\]\|@,;]')
badwords=re.compile('[^0-9a-z #+_]')     
testset["text"]=testset["text"].apply(lambda x:re.sub(replacebyspace," ",x))
trainset["text"]=trainset["text"].apply(lambda x:re.sub(replacebyspace," ",x))
from sklearn.svm import LinearSVC
from sklearn.metrics import accuracy_score
from sklearn.feature_extraction.text import TfidfVectorizer
nltk.download('wordnet')
stemmer = nltk.stem.WordNetLemmatizer()
tokenizer = nltk.tokenize.TreebankWordTokenizer()
vectorizer = TfidfVectorizer(ngram_range=(1, 2))
trainfeatures=vectorizer.fit_transform(trainset["text"])
testfeatures=vectorizer.fit_transform(testset["text"])
model=LinearSVC()
model.fit(trainfeatures,trainset["sentiment"])
pred=model.predict(testfeatures)

我希望模型能正常工作,但得到了错误

代码语言:javascript
复制
Traceback (most recent call last):

  File "<ipython-input-65-e537b07a6a6a>", line 3, in <module>
    pred=model.predict(testfeatures)

  File "C:\Users\kkk\Anaconda3\lib\site-packages\sklearn\linear_model\base.py", line 281, in predict
    scores = self.decision_function(X)

  File "C:\Users\kk\Anaconda3\lib\site-packages\sklearn\linear_model\base.py", line 262, in decision_function
    % (X.shape[1], n_features))

ValueError: X has 1860172 features per sample; expecting 1906325
EN

回答 1

Stack Overflow用户

发布于 2019-02-02 22:00:15

替换这个

testfeatures=vectorizer.fit_transform(testset["text"])

使用

代码语言:javascript
复制
testfeatures=vectorizer.transform(testset["text"])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54477362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档