我将数据分成测试和训练集,错误是 '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)
好的,问题是 X
和 y
必须具有相同的维度。
如果您只想使用 1000 条评论,您可以使用相同的 for
循环,然后在选择 y
时,您只需执行以下操作:
y = dataset.iloc[:1000, 6].values
否则,如果您想使用整个数据集,则必须编辑循环的第一部分。
我的项目是使用 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)
好的,问题是 X
和 y
必须具有相同的维度。
如果您只想使用 1000 条评论,您可以使用相同的 for
循环,然后在选择 y
时,您只需执行以下操作:
y = dataset.iloc[:1000, 6].values
否则,如果您想使用整个数据集,则必须编辑循环的第一部分。