## 4 Experiment
### Experimental Procedure  
The data processing process is divided into the following steps. Figure 3 shows the whole picture of our experiment process across Sections 3 and 4. First of all, we keep the \"reviewerID\", \"asin\", \"overall\", \"reviewText\", and \"summary\" tags in the seven datasets above and combined \"reviewText\" and \"summary\" as the word use behaviors in recognized online psychographics. Second, we conduct text preprocessing, including normalization, tokenization, removing stop words, and stemming on the textual contents using Amazon reviews and lexicons by Python, machine learning tool Scikit-learn ([[https://scikit-learn.org/stable/modules/generated/sklearn.cluster.DBSCAN.html](https://scikit-learn.org/stable/modules/generated/sklearn.cluster.DBSCAN.html)]([https://scikit-learn.org/stable/modules/generated/sklearn.cluster.DBSCAN.html](https://scikit-learn.org/stable/modules/generated/sklearn.cluster.DBSCAN.html))) and the Natural Language Toolkit (NLTK) [74]. Normalization is a process that converts a list of words to a more uniform sequence. Given a character sequence and a defined document unit, tokenization is the task of chopping it up into pieces, called tokens. Some extremely common words in reviews, which would be of little value in helping select texts matching our need, are excluded from the vocabulary entirely. These words are called stop words. The goal of stemming is to reduce inflectional forms, and sometimes derivationally related forms of a word, to a common base form. We perform stemming by Lancaster Stemmer in NLTK on both words in lexicon and reviews. We removed stop words using the English stop word list in NLTK, obtained the of words in lowercase using the text lower method in Python, and conducted Z-score normalization using scale method in Scikit-learn. Based on the SVS-pos, SVS-neg, BFF-pos, and BFF-neg lexicons in Section 3.1, and all the data preprocessing steps above, we calculate the psychographic scores by matching the used words and the words in these lexicons. Thus, we get the SVS and BFF scores for each Amazon consumer and product. \begin{table}
\begin{tabular}{l c c c} \hline \hline \multirow{2}{*}{**Item Category**} & **Total Number** & **Total Number** & \multirow{2}{*}{**K-Core**} \\  & **of Users** & **of Items** & \\ \hline Beauty & 1397 & 548 & 10 \\ Office Products & 724 & 395 & 10 \\ Baby & 946 & 231 & 10 \\ Grocery and Gourmet Food & 1556 & 494 & 10 \\ Toys and Games & 1037 & 398 & 10 \\ \hline \hline \end{tabular}
\end{table} 
Table 3: Experimental dataset description. Third, for each of the product categories, we perform the DBSCAN algorithm in the consumers' SVS or BFF scores, using Scikit-learn, to get the consumers' positive and negative psychographic scores and attached psychographic segment tags. We then build the rating predicting dataset which combines psychographic scores (as independent variables) with the rating given by the consumer to the product (as a dependent variable). We also construct feature sets for each product category which contains random values between 0 and 1 as the control group. For each of these datasets, we optimize the parameters for DNN by gradient descent. The optimal number of epochs (a single pass through the full training set) used for the neural network algorithm is decided by the performance on the validation set.