我将数据分成测试和训练集,错误是 'Found input variables with inconsistent number of samples: [1000, 23486]'

i am splitting the data into testing and training set, the error is 'Found input variables with inconsistent number of samples: [1000, 23486]'

我的项目是使用 nlp 将评论分类为好或坏。我已经导入了数据并使用词袋模型完成了标记化、矢量化。现在我必须将数据溢出到测试和训练集中,我收到一条错误消息 "Found input variables with inconsistent numbers of samples: [1000, 23486]"

我的文件有一个名为评论文本的列,我想将评论分类为好或坏。我附上了我用于这个项目的 tsv 文件。请帮助我纠正错误以及我可以做的任何方法更改。我也在这里附上了代码。

我的数据文件here

import numpy as np
import pandas as pd
import nltk
import matplotlib

dataset = pd.read_csv("C:/Users/a/Downloads/data.tsv", delimiter = "\t", quoting = 1)
dataset.head()

import re
import nltk
from nltk.corpus import stopwords
from nltk.stem.porter import PorterStemmer
corpus = []
for i in range(0, 1000):
  review = re.sub('[^a-zA-Z]', ' ', str(dataset['Review Text'][i]))
  review = review.lower()
  review = review.split()
  ps = PorterStemmer()
  review = [ps.stem(word) for word in review if not word in 
  set(stopwords.words('english'))]
  review = ' '.join(review)
  corpus.append(review)

  from sklearn.feature_extraction.text import CountVectorizer
  cv = CountVectorizer(max_features = 1500)
  X = cv.fit_transform(corpus).toarray()
  y = df.iloc[:, 6].values

  from sklearn.model_selection import train_test_split
  X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 0)

好的,问题是 Xy 必须具有相同的维度。

如果您只想使用 1000 条评论,您可以使用相同的 for 循环,然后在选择 y 时,您只需执行以下操作:

y = dataset.iloc[:1000, 6].values

否则,如果您想使用整个数据集,则必须编辑循环的第一部分。