【发布时间】:2019-01-13 00:30:01
【问题描述】:
我正在做一个关于亚马逊评论的练习,下面是代码。 基本上我无法将列(熊猫数组)添加到应用 BoW 后得到的 CSR 矩阵。 即使两个矩阵中的行数匹配,我也无法通过。
import sqlite3
import pandas as pd
import numpy as np
import nltk
import string
import matplotlib.pyplot as plt
import seaborn as sns
import scipy
from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.metrics import confusion_matrix
from sklearn import metrics
from sklearn.metrics import roc_curve, auc
from nltk.stem.porter import PorterStemmer
from sklearn.manifold import TSNE
#Create Connection to sqlite3
con = sqlite3.connect('C:/Users/609316120/Desktop/Python/Amazon_Review_Exercise/database/database.sqlite')
filtered_data = pd.read_sql_query("""select * from Reviews where Score != 3""", con)
def partition(x):
if x < 3:
return 'negative'
return 'positive'
actualScore = filtered_data['Score']
actualScore.head()
positiveNegative = actualScore.map(partition)
positiveNegative.head(10)
filtered_data['Score'] = positiveNegative
filtered_data.head(1)
filtered_data.shape
display = pd.read_sql_query("""select * from Reviews where Score !=3 and Userid="AR5J8UI46CURR" ORDER BY PRODUCTID""", con)
sorted_data = filtered_data.sort_values('ProductId', axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last')
final=sorted_data.drop_duplicates(subset={"UserId","ProfileName","Time","Text"}, keep='first', inplace=False)
final.shape
display = pd.read_sql_query(""" select * from reviews where score != 3 and id=44737 or id = 64422 order by productid""", con)
final=final[final.HelpfulnessNumerator<=final.HelpfulnessDenominator]
final['Score'].value_counts()
count_vect = CountVectorizer()
final_counts = count_vect.fit_transform(final['Text'].values)
final_counts.shape
type(final_counts)
positive_negative = final['Score']
#Below is giving error
final_counts = hstack((final_counts,positive_negative))
【问题讨论】:
-
它给出了什么错误?
-
我错过了一些东西,所以出错了。但是现在的问题是在向 csr_matrix 添加一列之后,我的最终形状是 (364172,) 我期待 (364171, 115282) 。下面是上面代码的扩展 >>> final_counts.shape (364171, 115281) >>> type(final_counts)
>>> positive_negative.shape (364171,) >>> type(positive_negative) >>> final_counts = np.hstack((final_counts,positive_negative)) >>> final_counts.shape (364172,) -
np.hstack???这不是与稀疏矩阵一起使用的正确hstack!。它将稀疏矩阵包装在形状为 (1,) 的对象 dtype 数组中。
标签: pandas numpy scipy sparse-matrix