This is a web scraped social media review site of two chriopractic clinics offering massage, one low priced grocery store, and one high end massage retreat.The names of the doctors have been replaced with ‘DOCTOR’, and name of chiropracic facility to CHIROPRACTIC. The names of the high end massage retreat have been replaced with ‘HIGH END SPA’. The name of the low cost grocery store was replaced with ‘LOW COST GROCERY STORE.’
This data table originally had 1338 observations, but that was an error due to copy and paste in Excel, so there is a need to remove empty rows after reading in the data if your copy of RStudio reads in those empty rows. After reading in the data there will be 516 reviews of mixed ratings for these business models. There aren’t many reviews lower than four stars for the chiropractic clinics, but there is a lot of variation in the high end massage retreat and low cost grocery store reviews. These businesses are in the Corona area and the first to be listed when typing massage, except for the grocery store, because it was directly typed in. Note that the social media site will send your api information on your demographics to these businesses when extracting the data, so you should have an alias.
library(DT)
library(tidyverse)
library(dplyr)
library(lubridate)
library(tm)
library(SnowballC)
library(wordcloud)
library(ggplot2)
library(textstem)
library(stringr)
library(visNetwork)
library(igraph)
#the following packages are needed by throw errors on some of the functions in dplyr and the tidyvere that make this script not run, so I am adding them to a chunk in the ML section to use them instead, after the other commands have been entered.
# library(RANN) #this pkg supplements caret for out of bag validation
# library(e1071)
# library(caret)
# library(randomForest)
# library(MASS)
# library(gbm)
library(textdata)
library(tidytext)
library(ggraph)
reviews <- read.csv('ReviewsMassageChiropractorYelp_withCompanyNamesOmitted.csv',
sep=',',header=TRUE, na.strings=c('',' ','NA','NULL'))
Clean up this data of NA rows and empty fields if you have more than 516 observations. You should have five columns.
Reviews <- reviews[complete.cases(reviews),]
colnames(Reviews)
## [1] "review"
## [2] "rating_last_first_if_multipleUpdated"
## [3] "site"
## [4] "LowAvgHighCost"
## [5] "businessType"
You can download this data to follow along with this DT datatable.
Reviews_DT <- datatable(data=Reviews, rownames=FALSE,
extensions=c('Buttons','Responsive'),
filter=list(position='top'),
options=list( dom='Bfrtip',scrollX = TRUE, scrollY=TRUE,
buttons=c('colvis','csv'),
language=list(sSearch='Filter:')
)
)
Reviews_DT
The rating has more than one rating, separated by a comma for those reviews that are updated and the other reviews displayed have different ratings. We will see this after running the next chunk. The first listed value is the rating for the latest review, and the subsequent ratings (1-5) are for the next subsequent reviews backtracking in time. Each review will have a date listed before each previous review that the later review updated.
unique(Reviews$rating_last_first_if_multipleUpdated)
## [1] 5 1 3 5,5 4 4,3,1 2
## [8] 5,3 4,4 1,1 2,2 3,5 5,2 2,4
## [15] 1,1,1 4,4,1,3,3 5,4
## 17 Levels: 1 1,1 1,1,1 2 2,2 2,4 3 3,5 4 4,3,1 4,4 4,4,1,3,3 5 5,2 5,3 ... 5,5
You can see from the above there are various review values, and we could choose to keep these or make separate dummy fields for how many time the review was updated from last to first review. The most updates appears to be five times, so we could create dummy fields to capture that rating and if it is the first,second,…, or fifth review and rating for each reviewer. Why not lets just do this. And so the next chunk will add those dummy fields.
rating <- strsplit(as.character(paste(Reviews$rating_last_first_if_multipleUpdated)), split=',')
Reviews$mostRecentVisit_rating <- as.character(paste(lapply(rating,'[',1)))
Reviews$lastVisit_rating <- as.character(paste(lapply(rating,'[',2)))
Reviews$twoVisitsPrior_rating <- as.character(paste(lapply(rating,'[',3)))
Reviews$threeVisitsPrior_rating <- as.character(paste(lapply(rating,'[',4)))
Reviews$fourVisitsPrior_rating <- as.character(paste(lapply(rating,'[',5)))
Reviews1 <- Reviews[with(Reviews, order(fourVisitsPrior_rating,
threeVisitsPrior_rating,
twoVisitsPrior_rating,
lastVisit_rating, decreasing=FALSE)),]
# head(Reviews1)
The order by decreasing=FALSE had to be used to see those sequential visits from last visit, because these fields are character fields. When using predictive analytics they can be changed to factor, or we can change them to numeric.
Reviews1$mostRecentVisit_rating <- as.numeric(paste(Reviews1$mostRecentVisit_rating))
Reviews1$lastVisit_rating <- as.numeric(paste(Reviews1$lastVisit_rating))
Reviews1$twoVisitsPrior_rating <- as.numeric(paste(Reviews1$twoVisitsPrior_rating))
Reviews1$threeVisitsPrior_rating <- as.numeric(paste(Reviews1$threeVisitsPrior_rating))
Reviews1$fourVisitsPrior_rating <- as.numeric(paste(Reviews1$fourVisitsPrior_rating))
str(Reviews1)
## 'data.frame': 516 obs. of 10 variables:
## $ review : Factor w/ 516 levels "\t\nAffinity Z.\nCorona, CA\n64 friends\n216 reviews\n23 photos\n\n\n\n\n\n\n\n\n Affinity Z.\n\n\t5/6/2014\nSE"| __truncated__,..: 408 414 409 31 5 217 79 168 430 49 ...
## $ rating_last_first_if_multipleUpdated: Factor w/ 17 levels "1","1,1","1,1,1",..: 12 3 10 2 2 2 5 14 15 11 ...
## $ site : Factor w/ 1 level "yelp": 1 1 1 1 1 1 1 1 1 1 ...
## $ LowAvgHighCost : Factor w/ 3 levels "Avg","High","Low": 2 2 1 2 2 2 2 2 3 2 ...
## $ businessType : Factor w/ 3 levels "chiropractic",..: 3 3 1 3 3 3 3 3 2 3 ...
## $ mostRecentVisit_rating : num 4 1 4 1 1 1 2 5 5 4 ...
## $ lastVisit_rating : num 4 1 3 1 1 1 2 2 3 4 ...
## $ twoVisitsPrior_rating : num 1 1 1 NA NA NA NA NA NA NA ...
## $ threeVisitsPrior_rating : num 3 NA NA NA NA NA NA NA NA NA ...
## $ fourVisitsPrior_rating : num 3 NA NA NA NA NA NA NA NA NA ...
Now our ‘NA’ filled dummy columns are recognized as actual missing values or NAs of numeric instead of character fields. It is easier to turn the character fields into numeric, then factors so I changed them into numeric. If we want to use them as factors, which they are, when running the models we can. But we are going to focus on extracting hidden features from the data first and cleaning up redundancies in the data from the web scraping extenstions. Like the header user information and the extra dates, or the actual dates, and the ‘updated’ header to every previous review update. Lets look at our table of Reviews right now, but using the DT package for the datatable function.
Reviews_DT1 <- datatable(data=Reviews1, rownames=FALSE, # width = 800, height = 700,
extensions=c('Buttons','Responsive'),#'FixedColumns'),
#filter=list(position='top'),
options=list(pageLength=1,
dom='Bfrtip',scrollX = TRUE,# scrollY=TRUE,fixedColumns = TRUE,
buttons=c('colvis','csv'),
language=list(sSearch='Filter:')
)
)
Reviews_DT1
We should also look at the table within Rmarkdown, because DT is fussy and takes a while to load, plus the amount of text in the first column takes up the rest of the rows.
row.names(Reviews1) <- NULL
# head(Reviews1)
Reviews1 data table is ordered by the review with the most previous reviews in most to least. We see from this first observation in the table and many others that the reviews have a header that needs cleaning up. So, lets do that. We will use gsub to remove these headers with some regex commands. There are a lot of non character elements in the reviews that are considered white space characters for (tabs, ()newlines or a mac newline( or ()space. If any mistakes it’ll be easy to adjust instead of rerunning codes to get the Reviews1 table.
Reviews2 <- Reviews1
Reviews2$review <- gsub('[P].*[.][\\t][\\n]','',perl=TRUE,Reviews2$review)
# head(Reviews2)
We see that the Photo… header was removed if the review included a header. That placemarker is removed. But lets also remove the observations that didn’t have a photo placemarker and with these observations remove anything between the header and the first listed date that is preceeded by two newlines and one tab.We will also extract the first name and the header of the observations we removed the photo placemarker from up to the first date listed.
Reviews2$review <- gsub('^[\\t][\\n]', '', perl=TRUE, Reviews2$review)
# head(Reviews2)
I noticed there is a user name that begins with a single apostrophe, and it throws off this script if not fixed early, because later these names will be put into the userName field.So we have to add in the escape character backslash and apostrophe with a pipe for ‘or’ into this next command.
Reviews2$review <- gsub('^[a-zA-Z|\'].*[.]','', perl=TRUE, Reviews2$review)
# head(Reviews2)
We see that we have the city, state, number of friends, reviews, photos, and a status if they have more than a certain number of reviews. But also that this information could be useful, so we might want to split these string reviews by the 9 newline characters.
reviewStringSplit <- strsplit(Reviews2$review, split='[\n]{9}',perl=TRUE)
# head(reviewStringSplit,1)
This is great, because now we can separate the review with the header information. Lets name one string the headerData and the other the userObservation.
headerData <- lapply(reviewStringSplit, '[',1)
head(headerData)
## [[1]]
## [1] "\nMission Viejo, CA\n500 friends\n404 reviews\n452 photos\nElite '2020"
##
## [[2]]
## [1] "\nRancho Cucamonga, CA\n12 friends\n12 reviews\n4 photos"
##
## [[3]]
## [1] "\nCorona, CA\n10 friends\n95 reviews\n28 photos"
##
## [[4]]
## [1] "\nWestminster, CA\n0 friends\n74 reviews\n78 photos"
##
## [[5]]
## [1] "\nLos Angeles, CA\n92 friends\n69 reviews\n113 photos"
##
## [[6]]
## [1] "\nVan Nuys, CA\n116 friends\n24 reviews\n30 photos"
We see the city, state, number of friends, the number of reviews, number of photos, and if elite separated by a newline. Lets remove the newline, then add all these separately to our table by feature identified accordingly.
headerData2 <- as.character(headerData)
headerData2 <- gsub('^[\n]','', headerData2, perl=TRUE)
headermetaSplit <- strsplit(headerData2,split='[\n]',perl=TRUE)
head(headermetaSplit)
## [[1]]
## [1] "Mission Viejo, CA" "500 friends" "404 reviews"
## [4] "452 photos" "Elite '2020"
##
## [[2]]
## [1] "Rancho Cucamonga, CA" "12 friends" "12 reviews"
## [4] "4 photos"
##
## [[3]]
## [1] "Corona, CA" "10 friends" "95 reviews" "28 photos"
##
## [[4]]
## [1] "Westminster, CA" "0 friends" "74 reviews" "78 photos"
##
## [[5]]
## [1] "Los Angeles, CA" "92 friends" "69 reviews" "113 photos"
##
## [[6]]
## [1] "Van Nuys, CA" "116 friends" "24 reviews" "30 photos"
Reviews2$cityState <- lapply(headermetaSplit,'[',1)
Reviews2$friends <- lapply(headermetaSplit,'[',2)
Reviews2$reviews <- lapply(headermetaSplit,'[',3)
Reviews2$photos <- lapply(headermetaSplit,'[',4)
Reviews2$eliteStatus <- lapply(headermetaSplit,'[',5)
userObservation <- lapply(reviewStringSplit,'[',2)
# head(userObservation,1)
We can see from the second split of the string that the userObservation includes more meta data that includes the user name, date, if it was an updated review, and if available the number of check ins to the business and number of photos. The first name is the first part of this string. Lets split the string and make a field called userName to add to our table. We have to split by one newline and one tab, because one of the dates only has a prepend of one newline and one tab, although most are two newlines followed by a tab, we miss a review if we don’t.
obsStrSplit <- as.character(userObservation)
obsStrSplit2 <- strsplit(obsStrSplit,split='[\n][\t]', perl=TRUE)
Reviews2$userName <- lapply(obsStrSplit2,'[',1)
Reviews2$userName <- gsub('[\n][\n]','',perl=TRUE, Reviews2$userName)
Reviews2$userName <- gsub('^[ ]','',perl=TRUE, Reviews2$userName)
Reviews2$userName <- gsub('[\n]$','',perl=TRUE, Reviews2$userName)
head(Reviews2$userName)
## [1] "Patty A R." "Raven H." "Phillip G." "Julie C." "Amy S."
## [6] "Jack K."
Lets now replace the review field that has been slightly adjusted to exclude the first header. There is still the user name header that occurs right before the data and if the review is updated.This is the obsStrSplit2 list.
# head(obsStrSplit2)
These top reviews are the ones that have more than one review ordered from most to least by rating when this analysis and data cleaning began. We see from our obsStrSplit2 object that there are at most 5 listed reviews that were separated by the double newline and tab that preceeds each date. So we can make dummy fields for these reviews as well by the listed item they correspond to for each user. Later we can gather those fields into one Review field by review by visit. In each of those fields we will take out the response by the business if there was one. They are shown above and start with a double newline and the words, ‘Business Customer Service.’ We’ll mark this so we know to search for this fix later. %^& its tagged. So, lets add in the latest review, previous review, 2nd previous review, 3rd previous review, and 4th previous review because the most reviews for this data is five.
Reviews2$mostRecentVisit_review <- as.character(paste(lapply(obsStrSplit2,'[',2)))
Reviews2$lastVisit_review <- as.character(paste(lapply(obsStrSplit2,'[',3)))
Reviews2$twoVisitsPrior_review <- as.character(paste(lapply(obsStrSplit2,'[',4)))
Reviews2$threeVisitsPrior_review <- as.character(paste(lapply(obsStrSplit2,'[',5)))
Reviews2$fourVisitsPrior_review <- as.character(paste(lapply(obsStrSplit2,'[',5)))
lets remove the first review field from our table using the dplyr package select function. We should also change these added list types so that they are character strings.
Reviews3 <- Reviews2 %>% select(-review)
Reviews3$cityState <- as.factor(paste(Reviews3$cityState))
Reviews3$friends <- gsub(' friends','',Reviews3$friends)
Reviews3$friends <- as.numeric(paste(Reviews3$friends))
Reviews3$reviews <- gsub(' reviews','', Reviews3$reviews)
Reviews3$reviews <- as.numeric(paste(Reviews3$reviews))
Reviews3$photos <- gsub(' photos','', Reviews3$photos)
Reviews3$photos <- as.numeric(paste(Reviews3$photos))
Reviews3$eliteStatus <- as.factor(paste(Reviews3$eliteStatus))
Reviews3$mostRecentVisit_review <- as.character(Reviews3$mostRecentVisit_review)
Reviews3$lastVisit_review <- as.character(Reviews3$lastVisit_review)
Reviews3$twoVisitsPrior_review <- as.character(Reviews3$twoVisitsPrior_review)
Reviews3$threeVisitsPrior_review <- as.character(Reviews3$threeVisitsPrior_review)
Reviews3$fourVisitsPrior_review <- as.character(Reviews3$fourVisitsPrior_review)
str(Reviews3)
## 'data.frame': 516 obs. of 20 variables:
## $ rating_last_first_if_multipleUpdated: Factor w/ 17 levels "1","1,1","1,1,1",..: 12 3 10 2 2 2 5 14 15 11 ...
## $ site : Factor w/ 1 level "yelp": 1 1 1 1 1 1 1 1 1 1 ...
## $ LowAvgHighCost : Factor w/ 3 levels "Avg","High","Low": 2 2 1 2 2 2 2 2 3 2 ...
## $ businessType : Factor w/ 3 levels "chiropractic",..: 3 3 1 3 3 3 3 3 2 3 ...
## $ mostRecentVisit_rating : num 4 1 4 1 1 1 2 5 5 4 ...
## $ lastVisit_rating : num 4 1 3 1 1 1 2 2 3 4 ...
## $ twoVisitsPrior_rating : num 1 1 1 NA NA NA NA NA NA NA ...
## $ threeVisitsPrior_rating : num 3 NA NA NA NA NA NA NA NA NA ...
## $ fourVisitsPrior_rating : num 3 NA NA NA NA NA NA NA NA NA ...
## $ cityState : Factor w/ 148 levels "Alhambra, CA",..: 73 101 24 144 66 138 113 54 13 116 ...
## $ friends : num 500 12 10 0 92 116 258 117 107 408 ...
## $ reviews : num 404 12 95 74 69 24 288 20 94 44 ...
## $ photos : num 452 4 28 78 113 30 132 13 188 33 ...
## $ eliteStatus : Factor w/ 2 levels "Elite '2020",..: 1 2 2 2 2 2 1 2 2 1 ...
## $ userName : chr "Patty A R." "Raven H." "Phillip G." "Julie C." ...
## $ mostRecentVisit_review : chr "6/5/2018Updated review\n 6 photos\n\n 2 check-ins\n\nAnother fabulous trip to HIGH END SPA! Love the new additi"| __truncated__ "2/15/2019Updated review\nStill no update by this facility, don't think I'll ever go back nor will I ever refer "| __truncated__ "6/15/2018Updated review\n 3 check-ins\n\nI've been here consistently for the last few years. Mistake were made "| __truncated__ "1/11/2020Updated review\n 3 photos\n\nImagine planning a family event for the last three months only to be gree"| __truncated__ ...
## $ lastVisit_review : chr "3/30/2018Previous review\nBeen going here for over 27 years. I've seen all the growth and change. It's been bum"| __truncated__ "5/12/2018Previous review\nIt's odd to me how you see the complaint, then a response but no update from the cust"| __truncated__ "9/14/2015Previous review\nMy wife and myself had some issues with the secretary and massages. We had communicat"| __truncated__ "9/15/2019Previous review\nImagine planning a family event for the last three months only to be greeted by list "| __truncated__ ...
## $ twoVisitsPrior_review : chr "2/10/2018Previous review\nI miss the old HIGH END SPA. I've waited 2 days to actually talk to someone there abo"| __truncated__ "5/7/2018Previous review\nIt's too bad, I had such a great time here and some bathroom attendant ruined my whole"| __truncated__ "9/11/2015Previous review\nHad major issues with this place. My wife signed up for a massage and chiropractic se"| __truncated__ "NA" ...
## $ threeVisitsPrior_review : chr "8/27/2017Previous review\nI've been coming here for over 25 years and have seen the ups and downs of this place"| __truncated__ "NA" "NA" "NA" ...
## $ fourVisitsPrior_review : chr "8/27/2017Previous review\nI've been coming here for over 25 years and have seen the ups and downs of this place"| __truncated__ "NA" "NA" "NA" ...
Lets rearrange the columns in our new table. We still need to extract from each of the five reviews by user (if exist) the business response (also if exists).
colnames(Reviews3)
## [1] "rating_last_first_if_multipleUpdated"
## [2] "site"
## [3] "LowAvgHighCost"
## [4] "businessType"
## [5] "mostRecentVisit_rating"
## [6] "lastVisit_rating"
## [7] "twoVisitsPrior_rating"
## [8] "threeVisitsPrior_rating"
## [9] "fourVisitsPrior_rating"
## [10] "cityState"
## [11] "friends"
## [12] "reviews"
## [13] "photos"
## [14] "eliteStatus"
## [15] "userName"
## [16] "mostRecentVisit_review"
## [17] "lastVisit_review"
## [18] "twoVisitsPrior_review"
## [19] "threeVisitsPrior_review"
## [20] "fourVisitsPrior_review"
First lets gather the review fields and the ratings fields and remove the NA values from the userReveiwSeries and userRatingSeries.
Reviews4 <- gather(Reviews3, 'userReviewSeries','userReviewContent',16:20)
Reviews4$userReviewContent <- gsub('NA','', Reviews4$userReviewContent)
#remove the char NAs because complete.cases won't work unless the table is read in with
# the correct NA values, even after converting to empty in the table.
write.csv(Reviews4, 'reviews4.csv', row.names=FALSE)
Reviews4 <- read.csv('reviews4.csv', sep=',', header=TRUE, na.strings=c('',' ','NA',NULL))
#now the table is 543 instead of 2580 observations.
Reviews4 <- Reviews4[complete.cases(Reviews4$userReviewContent),]
Reviews5 <- gather(Reviews4, 'userRatingSeries','userRatingValue',5:9)
#because this userRatingValue field is numeric, the NAs are already read by R as such
#we can remove the NAs with complete.cases to get a 614 obs table instead of 2715
Reviews5 <- Reviews5[complete.cases(Reviews5$userRatingValue),]
colnames(Reviews5)
## [1] "rating_last_first_if_multipleUpdated"
## [2] "site"
## [3] "LowAvgHighCost"
## [4] "businessType"
## [5] "cityState"
## [6] "friends"
## [7] "reviews"
## [8] "photos"
## [9] "eliteStatus"
## [10] "userName"
## [11] "userReviewSeries"
## [12] "userReviewContent"
## [13] "userRatingSeries"
## [14] "userRatingValue"
Reviews6 <- Reviews5 %>% select(userReviewSeries, userReviewContent,
userRatingSeries, userRatingValue,
everything())
Reviews7 <- Reviews6 %>% select(-rating_last_first_if_multipleUpdated,
-site)
# head(Reviews7)
Lets now remove the business response from the review content field.
businessReplied <- grep('Comment from',Reviews7$userReviewContent)
Reviews7$businessReplied <- 'no'
Reviews7$businessReplied[businessReplied] <- 'yes'
Reviews8 <- Reviews7 %>% select(userReviewSeries:userRatingValue,businessReplied,
everything())
Reviews9 <- Reviews8[order(Reviews8$businessReplied, decreasing=TRUE),]
row.names(Reviews9) <- NULL
Lets make this field a new field of the public relations reply removed.
Reviews9$userReviewContent <- as.character(paste(Reviews9$userReviewContent))
Reviews9$userRatingSeries <- as.factor(paste(Reviews9$userRatingSeries))
Reviews9$businessReplied <- as.factor(Reviews9$businessReplied)
PR <- strsplit(Reviews9$userReviewContent, split='[C][o][m][m][e][n][t] [f][r][o][m]',
perl=TRUE)
# head(PR,1)
Lets separate these into two separate character strings of user only review and PR_reply
userOnlyReview <- as.character(paste(lapply(PR,'[',1)))
PR_reply <- as.character(paste(lapply(PR,'[',2)))
Both of the above vectors are the same number of observations as our table.
Lets remove the other data on photos
userOnlyReview <- gsub('[\n][P][h][o][t][o] [o][f].*','', userOnlyReview,perl=TRUE)
grep('Comment', userOnlyReview)
## integer(0)
There shouldn’t be any comments from business owners in this first part of the string.
# head(userOnlyReview,1)
Also, the above shows the beginning is a date with a dropped zero for the months 1-9, and some observations have the photo[s] or check-in[s]. This should be modified with regex to add a date column and also add the numeric values for the photos or check-ins to those fields in our table.
Lets add these two strings of user only and PR reply to the data as two separate fields with ifelse functions.
Reviews9$userReviewOnlyContent <- userOnlyReview
Reviews9$businessReplyContent <- PR_reply
Reviews9$userReviewOnlyContent <- gsub('[\n][P][h][o][t][o] [o][f].*','',
Reviews9$userReviewOnlyContent,perl=TRUE)
Reviews9$userReviewOnlyContent <- gsub('[S][e][e] [a][l][l] [p].*','',
Reviews9$userReviewOnlyContent,
perl=TRUE)
# head(Reviews9[,13:15])
We just mentioned the date beginning each userReviewOnlyContent and userReviewContent columns, so lets create a date column for these dates. There are actually a bunch of anomolies in that first part of the string.
Reviews9$Date <- substr(Reviews9$userReviewOnlyContent,1,11)
date <- strsplit(Reviews9$Date, split='[a-zA-Z]', perl=TRUE)
Date <- as.character(paste(lapply(date,'[',1)))
Date <- trimws(Date, which='right',whitespace='[\n]')
Date <- gsub('[ ][\n][0-9]','', perl=TRUE, Date)
Date <- gsub('[\n][ ][0-9]','', perl=TRUE, Date)
Date <- gsub('[\n][ ]','', perl=TRUE, Date)
Date <- gsub('[\n][\" ][0-9]','', perl=TRUE, Date)
Date <- gsub('[\n][0-9]{2}','', perl=TRUE, Date)
Date <- gsub('[\n][\\]["]','', perl=TRUE, Date)
Date <- gsub('[\n][0-9]','', perl=TRUE,Date)
Date1 <- mdy(Date)
Reviews9$Date <-Date1
Remove the first date string in the userReviewOnlyContent.
Reviews9$userReviewOnlyContent <- gsub('[0-9]{1,2}[/][0-9]{1,2}[/][0-9]{4}','',
perl=TRUE, Reviews9$userReviewOnlyContent)
Lets also remove any photo meta from the original userReviewContent column.
Reviews9$userReviewContent <- gsub('[S][e][e] [a][l][l] [p].*','',Reviews9$userReviewContent,
perl=TRUE)
Reviews9$userReviewContent <- gsub('[\n][P][h][o][t][o] [o][f].*','',
Reviews9$userReviewContent,perl=TRUE)
Now lets rearrange our columns and make this a searchable and downloadable datatable.
Reviews10 <- Reviews9 %>% select(userReviewSeries, userReviewOnlyContent,
userRatingSeries, userRatingValue, businessReplied, businessReplyContent, everything())
colnames(Reviews10)
## [1] "userReviewSeries" "userReviewOnlyContent" "userRatingSeries"
## [4] "userRatingValue" "businessReplied" "businessReplyContent"
## [7] "userReviewContent" "LowAvgHighCost" "businessType"
## [10] "cityState" "friends" "reviews"
## [13] "photos" "eliteStatus" "userName"
## [16] "Date"
The userReviewContent has the text of both business response and the user as well as photo placemarker data.
Reviews10_DT <- datatable(data=Reviews10, rownames=FALSE, # width = 800, height = 700,
extensions=c('Buttons','Responsive'),#'FixedColumns'),
#filter=list(position='top'),
options=list(pageLength=1,
dom='Bfrtip',scrollX = TRUE,# scrollY=TRUE,fixedColumns = TRUE,
buttons=c('colvis','csv'),
language=list(sSearch='Filter:')
)
)
Reviews10_DT
# head(Reviews10)
The userReviewContent was kept in the table to compare the cleaned up columns on user reviews.
We should still remove the updated and previous review descriptions.
Reviews10$userReviewOnlyContent <- gsub('[uU][p][d][a][t][e][d].*[\n]','', perl=TRUE,
Reviews10$userReviewOnlyContent)
Reviews10$userReviewOnlyContent <- gsub('[pP][r][e][v][i][o][u].*[w]','', perl=TRUE,
Reviews10$userReviewOnlyContent)
Reviews10$id <- row.names(Reviews10)
pix <- grep('photo+',Reviews10$userReviewOnlyContent)
pix2 <- Reviews10$userReviewOnlyContent[pix]
pix3 <- trimws(pix2, which="left",whitespace="[\t\r\n]")
pixs <- as.data.frame(pix3)
colnames(pixs) <- 'busPhotos'
pixs$id <- pix
pixs$busPhotos <- gsub('^[ ]','', pixs$busPhotos)
pixs2 <- pixs[grep('^[0-9][ ][pP]',pixs$busPhotos, perl=TRUE),]
# head(pixs2)
pics <- strsplit(pixs2$busPhotos,split='[\n\n]',perl=TRUE)
# head(pics,1)
From the above, we our only interested in the first split of photos, the other reviews are split on the double newline and caused multiple splits for most single reviews.
pixs2$userBusinessPhotos <- as.character(paste(lapply(pics,'[',1)))
pixs2$userBusinessPhotos <- gsub(' photo','', pixs2$userBusinessPhotos)
pixs2$userBusinessPhotos <- gsub('s','',pixs2$userBusinessPhotos)
pixs2$userBusinessPhotos <- trimws(pixs2$userBusinessPhotos,which='right')
pixs2$userBusinessPhotos <- as.numeric(paste(pixs2$userBusinessPhotos))
# head(pixs2)
Lets keep only the id and userBusinessPhotos columns.
pics3 <- pixs2 %>% select(id,userBusinessPhotos)
Combine this new feature to the data table of all features thus far.
Reviews11 <- merge(Reviews10, pics3, by.x='id', by.y='id', all.x=TRUE)
Now lets do the same thing for the check-ins information. The number of times the user checked in or visited the business. Get only those reviews with the check-ins a header and not in the observation or found at the end of the observation.
checks <- Reviews11 %>% select(id,userReviewOnlyContent)
checks$substring <- substr(checks$userReviewOnlyContent, 1,40)
chekn <- grep('check-in',checks$substring)
checks1 <- checks[chekn,]
There are more check-ins than photos by the user.
chekn <- checks1 %>% select(id, substring)
# head(chekn,10)
Lets remove the reference to photos and double newline characters from our substring.
chekn$substring <- gsub('[0-9] [p][h][o][t][o][\n][\n]','', chekn$substring,perl=TRUE)
chekn$substring <- gsub('[0-9][0-9] [p][h][o][t][o][s][\n][\n]','', chekn$substring,perl=TRUE)
chekn$substring <- gsub('[0-9] [p][h][o][t][o][s][\n][\n]','', chekn$substring,perl=TRUE)
Split on the double newline characters and grab the first entries, after verifying the substring column only starts with the number of check-ins per user.
checkN <- strsplit(chekn$substring, split='[\n][\n]',perl=TRUE)
head(checkN)
## [[1]]
## [1] "\n 1 check-in" " has been treating myself,"
##
## [[2]]
## [1] "\n 1 check-in" "My boyfriend too"
##
## [[3]]
## [1] "\n 1 check-in" "My wife and I h"
##
## [[4]]
## [1] "\n 41 check-ins" "When I first moved to Co"
##
## [[5]]
## [1] "\n 1 check-in" "So I was having back probl"
##
## [[6]]
## [1] "\n 1 check-in" "DOCTOR showed me great exe"
checkN2 <- as.character(paste(lapply(checkN,'[',1)))
checkN2 <- trimws(checkN2, which='left', whitespace="[\n]")
checkN2 <- gsub('^ ','',checkN2)
checkN2 <- gsub('^ ','',checkN2)
checkN2 <- gsub(' check-ins','',checkN2)
checkN2 <- gsub(' check-in','',checkN2)
checkN2 <- as.numeric(paste(checkN2))
head(checkN2)
## [1] 1 1 1 41 1 1
chekn$userCheckIns <- checkN2
head(chekn)
## id substring userCheckIns
## 8 105 \n 1 check-in\n\n has been treating myself, 1
## 13 11 \n 1 check-in\n\nMy boyfriend too 1
## 14 110 \n 1 check-in\n\nMy wife and I h 1
## 21 117 \n 41 check-ins\n\nWhen I first moved to Co 41
## 23 119 \n 1 check-in\n\nSo I was having back probl 1
## 26 121 \n 1 check-in\n\nDOCTOR showed me great exe 1
merge this with Reviews11 data.
Reviews12 <- merge(Reviews11, chekn, by.x='id', by.y='id', all.x=TRUE)
head(Reviews12[order(Reviews12$userCheckIns,decreasing=TRUE),c(17,19:20)])
## Date substring userCheckIns
## 207 2014-09-23 \n 45 check-ins\n\nEverywhere I live I alwa 45
## 133 2014-10-21 \n 43 check-ins\n\nLove it here, sucks my c 43
## 21 2018-04-13 \n 41 check-ins\n\nWhen I first moved to Co 41
## 301 2018-09-28 31 check-ins\n\nEveryone is very nice and 31
## 517 2018-09-28 31 check-ins\n\nEveryone is very nice and 31
## 217 2015-12-04 \n 30 check-ins\n\nWe can I say "We Love LO 30
Reviews13 <- Reviews12 %>% select(-id, -substring)
head(Reviews13[order(Reviews13$userCheckIns,decreasing=TRUE),c(16,18)])
## Date userCheckIns
## 207 2014-09-23 45
## 133 2014-10-21 43
## 21 2018-04-13 41
## 301 2018-09-28 31
## 517 2018-09-28 31
## 217 2015-12-04 30
Lets remove the header from the userReviewOnlyContent column now that we have extracted the photos and check-in data per user.
subUser <- substr(Reviews13$userReviewOnlyContent,1,30)
head(subUser,30)
## [1] " 2 photos\n\nWhat a wonderful wa" "\n 12 photos\n\nMy sister and I b"
## [3] "\nI came to CHIROPRACTIC with s" "\nI have to say.... This is by "
## [5] "\nDr. is my chiropractor and h" "\nMany in our family have seen "
## [7] "\nDr. fixed my neck/shoulder p" "\n 1 check-in\n\n has been treati"
## [9] "\nDr. is great! I've been to o" "\nI'm so happy I found CHIROPRA"
## [11] "\nI got my first one hour full " "\n2 months ago I was rear ended"
## [13] "\n 1 photo\n\n 1 check-in\n\nMy boy" "\n 2 photos\n\n 1 check-in\n\nMy wi"
## [15] "\n is a good man and truly care" "\nLies. Shady. Overcharge. Th"
## [17] "\nFirst time here. Highly recom" "\nDOCTOR is great and gives rea"
## [19] "\nThis has been my spa for the " "\nI really enjoyed my visit eve"
## [21] "\n 41 check-ins\n\nWhen I first m" "\nTo be honest I dont even know"
## [23] "\n 1 check-in\n\nSo I was having " "\n 3 photos\n\nI booked a Winter "
## [25] "\nDr. is honestly the best thu" "\n 1 check-in\n\nDOCTOR showed me"
## [27] "\nI was first suspicious of thi" "\nThe team here at CHIROPRACTIC"
## [29] "\n 1 photo\n\n 1 check-in\n\nCHIROP" "\n 1 check-in\n\nGreat experience"
subUser2 <- gsub('[0-9]{1,2}.*[\n][\n]','', subUser, perl=TRUE)
head(subUser2,30)
## [1] " What a wonderful wa" "\n My sister and I b"
## [3] "\nI came to CHIROPRACTIC with s" "\nI have to say.... This is by "
## [5] "\nDr. is my chiropractor and h" "\nMany in our family have seen "
## [7] "\nDr. fixed my neck/shoulder p" "\n has been treati"
## [9] "\nDr. is great! I've been to o" "\nI'm so happy I found CHIROPRA"
## [11] "\nI got my first one hour full " "\n2 months ago I was rear ended"
## [13] "\n My boy" "\n My wi"
## [15] "\n is a good man and truly care" "\nLies. Shady. Overcharge. Th"
## [17] "\nFirst time here. Highly recom" "\nDOCTOR is great and gives rea"
## [19] "\nThis has been my spa for the " "\nI really enjoyed my visit eve"
## [21] "\n When I first m" "\nTo be honest I dont even know"
## [23] "\n So I was having " "\n I booked a Winter "
## [25] "\nDr. is honestly the best thu" "\n DOCTOR showed me"
## [27] "\nI was first suspicious of thi" "\nThe team here at CHIROPRACTIC"
## [29] "\n CHIROP" "\n Great experience"
subUser3 <- gsub('[\n][ ][0-9]{1,2}.*[\n][\n]','',subUser2, perl=TRUE)
head(subUser3,50)
## [1] " What a wonderful wa" "\n My sister and I b"
## [3] "\nI came to CHIROPRACTIC with s" "\nI have to say.... This is by "
## [5] "\nDr. is my chiropractor and h" "\nMany in our family have seen "
## [7] "\nDr. fixed my neck/shoulder p" "\n has been treati"
## [9] "\nDr. is great! I've been to o" "\nI'm so happy I found CHIROPRA"
## [11] "\nI got my first one hour full " "\n2 months ago I was rear ended"
## [13] "\n My boy" "\n My wi"
## [15] "\n is a good man and truly care" "\nLies. Shady. Overcharge. Th"
## [17] "\nFirst time here. Highly recom" "\nDOCTOR is great and gives rea"
## [19] "\nThis has been my spa for the " "\nI really enjoyed my visit eve"
## [21] "\n When I first m" "\nTo be honest I dont even know"
## [23] "\n So I was having " "\n I booked a Winter "
## [25] "\nDr. is honestly the best thu" "\n DOCTOR showed me"
## [27] "\nI was first suspicious of thi" "\nThe team here at CHIROPRACTIC"
## [29] "\n CHIROP" "\n Great experience"
## [31] "\nI am so impressed with CHIROP" "\n I came here bec"
## [33] "\n Thanks for suppo" "\nI love coming to CHIROPRACTIC"
## [35] "\n Had a gift card" "\nI went in because I had pain "
## [37] "\nI came in about a month ago d" "\nI'd been to different chiro,b"
## [39] "\n For ye" "\nBest place to get a massage a"
## [41] "\nGreat place, all the staff is" "\n I love"
## [43] "\n Love this place!" "\n I came to him wi"
## [45] "\nI came here before I was diag" "\n I enjoyed every mo"
## [47] "\n My favorite chir" "\nMy favorite place to get my b"
## [49] "\n My wife booked m" "\n DOC"
Now that we tested the removal using regex on a string, we can apply these regex commands to the column userReviewOnlyContent.
Reviews13$userReviewOnlyContent <- gsub('[0-9]{1,2}.*[\n][\n]','',
Reviews13$userReviewOnlyContent, perl=TRUE)
Reviews13$userReviewOnlyContent <- gsub('[\n][ ][0-9]{1,2}.*[\n][\n]','',
Reviews13$userReviewOnlyContent, perl=TRUE)
Reviews13$userReviewOnlyContent <- trimws(Reviews13$userReviewOnlyContent, which='left',
whitespace="[\n\t\r]")
# head(Reviews13,30)
Now it looks like we have our cleaned data to run sentiment and text analysis of in determining the rating the user review is given by the user. Lets write this file out to csv, and make a DT datatable for downloading from Rpubs.
write.csv(Reviews13, 'cleanedRegexReviews13.csv',row.names=FALSE)
Reviews13_DT <- datatable(data=Reviews13, rownames=FALSE, #width = 800, height = 700,
extensions=c('Buttons','Responsive'),#,'FixedColumns'),
filter=list(position='top'),
options=list(pageLength=2,
dom='Bfrtip',scrollX = TRUE, scrollY=TRUE,#fixedColumns = TRUE,
buttons=c('colvis','csv'),
language=list(sSearch='Filter:')
)
)
Reviews13_DT
Lets keep only the cleaned user review and the rating for that user’s visit.
Reviews14 <- Reviews13 %>% select(userReviewOnlyContent,userRatingValue)
row.names(Reviews14) <- NULL
head(Reviews14)
## userReviewOnlyContent
## 1 What a wonderful way to start the year! This was my second time back to HIGH END SPA, and we had a great time. The crowds were very low (seriously, it felt like we had the place to ourselves most of the day.) We walked right into the mineral baths, club mud, and didn't wait in any kind of line for lunch. None of the pools were crowded, and we were even able to enjoy one of the hammocks in the secret garden.\n\nTiffany at the front check-in desk went above and beyond for us regarding the robes. I had requested a plus-sized robe, since after my last review I knew they had added some to their collection. Unfortunately, all of their plus-sized robes were still dirty from the day before. Tiffany was so accommodating, though! She was able to get us robes from the cabana area that fit me perfectly! It is so great to know that not only do they now offer guests of all sizes the option to enjoy a warm robe, but that they really want to make sure you have a good day. Thank you, Tiffany, for everything.\n\nAll of the staff today were in good spirits. The only thing that would have made today better would have been a massage. We'll have to book one next time. My husband and I are going to make HIGH END SPA our annual New Year's Day tradition!\n\n
## 2 My sister and I brought my mom here for her birthday and overall, we really enjoyed our time here. We're used to going to Korean spas, but this was definitely an upgrade.\n\nPROS:\n- The resort itself is beautiful and so relaxing. Like seriously such a pleasing escape from reality that I needed. It's set up so nicely and feels very luxurious.\n- It was my mom's birthday so she received free admission on birthday with a purchase of a service. Admission is $52, so she booked a manicure for $50 and got in for free. WORTH. My mom had gone 52 years without ever getting her nails done, so it was kind of heartwarming to see how much she loved her experience.\n- The three of us took a Yin Yoga class and really enjoyed it. We definitely want to take advantage of the other class options next time we come.\n- CLUB MUD. We had so much fun there and even made a little clay sculpture. It really does do wonders for your skin, and the area is suprisingly very well-kept.\n- The shower and locker facilities can get pretty crowded, but overall, they are super nice and clean. They have an ample amount of showers, so we didn't have to wait at all.\n- All the staff seemed really friendly and helpful. There's always staff members roaming around, so you always feel somewhat taken care of.\n- I really appreciated the towel and water stands located throughout the resort. So handy and necessary.\n- Parking is free, thank God.\n\nCONS:\n- We went on a fairly cold day (around 60 degrees), so the hot pools were CROWDED,. Like there were a couple of times I touched other people's body parts I definitely did not want to touch. I feel like some of the hot pools exceeded capacity, and I'm sure it was mostly because it was a cold day, but I do wish there were more of the hot pools or they should just be larger!\n- The food is incredibly expensive. Like as ridiculous as Disneyland, which is saying something. Plan to spend around $20 per meal per person. The one thing that was worth it was the nachos ($16 for the small, but this thing is huge).\n- The kitchen moves VERY SLOWLY. Especially the salad section because I came before the lunch rush and still waited 20 minutes to order my salad. The kitchen staff seems a bit incompetent, or maybe it's just run inefficiently.\n- This is more of a side note, but I wish there was a more streamlined reservation system. I made the entire reservation over the phone, which was fine, but it wasn't laid out as clearly as I would have liked it with the premium admissions prices, services, etc. The online one also just seemed really confusing.\n\nOverall, we had a positive experience with just a couple of kinks here and there. We love that there's just a lot to do here and time FLIES when you're here so come as early as you can. We definitely want to try coming back in the summer months when it's warmer!\n\n\n
## 3 I came to CHIROPRACTIC with severe back and neck pain. DOCTOR was AMAZING and helped me to feel much better than I have felt for YEARS! The girls up front also are very sweet and always made sure that all my appointments were set and on time! Heather the billing manager was very kind as well, she was AWESOME when it came to dealing with me and my insurance amd was definitely a huge help! I don't know what I would have done without Heather helping me with all of the insurance problems I had!!! She is the BEST, thank you Heather!! I would definitely recommend going to this clinic!!!!
## 4 I have to say.... This is by far the best Chiropractic place I've ever been to. The staff is super friendly and very professional. From the moment I walk in the door I get greeted by name . The Drs are amazing too. Love this place and I highly recommend them.
## 5 Dr. is my chiropractor and he is a fabulous individual. I've never waited more than few minutes for him to see me. The front team (Both ladies" are great with an outstanding care and smile. Thank you guys for all you do.
## 6 Many in our family have seen DOCTOR for chiropractic care. He is very warm and friendly, knowledgable, puts your mind at ease during his adjustments. He gives great explanations. Our 14yo son said, "he is really good at what he does and he is a good person." We all feel better after visiting him. Recommend him to everyone.
## userRatingValue
## 1 5
## 2 4
## 3 5
## 4 5
## 5 5
## 6 5
We will have to create a corpus of documents for each rating, then we can clean up the text with the programs within these text mining libraries other than what we have done to the data already. We should also remove the words: ‘DOCTOR’, ‘CHIROPRACTIC,’HIGH END SPA’, and ‘LOW COST GROCERY STORE.’
Reviews14$userReviewOnlyContent <- gsub('DOCTOR','', Reviews14$userReviewOnlyContent)
Reviews14$userReviewOnlyContent <- gsub('CHIROPRACTIC','', Reviews14$userReviewOnlyContent)
Reviews14$userReviewOnlyContent <- gsub('HIGH END SPA','', Reviews14$userReviewOnlyContent)
Reviews14$userReviewOnlyContent <- gsub('LOW COST GROCERY STORE','',
Reviews14$userReviewOnlyContent)
Lets lemmatize the document first to grab the root word and not the stem of each review.
lemma <- lemmatize_strings(Reviews14$userReviewOnlyContent, dictionary=lexicon::hash_lemmas)
Lemma <- as.data.frame(lemma)
Lemma <- cbind(Lemma, Reviews14)
colnames(Lemma) <- c('lemmatizedReview','review', 'rating')
Lemma$rating <- as.factor(paste(Lemma$rating))
head(Lemma)
## lemmatizedReview
## 1 What a wonderful way to start the year! This be my 2 time back to, and we have a great time. The crowd be very low ( seriously, it feel like we have the place to ourselves much of the day. ) We walk right into the mineral bath, club mud, and didn't wait in any kind of line for lunch. None of the pool be crowd, and we be even able to enjoy one of the hammock in the secret garden. Tiffany at the front check - in desk go above and beyond for us regard the robe. I have request a plus - size robe, since after my last review I know they have add some to their collection. Unfortunately, all of their plus - size robe be still dirty from the day before. Tiffany be so accommodate, though! She be able to get us robe from the cabana area that fit me perfectly! It be so great to know that not only do they now offer guest of all size the option to enjoy a warm robe, but that they really want to make sure you have a good day. Thank you, Tiffany, for everything. All of the staff today be in good spirit. The only thing that would have make today good would have be a massage. We'll have to book one next time. My husband and I be go to make our annual New Year's Day tradition!
## 2 My sister and I bring my mom here for her birthday and overall, we really enjoy our time here. We're use to go to Korean spa, but this be definitely a upgrade. pro: - The resort itself be beautiful and so relax. Like seriously such a please escape from reality that I need. It's set up so nicely and feel very luxurious. - It be my mom's birthday so she receive free admission on birthday with a purchase of a service. Admission be $52, so she book a manicure for $50 and get in for free. WORTH. My mom have go 52 year without ever get her nail do, so it be kind of heartwarming to see how much she love her experience. - The three of us take a Yin Yoga class and really enjoy it. We definitely want to take advantage of the other class option next time we come. - CLUB MUD. We have so much fun there and even make a little clay sculpture. It really do do wonder for your skin, and the area be suprisingly very good - keep. - The shower and locker facility can get pretty crowd, but overall, they be super nice and clean. They have a ample amount of shower, so we didn't have to wait at all. - All the staff seem really friendly and helpful. There's always staff member roam around, so you always feel somewhat take care of. - I really appreciate the towel and water stand locate throughout the resort. So handy and necessary. - park be free, thank God. con: - We go on a fairly cold day ( around 60 degree ), so the hot pool be crowd,. Like there be a couple of time I touch other people's body part I definitely do not want to touch. I feel like some of the hot pool exceed capacity, and I'm sure it be mostly because it be a cold day, but I do wish there be much of the hot pool or they should just be large! - The food be incredibly expensive. Like as ridiculous as Disneyland, which be say something. Plan to spend around $20 per meal per person. The one thing that be worth it be the nachos ( $16 for the small, but this thing be huge ). - The kitchen move VERY SLOWLY. Especially the salad section because I come before the lunch rush and still wait 20 minute to order my salad. The kitchen staff seem a bite incompetent, or maybe it's just run inefficiently. - This be much of a side note, but I wish there be a much streamline reservation system. I make the entire reservation over the phone, which be fine, but it wasn't lay out as clearly as I would have like it with the premium admission price, service, etc. The online one also just seem really confuse. Overall, we have a positive experience with just a couple of kink here and there. We love that there's just a lot to do here and time fly when you're here so come as early as you can. We definitely want to try come back in the summer month when it's warm!
## 3 I come to with severe back and neck pain. be amaze and help me to feel much good than I have feel for year! The girl up front also be very sweet and always make sure that all my appointment be set and on time! Heather the bill manager be very kind as good, she be AWESOME when it come to deal with me and my insurance amd be definitely a huge help! I don't know what I would have do without Heather help me with all of the insurance problem I have!!! She be the good, thank you Heather!! I would definitely recommend go to this clinic!!!!
## 4 I have to say.... This be by far the good Chiropractic place I've ever be to. The staff be super friendly and very professional. From the moment I walk in the door I get greet by name. The dr be amaze too. Love this place and I highly recommend them.
## 5 Dr. be my chiropractor and he be a fabulous individual. I've never wait much than few minute for him to see me. The front team ( Both lady " be great with a outstanding care and smile. Thank you guy for all you do.
## 6 Many in our family have see for chiropractic care. He be very warm and friendly, knowledgable, put your mind at ease during his adjustment. He give great explanation. Our 14yo son say, " he be really good at what he do and he be a good person. " We all feel good after visit him. Recommend him to everyone.
## review
## 1 What a wonderful way to start the year! This was my second time back to , and we had a great time. The crowds were very low (seriously, it felt like we had the place to ourselves most of the day.) We walked right into the mineral baths, club mud, and didn't wait in any kind of line for lunch. None of the pools were crowded, and we were even able to enjoy one of the hammocks in the secret garden.\n\nTiffany at the front check-in desk went above and beyond for us regarding the robes. I had requested a plus-sized robe, since after my last review I knew they had added some to their collection. Unfortunately, all of their plus-sized robes were still dirty from the day before. Tiffany was so accommodating, though! She was able to get us robes from the cabana area that fit me perfectly! It is so great to know that not only do they now offer guests of all sizes the option to enjoy a warm robe, but that they really want to make sure you have a good day. Thank you, Tiffany, for everything.\n\nAll of the staff today were in good spirits. The only thing that would have made today better would have been a massage. We'll have to book one next time. My husband and I are going to make our annual New Year's Day tradition!\n\n
## 2 My sister and I brought my mom here for her birthday and overall, we really enjoyed our time here. We're used to going to Korean spas, but this was definitely an upgrade.\n\nPROS:\n- The resort itself is beautiful and so relaxing. Like seriously such a pleasing escape from reality that I needed. It's set up so nicely and feels very luxurious.\n- It was my mom's birthday so she received free admission on birthday with a purchase of a service. Admission is $52, so she booked a manicure for $50 and got in for free. WORTH. My mom had gone 52 years without ever getting her nails done, so it was kind of heartwarming to see how much she loved her experience.\n- The three of us took a Yin Yoga class and really enjoyed it. We definitely want to take advantage of the other class options next time we come.\n- CLUB MUD. We had so much fun there and even made a little clay sculpture. It really does do wonders for your skin, and the area is suprisingly very well-kept.\n- The shower and locker facilities can get pretty crowded, but overall, they are super nice and clean. They have an ample amount of showers, so we didn't have to wait at all.\n- All the staff seemed really friendly and helpful. There's always staff members roaming around, so you always feel somewhat taken care of.\n- I really appreciated the towel and water stands located throughout the resort. So handy and necessary.\n- Parking is free, thank God.\n\nCONS:\n- We went on a fairly cold day (around 60 degrees), so the hot pools were CROWDED,. Like there were a couple of times I touched other people's body parts I definitely did not want to touch. I feel like some of the hot pools exceeded capacity, and I'm sure it was mostly because it was a cold day, but I do wish there were more of the hot pools or they should just be larger!\n- The food is incredibly expensive. Like as ridiculous as Disneyland, which is saying something. Plan to spend around $20 per meal per person. The one thing that was worth it was the nachos ($16 for the small, but this thing is huge).\n- The kitchen moves VERY SLOWLY. Especially the salad section because I came before the lunch rush and still waited 20 minutes to order my salad. The kitchen staff seems a bit incompetent, or maybe it's just run inefficiently.\n- This is more of a side note, but I wish there was a more streamlined reservation system. I made the entire reservation over the phone, which was fine, but it wasn't laid out as clearly as I would have liked it with the premium admissions prices, services, etc. The online one also just seemed really confusing.\n\nOverall, we had a positive experience with just a couple of kinks here and there. We love that there's just a lot to do here and time FLIES when you're here so come as early as you can. We definitely want to try coming back in the summer months when it's warmer!\n\n\n
## 3 I came to with severe back and neck pain. was AMAZING and helped me to feel much better than I have felt for YEARS! The girls up front also are very sweet and always made sure that all my appointments were set and on time! Heather the billing manager was very kind as well, she was AWESOME when it came to dealing with me and my insurance amd was definitely a huge help! I don't know what I would have done without Heather helping me with all of the insurance problems I had!!! She is the BEST, thank you Heather!! I would definitely recommend going to this clinic!!!!
## 4 I have to say.... This is by far the best Chiropractic place I've ever been to. The staff is super friendly and very professional. From the moment I walk in the door I get greeted by name . The Drs are amazing too. Love this place and I highly recommend them.
## 5 Dr. is my chiropractor and he is a fabulous individual. I've never waited more than few minutes for him to see me. The front team (Both ladies" are great with an outstanding care and smile. Thank you guys for all you do.
## 6 Many in our family have seen for chiropractic care. He is very warm and friendly, knowledgable, puts your mind at ease during his adjustments. He gives great explanations. Our 14yo son said, "he is really good at what he does and he is a good person." We all feel better after visiting him. Recommend him to everyone.
## rating
## 1 5
## 2 4
## 3 5
## 4 5
## 5 5
## 6 5
From this table, we are going to subset the reviews by rating by the user of 1 through 5.
rating1 <- subset(Lemma, Lemma$rating==1)
rating2 <- subset(Lemma, Lemma$rating==2)
rating3 <- subset(Lemma, Lemma$rating==3)
rating4 <- subset(Lemma, Lemma$rating==4)
rating5 <- subset(Lemma, Lemma$rating==5)
Lets create a directory for each rating.Erase the eval=FALsE, if you want to run this script. I already have the files.
dir.create('./rating1')
dir.create('./rating2')
dir.create('./rating3')
dir.create('./rating4')
dir.create('./rating5')
r1 <- as.character(rating1$lemmatizedReview)
setwd('./rating1')
for (j in 1:length(r1)){
write(r1[j], paste(paste('rating1',j, sep='.'), '.txt', sep=''))
}
setwd('../')
r2 <- as.character(rating2$lemmatizedReview)
setwd('./rating2')
for (j in 1:length(r2)){
write(r2[j], paste(paste('rating2',j, sep='.'), '.txt', sep=''))
}
setwd('../')
r3 <- as.character(rating3$lemmatizedReview)
setwd('./rating3')
for (j in 1:length(r3)){
write(r3[j], paste(paste('rating3',j, sep='.'), '.txt', sep=''))
}
setwd('../')
r4 <- as.character(rating4$lemmatizedReview)
setwd('./rating4')
for (j in 1:length(r4)){
write(r4[j], paste(paste('rating4',j, sep='.'), '.txt', sep=''))
}
setwd('../')
r5 <- as.character(rating5$lemmatizedReview)
setwd('./rating5')
for (j in 1:length(r5)){
write(r5[j], paste(paste('rating5',j, sep='.'), '.txt', sep=''))
}
setwd('../')
List the files in each folder rating 1-5.
list.files('./rating1')
## [1] "rating1.1.txt" "rating1.10.txt" "rating1.11.txt" "rating1.12.txt"
## [5] "rating1.13.txt" "rating1.14.txt" "rating1.15.txt" "rating1.16.txt"
## [9] "rating1.17.txt" "rating1.18.txt" "rating1.19.txt" "rating1.2.txt"
## [13] "rating1.20.txt" "rating1.21.txt" "rating1.22.txt" "rating1.23.txt"
## [17] "rating1.24.txt" "rating1.25.txt" "rating1.26.txt" "rating1.27.txt"
## [21] "rating1.28.txt" "rating1.29.txt" "rating1.3.txt" "rating1.30.txt"
## [25] "rating1.31.txt" "rating1.32.txt" "rating1.33.txt" "rating1.34.txt"
## [29] "rating1.35.txt" "rating1.36.txt" "rating1.37.txt" "rating1.38.txt"
## [33] "rating1.39.txt" "rating1.4.txt" "rating1.40.txt" "rating1.41.txt"
## [37] "rating1.42.txt" "rating1.43.txt" "rating1.44.txt" "rating1.45.txt"
## [41] "rating1.46.txt" "rating1.47.txt" "rating1.48.txt" "rating1.49.txt"
## [45] "rating1.5.txt" "rating1.50.txt" "rating1.51.txt" "rating1.52.txt"
## [49] "rating1.53.txt" "rating1.54.txt" "rating1.55.txt" "rating1.56.txt"
## [53] "rating1.57.txt" "rating1.58.txt" "rating1.59.txt" "rating1.6.txt"
## [57] "rating1.60.txt" "rating1.61.txt" "rating1.62.txt" "rating1.63.txt"
## [61] "rating1.64.txt" "rating1.65.txt" "rating1.66.txt" "rating1.67.txt"
## [65] "rating1.68.txt" "rating1.69.txt" "rating1.7.txt" "rating1.70.txt"
## [69] "rating1.71.txt" "rating1.72.txt" "rating1.73.txt" "rating1.74.txt"
## [73] "rating1.75.txt" "rating1.76.txt" "rating1.77.txt" "rating1.78.txt"
## [77] "rating1.79.txt" "rating1.8.txt" "rating1.80.txt" "rating1.81.txt"
## [81] "rating1.82.txt" "rating1.83.txt" "rating1.84.txt" "rating1.85.txt"
## [85] "rating1.86.txt" "rating1.87.txt" "rating1.88.txt" "rating1.9.txt"
list.files('./rating2')
## [1] "rating2.1.txt" "rating2.10.txt" "rating2.11.txt" "rating2.12.txt"
## [5] "rating2.13.txt" "rating2.14.txt" "rating2.15.txt" "rating2.16.txt"
## [9] "rating2.17.txt" "rating2.18.txt" "rating2.19.txt" "rating2.2.txt"
## [13] "rating2.20.txt" "rating2.21.txt" "rating2.22.txt" "rating2.23.txt"
## [17] "rating2.24.txt" "rating2.25.txt" "rating2.26.txt" "rating2.27.txt"
## [21] "rating2.28.txt" "rating2.29.txt" "rating2.3.txt" "rating2.30.txt"
## [25] "rating2.31.txt" "rating2.32.txt" "rating2.33.txt" "rating2.34.txt"
## [29] "rating2.4.txt" "rating2.5.txt" "rating2.6.txt" "rating2.7.txt"
## [33] "rating2.8.txt" "rating2.9.txt"
list.files('./rating3')
## [1] "rating3.1.txt" "rating3.10.txt" "rating3.11.txt" "rating3.12.txt"
## [5] "rating3.13.txt" "rating3.14.txt" "rating3.15.txt" "rating3.16.txt"
## [9] "rating3.17.txt" "rating3.18.txt" "rating3.19.txt" "rating3.2.txt"
## [13] "rating3.20.txt" "rating3.21.txt" "rating3.22.txt" "rating3.23.txt"
## [17] "rating3.24.txt" "rating3.25.txt" "rating3.26.txt" "rating3.27.txt"
## [21] "rating3.28.txt" "rating3.29.txt" "rating3.3.txt" "rating3.30.txt"
## [25] "rating3.31.txt" "rating3.32.txt" "rating3.33.txt" "rating3.34.txt"
## [29] "rating3.35.txt" "rating3.36.txt" "rating3.37.txt" "rating3.38.txt"
## [33] "rating3.39.txt" "rating3.4.txt" "rating3.40.txt" "rating3.41.txt"
## [37] "rating3.42.txt" "rating3.43.txt" "rating3.44.txt" "rating3.45.txt"
## [41] "rating3.46.txt" "rating3.47.txt" "rating3.48.txt" "rating3.49.txt"
## [45] "rating3.5.txt" "rating3.50.txt" "rating3.51.txt" "rating3.52.txt"
## [49] "rating3.53.txt" "rating3.54.txt" "rating3.6.txt" "rating3.7.txt"
## [53] "rating3.8.txt" "rating3.9.txt"
list.files('./rating4')
## [1] "rating4.1.txt" "rating4.10.txt" "rating4.100.txt" "rating4.101.txt"
## [5] "rating4.102.txt" "rating4.103.txt" "rating4.11.txt" "rating4.12.txt"
## [9] "rating4.13.txt" "rating4.14.txt" "rating4.15.txt" "rating4.16.txt"
## [13] "rating4.17.txt" "rating4.18.txt" "rating4.19.txt" "rating4.2.txt"
## [17] "rating4.20.txt" "rating4.21.txt" "rating4.22.txt" "rating4.23.txt"
## [21] "rating4.24.txt" "rating4.25.txt" "rating4.26.txt" "rating4.27.txt"
## [25] "rating4.28.txt" "rating4.29.txt" "rating4.3.txt" "rating4.30.txt"
## [29] "rating4.31.txt" "rating4.32.txt" "rating4.33.txt" "rating4.34.txt"
## [33] "rating4.35.txt" "rating4.36.txt" "rating4.37.txt" "rating4.38.txt"
## [37] "rating4.39.txt" "rating4.4.txt" "rating4.40.txt" "rating4.41.txt"
## [41] "rating4.42.txt" "rating4.43.txt" "rating4.44.txt" "rating4.45.txt"
## [45] "rating4.46.txt" "rating4.47.txt" "rating4.48.txt" "rating4.49.txt"
## [49] "rating4.5.txt" "rating4.50.txt" "rating4.51.txt" "rating4.52.txt"
## [53] "rating4.53.txt" "rating4.54.txt" "rating4.55.txt" "rating4.56.txt"
## [57] "rating4.57.txt" "rating4.58.txt" "rating4.59.txt" "rating4.6.txt"
## [61] "rating4.60.txt" "rating4.61.txt" "rating4.62.txt" "rating4.63.txt"
## [65] "rating4.64.txt" "rating4.65.txt" "rating4.66.txt" "rating4.67.txt"
## [69] "rating4.68.txt" "rating4.69.txt" "rating4.7.txt" "rating4.70.txt"
## [73] "rating4.71.txt" "rating4.72.txt" "rating4.73.txt" "rating4.74.txt"
## [77] "rating4.75.txt" "rating4.76.txt" "rating4.77.txt" "rating4.78.txt"
## [81] "rating4.79.txt" "rating4.8.txt" "rating4.80.txt" "rating4.81.txt"
## [85] "rating4.82.txt" "rating4.83.txt" "rating4.84.txt" "rating4.85.txt"
## [89] "rating4.86.txt" "rating4.87.txt" "rating4.88.txt" "rating4.89.txt"
## [93] "rating4.9.txt" "rating4.90.txt" "rating4.91.txt" "rating4.92.txt"
## [97] "rating4.93.txt" "rating4.94.txt" "rating4.95.txt" "rating4.96.txt"
## [101] "rating4.97.txt" "rating4.98.txt" "rating4.99.txt"
list.files('./rating5')
## [1] "rating5.1.txt" "rating5.10.txt" "rating5.100.txt" "rating5.101.txt"
## [5] "rating5.102.txt" "rating5.103.txt" "rating5.104.txt" "rating5.105.txt"
## [9] "rating5.106.txt" "rating5.107.txt" "rating5.108.txt" "rating5.109.txt"
## [13] "rating5.11.txt" "rating5.110.txt" "rating5.111.txt" "rating5.112.txt"
## [17] "rating5.113.txt" "rating5.114.txt" "rating5.115.txt" "rating5.116.txt"
## [21] "rating5.117.txt" "rating5.118.txt" "rating5.119.txt" "rating5.12.txt"
## [25] "rating5.120.txt" "rating5.121.txt" "rating5.122.txt" "rating5.123.txt"
## [29] "rating5.124.txt" "rating5.125.txt" "rating5.126.txt" "rating5.127.txt"
## [33] "rating5.128.txt" "rating5.129.txt" "rating5.13.txt" "rating5.130.txt"
## [37] "rating5.131.txt" "rating5.132.txt" "rating5.133.txt" "rating5.134.txt"
## [41] "rating5.135.txt" "rating5.136.txt" "rating5.137.txt" "rating5.138.txt"
## [45] "rating5.139.txt" "rating5.14.txt" "rating5.140.txt" "rating5.141.txt"
## [49] "rating5.142.txt" "rating5.143.txt" "rating5.144.txt" "rating5.145.txt"
## [53] "rating5.146.txt" "rating5.147.txt" "rating5.148.txt" "rating5.149.txt"
## [57] "rating5.15.txt" "rating5.150.txt" "rating5.151.txt" "rating5.152.txt"
## [61] "rating5.153.txt" "rating5.154.txt" "rating5.155.txt" "rating5.156.txt"
## [65] "rating5.157.txt" "rating5.158.txt" "rating5.159.txt" "rating5.16.txt"
## [69] "rating5.160.txt" "rating5.161.txt" "rating5.162.txt" "rating5.163.txt"
## [73] "rating5.164.txt" "rating5.165.txt" "rating5.166.txt" "rating5.167.txt"
## [77] "rating5.168.txt" "rating5.169.txt" "rating5.17.txt" "rating5.170.txt"
## [81] "rating5.171.txt" "rating5.172.txt" "rating5.173.txt" "rating5.174.txt"
## [85] "rating5.175.txt" "rating5.176.txt" "rating5.177.txt" "rating5.178.txt"
## [89] "rating5.179.txt" "rating5.18.txt" "rating5.180.txt" "rating5.181.txt"
## [93] "rating5.182.txt" "rating5.183.txt" "rating5.184.txt" "rating5.185.txt"
## [97] "rating5.186.txt" "rating5.187.txt" "rating5.188.txt" "rating5.189.txt"
## [101] "rating5.19.txt" "rating5.190.txt" "rating5.191.txt" "rating5.192.txt"
## [105] "rating5.193.txt" "rating5.194.txt" "rating5.195.txt" "rating5.196.txt"
## [109] "rating5.197.txt" "rating5.198.txt" "rating5.199.txt" "rating5.2.txt"
## [113] "rating5.20.txt" "rating5.200.txt" "rating5.201.txt" "rating5.202.txt"
## [117] "rating5.203.txt" "rating5.204.txt" "rating5.205.txt" "rating5.206.txt"
## [121] "rating5.207.txt" "rating5.208.txt" "rating5.209.txt" "rating5.21.txt"
## [125] "rating5.210.txt" "rating5.211.txt" "rating5.212.txt" "rating5.213.txt"
## [129] "rating5.214.txt" "rating5.215.txt" "rating5.216.txt" "rating5.217.txt"
## [133] "rating5.218.txt" "rating5.219.txt" "rating5.22.txt" "rating5.220.txt"
## [137] "rating5.221.txt" "rating5.222.txt" "rating5.223.txt" "rating5.224.txt"
## [141] "rating5.225.txt" "rating5.226.txt" "rating5.227.txt" "rating5.228.txt"
## [145] "rating5.229.txt" "rating5.23.txt" "rating5.230.txt" "rating5.231.txt"
## [149] "rating5.232.txt" "rating5.233.txt" "rating5.234.txt" "rating5.235.txt"
## [153] "rating5.236.txt" "rating5.237.txt" "rating5.238.txt" "rating5.239.txt"
## [157] "rating5.24.txt" "rating5.240.txt" "rating5.241.txt" "rating5.242.txt"
## [161] "rating5.243.txt" "rating5.244.txt" "rating5.245.txt" "rating5.246.txt"
## [165] "rating5.247.txt" "rating5.248.txt" "rating5.249.txt" "rating5.25.txt"
## [169] "rating5.250.txt" "rating5.251.txt" "rating5.252.txt" "rating5.253.txt"
## [173] "rating5.254.txt" "rating5.255.txt" "rating5.256.txt" "rating5.257.txt"
## [177] "rating5.258.txt" "rating5.259.txt" "rating5.26.txt" "rating5.260.txt"
## [181] "rating5.261.txt" "rating5.262.txt" "rating5.263.txt" "rating5.264.txt"
## [185] "rating5.265.txt" "rating5.266.txt" "rating5.267.txt" "rating5.268.txt"
## [189] "rating5.269.txt" "rating5.27.txt" "rating5.270.txt" "rating5.271.txt"
## [193] "rating5.272.txt" "rating5.273.txt" "rating5.274.txt" "rating5.275.txt"
## [197] "rating5.276.txt" "rating5.277.txt" "rating5.278.txt" "rating5.279.txt"
## [201] "rating5.28.txt" "rating5.280.txt" "rating5.281.txt" "rating5.282.txt"
## [205] "rating5.283.txt" "rating5.284.txt" "rating5.285.txt" "rating5.286.txt"
## [209] "rating5.287.txt" "rating5.288.txt" "rating5.289.txt" "rating5.29.txt"
## [213] "rating5.290.txt" "rating5.291.txt" "rating5.292.txt" "rating5.293.txt"
## [217] "rating5.294.txt" "rating5.295.txt" "rating5.296.txt" "rating5.297.txt"
## [221] "rating5.298.txt" "rating5.299.txt" "rating5.3.txt" "rating5.30.txt"
## [225] "rating5.300.txt" "rating5.301.txt" "rating5.302.txt" "rating5.303.txt"
## [229] "rating5.304.txt" "rating5.305.txt" "rating5.306.txt" "rating5.307.txt"
## [233] "rating5.308.txt" "rating5.309.txt" "rating5.31.txt" "rating5.310.txt"
## [237] "rating5.311.txt" "rating5.312.txt" "rating5.313.txt" "rating5.314.txt"
## [241] "rating5.315.txt" "rating5.316.txt" "rating5.317.txt" "rating5.318.txt"
## [245] "rating5.319.txt" "rating5.32.txt" "rating5.320.txt" "rating5.321.txt"
## [249] "rating5.322.txt" "rating5.323.txt" "rating5.324.txt" "rating5.325.txt"
## [253] "rating5.326.txt" "rating5.327.txt" "rating5.328.txt" "rating5.329.txt"
## [257] "rating5.33.txt" "rating5.330.txt" "rating5.331.txt" "rating5.332.txt"
## [261] "rating5.333.txt" "rating5.334.txt" "rating5.335.txt" "rating5.34.txt"
## [265] "rating5.35.txt" "rating5.36.txt" "rating5.37.txt" "rating5.38.txt"
## [269] "rating5.39.txt" "rating5.4.txt" "rating5.40.txt" "rating5.41.txt"
## [273] "rating5.42.txt" "rating5.43.txt" "rating5.44.txt" "rating5.45.txt"
## [277] "rating5.46.txt" "rating5.47.txt" "rating5.48.txt" "rating5.49.txt"
## [281] "rating5.5.txt" "rating5.50.txt" "rating5.51.txt" "rating5.52.txt"
## [285] "rating5.53.txt" "rating5.54.txt" "rating5.55.txt" "rating5.56.txt"
## [289] "rating5.57.txt" "rating5.58.txt" "rating5.59.txt" "rating5.6.txt"
## [293] "rating5.60.txt" "rating5.61.txt" "rating5.62.txt" "rating5.63.txt"
## [297] "rating5.64.txt" "rating5.65.txt" "rating5.66.txt" "rating5.67.txt"
## [301] "rating5.68.txt" "rating5.69.txt" "rating5.7.txt" "rating5.70.txt"
## [305] "rating5.71.txt" "rating5.72.txt" "rating5.73.txt" "rating5.74.txt"
## [309] "rating5.75.txt" "rating5.76.txt" "rating5.77.txt" "rating5.78.txt"
## [313] "rating5.79.txt" "rating5.8.txt" "rating5.80.txt" "rating5.81.txt"
## [317] "rating5.82.txt" "rating5.83.txt" "rating5.84.txt" "rating5.85.txt"
## [321] "rating5.86.txt" "rating5.87.txt" "rating5.88.txt" "rating5.89.txt"
## [325] "rating5.9.txt" "rating5.90.txt" "rating5.91.txt" "rating5.92.txt"
## [329] "rating5.93.txt" "rating5.94.txt" "rating5.95.txt" "rating5.96.txt"
## [333] "rating5.97.txt" "rating5.98.txt" "rating5.99.txt"
Here is where we start removing the stopwords we kept in the first copy of this program.
R1 <- Corpus(DirSource("rating1"))
R1
## <<SimpleCorpus>>
## Metadata: corpus specific: 1, document level (indexed): 0
## Content: documents: 88
R1 <- tm_map(R1, removePunctuation)
R1 <- tm_map(R1, removeNumbers)
R1 <- tm_map(R1, tolower) # I want to capture the emotion the users write with when All caps
R1 <- tm_map(R1, removeWords, stopwords("english"))#Also the number of 'and's' and 'not' etc
R1 <- tm_map(R1, stripWhitespace)
#+R1 <- tm_map(R1, stemDocument)#we already lemmatized the document it is more robust to meaning
dtmR1 <- DocumentTermMatrix(R1)
freq <- colSums(as.matrix(dtmR1))
wordcloud(names(freq), freq, min.freq=30,colors=brewer.pal(3,'Dark2'))
freqR1 <- as.data.frame(colSums(as.matrix(dtmR1)))
colnames(freqR1) <- 'rating1'
freqR1$id <- row.names(freqR1)
FREQ_R1 <- freqR1[order(freqR1$rating1,decreasing=TRUE),]
row.names(FREQ_R1) <- NULL
head(FREQ_R1,50)
## rating1 id
## 1 75 get
## 2 74 time
## 3 65 tell
## 4 57 good
## 5 55 say
## 6 51 ask
## 7 50 day
## 8 50 place
## 9 47 can
## 10 45 come
## 11 45 didnt
## 12 45 service
## 13 44 back
## 14 43 even
## 15 42 just
## 16 42 make
## 17 37 cabana
## 18 36 experience
## 19 35 much
## 20 34 bad
## 21 34 customer
## 22 33 call
## 23 33 food
## 24 32 check
## 25 31 will
## 26 31 manager
## 27 29 like
## 28 28 need
## 29 28 dont
## 30 28 one
## 31 28 pay
## 32 27 see
## 33 27 give
## 34 26 robert
## 35 26 try
## 36 25 never
## 37 25 use
## 38 25 wasnt
## 39 24 charge
## 40 24 ever
## 41 24 store
## 42 23 also
## 43 23 take
## 44 22 people
## 45 22 ive
## 46 22 little
## 47 22 massage
## 48 21 front
## 49 21 line
## 50 21 pool
People in general, speaking as American born and raised, when angry usually speak out of anger and disappointment when feeling they have been had, taken, or in some way been victimized for not getting what they paid for when promised or convinced into getting that experience, purchase, feeling, etc. As you can see by not excluding the stop words we now have a count of the number of connections to persuade the reader that he or she was wronged or rewarded by the number of interjections. We learn this early in persuasive writing in grammar school to have at least five paragraphs to build a persuasive story with an introduction, three body paragraphs, and a conclusion, and again in English composition in lower level undergrad work. This means build on three points or perspectives in the body paragraphs to persuade the reader your right, and find them if they aren’t readily considered.
Lets do the same for the other four folders in getting our ordered word counts or frequencies.
R2 <- Corpus(DirSource("rating2"))
R2
## <<SimpleCorpus>>
## Metadata: corpus specific: 1, document level (indexed): 0
## Content: documents: 34
R2 <- tm_map(R2, removePunctuation)
R2 <- tm_map(R2, removeNumbers)
R2 <- tm_map(R2, tolower)
R2 <- tm_map(R2, removeWords, stopwords("english"))
R2 <- tm_map(R2, stripWhitespace)
dtmR2 <- DocumentTermMatrix(R2)
freq2 <- colSums(as.matrix(dtmR2))
wordcloud(names(freq2), freq2, min.freq=25,colors=brewer.pal(3,'Dark2'))
freqR2 <- as.data.frame(colSums(as.matrix(dtmR2)))
colnames(freqR2) <- 'rating2'
freqR2$id <- row.names(freqR2)
FREQ_R2 <- freqR2[order(freqR2$rating2,decreasing=TRUE),]
row.names(FREQ_R2) <- NULL
head(FREQ_R2,50)
## rating2 id
## 1 44 get
## 2 37 spa
## 3 36 just
## 4 33 experience
## 5 33 good
## 6 28 drink
## 7 28 time
## 8 27 make
## 9 27 day
## 10 26 can
## 11 26 people
## 12 25 check
## 13 24 tell
## 14 23 even
## 15 22 relax
## 16 22 come
## 17 22 like
## 18 22 line
## 19 22 pool
## 20 22 service
## 21 20 much
## 22 19 food
## 23 18 grotto
## 24 18 pay
## 25 18 place
## 26 18 really
## 27 18 one
## 28 18 charge
## 29 17 dont
## 30 17 feel
## 31 16 water
## 32 14 around
## 33 14 see
## 34 14 pack
## 35 14 absolutely
## 36 14 reservation
## 37 14 another
## 38 14 card
## 39 13 back
## 40 13 want
## 41 12 first
## 42 12 use
## 43 12 never
## 44 12 take
## 45 12 mud
## 46 12 give
## 47 12 since
## 48 11 also
## 49 11 end
## 50 11 long
R3 <- Corpus(DirSource("rating3"))
R3
## <<SimpleCorpus>>
## Metadata: corpus specific: 1, document level (indexed): 0
## Content: documents: 54
R3 <- tm_map(R3, removePunctuation)
R3 <- tm_map(R3, removeNumbers)
R3 <- tm_map(R3, tolower)
R3 <- tm_map(R3, removeWords, stopwords("english"))
R3 <- tm_map(R3, stripWhitespace)
dtmR3 <- DocumentTermMatrix(R3)
freq3 <- colSums(as.matrix(dtmR3))
wordcloud(names(freq3), freq3, min.freq=25,colors=brewer.pal(3,'Dark2'))
freqR3 <- as.data.frame(colSums(as.matrix(dtmR3)))
colnames(freqR3) <- 'rating3'
freqR3$id <- row.names(freqR3)
FREQ_R3 <- freqR3[order(freqR3$rating3,decreasing=TRUE),]
row.names(FREQ_R3) <- NULL
head(FREQ_R3,50)
## rating3 id
## 1 52 get
## 2 38 good
## 3 35 spa
## 4 33 just
## 5 32 time
## 6 32 like
## 7 30 cabana
## 8 28 much
## 9 28 pool
## 10 27 day
## 11 27 feel
## 12 25 can
## 13 24 come
## 14 23 place
## 15 22 love
## 16 21 crowd
## 17 20 really
## 18 20 price
## 19 19 little
## 20 19 check
## 21 18 one
## 22 18 wait
## 23 18 service
## 24 17 massage
## 25 17 people
## 26 17 grotto
## 27 17 food
## 28 16 store
## 29 16 ive
## 30 15 thing
## 31 14 line
## 32 14 take
## 33 14 mud
## 34 14 make
## 35 13 great
## 36 13 look
## 37 13 dont
## 38 12 item
## 39 12 will
## 40 12 experience
## 41 12 visit
## 42 12 order
## 43 12 water
## 44 11 also
## 45 11 relax
## 46 11 keep
## 47 11 first
## 48 11 nice
## 49 10 give
## 50 10 hour
R4 <- Corpus(DirSource("rating4"))
R4
## <<SimpleCorpus>>
## Metadata: corpus specific: 1, document level (indexed): 0
## Content: documents: 103
R4 <- tm_map(R4, removePunctuation)
R4 <- tm_map(R4, removeNumbers)
R4 <- tm_map(R4, tolower)
R4 <- tm_map(R4, removeWords, stopwords("english"))
R4 <- tm_map(R4, stripWhitespace)
dtmR4 <- DocumentTermMatrix(R4)
freq4 <- colSums(as.matrix(dtmR4))
wordcloud(names(freq4), freq4, min.freq=25,colors=brewer.pal(3,'Dark2'))
freqR4 <- as.data.frame(colSums(as.matrix(dtmR4)))
colnames(freqR4) <- 'rating4'
freqR4$id <- row.names(freqR4)
FREQ_R4 <- freqR4[order(freqR4$rating4,decreasing=TRUE),]
row.names(FREQ_R4) <- NULL
head(FREQ_R4,50)
## rating4 id
## 1 103 good
## 2 100 get
## 3 80 pool
## 4 75 day
## 5 73 time
## 6 65 like
## 7 65 much
## 8 64 can
## 9 57 massage
## 10 54 great
## 11 52 experience
## 12 50 mud
## 13 48 just
## 14 44 come
## 15 42 food
## 16 38 relax
## 17 38 spa
## 18 37 love
## 19 36 one
## 20 35 price
## 21 35 service
## 22 34 feel
## 23 34 little
## 24 34 thing
## 25 32 make
## 26 32 want
## 27 32 place
## 28 31 also
## 29 31 back
## 30 31 hot
## 31 31 park
## 32 31 really
## 33 31 room
## 34 29 area
## 35 29 bath
## 36 28 grotto
## 37 27 cold
## 38 27 take
## 39 26 people
## 40 26 facial
## 41 26 drink
## 42 25 wait
## 43 25 check
## 44 25 robe
## 45 24 nice
## 46 24 put
## 47 23 overall
## 48 23 staff
## 49 23 dont
## 50 22 even
R5 <- Corpus(DirSource("rating5"))
R5
## <<SimpleCorpus>>
## Metadata: corpus specific: 1, document level (indexed): 0
## Content: documents: 335
R5 <- tm_map(R5, removePunctuation)
R5 <- tm_map(R5, removeNumbers)
R5 <- tm_map(R5, tolower)
R5 <- tm_map(R5, removeWords, stopwords("english"))
R5 <- tm_map(R5, stripWhitespace)
dtmR5 <- DocumentTermMatrix(R5)
freq5 <- colSums(as.matrix(dtmR5))
wordcloud(names(freq5), freq5, min.freq=75,colors=brewer.pal(3,'Dark2'))
freqR5 <- as.data.frame(colSums(as.matrix(dtmR5)))
colnames(freqR5) <- 'rating5'
freqR5$id <- row.names(freqR5)
FREQ_R5 <- freqR5[order(freqR5$rating5,decreasing=TRUE),]
row.names(FREQ_R5) <- NULL
head(FREQ_R5,50)
## rating5 id
## 1 272 good
## 2 178 get
## 3 152 staff
## 4 150 great
## 5 137 time
## 6 135 massage
## 7 130 come
## 8 128 place
## 9 122 can
## 10 117 much
## 11 113 love
## 12 110 make
## 13 109 day
## 14 108 feel
## 15 105 always
## 16 104 back
## 17 104 recommend
## 18 92 amaze
## 19 91 experience
## 20 90 pain
## 21 85 friendly
## 22 84 also
## 23 83 service
## 24 80 really
## 25 79 just
## 26 77 pool
## 27 71 will
## 28 70 like
## 29 70 year
## 30 70 office
## 31 69 first
## 32 69 treatment
## 33 68 care
## 34 68 help
## 35 67 know
## 36 67 one
## 37 67 take
## 38 66 price
## 39 65 see
## 40 63 chiropractor
## 41 63 ive
## 42 62 need
## 43 61 relax
## 44 60 adjustment
## 45 60 work
## 46 58 highly
## 47 56 nice
## 48 56 store
## 49 53 even
## 50 53 spa
Lets add a feature for the ratio of word frequencies to the number of documents in the reviews with each rating 1-5.
l1 <- length(list.files('./rating1'))
l2 <- length(list.files('./rating2'))
l3 <- length(list.files('./rating3'))
l4 <- length(list.files('./rating4'))
l5 <- length(list.files('./rating5'))
FREQ_R1$termTotalFilesRatio <-FREQ_R1$rating1/l1
FREQ_R2$termTotalFilesRatio <- FREQ_R2$rating2/l2
FREQ_R3$termTotalFilesRatio <- FREQ_R3$rating3/l3
FREQ_R4$termTotalFilesRatio <- FREQ_R4$rating4/l4
FREQ_R5$termTotalFilesRatio <- FREQ_R5$rating5/l5
FREQ_R1$termTotalTermsRatio <-FREQ_R1$rating1/length(FREQ_R1$id)
FREQ_R2$termTotalTermsRatio <- FREQ_R2$rating2/length(FREQ_R2$id)
FREQ_R3$termTotalTermsRatio <- FREQ_R3$rating3/length(FREQ_R3$id)
FREQ_R4$termTotalTermsRatio <- FREQ_R4$rating4/length(FREQ_R4$id)
FREQ_R5$termTotalTermsRatio <- FREQ_R5$rating5/length(FREQ_R5$id)
Lets change the column names of each rating table.
colnames(FREQ_R1) <-c('Rating1termfrequency',
'term',
'Rating1_termTotalFilesRatio',
'Rating1_termTotalTermsRatio')
colnames(FREQ_R2) <-c('Rating2termfrequency',
'term',
'Rating2_termTotalFilesRatio',
'Rating2_termTotalTermsRatio')
colnames(FREQ_R3) <-c('Rating3termfrequency',
'term',
'Rating3_termTotalFilesRatio',
'Rating3_termTotalTermsRatio')
colnames(FREQ_R4) <-c('Rating4termfrequency',
'term',
'Rating4_termTotalFilesRatio',
'Rating4_termTotalTermsRatio')
colnames(FREQ_R5) <-c('Rating5termfrequency',
'term',
'Rating5_termTotalFilesRatio',
'Rating5_termTotalTermsRatio')
Lets now combine all these term frequencies.
m1 <- merge(FREQ_R1,FREQ_R2, by.x='term', by.y='term', all=TRUE)
m2 <- merge(m1,FREQ_R3, by.x='term', by.y='term', all=TRUE)
m3 <- merge(m2,FREQ_R4, by.x='term', by.y='term', all=TRUE)
m4 <- merge(m3,FREQ_R5, by.x='term', by.y='term', all=TRUE)
allTerms <- m4 %>% select(term,Rating1termfrequency,Rating2termfrequency,
Rating3termfrequency,Rating4termfrequency,
Rating5termfrequency,Rating1_termTotalFilesRatio,
Rating2_termTotalFilesRatio,Rating3_termTotalFilesRatio,
Rating4_termTotalFilesRatio,Rating5_termTotalFilesRatio,
everything())
colnames(allTerms)
## [1] "term" "Rating1termfrequency"
## [3] "Rating2termfrequency" "Rating3termfrequency"
## [5] "Rating4termfrequency" "Rating5termfrequency"
## [7] "Rating1_termTotalFilesRatio" "Rating2_termTotalFilesRatio"
## [9] "Rating3_termTotalFilesRatio" "Rating4_termTotalFilesRatio"
## [11] "Rating5_termTotalFilesRatio" "Rating1_termTotalTermsRatio"
## [13] "Rating2_termTotalTermsRatio" "Rating3_termTotalTermsRatio"
## [15] "Rating4_termTotalTermsRatio" "Rating5_termTotalTermsRatio"
Lets add a median field for the word in each rating to this table.
allTerms$MedianCount <- apply(allTerms[2:6],1,median, na.rm=TRUE)
medianRating1 <- apply(allTerms[2],2,median,na.rm=TRUE)
medianRating2 <- apply(allTerms[3],2,median,na.rm=TRUE)
medianRating3 <- apply(allTerms[4],2,median,na.rm=TRUE)
medianRating4 <- apply(allTerms[5],2,median,na.rm=TRUE)
medianRating5 <- apply(allTerms[6],2,median,na.rm=TRUE)
meanRating1 <- floor(apply(allTerms[2],2,mean,na.rm=TRUE))
meanRating2 <- floor(apply(allTerms[3],2,mean,na.rm=TRUE))
meanRating3 <- floor(apply(allTerms[4],2,mean,na.rm=TRUE))
meanRating4 <- floor(apply(allTerms[5],2,mean,na.rm=TRUE))
meanRating5 <- floor(apply(allTerms[6],2,mean,na.rm=TRUE))
allTerms2 <- allTerms[order(allTerms$MedianCount,decreasing=TRUE),]
Lets add a bottom and top percentile to this table based on the terms in each rating subset.
allTerms2$Quantile5_R1 <- ifelse(allTerms2$Rating1termfrequency <=
quantile(allTerms2$Rating1termfrequency, .05,na.rm=TRUE),
1,0)
allTerms2$Quantile95_R1 <- ifelse(allTerms2$Rating1termfrequency >=
quantile(allTerms2$Rating1termfrequency, .95,na.rm=TRUE),
1,0)
allTerms2$Quantile5_R2 <- ifelse(allTerms2$Rating2termfrequency <=
quantile(allTerms2$Rating2termfrequency, .05,na.rm=TRUE),
1,0)
allTerms2$Quantile95_R2 <- ifelse(allTerms2$Rating2termfrequency >=
quantile(allTerms2$Rating2termfrequency, .95,na.rm=TRUE),
1,0)
allTerms2$Quantile5_R3 <- ifelse(allTerms2$Rating3termfrequency <=
quantile(allTerms2$Rating3termfrequency, .05,na.rm=TRUE),
1,0)
allTerms2$Quantile95_R3 <- ifelse(allTerms2$Rating3termfrequency >=
quantile(allTerms2$Rating3termfrequency, .95,na.rm=TRUE),
1,0)
allTerms2$Quantile5_R4 <- ifelse(allTerms2$Rating4termfrequency <=
quantile(allTerms2$Rating4termfrequency, .05,na.rm=TRUE),
1,0)
allTerms2$Quantile95_R4 <- ifelse(allTerms2$Rating4termfrequency >=
quantile(allTerms2$Rating4termfrequency, .95,na.rm=TRUE),
1,0)
allTerms2$Quantile5_R5 <- ifelse(allTerms2$Rating5termfrequency <=
quantile(allTerms2$Rating5termfrequency, .05,na.rm=TRUE),
1,0)
allTerms2$Quantile95_R5 <- ifelse(allTerms2$Rating5termfrequency >=
quantile(allTerms2$Rating5termfrequency, .95,na.rm=TRUE),
1,0)
We have to keep this data wide, but it is useful to filter by, and extracting those words more used in each rating for each review.
goodGreat <- subset(allTerms2, allTerms2$Quantile95_R5==1 &
allTerms2$Quantile95_R4==1 &
allTerms2$Rating5termfrequency > allTerms2$MedianCount &
allTerms2$Rating4termfrequency > allTerms2$MedianCount |
allTerms2$Quantile5_R5==1 &
allTerms2$Quantile5_R4==1 |
allTerms2$Rating5termfrequency > meanRating5 |
allTerms2$Rating4termfrequency > meanRating4
)
average <- subset(allTerms2, allTerms2$Quantile95_R3==1 &
allTerms2$Quantile95_R2==1 &
allTerms2$Rating3termfrequency > allTerms2$MedianCount &
allTerms2$Rating2termfrequency > allTerms2$MedianCount |
allTerms2$Quantile5_R3==1 &
allTerms2$Quantile5_R2==1 |
allTerms2$Rating3termfrequency > meanRating3 |
allTerms2$Rating2termfrequency > meanRating2
)
poor <- subset(allTerms2, allTerms2$Quantile95_R1==1 &
allTerms2$Quantile95_R2==1 &
allTerms2$Rating1termfrequency > allTerms2$MedianCount &
allTerms2$Rating2termfrequency > allTerms2$MedianCount |
allTerms2$Quantile5_R1==1 &
allTerms2$Quantile5_R2==1 |
allTerms2$Rating1termfrequency > meanRating1 |
allTerms2$Rating2termfrequency > meanRating2
)
Here is bar chart of the word counts for the poor ratings.
wf <- data.frame(word=poor$term, freq=poor$Rating1termfrequency)
p <- ggplot(subset(wf, freq>40), aes(word, freq))
p <- p + geom_bar(stat= 'identity')
p <- p + theme(axis.text.x=element_text(angle=90, hjust=1))
p
Lets make a word cloud of each of these data tables terms by weights of the lowest for poor, highest for average, and highest for goodGreat The NAs have to be removed before using word cloud.
poorNA <- poor[complete.cases(poor$Rating1termfrequency),]
Poor1 <- as.data.frame(t(poorNA$Rating1termfrequency))
colnames(Poor1) <- poorNA$term
freqPoor <- colSums(as.matrix(Poor1))
wordcloud(names(freqPoor), freqPoor, min.freq=25,
colors=brewer.pal(6,'Dark2'))
wordcloud(names(freqPoor), freqPoor, min.freq=25,colors=brewer.pal(3,'Dark2'))
Here is bar chart of the word counts for the average ratings.
wf <- data.frame(word=average$term, freq=average$Rating3termfrequency)
p <- ggplot(subset(wf, freq>25), aes(word, freq))
p <- p + geom_bar(stat= 'identity')
p <- p + theme(axis.text.x=element_text(angle=90, hjust=1))
p
Lets make a word cloud.
avgNA <- average[complete.cases(average$Rating3termfrequency),]
Avg1 <- as.data.frame(t(avgNA$Rating3termfrequency))
colnames(Avg1) <- avgNA$term
freqAvg <- colSums(as.matrix(Avg1))
wordcloud(names(freqAvg), freqAvg, min.freq=20,
colors=brewer.pal(6,'Dark2'))
wordcloud(names(freqAvg), freqAvg, min.freq=25,colors=brewer.pal(3,'Dark2'))
Here is bar chart of the word counts for the good or great ratings.
wf <- data.frame(word=goodGreat$term, freq=goodGreat$Rating5termfrequency)
p <- ggplot(subset(wf, freq>70), aes(word, freq))
p <- p + geom_bar(stat= 'identity')
p <- p + theme(axis.text.x=element_text(angle=90, hjust=1))
p
Lets make a word cloud.
grtNA <- goodGreat[complete.cases(goodGreat$Rating5termfrequency),]
Grt1 <- as.data.frame(t(grtNA$Rating5termfrequency))
colnames(Grt1) <- grtNA$term
Grt1 <- Grt1[,-c(1:4)] #remove the first 4 words, (the,and,for,have)
freqGrt <- colSums(as.matrix(Grt1))
wordcloud(names(freqGrt), freqGrt, min.freq=80,
colors=brewer.pal(6,'Dark2'))
wordcloud(names(freqGrt), freqGrt, min.freq=95,colors=brewer.pal(3,'Dark2'))
That was a great way to look at the word clouds of these ratings and the words in each set of words in the top and bottom 5th percentiles as well as higher than the median or mean values. The last couple of word plots I removed the interjection words at the top of the list. Otherwise, you would have seen and,the,for, and have. But the for is a keyword and the data table had to be sliced instead of deselecting those words.
We still haven’t done predictive analytics to predict the rating by the review. We will do that next. I would also like to create a visNetwork of these words, with the ratings, and the business type these words are associated with.
The way that sentiment analysis works is to build the document term matrix (dtm) of counts based on the reveiws, and use those counts of words and given ratings to determine the best fit from any particular algorithm that can predict a review as being a specific rating. We have the dtms of all five of our ratings. But we don’t have anything set up manually to count all those words from every review or at least any keywords to build those models in predicting our reviews. Normally, you have each row in a dtm is a review, and the columns are each specific word, and evertime that word is found, the word will be added to its last count to get a final count of each word per document. We could do something like this based on our key words.
We could also quickly jump over to python and wait a bit in running the datatable we cleaned up into a bunch of algorithms like random forest, decision trees, generalized linear models, boosted trees, naive bayes, etc. Or we could look up the text mining and natural language processing packages in the libraries we attached to this document or add to as needed.
Since this document has been manual from the beginning by cleaning up and extracting features from the reviews. We could just use those features, instead of the words, or we could pick a handful of words, even stopwords, that our program will count in each review, and use as features to predict the reviews with what we already know how to do from previous work in github and rpubs.
Lets look again at the features we do have from our big cleaned up table.
colnames(Reviews13)
## [1] "userReviewSeries" "userReviewOnlyContent" "userRatingSeries"
## [4] "userRatingValue" "businessReplied" "businessReplyContent"
## [7] "userReviewContent" "LowAvgHighCost" "businessType"
## [10] "cityState" "friends" "reviews"
## [13] "photos" "eliteStatus" "userName"
## [16] "Date" "userBusinessPhotos" "userCheckIns"
Our target variable would be the 4th column feature above called userRatingValue. We can keep every feature column except the 7th for userReveiwContent that is not our cleaned up review feature and Date. Although, we could get the day of the date feature, because that might have a value added benefit to predicting the rating from these reviews. We also don’t need the business Reply Content and won’t need the user reviews cleaned up as a predictor once we extract the keyword counts we want. We will just use the words we saw from our word clouds above for a poor, average, or great review subsets. Lets keep the top 10 from each, including the stopwords.
The poor ratings keywords are for ratings of 1 or 2.
KW_poor <- poor %>% select(term,Rating1termfrequency,Rating2termfrequency)
KW_poor$medianLowRate <- apply(KW_poor[2:3],1,median, na.rm=TRUE)
keywords_low <- KW_poor[order(KW_poor$medianLowRate,decreasing=TRUE)[1:10],]
keywords_low
## term Rating1termfrequency Rating2termfrequency medianLowRate
## 1308 get 75 44 59.5
## 3192 time 74 28 51.0
## 1336 good 57 33 45.0
## 3124 tell 65 24 44.5
## 1684 just 42 36 39.0
## 834 day 50 27 38.5
## 490 can 47 26 36.5
## 1123 experience 36 33 34.5
## 1860 make 42 27 34.5
## 2297 place 50 18 34.0
We can now use these as our poor keywords.
low_keys <- as.data.frame(t(keywords_low$medianLowRate))
colnames(low_keys) <- keywords_low$term
row.names(low_keys) <- 'lowRating'
low_keys
## get time good tell just day can experience make place
## lowRating 59.5 51 45 44.5 39 38.5 36.5 34.5 34.5 34
And these are our average rating keywords. from the median of 2-4 ratings.
KW_avg <- average %>% select(term,Rating2termfrequency,Rating3termfrequency,
Rating4termfrequency)
KW_avg$medianAvgRate <- apply(KW_avg[2:4],1,median, na.rm=TRUE)
keywords_avg <- KW_avg[order(KW_avg$medianAvgRate,decreasing=TRUE)[1:10],]
keywords_avg
## term Rating2termfrequency Rating3termfrequency Rating4termfrequency
## 1308 get 44 52 100
## 1336 good 33 38 103
## 2927 spa 37 35 38
## 1684 just 36 33 48
## 1123 experience 33 12 52
## 3192 time 28 32 73
## 1786 like 22 32 65
## 2023 much 20 28 65
## 2326 pool 22 28 80
## 834 day 27 27 75
## medianAvgRate
## 1308 52
## 1336 38
## 2927 37
## 1684 36
## 1123 33
## 3192 32
## 1786 32
## 2023 28
## 2326 28
## 834 27
The keywords for the average ratings is a median value of the ratings 2 through 4.
avg_keys <- as.data.frame(t(keywords_avg$medianAvgRate))
colnames(avg_keys) <- keywords_avg$term
row.names(avg_keys) <- 'avgRating'
avg_keys
## get good spa just experience time like much pool day
## avgRating 52 38 37 36 33 32 32 28 28 27
Lets get our great ratings as the median of the 4-5 ratings.
KW_grt <- goodGreat %>% select(term,Rating5termfrequency,Rating4termfrequency)
KW_grt$medianGrtRate <- apply(KW_grt[2:3],1,median, na.rm=TRUE)
keywords_grt <- KW_grt[order(KW_grt$medianGrtRate,decreasing=TRUE)[1:10],]
keywords_grt
## term Rating5termfrequency Rating4termfrequency medianGrtRate
## 1336 good 272 103 187.5
## 1308 get 178 100 139.0
## 3192 time 137 73 105.0
## 1355 great 150 54 102.0
## 1891 massage 135 57 96.0
## 490 can 122 64 93.0
## 834 day 109 75 92.0
## 2023 much 117 65 91.0
## 2966 staff 152 23 87.5
## 653 come 130 44 87.0
Lets start joinging the key words together from lowest, average, then greatest.
The keywords for the great ratings is a median value of the ratings 4 through 5.
grt_keys <- as.data.frame(t(keywords_grt$medianGrtRate))
colnames(grt_keys) <- keywords_grt$term
row.names(grt_keys) <- 'grtRating'
grt_keys
## good get time great massage can day much staff come
## grtRating 187.5 139 105 102 96 93 92 91 87.5 87
Now lets combine these tables.
j1 <- full_join(low_keys,avg_keys)
j1
## get time good tell just day can experience make place spa like much pool
## 1 59.5 51 45 44.5 39 38.5 36.5 34.5 34.5 34 NA NA NA NA
## 2 52.0 32 38 NA 36 27.0 NA 33.0 NA NA 37 32 28 28
j2 <- full_join(j1,grt_keys)
row.names(j2) <- c('low','average','great')
j2
## get time good tell just day can experience make place spa like
## low 59.5 51 45.0 44.5 39 38.5 36.5 34.5 34.5 34 NA NA
## average 52.0 32 38.0 NA 36 27.0 NA 33.0 NA NA 37 32
## great 139.0 105 187.5 NA NA 92.0 93.0 NA NA NA NA NA
## much pool great massage staff come
## low NA NA NA NA NA NA
## average 28 28 NA NA NA NA
## great 91 NA 102 96 87.5 87
There are too many of the words to fill in manually, so we well pick the first 12 and get those words directly from each of the three tables of word counts
keyNames <- as.data.frame(colnames(j2)[1:12])
colnames(keyNames) <- 'keyNames'
keyNames
## keyNames
## 1 get
## 2 time
## 3 good
## 4 tell
## 5 just
## 6 day
## 7 can
## 8 experience
## 9 make
## 10 place
## 11 spa
## 12 like
kwavg <- KW_avg[,c(1,5)]
kwgrt <- KW_grt[,c(1,4)]
kwpr <- KW_poor[,c(1,4)]
kw1 <- merge(keyNames,kwpr, by.x='keyNames', by.y='term')
kw2 <- merge(kw1,kwavg,by.x='keyNames', by.y='term')
kw3 <- merge(kw2,kwgrt,by.x='keyNames',by.y='term')
row.names(kw3) <- kw3$keyNames
kw4 <- kw3[,-1]
colnames(kw4) <- c('low','average','great')
keys <- kw4
keys
## low average great
## can 36.5 26 93.0
## day 38.5 27 92.0
## experience 34.5 33 71.5
## get 59.5 52 139.0
## good 45.0 38 187.5
## just 39.0 36 63.5
## like 25.5 32 67.5
## make 34.5 27 71.0
## place 34.0 23 80.0
## spa 26.5 37 45.5
## tell 44.5 6 11.0
## time 51.0 32 105.0
s1 <- sum(Reviews13$userRatingValue==1)+sum(Reviews13$userRatingValue==2)
s2 <- sum(Reviews13$userRatingValue==2)+sum(Reviews13$userRatingValue==3)+
sum(Reviews13$userRatingValue==4)
s3 <- sum(Reviews13$userRatingValue==4)+sum(Reviews13$userRatingValue==5)
keys$low <- round(((keys$low)/s1),2)
keys$great <- round(((keys$great)/s3),2)
keys$average <- round(((keys$average)/s2),2)
keys
## low average great
## can 0.30 0.14 0.21
## day 0.32 0.14 0.21
## experience 0.28 0.17 0.16
## get 0.49 0.27 0.32
## good 0.37 0.20 0.43
## just 0.32 0.19 0.14
## like 0.21 0.17 0.15
## make 0.28 0.14 0.16
## place 0.28 0.12 0.18
## spa 0.22 0.19 0.10
## tell 0.36 0.03 0.03
## time 0.42 0.17 0.24
The above table is for document term frequency on average that is how many times the term shows up in a single document by category of low, average, or great rating. We made these tables earlier, FREQ_R1, …,FREQ_R5.
What about the ratio for the term against the number in terms in total for all ratings? Lets put that table together.
termKeys <- as.data.frame(row.names(keys))
colnames(termKeys) <- 'term'
tk1 <- merge(termKeys, FREQ_R1, by.x='term', by.y='term')
tk2 <- merge(tk1,FREQ_R2, by.x='term', by.y='term')
tk3 <- merge(tk2, FREQ_R3, by.x='term', by.y='term')
tk4 <- merge(tk3, FREQ_R4, by.x='term', by.y='term')
tk5 <- merge(tk4, FREQ_R5, by.x='term', by.y='term')
tk5$Rating1_totalTerms <- sum(FREQ_R1$Rating1termfrequency)
tk5$Rating2_totalTerms <- sum(FREQ_R2$Rating2termfrequency)
tk5$Rating3_totalTerms <- sum(FREQ_R3$Rating3termfrequency)
tk5$Rating4_totalTerms <- sum(FREQ_R4$Rating4termfrequency)
tk5$Rating5_totalTerms <- sum(FREQ_R5$Rating5termfrequency)
#these are total terms over all by rating, not unique terms
tk5$Rating1_term2totalTerm <- tk5$Rating1termfrequency/tk5$Rating1_totalTerms
tk5$Rating2_term2totalTerm <- tk5$Rating2termfrequency/tk5$Rating2_totalTerms
tk5$Rating3_term2totalTerm <- tk5$Rating3termfrequency/tk5$Rating3_totalTerms
tk5$Rating4_term2totalTerm <- tk5$Rating4termfrequency/tk5$Rating4_totalTerms
tk5$Rating5_term2totalTerm <- tk5$Rating5termfrequency/tk5$Rating5_totalTerms
termToTotalTerms <- tk5 %>% select(term,Rating1_term2totalTerm,
Rating2_term2totalTerm,
Rating3_term2totalTerm,
Rating4_term2totalTerm,
Rating5_term2totalTerm)
term_to_totalTerms <- round(termToTotalTerms[,2:6],3)
row.names(term_to_totalTerms) <- termToTotalTerms$term
wordToAllWords <- as.data.frame(t(term_to_totalTerms))
wordToAllWords
## can day experience get good just like make
## Rating1_term2totalTerm 0.007 0.008 0.006 0.012 0.009 0.007 0.005 0.007
## Rating2_term2totalTerm 0.008 0.008 0.010 0.013 0.010 0.011 0.007 0.008
## Rating3_term2totalTerm 0.008 0.008 0.004 0.016 0.012 0.010 0.010 0.004
## Rating4_term2totalTerm 0.009 0.010 0.007 0.014 0.014 0.007 0.009 0.004
## Rating5_term2totalTerm 0.009 0.008 0.006 0.013 0.019 0.006 0.005 0.008
## place spa tell time
## Rating1_term2totalTerm 0.008 0.002 0.010 0.012
## Rating2_term2totalTerm 0.005 0.011 0.007 0.008
## Rating3_term2totalTerm 0.007 0.011 0.001 0.010
## Rating4_term2totalTerm 0.004 0.005 0.001 0.010
## Rating5_term2totalTerm 0.009 0.004 0.001 0.010
This table is the total word ratio to all words (not unique words) in each subset of ratings 1-5. Lets write this last table out to csv. We will use it later, and this script will be a long one, with manu objects.
write.csv(wordToAllWords,'wordToAllWords.csv', row.names=TRUE)
!@# Once we get our counts of each word in each review, we can compare it to these words and see if it appears in the document this percent of the time to aid in classifying each review into the correct rating.
Lets use the stringr library’s function str_match_all function. Lets clean up the first observation and store it as a string. Then we will use str_match_all to find the exact number of times each keyword is in the review. and put it in our table.
str1 <- as.character(paste(Reviews13$userReviewOnlyContent[1]))
str1 <- gsub('[!|.|,|\n|\']',' ',str1,perl=TRUE)
str1 <- gsub('[ ]',' ',str1)
str1 <- trimws(str1, which=c('both'), whitespace='[\t\r\n ]')
totalTerms <- length((strsplit(str1, split=' ')[[1]]))
keys <- row.names(keys)
can <- str_match_all(str1,' [cC][aA][nN] ')
CAN <- length(can[[1]])
day <- str_match_all(str1,' [dD][aA][yY] ')
DAY <- length(day[[1]])
experience <- str_match_all(str1,' [eE][xX][pP][eE][rR][iI][eE][nN][cC][eE] ')
EXPERIENCE <- length(experience[[1]])
get <- str_match_all(str1,' [gG][eE][tT] ')
GET <- length(get[[1]])
good <- str_match_all(str1,' [gG][oO][oO][dD] ')
GOOD <- length(good[[1]])
just <- str_match_all(str1,' [jJ][uU][sS][tT] ')
JUST <- length(just[[1]])
like <- str_match_all(str1,' [lL][iI][kK][eE] ')
LIKE <- length(like[[1]])
make <- str_match_all(str1,' [mM][aA][kK][eE] ')
MAKE <- length(make[[1]])
place <- str_match_all(str1,' [pP][lL][aA][cC][eE] ')
PLACE <- length(place[[1]])
spa <- str_match_all(str1,' [sS][pP][aA] ')
SPA <- length(spa[[1]])
tell <- str_match_all(str1,' [tT][eE][lL][lL] ')
TELL <- length(tell[[1]])
time <- str_match_all(str1,' [tT][iI][mM][eE] ')
TIME <- length(time[[1]])
values <- as.data.frame(c(CAN,DAY,EXPERIENCE,GET,GOOD,JUST,LIKE,MAKE,PLACE,SPA,TELL,TIME))
row.names(values) <- termKeys$term
keyValues <- as.data.frame(t(values))
keyValues2 <- keyValues/totalTerms
keyValues3 <- rbind(keyValues,keyValues2)
row.names(keyValues3) <- c('documentTermCount','term_to_totalDocumentTerms')
keyValues3 <- round(keyValues3,3)
keyValues3
## can day experience get good just like make
## documentTermCount 0 4.000 0 1.000 2.000 0 1.000 2.000
## term_to_totalDocumentTerms 0 0.015 0 0.004 0.007 0 0.004 0.007
## place spa tell time
## documentTermCount 1.000 2.000 0 3.000
## term_to_totalDocumentTerms 0.004 0.007 0 0.011
Join this table to the wordToAllWords table using dplyr’s full join function.
joinKeys <- full_join(wordToAllWords,keyValues3)
r1 <- row.names(wordToAllWords)
r2 <- row.names(keyValues3)
names <- c(r1,r2)
row.names(joinKeys) <- names
joinKeys
## can day experience get good just like make
## Rating1_term2totalTerm 0.007 0.008 0.006 0.012 0.009 0.007 0.005 0.007
## Rating2_term2totalTerm 0.008 0.008 0.010 0.013 0.010 0.011 0.007 0.008
## Rating3_term2totalTerm 0.008 0.008 0.004 0.016 0.012 0.010 0.010 0.004
## Rating4_term2totalTerm 0.009 0.010 0.007 0.014 0.014 0.007 0.009 0.004
## Rating5_term2totalTerm 0.009 0.008 0.006 0.013 0.019 0.006 0.005 0.008
## documentTermCount 0.000 4.000 0.000 1.000 2.000 0.000 1.000 2.000
## term_to_totalDocumentTerms 0.000 0.015 0.000 0.004 0.007 0.000 0.004 0.007
## place spa tell time
## Rating1_term2totalTerm 0.008 0.002 0.010 0.012
## Rating2_term2totalTerm 0.005 0.011 0.007 0.008
## Rating3_term2totalTerm 0.007 0.011 0.001 0.010
## Rating4_term2totalTerm 0.004 0.005 0.001 0.010
## Rating5_term2totalTerm 0.009 0.004 0.001 0.010
## documentTermCount 1.000 2.000 0.000 3.000
## term_to_totalDocumentTerms 0.004 0.007 0.000 0.011
Looking at the table above, we can use the term_to_totalDocumentTerms values of this observation compared to the ratios of the term2totalTerm ratings for each of these 12 words, and choose the rating with the lowest difference or distance between, then to add up the votes for ratings 1-5 for all 12 choices. There should be a clear winner in this algorithm of selecting or predicting the sentiment rating. So, lets try it out.
can_diff <- joinKeys$can[1:5]-joinKeys$can[7]
day_diff <- joinKeys$day[1:5]-joinKeys$day[7]
experience_diff <- joinKeys$experience[1:5]-joinKeys$experience[7]
get_diff <- joinKeys$get[1:5]-joinKeys$get[7]
good_diff <- joinKeys$good[1:5]-joinKeys$good[7]
just_diff <- joinKeys$just[1:5]-joinKeys$just[7]
like_diff <- joinKeys$like[1:5]-joinKeys$like[7]
make_diff <- joinKeys$make[1:5]-joinKeys$make[7]
place_diff <- joinKeys$place[1:5]-joinKeys$place[7]
spa_diff <- joinKeys$spa[1:5]-joinKeys$spa[7]
tell_diff <- joinKeys$tell[1:5]-joinKeys$tell[7]
time_diff <- joinKeys$time[1:5]-joinKeys$time[7]
diff <- as.data.frame(t(cbind(can_diff, day_diff, experience_diff, get_diff, good_diff,
just_diff,like_diff, make_diff, place_diff, spa_diff, tell_diff, time_diff)))
colnames(diff) <- r1
diff$minValue <- apply(diff,1, min)
diff$vote <- ifelse(diff$Rating1_term2totalTerm==diff$minValue,
1,
ifelse(diff$Rating2_term2totalTerm==diff$minValue,
2,
ifelse(diff$Rating3_term2totalTerm==diff$minValue,
3,
ifelse(diff$Rating4_term2totalTerm==diff$minValue,
4,
5)
)
)
)
diff$minValue2 <- ifelse(abs(diff$minValue)>abs(diff$Rating1_term2totalTerm),
diff$Rating1_term2totalTerm,
ifelse(abs(diff$minValue)>abs(diff$Rating2_term2totalTerm),
diff$Rating2_term2totalTerm,
ifelse(abs(diff$minValue)>abs(diff$Rating3_term2totalTerm),
diff$Rating3_term2totalTerm,
ifelse(abs(diff$minValue)>abs(diff$Rating4_term2totalTerm),
diff$Rating4_term2totalTerm,
ifelse(abs(diff$minValue)>abs(diff$Rating5_term2totalTerm),
diff$Rating5_term2totalTerm,
diff$minValue)
)
)
)
)
diff$vote2 <- ifelse(diff$Rating1_term2totalTerm==diff$minValue2,
1,
ifelse(diff$Rating2_term2totalTerm==diff$minValue2,
2,
ifelse(diff$Rating3_term2totalTerm==diff$minValue2,
3,
ifelse(diff$Rating4_term2totalTerm==diff$minValue2,
4,
5)
)
)
)
diff
## Rating1_term2totalTerm Rating2_term2totalTerm
## can_diff 0.007 0.008
## day_diff -0.007 -0.007
## experience_diff 0.006 0.010
## get_diff 0.008 0.009
## good_diff 0.002 0.003
## just_diff 0.007 0.011
## like_diff 0.001 0.003
## make_diff 0.000 0.001
## place_diff 0.004 0.001
## spa_diff -0.005 0.004
## tell_diff 0.010 0.007
## time_diff 0.001 -0.003
## Rating3_term2totalTerm Rating4_term2totalTerm
## can_diff 0.008 0.009
## day_diff -0.007 -0.005
## experience_diff 0.004 0.007
## get_diff 0.012 0.010
## good_diff 0.005 0.007
## just_diff 0.010 0.007
## like_diff 0.006 0.005
## make_diff -0.003 -0.003
## place_diff 0.003 0.000
## spa_diff 0.004 -0.002
## tell_diff 0.001 0.001
## time_diff -0.001 -0.001
## Rating5_term2totalTerm minValue vote minValue2 vote2
## can_diff 0.009 0.007 1 0.007 1
## day_diff -0.007 -0.007 1 -0.005 4
## experience_diff 0.006 0.004 3 0.004 3
## get_diff 0.009 0.008 1 0.008 1
## good_diff 0.012 0.002 1 0.002 1
## just_diff 0.006 0.006 5 0.006 5
## like_diff 0.001 0.001 1 0.001 1
## make_diff 0.001 -0.003 3 0.000 1
## place_diff 0.005 0.000 4 0.000 4
## spa_diff -0.003 -0.005 1 0.004 2
## tell_diff 0.001 0.001 3 0.001 3
## time_diff -0.001 -0.003 2 0.001 1
There is actually a tie between the review being a 5 or a 1 when using vote 1 that takes the minimum value that includes very negative values. We need to make a rule for when this happens. How about try out for if there is a tie, the best of the median rounded up or the mean rounded down. There is also a vote2 field that takes the shortest distance to the review ratio out of each review and votes for that review. Lets see the results of the first vote with only the minimum.
bestVote <- diff %>% group_by(vote) %>% count()
bestVote$maxVote <- ifelse(bestVote$n==max(bestVote$n),
1,0)
bestVote$ratingMean <- ifelse(sum(bestVote$maxVote) > 1,
ifelse(ceiling(mean(bestVote$vote*bestVote$n))>5,
5, ceiling(mean(bestVote$vote*bestVote$n))),
ifelse(bestVote$n==max(bestVote$n),
bestVote$vote,
0)
)
bestVote$ratingMedian <- ifelse(sum(bestVote$maxVote) > 1,
ifelse(ceiling(median(bestVote$vote*bestVote$n))>5,
5,ceiling(median(bestVote$vote*bestVote$n))),
ifelse(bestVote$n==max(bestVote$n),
bestVote$vote,
0)
)
max(bestVote$ratingMean)
## [1] 1
max(bestVote$ratingMedian)
## [1] 1
bestVote
## # A tibble: 5 x 5
## # Groups: vote [5]
## vote n maxVote ratingMean ratingMedian
## <dbl> <int> <dbl> <dbl> <dbl>
## 1 1 6 1 1 1
## 2 2 1 0 1 1
## 3 3 3 0 1 1
## 4 4 1 0 1 1
## 5 5 1 0 1 1
From the above table, it identified a tie in votes, and calculated the mean and medians of the votes*the count for each vote as a dot product. The mean is actually 7, so a constraint was also placed or wrapped around the ceiling of the mean if it is greater than our highest rating, that it be the highest rating. Same for the median. Lets use Vote2 which takes the shortest distance from the term to Total Term frequency ratio of the review to each ratings term to Total Term frequency ratio. We could choose to accept the mean driven vote of 5 or median driven vote of 4.But lets see how vote2 measures in for predicting most likely reveiw.
bestVote2 <- diff %>% group_by(vote2) %>% count()
bestVote2$maxVote2 <- ifelse(bestVote2$n==max(bestVote2$n),
1,0)
bestVote2$ratingMean2 <- ifelse(sum(bestVote2$maxVote2) > 1,
ifelse(ceiling(mean(bestVote2$vote2*bestVote2$n))>5,
5, ceiling(mean(bestVote2$vote2*bestVote2$n))),
ifelse(bestVote2$n==max(bestVote2$n),
bestVote2$vote2,
0)
)
bestVote2$ratingMedian2 <- ifelse(sum(bestVote2$maxVote2) > 1,
ifelse(ceiling(median(bestVote2$vote2*bestVote2$n))>5,
5,ceiling(median(bestVote2$vote2*bestVote2$n))),
ifelse(bestVote2$n==max(bestVote2$n),
bestVote2$vote2,
0)
)
max(bestVote2$ratingMean2)
## [1] 1
max(bestVote2$ratingMedian2)
## [1] 1
bestVote2
## # A tibble: 5 x 5
## # Groups: vote2 [5]
## vote2 n maxVote2 ratingMean2 ratingMedian2
## <dbl> <int> <dbl> <dbl> <dbl>
## 1 1 6 1 1 1
## 2 2 1 0 1 1
## 3 3 2 0 1 1
## 4 4 2 0 1 1
## 5 5 1 0 1 1
When using the shortest distance between the ratio of term to total terms in the review, instead of the minimum distance, the highest votes were not a tie, but for a 1 rating.
Lets see what this rating is. The string object was taken from the first review of the business.
Reviews13$userRatingValue[1]
## [1] 5
Both the mean and median voted a 1 because there was no tie, the most votes by term in the document to total terms was for rating 1. The actual rating value is a 5.
Lets use the 2nd review this time.
str1 <- as.character(paste(Reviews13$userReviewOnlyContent[2]))
str1 <- gsub('[!|.|,|\n|\']',' ',str1,perl=TRUE)
str1 <- gsub('[ ]',' ',str1)
str1 <- trimws(str1, which=c('both'), whitespace='[\t\r\n ]')
totalTerms <- length((strsplit(str1, split=' ')[[1]]))
keys <- row.names(keys)
can <- str_match_all(str1,' [cC][aA][nN] ')
CAN <- length(can[[1]])
day <- str_match_all(str1,' [dD][aA][yY] ')
DAY <- length(day[[1]])
experience <- str_match_all(str1,' [eE][xX][pP][eE][rR][iI][eE][nN][cC][eE] ')
EXPERIENCE <- length(experience[[1]])
get <- str_match_all(str1,' [gG][eE][tT] ')
GET <- length(get[[1]])
good <- str_match_all(str1,' [gG][oO][oO][dD] ')
GOOD <- length(good[[1]])
just <- str_match_all(str1,' [jJ][uU][sS][tT] ')
JUST <- length(just[[1]])
like <- str_match_all(str1,' [lL][iI][kK][eE] ')
LIKE <- length(like[[1]])
make <- str_match_all(str1,' [mM][aA][kK][eE] ')
MAKE <- length(make[[1]])
place <- str_match_all(str1,' [pP][lL][aA][cC][eE] ')
PLACE <- length(place[[1]])
spa <- str_match_all(str1,' [sS][pP][aA] ')
SPA <- length(spa[[1]])
tell <- str_match_all(str1,' [tT][eE][lL][lL] ')
TELL <- length(tell[[1]])
time <- str_match_all(str1,' [tT][iI][mM][eE] ')
TIME <- length(time[[1]])
values <- as.data.frame(c(CAN,DAY,EXPERIENCE,GET,GOOD,JUST,LIKE,MAKE,PLACE,SPA,TELL,TIME))
row.names(values) <- termKeys$term
keyValues <- as.data.frame(t(values))
keyValues2 <- keyValues/totalTerms
keyValues3 <- rbind(keyValues,keyValues2)
row.names(keyValues3) <- c('documentTermCount','term_to_totalDocumentTerms')
keyValues3 <- round(keyValues3,3)
keyValues3
## can day experience get good just like make
## documentTermCount 2.000 2.000 2.000 1.000 0 5.000 4.000 0
## term_to_totalDocumentTerms 0.003 0.003 0.003 0.002 0 0.008 0.007 0
## place spa tell time
## documentTermCount 0 0 0 3.000
## term_to_totalDocumentTerms 0 0 0 0.005
Join this table to the wordToAllWords table using dplyr’s full join function.
joinKeys <- full_join(wordToAllWords,keyValues3)
r1 <- row.names(wordToAllWords)
r2 <- row.names(keyValues3)
names <- c(r1,r2)
row.names(joinKeys) <- names
joinKeys
## can day experience get good just like make
## Rating1_term2totalTerm 0.007 0.008 0.006 0.012 0.009 0.007 0.005 0.007
## Rating2_term2totalTerm 0.008 0.008 0.010 0.013 0.010 0.011 0.007 0.008
## Rating3_term2totalTerm 0.008 0.008 0.004 0.016 0.012 0.010 0.010 0.004
## Rating4_term2totalTerm 0.009 0.010 0.007 0.014 0.014 0.007 0.009 0.004
## Rating5_term2totalTerm 0.009 0.008 0.006 0.013 0.019 0.006 0.005 0.008
## documentTermCount 2.000 2.000 2.000 1.000 0.000 5.000 4.000 0.000
## term_to_totalDocumentTerms 0.003 0.003 0.003 0.002 0.000 0.008 0.007 0.000
## place spa tell time
## Rating1_term2totalTerm 0.008 0.002 0.010 0.012
## Rating2_term2totalTerm 0.005 0.011 0.007 0.008
## Rating3_term2totalTerm 0.007 0.011 0.001 0.010
## Rating4_term2totalTerm 0.004 0.005 0.001 0.010
## Rating5_term2totalTerm 0.009 0.004 0.001 0.010
## documentTermCount 0.000 0.000 0.000 3.000
## term_to_totalDocumentTerms 0.000 0.000 0.000 0.005
Looking at the table above, we can use the term_to_totalDocumentTerms values of this observation compared to the ratios of the term2totalTerm ratings for each of these 12 words, and choose the rating with the lowest difference or distance between, then to add up the votes for ratings 1-5 for all 12 choices. There should be a clear winner in this algorithm of selecting or predicting the sentiment rating. So, lets try it out.
can_diff <- joinKeys$can[1:5]-joinKeys$can[7]
day_diff <- joinKeys$day[1:5]-joinKeys$day[7]
experience_diff <- joinKeys$experience[1:5]-joinKeys$experience[7]
get_diff <- joinKeys$get[1:5]-joinKeys$get[7]
good_diff <- joinKeys$good[1:5]-joinKeys$good[7]
just_diff <- joinKeys$just[1:5]-joinKeys$just[7]
like_diff <- joinKeys$like[1:5]-joinKeys$like[7]
make_diff <- joinKeys$make[1:5]-joinKeys$make[7]
place_diff <- joinKeys$place[1:5]-joinKeys$place[7]
spa_diff <- joinKeys$spa[1:5]-joinKeys$spa[7]
tell_diff <- joinKeys$tell[1:5]-joinKeys$tell[7]
time_diff <- joinKeys$time[1:5]-joinKeys$time[7]
diff <- as.data.frame(t(cbind(can_diff, day_diff, experience_diff, get_diff, good_diff,
just_diff,like_diff, make_diff, place_diff, spa_diff, tell_diff, time_diff)))
colnames(diff) <- r1
diff$minValue <- apply(diff,1, min)
diff$vote <- ifelse(diff$Rating1_term2totalTerm==diff$minValue,
1,
ifelse(diff$Rating2_term2totalTerm==diff$minValue,
2,
ifelse(diff$Rating3_term2totalTerm==diff$minValue,
3,
ifelse(diff$Rating4_term2totalTerm==diff$minValue,
4,
5)
)
)
)
diff$minValue2 <- ifelse(abs(diff$minValue)>abs(diff$Rating1_term2totalTerm),
diff$Rating1_term2totalTerm,
ifelse(abs(diff$minValue)>abs(diff$Rating2_term2totalTerm),
diff$Rating2_term2totalTerm,
ifelse(abs(diff$minValue)>abs(diff$Rating3_term2totalTerm),
diff$Rating3_term2totalTerm,
ifelse(abs(diff$minValue)>abs(diff$Rating4_term2totalTerm),
diff$Rating4_term2totalTerm,
ifelse(abs(diff$minValue)>abs(diff$Rating5_term2totalTerm),
diff$Rating5_term2totalTerm,
diff$minValue)
)
)
)
)
diff$vote2 <- ifelse(diff$Rating1_term2totalTerm==diff$minValue2,
1,
ifelse(diff$Rating2_term2totalTerm==diff$minValue2,
2,
ifelse(diff$Rating3_term2totalTerm==diff$minValue2,
3,
ifelse(diff$Rating4_term2totalTerm==diff$minValue2,
4,
5)
)
)
)
diff
## Rating1_term2totalTerm Rating2_term2totalTerm
## can_diff 0.004 0.005
## day_diff 0.005 0.005
## experience_diff 0.003 0.007
## get_diff 0.010 0.011
## good_diff 0.009 0.010
## just_diff -0.001 0.003
## like_diff -0.002 0.000
## make_diff 0.007 0.008
## place_diff 0.008 0.005
## spa_diff 0.002 0.011
## tell_diff 0.010 0.007
## time_diff 0.007 0.003
## Rating3_term2totalTerm Rating4_term2totalTerm
## can_diff 0.005 0.006
## day_diff 0.005 0.007
## experience_diff 0.001 0.004
## get_diff 0.014 0.012
## good_diff 0.012 0.014
## just_diff 0.002 -0.001
## like_diff 0.003 0.002
## make_diff 0.004 0.004
## place_diff 0.007 0.004
## spa_diff 0.011 0.005
## tell_diff 0.001 0.001
## time_diff 0.005 0.005
## Rating5_term2totalTerm minValue vote minValue2 vote2
## can_diff 0.006 0.004 1 0.004 1
## day_diff 0.005 0.005 1 0.005 1
## experience_diff 0.003 0.001 3 0.001 3
## get_diff 0.011 0.010 1 0.010 1
## good_diff 0.019 0.009 1 0.009 1
## just_diff -0.002 -0.002 5 -0.001 1
## like_diff -0.002 -0.002 1 0.000 2
## make_diff 0.008 0.004 3 0.004 3
## place_diff 0.009 0.004 4 0.004 4
## spa_diff 0.004 0.002 1 0.002 1
## tell_diff 0.001 0.001 3 0.001 3
## time_diff 0.005 0.003 2 0.003 2
We need to make a rule for when this happens. How about try out for if there is a tie, the best of the median rounded up or the mean rounded down. There is also a vote2 field that takes the shortest distance to the review ratio out of each review and votes for that review. Lets see the results of the first vote with only the minimum.
bestVote <- diff %>% group_by(vote) %>% count()
bestVote$maxVote <- ifelse(bestVote$n==max(bestVote$n),
1,0)
bestVote$ratingMean <- ifelse(sum(bestVote$maxVote) > 1,
ifelse(ceiling(mean(bestVote$vote*bestVote$n))>5,
5, ceiling(mean(bestVote$vote*bestVote$n))),
ifelse(bestVote$n==max(bestVote$n),
bestVote$vote,
0)
)
bestVote$ratingMedian <- ifelse(sum(bestVote$maxVote) > 1,
ifelse(ceiling(median(bestVote$vote*bestVote$n))>5,
5,ceiling(median(bestVote$vote*bestVote$n))),
ifelse(bestVote$n==max(bestVote$n),
bestVote$vote,
0)
)
max(bestVote$ratingMean)
## [1] 1
max(bestVote$ratingMedian)
## [1] 1
Our best algorithm selected 5 as the best vote, the first run of this program it was a 5 and the mean rating won that prediction.
bestVote
## # A tibble: 5 x 5
## # Groups: vote [5]
## vote n maxVote ratingMean ratingMedian
## <dbl> <int> <dbl> <dbl> <dbl>
## 1 1 6 1 1 1
## 2 2 1 0 1 1
## 3 3 3 0 1 1
## 4 4 1 0 1 1
## 5 5 1 0 1 1
Lets see how vote2 measures in for predicting most likely reveiw.
bestVote2 <- diff %>% group_by(vote2) %>% count()
bestVote2$maxVote2 <- ifelse(bestVote2$n==max(bestVote2$n),
1,0)
bestVote2$ratingMean2 <- ifelse(sum(bestVote2$maxVote2) > 1,
ifelse(ceiling(mean(bestVote2$vote2*bestVote2$n))>5,
5, ceiling(mean(bestVote2$vote2*bestVote2$n))),
ifelse(bestVote2$n==max(bestVote2$n),
bestVote2$vote2,
0)
)
bestVote2$ratingMedian2 <- ifelse(sum(bestVote2$maxVote2) > 1,
ifelse(ceiling(median(bestVote2$vote2*bestVote2$n))>5,
5,ceiling(median(bestVote2$vote2*bestVote2$n))),
ifelse(bestVote2$n==max(bestVote2$n),
bestVote2$vote2,
0)
)
max(bestVote2$ratingMean2)
## [1] 1
max(bestVote2$ratingMedian2)
## [1] 1
bestVote2
## # A tibble: 4 x 5
## # Groups: vote2 [4]
## vote2 n maxVote2 ratingMean2 ratingMedian2
## <dbl> <int> <dbl> <dbl> <dbl>
## 1 1 6 1 1 1
## 2 2 2 0 1 1
## 3 3 3 0 1 1
## 4 4 1 0 1 1
Well they have the same results almost for both vote and vote2, except that vote2 this time included all ratings, the first run the rating 3 had no votes, but the vote is the same as a 1 rating, while the ceiling of the mean is a 5 rating, and the ceiling of the median is a 4 rating.
Lets see what this rating is. The string object was taken from the first review of the business.
Reviews13$userRatingValue[2]
## [1] 4
This time, the ceiling of the median using the minimum difference between the document to corpus of each rating ratios of term to total terms in the document versus term to total terms within all documents in each rating.
We should try another, maybe a review closer to the tail to see if the minimum distance is still the best, but choosing mean or median is still a fixer upper. We still haven’t used the Reviews13 regular features we spent some time extracting and adding to base what the review’s rating will be. Also, adding a visNetwork link analysis plot to show how the ratings and keywords look or link to each other by weight as the term to total terms ratio, or forgetting these keywords and using the top full join keywords by frequency in each rating.
Lets re-run this script on another review closer to the tail to see how the results are predicted.
str1 <- as.character(paste(Reviews13$userReviewOnlyContent[600]))
str1 <- gsub('[!|.|,|\n|\']',' ',str1,perl=TRUE)
str1 <- gsub('[ ]',' ',str1)
str1 <- trimws(str1, which=c('both'), whitespace='[\t\r\n ]')
totalTerms <- length((strsplit(str1, split=' ')[[1]]))
can <- str_match_all(str1,' [cC][aA][nN] ')
CAN <- length(can[[1]])
day <- str_match_all(str1,' [dD][aA][yY] ')
DAY <- length(day[[1]])
experience <- str_match_all(str1,' [eE][xX][pP][eE][rR][iI][eE][nN][cC][eE] ')
EXPERIENCE <- length(experience[[1]])
get <- str_match_all(str1,' [gG][eE][tT] ')
GET <- length(get[[1]])
good <- str_match_all(str1,' [gG][oO][oO][dD] ')
GOOD <- length(good[[1]])
just <- str_match_all(str1,' [jJ][uU][sS][tT] ')
JUST <- length(just[[1]])
like <- str_match_all(str1,' [lL][iI][kK][eE] ')
LIKE <- length(like[[1]])
make <- str_match_all(str1,' [mM][aA][kK][eE] ')
MAKE <- length(make[[1]])
place <- str_match_all(str1,' [pP][lL][aA][cC][eE] ')
PLACE <- length(place[[1]])
spa <- str_match_all(str1,' [sS][pP][aA] ')
SPA <- length(spa[[1]])
tell <- str_match_all(str1,' [tT][eE][lL][lL] ')
TELL <- length(tell[[1]])
time <- str_match_all(str1,' [tT][iI][mM][eE] ')
TIME <- length(time[[1]])
values <- as.data.frame(c(CAN,DAY,EXPERIENCE,GET,GOOD,JUST,LIKE,MAKE,PLACE,SPA,TELL,TIME))
row.names(values) <- termKeys$term
keyValues <- as.data.frame(t(values))
keyValues2 <- keyValues/totalTerms
keyValues3 <- rbind(keyValues,keyValues2)
row.names(keyValues3) <- c('documentTermCount','term_to_totalDocumentTerms')
keyValues3 <- round(keyValues3,3)
keyValues3
## can day experience get good just like make place
## documentTermCount 1.000 1.000 0 0 0 0 0 0 0
## term_to_totalDocumentTerms 0.015 0.015 0 0 0 0 0 0 0
## spa tell time
## documentTermCount 0 0 0
## term_to_totalDocumentTerms 0 0 0
Join this table to the wordToAllWords table using dplyr’s full join function.
joinKeys <- full_join(wordToAllWords,keyValues3)
r1 <- row.names(wordToAllWords)
r2 <- row.names(keyValues3)
names <- c(r1,r2)
row.names(joinKeys) <- names
joinKeys
## can day experience get good just like make
## Rating1_term2totalTerm 0.007 0.008 0.006 0.012 0.009 0.007 0.005 0.007
## Rating2_term2totalTerm 0.008 0.008 0.010 0.013 0.010 0.011 0.007 0.008
## Rating3_term2totalTerm 0.008 0.008 0.004 0.016 0.012 0.010 0.010 0.004
## Rating4_term2totalTerm 0.009 0.010 0.007 0.014 0.014 0.007 0.009 0.004
## Rating5_term2totalTerm 0.009 0.008 0.006 0.013 0.019 0.006 0.005 0.008
## documentTermCount 1.000 1.000 0.000 0.000 0.000 0.000 0.000 0.000
## term_to_totalDocumentTerms 0.015 0.015 0.000 0.000 0.000 0.000 0.000 0.000
## place spa tell time
## Rating1_term2totalTerm 0.008 0.002 0.010 0.012
## Rating2_term2totalTerm 0.005 0.011 0.007 0.008
## Rating3_term2totalTerm 0.007 0.011 0.001 0.010
## Rating4_term2totalTerm 0.004 0.005 0.001 0.010
## Rating5_term2totalTerm 0.009 0.004 0.001 0.010
## documentTermCount 0.000 0.000 0.000 0.000
## term_to_totalDocumentTerms 0.000 0.000 0.000 0.000
can_diff <- joinKeys$can[1:5]-joinKeys$can[7]
day_diff <- joinKeys$day[1:5]-joinKeys$day[7]
experience_diff <- joinKeys$experience[1:5]-joinKeys$experience[7]
get_diff <- joinKeys$get[1:5]-joinKeys$get[7]
good_diff <- joinKeys$good[1:5]-joinKeys$good[7]
just_diff <- joinKeys$just[1:5]-joinKeys$just[7]
like_diff <- joinKeys$like[1:5]-joinKeys$like[7]
make_diff <- joinKeys$make[1:5]-joinKeys$make[7]
place_diff <- joinKeys$place[1:5]-joinKeys$place[7]
spa_diff <- joinKeys$spa[1:5]-joinKeys$spa[7]
tell_diff <- joinKeys$tell[1:5]-joinKeys$tell[7]
time_diff <- joinKeys$time[1:5]-joinKeys$time[7]
diff <- as.data.frame(t(cbind(can_diff, day_diff, experience_diff, get_diff, good_diff,
just_diff,like_diff, make_diff, place_diff, spa_diff, tell_diff, time_diff)))
colnames(diff) <- r1
diff$minValue <- apply(diff,1, min)
diff$vote <- ifelse(diff$Rating1_term2totalTerm==diff$minValue,
1,
ifelse(diff$Rating2_term2totalTerm==diff$minValue,
2,
ifelse(diff$Rating3_term2totalTerm==diff$minValue,
3,
ifelse(diff$Rating4_term2totalTerm==diff$minValue,
4,
5)
)
)
)
diff$minValue2 <- ifelse(abs(diff$minValue)>abs(diff$Rating1_term2totalTerm),
diff$Rating1_term2totalTerm,
ifelse(abs(diff$minValue)>abs(diff$Rating2_term2totalTerm),
diff$Rating2_term2totalTerm,
ifelse(abs(diff$minValue)>abs(diff$Rating3_term2totalTerm),
diff$Rating3_term2totalTerm,
ifelse(abs(diff$minValue)>abs(diff$Rating4_term2totalTerm),
diff$Rating4_term2totalTerm,
ifelse(abs(diff$minValue)>abs(diff$Rating5_term2totalTerm),
diff$Rating5_term2totalTerm,
diff$minValue)
)
)
)
)
diff$vote2 <- ifelse(diff$Rating1_term2totalTerm==diff$minValue2,
1,
ifelse(diff$Rating2_term2totalTerm==diff$minValue2,
2,
ifelse(diff$Rating3_term2totalTerm==diff$minValue2,
3,
ifelse(diff$Rating4_term2totalTerm==diff$minValue2,
4,
5)
)
)
)
diff
## Rating1_term2totalTerm Rating2_term2totalTerm
## can_diff -0.008 -0.007
## day_diff -0.007 -0.007
## experience_diff 0.006 0.010
## get_diff 0.012 0.013
## good_diff 0.009 0.010
## just_diff 0.007 0.011
## like_diff 0.005 0.007
## make_diff 0.007 0.008
## place_diff 0.008 0.005
## spa_diff 0.002 0.011
## tell_diff 0.010 0.007
## time_diff 0.012 0.008
## Rating3_term2totalTerm Rating4_term2totalTerm
## can_diff -0.007 -0.006
## day_diff -0.007 -0.005
## experience_diff 0.004 0.007
## get_diff 0.016 0.014
## good_diff 0.012 0.014
## just_diff 0.010 0.007
## like_diff 0.010 0.009
## make_diff 0.004 0.004
## place_diff 0.007 0.004
## spa_diff 0.011 0.005
## tell_diff 0.001 0.001
## time_diff 0.010 0.010
## Rating5_term2totalTerm minValue vote minValue2 vote2
## can_diff -0.006 -0.008 1 -0.007 2
## day_diff -0.007 -0.007 1 -0.005 4
## experience_diff 0.006 0.004 3 0.004 3
## get_diff 0.013 0.012 1 0.012 1
## good_diff 0.019 0.009 1 0.009 1
## just_diff 0.006 0.006 5 0.006 5
## like_diff 0.005 0.005 1 0.005 1
## make_diff 0.008 0.004 3 0.004 3
## place_diff 0.009 0.004 4 0.004 4
## spa_diff 0.004 0.002 1 0.002 1
## tell_diff 0.001 0.001 3 0.001 3
## time_diff 0.010 0.008 2 0.008 2
Lets see the results of the first vote with only the minimum.
bestVote <- diff %>% group_by(vote) %>% count()
bestVote$maxVote <- ifelse(bestVote$n==max(bestVote$n),
1,0)
bestVote$ratingMean <- ifelse(sum(bestVote$maxVote) > 1,
ifelse(ceiling(mean(bestVote$vote*bestVote$n))>5,
5, ceiling(mean(bestVote$vote*bestVote$n))),
ifelse(bestVote$n==max(bestVote$n),
bestVote$vote,
0)
)
bestVote$ratingMedian <- ifelse(sum(bestVote$maxVote) > 1,
ifelse(ceiling(median(bestVote$vote*bestVote$n))>5,
5,ceiling(median(bestVote$vote*bestVote$n))),
ifelse(bestVote$n==max(bestVote$n),
bestVote$vote,
0)
)
max(bestVote$ratingMean)
## [1] 1
max(bestVote$ratingMedian)
## [1] 1
bestVote
## # A tibble: 5 x 5
## # Groups: vote [5]
## vote n maxVote ratingMean ratingMedian
## <dbl> <int> <dbl> <dbl> <dbl>
## 1 1 6 1 1 1
## 2 2 1 0 1 1
## 3 3 3 0 1 1
## 4 4 1 0 1 1
## 5 5 1 0 1 1
Lets see how vote2 measures in for predicting most likely reveiw.
bestVote2 <- diff %>% group_by(vote2) %>% count()
bestVote2$maxVote2 <- ifelse(bestVote2$n==max(bestVote2$n),
1,0)
bestVote2$ratingMean2 <- ifelse(sum(bestVote2$maxVote2) > 1,
ifelse(ceiling(mean(bestVote2$vote2*bestVote2$n))>5,
5, ceiling(mean(bestVote2$vote2*bestVote2$n))),
ifelse(bestVote2$n==max(bestVote2$n),
bestVote2$vote2,
0)
)
bestVote2$ratingMedian2 <- ifelse(sum(bestVote2$maxVote2) > 1,
ifelse(ceiling(median(bestVote2$vote2*bestVote2$n))>5,
5,ceiling(median(bestVote2$vote2*bestVote2$n))),
ifelse(bestVote2$n==max(bestVote2$n),
bestVote2$vote2,
0)
)
max(bestVote2$ratingMean2)
## [1] 1
max(bestVote2$ratingMedian2)
## [1] 1
bestVote2
## # A tibble: 5 x 5
## # Groups: vote2 [5]
## vote2 n maxVote2 ratingMean2 ratingMedian2
## <dbl> <int> <dbl> <dbl> <dbl>
## 1 1 4 1 1 1
## 2 2 2 0 1 1
## 3 3 3 0 1 1
## 4 4 2 0 1 1
## 5 5 1 0 1 1
Lets see what this rating is. The string object was taken from the first review of the business.
Reviews13[600,]
## userReviewSeries
## 600 mostRecentVisit_review
## userReviewOnlyContent
## 600 DOCTOR is great, and has friendly staff. I have had lower back pain for years and he fixed it right up in a few visits. Every now and then the pain comes back and he always gets me in the same day without a problem for an adjustment. He also has a laser that he can use to treat different areas.
## userRatingSeries userRatingValue businessReplied businessReplyContent
## 600 mostRecentVisit_rating 5 no NA
## userReviewContent
## 600 2/19/2013\nDOCTOR is great, and has friendly staff. I have had lower back pain for years and he fixed it right up in a few visits. Every now and then the pain comes back and he always gets me in the same day without a problem for an adjustment. He also has a laser that he can use to treat different areas.
## LowAvgHighCost businessType cityState friends reviews photos eliteStatus
## 600 Avg chiropractic Norco, CA 23 36 NA <NA>
## userName Date userBusinessPhotos userCheckIns
## 600 Mike D. 2013-02-19 NA NA
The rating is actually a 5. These words are worse than our other use of keywords as the top 12 stopwords. None of the predictions from the first three are correct. In fact, every prediction was for a 1 rating. We need to go back and change our words. We should pick only those words that aren’t relative to one business type that are in our keywords.
!@# We are going to use the same manual algorithm, but we need new keywords. Lets go back to the freqR1-freqR5 term frequency tables by rating and select the terms by frequencies occuring more often than other terms.
allTermFreqs <- merge(freqR1,freqR2, by.x='id', by.y='id')
allTermFreqs1 <- merge(allTermFreqs,freqR3, by.x='id', by.y='id')
allTermFreqs2 <- merge(allTermFreqs1, freqR4, by.x='id', by.y='id')
allTermFreqs3 <- merge(allTermFreqs2, freqR5, by.x='id', by.y='id')
head(allTermFreqs3)
## id rating1 rating2 rating3 rating4 rating5
## 1 able 8 6 6 10 31
## 2 absolutely 4 14 2 1 21
## 3 actually 4 7 3 8 12
## 4 add 4 1 4 6 6
## 5 addition 1 2 2 2 2
## 6 admission 3 3 4 20 8
Lets order the table we mades of all combined ratings by frquency count of terms from most to least for rating 1,…,rating 5.
allTermFreqsOrdered <- allTermFreqs3[with(allTermFreqs3, order(rating1,rating2,rating3,rating4,rating5, decreasing=TRUE)),]
head(allTermFreqsOrdered,20)
## id rating1 rating2 rating3 rating4 rating5
## 146 get 75 44 52 100 178
## 376 time 74 28 32 73 137
## 365 tell 65 24 4 6 16
## 149 good 57 33 38 103 272
## 315 say 55 11 10 19 52
## 23 ask 51 7 5 18 9
## 85 day 50 27 27 75 109
## 267 place 50 18 23 32 128
## 53 can 47 26 25 64 122
## 69 come 45 22 24 44 130
## 325 service 45 22 18 35 83
## 89 didnt 45 6 7 21 31
## 29 back 44 13 10 31 104
## 109 even 43 23 1 22 53
## 189 just 42 36 33 48 79
## 216 make 42 27 14 32 110
## 49 cabana 37 9 30 7 22
## 120 experience 36 33 12 52 91
## 233 much 35 20 28 65 117
## 30 bad 34 9 2 7 14
lets do the same for the term frequencies but order from rating5,…,rating1.
allTermsFreqsOrdered5_1 <- allTermFreqs3[with(allTermFreqs3, order(rating5,rating4,rating3,rating2,rating1,decreasing=TRUE)),]
head(allTermsFreqsOrdered5_1,20)
## id rating1 rating2 rating3 rating4 rating5
## 149 good 57 33 38 103 272
## 146 get 75 44 52 100 178
## 346 staff 20 9 10 23 152
## 151 great 16 9 13 54 150
## 376 time 74 28 32 73 137
## 219 massage 22 8 17 57 135
## 69 come 45 22 24 44 130
## 267 place 50 18 23 32 128
## 53 can 47 26 25 64 122
## 233 much 35 20 28 65 117
## 215 love 12 8 22 37 113
## 216 make 42 27 14 32 110
## 85 day 50 27 27 75 109
## 130 feel 10 17 27 34 108
## 12 always 13 2 5 17 105
## 29 back 44 13 10 31 104
## 296 recommend 10 6 6 17 104
## 13 amaze 5 6 4 12 92
## 120 experience 36 33 12 52 91
## 141 friendly 4 3 4 16 85
Looking at the above lets take those words that are increasing monotonically from rating 1 through rating 5 with an ifelse function column for each.
allTermsOrdered <- allTermsFreqsOrdered5_1
allTermsOrdered$monotonicIncrease <- ifelse(allTermsOrdered$rating1<allTermsOrdered$rating2,
ifelse(allTermsOrdered$rating2<allTermsOrdered$rating3,
ifelse(allTermsOrdered$rating3<allTermsOrdered$rating4,
ifelse(allTermsOrdered$rating4<allTermsOrdered$rating5, 1,
0),
0),
0),
0)
allTFs <- allTermsOrdered[order(allTermsOrdered$monotonicIncrease,
decreasing=TRUE),]
head(allTFs,20)
## id rating1 rating2 rating3 rating4 rating5 monotonicIncrease
## 130 feel 10 17 27 34 108 1
## 20 area 4 5 9 29 40 1
## 87 definitely 2 3 4 16 40 1
## 213 lot 1 5 7 15 34 1
## 218 many 5 6 7 18 30 1
## 253 open 2 3 9 11 29 1
## 387 two 2 5 8 10 25 1
## 412 worth 2 6 8 13 24 1
## 37 big 1 3 4 15 18 1
## 47 busy 1 4 6 8 13 1
## 236 nachos 3 5 6 9 11 1
## 271 plus 1 2 3 4 8 1
## 303 restaurant 1 2 5 6 7 1
## 149 good 57 33 38 103 272 0
## 146 get 75 44 52 100 178 0
## 346 staff 20 9 10 23 152 0
## 151 great 16 9 13 54 150 0
## 376 time 74 28 32 73 137 0
## 219 massage 22 8 17 57 135 0
## 69 come 45 22 24 44 130 0
We see from the above list that there are very few words that are increasing monotonically in word counts by frequency of occurence from rating 1 through rating 5. Lets see what words those are.
monoKeys <- subset(allTermsOrdered, allTermsOrdered$monotonicIncrease==1)
monoKeys$id
## [1] "feel" "area" "definitely" "lot" "many"
## [6] "open" "two" "worth" "big" "busy"
## [11] "nachos" "plus" "restaurant"
We could remove the nachos and restaurant, because those are not going to be in certain business types, and we have 11 keywords. But we need another. So, lets pick the highest word that starts at rating 3 as the minimum of ratings 1 through 5, but then increases monotonicall in word count on both sides from rating 4 to 5 on the right and from rating 2 to 1 on the left. But also, there has to be a constraint that the rating 2 is > 10% of rating 3, and rating 1 is > 10% of rating 2, and rating 4 is greater than 10% of rating 1 and rating5 is greater than 10% of rating 4. We can do this with an ifelse statement.
allTermsOrdered$min3 <- apply(allTermsOrdered[,2:6],1,min)
allTermsOrdered$min3_yes <- ifelse(allTermsOrdered$rating3 == allTermsOrdered$min3,
1,0)
allTermsOrdered$min3_RgrtrIncr <- ifelse(allTermsOrdered$min3_yes==1,
ifelse(allTermsOrdered$rating2>(1.1*allTermsOrdered$min3),
ifelse(allTermsOrdered$rating1>(1.1*allTermsOrdered$rating2),
ifelse(allTermsOrdered$rating4>(1.1*allTermsOrdered$rating1),
ifelse(allTermsOrdered$rating5>(1.1*allTermsOrdered$rating4),
1,
0),
0),
0),
0),
0)
Rgrtr3min <- subset(allTermsOrdered, allTermsOrdered$min3_RgrtrIncr==1)
Rgrtr3min
## id rating1 rating2 rating3 rating4 rating5 monotonicIncrease min3
## 415 year 14 10 4 18 70 0 4
## 352 still 12 7 4 17 19 0 4
## 377 today 8 2 1 13 15 0 1
## 88 desk 7 3 2 10 15 0 2
## 235 must 3 2 1 5 11 0 1
## min3_yes min3_RgrtrIncr
## 415 1 1
## 352 1 1
## 377 1 1
## 88 1 1
## 235 1 1
Lets pick the top word, since there is more variation from rating 3 < rating 2 < rating 1 < rating 4 < rating 5. Now, we should combine are monotonic words and this top word into our new 12 keywords and see if these words can provide better accuracy in predicting the rating of the review.
keyNames <- c(monoKeys$id[c(1:10,12)], Rgrtr3min$id[1])#leave out the 'nachos' and 'restaurant'
keyNames
## [1] "feel" "area" "definitely" "lot" "many"
## [6] "open" "two" "worth" "big" "busy"
## [11] "plus" "year"
termKeys <- as.data.frame(keyNames)
colnames(termKeys) <- 'term'
tk1 <- merge(termKeys, FREQ_R1, by.x='term', by.y='term')
tk2 <- merge(tk1,FREQ_R2, by.x='term', by.y='term')
tk3 <- merge(tk2, FREQ_R3, by.x='term', by.y='term')
tk4 <- merge(tk3, FREQ_R4, by.x='term', by.y='term')
tk5 <- merge(tk4, FREQ_R5, by.x='term', by.y='term')
tk5$Rating1_totalTerms <- sum(FREQ_R1$Rating1termfrequency)
tk5$Rating2_totalTerms <- sum(FREQ_R2$Rating2termfrequency)
tk5$Rating3_totalTerms <- sum(FREQ_R3$Rating3termfrequency)
tk5$Rating4_totalTerms <- sum(FREQ_R4$Rating4termfrequency)
tk5$Rating5_totalTerms <- sum(FREQ_R5$Rating5termfrequency)
#these are total terms over all by rating, not unique terms
tk5$Rating1_term2totalTerm <- tk5$Rating1termfrequency/tk5$Rating1_totalTerms
tk5$Rating2_term2totalTerm <- tk5$Rating2termfrequency/tk5$Rating2_totalTerms
tk5$Rating3_term2totalTerm <- tk5$Rating3termfrequency/tk5$Rating3_totalTerms
tk5$Rating4_term2totalTerm <- tk5$Rating4termfrequency/tk5$Rating4_totalTerms
tk5$Rating5_term2totalTerm <- tk5$Rating5termfrequency/tk5$Rating5_totalTerms
termToTotalTerms <- tk5 %>% select(term,Rating1_term2totalTerm,
Rating2_term2totalTerm,
Rating3_term2totalTerm,
Rating4_term2totalTerm,
Rating5_term2totalTerm)
# Round to 5 because these value ratios are very small
term_to_totalTerms <- round(termToTotalTerms[,2:6],5)
row.names(term_to_totalTerms) <- termToTotalTerms$term
wordToAllWords <- as.data.frame(t(term_to_totalTerms))
wordToAllWords
## area big busy definitely feel lot
## Rating1_term2totalTerm 0.00062 0.00016 0.00016 0.00031 0.00156 0.00016
## Rating2_term2totalTerm 0.00149 0.00089 0.00119 0.00089 0.00506 0.00149
## Rating3_term2totalTerm 0.00282 0.00125 0.00188 0.00125 0.00846 0.00219
## Rating4_term2totalTerm 0.00405 0.00210 0.00112 0.00224 0.00475 0.00210
## Rating5_term2totalTerm 0.00284 0.00128 0.00092 0.00284 0.00768 0.00242
## many open plus two worth year
## Rating1_term2totalTerm 0.00078 0.00031 0.00016 0.00031 0.00031 0.00219
## Rating2_term2totalTerm 0.00178 0.00089 0.00059 0.00149 0.00178 0.00297
## Rating3_term2totalTerm 0.00219 0.00282 0.00094 0.00251 0.00251 0.00125
## Rating4_term2totalTerm 0.00252 0.00154 0.00056 0.00140 0.00182 0.00252
## Rating5_term2totalTerm 0.00213 0.00206 0.00057 0.00178 0.00171 0.00498
Write this table out to csv as our new word ratio table.
write.csv(wordToAllWords,'wordToAllWords.csv', row.names=TRUE)
We are going to have a problem if we don’t handle the missing values being reported as zero in our algorithm. The zeros are getting categorized closer to the monotonically increasing values of 1. so we need to add some constraints that will say that if the value of any of the keywords are 0.00000 or lower, that the value is an NA and to skip, just vote on the words that do have values.Because not every reveiw will have every one of our keywords. This throws off the algorithm to include words with no values as zero. We should go back to the values of the keyword counts table to make this constraint.!@#$%
str1 <- as.character(paste(Reviews13$userReviewOnlyContent[1]))
str1 <- gsub('[!|.|,|\n|\']',' ',str1,perl=TRUE)
str1 <- gsub('[ ]',' ',str1)
str1 <- trimws(str1, which=c('both'), whitespace='[\t\r\n ]')
totalTerms <- length((strsplit(str1, split=' ')[[1]]))
keys <- colnames(wordToAllWords)
area <- str_match_all(str1,' [aA][rR][eE][aA] ')
AREA <- length(area[[1]])
big <- str_match_all(str1,' [bB][iI][gG] ')
BIG <- length(big[[1]])
busy <- str_match_all(str1,' [bB][uU][sS][yY] ')
BUSY <- length(busy[[1]])
definitely <- str_match_all(str1,' [dD][eE][fF][iI][nN][iI][tT][eE][lL][yY] ')
DEFINITELY <- length(definitely[[1]])
feel <- str_match_all(str1,' [fF][eE][Ee][lL] ')
FEEL <- length(feel[[1]])
lot <- str_match_all(str1,' [lL][oO][tT] ')
LOT <- length(lot[[1]])
many <- str_match_all(str1,' [mM][aA][nN][yY] ')
MANY <- length(many[[1]])
open <- str_match_all(str1,' [oO][pP][eE][nN] ')
OPEN <- length(open[[1]])
plus <- str_match_all(str1,' [pP][lL][uU][sS] ')
PLUS <- length(plus[[1]])
two <- str_match_all(str1,' [tT][wW][oO] ')
TWO <- length(two[[1]])
worth <- str_match_all(str1,' [wW][oO][rR][tT][hH] ')
WORTH <- length(worth[[1]])
year <- str_match_all(str1,' [yY][eE][aA][rR] ')
YEAR <- length(year[[1]])
values <- as.data.frame(c(AREA,BIG,BUSY,DEFINITELY,FEEL,LOT,MANY,OPEN,PLUS,TWO,WORTH,YEAR))
row.names(values) <- termKeys$term
#add constraint for missing terms as NA not 0
colnames(values) <- 'termCount'
values$termCount <- gsub(0,NA,values$termCount)
values$termCount <- as.numeric(paste(values$termCount))
keyValues <- as.data.frame(t(values))
keyValues2 <- keyValues/totalTerms
keyValues3 <- rbind(keyValues,keyValues2)
row.names(keyValues3) <- c('documentTermCount','term_to_totalDocumentTerms')
keyValues3 <- round(keyValues3,5)
keyValues3
## feel area definitely lot many open two worth big
## documentTermCount 1.00000 NA NA NA NA NA NA NA NA
## term_to_totalDocumentTerms 0.00369 NA NA NA NA NA NA NA NA
## busy plus year
## documentTermCount NA NA 2.00000
## term_to_totalDocumentTerms NA NA 0.00738
#!@#
joinKeys <- full_join(wordToAllWords,keyValues3)
r1 <- row.names(wordToAllWords)
r2 <- row.names(keyValues3)
names <- c(r1,r2)
row.names(joinKeys) <- names
joinKeys
## area big busy definitely feel lot
## Rating1_term2totalTerm 0.00062 0.00016 0.00016 0.00031 0.00156 0.00016
## Rating2_term2totalTerm 0.00149 0.00089 0.00119 0.00089 0.00506 0.00149
## Rating3_term2totalTerm 0.00282 0.00125 0.00188 0.00125 0.00846 0.00219
## Rating4_term2totalTerm 0.00405 0.00210 0.00112 0.00224 0.00475 0.00210
## Rating5_term2totalTerm 0.00284 0.00128 0.00092 0.00284 0.00768 0.00242
## documentTermCount NA NA NA NA 1.00000 NA
## term_to_totalDocumentTerms NA NA NA NA 0.00369 NA
## many open plus two worth year
## Rating1_term2totalTerm 0.00078 0.00031 0.00016 0.00031 0.00031 0.00219
## Rating2_term2totalTerm 0.00178 0.00089 0.00059 0.00149 0.00178 0.00297
## Rating3_term2totalTerm 0.00219 0.00282 0.00094 0.00251 0.00251 0.00125
## Rating4_term2totalTerm 0.00252 0.00154 0.00056 0.00140 0.00182 0.00252
## Rating5_term2totalTerm 0.00213 0.00206 0.00057 0.00178 0.00171 0.00498
## documentTermCount NA NA NA NA NA 2.00000
## term_to_totalDocumentTerms NA NA NA NA NA 0.00738
feel_diff <- joinKeys$feel[1:5]-joinKeys$feel[7]
area_diff <- joinKeys$area[1:5]-joinKeys$area[7]
definitely_diff <- joinKeys$definitely[1:5]-joinKeys$definitely[7]
lot_diff <- joinKeys$lot[1:5]-joinKeys$lot[7]
many_diff <- joinKeys$many[1:5]-joinKeys$many[7]
open_diff <- joinKeys$open[1:5]-joinKeys$open[7]
two_diff <- joinKeys$two[1:5]-joinKeys$two[7]
worth_diff <- joinKeys$worth[1:5]-joinKeys$worth[7]
big_diff <- joinKeys$big[1:5]-joinKeys$big[7]
busy_diff <- joinKeys$busy[1:5]-joinKeys$busy[7]
plus_diff <- joinKeys$plus[1:5]-joinKeys$plus[7]
year_diff <- joinKeys$year[1:5]-joinKeys$year[7]
diff <- as.data.frame(t(cbind(feel_diff, area_diff, definitely_diff, lot_diff, many_diff,
open_diff,two_diff, worth_diff, big_diff, busy_diff, plus_diff, year_diff)))
colnames(diff) <- r1
diff$minValue <- apply(diff,1, min)
diff$vote <- ifelse(diff$Rating1_term2totalTerm==diff$minValue,
1,
ifelse(diff$Rating2_term2totalTerm==diff$minValue,
2,
ifelse(diff$Rating3_term2totalTerm==diff$minValue,
3,
ifelse(diff$Rating4_term2totalTerm==diff$minValue,
4,
5)
)
)
)
diff$minValue2 <- ifelse(abs(diff$minValue)>abs(diff$Rating1_term2totalTerm),
diff$Rating1_term2totalTerm,
ifelse(abs(diff$minValue)>abs(diff$Rating2_term2totalTerm),
diff$Rating2_term2totalTerm,
ifelse(abs(diff$minValue)>abs(diff$Rating3_term2totalTerm),
diff$Rating3_term2totalTerm,
ifelse(abs(diff$minValue)>abs(diff$Rating4_term2totalTerm),
diff$Rating4_term2totalTerm,
ifelse(abs(diff$minValue)>abs(diff$Rating5_term2totalTerm),
diff$Rating5_term2totalTerm,
diff$minValue)
)
)
)
)
diff$vote2 <- ifelse(diff$Rating1_term2totalTerm==diff$minValue2,
1,
ifelse(diff$Rating2_term2totalTerm==diff$minValue2,
2,
ifelse(diff$Rating3_term2totalTerm==diff$minValue2,
3,
ifelse(diff$Rating4_term2totalTerm==diff$minValue2,
4,
5)
)
)
)
diff
## Rating1_term2totalTerm Rating2_term2totalTerm
## feel_diff -0.00213 0.00137
## area_diff NA NA
## definitely_diff NA NA
## lot_diff NA NA
## many_diff NA NA
## open_diff NA NA
## two_diff NA NA
## worth_diff NA NA
## big_diff NA NA
## busy_diff NA NA
## plus_diff NA NA
## year_diff -0.00519 -0.00441
## Rating3_term2totalTerm Rating4_term2totalTerm
## feel_diff 0.00477 0.00106
## area_diff NA NA
## definitely_diff NA NA
## lot_diff NA NA
## many_diff NA NA
## open_diff NA NA
## two_diff NA NA
## worth_diff NA NA
## big_diff NA NA
## busy_diff NA NA
## plus_diff NA NA
## year_diff -0.00613 -0.00486
## Rating5_term2totalTerm minValue vote minValue2 vote2
## feel_diff 0.00399 -0.00213 1 0.00137 2
## area_diff NA NA NA NA NA
## definitely_diff NA NA NA NA NA
## lot_diff NA NA NA NA NA
## many_diff NA NA NA NA NA
## open_diff NA NA NA NA NA
## two_diff NA NA NA NA NA
## worth_diff NA NA NA NA NA
## big_diff NA NA NA NA NA
## busy_diff NA NA NA NA NA
## plus_diff NA NA NA NA NA
## year_diff -0.00240 -0.00613 3 -0.00519 1
!@#$%
bestVote <- diff %>% group_by(vote) %>% count()
#modified due to NAs getting votes as max
bestVote$isNA <- ifelse(is.na(bestVote$vote),1,0)
#this will now eliminate the NA from being included in best vote for rating values
bestVote$preNotNA <- ifelse(bestVote$isNA != 1 , bestVote$n,
0)
#this will count how many ratings are the max number of votes to find ties
bestVote$maxVote <- ifelse(bestVote$preNotNA==max(bestVote$preNotNA),1,0)
bestVote$ratingMean <- ifelse(sum(bestVote$maxVote) > 1,
ifelse(ceiling(mean(bestVote$vote*bestVote$preNotNA,na.rm=TRUE))>5,
5,
ceiling(mean(bestVote$vote*bestVote$preNotNA,na.rm=TRUE))),
ifelse(bestVote$preNotNA==max(bestVote$preNotNA),
bestVote$vote,
0)
)
bestVote$ratingMedian <- ifelse(sum(bestVote$maxVote) > 1, ifelse(ceiling(median(bestVote$vote*bestVote$preNotNA,na.rm=TRUE))>5,
5,ceiling(median(bestVote$vote*bestVote$preNotNA,na.rm=TRUE))),
ifelse(bestVote$preNotNA==max(bestVote$preNotNA),
bestVote$vote,
0)
)
max(bestVote$ratingMean)
## [1] 2
max(bestVote$ratingMedian)
## [1] 2
bestVote
## # A tibble: 3 x 7
## # Groups: vote [3]
## vote n isNA preNotNA maxVote ratingMean ratingMedian
## <dbl> <int> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1 1 0 1 1 2 2
## 2 3 1 0 1 1 2 2
## 3 NA 10 1 0 0 2 2
This is the actual shortest distance as the minimum to vote for the rating by word ratios of words available.
bestVote2 <- diff %>% group_by(vote2) %>% count()
#modified due to NAs getting votes as max
bestVote2$isNA <- ifelse(is.na(bestVote2$vote2),1,0)
#this will now eliminate the NA from being included in best vote for rating values
bestVote2$preNotNA <- ifelse(bestVote2$isNA != 1 , bestVote$n,
0)
#this will count how many ratings are the max number of votes to find ties
bestVote2$maxVote2 <- ifelse(bestVote2$preNotNA==max(bestVote2$preNotNA),1,0)
bestVote2$ratingMean2 <- ifelse(sum(bestVote2$maxVote2) > 1, ifelse(ceiling(mean(bestVote2$vote2*bestVote2$preNotNA,na.rm=TRUE))>5,5, ceiling(mean(bestVote2$vote2*bestVote2$preNotNA,na.rm=TRUE))),
ifelse(bestVote2$preNotNA==max(bestVote2$preNotNA),
bestVote2$vote2,
0)
)
bestVote2$ratingMedian2 <- ifelse(sum(bestVote2$maxVote2) > 1,
ifelse(ceiling(median(bestVote2$vote2*bestVote2$preNotNA,na.rm=TRUE))>5,5,
ceiling(median(bestVote2$vote2*bestVote2$preNotNA,na.rm=TRUE))),
ifelse(bestVote2$preNotNA==max(bestVote2$preNotNA),
bestVote2$vote2,
0)
)
max(bestVote2$ratingMean2)
## [1] 2
max(bestVote2$ratingMedian2)
## [1] 2
bestVote2
## # A tibble: 3 x 7
## # Groups: vote2 [3]
## vote2 n isNA preNotNA maxVote2 ratingMean2 ratingMedian2
## <dbl> <int> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1 1 0 1 1 2 2
## 2 2 1 0 1 1 2 2
## 3 NA 10 1 0 0 2 2
Lets see what this rating is. The string object was taken from the first review of the business.
Reviews13$userRatingValue[1]
## [1] 5
!@# ***
Lets visualize these keywords by the layout of these keywords to rating by ratios as weight, ratings as edges, and nodes as keywords. We have to first take this information from the data table on the ratios of terms counted each per documents in each rating to total terms per documents per rating. This data table is the wordToAllWords table. From this table we have our weights and our ratings. The weights are what will make the arrows width smaller or larger than the other arrow widths depending on how much weight they have on each word linked to a specific rating. The ratings are the edges. The nodes are the words, and those are also in this table. The label in the nodes table will be the keyword, and the title will be the rating. The id is the row number from the nodes table, which is the from column in the edges table. and the to column in the edges table will be the rating. Lets also add another feature from the Reviews13 data table for the day of the week as Monday through Sunday by adding a feature that takes the day of the week from the date field we added earlier in the data. Lets read in those two data tables and make sure our libraries are loaded in to Rstudio from the top of this script.The visNetwork and igraph link analysis and visualization libraries will be used for this link analysis. The package igraph makes the visNetwork package work faster in uploading and allows editing and modifying the link analysis network using various customized plot layouts and color schemes as well as other added value to the visualization.
Lets add the day of the week using the lubridate package to the Reviews13 datatable Date field.
head(Reviews13)
## userReviewSeries
## 1 mostRecentVisit_review
## 2 mostRecentVisit_review
## 3 mostRecentVisit_review
## 4 mostRecentVisit_review
## 5 mostRecentVisit_review
## 6 mostRecentVisit_review
## userReviewOnlyContent
## 1 What a wonderful way to start the year! This was my second time back to HIGH END SPA, and we had a great time. The crowds were very low (seriously, it felt like we had the place to ourselves most of the day.) We walked right into the mineral baths, club mud, and didn't wait in any kind of line for lunch. None of the pools were crowded, and we were even able to enjoy one of the hammocks in the secret garden.\n\nTiffany at the front check-in desk went above and beyond for us regarding the robes. I had requested a plus-sized robe, since after my last review I knew they had added some to their collection. Unfortunately, all of their plus-sized robes were still dirty from the day before. Tiffany was so accommodating, though! She was able to get us robes from the cabana area that fit me perfectly! It is so great to know that not only do they now offer guests of all sizes the option to enjoy a warm robe, but that they really want to make sure you have a good day. Thank you, Tiffany, for everything.\n\nAll of the staff today were in good spirits. The only thing that would have made today better would have been a massage. We'll have to book one next time. My husband and I are going to make HIGH END SPA our annual New Year's Day tradition!\n\n
## 2 My sister and I brought my mom here for her birthday and overall, we really enjoyed our time here. We're used to going to Korean spas, but this was definitely an upgrade.\n\nPROS:\n- The resort itself is beautiful and so relaxing. Like seriously such a pleasing escape from reality that I needed. It's set up so nicely and feels very luxurious.\n- It was my mom's birthday so she received free admission on birthday with a purchase of a service. Admission is $52, so she booked a manicure for $50 and got in for free. WORTH. My mom had gone 52 years without ever getting her nails done, so it was kind of heartwarming to see how much she loved her experience.\n- The three of us took a Yin Yoga class and really enjoyed it. We definitely want to take advantage of the other class options next time we come.\n- CLUB MUD. We had so much fun there and even made a little clay sculpture. It really does do wonders for your skin, and the area is suprisingly very well-kept.\n- The shower and locker facilities can get pretty crowded, but overall, they are super nice and clean. They have an ample amount of showers, so we didn't have to wait at all.\n- All the staff seemed really friendly and helpful. There's always staff members roaming around, so you always feel somewhat taken care of.\n- I really appreciated the towel and water stands located throughout the resort. So handy and necessary.\n- Parking is free, thank God.\n\nCONS:\n- We went on a fairly cold day (around 60 degrees), so the hot pools were CROWDED,. Like there were a couple of times I touched other people's body parts I definitely did not want to touch. I feel like some of the hot pools exceeded capacity, and I'm sure it was mostly because it was a cold day, but I do wish there were more of the hot pools or they should just be larger!\n- The food is incredibly expensive. Like as ridiculous as Disneyland, which is saying something. Plan to spend around $20 per meal per person. The one thing that was worth it was the nachos ($16 for the small, but this thing is huge).\n- The kitchen moves VERY SLOWLY. Especially the salad section because I came before the lunch rush and still waited 20 minutes to order my salad. The kitchen staff seems a bit incompetent, or maybe it's just run inefficiently.\n- This is more of a side note, but I wish there was a more streamlined reservation system. I made the entire reservation over the phone, which was fine, but it wasn't laid out as clearly as I would have liked it with the premium admissions prices, services, etc. The online one also just seemed really confusing.\n\nOverall, we had a positive experience with just a couple of kinks here and there. We love that there's just a lot to do here and time FLIES when you're here so come as early as you can. We definitely want to try coming back in the summer months when it's warmer!\n\n\n
## 3 I came to CHIROPRACTIC with severe back and neck pain. DOCTOR was AMAZING and helped me to feel much better than I have felt for YEARS! The girls up front also are very sweet and always made sure that all my appointments were set and on time! Heather the billing manager was very kind as well, she was AWESOME when it came to dealing with me and my insurance amd was definitely a huge help! I don't know what I would have done without Heather helping me with all of the insurance problems I had!!! She is the BEST, thank you Heather!! I would definitely recommend going to this clinic!!!!
## 4 I have to say.... This is by far the best Chiropractic place I've ever been to. The staff is super friendly and very professional. From the moment I walk in the door I get greeted by name . The Drs are amazing too. Love this place and I highly recommend them.
## 5 Dr. is my chiropractor and he is a fabulous individual. I've never waited more than few minutes for him to see me. The front team (Both ladies" are great with an outstanding care and smile. Thank you guys for all you do.
## 6 Many in our family have seen DOCTOR for chiropractic care. He is very warm and friendly, knowledgable, puts your mind at ease during his adjustments. He gives great explanations. Our 14yo son said, "he is really good at what he does and he is a good person." We all feel better after visiting him. Recommend him to everyone.
## userRatingSeries userRatingValue businessReplied
## 1 mostRecentVisit_rating 5 yes
## 2 mostRecentVisit_rating 4 yes
## 3 mostRecentVisit_rating 5 no
## 4 mostRecentVisit_rating 5 no
## 5 mostRecentVisit_rating 5 no
## 6 mostRecentVisit_rating 5 no
## businessReplyContent
## 1 Amber P. of HIGH END SPA Hot Springs\n\nBusiness Customer Service\n\n1/2/20191/15/2018-\nHi Michelle, HIGH END SPA is proud to welcome men and women of all shapes and sizes. In response to your day, we are now in the process of ordering a few XL robes so we can continue to have offerings for all of our guests. I wanted to reach out to you to let you know we have sent you a private message as we would like to connect with you directly. Thank you again for communicating your concern with us.\nAlexa Gallegos\n\n1/2/2019 -\n\nHi Michelle,\nI am so happy to hear that you had a great returning experience! Our team members do the best they can to accommodate all of our guests needs and we are very glad to hear you were happy with the solution.\nWe hope to see you and your husband again!\n\nBest,\nAmber Peyghambari\n\nRead less\n
## 2 Amber P. of HIGH END SPA Hot Springs\n\nBusiness Customer Service\n\n3/25/2019Hi Cathy,\n\nThank you for taking the time to share your experience with us. We are happy to hear that you enjoyed your day at HIGH END SPA. We appreciate all feedback and will share these concerns with our team. We hope to see you back this summer!\n\nWith kind,\nAmber Peyghambari\n
## 3 NA
## 4 NA
## 5 NA
## 6 NA
## userReviewContent
## 1 1/1/2019Updated review\n 2 photos\n\nWhat a wonderful way to start the year! This was my second time back to HIGH END SPA, and we had a great time. The crowds were very low (seriously, it felt like we had the place to ourselves most of the day.) We walked right into the mineral baths, club mud, and didn't wait in any kind of line for lunch. None of the pools were crowded, and we were even able to enjoy one of the hammocks in the secret garden.\n\nTiffany at the front check-in desk went above and beyond for us regarding the robes. I had requested a plus-sized robe, since after my last review I knew they had added some to their collection. Unfortunately, all of their plus-sized robes were still dirty from the day before. Tiffany was so accommodating, though! She was able to get us robes from the cabana area that fit me perfectly! It is so great to know that not only do they now offer guests of all sizes the option to enjoy a warm robe, but that they really want to make sure you have a good day. Thank you, Tiffany, for everything.\n\nAll of the staff today were in good spirits. The only thing that would have made today better would have been a massage. We'll have to book one next time. My husband and I are going to make HIGH END SPA our annual New Year's Day tradition!\n\nComment from Amber P. of HIGH END SPA Hot Springs\n\nBusiness Customer Service\n\n1/2/20191/15/2018-\nHi Michelle, HIGH END SPA is proud to welcome men and women of all shapes and sizes. In response to your day, we are now in the process of ordering a few XL robes so we can continue to have offerings for all of our guests. I wanted to reach out to you to let you know we have sent you a private message as we would like to connect with you directly. Thank you again for communicating your concern with us.\nAlexa Gallegos\n\n1/2/2019 -\n\nHi Michelle,\nI am so happy to hear that you had a great returning experience! Our team members do the best they can to accommodate all of our guests needs and we are very glad to hear you were happy with the solution.\nWe hope to see you and your husband again!\n\nBest,\nAmber Peyghambari\n\nRead less\n
## 2 3/24/2019\n 12 photos\n\nMy sister and I brought my mom here for her birthday and overall, we really enjoyed our time here. We're used to going to Korean spas, but this was definitely an upgrade.\n\nPROS:\n- The resort itself is beautiful and so relaxing. Like seriously such a pleasing escape from reality that I needed. It's set up so nicely and feels very luxurious.\n- It was my mom's birthday so she received free admission on birthday with a purchase of a service. Admission is $52, so she booked a manicure for $50 and got in for free. WORTH. My mom had gone 52 years without ever getting her nails done, so it was kind of heartwarming to see how much she loved her experience.\n- The three of us took a Yin Yoga class and really enjoyed it. We definitely want to take advantage of the other class options next time we come.\n- CLUB MUD. We had so much fun there and even made a little clay sculpture. It really does do wonders for your skin, and the area is suprisingly very well-kept.\n- The shower and locker facilities can get pretty crowded, but overall, they are super nice and clean. They have an ample amount of showers, so we didn't have to wait at all.\n- All the staff seemed really friendly and helpful. There's always staff members roaming around, so you always feel somewhat taken care of.\n- I really appreciated the towel and water stands located throughout the resort. So handy and necessary.\n- Parking is free, thank God.\n\nCONS:\n- We went on a fairly cold day (around 60 degrees), so the hot pools were CROWDED,. Like there were a couple of times I touched other people's body parts I definitely did not want to touch. I feel like some of the hot pools exceeded capacity, and I'm sure it was mostly because it was a cold day, but I do wish there were more of the hot pools or they should just be larger!\n- The food is incredibly expensive. Like as ridiculous as Disneyland, which is saying something. Plan to spend around $20 per meal per person. The one thing that was worth it was the nachos ($16 for the small, but this thing is huge).\n- The kitchen moves VERY SLOWLY. Especially the salad section because I came before the lunch rush and still waited 20 minutes to order my salad. The kitchen staff seems a bit incompetent, or maybe it's just run inefficiently.\n- This is more of a side note, but I wish there was a more streamlined reservation system. I made the entire reservation over the phone, which was fine, but it wasn't laid out as clearly as I would have liked it with the premium admissions prices, services, etc. The online one also just seemed really confusing.\n\nOverall, we had a positive experience with just a couple of kinks here and there. We love that there's just a lot to do here and time FLIES when you're here so come as early as you can. We definitely want to try coming back in the summer months when it's warmer!\n\n\nComment from Amber P. of HIGH END SPA Hot Springs\n\nBusiness Customer Service\n\n3/25/2019Hi Cathy,\n\nThank you for taking the time to share your experience with us. We are happy to hear that you enjoyed your day at HIGH END SPA. We appreciate all feedback and will share these concerns with our team. We hope to see you back this summer!\n\nWith kind,\nAmber Peyghambari\n
## 3 1/26/2020\nI came to CHIROPRACTIC with severe back and neck pain. DOCTOR was AMAZING and helped me to feel much better than I have felt for YEARS! The girls up front also are very sweet and always made sure that all my appointments were set and on time! Heather the billing manager was very kind as well, she was AWESOME when it came to dealing with me and my insurance amd was definitely a huge help! I don't know what I would have done without Heather helping me with all of the insurance problems I had!!! She is the BEST, thank you Heather!! I would definitely recommend going to this clinic!!!!
## 4 1/24/2020\nI have to say.... This is by far the best Chiropractic place I've ever been to. The staff is super friendly and very professional. From the moment I walk in the door I get greeted by name . The Drs are amazing too. Love this place and I highly recommend them.
## 5 10/22/2019\nDr. is my chiropractor and he is a fabulous individual. I've never waited more than few minutes for him to see me. The front team (Both ladies" are great with an outstanding care and smile. Thank you guys for all you do.
## 6 12/23/2019\nMany in our family have seen DOCTOR for chiropractic care. He is very warm and friendly, knowledgable, puts your mind at ease during his adjustments. He gives great explanations. Our 14yo son said, "he is really good at what he does and he is a good person." We all feel better after visiting him. Recommend him to everyone.
## LowAvgHighCost businessType cityState friends reviews
## 1 High high end massage retreat Orange, CA 26 33
## 2 High high end massage retreat Los Angeles, CA 894 311
## 3 Avg chiropractic Laguna Beach, CA 0 NA
## 4 Avg chiropractic Moreno Valley, CA 0 NA
## 5 Avg chiropractic Corona, CA 0 11
## 6 Avg chiropractic Corona, CA 0 2
## photos eliteStatus userName Date userBusinessPhotos userCheckIns
## 1 21 <NA> Michelle A. 2019-01-01 2 NA
## 2 1187 Elite '2020 Cathy P. 2019-03-24 NA NA
## 3 NA <NA> Brie W. 2020-01-26 NA NA
## 4 NA <NA> Yoles A. 2020-01-24 NA NA
## 5 NA <NA> Rafeh T. 2019-10-22 NA NA
## 6 NA <NA> Kort U. 2019-12-23 NA NA
When looking at the table above there are other factors that could be grouped by, such as the business type, the cost as low, average, or high, then number of photos each user has, etc. But we will just focus on using the day of the week. Lets add the day of the week now. First lets make sure the Date feature is recognized as a date feature.
class(Reviews13$Date)
## [1] "Date"
It is a factor, so we will change it to a date feature type.
Reviews13$Date <- as.Date(Reviews13$Date)
class(Reviews13$Date)
## [1] "Date"
Now lets extract the day of the week from our date feature.
date <- ymd(Reviews13$Date)
date <- day(Reviews13$Date)
Reviews13$weekday <- wday(date, label=TRUE, week_start=1)#set start of week to Monday)
head(Reviews13$weekday)
## [1] Sun Tue Thu Tue Sun Mon
## Levels: Mon < Tue < Wed < Thu < Fri < Sat < Sun
Now, we could have attached this information to the count of keywords in each review, but we skipped that step, and we have to make the process automated with a for loop to take every row in data table feature and keep applying this string filter program that counts the 12 words in each observation, and returns a vector that is row binded to the previous vector until now more observations left. We could do that later, you could do it now, or we could try it now and see if it is as simple as it sounds to set up. I will try it once, and if it will take more manipulation, or time, we will just work with what is readily available to focus on the link analysis network design we already planned and created instructions though loose on how to create. This is the keyword extraction script:
str1 <- as.character(paste(Reviews13$userReviewOnlyContent[1]))
str1 <- gsub('[!|.|,|\n|\']',' ',str1,perl=TRUE)
str1 <- gsub('[ ]',' ',str1)
str1 <- trimws(str1, which=c('both'), whitespace='[\t\r\n ]')
totalTerms <- length((strsplit(str1, split=' ')[[1]]))
keys <- colnames(wordToAllWords)
area <- str_match_all(str1,' [aA][rR][eE][aA] ')
AREA <- length(area[[1]])
big <- str_match_all(str1,' [bB][iI][gG] ')
BIG <- length(big[[1]])
busy <- str_match_all(str1,' [bB][uU][sS][yY] ')
BUSY <- length(busy[[1]])
definitely <- str_match_all(str1,' [dD][eE][fF][iI][nN][iI][tT][eE][lL][yY] ')
DEFINITELY <- length(definitely[[1]])
feel <- str_match_all(str1,' [fF][eE][Ee][lL] ')
FEEL <- length(feel[[1]])
lot <- str_match_all(str1,' [lL][oO][tT] ')
LOT <- length(lot[[1]])
many <- str_match_all(str1,' [mM][aA][nN][yY] ')
MANY <- length(many[[1]])
open <- str_match_all(str1,' [oO][pP][eE][nN] ')
OPEN <- length(open[[1]])
plus <- str_match_all(str1,' [pP][lL][uU][sS] ')
PLUS <- length(plus[[1]])
two <- str_match_all(str1,' [tT][wW][oO] ')
TWO <- length(two[[1]])
worth <- str_match_all(str1,' [wW][oO][rR][tT][hH] ')
WORTH <- length(worth[[1]])
year <- str_match_all(str1,' [yY][eE][aA][rR] ')
YEAR <- length(year[[1]])
values <- as.data.frame(c(AREA,BIG,BUSY,DEFINITELY,FEEL,LOT,MANY,OPEN,PLUS,TWO,WORTH,YEAR))
row.names(values) <- termKeys$term
#add constraint for missing terms as NA not 0
colnames(values) <- 'termCount'
values$termCount <- gsub(0,NA,values$termCount)
values$termCount <- as.numeric(paste(values$termCount))
keyValues <- as.data.frame(t(values))
keyValues2 <- keyValues/totalTerms
keyValues3 <- rbind(keyValues,keyValues2)
row.names(keyValues3) <- c('documentTermCount','term_to_totalDocumentTerms')
keyValues3 <- round(keyValues3,5)
keyValues3
#!@#
We see from this output per review, that we could first add a paste function to attach a new name to every review by row number in the data table Reviews13. We need to make sure they are the correct row number values by order of their listed review.
row.names(Reviews13) <- NULL
row.names(Reviews13) <- as.character(paste(row.names(Reviews13)))
head(row.names(Reviews13))
## [1] "1" "2" "3" "4" "5" "6"
%&%& Looks like they are ordered. There are 614 reviews to extract the 12 keyword counts and ratio of words per document to total words per document. Lets try wrapping this up in a for loop.
str <- as.character(paste(Reviews13$userReviewOnlyContent))
for (review in (str))
{
str1 <- as.character(paste(Reviews13$userReviewOnlyContent[1]))
str1 <- gsub('[!|.|,|\n|\']',' ',str1,perl=TRUE)
str1 <- gsub('[ ]',' ',str1)
str1 <- trimws(str1, which=c('both'), whitespace='[\t\r\n ]')
totalTerms <- length((strsplit(str1, split=' ')[[1]]))
keys <- colnames(wordToAllWords)
area <- str_match_all(str1,' [aA][rR][eE][aA] ')
AREA <- length(area[[1]])
big <- str_match_all(str1,' [bB][iI][gG] ')
BIG <- length(big[[1]])
busy <- str_match_all(str1,' [bB][uU][sS][yY] ')
BUSY <- length(busy[[1]])
definitely <- str_match_all(str1,' [dD][eE][fF][iI][nN][iI][tT][eE][lL][yY] ')
DEFINITELY <- length(definitely[[1]])
feel <- str_match_all(str1,' [fF][eE][Ee][lL] ')
FEEL <- length(feel[[1]])
lot <- str_match_all(str1,' [lL][oO][tT] ')
LOT <- length(lot[[1]])
many <- str_match_all(str1,' [mM][aA][nN][yY] ')
MANY <- length(many[[1]])
open <- str_match_all(str1,' [oO][pP][eE][nN] ')
OPEN <- length(open[[1]])
plus <- str_match_all(str1,' [pP][lL][uU][sS] ')
PLUS <- length(plus[[1]])
two <- str_match_all(str1,' [tT][wW][oO] ')
TWO <- length(two[[1]])
worth <- str_match_all(str1,' [wW][oO][rR][tT][hH] ')
WORTH <- length(worth[[1]])
year <- str_match_all(str1,' [yY][eE][aA][rR] ')
YEAR <- length(year[[1]])
values1 <- c(THE,AND,FOR1,HAVE,THAT,THEY,THIS,YOU,NOT,BUT,GOOD,WITH)
values2 <- values1/totalTerms
##cat function to save the values and work out another way to read in and combine
cat(values1,file="values1.csv",sep="\n",append ="TRUE",fill=TRUE)
cat(values2,file="values2.csv",sep="\n",append ="TRUE",fill=TRUE)
}
I played around with the for loop longer than expected, and it needs more work. It isn’t doing what I want it to do. I will manually get a handful of values later as needed, or move on to the vis network. I fixed the code, but this chunk won’t evaluate. The script will be assumed to err until we encounter it again so as to move on to the visNetwork link analysis plots.
Lets move onto the visNetwork. We are using the wordToAllWords and Reviews13 tables. Lets select our columns from each.These were both written to csv earlier as ReviewsCleanedWithKeywordsAndRatios.csv for Reviews13 and wordToAllWords.csv for that table. If you cleaned out your environment and left or shut down Rstudio then you can read in these two as their table names and test the script below.
visNodes <- Reviews13 %>% select(userRatingValue,LowAvgHighCost, businessType,weekday)
visNodes$label <- visNodes$userRatingValue
visNodes$label <- paste('rate',visNodes$label,sep='')
visNodes$title <- visNodes$LowAvgHighCost
visNodes$title <- paste(visNodes$title,'Cost',sep='')
visNodes$group <- visNodes$weekday
visEdges <- as.data.frame(t(wordToAllWords ))
colnames(visEdges) <- c('rate1','rate2','rate3','rate4','rate5')
visEdges$label <- row.names(visEdges)
#the weight is the ratio term2alltermsPerRating
visEdges <- gather(visEdges, 'rating','weight', 1:5)
head(visNodes)
## userRatingValue LowAvgHighCost businessType weekday label
## 1 5 High high end massage retreat Sun rate5
## 2 4 High high end massage retreat Tue rate4
## 3 5 Avg chiropractic Thu rate5
## 4 5 Avg chiropractic Tue rate5
## 5 5 Avg chiropractic Sun rate5
## 6 5 Avg chiropractic Mon rate5
## title group
## 1 HighCost Sun
## 2 HighCost Tue
## 3 AvgCost Thu
## 4 AvgCost Tue
## 5 AvgCost Sun
## 6 AvgCost Mon
Nodes1 <- visNodes %>% select(label,title,group)
head(Nodes1)
## label title group
## 1 rate5 HighCost Sun
## 2 rate4 HighCost Tue
## 3 rate5 AvgCost Thu
## 4 rate5 AvgCost Tue
## 5 rate5 AvgCost Sun
## 6 rate5 AvgCost Mon
It moves from 614 to 7368 obsrevations because of the 12 keywords and 614 reveiws which equals 7368.
Nodes2 <- merge(Nodes1, visEdges, by.x='label', by.y='rating')
Nodes2$id <- as.factor(paste(row.names(Nodes2)))
Nodes2$term <- Nodes2$label.y
Nodes3 <- Nodes2 %>% select(id,label,title,group,term)
Nodes3$label <- as.factor(paste(Nodes3$label))
Nodes3$term <- as.factor(paste(Nodes3$term))
Nodes3$title <- as.factor(paste(Nodes3$title))
head(Nodes3)
## id label title group term
## 1 1 rate1 LowCost Mon two
## 2 2 rate1 LowCost Mon plus
## 3 3 rate1 LowCost Mon area
## 4 4 rate1 LowCost Mon big
## 5 5 rate1 LowCost Mon busy
## 6 6 rate1 LowCost Mon definitely
visEdges only has 60 because it was 5 ratings ratios foe 12 words each.
visEdges$label <- as.factor(paste(visEdges$label))
visEdges$rating <- as.factor(paste(visEdges$rating))
head(visEdges)
## label rating weight
## 1 area rate1 0.00062
## 2 big rate1 0.00016
## 3 busy rate1 0.00016
## 4 definitely rate1 0.00031
## 5 feel rate1 0.00156
## 6 lot rate1 0.00016
Because there are only 60 fields in the edges and 7368 in the nodes, there will be errors for those values in the nodes that don’t have values in the edges. But we will still have a plot. I will suppress these warnings messages within the chunk.The nodes have to have unique IDs but the edges don’t.
Edges2 <- visEdges %>% mutate(from=plyr::mapvalues(visEdges$rating,
from=Nodes3$label,to=Nodes3$id))
Edges3 <- Edges2 %>% mutate(to=plyr::mapvalues(Edges2$label,
from=Nodes3$term, to=Nodes3$id))
Edges4 <- Edges3 %>% select(from,to,label,weight)
head(Edges4,20)
## from to label weight
## 1 1 2223 area 0.00062
## 2 1 3334 big 0.00016
## 3 1 4445 busy 0.00016
## 4 1 5556 definitely 0.00031
## 5 1 6667 feel 0.00156
## 6 1 7147 lot 0.00016
## 7 1 7258 many 0.00078
## 8 1 2 open 0.00031
## 9 1 1112 plus 0.00016
## 10 1 1 two 0.00031
## 11 1 113 worth 0.00031
## 12 1 224 year 0.00219
## 13 66 2223 area 0.00149
## 14 66 3334 big 0.00089
## 15 66 4445 busy 0.00119
## 16 66 5556 definitely 0.00089
## 17 66 6667 feel 0.00506
## 18 66 7147 lot 0.00149
## 19 66 7258 many 0.00178
## 20 66 2 open 0.00089
Now lets use visNetwork and igraph to plot these nodes and edges.
visNetwork(nodes=Nodes3, edges=Edges4, main='Weekday Groups of Rating and 12 Keywords') %>% visEdges(arrows=c('from','middle')) %>%
visInteraction(navigationButtons=TRUE, dragNodes=FALSE,
dragView=TRUE, zoomView = TRUE) %>%
visOptions(nodesIdSelection = TRUE, manipulation=FALSE) %>%
visIgraphLayout() %>%
visLegend
The above is very large because it has the added groups and keywords of 12 to run combinations against the original 614 observations. Lets try limiting the observations.
We will work from the beginning of the last visNetwork plot.
visNodes <- Reviews13 %>% select(userRatingValue,LowAvgHighCost, businessType,weekday)
visNodes$label <- visNodes$userRatingValue
visNodes$label <- paste('rate',visNodes$label,sep='')
visNodes$title <- visNodes$LowAvgHighCost
visNodes$title <- paste(visNodes$title,'Cost',sep='')
visNodes$group <- visNodes$weekday
head(visNodes)
## userRatingValue LowAvgHighCost businessType weekday label
## 1 5 High high end massage retreat Sun rate5
## 2 4 High high end massage retreat Tue rate4
## 3 5 Avg chiropractic Thu rate5
## 4 5 Avg chiropractic Tue rate5
## 5 5 Avg chiropractic Sun rate5
## 6 5 Avg chiropractic Mon rate5
## title group
## 1 HighCost Sun
## 2 HighCost Tue
## 3 AvgCost Thu
## 4 AvgCost Tue
## 5 AvgCost Sun
## 6 AvgCost Mon
visEdges <- as.data.frame(t(wordToAllWords ))
colnames(visEdges) <- c('rate1','rate2','rate3','rate4','rate5')
visEdges$label <- row.names(visEdges)
#the weight is the ratio term2alltermsPerRating
visEdges <- gather(visEdges, 'rating','weight', 1:5)
head(visEdges)
## label rating weight
## 1 area rate1 0.00062
## 2 big rate1 0.00016
## 3 busy rate1 0.00016
## 4 definitely rate1 0.00031
## 5 feel rate1 0.00156
## 6 lot rate1 0.00016
Nodes1 <- visNodes %>% select(weekday:group)
head(Nodes1)
## weekday label title group
## 1 Sun rate5 HighCost Sun
## 2 Tue rate4 HighCost Tue
## 3 Thu rate5 AvgCost Thu
## 4 Tue rate5 AvgCost Tue
## 5 Sun rate5 AvgCost Sun
## 6 Mon rate5 AvgCost Mon
Nodes2 <- merge(Nodes1, visEdges, by.x='label', by.y='rating')
Nodes2$term <- Nodes2$label.y
Nodes2$id <- row.names(Nodes2)
Nodes3 <- Nodes2 %>% select(id,label,title,group,term,weight)
head(Nodes3)
## id label title group term weight
## 1 1 rate1 LowCost Mon two 0.00031
## 2 2 rate1 LowCost Mon plus 0.00016
## 3 3 rate1 LowCost Mon area 0.00062
## 4 4 rate1 LowCost Mon big 0.00016
## 5 5 rate1 LowCost Mon busy 0.00016
## 6 6 rate1 LowCost Mon definitely 0.00031
Now subset from Nodes3 and make the edges table from this table.
Nodes3b <- subset(Nodes3, (Nodes3$group=='Mon'|Nodes3$group=='Wed'|Nodes3$group=='Sat') )
t <- Nodes3b$term[1:6]
Nodes4 <- subset(Nodes3b, Nodes3b$term==t[1] | Nodes3b$term==t[2] |
Nodes3b$term==t[3] | Nodes3b$term==t[4] |
Nodes3b$term==t[5] | Nodes3b$term==t[6])
row.names(Nodes4) <- NULL
Nodes4$id <- as.factor(row.names(Nodes4))
head(Nodes4)
## id label title group term weight
## 1 1 rate1 LowCost Mon two 0.00031
## 2 2 rate1 LowCost Mon plus 0.00016
## 3 3 rate1 LowCost Mon area 0.00062
## 4 4 rate1 LowCost Mon big 0.00016
## 5 5 rate1 LowCost Mon busy 0.00016
## 6 6 rate1 LowCost Mon definitely 0.00031
Edges1 <- Nodes4 %>% select(label,term,group,weight)
Edges2 <- Edges1 %>% mutate(from=plyr::mapvalues(Edges1$label,
from=Nodes4$label,to=Nodes4$id))
Edges3 <- Edges2 %>% mutate(to=plyr::mapvalues(Edges2$term,
from=Nodes4$term, to=Nodes4$id))
Edges4 <- Edges3 %>% select(from,to,label,term,group,weight)
Edges4$label <- Edges4$term
head(Edges4)
## from to label term group weight
## 1 1 1 two two Mon 0.00031
## 2 1 535 plus plus Mon 0.00016
## 3 1 646 area area Mon 0.00062
## 4 1 757 big big Mon 0.00016
## 5 1 868 busy busy Mon 0.00016
## 6 1 979 definitely definitely Mon 0.00031
visNetwork(nodes=Nodes4, edges=Edges4, main='Three Weekday Groups of Five Ratings and Five Keywords') %>% visEdges(arrows=c('from','middle')) %>%
visInteraction(navigationButtons=TRUE, dragNodes=FALSE,
dragView=TRUE, zoomView = TRUE) %>%
visOptions(nodesIdSelection = TRUE, manipulation=FALSE) %>%
visIgraphLayout() %>%
visLegend
Lets make another visualization on price and ratings with terms omitted. I used five keywords instead of three as planned.
We well use the Reviews13 data table. And select the features needed.
visNodes3 <- Reviews13 %>% select(userRatingValue,LowAvgHighCost,businessReplied,friends)
visNodes3$id <- row.names(visNodes3)
visNodes3$weight <- visNodes3$friends/max(visNodes3$friends,na.rm=TRUE)
visNodes3$group <- visNodes3$LowAvgHighCost
visNodes3$label <- as.factor(paste('rating', visNodes3$userRatingValue, sep=' '))
visNodes3$title <- visNodes3$businessReplied
head(visNodes3)
## userRatingValue LowAvgHighCost businessReplied friends id weight group
## 1 5 High yes 26 1 0.0052 High
## 2 4 High yes 894 2 0.1788 High
## 3 5 Avg no 0 3 0.0000 Avg
## 4 5 Avg no 0 4 0.0000 Avg
## 5 5 Avg no 0 5 0.0000 Avg
## 6 5 Avg no 0 6 0.0000 Avg
## label title
## 1 rating 5 yes
## 2 rating 4 yes
## 3 rating 5 no
## 4 rating 5 no
## 5 rating 5 no
## 6 rating 5 no
nodes1 <- visNodes3 %>% select(id,label,title, group)
edges1 <- visNodes3 %>% select(id,label,group,weight)
edges1$from <- edges1$id
edges2 <- edges1 %>% mutate(to = plyr::mapvalues(edges1$group, from=nodes1$group, to = nodes1$id))
edges3 <- edges2 %>% select(from,to,label, group,weight)
head(edges3)
## from to label group weight
## 1 1 1 rating 5 High 0.0052
## 2 2 1 rating 4 High 0.1788
## 3 3 3 rating 5 Avg 0.0000
## 4 4 3 rating 5 Avg 0.0000
## 5 5 3 rating 5 Avg 0.0000
## 6 6 3 rating 5 Avg 0.0000
head(nodes1)
## id label title group
## 1 1 rating 5 yes High
## 2 2 rating 4 yes High
## 3 3 rating 5 no Avg
## 4 4 rating 5 no Avg
## 5 5 rating 5 no Avg
## 6 6 rating 5 no Avg
visNetwork(nodes=nodes1, edges=edges3, main='Ratings Cost if business replied and Number of Friends as arrow weights') %>% visEdges(arrows=c('from','middle')) %>%
visInteraction(navigationButtons=TRUE, dragNodes=FALSE,
dragView=TRUE, zoomView = TRUE) %>%
visOptions(nodesIdSelection = TRUE, manipulation=FALSE) %>%
visIgraphLayout() %>%
visLegend
We can see in the above plot of the ratings in groups by cost of either high, average, or low, that there are almost the same amount of reviews in each group. When hovering the nodes are going to show if the business replied to his or her review as yes if they did and as no if not. When zooming in on the nodes of each group you can see the rating and arrow weights of the number of friends each review has as ratios of the number of friends a user has divided by the max number of friends all users have.
Lets build another network but with different groupings.
visNodes3 <- Reviews13 %>% select(userRatingValue,LowAvgHighCost,businessReplied,friends)
visNodes3$id <- row.names(visNodes3)
visNodes3$weight <- visNodes3$friends/max(visNodes3$friends,na.rm=TRUE)
visNodes3$label <- as.factor(paste(visNodes3$LowAvgHighCost,'cost',sep=' '))
visNodes3$group <- as.factor(paste('rating', visNodes3$userRatingValue, sep=' '))
visNodes3$title <- paste(visNodes3$friends,'friends',sep=' ')
head(visNodes3)
## userRatingValue LowAvgHighCost businessReplied friends id weight label
## 1 5 High yes 26 1 0.0052 High cost
## 2 4 High yes 894 2 0.1788 High cost
## 3 5 Avg no 0 3 0.0000 Avg cost
## 4 5 Avg no 0 4 0.0000 Avg cost
## 5 5 Avg no 0 5 0.0000 Avg cost
## 6 5 Avg no 0 6 0.0000 Avg cost
## group title
## 1 rating 5 26 friends
## 2 rating 4 894 friends
## 3 rating 5 0 friends
## 4 rating 5 0 friends
## 5 rating 5 0 friends
## 6 rating 5 0 friends
nodes1 <- visNodes3 %>% select(id,label,title, group)
edges1 <- visNodes3 %>% select(id,label,group,weight)
edges1$from <- edges1$id
edges2 <- edges1 %>% mutate(to = plyr::mapvalues(edges1$group, from=nodes1$group, to = nodes1$id))
edges3 <- edges2 %>% select(from,to,label, group,weight)
head(edges3)
## from to label group weight
## 1 1 1 High cost rating 5 0.0052
## 2 2 2 High cost rating 4 0.1788
## 3 3 1 Avg cost rating 5 0.0000
## 4 4 1 Avg cost rating 5 0.0000
## 5 5 1 Avg cost rating 5 0.0000
## 6 6 1 Avg cost rating 5 0.0000
head(nodes1)
## id label title group
## 1 1 High cost 26 friends rating 5
## 2 2 High cost 894 friends rating 4
## 3 3 Avg cost 0 friends rating 5
## 4 4 Avg cost 0 friends rating 5
## 5 5 Avg cost 0 friends rating 5
## 6 6 Avg cost 0 friends rating 5
visNetwork(nodes=nodes1, edges=edges3, main='Ratings as Groups and Cost as Labels with Number of Friends as Arrow Weights') %>% visEdges(arrows=c('from','middle')) %>%
visInteraction(navigationButtons=TRUE, dragNodes=FALSE,
dragView=TRUE, zoomView = TRUE) %>%
visOptions(nodesIdSelection = TRUE, manipulation=FALSE) %>%
visIgraphLayout() %>%
visLegend(ncol=2)
The above visual network is great for looking at the number of reviews in each rating, but also when zooming in to see the cost as Low, High, or Average and hovering shows how many social media friends each reviewer has.
We should make a visual network of the keywords and the ratings to go with and maybe a couple different visualizations on our manually built best model for predicting ratings based on the ceiling of the median of the dot product of votes times ratings when there is a tie between rating votes that were voted on by which review has the minimum value of the ratio of term to total terms in the document to term to total terms by rating.
I worked on the for loop outside this script and thankfully it works and it doesn’t take very long for it to run. Less than two minutes. Here is that content and the new file Reviews15 we will be working with.
!!! CAUTION: !!!
Make sure to only run this once if you already have these files or delete the keyValues3.csv and the keyValues3_ratios, as it will append to your files. When running the chunks even with eval set to FALSE, everything is ran, those header commands only work when kitting the file. It takes about a minute to load all 614 reviews into those 12 keywords with ratios. So it is ok to delete the files. !@#$%
for (num in 1:length(Reviews13$userReviewOnlyContent)){
str1 <- as.character(paste(Reviews13$userReviewOnlyContent[num]))
str1 <- gsub('[!|.|,|\n|\']',' ',str1,perl=TRUE)
str1 <- gsub('[ ]',' ',str1)
str1 <- trimws(str1, which=c('both'), whitespace='[\t\r\n ]')
totalTerms <- length((strsplit(str1, split=' ')[[1]]))
keys <- colnames(wordToAllWords)
area <- str_match_all(str1,' [aA][rR][eE][aA] ')
AREA <- length(area[[1]])
big <- str_match_all(str1,' [bB][iI][gG] ')
BIG <- length(big[[1]])
busy <- str_match_all(str1,' [bB][uU][sS][yY] ')
BUSY <- length(busy[[1]])
definitely <- str_match_all(str1,' [dD][eE][fF][iI][nN][iI][tT][eE][lL][yY] ')
DEFINITELY <- length(definitely[[1]])
feel <- str_match_all(str1,' [fF][eE][Ee][lL] ')
FEEL <- length(feel[[1]])
lot <- str_match_all(str1,' [lL][oO][tT] ')
LOT <- length(lot[[1]])
many <- str_match_all(str1,' [mM][aA][nN][yY] ')
MANY <- length(many[[1]])
open <- str_match_all(str1,' [oO][pP][eE][nN] ')
OPEN <- length(open[[1]])
plus <- str_match_all(str1,' [pP][lL][uU][sS] ')
PLUS <- length(plus[[1]])
two <- str_match_all(str1,' [tT][wW][oO] ')
TWO <- length(two[[1]])
worth <- str_match_all(str1,' [wW][oO][rR][tT][hH] ')
WORTH <- length(worth[[1]])
year <- str_match_all(str1,' [yY][eE][aA][rR] ')
YEAR <- length(year[[1]])
values <- as.data.frame(c(AREA,BIG,BUSY,DEFINITELY,FEEL,LOT,MANY,OPEN,PLUS,TWO,WORTH,YEAR))
row.names(values) <- termKeys$term
#add constraint for missing terms as NA not 0
colnames(values) <- 'termCount'
values$termCount <- gsub(0,NA,values$termCount)
values$termCount <- as.numeric(paste(values$termCount))
keyValues <- as.data.frame(t(values))
keyValues2 <- keyValues/totalTerms
keyValues3 <- rbind(keyValues,keyValues2)
row.names(keyValues3) <- c('documentTermCount','term_to_totalDocumentTerms')
keyValues3 <- round(keyValues3,5)
keyValues4 <- as.matrix(keyValues3)
cat(keyValues4[1,1:12],file='keyValues3.csv',append=TRUE, sep='\n',fill=TRUE)
cat(keyValues4[2,1:12],file='keyValues3_ratios.csv',append=TRUE, sep='\n',fill=TRUE)
}
Well, great news! The above looks like it worked and now we have the rest of our keyword data to make a matrix and then data frame out of. It took about one minute as I watched the kb file size in the file window change for each keyValues csv file in the for loop above. These are actually all the records, because they were appended to the other records. So we should have 614X12= r614*12
observations. Lets find out.
all_kws <- read.csv('keyValues3.csv', sep=',', header=FALSE, na.strings=c('',' ','NA'))
Ok, good, because it does say 7368 obs and 1 variable, (if you have more rows than this, you ran the code twice. search for keywords3.csv within Rstudio with the magnifying glass in the toolbar and see if you did, otherwise continue) as expected or anticipating it to. Now lets make this into a data frame after first making it into a matrix.
all_kws1 <- all_kws$V1
ALL_kws <- matrix(all_kws1, nrow=12,ncol=614,byrow=FALSE)
ALL_KWs <- as.data.frame(t(ALL_kws))
row.names(ALL_KWs) <- NULL
colnames(ALL_KWs) <- colnames(wordToAllWords)
Now lets get the ratios for all of these reviews and keywords.
all_kwrs <- read.csv('keyValues3_ratios.csv', header=FALSE, sep=',',
na.strings=c('',' ','NA'))
all_kwrs1 <- all_kwrs$V1
ALL_kwrs <- matrix(all_kwrs1, nrow=12,ncol=614,byrow=FALSE)
ALL_KWRs <- as.data.frame(t(ALL_kwrs))
row.names(ALL_KWRs) <- NULL
colnames(ALL_KWRs) <- paste(colnames(wordToAllWords),'ratios', sep='_')
Now lets combine the two tables together.
ALL_keywords <- cbind(ALL_KWs,ALL_KWRs)
head(ALL_keywords)
## area big busy definitely feel lot many open plus two worth year area_ratios
## 1 1 NA NA NA NA NA NA NA NA NA NA 2 0.00369
## 2 1 NA NA 4 2 1 NA NA NA NA 2 NA 0.00166
## 3 NA NA NA 2 1 NA NA NA NA NA NA NA NA
## 4 NA NA NA NA NA NA NA NA NA NA NA NA NA
## 5 NA NA NA NA NA NA NA NA NA NA NA NA NA
## 6 NA NA NA NA 1 NA NA NA NA NA NA NA NA
## big_ratios busy_ratios definitely_ratios feel_ratios lot_ratios many_ratios
## 1 NA NA NA NA NA NA
## 2 NA NA 0.00662 0.00331 0.00166 NA
## 3 NA NA 0.01626 0.00813 NA NA
## 4 NA NA NA NA NA NA
## 5 NA NA NA NA NA NA
## 6 NA NA NA 0.01493 NA NA
## open_ratios plus_ratios two_ratios worth_ratios year_ratios
## 1 NA NA NA NA 0.00738
## 2 NA NA NA 0.00331 NA
## 3 NA NA NA NA NA
## 4 NA NA NA NA NA
## 5 NA NA NA NA NA
## 6 NA NA NA NA NA
Looking at the table above we know that because some of these rows have entire NAs that our algorithm won’t be able to predict a rating for that row as a review. We should add the stopwords from the first version of this script for those instances. We will have to bring it in from our script one or we can read it in from that file, ‘ALL_keywords.csv’ in that folder. Lets also write this 2nd version of keywords and ratios out to file. The row names are not important because they are the order listed the same as the reviews listed from the Reviews13 data table.
write.csv(ALL_keywords,'ALL_keywords2.csv', row.names=FALSE)
stopKeywords <- read.csv('ALL_keywords.csv', header=TRUE, sep=',', na.strings=c('',' ','NA'))
Lets now combine these two tables of words. There are now 12 keywords and 12 stopwords relative to this data of 614 reviews. There are also 24 ratios for those 24 terms.
for (col in col(stopKeywords)){
gsub(0,NA,stopKeywords$col)
}
keys24df <- cbind(ALL_keywords,stopKeywords)
The above command isn’t able to convert the zeros in the stopKeywords table into NAs, so we have to run the script manually to generate the values that won’t count zeros as values but as NAs.
!@#
for (num in 1:length(Reviews13$userReviewOnlyContent)){
str1 <- as.character(paste(Reviews13$userReviewOnlyContent[num]))
str1 <- gsub('[!|.|,|\n|\']',' ',str1,perl=TRUE)
str1 <- gsub('[ ]',' ',str1)
str1 <- trimws(str1, which=c('both'), whitespace='[\t\r\n ]')
totalTerms <- length((strsplit(str1, split=' ')[[1]]))
keys <- c("the", "and" , "for" , "have" ,"that" ,"they" ,"this" ,"you" ,
"not" , "but" ,"good" ,"with")
and <- str_match_all(str1,' [aA][nN][dD] ')
AND <- length(and[[1]])
the <- str_match_all(str1,' [tT][hH][eE] ')
THE <- length(the[[1]])
for1 <- str_match_all(str1,' [fF][oO][rR] ')
FOR1 <- length(for1[[1]])
have <- str_match_all(str1,' [hH][aA][vV][eE] ')
HAVE <- length(have[[1]])
that <- str_match_all(str1,' [tT][hH][aA][tT] ')
THAT <- length(that[[1]])
they <- str_match_all(str1,' [tT][hH][eE][yY] ')
THEY <- length(they[[1]])
this <- str_match_all(str1,' [tT][hH][iI][sS] ')
THIS <- length(this[[1]])
you <- str_match_all(str1,' [yY][oO][uU] ')
YOU <- length(you[[1]])
not <- str_match_all(str1,' [nN][oO][tT] ')
NOT <- length(not[[1]])
but <- str_match_all(str1,' [bB][uU][tT] ')
BUT <- length(but[[1]])
good <- str_match_all(str1,' [gG][oO][oO][dD] ')
GOOD <- length(good[[1]])
with <- str_match_all(str1,' [wW][iI][tT][hH] ')
WITH <- length(with[[1]])
values <- as.data.frame(c(THE,AND,FOR1,HAVE,THAT,THEY,THIS,YOU,NOT,BUT,GOOD,WITH))
row.names(values) <- c('the','and','for','have','that','they','this','you','not','but','good','with')
#add constraint for missing terms as NA not 0
colnames(values) <- 'termCount'
values$termCount <- gsub(0,NA,values$termCount)
values$termCount <- as.numeric(paste(values$termCount))
keyValues <- as.data.frame(t(values))
keyValues2 <- keyValues/totalTerms
keyValues3 <- rbind(keyValues,keyValues2)
row.names(keyValues3) <- c(paste('documentTermCount', num, sep='_'),
paste('term_to_totalDocumentTerms', num, sep='_'))
keyValues3 <- round(keyValues3,5)
keyValues4 <- as.matrix(keyValues3)
cat(keyValues4[1,1:12],file='keyValues3s.csv',append=TRUE, sep='\n',fill=TRUE)
cat(keyValues4[2,1:12],file='keyValues3_ratioss.csv',append=TRUE, sep='\n',fill=TRUE)
}
Well, great news! The above looks like it worked and now we have the rest of our keyword data to make a matrix and then data frame out of. It took about one minute as I watched the kb file size in the file window change for each keyValues csv file in the for loop above. These are actually all the records, because they were appended to the other records. So we should have 614X12= r614*12
observations. Lets find out.
stop_kws <- read.csv('keyValues3s.csv', sep=',', header=FALSE, na.strings=c('',' ','NA'))
Ok, good, because it does say 7368 obs and 1 variable, as expected or anticipating it to. Now lets make this into a data frame after first making it into a matrix.
stop_kws1 <- stop_kws$V1
stop_kws <- matrix(stop_kws1, nrow=12,ncol=614,byrow=FALSE)
stop_KWs <- as.data.frame(t(stop_kws))
row.names(stop_KWs) <- NULL
colnames(stop_KWs) <- c('the','and','for','have','that','they','this','you','not','but','good','with')
Now lets get the ratios for all of these reviews and keywords.
stop_kwrs <- read.csv('keyValues3_ratioss.csv', header=FALSE, sep=',',
na.strings=c('',' ','NA'))
stop_kwrs1 <- stop_kwrs$V1
stop_kwrs <- matrix(stop_kwrs1, nrow=12,ncol=614,byrow=FALSE)
stop_KWRs <- as.data.frame(t(stop_kwrs))
row.names(stop_KWRs) <- NULL
colnames(stop_KWRs) <- paste(colnames(stop_KWs),'ratios', sep='_')
Now lets combine the two tables together.
ALL_stops_and_keywords <- cbind(ALL_KWs,stop_KWs,ALL_KWRs,stop_KWRs)
head(ALL_stops_and_keywords)
## area big busy definitely feel lot many open plus two worth year the and for
## 1 1 NA NA NA NA NA NA NA NA NA NA 2 15 5 3
## 2 1 NA NA 4 2 1 NA NA NA NA 2 NA 24 17 5
## 3 NA NA NA 2 1 NA NA NA NA NA NA NA 4 5 1
## 4 NA NA NA NA NA NA NA NA NA NA NA NA 5 2 NA
## 5 NA NA NA NA NA NA NA NA NA NA NA NA 1 2 2
## 6 NA NA NA NA 1 NA NA NA NA NA NA NA NA 2 1
## have that they this you not but good with area_ratios big_ratios busy_ratios
## 1 4 4 3 1 2 1 1 2 NA 0.00369 NA NA
## 2 3 3 3 3 3 1 6 NA 3 0.00166 NA NA
## 3 2 1 NA 1 1 NA NA NA 3 NA NA NA
## 4 1 NA NA 2 NA NA NA NA NA NA NA NA
## 5 NA NA NA NA 2 NA NA NA 1 NA NA NA
## 6 1 NA NA NA NA NA NA 2 NA NA NA NA
## definitely_ratios feel_ratios lot_ratios many_ratios open_ratios plus_ratios
## 1 NA NA NA NA NA NA
## 2 0.00662 0.00331 0.00166 NA NA NA
## 3 0.01626 0.00813 NA NA NA NA
## 4 NA NA NA NA NA NA
## 5 NA NA NA NA NA NA
## 6 NA 0.01493 NA NA NA NA
## two_ratios worth_ratios year_ratios the_ratios and_ratios for_ratios
## 1 NA NA 0.00738 0.05535 0.01845 0.01107
## 2 NA 0.00331 NA 0.03974 0.02815 0.00828
## 3 NA NA NA 0.03252 0.04065 0.00813
## 4 NA NA NA 0.08333 0.03333 NA
## 5 NA NA NA 0.02083 0.04167 0.04167
## 6 NA NA NA NA 0.02985 0.01493
## have_ratios that_ratios they_ratios this_ratios you_ratios not_ratios
## 1 0.01476 0.01476 0.01107 0.00369 0.00738 0.00369
## 2 0.00497 0.00497 0.00497 0.00497 0.00497 0.00166
## 3 0.01626 0.00813 NA 0.00813 0.00813 NA
## 4 0.01667 NA NA 0.03333 NA NA
## 5 NA NA NA NA 0.04167 NA
## 6 0.01493 NA NA NA NA NA
## but_ratios good_ratios with_ratios
## 1 0.00369 0.00738 NA
## 2 0.00993 NA 0.00497
## 3 NA NA 0.02439
## 4 NA NA NA
## 5 NA NA 0.02083
## 6 NA 0.02985 NA
Lets now combine this with a merge of IDs as row numbers shall we?
Reviews14 <- Reviews13
Reviews14$id <- row.names(Reviews13)
ALL_stops_and_keywords$id <- row.names(ALL_stops_and_keywords)
Now merge by id.
Reviews15 <- merge(Reviews14, ALL_stops_and_keywords, by.x='id', by.y='id')
head(Reviews15)
## id userReviewSeries
## 1 1 mostRecentVisit_review
## 2 10 mostRecentVisit_review
## 3 100 mostRecentVisit_review
## 4 101 twoVisitsPrior_review
## 5 102 mostRecentVisit_review
## 6 103 mostRecentVisit_review
## userReviewOnlyContent
## 1 What a wonderful way to start the year! This was my second time back to HIGH END SPA, and we had a great time. The crowds were very low (seriously, it felt like we had the place to ourselves most of the day.) We walked right into the mineral baths, club mud, and didn't wait in any kind of line for lunch. None of the pools were crowded, and we were even able to enjoy one of the hammocks in the secret garden.\n\nTiffany at the front check-in desk went above and beyond for us regarding the robes. I had requested a plus-sized robe, since after my last review I knew they had added some to their collection. Unfortunately, all of their plus-sized robes were still dirty from the day before. Tiffany was so accommodating, though! She was able to get us robes from the cabana area that fit me perfectly! It is so great to know that not only do they now offer guests of all sizes the option to enjoy a warm robe, but that they really want to make sure you have a good day. Thank you, Tiffany, for everything.\n\nAll of the staff today were in good spirits. The only thing that would have made today better would have been a massage. We'll have to book one next time. My husband and I are going to make HIGH END SPA our annual New Year's Day tradition!\n\n
## 2 I'm so happy I found CHIROPRACTIC!\n\nBrenda was so sweet and attentive, from making my appointment to greeting me upon arrival.\n\nI saw Bertha for a prenatal massage, how I survived my first pregnancy without one, I'm clueless. Bertha listened to my needs and my bodies. She helped relieve tension in my neck and shoulders.\n\nI could have fell asleep, only complaint would be - why aren't massages longer than an hour lol\n\nI cannot wait to come back monthly through this pregnancy. I also am excited to try a prenatal adjustment
## 3 Their staff is super nice. The doctor is also great and always gets the knots out of my back. I felt better right after my first appointment!
## 4 It's too bad, I had such a great time here and some bathroom attendant ruined my whole experience!! Just the worst manners and let's just say customer service was not her specialty or even close.\nThis young girl had some nerve to correct a customer for accidentally missing the trash with some paper from a cinco de mayo mustache.. (jokes) she chases after me to tell me to throw it in the trash I explained half way down the hall I was sorry and had to\nLeAve, my friend was sick and need me to tend to her. She then chased me down again and started to harass me to tell her where my friend threw up. Really? Well, maybe she had a bad day.. but after explaining what happen to management and the front office, Jose, the manager, didn't look too surprised.. I guess this is normal behavior for her.. needless to say I'm almost afraid to go back. I may not hold my tongue next time.. personal space was not In her vocabulary she tapped me on the shoulder, she's lucky i was in a great mood till then..\n
## 5 Fabulous place to get adjusted. The office is calm and clean. The staff is friendly. Dr. Ramada is fantastic! He really understood the cause of my pain and was able to adjust me quickly. I love the availability and evening appointments. Highly recommend!
## 6 I was looking for a Chiropractor in my area and I stumbled upon CHIROPRACTIC. It is a really awesome place. The staff and facilities are very nice. And they are very reasonably priced, much better price then my last Chiropractor. Conveniently located off of the 15 freeway two exits south of the 91. What is really cool is they also offer massages also. If you are looking for a Chiropractor in Corona/Riverside area look no further.
## userRatingSeries userRatingValue businessReplied
## 1 mostRecentVisit_rating 5 yes
## 2 mostRecentVisit_rating 5 no
## 3 mostRecentVisit_rating 5 no
## 4 lastVisit_rating 1 yes
## 5 mostRecentVisit_rating 5 no
## 6 mostRecentVisit_rating 5 no
## businessReplyContent
## 1 Amber P. of HIGH END SPA Hot Springs\n\nBusiness Customer Service\n\n1/2/20191/15/2018-\nHi Michelle, HIGH END SPA is proud to welcome men and women of all shapes and sizes. In response to your day, we are now in the process of ordering a few XL robes so we can continue to have offerings for all of our guests. I wanted to reach out to you to let you know we have sent you a private message as we would like to connect with you directly. Thank you again for communicating your concern with us.\nAlexa Gallegos\n\n1/2/2019 -\n\nHi Michelle,\nI am so happy to hear that you had a great returning experience! Our team members do the best they can to accommodate all of our guests needs and we are very glad to hear you were happy with the solution.\nWe hope to see you and your husband again!\n\nBest,\nAmber Peyghambari\n\nRead less\n
## 2 NA
## 3 NA
## 4 Amber P. of HIGH END SPA Hot Springs\n\nBusiness Customer Service\n\n5/8/2018Hi Raven, thank you for taking the time to write a review of your recent visit. I am sorry to hear about your incident in the bath house at the end of your visit. I spoke with Jose and he mentioned you all were a pleasure to have and that after speaking with you about this occurrence, he internally addressed the issue so this wouldn't happen again. We take our guest comments very seriously because guest comments, good and bad, help us to learn and grow. A guest who makes the commitment to reach out and tell us what was not perfect is invaluable to our company. Always feel free to contact me regarding any of your visits or if you ever have any questions or comments.\nBest regards, Alexa Gallegos, HIGH END SPA Hot Springs
## 5 NA
## 6 NA
## userReviewContent
## 1 1/1/2019Updated review\n 2 photos\n\nWhat a wonderful way to start the year! This was my second time back to HIGH END SPA, and we had a great time. The crowds were very low (seriously, it felt like we had the place to ourselves most of the day.) We walked right into the mineral baths, club mud, and didn't wait in any kind of line for lunch. None of the pools were crowded, and we were even able to enjoy one of the hammocks in the secret garden.\n\nTiffany at the front check-in desk went above and beyond for us regarding the robes. I had requested a plus-sized robe, since after my last review I knew they had added some to their collection. Unfortunately, all of their plus-sized robes were still dirty from the day before. Tiffany was so accommodating, though! She was able to get us robes from the cabana area that fit me perfectly! It is so great to know that not only do they now offer guests of all sizes the option to enjoy a warm robe, but that they really want to make sure you have a good day. Thank you, Tiffany, for everything.\n\nAll of the staff today were in good spirits. The only thing that would have made today better would have been a massage. We'll have to book one next time. My husband and I are going to make HIGH END SPA our annual New Year's Day tradition!\n\nComment from Amber P. of HIGH END SPA Hot Springs\n\nBusiness Customer Service\n\n1/2/20191/15/2018-\nHi Michelle, HIGH END SPA is proud to welcome men and women of all shapes and sizes. In response to your day, we are now in the process of ordering a few XL robes so we can continue to have offerings for all of our guests. I wanted to reach out to you to let you know we have sent you a private message as we would like to connect with you directly. Thank you again for communicating your concern with us.\nAlexa Gallegos\n\n1/2/2019 -\n\nHi Michelle,\nI am so happy to hear that you had a great returning experience! Our team members do the best they can to accommodate all of our guests needs and we are very glad to hear you were happy with the solution.\nWe hope to see you and your husband again!\n\nBest,\nAmber Peyghambari\n\nRead less\n
## 2 11/29/2018\nI'm so happy I found CHIROPRACTIC!\n\nBrenda was so sweet and attentive, from making my appointment to greeting me upon arrival.\n\nI saw Bertha for a prenatal massage, how I survived my first pregnancy without one, I'm clueless. Bertha listened to my needs and my bodies. She helped relieve tension in my neck and shoulders.\n\nI could have fell asleep, only complaint would be - why aren't massages longer than an hour lol\n\nI cannot wait to come back monthly through this pregnancy. I also am excited to try a prenatal adjustment
## 3 3/20/2018\n 2 check-ins\n\nTheir staff is super nice. The doctor is also great and always gets the knots out of my back. I felt better right after my first appointment!
## 4 5/7/2018Previous review\nIt's too bad, I had such a great time here and some bathroom attendant ruined my whole experience!! Just the worst manners and let's just say customer service was not her specialty or even close.\nThis young girl had some nerve to correct a customer for accidentally missing the trash with some paper from a cinco de mayo mustache.. (jokes) she chases after me to tell me to throw it in the trash I explained half way down the hall I was sorry and had to\nLeAve, my friend was sick and need me to tend to her. She then chased me down again and started to harass me to tell her where my friend threw up. Really? Well, maybe she had a bad day.. but after explaining what happen to management and the front office, Jose, the manager, didn't look too surprised.. I guess this is normal behavior for her.. needless to say I'm almost afraid to go back. I may not hold my tongue next time.. personal space was not In her vocabulary she tapped me on the shoulder, she's lucky i was in a great mood till then..\nComment from Amber P. of HIGH END SPA Hot Springs\n\nBusiness Customer Service\n\n5/8/2018Hi Raven, thank you for taking the time to write a review of your recent visit. I am sorry to hear about your incident in the bath house at the end of your visit. I spoke with Jose and he mentioned you all were a pleasure to have and that after speaking with you about this occurrence, he internally addressed the issue so this wouldn't happen again. We take our guest comments very seriously because guest comments, good and bad, help us to learn and grow. A guest who makes the commitment to reach out and tell us what was not perfect is invaluable to our company. Always feel free to contact me regarding any of your visits or if you ever have any questions or comments.\nBest regards, Alexa Gallegos, HIGH END SPA Hot Springs
## 5 8/30/2016\n 1 check-in\n\nFabulous place to get adjusted. The office is calm and clean. The staff is friendly. Dr. Ramada is fantastic! He really understood the cause of my pain and was able to adjust me quickly. I love the availability and evening appointments. Highly recommend!
## 6 2/26/2018\n 27 check-ins\n\nI was looking for a Chiropractor in my area and I stumbled upon CHIROPRACTIC. It is a really awesome place. The staff and facilities are very nice. And they are very reasonably priced, much better price then my last Chiropractor. Conveniently located off of the 15 freeway two exits south of the 91. What is really cool is they also offer massages also. If you are looking for a Chiropractor in Corona/Riverside area look no further.
## LowAvgHighCost businessType cityState friends reviews
## 1 High high end massage retreat Orange, CA 26 33
## 2 Avg chiropractic Fayetteville, NC 0 7
## 3 Avg chiropractic Corona, CA 943 7
## 4 High high end massage retreat Rancho Cucamonga, CA 12 12
## 5 Avg chiropractic Los Angeles, CA 11 24
## 6 Avg chiropractic Corona, CA 4 NA
## photos eliteStatus userName Date userBusinessPhotos userCheckIns
## 1 21 <NA> Michelle A. 2019-01-01 2 NA
## 2 NA <NA> Devin S. 2018-11-29 NA NA
## 3 2 <NA> Courtney S. 2018-03-20 NA 2
## 4 4 <NA> Raven H. 2018-05-07 NA NA
## 5 11 <NA> Monique O. 2016-08-30 NA 1
## 6 NA <NA> Matthew B. 2018-02-26 NA 27
## weekday area big busy definitely feel lot many open plus two worth year the
## 1 Sun 1 NA NA NA NA NA NA NA NA NA NA 2 15
## 2 Sun NA NA NA NA NA NA NA NA NA NA NA NA NA
## 3 Fri NA NA NA NA NA NA NA NA NA NA NA NA 2
## 4 Sat NA NA NA NA NA NA NA NA NA NA NA NA 7
## 5 Mon NA NA NA NA NA NA NA NA NA NA NA NA 4
## 6 Thu 2 NA NA NA NA NA NA NA NA 1 NA NA 3
## and for have that they this you not but good with area_ratios big_ratios
## 1 5 3 4 4 3 1 2 1 1 2 NA 0.00369 NA
## 2 3 1 1 NA NA 1 NA NA NA NA NA NA NA
## 3 1 NA NA NA NA NA NA NA NA NA NA NA NA
## 4 6 2 NA NA NA 2 NA 3 1 NA 1 NA NA
## 5 3 NA NA NA NA NA NA NA NA NA NA NA NA
## 6 3 2 NA NA 2 NA 1 NA NA NA NA 0.02410 NA
## busy_ratios definitely_ratios feel_ratios lot_ratios many_ratios open_ratios
## 1 NA NA NA NA NA NA
## 2 NA NA NA NA NA NA
## 3 NA NA NA NA NA NA
## 4 NA NA NA NA NA NA
## 5 NA NA NA NA NA NA
## 6 NA NA NA NA NA NA
## plus_ratios two_ratios worth_ratios year_ratios the_ratios and_ratios
## 1 NA NA NA 0.00738 0.05535 0.01845
## 2 NA NA NA NA NA 0.02752
## 3 NA NA NA NA 0.06897 0.03448
## 4 NA NA NA NA 0.03182 0.02727
## 5 NA NA NA NA 0.08000 0.06000
## 6 NA 0.01205 NA NA 0.03614 0.03614
## for_ratios have_ratios that_ratios they_ratios this_ratios you_ratios
## 1 0.01107 0.01476 0.01476 0.01107 0.00369 0.00738
## 2 0.00917 0.00917 NA NA 0.00917 NA
## 3 NA NA NA NA NA NA
## 4 0.00909 NA NA NA 0.00909 NA
## 5 NA NA NA NA NA NA
## 6 0.02410 NA NA 0.02410 NA 0.01205
## not_ratios but_ratios good_ratios with_ratios
## 1 0.00369 0.00369 0.00738 NA
## 2 NA NA NA NA
## 3 NA NA NA NA
## 4 0.01364 0.00455 NA 0.00455
## 5 NA NA NA NA
## 6 NA NA NA NA
Now we need to write this out to csv to read in to other file or just to have.
write.csv(Reviews15,'ReviewsCleanedWithStopsAndKeywordsAndRatios.csv', row.names=FALSE)
This file is 1 Mb in file size, which actually isn’t that large.
Now that we have our table with the added ratios we can now look at building different data sets with feature selection to predict any of our other targets, but most likely the rating by review. But also we can now use our best prediction model of the mean votes algorithm and other big name machine learning algorithms I have used many times. We will do that next. Caret Cheatsheet is available from the available cheatsheets in the toolbar in Rstudio in the Help menu under Cheatsheets, scroll to the ‘Contributed Cheatsheets’ at the bottom and select the caret cheatsheet if you would like to refresh or learn about the algorithms caret has to work with in R for machine learning on the above data set.
Before moving on to the machine learning algorithms in R, specifically the caret package. Lets make a test and train set out of this data frame, and test the features we individually select on the target variable of the rating using our best model, the ceiling of the mean of the dot product of the votes and ratings or the top votes.We will use our database Reviews15. If you don’t have it in your environment go ahead and read it in from the ReviewsCleanedWithKeywordsAndRatios.csv file.
Reviews15 <- read.csv('ReviewsCleanedWithStopsAndKeywordsAndRatios.csv',sep=',',
header=TRUE, na.strings=c('',' ','NA'))
wordToAllWords <- read.csv('wordToAllWords.csv', sep=',', header=TRUE, na.strings=c('',' ','NA'),
row.names=1)
We need to make the wordToAllWords table for the stopwords or just read it in from our other table. There aren’t any NAs in it, so it shouldn’t be a problem.
wordToAllWordsStops <- read.csv('wordToAllWordsStops.csv', sep=',', header=TRUE ,
na.strings=c('',' ','NA'),row.names=1)
wordToAllWordsStops
## and but for. good have not that the they
## Rating1_term2totalTerm 0.046 0.008 0.018 0.006 0.016 0.011 0.015 0.057 0.012
## Rating2_term2totalTerm 0.042 0.011 0.014 0.006 0.016 0.011 0.013 0.073 0.011
## Rating3_term2totalTerm 0.043 0.010 0.021 0.008 0.020 0.010 0.012 0.072 0.009
## Rating4_term2totalTerm 0.046 0.011 0.016 0.010 0.016 0.007 0.012 0.061 0.010
## Rating5_term2totalTerm 0.059 0.006 0.018 0.013 0.023 0.004 0.010 0.056 0.010
## this with you
## Rating1_term2totalTerm 0.013 0.008 0.009
## Rating2_term2totalTerm 0.010 0.008 0.017
## Rating3_term2totalTerm 0.011 0.009 0.013
## Rating4_term2totalTerm 0.008 0.009 0.015
## Rating5_term2totalTerm 0.010 0.010 0.012
Now lets see the table we will compare each review ratio of term to total terms to the term to total terms in all reviews by rating.
wordToAllWords
## area big busy definitely feel lot
## Rating1_term2totalTerm 0.00062 0.00016 0.00016 0.00031 0.00156 0.00016
## Rating2_term2totalTerm 0.00149 0.00089 0.00119 0.00089 0.00506 0.00149
## Rating3_term2totalTerm 0.00282 0.00125 0.00188 0.00125 0.00846 0.00219
## Rating4_term2totalTerm 0.00405 0.00210 0.00112 0.00224 0.00475 0.00210
## Rating5_term2totalTerm 0.00284 0.00128 0.00092 0.00284 0.00768 0.00242
## many open plus two worth year
## Rating1_term2totalTerm 0.00078 0.00031 0.00016 0.00031 0.00031 0.00219
## Rating2_term2totalTerm 0.00178 0.00089 0.00059 0.00149 0.00178 0.00297
## Rating3_term2totalTerm 0.00219 0.00282 0.00094 0.00251 0.00251 0.00125
## Rating4_term2totalTerm 0.00252 0.00154 0.00056 0.00140 0.00182 0.00252
## Rating5_term2totalTerm 0.00213 0.00206 0.00057 0.00178 0.00171 0.00498
We will now combine these two tables to each other.
wordToAllWords2 <- cbind(wordToAllWords,wordToAllWordsStops)
wordToAllWords2
## area big busy definitely feel lot
## Rating1_term2totalTerm 0.00062 0.00016 0.00016 0.00031 0.00156 0.00016
## Rating2_term2totalTerm 0.00149 0.00089 0.00119 0.00089 0.00506 0.00149
## Rating3_term2totalTerm 0.00282 0.00125 0.00188 0.00125 0.00846 0.00219
## Rating4_term2totalTerm 0.00405 0.00210 0.00112 0.00224 0.00475 0.00210
## Rating5_term2totalTerm 0.00284 0.00128 0.00092 0.00284 0.00768 0.00242
## many open plus two worth year and
## Rating1_term2totalTerm 0.00078 0.00031 0.00016 0.00031 0.00031 0.00219 0.046
## Rating2_term2totalTerm 0.00178 0.00089 0.00059 0.00149 0.00178 0.00297 0.042
## Rating3_term2totalTerm 0.00219 0.00282 0.00094 0.00251 0.00251 0.00125 0.043
## Rating4_term2totalTerm 0.00252 0.00154 0.00056 0.00140 0.00182 0.00252 0.046
## Rating5_term2totalTerm 0.00213 0.00206 0.00057 0.00178 0.00171 0.00498 0.059
## but for. good have not that the they this
## Rating1_term2totalTerm 0.008 0.018 0.006 0.016 0.011 0.015 0.057 0.012 0.013
## Rating2_term2totalTerm 0.011 0.014 0.006 0.016 0.011 0.013 0.073 0.011 0.010
## Rating3_term2totalTerm 0.010 0.021 0.008 0.020 0.010 0.012 0.072 0.009 0.011
## Rating4_term2totalTerm 0.011 0.016 0.010 0.016 0.007 0.012 0.061 0.010 0.008
## Rating5_term2totalTerm 0.006 0.018 0.013 0.023 0.004 0.010 0.056 0.010 0.010
## with you
## Rating1_term2totalTerm 0.008 0.009
## Rating2_term2totalTerm 0.008 0.017
## Rating3_term2totalTerm 0.009 0.013
## Rating4_term2totalTerm 0.009 0.015
## Rating5_term2totalTerm 0.010 0.012
Since the stop word ‘for’ is a keyword for R it was named/read in as ‘for.’. This wasn’t done by me.
Now lets select our features we want to use the top model on. Since our model was based on the ratios, we will only be using the rating and those features, and from their it will create a voting system to grab the rating with the highest votes for the term to total terms per document. Make sure to read in all the packages this Rmarkdown file uses. The following will use stringr, dplyr, and tidyr or tidyverse for sure. Later we will use the caret package for Machine learning models to compare against our model.
colnames(Reviews15)
## [1] "id" "userReviewSeries" "userReviewOnlyContent"
## [4] "userRatingSeries" "userRatingValue" "businessReplied"
## [7] "businessReplyContent" "userReviewContent" "LowAvgHighCost"
## [10] "businessType" "cityState" "friends"
## [13] "reviews" "photos" "eliteStatus"
## [16] "userName" "Date" "userBusinessPhotos"
## [19] "userCheckIns" "weekday" "area"
## [22] "big" "busy" "definitely"
## [25] "feel" "lot" "many"
## [28] "open" "plus" "two"
## [31] "worth" "year" "the"
## [34] "and" "for." "have"
## [37] "that" "they" "this"
## [40] "you" "not" "but"
## [43] "good" "with" "area_ratios"
## [46] "big_ratios" "busy_ratios" "definitely_ratios"
## [49] "feel_ratios" "lot_ratios" "many_ratios"
## [52] "open_ratios" "plus_ratios" "two_ratios"
## [55] "worth_ratios" "year_ratios" "the_ratios"
## [58] "and_ratios" "for_ratios" "have_ratios"
## [61] "that_ratios" "they_ratios" "this_ratios"
## [64] "you_ratios" "not_ratios" "but_ratios"
## [67] "good_ratios" "with_ratios"
ML_rating_data <- Reviews15 %>% select(userRatingValue,
area_ratios:with_ratios)
head(ML_rating_data)
## userRatingValue area_ratios big_ratios busy_ratios definitely_ratios
## 1 5 0.00369 NA NA NA
## 2 5 NA NA NA NA
## 3 5 NA NA NA NA
## 4 1 NA NA NA NA
## 5 5 NA NA NA NA
## 6 5 0.02410 NA NA NA
## feel_ratios lot_ratios many_ratios open_ratios plus_ratios two_ratios
## 1 NA NA NA NA NA NA
## 2 NA NA NA NA NA NA
## 3 NA NA NA NA NA NA
## 4 NA NA NA NA NA NA
## 5 NA NA NA NA NA NA
## 6 NA NA NA NA NA 0.01205
## worth_ratios year_ratios the_ratios and_ratios for_ratios have_ratios
## 1 NA 0.00738 0.05535 0.01845 0.01107 0.01476
## 2 NA NA NA 0.02752 0.00917 0.00917
## 3 NA NA 0.06897 0.03448 NA NA
## 4 NA NA 0.03182 0.02727 0.00909 NA
## 5 NA NA 0.08000 0.06000 NA NA
## 6 NA NA 0.03614 0.03614 0.02410 NA
## that_ratios they_ratios this_ratios you_ratios not_ratios but_ratios
## 1 0.01476 0.01107 0.00369 0.00738 0.00369 0.00369
## 2 NA NA 0.00917 NA NA NA
## 3 NA NA NA NA NA NA
## 4 NA NA 0.00909 NA 0.01364 0.00455
## 5 NA NA NA NA NA NA
## 6 NA 0.02410 NA 0.01205 NA NA
## good_ratios with_ratios
## 1 0.00738 NA
## 2 NA NA
## 3 NA NA
## 4 NA 0.00455
## 5 NA NA
## 6 NA NA
If, or when, we use the caret algorithms to make predictions with many of the available models in caret, the target variable would be the userRatingValue, and the keyword ratios (12) would be the predictors. But we aren’t right at this moment and so we don’t have to separate the target from the predictors just yet. We can keep it attached to compare to our model we build on the ceiling of the mean if a tie in votes for the minimum values of the review ratio to the five rating rations.
Keep the rating column as an integer instead of a factor, because we need it as an integer to use the dot product on those reviews that there is a tie against the votes (the minimum value of the difference between the term to total terms in the document to the ratios of the same for all the documents in each rating). We saw earlier that there are some instances where there is a tie, but that the ceiling of the mean or the highest rating will beat out the ceiling of the median or the shortest distance (absolute value) between the reveiw ratio and rating ratios. We need to also get our data frame on ratios of total of each of these 12 words or terms to the total of all words in each corpus or file of reviews by rating in the wordToAllWords table.
colnames(wordToAllWords2)[15] <- 'for_' #this is special keyword in R
w2w <- wordToAllWords2 #shorten name
MLr <- ML_rating_data #shorten the name
Lets see how many NAs are in each keyword column for these 614 observations.
colSums(is.na(MLr))
## userRatingValue area_ratios big_ratios busy_ratios
## 0 567 594 587
## definitely_ratios feel_ratios lot_ratios many_ratios
## 561 540 571 563
## open_ratios plus_ratios two_ratios worth_ratios
## 583 605 573 565
## year_ratios the_ratios and_ratios for_ratios
## 578 81 76 218
## have_ratios that_ratios they_ratios this_ratios
## 340 354 354 336
## you_ratios not_ratios but_ratios good_ratios
## 341 429 362 478
## with_ratios
## 336
We can see all values are less than 614, so that means the words were counted right to begin with and when extracting the counts, rations, writing the values out and reading back in and also formatting into a matrix and then a data frame.
MLr$R1_area <- rep(w2w[1,1],length(MLr$userRatingValue))
MLr$R2_area <- rep(w2w[2,1],length(MLr$userRatingValue))
MLr$R3_area <- rep(w2w[3,1],length(MLr$userRatingValue))
MLr$R4_area <- rep(w2w[4,1],length(MLr$userRatingValue))
MLr$R5_area <- rep(w2w[5,1],length(MLr$userRatingValue))
MLr$R1_big <- rep(w2w[1,2],length(MLr$userRatingValue))
MLr$R2_big <- rep(w2w[2,2],length(MLr$userRatingValue))
MLr$R3_big <- rep(w2w[3,2],length(MLr$userRatingValue))
MLr$R4_big <- rep(w2w[4,2],length(MLr$userRatingValue))
MLr$R5_big <- rep(w2w[5,2],length(MLr$userRatingValue))
MLr$R1_busy <- rep(w2w[1,3],length(MLr$userRatingValue))
MLr$R2_busy <- rep(w2w[2,3],length(MLr$userRatingValue))
MLr$R3_busy <- rep(w2w[3,3],length(MLr$userRatingValue))
MLr$R4_busy <- rep(w2w[4,3],length(MLr$userRatingValue))
MLr$R5_busy <- rep(w2w[5,3],length(MLr$userRatingValue))
MLr$R1_definitely <- rep(w2w[1,4],length(MLr$userRatingValue))
MLr$R2_definitely <- rep(w2w[2,4],length(MLr$userRatingValue))
MLr$R3_definitely <- rep(w2w[3,4],length(MLr$userRatingValue))
MLr$R4_definitely <- rep(w2w[4,4],length(MLr$userRatingValue))
MLr$R5_definitely <- rep(w2w[5,4],length(MLr$userRatingValue))
MLr$R1_feel <- rep(w2w[1,5],length(MLr$userRatingValue))
MLr$R2_feel <- rep(w2w[2,5],length(MLr$userRatingValue))
MLr$R3_feel <- rep(w2w[3,5],length(MLr$userRatingValue))
MLr$R4_feel <- rep(w2w[4,5],length(MLr$userRatingValue))
MLr$R5_feel <- rep(w2w[5,5],length(MLr$userRatingValue))
MLr$R1_lot <- rep(w2w[1,6],length(MLr$userRatingValue))
MLr$R2_lot <- rep(w2w[2,6],length(MLr$userRatingValue))
MLr$R3_lot <- rep(w2w[3,6],length(MLr$userRatingValue))
MLr$R4_lot <- rep(w2w[4,6],length(MLr$userRatingValue))
MLr$R5_lot <- rep(w2w[5,6],length(MLr$userRatingValue))
MLr$R1_many <- rep(w2w[1,7],length(MLr$userRatingValue))
MLr$R2_many <- rep(w2w[2,7],length(MLr$userRatingValue))
MLr$R3_many <- rep(w2w[3,7],length(MLr$userRatingValue))
MLr$R4_many <- rep(w2w[4,7],length(MLr$userRatingValue))
MLr$R5_many <- rep(w2w[5,7],length(MLr$userRatingValue))
MLr$R1_open <- rep(w2w[1,8],length(MLr$userRatingValue))
MLr$R2_open <- rep(w2w[2,8],length(MLr$userRatingValue))
MLr$R3_open <- rep(w2w[3,8],length(MLr$userRatingValue))
MLr$R4_open <- rep(w2w[4,8],length(MLr$userRatingValue))
MLr$R5_open <- rep(w2w[5,8],length(MLr$userRatingValue))
MLr$R1_plus <- rep(w2w[1,9],length(MLr$userRatingValue))
MLr$R2_plus <- rep(w2w[2,9],length(MLr$userRatingValue))
MLr$R3_plus <- rep(w2w[3,9],length(MLr$userRatingValue))
MLr$R4_plus <- rep(w2w[4,9],length(MLr$userRatingValue))
MLr$R5_plus <- rep(w2w[5,9],length(MLr$userRatingValue))
MLr$R1_two <- rep(w2w[1,10],length(MLr$userRatingValue))
MLr$R2_two <- rep(w2w[2,10],length(MLr$userRatingValue))
MLr$R3_two <- rep(w2w[3,10],length(MLr$userRatingValue))
MLr$R4_two <- rep(w2w[4,10],length(MLr$userRatingValue))
MLr$R5_two <- rep(w2w[5,10],length(MLr$userRatingValue))
MLr$R1_worth <- rep(w2w[1,11],length(MLr$userRatingValue))
MLr$R2_worth <- rep(w2w[2,11],length(MLr$userRatingValue))
MLr$R3_worth <- rep(w2w[3,11],length(MLr$userRatingValue))
MLr$R4_worth <- rep(w2w[4,11],length(MLr$userRatingValue))
MLr$R5_worth <- rep(w2w[5,11],length(MLr$userRatingValue))
MLr$R1_year <- rep(w2w[1,12],length(MLr$userRatingValue))
MLr$R2_year <- rep(w2w[2,12],length(MLr$userRatingValue))
MLr$R3_year <- rep(w2w[3,12],length(MLr$userRatingValue))
MLr$R4_year <- rep(w2w[4,12],length(MLr$userRatingValue))
MLr$R5_year <- rep(w2w[5,12],length(MLr$userRatingValue))
MLr$R1_and <- rep(w2w[1,13],length(MLr$userRatingValue))
MLr$R2_and <- rep(w2w[2,13],length(MLr$userRatingValue))
MLr$R3_and <- rep(w2w[3,13],length(MLr$userRatingValue))
MLr$R4_and <- rep(w2w[4,13],length(MLr$userRatingValue))
MLr$R5_and <- rep(w2w[5,13],length(MLr$userRatingValue))
MLr$R1_but <- rep(w2w[1,14],length(MLr$userRatingValue))
MLr$R2_but <- rep(w2w[2,14],length(MLr$userRatingValue))
MLr$R3_but <- rep(w2w[3,14],length(MLr$userRatingValue))
MLr$R4_but <- rep(w2w[4,14],length(MLr$userRatingValue))
MLr$R5_but <- rep(w2w[5,14],length(MLr$userRatingValue))
MLr$R1_for <- rep(w2w[1,15],length(MLr$userRatingValue))
MLr$R2_for <- rep(w2w[2,15],length(MLr$userRatingValue))
MLr$R3_for <- rep(w2w[3,15],length(MLr$userRatingValue))
MLr$R4_for <- rep(w2w[4,15],length(MLr$userRatingValue))
MLr$R5_for <- rep(w2w[5,15],length(MLr$userRatingValue))
MLr$R1_good <- rep(w2w[1,16],length(MLr$userRatingValue))
MLr$R2_good <- rep(w2w[2,16],length(MLr$userRatingValue))
MLr$R3_good <- rep(w2w[3,16],length(MLr$userRatingValue))
MLr$R4_good <- rep(w2w[4,16],length(MLr$userRatingValue))
MLr$R5_good <- rep(w2w[5,16],length(MLr$userRatingValue))
MLr$R1_have <- rep(w2w[1,17],length(MLr$userRatingValue))
MLr$R2_have <- rep(w2w[2,17],length(MLr$userRatingValue))
MLr$R3_have <- rep(w2w[3,17],length(MLr$userRatingValue))
MLr$R4_have <- rep(w2w[4,17],length(MLr$userRatingValue))
MLr$R5_have <- rep(w2w[5,17],length(MLr$userRatingValue))
MLr$R1_not <- rep(w2w[1,18],length(MLr$userRatingValue))
MLr$R2_not <- rep(w2w[2,18],length(MLr$userRatingValue))
MLr$R3_not <- rep(w2w[3,18],length(MLr$userRatingValue))
MLr$R4_not <- rep(w2w[4,18],length(MLr$userRatingValue))
MLr$R5_not <- rep(w2w[5,18],length(MLr$userRatingValue))
MLr$R1_that <- rep(w2w[1,19],length(MLr$userRatingValue))
MLr$R2_that <- rep(w2w[2,19],length(MLr$userRatingValue))
MLr$R3_that <- rep(w2w[3,19],length(MLr$userRatingValue))
MLr$R4_that <- rep(w2w[4,19],length(MLr$userRatingValue))
MLr$R5_that <- rep(w2w[5,19],length(MLr$userRatingValue))
MLr$R1_the <- rep(w2w[1,20],length(MLr$userRatingValue))
MLr$R2_the <- rep(w2w[2,20],length(MLr$userRatingValue))
MLr$R3_the <- rep(w2w[3,20],length(MLr$userRatingValue))
MLr$R4_the <- rep(w2w[4,20],length(MLr$userRatingValue))
MLr$R5_the <- rep(w2w[5,20],length(MLr$userRatingValue))
MLr$R1_they <- rep(w2w[1,21],length(MLr$userRatingValue))
MLr$R2_they <- rep(w2w[2,21],length(MLr$userRatingValue))
MLr$R3_they <- rep(w2w[3,21],length(MLr$userRatingValue))
MLr$R4_they <- rep(w2w[4,21],length(MLr$userRatingValue))
MLr$R5_they <- rep(w2w[5,21],length(MLr$userRatingValue))
MLr$R1_this <- rep(w2w[1,22],length(MLr$userRatingValue))
MLr$R2_this <- rep(w2w[2,22],length(MLr$userRatingValue))
MLr$R3_this <- rep(w2w[3,22],length(MLr$userRatingValue))
MLr$R4_this <- rep(w2w[4,22],length(MLr$userRatingValue))
MLr$R5_this <- rep(w2w[5,22],length(MLr$userRatingValue))
MLr$R1_with <- rep(w2w[1,23],length(MLr$userRatingValue))
MLr$R2_with <- rep(w2w[2,23],length(MLr$userRatingValue))
MLr$R3_with <- rep(w2w[3,23],length(MLr$userRatingValue))
MLr$R4_with <- rep(w2w[4,23],length(MLr$userRatingValue))
MLr$R5_with <- rep(w2w[5,23],length(MLr$userRatingValue))
MLr$R1_you <- rep(w2w[1,24],length(MLr$userRatingValue))
MLr$R2_you <- rep(w2w[2,24],length(MLr$userRatingValue))
MLr$R3_you <- rep(w2w[3,24],length(MLr$userRatingValue))
MLr$R4_you <- rep(w2w[4,24],length(MLr$userRatingValue))
MLr$R5_you <- rep(w2w[5,24],length(MLr$userRatingValue))
MLr$area_diff1 <- MLr$R1_area-MLr$area_ratios
MLr$area_diff2 <- MLr$R2_area-MLr$area_ratios
MLr$area_diff3 <- MLr$R3_area-MLr$area_ratios
MLr$area_diff4 <- MLr$R4_area-MLr$area_ratios
MLr$area_diff5 <- MLr$R5_area-MLr$area_ratios
MLr$big_diff1 <- MLr$R1_big-MLr$big_ratios
MLr$big_diff2 <- MLr$R2_big-MLr$big_ratios
MLr$big_diff3 <- MLr$R3_big-MLr$big_ratios
MLr$big_diff4 <- MLr$R4_big-MLr$big_ratios
MLr$big_diff5 <- MLr$R5_big-MLr$big_ratios
MLr$busy_diff1 <- MLr$R1_busy-MLr$busy_ratios
MLr$busy_diff2 <- MLr$R2_busy-MLr$busy_ratios
MLr$busy_diff3 <- MLr$R3_busy-MLr$busy_ratios
MLr$busy_diff4 <- MLr$R4_busy-MLr$busy_ratios
MLr$busy_diff5 <- MLr$R5_busy-MLr$busy_ratios
MLr$definitely_diff1 <- MLr$R1_definitely-MLr$definitely_ratios
MLr$definitely_diff2 <- MLr$R2_definitely-MLr$definitely_ratios
MLr$definitely_diff3 <- MLr$R3_definitely-MLr$definitely_ratios
MLr$definitely_diff4 <- MLr$R4_definitely-MLr$definitely_ratios
MLr$definitely_diff5 <- MLr$R5_definitely-MLr$definitely_ratios
MLr$feel_diff1 <- MLr$R1_feel-MLr$feel_ratios
MLr$feel_diff2 <- MLr$R2_feel-MLr$feel_ratios
MLr$feel_diff3 <- MLr$R3_feel-MLr$feel_ratios
MLr$feel_diff4 <- MLr$R4_feel-MLr$feel_ratios
MLr$feel_diff5 <- MLr$R5_feel-MLr$feel_ratios
MLr$lot_diff1 <- MLr$R1_lot-MLr$lot_ratios
MLr$lot_diff2 <- MLr$R2_lot-MLr$lot_ratios
MLr$lot_diff3 <- MLr$R3_lot-MLr$lot_ratios
MLr$lot_diff4 <- MLr$R4_lot-MLr$lot_ratios
MLr$lot_diff5 <- MLr$R5_lot-MLr$lot_ratios
MLr$many_diff1 <- MLr$R1_many-MLr$many_ratios
MLr$many_diff2 <- MLr$R2_many-MLr$many_ratios
MLr$many_diff3 <- MLr$R3_many-MLr$many_ratios
MLr$many_diff4 <- MLr$R4_many-MLr$many_ratios
MLr$many_diff5 <- MLr$R5_many-MLr$many_ratios
MLr$open_diff1 <- MLr$R1_open-MLr$open_ratios
MLr$open_diff2 <- MLr$R2_open-MLr$open_ratios
MLr$open_diff3 <- MLr$R3_open-MLr$open_ratios
MLr$open_diff4 <- MLr$R4_open-MLr$open_ratios
MLr$open_diff5 <- MLr$R5_open-MLr$open_ratios
MLr$plus_diff1 <- MLr$R1_plus-MLr$plus_ratios
MLr$plus_diff2 <- MLr$R2_plus-MLr$plus_ratios
MLr$plus_diff3 <- MLr$R3_plus-MLr$plus_ratios
MLr$plus_diff4 <- MLr$R4_plus-MLr$plus_ratios
MLr$plus_diff5 <- MLr$R5_plus-MLr$plus_ratios
MLr$two_diff1 <- MLr$R1_two-MLr$two_ratios
MLr$two_diff2 <- MLr$R2_two-MLr$two_ratios
MLr$two_diff3 <- MLr$R3_two-MLr$two_ratios
MLr$two_diff4 <- MLr$R4_two-MLr$two_ratios
MLr$two_diff5 <- MLr$R5_two-MLr$two_ratios
MLr$worth_diff1 <- MLr$R1_worth-MLr$worth_ratios
MLr$worth_diff2 <- MLr$R2_worth-MLr$worth_ratios
MLr$worth_diff3 <- MLr$R3_worth-MLr$worth_ratios
MLr$worth_diff4 <- MLr$R4_worth-MLr$worth_ratios
MLr$worth_diff5 <- MLr$R5_worth-MLr$worth_ratios
MLr$year_diff1 <- MLr$R1_year-MLr$year_ratios
MLr$year_diff2 <- MLr$R2_year-MLr$year_ratios
MLr$year_diff3 <- MLr$R3_year-MLr$year_ratios
MLr$year_diff4 <- MLr$R4_year-MLr$year_ratios
MLr$year_diff5 <- MLr$R5_year-MLr$year_ratios
MLr$and_diff1 <- MLr$R1_and-MLr$and_ratios
MLr$and_diff2 <- MLr$R2_and-MLr$and_ratios
MLr$and_diff3 <- MLr$R3_and-MLr$and_ratios
MLr$and_diff4 <- MLr$R4_and-MLr$and_ratios
MLr$and_diff5 <- MLr$R5_and-MLr$and_ratios
MLr$but_diff1 <- MLr$R1_but-MLr$but_ratios
MLr$but_diff2 <- MLr$R2_but-MLr$but_ratios
MLr$but_diff3 <- MLr$R3_but-MLr$but_ratios
MLr$but_diff4 <- MLr$R4_but-MLr$but_ratios
MLr$but_diff5 <- MLr$R5_but-MLr$but_ratios
MLr$for_diff1 <- MLr$R1_for-MLr$for_ratios
MLr$for_diff2 <- MLr$R2_for-MLr$for_ratios
MLr$for_diff3 <- MLr$R3_for-MLr$for_ratios
MLr$for_diff4 <- MLr$R4_for-MLr$for_ratios
MLr$for_diff5 <- MLr$R5_for-MLr$for_ratios
MLr$good_diff1 <- MLr$R1_good-MLr$good_ratios
MLr$good_diff2 <- MLr$R2_good-MLr$good_ratios
MLr$good_diff3 <- MLr$R3_good-MLr$good_ratios
MLr$good_diff4 <- MLr$R4_good-MLr$good_ratios
MLr$good_diff5 <- MLr$R5_good-MLr$good_ratios
MLr$have_diff1 <- MLr$R1_have-MLr$have_ratios
MLr$have_diff2 <- MLr$R2_have-MLr$have_ratios
MLr$have_diff3 <- MLr$R3_have-MLr$have_ratios
MLr$have_diff4 <- MLr$R4_have-MLr$have_ratios
MLr$have_diff5 <- MLr$R5_have-MLr$have_ratios
MLr$not_diff1 <- MLr$R1_not-MLr$not_ratios
MLr$not_diff2 <- MLr$R2_not-MLr$not_ratios
MLr$not_diff3 <- MLr$R3_not-MLr$not_ratios
MLr$not_diff4 <- MLr$R4_not-MLr$not_ratios
MLr$not_diff5 <- MLr$R5_not-MLr$not_ratios
MLr$that_diff1 <- MLr$R1_that-MLr$that_ratios
MLr$that_diff2 <- MLr$R2_that-MLr$that_ratios
MLr$that_diff3 <- MLr$R3_that-MLr$that_ratios
MLr$that_diff4 <- MLr$R4_that-MLr$that_ratios
MLr$that_diff5 <- MLr$R5_that-MLr$that_ratios
MLr$the_diff1 <- MLr$R1_the-MLr$the_ratios
MLr$the_diff2 <- MLr$R2_the-MLr$the_ratios
MLr$the_diff3 <- MLr$R3_the-MLr$the_ratios
MLr$the_diff4 <- MLr$R4_the-MLr$the_ratios
MLr$the_diff5 <- MLr$R5_the-MLr$the_ratios
MLr$they_diff1 <- MLr$R1_they-MLr$they_ratios
MLr$they_diff2 <- MLr$R2_they-MLr$they_ratios
MLr$they_diff3 <- MLr$R3_they-MLr$they_ratios
MLr$they_diff4 <- MLr$R4_they-MLr$they_ratios
MLr$they_diff5 <- MLr$R5_they-MLr$they_ratios
MLr$this_diff1 <- MLr$R1_this-MLr$this_ratios
MLr$this_diff2 <- MLr$R2_this-MLr$this_ratios
MLr$this_diff3 <- MLr$R3_this-MLr$this_ratios
MLr$this_diff4 <- MLr$R4_this-MLr$this_ratios
MLr$this_diff5 <- MLr$R5_this-MLr$this_ratios
MLr$with_diff1 <- MLr$R1_with-MLr$with_ratios
MLr$with_diff2 <- MLr$R2_with-MLr$with_ratios
MLr$with_diff3 <- MLr$R3_with-MLr$with_ratios
MLr$with_diff4 <- MLr$R4_with-MLr$with_ratios
MLr$with_diff5 <- MLr$R5_with-MLr$with_ratios
MLr$you_diff1 <- MLr$R1_you-MLr$you_ratios
MLr$you_diff2 <- MLr$R2_you-MLr$you_ratios
MLr$you_diff3 <- MLr$R3_you-MLr$you_ratios
MLr$you_diff4 <- MLr$R4_you-MLr$you_ratios
MLr$you_diff5 <- MLr$R5_you-MLr$you_ratios
Get the minimum value of the term/total terms per document difference from the ratings term/total terms per rating values.
MLr$areaMin <- apply(MLr[146:150],1, min,na.rm=TRUE)
MLr$areavote <- ifelse(MLr$area_diff1==MLr$areaMin,
1,
ifelse(MLr$area_diff2==MLr$areaMin,
2,
ifelse(MLr$area_diff3==MLr$areaMin,
3,
ifelse(MLr$area_diff4==MLr$areaMin,
4,
ifelse(MLr$area_diff5==MLr$areaMin,
5, NA )
)
)
)
)
MLr$bigMin <- apply(MLr[151:155],1, min,na.rm=TRUE)
MLr$bigvote <- ifelse(MLr$big_diff1==MLr$bigMin,
1,
ifelse(MLr$big_diff2==MLr$bigMin,
2,
ifelse(MLr$big_diff3==MLr$bigMin,
3,
ifelse(MLr$big_diff4==MLr$bigMin,
4,
ifelse(MLr$big_diff5==MLr$bigMin,
5, NA)
)
)
)
)
MLr$busyMin <- apply(MLr[156:160],1, min,na.rm=TRUE)
MLr$busyvote <- ifelse(MLr$busy_diff1==MLr$busyMin,
1,
ifelse(MLr$busy_diff2==MLr$busyMin,
2,
ifelse(MLr$busy_diff3==MLr$busyMin,
3,
ifelse(MLr$busy_diff4==MLr$busyMin,
4,
ifelse(MLr$busy_diff5==MLr$busyMin,
5, NA)
)
)
)
)
MLr$definitelyMin <- apply(MLr[161:165],1, min, na.rm=TRUE)
MLr$definitelyvote <- ifelse(MLr$definitely_diff1==MLr$definitelyMin,
1,
ifelse(MLr$definitely_diff2==MLr$definitelyMin,
2,
ifelse(MLr$definitely_diff3==MLr$definitelyMin,
3,
ifelse(MLr$definitely_diff4==MLr$definitelyMin,
4,
ifelse(MLr$definitely_diff5==MLr$definitelyMin,
5, NA)
)
)
)
)
MLr$feelMin <- apply(MLr[166:170],1, min, na.rm=TRUE)
MLr$feelvote <- ifelse(MLr$feel_diff1==MLr$feelMin,
1,
ifelse(MLr$feel_diff2==MLr$feelMin,
2,
ifelse(MLr$feel_diff3==MLr$feelMin,
3,
ifelse(MLr$feel_diff4==MLr$feelMin,
4,
ifelse(MLr$feel_diff5==MLr$feelMin,
5, NA)
)
)
)
)
MLr$lotMin <- apply(MLr[171:175],1, min, na.rm=TRUE)
MLr$lotvote <- ifelse(MLr$lot_diff1==MLr$lotMin,
1,
ifelse(MLr$lot_diff2==MLr$lotMin,
2,
ifelse(MLr$lot_diff3==MLr$lotMin,
3,
ifelse(MLr$lot_diff4==MLr$lotMin,
4,
ifelse(MLr$lot_diff5==MLr$lotMin,
5, NA)
)
)
)
)
MLr$manyMin <- apply(MLr[176:180],1, min, na.rm=TRUE)
MLr$manyvote <- ifelse(MLr$many_diff1==MLr$manyMin,
1,
ifelse(MLr$many_diff2==MLr$manyMin,
2,
ifelse(MLr$many_diff3==MLr$manyMin,
3,
ifelse(MLr$many_diff4==MLr$manyMin,
4,
ifelse(MLr$many_diff5==MLr$manyMin,
5, NA)
)
)
)
)
MLr$openMin <- apply(MLr[181:185],1, min, na.rm=TRUE)
MLr$openvote <- ifelse(MLr$open_diff1==MLr$openMin,
1,
ifelse(MLr$open_diff2==MLr$openMin,
2,
ifelse(MLr$open_diff3==MLr$openMin,
3,
ifelse(MLr$open_diff4==MLr$openMin,
4,
ifelse(MLr$open_diff5==MLr$openMin,
5, NA)
)
)
)
)
MLr$plusMin <- apply(MLr[186:190],1, min, na.rm=TRUE)
MLr$plusvote <- ifelse(MLr$plus_diff1==MLr$plusMin,
1,
ifelse(MLr$plus_diff2==MLr$plusMin,
2,
ifelse(MLr$plus_diff3==MLr$plusMin,
3,
ifelse(MLr$plus_diff4==MLr$plusMin,
4,
ifelse(MLr$plus_diff5==MLr$plusMin,
5, NA)
)
)
)
)
MLr$twoMin <- apply(MLr[191:195],1, min, na.rm=TRUE)
MLr$twovote <- ifelse(MLr$two_diff1==MLr$twoMin,
1,
ifelse(MLr$two_diff2==MLr$twoMin,
2,
ifelse(MLr$two_diff3==MLr$twoMin,
3,
ifelse(MLr$two_diff4==MLr$twoMin,
4,
ifelse(MLr$two_diff5==MLr$twoMin,
5, NA)
)
)
)
)
MLr$worthMin <- apply(MLr[196:200],1, min, na.rm=TRUE)
MLr$worthvote <- ifelse(MLr$worth_diff1==MLr$worthMin,
1,
ifelse(MLr$worth_diff2==MLr$worthMin,
2,
ifelse(MLr$worth_diff3==MLr$worthMin,
3,
ifelse(MLr$worth_diff4==MLr$worthMin,
4,
ifelse(MLr$worth_diff5==MLr$worthMin,
5, NA)
)
)
)
)
MLr$yearMin <- apply(MLr[201:205],1, min, na.rm=TRUE)
MLr$yearvote <- ifelse(MLr$year_diff1==MLr$yearMin,
1,
ifelse(MLr$year_diff2==MLr$yearMin,
2,
ifelse(MLr$year_diff3==MLr$yearMin,
3,
ifelse(MLr$year_diff4==MLr$yearMin,
4,
ifelse(MLr$year_diff5==MLr$yearMin,
5, NA)
)
)
)
)
MLr$andMin <- apply(MLr[206:210],1, min,na.rm=TRUE)
MLr$andvote <- ifelse(MLr$and_diff1==MLr$andMin,
1,
ifelse(MLr$and_diff2==MLr$andMin,
2,
ifelse(MLr$and_diff3==MLr$andMin,
3,
ifelse(MLr$and_diff4==MLr$andMin,
4,
ifelse(MLr$and_diff5==MLr$andMin,
5, NA)
)
)
)
)
MLr$butMin <- apply(MLr[211:215],1, min, na.rm=TRUE)
MLr$butvote <- ifelse(MLr$but_diff1==MLr$butMin,
1,
ifelse(MLr$but_diff2==MLr$butMin,
2,
ifelse(MLr$but_diff3==MLr$butMin,
3,
ifelse(MLr$but_diff4==MLr$butMin,
4,
ifelse(MLr$but_diff5==MLr$butMin,
5, NA)
)
)
)
)
MLr$forMin <- apply(MLr[216:220],1, min, na.rm=TRUE)
MLr$forvote <- ifelse(MLr$for_diff1==MLr$forMin,
1,
ifelse(MLr$for_diff2==MLr$forMin,
2,
ifelse(MLr$for_diff3==MLr$forMin,
3,
ifelse(MLr$for_diff4==MLr$forMin,
4,
ifelse(MLr$for_diff5==MLr$forMin,
5, NA)
)
)
)
)
MLr$goodMin <- apply(MLr[221:225],1, min, na.rm=TRUE)
MLr$goodvote <- ifelse(MLr$good_diff1==MLr$goodMin,
1,
ifelse(MLr$good_diff2==MLr$goodMin,
2,
ifelse(MLr$good_diff3==MLr$goodMin,
3,
ifelse(MLr$good_diff4==MLr$goodMin,
4,
ifelse(MLr$good_diff5==MLr$goodMin,
5, NA)
)
)
)
)
MLr$haveMin <- apply(MLr[226:230],1, min, na.rm=TRUE)
MLr$havevote <- ifelse(MLr$have_diff1==MLr$haveMin,
1,
ifelse(MLr$have_diff2==MLr$haveMin,
2,
ifelse(MLr$have_diff3==MLr$haveMin,
3,
ifelse(MLr$have_diff4==MLr$haveMin,
4,
ifelse(MLr$have_diff5==MLr$haveMin,
5, NA)
)
)
)
)
MLr$notMin <- apply(MLr[231:235],1, min, na.rm=TRUE)
MLr$notvote <- ifelse(MLr$not_diff1==MLr$notMin,
1,
ifelse(MLr$not_diff2==MLr$notMin,
2,
ifelse(MLr$not_diff3==MLr$notMin,
3,
ifelse(MLr$not_diff4==MLr$notMin,
4,
ifelse(MLr$not_diff5==MLr$notMin,
5, NA)
)
)
)
)
MLr$thatMin <- apply(MLr[236:240],1, min, na.rm=TRUE)
MLr$thatvote <- ifelse(MLr$that_diff1==MLr$thatMin,
1,
ifelse(MLr$that_diff2==MLr$thatMin,
2,
ifelse(MLr$that_diff3==MLr$thatMin,
3,
ifelse(MLr$that_diff4==MLr$thatMin,
4,
ifelse(MLr$that_diff5==MLr$thatMin,
5, NA)
)
)
)
)
MLr$theMin <- apply(MLr[241:245],1, min, na.rm=TRUE)
MLr$thevote <- ifelse(MLr$the_diff1==MLr$theMin,
1,
ifelse(MLr$the_diff2==MLr$theMin,
2,
ifelse(MLr$the_diff3==MLr$theMin,
3,
ifelse(MLr$the_diff4==MLr$theMin,
4,
ifelse(MLr$the_diff5==MLr$theMin,
5, NA)
)
)
)
)
MLr$theyMin <- apply(MLr[246:250],1, min, na.rm=TRUE)
MLr$theyvote <- ifelse(MLr$they_diff1==MLr$theyMin,
1,
ifelse(MLr$they_diff2==MLr$theyMin,
2,
ifelse(MLr$they_diff3==MLr$theyMin,
3,
ifelse(MLr$they_diff4==MLr$theyMin,
4,
ifelse(MLr$they_diff5==MLr$theyMin,
5, NA)
)
)
)
)
MLr$thisMin <- apply(MLr[251:255],1, min, na.rm=TRUE)
MLr$thisvote <- ifelse(MLr$this_diff1==MLr$thisMin,
1,
ifelse(MLr$this_diff2==MLr$thisMin,
2,
ifelse(MLr$this_diff3==MLr$thisMin,
3,
ifelse(MLr$this_diff4==MLr$thisMin,
4,
ifelse(MLr$this_diff5==MLr$thisMin,
5, NA)
)
)
)
)
MLr$withMin <- apply(MLr[256:260],1, min, na.rm=TRUE)
MLr$withvote <- ifelse(MLr$with_diff1==MLr$withMin,
1,
ifelse(MLr$with_diff2==MLr$withMin,
2,
ifelse(MLr$with_diff3==MLr$withMin,
3,
ifelse(MLr$with_diff4==MLr$withMin,
4,
ifelse(MLr$with_diff5==MLr$withMin,
5, NA)
)
)
)
)
MLr$youMin <- apply(MLr[261:265],1, min, na.rm=TRUE)
MLr$youvote <- ifelse(MLr$you_diff1==MLr$youMin,
1,
ifelse(MLr$you_diff2==MLr$youMin,
2,
ifelse(MLr$you_diff3==MLr$youMin,
3,
ifelse(MLr$you_diff4==MLr$youMin,
4,
ifelse(MLr$you_diff5==MLr$youMin,
5, NA)
)
)
)
)
bestVote <- MLr %>% select(areavote, bigvote , busyvote, definitelyvote,
feelvote, lotvote, manyvote, openvote, plusvote,
twovote, worthvote, yearvote, andvote, butvote, forvote,
goodvote, havevote, notvote, thatvote, thevote,
theyvote, thisvote, withvote, youvote )
summary(bestVote)
## areavote bigvote busyvote definitelyvote feelvote
## Min. :1 Min. :1 Min. :1 Min. :1 Min. :1
## 1st Qu.:1 1st Qu.:1 1st Qu.:1 1st Qu.:1 1st Qu.:1
## Median :1 Median :1 Median :1 Median :1 Median :1
## Mean :1 Mean :1 Mean :1 Mean :1 Mean :1
## 3rd Qu.:1 3rd Qu.:1 3rd Qu.:1 3rd Qu.:1 3rd Qu.:1
## Max. :1 Max. :1 Max. :1 Max. :1 Max. :1
## NA's :567 NA's :594 NA's :587 NA's :561 NA's :540
## lotvote manyvote openvote plusvote twovote
## Min. :1 Min. :1 Min. :1 Min. :1 Min. :1
## 1st Qu.:1 1st Qu.:1 1st Qu.:1 1st Qu.:1 1st Qu.:1
## Median :1 Median :1 Median :1 Median :1 Median :1
## Mean :1 Mean :1 Mean :1 Mean :1 Mean :1
## 3rd Qu.:1 3rd Qu.:1 3rd Qu.:1 3rd Qu.:1 3rd Qu.:1
## Max. :1 Max. :1 Max. :1 Max. :1 Max. :1
## NA's :571 NA's :563 NA's :583 NA's :605 NA's :573
## worthvote yearvote andvote butvote forvote
## Min. :1 Min. :3 Min. :2 Min. :5 Min. :2
## 1st Qu.:1 1st Qu.:3 1st Qu.:2 1st Qu.:5 1st Qu.:2
## Median :1 Median :3 Median :2 Median :5 Median :2
## Mean :1 Mean :3 Mean :2 Mean :5 Mean :2
## 3rd Qu.:1 3rd Qu.:3 3rd Qu.:2 3rd Qu.:5 3rd Qu.:2
## Max. :1 Max. :3 Max. :2 Max. :5 Max. :2
## NA's :565 NA's :578 NA's :76 NA's :362 NA's :218
## goodvote havevote notvote thatvote thevote
## Min. :1 Min. :1 Min. :5 Min. :5 Min. :5
## 1st Qu.:1 1st Qu.:1 1st Qu.:5 1st Qu.:5 1st Qu.:5
## Median :1 Median :1 Median :5 Median :5 Median :5
## Mean :1 Mean :1 Mean :5 Mean :5 Mean :5
## 3rd Qu.:1 3rd Qu.:1 3rd Qu.:5 3rd Qu.:5 3rd Qu.:5
## Max. :1 Max. :1 Max. :5 Max. :5 Max. :5
## NA's :478 NA's :340 NA's :429 NA's :354 NA's :81
## theyvote thisvote withvote youvote
## Min. :3 Min. :4 Min. :1 Min. :1
## 1st Qu.:3 1st Qu.:4 1st Qu.:1 1st Qu.:1
## Median :3 Median :4 Median :1 Median :1
## Mean :3 Mean :4 Mean :1 Mean :1
## 3rd Qu.:3 3rd Qu.:4 3rd Qu.:1 3rd Qu.:1
## Max. :3 Max. :4 Max. :1 Max. :1
## NA's :354 NA's :336 NA's :336 NA's :341
bestVote$areavote <- as.factor(paste(bestVote$areavote))
bestVote$bigvote <- as.factor(paste(bestVote$bigvote))
bestVote$busyvote <- as.factor(paste(bestVote$busyvote))
bestVote$definitelyvote <- as.factor(paste(bestVote$definitelyvote))
bestVote$feelvote <- as.factor(paste(bestVote$feelvote))
bestVote$lotvote <- as.factor(paste(bestVote$lotvote))
bestVote$manyvote <- as.factor(paste(bestVote$manyvote))
bestVote$openvote <- as.factor(paste(bestVote$openvote))
bestVote$plusvote <- as.factor(paste(bestVote$plusvote))
bestVote$twovote <- as.factor(paste(bestVote$twovote))
bestVote$worthvote <- as.factor(paste(bestVote$worthvote))
bestVote$yearvote <- as.factor(paste(bestVote$yearvote))
bestVote$andvote <- as.factor(paste(bestVote$andvote))
bestVote$butvote <- as.factor(paste(bestVote$butvote))
bestVote$forvote <- as.factor(paste(bestVote$forvote))
bestVote$goodvote <- as.factor(paste(bestVote$goodvote))
bestVote$havevote <- as.factor(paste(bestVote$havevote))
bestVote$notvote <- as.factor(paste(bestVote$notvote))
bestVote$thatvote <- as.factor(paste(bestVote$thatvote))
bestVote$thevote <- as.factor(paste(bestVote$thevote))
bestVote$theyvote <- as.factor(paste(bestVote$theyvote))
bestVote$thisvote <- as.factor(paste(bestVote$thisvote))
bestVote$withvote <- as.factor(paste(bestVote$withvote))
bestVote$youvote <- as.factor(paste(bestVote$youvote))
bestVote$counts1 <- 0
bestVote$counts2 <- 0
bestVote$counts3 <- 0
bestVote$counts4 <- 0
bestVote$counts5 <- 0
a5 <- grep('5',bestVote$andvote)
a4 <- grep('4', bestVote$andvote)
a3 <- grep('3',bestVote$andvote)
a2 <- grep('2',bestVote$andvote)
a1 <- grep('1',bestVote$andvote)
b5 <- grep('5',bestVote$butvote)
b4 <- grep('4', bestVote$butvote)
b3 <- grep('3',bestVote$butvote)
b2 <- grep('2',bestVote$butvote)
b1 <- grep('1',bestVote$butvote)
c5 <- grep('5',bestVote$forvote)
c4 <- grep('4', bestVote$forvote)
c3 <- grep('3',bestVote$forvote)
c2 <- grep('2',bestVote$forvote)
c1 <- grep('1',bestVote$forvote)
d5 <- grep('5',bestVote$goodvote)
d4 <- grep('4', bestVote$goodvote)
d3 <- grep('3',bestVote$goodvote)
d2 <- grep('2',bestVote$goodvote)
d1 <- grep('1',bestVote$goodvote)
e5 <- grep('5',bestVote$havevote)
e4 <- grep('4', bestVote$havevote)
e3 <- grep('3',bestVote$havevote)
e2 <- grep('2',bestVote$havevote)
e1 <- grep('1',bestVote$havevote)
f5 <- grep('5',bestVote$notvote)
f4 <- grep('4', bestVote$notvote)
f3 <- grep('3',bestVote$notvote)
f2 <- grep('2',bestVote$notvote)
f1 <- grep('1',bestVote$notvote)
g5 <- grep('5',bestVote$thatvote)
g4 <- grep('4', bestVote$thatvote)
g3 <- grep('3',bestVote$thatvote)
g2 <- grep('2',bestVote$thatvote)
g1 <- grep('1',bestVote$thatvote)
h5 <- grep('5',bestVote$thevote)
h4 <- grep('4', bestVote$thevote)
h3 <- grep('3',bestVote$thevote)
h2 <- grep('2',bestVote$thevote)
h1 <- grep('1',bestVote$thevote)
i5 <- grep('5',bestVote$theyvote)
i4 <- grep('4', bestVote$theyvote)
i3 <- grep('3',bestVote$theyvote)
i2 <- grep('2',bestVote$theyvote)
i1 <- grep('1',bestVote$theyvote)
j5 <- grep('5',bestVote$thisvote)
j4 <- grep('4', bestVote$thisvote)
j3 <- grep('3',bestVote$thisvote)
j2 <- grep('2',bestVote$thisvote)
j1 <- grep('1',bestVote$thisvote)
k5 <- grep('5',bestVote$withvote)
k4 <- grep('4', bestVote$withvote)
k3 <- grep('3',bestVote$withvote)
k2 <- grep('2',bestVote$withvote)
k1 <- grep('1',bestVote$withvote)
l5 <- grep('5',bestVote$youvote)
l4 <- grep('4', bestVote$youvote)
l3 <- grep('3',bestVote$youvote)
l2 <- grep('2',bestVote$youvote)
l1 <- grep('1',bestVote$youvote)
A5 <- grep('5',bestVote$areavote)
A4 <- grep('4', bestVote$areavote)
A3 <- grep('3',bestVote$areavote)
A2 <- grep('2',bestVote$areavote)
A1 <- grep('1',bestVote$areavote)
B5 <- grep('5',bestVote$bigvote)
B4 <- grep('4', bestVote$bigvote)
B3 <- grep('3',bestVote$bigvote)
B2 <- grep('2',bestVote$bigvote)
B1 <- grep('1',bestVote$bigvote)
C5 <- grep('5',bestVote$busyvote)
C4 <- grep('4', bestVote$busyvote)
C3 <- grep('3',bestVote$busyvote)
C2 <- grep('2',bestVote$busyvote)
C1 <- grep('1',bestVote$busyvote)
D5 <- grep('5',bestVote$definitelyvote)
D4 <- grep('4', bestVote$definitelyvote)
D3 <- grep('3',bestVote$definitelyvote)
D2 <- grep('2',bestVote$definitelyvote)
D1 <- grep('1',bestVote$definitelyvote)
E5 <- grep('5',bestVote$feelvote)
E4 <- grep('4', bestVote$feelvote)
E3 <- grep('3',bestVote$feelvote)
E2 <- grep('2',bestVote$feelvote)
E1 <- grep('1',bestVote$feelvote)
F5 <- grep('5',bestVote$lotvote)
F4 <- grep('4', bestVote$lotvote)
F3 <- grep('3',bestVote$lotvote)
F2 <- grep('2',bestVote$lotvote)
F1 <- grep('1',bestVote$lotvote)
G5 <- grep('5',bestVote$manyvote)
G4 <- grep('4', bestVote$manyvote)
G3 <- grep('3',bestVote$manyvote)
G2 <- grep('2',bestVote$manyvote)
G1 <- grep('1',bestVote$manyvote)
H5 <- grep('5',bestVote$openvote)
H4 <- grep('4', bestVote$openvote)
H3 <- grep('3',bestVote$openvote)
H2 <- grep('2',bestVote$openvote)
H1 <- grep('1',bestVote$openvote)
I5 <- grep('5',bestVote$plusvote)
I4 <- grep('4', bestVote$plusvote)
I3 <- grep('3',bestVote$plusvote)
I2 <- grep('2',bestVote$plusvote)
I1 <- grep('1',bestVote$plusvote)
J5 <- grep('5',bestVote$twovote)
J4 <- grep('4', bestVote$twovote)
J3 <- grep('3',bestVote$twovote)
J2 <- grep('2',bestVote$twovote)
J1 <- grep('1',bestVote$twovote)
K5 <- grep('5',bestVote$worthvote)
K4 <- grep('4', bestVote$worthvote)
K3 <- grep('3',bestVote$worthvote)
K2 <- grep('2',bestVote$worthvote)
K1 <- grep('1',bestVote$worthvote)
L5 <- grep('5',bestVote$yearvote)
L4 <- grep('4', bestVote$yearvote)
L3 <- grep('3',bestVote$yearvote)
L2 <- grep('2',bestVote$yearvote)
L1 <- grep('1',bestVote$yearvote)
bestVote$counts1[l1] <- bestVote$counts1[l1]+ 1
bestVote$counts1[k1] <- bestVote$counts1[k1]+ 1
bestVote$counts1[j1] <- bestVote$counts1[j1]+ 1
bestVote$counts1[i1] <- bestVote$counts1[i1]+ 1
bestVote$counts1[h1] <- bestVote$counts1[h1]+ 1
bestVote$counts1[g1] <- bestVote$counts1[g1]+ 1
bestVote$counts1[f1] <- bestVote$counts1[f1]+ 1
bestVote$counts1[e1] <- bestVote$counts1[e1]+ 1
bestVote$counts1[d1] <- bestVote$counts1[d1]+ 1
bestVote$counts1[c1] <- bestVote$counts1[c1]+ 1
bestVote$counts1[b1] <- bestVote$counts1[b1]+ 1
bestVote$counts1[a1] <- bestVote$counts1[a1]+ 1
bestVote$counts2[l2] <- bestVote$counts2[l2] + 1
bestVote$counts2[k2] <- bestVote$counts2[k2] + 1
bestVote$counts2[j2] <- bestVote$counts2[j2] + 1
bestVote$counts2[i2] <- bestVote$counts2[i2] + 1
bestVote$counts2[h2] <- bestVote$counts2[h2] + 1
bestVote$counts2[g2] <- bestVote$counts2[g2] + 1
bestVote$counts2[f2] <- bestVote$counts2[f2] + 1
bestVote$counts2[e2] <- bestVote$counts2[e2] + 1
bestVote$counts2[d2] <- bestVote$counts2[d2] + 1
bestVote$counts2[c2] <- bestVote$counts2[c2] + 1
bestVote$counts2[b2] <- bestVote$counts2[b2] + 1
bestVote$counts2[a2] <- bestVote$counts2[a2] + 1
bestVote$counts3[l3] <- bestVote$counts3[l3] + 1
bestVote$counts3[k3] <- bestVote$counts3[k3] + 1
bestVote$counts3[j3] <- bestVote$counts3[j3] + 1
bestVote$counts3[i3] <- bestVote$counts3[i3] + 1
bestVote$counts3[h3] <- bestVote$counts3[h3] + 1
bestVote$counts3[g3] <- bestVote$counts3[g3] + 1
bestVote$counts3[f3] <- bestVote$counts3[f3] + 1
bestVote$counts3[e3] <- bestVote$counts3[e3] + 1
bestVote$counts3[d3] <- bestVote$counts3[d3] + 1
bestVote$counts3[c3] <- bestVote$counts3[c3] + 1
bestVote$counts3[b3] <- bestVote$counts3[b3] + 1
bestVote$counts3[a3] <- bestVote$counts3[a3] + 1
bestVote$counts4[l4] <- bestVote$counts4[l4] + 1
bestVote$counts4[k4] <- bestVote$counts4[k4] + 1
bestVote$counts4[j4] <- bestVote$counts4[j4] + 1
bestVote$counts4[i4] <- bestVote$counts4[i4] + 1
bestVote$counts4[h4] <- bestVote$counts4[h4] + 1
bestVote$counts4[g4] <- bestVote$counts4[g4] + 1
bestVote$counts4[f4] <- bestVote$counts4[f4] + 1
bestVote$counts4[e4] <- bestVote$counts4[e4] + 1
bestVote$counts4[d4] <- bestVote$counts4[d4] + 1
bestVote$counts4[c4] <- bestVote$counts4[c4] + 1
bestVote$counts4[b4] <- bestVote$counts4[b4] + 1
bestVote$counts4[a4] <- bestVote$counts4[a4] + 1
bestVote$counts5[l5] <- bestVote$counts5[l5] + 1
bestVote$counts5[k5] <- bestVote$counts5[k5] + 1
bestVote$counts5[j5] <- bestVote$counts5[j5] + 1
bestVote$counts5[i5] <- bestVote$counts5[i5] + 1
bestVote$counts5[h5] <- bestVote$counts5[h5] + 1
bestVote$counts5[g5] <- bestVote$counts5[g5] + 1
bestVote$counts5[f5] <- bestVote$counts5[f5] + 1
bestVote$counts5[e5] <- bestVote$counts5[e5] + 1
bestVote$counts5[d5] <- bestVote$counts5[d5] + 1
bestVote$counts5[c5] <- bestVote$counts5[c5] + 1
bestVote$counts5[b5] <- bestVote$counts5[b5] + 1
bestVote$counts5[a5] <- bestVote$counts5[a5] + 1
bestVote$counts1[L1] <- bestVote$counts1[L1]+ 1
bestVote$counts1[K1] <- bestVote$counts1[K1]+ 1
bestVote$counts1[J1] <- bestVote$counts1[J1]+ 1
bestVote$counts1[I1] <- bestVote$counts1[I1]+ 1
bestVote$counts1[H1] <- bestVote$counts1[H1]+ 1
bestVote$counts1[G1] <- bestVote$counts1[G1]+ 1
bestVote$counts1[F1] <- bestVote$counts1[F1]+ 1
bestVote$counts1[E1] <- bestVote$counts1[E1]+ 1
bestVote$counts1[D1] <- bestVote$counts1[D1]+ 1
bestVote$counts1[C1] <- bestVote$counts1[C1]+ 1
bestVote$counts1[B1] <- bestVote$counts1[B1]+ 1
bestVote$counts1[A1] <- bestVote$counts1[A1]+ 1
bestVote$counts2[L2] <- bestVote$counts2[L2] + 1
bestVote$counts2[K2] <- bestVote$counts2[K2] + 1
bestVote$counts2[J2] <- bestVote$counts2[J2] + 1
bestVote$counts2[I2] <- bestVote$counts2[I2] + 1
bestVote$counts2[H2] <- bestVote$counts2[H2] + 1
bestVote$counts2[G2] <- bestVote$counts2[G2] + 1
bestVote$counts2[F2] <- bestVote$counts2[F2] + 1
bestVote$counts2[E2] <- bestVote$counts2[E2] + 1
bestVote$counts2[D2] <- bestVote$counts2[D2] + 1
bestVote$counts2[C2] <- bestVote$counts2[C2] + 1
bestVote$counts2[B2] <- bestVote$counts2[B2] + 1
bestVote$counts2[A2] <- bestVote$counts2[A2] + 1
bestVote$counts3[L3] <- bestVote$counts3[L3] + 1
bestVote$counts3[K3] <- bestVote$counts3[K3] + 1
bestVote$counts3[J3] <- bestVote$counts3[J3] + 1
bestVote$counts3[I3] <- bestVote$counts3[I3] + 1
bestVote$counts3[H3] <- bestVote$counts3[H3] + 1
bestVote$counts3[G3] <- bestVote$counts3[G3] + 1
bestVote$counts3[F3] <- bestVote$counts3[F3] + 1
bestVote$counts3[E3] <- bestVote$counts3[E3] + 1
bestVote$counts3[D3] <- bestVote$counts3[D3] + 1
bestVote$counts3[C3] <- bestVote$counts3[C3] + 1
bestVote$counts3[B3] <- bestVote$counts3[B3] + 1
bestVote$counts3[A3] <- bestVote$counts3[A3] + 1
bestVote$counts4[L4] <- bestVote$counts4[L4] + 1
bestVote$counts4[K4] <- bestVote$counts4[K4] + 1
bestVote$counts4[J4] <- bestVote$counts4[J4] + 1
bestVote$counts4[I4] <- bestVote$counts4[I4] + 1
bestVote$counts4[H4] <- bestVote$counts4[H4] + 1
bestVote$counts4[G4] <- bestVote$counts4[G4] + 1
bestVote$counts4[F4] <- bestVote$counts4[F4] + 1
bestVote$counts4[E4] <- bestVote$counts4[E4] + 1
bestVote$counts4[D4] <- bestVote$counts4[D4] + 1
bestVote$counts4[C4] <- bestVote$counts4[C4] + 1
bestVote$counts4[B4] <- bestVote$counts4[B4] + 1
bestVote$counts4[A4] <- bestVote$counts4[A4] + 1
bestVote$counts5[L5] <- bestVote$counts5[L5] + 1
bestVote$counts5[K5] <- bestVote$counts5[K5] + 1
bestVote$counts5[J5] <- bestVote$counts5[J5] + 1
bestVote$counts5[I5] <- bestVote$counts5[I5] + 1
bestVote$counts5[H5] <- bestVote$counts5[H5] + 1
bestVote$counts5[G5] <- bestVote$counts5[G5] + 1
bestVote$counts5[F5] <- bestVote$counts5[F5] + 1
bestVote$counts5[E5] <- bestVote$counts5[E5] + 1
bestVote$counts5[D5] <- bestVote$counts5[D5] + 1
bestVote$counts5[C5] <- bestVote$counts5[C5] + 1
bestVote$counts5[B5] <- bestVote$counts5[B5] + 1
bestVote$counts5[A5] <- bestVote$counts5[A5] + 1
!@#$%
bestVote$maxVote <- apply(bestVote[25:29],1,max)
mv <- bestVote$maxVote
ct1 <- bestVote$counts1
ct2 <- bestVote$counts2
ct3 <- bestVote$counts3
ct4 <- bestVote$counts4
ct5 <- bestVote$counts5
bestVote$votedRating <- ifelse(mv==ct1, 1,
ifelse(mv==ct2, 2,
ifelse(mv==ct3, 3,
ifelse(mv==ct4, 4, 5))))
bestVote$Rating <- ifelse(mv==ct1 & (mv==ct2|mv==ct3|mv==ct4|mv==ct5),'tie',
ifelse(mv==ct1,1,
ifelse(mv==ct2 & (mv==ct3|mv==ct4|mv==ct5),'tie',
ifelse(mv==ct2, 2,
ifelse(mv==ct3 &(mv==ct4|mv==ct5),'tie',
ifelse(mv==ct3, 3,
ifelse(mv==ct4 & mv==ct5, 'tie',
ifelse(mv==ct4, 4,5
)))))))
)
bestVote$finalPrediction <- ifelse(bestVote$Rating=='tie',
ifelse(ceiling(mean(c(ct1,ct2,ct3,ct4,ct5)*c(1,2,3,4,5))/5) > 5,
5, ceiling(mean(c(ct1,ct2,ct3,ct4,ct5)*c(1,2,3,4,5))/5)),
bestVote$votedRating )
Now that we have our final prediction with this algorithm. Lets attach these two tables together and rearrange the columns.
bestVote$CorrectlyPredicted <- ifelse(MLr$userRatingValue==bestVote$finalPrediction,1,0)
MLr2 <- cbind(MLr, bestVote)
MLr3 <- MLr2[,c(2:347,1)]
MLr3$CorrectPrediction <- ifelse(MLr3$finalPrediction==MLr3$userRatingValue,
1,0)
MLr3$finalPrediction <- as.factor(paste(MLr3$finalPrediction))
MLr3$userRatingValue <- paste('rating ', MLr3$userRatingValue,sep='')
Accuracy <- sum(MLr3$CorrectPrediction)/length(MLr3$CorrectPrediction)
Accuracy
## [1] 0.1416938
This model is much worse than our previous model that scored 56% on the use of stopwords only. We should investigate why all the votes for the 12 keywords are mostly 1s. The only keyword of ours that scored other than a 3 is the ‘year’ keyword.
We will look at a the diff columns and the vote column from the wide data table of MLr.
yr <- MLr[,c(grep('year_diff',colnames(MLr)),grep('yearMin',colnames(MLr)),
grep('yearvote',colnames(MLr)))]
yr
## year_diff1 year_diff2 year_diff3 year_diff4 year_diff5 yearMin yearvote
## 1 -0.00519 -0.00441 -0.00613 -0.00486 -0.00240 -0.00613 3
## 2 NA NA NA NA NA Inf NA
## 3 NA NA NA NA NA Inf NA
## 4 NA NA NA NA NA Inf NA
## 5 NA NA NA NA NA Inf NA
## 6 NA NA NA NA NA Inf NA
## 7 NA NA NA NA NA Inf NA
## 8 NA NA NA NA NA Inf NA
## 9 NA NA NA NA NA Inf NA
## 10 NA NA NA NA NA Inf NA
## 11 -0.00302 -0.00224 -0.00396 -0.00269 -0.00023 -0.00396 3
## 12 NA NA NA NA NA Inf NA
## 13 NA NA NA NA NA Inf NA
## 14 NA NA NA NA NA Inf NA
## 15 NA NA NA NA NA Inf NA
## 16 -0.02345 -0.02267 -0.02439 -0.02312 -0.02066 -0.02439 3
## 17 NA NA NA NA NA Inf NA
## 18 NA NA NA NA NA Inf NA
## 19 -0.00761 -0.00683 -0.00855 -0.00728 -0.00482 -0.00855 3
## 20 NA NA NA NA NA Inf NA
## 21 NA NA NA NA NA Inf NA
## 22 NA NA NA NA NA Inf NA
## 23 NA NA NA NA NA Inf NA
## 24 NA NA NA NA NA Inf NA
## 25 NA NA NA NA NA Inf NA
## 26 NA NA NA NA NA Inf NA
## 27 NA NA NA NA NA Inf NA
## 28 NA NA NA NA NA Inf NA
## 29 NA NA NA NA NA Inf NA
## 30 NA NA NA NA NA Inf NA
## 31 NA NA NA NA NA Inf NA
## 32 NA NA NA NA NA Inf NA
## 33 NA NA NA NA NA Inf NA
## 34 NA NA NA NA NA Inf NA
## 35 NA NA NA NA NA Inf NA
## 36 NA NA NA NA NA Inf NA
## 37 NA NA NA NA NA Inf NA
## 38 NA NA NA NA NA Inf NA
## 39 -0.01505 -0.01427 -0.01599 -0.01472 -0.01226 -0.01599 3
## 40 NA NA NA NA NA Inf NA
## 41 NA NA NA NA NA Inf NA
## 42 NA NA NA NA NA Inf NA
## 43 NA NA NA NA NA Inf NA
## 44 NA NA NA NA NA Inf NA
## 45 NA NA NA NA NA Inf NA
## 46 NA NA NA NA NA Inf NA
## 47 NA NA NA NA NA Inf NA
## 48 NA NA NA NA NA Inf NA
## 49 NA NA NA NA NA Inf NA
## 50 -0.01274 -0.01196 -0.01368 -0.01241 -0.00995 -0.01368 3
## 51 NA NA NA NA NA Inf NA
## 52 NA NA NA NA NA Inf NA
## 53 NA NA NA NA NA Inf NA
## 54 NA NA NA NA NA Inf NA
## 55 NA NA NA NA NA Inf NA
## 56 NA NA NA NA NA Inf NA
## 57 NA NA NA NA NA Inf NA
## 58 NA NA NA NA NA Inf NA
## 59 NA NA NA NA NA Inf NA
## 60 NA NA NA NA NA Inf NA
## 61 NA NA NA NA NA Inf NA
## 62 NA NA NA NA NA Inf NA
## 63 NA NA NA NA NA Inf NA
## 64 NA NA NA NA NA Inf NA
## 65 NA NA NA NA NA Inf NA
## 66 NA NA NA NA NA Inf NA
## 67 NA NA NA NA NA Inf NA
## 68 NA NA NA NA NA Inf NA
## 69 NA NA NA NA NA Inf NA
## 70 NA NA NA NA NA Inf NA
## 71 NA NA NA NA NA Inf NA
## 72 NA NA NA NA NA Inf NA
## 73 NA NA NA NA NA Inf NA
## 74 NA NA NA NA NA Inf NA
## 75 NA NA NA NA NA Inf NA
## 76 NA NA NA NA NA Inf NA
## 77 NA NA NA NA NA Inf NA
## 78 NA NA NA NA NA Inf NA
## 79 NA NA NA NA NA Inf NA
## 80 NA NA NA NA NA Inf NA
## 81 NA NA NA NA NA Inf NA
## 82 NA NA NA NA NA Inf NA
## 83 NA NA NA NA NA Inf NA
## 84 NA NA NA NA NA Inf NA
## 85 NA NA NA NA NA Inf NA
## 86 NA NA NA NA NA Inf NA
## 87 NA NA NA NA NA Inf NA
## 88 NA NA NA NA NA Inf NA
## 89 NA NA NA NA NA Inf NA
## 90 NA NA NA NA NA Inf NA
## 91 NA NA NA NA NA Inf NA
## 92 NA NA NA NA NA Inf NA
## 93 NA NA NA NA NA Inf NA
## 94 NA NA NA NA NA Inf NA
## 95 NA NA NA NA NA Inf NA
## 96 NA NA NA NA NA Inf NA
## 97 NA NA NA NA NA Inf NA
## 98 NA NA NA NA NA Inf NA
## 99 NA NA NA NA NA Inf NA
## 100 NA NA NA NA NA Inf NA
## 101 NA NA NA NA NA Inf NA
## 102 NA NA NA NA NA Inf NA
## 103 NA NA NA NA NA Inf NA
## 104 NA NA NA NA NA Inf NA
## 105 NA NA NA NA NA Inf NA
## 106 NA NA NA NA NA Inf NA
## 107 NA NA NA NA NA Inf NA
## 108 NA NA NA NA NA Inf NA
## 109 NA NA NA NA NA Inf NA
## 110 NA NA NA NA NA Inf NA
## 111 NA NA NA NA NA Inf NA
## 112 NA NA NA NA NA Inf NA
## 113 NA NA NA NA NA Inf NA
## 114 NA NA NA NA NA Inf NA
## 115 NA NA NA NA NA Inf NA
## 116 NA NA NA NA NA Inf NA
## 117 NA NA NA NA NA Inf NA
## 118 NA NA NA NA NA Inf NA
## 119 NA NA NA NA NA Inf NA
## 120 NA NA NA NA NA Inf NA
## 121 NA NA NA NA NA Inf NA
## 122 NA NA NA NA NA Inf NA
## 123 NA NA NA NA NA Inf NA
## 124 -0.00324 -0.00246 -0.00418 -0.00291 -0.00045 -0.00418 3
## 125 NA NA NA NA NA Inf NA
## 126 NA NA NA NA NA Inf NA
## 127 NA NA NA NA NA Inf NA
## 128 NA NA NA NA NA Inf NA
## 129 NA NA NA NA NA Inf NA
## 130 NA NA NA NA NA Inf NA
## 131 NA NA NA NA NA Inf NA
## 132 NA NA NA NA NA Inf NA
## 133 NA NA NA NA NA Inf NA
## 134 NA NA NA NA NA Inf NA
## 135 NA NA NA NA NA Inf NA
## 136 NA NA NA NA NA Inf NA
## 137 NA NA NA NA NA Inf NA
## 138 NA NA NA NA NA Inf NA
## 139 NA NA NA NA NA Inf NA
## 140 NA NA NA NA NA Inf NA
## 141 NA NA NA NA NA Inf NA
## 142 NA NA NA NA NA Inf NA
## 143 NA NA NA NA NA Inf NA
## 144 NA NA NA NA NA Inf NA
## 145 NA NA NA NA NA Inf NA
## 146 NA NA NA NA NA Inf NA
## 147 -0.00471 -0.00393 -0.00565 -0.00438 -0.00192 -0.00565 3
## 148 NA NA NA NA NA Inf NA
## 149 NA NA NA NA NA Inf NA
## 150 NA NA NA NA NA Inf NA
## 151 NA NA NA NA NA Inf NA
## 152 -0.00880 -0.00802 -0.00974 -0.00847 -0.00601 -0.00974 3
## 153 NA NA NA NA NA Inf NA
## 154 -0.00639 -0.00561 -0.00733 -0.00606 -0.00360 -0.00733 3
## 155 NA NA NA NA NA Inf NA
## 156 NA NA NA NA NA Inf NA
## 157 NA NA NA NA NA Inf NA
## 158 NA NA NA NA NA Inf NA
## 159 NA NA NA NA NA Inf NA
## 160 NA NA NA NA NA Inf NA
## 161 NA NA NA NA NA Inf NA
## 162 NA NA NA NA NA Inf NA
## 163 NA NA NA NA NA Inf NA
## 164 NA NA NA NA NA Inf NA
## 165 NA NA NA NA NA Inf NA
## 166 NA NA NA NA NA Inf NA
## 167 NA NA NA NA NA Inf NA
## 168 NA NA NA NA NA Inf NA
## 169 NA NA NA NA NA Inf NA
## 170 NA NA NA NA NA Inf NA
## 171 NA NA NA NA NA Inf NA
## 172 NA NA NA NA NA Inf NA
## 173 NA NA NA NA NA Inf NA
## 174 NA NA NA NA NA Inf NA
## 175 NA NA NA NA NA Inf NA
## 176 NA NA NA NA NA Inf NA
## 177 NA NA NA NA NA Inf NA
## 178 NA NA NA NA NA Inf NA
## 179 NA NA NA NA NA Inf NA
## 180 NA NA NA NA NA Inf NA
## 181 NA NA NA NA NA Inf NA
## 182 NA NA NA NA NA Inf NA
## 183 NA NA NA NA NA Inf NA
## 184 NA NA NA NA NA Inf NA
## 185 NA NA NA NA NA Inf NA
## 186 NA NA NA NA NA Inf NA
## 187 NA NA NA NA NA Inf NA
## 188 NA NA NA NA NA Inf NA
## 189 NA NA NA NA NA Inf NA
## 190 NA NA NA NA NA Inf NA
## 191 NA NA NA NA NA Inf NA
## 192 NA NA NA NA NA Inf NA
## 193 NA NA NA NA NA Inf NA
## 194 NA NA NA NA NA Inf NA
## 195 NA NA NA NA NA Inf NA
## 196 NA NA NA NA NA Inf NA
## 197 NA NA NA NA NA Inf NA
## 198 NA NA NA NA NA Inf NA
## 199 NA NA NA NA NA Inf NA
## 200 NA NA NA NA NA Inf NA
## 201 NA NA NA NA NA Inf NA
## 202 NA NA NA NA NA Inf NA
## 203 NA NA NA NA NA Inf NA
## 204 -0.00724 -0.00646 -0.00818 -0.00691 -0.00445 -0.00818 3
## 205 NA NA NA NA NA Inf NA
## 206 NA NA NA NA NA Inf NA
## 207 NA NA NA NA NA Inf NA
## 208 NA NA NA NA NA Inf NA
## 209 NA NA NA NA NA Inf NA
## 210 NA NA NA NA NA Inf NA
## 211 NA NA NA NA NA Inf NA
## 212 NA NA NA NA NA Inf NA
## 213 -0.03114 -0.03036 -0.03208 -0.03081 -0.02835 -0.03208 3
## 214 NA NA NA NA NA Inf NA
## 215 NA NA NA NA NA Inf NA
## 216 NA NA NA NA NA Inf NA
## 217 NA NA NA NA NA Inf NA
## 218 NA NA NA NA NA Inf NA
## 219 NA NA NA NA NA Inf NA
## 220 NA NA NA NA NA Inf NA
## 221 NA NA NA NA NA Inf NA
## 222 NA NA NA NA NA Inf NA
## 223 NA NA NA NA NA Inf NA
## 224 NA NA NA NA NA Inf NA
## 225 NA NA NA NA NA Inf NA
## 226 NA NA NA NA NA Inf NA
## 227 NA NA NA NA NA Inf NA
## 228 NA NA NA NA NA Inf NA
## 229 NA NA NA NA NA Inf NA
## 230 NA NA NA NA NA Inf NA
## 231 NA NA NA NA NA Inf NA
## 232 NA NA NA NA NA Inf NA
## 233 NA NA NA NA NA Inf NA
## 234 NA NA NA NA NA Inf NA
## 235 NA NA NA NA NA Inf NA
## 236 -0.00128 -0.00050 -0.00222 -0.00095 0.00151 -0.00222 3
## 237 NA NA NA NA NA Inf NA
## 238 NA NA NA NA NA Inf NA
## 239 NA NA NA NA NA Inf NA
## 240 NA NA NA NA NA Inf NA
## 241 -0.00120 -0.00042 -0.00214 -0.00087 0.00159 -0.00214 3
## 242 NA NA NA NA NA Inf NA
## 243 NA NA NA NA NA Inf NA
## 244 NA NA NA NA NA Inf NA
## 245 NA NA NA NA NA Inf NA
## 246 NA NA NA NA NA Inf NA
## 247 NA NA NA NA NA Inf NA
## 248 -0.00443 -0.00365 -0.00537 -0.00410 -0.00164 -0.00537 3
## 249 NA NA NA NA NA Inf NA
## 250 NA NA NA NA NA Inf NA
## 251 NA NA NA NA NA Inf NA
## 252 NA NA NA NA NA Inf NA
## 253 NA NA NA NA NA Inf NA
## 254 NA NA NA NA NA Inf NA
## 255 NA NA NA NA NA Inf NA
## 256 NA NA NA NA NA Inf NA
## 257 NA NA NA NA NA Inf NA
## 258 NA NA NA NA NA Inf NA
## 259 NA NA NA NA NA Inf NA
## 260 NA NA NA NA NA Inf NA
## 261 NA NA NA NA NA Inf NA
## 262 NA NA NA NA NA Inf NA
## 263 NA NA NA NA NA Inf NA
## 264 NA NA NA NA NA Inf NA
## 265 NA NA NA NA NA Inf NA
## 266 NA NA NA NA NA Inf NA
## 267 NA NA NA NA NA Inf NA
## 268 NA NA NA NA NA Inf NA
## 269 NA NA NA NA NA Inf NA
## 270 NA NA NA NA NA Inf NA
## 271 NA NA NA NA NA Inf NA
## 272 NA NA NA NA NA Inf NA
## 273 NA NA NA NA NA Inf NA
## 274 NA NA NA NA NA Inf NA
## 275 NA NA NA NA NA Inf NA
## 276 NA NA NA NA NA Inf NA
## 277 NA NA NA NA NA Inf NA
## 278 NA NA NA NA NA Inf NA
## 279 -0.00156 -0.00078 -0.00250 -0.00123 0.00123 -0.00250 3
## 280 NA NA NA NA NA Inf NA
## 281 NA NA NA NA NA Inf NA
## 282 NA NA NA NA NA Inf NA
## 283 NA NA NA NA NA Inf NA
## 284 -0.03229 -0.03151 -0.03323 -0.03196 -0.02950 -0.03323 3
## 285 NA NA NA NA NA Inf NA
## 286 NA NA NA NA NA Inf NA
## 287 NA NA NA NA NA Inf NA
## 288 NA NA NA NA NA Inf NA
## 289 NA NA NA NA NA Inf NA
## 290 NA NA NA NA NA Inf NA
## 291 NA NA NA NA NA Inf NA
## 292 -0.00373 -0.00295 -0.00467 -0.00340 -0.00094 -0.00467 3
## 293 NA NA NA NA NA Inf NA
## 294 NA NA NA NA NA Inf NA
## 295 NA NA NA NA NA Inf NA
## 296 NA NA NA NA NA Inf NA
## 297 NA NA NA NA NA Inf NA
## 298 NA NA NA NA NA Inf NA
## 299 NA NA NA NA NA Inf NA
## 300 NA NA NA NA NA Inf NA
## 301 NA NA NA NA NA Inf NA
## 302 NA NA NA NA NA Inf NA
## 303 NA NA NA NA NA Inf NA
## 304 -0.00539 -0.00461 -0.00633 -0.00506 -0.00260 -0.00633 3
## 305 NA NA NA NA NA Inf NA
## 306 NA NA NA NA NA Inf NA
## 307 NA NA NA NA NA Inf NA
## 308 NA NA NA NA NA Inf NA
## 309 NA NA NA NA NA Inf NA
## 310 NA NA NA NA NA Inf NA
## 311 NA NA NA NA NA Inf NA
## 312 NA NA NA NA NA Inf NA
## 313 NA NA NA NA NA Inf NA
## 314 NA NA NA NA NA Inf NA
## 315 NA NA NA NA NA Inf NA
## 316 NA NA NA NA NA Inf NA
## 317 NA NA NA NA NA Inf NA
## 318 NA NA NA NA NA Inf NA
## 319 NA NA NA NA NA Inf NA
## 320 NA NA NA NA NA Inf NA
## 321 NA NA NA NA NA Inf NA
## 322 NA NA NA NA NA Inf NA
## 323 NA NA NA NA NA Inf NA
## 324 NA NA NA NA NA Inf NA
## 325 NA NA NA NA NA Inf NA
## 326 NA NA NA NA NA Inf NA
## 327 NA NA NA NA NA Inf NA
## 328 NA NA NA NA NA Inf NA
## 329 -0.01822 -0.01744 -0.01916 -0.01789 -0.01543 -0.01916 3
## 330 NA NA NA NA NA Inf NA
## 331 NA NA NA NA NA Inf NA
## 332 -0.00356 -0.00278 -0.00450 -0.00323 -0.00077 -0.00450 3
## 333 NA NA NA NA NA Inf NA
## 334 NA NA NA NA NA Inf NA
## 335 NA NA NA NA NA Inf NA
## 336 NA NA NA NA NA Inf NA
## 337 NA NA NA NA NA Inf NA
## 338 NA NA NA NA NA Inf NA
## 339 NA NA NA NA NA Inf NA
## 340 NA NA NA NA NA Inf NA
## 341 NA NA NA NA NA Inf NA
## 342 NA NA NA NA NA Inf NA
## 343 NA NA NA NA NA Inf NA
## 344 NA NA NA NA NA Inf NA
## 345 NA NA NA NA NA Inf NA
## 346 NA NA NA NA NA Inf NA
## 347 NA NA NA NA NA Inf NA
## 348 NA NA NA NA NA Inf NA
## 349 NA NA NA NA NA Inf NA
## 350 NA NA NA NA NA Inf NA
## 351 NA NA NA NA NA Inf NA
## 352 NA NA NA NA NA Inf NA
## 353 NA NA NA NA NA Inf NA
## 354 NA NA NA NA NA Inf NA
## 355 NA NA NA NA NA Inf NA
## 356 NA NA NA NA NA Inf NA
## 357 NA NA NA NA NA Inf NA
## 358 NA NA NA NA NA Inf NA
## 359 NA NA NA NA NA Inf NA
## 360 NA NA NA NA NA Inf NA
## 361 NA NA NA NA NA Inf NA
## 362 NA NA NA NA NA Inf NA
## 363 NA NA NA NA NA Inf NA
## 364 NA NA NA NA NA Inf NA
## 365 NA NA NA NA NA Inf NA
## 366 NA NA NA NA NA Inf NA
## 367 NA NA NA NA NA Inf NA
## 368 NA NA NA NA NA Inf NA
## 369 NA NA NA NA NA Inf NA
## 370 0.00030 0.00108 -0.00064 0.00063 0.00309 -0.00064 3
## 371 NA NA NA NA NA Inf NA
## 372 NA NA NA NA NA Inf NA
## 373 NA NA NA NA NA Inf NA
## 374 NA NA NA NA NA Inf NA
## 375 NA NA NA NA NA Inf NA
## 376 NA NA NA NA NA Inf NA
## 377 NA NA NA NA NA Inf NA
## 378 NA NA NA NA NA Inf NA
## 379 NA NA NA NA NA Inf NA
## 380 NA NA NA NA NA Inf NA
## 381 NA NA NA NA NA Inf NA
## 382 NA NA NA NA NA Inf NA
## 383 NA NA NA NA NA Inf NA
## 384 NA NA NA NA NA Inf NA
## 385 NA NA NA NA NA Inf NA
## 386 NA NA NA NA NA Inf NA
## 387 NA NA NA NA NA Inf NA
## 388 NA NA NA NA NA Inf NA
## 389 -0.02054 -0.01976 -0.02148 -0.02021 -0.01775 -0.02148 3
## 390 NA NA NA NA NA Inf NA
## 391 NA NA NA NA NA Inf NA
## 392 NA NA NA NA NA Inf NA
## 393 NA NA NA NA NA Inf NA
## 394 NA NA NA NA NA Inf NA
## 395 NA NA NA NA NA Inf NA
## 396 NA NA NA NA NA Inf NA
## 397 NA NA NA NA NA Inf NA
## 398 NA NA NA NA NA Inf NA
## 399 NA NA NA NA NA Inf NA
## 400 NA NA NA NA NA Inf NA
## 401 NA NA NA NA NA Inf NA
## 402 NA NA NA NA NA Inf NA
## 403 NA NA NA NA NA Inf NA
## 404 NA NA NA NA NA Inf NA
## 405 NA NA NA NA NA Inf NA
## 406 NA NA NA NA NA Inf NA
## 407 NA NA NA NA NA Inf NA
## 408 NA NA NA NA NA Inf NA
## 409 NA NA NA NA NA Inf NA
## 410 NA NA NA NA NA Inf NA
## 411 NA NA NA NA NA Inf NA
## 412 NA NA NA NA NA Inf NA
## 413 NA NA NA NA NA Inf NA
## 414 NA NA NA NA NA Inf NA
## 415 NA NA NA NA NA Inf NA
## 416 NA NA NA NA NA Inf NA
## 417 NA NA NA NA NA Inf NA
## 418 NA NA NA NA NA Inf NA
## 419 NA NA NA NA NA Inf NA
## 420 NA NA NA NA NA Inf NA
## 421 -0.00568 -0.00490 -0.00662 -0.00535 -0.00289 -0.00662 3
## 422 NA NA NA NA NA Inf NA
## 423 NA NA NA NA NA Inf NA
## 424 NA NA NA NA NA Inf NA
## 425 -0.00324 -0.00246 -0.00418 -0.00291 -0.00045 -0.00418 3
## 426 NA NA NA NA NA Inf NA
## 427 NA NA NA NA NA Inf NA
## 428 NA NA NA NA NA Inf NA
## 429 NA NA NA NA NA Inf NA
## 430 NA NA NA NA NA Inf NA
## 431 NA NA NA NA NA Inf NA
## 432 NA NA NA NA NA Inf NA
## 433 NA NA NA NA NA Inf NA
## 434 NA NA NA NA NA Inf NA
## 435 -0.00203 -0.00125 -0.00297 -0.00170 0.00076 -0.00297 3
## 436 NA NA NA NA NA Inf NA
## 437 NA NA NA NA NA Inf NA
## 438 NA NA NA NA NA Inf NA
## 439 NA NA NA NA NA Inf NA
## 440 NA NA NA NA NA Inf NA
## 441 NA NA NA NA NA Inf NA
## 442 NA NA NA NA NA Inf NA
## 443 NA NA NA NA NA Inf NA
## 444 NA NA NA NA NA Inf NA
## 445 NA NA NA NA NA Inf NA
## 446 NA NA NA NA NA Inf NA
## 447 NA NA NA NA NA Inf NA
## 448 NA NA NA NA NA Inf NA
## 449 NA NA NA NA NA Inf NA
## 450 NA NA NA NA NA Inf NA
## 451 NA NA NA NA NA Inf NA
## 452 NA NA NA NA NA Inf NA
## 453 NA NA NA NA NA Inf NA
## 454 NA NA NA NA NA Inf NA
## 455 NA NA NA NA NA Inf NA
## 456 NA NA NA NA NA Inf NA
## 457 NA NA NA NA NA Inf NA
## 458 -0.00880 -0.00802 -0.00974 -0.00847 -0.00601 -0.00974 3
## 459 NA NA NA NA NA Inf NA
## 460 NA NA NA NA NA Inf NA
## 461 NA NA NA NA NA Inf NA
## 462 NA NA NA NA NA Inf NA
## 463 NA NA NA NA NA Inf NA
## 464 -0.03114 -0.03036 -0.03208 -0.03081 -0.02835 -0.03208 3
## 465 NA NA NA NA NA Inf NA
## 466 NA NA NA NA NA Inf NA
## 467 NA NA NA NA NA Inf NA
## 468 NA NA NA NA NA Inf NA
## 469 NA NA NA NA NA Inf NA
## 470 NA NA NA NA NA Inf NA
## 471 NA NA NA NA NA Inf NA
## 472 NA NA NA NA NA Inf NA
## 473 NA NA NA NA NA Inf NA
## 474 NA NA NA NA NA Inf NA
## 475 NA NA NA NA NA Inf NA
## 476 NA NA NA NA NA Inf NA
## 477 NA NA NA NA NA Inf NA
## 478 NA NA NA NA NA Inf NA
## 479 NA NA NA NA NA Inf NA
## 480 -0.00568 -0.00490 -0.00662 -0.00535 -0.00289 -0.00662 3
## 481 NA NA NA NA NA Inf NA
## 482 -0.00324 -0.00246 -0.00418 -0.00291 -0.00045 -0.00418 3
## 483 NA NA NA NA NA Inf NA
## 484 NA NA NA NA NA Inf NA
## 485 NA NA NA NA NA Inf NA
## 486 NA NA NA NA NA Inf NA
## 487 NA NA NA NA NA Inf NA
## 488 NA NA NA NA NA Inf NA
## 489 NA NA NA NA NA Inf NA
## 490 NA NA NA NA NA Inf NA
## 491 NA NA NA NA NA Inf NA
## 492 NA NA NA NA NA Inf NA
## 493 NA NA NA NA NA Inf NA
## 494 NA NA NA NA NA Inf NA
## 495 NA NA NA NA NA Inf NA
## 496 NA NA NA NA NA Inf NA
## 497 NA NA NA NA NA Inf NA
## 498 NA NA NA NA NA Inf NA
## 499 NA NA NA NA NA Inf NA
## 500 NA NA NA NA NA Inf NA
## 501 -0.02003 -0.01925 -0.02097 -0.01970 -0.01724 -0.02097 3
## 502 NA NA NA NA NA Inf NA
## 503 NA NA NA NA NA Inf NA
## 504 NA NA NA NA NA Inf NA
## 505 NA NA NA NA NA Inf NA
## 506 NA NA NA NA NA Inf NA
## 507 NA NA NA NA NA Inf NA
## 508 NA NA NA NA NA Inf NA
## 509 -0.00597 -0.00519 -0.00691 -0.00564 -0.00318 -0.00691 3
## 510 NA NA NA NA NA Inf NA
## 511 NA NA NA NA NA Inf NA
## 512 NA NA NA NA NA Inf NA
## 513 NA NA NA NA NA Inf NA
## 514 NA NA NA NA NA Inf NA
## 515 NA NA NA NA NA Inf NA
## 516 NA NA NA NA NA Inf NA
## 517 NA NA NA NA NA Inf NA
## 518 NA NA NA NA NA Inf NA
## 519 NA NA NA NA NA Inf NA
## 520 NA NA NA NA NA Inf NA
## 521 NA NA NA NA NA Inf NA
## 522 NA NA NA NA NA Inf NA
## 523 NA NA NA NA NA Inf NA
## 524 NA NA NA NA NA Inf NA
## 525 NA NA NA NA NA Inf NA
## 526 NA NA NA NA NA Inf NA
## 527 NA NA NA NA NA Inf NA
## 528 NA NA NA NA NA Inf NA
## 529 NA NA NA NA NA Inf NA
## 530 NA NA NA NA NA Inf NA
## 531 NA NA NA NA NA Inf NA
## 532 NA NA NA NA NA Inf NA
## 533 NA NA NA NA NA Inf NA
## 534 NA NA NA NA NA Inf NA
## 535 NA NA NA NA NA Inf NA
## 536 NA NA NA NA NA Inf NA
## 537 NA NA NA NA NA Inf NA
## 538 NA NA NA NA NA Inf NA
## 539 NA NA NA NA NA Inf NA
## 540 NA NA NA NA NA Inf NA
## 541 NA NA NA NA NA Inf NA
## 542 NA NA NA NA NA Inf NA
## 543 NA NA NA NA NA Inf NA
## 544 NA NA NA NA NA Inf NA
## 545 NA NA NA NA NA Inf NA
## 546 NA NA NA NA NA Inf NA
## 547 NA NA NA NA NA Inf NA
## 548 NA NA NA NA NA Inf NA
## 549 NA NA NA NA NA Inf NA
## 550 -0.01274 -0.01196 -0.01368 -0.01241 -0.00995 -0.01368 3
## 551 NA NA NA NA NA Inf NA
## 552 NA NA NA NA NA Inf NA
## 553 NA NA NA NA NA Inf NA
## 554 NA NA NA NA NA Inf NA
## 555 NA NA NA NA NA Inf NA
## 556 NA NA NA NA NA Inf NA
## 557 NA NA NA NA NA Inf NA
## 558 NA NA NA NA NA Inf NA
## 559 NA NA NA NA NA Inf NA
## 560 NA NA NA NA NA Inf NA
## 561 NA NA NA NA NA Inf NA
## 562 NA NA NA NA NA Inf NA
## 563 NA NA NA NA NA Inf NA
## 564 -0.01909 -0.01831 -0.02003 -0.01876 -0.01630 -0.02003 3
## 565 NA NA NA NA NA Inf NA
## 566 NA NA NA NA NA Inf NA
## 567 NA NA NA NA NA Inf NA
## 568 NA NA NA NA NA Inf NA
## 569 NA NA NA NA NA Inf NA
## 570 NA NA NA NA NA Inf NA
## 571 NA NA NA NA NA Inf NA
## 572 NA NA NA NA NA Inf NA
## 573 NA NA NA NA NA Inf NA
## 574 NA NA NA NA NA Inf NA
## 575 NA NA NA NA NA Inf NA
## 576 NA NA NA NA NA Inf NA
## 577 NA NA NA NA NA Inf NA
## 578 NA NA NA NA NA Inf NA
## 579 NA NA NA NA NA Inf NA
## 580 NA NA NA NA NA Inf NA
## 581 NA NA NA NA NA Inf NA
## 582 NA NA NA NA NA Inf NA
## 583 NA NA NA NA NA Inf NA
## 584 NA NA NA NA NA Inf NA
## 585 NA NA NA NA NA Inf NA
## 586 NA NA NA NA NA Inf NA
## 587 NA NA NA NA NA Inf NA
## 588 NA NA NA NA NA Inf NA
## 589 NA NA NA NA NA Inf NA
## 590 NA NA NA NA NA Inf NA
## 591 NA NA NA NA NA Inf NA
## 592 -0.00519 -0.00441 -0.00613 -0.00486 -0.00240 -0.00613 3
## 593 NA NA NA NA NA Inf NA
## 594 NA NA NA NA NA Inf NA
## 595 NA NA NA NA NA Inf NA
## 596 NA NA NA NA NA Inf NA
## 597 NA NA NA NA NA Inf NA
## 598 NA NA NA NA NA Inf NA
## 599 NA NA NA NA NA Inf NA
## 600 NA NA NA NA NA Inf NA
## 601 NA NA NA NA NA Inf NA
## 602 NA NA NA NA NA Inf NA
## 603 NA NA NA NA NA Inf NA
## 604 NA NA NA NA NA Inf NA
## 605 NA NA NA NA NA Inf NA
## 606 NA NA NA NA NA Inf NA
## 607 NA NA NA NA NA Inf NA
## 608 NA NA NA NA NA Inf NA
## 609 NA NA NA NA NA Inf NA
## 610 -0.00461 -0.00383 -0.00555 -0.00428 -0.00182 -0.00555 3
## 611 NA NA NA NA NA Inf NA
## 612 NA NA NA NA NA Inf NA
## 613 NA NA NA NA NA Inf NA
## 614 NA NA NA NA NA Inf NA
It looks like the year keyword is all 3 for the minimum and that the vote for the rating whose difference is closer to the minimum is correct in choosing rating 3.
Lets look at a random keyword whose rating was 1.
bsy <- MLr[,c(grep('busy_diff',colnames(MLr)),grep('busyMin',colnames(MLr)),
grep('busyvote',colnames(MLr)))]
bsy
## busy_diff1 busy_diff2 busy_diff3 busy_diff4 busy_diff5 busyMin busyvote
## 1 NA NA NA NA NA Inf NA
## 2 NA NA NA NA NA Inf NA
## 3 NA NA NA NA NA Inf NA
## 4 NA NA NA NA NA Inf NA
## 5 NA NA NA NA NA Inf NA
## 6 NA NA NA NA NA Inf NA
## 7 NA NA NA NA NA Inf NA
## 8 NA NA NA NA NA Inf NA
## 9 NA NA NA NA NA Inf NA
## 10 NA NA NA NA NA Inf NA
## 11 NA NA NA NA NA Inf NA
## 12 NA NA NA NA NA Inf NA
## 13 NA NA NA NA NA Inf NA
## 14 NA NA NA NA NA Inf NA
## 15 NA NA NA NA NA Inf NA
## 16 NA NA NA NA NA Inf NA
## 17 NA NA NA NA NA Inf NA
## 18 NA NA NA NA NA Inf NA
## 19 NA NA NA NA NA Inf NA
## 20 NA NA NA NA NA Inf NA
## 21 NA NA NA NA NA Inf NA
## 22 NA NA NA NA NA Inf NA
## 23 NA NA NA NA NA Inf NA
## 24 NA NA NA NA NA Inf NA
## 25 NA NA NA NA NA Inf NA
## 26 NA NA NA NA NA Inf NA
## 27 NA NA NA NA NA Inf NA
## 28 NA NA NA NA NA Inf NA
## 29 NA NA NA NA NA Inf NA
## 30 NA NA NA NA NA Inf NA
## 31 NA NA NA NA NA Inf NA
## 32 NA NA NA NA NA Inf NA
## 33 NA NA NA NA NA Inf NA
## 34 NA NA NA NA NA Inf NA
## 35 NA NA NA NA NA Inf NA
## 36 NA NA NA NA NA Inf NA
## 37 NA NA NA NA NA Inf NA
## 38 NA NA NA NA NA Inf NA
## 39 NA NA NA NA NA Inf NA
## 40 NA NA NA NA NA Inf NA
## 41 NA NA NA NA NA Inf NA
## 42 NA NA NA NA NA Inf NA
## 43 NA NA NA NA NA Inf NA
## 44 NA NA NA NA NA Inf NA
## 45 NA NA NA NA NA Inf NA
## 46 NA NA NA NA NA Inf NA
## 47 NA NA NA NA NA Inf NA
## 48 NA NA NA NA NA Inf NA
## 49 NA NA NA NA NA Inf NA
## 50 NA NA NA NA NA Inf NA
## 51 NA NA NA NA NA Inf NA
## 52 NA NA NA NA NA Inf NA
## 53 NA NA NA NA NA Inf NA
## 54 NA NA NA NA NA Inf NA
## 55 NA NA NA NA NA Inf NA
## 56 NA NA NA NA NA Inf NA
## 57 NA NA NA NA NA Inf NA
## 58 NA NA NA NA NA Inf NA
## 59 NA NA NA NA NA Inf NA
## 60 NA NA NA NA NA Inf NA
## 61 NA NA NA NA NA Inf NA
## 62 NA NA NA NA NA Inf NA
## 63 NA NA NA NA NA Inf NA
## 64 NA NA NA NA NA Inf NA
## 65 NA NA NA NA NA Inf NA
## 66 NA NA NA NA NA Inf NA
## 67 NA NA NA NA NA Inf NA
## 68 NA NA NA NA NA Inf NA
## 69 NA NA NA NA NA Inf NA
## 70 NA NA NA NA NA Inf NA
## 71 NA NA NA NA NA Inf NA
## 72 NA NA NA NA NA Inf NA
## 73 NA NA NA NA NA Inf NA
## 74 -0.01354 -0.01251 -0.01182 -0.01258 -0.01278 -0.01354 1
## 75 NA NA NA NA NA Inf NA
## 76 NA NA NA NA NA Inf NA
## 77 NA NA NA NA NA Inf NA
## 78 -0.03688 -0.03585 -0.03516 -0.03592 -0.03612 -0.03688 1
## 79 NA NA NA NA NA Inf NA
## 80 NA NA NA NA NA Inf NA
## 81 NA NA NA NA NA Inf NA
## 82 NA NA NA NA NA Inf NA
## 83 NA NA NA NA NA Inf NA
## 84 -0.01037 -0.00934 -0.00865 -0.00941 -0.00961 -0.01037 1
## 85 NA NA NA NA NA Inf NA
## 86 NA NA NA NA NA Inf NA
## 87 NA NA NA NA NA Inf NA
## 88 NA NA NA NA NA Inf NA
## 89 NA NA NA NA NA Inf NA
## 90 NA NA NA NA NA Inf NA
## 91 NA NA NA NA NA Inf NA
## 92 NA NA NA NA NA Inf NA
## 93 NA NA NA NA NA Inf NA
## 94 NA NA NA NA NA Inf NA
## 95 NA NA NA NA NA Inf NA
## 96 NA NA NA NA NA Inf NA
## 97 NA NA NA NA NA Inf NA
## 98 NA NA NA NA NA Inf NA
## 99 NA NA NA NA NA Inf NA
## 100 NA NA NA NA NA Inf NA
## 101 NA NA NA NA NA Inf NA
## 102 NA NA NA NA NA Inf NA
## 103 -0.01679 -0.01576 -0.01507 -0.01583 -0.01603 -0.01679 1
## 104 NA NA NA NA NA Inf NA
## 105 NA NA NA NA NA Inf NA
## 106 NA NA NA NA NA Inf NA
## 107 NA NA NA NA NA Inf NA
## 108 NA NA NA NA NA Inf NA
## 109 NA NA NA NA NA Inf NA
## 110 NA NA NA NA NA Inf NA
## 111 NA NA NA NA NA Inf NA
## 112 NA NA NA NA NA Inf NA
## 113 NA NA NA NA NA Inf NA
## 114 NA NA NA NA NA Inf NA
## 115 NA NA NA NA NA Inf NA
## 116 NA NA NA NA NA Inf NA
## 117 NA NA NA NA NA Inf NA
## 118 NA NA NA NA NA Inf NA
## 119 NA NA NA NA NA Inf NA
## 120 NA NA NA NA NA Inf NA
## 121 NA NA NA NA NA Inf NA
## 122 NA NA NA NA NA Inf NA
## 123 NA NA NA NA NA Inf NA
## 124 NA NA NA NA NA Inf NA
## 125 -0.00790 -0.00687 -0.00618 -0.00694 -0.00714 -0.00790 1
## 126 NA NA NA NA NA Inf NA
## 127 NA NA NA NA NA Inf NA
## 128 NA NA NA NA NA Inf NA
## 129 NA NA NA NA NA Inf NA
## 130 NA NA NA NA NA Inf NA
## 131 NA NA NA NA NA Inf NA
## 132 NA NA NA NA NA Inf NA
## 133 NA NA NA NA NA Inf NA
## 134 NA NA NA NA NA Inf NA
## 135 NA NA NA NA NA Inf NA
## 136 NA NA NA NA NA Inf NA
## 137 NA NA NA NA NA Inf NA
## 138 NA NA NA NA NA Inf NA
## 139 NA NA NA NA NA Inf NA
## 140 NA NA NA NA NA Inf NA
## 141 NA NA NA NA NA Inf NA
## 142 NA NA NA NA NA Inf NA
## 143 NA NA NA NA NA Inf NA
## 144 NA NA NA NA NA Inf NA
## 145 NA NA NA NA NA Inf NA
## 146 NA NA NA NA NA Inf NA
## 147 NA NA NA NA NA Inf NA
## 148 NA NA NA NA NA Inf NA
## 149 NA NA NA NA NA Inf NA
## 150 NA NA NA NA NA Inf NA
## 151 NA NA NA NA NA Inf NA
## 152 NA NA NA NA NA Inf NA
## 153 NA NA NA NA NA Inf NA
## 154 NA NA NA NA NA Inf NA
## 155 -0.01477 -0.01374 -0.01305 -0.01381 -0.01401 -0.01477 1
## 156 NA NA NA NA NA Inf NA
## 157 NA NA NA NA NA Inf NA
## 158 NA NA NA NA NA Inf NA
## 159 NA NA NA NA NA Inf NA
## 160 NA NA NA NA NA Inf NA
## 161 NA NA NA NA NA Inf NA
## 162 NA NA NA NA NA Inf NA
## 163 NA NA NA NA NA Inf NA
## 164 NA NA NA NA NA Inf NA
## 165 NA NA NA NA NA Inf NA
## 166 NA NA NA NA NA Inf NA
## 167 NA NA NA NA NA Inf NA
## 168 NA NA NA NA NA Inf NA
## 169 NA NA NA NA NA Inf NA
## 170 NA NA NA NA NA Inf NA
## 171 NA NA NA NA NA Inf NA
## 172 NA NA NA NA NA Inf NA
## 173 NA NA NA NA NA Inf NA
## 174 NA NA NA NA NA Inf NA
## 175 NA NA NA NA NA Inf NA
## 176 NA NA NA NA NA Inf NA
## 177 NA NA NA NA NA Inf NA
## 178 NA NA NA NA NA Inf NA
## 179 NA NA NA NA NA Inf NA
## 180 NA NA NA NA NA Inf NA
## 181 NA NA NA NA NA Inf NA
## 182 NA NA NA NA NA Inf NA
## 183 NA NA NA NA NA Inf NA
## 184 NA NA NA NA NA Inf NA
## 185 NA NA NA NA NA Inf NA
## 186 NA NA NA NA NA Inf NA
## 187 NA NA NA NA NA Inf NA
## 188 NA NA NA NA NA Inf NA
## 189 NA NA NA NA NA Inf NA
## 190 NA NA NA NA NA Inf NA
## 191 NA NA NA NA NA Inf NA
## 192 NA NA NA NA NA Inf NA
## 193 NA NA NA NA NA Inf NA
## 194 NA NA NA NA NA Inf NA
## 195 NA NA NA NA NA Inf NA
## 196 NA NA NA NA NA Inf NA
## 197 NA NA NA NA NA Inf NA
## 198 NA NA NA NA NA Inf NA
## 199 NA NA NA NA NA Inf NA
## 200 NA NA NA NA NA Inf NA
## 201 NA NA NA NA NA Inf NA
## 202 NA NA NA NA NA Inf NA
## 203 NA NA NA NA NA Inf NA
## 204 NA NA NA NA NA Inf NA
## 205 NA NA NA NA NA Inf NA
## 206 NA NA NA NA NA Inf NA
## 207 NA NA NA NA NA Inf NA
## 208 NA NA NA NA NA Inf NA
## 209 NA NA NA NA NA Inf NA
## 210 NA NA NA NA NA Inf NA
## 211 NA NA NA NA NA Inf NA
## 212 NA NA NA NA NA Inf NA
## 213 NA NA NA NA NA Inf NA
## 214 NA NA NA NA NA Inf NA
## 215 NA NA NA NA NA Inf NA
## 216 NA NA NA NA NA Inf NA
## 217 NA NA NA NA NA Inf NA
## 218 NA NA NA NA NA Inf NA
## 219 NA NA NA NA NA Inf NA
## 220 NA NA NA NA NA Inf NA
## 221 NA NA NA NA NA Inf NA
## 222 -0.00348 -0.00245 -0.00176 -0.00252 -0.00272 -0.00348 1
## 223 NA NA NA NA NA Inf NA
## 224 NA NA NA NA NA Inf NA
## 225 NA NA NA NA NA Inf NA
## 226 NA NA NA NA NA Inf NA
## 227 NA NA NA NA NA Inf NA
## 228 NA NA NA NA NA Inf NA
## 229 NA NA NA NA NA Inf NA
## 230 NA NA NA NA NA Inf NA
## 231 -0.00340 -0.00237 -0.00168 -0.00244 -0.00264 -0.00340 1
## 232 NA NA NA NA NA Inf NA
## 233 NA NA NA NA NA Inf NA
## 234 NA NA NA NA NA Inf NA
## 235 NA NA NA NA NA Inf NA
## 236 NA NA NA NA NA Inf NA
## 237 NA NA NA NA NA Inf NA
## 238 NA NA NA NA NA Inf NA
## 239 NA NA NA NA NA Inf NA
## 240 -0.00533 -0.00430 -0.00361 -0.00437 -0.00457 -0.00533 1
## 241 NA NA NA NA NA Inf NA
## 242 NA NA NA NA NA Inf NA
## 243 NA NA NA NA NA Inf NA
## 244 NA NA NA NA NA Inf NA
## 245 NA NA NA NA NA Inf NA
## 246 NA NA NA NA NA Inf NA
## 247 NA NA NA NA NA Inf NA
## 248 NA NA NA NA NA Inf NA
## 249 NA NA NA NA NA Inf NA
## 250 NA NA NA NA NA Inf NA
## 251 NA NA NA NA NA Inf NA
## 252 NA NA NA NA NA Inf NA
## 253 NA NA NA NA NA Inf NA
## 254 NA NA NA NA NA Inf NA
## 255 NA NA NA NA NA Inf NA
## 256 NA NA NA NA NA Inf NA
## 257 NA NA NA NA NA Inf NA
## 258 NA NA NA NA NA Inf NA
## 259 NA NA NA NA NA Inf NA
## 260 NA NA NA NA NA Inf NA
## 261 -0.00625 -0.00522 -0.00453 -0.00529 -0.00549 -0.00625 1
## 262 NA NA NA NA NA Inf NA
## 263 NA NA NA NA NA Inf NA
## 264 NA NA NA NA NA Inf NA
## 265 NA NA NA NA NA Inf NA
## 266 NA NA NA NA NA Inf NA
## 267 NA NA NA NA NA Inf NA
## 268 NA NA NA NA NA Inf NA
## 269 NA NA NA NA NA Inf NA
## 270 NA NA NA NA NA Inf NA
## 271 NA NA NA NA NA Inf NA
## 272 NA NA NA NA NA Inf NA
## 273 NA NA NA NA NA Inf NA
## 274 NA NA NA NA NA Inf NA
## 275 NA NA NA NA NA Inf NA
## 276 NA NA NA NA NA Inf NA
## 277 NA NA NA NA NA Inf NA
## 278 NA NA NA NA NA Inf NA
## 279 NA NA NA NA NA Inf NA
## 280 NA NA NA NA NA Inf NA
## 281 NA NA NA NA NA Inf NA
## 282 NA NA NA NA NA Inf NA
## 283 NA NA NA NA NA Inf NA
## 284 NA NA NA NA NA Inf NA
## 285 NA NA NA NA NA Inf NA
## 286 NA NA NA NA NA Inf NA
## 287 NA NA NA NA NA Inf NA
## 288 NA NA NA NA NA Inf NA
## 289 NA NA NA NA NA Inf NA
## 290 NA NA NA NA NA Inf NA
## 291 NA NA NA NA NA Inf NA
## 292 NA NA NA NA NA Inf NA
## 293 NA NA NA NA NA Inf NA
## 294 NA NA NA NA NA Inf NA
## 295 -0.00955 -0.00852 -0.00783 -0.00859 -0.00879 -0.00955 1
## 296 NA NA NA NA NA Inf NA
## 297 NA NA NA NA NA Inf NA
## 298 -0.00415 -0.00312 -0.00243 -0.00319 -0.00339 -0.00415 1
## 299 NA NA NA NA NA Inf NA
## 300 NA NA NA NA NA Inf NA
## 301 NA NA NA NA NA Inf NA
## 302 NA NA NA NA NA Inf NA
## 303 NA NA NA NA NA Inf NA
## 304 NA NA NA NA NA Inf NA
## 305 NA NA NA NA NA Inf NA
## 306 NA NA NA NA NA Inf NA
## 307 NA NA NA NA NA Inf NA
## 308 NA NA NA NA NA Inf NA
## 309 NA NA NA NA NA Inf NA
## 310 NA NA NA NA NA Inf NA
## 311 NA NA NA NA NA Inf NA
## 312 NA NA NA NA NA Inf NA
## 313 NA NA NA NA NA Inf NA
## 314 NA NA NA NA NA Inf NA
## 315 NA NA NA NA NA Inf NA
## 316 NA NA NA NA NA Inf NA
## 317 NA NA NA NA NA Inf NA
## 318 NA NA NA NA NA Inf NA
## 319 NA NA NA NA NA Inf NA
## 320 -0.00379 -0.00276 -0.00207 -0.00283 -0.00303 -0.00379 1
## 321 NA NA NA NA NA Inf NA
## 322 NA NA NA NA NA Inf NA
## 323 NA NA NA NA NA Inf NA
## 324 NA NA NA NA NA Inf NA
## 325 NA NA NA NA NA Inf NA
## 326 NA NA NA NA NA Inf NA
## 327 -0.00387 -0.00284 -0.00215 -0.00291 -0.00311 -0.00387 1
## 328 -0.00605 -0.00502 -0.00433 -0.00509 -0.00529 -0.00605 1
## 329 NA NA NA NA NA Inf NA
## 330 NA NA NA NA NA Inf NA
## 331 NA NA NA NA NA Inf NA
## 332 NA NA NA NA NA Inf NA
## 333 NA NA NA NA NA Inf NA
## 334 NA NA NA NA NA Inf NA
## 335 NA NA NA NA NA Inf NA
## 336 NA NA NA NA NA Inf NA
## 337 NA NA NA NA NA Inf NA
## 338 NA NA NA NA NA Inf NA
## 339 NA NA NA NA NA Inf NA
## 340 NA NA NA NA NA Inf NA
## 341 NA NA NA NA NA Inf NA
## 342 NA NA NA NA NA Inf NA
## 343 NA NA NA NA NA Inf NA
## 344 NA NA NA NA NA Inf NA
## 345 NA NA NA NA NA Inf NA
## 346 NA NA NA NA NA Inf NA
## 347 NA NA NA NA NA Inf NA
## 348 -0.00397 -0.00294 -0.00225 -0.00301 -0.00321 -0.00397 1
## 349 -0.01571 -0.01468 -0.01399 -0.01475 -0.01495 -0.01571 1
## 350 NA NA NA NA NA Inf NA
## 351 NA NA NA NA NA Inf NA
## 352 NA NA NA NA NA Inf NA
## 353 NA NA NA NA NA Inf NA
## 354 NA NA NA NA NA Inf NA
## 355 NA NA NA NA NA Inf NA
## 356 NA NA NA NA NA Inf NA
## 357 NA NA NA NA NA Inf NA
## 358 NA NA NA NA NA Inf NA
## 359 NA NA NA NA NA Inf NA
## 360 NA NA NA NA NA Inf NA
## 361 NA NA NA NA NA Inf NA
## 362 NA NA NA NA NA Inf NA
## 363 NA NA NA NA NA Inf NA
## 364 NA NA NA NA NA Inf NA
## 365 NA NA NA NA NA Inf NA
## 366 NA NA NA NA NA Inf NA
## 367 -0.00955 -0.00852 -0.00783 -0.00859 -0.00879 -0.00955 1
## 368 NA NA NA NA NA Inf NA
## 369 NA NA NA NA NA Inf NA
## 370 NA NA NA NA NA Inf NA
## 371 -0.00230 -0.00127 -0.00058 -0.00134 -0.00154 -0.00230 1
## 372 NA NA NA NA NA Inf NA
## 373 NA NA NA NA NA Inf NA
## 374 NA NA NA NA NA Inf NA
## 375 NA NA NA NA NA Inf NA
## 376 NA NA NA NA NA Inf NA
## 377 NA NA NA NA NA Inf NA
## 378 -0.00523 -0.00420 -0.00351 -0.00427 -0.00447 -0.00523 1
## 379 NA NA NA NA NA Inf NA
## 380 NA NA NA NA NA Inf NA
## 381 NA NA NA NA NA Inf NA
## 382 -0.00893 -0.00790 -0.00721 -0.00797 -0.00817 -0.00893 1
## 383 NA NA NA NA NA Inf NA
## 384 NA NA NA NA NA Inf NA
## 385 NA NA NA NA NA Inf NA
## 386 NA NA NA NA NA Inf NA
## 387 NA NA NA NA NA Inf NA
## 388 NA NA NA NA NA Inf NA
## 389 NA NA NA NA NA Inf NA
## 390 NA NA NA NA NA Inf NA
## 391 NA NA NA NA NA Inf NA
## 392 NA NA NA NA NA Inf NA
## 393 NA NA NA NA NA Inf NA
## 394 NA NA NA NA NA Inf NA
## 395 NA NA NA NA NA Inf NA
## 396 NA NA NA NA NA Inf NA
## 397 -0.01242 -0.01139 -0.01070 -0.01146 -0.01166 -0.01242 1
## 398 NA NA NA NA NA Inf NA
## 399 NA NA NA NA NA Inf NA
## 400 NA NA NA NA NA Inf NA
## 401 -0.00290 -0.00187 -0.00118 -0.00194 -0.00214 -0.00290 1
## 402 NA NA NA NA NA Inf NA
## 403 NA NA NA NA NA Inf NA
## 404 NA NA NA NA NA Inf NA
## 405 NA NA NA NA NA Inf NA
## 406 NA NA NA NA NA Inf NA
## 407 NA NA NA NA NA Inf NA
## 408 NA NA NA NA NA Inf NA
## 409 NA NA NA NA NA Inf NA
## 410 NA NA NA NA NA Inf NA
## 411 NA NA NA NA NA Inf NA
## 412 NA NA NA NA NA Inf NA
## 413 NA NA NA NA NA Inf NA
## 414 NA NA NA NA NA Inf NA
## 415 NA NA NA NA NA Inf NA
## 416 NA NA NA NA NA Inf NA
## 417 NA NA NA NA NA Inf NA
## 418 NA NA NA NA NA Inf NA
## 419 NA NA NA NA NA Inf NA
## 420 NA NA NA NA NA Inf NA
## 421 NA NA NA NA NA Inf NA
## 422 NA NA NA NA NA Inf NA
## 423 NA NA NA NA NA Inf NA
## 424 NA NA NA NA NA Inf NA
## 425 NA NA NA NA NA Inf NA
## 426 NA NA NA NA NA Inf NA
## 427 NA NA NA NA NA Inf NA
## 428 NA NA NA NA NA Inf NA
## 429 NA NA NA NA NA Inf NA
## 430 NA NA NA NA NA Inf NA
## 431 NA NA NA NA NA Inf NA
## 432 NA NA NA NA NA Inf NA
## 433 NA NA NA NA NA Inf NA
## 434 NA NA NA NA NA Inf NA
## 435 NA NA NA NA NA Inf NA
## 436 NA NA NA NA NA Inf NA
## 437 NA NA NA NA NA Inf NA
## 438 NA NA NA NA NA Inf NA
## 439 NA NA NA NA NA Inf NA
## 440 NA NA NA NA NA Inf NA
## 441 NA NA NA NA NA Inf NA
## 442 NA NA NA NA NA Inf NA
## 443 NA NA NA NA NA Inf NA
## 444 NA NA NA NA NA Inf NA
## 445 NA NA NA NA NA Inf NA
## 446 NA NA NA NA NA Inf NA
## 447 NA NA NA NA NA Inf NA
## 448 NA NA NA NA NA Inf NA
## 449 NA NA NA NA NA Inf NA
## 450 NA NA NA NA NA Inf NA
## 451 NA NA NA NA NA Inf NA
## 452 NA NA NA NA NA Inf NA
## 453 NA NA NA NA NA Inf NA
## 454 NA NA NA NA NA Inf NA
## 455 NA NA NA NA NA Inf NA
## 456 NA NA NA NA NA Inf NA
## 457 NA NA NA NA NA Inf NA
## 458 NA NA NA NA NA Inf NA
## 459 NA NA NA NA NA Inf NA
## 460 NA NA NA NA NA Inf NA
## 461 NA NA NA NA NA Inf NA
## 462 NA NA NA NA NA Inf NA
## 463 NA NA NA NA NA Inf NA
## 464 NA NA NA NA NA Inf NA
## 465 NA NA NA NA NA Inf NA
## 466 NA NA NA NA NA Inf NA
## 467 NA NA NA NA NA Inf NA
## 468 NA NA NA NA NA Inf NA
## 469 NA NA NA NA NA Inf NA
## 470 NA NA NA NA NA Inf NA
## 471 NA NA NA NA NA Inf NA
## 472 NA NA NA NA NA Inf NA
## 473 NA NA NA NA NA Inf NA
## 474 NA NA NA NA NA Inf NA
## 475 NA NA NA NA NA Inf NA
## 476 NA NA NA NA NA Inf NA
## 477 NA NA NA NA NA Inf NA
## 478 NA NA NA NA NA Inf NA
## 479 NA NA NA NA NA Inf NA
## 480 NA NA NA NA NA Inf NA
## 481 NA NA NA NA NA Inf NA
## 482 NA NA NA NA NA Inf NA
## 483 NA NA NA NA NA Inf NA
## 484 NA NA NA NA NA Inf NA
## 485 NA NA NA NA NA Inf NA
## 486 NA NA NA NA NA Inf NA
## 487 NA NA NA NA NA Inf NA
## 488 NA NA NA NA NA Inf NA
## 489 NA NA NA NA NA Inf NA
## 490 NA NA NA NA NA Inf NA
## 491 NA NA NA NA NA Inf NA
## 492 NA NA NA NA NA Inf NA
## 493 NA NA NA NA NA Inf NA
## 494 NA NA NA NA NA Inf NA
## 495 NA NA NA NA NA Inf NA
## 496 NA NA NA NA NA Inf NA
## 497 NA NA NA NA NA Inf NA
## 498 NA NA NA NA NA Inf NA
## 499 NA NA NA NA NA Inf NA
## 500 NA NA NA NA NA Inf NA
## 501 NA NA NA NA NA Inf NA
## 502 NA NA NA NA NA Inf NA
## 503 NA NA NA NA NA Inf NA
## 504 NA NA NA NA NA Inf NA
## 505 NA NA NA NA NA Inf NA
## 506 NA NA NA NA NA Inf NA
## 507 NA NA NA NA NA Inf NA
## 508 NA NA NA NA NA Inf NA
## 509 NA NA NA NA NA Inf NA
## 510 NA NA NA NA NA Inf NA
## 511 NA NA NA NA NA Inf NA
## 512 NA NA NA NA NA Inf NA
## 513 NA NA NA NA NA Inf NA
## 514 NA NA NA NA NA Inf NA
## 515 NA NA NA NA NA Inf NA
## 516 NA NA NA NA NA Inf NA
## 517 NA NA NA NA NA Inf NA
## 518 NA NA NA NA NA Inf NA
## 519 NA NA NA NA NA Inf NA
## 520 NA NA NA NA NA Inf NA
## 521 NA NA NA NA NA Inf NA
## 522 NA NA NA NA NA Inf NA
## 523 NA NA NA NA NA Inf NA
## 524 NA NA NA NA NA Inf NA
## 525 NA NA NA NA NA Inf NA
## 526 NA NA NA NA NA Inf NA
## 527 NA NA NA NA NA Inf NA
## 528 NA NA NA NA NA Inf NA
## 529 NA NA NA NA NA Inf NA
## 530 NA NA NA NA NA Inf NA
## 531 NA NA NA NA NA Inf NA
## 532 NA NA NA NA NA Inf NA
## 533 NA NA NA NA NA Inf NA
## 534 NA NA NA NA NA Inf NA
## 535 NA NA NA NA NA Inf NA
## 536 NA NA NA NA NA Inf NA
## 537 -0.00730 -0.00627 -0.00558 -0.00634 -0.00654 -0.00730 1
## 538 NA NA NA NA NA Inf NA
## 539 NA NA NA NA NA Inf NA
## 540 NA NA NA NA NA Inf NA
## 541 NA NA NA NA NA Inf NA
## 542 NA NA NA NA NA Inf NA
## 543 NA NA NA NA NA Inf NA
## 544 NA NA NA NA NA Inf NA
## 545 NA NA NA NA NA Inf NA
## 546 NA NA NA NA NA Inf NA
## 547 NA NA NA NA NA Inf NA
## 548 NA NA NA NA NA Inf NA
## 549 -0.00272 -0.00169 -0.00100 -0.00176 -0.00196 -0.00272 1
## 550 NA NA NA NA NA Inf NA
## 551 NA NA NA NA NA Inf NA
## 552 NA NA NA NA NA Inf NA
## 553 NA NA NA NA NA Inf NA
## 554 NA NA NA NA NA Inf NA
## 555 NA NA NA NA NA Inf NA
## 556 NA NA NA NA NA Inf NA
## 557 NA NA NA NA NA Inf NA
## 558 NA NA NA NA NA Inf NA
## 559 -0.01623 -0.01520 -0.01451 -0.01527 -0.01547 -0.01623 1
## 560 NA NA NA NA NA Inf NA
## 561 NA NA NA NA NA Inf NA
## 562 NA NA NA NA NA Inf NA
## 563 NA NA NA NA NA Inf NA
## 564 NA NA NA NA NA Inf NA
## 565 NA NA NA NA NA Inf NA
## 566 NA NA NA NA NA Inf NA
## 567 NA NA NA NA NA Inf NA
## 568 NA NA NA NA NA Inf NA
## 569 NA NA NA NA NA Inf NA
## 570 NA NA NA NA NA Inf NA
## 571 NA NA NA NA NA Inf NA
## 572 NA NA NA NA NA Inf NA
## 573 NA NA NA NA NA Inf NA
## 574 NA NA NA NA NA Inf NA
## 575 NA NA NA NA NA Inf NA
## 576 NA NA NA NA NA Inf NA
## 577 NA NA NA NA NA Inf NA
## 578 NA NA NA NA NA Inf NA
## 579 NA NA NA NA NA Inf NA
## 580 NA NA NA NA NA Inf NA
## 581 NA NA NA NA NA Inf NA
## 582 NA NA NA NA NA Inf NA
## 583 NA NA NA NA NA Inf NA
## 584 NA NA NA NA NA Inf NA
## 585 NA NA NA NA NA Inf NA
## 586 NA NA NA NA NA Inf NA
## 587 NA NA NA NA NA Inf NA
## 588 NA NA NA NA NA Inf NA
## 589 NA NA NA NA NA Inf NA
## 590 NA NA NA NA NA Inf NA
## 591 NA NA NA NA NA Inf NA
## 592 NA NA NA NA NA Inf NA
## 593 NA NA NA NA NA Inf NA
## 594 NA NA NA NA NA Inf NA
## 595 NA NA NA NA NA Inf NA
## 596 NA NA NA NA NA Inf NA
## 597 NA NA NA NA NA Inf NA
## 598 NA NA NA NA NA Inf NA
## 599 NA NA NA NA NA Inf NA
## 600 NA NA NA NA NA Inf NA
## 601 NA NA NA NA NA Inf NA
## 602 NA NA NA NA NA Inf NA
## 603 NA NA NA NA NA Inf NA
## 604 NA NA NA NA NA Inf NA
## 605 NA NA NA NA NA Inf NA
## 606 NA NA NA NA NA Inf NA
## 607 NA NA NA NA NA Inf NA
## 608 NA NA NA NA NA Inf NA
## 609 NA NA NA NA NA Inf NA
## 610 NA NA NA NA NA Inf NA
## 611 NA NA NA NA NA Inf NA
## 612 -0.01004 -0.00901 -0.00832 -0.00908 -0.00928 -0.01004 1
## 613 NA NA NA NA NA Inf NA
## 614 NA NA NA NA NA Inf NA
The values that could be found for busy also are correct in selecting rating 1 for the minimum value of the difference in document term/total terms to the ratio of ratings term/total terms. We can use the summary and see that there are only certain lone values other than NAs for our 24 keywords that include the 12 stopwords.
summary(bestVote)
## areavote bigvote busyvote definitelyvote feelvote lotvote manyvote openvote
## 1 : 47 1 : 20 1 : 27 1 : 53 1 : 74 1 : 43 1 : 51 1 : 31
## NA:567 NA:594 NA:587 NA:561 NA:540 NA:571 NA:563 NA:583
##
##
##
##
## plusvote twovote worthvote yearvote andvote butvote forvote goodvote
## 1 : 9 1 : 41 1 : 49 3 : 36 2 :538 5 :252 2 :396 1 :136
## NA:605 NA:573 NA:565 NA:578 NA: 76 NA:362 NA:218 NA:478
##
##
##
##
## havevote notvote thatvote thevote theyvote thisvote withvote youvote
## 1 :274 5 :185 5 :260 5 :533 3 :260 4 :278 1 :278 1 :273
## NA:340 NA:429 NA:354 NA: 81 NA:354 NA:336 NA:336 NA:341
##
##
##
##
## counts1 counts2 counts3 counts4
## Min. :0.00 Min. :0.000 Min. :0.0000 Min. :0.0000
## 1st Qu.:1.00 1st Qu.:1.000 1st Qu.:0.0000 1st Qu.:0.0000
## Median :2.00 Median :2.000 Median :0.0000 Median :0.0000
## Mean :2.29 Mean :1.521 Mean :0.4821 Mean :0.4528
## 3rd Qu.:3.00 3rd Qu.:2.000 3rd Qu.:1.0000 3rd Qu.:1.0000
## Max. :9.00 Max. :2.000 Max. :2.0000 Max. :1.0000
## counts5 maxVote votedRating Rating
## Min. :0.000 Min. :0.000 Min. :1.000 Length:614
## 1st Qu.:1.000 1st Qu.:2.000 1st Qu.:1.000 Class :character
## Median :2.000 Median :2.000 Median :1.000 Mode :character
## Mean :2.003 Mean :2.829 Mean :2.034
## 3rd Qu.:3.000 3rd Qu.:4.000 3rd Qu.:2.000
## Max. :4.000 Max. :9.000 Max. :5.000
## finalPrediction CorrectlyPredicted
## Min. :1.000 Min. :0.0000
## 1st Qu.:1.000 1st Qu.:0.0000
## Median :1.000 Median :0.0000
## Mean :1.959 Mean :0.1417
## 3rd Qu.:2.000 3rd Qu.:0.0000
## Max. :5.000 Max. :1.0000
This could be a major difference that penalized more for making the missing values for each word not being in a review an NA instead of a zero as done before. We will have to test that by backtracking to that part of the process and re-running everything as before, or gsub in a zero for every NA in the ML_rating_data and w2w tables, but calling another name like adding 3 to the name.
ML_r_Zeros <- ML_rating_data
w2w_Zeros <- w2w
colnames(ML_r_Zeros)
## [1] "userRatingValue" "area_ratios" "big_ratios"
## [4] "busy_ratios" "definitely_ratios" "feel_ratios"
## [7] "lot_ratios" "many_ratios" "open_ratios"
## [10] "plus_ratios" "two_ratios" "worth_ratios"
## [13] "year_ratios" "the_ratios" "and_ratios"
## [16] "for_ratios" "have_ratios" "that_ratios"
## [19] "they_ratios" "this_ratios" "you_ratios"
## [22] "not_ratios" "but_ratios" "good_ratios"
## [25] "with_ratios"
str(ML_r_Zeros)
## 'data.frame': 614 obs. of 25 variables:
## $ userRatingValue : int 5 5 5 1 5 5 5 5 5 5 ...
## $ area_ratios : num 0.00369 NA NA NA NA 0.0241 NA NA NA NA ...
## $ big_ratios : num NA NA NA NA NA NA NA NA NA NA ...
## $ busy_ratios : num NA NA NA NA NA NA NA NA NA NA ...
## $ definitely_ratios: num NA NA NA NA NA NA NA NA NA NA ...
## $ feel_ratios : num NA NA NA NA NA NA NA NA NA NA ...
## $ lot_ratios : num NA NA NA NA NA NA NA NA NA NA ...
## $ many_ratios : num NA NA NA NA NA NA NA NA NA NA ...
## $ open_ratios : num NA NA NA NA NA NA NA NA NA NA ...
## $ plus_ratios : num NA NA NA NA NA NA NA NA NA NA ...
## $ two_ratios : num NA NA NA NA NA ...
## $ worth_ratios : num NA NA NA NA NA NA NA NA NA NA ...
## $ year_ratios : num 0.00738 NA NA NA NA NA NA NA NA NA ...
## $ the_ratios : num 0.0554 NA 0.069 0.0318 0.08 ...
## $ and_ratios : num 0.0185 0.0275 0.0345 0.0273 0.06 ...
## $ for_ratios : num 0.01107 0.00917 NA 0.00909 NA ...
## $ have_ratios : num 0.01476 0.00917 NA NA NA ...
## $ that_ratios : num 0.0148 NA NA NA NA ...
## $ they_ratios : num 0.0111 NA NA NA NA ...
## $ this_ratios : num 0.00369 0.00917 NA 0.00909 NA NA NA NA NA NA ...
## $ you_ratios : num 0.00738 NA NA NA NA ...
## $ not_ratios : num 0.00369 NA NA 0.01364 NA ...
## $ but_ratios : num 0.00369 NA NA 0.00455 NA ...
## $ good_ratios : num 0.00738 NA NA NA NA NA NA NA NA NA ...
## $ with_ratios : num NA NA NA 0.00455 NA NA NA NA NA NA ...
The w2w table doesn’t have any NAs to begin with because these words are in every rating corpus of documents. Lets gsub the NAs for zeros in the ML_r_Zeros table.
ML_r_0s <- as.matrix(ML_r_Zeros)
head(ML_r_0s)
## userRatingValue area_ratios big_ratios busy_ratios definitely_ratios
## [1,] 5 0.00369 NA NA NA
## [2,] 5 NA NA NA NA
## [3,] 5 NA NA NA NA
## [4,] 1 NA NA NA NA
## [5,] 5 NA NA NA NA
## [6,] 5 0.02410 NA NA NA
## feel_ratios lot_ratios many_ratios open_ratios plus_ratios two_ratios
## [1,] NA NA NA NA NA NA
## [2,] NA NA NA NA NA NA
## [3,] NA NA NA NA NA NA
## [4,] NA NA NA NA NA NA
## [5,] NA NA NA NA NA NA
## [6,] NA NA NA NA NA 0.01205
## worth_ratios year_ratios the_ratios and_ratios for_ratios have_ratios
## [1,] NA 0.00738 0.05535 0.01845 0.01107 0.01476
## [2,] NA NA NA 0.02752 0.00917 0.00917
## [3,] NA NA 0.06897 0.03448 NA NA
## [4,] NA NA 0.03182 0.02727 0.00909 NA
## [5,] NA NA 0.08000 0.06000 NA NA
## [6,] NA NA 0.03614 0.03614 0.02410 NA
## that_ratios they_ratios this_ratios you_ratios not_ratios but_ratios
## [1,] 0.01476 0.01107 0.00369 0.00738 0.00369 0.00369
## [2,] NA NA 0.00917 NA NA NA
## [3,] NA NA NA NA NA NA
## [4,] NA NA 0.00909 NA 0.01364 0.00455
## [5,] NA NA NA NA NA NA
## [6,] NA 0.02410 NA 0.01205 NA NA
## good_ratios with_ratios
## [1,] 0.00738 NA
## [2,] NA NA
## [3,] NA NA
## [4,] NA 0.00455
## [5,] NA NA
## [6,] NA NA
ML_r_0s2 <- as.factor(paste(ML_r_0s))
ML_r_0s2 <- gsub('NA','0',ML_r_0s2)
ML_r_0s2 <- as.numeric(paste(ML_r_0s2))
length(ML_r_0s2)
## [1] 15350
head(ML_r_0s2)
## [1] 5 5 5 1 5 5
tail(ML_r_0s2)
## [1] 0.00870 0.00000 0.00000 0.02041 0.00000 0.01242
MLr0s3 <- matrix(ML_r_0s2,nrow=614,ncol=25,byrow=FALSE)
MLr_0s_4 <- as.data.frame(MLr0s3)
colnames(MLr_0s_4) <- colnames(ML_r_Zeros)
head(MLr_0s_4)
## userRatingValue area_ratios big_ratios busy_ratios definitely_ratios
## 1 5 0.00369 0 0 0
## 2 5 0.00000 0 0 0
## 3 5 0.00000 0 0 0
## 4 1 0.00000 0 0 0
## 5 5 0.00000 0 0 0
## 6 5 0.02410 0 0 0
## feel_ratios lot_ratios many_ratios open_ratios plus_ratios two_ratios
## 1 0 0 0 0 0 0.00000
## 2 0 0 0 0 0 0.00000
## 3 0 0 0 0 0 0.00000
## 4 0 0 0 0 0 0.00000
## 5 0 0 0 0 0 0.00000
## 6 0 0 0 0 0 0.01205
## worth_ratios year_ratios the_ratios and_ratios for_ratios have_ratios
## 1 0 0.00738 0.05535 0.01845 0.01107 0.01476
## 2 0 0.00000 0.00000 0.02752 0.00917 0.00917
## 3 0 0.00000 0.06897 0.03448 0.00000 0.00000
## 4 0 0.00000 0.03182 0.02727 0.00909 0.00000
## 5 0 0.00000 0.08000 0.06000 0.00000 0.00000
## 6 0 0.00000 0.03614 0.03614 0.02410 0.00000
## that_ratios they_ratios this_ratios you_ratios not_ratios but_ratios
## 1 0.01476 0.01107 0.00369 0.00738 0.00369 0.00369
## 2 0.00000 0.00000 0.00917 0.00000 0.00000 0.00000
## 3 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
## 4 0.00000 0.00000 0.00909 0.00000 0.01364 0.00455
## 5 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
## 6 0.00000 0.02410 0.00000 0.01205 0.00000 0.00000
## good_ratios with_ratios
## 1 0.00738 0.00000
## 2 0.00000 0.00000
## 3 0.00000 0.00000
## 4 0.00000 0.00455
## 5 0.00000 0.00000
## 6 0.00000 0.00000
The order is preserved for observation. The data frame has to be converted to factors to use the gsub function that works and characters, then the values have to be turned back into numeric values. When turning into a matrix the data frame turns into a row*col long column of 1 dimension, so has to be turned back into a matrix after replacing the NAs with zeros, and then into a dataframe where the original column names are added to replace the generic V1-V25.
str(MLr_0s_4)
## 'data.frame': 614 obs. of 25 variables:
## $ userRatingValue : num 5 5 5 1 5 5 5 5 5 5 ...
## $ area_ratios : num 0.00369 0 0 0 0 0.0241 0 0 0 0 ...
## $ big_ratios : num 0 0 0 0 0 0 0 0 0 0 ...
## $ busy_ratios : num 0 0 0 0 0 0 0 0 0 0 ...
## $ definitely_ratios: num 0 0 0 0 0 0 0 0 0 0 ...
## $ feel_ratios : num 0 0 0 0 0 0 0 0 0 0 ...
## $ lot_ratios : num 0 0 0 0 0 0 0 0 0 0 ...
## $ many_ratios : num 0 0 0 0 0 0 0 0 0 0 ...
## $ open_ratios : num 0 0 0 0 0 0 0 0 0 0 ...
## $ plus_ratios : num 0 0 0 0 0 0 0 0 0 0 ...
## $ two_ratios : num 0 0 0 0 0 ...
## $ worth_ratios : num 0 0 0 0 0 0 0 0 0 0 ...
## $ year_ratios : num 0.00738 0 0 0 0 0 0 0 0 0 ...
## $ the_ratios : num 0.0554 0 0.069 0.0318 0.08 ...
## $ and_ratios : num 0.0185 0.0275 0.0345 0.0273 0.06 ...
## $ for_ratios : num 0.01107 0.00917 0 0.00909 0 ...
## $ have_ratios : num 0.01476 0.00917 0 0 0 ...
## $ that_ratios : num 0.0148 0 0 0 0 ...
## $ they_ratios : num 0.0111 0 0 0 0 ...
## $ this_ratios : num 0.00369 0.00917 0 0.00909 0 0 0 0 0 0 ...
## $ you_ratios : num 0.00738 0 0 0 0 ...
## $ not_ratios : num 0.00369 0 0 0.01364 0 ...
## $ but_ratios : num 0.00369 0 0 0.00455 0 ...
## $ good_ratios : num 0.00738 0 0 0 0 0 0 0 0 0 ...
## $ with_ratios : num 0 0 0 0.00455 0 0 0 0 0 0 ...
Now that we have our matrix of zeros lets write this out to csv.
write.csv(MLr_0s_4,'mLr_zeros.csv',row.names=FALSE)
And lets begin the program to get the predictions and compare accuracy results. We will just use the given names that will replace our other data. Since this is an Rmarkdown file, the other results are preceding these results and can be reviewed to compare by scrolling up this document.
MLr <- MLr_0s_4
MLr$R1_area <- rep(w2w[1,1],length(MLr$userRatingValue))
MLr$R2_area <- rep(w2w[2,1],length(MLr$userRatingValue))
MLr$R3_area <- rep(w2w[3,1],length(MLr$userRatingValue))
MLr$R4_area <- rep(w2w[4,1],length(MLr$userRatingValue))
MLr$R5_area <- rep(w2w[5,1],length(MLr$userRatingValue))
MLr$R1_big <- rep(w2w[1,2],length(MLr$userRatingValue))
MLr$R2_big <- rep(w2w[2,2],length(MLr$userRatingValue))
MLr$R3_big <- rep(w2w[3,2],length(MLr$userRatingValue))
MLr$R4_big <- rep(w2w[4,2],length(MLr$userRatingValue))
MLr$R5_big <- rep(w2w[5,2],length(MLr$userRatingValue))
MLr$R1_busy <- rep(w2w[1,3],length(MLr$userRatingValue))
MLr$R2_busy <- rep(w2w[2,3],length(MLr$userRatingValue))
MLr$R3_busy <- rep(w2w[3,3],length(MLr$userRatingValue))
MLr$R4_busy <- rep(w2w[4,3],length(MLr$userRatingValue))
MLr$R5_busy <- rep(w2w[5,3],length(MLr$userRatingValue))
MLr$R1_definitely <- rep(w2w[1,4],length(MLr$userRatingValue))
MLr$R2_definitely <- rep(w2w[2,4],length(MLr$userRatingValue))
MLr$R3_definitely <- rep(w2w[3,4],length(MLr$userRatingValue))
MLr$R4_definitely <- rep(w2w[4,4],length(MLr$userRatingValue))
MLr$R5_definitely <- rep(w2w[5,4],length(MLr$userRatingValue))
MLr$R1_feel <- rep(w2w[1,5],length(MLr$userRatingValue))
MLr$R2_feel <- rep(w2w[2,5],length(MLr$userRatingValue))
MLr$R3_feel <- rep(w2w[3,5],length(MLr$userRatingValue))
MLr$R4_feel <- rep(w2w[4,5],length(MLr$userRatingValue))
MLr$R5_feel <- rep(w2w[5,5],length(MLr$userRatingValue))
MLr$R1_lot <- rep(w2w[1,6],length(MLr$userRatingValue))
MLr$R2_lot <- rep(w2w[2,6],length(MLr$userRatingValue))
MLr$R3_lot <- rep(w2w[3,6],length(MLr$userRatingValue))
MLr$R4_lot <- rep(w2w[4,6],length(MLr$userRatingValue))
MLr$R5_lot <- rep(w2w[5,6],length(MLr$userRatingValue))
MLr$R1_many <- rep(w2w[1,7],length(MLr$userRatingValue))
MLr$R2_many <- rep(w2w[2,7],length(MLr$userRatingValue))
MLr$R3_many <- rep(w2w[3,7],length(MLr$userRatingValue))
MLr$R4_many <- rep(w2w[4,7],length(MLr$userRatingValue))
MLr$R5_many <- rep(w2w[5,7],length(MLr$userRatingValue))
MLr$R1_open <- rep(w2w[1,8],length(MLr$userRatingValue))
MLr$R2_open <- rep(w2w[2,8],length(MLr$userRatingValue))
MLr$R3_open <- rep(w2w[3,8],length(MLr$userRatingValue))
MLr$R4_open <- rep(w2w[4,8],length(MLr$userRatingValue))
MLr$R5_open <- rep(w2w[5,8],length(MLr$userRatingValue))
MLr$R1_plus <- rep(w2w[1,9],length(MLr$userRatingValue))
MLr$R2_plus <- rep(w2w[2,9],length(MLr$userRatingValue))
MLr$R3_plus <- rep(w2w[3,9],length(MLr$userRatingValue))
MLr$R4_plus <- rep(w2w[4,9],length(MLr$userRatingValue))
MLr$R5_plus <- rep(w2w[5,9],length(MLr$userRatingValue))
MLr$R1_two <- rep(w2w[1,10],length(MLr$userRatingValue))
MLr$R2_two <- rep(w2w[2,10],length(MLr$userRatingValue))
MLr$R3_two <- rep(w2w[3,10],length(MLr$userRatingValue))
MLr$R4_two <- rep(w2w[4,10],length(MLr$userRatingValue))
MLr$R5_two <- rep(w2w[5,10],length(MLr$userRatingValue))
MLr$R1_worth <- rep(w2w[1,11],length(MLr$userRatingValue))
MLr$R2_worth <- rep(w2w[2,11],length(MLr$userRatingValue))
MLr$R3_worth <- rep(w2w[3,11],length(MLr$userRatingValue))
MLr$R4_worth <- rep(w2w[4,11],length(MLr$userRatingValue))
MLr$R5_worth <- rep(w2w[5,11],length(MLr$userRatingValue))
MLr$R1_year <- rep(w2w[1,12],length(MLr$userRatingValue))
MLr$R2_year <- rep(w2w[2,12],length(MLr$userRatingValue))
MLr$R3_year <- rep(w2w[3,12],length(MLr$userRatingValue))
MLr$R4_year <- rep(w2w[4,12],length(MLr$userRatingValue))
MLr$R5_year <- rep(w2w[5,12],length(MLr$userRatingValue))
MLr$R1_and <- rep(w2w[1,13],length(MLr$userRatingValue))
MLr$R2_and <- rep(w2w[2,13],length(MLr$userRatingValue))
MLr$R3_and <- rep(w2w[3,13],length(MLr$userRatingValue))
MLr$R4_and <- rep(w2w[4,13],length(MLr$userRatingValue))
MLr$R5_and <- rep(w2w[5,13],length(MLr$userRatingValue))
MLr$R1_but <- rep(w2w[1,14],length(MLr$userRatingValue))
MLr$R2_but <- rep(w2w[2,14],length(MLr$userRatingValue))
MLr$R3_but <- rep(w2w[3,14],length(MLr$userRatingValue))
MLr$R4_but <- rep(w2w[4,14],length(MLr$userRatingValue))
MLr$R5_but <- rep(w2w[5,14],length(MLr$userRatingValue))
MLr$R1_for <- rep(w2w[1,15],length(MLr$userRatingValue))
MLr$R2_for <- rep(w2w[2,15],length(MLr$userRatingValue))
MLr$R3_for <- rep(w2w[3,15],length(MLr$userRatingValue))
MLr$R4_for <- rep(w2w[4,15],length(MLr$userRatingValue))
MLr$R5_for <- rep(w2w[5,15],length(MLr$userRatingValue))
MLr$R1_good <- rep(w2w[1,16],length(MLr$userRatingValue))
MLr$R2_good <- rep(w2w[2,16],length(MLr$userRatingValue))
MLr$R3_good <- rep(w2w[3,16],length(MLr$userRatingValue))
MLr$R4_good <- rep(w2w[4,16],length(MLr$userRatingValue))
MLr$R5_good <- rep(w2w[5,16],length(MLr$userRatingValue))
MLr$R1_have <- rep(w2w[1,17],length(MLr$userRatingValue))
MLr$R2_have <- rep(w2w[2,17],length(MLr$userRatingValue))
MLr$R3_have <- rep(w2w[3,17],length(MLr$userRatingValue))
MLr$R4_have <- rep(w2w[4,17],length(MLr$userRatingValue))
MLr$R5_have <- rep(w2w[5,17],length(MLr$userRatingValue))
MLr$R1_not <- rep(w2w[1,18],length(MLr$userRatingValue))
MLr$R2_not <- rep(w2w[2,18],length(MLr$userRatingValue))
MLr$R3_not <- rep(w2w[3,18],length(MLr$userRatingValue))
MLr$R4_not <- rep(w2w[4,18],length(MLr$userRatingValue))
MLr$R5_not <- rep(w2w[5,18],length(MLr$userRatingValue))
MLr$R1_that <- rep(w2w[1,19],length(MLr$userRatingValue))
MLr$R2_that <- rep(w2w[2,19],length(MLr$userRatingValue))
MLr$R3_that <- rep(w2w[3,19],length(MLr$userRatingValue))
MLr$R4_that <- rep(w2w[4,19],length(MLr$userRatingValue))
MLr$R5_that <- rep(w2w[5,19],length(MLr$userRatingValue))
MLr$R1_the <- rep(w2w[1,20],length(MLr$userRatingValue))
MLr$R2_the <- rep(w2w[2,20],length(MLr$userRatingValue))
MLr$R3_the <- rep(w2w[3,20],length(MLr$userRatingValue))
MLr$R4_the <- rep(w2w[4,20],length(MLr$userRatingValue))
MLr$R5_the <- rep(w2w[5,20],length(MLr$userRatingValue))
MLr$R1_they <- rep(w2w[1,21],length(MLr$userRatingValue))
MLr$R2_they <- rep(w2w[2,21],length(MLr$userRatingValue))
MLr$R3_they <- rep(w2w[3,21],length(MLr$userRatingValue))
MLr$R4_they <- rep(w2w[4,21],length(MLr$userRatingValue))
MLr$R5_they <- rep(w2w[5,21],length(MLr$userRatingValue))
MLr$R1_this <- rep(w2w[1,22],length(MLr$userRatingValue))
MLr$R2_this <- rep(w2w[2,22],length(MLr$userRatingValue))
MLr$R3_this <- rep(w2w[3,22],length(MLr$userRatingValue))
MLr$R4_this <- rep(w2w[4,22],length(MLr$userRatingValue))
MLr$R5_this <- rep(w2w[5,22],length(MLr$userRatingValue))
MLr$R1_with <- rep(w2w[1,23],length(MLr$userRatingValue))
MLr$R2_with <- rep(w2w[2,23],length(MLr$userRatingValue))
MLr$R3_with <- rep(w2w[3,23],length(MLr$userRatingValue))
MLr$R4_with <- rep(w2w[4,23],length(MLr$userRatingValue))
MLr$R5_with <- rep(w2w[5,23],length(MLr$userRatingValue))
MLr$R1_you <- rep(w2w[1,24],length(MLr$userRatingValue))
MLr$R2_you <- rep(w2w[2,24],length(MLr$userRatingValue))
MLr$R3_you <- rep(w2w[3,24],length(MLr$userRatingValue))
MLr$R4_you <- rep(w2w[4,24],length(MLr$userRatingValue))
MLr$R5_you <- rep(w2w[5,24],length(MLr$userRatingValue))
At this point we would/could get the absolute value of each difference then get the minimum result to vote on.
MLr$area_diff1 <- MLr$R1_area-MLr$area_ratios
MLr$area_diff2 <- MLr$R2_area-MLr$area_ratios
MLr$area_diff3 <- MLr$R3_area-MLr$area_ratios
MLr$area_diff4 <- MLr$R4_area-MLr$area_ratios
MLr$area_diff5 <- MLr$R5_area-MLr$area_ratios
MLr$big_diff1 <- MLr$R1_big-MLr$big_ratios
MLr$big_diff2 <- MLr$R2_big-MLr$big_ratios
MLr$big_diff3 <- MLr$R3_big-MLr$big_ratios
MLr$big_diff4 <- MLr$R4_big-MLr$big_ratios
MLr$big_diff5 <- MLr$R5_big-MLr$big_ratios
MLr$busy_diff1 <- MLr$R1_busy-MLr$busy_ratios
MLr$busy_diff2 <- MLr$R2_busy-MLr$busy_ratios
MLr$busy_diff3 <- MLr$R3_busy-MLr$busy_ratios
MLr$busy_diff4 <- MLr$R4_busy-MLr$busy_ratios
MLr$busy_diff5 <- MLr$R5_busy-MLr$busy_ratios
MLr$definitely_diff1 <- MLr$R1_definitely-MLr$definitely_ratios
MLr$definitely_diff2 <- MLr$R2_definitely-MLr$definitely_ratios
MLr$definitely_diff3 <- MLr$R3_definitely-MLr$definitely_ratios
MLr$definitely_diff4 <- MLr$R4_definitely-MLr$definitely_ratios
MLr$definitely_diff5 <- MLr$R5_definitely-MLr$definitely_ratios
MLr$feel_diff1 <- MLr$R1_feel-MLr$feel_ratios
MLr$feel_diff2 <- MLr$R2_feel-MLr$feel_ratios
MLr$feel_diff3 <- MLr$R3_feel-MLr$feel_ratios
MLr$feel_diff4 <- MLr$R4_feel-MLr$feel_ratios
MLr$feel_diff5 <- MLr$R5_feel-MLr$feel_ratios
MLr$lot_diff1 <- MLr$R1_lot-MLr$lot_ratios
MLr$lot_diff2 <- MLr$R2_lot-MLr$lot_ratios
MLr$lot_diff3 <- MLr$R3_lot-MLr$lot_ratios
MLr$lot_diff4 <- MLr$R4_lot-MLr$lot_ratios
MLr$lot_diff5 <- MLr$R5_lot-MLr$lot_ratios
MLr$many_diff1 <- MLr$R1_many-MLr$many_ratios
MLr$many_diff2 <- MLr$R2_many-MLr$many_ratios
MLr$many_diff3 <- MLr$R3_many-MLr$many_ratios
MLr$many_diff4 <- MLr$R4_many-MLr$many_ratios
MLr$many_diff5 <- MLr$R5_many-MLr$many_ratios
MLr$open_diff1 <- MLr$R1_open-MLr$open_ratios
MLr$open_diff2 <- MLr$R2_open-MLr$open_ratios
MLr$open_diff3 <- MLr$R3_open-MLr$open_ratios
MLr$open_diff4 <- MLr$R4_open-MLr$open_ratios
MLr$open_diff5 <- MLr$R5_open-MLr$open_ratios
MLr$plus_diff1 <- MLr$R1_plus-MLr$plus_ratios
MLr$plus_diff2 <- MLr$R2_plus-MLr$plus_ratios
MLr$plus_diff3 <- MLr$R3_plus-MLr$plus_ratios
MLr$plus_diff4 <- MLr$R4_plus-MLr$plus_ratios
MLr$plus_diff5 <- MLr$R5_plus-MLr$plus_ratios
MLr$two_diff1 <- MLr$R1_two-MLr$two_ratios
MLr$two_diff2 <- MLr$R2_two-MLr$two_ratios
MLr$two_diff3 <- MLr$R3_two-MLr$two_ratios
MLr$two_diff4 <- MLr$R4_two-MLr$two_ratios
MLr$two_diff5 <- MLr$R5_two-MLr$two_ratios
MLr$worth_diff1 <- MLr$R1_worth-MLr$worth_ratios
MLr$worth_diff2 <- MLr$R2_worth-MLr$worth_ratios
MLr$worth_diff3 <- MLr$R3_worth-MLr$worth_ratios
MLr$worth_diff4 <- MLr$R4_worth-MLr$worth_ratios
MLr$worth_diff5 <- MLr$R5_worth-MLr$worth_ratios
MLr$year_diff1 <- MLr$R1_year-MLr$year_ratios
MLr$year_diff2 <- MLr$R2_year-MLr$year_ratios
MLr$year_diff3 <- MLr$R3_year-MLr$year_ratios
MLr$year_diff4 <- MLr$R4_year-MLr$year_ratios
MLr$year_diff5 <- MLr$R5_year-MLr$year_ratios
MLr$and_diff1 <- MLr$R1_and-MLr$and_ratios
MLr$and_diff2 <- MLr$R2_and-MLr$and_ratios
MLr$and_diff3 <- MLr$R3_and-MLr$and_ratios
MLr$and_diff4 <- MLr$R4_and-MLr$and_ratios
MLr$and_diff5 <- MLr$R5_and-MLr$and_ratios
MLr$but_diff1 <- MLr$R1_but-MLr$but_ratios
MLr$but_diff2 <- MLr$R2_but-MLr$but_ratios
MLr$but_diff3 <- MLr$R3_but-MLr$but_ratios
MLr$but_diff4 <- MLr$R4_but-MLr$but_ratios
MLr$but_diff5 <- MLr$R5_but-MLr$but_ratios
MLr$for_diff1 <- MLr$R1_for-MLr$for_ratios
MLr$for_diff2 <- MLr$R2_for-MLr$for_ratios
MLr$for_diff3 <- MLr$R3_for-MLr$for_ratios
MLr$for_diff4 <- MLr$R4_for-MLr$for_ratios
MLr$for_diff5 <- MLr$R5_for-MLr$for_ratios
MLr$good_diff1 <- MLr$R1_good-MLr$good_ratios
MLr$good_diff2 <- MLr$R2_good-MLr$good_ratios
MLr$good_diff3 <- MLr$R3_good-MLr$good_ratios
MLr$good_diff4 <- MLr$R4_good-MLr$good_ratios
MLr$good_diff5 <- MLr$R5_good-MLr$good_ratios
MLr$have_diff1 <- MLr$R1_have-MLr$have_ratios
MLr$have_diff2 <- MLr$R2_have-MLr$have_ratios
MLr$have_diff3 <- MLr$R3_have-MLr$have_ratios
MLr$have_diff4 <- MLr$R4_have-MLr$have_ratios
MLr$have_diff5 <- MLr$R5_have-MLr$have_ratios
MLr$not_diff1 <- MLr$R1_not-MLr$not_ratios
MLr$not_diff2 <- MLr$R2_not-MLr$not_ratios
MLr$not_diff3 <- MLr$R3_not-MLr$not_ratios
MLr$not_diff4 <- MLr$R4_not-MLr$not_ratios
MLr$not_diff5 <- MLr$R5_not-MLr$not_ratios
MLr$that_diff1 <- MLr$R1_that-MLr$that_ratios
MLr$that_diff2 <- MLr$R2_that-MLr$that_ratios
MLr$that_diff3 <- MLr$R3_that-MLr$that_ratios
MLr$that_diff4 <- MLr$R4_that-MLr$that_ratios
MLr$that_diff5 <- MLr$R5_that-MLr$that_ratios
MLr$the_diff1 <- MLr$R1_the-MLr$the_ratios
MLr$the_diff2 <- MLr$R2_the-MLr$the_ratios
MLr$the_diff3 <- MLr$R3_the-MLr$the_ratios
MLr$the_diff4 <- MLr$R4_the-MLr$the_ratios
MLr$the_diff5 <- MLr$R5_the-MLr$the_ratios
MLr$they_diff1 <- MLr$R1_they-MLr$they_ratios
MLr$they_diff2 <- MLr$R2_they-MLr$they_ratios
MLr$they_diff3 <- MLr$R3_they-MLr$they_ratios
MLr$they_diff4 <- MLr$R4_they-MLr$they_ratios
MLr$they_diff5 <- MLr$R5_they-MLr$they_ratios
MLr$this_diff1 <- MLr$R1_this-MLr$this_ratios
MLr$this_diff2 <- MLr$R2_this-MLr$this_ratios
MLr$this_diff3 <- MLr$R3_this-MLr$this_ratios
MLr$this_diff4 <- MLr$R4_this-MLr$this_ratios
MLr$this_diff5 <- MLr$R5_this-MLr$this_ratios
MLr$with_diff1 <- MLr$R1_with-MLr$with_ratios
MLr$with_diff2 <- MLr$R2_with-MLr$with_ratios
MLr$with_diff3 <- MLr$R3_with-MLr$with_ratios
MLr$with_diff4 <- MLr$R4_with-MLr$with_ratios
MLr$with_diff5 <- MLr$R5_with-MLr$with_ratios
MLr$you_diff1 <- MLr$R1_you-MLr$you_ratios
MLr$you_diff2 <- MLr$R2_you-MLr$you_ratios
MLr$you_diff3 <- MLr$R3_you-MLr$you_ratios
MLr$you_diff4 <- MLr$R4_you-MLr$you_ratios
MLr$you_diff5 <- MLr$R5_you-MLr$you_ratios
Get the minimum value of the term/total terms per document difference from the ratings term/total terms per rating values.
MLr$areaMin <- apply(MLr[146:150],1, min,na.rm=TRUE)
MLr$areavote <- ifelse(MLr$area_diff1==MLr$areaMin,
1,
ifelse(MLr$area_diff2==MLr$areaMin,
2,
ifelse(MLr$area_diff3==MLr$areaMin,
3,
ifelse(MLr$area_diff4==MLr$areaMin,
4,
ifelse(MLr$area_diff5==MLr$areaMin,
5, NA )
)
)
)
)
MLr$bigMin <- apply(MLr[151:155],1, min,na.rm=TRUE)
MLr$bigvote <- ifelse(MLr$big_diff1==MLr$bigMin,
1,
ifelse(MLr$big_diff2==MLr$bigMin,
2,
ifelse(MLr$big_diff3==MLr$bigMin,
3,
ifelse(MLr$big_diff4==MLr$bigMin,
4,
ifelse(MLr$big_diff5==MLr$bigMin,
5, NA)
)
)
)
)
MLr$busyMin <- apply(MLr[156:160],1, min,na.rm=TRUE)
MLr$busyvote <- ifelse(MLr$busy_diff1==MLr$busyMin,
1,
ifelse(MLr$busy_diff2==MLr$busyMin,
2,
ifelse(MLr$busy_diff3==MLr$busyMin,
3,
ifelse(MLr$busy_diff4==MLr$busyMin,
4,
ifelse(MLr$busy_diff5==MLr$busyMin,
5, NA)
)
)
)
)
MLr$definitelyMin <- apply(MLr[161:165],1, min, na.rm=TRUE)
MLr$definitelyvote <- ifelse(MLr$definitely_diff1==MLr$definitelyMin,
1,
ifelse(MLr$definitely_diff2==MLr$definitelyMin,
2,
ifelse(MLr$definitely_diff3==MLr$definitelyMin,
3,
ifelse(MLr$definitely_diff4==MLr$definitelyMin,
4,
ifelse(MLr$definitely_diff5==MLr$definitelyMin,
5, NA)
)
)
)
)
MLr$feelMin <- apply(MLr[166:170],1, min, na.rm=TRUE)
MLr$feelvote <- ifelse(MLr$feel_diff1==MLr$feelMin,
1,
ifelse(MLr$feel_diff2==MLr$feelMin,
2,
ifelse(MLr$feel_diff3==MLr$feelMin,
3,
ifelse(MLr$feel_diff4==MLr$feelMin,
4,
ifelse(MLr$feel_diff5==MLr$feelMin,
5, NA)
)
)
)
)
MLr$lotMin <- apply(MLr[171:175],1, min, na.rm=TRUE)
MLr$lotvote <- ifelse(MLr$lot_diff1==MLr$lotMin,
1,
ifelse(MLr$lot_diff2==MLr$lotMin,
2,
ifelse(MLr$lot_diff3==MLr$lotMin,
3,
ifelse(MLr$lot_diff4==MLr$lotMin,
4,
ifelse(MLr$lot_diff5==MLr$lotMin,
5, NA)
)
)
)
)
MLr$manyMin <- apply(MLr[176:180],1, min, na.rm=TRUE)
MLr$manyvote <- ifelse(MLr$many_diff1==MLr$manyMin,
1,
ifelse(MLr$many_diff2==MLr$manyMin,
2,
ifelse(MLr$many_diff3==MLr$manyMin,
3,
ifelse(MLr$many_diff4==MLr$manyMin,
4,
ifelse(MLr$many_diff5==MLr$manyMin,
5, NA)
)
)
)
)
MLr$openMin <- apply(MLr[181:185],1, min, na.rm=TRUE)
MLr$openvote <- ifelse(MLr$open_diff1==MLr$openMin,
1,
ifelse(MLr$open_diff2==MLr$openMin,
2,
ifelse(MLr$open_diff3==MLr$openMin,
3,
ifelse(MLr$open_diff4==MLr$openMin,
4,
ifelse(MLr$open_diff5==MLr$openMin,
5, NA)
)
)
)
)
MLr$plusMin <- apply(MLr[186:190],1, min, na.rm=TRUE)
MLr$plusvote <- ifelse(MLr$plus_diff1==MLr$plusMin,
1,
ifelse(MLr$plus_diff2==MLr$plusMin,
2,
ifelse(MLr$plus_diff3==MLr$plusMin,
3,
ifelse(MLr$plus_diff4==MLr$plusMin,
4,
ifelse(MLr$plus_diff5==MLr$plusMin,
5, NA)
)
)
)
)
MLr$twoMin <- apply(MLr[191:195],1, min, na.rm=TRUE)
MLr$twovote <- ifelse(MLr$two_diff1==MLr$twoMin,
1,
ifelse(MLr$two_diff2==MLr$twoMin,
2,
ifelse(MLr$two_diff3==MLr$twoMin,
3,
ifelse(MLr$two_diff4==MLr$twoMin,
4,
ifelse(MLr$two_diff5==MLr$twoMin,
5, NA)
)
)
)
)
MLr$worthMin <- apply(MLr[196:200],1, min, na.rm=TRUE)
MLr$worthvote <- ifelse(MLr$worth_diff1==MLr$worthMin,
1,
ifelse(MLr$worth_diff2==MLr$worthMin,
2,
ifelse(MLr$worth_diff3==MLr$worthMin,
3,
ifelse(MLr$worth_diff4==MLr$worthMin,
4,
ifelse(MLr$worth_diff5==MLr$worthMin,
5, NA)
)
)
)
)
MLr$yearMin <- apply(MLr[201:205],1, min, na.rm=TRUE)
MLr$yearvote <- ifelse(MLr$year_diff1==MLr$yearMin,
1,
ifelse(MLr$year_diff2==MLr$yearMin,
2,
ifelse(MLr$year_diff3==MLr$yearMin,
3,
ifelse(MLr$year_diff4==MLr$yearMin,
4,
ifelse(MLr$year_diff5==MLr$yearMin,
5, NA)
)
)
)
)
MLr$andMin <- apply(MLr[206:210],1, min,na.rm=TRUE)
MLr$andvote <- ifelse(MLr$and_diff1==MLr$andMin,
1,
ifelse(MLr$and_diff2==MLr$andMin,
2,
ifelse(MLr$and_diff3==MLr$andMin,
3,
ifelse(MLr$and_diff4==MLr$andMin,
4,
ifelse(MLr$and_diff5==MLr$andMin,
5, NA)
)
)
)
)
MLr$butMin <- apply(MLr[211:215],1, min, na.rm=TRUE)
MLr$butvote <- ifelse(MLr$but_diff1==MLr$butMin,
1,
ifelse(MLr$but_diff2==MLr$butMin,
2,
ifelse(MLr$but_diff3==MLr$butMin,
3,
ifelse(MLr$but_diff4==MLr$butMin,
4,
ifelse(MLr$but_diff5==MLr$butMin,
5, NA)
)
)
)
)
MLr$forMin <- apply(MLr[216:220],1, min, na.rm=TRUE)
MLr$forvote <- ifelse(MLr$for_diff1==MLr$forMin,
1,
ifelse(MLr$for_diff2==MLr$forMin,
2,
ifelse(MLr$for_diff3==MLr$forMin,
3,
ifelse(MLr$for_diff4==MLr$forMin,
4,
ifelse(MLr$for_diff5==MLr$forMin,
5, NA)
)
)
)
)
MLr$goodMin <- apply(MLr[221:225],1, min, na.rm=TRUE)
MLr$goodvote <- ifelse(MLr$good_diff1==MLr$goodMin,
1,
ifelse(MLr$good_diff2==MLr$goodMin,
2,
ifelse(MLr$good_diff3==MLr$goodMin,
3,
ifelse(MLr$good_diff4==MLr$goodMin,
4,
ifelse(MLr$good_diff5==MLr$goodMin,
5, NA)
)
)
)
)
MLr$haveMin <- apply(MLr[226:230],1, min, na.rm=TRUE)
MLr$havevote <- ifelse(MLr$have_diff1==MLr$haveMin,
1,
ifelse(MLr$have_diff2==MLr$haveMin,
2,
ifelse(MLr$have_diff3==MLr$haveMin,
3,
ifelse(MLr$have_diff4==MLr$haveMin,
4,
ifelse(MLr$have_diff5==MLr$haveMin,
5, NA)
)
)
)
)
MLr$notMin <- apply(MLr[231:235],1, min, na.rm=TRUE)
MLr$notvote <- ifelse(MLr$not_diff1==MLr$notMin,
1,
ifelse(MLr$not_diff2==MLr$notMin,
2,
ifelse(MLr$not_diff3==MLr$notMin,
3,
ifelse(MLr$not_diff4==MLr$notMin,
4,
ifelse(MLr$not_diff5==MLr$notMin,
5, NA)
)
)
)
)
MLr$thatMin <- apply(MLr[236:240],1, min, na.rm=TRUE)
MLr$thatvote <- ifelse(MLr$that_diff1==MLr$thatMin,
1,
ifelse(MLr$that_diff2==MLr$thatMin,
2,
ifelse(MLr$that_diff3==MLr$thatMin,
3,
ifelse(MLr$that_diff4==MLr$thatMin,
4,
ifelse(MLr$that_diff5==MLr$thatMin,
5, NA)
)
)
)
)
MLr$theMin <- apply(MLr[241:245],1, min, na.rm=TRUE)
MLr$thevote <- ifelse(MLr$the_diff1==MLr$theMin,
1,
ifelse(MLr$the_diff2==MLr$theMin,
2,
ifelse(MLr$the_diff3==MLr$theMin,
3,
ifelse(MLr$the_diff4==MLr$theMin,
4,
ifelse(MLr$the_diff5==MLr$theMin,
5, NA)
)
)
)
)
MLr$theyMin <- apply(MLr[246:250],1, min, na.rm=TRUE)
MLr$theyvote <- ifelse(MLr$they_diff1==MLr$theyMin,
1,
ifelse(MLr$they_diff2==MLr$theyMin,
2,
ifelse(MLr$they_diff3==MLr$theyMin,
3,
ifelse(MLr$they_diff4==MLr$theyMin,
4,
ifelse(MLr$they_diff5==MLr$theyMin,
5, NA)
)
)
)
)
MLr$thisMin <- apply(MLr[251:255],1, min, na.rm=TRUE)
MLr$thisvote <- ifelse(MLr$this_diff1==MLr$thisMin,
1,
ifelse(MLr$this_diff2==MLr$thisMin,
2,
ifelse(MLr$this_diff3==MLr$thisMin,
3,
ifelse(MLr$this_diff4==MLr$thisMin,
4,
ifelse(MLr$this_diff5==MLr$thisMin,
5, NA)
)
)
)
)
MLr$withMin <- apply(MLr[256:260],1, min, na.rm=TRUE)
MLr$withvote <- ifelse(MLr$with_diff1==MLr$withMin,
1,
ifelse(MLr$with_diff2==MLr$withMin,
2,
ifelse(MLr$with_diff3==MLr$withMin,
3,
ifelse(MLr$with_diff4==MLr$withMin,
4,
ifelse(MLr$with_diff5==MLr$withMin,
5, NA)
)
)
)
)
MLr$youMin <- apply(MLr[261:265],1, min, na.rm=TRUE)
MLr$youvote <- ifelse(MLr$you_diff1==MLr$youMin,
1,
ifelse(MLr$you_diff2==MLr$youMin,
2,
ifelse(MLr$you_diff3==MLr$youMin,
3,
ifelse(MLr$you_diff4==MLr$youMin,
4,
ifelse(MLr$you_diff5==MLr$youMin,
5, NA)
)
)
)
)
bestVote <- MLr %>% select(areavote, bigvote , busyvote, definitelyvote,
feelvote, lotvote, manyvote, openvote, plusvote,
twovote, worthvote, yearvote, andvote, butvote, forvote,
goodvote, havevote, notvote, thatvote, thevote,
theyvote, thisvote, withvote, youvote )
summary(bestVote)
## areavote bigvote busyvote definitelyvote feelvote lotvote
## Min. :1 Min. :1 Min. :1 Min. :1 Min. :1 Min. :1
## 1st Qu.:1 1st Qu.:1 1st Qu.:1 1st Qu.:1 1st Qu.:1 1st Qu.:1
## Median :1 Median :1 Median :1 Median :1 Median :1 Median :1
## Mean :1 Mean :1 Mean :1 Mean :1 Mean :1 Mean :1
## 3rd Qu.:1 3rd Qu.:1 3rd Qu.:1 3rd Qu.:1 3rd Qu.:1 3rd Qu.:1
## Max. :1 Max. :1 Max. :1 Max. :1 Max. :1 Max. :1
## manyvote openvote plusvote twovote worthvote yearvote
## Min. :1 Min. :1 Min. :1 Min. :1 Min. :1 Min. :3
## 1st Qu.:1 1st Qu.:1 1st Qu.:1 1st Qu.:1 1st Qu.:1 1st Qu.:3
## Median :1 Median :1 Median :1 Median :1 Median :1 Median :3
## Mean :1 Mean :1 Mean :1 Mean :1 Mean :1 Mean :3
## 3rd Qu.:1 3rd Qu.:1 3rd Qu.:1 3rd Qu.:1 3rd Qu.:1 3rd Qu.:3
## Max. :1 Max. :1 Max. :1 Max. :1 Max. :1 Max. :3
## andvote butvote forvote goodvote havevote notvote
## Min. :2 Min. :5 Min. :2 Min. :1 Min. :1 Min. :5
## 1st Qu.:2 1st Qu.:5 1st Qu.:2 1st Qu.:1 1st Qu.:1 1st Qu.:5
## Median :2 Median :5 Median :2 Median :1 Median :1 Median :5
## Mean :2 Mean :5 Mean :2 Mean :1 Mean :1 Mean :5
## 3rd Qu.:2 3rd Qu.:5 3rd Qu.:2 3rd Qu.:1 3rd Qu.:1 3rd Qu.:5
## Max. :2 Max. :5 Max. :2 Max. :1 Max. :1 Max. :5
## thatvote thevote theyvote thisvote withvote youvote
## Min. :5 Min. :5 Min. :3 Min. :4 Min. :1 Min. :1
## 1st Qu.:5 1st Qu.:5 1st Qu.:3 1st Qu.:4 1st Qu.:1 1st Qu.:1
## Median :5 Median :5 Median :3 Median :4 Median :1 Median :1
## Mean :5 Mean :5 Mean :3 Mean :4 Mean :1 Mean :1
## 3rd Qu.:5 3rd Qu.:5 3rd Qu.:3 3rd Qu.:4 3rd Qu.:1 3rd Qu.:1
## Max. :5 Max. :5 Max. :3 Max. :4 Max. :1 Max. :1
bestVote$areavote <- as.factor(paste(bestVote$areavote))
bestVote$bigvote <- as.factor(paste(bestVote$bigvote))
bestVote$busyvote <- as.factor(paste(bestVote$busyvote))
bestVote$definitelyvote <- as.factor(paste(bestVote$definitelyvote))
bestVote$feelvote <- as.factor(paste(bestVote$feelvote))
bestVote$lotvote <- as.factor(paste(bestVote$lotvote))
bestVote$manyvote <- as.factor(paste(bestVote$manyvote))
bestVote$openvote <- as.factor(paste(bestVote$openvote))
bestVote$plusvote <- as.factor(paste(bestVote$plusvote))
bestVote$twovote <- as.factor(paste(bestVote$twovote))
bestVote$worthvote <- as.factor(paste(bestVote$worthvote))
bestVote$yearvote <- as.factor(paste(bestVote$yearvote))
bestVote$andvote <- as.factor(paste(bestVote$andvote))
bestVote$butvote <- as.factor(paste(bestVote$butvote))
bestVote$forvote <- as.factor(paste(bestVote$forvote))
bestVote$goodvote <- as.factor(paste(bestVote$goodvote))
bestVote$havevote <- as.factor(paste(bestVote$havevote))
bestVote$notvote <- as.factor(paste(bestVote$notvote))
bestVote$thatvote <- as.factor(paste(bestVote$thatvote))
bestVote$thevote <- as.factor(paste(bestVote$thevote))
bestVote$theyvote <- as.factor(paste(bestVote$theyvote))
bestVote$thisvote <- as.factor(paste(bestVote$thisvote))
bestVote$withvote <- as.factor(paste(bestVote$withvote))
bestVote$youvote <- as.factor(paste(bestVote$youvote))
bestVote$counts1 <- 0
bestVote$counts2 <- 0
bestVote$counts3 <- 0
bestVote$counts4 <- 0
bestVote$counts5 <- 0
a5 <- grep('5',bestVote$andvote)
a4 <- grep('4', bestVote$andvote)
a3 <- grep('3',bestVote$andvote)
a2 <- grep('2',bestVote$andvote)
a1 <- grep('1',bestVote$andvote)
b5 <- grep('5',bestVote$butvote)
b4 <- grep('4', bestVote$butvote)
b3 <- grep('3',bestVote$butvote)
b2 <- grep('2',bestVote$butvote)
b1 <- grep('1',bestVote$butvote)
c5 <- grep('5',bestVote$forvote)
c4 <- grep('4', bestVote$forvote)
c3 <- grep('3',bestVote$forvote)
c2 <- grep('2',bestVote$forvote)
c1 <- grep('1',bestVote$forvote)
d5 <- grep('5',bestVote$goodvote)
d4 <- grep('4', bestVote$goodvote)
d3 <- grep('3',bestVote$goodvote)
d2 <- grep('2',bestVote$goodvote)
d1 <- grep('1',bestVote$goodvote)
e5 <- grep('5',bestVote$havevote)
e4 <- grep('4', bestVote$havevote)
e3 <- grep('3',bestVote$havevote)
e2 <- grep('2',bestVote$havevote)
e1 <- grep('1',bestVote$havevote)
f5 <- grep('5',bestVote$notvote)
f4 <- grep('4', bestVote$notvote)
f3 <- grep('3',bestVote$notvote)
f2 <- grep('2',bestVote$notvote)
f1 <- grep('1',bestVote$notvote)
g5 <- grep('5',bestVote$thatvote)
g4 <- grep('4', bestVote$thatvote)
g3 <- grep('3',bestVote$thatvote)
g2 <- grep('2',bestVote$thatvote)
g1 <- grep('1',bestVote$thatvote)
h5 <- grep('5',bestVote$thevote)
h4 <- grep('4', bestVote$thevote)
h3 <- grep('3',bestVote$thevote)
h2 <- grep('2',bestVote$thevote)
h1 <- grep('1',bestVote$thevote)
i5 <- grep('5',bestVote$theyvote)
i4 <- grep('4', bestVote$theyvote)
i3 <- grep('3',bestVote$theyvote)
i2 <- grep('2',bestVote$theyvote)
i1 <- grep('1',bestVote$theyvote)
j5 <- grep('5',bestVote$thisvote)
j4 <- grep('4', bestVote$thisvote)
j3 <- grep('3',bestVote$thisvote)
j2 <- grep('2',bestVote$thisvote)
j1 <- grep('1',bestVote$thisvote)
k5 <- grep('5',bestVote$withvote)
k4 <- grep('4', bestVote$withvote)
k3 <- grep('3',bestVote$withvote)
k2 <- grep('2',bestVote$withvote)
k1 <- grep('1',bestVote$withvote)
l5 <- grep('5',bestVote$youvote)
l4 <- grep('4', bestVote$youvote)
l3 <- grep('3',bestVote$youvote)
l2 <- grep('2',bestVote$youvote)
l1 <- grep('1',bestVote$youvote)
A5 <- grep('5',bestVote$areavote)
A4 <- grep('4', bestVote$areavote)
A3 <- grep('3',bestVote$areavote)
A2 <- grep('2',bestVote$areavote)
A1 <- grep('1',bestVote$areavote)
B5 <- grep('5',bestVote$bigvote)
B4 <- grep('4', bestVote$bigvote)
B3 <- grep('3',bestVote$bigvote)
B2 <- grep('2',bestVote$bigvote)
B1 <- grep('1',bestVote$bigvote)
C5 <- grep('5',bestVote$busyvote)
C4 <- grep('4', bestVote$busyvote)
C3 <- grep('3',bestVote$busyvote)
C2 <- grep('2',bestVote$busyvote)
C1 <- grep('1',bestVote$busyvote)
D5 <- grep('5',bestVote$definitelyvote)
D4 <- grep('4', bestVote$definitelyvote)
D3 <- grep('3',bestVote$definitelyvote)
D2 <- grep('2',bestVote$definitelyvote)
D1 <- grep('1',bestVote$definitelyvote)
E5 <- grep('5',bestVote$feelvote)
E4 <- grep('4', bestVote$feelvote)
E3 <- grep('3',bestVote$feelvote)
E2 <- grep('2',bestVote$feelvote)
E1 <- grep('1',bestVote$feelvote)
F5 <- grep('5',bestVote$lotvote)
F4 <- grep('4', bestVote$lotvote)
F3 <- grep('3',bestVote$lotvote)
F2 <- grep('2',bestVote$lotvote)
F1 <- grep('1',bestVote$lotvote)
G5 <- grep('5',bestVote$manyvote)
G4 <- grep('4', bestVote$manyvote)
G3 <- grep('3',bestVote$manyvote)
G2 <- grep('2',bestVote$manyvote)
G1 <- grep('1',bestVote$manyvote)
H5 <- grep('5',bestVote$openvote)
H4 <- grep('4', bestVote$openvote)
H3 <- grep('3',bestVote$openvote)
H2 <- grep('2',bestVote$openvote)
H1 <- grep('1',bestVote$openvote)
I5 <- grep('5',bestVote$plusvote)
I4 <- grep('4', bestVote$plusvote)
I3 <- grep('3',bestVote$plusvote)
I2 <- grep('2',bestVote$plusvote)
I1 <- grep('1',bestVote$plusvote)
J5 <- grep('5',bestVote$twovote)
J4 <- grep('4', bestVote$twovote)
J3 <- grep('3',bestVote$twovote)
J2 <- grep('2',bestVote$twovote)
J1 <- grep('1',bestVote$twovote)
K5 <- grep('5',bestVote$worthvote)
K4 <- grep('4', bestVote$worthvote)
K3 <- grep('3',bestVote$worthvote)
K2 <- grep('2',bestVote$worthvote)
K1 <- grep('1',bestVote$worthvote)
L5 <- grep('5',bestVote$yearvote)
L4 <- grep('4', bestVote$yearvote)
L3 <- grep('3',bestVote$yearvote)
L2 <- grep('2',bestVote$yearvote)
L1 <- grep('1',bestVote$yearvote)
bestVote$counts1[l1] <- bestVote$counts1[l1]+ 1
bestVote$counts1[k1] <- bestVote$counts1[k1]+ 1
bestVote$counts1[j1] <- bestVote$counts1[j1]+ 1
bestVote$counts1[i1] <- bestVote$counts1[i1]+ 1
bestVote$counts1[h1] <- bestVote$counts1[h1]+ 1
bestVote$counts1[g1] <- bestVote$counts1[g1]+ 1
bestVote$counts1[f1] <- bestVote$counts1[f1]+ 1
bestVote$counts1[e1] <- bestVote$counts1[e1]+ 1
bestVote$counts1[d1] <- bestVote$counts1[d1]+ 1
bestVote$counts1[c1] <- bestVote$counts1[c1]+ 1
bestVote$counts1[b1] <- bestVote$counts1[b1]+ 1
bestVote$counts1[a1] <- bestVote$counts1[a1]+ 1
bestVote$counts2[l2] <- bestVote$counts2[l2] + 1
bestVote$counts2[k2] <- bestVote$counts2[k2] + 1
bestVote$counts2[j2] <- bestVote$counts2[j2] + 1
bestVote$counts2[i2] <- bestVote$counts2[i2] + 1
bestVote$counts2[h2] <- bestVote$counts2[h2] + 1
bestVote$counts2[g2] <- bestVote$counts2[g2] + 1
bestVote$counts2[f2] <- bestVote$counts2[f2] + 1
bestVote$counts2[e2] <- bestVote$counts2[e2] + 1
bestVote$counts2[d2] <- bestVote$counts2[d2] + 1
bestVote$counts2[c2] <- bestVote$counts2[c2] + 1
bestVote$counts2[b2] <- bestVote$counts2[b2] + 1
bestVote$counts2[a2] <- bestVote$counts2[a2] + 1
bestVote$counts3[l3] <- bestVote$counts3[l3] + 1
bestVote$counts3[k3] <- bestVote$counts3[k3] + 1
bestVote$counts3[j3] <- bestVote$counts3[j3] + 1
bestVote$counts3[i3] <- bestVote$counts3[i3] + 1
bestVote$counts3[h3] <- bestVote$counts3[h3] + 1
bestVote$counts3[g3] <- bestVote$counts3[g3] + 1
bestVote$counts3[f3] <- bestVote$counts3[f3] + 1
bestVote$counts3[e3] <- bestVote$counts3[e3] + 1
bestVote$counts3[d3] <- bestVote$counts3[d3] + 1
bestVote$counts3[c3] <- bestVote$counts3[c3] + 1
bestVote$counts3[b3] <- bestVote$counts3[b3] + 1
bestVote$counts3[a3] <- bestVote$counts3[a3] + 1
bestVote$counts4[l4] <- bestVote$counts4[l4] + 1
bestVote$counts4[k4] <- bestVote$counts4[k4] + 1
bestVote$counts4[j4] <- bestVote$counts4[j4] + 1
bestVote$counts4[i4] <- bestVote$counts4[i4] + 1
bestVote$counts4[h4] <- bestVote$counts4[h4] + 1
bestVote$counts4[g4] <- bestVote$counts4[g4] + 1
bestVote$counts4[f4] <- bestVote$counts4[f4] + 1
bestVote$counts4[e4] <- bestVote$counts4[e4] + 1
bestVote$counts4[d4] <- bestVote$counts4[d4] + 1
bestVote$counts4[c4] <- bestVote$counts4[c4] + 1
bestVote$counts4[b4] <- bestVote$counts4[b4] + 1
bestVote$counts4[a4] <- bestVote$counts4[a4] + 1
bestVote$counts5[l5] <- bestVote$counts5[l5] + 1
bestVote$counts5[k5] <- bestVote$counts5[k5] + 1
bestVote$counts5[j5] <- bestVote$counts5[j5] + 1
bestVote$counts5[i5] <- bestVote$counts5[i5] + 1
bestVote$counts5[h5] <- bestVote$counts5[h5] + 1
bestVote$counts5[g5] <- bestVote$counts5[g5] + 1
bestVote$counts5[f5] <- bestVote$counts5[f5] + 1
bestVote$counts5[e5] <- bestVote$counts5[e5] + 1
bestVote$counts5[d5] <- bestVote$counts5[d5] + 1
bestVote$counts5[c5] <- bestVote$counts5[c5] + 1
bestVote$counts5[b5] <- bestVote$counts5[b5] + 1
bestVote$counts5[a5] <- bestVote$counts5[a5] + 1
bestVote$counts1[L1] <- bestVote$counts1[L1]+ 1
bestVote$counts1[K1] <- bestVote$counts1[K1]+ 1
bestVote$counts1[J1] <- bestVote$counts1[J1]+ 1
bestVote$counts1[I1] <- bestVote$counts1[I1]+ 1
bestVote$counts1[H1] <- bestVote$counts1[H1]+ 1
bestVote$counts1[G1] <- bestVote$counts1[G1]+ 1
bestVote$counts1[F1] <- bestVote$counts1[F1]+ 1
bestVote$counts1[E1] <- bestVote$counts1[E1]+ 1
bestVote$counts1[D1] <- bestVote$counts1[D1]+ 1
bestVote$counts1[C1] <- bestVote$counts1[C1]+ 1
bestVote$counts1[B1] <- bestVote$counts1[B1]+ 1
bestVote$counts1[A1] <- bestVote$counts1[A1]+ 1
bestVote$counts2[L2] <- bestVote$counts2[L2] + 1
bestVote$counts2[K2] <- bestVote$counts2[K2] + 1
bestVote$counts2[J2] <- bestVote$counts2[J2] + 1
bestVote$counts2[I2] <- bestVote$counts2[I2] + 1
bestVote$counts2[H2] <- bestVote$counts2[H2] + 1
bestVote$counts2[G2] <- bestVote$counts2[G2] + 1
bestVote$counts2[F2] <- bestVote$counts2[F2] + 1
bestVote$counts2[E2] <- bestVote$counts2[E2] + 1
bestVote$counts2[D2] <- bestVote$counts2[D2] + 1
bestVote$counts2[C2] <- bestVote$counts2[C2] + 1
bestVote$counts2[B2] <- bestVote$counts2[B2] + 1
bestVote$counts2[A2] <- bestVote$counts2[A2] + 1
bestVote$counts3[L3] <- bestVote$counts3[L3] + 1
bestVote$counts3[K3] <- bestVote$counts3[K3] + 1
bestVote$counts3[J3] <- bestVote$counts3[J3] + 1
bestVote$counts3[I3] <- bestVote$counts3[I3] + 1
bestVote$counts3[H3] <- bestVote$counts3[H3] + 1
bestVote$counts3[G3] <- bestVote$counts3[G3] + 1
bestVote$counts3[F3] <- bestVote$counts3[F3] + 1
bestVote$counts3[E3] <- bestVote$counts3[E3] + 1
bestVote$counts3[D3] <- bestVote$counts3[D3] + 1
bestVote$counts3[C3] <- bestVote$counts3[C3] + 1
bestVote$counts3[B3] <- bestVote$counts3[B3] + 1
bestVote$counts3[A3] <- bestVote$counts3[A3] + 1
bestVote$counts4[L4] <- bestVote$counts4[L4] + 1
bestVote$counts4[K4] <- bestVote$counts4[K4] + 1
bestVote$counts4[J4] <- bestVote$counts4[J4] + 1
bestVote$counts4[I4] <- bestVote$counts4[I4] + 1
bestVote$counts4[H4] <- bestVote$counts4[H4] + 1
bestVote$counts4[G4] <- bestVote$counts4[G4] + 1
bestVote$counts4[F4] <- bestVote$counts4[F4] + 1
bestVote$counts4[E4] <- bestVote$counts4[E4] + 1
bestVote$counts4[D4] <- bestVote$counts4[D4] + 1
bestVote$counts4[C4] <- bestVote$counts4[C4] + 1
bestVote$counts4[B4] <- bestVote$counts4[B4] + 1
bestVote$counts4[A4] <- bestVote$counts4[A4] + 1
bestVote$counts5[L5] <- bestVote$counts5[L5] + 1
bestVote$counts5[K5] <- bestVote$counts5[K5] + 1
bestVote$counts5[J5] <- bestVote$counts5[J5] + 1
bestVote$counts5[I5] <- bestVote$counts5[I5] + 1
bestVote$counts5[H5] <- bestVote$counts5[H5] + 1
bestVote$counts5[G5] <- bestVote$counts5[G5] + 1
bestVote$counts5[F5] <- bestVote$counts5[F5] + 1
bestVote$counts5[E5] <- bestVote$counts5[E5] + 1
bestVote$counts5[D5] <- bestVote$counts5[D5] + 1
bestVote$counts5[C5] <- bestVote$counts5[C5] + 1
bestVote$counts5[B5] <- bestVote$counts5[B5] + 1
bestVote$counts5[A5] <- bestVote$counts5[A5] + 1
!@#$%
bestVote$maxVote <- apply(bestVote[25:29],1,max)
mv <- bestVote$maxVote
ct1 <- bestVote$counts1
ct2 <- bestVote$counts2
ct3 <- bestVote$counts3
ct4 <- bestVote$counts4
ct5 <- bestVote$counts5
bestVote$votedRating <- ifelse(mv==ct1, 1,
ifelse(mv==ct2, 2,
ifelse(mv==ct3, 3,
ifelse(mv==ct4, 4, 5))))
bestVote$Rating <- ifelse(mv==ct1 & (mv==ct2|mv==ct3|mv==ct4|mv==ct5),'tie',
ifelse(mv==ct1,1,
ifelse(mv==ct2 & (mv==ct3|mv==ct4|mv==ct5),'tie',
ifelse(mv==ct2, 2,
ifelse(mv==ct3 &(mv==ct4|mv==ct5),'tie',
ifelse(mv==ct3, 3,
ifelse(mv==ct4 & mv==ct5, 'tie',
ifelse(mv==ct4, 4,5
)))))))
)
bestVote$finalPrediction <- ifelse(bestVote$Rating=='tie',
ifelse(ceiling(mean(c(ct1,ct2,ct3,ct4,ct5)*c(1,2,3,4,5))/5) > 5,
5, ceiling(mean(c(ct1,ct2,ct3,ct4,ct5)*c(1,2,3,4,5))/5)),
bestVote$votedRating )
Now that we have our final prediction with this algorithm. Lets attach these two tables together and rearrange the columns.
bestVote$CorrectlyPredicted <- ifelse(MLr$userRatingValue==bestVote$finalPrediction,1,0)
MLr2 <- cbind(MLr, bestVote)
MLr3 <- MLr2[,c(2:347,1)]
MLr3$CorrectPrediction <- ifelse(MLr3$finalPrediction==MLr3$userRatingValue,
1,0)
MLr3$finalPrediction <- as.factor(paste(MLr3$finalPrediction))
MLr3$userRatingValue <- paste('rating ', MLr3$userRatingValue,sep='')
Accuracy <- sum(MLr3$CorrectPrediction)/length(MLr3$CorrectPrediction)
Accuracy
## [1] 0.1433225
Ok, so we see the results are the same if we leave the NAs in place or revert back to counting them as zeros. This makes sense since our algorithm selects the minimum value and previously when there were NAs just skipped them, but the minimum values in our data were all less than zero. Hence, the same results.
Now, lets change the data to having the difference between ratios be the absolute value instead of the lowest negative value because this will actually take the shortest distance or closest to zero as being the correct rating in ratios of document to all documents per rating of the ratios of term/total terms. However, in this case, since we aren’t using NAs and are instead using zeros, it will select the zeros as the shortest distance and thus closest rating for each term that is missing. To fix this lets revert back to the datatables with NAs. This will be simple because it is just our ML_rating_data. We don’t have to do the type conversion and matrix to data frame steps. We will be modifying the difference or diff columns to take the absolute value function of the difference. But everything else is the same.
MLr <- ML_rating_data
MLr$R1_area <- rep(w2w[1,1],length(MLr$userRatingValue))
MLr$R2_area <- rep(w2w[2,1],length(MLr$userRatingValue))
MLr$R3_area <- rep(w2w[3,1],length(MLr$userRatingValue))
MLr$R4_area <- rep(w2w[4,1],length(MLr$userRatingValue))
MLr$R5_area <- rep(w2w[5,1],length(MLr$userRatingValue))
MLr$R1_big <- rep(w2w[1,2],length(MLr$userRatingValue))
MLr$R2_big <- rep(w2w[2,2],length(MLr$userRatingValue))
MLr$R3_big <- rep(w2w[3,2],length(MLr$userRatingValue))
MLr$R4_big <- rep(w2w[4,2],length(MLr$userRatingValue))
MLr$R5_big <- rep(w2w[5,2],length(MLr$userRatingValue))
MLr$R1_busy <- rep(w2w[1,3],length(MLr$userRatingValue))
MLr$R2_busy <- rep(w2w[2,3],length(MLr$userRatingValue))
MLr$R3_busy <- rep(w2w[3,3],length(MLr$userRatingValue))
MLr$R4_busy <- rep(w2w[4,3],length(MLr$userRatingValue))
MLr$R5_busy <- rep(w2w[5,3],length(MLr$userRatingValue))
MLr$R1_definitely <- rep(w2w[1,4],length(MLr$userRatingValue))
MLr$R2_definitely <- rep(w2w[2,4],length(MLr$userRatingValue))
MLr$R3_definitely <- rep(w2w[3,4],length(MLr$userRatingValue))
MLr$R4_definitely <- rep(w2w[4,4],length(MLr$userRatingValue))
MLr$R5_definitely <- rep(w2w[5,4],length(MLr$userRatingValue))
MLr$R1_feel <- rep(w2w[1,5],length(MLr$userRatingValue))
MLr$R2_feel <- rep(w2w[2,5],length(MLr$userRatingValue))
MLr$R3_feel <- rep(w2w[3,5],length(MLr$userRatingValue))
MLr$R4_feel <- rep(w2w[4,5],length(MLr$userRatingValue))
MLr$R5_feel <- rep(w2w[5,5],length(MLr$userRatingValue))
MLr$R1_lot <- rep(w2w[1,6],length(MLr$userRatingValue))
MLr$R2_lot <- rep(w2w[2,6],length(MLr$userRatingValue))
MLr$R3_lot <- rep(w2w[3,6],length(MLr$userRatingValue))
MLr$R4_lot <- rep(w2w[4,6],length(MLr$userRatingValue))
MLr$R5_lot <- rep(w2w[5,6],length(MLr$userRatingValue))
MLr$R1_many <- rep(w2w[1,7],length(MLr$userRatingValue))
MLr$R2_many <- rep(w2w[2,7],length(MLr$userRatingValue))
MLr$R3_many <- rep(w2w[3,7],length(MLr$userRatingValue))
MLr$R4_many <- rep(w2w[4,7],length(MLr$userRatingValue))
MLr$R5_many <- rep(w2w[5,7],length(MLr$userRatingValue))
MLr$R1_open <- rep(w2w[1,8],length(MLr$userRatingValue))
MLr$R2_open <- rep(w2w[2,8],length(MLr$userRatingValue))
MLr$R3_open <- rep(w2w[3,8],length(MLr$userRatingValue))
MLr$R4_open <- rep(w2w[4,8],length(MLr$userRatingValue))
MLr$R5_open <- rep(w2w[5,8],length(MLr$userRatingValue))
MLr$R1_plus <- rep(w2w[1,9],length(MLr$userRatingValue))
MLr$R2_plus <- rep(w2w[2,9],length(MLr$userRatingValue))
MLr$R3_plus <- rep(w2w[3,9],length(MLr$userRatingValue))
MLr$R4_plus <- rep(w2w[4,9],length(MLr$userRatingValue))
MLr$R5_plus <- rep(w2w[5,9],length(MLr$userRatingValue))
MLr$R1_two <- rep(w2w[1,10],length(MLr$userRatingValue))
MLr$R2_two <- rep(w2w[2,10],length(MLr$userRatingValue))
MLr$R3_two <- rep(w2w[3,10],length(MLr$userRatingValue))
MLr$R4_two <- rep(w2w[4,10],length(MLr$userRatingValue))
MLr$R5_two <- rep(w2w[5,10],length(MLr$userRatingValue))
MLr$R1_worth <- rep(w2w[1,11],length(MLr$userRatingValue))
MLr$R2_worth <- rep(w2w[2,11],length(MLr$userRatingValue))
MLr$R3_worth <- rep(w2w[3,11],length(MLr$userRatingValue))
MLr$R4_worth <- rep(w2w[4,11],length(MLr$userRatingValue))
MLr$R5_worth <- rep(w2w[5,11],length(MLr$userRatingValue))
MLr$R1_year <- rep(w2w[1,12],length(MLr$userRatingValue))
MLr$R2_year <- rep(w2w[2,12],length(MLr$userRatingValue))
MLr$R3_year <- rep(w2w[3,12],length(MLr$userRatingValue))
MLr$R4_year <- rep(w2w[4,12],length(MLr$userRatingValue))
MLr$R5_year <- rep(w2w[5,12],length(MLr$userRatingValue))
MLr$R1_and <- rep(w2w[1,13],length(MLr$userRatingValue))
MLr$R2_and <- rep(w2w[2,13],length(MLr$userRatingValue))
MLr$R3_and <- rep(w2w[3,13],length(MLr$userRatingValue))
MLr$R4_and <- rep(w2w[4,13],length(MLr$userRatingValue))
MLr$R5_and <- rep(w2w[5,13],length(MLr$userRatingValue))
MLr$R1_but <- rep(w2w[1,14],length(MLr$userRatingValue))
MLr$R2_but <- rep(w2w[2,14],length(MLr$userRatingValue))
MLr$R3_but <- rep(w2w[3,14],length(MLr$userRatingValue))
MLr$R4_but <- rep(w2w[4,14],length(MLr$userRatingValue))
MLr$R5_but <- rep(w2w[5,14],length(MLr$userRatingValue))
MLr$R1_for <- rep(w2w[1,15],length(MLr$userRatingValue))
MLr$R2_for <- rep(w2w[2,15],length(MLr$userRatingValue))
MLr$R3_for <- rep(w2w[3,15],length(MLr$userRatingValue))
MLr$R4_for <- rep(w2w[4,15],length(MLr$userRatingValue))
MLr$R5_for <- rep(w2w[5,15],length(MLr$userRatingValue))
MLr$R1_good <- rep(w2w[1,16],length(MLr$userRatingValue))
MLr$R2_good <- rep(w2w[2,16],length(MLr$userRatingValue))
MLr$R3_good <- rep(w2w[3,16],length(MLr$userRatingValue))
MLr$R4_good <- rep(w2w[4,16],length(MLr$userRatingValue))
MLr$R5_good <- rep(w2w[5,16],length(MLr$userRatingValue))
MLr$R1_have <- rep(w2w[1,17],length(MLr$userRatingValue))
MLr$R2_have <- rep(w2w[2,17],length(MLr$userRatingValue))
MLr$R3_have <- rep(w2w[3,17],length(MLr$userRatingValue))
MLr$R4_have <- rep(w2w[4,17],length(MLr$userRatingValue))
MLr$R5_have <- rep(w2w[5,17],length(MLr$userRatingValue))
MLr$R1_not <- rep(w2w[1,18],length(MLr$userRatingValue))
MLr$R2_not <- rep(w2w[2,18],length(MLr$userRatingValue))
MLr$R3_not <- rep(w2w[3,18],length(MLr$userRatingValue))
MLr$R4_not <- rep(w2w[4,18],length(MLr$userRatingValue))
MLr$R5_not <- rep(w2w[5,18],length(MLr$userRatingValue))
MLr$R1_that <- rep(w2w[1,19],length(MLr$userRatingValue))
MLr$R2_that <- rep(w2w[2,19],length(MLr$userRatingValue))
MLr$R3_that <- rep(w2w[3,19],length(MLr$userRatingValue))
MLr$R4_that <- rep(w2w[4,19],length(MLr$userRatingValue))
MLr$R5_that <- rep(w2w[5,19],length(MLr$userRatingValue))
MLr$R1_the <- rep(w2w[1,20],length(MLr$userRatingValue))
MLr$R2_the <- rep(w2w[2,20],length(MLr$userRatingValue))
MLr$R3_the <- rep(w2w[3,20],length(MLr$userRatingValue))
MLr$R4_the <- rep(w2w[4,20],length(MLr$userRatingValue))
MLr$R5_the <- rep(w2w[5,20],length(MLr$userRatingValue))
MLr$R1_they <- rep(w2w[1,21],length(MLr$userRatingValue))
MLr$R2_they <- rep(w2w[2,21],length(MLr$userRatingValue))
MLr$R3_they <- rep(w2w[3,21],length(MLr$userRatingValue))
MLr$R4_they <- rep(w2w[4,21],length(MLr$userRatingValue))
MLr$R5_they <- rep(w2w[5,21],length(MLr$userRatingValue))
MLr$R1_this <- rep(w2w[1,22],length(MLr$userRatingValue))
MLr$R2_this <- rep(w2w[2,22],length(MLr$userRatingValue))
MLr$R3_this <- rep(w2w[3,22],length(MLr$userRatingValue))
MLr$R4_this <- rep(w2w[4,22],length(MLr$userRatingValue))
MLr$R5_this <- rep(w2w[5,22],length(MLr$userRatingValue))
MLr$R1_with <- rep(w2w[1,23],length(MLr$userRatingValue))
MLr$R2_with <- rep(w2w[2,23],length(MLr$userRatingValue))
MLr$R3_with <- rep(w2w[3,23],length(MLr$userRatingValue))
MLr$R4_with <- rep(w2w[4,23],length(MLr$userRatingValue))
MLr$R5_with <- rep(w2w[5,23],length(MLr$userRatingValue))
MLr$R1_you <- rep(w2w[1,24],length(MLr$userRatingValue))
MLr$R2_you <- rep(w2w[2,24],length(MLr$userRatingValue))
MLr$R3_you <- rep(w2w[3,24],length(MLr$userRatingValue))
MLr$R4_you <- rep(w2w[4,24],length(MLr$userRatingValue))
MLr$R5_you <- rep(w2w[5,24],length(MLr$userRatingValue))
At this point we would/could get the absolute value of each difference then get the minimum result to vote on.You can do this easily by find and replace within RStudio and replacing MLr\(R with abs(MLr\)R), then replacing ratios with ratios) making sure to select the ‘in selection’ box before selecting replace all. If you get more than 120, make sure you saved the last point and close then reopen, because you made a mess you don’t want to save.
MLr$area_diff1 <- abs(MLr$R1_area-MLr$area_ratios)
MLr$area_diff2 <- abs(MLr$R2_area-MLr$area_ratios)
MLr$area_diff3 <- abs(MLr$R3_area-MLr$area_ratios)
MLr$area_diff4 <- abs(MLr$R4_area-MLr$area_ratios)
MLr$area_diff5 <- abs(MLr$R5_area-MLr$area_ratios)
MLr$big_diff1 <- abs(MLr$R1_big-MLr$big_ratios)
MLr$big_diff2 <- abs(MLr$R2_big-MLr$big_ratios)
MLr$big_diff3 <- abs(MLr$R3_big-MLr$big_ratios)
MLr$big_diff4 <- abs(MLr$R4_big-MLr$big_ratios)
MLr$big_diff5 <- abs(MLr$R5_big-MLr$big_ratios)
MLr$busy_diff1 <- abs(MLr$R1_busy-MLr$busy_ratios)
MLr$busy_diff2 <- abs(MLr$R2_busy-MLr$busy_ratios)
MLr$busy_diff3 <- abs(MLr$R3_busy-MLr$busy_ratios)
MLr$busy_diff4 <- abs(MLr$R4_busy-MLr$busy_ratios)
MLr$busy_diff5 <- abs(MLr$R5_busy-MLr$busy_ratios)
MLr$definitely_diff1 <- abs(MLr$R1_definitely-MLr$definitely_ratios)
MLr$definitely_diff2 <- abs(MLr$R2_definitely-MLr$definitely_ratios)
MLr$definitely_diff3 <- abs(MLr$R3_definitely-MLr$definitely_ratios)
MLr$definitely_diff4 <- abs(MLr$R4_definitely-MLr$definitely_ratios)
MLr$definitely_diff5 <- abs(MLr$R5_definitely-MLr$definitely_ratios)
MLr$feel_diff1 <- abs(MLr$R1_feel-MLr$feel_ratios)
MLr$feel_diff2 <- abs(MLr$R2_feel-MLr$feel_ratios)
MLr$feel_diff3 <- abs(MLr$R3_feel-MLr$feel_ratios)
MLr$feel_diff4 <- abs(MLr$R4_feel-MLr$feel_ratios)
MLr$feel_diff5 <- abs(MLr$R5_feel-MLr$feel_ratios)
MLr$lot_diff1 <- abs(MLr$R1_lot-MLr$lot_ratios)
MLr$lot_diff2 <- abs(MLr$R2_lot-MLr$lot_ratios)
MLr$lot_diff3 <- abs(MLr$R3_lot-MLr$lot_ratios)
MLr$lot_diff4 <- abs(MLr$R4_lot-MLr$lot_ratios)
MLr$lot_diff5 <- abs(MLr$R5_lot-MLr$lot_ratios)
MLr$many_diff1 <- abs(MLr$R1_many-MLr$many_ratios)
MLr$many_diff2 <- abs(MLr$R2_many-MLr$many_ratios)
MLr$many_diff3 <- abs(MLr$R3_many-MLr$many_ratios)
MLr$many_diff4 <- abs(MLr$R4_many-MLr$many_ratios)
MLr$many_diff5 <- abs(MLr$R5_many-MLr$many_ratios)
MLr$open_diff1 <- abs(MLr$R1_open-MLr$open_ratios)
MLr$open_diff2 <- abs(MLr$R2_open-MLr$open_ratios)
MLr$open_diff3 <- abs(MLr$R3_open-MLr$open_ratios)
MLr$open_diff4 <- abs(MLr$R4_open-MLr$open_ratios)
MLr$open_diff5 <- abs(MLr$R5_open-MLr$open_ratios)
MLr$plus_diff1 <- abs(MLr$R1_plus-MLr$plus_ratios)
MLr$plus_diff2 <- abs(MLr$R2_plus-MLr$plus_ratios)
MLr$plus_diff3 <- abs(MLr$R3_plus-MLr$plus_ratios)
MLr$plus_diff4 <- abs(MLr$R4_plus-MLr$plus_ratios)
MLr$plus_diff5 <- abs(MLr$R5_plus-MLr$plus_ratios)
MLr$two_diff1 <- abs(MLr$R1_two-MLr$two_ratios)
MLr$two_diff2 <- abs(MLr$R2_two-MLr$two_ratios)
MLr$two_diff3 <- abs(MLr$R3_two-MLr$two_ratios)
MLr$two_diff4 <- abs(MLr$R4_two-MLr$two_ratios)
MLr$two_diff5 <- abs(MLr$R5_two-MLr$two_ratios)
MLr$worth_diff1 <- abs(MLr$R1_worth-MLr$worth_ratios)
MLr$worth_diff2 <- abs(MLr$R2_worth-MLr$worth_ratios)
MLr$worth_diff3 <- abs(MLr$R3_worth-MLr$worth_ratios)
MLr$worth_diff4 <- abs(MLr$R4_worth-MLr$worth_ratios)
MLr$worth_diff5 <- abs(MLr$R5_worth-MLr$worth_ratios)
MLr$year_diff1 <- abs(MLr$R1_year-MLr$year_ratios)
MLr$year_diff2 <- abs(MLr$R2_year-MLr$year_ratios)
MLr$year_diff3 <- abs(MLr$R3_year-MLr$year_ratios)
MLr$year_diff4 <- abs(MLr$R4_year-MLr$year_ratios)
MLr$year_diff5 <- abs(MLr$R5_year-MLr$year_ratios)
MLr$and_diff1 <- abs(MLr$R1_and-MLr$and_ratios)
MLr$and_diff2 <- abs(MLr$R2_and-MLr$and_ratios)
MLr$and_diff3 <- abs(MLr$R3_and-MLr$and_ratios)
MLr$and_diff4 <- abs(MLr$R4_and-MLr$and_ratios)
MLr$and_diff5 <- abs(MLr$R5_and-MLr$and_ratios)
MLr$but_diff1 <- abs(MLr$R1_but-MLr$but_ratios)
MLr$but_diff2 <- abs(MLr$R2_but-MLr$but_ratios)
MLr$but_diff3 <- abs(MLr$R3_but-MLr$but_ratios)
MLr$but_diff4 <- abs(MLr$R4_but-MLr$but_ratios)
MLr$but_diff5 <- abs(MLr$R5_but-MLr$but_ratios)
MLr$for_diff1 <- abs(MLr$R1_for-MLr$for_ratios)
MLr$for_diff2 <- abs(MLr$R2_for-MLr$for_ratios)
MLr$for_diff3 <- abs(MLr$R3_for-MLr$for_ratios)
MLr$for_diff4 <- abs(MLr$R4_for-MLr$for_ratios)
MLr$for_diff5 <- abs(MLr$R5_for-MLr$for_ratios)
MLr$good_diff1 <- abs(MLr$R1_good-MLr$good_ratios)
MLr$good_diff2 <- abs(MLr$R2_good-MLr$good_ratios)
MLr$good_diff3 <- abs(MLr$R3_good-MLr$good_ratios)
MLr$good_diff4 <- abs(MLr$R4_good-MLr$good_ratios)
MLr$good_diff5 <- abs(MLr$R5_good-MLr$good_ratios)
MLr$have_diff1 <- abs(MLr$R1_have-MLr$have_ratios)
MLr$have_diff2 <- abs(MLr$R2_have-MLr$have_ratios)
MLr$have_diff3 <- abs(MLr$R3_have-MLr$have_ratios)
MLr$have_diff4 <- abs(MLr$R4_have-MLr$have_ratios)
MLr$have_diff5 <- abs(MLr$R5_have-MLr$have_ratios)
MLr$not_diff1 <- abs(MLr$R1_not-MLr$not_ratios)
MLr$not_diff2 <- abs(MLr$R2_not-MLr$not_ratios)
MLr$not_diff3 <- abs(MLr$R3_not-MLr$not_ratios)
MLr$not_diff4 <- abs(MLr$R4_not-MLr$not_ratios)
MLr$not_diff5 <- abs(MLr$R5_not-MLr$not_ratios)
MLr$that_diff1 <- abs(MLr$R1_that-MLr$that_ratios)
MLr$that_diff2 <- abs(MLr$R2_that-MLr$that_ratios)
MLr$that_diff3 <- abs(MLr$R3_that-MLr$that_ratios)
MLr$that_diff4 <- abs(MLr$R4_that-MLr$that_ratios)
MLr$that_diff5 <- abs(MLr$R5_that-MLr$that_ratios)
MLr$the_diff1 <- abs(MLr$R1_the-MLr$the_ratios)
MLr$the_diff2 <- abs(MLr$R2_the-MLr$the_ratios)
MLr$the_diff3 <- abs(MLr$R3_the-MLr$the_ratios)
MLr$the_diff4 <- abs(MLr$R4_the-MLr$the_ratios)
MLr$the_diff5 <- abs(MLr$R5_the-MLr$the_ratios)
MLr$they_diff1 <- abs(MLr$R1_they-MLr$they_ratios)
MLr$they_diff2 <- abs(MLr$R2_they-MLr$they_ratios)
MLr$they_diff3 <- abs(MLr$R3_they-MLr$they_ratios)
MLr$they_diff4 <- abs(MLr$R4_they-MLr$they_ratios)
MLr$they_diff5 <- abs(MLr$R5_they-MLr$they_ratios)
MLr$this_diff1 <- abs(MLr$R1_this-MLr$this_ratios)
MLr$this_diff2 <- abs(MLr$R2_this-MLr$this_ratios)
MLr$this_diff3 <- abs(MLr$R3_this-MLr$this_ratios)
MLr$this_diff4 <- abs(MLr$R4_this-MLr$this_ratios)
MLr$this_diff5 <- abs(MLr$R5_this-MLr$this_ratios)
MLr$with_diff1 <- abs(MLr$R1_with-MLr$with_ratios)
MLr$with_diff2 <- abs(MLr$R2_with-MLr$with_ratios)
MLr$with_diff3 <- abs(MLr$R3_with-MLr$with_ratios)
MLr$with_diff4 <- abs(MLr$R4_with-MLr$with_ratios)
MLr$with_diff5 <- abs(MLr$R5_with-MLr$with_ratios)
MLr$you_diff1 <- abs(MLr$R1_you-MLr$you_ratios)
MLr$you_diff2 <- abs(MLr$R2_you-MLr$you_ratios)
MLr$you_diff3 <- abs(MLr$R3_you-MLr$you_ratios)
MLr$you_diff4 <- abs(MLr$R4_you-MLr$you_ratios)
MLr$you_diff5 <- abs(MLr$R5_you-MLr$you_ratios)
Get the minimum value of the term/total terms per document difference from the ratings term/total terms per rating values.
MLr$areaMin <- apply(MLr[146:150],1, min,na.rm=TRUE)
MLr$areavote <- ifelse(MLr$area_diff1==MLr$areaMin,
1,
ifelse(MLr$area_diff2==MLr$areaMin,
2,
ifelse(MLr$area_diff3==MLr$areaMin,
3,
ifelse(MLr$area_diff4==MLr$areaMin,
4,
ifelse(MLr$area_diff5==MLr$areaMin,
5, NA )
)
)
)
)
MLr$bigMin <- apply(MLr[151:155],1, min,na.rm=TRUE)
MLr$bigvote <- ifelse(MLr$big_diff1==MLr$bigMin,
1,
ifelse(MLr$big_diff2==MLr$bigMin,
2,
ifelse(MLr$big_diff3==MLr$bigMin,
3,
ifelse(MLr$big_diff4==MLr$bigMin,
4,
ifelse(MLr$big_diff5==MLr$bigMin,
5, NA)
)
)
)
)
MLr$busyMin <- apply(MLr[156:160],1, min,na.rm=TRUE)
MLr$busyvote <- ifelse(MLr$busy_diff1==MLr$busyMin,
1,
ifelse(MLr$busy_diff2==MLr$busyMin,
2,
ifelse(MLr$busy_diff3==MLr$busyMin,
3,
ifelse(MLr$busy_diff4==MLr$busyMin,
4,
ifelse(MLr$busy_diff5==MLr$busyMin,
5, NA)
)
)
)
)
MLr$definitelyMin <- apply(MLr[161:165],1, min, na.rm=TRUE)
MLr$definitelyvote <- ifelse(MLr$definitely_diff1==MLr$definitelyMin,
1,
ifelse(MLr$definitely_diff2==MLr$definitelyMin,
2,
ifelse(MLr$definitely_diff3==MLr$definitelyMin,
3,
ifelse(MLr$definitely_diff4==MLr$definitelyMin,
4,
ifelse(MLr$definitely_diff5==MLr$definitelyMin,
5, NA)
)
)
)
)
MLr$feelMin <- apply(MLr[166:170],1, min, na.rm=TRUE)
MLr$feelvote <- ifelse(MLr$feel_diff1==MLr$feelMin,
1,
ifelse(MLr$feel_diff2==MLr$feelMin,
2,
ifelse(MLr$feel_diff3==MLr$feelMin,
3,
ifelse(MLr$feel_diff4==MLr$feelMin,
4,
ifelse(MLr$feel_diff5==MLr$feelMin,
5, NA)
)
)
)
)
MLr$lotMin <- apply(MLr[171:175],1, min, na.rm=TRUE)
MLr$lotvote <- ifelse(MLr$lot_diff1==MLr$lotMin,
1,
ifelse(MLr$lot_diff2==MLr$lotMin,
2,
ifelse(MLr$lot_diff3==MLr$lotMin,
3,
ifelse(MLr$lot_diff4==MLr$lotMin,
4,
ifelse(MLr$lot_diff5==MLr$lotMin,
5, NA)
)
)
)
)
MLr$manyMin <- apply(MLr[176:180],1, min, na.rm=TRUE)
MLr$manyvote <- ifelse(MLr$many_diff1==MLr$manyMin,
1,
ifelse(MLr$many_diff2==MLr$manyMin,
2,
ifelse(MLr$many_diff3==MLr$manyMin,
3,
ifelse(MLr$many_diff4==MLr$manyMin,
4,
ifelse(MLr$many_diff5==MLr$manyMin,
5, NA)
)
)
)
)
MLr$openMin <- apply(MLr[181:185],1, min, na.rm=TRUE)
MLr$openvote <- ifelse(MLr$open_diff1==MLr$openMin,
1,
ifelse(MLr$open_diff2==MLr$openMin,
2,
ifelse(MLr$open_diff3==MLr$openMin,
3,
ifelse(MLr$open_diff4==MLr$openMin,
4,
ifelse(MLr$open_diff5==MLr$openMin,
5, NA)
)
)
)
)
MLr$plusMin <- apply(MLr[186:190],1, min, na.rm=TRUE)
MLr$plusvote <- ifelse(MLr$plus_diff1==MLr$plusMin,
1,
ifelse(MLr$plus_diff2==MLr$plusMin,
2,
ifelse(MLr$plus_diff3==MLr$plusMin,
3,
ifelse(MLr$plus_diff4==MLr$plusMin,
4,
ifelse(MLr$plus_diff5==MLr$plusMin,
5, NA)
)
)
)
)
MLr$twoMin <- apply(MLr[191:195],1, min, na.rm=TRUE)
MLr$twovote <- ifelse(MLr$two_diff1==MLr$twoMin,
1,
ifelse(MLr$two_diff2==MLr$twoMin,
2,
ifelse(MLr$two_diff3==MLr$twoMin,
3,
ifelse(MLr$two_diff4==MLr$twoMin,
4,
ifelse(MLr$two_diff5==MLr$twoMin,
5, NA)
)
)
)
)
MLr$worthMin <- apply(MLr[196:200],1, min, na.rm=TRUE)
MLr$worthvote <- ifelse(MLr$worth_diff1==MLr$worthMin,
1,
ifelse(MLr$worth_diff2==MLr$worthMin,
2,
ifelse(MLr$worth_diff3==MLr$worthMin,
3,
ifelse(MLr$worth_diff4==MLr$worthMin,
4,
ifelse(MLr$worth_diff5==MLr$worthMin,
5, NA)
)
)
)
)
MLr$yearMin <- apply(MLr[201:205],1, min, na.rm=TRUE)
MLr$yearvote <- ifelse(MLr$year_diff1==MLr$yearMin,
1,
ifelse(MLr$year_diff2==MLr$yearMin,
2,
ifelse(MLr$year_diff3==MLr$yearMin,
3,
ifelse(MLr$year_diff4==MLr$yearMin,
4,
ifelse(MLr$year_diff5==MLr$yearMin,
5, NA)
)
)
)
)
MLr$andMin <- apply(MLr[206:210],1, min,na.rm=TRUE)
MLr$andvote <- ifelse(MLr$and_diff1==MLr$andMin,
1,
ifelse(MLr$and_diff2==MLr$andMin,
2,
ifelse(MLr$and_diff3==MLr$andMin,
3,
ifelse(MLr$and_diff4==MLr$andMin,
4,
ifelse(MLr$and_diff5==MLr$andMin,
5, NA)
)
)
)
)
MLr$butMin <- apply(MLr[211:215],1, min, na.rm=TRUE)
MLr$butvote <- ifelse(MLr$but_diff1==MLr$butMin,
1,
ifelse(MLr$but_diff2==MLr$butMin,
2,
ifelse(MLr$but_diff3==MLr$butMin,
3,
ifelse(MLr$but_diff4==MLr$butMin,
4,
ifelse(MLr$but_diff5==MLr$butMin,
5, NA)
)
)
)
)
MLr$forMin <- apply(MLr[216:220],1, min, na.rm=TRUE)
MLr$forvote <- ifelse(MLr$for_diff1==MLr$forMin,
1,
ifelse(MLr$for_diff2==MLr$forMin,
2,
ifelse(MLr$for_diff3==MLr$forMin,
3,
ifelse(MLr$for_diff4==MLr$forMin,
4,
ifelse(MLr$for_diff5==MLr$forMin,
5, NA)
)
)
)
)
MLr$goodMin <- apply(MLr[221:225],1, min, na.rm=TRUE)
MLr$goodvote <- ifelse(MLr$good_diff1==MLr$goodMin,
1,
ifelse(MLr$good_diff2==MLr$goodMin,
2,
ifelse(MLr$good_diff3==MLr$goodMin,
3,
ifelse(MLr$good_diff4==MLr$goodMin,
4,
ifelse(MLr$good_diff5==MLr$goodMin,
5, NA)
)
)
)
)
MLr$haveMin <- apply(MLr[226:230],1, min, na.rm=TRUE)
MLr$havevote <- ifelse(MLr$have_diff1==MLr$haveMin,
1,
ifelse(MLr$have_diff2==MLr$haveMin,
2,
ifelse(MLr$have_diff3==MLr$haveMin,
3,
ifelse(MLr$have_diff4==MLr$haveMin,
4,
ifelse(MLr$have_diff5==MLr$haveMin,
5, NA)
)
)
)
)
MLr$notMin <- apply(MLr[231:235],1, min, na.rm=TRUE)
MLr$notvote <- ifelse(MLr$not_diff1==MLr$notMin,
1,
ifelse(MLr$not_diff2==MLr$notMin,
2,
ifelse(MLr$not_diff3==MLr$notMin,
3,
ifelse(MLr$not_diff4==MLr$notMin,
4,
ifelse(MLr$not_diff5==MLr$notMin,
5, NA)
)
)
)
)
MLr$thatMin <- apply(MLr[236:240],1, min, na.rm=TRUE)
MLr$thatvote <- ifelse(MLr$that_diff1==MLr$thatMin,
1,
ifelse(MLr$that_diff2==MLr$thatMin,
2,
ifelse(MLr$that_diff3==MLr$thatMin,
3,
ifelse(MLr$that_diff4==MLr$thatMin,
4,
ifelse(MLr$that_diff5==MLr$thatMin,
5, NA)
)
)
)
)
MLr$theMin <- apply(MLr[241:245],1, min, na.rm=TRUE)
MLr$thevote <- ifelse(MLr$the_diff1==MLr$theMin,
1,
ifelse(MLr$the_diff2==MLr$theMin,
2,
ifelse(MLr$the_diff3==MLr$theMin,
3,
ifelse(MLr$the_diff4==MLr$theMin,
4,
ifelse(MLr$the_diff5==MLr$theMin,
5, NA)
)
)
)
)
MLr$theyMin <- apply(MLr[246:250],1, min, na.rm=TRUE)
MLr$theyvote <- ifelse(MLr$they_diff1==MLr$theyMin,
1,
ifelse(MLr$they_diff2==MLr$theyMin,
2,
ifelse(MLr$they_diff3==MLr$theyMin,
3,
ifelse(MLr$they_diff4==MLr$theyMin,
4,
ifelse(MLr$they_diff5==MLr$theyMin,
5, NA)
)
)
)
)
MLr$thisMin <- apply(MLr[251:255],1, min, na.rm=TRUE)
MLr$thisvote <- ifelse(MLr$this_diff1==MLr$thisMin,
1,
ifelse(MLr$this_diff2==MLr$thisMin,
2,
ifelse(MLr$this_diff3==MLr$thisMin,
3,
ifelse(MLr$this_diff4==MLr$thisMin,
4,
ifelse(MLr$this_diff5==MLr$thisMin,
5, NA)
)
)
)
)
MLr$withMin <- apply(MLr[256:260],1, min, na.rm=TRUE)
MLr$withvote <- ifelse(MLr$with_diff1==MLr$withMin,
1,
ifelse(MLr$with_diff2==MLr$withMin,
2,
ifelse(MLr$with_diff3==MLr$withMin,
3,
ifelse(MLr$with_diff4==MLr$withMin,
4,
ifelse(MLr$with_diff5==MLr$withMin,
5, NA)
)
)
)
)
MLr$youMin <- apply(MLr[261:265],1, min, na.rm=TRUE)
MLr$youvote <- ifelse(MLr$you_diff1==MLr$youMin,
1,
ifelse(MLr$you_diff2==MLr$youMin,
2,
ifelse(MLr$you_diff3==MLr$youMin,
3,
ifelse(MLr$you_diff4==MLr$youMin,
4,
ifelse(MLr$you_diff5==MLr$youMin,
5, NA)
)
)
)
)
bestVote <- MLr %>% select(areavote, bigvote , busyvote, definitelyvote,
feelvote, lotvote, manyvote, openvote, plusvote,
twovote, worthvote, yearvote, andvote, butvote, forvote,
goodvote, havevote, notvote, thatvote, thevote,
theyvote, thisvote, withvote, youvote )
summary(bestVote)
## areavote bigvote busyvote definitelyvote feelvote
## Min. :2.000 Min. :4.00 Min. :3 Min. :3.000 Min. :1.000
## 1st Qu.:4.000 1st Qu.:4.00 1st Qu.:3 1st Qu.:5.000 1st Qu.:2.000
## Median :4.000 Median :4.00 Median :3 Median :5.000 Median :3.000
## Mean :3.894 Mean :4.05 Mean :3 Mean :4.887 Mean :2.932
## 3rd Qu.:4.000 3rd Qu.:4.00 3rd Qu.:3 3rd Qu.:5.000 3rd Qu.:4.000
## Max. :5.000 Max. :5.00 Max. :3 Max. :5.000 Max. :5.000
## NA's :567 NA's :594 NA's :587 NA's :561 NA's :540
## lotvote manyvote openvote plusvote twovote
## Min. :2.000 Min. :2.000 Min. :3.000 Min. :3 Min. :2.000
## 1st Qu.:5.000 1st Qu.:4.000 1st Qu.:3.000 1st Qu.:3 1st Qu.:3.000
## Median :5.000 Median :4.000 Median :3.000 Median :3 Median :3.000
## Mean :4.698 Mean :3.922 Mean :3.161 Mean :3 Mean :3.171
## 3rd Qu.:5.000 3rd Qu.:4.000 3rd Qu.:3.000 3rd Qu.:3 3rd Qu.:3.000
## Max. :5.000 Max. :4.000 Max. :5.000 Max. :3 Max. :5.000
## NA's :571 NA's :563 NA's :583 NA's :605 NA's :573
## worthvote yearvote andvote butvote
## Min. :3.000 Min. :1.000 Min. :1.000 Min. :1.000
## 1st Qu.:3.000 1st Qu.:5.000 1st Qu.:2.000 1st Qu.:2.000
## Median :3.000 Median :5.000 Median :2.000 Median :2.000
## Mean :3.122 Mean :4.639 Mean :2.595 Mean :3.087
## 3rd Qu.:3.000 3rd Qu.:5.000 3rd Qu.:3.000 3rd Qu.:5.000
## Max. :5.000 Max. :5.000 Max. :5.000 Max. :5.000
## NA's :565 NA's :578 NA's :76 NA's :362
## forvote goodvote havevote notvote
## Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.000
## 1st Qu.:2.000 1st Qu.:1.000 1st Qu.:1.000 1st Qu.:1.000
## Median :2.000 Median :4.000 Median :1.000 Median :3.000
## Mean :2.407 Mean :3.022 Mean :1.854 Mean :2.789
## 3rd Qu.:3.000 3rd Qu.:5.000 3rd Qu.:3.000 3rd Qu.:4.000
## Max. :4.000 Max. :5.000 Max. :5.000 Max. :5.000
## NA's :218 NA's :478 NA's :340 NA's :429
## thatvote thevote theyvote thisvote withvote
## Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.00 Min. :1.000
## 1st Qu.:1.000 1st Qu.:5.000 1st Qu.:1.000 1st Qu.:1.00 1st Qu.:1.000
## Median :3.000 Median :5.000 Median :1.000 Median :2.00 Median :5.000
## Mean :3.192 Mean :4.512 Mean :1.923 Mean :2.36 Mean :3.252
## 3rd Qu.:5.000 3rd Qu.:5.000 3rd Qu.:3.000 3rd Qu.:4.00 3rd Qu.:5.000
## Max. :5.000 Max. :5.000 Max. :4.000 Max. :4.00 Max. :5.000
## NA's :354 NA's :81 NA's :354 NA's :336 NA's :336
## youvote
## Min. :1.000
## 1st Qu.:1.000
## Median :2.000
## Mean :2.055
## 3rd Qu.:2.000
## Max. :5.000
## NA's :341
We can see from the summary we already have a lot more variation within each keyword rating vote.
bestVote$areavote <- as.factor(paste(bestVote$areavote))
bestVote$bigvote <- as.factor(paste(bestVote$bigvote))
bestVote$busyvote <- as.factor(paste(bestVote$busyvote))
bestVote$definitelyvote <- as.factor(paste(bestVote$definitelyvote))
bestVote$feelvote <- as.factor(paste(bestVote$feelvote))
bestVote$lotvote <- as.factor(paste(bestVote$lotvote))
bestVote$manyvote <- as.factor(paste(bestVote$manyvote))
bestVote$openvote <- as.factor(paste(bestVote$openvote))
bestVote$plusvote <- as.factor(paste(bestVote$plusvote))
bestVote$twovote <- as.factor(paste(bestVote$twovote))
bestVote$worthvote <- as.factor(paste(bestVote$worthvote))
bestVote$yearvote <- as.factor(paste(bestVote$yearvote))
bestVote$andvote <- as.factor(paste(bestVote$andvote))
bestVote$butvote <- as.factor(paste(bestVote$butvote))
bestVote$forvote <- as.factor(paste(bestVote$forvote))
bestVote$goodvote <- as.factor(paste(bestVote$goodvote))
bestVote$havevote <- as.factor(paste(bestVote$havevote))
bestVote$notvote <- as.factor(paste(bestVote$notvote))
bestVote$thatvote <- as.factor(paste(bestVote$thatvote))
bestVote$thevote <- as.factor(paste(bestVote$thevote))
bestVote$theyvote <- as.factor(paste(bestVote$theyvote))
bestVote$thisvote <- as.factor(paste(bestVote$thisvote))
bestVote$withvote <- as.factor(paste(bestVote$withvote))
bestVote$youvote <- as.factor(paste(bestVote$youvote))
bestVote$counts1 <- 0
bestVote$counts2 <- 0
bestVote$counts3 <- 0
bestVote$counts4 <- 0
bestVote$counts5 <- 0
a5 <- grep('5',bestVote$andvote)
a4 <- grep('4', bestVote$andvote)
a3 <- grep('3',bestVote$andvote)
a2 <- grep('2',bestVote$andvote)
a1 <- grep('1',bestVote$andvote)
b5 <- grep('5',bestVote$butvote)
b4 <- grep('4', bestVote$butvote)
b3 <- grep('3',bestVote$butvote)
b2 <- grep('2',bestVote$butvote)
b1 <- grep('1',bestVote$butvote)
c5 <- grep('5',bestVote$forvote)
c4 <- grep('4', bestVote$forvote)
c3 <- grep('3',bestVote$forvote)
c2 <- grep('2',bestVote$forvote)
c1 <- grep('1',bestVote$forvote)
d5 <- grep('5',bestVote$goodvote)
d4 <- grep('4', bestVote$goodvote)
d3 <- grep('3',bestVote$goodvote)
d2 <- grep('2',bestVote$goodvote)
d1 <- grep('1',bestVote$goodvote)
e5 <- grep('5',bestVote$havevote)
e4 <- grep('4', bestVote$havevote)
e3 <- grep('3',bestVote$havevote)
e2 <- grep('2',bestVote$havevote)
e1 <- grep('1',bestVote$havevote)
f5 <- grep('5',bestVote$notvote)
f4 <- grep('4', bestVote$notvote)
f3 <- grep('3',bestVote$notvote)
f2 <- grep('2',bestVote$notvote)
f1 <- grep('1',bestVote$notvote)
g5 <- grep('5',bestVote$thatvote)
g4 <- grep('4', bestVote$thatvote)
g3 <- grep('3',bestVote$thatvote)
g2 <- grep('2',bestVote$thatvote)
g1 <- grep('1',bestVote$thatvote)
h5 <- grep('5',bestVote$thevote)
h4 <- grep('4', bestVote$thevote)
h3 <- grep('3',bestVote$thevote)
h2 <- grep('2',bestVote$thevote)
h1 <- grep('1',bestVote$thevote)
i5 <- grep('5',bestVote$theyvote)
i4 <- grep('4', bestVote$theyvote)
i3 <- grep('3',bestVote$theyvote)
i2 <- grep('2',bestVote$theyvote)
i1 <- grep('1',bestVote$theyvote)
j5 <- grep('5',bestVote$thisvote)
j4 <- grep('4', bestVote$thisvote)
j3 <- grep('3',bestVote$thisvote)
j2 <- grep('2',bestVote$thisvote)
j1 <- grep('1',bestVote$thisvote)
k5 <- grep('5',bestVote$withvote)
k4 <- grep('4', bestVote$withvote)
k3 <- grep('3',bestVote$withvote)
k2 <- grep('2',bestVote$withvote)
k1 <- grep('1',bestVote$withvote)
l5 <- grep('5',bestVote$youvote)
l4 <- grep('4', bestVote$youvote)
l3 <- grep('3',bestVote$youvote)
l2 <- grep('2',bestVote$youvote)
l1 <- grep('1',bestVote$youvote)
A5 <- grep('5',bestVote$areavote)
A4 <- grep('4', bestVote$areavote)
A3 <- grep('3',bestVote$areavote)
A2 <- grep('2',bestVote$areavote)
A1 <- grep('1',bestVote$areavote)
B5 <- grep('5',bestVote$bigvote)
B4 <- grep('4', bestVote$bigvote)
B3 <- grep('3',bestVote$bigvote)
B2 <- grep('2',bestVote$bigvote)
B1 <- grep('1',bestVote$bigvote)
C5 <- grep('5',bestVote$busyvote)
C4 <- grep('4', bestVote$busyvote)
C3 <- grep('3',bestVote$busyvote)
C2 <- grep('2',bestVote$busyvote)
C1 <- grep('1',bestVote$busyvote)
D5 <- grep('5',bestVote$definitelyvote)
D4 <- grep('4', bestVote$definitelyvote)
D3 <- grep('3',bestVote$definitelyvote)
D2 <- grep('2',bestVote$definitelyvote)
D1 <- grep('1',bestVote$definitelyvote)
E5 <- grep('5',bestVote$feelvote)
E4 <- grep('4', bestVote$feelvote)
E3 <- grep('3',bestVote$feelvote)
E2 <- grep('2',bestVote$feelvote)
E1 <- grep('1',bestVote$feelvote)
F5 <- grep('5',bestVote$lotvote)
F4 <- grep('4', bestVote$lotvote)
F3 <- grep('3',bestVote$lotvote)
F2 <- grep('2',bestVote$lotvote)
F1 <- grep('1',bestVote$lotvote)
G5 <- grep('5',bestVote$manyvote)
G4 <- grep('4', bestVote$manyvote)
G3 <- grep('3',bestVote$manyvote)
G2 <- grep('2',bestVote$manyvote)
G1 <- grep('1',bestVote$manyvote)
H5 <- grep('5',bestVote$openvote)
H4 <- grep('4', bestVote$openvote)
H3 <- grep('3',bestVote$openvote)
H2 <- grep('2',bestVote$openvote)
H1 <- grep('1',bestVote$openvote)
I5 <- grep('5',bestVote$plusvote)
I4 <- grep('4', bestVote$plusvote)
I3 <- grep('3',bestVote$plusvote)
I2 <- grep('2',bestVote$plusvote)
I1 <- grep('1',bestVote$plusvote)
J5 <- grep('5',bestVote$twovote)
J4 <- grep('4', bestVote$twovote)
J3 <- grep('3',bestVote$twovote)
J2 <- grep('2',bestVote$twovote)
J1 <- grep('1',bestVote$twovote)
K5 <- grep('5',bestVote$worthvote)
K4 <- grep('4', bestVote$worthvote)
K3 <- grep('3',bestVote$worthvote)
K2 <- grep('2',bestVote$worthvote)
K1 <- grep('1',bestVote$worthvote)
L5 <- grep('5',bestVote$yearvote)
L4 <- grep('4', bestVote$yearvote)
L3 <- grep('3',bestVote$yearvote)
L2 <- grep('2',bestVote$yearvote)
L1 <- grep('1',bestVote$yearvote)
bestVote$counts1[l1] <- bestVote$counts1[l1]+ 1
bestVote$counts1[k1] <- bestVote$counts1[k1]+ 1
bestVote$counts1[j1] <- bestVote$counts1[j1]+ 1
bestVote$counts1[i1] <- bestVote$counts1[i1]+ 1
bestVote$counts1[h1] <- bestVote$counts1[h1]+ 1
bestVote$counts1[g1] <- bestVote$counts1[g1]+ 1
bestVote$counts1[f1] <- bestVote$counts1[f1]+ 1
bestVote$counts1[e1] <- bestVote$counts1[e1]+ 1
bestVote$counts1[d1] <- bestVote$counts1[d1]+ 1
bestVote$counts1[c1] <- bestVote$counts1[c1]+ 1
bestVote$counts1[b1] <- bestVote$counts1[b1]+ 1
bestVote$counts1[a1] <- bestVote$counts1[a1]+ 1
bestVote$counts2[l2] <- bestVote$counts2[l2] + 1
bestVote$counts2[k2] <- bestVote$counts2[k2] + 1
bestVote$counts2[j2] <- bestVote$counts2[j2] + 1
bestVote$counts2[i2] <- bestVote$counts2[i2] + 1
bestVote$counts2[h2] <- bestVote$counts2[h2] + 1
bestVote$counts2[g2] <- bestVote$counts2[g2] + 1
bestVote$counts2[f2] <- bestVote$counts2[f2] + 1
bestVote$counts2[e2] <- bestVote$counts2[e2] + 1
bestVote$counts2[d2] <- bestVote$counts2[d2] + 1
bestVote$counts2[c2] <- bestVote$counts2[c2] + 1
bestVote$counts2[b2] <- bestVote$counts2[b2] + 1
bestVote$counts2[a2] <- bestVote$counts2[a2] + 1
bestVote$counts3[l3] <- bestVote$counts3[l3] + 1
bestVote$counts3[k3] <- bestVote$counts3[k3] + 1
bestVote$counts3[j3] <- bestVote$counts3[j3] + 1
bestVote$counts3[i3] <- bestVote$counts3[i3] + 1
bestVote$counts3[h3] <- bestVote$counts3[h3] + 1
bestVote$counts3[g3] <- bestVote$counts3[g3] + 1
bestVote$counts3[f3] <- bestVote$counts3[f3] + 1
bestVote$counts3[e3] <- bestVote$counts3[e3] + 1
bestVote$counts3[d3] <- bestVote$counts3[d3] + 1
bestVote$counts3[c3] <- bestVote$counts3[c3] + 1
bestVote$counts3[b3] <- bestVote$counts3[b3] + 1
bestVote$counts3[a3] <- bestVote$counts3[a3] + 1
bestVote$counts4[l4] <- bestVote$counts4[l4] + 1
bestVote$counts4[k4] <- bestVote$counts4[k4] + 1
bestVote$counts4[j4] <- bestVote$counts4[j4] + 1
bestVote$counts4[i4] <- bestVote$counts4[i4] + 1
bestVote$counts4[h4] <- bestVote$counts4[h4] + 1
bestVote$counts4[g4] <- bestVote$counts4[g4] + 1
bestVote$counts4[f4] <- bestVote$counts4[f4] + 1
bestVote$counts4[e4] <- bestVote$counts4[e4] + 1
bestVote$counts4[d4] <- bestVote$counts4[d4] + 1
bestVote$counts4[c4] <- bestVote$counts4[c4] + 1
bestVote$counts4[b4] <- bestVote$counts4[b4] + 1
bestVote$counts4[a4] <- bestVote$counts4[a4] + 1
bestVote$counts5[l5] <- bestVote$counts5[l5] + 1
bestVote$counts5[k5] <- bestVote$counts5[k5] + 1
bestVote$counts5[j5] <- bestVote$counts5[j5] + 1
bestVote$counts5[i5] <- bestVote$counts5[i5] + 1
bestVote$counts5[h5] <- bestVote$counts5[h5] + 1
bestVote$counts5[g5] <- bestVote$counts5[g5] + 1
bestVote$counts5[f5] <- bestVote$counts5[f5] + 1
bestVote$counts5[e5] <- bestVote$counts5[e5] + 1
bestVote$counts5[d5] <- bestVote$counts5[d5] + 1
bestVote$counts5[c5] <- bestVote$counts5[c5] + 1
bestVote$counts5[b5] <- bestVote$counts5[b5] + 1
bestVote$counts5[a5] <- bestVote$counts5[a5] + 1
bestVote$counts1[L1] <- bestVote$counts1[L1]+ 1
bestVote$counts1[K1] <- bestVote$counts1[K1]+ 1
bestVote$counts1[J1] <- bestVote$counts1[J1]+ 1
bestVote$counts1[I1] <- bestVote$counts1[I1]+ 1
bestVote$counts1[H1] <- bestVote$counts1[H1]+ 1
bestVote$counts1[G1] <- bestVote$counts1[G1]+ 1
bestVote$counts1[F1] <- bestVote$counts1[F1]+ 1
bestVote$counts1[E1] <- bestVote$counts1[E1]+ 1
bestVote$counts1[D1] <- bestVote$counts1[D1]+ 1
bestVote$counts1[C1] <- bestVote$counts1[C1]+ 1
bestVote$counts1[B1] <- bestVote$counts1[B1]+ 1
bestVote$counts1[A1] <- bestVote$counts1[A1]+ 1
bestVote$counts2[L2] <- bestVote$counts2[L2] + 1
bestVote$counts2[K2] <- bestVote$counts2[K2] + 1
bestVote$counts2[J2] <- bestVote$counts2[J2] + 1
bestVote$counts2[I2] <- bestVote$counts2[I2] + 1
bestVote$counts2[H2] <- bestVote$counts2[H2] + 1
bestVote$counts2[G2] <- bestVote$counts2[G2] + 1
bestVote$counts2[F2] <- bestVote$counts2[F2] + 1
bestVote$counts2[E2] <- bestVote$counts2[E2] + 1
bestVote$counts2[D2] <- bestVote$counts2[D2] + 1
bestVote$counts2[C2] <- bestVote$counts2[C2] + 1
bestVote$counts2[B2] <- bestVote$counts2[B2] + 1
bestVote$counts2[A2] <- bestVote$counts2[A2] + 1
bestVote$counts3[L3] <- bestVote$counts3[L3] + 1
bestVote$counts3[K3] <- bestVote$counts3[K3] + 1
bestVote$counts3[J3] <- bestVote$counts3[J3] + 1
bestVote$counts3[I3] <- bestVote$counts3[I3] + 1
bestVote$counts3[H3] <- bestVote$counts3[H3] + 1
bestVote$counts3[G3] <- bestVote$counts3[G3] + 1
bestVote$counts3[F3] <- bestVote$counts3[F3] + 1
bestVote$counts3[E3] <- bestVote$counts3[E3] + 1
bestVote$counts3[D3] <- bestVote$counts3[D3] + 1
bestVote$counts3[C3] <- bestVote$counts3[C3] + 1
bestVote$counts3[B3] <- bestVote$counts3[B3] + 1
bestVote$counts3[A3] <- bestVote$counts3[A3] + 1
bestVote$counts4[L4] <- bestVote$counts4[L4] + 1
bestVote$counts4[K4] <- bestVote$counts4[K4] + 1
bestVote$counts4[J4] <- bestVote$counts4[J4] + 1
bestVote$counts4[I4] <- bestVote$counts4[I4] + 1
bestVote$counts4[H4] <- bestVote$counts4[H4] + 1
bestVote$counts4[G4] <- bestVote$counts4[G4] + 1
bestVote$counts4[F4] <- bestVote$counts4[F4] + 1
bestVote$counts4[E4] <- bestVote$counts4[E4] + 1
bestVote$counts4[D4] <- bestVote$counts4[D4] + 1
bestVote$counts4[C4] <- bestVote$counts4[C4] + 1
bestVote$counts4[B4] <- bestVote$counts4[B4] + 1
bestVote$counts4[A4] <- bestVote$counts4[A4] + 1
bestVote$counts5[L5] <- bestVote$counts5[L5] + 1
bestVote$counts5[K5] <- bestVote$counts5[K5] + 1
bestVote$counts5[J5] <- bestVote$counts5[J5] + 1
bestVote$counts5[I5] <- bestVote$counts5[I5] + 1
bestVote$counts5[H5] <- bestVote$counts5[H5] + 1
bestVote$counts5[G5] <- bestVote$counts5[G5] + 1
bestVote$counts5[F5] <- bestVote$counts5[F5] + 1
bestVote$counts5[E5] <- bestVote$counts5[E5] + 1
bestVote$counts5[D5] <- bestVote$counts5[D5] + 1
bestVote$counts5[C5] <- bestVote$counts5[C5] + 1
bestVote$counts5[B5] <- bestVote$counts5[B5] + 1
bestVote$counts5[A5] <- bestVote$counts5[A5] + 1
!@#$%
bestVote$maxVote <- apply(bestVote[25:29],1,max)
mv <- bestVote$maxVote
ct1 <- bestVote$counts1
ct2 <- bestVote$counts2
ct3 <- bestVote$counts3
ct4 <- bestVote$counts4
ct5 <- bestVote$counts5
bestVote$votedRating <- ifelse(mv==ct1, 1,
ifelse(mv==ct2, 2,
ifelse(mv==ct3, 3,
ifelse(mv==ct4, 4, 5))))
bestVote$Rating <- ifelse(mv==ct1 & (mv==ct2|mv==ct3|mv==ct4|mv==ct5),'tie',
ifelse(mv==ct1,1,
ifelse(mv==ct2 & (mv==ct3|mv==ct4|mv==ct5),'tie',
ifelse(mv==ct2, 2,
ifelse(mv==ct3 &(mv==ct4|mv==ct5),'tie',
ifelse(mv==ct3, 3,
ifelse(mv==ct4 & mv==ct5, 'tie',
ifelse(mv==ct4, 4,5
)))))))
)
bestVote$finalPrediction <- ifelse(bestVote$Rating=='tie',
ifelse(ceiling(mean(c(ct1,ct2,ct3,ct4,ct5)*c(1,2,3,4,5))/5) > 5,
5, ceiling(mean(c(ct1,ct2,ct3,ct4,ct5)*c(1,2,3,4,5))/5)),
bestVote$votedRating )
Now that we have our final prediction with this algorithm. Lets attach these two tables together and rearrange the columns.
bestVote$CorrectlyPredicted <- ifelse(MLr$userRatingValue==bestVote$finalPrediction,1,0)
MLr2 <- cbind(MLr, bestVote)
MLr3 <- MLr2[,c(2:347,1)]
MLr3$CorrectPrediction <- ifelse(MLr3$finalPrediction==MLr3$userRatingValue,
1,0)
MLr3$finalPrediction <- as.factor(paste(MLr3$finalPrediction))
MLr3$userRatingValue <- paste('rating ', MLr3$userRatingValue,sep='')
Accuracy <- sum(MLr3$CorrectPrediction)/length(MLr3$CorrectPrediction)
Accuracy
## [1] 0.3208469
From the above results the accuracy was much better than using all 24 keywords with 14%, this time by using the absolute value and thus getting the ratios that are truly closer to the ratings ratios when selecting the minimum difference, the accuracy more than doubled to 32% accuracy. However, because these 12 keywords that were added to our original stopwords that scored a 54% accuracy on the first version and run of this program without the NAs (we realized above that keeping NAs as NAs or as zeros doesn’t change the results) don’t improve the results this would suggest they don’t add any value as the results confirm, and actually lower the accuracy because they aren’t seen in every review. We would have to have 1,000 times more unique reviews from various business types, and taking out words relevant to each business type and specific business type. then proceeding with our methods above. We have 614 reviews that are unique, and if we had 614,000 reviews the process would take longer to add up results for each row, but the accuracy would be improved. The size of the IMDB data base of movie reviews that many data scientists and data enthusiasts use is 1 Million observations of unique reviews, and the accuracy for that data in most cases is in the high 95% accuracy or better.
This was a good approach to building a model from the ground up and developing algorithms that seem like they could be good models to make predictions with. This was a straight algorithm model as in a function you put something in and get an answer out. The caret package has other more heavily used and industry related models tht are used frequently and can be tune. We will look at those later.
Lets write this table out to csv.
write.csv(MLr3, 'ML_Reviews614_AbsValueresultsTable.csv', row.names=FALSE)
Lets look at those values that the correct prediction was false.
FalsePredictions <- subset(MLr3, MLr3$CorrectPrediction==0)
head(FalsePredictions[,342:348],30)
## maxVote votedRating Rating finalPrediction CorrectlyPredicted
## 2 3 2 2 2 0
## 3 1 2 tie 1 0
## 4 3 2 2 2 0
## 5 1 2 tie 1 0
## 6 2 3 tie 1 0
## 8 4 1 1 1 0
## 9 4 2 2 2 0
## 10 1 3 3 3 0
## 15 2 1 tie 1 0
## 16 2 5 5 5 0
## 17 3 2 2 2 0
## 20 1 2 tie 1 0
## 25 3 1 1 1 0
## 29 2 1 tie 1 0
## 30 2 1 tie 1 0
## 33 3 1 1 1 0
## 38 2 1 1 1 0
## 39 3 5 5 5 0
## 40 2 1 tie 1 0
## 44 3 1 1 1 0
## 46 4 4 4 4 0
## 47 4 1 1 1 0
## 49 1 1 tie 1 0
## 52 0 1 tie 1 0
## 53 2 1 tie 1 0
## 54 3 3 tie 1 0
## 57 2 2 tie 1 0
## 58 3 1 1 1 0
## 60 1 1 tie 1 0
## 62 2 2 tie 1 0
## userRatingValue CorrectPrediction
## 2 rating 5 0
## 3 rating 5 0
## 4 rating 1 0
## 5 rating 5 0
## 6 rating 5 0
## 8 rating 5 0
## 9 rating 5 0
## 10 rating 5 0
## 15 rating 4 0
## 16 rating 1 0
## 17 rating 1 0
## 20 rating 5 0
## 25 rating 4 0
## 29 rating 4 0
## 30 rating 5 0
## 33 rating 5 0
## 38 rating 5 0
## 39 rating 4 0
## 40 rating 5 0
## 44 rating 5 0
## 46 rating 5 0
## 47 rating 5 0
## 49 rating 5 0
## 52 rating 5 0
## 53 rating 4 0
## 54 rating 5 0
## 57 rating 4 0
## 58 rating 2 0
## 60 rating 5 0
## 62 rating 5 0
Many times the voted rating was not the rating even if it wasn’t a tie. The 2-4 ratings were most of the incorrect predictions and the rating as being either a 5 or a 1 were more 50/50 probably because their ratios of term to total terms were very close. Some tuning that could be done would be to select different keywords, see if there is a difference between type of business or cost of service or goods. We left in these words of which most are included in stopwords like by,my,has,have,etc.that are personal pronouns or of the text mining tm package.
#library(tm)
stop <- stopwords()
stop
## [1] "i" "me" "my" "myself" "we"
## [6] "our" "ours" "ourselves" "you" "your"
## [11] "yours" "yourself" "yourselves" "he" "him"
## [16] "his" "himself" "she" "her" "hers"
## [21] "herself" "it" "its" "itself" "they"
## [26] "them" "their" "theirs" "themselves" "what"
## [31] "which" "who" "whom" "this" "that"
## [36] "these" "those" "am" "is" "are"
## [41] "was" "were" "be" "been" "being"
## [46] "have" "has" "had" "having" "do"
## [51] "does" "did" "doing" "would" "should"
## [56] "could" "ought" "i'm" "you're" "he's"
## [61] "she's" "it's" "we're" "they're" "i've"
## [66] "you've" "we've" "they've" "i'd" "you'd"
## [71] "he'd" "she'd" "we'd" "they'd" "i'll"
## [76] "you'll" "he'll" "she'll" "we'll" "they'll"
## [81] "isn't" "aren't" "wasn't" "weren't" "hasn't"
## [86] "haven't" "hadn't" "doesn't" "don't" "didn't"
## [91] "won't" "wouldn't" "shan't" "shouldn't" "can't"
## [96] "cannot" "couldn't" "mustn't" "let's" "that's"
## [101] "who's" "what's" "here's" "there's" "when's"
## [106] "where's" "why's" "how's" "a" "an"
## [111] "the" "and" "but" "if" "or"
## [116] "because" "as" "until" "while" "of"
## [121] "at" "by" "for" "with" "about"
## [126] "against" "between" "into" "through" "during"
## [131] "before" "after" "above" "below" "to"
## [136] "from" "up" "down" "in" "out"
## [141] "on" "off" "over" "under" "again"
## [146] "further" "then" "once" "here" "there"
## [151] "when" "where" "why" "how" "all"
## [156] "any" "both" "each" "few" "more"
## [161] "most" "other" "some" "such" "no"
## [166] "nor" "not" "only" "own" "same"
## [171] "so" "than" "too" "very"
The above are the stopwords that are eliminated within text cleaning and preprocessing before running or retrieving a document term matrix for an observation such as a review. Now lets look at are keywords.
keywordsUsed <- colnames(wordToAllWords)
keywordsUsed
## [1] "area" "big" "busy" "definitely" "feel"
## [6] "lot" "many" "open" "plus" "two"
## [11] "worth" "year"
The above shows our keywords, and note that for is for_ because it errors in R as it is a programming keyword so it was altered in the column name with an appended underscore character, but the search for it as a character or factor is ‘for’ not ‘for_’. We actually see that all 12 of our stopwords are keywords. We briefly explained that this is because in grammar and composition to write a persuasive stories many connections have to be made with the use of pronouns and actions and states of being and descriptors. These were used as features by count to see if they added any value to predicting a review. We do see that these stop words are used a lot for extreme ends of the rating scale as a 1 for the lowest and 5 for the highest review rating.
Lets get a count of each rating by incorrect classification.
userRatings <- FalsePredictions %>% group_by(userRatingValue) %>% count(finalPrediction)
userRatings
## # A tibble: 16 x 3
## # Groups: userRatingValue [5]
## userRatingValue finalPrediction n
## <chr> <fct> <int>
## 1 rating 1 2 18
## 2 rating 1 3 2
## 3 rating 1 5 7
## 4 rating 2 1 29
## 5 rating 2 5 4
## 6 rating 3 1 37
## 7 rating 3 2 8
## 8 rating 3 5 6
## 9 rating 4 1 56
## 10 rating 4 2 16
## 11 rating 4 3 10
## 12 rating 4 5 19
## 13 rating 5 1 163
## 14 rating 5 2 21
## 15 rating 5 3 17
## 16 rating 5 4 4
We can see from the userRatingValue and the final prediction, that there were 85 instances where this model couldn’t distinguish between a 1 or 5 rating based on the keywords (mostly stopwords). But also those ratings that were 4s were actually classified the most incorrectly as a 5 because some people don’t readily give 5s as others. Also the actual 2s that were classified incorrectly were scaled up to 5s in the error, the same with the 3s. The gray areas were in user ratings of 2-4, where few were classified as a value in a 2-4 that was incorrect. If we instead said to classify any 2-4 as in the range of 2-4 without penalizing the exact value, then the prediction accuracy would be better. But people have their own reasons for giving 2-4s in ratings. Like they had better or there was an absolute worst experience the company still doesn’t meet because he or she knows it could be worse and it could be better. Companies are supposed to use this to improve or adjust needs of consumers. But at the same time some users are just upset with the cost or time wasted or spent when other options they know of were or are better.
Lets look at those predictions with a tie.
ties <- subset(MLr3, MLr3$Rating=='tie')
ties[,342:348]
## maxVote votedRating Rating finalPrediction CorrectlyPredicted
## 3 1 2 tie 1 0
## 5 1 2 tie 1 0
## 6 2 3 tie 1 0
## 15 2 1 tie 1 0
## 20 1 2 tie 1 0
## 29 2 1 tie 1 0
## 30 2 1 tie 1 0
## 40 2 1 tie 1 0
## 41 1 1 tie 1 1
## 49 1 1 tie 1 0
## 52 0 1 tie 1 0
## 53 2 1 tie 1 0
## 54 3 3 tie 1 0
## 57 2 2 tie 1 0
## 60 1 1 tie 1 0
## 62 2 2 tie 1 0
## 63 3 1 tie 1 0
## 64 2 1 tie 1 0
## 65 3 1 tie 1 1
## 68 1 1 tie 1 1
## 70 3 1 tie 1 1
## 72 2 1 tie 1 1
## 74 2 2 tie 1 0
## 78 1 2 tie 1 0
## 80 2 2 tie 1 1
## 81 2 4 tie 1 0
## 83 1 2 tie 1 0
## 85 2 1 tie 1 1
## 86 2 2 tie 1 0
## 88 1 1 tie 1 1
## 92 1 1 tie 1 0
## 93 1 1 tie 1 0
## 94 2 1 tie 1 0
## 100 1 1 tie 1 0
## 102 3 4 tie 1 0
## 103 2 1 tie 1 0
## 104 2 3 tie 1 0
## 111 2 1 tie 1 0
## 112 4 2 tie 1 0
## 113 1 3 tie 1 0
## 115 1 1 tie 1 0
## 116 2 1 tie 1 1
## 118 2 2 tie 1 0
## 119 0 1 tie 1 0
## 121 3 1 tie 1 0
## 123 2 1 tie 1 0
## 130 4 1 tie 1 1
## 136 2 1 tie 1 0
## 142 2 1 tie 1 1
## 145 1 2 tie 1 0
## 146 3 1 tie 1 1
## 149 1 1 tie 1 0
## 151 2 2 tie 1 1
## 155 2 2 tie 1 0
## 159 1 3 tie 1 0
## 163 1 1 tie 1 0
## 164 2 1 tie 1 0
## 165 3 3 tie 1 0
## 167 3 2 tie 1 0
## 171 2 1 tie 1 1
## 174 3 1 tie 1 0
## 178 2 2 tie 1 0
## 180 2 3 tie 1 0
## 182 1 1 tie 1 0
## 187 2 1 tie 1 0
## 188 2 1 tie 1 0
## 192 3 1 tie 1 0
## 195 1 2 tie 1 0
## 201 2 1 tie 1 0
## 203 3 2 tie 1 0
## 207 1 1 tie 1 0
## 208 2 1 tie 1 0
## 209 1 1 tie 1 0
## 211 1 2 tie 1 0
## 212 2 2 tie 1 0
## 214 2 2 tie 1 0
## 219 2 1 tie 1 0
## 226 2 2 tie 1 0
## 229 1 1 tie 1 0
## 235 3 2 tie 1 0
## 237 2 1 tie 1 0
## 239 2 2 tie 1 0
## 241 3 1 tie 1 0
## 243 3 1 tie 1 0
## 246 2 1 tie 1 0
## 251 2 2 tie 1 0
## 255 3 2 tie 1 0
## 260 3 2 tie 1 0
## 264 3 1 tie 1 0
## 269 1 1 tie 1 0
## 272 3 1 tie 1 0
## 274 3 1 tie 1 0
## 277 2 1 tie 1 1
## 279 3 1 tie 1 0
## 286 3 3 tie 1 0
## 290 0 1 tie 1 0
## 291 1 2 tie 1 0
## 296 4 1 tie 1 0
## 297 3 1 tie 1 0
## 298 4 2 tie 1 0
## 299 2 1 tie 1 0
## 300 3 2 tie 1 0
## 304 3 1 tie 1 0
## 305 4 1 tie 1 0
## 307 3 3 tie 1 0
## 310 2 1 tie 1 0
## 314 2 3 tie 1 0
## 316 4 1 tie 1 0
## 317 2 2 tie 1 0
## 319 4 1 tie 1 0
## 320 4 3 tie 1 0
## 322 1 1 tie 1 0
## 324 3 2 tie 1 0
## 329 3 1 tie 1 0
## 333 1 1 tie 1 0
## 334 2 1 tie 1 0
## 335 1 1 tie 1 0
## 338 3 1 tie 1 0
## 339 2 3 tie 1 1
## 351 2 2 tie 1 0
## 360 1 1 tie 1 0
## 365 2 1 tie 1 0
## 367 3 2 tie 1 0
## 369 2 1 tie 1 0
## 372 2 2 tie 1 0
## 374 3 1 tie 1 0
## 377 1 2 tie 1 0
## 380 3 1 tie 1 0
## 385 2 1 tie 1 0
## 387 2 1 tie 1 0
## 393 3 1 tie 1 0
## 394 3 2 tie 1 1
## 395 2 1 tie 1 0
## 402 3 1 tie 1 1
## 405 3 2 tie 1 1
## 408 2 1 tie 1 0
## 413 4 1 tie 1 0
## 418 3 1 tie 1 1
## 420 3 2 tie 1 0
## 424 2 2 tie 1 0
## 428 4 1 tie 1 0
## 429 1 1 tie 1 0
## 436 2 2 tie 1 0
## 438 2 1 tie 1 0
## 441 2 1 tie 1 0
## 442 2 2 tie 1 0
## 443 2 2 tie 1 0
## 444 2 1 tie 1 0
## 445 2 2 tie 1 0
## 447 1 1 tie 1 1
## 449 2 1 tie 1 0
## 450 3 1 tie 1 1
## 453 3 4 tie 1 0
## 454 1 1 tie 1 0
## 459 2 1 tie 1 0
## 460 1 1 tie 1 0
## 462 2 1 tie 1 0
## 465 2 2 tie 1 0
## 468 1 1 tie 1 0
## 476 3 1 tie 1 1
## 478 3 2 tie 1 0
## 481 2 2 tie 1 0
## 486 4 1 tie 1 0
## 487 1 1 tie 1 0
## 490 1 1 tie 1 0
## 493 2 2 tie 1 0
## 495 2 1 tie 1 0
## 499 2 1 tie 1 0
## 500 2 2 tie 1 0
## 502 2 2 tie 1 0
## 503 2 1 tie 1 1
## 504 1 1 tie 1 1
## 505 2 1 tie 1 1
## 513 2 1 tie 1 1
## 514 2 2 tie 1 1
## 515 2 2 tie 1 1
## 516 2 1 tie 1 0
## 519 2 2 tie 1 0
## 520 2 2 tie 1 0
## 522 2 1 tie 1 0
## 523 2 3 tie 1 1
## 526 2 2 tie 1 0
## 527 2 2 tie 1 0
## 528 3 3 tie 1 0
## 534 2 3 tie 1 0
## 541 2 1 tie 1 0
## 543 3 2 tie 1 0
## 545 1 1 tie 1 0
## 546 1 1 tie 1 0
## 551 2 1 tie 1 0
## 553 1 1 tie 1 0
## 558 2 1 tie 1 0
## 559 2 1 tie 1 0
## 567 2 3 tie 1 1
## 570 2 2 tie 1 0
## 572 1 3 tie 1 0
## 573 2 2 tie 1 0
## 574 1 1 tie 1 0
## 575 3 2 tie 1 0
## 576 1 1 tie 1 0
## 577 1 2 tie 1 0
## 578 2 2 tie 1 0
## 579 1 1 tie 1 0
## 581 2 2 tie 1 0
## 582 1 1 tie 1 0
## 587 2 1 tie 1 0
## 593 1 1 tie 1 0
## 594 2 1 tie 1 0
## 595 1 1 tie 1 0
## 599 2 1 tie 1 0
## 601 3 1 tie 1 0
## 604 2 1 tie 1 0
## 605 2 3 tie 1 1
## 606 2 1 tie 1 0
## 608 2 1 tie 1 0
## 609 2 1 tie 1 0
## 610 2 3 tie 1 0
## userRatingValue CorrectPrediction
## 3 rating 5 0
## 5 rating 5 0
## 6 rating 5 0
## 15 rating 4 0
## 20 rating 5 0
## 29 rating 4 0
## 30 rating 5 0
## 40 rating 5 0
## 41 rating 1 1
## 49 rating 5 0
## 52 rating 5 0
## 53 rating 4 0
## 54 rating 5 0
## 57 rating 4 0
## 60 rating 5 0
## 62 rating 5 0
## 63 rating 5 0
## 64 rating 5 0
## 65 rating 1 1
## 68 rating 1 1
## 70 rating 1 1
## 72 rating 1 1
## 74 rating 4 0
## 78 rating 5 0
## 80 rating 1 1
## 81 rating 5 0
## 83 rating 4 0
## 85 rating 1 1
## 86 rating 5 0
## 88 rating 1 1
## 92 rating 5 0
## 93 rating 5 0
## 94 rating 5 0
## 100 rating 4 0
## 102 rating 2 0
## 103 rating 2 0
## 104 rating 5 0
## 111 rating 5 0
## 112 rating 4 0
## 113 rating 5 0
## 115 rating 5 0
## 116 rating 1 1
## 118 rating 4 0
## 119 rating 4 0
## 121 rating 4 0
## 123 rating 5 0
## 130 rating 1 1
## 136 rating 5 0
## 142 rating 1 1
## 145 rating 5 0
## 146 rating 1 1
## 149 rating 5 0
## 151 rating 1 1
## 155 rating 4 0
## 159 rating 5 0
## 163 rating 5 0
## 164 rating 2 0
## 165 rating 3 0
## 167 rating 4 0
## 171 rating 1 1
## 174 rating 4 0
## 178 rating 4 0
## 180 rating 3 0
## 182 rating 5 0
## 187 rating 4 0
## 188 rating 5 0
## 192 rating 3 0
## 195 rating 5 0
## 201 rating 5 0
## 203 rating 3 0
## 207 rating 4 0
## 208 rating 5 0
## 209 rating 4 0
## 211 rating 5 0
## 212 rating 5 0
## 214 rating 5 0
## 219 rating 3 0
## 226 rating 5 0
## 229 rating 4 0
## 235 rating 5 0
## 237 rating 4 0
## 239 rating 3 0
## 241 rating 3 0
## 243 rating 2 0
## 246 rating 5 0
## 251 rating 5 0
## 255 rating 4 0
## 260 rating 5 0
## 264 rating 4 0
## 269 rating 4 0
## 272 rating 2 0
## 274 rating 4 0
## 277 rating 1 1
## 279 rating 3 0
## 286 rating 2 0
## 290 rating 5 0
## 291 rating 5 0
## 296 rating 3 0
## 297 rating 2 0
## 298 rating 5 0
## 299 rating 5 0
## 300 rating 4 0
## 304 rating 2 0
## 305 rating 5 0
## 307 rating 3 0
## 310 rating 5 0
## 314 rating 5 0
## 316 rating 4 0
## 317 rating 5 0
## 319 rating 4 0
## 320 rating 2 0
## 322 rating 5 0
## 324 rating 5 0
## 329 rating 5 0
## 333 rating 5 0
## 334 rating 5 0
## 335 rating 5 0
## 338 rating 3 0
## 339 rating 1 1
## 351 rating 4 0
## 360 rating 5 0
## 365 rating 2 0
## 367 rating 5 0
## 369 rating 5 0
## 372 rating 5 0
## 374 rating 2 0
## 377 rating 5 0
## 380 rating 4 0
## 385 rating 5 0
## 387 rating 5 0
## 393 rating 2 0
## 394 rating 1 1
## 395 rating 2 0
## 402 rating 1 1
## 405 rating 1 1
## 408 rating 2 0
## 413 rating 3 0
## 418 rating 1 1
## 420 rating 2 0
## 424 rating 5 0
## 428 rating 5 0
## 429 rating 5 0
## 436 rating 5 0
## 438 rating 5 0
## 441 rating 4 0
## 442 rating 4 0
## 443 rating 4 0
## 444 rating 4 0
## 445 rating 5 0
## 447 rating 1 1
## 449 rating 3 0
## 450 rating 1 1
## 453 rating 2 0
## 454 rating 2 0
## 459 rating 4 0
## 460 rating 3 0
## 462 rating 5 0
## 465 rating 5 0
## 468 rating 5 0
## 476 rating 1 1
## 478 rating 2 0
## 481 rating 3 0
## 486 rating 4 0
## 487 rating 5 0
## 490 rating 5 0
## 493 rating 5 0
## 495 rating 5 0
## 499 rating 3 0
## 500 rating 4 0
## 502 rating 4 0
## 503 rating 1 1
## 504 rating 1 1
## 505 rating 1 1
## 513 rating 1 1
## 514 rating 1 1
## 515 rating 1 1
## 516 rating 3 0
## 519 rating 3 0
## 520 rating 3 0
## 522 rating 3 0
## 523 rating 1 1
## 526 rating 3 0
## 527 rating 3 0
## 528 rating 5 0
## 534 rating 5 0
## 541 rating 5 0
## 543 rating 5 0
## 545 rating 4 0
## 546 rating 5 0
## 551 rating 5 0
## 553 rating 5 0
## 558 rating 5 0
## 559 rating 5 0
## 567 rating 1 1
## 570 rating 5 0
## 572 rating 5 0
## 573 rating 5 0
## 574 rating 5 0
## 575 rating 4 0
## 576 rating 5 0
## 577 rating 5 0
## 578 rating 5 0
## 579 rating 5 0
## 581 rating 5 0
## 582 rating 5 0
## 587 rating 5 0
## 593 rating 5 0
## 594 rating 5 0
## 595 rating 5 0
## 599 rating 5 0
## 601 rating 5 0
## 604 rating 5 0
## 605 rating 1 1
## 606 rating 5 0
## 608 rating 5 0
## 609 rating 5 0
## 610 rating 5 0
There weren’t a lot of ties on votes for the minimum difference of review to all reviews by ratios of term to total terms.
tieGroups <- ties %>% group_by(userRatingValue) %>% count(finalPrediction)
tieGroups
## # A tibble: 5 x 3
## # Groups: userRatingValue [5]
## userRatingValue finalPrediction n
## <chr> <fct> <int>
## 1 rating 1 1 32
## 2 rating 2 1 18
## 3 rating 3 1 22
## 4 rating 4 1 39
## 5 rating 5 1 106
Note that these tie ratings are both correct and incorrect. From the above grouped information of counts of user ratings by final predictions all the 5s were misclassified or predicted to be in the gray area of 2-4 and more of the 1s were classified correctly except for one review in the middle gray area. None of the 2s are in our list of ties but many of the gray area 2-4s were classified into the gray area of incorrect 2-4s such as the 4s and 3s.
We could use a link analysis to see how these results compared with the final predicted value and actual rating value as groups. With the nodes as the user rating, and edges as the final prediction. We should also add in one of either the business type or the cost. First lets combine the Reviews15 table with the MLr3 table of only the results.
MLr4 <- MLr3 %>% select(maxVote:CorrectPrediction)
MLr4$actualRatingValue <- MLr4$userRatingValue
MLr5 <- MLr4 %>% select(-userRatingValue)
Reviews15_results <- cbind(Reviews15, MLr5)
colnames(Reviews15_results)
## [1] "id" "userReviewSeries" "userReviewOnlyContent"
## [4] "userRatingSeries" "userRatingValue" "businessReplied"
## [7] "businessReplyContent" "userReviewContent" "LowAvgHighCost"
## [10] "businessType" "cityState" "friends"
## [13] "reviews" "photos" "eliteStatus"
## [16] "userName" "Date" "userBusinessPhotos"
## [19] "userCheckIns" "weekday" "area"
## [22] "big" "busy" "definitely"
## [25] "feel" "lot" "many"
## [28] "open" "plus" "two"
## [31] "worth" "year" "the"
## [34] "and" "for." "have"
## [37] "that" "they" "this"
## [40] "you" "not" "but"
## [43] "good" "with" "area_ratios"
## [46] "big_ratios" "busy_ratios" "definitely_ratios"
## [49] "feel_ratios" "lot_ratios" "many_ratios"
## [52] "open_ratios" "plus_ratios" "two_ratios"
## [55] "worth_ratios" "year_ratios" "the_ratios"
## [58] "and_ratios" "for_ratios" "have_ratios"
## [61] "that_ratios" "they_ratios" "this_ratios"
## [64] "you_ratios" "not_ratios" "but_ratios"
## [67] "good_ratios" "with_ratios" "maxVote"
## [70] "votedRating" "Rating" "finalPrediction"
## [73] "CorrectlyPredicted" "CorrectPrediction" "actualRatingValue"
Lets keep the ratios because this table minus results (and the review content columns) just added will be useful when running the caret algorithms. For now, lets write this out to csv to easily read in later instead of running whatever chunks preceded this table to get it.
write.csv(Reviews15_results, 'Reviews15_AbsMinresults.csv', row.names=FALSE)
Now lets use visNetwork to group by CorrectPrediction and map the actualRatingValue to the predicted values as well as add a hovering feature as the title column in our nodes table of the businessType. We have to pick a width for the weighted arrows, or else there won’t be any edges. Lets pick the not_ratios.
network <- Reviews15_results %>% select(businessType,
finalPrediction:actualRatingValue, not,
not_ratios)
network$finalPrediction <- paste('predicted',network$finalPrediction,sep=' ')
network$CorrectPrediction <- gsub(1,'TRUE', network$CorrectPrediction)
network$CorrectPrediction <- gsub(0,'FALSE', network$CorrectPrediction)
head(network,20)
## businessType finalPrediction CorrectlyPredicted
## 1 high end massage retreat predicted 5 1
## 2 chiropractic predicted 2 0
## 3 chiropractic predicted 1 0
## 4 high end massage retreat predicted 2 0
## 5 chiropractic predicted 1 0
## 6 chiropractic predicted 1 0
## 7 chiropractic predicted 5 1
## 8 chiropractic predicted 1 0
## 9 chiropractic predicted 2 0
## 10 chiropractic predicted 3 0
## 11 chiropractic predicted 5 1
## 12 chiropractic predicted 5 1
## 13 chiropractic predicted 5 1
## 14 chiropractic predicted 5 1
## 15 chiropractic predicted 1 0
## 16 chiropractic predicted 5 0
## 17 high end massage retreat predicted 2 0
## 18 chiropractic predicted 5 1
## 19 chiropractic predicted 5 1
## 20 chiropractic predicted 1 0
## CorrectPrediction actualRatingValue not not_ratios
## 1 TRUE rating 5 1 0.00369
## 2 FALSE rating 5 NA NA
## 3 FALSE rating 5 NA NA
## 4 FALSE rating 1 3 0.01364
## 5 FALSE rating 5 NA NA
## 6 FALSE rating 5 NA NA
## 7 TRUE rating 5 1 0.01266
## 8 FALSE rating 5 NA NA
## 9 FALSE rating 5 NA NA
## 10 FALSE rating 5 NA NA
## 11 TRUE rating 5 NA NA
## 12 TRUE rating 5 NA NA
## 13 TRUE rating 5 NA NA
## 14 TRUE rating 5 NA NA
## 15 FALSE rating 4 1 0.00645
## 16 FALSE rating 1 NA NA
## 17 FALSE rating 1 3 0.01364
## 18 TRUE rating 5 1 0.00901
## 19 TRUE rating 5 NA NA
## 20 FALSE rating 5 NA NA
The nodes table will include all of the above except the not_ratios.
nodes <- network
nodes$id <- row.names(nodes)
nodes$title <- nodes$businessType
nodes$label <- nodes$actualRatingValue
nodes$group <- nodes$CorrectPrediction
nodes1 <- nodes %>% select(id, label, title,group,finalPrediction)
head(nodes1,10)
## id label title group finalPrediction
## 1 1 rating 5 high end massage retreat TRUE predicted 5
## 2 2 rating 5 chiropractic FALSE predicted 2
## 3 3 rating 5 chiropractic FALSE predicted 1
## 4 4 rating 1 high end massage retreat FALSE predicted 2
## 5 5 rating 5 chiropractic FALSE predicted 1
## 6 6 rating 5 chiropractic FALSE predicted 1
## 7 7 rating 5 chiropractic TRUE predicted 5
## 8 8 rating 5 chiropractic FALSE predicted 1
## 9 9 rating 5 chiropractic FALSE predicted 2
## 10 10 rating 5 chiropractic FALSE predicted 3
The edges will have the finalPrediction and actualRatingValue columns.
edges <- network %>% select(finalPrediction,actualRatingValue,not,not_ratios)
edges$label <- edges$finalPrediction
edges$weight <- edges$not_ratios
edges$width <- edges$not
edges1 <- edges %>% mutate(from = plyr::mapvalues(edges$actualRatingValue,
from = nodes$label,
to = nodes$id)
)
edges2 <- edges1 %>% mutate(to = plyr::mapvalues(edges$finalPrediction,
from = nodes$finalPrediction,
to = nodes$id)
)
edges3 <- edges2 %>% select(from,to,label,width,weight)
head(edges3,10)
## from to label width weight
## 1 1 1 predicted 5 1 0.00369
## 2 1 2 predicted 2 NA NA
## 3 1 3 predicted 1 NA NA
## 4 4 2 predicted 2 3 0.01364
## 5 1 3 predicted 1 NA NA
## 6 1 3 predicted 1 NA NA
## 7 1 1 predicted 5 1 0.01266
## 8 1 3 predicted 1 NA NA
## 9 1 2 predicted 2 NA NA
## 10 1 10 predicted 3 NA NA
Lets see the link analysis visualization.
visNetwork(nodes=nodes1, edges=edges3, main='Grouped Predictions of True or False Ratings') %>% visEdges(arrows=c('from','middle')) %>%
visInteraction(navigationButtons=TRUE, dragNodes=TRUE,
dragView=TRUE, zoomView = TRUE) %>%
visOptions(nodesIdSelection = TRUE, manipulation=FALSE) %>%
visIgraphLayout() %>%
visLegend
The above shows a visual network that looks mostly False in comparison to those True predicted rating values.None of the edges show except for that tiny cluster above, that shows the predicted ratings.
Lets group by business type now and map the actual to correctly predicted
nodes <- network
nodes$id <- row.names(nodes)
nodes$group <- nodes$businessType
nodes$label <- nodes$actualRatingValue
nodes$title <- nodes$CorrectPrediction
nodes1 <- nodes %>% select(id, label, title,group,finalPrediction)
head(nodes1,10)
## id label title group finalPrediction
## 1 1 rating 5 TRUE high end massage retreat predicted 5
## 2 2 rating 5 FALSE chiropractic predicted 2
## 3 3 rating 5 FALSE chiropractic predicted 1
## 4 4 rating 1 FALSE high end massage retreat predicted 2
## 5 5 rating 5 FALSE chiropractic predicted 1
## 6 6 rating 5 FALSE chiropractic predicted 1
## 7 7 rating 5 TRUE chiropractic predicted 5
## 8 8 rating 5 FALSE chiropractic predicted 1
## 9 9 rating 5 FALSE chiropractic predicted 2
## 10 10 rating 5 FALSE chiropractic predicted 3
The edges will have the finalPrediction and actualRatingValue columns.
edges <- network %>% select(finalPrediction,actualRatingValue,not,not_ratios)
edges$label <- edges$finalPrediction
edges$weight <- edges$not_ratios
edges$width <- edges$not
edges1 <- edges %>% mutate(from = plyr::mapvalues(edges$actualRatingValue,
from = nodes$label,
to = nodes$id)
)
edges2 <- edges1 %>% mutate(to = plyr::mapvalues(edges$finalPrediction,
from = nodes$finalPrediction,
to = nodes$id)
)
edges3 <- edges2 %>% select(from,to,label,width, weight)
head(edges3,10)
## from to label width weight
## 1 1 1 predicted 5 1 0.00369
## 2 1 2 predicted 2 NA NA
## 3 1 3 predicted 1 NA NA
## 4 4 2 predicted 2 3 0.01364
## 5 1 3 predicted 1 NA NA
## 6 1 3 predicted 1 NA NA
## 7 1 1 predicted 5 1 0.01266
## 8 1 3 predicted 1 NA NA
## 9 1 2 predicted 2 NA NA
## 10 1 10 predicted 3 NA NA
Lets see the link analysis visualization.
visNetwork(nodes=nodes1, edges=edges3, main='Grouped Predictions of Business Type Ratings with True or False and Actual Rating') %>% visEdges(arrows=c('from','middle')) %>%
visInteraction(navigationButtons=TRUE, dragNodes=TRUE,
dragView=TRUE, zoomView = TRUE) %>%
visOptions(nodesIdSelection = TRUE, manipulation=FALSE) %>%
visIgraphLayout() %>%
visLegend
Lets group by business type now and map the business type to the prediction.
nodes <- network
nodes$id <- row.names(nodes)
nodes$group <- nodes$businessType
nodes$label <- nodes$businessType
nodes$title <- nodes$CorrectPrediction
nodes1 <- nodes %>% select(id, label,group,finalPrediction, title)
head(nodes1,10)
## id label group finalPrediction title
## 1 1 high end massage retreat high end massage retreat predicted 5 TRUE
## 2 2 chiropractic chiropractic predicted 2 FALSE
## 3 3 chiropractic chiropractic predicted 1 FALSE
## 4 4 high end massage retreat high end massage retreat predicted 2 FALSE
## 5 5 chiropractic chiropractic predicted 1 FALSE
## 6 6 chiropractic chiropractic predicted 1 FALSE
## 7 7 chiropractic chiropractic predicted 5 TRUE
## 8 8 chiropractic chiropractic predicted 1 FALSE
## 9 9 chiropractic chiropractic predicted 2 FALSE
## 10 10 chiropractic chiropractic predicted 3 FALSE
edges <- network %>% select(CorrectPrediction,actualRatingValue,not,businessType,
finalPrediction)
edges$label <- edges$finalPrediction
#edges$weight <- edges$not_ratios
edges$width <- edges$not
edges1 <- edges %>% mutate(from = plyr::mapvalues(edges$businessType,
from = nodes$label,
to = nodes$id)
)
edges2 <- edges1 %>% mutate(to = plyr::mapvalues(edges$CorrectPrediction,
from = nodes$title,
to = nodes$id)
)
edges3 <- edges2 %>% select(from,to,label,width)
head(edges3,10)
## from to label width
## 1 1 1 predicted 5 1
## 2 2 2 predicted 2 NA
## 3 2 2 predicted 1 NA
## 4 1 2 predicted 2 3
## 5 2 2 predicted 1 NA
## 6 2 2 predicted 1 NA
## 7 2 1 predicted 5 1
## 8 2 2 predicted 1 NA
## 9 2 2 predicted 2 NA
## 10 2 2 predicted 3 NA
Lets see the link analysis visualization with the star layout.
visNetwork(nodes=nodes1, edges=edges3, main='Grouped Predictions by Business Type') %>% visEdges(arrows=c('from','middle')) %>%
visInteraction(navigationButtons=TRUE, dragNodes=TRUE,
dragView=TRUE, zoomView = TRUE) %>%
visOptions(nodesIdSelection = TRUE, manipulation=FALSE) %>%
visIgraphLayout(layout='layout.star') %>%
visLegend
The above is a hula hoop because there are not any links for the most part, and only a handfule of the true or false predictions are mapping from business type to other business types by other business types predicted true or false. you can click on a node drag it off the disk and see no links, but click on the background to stop dragging. Then do the same with the center nodes that do have links to the disk and see the edges stay attached with the predicted value. Not many business types had the same predicted value as a true or false prediction of the same actual to predicted by business type.
Lets see this design in a grid layout. The sphere is the default and you can see it doesn’t really describe much visually without grouping when there are no links between the nodes.
visNetwork(nodes=nodes1, edges=edges3, main='Grouped Predictions by Business Type') %>% visEdges(arrows=c('from','middle')) %>%
visInteraction(navigationButtons=TRUE, dragNodes=TRUE,
dragView=TRUE, zoomView = TRUE) %>%
visOptions(nodesIdSelection = TRUE, manipulation=FALSE) %>%
visIgraphLayout(layout='layout_on_grid') %>%
visLegend
The above is a grid layout that looks like tetris or pac man ping pong machine type layout with the groups.
Lets look out the layout.graphopt layout next.
visNetwork(nodes=nodes1, edges=edges3, main='Grouped Predictions by Business Type') %>% visEdges(arrows=c('from','middle')) %>%
visInteraction(navigationButtons=TRUE, dragNodes=TRUE,
dragView=TRUE, zoomView = TRUE) %>%
visOptions(nodesIdSelection = TRUE, manipulation=FALSE) %>%
visIgraphLayout(layout='layout.graphopt') %>%
visLegend
Looks a lot like the default layout for this data of features. This is the spherical layout that follows.
visNetwork(nodes=nodes1, edges=edges3, main='Grouped Predictions by Business Type') %>% visEdges(arrows=c('from','middle')) %>%
visInteraction(navigationButtons=TRUE, dragNodes=TRUE,
dragView=TRUE, zoomView = TRUE) %>%
visOptions(nodesIdSelection = TRUE, manipulation=FALSE) %>%
visIgraphLayout(layout='layout_on_sphere') %>%
visLegend
It looks similar to the hula hoop star layout for this data with minimal links between nodes.
That was interesting to look at the different layouts in igraph with visNetwork, and to also see ways to improve our model design just as the businesses use reviews to improve or make changes as needed by analyzing the correctly and falsely predicted ratings. The next section will use machine learning algorithms in the caret packageto test out results of various models and defaults as well as test out the attributes within each model for tuning and validating for better generalization.
Lets use the Reviews15_results table, you can read it in if you closed your RStudio session and emptied your environment. The file we saved it as is the ML_Reviews614_resultsTable.csv file.
colnames(Reviews15_results)
## [1] "id" "userReviewSeries" "userReviewOnlyContent"
## [4] "userRatingSeries" "userRatingValue" "businessReplied"
## [7] "businessReplyContent" "userReviewContent" "LowAvgHighCost"
## [10] "businessType" "cityState" "friends"
## [13] "reviews" "photos" "eliteStatus"
## [16] "userName" "Date" "userBusinessPhotos"
## [19] "userCheckIns" "weekday" "area"
## [22] "big" "busy" "definitely"
## [25] "feel" "lot" "many"
## [28] "open" "plus" "two"
## [31] "worth" "year" "the"
## [34] "and" "for." "have"
## [37] "that" "they" "this"
## [40] "you" "not" "but"
## [43] "good" "with" "area_ratios"
## [46] "big_ratios" "busy_ratios" "definitely_ratios"
## [49] "feel_ratios" "lot_ratios" "many_ratios"
## [52] "open_ratios" "plus_ratios" "two_ratios"
## [55] "worth_ratios" "year_ratios" "the_ratios"
## [58] "and_ratios" "for_ratios" "have_ratios"
## [61] "that_ratios" "they_ratios" "this_ratios"
## [64] "you_ratios" "not_ratios" "but_ratios"
## [67] "good_ratios" "with_ratios" "maxVote"
## [70] "votedRating" "Rating" "finalPrediction"
## [73] "CorrectlyPredicted" "CorrectPrediction" "actualRatingValue"
The column features to start with in predicting ratings will be the userRatingValue, businessReplied as a yes or no, LowAvgHighCost, businessType, number of friends, number of reviews, number of photos, number of userBusinessPhotos, weekday, number of userCheckIns, if the user is an eliteStatus, and the stopword ratios.Make sure your libraries are loaded, we will use the caret package to run some analysis on this table of features.
businessRatings <- Reviews15_results[,c(5,6,9:10,12:15,18:20,45:68)]
businessRatings$userRatingValue <- as.factor(paste(businessRatings$userRatingValue))
head(businessRatings)
## userRatingValue businessReplied LowAvgHighCost businessType
## 1 5 yes High high end massage retreat
## 2 5 no Avg chiropractic
## 3 5 no Avg chiropractic
## 4 1 yes High high end massage retreat
## 5 5 no Avg chiropractic
## 6 5 no Avg chiropractic
## friends reviews photos eliteStatus userBusinessPhotos userCheckIns weekday
## 1 26 33 21 <NA> 2 NA Sun
## 2 0 7 NA <NA> NA NA Sun
## 3 943 7 2 <NA> NA 2 Fri
## 4 12 12 4 <NA> NA NA Sat
## 5 11 24 11 <NA> NA 1 Mon
## 6 4 NA NA <NA> NA 27 Thu
## area_ratios big_ratios busy_ratios definitely_ratios feel_ratios lot_ratios
## 1 0.00369 NA NA NA NA NA
## 2 NA NA NA NA NA NA
## 3 NA NA NA NA NA NA
## 4 NA NA NA NA NA NA
## 5 NA NA NA NA NA NA
## 6 0.02410 NA NA NA NA NA
## many_ratios open_ratios plus_ratios two_ratios worth_ratios year_ratios
## 1 NA NA NA NA NA 0.00738
## 2 NA NA NA NA NA NA
## 3 NA NA NA NA NA NA
## 4 NA NA NA NA NA NA
## 5 NA NA NA NA NA NA
## 6 NA NA NA 0.01205 NA NA
## the_ratios and_ratios for_ratios have_ratios that_ratios they_ratios
## 1 0.05535 0.01845 0.01107 0.01476 0.01476 0.01107
## 2 NA 0.02752 0.00917 0.00917 NA NA
## 3 0.06897 0.03448 NA NA NA NA
## 4 0.03182 0.02727 0.00909 NA NA NA
## 5 0.08000 0.06000 NA NA NA NA
## 6 0.03614 0.03614 0.02410 NA NA 0.02410
## this_ratios you_ratios not_ratios but_ratios good_ratios with_ratios
## 1 0.00369 0.00738 0.00369 0.00369 0.00738 NA
## 2 0.00917 NA NA NA NA NA
## 3 NA NA NA NA NA NA
## 4 0.00909 NA 0.01364 0.00455 NA 0.00455
## 5 NA NA NA NA NA NA
## 6 NA 0.01205 NA NA NA NA
Lets use the numeric fields to predict the target of the ratings.
# numRegressions <- businessRatings %>% select(userRatingValue,
# friends:photos, userBusinessPhotos,userCheckIns,
# area_ratios:with_ratios)
numRegressions <- businessRatings[,c(1,5:7,9:10,12:35)]
numRegressions$userRatingValue <- as.numeric(paste(numRegressions$userRatingValue))
str(numRegressions)
## 'data.frame': 614 obs. of 30 variables:
## $ userRatingValue : num 5 5 5 1 5 5 5 5 5 5 ...
## $ friends : int 26 0 943 12 11 4 244 10 14 149 ...
## $ reviews : int 33 7 7 12 24 NA 5 52 35 66 ...
## $ photos : int 21 NA 2 4 11 NA NA 38 5 112 ...
## $ userBusinessPhotos: int 2 NA NA NA NA NA NA NA NA NA ...
## $ userCheckIns : int NA NA 2 NA 1 27 NA 1 1 NA ...
## $ area_ratios : num 0.00369 NA NA NA NA 0.0241 NA NA NA NA ...
## $ big_ratios : num NA NA NA NA NA NA NA NA NA NA ...
## $ busy_ratios : num NA NA NA NA NA NA NA NA NA NA ...
## $ definitely_ratios : num NA NA NA NA NA NA NA NA NA NA ...
## $ feel_ratios : num NA NA NA NA NA NA NA NA NA NA ...
## $ lot_ratios : num NA NA NA NA NA NA NA NA NA NA ...
## $ many_ratios : num NA NA NA NA NA NA NA NA NA NA ...
## $ open_ratios : num NA NA NA NA NA NA NA NA NA NA ...
## $ plus_ratios : num NA NA NA NA NA NA NA NA NA NA ...
## $ two_ratios : num NA NA NA NA NA ...
## $ worth_ratios : num NA NA NA NA NA NA NA NA NA NA ...
## $ year_ratios : num 0.00738 NA NA NA NA NA NA NA NA NA ...
## $ the_ratios : num 0.0554 NA 0.069 0.0318 0.08 ...
## $ and_ratios : num 0.0185 0.0275 0.0345 0.0273 0.06 ...
## $ for_ratios : num 0.01107 0.00917 NA 0.00909 NA ...
## $ have_ratios : num 0.01476 0.00917 NA NA NA ...
## $ that_ratios : num 0.0148 NA NA NA NA ...
## $ they_ratios : num 0.0111 NA NA NA NA ...
## $ this_ratios : num 0.00369 0.00917 NA 0.00909 NA NA NA NA NA NA ...
## $ you_ratios : num 0.00738 NA NA NA NA ...
## $ not_ratios : num 0.00369 NA NA 0.01364 NA ...
## $ but_ratios : num 0.00369 NA NA 0.00455 NA ...
## $ good_ratios : num 0.00738 NA NA NA NA NA NA NA NA NA ...
## $ with_ratios : num NA NA NA 0.00455 NA NA NA NA NA NA ...
Now lets select our training set and our testing set to build the caret models and test the models on. We will sample randomly with the sample function on our indices of the training set and use those indices not in the training set for our testing set.
set.seed(56789)
train <- sample(floor(.7*length(numRegressions$userRatingValue)),replace=FALSE)
trainingSet <- numRegressions[train,]
testingSet <- numRegressions[-train,]
dim(trainingSet);dim(testingSet);dim(trainingSet)[1]+dim(testingSet)[1];dim(numRegressions)
## [1] 429 30
## [1] 185 30
## [1] 614
## [1] 614 30
library(e1071)
library(caret)
library(randomForest)
library(MASS)
library(gbm)
Optionally you could use this method
inTrain <- createDataPartition(y=numRegressions$userRatingValue, p=0.7, list=FALSE)
trainingSet2 <- numRegressions[inTrain,]
testingSet2 <- numRegressions[-inTrain,]
Our training set to build the model is 429 reviews, and our testing set is 185 reviews. There are more 5s in the data overall. Lets look at those numbers.
statsTrain <- trainingSet %>% group_by(userRatingValue) %>% count()
statsTrain$percent <- statsTrain$n/sum(statsTrain$n)
statsTrain
## # A tibble: 5 x 3
## # Groups: userRatingValue [5]
## userRatingValue n percent
## <dbl> <int> <dbl>
## 1 1 64 0.149
## 2 2 30 0.0699
## 3 3 36 0.0839
## 4 4 82 0.191
## 5 5 217 0.506
statsTest <- testingSet %>% group_by(userRatingValue) %>% count()
statsTest$percent <- statsTest$n/sum(statsTest$n)
statsTest
## # A tibble: 5 x 3
## # Groups: userRatingValue [5]
## userRatingValue n percent
## <dbl> <int> <dbl>
## 1 1 24 0.130
## 2 2 4 0.0216
## 3 3 18 0.0973
## 4 4 21 0.114
## 5 5 118 0.638
Lets see what the percent of sampling is with the createDataPartition function in the second sampled set.
statsTrain2 <- trainingSet2 %>% group_by(userRatingValue) %>% count()
statsTrain2$percent <- statsTrain2$n/sum(statsTrain2$n)
statsTrain2
## # A tibble: 5 x 3
## # Groups: userRatingValue [5]
## userRatingValue n percent
## <dbl> <int> <dbl>
## 1 1 62 0.144
## 2 2 22 0.0510
## 3 3 40 0.0928
## 4 4 71 0.165
## 5 5 236 0.548
statsTest2 <- testingSet2 %>% group_by(userRatingValue) %>% count()
statsTest2$percent <- statsTest2$n/sum(statsTest2$n)
statsTest2
## # A tibble: 5 x 3
## # Groups: userRatingValue [5]
## userRatingValue n percent
## <dbl> <int> <dbl>
## 1 1 26 0.142
## 2 2 12 0.0656
## 3 3 14 0.0765
## 4 4 32 0.175
## 5 5 99 0.541
The number of percents are better with the createDataPartitions function, so we will use that sampling set.
library(RANN) #this pkg supplements caret for out of bag validation, and interferes with the select function of tidyverse and dplyr
rfMod0 <- train(userRatingValue~., method='rf',
na.action=na.pass,
data=(trainingSet2), preProc = c("center", "scale","medianImpute"),
trControl=trainControl(method='oob'), number=5)
The following originally produced an error and also does for this case. On the other data set that was used because of the imputing of missing data, when running the next line the predRF0 originally only had 15 rows, and the testingSet2 had 183, it only predicted by the features that had all observations as available. And since we used the meta fields of phots, check-ins, etc, there were many missing values.
predRF0 <- predict(rfMod0, testingSet2)
predDF0 <- data.frame(predRF0, roundPred=round(predRF0,0),
ceilPred=ceiling(predRF0),
floorPred=floor(predRF0),
type=testingSet2$userRatingValue)
predDF0
Lets just use the data set without the meta data as many values are missing. We need a new data table. We will just remove the features we don’t need from our testingSet2 and trainingSet2 tables. Some of the supplemental packages to caret when tuning the random forest trees interferes with tidyverse packages, so we’ll use slicing.
trainingSet3 <- trainingSet2[,c(1,7:30)]
trainingSet3$userRatingValue <- as.factor(paste(trainingSet3$userRatingValue))
colnames(trainingSet3)
## [1] "userRatingValue" "area_ratios" "big_ratios"
## [4] "busy_ratios" "definitely_ratios" "feel_ratios"
## [7] "lot_ratios" "many_ratios" "open_ratios"
## [10] "plus_ratios" "two_ratios" "worth_ratios"
## [13] "year_ratios" "the_ratios" "and_ratios"
## [16] "for_ratios" "have_ratios" "that_ratios"
## [19] "they_ratios" "this_ratios" "you_ratios"
## [22] "not_ratios" "but_ratios" "good_ratios"
## [25] "with_ratios"
testingSet3 <- testingSet2[,c(1,7:30)]
testingSet3$userRatingValue <- as.factor(paste(testingSet3$userRatingValue))
colnames(testingSet3)
## [1] "userRatingValue" "area_ratios" "big_ratios"
## [4] "busy_ratios" "definitely_ratios" "feel_ratios"
## [7] "lot_ratios" "many_ratios" "open_ratios"
## [10] "plus_ratios" "two_ratios" "worth_ratios"
## [13] "year_ratios" "the_ratios" "and_ratios"
## [16] "for_ratios" "have_ratios" "that_ratios"
## [19] "they_ratios" "this_ratios" "you_ratios"
## [22] "not_ratios" "but_ratios" "good_ratios"
## [25] "with_ratios"
dim(testingSet3);dim(trainingSet3)
## [1] 183 25
## [1] 431 25
Lets see if it works for the caret rf model this time.
It won’t with our table of 24 predictors using knnImpute for handling NAs even with the meta fields excluded. It will say there are more points than nearest neighbors. This could mean there are more features than data that isn’t NA in each feature.We will set the eval to FALSE for the knnImpute.
# requires the RANN package
trainingSet3$userRatingValue <- as.numeric(paste(trainingSet3$userRatingValue))
rfMod1 <- train(userRatingValue~., method='rf',
na.action=na.pass,
data=(trainingSet3), preProc = c("center", "scale","knnImpute"),
trControl=trainControl(method='oob'), number=5)
predRF1 <- predict(rfMod1, testingSet3)
predDF1 <- data.frame(predRF1, type=testingSet3$userRatingValue)
predDF1
sum1 <- sum(predRF1==testingSet3$userRatingValue)
length1 <- length(testingSet3$userRatingValue)
accuracy_rfMod1 <- (sum1/length1)
accuracy_rfMod1
We see that the above is regressing with the random forest, lets change the target to a factor to classify into 1-5 classes of ratings.
trainingSet3$userRatingValue <- as.factor(paste(trainingSet3$userRatingValue))
testingSet3$userRatingValue <- as.factor(paste(testingSet3$userRatingValue))
Lets re-run the above two chunks of the model and predictions to see the results.
# requires the RANN package
rfMod1 <- train(userRatingValue~., method='rf',
na.action=na.pass,
data=(trainingSet3), preProc = c("center", "scale","knnImpute"),
trControl=trainControl(method='oob'), number=5)
predRF1 <- predict(rfMod1, testingSet3)
predDF1 <- data.frame(predRF1, type=testingSet3$userRatingValue)
predDF1
sum1 <- sum(predRF1==testingSet3$userRatingValue)
length1 <- length(testingSet3$userRatingValue)
accuracy_rfMod1 <- (sum1/length1)
head(accuracy_rfMod1,30)
The above couldn’t be ran due to the limited number of nearest neighbors for predictors. ***
This won’t work unless the NAs are imputed with 0s in the predictors.
rfMod2 <- train(userRatingValue~., method='rf',
na.action=na.pass,
data=(trainingSet3), preProc = c("center", "scale","bagImpute"),
trControl=trainControl(method='oob'), number=5)
We will impute the NAs with 0s and try again using out of bag and bagImpute.
ts3 <- as.matrix(testingSet3)
ts4 <- as.factor(paste(ts3))
ts5 <- gsub('NA','0',ts4)
ts5b <- as.numeric(paste(ts5))#to make numeric 2nd run
ts6 <- matrix(ts5b,nrow=183,ncol=25,byrow=FALSE)
ts7 <- as.data.frame(ts6)
colnames(ts7) <- colnames(testingSet3)
tn3 <- as.matrix(trainingSet3)
tn4 <- as.factor(paste(tn3))
tn5 <- gsub('NA','0',tn4)
tn5b <- as.numeric(paste(tn5)) #to make numeric 2nd run
tn6 <- matrix(tn5b,nrow=431,ncol=25,byrow=FALSE)
tn7 <- as.data.frame(tn6)
colnames(tn7) <- colnames(trainingSet3)
trainingSet4 <- tn7
testingSet4 <- ts7
We will now try to use the out of bag validation oob and the bagImpute preprocessing of the NA imputed data with 0 and see if it will work, and get the accuracy if it does also work in predicting on our testing set also with 0 imputed NAs in the predictors. All the target values are filled in.
set.seed(123123)
rfMod2 <- train(userRatingValue~., method='rf',
na.action=na.pass,
data=(trainingSet4), preProc = c("center", "scale","bagImpute"),
trControl=trainControl(method='oob'), number=5)
predRF2 <- predict(rfMod2, testingSet4)
predDF2 <- data.frame(predRF2, ceilingPredRF2=ceiling(predRF2),floorPredRF2=floor(predRF2),
roundPredRF2=round(predRF2),type=testingSet4$userRatingValue)
length2 <- length(predDF2$type)
sum2c <- sum(predDF2$ceilingPredRF2==predDF2$type)
sum2r <- sum(predDF2$roundPredRF2==predDF2$type)
sum2f <- sum(predDF2$floorPredRF2==predDF2$type)
accuracy_rfMod2c <- (sum2c/length2)
accuracy_rfMod2r <- (sum2r/length2)
accuracy_rfMod2f <- (sum2f/length2)
accuracy_rfMod2c
## [1] 0.4808743
accuracy_rfMod2r
## [1] 0.295082
accuracy_rfMod2f
## [1] 0.1092896
head(predDF2,30)
## predRF2 ceilingPredRF2 floorPredRF2 roundPredRF2 type
## 1 4.269264 5 4 4 5
## 2 4.165961 5 4 4 5
## 3 4.737336 5 4 5 1
## 4 1.861052 2 1 2 1
## 5 4.350855 5 4 4 5
## 6 2.983380 3 2 3 4
## 7 4.303279 5 4 4 5
## 8 4.485642 5 4 4 5
## 9 4.695544 5 4 5 5
## 10 2.757676 3 2 3 4
## 11 4.261337 5 4 4 5
## 12 4.817759 5 4 5 5
## 13 4.069768 5 4 4 4
## 14 2.482975 3 2 2 1
## 15 3.738583 4 3 4 5
## 16 4.093727 5 4 4 4
## 17 4.251959 5 4 4 5
## 18 3.620452 4 3 4 4
## 19 3.492247 4 3 3 5
## 20 4.410155 5 4 4 5
## 21 3.765283 4 3 4 5
## 22 3.572286 4 3 4 1
## 23 3.349175 4 3 3 1
## 24 4.530611 5 4 5 5
## 25 3.853103 4 3 4 3
## 26 4.626453 5 4 5 5
## 27 4.803438 5 4 5 5
## 28 4.468764 5 4 4 1
## 29 4.561371 5 4 5 5
## 30 3.222326 4 3 3 1
The above takes too long, and was stopped when using all predictors and target as factors for classification. Re-ran with all numeric for the 2nd run including the target for REGRESSION and taking the ceiling of the results gave 44-47% accuracy, the floor was 10-11% and rounded was 27-33%, depending on whether you included setting a seed value to give back the same calculated results from an initial random state.
The 3rd run changed the target to a factor and kept the numeric predictors to CLASSIFY.
#3rd run with predictors as numeric and the target as a factor for classification
trainingSet4$userRatingValue <- as.factor(paste(trainingSet4$userRatingValue))
testingSet4$userRatingValue <- as.factor(paste(testingSet4$userRatingValue))
rfMod2 <- train(userRatingValue~., method='rf',
na.action=na.pass,
data=(trainingSet4), preProc = c("center", "scale","bagImpute"),
trControl=trainControl(method='oob'), number=5)
predRF2 <- predict(rfMod2, testingSet4)
predDF2 <- data.frame(predRF2, type=testingSet4$userRatingValue)
length2 <- length(predDF2$type)
sum3 <- sum(predDF2$predRF2==predDF2$type)
accuracy_rfMod2 <- (sum3/length2)
accuracy_rfMod2
## [1] 0.5901639
head(predDF2,30)
## predRF2 type
## 1 5 5
## 2 5 5
## 3 5 1
## 4 1 1
## 5 5 5
## 6 1 4
## 7 5 5
## 8 5 5
## 9 5 5
## 10 1 4
## 11 5 5
## 12 5 5
## 13 4 4
## 14 1 1
## 15 5 5
## 16 5 4
## 17 5 5
## 18 5 4
## 19 5 5
## 20 5 5
## 21 5 5
## 22 5 1
## 23 5 1
## 24 5 5
## 25 5 3
## 26 5 5
## 27 5 5
## 28 5 1
## 29 5 5
## 30 5 1
Above when classifying, the results were 57-59%, better than all models so far, even the 1st version using 12 stopwords only.
Lets re-run the first RFMod0 for knnImpute on the numeric data with 0 imputed NAs and see if it works. The targets are already factors.
# requires the RANN package
rfMod1 <- train(userRatingValue~., method='rf',
na.action=na.pass,
data=(trainingSet4), preProc = c("center", "scale","knnImpute"),
trControl=trainControl(method='oob'), number=5)
predRF1 <- predict(rfMod1, testingSet4)
predDF1 <- data.frame(predRF1, type=testingSet4$userRatingValue)
predDF1
## predRF1 type
## 1 5 5
## 2 5 5
## 3 5 1
## 4 1 1
## 5 5 5
## 6 5 4
## 7 5 5
## 8 5 5
## 9 5 5
## 10 1 4
## 11 5 5
## 12 5 5
## 13 4 4
## 14 1 1
## 15 5 5
## 16 5 4
## 17 5 5
## 18 5 4
## 19 5 5
## 20 5 5
## 21 5 5
## 22 5 1
## 23 5 1
## 24 5 5
## 25 5 3
## 26 5 5
## 27 5 5
## 28 5 1
## 29 5 5
## 30 5 1
## 31 5 5
## 32 5 5
## 33 5 4
## 34 2 2
## 35 5 2
## 36 5 5
## 37 5 4
## 38 5 5
## 39 5 1
## 40 5 5
## 41 5 2
## 42 1 4
## 43 5 5
## 44 5 5
## 45 5 1
## 46 5 4
## 47 5 5
## 48 5 5
## 49 5 5
## 50 1 1
## 51 4 4
## 52 5 1
## 53 5 5
## 54 5 5
## 55 5 4
## 56 5 5
## 57 5 2
## 58 5 5
## 59 5 5
## 60 1 1
## 61 5 4
## 62 5 4
## 63 5 4
## 64 5 4
## 65 5 4
## 66 5 4
## 67 5 4
## 68 5 5
## 69 5 5
## 70 5 5
## 71 4 3
## 72 5 5
## 73 5 5
## 74 5 5
## 75 5 5
## 76 5 1
## 77 5 5
## 78 5 5
## 79 5 4
## 80 5 2
## 81 5 5
## 82 4 2
## 83 5 3
## 84 5 2
## 85 5 3
## 86 5 4
## 87 5 5
## 88 5 4
## 89 5 1
## 90 1 1
## 91 5 5
## 92 5 4
## 93 5 2
## 94 3 2
## 95 5 5
## 96 5 5
## 97 5 5
## 98 5 5
## 99 5 3
## 100 5 4
## 101 5 5
## 102 4 5
## 103 5 4
## 104 5 5
## 105 5 5
## 106 5 5
## 107 5 5
## 108 1 4
## 109 5 5
## 110 5 5
## 111 5 5
## 112 5 5
## 113 5 3
## 114 1 4
## 115 5 2
## 116 1 1
## 117 4 4
## 118 5 3
## 119 5 4
## 120 5 5
## 121 5 5
## 122 5 5
## 123 4 2
## 124 5 5
## 125 5 5
## 126 5 5
## 127 3 4
## 128 5 5
## 129 5 3
## 130 1 1
## 131 5 1
## 132 5 3
## 133 5 5
## 134 5 5
## 135 5 5
## 136 5 5
## 137 5 5
## 138 5 3
## 139 5 2
## 140 5 3
## 141 5 4
## 142 5 5
## 143 5 5
## 144 3 4
## 145 4 1
## 146 5 1
## 147 5 1
## 148 5 1
## 149 5 1
## 150 3 1
## 151 4 3
## 152 3 3
## 153 5 1
## 154 5 3
## 155 5 5
## 156 5 5
## 157 5 5
## 158 5 5
## 159 5 5
## 160 5 5
## 161 5 5
## 162 5 5
## 163 5 5
## 164 5 5
## 165 5 5
## 166 5 5
## 167 5 5
## 168 5 5
## 169 5 5
## 170 5 5
## 171 5 5
## 172 5 5
## 173 5 5
## 174 5 5
## 175 5 5
## 176 5 4
## 177 5 5
## 178 5 5
## 179 5 5
## 180 5 1
## 181 5 5
## 182 5 5
## 183 5 5
sum1 <- sum(predRF1==predDF1$type)
length1 <- length(predDF1$type)
accuracy_rfMod1 <- (sum1/length1)
head(accuracy_rfMod1,30)
## [1] 0.6010929
We used the trainingSet4 and testingSet4 with 0 imputed NAs on the knnImpute random forest algorithm with out of bag validation and it worked. The results were 60% accuracy, the new best model in classifying the review as a 1-5 rating.
We can turn the targets back to numeric or keep as factors for classification. If we keep as numbers than we have to round,floor, or take the ceiling of the results to get the accuracy in predicting the rating.
# trainingSet4$userRatingValue <- as.numeric(paste(trainingSet4$userRatingValue))
# testingSet4$userRatingValue <- as.numeric(paste(testingSet4$userRatingValue))
Lets keep the values as factors for the targets and keep the NAs as 0s. So we will continue to use the testingSet4 and trainingSet4 data tables to CLASSIFY.
rfMod3 <- train(userRatingValue~., method='rf',
na.action=na.pass,
data=(trainingSet4), preProc = c("center", "scale","medianImpute"),
trControl=trainControl(method='boot'), number=5)
predRF3 <- predict(rfMod3, testingSet4)
predDF3 <- data.frame(predRF3, type=testingSet4$userRatingValue)
predDF3
## predRF3 type
## 1 5 5
## 2 5 5
## 3 5 1
## 4 1 1
## 5 5 5
## 6 1 4
## 7 5 5
## 8 5 5
## 9 5 5
## 10 1 4
## 11 5 5
## 12 5 5
## 13 4 4
## 14 1 1
## 15 5 5
## 16 5 4
## 17 5 5
## 18 5 4
## 19 5 5
## 20 5 5
## 21 5 5
## 22 5 1
## 23 5 1
## 24 5 5
## 25 5 3
## 26 5 5
## 27 5 5
## 28 5 1
## 29 5 5
## 30 5 1
## 31 5 5
## 32 5 5
## 33 5 4
## 34 2 2
## 35 5 2
## 36 5 5
## 37 5 4
## 38 5 5
## 39 5 1
## 40 5 5
## 41 5 2
## 42 1 4
## 43 5 5
## 44 5 5
## 45 5 1
## 46 5 4
## 47 5 5
## 48 5 5
## 49 5 5
## 50 1 1
## 51 4 4
## 52 5 1
## 53 5 5
## 54 5 5
## 55 5 4
## 56 5 5
## 57 5 2
## 58 5 5
## 59 5 5
## 60 1 1
## 61 5 4
## 62 5 4
## 63 5 4
## 64 5 4
## 65 5 4
## 66 5 4
## 67 5 4
## 68 5 5
## 69 5 5
## 70 5 5
## 71 4 3
## 72 5 5
## 73 5 5
## 74 5 5
## 75 5 5
## 76 5 1
## 77 5 5
## 78 5 5
## 79 5 4
## 80 5 2
## 81 5 5
## 82 4 2
## 83 5 3
## 84 5 2
## 85 5 3
## 86 5 4
## 87 5 5
## 88 5 4
## 89 5 1
## 90 2 1
## 91 5 5
## 92 5 4
## 93 5 2
## 94 3 2
## 95 5 5
## 96 5 5
## 97 5 5
## 98 5 5
## 99 5 3
## 100 5 4
## 101 5 5
## 102 4 5
## 103 5 4
## 104 5 5
## 105 5 5
## 106 5 5
## 107 5 5
## 108 1 4
## 109 5 5
## 110 5 5
## 111 5 5
## 112 5 5
## 113 5 3
## 114 1 4
## 115 5 2
## 116 5 1
## 117 4 4
## 118 5 3
## 119 5 4
## 120 5 5
## 121 5 5
## 122 5 5
## 123 4 2
## 124 5 5
## 125 5 5
## 126 5 5
## 127 3 4
## 128 5 5
## 129 5 3
## 130 5 1
## 131 5 1
## 132 5 3
## 133 5 5
## 134 5 5
## 135 5 5
## 136 5 5
## 137 5 5
## 138 5 3
## 139 5 2
## 140 5 3
## 141 5 4
## 142 5 5
## 143 5 5
## 144 3 4
## 145 4 1
## 146 5 1
## 147 5 1
## 148 5 1
## 149 5 1
## 150 3 1
## 151 4 3
## 152 3 3
## 153 5 1
## 154 5 3
## 155 5 5
## 156 5 5
## 157 5 5
## 158 5 5
## 159 5 5
## 160 5 5
## 161 5 5
## 162 5 5
## 163 5 5
## 164 5 5
## 165 5 5
## 166 5 5
## 167 5 5
## 168 1 5
## 169 5 5
## 170 5 5
## 171 5 5
## 172 5 5
## 173 5 5
## 174 5 5
## 175 5 5
## 176 5 4
## 177 5 5
## 178 5 5
## 179 5 5
## 180 5 1
## 181 5 5
## 182 5 5
## 183 5 5
sum3 <- sum(predRF3==testingSet4$userRatingValue)
length3 <- length(testingSet4$userRatingValue)
accuracy_rfMod3 <- (sum3/length3)
head(accuracy_rfMod3,30)
## [1] 0.579235
The accuracy in using the above model to classify with the medianImpute of NAs and the bootstrap method scored 57-59% accuracy in our modified random forest model.
Now we’ll use bootstrap with knnImpute in our random forest classifier.
rfMod4 <- train(userRatingValue~., method='rf',
na.action=na.pass,
data=(trainingSet4), preProc = c("center", "scale","knnImpute"),
trControl=trainControl(method='boot'), number=5)
predRF4 <- predict(rfMod4, testingSet4)
predDF4 <- data.frame(predRF4, type=testingSet4$userRatingValue)
predDF4
## predRF4 type
## 1 5 5
## 2 5 5
## 3 5 1
## 4 1 1
## 5 5 5
## 6 5 4
## 7 5 5
## 8 5 5
## 9 5 5
## 10 1 4
## 11 5 5
## 12 5 5
## 13 4 4
## 14 1 1
## 15 5 5
## 16 5 4
## 17 5 5
## 18 5 4
## 19 5 5
## 20 5 5
## 21 5 5
## 22 5 1
## 23 5 1
## 24 5 5
## 25 5 3
## 26 5 5
## 27 5 5
## 28 5 1
## 29 5 5
## 30 5 1
## 31 5 5
## 32 5 5
## 33 5 4
## 34 2 2
## 35 5 2
## 36 5 5
## 37 5 4
## 38 5 5
## 39 5 1
## 40 5 5
## 41 5 2
## 42 1 4
## 43 5 5
## 44 5 5
## 45 5 1
## 46 5 4
## 47 5 5
## 48 5 5
## 49 5 5
## 50 5 1
## 51 4 4
## 52 5 1
## 53 5 5
## 54 5 5
## 55 5 4
## 56 5 5
## 57 5 2
## 58 5 5
## 59 5 5
## 60 1 1
## 61 5 4
## 62 5 4
## 63 5 4
## 64 5 4
## 65 5 4
## 66 5 4
## 67 5 4
## 68 5 5
## 69 5 5
## 70 5 5
## 71 4 3
## 72 5 5
## 73 5 5
## 74 5 5
## 75 5 5
## 76 5 1
## 77 5 5
## 78 5 5
## 79 5 4
## 80 5 2
## 81 5 5
## 82 4 2
## 83 5 3
## 84 5 2
## 85 5 3
## 86 5 4
## 87 5 5
## 88 5 4
## 89 5 1
## 90 5 1
## 91 5 5
## 92 5 4
## 93 5 2
## 94 3 2
## 95 5 5
## 96 5 5
## 97 5 5
## 98 5 5
## 99 5 3
## 100 5 4
## 101 5 5
## 102 4 5
## 103 5 4
## 104 5 5
## 105 5 5
## 106 5 5
## 107 5 5
## 108 4 4
## 109 5 5
## 110 5 5
## 111 5 5
## 112 5 5
## 113 5 3
## 114 5 4
## 115 5 2
## 116 5 1
## 117 4 4
## 118 5 3
## 119 5 4
## 120 5 5
## 121 5 5
## 122 5 5
## 123 4 2
## 124 5 5
## 125 5 5
## 126 5 5
## 127 3 4
## 128 5 5
## 129 5 3
## 130 1 1
## 131 5 1
## 132 5 3
## 133 5 5
## 134 5 5
## 135 5 5
## 136 5 5
## 137 5 5
## 138 5 3
## 139 5 2
## 140 5 3
## 141 5 4
## 142 5 5
## 143 5 5
## 144 3 4
## 145 4 1
## 146 5 1
## 147 5 1
## 148 5 1
## 149 5 1
## 150 3 1
## 151 4 3
## 152 3 3
## 153 5 1
## 154 5 3
## 155 5 5
## 156 5 5
## 157 5 5
## 158 5 5
## 159 5 5
## 160 5 5
## 161 5 5
## 162 5 5
## 163 5 5
## 164 5 5
## 165 5 5
## 166 5 5
## 167 5 5
## 168 5 5
## 169 5 5
## 170 5 5
## 171 5 5
## 172 5 5
## 173 5 5
## 174 5 5
## 175 5 5
## 176 5 4
## 177 5 5
## 178 5 5
## 179 5 5
## 180 5 1
## 181 5 5
## 182 5 5
## 183 5 5
sum4 <- sum(predRF4==testingSet4$userRatingValue)
length4 <- length(testingSet4$userRatingValue)
accuracy_rfMod4 <- (sum4/length4)
head(accuracy_rfMod4,30)
## [1] 0.5901639
The above scored 59% using random forest bootstrap type validating and knnImputing of NAs. ***
This next model is the random forest but with adaptive_cv validation and bagImpute of NAs. It does take a while.
rfMod5 <- train(userRatingValue~., method='rf',
na.action=na.pass,
data=(trainingSet4), preProc = c("center", "scale","bagImpute"),
trControl=trainControl(method='adaptive_cv'), number=5)
predRF5 <- predict(rfMod5, testingSet4)
predDF5 <- data.frame(predRF5, type=testingSet4$userRatingValue)
predDF5
## predRF5 type
## 1 5 5
## 2 5 5
## 3 5 1
## 4 1 1
## 5 5 5
## 6 5 4
## 7 5 5
## 8 5 5
## 9 5 5
## 10 5 4
## 11 5 5
## 12 5 5
## 13 4 4
## 14 1 1
## 15 5 5
## 16 5 4
## 17 5 5
## 18 5 4
## 19 5 5
## 20 5 5
## 21 5 5
## 22 5 1
## 23 5 1
## 24 5 5
## 25 5 3
## 26 5 5
## 27 5 5
## 28 5 1
## 29 5 5
## 30 5 1
## 31 5 5
## 32 5 5
## 33 5 4
## 34 2 2
## 35 5 2
## 36 5 5
## 37 5 4
## 38 5 5
## 39 5 1
## 40 5 5
## 41 5 2
## 42 1 4
## 43 5 5
## 44 5 5
## 45 5 1
## 46 5 4
## 47 5 5
## 48 5 5
## 49 5 5
## 50 1 1
## 51 4 4
## 52 5 1
## 53 5 5
## 54 5 5
## 55 5 4
## 56 5 5
## 57 5 2
## 58 5 5
## 59 5 5
## 60 1 1
## 61 5 4
## 62 5 4
## 63 5 4
## 64 5 4
## 65 5 4
## 66 5 4
## 67 5 4
## 68 5 5
## 69 5 5
## 70 5 5
## 71 4 3
## 72 5 5
## 73 5 5
## 74 5 5
## 75 5 5
## 76 5 1
## 77 5 5
## 78 5 5
## 79 5 4
## 80 5 2
## 81 5 5
## 82 4 2
## 83 5 3
## 84 5 2
## 85 5 3
## 86 5 4
## 87 5 5
## 88 5 4
## 89 5 1
## 90 1 1
## 91 5 5
## 92 5 4
## 93 5 2
## 94 3 2
## 95 5 5
## 96 5 5
## 97 5 5
## 98 5 5
## 99 5 3
## 100 5 4
## 101 5 5
## 102 4 5
## 103 1 4
## 104 5 5
## 105 5 5
## 106 5 5
## 107 5 5
## 108 4 4
## 109 5 5
## 110 5 5
## 111 5 5
## 112 5 5
## 113 5 3
## 114 1 4
## 115 4 2
## 116 5 1
## 117 4 4
## 118 5 3
## 119 5 4
## 120 5 5
## 121 5 5
## 122 5 5
## 123 4 2
## 124 5 5
## 125 5 5
## 126 5 5
## 127 3 4
## 128 5 5
## 129 5 3
## 130 5 1
## 131 5 1
## 132 5 3
## 133 5 5
## 134 5 5
## 135 5 5
## 136 5 5
## 137 5 5
## 138 5 3
## 139 5 2
## 140 5 3
## 141 5 4
## 142 5 5
## 143 5 5
## 144 3 4
## 145 4 1
## 146 5 1
## 147 5 1
## 148 5 1
## 149 5 1
## 150 3 1
## 151 4 3
## 152 3 3
## 153 5 1
## 154 5 3
## 155 5 5
## 156 5 5
## 157 5 5
## 158 5 5
## 159 5 5
## 160 5 5
## 161 5 5
## 162 5 5
## 163 5 5
## 164 5 5
## 165 5 5
## 166 5 5
## 167 5 5
## 168 1 5
## 169 5 5
## 170 5 5
## 171 5 5
## 172 5 5
## 173 5 5
## 174 5 5
## 175 5 5
## 176 5 4
## 177 5 5
## 178 5 5
## 179 5 5
## 180 5 1
## 181 5 5
## 182 5 5
## 183 5 5
sum5 <- sum(predRF5==testingSet4$userRatingValue)
length5 <- length(testingSet4$userRatingValue)
accuracy_rfMod5 <- (sum5/length5)
head(accuracy_rfMod5,30)
## [1] 0.5901639
rfMod6 <- train(userRatingValue ~., method='rf',
na.action=na.pass,
data=(trainingSet4), preProc = c("center", "scale","medianImpute"),
trControl=trainControl(method='adaptive_boot'), number=5)
predRF6 <- predict(rfMod6, testingSet4)
predDF6 <- data.frame(predRF6, type=testingSet4$userRatingValue)
predDF6
## predRF6 type
## 1 5 5
## 2 5 5
## 3 5 1
## 4 1 1
## 5 5 5
## 6 1 4
## 7 5 5
## 8 5 5
## 9 5 5
## 10 1 4
## 11 5 5
## 12 5 5
## 13 4 4
## 14 1 1
## 15 5 5
## 16 5 4
## 17 5 5
## 18 5 4
## 19 5 5
## 20 5 5
## 21 5 5
## 22 5 1
## 23 5 1
## 24 5 5
## 25 5 3
## 26 5 5
## 27 5 5
## 28 5 1
## 29 5 5
## 30 5 1
## 31 5 5
## 32 5 5
## 33 5 4
## 34 2 2
## 35 5 2
## 36 5 5
## 37 5 4
## 38 5 5
## 39 5 1
## 40 5 5
## 41 5 2
## 42 1 4
## 43 5 5
## 44 5 5
## 45 5 1
## 46 5 4
## 47 5 5
## 48 5 5
## 49 5 5
## 50 1 1
## 51 4 4
## 52 5 1
## 53 5 5
## 54 5 5
## 55 5 4
## 56 5 5
## 57 5 2
## 58 5 5
## 59 5 5
## 60 1 1
## 61 5 4
## 62 5 4
## 63 5 4
## 64 5 4
## 65 5 4
## 66 5 4
## 67 5 4
## 68 5 5
## 69 5 5
## 70 5 5
## 71 4 3
## 72 5 5
## 73 5 5
## 74 5 5
## 75 5 5
## 76 5 1
## 77 5 5
## 78 5 5
## 79 5 4
## 80 5 2
## 81 5 5
## 82 5 2
## 83 5 3
## 84 5 2
## 85 5 3
## 86 5 4
## 87 5 5
## 88 5 4
## 89 5 1
## 90 2 1
## 91 5 5
## 92 5 4
## 93 5 2
## 94 3 2
## 95 5 5
## 96 5 5
## 97 5 5
## 98 5 5
## 99 5 3
## 100 5 4
## 101 5 5
## 102 4 5
## 103 5 4
## 104 5 5
## 105 5 5
## 106 5 5
## 107 5 5
## 108 1 4
## 109 5 5
## 110 5 5
## 111 5 5
## 112 5 5
## 113 5 3
## 114 1 4
## 115 1 2
## 116 5 1
## 117 4 4
## 118 5 3
## 119 5 4
## 120 5 5
## 121 5 5
## 122 5 5
## 123 4 2
## 124 5 5
## 125 5 5
## 126 5 5
## 127 3 4
## 128 5 5
## 129 5 3
## 130 1 1
## 131 5 1
## 132 5 3
## 133 5 5
## 134 5 5
## 135 5 5
## 136 5 5
## 137 5 5
## 138 5 3
## 139 5 2
## 140 5 3
## 141 5 4
## 142 5 5
## 143 5 5
## 144 3 4
## 145 4 1
## 146 5 1
## 147 5 1
## 148 5 1
## 149 5 1
## 150 3 1
## 151 4 3
## 152 3 3
## 153 5 1
## 154 5 3
## 155 5 5
## 156 5 5
## 157 5 5
## 158 5 5
## 159 5 5
## 160 5 5
## 161 5 5
## 162 5 5
## 163 5 5
## 164 5 5
## 165 5 5
## 166 5 5
## 167 5 5
## 168 5 5
## 169 5 5
## 170 5 5
## 171 5 5
## 172 5 5
## 173 5 5
## 174 5 5
## 175 5 5
## 176 5 4
## 177 5 5
## 178 5 5
## 179 5 5
## 180 5 1
## 181 5 5
## 182 5 5
## 183 5 5
sum6 <- sum(predRF6==testingSet4$userRatingValue)
length6 <- length(testingSet4$userRatingValue)
accuracy_rfMod6 <- (sum6/length6)
head(accuracy_rfMod6,30)
## [1] 0.5901639
rfMod7 <- train(userRatingValue ~., method='rf',
na.action=na.pass, search="random",
data=(trainingSet4), preProc = c("center", "scale","medianImpute"),
trControl=trainControl(method='adaptive_cv'), number=5)
predRF7 <- predict(rfMod7, testingSet4)
predDF7 <- data.frame(predRF7, type=testingSet4$userRatingValue)
predDF7
## predRF7 type
## 1 5 5
## 2 5 5
## 3 5 1
## 4 1 1
## 5 5 5
## 6 1 4
## 7 5 5
## 8 5 5
## 9 5 5
## 10 5 4
## 11 5 5
## 12 5 5
## 13 4 4
## 14 1 1
## 15 5 5
## 16 5 4
## 17 5 5
## 18 5 4
## 19 5 5
## 20 5 5
## 21 5 5
## 22 5 1
## 23 5 1
## 24 5 5
## 25 5 3
## 26 5 5
## 27 5 5
## 28 5 1
## 29 5 5
## 30 5 1
## 31 5 5
## 32 5 5
## 33 5 4
## 34 2 2
## 35 5 2
## 36 5 5
## 37 5 4
## 38 5 5
## 39 5 1
## 40 5 5
## 41 5 2
## 42 1 4
## 43 5 5
## 44 5 5
## 45 5 1
## 46 5 4
## 47 5 5
## 48 5 5
## 49 5 5
## 50 5 1
## 51 4 4
## 52 5 1
## 53 5 5
## 54 5 5
## 55 5 4
## 56 5 5
## 57 5 2
## 58 5 5
## 59 5 5
## 60 1 1
## 61 5 4
## 62 5 4
## 63 5 4
## 64 5 4
## 65 5 4
## 66 5 4
## 67 5 4
## 68 5 5
## 69 5 5
## 70 5 5
## 71 4 3
## 72 5 5
## 73 5 5
## 74 5 5
## 75 5 5
## 76 5 1
## 77 5 5
## 78 5 5
## 79 5 4
## 80 5 2
## 81 5 5
## 82 4 2
## 83 5 3
## 84 5 2
## 85 5 3
## 86 5 4
## 87 5 5
## 88 5 4
## 89 5 1
## 90 1 1
## 91 5 5
## 92 5 4
## 93 5 2
## 94 3 2
## 95 5 5
## 96 5 5
## 97 5 5
## 98 5 5
## 99 5 3
## 100 5 4
## 101 5 5
## 102 4 5
## 103 5 4
## 104 5 5
## 105 5 5
## 106 5 5
## 107 5 5
## 108 4 4
## 109 5 5
## 110 5 5
## 111 5 5
## 112 5 5
## 113 5 3
## 114 5 4
## 115 1 2
## 116 5 1
## 117 4 4
## 118 5 3
## 119 5 4
## 120 5 5
## 121 5 5
## 122 5 5
## 123 4 2
## 124 5 5
## 125 5 5
## 126 5 5
## 127 3 4
## 128 5 5
## 129 5 3
## 130 5 1
## 131 5 1
## 132 5 3
## 133 5 5
## 134 5 5
## 135 5 5
## 136 5 5
## 137 5 5
## 138 5 3
## 139 5 2
## 140 5 3
## 141 5 4
## 142 5 5
## 143 5 5
## 144 3 4
## 145 4 1
## 146 5 1
## 147 5 1
## 148 5 1
## 149 5 1
## 150 3 1
## 151 4 3
## 152 3 3
## 153 5 1
## 154 5 3
## 155 5 5
## 156 5 5
## 157 5 5
## 158 5 5
## 159 5 5
## 160 5 5
## 161 5 5
## 162 5 5
## 163 5 5
## 164 5 5
## 165 5 5
## 166 5 5
## 167 5 5
## 168 5 5
## 169 5 5
## 170 5 5
## 171 5 5
## 172 5 5
## 173 5 5
## 174 5 5
## 175 5 5
## 176 5 4
## 177 5 5
## 178 5 5
## 179 5 5
## 180 5 1
## 181 5 5
## 182 5 5
## 183 5 5
sum7 <- sum(predRF7==testingSet4$userRatingValue)
length7 <- length(testingSet4$userRatingValue)
accuracy_rfMod7 <- (sum7/length7)
head(accuracy_rfMod7,30)
## [1] 0.5901639
rfMod8 <- train(userRatingValue ~., method='rf',
na.action=na.pass, search="grid",
data=(trainingSet4), preProc = c("center", "scale","medianImpute"),
trControl=trainControl(method='adaptive_cv'), number=5)
predRF8 <- predict(rfMod8, testingSet4)
predDF8 <- data.frame(predRF8, type=testingSet4$userRatingValue)
predDF8
## predRF8 type
## 1 5 5
## 2 5 5
## 3 5 1
## 4 1 1
## 5 5 5
## 6 4 4
## 7 5 5
## 8 5 5
## 9 5 5
## 10 1 4
## 11 5 5
## 12 5 5
## 13 4 4
## 14 1 1
## 15 5 5
## 16 5 4
## 17 5 5
## 18 1 4
## 19 3 5
## 20 5 5
## 21 1 5
## 22 5 1
## 23 5 1
## 24 5 5
## 25 5 3
## 26 5 5
## 27 5 5
## 28 5 1
## 29 5 5
## 30 4 1
## 31 5 5
## 32 5 5
## 33 5 4
## 34 2 2
## 35 5 2
## 36 5 5
## 37 5 4
## 38 5 5
## 39 1 1
## 40 2 5
## 41 5 2
## 42 4 4
## 43 3 5
## 44 4 5
## 45 5 1
## 46 5 4
## 47 5 5
## 48 5 5
## 49 5 5
## 50 1 1
## 51 4 4
## 52 5 1
## 53 5 5
## 54 5 5
## 55 5 4
## 56 5 5
## 57 4 2
## 58 5 5
## 59 5 5
## 60 1 1
## 61 5 4
## 62 5 4
## 63 5 4
## 64 5 4
## 65 1 4
## 66 5 4
## 67 5 4
## 68 5 5
## 69 5 5
## 70 4 5
## 71 4 3
## 72 5 5
## 73 5 5
## 74 5 5
## 75 1 5
## 76 5 1
## 77 5 5
## 78 5 5
## 79 1 4
## 80 5 2
## 81 5 5
## 82 4 2
## 83 5 3
## 84 4 2
## 85 5 3
## 86 4 4
## 87 5 5
## 88 5 4
## 89 5 1
## 90 2 1
## 91 5 5
## 92 5 4
## 93 1 2
## 94 3 2
## 95 5 5
## 96 5 5
## 97 5 5
## 98 5 5
## 99 5 3
## 100 1 4
## 101 5 5
## 102 4 5
## 103 1 4
## 104 5 5
## 105 5 5
## 106 5 5
## 107 5 5
## 108 4 4
## 109 5 5
## 110 5 5
## 111 5 5
## 112 5 5
## 113 5 3
## 114 1 4
## 115 4 2
## 116 5 1
## 117 4 4
## 118 5 3
## 119 3 4
## 120 5 5
## 121 5 5
## 122 5 5
## 123 4 2
## 124 5 5
## 125 5 5
## 126 5 5
## 127 3 4
## 128 5 5
## 129 5 3
## 130 1 1
## 131 4 1
## 132 5 3
## 133 5 5
## 134 5 5
## 135 5 5
## 136 5 5
## 137 5 5
## 138 4 3
## 139 5 2
## 140 5 3
## 141 5 4
## 142 5 5
## 143 5 5
## 144 3 4
## 145 4 1
## 146 5 1
## 147 3 1
## 148 4 1
## 149 4 1
## 150 3 1
## 151 4 3
## 152 3 3
## 153 1 1
## 154 4 3
## 155 5 5
## 156 1 5
## 157 5 5
## 158 5 5
## 159 5 5
## 160 2 5
## 161 5 5
## 162 5 5
## 163 5 5
## 164 5 5
## 165 5 5
## 166 5 5
## 167 5 5
## 168 1 5
## 169 5 5
## 170 5 5
## 171 5 5
## 172 5 5
## 173 5 5
## 174 5 5
## 175 5 5
## 176 5 4
## 177 5 5
## 178 5 5
## 179 5 5
## 180 3 1
## 181 5 5
## 182 5 5
## 183 5 5
sum8 <- sum(predRF8==testingSet4$userRatingValue)
length8 <- length(testingSet4$userRatingValue)
accuracy_rfMod8 <- (sum8/length8)
head(accuracy_rfMod8,30)
## [1] 0.568306
rfMod9 <- train(userRatingValue ~., method='rf',
na.action=na.pass, search="grid",
data=(trainingSet4), preProc = c("center", "scale","medianImpute"),
trControl=trainControl(method='adaptive_cv'), number=10)
predRF9 <- predict(rfMod9, testingSet4)
predDF9 <- data.frame(predRF9, type=testingSet4$userRatingValue)
predDF9
## predRF9 type
## 1 5 5
## 2 5 5
## 3 5 1
## 4 1 1
## 5 5 5
## 6 1 4
## 7 5 5
## 8 5 5
## 9 5 5
## 10 5 4
## 11 5 5
## 12 5 5
## 13 4 4
## 14 1 1
## 15 5 5
## 16 5 4
## 17 5 5
## 18 5 4
## 19 5 5
## 20 5 5
## 21 5 5
## 22 5 1
## 23 5 1
## 24 5 5
## 25 5 3
## 26 5 5
## 27 5 5
## 28 5 1
## 29 5 5
## 30 5 1
## 31 5 5
## 32 5 5
## 33 5 4
## 34 2 2
## 35 5 2
## 36 5 5
## 37 5 4
## 38 5 5
## 39 5 1
## 40 5 5
## 41 5 2
## 42 1 4
## 43 5 5
## 44 5 5
## 45 5 1
## 46 5 4
## 47 5 5
## 48 5 5
## 49 5 5
## 50 5 1
## 51 4 4
## 52 5 1
## 53 5 5
## 54 5 5
## 55 5 4
## 56 5 5
## 57 5 2
## 58 5 5
## 59 5 5
## 60 1 1
## 61 5 4
## 62 5 4
## 63 5 4
## 64 5 4
## 65 5 4
## 66 5 4
## 67 5 4
## 68 5 5
## 69 5 5
## 70 5 5
## 71 4 3
## 72 5 5
## 73 5 5
## 74 5 5
## 75 5 5
## 76 5 1
## 77 5 5
## 78 5 5
## 79 5 4
## 80 5 2
## 81 5 5
## 82 5 2
## 83 5 3
## 84 5 2
## 85 5 3
## 86 5 4
## 87 5 5
## 88 5 4
## 89 5 1
## 90 2 1
## 91 5 5
## 92 5 4
## 93 5 2
## 94 3 2
## 95 5 5
## 96 5 5
## 97 5 5
## 98 5 5
## 99 5 3
## 100 5 4
## 101 5 5
## 102 4 5
## 103 5 4
## 104 5 5
## 105 5 5
## 106 5 5
## 107 5 5
## 108 1 4
## 109 5 5
## 110 5 5
## 111 5 5
## 112 5 5
## 113 5 3
## 114 5 4
## 115 5 2
## 116 5 1
## 117 4 4
## 118 5 3
## 119 5 4
## 120 5 5
## 121 5 5
## 122 5 5
## 123 4 2
## 124 5 5
## 125 5 5
## 126 5 5
## 127 3 4
## 128 5 5
## 129 5 3
## 130 1 1
## 131 5 1
## 132 5 3
## 133 5 5
## 134 5 5
## 135 5 5
## 136 5 5
## 137 5 5
## 138 5 3
## 139 5 2
## 140 5 3
## 141 5 4
## 142 5 5
## 143 5 5
## 144 3 4
## 145 4 1
## 146 5 1
## 147 5 1
## 148 5 1
## 149 5 1
## 150 3 1
## 151 4 3
## 152 3 3
## 153 5 1
## 154 5 3
## 155 5 5
## 156 5 5
## 157 5 5
## 158 5 5
## 159 5 5
## 160 5 5
## 161 5 5
## 162 5 5
## 163 5 5
## 164 5 5
## 165 5 5
## 166 5 5
## 167 5 5
## 168 5 5
## 169 5 5
## 170 5 5
## 171 5 5
## 172 5 5
## 173 5 5
## 174 5 5
## 175 5 5
## 176 5 4
## 177 5 5
## 178 5 5
## 179 5 5
## 180 5 1
## 181 5 5
## 182 5 5
## 183 5 5
sum9 <- sum(predRF9==testingSet4$userRatingValue)
length9 <- length(testingSet4$userRatingValue)
accuracy_rfMod9 <- (sum9/length9)
head(accuracy_rfMod9,30)
## [1] 0.5846995
rfMod10 <- train(userRatingValue ~., method='rf',
na.action=na.pass, search="random",
data=(trainingSet4), preProc = c("center", "scale","medianImpute"),
trControl=trainControl(method='adaptive_cv'), number=10)
predRF10 <- predict(rfMod10, testingSet4)
predDF10 <- data.frame(predRF10, type=testingSet4$userRatingValue)
predDF10
## predRF10 type
## 1 5 5
## 2 4 5
## 3 5 1
## 4 1 1
## 5 5 5
## 6 4 4
## 7 5 5
## 8 5 5
## 9 5 5
## 10 1 4
## 11 5 5
## 12 5 5
## 13 4 4
## 14 1 1
## 15 5 5
## 16 5 4
## 17 5 5
## 18 1 4
## 19 3 5
## 20 5 5
## 21 1 5
## 22 5 1
## 23 5 1
## 24 5 5
## 25 5 3
## 26 5 5
## 27 5 5
## 28 5 1
## 29 5 5
## 30 4 1
## 31 5 5
## 32 5 5
## 33 5 4
## 34 2 2
## 35 5 2
## 36 5 5
## 37 5 4
## 38 5 5
## 39 1 1
## 40 2 5
## 41 5 2
## 42 1 4
## 43 3 5
## 44 4 5
## 45 5 1
## 46 5 4
## 47 5 5
## 48 5 5
## 49 5 5
## 50 1 1
## 51 4 4
## 52 5 1
## 53 5 5
## 54 5 5
## 55 2 4
## 56 5 5
## 57 4 2
## 58 5 5
## 59 5 5
## 60 3 1
## 61 5 4
## 62 5 4
## 63 5 4
## 64 5 4
## 65 1 4
## 66 5 4
## 67 5 4
## 68 5 5
## 69 5 5
## 70 4 5
## 71 4 3
## 72 5 5
## 73 5 5
## 74 5 5
## 75 1 5
## 76 5 1
## 77 5 5
## 78 5 5
## 79 1 4
## 80 5 2
## 81 5 5
## 82 4 2
## 83 5 3
## 84 4 2
## 85 5 3
## 86 5 4
## 87 5 5
## 88 5 4
## 89 5 1
## 90 2 1
## 91 5 5
## 92 5 4
## 93 1 2
## 94 3 2
## 95 4 5
## 96 5 5
## 97 5 5
## 98 5 5
## 99 4 3
## 100 1 4
## 101 5 5
## 102 4 5
## 103 1 4
## 104 5 5
## 105 5 5
## 106 5 5
## 107 5 5
## 108 4 4
## 109 5 5
## 110 5 5
## 111 5 5
## 112 2 5
## 113 5 3
## 114 1 4
## 115 1 2
## 116 3 1
## 117 4 4
## 118 5 3
## 119 3 4
## 120 5 5
## 121 5 5
## 122 5 5
## 123 4 2
## 124 5 5
## 125 5 5
## 126 5 5
## 127 3 4
## 128 5 5
## 129 5 3
## 130 1 1
## 131 4 1
## 132 5 3
## 133 5 5
## 134 5 5
## 135 5 5
## 136 5 5
## 137 5 5
## 138 4 3
## 139 5 2
## 140 5 3
## 141 5 4
## 142 5 5
## 143 5 5
## 144 3 4
## 145 4 1
## 146 5 1
## 147 3 1
## 148 4 1
## 149 4 1
## 150 3 1
## 151 4 3
## 152 3 3
## 153 1 1
## 154 4 3
## 155 5 5
## 156 1 5
## 157 5 5
## 158 5 5
## 159 5 5
## 160 2 5
## 161 5 5
## 162 5 5
## 163 5 5
## 164 5 5
## 165 5 5
## 166 5 5
## 167 5 5
## 168 1 5
## 169 5 5
## 170 5 5
## 171 5 5
## 172 5 5
## 173 5 5
## 174 5 5
## 175 5 5
## 176 5 4
## 177 5 5
## 178 5 5
## 179 5 5
## 180 3 1
## 181 5 5
## 182 5 5
## 183 5 5
sum10 <- sum(predRF10==testingSet4$userRatingValue)
length10 <- length(testingSet4$userRatingValue)
accuracy_rfMod10 <- (sum10/length10)
head(accuracy_rfMod10,30)
## [1] 0.5355191
accuracy10RFModels <- as.data.frame(c(accuracy_rfMod1,
accuracy_rfMod2, accuracy_rfMod3,
accuracy_rfMod4, accuracy_rfMod5,
accuracy_rfMod6, accuracy_rfMod7,
accuracy_rfMod8, accuracy_rfMod9,
accuracy_rfMod10,Accuracy))
colnames(accuracy10RFModels) <- 'accuracyResults'
row.names(accuracy10RFModels) <- c('knnImpute_OOB_5',
'bagImpute_OOB_5','medianImpute_boot_5',
'knnImpute_boot_5','bagImpute_adaptive_cv_5',
'medianImpute_adaptive_boot_5',
'medianImpute_randomSearch_adaptive_cv_5',
'medianImpute_gridSearch_adaptive_cv_5',
'medianImpute_gridSearch_adaptiv_cv_10',
'medianImpute_randomSearch_adaptive_cv_10',
'manualCeilgMeanAbsDiffRatios')
accuracy10RFModels
## accuracyResults
## knnImpute_OOB_5 0.6010929
## bagImpute_OOB_5 0.5901639
## medianImpute_boot_5 0.5792350
## knnImpute_boot_5 0.5901639
## bagImpute_adaptive_cv_5 0.5901639
## medianImpute_adaptive_boot_5 0.5901639
## medianImpute_randomSearch_adaptive_cv_5 0.5901639
## medianImpute_gridSearch_adaptive_cv_5 0.5683060
## medianImpute_gridSearch_adaptiv_cv_10 0.5846995
## medianImpute_randomSearch_adaptive_cv_10 0.5355191
## manualCeilgMeanAbsDiffRatios 0.3208469
Our keywords didn’t improve our manual predictions better than the 1st version of using only 12 stopwords. But we can see that using those same stopwords, and keeping the NAs as 0 imputed as well as having the target a factor to classify ratings 1-5 improved about 5%. The highest score on 1st version was 57% and with this version of the added 12 keywords the highes value is 60% with the lowest 54% accuracy the same as the 1st version.
Lets now tryy using other algortithms on our same 0 imputed NA data set where the target is factor data type.
knnMod0 <- train(userRatingValue ~ .,
method='knn', preProcess=c('center','scale'),
tuneLength=10, trControl=trainControl(method='adaptive_cv'),
data=trainingSet4)
predKNN0 <- predict(knnMod0, testingSet4)
dfKNN0 <- data.frame(predKNN0, true=testingSet4$userRatingValue)
dfKNN0
## predKNN0 true
## 1 5 5
## 2 1 5
## 3 5 1
## 4 1 1
## 5 5 5
## 6 1 4
## 7 5 5
## 8 5 5
## 9 5 5
## 10 1 4
## 11 5 5
## 12 5 5
## 13 4 4
## 14 5 1
## 15 5 5
## 16 5 4
## 17 5 5
## 18 5 4
## 19 5 5
## 20 5 5
## 21 1 5
## 22 1 1
## 23 5 1
## 24 1 5
## 25 5 3
## 26 5 5
## 27 5 5
## 28 5 1
## 29 5 5
## 30 5 1
## 31 1 5
## 32 5 5
## 33 4 4
## 34 1 2
## 35 5 2
## 36 5 5
## 37 5 4
## 38 5 5
## 39 1 1
## 40 5 5
## 41 5 2
## 42 2 4
## 43 4 5
## 44 1 5
## 45 5 1
## 46 5 4
## 47 5 5
## 48 5 5
## 49 5 5
## 50 1 1
## 51 1 4
## 52 1 1
## 53 5 5
## 54 5 5
## 55 5 4
## 56 1 5
## 57 5 2
## 58 5 5
## 59 5 5
## 60 5 1
## 61 5 4
## 62 5 4
## 63 5 4
## 64 5 4
## 65 5 4
## 66 5 4
## 67 5 4
## 68 5 5
## 69 5 5
## 70 5 5
## 71 1 3
## 72 5 5
## 73 5 5
## 74 1 5
## 75 5 5
## 76 5 1
## 77 5 5
## 78 5 5
## 79 1 4
## 80 5 2
## 81 5 5
## 82 1 2
## 83 5 3
## 84 5 2
## 85 5 3
## 86 5 4
## 87 5 5
## 88 1 4
## 89 1 1
## 90 1 1
## 91 5 5
## 92 5 4
## 93 5 2
## 94 1 2
## 95 5 5
## 96 5 5
## 97 5 5
## 98 5 5
## 99 5 3
## 100 5 4
## 101 5 5
## 102 4 5
## 103 5 4
## 104 5 5
## 105 5 5
## 106 5 5
## 107 5 5
## 108 1 4
## 109 5 5
## 110 5 5
## 111 5 5
## 112 1 5
## 113 5 3
## 114 1 4
## 115 1 2
## 116 1 1
## 117 4 4
## 118 5 3
## 119 5 4
## 120 1 5
## 121 5 5
## 122 5 5
## 123 5 2
## 124 5 5
## 125 5 5
## 126 5 5
## 127 4 4
## 128 5 5
## 129 5 3
## 130 5 1
## 131 5 1
## 132 5 3
## 133 5 5
## 134 5 5
## 135 5 5
## 136 5 5
## 137 5 5
## 138 5 3
## 139 1 2
## 140 5 3
## 141 1 4
## 142 5 5
## 143 5 5
## 144 4 4
## 145 5 1
## 146 5 1
## 147 5 1
## 148 5 1
## 149 5 1
## 150 4 1
## 151 5 3
## 152 4 3
## 153 5 1
## 154 5 3
## 155 5 5
## 156 1 5
## 157 5 5
## 158 5 5
## 159 5 5
## 160 1 5
## 161 5 5
## 162 5 5
## 163 5 5
## 164 5 5
## 165 5 5
## 166 5 5
## 167 5 5
## 168 1 5
## 169 5 5
## 170 5 5
## 171 5 5
## 172 5 5
## 173 5 5
## 174 5 5
## 175 5 5
## 176 5 4
## 177 5 5
## 178 5 5
## 179 5 5
## 180 5 1
## 181 5 5
## 182 5 5
## 183 5 5
sumKNN0 <- sum(predKNN0==testingSet4$userRatingValue)
lengthKNN0 <- length(testingSet4$userRatingValue)
accuracy_knnMod0 <- (sumKNN0/lengthKNN0)
head(accuracy_knnMod0,30)
## [1] 0.5355191
rpartMod0 <- train(userRatingValue ~ ., method='rpart', tuneLength=7, data=trainingSet4)
predRPART0 <- predict(rpartMod0, testingSet4)
dfRPART0 <- data.frame(predRPART0, true=testingSet4$userRatingValue)
dfRPART0
## predRPART0 true
## 1 5 5
## 2 5 5
## 3 5 1
## 4 5 1
## 5 5 5
## 6 5 4
## 7 5 5
## 8 5 5
## 9 5 5
## 10 5 4
## 11 5 5
## 12 5 5
## 13 5 4
## 14 5 1
## 15 5 5
## 16 5 4
## 17 5 5
## 18 5 4
## 19 5 5
## 20 5 5
## 21 5 5
## 22 5 1
## 23 5 1
## 24 5 5
## 25 5 3
## 26 5 5
## 27 5 5
## 28 5 1
## 29 5 5
## 30 5 1
## 31 5 5
## 32 5 5
## 33 5 4
## 34 5 2
## 35 5 2
## 36 5 5
## 37 5 4
## 38 5 5
## 39 5 1
## 40 5 5
## 41 5 2
## 42 5 4
## 43 5 5
## 44 5 5
## 45 5 1
## 46 5 4
## 47 5 5
## 48 5 5
## 49 5 5
## 50 5 1
## 51 5 4
## 52 5 1
## 53 5 5
## 54 5 5
## 55 5 4
## 56 5 5
## 57 5 2
## 58 5 5
## 59 5 5
## 60 5 1
## 61 5 4
## 62 5 4
## 63 5 4
## 64 5 4
## 65 5 4
## 66 5 4
## 67 5 4
## 68 5 5
## 69 5 5
## 70 5 5
## 71 5 3
## 72 5 5
## 73 5 5
## 74 5 5
## 75 5 5
## 76 5 1
## 77 5 5
## 78 5 5
## 79 5 4
## 80 5 2
## 81 5 5
## 82 5 2
## 83 5 3
## 84 5 2
## 85 5 3
## 86 5 4
## 87 5 5
## 88 5 4
## 89 5 1
## 90 5 1
## 91 5 5
## 92 5 4
## 93 5 2
## 94 5 2
## 95 5 5
## 96 5 5
## 97 5 5
## 98 5 5
## 99 5 3
## 100 5 4
## 101 5 5
## 102 5 5
## 103 5 4
## 104 5 5
## 105 5 5
## 106 5 5
## 107 5 5
## 108 5 4
## 109 5 5
## 110 5 5
## 111 5 5
## 112 5 5
## 113 5 3
## 114 5 4
## 115 5 2
## 116 5 1
## 117 5 4
## 118 5 3
## 119 5 4
## 120 5 5
## 121 5 5
## 122 5 5
## 123 5 2
## 124 5 5
## 125 5 5
## 126 5 5
## 127 5 4
## 128 5 5
## 129 5 3
## 130 5 1
## 131 5 1
## 132 5 3
## 133 5 5
## 134 5 5
## 135 5 5
## 136 5 5
## 137 5 5
## 138 5 3
## 139 5 2
## 140 5 3
## 141 5 4
## 142 5 5
## 143 5 5
## 144 5 4
## 145 5 1
## 146 5 1
## 147 5 1
## 148 5 1
## 149 5 1
## 150 5 1
## 151 5 3
## 152 5 3
## 153 5 1
## 154 5 3
## 155 5 5
## 156 5 5
## 157 5 5
## 158 5 5
## 159 5 5
## 160 5 5
## 161 5 5
## 162 5 5
## 163 5 5
## 164 5 5
## 165 5 5
## 166 5 5
## 167 5 5
## 168 5 5
## 169 5 5
## 170 5 5
## 171 5 5
## 172 5 5
## 173 5 5
## 174 5 5
## 175 5 5
## 176 5 4
## 177 5 5
## 178 5 5
## 179 5 5
## 180 5 1
## 181 5 5
## 182 5 5
## 183 5 5
sumRPART0 <- sum(predRPART0==testingSet4$userRatingValue)
lengthRPART0 <- length(testingSet4$userRatingValue)
accuracy_RPARTMod0 <- (sumRPART0/lengthRPART0)
head(accuracy_RPARTMod0,30)
## [1] 0.5409836
RFtunes <- cbind(predDF1[1],predDF2[1],predDF3[1],
predDF4[1],predDF5[1],predDF6[1],
predDF7[1],predDF8[1],predDF9[1],
predDF10[1])
ManualMean <- Reviews15_results$finalPrediction[-inTrain]
predDF11 <- data.frame(RFtunes,ManualMean,dfKNN0[1],dfRPART0[1],
true=testingSet3$userRatingValue)
#the following column name assignment doesn't change the name as intended
colnames(predDF11[12:14]) <-c('predKNN','predRPART','trueValue')
results <- as.data.frame(c(round(accuracy_knnMod0,2),
round(accuracy_RPARTMod0,2),
round(100,2)))
colnames(results) <- 'results'
results$results <- as.factor(paste(results$results))
results1 <- as.data.frame(t(results))
colnames(results1) <- colnames(predDF11[12:14])
acc11 <- as.data.frame(accuracy10RFModels)
colnames(acc11) <- 'results'
acc11$results <- round(acc11$results,2)
acc11$results <- as.factor(paste(acc11$results))
names1 <- colnames(predDF11)[1:10]
row.names(acc11) <- c(names1,'ManualMean')
acc11RFs <- as.data.frame(t(acc11))
resultsAll <- cbind(acc11RFs,results1)
Results <- rbind(predDF11, resultsAll)
#the column names have to be changed here as well
colnames(Results)[12:13] <- c('predKNN','predRPART')
Results
## predRF1 predRF2 predRF3 predRF4 predRF5 predRF6 predRF7 predRF8 predRF9
## 1 5 5 5 5 5 5 5 5 5
## 2 5 5 5 5 5 5 5 5 5
## 3 5 5 5 5 5 5 5 5 5
## 4 1 1 1 1 1 1 1 1 1
## 5 5 5 5 5 5 5 5 5 5
## 6 5 1 1 5 5 1 1 4 1
## 7 5 5 5 5 5 5 5 5 5
## 8 5 5 5 5 5 5 5 5 5
## 9 5 5 5 5 5 5 5 5 5
## 10 1 1 1 1 5 1 5 1 5
## 11 5 5 5 5 5 5 5 5 5
## 12 5 5 5 5 5 5 5 5 5
## 13 4 4 4 4 4 4 4 4 4
## 14 1 1 1 1 1 1 1 1 1
## 15 5 5 5 5 5 5 5 5 5
## 16 5 5 5 5 5 5 5 5 5
## 17 5 5 5 5 5 5 5 5 5
## 18 5 5 5 5 5 5 5 1 5
## 19 5 5 5 5 5 5 5 3 5
## 20 5 5 5 5 5 5 5 5 5
## 21 5 5 5 5 5 5 5 1 5
## 22 5 5 5 5 5 5 5 5 5
## 23 5 5 5 5 5 5 5 5 5
## 24 5 5 5 5 5 5 5 5 5
## 25 5 5 5 5 5 5 5 5 5
## 26 5 5 5 5 5 5 5 5 5
## 27 5 5 5 5 5 5 5 5 5
## 28 5 5 5 5 5 5 5 5 5
## 29 5 5 5 5 5 5 5 5 5
## 30 5 5 5 5 5 5 5 4 5
## 31 5 5 5 5 5 5 5 5 5
## 32 5 5 5 5 5 5 5 5 5
## 33 5 5 5 5 5 5 5 5 5
## 34 2 2 2 2 2 2 2 2 2
## 35 5 5 5 5 5 5 5 5 5
## 36 5 5 5 5 5 5 5 5 5
## 37 5 5 5 5 5 5 5 5 5
## 38 5 5 5 5 5 5 5 5 5
## 39 5 5 5 5 5 5 5 1 5
## 40 5 5 5 5 5 5 5 2 5
## 41 5 5 5 5 5 5 5 5 5
## 42 1 1 1 1 1 1 1 4 1
## 43 5 5 5 5 5 5 5 3 5
## 44 5 5 5 5 5 5 5 4 5
## 45 5 5 5 5 5 5 5 5 5
## 46 5 5 5 5 5 5 5 5 5
## 47 5 5 5 5 5 5 5 5 5
## 48 5 5 5 5 5 5 5 5 5
## 49 5 5 5 5 5 5 5 5 5
## 50 1 1 1 5 1 1 5 1 5
## 51 4 4 4 4 4 4 4 4 4
## 52 5 5 5 5 5 5 5 5 5
## 53 5 5 5 5 5 5 5 5 5
## 54 5 5 5 5 5 5 5 5 5
## 55 5 5 5 5 5 5 5 5 5
## 56 5 5 5 5 5 5 5 5 5
## 57 5 5 5 5 5 5 5 4 5
## 58 5 5 5 5 5 5 5 5 5
## 59 5 5 5 5 5 5 5 5 5
## 60 1 1 1 1 1 1 1 1 1
## 61 5 5 5 5 5 5 5 5 5
## 62 5 5 5 5 5 5 5 5 5
## 63 5 5 5 5 5 5 5 5 5
## 64 5 5 5 5 5 5 5 5 5
## 65 5 5 5 5 5 5 5 1 5
## 66 5 5 5 5 5 5 5 5 5
## 67 5 5 5 5 5 5 5 5 5
## 68 5 5 5 5 5 5 5 5 5
## 69 5 5 5 5 5 5 5 5 5
## 70 5 5 5 5 5 5 5 4 5
## 71 4 4 4 4 4 4 4 4 4
## 72 5 5 5 5 5 5 5 5 5
## 73 5 5 5 5 5 5 5 5 5
## 74 5 5 5 5 5 5 5 5 5
## 75 5 5 5 5 5 5 5 1 5
## 76 5 5 5 5 5 5 5 5 5
## 77 5 5 5 5 5 5 5 5 5
## 78 5 5 5 5 5 5 5 5 5
## 79 5 5 5 5 5 5 5 1 5
## 80 5 5 5 5 5 5 5 5 5
## 81 5 5 5 5 5 5 5 5 5
## 82 4 5 4 4 4 5 4 4 5
## 83 5 5 5 5 5 5 5 5 5
## 84 5 5 5 5 5 5 5 4 5
## 85 5 5 5 5 5 5 5 5 5
## 86 5 5 5 5 5 5 5 4 5
## 87 5 5 5 5 5 5 5 5 5
## 88 5 5 5 5 5 5 5 5 5
## 89 5 5 5 5 5 5 5 5 5
## 90 1 1 2 5 1 2 1 2 2
## 91 5 5 5 5 5 5 5 5 5
## 92 5 5 5 5 5 5 5 5 5
## 93 5 5 5 5 5 5 5 1 5
## 94 3 3 3 3 3 3 3 3 3
## 95 5 5 5 5 5 5 5 5 5
## 96 5 5 5 5 5 5 5 5 5
## 97 5 5 5 5 5 5 5 5 5
## 98 5 5 5 5 5 5 5 5 5
## 99 5 5 5 5 5 5 5 5 5
## 100 5 5 5 5 5 5 5 1 5
## 101 5 5 5 5 5 5 5 5 5
## 102 4 4 4 4 4 4 4 4 4
## 103 5 5 5 5 1 5 5 1 5
## 104 5 5 5 5 5 5 5 5 5
## 105 5 5 5 5 5 5 5 5 5
## 106 5 5 5 5 5 5 5 5 5
## 107 5 5 5 5 5 5 5 5 5
## 108 1 4 1 4 4 1 4 4 1
## 109 5 5 5 5 5 5 5 5 5
## 110 5 5 5 5 5 5 5 5 5
## 111 5 5 5 5 5 5 5 5 5
## 112 5 5 5 5 5 5 5 5 5
## 113 5 5 5 5 5 5 5 5 5
## 114 1 5 1 5 1 1 5 1 5
## 115 5 4 5 5 4 1 1 4 5
## 116 1 5 5 5 5 5 5 5 5
## 117 4 4 4 4 4 4 4 4 4
## 118 5 5 5 5 5 5 5 5 5
## 119 5 5 5 5 5 5 5 3 5
## 120 5 5 5 5 5 5 5 5 5
## 121 5 5 5 5 5 5 5 5 5
## 122 5 5 5 5 5 5 5 5 5
## 123 4 4 4 4 4 4 4 4 4
## 124 5 5 5 5 5 5 5 5 5
## 125 5 5 5 5 5 5 5 5 5
## 126 5 5 5 5 5 5 5 5 5
## 127 3 3 3 3 3 3 3 3 3
## 128 5 5 5 5 5 5 5 5 5
## 129 5 5 5 5 5 5 5 5 5
## 130 1 5 5 1 5 1 5 1 1
## 131 5 5 5 5 5 5 5 4 5
## 132 5 5 5 5 5 5 5 5 5
## 133 5 5 5 5 5 5 5 5 5
## 134 5 5 5 5 5 5 5 5 5
## 135 5 5 5 5 5 5 5 5 5
## 136 5 5 5 5 5 5 5 5 5
## 137 5 5 5 5 5 5 5 5 5
## 138 5 5 5 5 5 5 5 4 5
## 139 5 5 5 5 5 5 5 5 5
## 140 5 5 5 5 5 5 5 5 5
## 141 5 5 5 5 5 5 5 5 5
## 142 5 5 5 5 5 5 5 5 5
## 143 5 5 5 5 5 5 5 5 5
## 144 3 3 3 3 3 3 3 3 3
## 145 4 4 4 4 4 4 4 4 4
## 146 5 5 5 5 5 5 5 5 5
## 147 5 5 5 5 5 5 5 3 5
## 148 5 5 5 5 5 5 5 4 5
## 149 5 5 5 5 5 5 5 4 5
## 150 3 3 3 3 3 3 3 3 3
## 151 4 4 4 4 4 4 4 4 4
## 152 3 3 3 3 3 3 3 3 3
## 153 5 5 5 5 5 5 5 1 5
## 154 5 5 5 5 5 5 5 4 5
## 155 5 5 5 5 5 5 5 5 5
## 156 5 5 5 5 5 5 5 1 5
## 157 5 5 5 5 5 5 5 5 5
## 158 5 5 5 5 5 5 5 5 5
## 159 5 5 5 5 5 5 5 5 5
## 160 5 5 5 5 5 5 5 2 5
## 161 5 5 5 5 5 5 5 5 5
## 162 5 5 5 5 5 5 5 5 5
## 163 5 5 5 5 5 5 5 5 5
## 164 5 5 5 5 5 5 5 5 5
## 165 5 5 5 5 5 5 5 5 5
## 166 5 5 5 5 5 5 5 5 5
## 167 5 5 5 5 5 5 5 5 5
## 168 5 1 1 5 1 5 5 1 5
## 169 5 5 5 5 5 5 5 5 5
## 170 5 5 5 5 5 5 5 5 5
## 171 5 5 5 5 5 5 5 5 5
## 172 5 5 5 5 5 5 5 5 5
## 173 5 5 5 5 5 5 5 5 5
## 174 5 5 5 5 5 5 5 5 5
## 175 5 5 5 5 5 5 5 5 5
## 176 5 5 5 5 5 5 5 5 5
## 177 5 5 5 5 5 5 5 5 5
## 178 5 5 5 5 5 5 5 5 5
## 179 5 5 5 5 5 5 5 5 5
## 180 5 5 5 5 5 5 5 3 5
## 181 5 5 5 5 5 5 5 5 5
## 182 5 5 5 5 5 5 5 5 5
## 183 5 5 5 5 5 5 5 5 5
## results 0.6 0.59 0.58 0.59 0.59 0.59 0.59 0.57 0.58
## predRF10 ManualMean predKNN predRPART true
## 1 5 1 5 5 5
## 2 4 2 1 5 5
## 3 5 5 5 5 1
## 4 1 2 1 5 1
## 5 5 5 5 5 5
## 6 4 1 1 5 4
## 7 5 5 5 5 5
## 8 5 1 5 5 5
## 9 5 5 5 5 5
## 10 1 4 1 5 4
## 11 5 5 5 5 5
## 12 5 5 5 5 5
## 13 4 5 4 5 4
## 14 1 1 5 5 1
## 15 5 1 5 5 5
## 16 5 1 5 5 4
## 17 5 5 5 5 5
## 18 1 1 5 5 4
## 19 3 1 5 5 5
## 20 5 1 5 5 5
## 21 1 1 1 5 5
## 22 5 1 1 5 1
## 23 5 1 5 5 1
## 24 5 1 1 5 5
## 25 5 2 5 5 3
## 26 5 5 5 5 5
## 27 5 5 5 5 5
## 28 5 1 5 5 1
## 29 5 5 5 5 5
## 30 4 2 5 5 1
## 31 5 2 1 5 5
## 32 5 5 5 5 5
## 33 5 1 4 5 4
## 34 2 1 1 5 2
## 35 5 1 5 5 2
## 36 5 3 5 5 5
## 37 5 1 5 5 4
## 38 5 1 5 5 5
## 39 1 1 1 5 1
## 40 2 1 5 5 5
## 41 5 1 5 5 2
## 42 1 1 2 5 4
## 43 3 3 4 5 5
## 44 4 2 1 5 5
## 45 5 1 5 5 1
## 46 5 5 5 5 4
## 47 5 5 5 5 5
## 48 5 1 5 5 5
## 49 5 5 5 5 5
## 50 1 1 1 5 1
## 51 4 1 1 5 4
## 52 5 1 1 5 1
## 53 5 5 5 5 5
## 54 5 2 5 5 5
## 55 2 3 5 5 4
## 56 5 1 1 5 5
## 57 4 1 5 5 2
## 58 5 1 5 5 5
## 59 5 1 5 5 5
## 60 3 1 5 5 1
## 61 5 3 5 5 4
## 62 5 1 5 5 4
## 63 5 5 5 5 4
## 64 5 1 5 5 4
## 65 1 1 5 5 4
## 66 5 4 5 5 4
## 67 5 5 5 5 4
## 68 5 1 5 5 5
## 69 5 3 5 5 5
## 70 4 2 5 5 5
## 71 4 2 1 5 3
## 72 5 5 5 5 5
## 73 5 5 5 5 5
## 74 5 1 1 5 5
## 75 1 5 5 5 5
## 76 5 2 5 5 1
## 77 5 1 5 5 5
## 78 5 5 5 5 5
## 79 1 1 1 5 4
## 80 5 1 5 5 2
## 81 5 5 5 5 5
## 82 4 5 1 5 2
## 83 5 1 5 5 3
## 84 4 1 5 5 2
## 85 5 1 5 5 3
## 86 5 5 5 5 4
## 87 5 1 5 5 5
## 88 5 1 1 5 4
## 89 5 1 1 5 1
## 90 2 1 1 5 1
## 91 5 1 5 5 5
## 92 5 1 5 5 4
## 93 1 1 5 5 2
## 94 3 1 1 5 2
## 95 4 5 5 5 5
## 96 5 5 5 5 5
## 97 5 4 5 5 5
## 98 5 5 5 5 5
## 99 4 5 5 5 3
## 100 1 2 5 5 4
## 101 5 1 5 5 5
## 102 4 1 4 5 5
## 103 1 2 5 5 4
## 104 5 1 5 5 5
## 105 5 5 5 5 5
## 106 5 5 5 5 5
## 107 5 1 5 5 5
## 108 4 1 1 5 4
## 109 5 3 5 5 5
## 110 5 1 5 5 5
## 111 5 5 5 5 5
## 112 2 5 1 5 5
## 113 5 2 5 5 3
## 114 1 5 1 5 4
## 115 1 1 1 5 2
## 116 3 1 1 5 1
## 117 4 2 4 5 4
## 118 5 1 5 5 3
## 119 3 3 5 5 4
## 120 5 2 1 5 5
## 121 5 5 5 5 5
## 122 5 5 5 5 5
## 123 4 1 5 5 2
## 124 5 5 5 5 5
## 125 5 1 5 5 5
## 126 5 1 5 5 5
## 127 3 1 4 5 4
## 128 5 5 5 5 5
## 129 5 1 5 5 3
## 130 1 1 5 5 1
## 131 4 2 5 5 1
## 132 5 1 5 5 3
## 133 5 1 5 5 5
## 134 5 5 5 5 5
## 135 5 1 5 5 5
## 136 5 1 5 5 5
## 137 5 3 5 5 5
## 138 4 5 5 5 3
## 139 5 2 1 5 2
## 140 5 1 5 5 3
## 141 5 1 1 5 4
## 142 5 1 5 5 5
## 143 5 5 5 5 5
## 144 3 1 4 5 4
## 145 4 1 5 5 1
## 146 5 1 5 5 1
## 147 3 3 5 5 1
## 148 4 5 5 5 1
## 149 4 2 5 5 1
## 150 3 1 4 5 1
## 151 4 1 5 5 3
## 152 3 1 4 5 3
## 153 1 1 5 5 1
## 154 4 2 5 5 3
## 155 5 5 5 5 5
## 156 1 5 1 5 5
## 157 5 1 5 5 5
## 158 5 1 5 5 5
## 159 5 1 5 5 5
## 160 2 2 1 5 5
## 161 5 1 5 5 5
## 162 5 1 5 5 5
## 163 5 1 5 5 5
## 164 5 5 5 5 5
## 165 5 1 5 5 5
## 166 5 5 5 5 5
## 167 5 5 5 5 5
## 168 1 1 1 5 5
## 169 5 2 5 5 5
## 170 5 1 5 5 5
## 171 5 1 5 5 5
## 172 5 5 5 5 5
## 173 5 5 5 5 5
## 174 5 5 5 5 5
## 175 5 1 5 5 5
## 176 5 1 5 5 4
## 177 5 1 5 5 5
## 178 5 1 5 5 5
## 179 5 1 5 5 5
## 180 3 2 5 5 1
## 181 5 1 5 5 5
## 182 5 1 5 5 5
## 183 5 1 5 5 5
## results 0.54 0.32 0.54 0.54 100
Our random forest variations of models scored better than the KNN and rpart or recursive partitioned trees in predicting the ratings.
Lets use random forest again, but from the randomForest package instead of the method inside the caret train function. We will also use the generalized boosted trees model and latent dirichlet allocation algorithm that is used for topic modeling and both are in the caret package.
# The Random Forest package
rfpkg <- randomForest(userRatingValue~., data=trainingSet4, method='class')
predRFpkg <- predict(rfpkg, testingSet4, type='class')
sumRFpkg <- sum(predRFpkg==testingSet4$userRatingValue)
lengthRFpkg <- length(testingSet4$userRatingValue)
accuracy_RFpkg <- sumRFpkg/lengthRFpkg
# confusionMatrix(predRFpkg, testingSet3$userRatingValue)
# generalizedBoostedModel
gbmMod <- train(userRatingValue~., method='gbm', data=trainingSet4, verbose=FALSE )
predGbm <- predict(gbmMod, testingSet4)
sumGBM0 <- sum(predGbm==testingSet4$userRatingValue)
lengthGBM0 <- length(testingSet4$userRatingValue)
accuracy_gbmMod <- sumGBM0/lengthGBM0
# linkage dirichlet allocation model
ldaMod <- train(userRatingValue~., method='lda', data=trainingSet4)
predlda <- predict(ldaMod, testingSet4)
sumLDA0 <- sum(predlda==testingSet4$userRatingValue)
lengthLDA0 <- length(testingSet4$userRatingValue)
accuracy_ldaMod <- sumLDA0/lengthLDA0
CombinedGAM <- train(true~., method='gam', data=predDF11)
CombinedGAMPredictions <- predict(CombinedGAM, predDF11)
predDF12 <- data.frame(predDF11[1:13], predRFpkg, predGbm, predlda,
CombinedGAMPredictions,
true=testingSet4$userRatingValue)
sumCP <- sum(CombinedGAMPredictions==testingSet4$userRatingValue)
lengthCP <- length(testingSet4$userRatingValue)
accuracy_CP1 <- sumCP/lengthCP
results3 <- as.data.frame(c(accuracy_RFpkg, accuracy_gbmMod,
accuracy_ldaMod, accuracy_CP1, round(100,2)))
colnames(results3) <- 'results'
results3$results <- round(results3$results,2)
results3$results <- as.factor(paste(results3$results))
results4 <- as.data.frame(t(results3))
colnames(results4) <- colnames(predDF12)[14:18]
results5 <- cbind(resultsAll[1:13],results4)
accuracyAllResults <- rbind(predDF12,results5)
write.csv(accuracyAllResults,'accuracyAllResults.csv',row.names=TRUE)
topbottom <- accuracyAllResults[c(1:10,175:184),]
topbottom
## predRF1 predRF2 predRF3 predRF4 predRF5 predRF6 predRF7 predRF8 predRF9
## 1 5 5 5 5 5 5 5 5 5
## 2 5 5 5 5 5 5 5 5 5
## 3 5 5 5 5 5 5 5 5 5
## 4 1 1 1 1 1 1 1 1 1
## 5 5 5 5 5 5 5 5 5 5
## 6 5 1 1 5 5 1 1 4 1
## 7 5 5 5 5 5 5 5 5 5
## 8 5 5 5 5 5 5 5 5 5
## 9 5 5 5 5 5 5 5 5 5
## 10 1 1 1 1 5 1 5 1 5
## 175 5 5 5 5 5 5 5 5 5
## 176 5 5 5 5 5 5 5 5 5
## 177 5 5 5 5 5 5 5 5 5
## 178 5 5 5 5 5 5 5 5 5
## 179 5 5 5 5 5 5 5 5 5
## 180 5 5 5 5 5 5 5 3 5
## 181 5 5 5 5 5 5 5 5 5
## 182 5 5 5 5 5 5 5 5 5
## 183 5 5 5 5 5 5 5 5 5
## results 0.6 0.59 0.58 0.59 0.59 0.59 0.59 0.57 0.58
## predRF10 ManualMean predKNN0 predRPART0 predRFpkg predGbm predlda
## 1 5 1 5 5 5 5 5
## 2 4 2 1 5 5 5 5
## 3 5 5 5 5 5 5 5
## 4 1 2 1 5 1 1 1
## 5 5 5 5 5 5 5 5
## 6 4 1 1 5 1 5 1
## 7 5 5 5 5 5 5 5
## 8 5 1 5 5 5 5 5
## 9 5 5 5 5 5 5 5
## 10 1 4 1 5 1 5 5
## 175 5 1 5 5 5 5 5
## 176 5 1 5 5 5 5 5
## 177 5 1 5 5 5 5 5
## 178 5 1 5 5 5 5 5
## 179 5 1 5 5 5 5 5
## 180 3 2 5 5 5 5 5
## 181 5 1 5 5 5 5 5
## 182 5 1 5 5 5 5 5
## 183 5 1 5 5 5 5 1
## results 0.54 0.32 0.54 0.54 0.58 0.52 0.48
## CombinedGAMPredictions true
## 1 2 5
## 2 2 5
## 3 2 1
## 4 1 1
## 5 2 5
## 6 2 4
## 7 2 5
## 8 2 5
## 9 2 5
## 10 2 4
## 175 2 5
## 176 2 4
## 177 2 5
## 178 2 5
## 179 2 5
## 180 2 1
## 181 2 5
## 182 2 5
## 183 2 5
## results 0.1 100
Now we will use linear regreassion and other generalized linear models to REGRESS on our data, by first converting the targets to numeric.
trainingSet4$userRatingValue <- as.numeric(paste(trainingSet4$userRatingValue))
testingSet4$userRatingValue <- as.numeric(paste(testingSet4$userRatingValue))
glmMod0 <- train(userRatingValue ~ .,
method='glm', data=trainingSet4)
predGLM0 <- predict(glmMod0, testingSet4) #a numeric vector data type
dfGLM0 <- data.frame(predGLM0, round=round(predGLM0),ceiling=ceiling(predGLM0),floor=floor(predGLM0),
type=testingSet4$userRatingValue)
dfGLM0$predGLM0 <- round(dfGLM0$predGLM0,0)
dfGLM0$predGLM0 <- ifelse(dfGLM0$predGLM0>5,5,dfGLM0$predGLM0)
dfGLM0$predGLM0 <- as.factor(paste(dfGLM0$predGLM0))
head(dfGLM0)
## predGLM0 round ceiling floor type
## 1 5 5 5 4 5
## 2 4 4 4 3 5
## 3 5 5 5 4 1
## 4 3 3 4 3 1
## 5 4 4 5 4 5
## 6 3 3 3 2 4
sumGLM0 <- sum(dfGLM0$predGLM0==testingSet4$userRatingValue)
lengthGLM0 <- length(testingSet4$userRatingValue)
accuracy_GLMMod0 <- (sumGLM0/lengthGLM0)
accuracy_GLMMod0
## [1] 0.3060109
accCeiling <- sum(dfGLM0$ceiling==dfGLM0$type)
accFloor <- sum(dfGLM0$floor==dfGLM0$type)
accRound <- sum(dfGLM0$round==dfGLM0$type)
accCeiling
## [1] 63
accFloor
## [1] 32
accRound
## [1] 50
Our model using the absolute value scored better or as good as the generalized linear machines in regressing a predicition of a rating 1-5 based on our 24 keywords when using the round function. But the best model is taking the ceiling of the results of the GLM with 63% accuracy.
Lets turn the targets back into factors.
testingSet4$userRatingValue <- as.factor(paste(testingSet4$userRatingValue))
trainingSet4$userRatingValue <- as.factor(paste(trainingSet4$userRatingValue))
In the above we turned our targets back into factors for data ready for classifying. Some very interesting topics to continue with are to take our original cleaned data of user reviews and ratings and use the text mining and natural language processing libraries,nlp and tm, with the build in features to output an ngram document term matrix and then train a model that predicts the rating based on only the cleaned up review for all 614 reviews.
There is also another text mining R package I discovered when looking for the above documentation. The tidytext R package is found to have a lot of capabilities and that link above is an online tutorial/demo for tidytext and other supplemental packages for visual networks, plotting, word counts, n-grams, etc. Lets try out some of the books demo using this data set from our previously saved csv file, ReviewsCleanedWithStopsAndKeywordsAndRatios.csv.
# install.packages('nlp')
# install.packages('tidytext')
# library(nlp)
# library(tm)
library(tidytext)
Lets read in the csv file if you don’t have it stored as Reviews15_results.
Reviews15_results <- read.csv('ReviewsCleanedWithStopsAndKeywordsAndRatios.csv',
sep=',', header=TRUE, na.strings=c('',' ','NA'))
colnames(Reviews15_results)
## [1] "id" "userReviewSeries" "userReviewOnlyContent"
## [4] "userRatingSeries" "userRatingValue" "businessReplied"
## [7] "businessReplyContent" "userReviewContent" "LowAvgHighCost"
## [10] "businessType" "cityState" "friends"
## [13] "reviews" "photos" "eliteStatus"
## [16] "userName" "Date" "userBusinessPhotos"
## [19] "userCheckIns" "weekday" "area"
## [22] "big" "busy" "definitely"
## [25] "feel" "lot" "many"
## [28] "open" "plus" "two"
## [31] "worth" "year" "the"
## [34] "and" "for." "have"
## [37] "that" "they" "this"
## [40] "you" "not" "but"
## [43] "good" "with" "area_ratios"
## [46] "big_ratios" "busy_ratios" "definitely_ratios"
## [49] "feel_ratios" "lot_ratios" "many_ratios"
## [52] "open_ratios" "plus_ratios" "two_ratios"
## [55] "worth_ratios" "year_ratios" "the_ratios"
## [58] "and_ratios" "for_ratios" "have_ratios"
## [61] "that_ratios" "they_ratios" "this_ratios"
## [64] "you_ratios" "not_ratios" "but_ratios"
## [67] "good_ratios" "with_ratios"
Lets just use the userReviewOnlyContent and the userRatingValue columns.
Reviews_tidytext_demo <- Reviews15_results[,c(3,5)]
head(Reviews_tidytext_demo)
## userReviewOnlyContent
## 1 What a wonderful way to start the year! This was my second time back to HIGH END SPA, and we had a great time. The crowds were very low (seriously, it felt like we had the place to ourselves most of the day.) We walked right into the mineral baths, club mud, and didn't wait in any kind of line for lunch. None of the pools were crowded, and we were even able to enjoy one of the hammocks in the secret garden.\n\nTiffany at the front check-in desk went above and beyond for us regarding the robes. I had requested a plus-sized robe, since after my last review I knew they had added some to their collection. Unfortunately, all of their plus-sized robes were still dirty from the day before. Tiffany was so accommodating, though! She was able to get us robes from the cabana area that fit me perfectly! It is so great to know that not only do they now offer guests of all sizes the option to enjoy a warm robe, but that they really want to make sure you have a good day. Thank you, Tiffany, for everything.\n\nAll of the staff today were in good spirits. The only thing that would have made today better would have been a massage. We'll have to book one next time. My husband and I are going to make HIGH END SPA our annual New Year's Day tradition!\n\n
## 2 I'm so happy I found CHIROPRACTIC!\n\nBrenda was so sweet and attentive, from making my appointment to greeting me upon arrival.\n\nI saw Bertha for a prenatal massage, how I survived my first pregnancy without one, I'm clueless. Bertha listened to my needs and my bodies. She helped relieve tension in my neck and shoulders.\n\nI could have fell asleep, only complaint would be - why aren't massages longer than an hour lol\n\nI cannot wait to come back monthly through this pregnancy. I also am excited to try a prenatal adjustment
## 3 Their staff is super nice. The doctor is also great and always gets the knots out of my back. I felt better right after my first appointment!
## 4 It's too bad, I had such a great time here and some bathroom attendant ruined my whole experience!! Just the worst manners and let's just say customer service was not her specialty or even close.\nThis young girl had some nerve to correct a customer for accidentally missing the trash with some paper from a cinco de mayo mustache.. (jokes) she chases after me to tell me to throw it in the trash I explained half way down the hall I was sorry and had to\nLeAve, my friend was sick and need me to tend to her. She then chased me down again and started to harass me to tell her where my friend threw up. Really? Well, maybe she had a bad day.. but after explaining what happen to management and the front office, Jose, the manager, didn't look too surprised.. I guess this is normal behavior for her.. needless to say I'm almost afraid to go back. I may not hold my tongue next time.. personal space was not In her vocabulary she tapped me on the shoulder, she's lucky i was in a great mood till then..\n
## 5 Fabulous place to get adjusted. The office is calm and clean. The staff is friendly. Dr. Ramada is fantastic! He really understood the cause of my pain and was able to adjust me quickly. I love the availability and evening appointments. Highly recommend!
## 6 I was looking for a Chiropractor in my area and I stumbled upon CHIROPRACTIC. It is a really awesome place. The staff and facilities are very nice. And they are very reasonably priced, much better price then my last Chiropractor. Conveniently located off of the 15 freeway two exits south of the 91. What is really cool is they also offer massages also. If you are looking for a Chiropractor in Corona/Riverside area look no further.
## userRatingValue
## 1 5
## 2 5
## 3 5
## 4 1
## 5 5
## 6 5
We are to make our data table into a dplyr tibble.
library(dplyr)
text_df <- tibble(line=1:614, text=Reviews_tidytext_demo$userReviewOnlyContent,
rating=Reviews_tidytext_demo$userRatingValue)
head(text_df)
## # A tibble: 6 x 3
## line text rating
## <int> <fct> <int>
## 1 1 " What a wonderful way to start the year! This was my second tim… 5
## 2 2 "I'm so happy I found CHIROPRACTIC!\n\nBrenda was so sweet and a… 5
## 3 3 " Their staff is super nice. The doctor is also great and always… 5
## 4 4 "It's too bad, I had such a great time here and some bathroom at… 1
## 5 5 " Fabulous place to get adjusted. The office is calm and clean. … 5
## 6 6 " I was looking for a Chiropractor in my area and I stumbled upo… 5
Now for the word counts by line or in our case by review which is line.This uses the tidytext package to unnest the words as tokens from each review. We will use the ngrams method of tokenizing to get the sequential groups of threes for words used in combination. This will be very useful to us in predicting our ratings accurately. As we have seen that using a word like ‘like’ or ‘good’ has very similar word counts in ratings of 1 and ratings of 5 but not so much in the 2-4 range. This is because some of those likes are in ngrams of 2-3 with word pairings such as ‘don’t like’, ‘not as good’, etc.
text_df$text <- as.character(paste(text_df$text))
text_df2 <- text_df %>% unnest_tokens(trigram,text, token='ngrams',n=3)
head(text_df2,30)
## # A tibble: 30 x 3
## line rating trigram
## <int> <int> <chr>
## 1 1 5 what a wonderful
## 2 1 5 a wonderful way
## 3 1 5 wonderful way to
## 4 1 5 way to start
## 5 1 5 to start the
## 6 1 5 start the year
## 7 1 5 the year this
## 8 1 5 year this was
## 9 1 5 this was my
## 10 1 5 was my second
## # … with 20 more rows
We see from the above it basically goes along every string word and counts each white space to separate a character from a non-character and get each word, but it also does it for any three combinations, so that almost every word is part of the beginning of one trigram (as we set n to 3 for the number of ngrams, thus trigram), the middle of one trigram, or the end of a trigram. Look at ‘wonderful’ above and see what I am referring to.
text_df3 <- text_df2 %>% count(trigram, sort=TRUE)
head(text_df3,30)
## # A tibble: 30 x 2
## trigram n
## <chr> <int>
## 1 high end spa 151
## 2 low cost grocery 71
## 3 cost grocery store 66
## 4 i have been 46
## 5 this place is 39
## 6 the staff is 33
## 7 to high end 32
## 8 at high end 31
## 9 a lot of 25
## 10 i highly recommend 25
## # … with 20 more rows
In the above the first few words are the lowercase version of the filled in words that replaced the identity of each business explicitly. The massage retreat by name was replaced with a find and replace of each occurence of the name with ‘HIGH END SPA’ and the cheaply priced grocer was replaced by name as ‘LOW COST GROCERY STORE’, and both chiropractic businesses were replaced with ‘CHIROPRACTIC’ or ‘DOCTOR’ before cleaning up with regex. This could be useful to show that many users name the business to personalize it and assign it some type of adoration or rejection depending on the rating.Also, many reviewers give themselves street cred as a veteran of establishments by stating how involved they are by showing the amount of time they have spent with the business because they adore it so much and either continue to or are now ending ties with it because of some incident.
We are going to remove the stop words and separate by each of three word sequences of the trigram and get a count of each. But we need the tidyr package if you don’t have it.
#library(tidyr)
trigram_separate <- text_df3 %>% separate(trigram, c('word1','word2','word3'), sep=' ')
trigram_noStops <- trigram_separate %>% filter(!word1 %in% stop_words$word)%>%
filter(!word2 %in% stop_words$word) %>% filter(!word3 %in% stop_words$word)
trigram_noStops_counts <- trigram_noStops %>% count(word1,word2,word3, sort=TRUE)
trigram_noStops_counts
## # A tibble: 1,682 x 4
## word1 word2 word3 n
## <chr> <chr> <chr> <int>
## 1 0 customer service 1
## 2 1 2 day 1
## 3 1 2 gallon 1
## 4 1 free parking 1
## 5 1 yelp review 1
## 6 10 pounds lighter 1
## 7 100 friends 295 1
## 8 11 02 19 1
## 9 12 15 19 1
## 10 12 appts wth 1
## # … with 1,672 more rows
All of the above, when stripped of the stop words and when using a trigram have a single occurrence, which doesn’t add any useful information. Lets try with a bigram instead (2 word tokens stripped of stop words)
bigram_df <- text_df %>% unnest_tokens(bigram, text, token='ngrams',n=2)
bigram_separate <- bigram_df %>%
separate(bigram, c('word1','word2'), sep=' ')
bigram_noStops <- bigram_separate %>%
filter(!word1 %in% stop_words$word) %>%
filter(!word2 %in% stop_words$word)
bigram_counts <- bigram_noStops %>% count(word1,word2,sort=TRUE)
bigram_counts
## # A tibble: 4,845 x 3
## word1 word2 n
## <chr> <chr> <int>
## 1 grocery store 85
## 2 cost grocery 71
## 3 low cost 71
## 4 customer service 53
## 5 highly recommend 50
## 6 club mud 39
## 7 front desk 27
## 8 mineral baths 18
## 9 mud bath 18
## 10 hot springs 16
## # … with 4,835 more rows
Now, we see some useful information, like ‘customer service’, ‘spa day’, ‘24 hours’, and so on. The counts for each occurrence are more than 10 instead of all 1s in trigram counts with stop words removed.
Lets get those likes and good words following any not or don’t.
bigrams_negLikes <- bigram_separate %>% filter(word1=='dont' | word1=='not') %>%
count(word1,word2,sort=TRUE)
bigrams_negLikes
## # A tibble: 177 x 3
## word1 word2 n
## <chr> <chr> <int>
## 1 not a 22
## 2 not the 14
## 3 not be 13
## 4 not sure 13
## 5 not only 11
## 6 not to 11
## 7 not even 8
## 8 not going 8
## 9 not have 8
## 10 not too 8
## # … with 167 more rows
We can see from the above the bigram or two word combination ‘not recommend’ occurred 4 times, and ‘not informed’ occured 5 times. Other instances of not showed less frequently, like ‘not good’ appeared 3 times, and ‘not worth’ 4 times. This looks like a useful analysis tool to keep around.
Ok, and now lets see about the word experience as the 2nd word. Because we all want someone to leave with a great experience to build business or have someone with experience to learn from or not have to worry about the probability of not enjoying a service from a newby who needs or probably needs more training. Because an experienced person will make anybody feel like royalty, and feel like they got their money’s worth.
bigrams_exper2 <- bigram_separate %>% filter(word2=='experience') %>%
count(word1,word2, sort=TRUE)
bigrams_exper2
## # A tibble: 76 x 3
## word1 word2 n
## <chr> <chr> <int>
## 1 the experience 20
## 2 grotto experience 11
## 3 my experience 11
## 4 whole experience 10
## 5 great experience 9
## 6 spa experience 7
## 7 this experience 7
## 8 amazing experience 6
## 9 better experience 6
## 10 an experience 5
## # … with 66 more rows
From the above we can see there are many indications experience is used, like ‘great experience’ is used 9 times in all 614 reviews, and ‘bad experience’ is used 5 times. There are other times that could mean in general this word is used mostly for good reviews or mixed ones. Like the words, relaxing, new, fun, first, wonderful, etc., but that worst experience did also show up 4 times, and horrible 2 times.
Next, there is a way to count up the negative and positive sentiment tokens or words from a package in the textdata library. Install it if you don’t have it and check out how the words are scored from a range of -5 to 5, with the lowest meaning negative and the highest meaning positive sentiments.
#install.packages('textdata')
library(textdata)
AFINN <- get_sentiments('afinn')#select 1 then enter to download
head(AFINN,20)
## # A tibble: 20 x 2
## word value
## <chr> <dbl>
## 1 abandon -2
## 2 abandoned -2
## 3 abandons -2
## 4 abducted -2
## 5 abduction -2
## 6 abductions -2
## 7 abhor -3
## 8 abhorred -3
## 9 abhorrent -3
## 10 abhors -3
## 11 abilities 2
## 12 ability 2
## 13 aboard 1
## 14 absentee -1
## 15 absentees -1
## 16 absolve 2
## 17 absolved 2
## 18 absolves 2
## 19 absolving 2
## 20 absorbed 1
range(AFINN$value)
## [1] -5 5
Now lets see what the scores would be for the word 2 experience from our bigrams by joining them to this data AFINN of word scores.
exper_words <- bigrams_exper2 %>%
inner_join(AFINN, by = c(word1 = "word")) %>%
count(word1, n,value, sort = TRUE)
exper_words
## # A tibble: 24 x 4
## word1 n value nn
## <chr> <int> <dbl> <int>
## 1 amazing 6 4 1
## 2 awesome 1 4 1
## 3 bad 5 -3 1
## 4 best 2 3 1
## 5 better 6 2 1
## 6 chaotic 1 -2 1
## 7 comfortable 1 2 1
## 8 cool 1 1 1
## 9 fantastic 1 4 1
## 10 fun 3 4 1
## # … with 14 more rows
The above shows the bigram words that preceded ‘experience’ and the value assigned each word. The double n, ‘nn’, column is the count from the word counts in AFINN, and the n column is the column of count occurrences in the bigrams of words preceding ‘experience’ in all 614 reveiews.
Lets now map this to see what is going on in the sentiments overall with top 20 words used.
library(ggplot2)
exper_words %>%
mutate(contribution = n * value) %>%
arrange(desc(abs(contribution))) %>%
head(20) %>%
mutate(word1 = reorder(word1, contribution)) %>%
ggplot(aes(word1, n * value, fill = n * value > 0)) +
geom_col(show.legend = FALSE) +
xlab("Words preceeding \"experience\"") +
ylab("Sentiment value * number of occurrences") +
coord_flip()
Note the use of more positive words with experience than negative words and also weighted by occurrence or total counts in all reviews.
The next was also taken from the same helpful tutorial on tidytext, as actually every chunk so far has been a modified walk through of the tutorial. I have encountered some tutorials that are not useable to follow through to completion due to some package variation or other operating system, and so on, but this tutorial is actually a great workout to get you started on to doing this yourself and with your plans. If they had data science tutorial awards like they do the ESPYs or Oscars and so on, this would definitely get my vote. This following chunk reminds me of the functionality of SQL with the in statement and supplying a list. I have found many instances in the past I wanted to do this but had to merge instead by words I wanted as a data frame.
negation_words <- c("not", "no", "never", "dont")
negated_words <- bigram_separate %>%
filter(word1 %in% negation_words) %>%
inner_join(AFINN, by = c(word2 = "word")) %>%
count(word1, word2, value, sort = TRUE)
negated_words
## # A tibble: 48 x 4
## word1 word2 value n
## <chr> <chr> <dbl> <int>
## 1 no pain -2 4
## 2 not noisy -1 4
## 3 not recommend 2 4
## 4 not worth 2 4
## 5 no remorse -2 3
## 6 not good 3 3
## 7 not want 1 3
## 8 not worry -3 3
## 9 never died -3 2
## 10 never disappoint -2 2
## # … with 38 more rows
negWords <- negated_words %>%
mutate(contribution=n*value) %>%
arrange(desc(abs(contribution))) %>%
mutate(word1 = reorder(word1,contribution)) %>%
group_by(word1) %>%
head(20) %>%
ungroup() %>%
ggplot(aes(word2, n*value, fill=n*value>0))+
geom_col(show.legend=FALSE) +
xlab("Words preceded by \"not,no,never,dont\"")+
ylab('Sentiment value*number of occurrences')+
facet_wrap(~word1)+
coord_flip()
negWords
We can see by comparison that ‘never’ was used as a double negative with other negative words to make the overall sentiment positive, but not in value added points, and ‘dont’ was used with ‘miss’ which implies a bad sentiment, like ‘I don’t miss this place’ or similar. For ‘no’ it is in mixed sentiment types, like ‘no joke’ or ‘no matter’ which could be the reviewer taling about either a bad or serious matter. But ‘no’ is also used with no, which doesn’t make sense, but also with ‘no remorese’ and ‘no pain’, which the latter is a compliment if reviewing a chiropractor, but only if they came in with pain and left without pain, not the reverse. The word ‘not’ has many more positive valued words with it, like ‘not worth,’ ‘not want,’not recommend,’ ‘not impressed,’not good,’ and so on. Which sounds like there are quite a bit of negative sentiments about some businesses in our reviews. But there are a couple good sentiments like ‘not noisy’ and ‘not worry.’ It is no wonder that looking at the bigrams with the word ‘not’ that many positive words are giving the sentiment as a 5 when really they should be 1s when used in combination with ‘not.’ This is something that would be part of the algorithm to produce a better predictor, where whenever the number of nots are counted in a review, there should be a low weight for those bigrams that use a high value positive word with not, to mean less satisfied with business and reflected in the rating.
library(igraph)
# original counts
bigram_counts
## # A tibble: 4,845 x 3
## word1 word2 n
## <chr> <chr> <int>
## 1 grocery store 85
## 2 cost grocery 71
## 3 low cost 71
## 4 customer service 53
## 5 highly recommend 50
## 6 club mud 39
## 7 front desk 27
## 8 mineral baths 18
## 9 mud bath 18
## 10 hot springs 16
## # … with 4,835 more rows
bigram_graph <- bigram_counts %>%
filter(n > 5) %>%
graph_from_data_frame()
bigram_graph
## IGRAPH afcba70 DN-- 98 71 --
## + attr: name (v/c), n (e/n)
## + edges from afcba70 (vertex names):
## [1] grocery ->store cost ->grocery low ->cost
## [4] customer ->service highly ->recommend club ->mud
## [7] front ->desk mineral ->baths mud ->bath
## [10] hot ->springs 24 ->hours 5 ->stars
## [13] entrance ->fee office ->staff spa ->day
## [16] friendly ->staff cold ->pools grotto ->experience
## [19] lounge ->chair favorite ->time love ->coming
## [22] pool ->float recommend->chiropractic relaxing ->day
## + ... omitted several edges
#install.packages('ggraph')
library(ggraph)
set.seed(2017)
ggraph(bigram_graph, layout = "fr") +
geom_edge_link() +
geom_node_point() +
geom_node_text(aes(label = name), vjust = 1, hjust = 1)
The above shows the bigrams of words in combination with each other occurring more than 5 times out of 614 reviews. It is a link plont with nodes as the word1 or word2 linked by whether they interact or not. We can see there is a small network of words that relate to other bigrams as ‘deep tissue’ with ‘massage’ and with ‘massage therapists’ and ‘massage therapist.’ Also, there are a lot of bigrams to the left of the network that links ‘spa services’ with ‘chiropractic services’ and ‘chiropractic office’ with ‘office staff’ and ‘super friendly’ with ‘friendly staff.’ Some bigrams have no other connections to other bigrams, like ‘main reason’ and ‘car accident’ or ‘5 stars’ and ‘customer service’ to name a few.
This next link plot is a modified version of the above to make it more aesthetically pleasing and interpretable.
set.seed(2016)
a <- grid::arrow(type = "closed", length = unit(.15, "inches"))
ggraph(bigram_graph, layout = "fr") +
geom_edge_link(aes(edge_alpha = n), show.legend = FALSE,
arrow = a, end_cap = circle(.07, 'inches')) +
geom_node_point(color = "lightblue", size = 5) +
geom_node_text(aes(label = name), vjust = 1, hjust = 1) +
theme_void()
Looking at the above, we see the edges now have arrows pointing to the word2 in the bigram from word1, which is helpful. But the edges were made too light and were better darker.
set.seed(2016)
a <- grid::arrow(type = "closed", length = unit(.08, "inches"))
ggraph(bigram_graph, layout = "fr") +
geom_edge_link(aes(edge_alpha = 1), show.legend = FALSE,
arrow = a, end_cap = circle(.03, 'inches')) +
geom_node_point(color = "purple", size = 3) +
geom_node_text(aes(label = name), vjust = -.75, hjust = .75) +
theme_void()
In the above link plot between words in each bigram, it is more clear that the pairs of words used in combination greater than five times in our reviews are ‘low price’ or ‘low cost’ and other pairs like ‘highly recommend’ and ‘recommend doctor’ to name a few. Thanks to the added arrows for clarity.There is a cluster with ‘time’ in the center and the words ‘wrong,’ ‘favorite,’ and ‘entire’ pointing towards it.
That was a great way to analyze data with the tidytext library for natural language processing. Our next datatable to predict the ratings will definitely be using ngrams in two pairs with negatives and positives, to determine the rating. This package has a convenient and fast way of pulling those word pairs out of every observated review for us.
Lets now put this to the test and use some of those bigrams extracted from the reviews as features. We’ll have to join these to the text_df data of just the line number 1-614 for each unique review, the review, and the rating. If the bigram is there for the negatives, or double negatives, there will be a feature for doing simple multiplication for the score using the AFINN scored value of the word and the negative word, called bigramScore. We aren’t going to keep our other data set for this run but will use it later to re-run our bigram scored features. Where our features are the top bigrams appearing in the reviews.
So, lets get started. We just made the text_df dataframe. And we should make sure all of our libraries are loaded. We will use dplyr, tidytext, ggplot2, and later the classification machine learning models we used above in the caret package, such as the knn, random forest, rpart, and glm. Right now, our best classification prediction is taking the ceiling of the glm model with all 24 keywords as the only features or predictors and the rating as the target class of 1-5. It scored 63%, the other models scored 54-61% accuracy on the same data.
#a list of negative words
negation_words <- c("not", "no", "never", "dont")
bigram_df_neg_exp <- text_df %>% unnest_tokens(bigram, text, token='ngrams',n=2) %>%
separate(bigram, c('word1','word2'), sep=' ') %>% filter(word2=='experience' | word1 %in% negation_words)
#the values of words by AFINN range: -5,+5
AFINN <- get_sentiments('afinn')
#there is a problem in AFINN not including the word 'experience', so it is ignored and
#so are any bigrams related to it, only the negation words are included when merging by word2
exp1 <- bigram_df_neg_exp %>% filter(word2=='experience')
exp2 <- merge(AFINN, exp1, by.x='word', by.y='word1')
colnames(exp2)[c(1:2,5)] <- c('word2a','word2a_Value','word2b')
# we will assign a value of 1 to experience since there is no AFINN value
exp2$word2b_Value <- 1
head(exp2)
## word2a word2a_Value line rating word2b word2b_Value
## 1 amazing 4 358 4 experience 1
## 2 amazing 4 292 4 experience 1
## 3 amazing 4 303 4 experience 1
## 4 amazing 4 267 5 experience 1
## 5 amazing 4 568 5 experience 1
## 6 amazing 4 322 5 experience 1
colnames(exp2)
## [1] "word2a" "word2a_Value" "line" "rating" "word2b"
## [6] "word2b_Value"
Lets rearrange exp2.
exp3 <- exp2[,c(3,4,1,2,5,6)]
head(exp3)
## line rating word2a word2a_Value word2b word2b_Value
## 1 358 4 amazing 4 experience 1
## 2 292 4 amazing 4 experience 1
## 3 303 4 amazing 4 experience 1
## 4 267 5 amazing 4 experience 1
## 5 568 5 amazing 4 experience 1
## 6 322 5 amazing 4 experience 1
# for some reason the other negation words in AFINN aren't merging anything other than 'no'
neg2 <- merge(AFINN, bigram_df_neg_exp, by.x='word', by.y='word2')
colnames(neg2)[c(1:2,5)] <- c('word1b','wordb_Value','word1a')
#we will assing all negation words a -1 since some aren't in AFINN
neg2$word1a_Value <- -1
head(neg2)
## word1b wordb_Value line rating word1a word1a_Value
## 1 advantage 2 222 3 no -1
## 2 allergic -2 270 1 not -1
## 3 clean 2 408 2 not -1
## 4 cool 1 186 1 not -1
## 5 crazy -2 95 4 not -1
## 6 cut -1 364 4 not -1
colnames(neg2)
## [1] "word1b" "wordb_Value" "line" "rating" "word1a"
## [6] "word1a_Value"
Lets rearrange the neg2 columns.
neg3 <- neg2[,c(3,4,1,2,5,6)]
head(neg3)
## line rating word1b wordb_Value word1a word1a_Value
## 1 222 3 advantage 2 no -1
## 2 270 1 allergic -2 not -1
## 3 408 2 clean 2 not -1
## 4 186 1 cool 1 not -1
## 5 95 4 crazy -2 not -1
## 6 364 4 cut -1 not -1
Lets add in the columns that score each bigram.
neg3$scoreAFINN_neg <- neg3$wordb_Value*neg3$word1a_Value
neg3$scoreAFINN_neg
## [1] -2 2 -2 -1 2 1 -1 3 3 2 2 2 2 1 -2 -2 1 -1 -3 -3 -3 -3 -3 -3 -3
## [26] -2 -2 -2 -3 -2 -2 -2 1 -2 -2 1 -1 -1 2 1 1 1 1 1 1 2 2 2 2 1
## [51] -1 2 2 -2 -2 -2 -2 2 2 2 2 2 -2 2 -2 -1 -1 -1 -1 1 3 3 3 -2 -2
## [76] -2 -2
exp3$scoreAFINN_exp <- exp3$word2a_Value*exp3$word2b_Value
exp3$scoreAFINN_exp
## [1] 4 4 4 4 4 4 4 -3 -3 -3 -3 -3 3 3 2 2 2 2 2 2 -2 2 1 4 4
## [26] 4 4 2 3 3 3 3 3 3 3 3 3 -3 -3 2 3 -3 2 2 -2 -3 2 -2 4 4
## [51] 4 4 -3 -3 -3 -3
exp3$bigram <- paste(exp3$word2a,exp3$word2b)
neg3$bigram <- paste(neg3$word1a,neg3$word1b)
colnames(exp3);colnames(neg3)
## [1] "line" "rating" "word2a" "word2a_Value"
## [5] "word2b" "word2b_Value" "scoreAFINN_exp" "bigram"
## [1] "line" "rating" "word1b" "wordb_Value"
## [5] "word1a" "word1a_Value" "scoreAFINN_neg" "bigram"
neg4 <- neg3[,c(1,7,8)]
exp4 <- exp3[,c(1,7,8)]
both <- full_join(neg4,exp4)
both$score <- ifelse(!is.na(both$scoreAFINN_neg),both$scoreAFINN_neg,
both$scoreAFINN_exp)
colnames(both)
## [1] "line" "scoreAFINN_neg" "bigram" "scoreAFINN_exp"
## [5] "score"
bothScores <- both[,c(1,3,5)]
head(bothScores,30)
## line bigram score
## 1 222 no advantage -2
## 2 270 not allergic 2
## 3 408 not clean -2
## 4 186 not cool -1
## 5 95 not crazy 2
## 6 364 not cut 1
## 7 327 no desire -1
## 8 152 never died 3
## 9 458 never died 3
## 10 289 not disappoint 2
## 11 332 never disappoint 2
## 12 610 never disappoint 2
## 13 208 never disappointed 2
## 14 262 no doubt 1
## 15 395 not enjoy -2
## 16 35 not enjoy -2
## 17 315 not forgotten 1
## 18 202 not fresh -1
## 19 130 not good -3
## 20 326 not good -3
## 21 280 not good -3
## 22 378 not great -3
## 23 378 not great -3
## 24 391 not happy -3
## 25 321 not happy -3
## 26 18 not help -2
## 27 125 not helpful -2
## 28 146 not helping -2
## 29 241 not impressed -3
## 30 301 no joke -2
bothTotal <- bothScores %>% group_by(line,score) %>% count(score)
head(bothTotal)
## # A tibble: 6 x 3
## # Groups: line, score [6]
## line score n
## <int> <dbl> <int>
## 1 18 -2 1
## 2 34 3 1
## 3 35 -2 1
## 4 35 2 1
## 5 56 -2 1
## 6 58 -2 1
bothTotal$totalScore <- bothTotal$score*bothTotal$n
head(bothTotal)
## # A tibble: 6 x 4
## # Groups: line, score [6]
## line score n totalScore
## <int> <dbl> <int> <dbl>
## 1 18 -2 1 -2
## 2 34 3 1 3
## 3 35 -2 1 -2
## 4 35 2 1 2
## 5 56 -2 1 -2
## 6 58 -2 1 -2
bt <- bothTotal %>% group_by(line) %>% summarise_at(vars(totalScore),mean)
colnames(bt)[2] <- 'avgScore'
head(bt)
## # A tibble: 6 x 2
## line avgScore
## <int> <dbl>
## 1 18 -2
## 2 34 3
## 3 35 0
## 4 56 -2
## 5 58 -2
## 6 62 -2
bothScores2 <- merge(bothScores,bt, by.x='line', by.y='line')
head(bothScores2,20)
## line bigram score avgScore
## 1 18 not help -2 -2.0
## 2 34 great experience 3 3.0
## 3 35 not enjoy -2 0.0
## 4 35 comfortable experience 2 0.0
## 5 56 scary experience -2 -2.0
## 6 58 chaotic experience -2 -2.0
## 7 62 no joke -2 -2.0
## 8 65 not noisy 1 1.0
## 9 70 terrible experience -3 -3.0
## 10 95 not crazy 2 2.0
## 11 112 not want -1 0.5
## 12 112 positive experience 2 0.5
## 13 120 no shame 2 2.0
## 14 125 not helpful -2 -2.0
## 15 130 not good -3 -3.0
## 16 139 not trust -1 -1.0
## 17 140 no no 1 1.0
## 18 146 not helping -2 -3.5
## 19 146 not recommend -2 -3.5
## 20 146 horrible experience -3 -3.5
text_df2 <- merge(text_df,bt, by.x='line', by.y='line')
head(text_df2[order(text_df2$avgScore, decreasing=TRUE),],30)
## line
## 39 267
## 43 285
## 45 289
## 46 292
## 49 303
## 51 305
## 52 307
## 54 310
## 56 316
## 58 322
## 65 343
## 69 360
## 71 368
## 89 446
## 106 568
## 32 232
## 2 34
## 17 152
## 18 153
## 23 204
## 29 224
## 47 298
## 62 331
## 64 333
## 73 372
## 81 406
## 92 458
## 103 555
## 104 565
## 68 358
## text
## 39 Such an amazing place! Went here for the first time yesterday with a group of my girlfriends and we had a great time and overall amazing experience. We decided to go during the week since it would be cheaper. My friend called in our reservation for the grotto. And we paid for our entrance at check in. It wasn't too packed. Free parking. Beautiful scenery as you walk up into the area. Friendly staff and great drinks!!\n\nThe grotto experience was well worth it. We went into the mud first then the grotto. Great way to relax during the week.\n\nHighly recommend.
## 43 Sooooo relaxing. Enough said, the staff, the facilities were awesome. Decided to celebrate my bday by celebrating at HIGH END SPA. After a bit of research decided to use some gift cards to reserve some services. If you have a party of more than 5, I highly recommend booking lounge chairs for you and your party. 30 bucks each but their yours all day. We got our loungers above the cafe. This includes service to your party. I also recommend booking the grotto for a wonderful experience that leaves your skin soft and supple and only 25 bucks per person.\nIf you don't want to rent loungers, I recommend you get there early. The early bird gets the good seating area.\n\nShout out to Xema (I think that's her name) for helping us out with our drinks and food and a suprise cupcake with candle. She was so sweet and after several fail attempts to get waiters/waitress she kept coming back to see if we were good.\n\nWe tried out the yoga class. Totally worth it. Feel asleep for Pros:\n- Mineral baths\n- Spring water mud pool\n- Massage services\n- Pools\n- Food\n- Drinks are reasonably priced\n- Water stations everywhere\n- Towel service stations\n- Friendly staff\n- Clean facilities\n- Shampoo and conditioner in shower are awesome\n- Plenty of parking\n- Must try yoga class, we feel asleep\n- Starbucks but you can't use your app\n- lockers to keep your stuff in\n\nCons:\n- We had to hunt down our staff to get food and drinks\n- I cut my finger on a bathroom stall\n- People hog the mineral baths\n- Gift shop is overpriced\n
## 45 My friend and I came here for her birthday. We didnt get massages but we utilized all the different pools and saunas. If you can get past the rotten egg smell, the mineral spa was very relaxing(apparently it smells that way because of the minerals!) The mud bake was my favorite however I put too much on my face and I had an allergic reaction. It took about a week to clear up and all was good again! I dont think it has anything to do with the quality of the mud, or the facility. I think my skin just wasnt feelin it.\nWe got the loaded Bloody Mary's as a treat and they did not disappoint! Between the shrimp, bacon, and olives they garnished it with it was like a meal in itself! Good thing I didnt have breakfast...I wouldn't have been able to finish my drink! Haha\nWe shared a chicken ceaser salad for lunch and the size was perfect for each of us to have a good portion without left feeling hungry or wanting more. It was perfectly dressed and tasted great.\nThe grounds are beautiful and very relaxing. Everything was clean and I had no problems as far as any of that went.\nAll of the staff we encountered from the time we checked in to the time that we left was very accommodating and friendly with the exception of one. The bartender who made our epic Mary's. She was a little snooty and seemed like we were wasting her time.\nAll in all we had a great time and even though it was quite chilly when we went it actually made it nice because it wasn't crowded at all.
## 46 This was an amazing experience. I go to a few spas a year and this was up to par.\nWe rented a cabana and the experience was wonderful.\nMy suggestions for the facility is there were no side tables next to the lounge chairs. So we didn't have a spot to put our food and drinks.\nThe staff didn't check on us periodically to see if we wanted more refreshments or more food so that was a little bit of a bummer. It might be helpful to have some sort of speaker so that it might make ordering easier.\nI went with a group of I wasn't too impressed with the checkout process because we went to double check with the front desk if there was anything else we needed to do and it took about 20 minutes for us to finally check out. Not necessarily how i wanted to end the day but everything else was phenomenal.
## 49 So weekends might be a little crazy but overall this is a pretty amazing experience with very cool pools, yummy and healthy lunch options and free parking.
## 51 Spent the whole day on a Monday here. It was raining lightly. I was so worried it was going to spoil our day and it didn't. We managed to do everything we wanted to do. It was I'm guessing less crowded than it normally was. The only thing is maybe it was a little cold when you got out of the pool onto something else.\nWe got there around 9.45 am. Short line- it went very quickly. Check in was a breeze. Got the total wellness package.\nWe went to the wine bar and got our wrist bracelets first. Once you get that there's no need for them to check ID every time you order a drink. Got a mimosa and then went to put our stuff away in the lockers which was right next door.\nNext stop mineral pools. We managed to snag an individual one that just fits two but why so few? It must be an awful wait for it during the weekends. The mineral water was lovely.\nI then had a nourishing facial at the salon. Hailey was wonderful!! My face felt amazing after we were done. my boyfriend lounged in the bean bag type floats at the lounge pool. Next up was his massage. He got the aroma soul and really loved it too. I waited in the saline pool while he was done.\nWe then had lunch. While a little pricy, the food was good. Had a chopped salad with some tortilla soup and a glass of Chardonnay from the wiens winery. The line took forever initially because there was only one cashier. They really shouldn't do that during the lunch hour. We sat inside because it was cold. We then went to the hot and cold pools and the vista pool. We made our way to the lap pool for the aqua tone class. Never done a class with weights under water. What fun!! it's just half hour.\nWe then made it to club mud. There's 4 steps to it. it!! We went straight into the pool - Not what we were supposed to do. Supposed to go towards the right. Slather yourself with mud and dry yourself in the sauna and then pool and then shower. Oh well.\nIt would have been nice if the guy in the front had told us that when we came in.\nFinally, we went to the grotto. Just loved the grotto!! What a wonderful experience. My skin felt so smooth after all the slathering of lotion.\nHad a wonderful day here. Would definitely come back.
## 52 Had to make a spa trip while we were visiting California. I have been seeing pictures of my friends going here and just had me curious for a while, especially the mud bath! We added the Grotto service on to our admission. The Grotto mask was amazing! It was warm and so thick so made your skin feel great after, however it's a so hard to rinse off after. In all reality, I would say the extra you have to pay for the Grotto isn't really worth it. I would just suggest the regular "Taking on the Waters" admission. It's more bang for your buck. The reason I gave 3 instead of 5 stars, was because the locker rooms and bathrooms weren't as clean and they probably could have been. The pools were decent however they should have timers for people on certain ones cause you could spend so long waiting for space in a pool. The drinks were sooo high priced and you have to pay extra for robes which I thought was different since every spa I've gone to has given you ary robes. Little things that added up, however still a fun experience!
## 54 I had such a great time at HIGH END SPA today. We had a cabana and it was lovely. Jennifer and Jassen were our servers and they were excellent! The highlight of our day was a wonderful experience we had with the manager Robert. He was so kind and sweet. I usually don't write yelp reviews but after reading 3 yelp reviews from a day ago where 1 stars were given to the resort and call out Robert by name. I had to write a review and set the record straight.\n#1 Hopefully everyone reading those bad post about Robert can smell the bull shit right away.\n#2 It really sounded to me like he was doing his job and the people receiving the service probably don't hear the word "No" very often and they didn't like it.\n#My guess is people having the power to publicly shame others, somehow makes them feel better about themselves. It's sad really.\n\nPEOPLE! Use Yelp responsively and humanly!\n
## 56 Wow! My vacations are usually fast paced, but our friends invited us to HIGH END SPA after our Disney trip and it looked too good to pass up.\nWe started by grabbing drinks at the bar- all cocktails are wine based and $10.50. You can put a card on file and just use your phone number which is much easier than paying with a card! A few of the pools we hit were the mineral, sulfur (remember to remove all jewelry), hot/cold baths (my husband did those and loved it) and of course club mud! The mud was surprisingly relaxing and fun. Definitely wear a suit you don't mind getting dirty!\nThe Grotto was a fun experience as well! No drinks are allowed past the entry to reach the elevators. Basically you stand in a stall and an attendant paints you with hot green oils/lotion! After that you go into a room that is similar to a sauna and hang out to let the moisturizer soak in (you put it all over your hair and face as well for the full benefits). They didn't tell us, but they recommend staying in that room for 15 mins (we had to go ask). Unfortunately there were other people who were being loud, even though there were many signs, which made it hard to totally zen out. Once everything is washed off, you go into the cold room where they have tea options and yummy green apples!\nLunch was also fabulous! I had a chopped salad and carrot cake. So good! They offer many options, such as wraps, flatbreads and sandwiches.\nAn added bonus is the Starbucks they have right near the entrance! Perfect when you're on the way out!\nI can't wait to return to HIGH END SPA in the near future and hopefully book a massage or another added experience to our day!!!\n
## 58 An amazing experience this past September cannot wait to go back!! The drinks and food were so yummy! I adore the peace and respect of all others around!
## 65 Spent the day here for a girlfriends birthday!\n\nI had a fun experience here. HIGH END SPA is huge. They offer many things to do when you pay for your package. I was able to go to the mud spa, sauna, heated pool, and many other mineral pools. They also offer other amenities such as a massage but it would cost extra. This is a nice getaway to relax. We were able to order food and drinks at our cabana.\n\nOne of our girlfriends ended up drinking way too much mimosa. She fell over the stairs and hit her head. She got immediate attention and the ambulance came. After that, we went to the nearest hospital to get her examined. She got a minor head injury. Thankfully she was ok and the day was already ending.\n
## 69 Absolutely wonderful!!! Coming in January was ideal. Just the right amount of people. We loved the mud bath and purchased the grotto. 100% do the grotto!! My skin is like butter.\nAlso had a massage which was amazing! We spent 8 hours there and is was perfect amount of time. Able to do all the therapools Maybe allow another hour if you want to lay out. Staff is courteous and here is water everywhere. Bring an empty water bottle!\nFood was delish and healthy too!!!! Overall, just a wonderful experience!\nWe
## 71 Love this place! I had never been to a chiropractor before and was definitely scared but I tried this place out because I had heard great things and it was even better than I anticipated. The whole staff is super efficient and organized. Dr. Brian Heller was super friendly and helped ease the neck pain I was having before.\n\nOn top of that, the first appointment which includes X-rays, a consultation and the first adjustment was only $40! Great price and an overall awesome experience. I plan to come here regularly now.
## 89 DOCTOR and his staff are absolutely fabulous. You have a warm family feeling from the moment you walk through the door, until the moment you leave. They are very professional, friendly, and genuinely care about your well being, medical care, and me as a person. They can tell if I'm having a bad day, and go above and beyond to make me smile and make my day brighter. DOCTOR is truly amazing as well, not only has he given me a better quality of life, he has also fixed me so that I can now play with my kids, walk with no pain, sit with no pain, and even do the most minute things that everyone takes advantage of, such as washing my hair in the shower. DOCTOR and his staff treat you like family, and may I say; there's no place like home! Thank you DOCTOR and all of the staff!!!! If you want first class treatment from the time you walk in the door, until the time you leave there, then this would be the place for you! And P.S. the person that threw a fit about the $25 cancellation fee- there is one IF you don't give 24 hours notice, and it's located in the new patient paperwork. People!!! Read what you sign!!!! Lol
## 106 Amazing experience with Dr. Ramzar and even better massage with Becky Thom, highly recommended! A professional and enjoyable experience!
## 32 This place was AMAZING. I booked a cabana and the celebration package over the phone a week in advance. It was a breeze. I got emails with my itinerary, waivers, and general info.\n\nUpon arrival you get reserved parking with the cabana. You make the line so they can check your bag and we told the bag checker that we had a cabana. We skipped the line to pay for entrance and went straight to check in. We had booked the celebration package which included a The massage was fantastic! The pedicure comes with a bourbon rub that was great. My wife loved her facial. The grotto was amazing! Staff even let us book our lunch ahead of time and had it ready for us when we got out of our massage. The place was not crowded at all. The pools are heated which is nice for winter time. The robes were super cozy!\n\nOverall a fantastic experience and will be coming back. We will continue shooting for off season though since it is less crowded. We each had three services and still plenty of time to use club mud and all the other spas.\n\nThanks to HIGH END SPA staff for making this a great experience!
## 2 So I came here based on a recommendation of a friend who swore by them and I have to say I know the hype is real. They have a special going on for $45 for an hour message and it's a great way to test them out for cheap. I came in and the entire experience was great. Staff were friendly and got everything handled rather quickly. Overall a great experience.
## 17 One year later and back for another birthday celebration today. Had a great time but was sad my favorite thing on menu was gone and any time I wanted a drink I had to wait in like for 20-30 mins, line never died down.. but other then that I loved it.. Favorite is the Hot and Cold Pools, Mud and pedicure Thank you for another great birthday. helpful tip: CALL WAY IN ADVANCE to make reservation, calling can be almost impossible.\n
## 18 Never been to LOW COST GROCERY STORE but I have heard of it. It Is similiar to food for less but this place is cleaner. They have a bulk area where u can bag nuts and candy and its weighed. Grocery items are priced well some larger items like family packs are cheaper to buy than regular size. I did not buy meat but the dairy section had grated Tillamook cheese! Would definitely come back but not on a regular basis since I live in Mission Viejo so its a drive for me. But great experience
## 23 My family loves this place, we shop here all the time! The prices are amazing, and the staff is really nice. My two year old even knocked a glass jar of pickles of the shelf and they came and cleaned it up right away and said to not worry about it at all. We rarely wait in a long line to check out. Bagging our own groceries can be challenging with two little ones in two but it keeps the costs down for them I believe and it's no biggie. I also love knowing it's open 24hrs.
## 29 Great experience!! It was my third time doing acupuncture here and it helped me a lot. I got knee, heel pain, and also joints pain and it was gone after doing acupuncture. So amazing!! The doctor's so nice and the staffs are so friendly. I'm regular now
## 47 How have I lived in the Inland Empire for so long and I have never been to HIGH END SPA?! This place is truly a magical oasis!\n\nWe started the day by getting to the hot springs right when they opened which was perfect! We were able to get first picks and enjoy the pools for a few hours before bigger crowds came. There are The day moves by so quickly as you are just lost in relaxation land! Before I knew it the day was over and I was so sad to leave. Honestly, though the place is pricey, its worth every penny as this is the best experience I have ever had.\n\nLast thing. The Hot Springs recommend that you disconnect to get the full experience and Must Do's? Everything! My top top favorites were: lounging pool, the grotto, the saline pool and the vista pool!\n\nIf you do anything at all, I personally recommend just getting admission and the grotto (separate price from admission,$I cannot CANNOT wait to come back here again!\n\nThings to keep in mind:\n- Weekends are very busy! A few friends and I came on a Friday and the crowd level was just perfect. Busy but not too crowded. So I recommend a weekday if you can.\n-Come early! I would recommend at least 20-30 min before opening because there is a line! It went pretty quickly as they take "peeks" inside your bags.\n-There are free lockers inside of the bath house to keep your belongings. The bathhouse also has showers that have hairdryers, lotion, body wash and shampoo and conditioner and a bathing suit dryer! All free!\n- Free towels are all over the spa so no need to bring your own!\n- Bring a cover up if you have one! They also have robes you can rent that a lot of people rocked all day!\n- They have a cafe and kitchen there so you can order lunch and things!\n- At check in, they ask you to keep your card and cell phone number on file so they if you make purchases through the day, you don't need to hold onto that.\n-If you are interested in doing any of the services and couldn't book online, they have same day bookings as well! You can talk to the staff at check in about that!\n\nIf you know that you have been holding onto a lot of stress, you NEED this! Treat yourself please!
## 62 Great experience! It was a treat for my wife's birthday and it was a very enjoyable time with her. There were several different pools to choose from and we experienced them all, but it's definitely a full days experience. I hear it can get really full on the weekends and I feel like that could change the experience a lot. However that wasn't the case for us! My wife every twisted my arm and got me to do yoga... Good times! My wife would go every weekend if she could.\n\nAs a heads up, the mixed drinks are wine based, but still quite good.
## 64 my FAVORITE place to relax and not worry about anything. Take advantage of everything! I always stay the entire time. My favorite would have to the be the hot and cold water pools and then next is the mud bath. When I leave here, I'm always feeling CHIROPRACTICd.
## 73 My birthday experience at HIGH END SPA was amazing from the start . I'm so happy I decided to have my 30th birthday the there. We got the bamboo Cabana , Jeff was so helpful when it came to set up everything for me . I felt like a Queen when Jeremy came to greet and show us to the Cabana we had . He had us feeling like the VIP we are . Kyna and Chelsea were quick when it came to making sure we were well taking care of .\nThe best experience ever ! We will definitely be back !!!!
## 81 This is NOT a Check in -\nWe rented Cabana Service -\nVery mediocre service. No one is really interested in service with a smile and happy to help. If someone is paying for a lovely experience, you would hope your staff is there to help with that. Not here.\nIt was close to the Twilight menu which starts at 5pm. We asked one of the cabana attendants if we could place an order and her response was, it's not 5 yet. It was 4:50. We asked can she come back then. The correct response would be - Sure, I'll take your order now and put it in at 5. Well, she didn't and she never returned.\nWe then sent a text to concierge asking if we can order. They responded they will send someone over. A cabana attendant arrived, who had helped us in the morning and was pleasant then. Well come the evening hours she wasn't as pleasant. We were clearly an inconvenience now and you can read it all over her face. She took our order and went back to inform the manager that I was sitting on a chair in front of another cabana. Our cabanas were the only ones being occupied. The remaining cabanas were zipped up and the chairs were stripped of their cushions. My location of the chair I was sitting on was in the sun with no shade so I sat on one of the unused cabana chairs to get out of the sun. Again, the chair was not going to be used by anyone as the cabana was zipped up. I didn't see this to be an issue, but it was.\nRobert let us know, I can not sit there even though the cabanas are not being used or we will charged for a third cabana. He also let us know that they are understaffed and at capacity. Which has nothing to do with sitting on an unused chair. My brother asked him, so you are taking it out on us because you are understaffed. His response was yes. Very bizarre behavior from any employee, let alone management. We asked if we can speak to someone else because he wasn't interested in dealing with us and made it very clear verbally. He said there is no one else, he's the main person in charge. After more complaints to the front desk about how rudely we have been treated, they finally sent over the food and beverage director Jason. Jason was very professional, listened and even offered passes for our next visit. We declined, but appreciated the nice gesture. We weren't looking for compensation, just good old fashion customer service. I don't think that's asking for much, especially for a service driven facility.
## 92 One year later and back for another birthday celebration today. Had a great time but was sad my favorite thing on menu was gone and any time I wanted a drink I had to wait in like for 20-30 mins, line never died down.. but other then that I loved it.. Favorite is the Hot and Cold Pools, Mud and pedicure Thank you for another great birthday. helpful tip: CALL WAY IN ADVANCE to make reservation, calling can be almost impossible.\n
## 103 excellent, professional, courteous, I had a great experience when I went, I had some back issues it was difficult to walk. After a treatment from DOCTOR I was walking pain free, in addition he showed me some neat stretches to make sure I didn't have a recurrence. Great place would recommend to all! Please stop by and visit them, you will be glad you did!
## 104 A new acupuncturist joined recently and she's amazing! Kirsten has been treating me for the past few months and I've had such a great experience with her. She keeps great notes and always remembers what's going on with me. I've seen improvements in several areas we are focusing on and I definitely feel "off" if I go too long without seeing her.\nIf you've been looking for someone, she's your girl!!
## 68 I've been to HIGH END SPA three times. My review is for my most recent experience. I will say that the first couple times I have gone I'll admit it gets sooooo packed, and it's kind of gross, you literally can't see the bottom of the pool bc there are bodies everywhere cramping in every possible little corner. You can't put your towel on a chair... actually good luck in finding a chair, the lines for the food and drinks are ridiculous and of course overpriced. It ruins the experience bc you are seriously just waiting for space in any pool. BUT....\n\nToday I don't know if it's because it's December and people think it is cold, but it was not packed at all. My experience when it wasn't like sardine packed was amazing. My husband and I got to go to every pool more than once and got to fully experience the whole area with as much time as we wanted. I even discovered there was something called a secret garden, which I didn't even know existed the last couple times I went. It's a cute little area in like a grass section with two huge hammocks, which yes bc it wasn't so crowded me and my husband both got to chill on a hammock as long as we wanted, I fell asleep actually ahhaha. I was so relaxed.\n\nThe experience this time gets four stars because I really enjoyed the whole place and got to spend as little or as long of a time I wanted at ALL of the areas. My personal favorite pool is the mineral baths that smells like sulfur and the Epsom salts one. I really felt it cleansed my skin and helped relax my muscles. My husband loved the hot and cold pools, he felt it really helped with his blood circulation and his tense muscles (he plays a lot of basketball). The saunas are actually a cool experience too with different oaks burning, it was different. The mud area is definitely an experience, it really exfoliates your skin and leaves your skin super soft, and it makes for great photos!\n\nThe facilities itself is very clean and kept up. I did not meet one staff member who wasn't super friendly and welcoming...good job on the customer service skills!! The kitchen which is the only area you can buy food, actually serves really good food, but again it costs like an arm and a leg. My favorite item was the ahi burger, a huge slice of seared ahi, and their aoli sauce/slaw was super flavorful on a toasted brioche bun.\n\nBesides the many different pools, the saunas, different areas to relax in and the mud area, HIGH END SPA offers extra services such as personal massages, pedicures or manicures, facials etc. My husband and I did a couples massage and we both wanted to shout out our therapists. Both were super professional, respectful and did a great job on our massages. If you want a good massage at HIGH END SPA I highly recommend Cheri and he recommends Samantha. Thanks girls!\n\nIn the end, I love that this is offered in this area. It was an amazing experience.... again when it is not packed. I do think it IS pricey, for the price we pay for all the services I think a ary robe should be included. We rented the robes for $Tip: if you book a massage you get a discount on the admission. Also if you are a nurse, you get a discount too, just show your badge!
## rating avgScore
## 39 5 4.0
## 43 5 4.0
## 45 4 4.0
## 46 4 4.0
## 49 4 4.0
## 51 5 4.0
## 52 3 4.0
## 54 5 4.0
## 56 4 4.0
## 58 5 4.0
## 65 3 4.0
## 69 5 4.0
## 71 5 4.0
## 89 5 4.0
## 106 5 4.0
## 32 5 3.5
## 2 5 3.0
## 17 4 3.0
## 18 4 3.0
## 23 5 3.0
## 29 5 3.0
## 47 5 3.0
## 62 5 3.0
## 64 5 3.0
## 73 5 3.0
## 81 1 3.0
## 92 4 3.0
## 103 5 3.0
## 104 5 3.0
## 68 4 2.5
tail(text_df2[order(text_df2$avgScore, decreasing=TRUE),],30)
## line
## 6 62
## 12 125
## 21 186
## 27 219
## 28 222
## 30 227
## 36 243
## 41 272
## 44 286
## 48 301
## 50 304
## 76 394
## 77 395
## 82 408
## 83 413
## 8 70
## 13 130
## 35 241
## 57 321
## 75 391
## 84 416
## 94 474
## 99 507
## 102 523
## 108 605
## 16 146
## 42 280
## 80 403
## 20 171
## 74 378
## text
## 6 I went to visit DOCTOR after being diagnosed with Cervical Radiculopathy the pain was no joke. After my first visit I felt 100% better. I could actually move my neck and shoulder. The atmosphere is wonderful and service is great. I recommend CHIROPRACTIC to anyone you want be disappointed.
## 12 I'll give my experience 1/4 of a star if I could. Don't shop here at night or at all! The associates are miserable, they're not helpful and don't give a sh*t. Even if you try to file a complaint, they try to avoid you and act like they're busy working when there are hardly any customers. David, who is supposedly the lead man at night can't even give you his last name because he's scared to be reported for his lack of customer service and whoever the cashier was on Lane 16 at 11:30pm on July 19th is even worse because she didn't even want to give her name.
## 21 What a horrible experience. First off, whoever decided to take out Albertsons and replace it with LOW COST GROCERY STORE is an idiot. It's like walking into a third-world country. Some girl was publicly fighting with her baby daddy. Not cool. The employees are all young kids with extremely unhelpful attitudes. I asked where a particular product was and he replied, "over there", and walked away. Um, over where?! There are like The layout is terrible. Like, the bananas are by the dental floss.\n\nNever going back.
## 27 The prices are great! The meat is horrible though. Rib eyes are very tough and I just threw away 20 hamburger patties that tasted really bad. I dont think the meat is kept cold enough. The produce is not very good. Fruit is not sweet and I have had to throw out a lot because it got moldy immediately. Go to Stater Bros. For the meat and produce. Its worth it to save money to go to 2 stores.
## 28 This review is long overdue. Our very first visit was On Upon arriving at our cabana, there was a fruit basket waiting for us. Overall, the cabana seemed clean, but it had a cushiony double-lounger that sadly looked very dingy, as if not properly cared for. Our individual services were okay. It was a very busy day, yet we felt like we could have done without the cabana. This visit was during their high season; therefore, the hours were longer so we got to enjoy more of the spa.\n\nWe returned on , for a couple's day. This time we reserved On After my facial was done, I noticed that the nail polish on all of my left toenails was chipping away. I asked about this in the salon and they assured me that the polish is suppose to last a few weeks. WEEKS, not hours. They reapplied nail polish, at no extra cost, but didn't reapply to all my toenails. On Overall, we enjoyed our visits; however, I don't believe the services we received were up to par with the price tag and the hype. Also, since March is part of their low season, the hours are shorter; therefore, everything feels rushed; consequently, did not feel very relaxing. Also, during this slow season, there truly is no advantage in reserving a cabana or lounger, as there were plenty of empty loungers all over the property.
## 30 My sweet boyfriend surprised me with a spa day. He bought the BETTER WITH FRIENDS package that includes: Taking the Waters admission, We had arrived before doors opened at That massage though! Heidi was absolutely lovely. Very skilled and I had the best massage. Thank you, Heidi!! PRO TIP: When you book your massage, request to be in the same village (building) as your friend/significant other. Not like it makes much of a difference since you'll be in different rooms, but I had to walk further to village #We spent the rest of the day in the hot/cold pools, spas, hot saunas, club mud, etc. Towels are abundant, so thank you HIGH END SPA. The two of us were able to relax and really enjoy our day because we intentionally focused on relaxation. You WILL NEED to be able to block out your surroundings (i.e. noise, laughter, convos, drunk people) in order to truly have a relaxing time here. It was fairly crowded, especially for such a cold, windy day. If you wanted to get away from the crowds, you would've had to enter the lap pool or cold pools (heated to TIPS:\n- Eat breakfast at home \n- Bring your own robe from home\n- Wear sandals or flip flops\n- Don't lose your locker key\n- Bring CA$H to tip\n- Don't leave your patience or humor at home\n- HIGHLY recommend their therapeutic pools\n- Try the Grotto at least once in your lifetime
## 36 We used to love coming here. It used to be such a nice place to retreat. The past few times we've been it's been crazy over crowded with groups.\nLots of drunk birthday or bachelorette parties... if you are planning to go & relax I would not recommend!!! It was really disappointing to pay extra for The Grotto and have a group of drunk girls screaming and laughing the whole time. They seemed to be enjoying themselves but managed to ruin everyone else's time.\n\nThe spa itself is pretty nice and seems well maintained. Although I think the food has gone downhill over the years as well.\nIt was a great escape while it lasted, but I don't think I will be returning.
## 41 What a total rip off! Go to a nice spa in a hotel where you can get a nice massage and relax This place corrals women in and out; the grounds fee that we paid of $72 per person just to use the pools, hot tubs and mud bath was not worth it (this was over and above the service we signed up for). At the end of the day every female is in the locker room trying to shower... the line was so long and there was no space at the counter/mirror area. The gym is old and kinda gross too. They need to have a "max" number of people allowed in. I will never go back.
## 44 For the amount it charges, you would expect something upscale but as a first timer-- it is looking dated with dysfunctional shower switches.\n\nFrom what I experienced it looks like the rainfall shower heads are more of the norm and the side shower heads no longer work. If it doesn't exist in most people's household (ie most people would have removed the side tiles) then just remove it! Saw this in the Grotto as well.\n\nI went into the salt pool near opening and there was already a dead mosquito in it. Is someone really cleaning it or is just done the night before?Annoying!\n\nI like that most of the pools are shaded with the exception of a few in which you lounge around. Mineral/ salt baths tend to be the most popular.\n\n(+) loved the Grotto experience- it is a moisturizing experience; you need to pay extra and reserve ahead of time. If you're tight on funds and don't want a service, do this instead. The receptionist recommended we go to the mineral baths first, then clay mud, and lastly the grotto (start the experience about one hour before your Grotto experience). Sign the waiver beforehand to avoid a longer wait.\n\n(+) there are about (+) liked that there was water + towels throughout the spa.\n\n(-) food is over priced and how is it delicious from some reviews ? I had a turkey avocado sandwich and the bread was stale/ hard. Not worth $(-) there is lotion by the soap dispenser but hardly any lotion. People were getting super upset and while you do see attendants, there is no one refilling.\n\nI booked a package which includes admission, a spa treatment up to $Overall, a bit disappointed by the visit as I was expecting it to be more upscale/ up to date. Upon closing time (near 5pm) when it closes at 6pm, it felt like chaos in the locker area just from the crowds.
## 48 I came in about a month ago dealing with a very sore, tight, and overused back. I've been bodybuilding/exercise training for the past six years and have never received massage work until I came here. I met with Juliard and have stuck with him since. He has helped to relieve so much tension and alleviate the soreness from my back. His deep tissue is no joke and I only recommend to those who don't mind being sore the next day.
## 50 Service has diminished within the past year. Last year, a group of my friends and I (total of 5) visited HIGH END SPA for a day of relaxation. We rented a cabana, had massages, and experienced the grotto. We had such a wonderful time, that we decided to make it an annual event. Well this year when we visited HIGH END SPA, our experience made us rethink our decision. The customer service was absolutely horrific. We made our reservation in July, to ensure we would have the same experience we had last year. Well upon our arrive at 8:45, our initial experience was a precursor to the remainder of our day. There was a long line to check in, once we made it to the front of the line, to our amazement there was one security person, checking each person purses and bags with a fine-tooth comb. She put her hands on everything in my spa bag, even though when I opened it, you could clearly see there was nothing but a bathing suit and some water shoes. I felt actually invaded. But I thought to myself, "the day will get better, move on and enjoy the wonderful relaxing day". Well when we went to check in to get our cabana, we were told there was an additional charge of $50 for the fifth person in our party. I explained to the manager, we were there last year and had the same amount of people and there was no additional charge that time; and when we reserved, paid for the cabana back in July (and I had communicated that there was 5 of us), the additional charge was not communicated to me. The manager stated the $50 is a new charge. So we paid the additional charge, and was guided to our cabana. When we arrived, there was a lot of bees in the cabana. The attendant told us they are having a bee problem, because there is a hive close by. Therefore, keep our food covered, because food tends to attract the bees. Then we noticed that there were only 4 table chairs and 4 loungers. When we requested an additional chair for our 5th person, we were told they could not provide additional chairs. I said we paid an additional $50 for the 5th person. Why are you charging an additional $50 if you are not going to provide the amenities necessary? The attendant told me because it takes more time to provide service to 5 people. I thought to myself "nonsense". We ordered breakfast and several platters, and when our food arrived, we requested additional plates, for the platter, so we could all share, and we were told they did not have any. \nAlthough the pools at HIGH END SPA and massages are wonderful, something needs to be done about customer service. 1st and foremost, with the amount of money that HIGH END SPA makes each day, they could have hired a professional to come in and take care of the bee problem. 2nd why charge an additional $50 for extra people if you are not going to provide the same amenities. 3rd the check in was an absolute horrible and violating experience and needs to be changed. Lastly, the communication with the guest needs to be improved.
## 76 I am so upset!\nI came here for my bachelorette party and then again the weekend after from Orange County.\nFirst we did the grotto which probably would have been amazing if this big group of girls weren't yelling (there are signs everywhere to whisper). To give the worker credit he did try to ask them to be quite but it failed. I have general anxiety disorder and PTSD so obviously I try to do things in a nice quite environment (they can't control my disorders but just giving you a understanding of how my body was feeling which is completely out of my control). It got even worse.... they can't control the weather BUT when I went to the front to book a massage there was only one available at 5pm. I booked it. Soon after it got really cold and windy. I was in a wind breaker coat and couldn't get warm. I decided that it was so unbearable that I would ask to cancel my message. I went to the front desk and was approached by a manager named David. He was so rude. No smile, no empathy and no kindness. I asked him if I could cancel my message and he said no- it's way to late because there is a policy. I asked why I wasn't informed of that information when ordering the message at the front desk. I also asked why the cancellation policy was not written on the receipt I signed. He rudely said "most people already know there is a cancelation policy". Obviously my anxiety started. He made it a argument instead of an understanding. He was awful and I don't understand why he is a manager. Then I talk to another manager who clearly saw I was really upset and I disclosed that at this point I wasn't going to get the massage as I was way to anxious to even enjoy it. If David started out nice- none of this would have even happened. I WILL NEVER GO BACK. I left before my massage and have the receipt. I will be contacting David's boss and reporting this to my bank. The girl at the front desk was kind and all of the workers BUT the manager who represents them completely ruined my experience. Customer service would have gone a long way.
## 77 I've been to HIGH END SPA a few times in the past couple of years. All my experience have always been wonderful. I was very disappointed yesterday to find the shallow pool as well as well as the one of the pools in the rear of the property, filled with bugs/gnats. It was gross. I could not enjoy myself and the experience was disappointing. It also left a bad impression with my friend who was excited to visit HIGH END SPA for the first time. \nIn retrospect, I should've said something to the staff, but I was trying to make the best out of a disappointing day.
## 82 Reservations and checkin process was overly convoluted and left a feeling of annoyance even before my visit. Upon arrival long lines and disorganization only confirmed this dysfunctional spa. This was my first experience and impression of HIGH END SPA and it was a far departure from a luxury relaxing first impression.\n\nSome of the showers and restrooms were not kept and being that the place was crowded the cleaning service needs to upkeep these places to continue to instill a sense of still being at a spa and to keep the image of luxury which HIGH END SPA failed to deliver.\n\nThe heat of the Day negated the need for a HIGH END SPA robe but nothing was offered up by the Spa as a replacement comp so there was a shortfall in satisfaction in my upgraded purchase with the Passport to Wellness Plus package.\n\nThe quartz massage was amazing and the facial although felt amazing didn't last long afterwards since there was still other activities to do that countered the benefits of the treatment. I would recommend having your a facial before a massage and closer to the tail end of your day.\n\nThere were not enough Keto friendly menu options at both the Cafe or Kitchen. So I was very limited as to what I was able to eat and the price points for the food cost more than you would expect for the size portions you receive so the food value was really not there for me either.\n\nOverall on a scale of Spend your money at Red Door Spa, the Mandarin Oriental, or some other smaller boutique Spa who will provide you a customized unique spa day tailored a personalized for you at the cost you will pay at HIGH END SPA.\n\nHIGH END SPA is overpriced for a subpar Spa experience, which was unorganized, not clean, super crowded, lacked greater food options, and far from a luxury Spa experience for the money you can spend elsewhere.
## 83 I came here for my sisters birthday, we got here early on a Wednesday. I was super excited to come here until I ordered my breakfast, I ordered a omelette with potatoes. My sister got the same meal and we both couldn't finish half of it. I would not recommend eating here. I also got nachos for lunch $30 not the yummiest nachos. The soda cost about $5.30 it did not have syrup, went back to pick another drink and both machines were out of syrup for soft drinks. Definitely come in a full stomach so you don't have to spend a lot money for horrible food. What I did love was the amount of pools they have and jacuzzi. Mud pool and hot/cool pool was my favorite. Also don't bring a hair dryer they provide that as well as towels and water.
## 8 Had a very terrible experience during these tuff times of everyone dealing with covid19. My daughter and I were unable to purchase merchandise because we walked into the store together. We asked Gabriel to verify the different addresses on our driver license, however he refused. He was very rude,going back and forth with me. I would like to also add that the cashier Jasmine was extremely rude as well. I have been a customer of this store since they have come into the community. With the rudeness of Gabriel and Jasmine I will never return to this location ever again. With this treatment they don't even deserve 1 star.
## 13 Wow!!!! Customer service tonight was NOT good at all. For a company that is employee owned you would think that they would strive for excellent customer service every time. I am a frequent shopper of LOW COST GROCERY STORE in Norco because of the proximity to my house and frankly the prices are better than the Vons which is much closer to my home. However tonight with my $300 plus shopping cart full of food. I literally almost walked out and said forget it I'll wait for Costco in the morning. As much as I have loved shopping here in the past this one incident of poor customer service will definitely make me think twice about making that drive from Limonite to Hidden Valley.
## 35 I go to HIGH END SPA often. I love it there, the atmosphere is so luxurious. In the summer I go during the twilight hours, it's not as crowded and has a different vibe. During the summer it is at capacity most days. I also go during the winter, it's not as crowded and they have robes you can rent, or you can buy your own. You really can't go in the lounge pool during the cold season, it's too cold. I LOVE LOVE LOVE the Club Mud and the Grotto. Doing those two makes your skin so soft and silky. I went over the Thanksgiving weekend and tried their yoga class. I was not impressed with the instructor. I could have taught the class with more flow and accuracy. I was seriously considering getting a yearly pass so I can do the yoga, Club Mud and the Grotto during the year and am going to pass because the yoga is not that great. I hope they get another yoga instructor soon. \n\nThe food, is good quality and typical spa type food. You also get a good amount of food to each order. Their drinks are good as well. The price for the drinks and food is pricey, but it's the spa, so it's expected to be overpriced. \n\nI would absolutely recommend HIGH END SPA, just not the yoga instruction or during the summer months.
## 57 I was present for a bachelorette party.\nI was in line at Cabana to buy sodas. There was a line formed with chords.\nA couple young woman went to front of line. I let them know there was a line. Service men took care them. Then did not wait on me.for more than 10 minutes. It was so obvious. I am 50. They were 20ish. They had to wait on me because there was a line behind me.\nThe people behind me said 'go girl,'\nThey were not happy that young woman do not have to wait in same line.
## 75 I wish this could have been a better review. BUT due to poor communication between workers its not. We had booked our grotto for NOT happy and even more reason why I will continue to go to Burke Williams at least they listen when I say I am allergic to something !
## 84 It's odd to me how you see the complaint, then a response but no update from the customer that their experience was ever made whole. Or try to make up for the bad experience?\n\nRead less\n
## 94 It's odd to me how you see the complaint, then a response but no update from the customer that their experience was ever made whole. Or try to make up for the bad experience?\n\nRead less\n
## 99 It's odd to me how you see the complaint, then a response but no update from the customer that their experience was ever made whole. Or try to make up for the bad experience?\n\nRead less\n
## 102 WORST EXPERIENCE EVER!!\n\nFor our wedding anniversary, my parents purchased a pamper package from this establishment. We woke up early on our anniversary day, and drove three hours to make an After back and forward with the manager he offer a
## 108 WORST EXPERIENCE EVER!!\n\nFor our wedding anniversary, my parents purchased a pamper package from this establishment. We woke up early on our anniversary day, and drove three hours to make an After back and forward with the manager he offer a
## 16 So I was having back problems for a long time and Realized I needed to go to a professional. The first visit seemed be perfect. A caring Chiropractor that wanted to fix my issues. We went over a game plan to get me moving again.\n\nNow to the Third visit, As the chiropractor walks in he recommends I should get a massage. I said you told me that last time I did go to who you recommended which was in the same office. He clearly did not look at my file!! Then he began to do his job but did nothing we spoke about in the first appointment. I reality he had no clue who I was or Didn't even remember me. After This place is quick to take patients and even quicker to dismiss you. He walks in the room and leaves as quick as he comes in. I would not recommend this place because they are about money and not helping the client.\n\nHorrible experience. Word to the wise, go somewhere that really wants to help you. This place is far from helping!!!
## 42 I WILL NEVER GO BACK HERE, EVER. Came for a friend's birthday... She was unfortunately disappointed.\n\nThe Bad:\n- SO SO SO CROWDED... The pics do no justice to how incredibly wall-to-wall crowded this place is\n- Pretty gross. Clumps of hair in the pools, dead wasps everywhere, can wear shoes in the locker room... Just all around nasty.\n- Some staff is cool (especially in the grotto) but otherwise rude, beaten down by life, and slow as molasses in winter.\n- food was bland and drowning in sauce or salad dressing, etc\n- drinks were processed (not like a fresh, craft cocktail). Hangover city.\n- Who the f*@k came up with the layout of this place? I'm not kidding, it's this weird, convoluted maze trying to hide the fact that it's actually a lot smaller than you think\n- Hot springs..? More like lukewarm to cold springs with an overcrowded hot tub\n\nThe Good:\n- the people I was with! Love you girls! xoxo\n- The grotto was nice\n- Well maintained grounds (trees, rock garden, etc)... More so than the pools it seemed\n\nGood and Bad:\n- The mud! Makes your skin glow for the rest of the day, but it REALLY dries you out afterwards! Not good for dry skinned folks like myself. Also the pool is warmish, but also filled with people, dead bugs and probably dead skin... (shudder) If you're renting a robe and get mud on it, they charge to clean.\n\nMy advice: SKIP THIS PLACE and find a good Korean Spa! It'll be cheaper and more bang for your buck. Seriously, this place is YIKES!\n\n*OR* if you're looking for an actual luxury experience and don't mind paying for it, try Terranea in Rancho Palos Verdes. That place is (kisses fingers) magnifique!!
## 80 We booked the bamboo cabana on 11/02/19. I have nothing negative to say about the staff. They were all great. I am upset that there were mosquitos inside the cabana and it looked like the fan blades had not been cleaned since this place opened. We were hot at one point and could not turn on the fan in fear that we would all start having severe allergies with all the dust. Another negative is that we weren't able to bring any outside food and I would have liked to at least bring in a celebratory cake or cupcakes for our little get together. We were celebrating a bachelorette. For the price that we payed it was not worth it. This place is good if you're just paying for the entrance fee and maybe one of their spa services but it's not worth booking a cabana.
## 20 Don't get me wrong this place is USUALLY excellent but I just had the worst experience. The person didn't know the price for the fruit. The lady also asked me what fruit it was.. this person then made up a price for it. I ended up paying 3.86$ for 3 prices of fruit... I called after to ask for the original price and they said they don't do price checks over the phone. I offered to give them the code so that if they were near a computer they can.. he said sorry they couldnt. Not sure why but yea worst experience here ever. Ill give it one more try.
## 74 Treated myself to a birthday spa day!! Well needed. Free birthday admission on your actual birthday ($50 value) with the purchase of a spa service. I bought 2 spa services. An organic facial ($110) and aroma therapy 50 min. Massage ($100).\nI arrived on a busy Friday mid morning. Very friendly, inviting young lady checked me in. I had not pre paid my spa services, luckily they did have a facial and massage opening.\nPretty packed. Busy day at the spa.\nI put my stuff in the ary locks and enjoyed the Roman pool located in the women's locker room. Only 2 occupants. Enjoyed this for 30 minutes then off to my next stop. Dry sauna!! Smelled very refreshing and relaxing. I only lasted 7 minutes!!! Extremely warm inside. But good for you.\nLunch was delicious. I ordered a salad ($18). Scrumptious salad with green goddess dressing. Quite pricey yet nice portion size. Incredibly nice gentlemen customized my salad, thank you.\nFacial. Good but not great. The lady was very friendly and knowledgeable. But she was a little rough. Not very tender. I was getting a facial not a Swedish massage. Not as quite relaxing as I desired.\nMassage. Was good not great. I get massages on a monthly basis. And this was average. I requested light light pressure, a relaxing massage. This particular massage therapist light pressure was more like medium pressure. Overall good massage.\nOverall exceptional experience and will return soon!!! Maybe not for a facial but definitely for the other amenities such Roman baths, mineral baths ( often very full), wet & dry sauna, the grotto extra $25, red clay pool bath, Starbucks cafe, fabulous cool & warm pools. Refreshing ice cold water with lemon coolers available all throughout the spa grounds.\nary lotion, towels, shampoo, conditioner, body wash, lockers and q-tips in bath house!!!
## rating avgScore
## 6 5 -2.0
## 12 1 -2.0
## 21 1 -2.0
## 27 3 -2.0
## 28 3 -2.0
## 30 5 -2.0
## 36 2 -2.0
## 41 2 -2.0
## 44 2 -2.0
## 48 4 -2.0
## 50 2 -2.0
## 76 1 -2.0
## 77 2 -2.0
## 82 2 -2.0
## 83 3 -2.0
## 8 1 -3.0
## 13 1 -3.0
## 35 3 -3.0
## 57 1 -3.0
## 75 1 -3.0
## 84 1 -3.0
## 94 1 -3.0
## 99 1 -3.0
## 102 1 -3.0
## 108 1 -3.0
## 16 1 -3.5
## 42 2 -3.5
## 80 2 -4.0
## 20 1 -6.0
## 74 4 -6.0
Looking at the above it almost apppeared as though we could use a theshold value of less than some threshold is a 1 and above it is a 5, but that doesn’t hold true for many values. Because some -2 avgScore values are rated a 1 or 2 and those above an avgScore of 3 are a 4 or 5, yet some of those -2 avgScores are a 4 or 5, and some of those avgScores of 3 are a -1. So, it isn’t that simple to adjust the algorithm to fit this model of avgScore. Lets look at those instances where the avgScore is > 3, but the rating is less than 4, and those that are less than -2, but the rating is greater than 3.
negRate_out <- subset(text_df2, text_df2$avgScore < -1 & text_df2$rating > 3)
posRate_out <- subset(text_df2, text_df2$avgScore > 3 & text_df2$rating < 4)
oddOnes <- rbind(negRate_out,posRate_out)
oddOnes
## line
## 1 18
## 4 56
## 6 62
## 30 227
## 48 301
## 74 378
## 52 307
## 65 343
## text
## 1 I can't say enough great things about CHIROPRACTIC. After dealing with a nerve injury for 5 years complete with constant pain, fainting, and doctors continuously telling me they could not help me, DOCTOR was able to diagnose the problem and put me on the path to living pain free in one visit. His prices are very reasonable, and he is willing to work with the patient to provide the best and most affordable service possible. The staff are all very kind and personable, and make the treatments go quickly. If you are looking for relief, don't go anywhere else.
## 4 The moment I walked into this place i knew I was in good hands!! I had never visited a chiropractor before and it was an amazingly "un-scary" experience! Love this place and would highly recommend it to anyone and everyone!!!!
## 6 I went to visit DOCTOR after being diagnosed with Cervical Radiculopathy the pain was no joke. After my first visit I felt 100% better. I could actually move my neck and shoulder. The atmosphere is wonderful and service is great. I recommend CHIROPRACTIC to anyone you want be disappointed.
## 30 My sweet boyfriend surprised me with a spa day. He bought the BETTER WITH FRIENDS package that includes: Taking the Waters admission, We had arrived before doors opened at That massage though! Heidi was absolutely lovely. Very skilled and I had the best massage. Thank you, Heidi!! PRO TIP: When you book your massage, request to be in the same village (building) as your friend/significant other. Not like it makes much of a difference since you'll be in different rooms, but I had to walk further to village #We spent the rest of the day in the hot/cold pools, spas, hot saunas, club mud, etc. Towels are abundant, so thank you HIGH END SPA. The two of us were able to relax and really enjoy our day because we intentionally focused on relaxation. You WILL NEED to be able to block out your surroundings (i.e. noise, laughter, convos, drunk people) in order to truly have a relaxing time here. It was fairly crowded, especially for such a cold, windy day. If you wanted to get away from the crowds, you would've had to enter the lap pool or cold pools (heated to TIPS:\n- Eat breakfast at home \n- Bring your own robe from home\n- Wear sandals or flip flops\n- Don't lose your locker key\n- Bring CA$H to tip\n- Don't leave your patience or humor at home\n- HIGHLY recommend their therapeutic pools\n- Try the Grotto at least once in your lifetime
## 48 I came in about a month ago dealing with a very sore, tight, and overused back. I've been bodybuilding/exercise training for the past six years and have never received massage work until I came here. I met with Juliard and have stuck with him since. He has helped to relieve so much tension and alleviate the soreness from my back. His deep tissue is no joke and I only recommend to those who don't mind being sore the next day.
## 74 Treated myself to a birthday spa day!! Well needed. Free birthday admission on your actual birthday ($50 value) with the purchase of a spa service. I bought 2 spa services. An organic facial ($110) and aroma therapy 50 min. Massage ($100).\nI arrived on a busy Friday mid morning. Very friendly, inviting young lady checked me in. I had not pre paid my spa services, luckily they did have a facial and massage opening.\nPretty packed. Busy day at the spa.\nI put my stuff in the ary locks and enjoyed the Roman pool located in the women's locker room. Only 2 occupants. Enjoyed this for 30 minutes then off to my next stop. Dry sauna!! Smelled very refreshing and relaxing. I only lasted 7 minutes!!! Extremely warm inside. But good for you.\nLunch was delicious. I ordered a salad ($18). Scrumptious salad with green goddess dressing. Quite pricey yet nice portion size. Incredibly nice gentlemen customized my salad, thank you.\nFacial. Good but not great. The lady was very friendly and knowledgeable. But she was a little rough. Not very tender. I was getting a facial not a Swedish massage. Not as quite relaxing as I desired.\nMassage. Was good not great. I get massages on a monthly basis. And this was average. I requested light light pressure, a relaxing massage. This particular massage therapist light pressure was more like medium pressure. Overall good massage.\nOverall exceptional experience and will return soon!!! Maybe not for a facial but definitely for the other amenities such Roman baths, mineral baths ( often very full), wet & dry sauna, the grotto extra $25, red clay pool bath, Starbucks cafe, fabulous cool & warm pools. Refreshing ice cold water with lemon coolers available all throughout the spa grounds.\nary lotion, towels, shampoo, conditioner, body wash, lockers and q-tips in bath house!!!
## 52 Had to make a spa trip while we were visiting California. I have been seeing pictures of my friends going here and just had me curious for a while, especially the mud bath! We added the Grotto service on to our admission. The Grotto mask was amazing! It was warm and so thick so made your skin feel great after, however it's a so hard to rinse off after. In all reality, I would say the extra you have to pay for the Grotto isn't really worth it. I would just suggest the regular "Taking on the Waters" admission. It's more bang for your buck. The reason I gave 3 instead of 5 stars, was because the locker rooms and bathrooms weren't as clean and they probably could have been. The pools were decent however they should have timers for people on certain ones cause you could spend so long waiting for space in a pool. The drinks were sooo high priced and you have to pay extra for robes which I thought was different since every spa I've gone to has given you ary robes. Little things that added up, however still a fun experience!
## 65 Spent the day here for a girlfriends birthday!\n\nI had a fun experience here. HIGH END SPA is huge. They offer many things to do when you pay for your package. I was able to go to the mud spa, sauna, heated pool, and many other mineral pools. They also offer other amenities such as a massage but it would cost extra. This is a nice getaway to relax. We were able to order food and drinks at our cabana.\n\nOne of our girlfriends ended up drinking way too much mimosa. She fell over the stairs and hit her head. She got immediate attention and the ambulance came. After that, we went to the nearest hospital to get her examined. She got a minor head injury. Thankfully she was ok and the day was already ending.\n
## rating avgScore
## 1 5 -2
## 4 5 -2
## 6 5 -2
## 30 5 -2
## 48 4 -2
## 74 4 -6
## 52 3 4
## 65 3 4
There are only 6 instances where the rating is high even though the score is less than a -1 for the bigram average scores. And there are only 2 reviews that the avgScore is greater than 3 but the rating is less than 4. Out of 614 reviews, there are only eight instances of the reviews that are odd or outliers for not fitting these threshold values based on bigram avgScore per review and using only the selected negative words with the experience bigrams.
Lets see if there are any bigrams that stand out in these specific reviews by line.
oddOnes2 <- oddOnes$line
oddOnesBg <- bothScores2 %>% filter(line %in% oddOnes2)
bg6 <- merge(oddOnesBg, text_df2, by.x='line', by.y='line')
bg6[,c(1,2,6,7)]
## line bigram rating avgScore.y
## 1 18 not help 5 -2
## 2 56 scary experience 5 -2
## 3 62 no joke 5 -2
## 4 227 not like 5 -2
## 5 301 no joke 4 -2
## 6 307 fun experience 3 4
## 7 343 fun experience 3 4
## 8 378 not great 4 -6
## 9 378 not great 4 -6
It looks like even though the avgScore was low for ‘not great,’ ‘no joke,’,‘not like,’ ‘scary experience,’ and ‘not help’ the ratings were still a 4 or 5. And for ‘fun experience’ even though those reviews containing ‘fun experience’ had a high average score, the rating was mediocre and not high but also not low.
bothScores3 <- bothScores2[order(bothScores2$avgScore, decreasing=TRUE),]
low <- unique(bothScores3$bigram)[1:12]
high <- unique(bothScores3$bigram)[
(length(unique(bothScores3$bigram))-11):length(unique(bothScores3$bigram))]
bothScores4 <- bothScores3 %>% filter(bigram %in% low | bigram %in% high)
Lets see about spreading some of these bigrams in our experience or negation bigrams out into feature variables and testing out how well the machine learning does on them. Not a bunch, just 24, where 12 are the top 12 avgScore and 12 are the bottom avgScore.
bothScores4 <- bothScores4[!duplicated(bothScores4),]
bothScores5 <- spread(bothScores4, 'bigram','score')
colnames(bothScores5)
## [1] "line" "avgScore" "amazing experience"
## [4] "awesome experience" "best experience" "fantastic experience"
## [7] "fun experience" "great experience" "never died"
## [10] "no justice" "no pain" "no problems"
## [13] "no smile" "not clean" "not disappoint"
## [16] "not great" "not happy" "not helping"
## [19] "not impressed" "not like" "not worry"
## [22] "not worth" "terrible experience" "violating experience"
## [25] "wonderful experience" "worst experience"
Now lets merge this table with the ratings and then start our machine learning to see if these bigrams are better than our other keywords used in predicting ratings 1-5. Since there are only 109 out 614 reviews that have any of these 24 bigrams, we can only use those 109 reviews to split into our training and testing sets. Then we can later add in all the other 24 keywords to these 24 bigrams to predict the rating with all 614 reviews, but the NAs will have to be 0 imputed.
ratings <- text_df2[,c(1,3)]
ML_ready_bigrams <- merge(ratings, bothScores5, by.x='line', by.y='line', all.x=TRUE)
head(ML_ready_bigrams,20)
## line rating avgScore amazing experience awesome experience best experience
## 1 18 5 NA NA NA NA
## 2 34 5 3.0 NA NA NA
## 3 35 4 NA NA NA NA
## 4 56 5 NA NA NA NA
## 5 58 2 NA NA NA NA
## 6 62 5 NA NA NA NA
## 7 65 1 NA NA NA NA
## 8 70 1 -3.0 NA NA NA
## 9 95 4 NA NA NA NA
## 10 112 4 NA NA NA NA
## 11 120 1 NA NA NA NA
## 12 125 1 NA NA NA NA
## 13 130 1 NA NA NA NA
## 14 139 1 NA NA NA NA
## 15 140 4 NA NA NA NA
## 16 146 1 -3.5 NA NA NA
## 17 152 4 3.0 NA NA NA
## 18 153 4 3.0 NA NA NA
## 19 156 5 NA NA NA NA
## 20 171 1 -6.0 NA NA NA
## fantastic experience fun experience great experience never died no justice
## 1 NA NA NA NA NA
## 2 NA NA 3 NA NA
## 3 NA NA NA NA NA
## 4 NA NA NA NA NA
## 5 NA NA NA NA NA
## 6 NA NA NA NA NA
## 7 NA NA NA NA NA
## 8 NA NA NA NA NA
## 9 NA NA NA NA NA
## 10 NA NA NA NA NA
## 11 NA NA NA NA NA
## 12 NA NA NA NA NA
## 13 NA NA NA NA NA
## 14 NA NA NA NA NA
## 15 NA NA NA NA NA
## 16 NA NA NA NA NA
## 17 NA NA NA 3 NA
## 18 NA NA 3 NA NA
## 19 NA NA NA NA NA
## 20 NA NA NA NA NA
## no pain no problems no smile not clean not disappoint not great not happy
## 1 NA NA NA NA NA NA NA
## 2 NA NA NA NA NA NA NA
## 3 NA NA NA NA NA NA NA
## 4 NA NA NA NA NA NA NA
## 5 NA NA NA NA NA NA NA
## 6 NA NA NA NA NA NA NA
## 7 NA NA NA NA NA NA NA
## 8 NA NA NA NA NA NA NA
## 9 NA NA NA NA NA NA NA
## 10 NA NA NA NA NA NA NA
## 11 NA NA NA NA NA NA NA
## 12 NA NA NA NA NA NA NA
## 13 NA NA NA NA NA NA NA
## 14 NA NA NA NA NA NA NA
## 15 NA NA NA NA NA NA NA
## 16 NA NA NA NA NA NA NA
## 17 NA NA NA NA NA NA NA
## 18 NA NA NA NA NA NA NA
## 19 NA NA NA NA NA NA NA
## 20 NA NA NA NA NA NA NA
## not helping not impressed not like not worry not worth terrible experience
## 1 NA NA NA NA NA NA
## 2 NA NA NA NA NA NA
## 3 NA NA NA NA NA NA
## 4 NA NA NA NA NA NA
## 5 NA NA NA NA NA NA
## 6 NA NA NA NA NA NA
## 7 NA NA NA NA NA NA
## 8 NA NA NA NA NA -3
## 9 NA NA NA NA NA NA
## 10 NA NA NA NA NA NA
## 11 NA NA NA NA NA NA
## 12 NA NA NA NA NA NA
## 13 NA NA NA NA NA NA
## 14 NA NA NA NA NA NA
## 15 NA NA NA NA NA NA
## 16 -2 NA NA NA NA NA
## 17 NA NA NA NA NA NA
## 18 NA NA NA NA NA NA
## 19 NA NA NA NA NA NA
## 20 NA NA NA NA NA NA
## violating experience wonderful experience worst experience
## 1 NA NA NA
## 2 NA NA NA
## 3 NA NA NA
## 4 NA NA NA
## 5 NA NA NA
## 6 NA NA NA
## 7 NA NA NA
## 8 NA NA NA
## 9 NA NA NA
## 10 NA NA NA
## 11 NA NA NA
## 12 NA NA NA
## 13 NA NA NA
## 14 NA NA NA
## 15 NA NA NA
## 16 NA NA NA
## 17 NA NA NA
## 18 NA NA NA
## 19 NA NA NA
## 20 NA NA -3
We now have a table of the 24 bigrams with their assigned scores and the review by line 1-614, the rating as 1-5, and the average score of all bigram scores selected in our negation and experience bigrams that had AFINN scores.
Lets write this out to csv after 0-imputing the NAs.
ml1 <- as.matrix(ML_ready_bigrams)
ml2 <- as.factor(paste(ml1))
ml3 <- gsub('NA','0',ml2)
ml4 <- as.numeric(paste(ml3))#to make numeric 2nd run
ml5 <- matrix(ml4,nrow=109,ncol=27,byrow=FALSE)
ml6 <- as.data.frame(ml5)
colnames(ml6) <- colnames(ML_ready_bigrams)
write.csv(ml6,'ML_ready_bigrams.csv', row.names=FALSE)
Lets split up the data into a 70% training and 30% testing set. Make sure the libraries are loaded. The caret package is needed.
row.names(ml6) <- ml6$line
ml7 <- ml6[,-1]#drop the line column
ml7$rating <- as.factor(paste(ml6$rating))#turn to factor to classify
set.seed(12345)
inTrain <- createDataPartition(y=ml7$rating, p=0.7, list=FALSE)
trainingSet <- ml7[inTrain,]
testingSet <- ml7[-inTrain,]
Lets use random forest, knn, and glm algorithms to predict the ratings.
rf_boot <- train(rating~., method='rf',
na.action=na.pass,
data=(trainingSet), preProc = c("center", "scale","knnImpute"),
trControl=trainControl(method='boot'), number=5)
predRF_boot <- predict(rf_boot, testingSet)
DF_boot <- data.frame(predRF_boot, type=testingSet$rating)
length_boot <- length(DF_boot$type)
sum_boot <- sum(DF_boot$predRF_boot==DF_boot$type)
accRF_boot <- (sum_boot/length_boot)
accRF_boot
## [1] 0.4666667
head(DF_boot,30)
## predRF_boot type
## 1 1 5
## 2 5 5
## 3 1 2
## 4 1 4
## 5 1 1
## 6 5 4
## 7 1 1
## 8 5 5
## 9 1 5
## 10 1 3
## 11 5 5
## 12 1 4
## 13 1 2
## 14 5 4
## 15 5 1
## 16 1 5
## 17 1 1
## 18 5 5
## 19 1 3
## 20 5 5
## 21 5 5
## 22 1 2
## 23 1 1
## 24 1 4
## 25 4 4
## 26 1 1
## 27 1 3
## 28 1 1
## 29 1 1
## 30 1 5
The accuracy is 47% with these 24 bigrams using the bootstrap method for validating on the random forest classification to predict ratings 1-5.
knn_boot <- train(rating ~ .,
method='knn', preProcess=c('center','scale'),
tuneLength=10, trControl=trainControl(method='boot'),
data=trainingSet)
predKNN_boot <- predict(knn_boot, testingSet)
DF_KNN_boot <- data.frame(predKNN_boot, type=testingSet$rating)
length_KNN_boot <- length(DF_KNN_boot$type)
sum_KNN_boot <- sum(DF_KNN_boot$predKNN_boot==DF_KNN_boot$type)
accKNN_boot <- (sum_KNN_boot/length_KNN_boot)
accKNN_boot
## [1] 0.3
head(DF_KNN_boot,30)
## predKNN_boot type
## 1 1 5
## 2 1 5
## 3 1 2
## 4 1 4
## 5 1 1
## 6 1 4
## 7 1 1
## 8 1 5
## 9 1 5
## 10 1 3
## 11 1 5
## 12 1 4
## 13 1 2
## 14 4 4
## 15 1 1
## 16 1 5
## 17 1 1
## 18 4 5
## 19 1 3
## 20 1 5
## 21 1 5
## 22 1 2
## 23 1 1
## 24 1 4
## 25 1 4
## 26 1 1
## 27 1 3
## 28 1 1
## 29 1 1
## 30 1 5
The KNN algorithm scored 27%. Not better than the random forest algorithm. Note, that I planned on usin rpart, but when using the same format as previously used, there was a traceback error saying that undefined columns were selected. It should work with the current libraries and the same exact target and features of predictors, but for some reason threw an error. I might look into that later.
Lets try the ceiling of GLM.
trainingSet$rating <- as.numeric(paste(trainingSet$rating))
testingSet$rating <- as.numeric(paste(testingSet$rating))
glmMod2 <- train(rating ~ .,
method='glm', data=trainingSet)
predglm2 <- predict(glmMod2, testingSet)
DF_glm2 <- data.frame(predglm2,ceiling=ceiling(predglm2), type=testingSet$rating)
length_glm2 <- length(DF_glm2$type)
sum_glm2 <- sum(ceiling(DF_glm2$predglm2)==DF_glm2$type)
accglm2 <- (sum_glm2/length_glm2)
accglm2
## [1] 0.3666667
head(DF_glm2,30)
## predglm2 ceiling type
## 18 2.953488 3 5
## 34 4.060646 5 5
## 58 2.953488 3 2
## 95 2.953488 3 4
## 130 2.953488 3 1
## 153 4.060646 5 4
## 186 2.953488 3 1
## 204 5.000000 5 5
## 211 2.953488 3 5
## 219 2.953488 3 3
## 224 4.060646 5 5
## 230 2.953488 3 4
## 280 4.290837 5 2
## 303 4.677291 5 4
## 308 3.979668 4 1
## 315 2.953488 3 5
## 321 1.000000 1 1
## 322 4.677291 5 5
## 327 2.953488 3 3
## 331 4.060646 5 5
## 360 5.000000 5 5
## 408 2.007937 3 2
## 416 2.953488 3 1
## 456 2.953488 3 4
## 458 4.000000 4 4
## 474 2.953488 3 1
## 475 2.953488 3 3
## 507 2.953488 3 1
## 605 1.709163 2 1
## 610 2.953488 3 5
The ceiling of the glm model on predicting the class of the rating as 1-5 when numeric data type for rating scored 36%. So far these 24 bigrams aren’t doing well even on the 109/614 reviews that contains at least one of the bigrams.
We didn’t improve and in fact, made worse, the prediction accuracy of the rating based on the review of extracted keywords, where bigrams were used. The prediction accuracy ranged from 27-47%.
Lets see if adding our other 24 keywords with these 24 keywords would be better.
MLr4 <- read.csv('Reviews15_AbsMinresults.csv', sep=',', header=TRUE,
na.strings=c('',' ','NA'))
colnames(MLr4)
## [1] "id" "userReviewSeries" "userReviewOnlyContent"
## [4] "userRatingSeries" "userRatingValue" "businessReplied"
## [7] "businessReplyContent" "userReviewContent" "LowAvgHighCost"
## [10] "businessType" "cityState" "friends"
## [13] "reviews" "photos" "eliteStatus"
## [16] "userName" "Date" "userBusinessPhotos"
## [19] "userCheckIns" "weekday" "area"
## [22] "big" "busy" "definitely"
## [25] "feel" "lot" "many"
## [28] "open" "plus" "two"
## [31] "worth" "year" "the"
## [34] "and" "for." "have"
## [37] "that" "they" "this"
## [40] "you" "not" "but"
## [43] "good" "with" "area_ratios"
## [46] "big_ratios" "busy_ratios" "definitely_ratios"
## [49] "feel_ratios" "lot_ratios" "many_ratios"
## [52] "open_ratios" "plus_ratios" "two_ratios"
## [55] "worth_ratios" "year_ratios" "the_ratios"
## [58] "and_ratios" "for_ratios" "have_ratios"
## [61] "that_ratios" "they_ratios" "this_ratios"
## [64] "you_ratios" "not_ratios" "but_ratios"
## [67] "good_ratios" "with_ratios" "maxVote"
## [70] "votedRating" "Rating" "finalPrediction"
## [73] "CorrectlyPredicted" "CorrectPrediction" "actualRatingValue"
Lets select our feature ratios.
MLr5 <- MLr4[,c(1,71,45:68)]
colnames(MLr5)
## [1] "id" "Rating" "area_ratios"
## [4] "big_ratios" "busy_ratios" "definitely_ratios"
## [7] "feel_ratios" "lot_ratios" "many_ratios"
## [10] "open_ratios" "plus_ratios" "two_ratios"
## [13] "worth_ratios" "year_ratios" "the_ratios"
## [16] "and_ratios" "for_ratios" "have_ratios"
## [19] "that_ratios" "they_ratios" "this_ratios"
## [22] "you_ratios" "not_ratios" "but_ratios"
## [25] "good_ratios" "with_ratios"
colnames(ml6)
## [1] "line" "rating" "avgScore"
## [4] "amazing experience" "awesome experience" "best experience"
## [7] "fantastic experience" "fun experience" "great experience"
## [10] "never died" "no justice" "no pain"
## [13] "no problems" "no smile" "not clean"
## [16] "not disappoint" "not great" "not happy"
## [19] "not helping" "not impressed" "not like"
## [22] "not worry" "not worth" "terrible experience"
## [25] "violating experience" "wonderful experience" "worst experience"
This data set will still have 109 observations or those reviews that had these bigrams, but also the 12 stopwords and 12 other keywords previously used.
ML7 <- merge(MLr5,ml6, by.x='id', by.y='line')
row.names(ML7) <- ML7$id
ML8 <- ML7[,c(27,3:26,29:52)]
colnames(ML8)
## [1] "rating" "area_ratios" "big_ratios"
## [4] "busy_ratios" "definitely_ratios" "feel_ratios"
## [7] "lot_ratios" "many_ratios" "open_ratios"
## [10] "plus_ratios" "two_ratios" "worth_ratios"
## [13] "year_ratios" "the_ratios" "and_ratios"
## [16] "for_ratios" "have_ratios" "that_ratios"
## [19] "they_ratios" "this_ratios" "you_ratios"
## [22] "not_ratios" "but_ratios" "good_ratios"
## [25] "with_ratios" "amazing experience" "awesome experience"
## [28] "best experience" "fantastic experience" "fun experience"
## [31] "great experience" "never died" "no justice"
## [34] "no pain" "no problems" "no smile"
## [37] "not clean" "not disappoint" "not great"
## [40] "not happy" "not helping" "not impressed"
## [43] "not like" "not worry" "not worth"
## [46] "terrible experience" "violating experience" "wonderful experience"
## [49] "worst experience"
We have to impute the NAs with zeros.
ML_1 <- as.matrix(ML8)
ML_2 <- as.factor(paste(ML_1))
ML_3 <- gsub('NA','0',ML_2)
ML_4 <- as.numeric(paste(ML_3))#to make numeric 2nd run
ML_5 <- matrix(ML_4,nrow=109,ncol=49,byrow=FALSE)
ML_6 <- as.data.frame(ML_5)
colnames(ML_6) <- colnames(ML8)
row.names(ML_6) <- row.names(ML8)
write.csv(ML_6, 'ML_48_keywords_bigrams.csv', row.names=TRUE)
Now lets run our knn, random forest and glm algorithms on this data and see if there are any improvements.
ML_6$rating <- as.factor(paste(ml6$rating))#turn to factor to classify
set.seed(12345)
inTrain <- createDataPartition(y=ML_6$rating, p=0.7, list=FALSE)
trainingSet <- ML_6[inTrain,]
testingSet <- ML_6[-inTrain,]
Lets use random forest, knn, and glm algorithms to predict the ratings.
rf_boot <- train(rating~., method='rf',
na.action=na.pass,
data=(trainingSet), preProc = c("center", "scale","knnImpute"),
trControl=trainControl(method='boot'), number=5)
predRF_boot <- predict(rf_boot, testingSet)
DF_boot <- data.frame(predRF_boot, type=testingSet$rating)
length_boot <- length(DF_boot$type)
sum_boot <- sum(DF_boot$predRF_boot==DF_boot$type)
accRF_boot <- (sum_boot/length_boot)
accRF_boot
## [1] 0.2333333
head(DF_boot,30)
## predRF_boot type
## 1 1 5
## 2 5 5
## 3 5 2
## 4 1 4
## 5 5 1
## 6 1 4
## 7 5 1
## 8 1 5
## 9 1 5
## 10 5 3
## 11 5 5
## 12 1 4
## 13 5 2
## 14 1 4
## 15 5 1
## 16 5 5
## 17 5 1
## 18 5 5
## 19 5 3
## 20 1 5
## 21 5 5
## 22 1 2
## 23 1 1
## 24 1 4
## 25 5 4
## 26 5 1
## 27 5 3
## 28 5 1
## 29 5 1
## 30 5 5
The random forest scored 23% accuracy. There must be more noise than value added by these feature when used altogether. But we can see if the other two algorithms do better.
knn_boot <- train(rating ~ .,
method='knn', preProcess=c('center','scale'),
tuneLength=10, trControl=trainControl(method='boot'),
data=trainingSet)
predKNN_boot <- predict(knn_boot, testingSet)
DF_KNN_boot <- data.frame(predKNN_boot, type=testingSet$rating)
length_KNN_boot <- length(DF_KNN_boot$type)
sum_KNN_boot <- sum(DF_KNN_boot$predKNN_boot==DF_KNN_boot$type)
accKNN_boot <- (sum_KNN_boot/length_KNN_boot)
accKNN_boot
## [1] 0.4
head(DF_KNN_boot,30)
## predKNN_boot type
## 1 4 5
## 2 5 5
## 3 5 2
## 4 2 4
## 5 2 1
## 6 5 4
## 7 1 1
## 8 2 5
## 9 1 5
## 10 4 3
## 11 1 5
## 12 4 4
## 13 1 2
## 14 4 4
## 15 5 1
## 16 1 5
## 17 1 1
## 18 5 5
## 19 3 3
## 20 5 5
## 21 5 5
## 22 1 2
## 23 4 1
## 24 4 4
## 25 1 4
## 26 1 1
## 27 1 3
## 28 4 1
## 29 1 1
## 30 1 5
The KNN scored 40% accuracy.
Lets try the ceiling of GLM.
trainingSet$rating <- as.numeric(paste(trainingSet$rating))
testingSet$rating <- as.numeric(paste(testingSet$rating))
glmMod2 <- train(rating ~ .,
method='glm', data=trainingSet)
predglm2 <- predict(glmMod2, testingSet)
DF_glm2 <- data.frame(predglm2,ceiling=ceiling(predglm2), type=testingSet$rating)
length_glm2 <- length(DF_glm2$type)
sum_glm2 <- sum(ceiling(DF_glm2$predglm2)==DF_glm2$type)
accglm2 <- (sum_glm2/length_glm2)
accglm2
## [1] 0.2666667
head(DF_glm2,30)
## predglm2 ceiling type
## 18 2.5491252 3 5
## 34 4.8735086 5 5
## 58 2.9374546 3 2
## 95 2.1478452 3 4
## 130 3.2305343 4 1
## 153 5.2685868 6 4
## 186 4.3371657 5 1
## 204 2.6148240 3 5
## 211 2.6424274 3 5
## 219 2.9959584 3 3
## 224 4.8353283 5 5
## 230 2.1789302 3 4
## 280 5.3764506 6 2
## 303 4.3443788 5 4
## 308 7.2435515 8 1
## 315 4.3766337 5 5
## 321 0.6355124 1 1
## 322 5.0533019 6 5
## 327 12.0571964 13 3
## 331 4.4958538 5 5
## 360 5.3429426 6 5
## 408 1.7327416 2 2
## 416 6.0839505 7 1
## 456 8.8581002 9 4
## 458 16.8753035 17 4
## 474 2.3655459 3 1
## 475 2.1336747 3 3
## 507 -2.2033604 -2 1
## 605 2.6723522 3 1
## 610 2.6543036 3 5
The GLM algorithm scored 27% accuracy on rating prediction with the 48 mixtures of 24 bigrams, 12 stopwords, and 12 keywords. The best in prediction has been the data on all 614 observations where the 12 keywords and 12 stopwords were used. These bigrams, tend to add noise, probably due to the scoring of their bigrams, and how avgScore might have thrown off the calculations in predicting the ratings 1-5. And the bigrams were only used on the data that had at least one bigram in that review.
For curiosity, earlier we wanted to see a threshold value for those reviews that had a low avgScore but a high rating and vice versa with a high avgScore but low rating using those 48 bigrams. Lets see if we can devise a simple theshold model that selects the rating based on the value, and see if it is at least better than these last few models of 23-40% accuracy on 109/614 reviews.
Lets just use the ml6 data with the rating and avgScore for 109 reviews. Then predict based on the threshold.
ml6b <- ml6[,1:3]
ml6c <- ml6b %>% group_by(rating,avgScore) %>% count()
ml6d <- ml6c[with(ml6c, order(rating,avgScore,decreasing=TRUE)),]
ml6d
## # A tibble: 25 x 3
## # Groups: rating, avgScore [25]
## rating avgScore n
## <dbl> <dbl> <int>
## 1 5 4 9
## 2 5 3.5 1
## 3 5 3 9
## 4 5 2 2
## 5 5 0 13
## 6 5 -2 1
## 7 4 4 4
## 8 4 3 3
## 9 4 2.5 1
## 10 4 0 14
## # … with 15 more rows
We see in the above table that in the ratings of 5, most have an average score of 0 (13), then equally a 3 or 4 (9 each), and the range of 5 is -2 to 4 for the average score. Then for rating 4, the range is -6 to 4, with most (14) having an avgScore of 0, then a 4 (4). For rating 3, the range is -3 to 4 with more at a 0 (8) and the next having an avgScore of 4 (2). For rating 2, the range is -4 to 0, also with more having a 0 (6) and the next having a -2 (4). And for rating 1, the range is -6 to 1, with most also at 0 (18), then a -3 (5). So we know that the avgScore isn’t helpful as all ratings fall into an avgScore of 0. But some of these ratings do have their next best as a noticeable range. For 1s it is -3 as a threshold, and for 2s the threshold is -2, 3s have a threshold of 2, for 4s the theshold is 4, and for 5s the threshold is 3 or 4 as its tie. Lets create this predictor field based on these thresholds. Since there are more 1s at 0 then 5s and 4s, we will let that range belong to 1 ratings. The 2 ratings will go to any values between -2 and -3, the 1 rating not only get the 0s of avgScore but also any values less than or equal to -3, and the 4 ratings get the values including 3 and up to 4 for avgScore, and 5 ratings go to any ratings equal to a 4 in avgScore. This is literally a generalization, what models are built upon the training set by using discriminants like the following ifelse statement. So, anytime there is a zero, it will be a 1 predicted rating, but it will miss 41 of those 0 avgScore values because that is the total of the 0 values for a 4 or 5. Adding in those bigrams with the average score we saw above get up to 47% accuracy.
ml6b$prediction <- ifelse(ml6b$avgScore <= -2, 2,
ifelse(ml6b$avgScore <= -3, 1,
ifelse(ml6b$avgScore>=2,3,
ifelse(ml6b$avgScore>=3,4,
ifelse(ml6b$avgScore>=4,5,
ifelse(ml6b$avgScore==0,1,
5)))
)
)
)
ml6b$true <- ifelse(ml6b$prediction==ml6b$rating,1,0)
accuracy <- sum(ml6b$true)/length(ml6b$true)
accuracy
## [1] 0.2385321
Using a simple threshold logic on avgScore of the bigrams scored 24 % accuracy approximately.
We developed many models, many features, and found some models with certain features were best, while some added more noise to the models and didn’t do well.
The best data of features was the data set that had all 12 selected keywords and stopwords of the same number comparing ratios of term/total terms in each document then taking the difference from each ratio to each ratio within each rating of sampled reviews. From there a vote for the minimum distance was used with the ceiling of the mean or the highest rating if there was a tie in which rating got the most votes. We also used a distance measure that took the absolute value instead of the minimum to get the votes for each rating and then take the ceiling of the mean or highest rating to predict the rating. With those ratios and not using the manual ceiling of the mean on the minimum or absolute distance, only those 24 keywords of ratios were used in various random forest models, a knn, rpart, glm, and other models to predict the rating. The best score was 64% using the glm, ceiling of the prediction as a regression instead of classification to predict the rating, also on the absolute shortest difference between review to rating reviews keyword ratios.
Natural language processing gets a lot of garbage in and garbage out when there is to much noise, but that is why playing with certain features and functions can pull out the best predictors that can be used in predicting a rating. There is another method that we used called latent dirichlet allocation for topic modeling, where ratings 1-5 would show if the review could be categorized into 1-5 topics based on that algorithm, but it scored 48% as we saw earlier when using it on the absolute minimum distance between review to rating term/total terms ratios. When using the combination of the 24 bigrams and the 24 stop/keywords, the absolute minimum distance data was used.
The best solution right now, to improve accuracy would be to lower our standards to classify the ratings 1-5 into low or high, where a low score is 1-3 and a high score is 4-5. Or to use the 1000s of words independently in their sparse matrices to predict the rating based on 1000s of features.
Lets try the lowered standards version. Python has its own method with the scikit and tensorflow and keras packages to do just this for the large dtms, and they do take a while to predict, but the accuracies in prediction are in the 90% to 98% range just using the reviews and those packages.
ml6b$lowHigh <- ifelse(ml6b$rating >=4,'high','low')
ml6b$predictLowHigh <- ifelse(ml6b$avgScore <= 0,'low','high')
ml6b$truth2 <- ifelse(ml6b$predictLowHigh==ml6b$lowHigh,1,0)
accuracy <- sum(ml6b$truth2)/length(ml6b$truth2)
accuracy
## [1] 0.6972477
Well, thats good for an improvement by breaking the reviews into dichotomies instead of quintets of classes. The prediction accuracy in the review being a low or high rating scored 70% accuracy approximately.
There is more that can be done to improve the predictions and to generalize to the entire data. There are more than one type of word scoring model, from the tidytext link given earlier, there are also bing and litigation type word scoring measures that could be incorporated into the feature selection to drive the right model selection in predicting accuracy in rating, there is also the option to add tens of thousands more reviews with ratings to give a better pool of samples to generalize a better built model to the universe of reviews, and many more. There may or many not be a keras or scikit version for R that could run the thousands of tokens through it to predict the rating based on these 614 reviews. But I do know for sure, there is one in python. I will do that and then see how well my default models do in predicitng with the ensemble linear models, naive bayes, decision trees, random forest, etc.
But wait! Theres more!
After looking at the other lexicons of word values and using those as features from AFINN, NRC, Loughran, and Bing a data frame was created. Here are the steps to get to the data frame of those word values per review. We used the same reference as above for tidytext and other libraries.
library(tidytext)
library(tm)#corpus of docs to dtm
library(dplyr)
library(ggplot2)
library(tidyr)
library(Matrix)
library(janeaustenr)
library(topicmodels)
library(quanteda) #dfm
They require commercial licensing for the NRC and Loughran sourced lexicons and citation if used in published mediums.
afinn <- get_sentiments('afinn')
nrc <- get_sentiments('nrc')
bing <- get_sentiments('bing')
loughran <- get_sentiments('loughran')
This is to run the script in Rmarkdown when knitting and not having it stop the process due to answering 1 or 2 to understanding copyright infringement.
write.csv(afinn,'afinn.csv',row.names=FALSE)
write.csv(bing,'bing.csv', row.names=FALSE)
write.csv(nrc,'nrc.csv',row.names=FALSE)
write.csv(loughran,'loughran.csv',row.names=FALSE)
afinn <- read.csv('afinn.csv', sep=',', header=TRUE, na.strings=c('',' ','NA'))
bing <- read.csv('bing.csv', sep=',', header=TRUE, na.strings=c('',' ','NA'))
nrc <- read.csv('nrc.csv', sep=',', header=TRUE, na.strings=c('',' ','NA'))
loughran <- read.csv('loughran.csv', sep=',', header=TRUE, na.strings=c('',' ','NA'))
afinn
## word value
## 1 abandon -2
## 2 abandoned -2
## 3 abandons -2
## 4 abducted -2
## 5 abduction -2
## 6 abductions -2
## 7 abhor -3
## 8 abhorred -3
## 9 abhorrent -3
## 10 abhors -3
## 11 abilities 2
## 12 ability 2
## 13 aboard 1
## 14 absentee -1
## 15 absentees -1
## 16 absolve 2
## 17 absolved 2
## 18 absolves 2
## 19 absolving 2
## 20 absorbed 1
## 21 abuse -3
## 22 abused -3
## 23 abuses -3
## 24 abusive -3
## 25 accept 1
## 26 accepted 1
## 27 accepting 1
## 28 accepts 1
## 29 accident -2
## 30 accidental -2
## 31 accidentally -2
## 32 accidents -2
## 33 accomplish 2
## 34 accomplished 2
## 35 accomplishes 2
## 36 accusation -2
## 37 accusations -2
## 38 accuse -2
## 39 accused -2
## 40 accuses -2
## 41 accusing -2
## 42 ache -2
## 43 achievable 1
## 44 aching -2
## 45 acquit 2
## 46 acquits 2
## 47 acquitted 2
## 48 acquitting 2
## 49 acrimonious -3
## 50 active 1
## 51 adequate 1
## 52 admire 3
## 53 admired 3
## 54 admires 3
## 55 admiring 3
## 56 admit -1
## 57 admits -1
## 58 admitted -1
## 59 admonish -2
## 60 admonished -2
## 61 adopt 1
## 62 adopts 1
## 63 adorable 3
## 64 adore 3
## 65 adored 3
## 66 adores 3
## 67 advanced 1
## 68 advantage 2
## 69 advantages 2
## 70 adventure 2
## 71 adventures 2
## 72 adventurous 2
## 73 affected -1
## 74 affection 3
## 75 affectionate 3
## 76 afflicted -1
## 77 affronted -1
## 78 afraid -2
## 79 aggravate -2
## 80 aggravated -2
## 81 aggravates -2
## 82 aggravating -2
## 83 aggression -2
## 84 aggressions -2
## 85 aggressive -2
## 86 aghast -2
## 87 agog 2
## 88 agonise -3
## 89 agonised -3
## 90 agonises -3
## 91 agonising -3
## 92 agonize -3
## 93 agonized -3
## 94 agonizes -3
## 95 agonizing -3
## 96 agree 1
## 97 agreeable 2
## 98 agreed 1
## 99 agreement 1
## 100 agrees 1
## 101 alarm -2
## 102 alarmed -2
## 103 alarmist -2
## 104 alarmists -2
## 105 alas -1
## 106 alert -1
## 107 alienation -2
## 108 alive 1
## 109 allergic -2
## 110 allow 1
## 111 alone -2
## 112 amaze 2
## 113 amazed 2
## 114 amazes 2
## 115 amazing 4
## 116 ambitious 2
## 117 ambivalent -1
## 118 amuse 3
## 119 amused 3
## 120 amusement 3
## 121 amusements 3
## 122 anger -3
## 123 angers -3
## 124 angry -3
## 125 anguish -3
## 126 anguished -3
## 127 animosity -2
## 128 annoy -2
## 129 annoyance -2
## 130 annoyed -2
## 131 annoying -2
## 132 annoys -2
## 133 antagonistic -2
## 134 anti -1
## 135 anticipation 1
## 136 anxiety -2
## 137 anxious -2
## 138 apathetic -3
## 139 apathy -3
## 140 apeshit -3
## 141 apocalyptic -2
## 142 apologise -1
## 143 apologised -1
## 144 apologises -1
## 145 apologising -1
## 146 apologize -1
## 147 apologized -1
## 148 apologizes -1
## 149 apologizing -1
## 150 apology -1
## 151 appalled -2
## 152 appalling -2
## 153 appease 2
## 154 appeased 2
## 155 appeases 2
## 156 appeasing 2
## 157 applaud 2
## 158 applauded 2
## 159 applauding 2
## 160 applauds 2
## 161 applause 2
## 162 appreciate 2
## 163 appreciated 2
## 164 appreciates 2
## 165 appreciating 2
## 166 appreciation 2
## 167 apprehensive -2
## 168 approval 2
## 169 approved 2
## 170 approves 2
## 171 ardent 1
## 172 arrest -2
## 173 arrested -3
## 174 arrests -2
## 175 arrogant -2
## 176 ashame -2
## 177 ashamed -2
## 178 ass -4
## 179 assassination -3
## 180 assassinations -3
## 181 asset 2
## 182 assets 2
## 183 assfucking -4
## 184 asshole -4
## 185 astonished 2
## 186 astound 3
## 187 astounded 3
## 188 astounding 3
## 189 astoundingly 3
## 190 astounds 3
## 191 attack -1
## 192 attacked -1
## 193 attacking -1
## 194 attacks -1
## 195 attract 1
## 196 attracted 1
## 197 attracting 2
## 198 attraction 2
## 199 attractions 2
## 200 attracts 1
## 201 audacious 3
## 202 authority 1
## 203 avert -1
## 204 averted -1
## 205 averts -1
## 206 avid 2
## 207 avoid -1
## 208 avoided -1
## 209 avoids -1
## 210 await -1
## 211 awaited -1
## 212 awaits -1
## 213 award 3
## 214 awarded 3
## 215 awards 3
## 216 awesome 4
## 217 awful -3
## 218 awkward -2
## 219 axe -1
## 220 axed -1
## 221 backed 1
## 222 backing 2
## 223 backs 1
## 224 bad -3
## 225 badass -3
## 226 badly -3
## 227 bailout -2
## 228 bamboozle -2
## 229 bamboozled -2
## 230 bamboozles -2
## 231 ban -2
## 232 banish -1
## 233 bankrupt -3
## 234 bankster -3
## 235 banned -2
## 236 bargain 2
## 237 barrier -2
## 238 bastard -5
## 239 bastards -5
## 240 battle -1
## 241 battles -1
## 242 beaten -2
## 243 beatific 3
## 244 beating -1
## 245 beauties 3
## 246 beautiful 3
## 247 beautifully 3
## 248 beautify 3
## 249 belittle -2
## 250 belittled -2
## 251 beloved 3
## 252 benefit 2
## 253 benefits 2
## 254 benefitted 2
## 255 benefitting 2
## 256 bereave -2
## 257 bereaved -2
## 258 bereaves -2
## 259 bereaving -2
## 260 best 3
## 261 betray -3
## 262 betrayal -3
## 263 betrayed -3
## 264 betraying -3
## 265 betrays -3
## 266 better 2
## 267 bias -1
## 268 biased -2
## 269 big 1
## 270 bitch -5
## 271 bitches -5
## 272 bitter -2
## 273 bitterly -2
## 274 bizarre -2
## 275 blah -2
## 276 blame -2
## 277 blamed -2
## 278 blames -2
## 279 blaming -2
## 280 bless 2
## 281 blesses 2
## 282 blessing 3
## 283 blind -1
## 284 bliss 3
## 285 blissful 3
## 286 blithe 2
## 287 block -1
## 288 blockbuster 3
## 289 blocked -1
## 290 blocking -1
## 291 blocks -1
## 292 bloody -3
## 293 blurry -2
## 294 boastful -2
## 295 bold 2
## 296 boldly 2
## 297 bomb -1
## 298 boost 1
## 299 boosted 1
## 300 boosting 1
## 301 boosts 1
## 302 bore -2
## 303 bored -2
## 304 boring -3
## 305 bother -2
## 306 bothered -2
## 307 bothers -2
## 308 bothersome -2
## 309 boycott -2
## 310 boycotted -2
## 311 boycotting -2
## 312 boycotts -2
## 313 brainwashing -3
## 314 brave 2
## 315 breakthrough 3
## 316 breathtaking 5
## 317 bribe -3
## 318 bright 1
## 319 brightest 2
## 320 brightness 1
## 321 brilliant 4
## 322 brisk 2
## 323 broke -1
## 324 broken -1
## 325 brooding -2
## 326 bullied -2
## 327 bullshit -4
## 328 bully -2
## 329 bullying -2
## 330 bummer -2
## 331 buoyant 2
## 332 burden -2
## 333 burdened -2
## 334 burdening -2
## 335 burdens -2
## 336 calm 2
## 337 calmed 2
## 338 calming 2
## 339 calms 2
## 340 can't stand -3
## 341 cancel -1
## 342 cancelled -1
## 343 cancelling -1
## 344 cancels -1
## 345 cancer -1
## 346 capable 1
## 347 captivated 3
## 348 care 2
## 349 carefree 1
## 350 careful 2
## 351 carefully 2
## 352 careless -2
## 353 cares 2
## 354 cashing in -2
## 355 casualty -2
## 356 catastrophe -3
## 357 catastrophic -4
## 358 cautious -1
## 359 celebrate 3
## 360 celebrated 3
## 361 celebrates 3
## 362 celebrating 3
## 363 censor -2
## 364 censored -2
## 365 censors -2
## 366 certain 1
## 367 chagrin -2
## 368 chagrined -2
## 369 challenge -1
## 370 chance 2
## 371 chances 2
## 372 chaos -2
## 373 chaotic -2
## 374 charged -3
## 375 charges -2
## 376 charm 3
## 377 charming 3
## 378 charmless -3
## 379 chastise -3
## 380 chastised -3
## 381 chastises -3
## 382 chastising -3
## 383 cheat -3
## 384 cheated -3
## 385 cheater -3
## 386 cheaters -3
## 387 cheats -3
## 388 cheer 2
## 389 cheered 2
## 390 cheerful 2
## 391 cheering 2
## 392 cheerless -2
## 393 cheers 2
## 394 cheery 3
## 395 cherish 2
## 396 cherished 2
## 397 cherishes 2
## 398 cherishing 2
## 399 chic 2
## 400 childish -2
## 401 chilling -1
## 402 choke -2
## 403 choked -2
## 404 chokes -2
## 405 choking -2
## 406 clarifies 2
## 407 clarity 2
## 408 clash -2
## 409 classy 3
## 410 clean 2
## 411 cleaner 2
## 412 clear 1
## 413 cleared 1
## 414 clearly 1
## 415 clears 1
## 416 clever 2
## 417 clouded -1
## 418 clueless -2
## 419 cock -5
## 420 cocksucker -5
## 421 cocksuckers -5
## 422 cocky -2
## 423 coerced -2
## 424 collapse -2
## 425 collapsed -2
## 426 collapses -2
## 427 collapsing -2
## 428 collide -1
## 429 collides -1
## 430 colliding -1
## 431 collision -2
## 432 collisions -2
## 433 colluding -3
## 434 combat -1
## 435 combats -1
## 436 comedy 1
## 437 comfort 2
## 438 comfortable 2
## 439 comforting 2
## 440 comforts 2
## 441 commend 2
## 442 commended 2
## 443 commit 1
## 444 commitment 2
## 445 commits 1
## 446 committed 1
## 447 committing 1
## 448 compassionate 2
## 449 compelled 1
## 450 competent 2
## 451 competitive 2
## 452 complacent -2
## 453 complain -2
## 454 complained -2
## 455 complains -2
## 456 comprehensive 2
## 457 conciliate 2
## 458 conciliated 2
## 459 conciliates 2
## 460 conciliating 2
## 461 condemn -2
## 462 condemnation -2
## 463 condemned -2
## 464 condemns -2
## 465 confidence 2
## 466 confident 2
## 467 conflict -2
## 468 conflicting -2
## 469 conflictive -2
## 470 conflicts -2
## 471 confuse -2
## 472 confused -2
## 473 confusing -2
## 474 congrats 2
## 475 congratulate 2
## 476 congratulation 2
## 477 congratulations 2
## 478 consent 2
## 479 consents 2
## 480 consolable 2
## 481 conspiracy -3
## 482 constrained -2
## 483 contagion -2
## 484 contagions -2
## 485 contagious -1
## 486 contempt -2
## 487 contemptuous -2
## 488 contemptuously -2
## 489 contend -1
## 490 contender -1
## 491 contending -1
## 492 contentious -2
## 493 contestable -2
## 494 controversial -2
## 495 controversially -2
## 496 convince 1
## 497 convinced 1
## 498 convinces 1
## 499 convivial 2
## 500 cool 1
## 501 cool stuff 3
## 502 cornered -2
## 503 corpse -1
## 504 costly -2
## 505 courage 2
## 506 courageous 2
## 507 courteous 2
## 508 courtesy 2
## 509 cover-up -3
## 510 coward -2
## 511 cowardly -2
## 512 coziness 2
## 513 cramp -1
## 514 crap -3
## 515 crash -2
## 516 crazier -2
## 517 craziest -2
## 518 crazy -2
## 519 creative 2
## 520 crestfallen -2
## 521 cried -2
## 522 cries -2
## 523 crime -3
## 524 criminal -3
## 525 criminals -3
## 526 crisis -3
## 527 critic -2
## 528 criticism -2
## 529 criticize -2
## 530 criticized -2
## 531 criticizes -2
## 532 criticizing -2
## 533 critics -2
## 534 cruel -3
## 535 cruelty -3
## 536 crush -1
## 537 crushed -2
## 538 crushes -1
## 539 crushing -1
## 540 cry -1
## 541 crying -2
## 542 cunt -5
## 543 curious 1
## 544 curse -1
## 545 cut -1
## 546 cute 2
## 547 cuts -1
## 548 cutting -1
## 549 cynic -2
## 550 cynical -2
## 551 cynicism -2
## 552 damage -3
## 553 damages -3
## 554 damn -4
## 555 damned -4
## 556 damnit -4
## 557 danger -2
## 558 daredevil 2
## 559 daring 2
## 560 darkest -2
## 561 darkness -1
## 562 dauntless 2
## 563 dead -3
## 564 deadlock -2
## 565 deafening -1
## 566 dear 2
## 567 dearly 3
## 568 death -2
## 569 debonair 2
## 570 debt -2
## 571 deceit -3
## 572 deceitful -3
## 573 deceive -3
## 574 deceived -3
## 575 deceives -3
## 576 deceiving -3
## 577 deception -3
## 578 decisive 1
## 579 dedicated 2
## 580 defeated -2
## 581 defect -3
## 582 defects -3
## 583 defender 2
## 584 defenders 2
## 585 defenseless -2
## 586 defer -1
## 587 deferring -1
## 588 defiant -1
## 589 deficit -2
## 590 degrade -2
## 591 degraded -2
## 592 degrades -2
## 593 dehumanize -2
## 594 dehumanized -2
## 595 dehumanizes -2
## 596 dehumanizing -2
## 597 deject -2
## 598 dejected -2
## 599 dejecting -2
## 600 dejects -2
## 601 delay -1
## 602 delayed -1
## 603 delight 3
## 604 delighted 3
## 605 delighting 3
## 606 delights 3
## 607 demand -1
## 608 demanded -1
## 609 demanding -1
## 610 demands -1
## 611 demonstration -1
## 612 demoralized -2
## 613 denied -2
## 614 denier -2
## 615 deniers -2
## 616 denies -2
## 617 denounce -2
## 618 denounces -2
## 619 deny -2
## 620 denying -2
## 621 depressed -2
## 622 depressing -2
## 623 derail -2
## 624 derailed -2
## 625 derails -2
## 626 deride -2
## 627 derided -2
## 628 derides -2
## 629 deriding -2
## 630 derision -2
## 631 desirable 2
## 632 desire 1
## 633 desired 2
## 634 desirous 2
## 635 despair -3
## 636 despairing -3
## 637 despairs -3
## 638 desperate -3
## 639 desperately -3
## 640 despondent -3
## 641 destroy -3
## 642 destroyed -3
## 643 destroying -3
## 644 destroys -3
## 645 destruction -3
## 646 destructive -3
## 647 detached -1
## 648 detain -2
## 649 detained -2
## 650 detention -2
## 651 determined 2
## 652 devastate -2
## 653 devastated -2
## 654 devastating -2
## 655 devoted 3
## 656 diamond 1
## 657 dick -4
## 658 dickhead -4
## 659 die -3
## 660 died -3
## 661 difficult -1
## 662 diffident -2
## 663 dilemma -1
## 664 dipshit -3
## 665 dire -3
## 666 direful -3
## 667 dirt -2
## 668 dirtier -2
## 669 dirtiest -2
## 670 dirty -2
## 671 disabling -1
## 672 disadvantage -2
## 673 disadvantaged -2
## 674 disappear -1
## 675 disappeared -1
## 676 disappears -1
## 677 disappoint -2
## 678 disappointed -2
## 679 disappointing -2
## 680 disappointment -2
## 681 disappointments -2
## 682 disappoints -2
## 683 disaster -2
## 684 disasters -2
## 685 disastrous -3
## 686 disbelieve -2
## 687 discard -1
## 688 discarded -1
## 689 discarding -1
## 690 discards -1
## 691 disconsolate -2
## 692 disconsolation -2
## 693 discontented -2
## 694 discord -2
## 695 discounted -1
## 696 discouraged -2
## 697 discredited -2
## 698 disdain -2
## 699 disgrace -2
## 700 disgraced -2
## 701 disguise -1
## 702 disguised -1
## 703 disguises -1
## 704 disguising -1
## 705 disgust -3
## 706 disgusted -3
## 707 disgusting -3
## 708 disheartened -2
## 709 dishonest -2
## 710 disillusioned -2
## 711 disinclined -2
## 712 disjointed -2
## 713 dislike -2
## 714 dismal -2
## 715 dismayed -2
## 716 disorder -2
## 717 disorganized -2
## 718 disoriented -2
## 719 disparage -2
## 720 disparaged -2
## 721 disparages -2
## 722 disparaging -2
## 723 displeased -2
## 724 dispute -2
## 725 disputed -2
## 726 disputes -2
## 727 disputing -2
## 728 disqualified -2
## 729 disquiet -2
## 730 disregard -2
## 731 disregarded -2
## 732 disregarding -2
## 733 disregards -2
## 734 disrespect -2
## 735 disrespected -2
## 736 disruption -2
## 737 disruptions -2
## 738 disruptive -2
## 739 dissatisfied -2
## 740 distort -2
## 741 distorted -2
## 742 distorting -2
## 743 distorts -2
## 744 distract -2
## 745 distracted -2
## 746 distraction -2
## 747 distracts -2
## 748 distress -2
## 749 distressed -2
## 750 distresses -2
## 751 distressing -2
## 752 distrust -3
## 753 distrustful -3
## 754 disturb -2
## 755 disturbed -2
## 756 disturbing -2
## 757 disturbs -2
## 758 dithering -2
## 759 dizzy -1
## 760 dodging -2
## 761 dodgy -2
## 762 does not work -3
## 763 dolorous -2
## 764 dont like -2
## 765 doom -2
## 766 doomed -2
## 767 doubt -1
## 768 doubted -1
## 769 doubtful -1
## 770 doubting -1
## 771 doubts -1
## 772 douche -3
## 773 douchebag -3
## 774 downcast -2
## 775 downhearted -2
## 776 downside -2
## 777 drag -1
## 778 dragged -1
## 779 drags -1
## 780 drained -2
## 781 dread -2
## 782 dreaded -2
## 783 dreadful -3
## 784 dreading -2
## 785 dream 1
## 786 dreams 1
## 787 dreary -2
## 788 droopy -2
## 789 drop -1
## 790 drown -2
## 791 drowned -2
## 792 drowns -2
## 793 drunk -2
## 794 dubious -2
## 795 dud -2
## 796 dull -2
## 797 dumb -3
## 798 dumbass -3
## 799 dump -1
## 800 dumped -2
## 801 dumps -1
## 802 dupe -2
## 803 duped -2
## 804 dysfunction -2
## 805 eager 2
## 806 earnest 2
## 807 ease 2
## 808 easy 1
## 809 ecstatic 4
## 810 eerie -2
## 811 eery -2
## 812 effective 2
## 813 effectively 2
## 814 elated 3
## 815 elation 3
## 816 elegant 2
## 817 elegantly 2
## 818 embarrass -2
## 819 embarrassed -2
## 820 embarrasses -2
## 821 embarrassing -2
## 822 embarrassment -2
## 823 embittered -2
## 824 embrace 1
## 825 emergency -2
## 826 empathetic 2
## 827 emptiness -1
## 828 empty -1
## 829 enchanted 2
## 830 encourage 2
## 831 encouraged 2
## 832 encouragement 2
## 833 encourages 2
## 834 endorse 2
## 835 endorsed 2
## 836 endorsement 2
## 837 endorses 2
## 838 enemies -2
## 839 enemy -2
## 840 energetic 2
## 841 engage 1
## 842 engages 1
## 843 engrossed 1
## 844 enjoy 2
## 845 enjoying 2
## 846 enjoys 2
## 847 enlighten 2
## 848 enlightened 2
## 849 enlightening 2
## 850 enlightens 2
## 851 ennui -2
## 852 enrage -2
## 853 enraged -2
## 854 enrages -2
## 855 enraging -2
## 856 enrapture 3
## 857 enslave -2
## 858 enslaved -2
## 859 enslaves -2
## 860 ensure 1
## 861 ensuring 1
## 862 enterprising 1
## 863 entertaining 2
## 864 enthral 3
## 865 enthusiastic 3
## 866 entitled 1
## 867 entrusted 2
## 868 envies -1
## 869 envious -2
## 870 envy -1
## 871 envying -1
## 872 erroneous -2
## 873 error -2
## 874 errors -2
## 875 escape -1
## 876 escapes -1
## 877 escaping -1
## 878 esteemed 2
## 879 ethical 2
## 880 euphoria 3
## 881 euphoric 4
## 882 eviction -1
## 883 evil -3
## 884 exaggerate -2
## 885 exaggerated -2
## 886 exaggerates -2
## 887 exaggerating -2
## 888 exasperated 2
## 889 excellence 3
## 890 excellent 3
## 891 excite 3
## 892 excited 3
## 893 excitement 3
## 894 exciting 3
## 895 exclude -1
## 896 excluded -2
## 897 exclusion -1
## 898 exclusive 2
## 899 excuse -1
## 900 exempt -1
## 901 exhausted -2
## 902 exhilarated 3
## 903 exhilarates 3
## 904 exhilarating 3
## 905 exonerate 2
## 906 exonerated 2
## 907 exonerates 2
## 908 exonerating 2
## 909 expand 1
## 910 expands 1
## 911 expel -2
## 912 expelled -2
## 913 expelling -2
## 914 expels -2
## 915 exploit -2
## 916 exploited -2
## 917 exploiting -2
## 918 exploits -2
## 919 exploration 1
## 920 explorations 1
## 921 expose -1
## 922 exposed -1
## 923 exposes -1
## 924 exposing -1
## 925 extend 1
## 926 extends 1
## 927 exuberant 4
## 928 exultant 3
## 929 exultantly 3
## 930 fabulous 4
## 931 fad -2
## 932 fag -3
## 933 faggot -3
## 934 faggots -3
## 935 fail -2
## 936 failed -2
## 937 failing -2
## 938 fails -2
## 939 failure -2
## 940 failures -2
## 941 fainthearted -2
## 942 fair 2
## 943 faith 1
## 944 faithful 3
## 945 fake -3
## 946 fakes -3
## 947 faking -3
## 948 fallen -2
## 949 falling -1
## 950 falsified -3
## 951 falsify -3
## 952 fame 1
## 953 fan 3
## 954 fantastic 4
## 955 farce -1
## 956 fascinate 3
## 957 fascinated 3
## 958 fascinates 3
## 959 fascinating 3
## 960 fascist -2
## 961 fascists -2
## 962 fatalities -3
## 963 fatality -3
## 964 fatigue -2
## 965 fatigued -2
## 966 fatigues -2
## 967 fatiguing -2
## 968 favor 2
## 969 favored 2
## 970 favorite 2
## 971 favorited 2
## 972 favorites 2
## 973 favors 2
## 974 fear -2
## 975 fearful -2
## 976 fearing -2
## 977 fearless 2
## 978 fearsome -2
## 979 fed up -3
## 980 feeble -2
## 981 feeling 1
## 982 felonies -3
## 983 felony -3
## 984 fervent 2
## 985 fervid 2
## 986 festive 2
## 987 fiasco -3
## 988 fidgety -2
## 989 fight -1
## 990 fine 2
## 991 fire -2
## 992 fired -2
## 993 firing -2
## 994 fit 1
## 995 fitness 1
## 996 flagship 2
## 997 flees -1
## 998 flop -2
## 999 flops -2
## 1000 flu -2
## 1001 flustered -2
## 1002 focused 2
## 1003 fond 2
## 1004 fondness 2
## 1005 fool -2
## 1006 foolish -2
## 1007 fools -2
## 1008 forced -1
## 1009 foreclosure -2
## 1010 foreclosures -2
## 1011 forget -1
## 1012 forgetful -2
## 1013 forgive 1
## 1014 forgiving 1
## 1015 forgotten -1
## 1016 fortunate 2
## 1017 frantic -1
## 1018 fraud -4
## 1019 frauds -4
## 1020 fraudster -4
## 1021 fraudsters -4
## 1022 fraudulence -4
## 1023 fraudulent -4
## 1024 free 1
## 1025 freedom 2
## 1026 frenzy -3
## 1027 fresh 1
## 1028 friendly 2
## 1029 fright -2
## 1030 frightened -2
## 1031 frightening -3
## 1032 frikin -2
## 1033 frisky 2
## 1034 frowning -1
## 1035 frustrate -2
## 1036 frustrated -2
## 1037 frustrates -2
## 1038 frustrating -2
## 1039 frustration -2
## 1040 ftw 3
## 1041 fuck -4
## 1042 fucked -4
## 1043 fucker -4
## 1044 fuckers -4
## 1045 fuckface -4
## 1046 fuckhead -4
## 1047 fucking -4
## 1048 fucktard -4
## 1049 fud -3
## 1050 fuked -4
## 1051 fuking -4
## 1052 fulfill 2
## 1053 fulfilled 2
## 1054 fulfills 2
## 1055 fuming -2
## 1056 fun 4
## 1057 funeral -1
## 1058 funerals -1
## 1059 funky 2
## 1060 funnier 4
## 1061 funny 4
## 1062 furious -3
## 1063 futile 2
## 1064 gag -2
## 1065 gagged -2
## 1066 gain 2
## 1067 gained 2
## 1068 gaining 2
## 1069 gains 2
## 1070 gallant 3
## 1071 gallantly 3
## 1072 gallantry 3
## 1073 generous 2
## 1074 genial 3
## 1075 ghost -1
## 1076 giddy -2
## 1077 gift 2
## 1078 glad 3
## 1079 glamorous 3
## 1080 glamourous 3
## 1081 glee 3
## 1082 gleeful 3
## 1083 gloom -1
## 1084 gloomy -2
## 1085 glorious 2
## 1086 glory 2
## 1087 glum -2
## 1088 god 1
## 1089 goddamn -3
## 1090 godsend 4
## 1091 good 3
## 1092 goodness 3
## 1093 grace 1
## 1094 gracious 3
## 1095 grand 3
## 1096 grant 1
## 1097 granted 1
## 1098 granting 1
## 1099 grants 1
## 1100 grateful 3
## 1101 gratification 2
## 1102 grave -2
## 1103 gray -1
## 1104 great 3
## 1105 greater 3
## 1106 greatest 3
## 1107 greed -3
## 1108 greedy -2
## 1109 green wash -3
## 1110 green washing -3
## 1111 greenwash -3
## 1112 greenwasher -3
## 1113 greenwashers -3
## 1114 greenwashing -3
## 1115 greet 1
## 1116 greeted 1
## 1117 greeting 1
## 1118 greetings 2
## 1119 greets 1
## 1120 grey -1
## 1121 grief -2
## 1122 grieved -2
## 1123 gross -2
## 1124 growing 1
## 1125 growth 2
## 1126 guarantee 1
## 1127 guilt -3
## 1128 guilty -3
## 1129 gullibility -2
## 1130 gullible -2
## 1131 gun -1
## 1132 ha 2
## 1133 hacked -1
## 1134 haha 3
## 1135 hahaha 3
## 1136 hahahah 3
## 1137 hail 2
## 1138 hailed 2
## 1139 hapless -2
## 1140 haplessness -2
## 1141 happiness 3
## 1142 happy 3
## 1143 hard -1
## 1144 hardier 2
## 1145 hardship -2
## 1146 hardy 2
## 1147 harm -2
## 1148 harmed -2
## 1149 harmful -2
## 1150 harming -2
## 1151 harms -2
## 1152 harried -2
## 1153 harsh -2
## 1154 harsher -2
## 1155 harshest -2
## 1156 hate -3
## 1157 hated -3
## 1158 haters -3
## 1159 hates -3
## 1160 hating -3
## 1161 haunt -1
## 1162 haunted -2
## 1163 haunting 1
## 1164 haunts -1
## 1165 havoc -2
## 1166 healthy 2
## 1167 heartbreaking -3
## 1168 heartbroken -3
## 1169 heartfelt 3
## 1170 heaven 2
## 1171 heavenly 4
## 1172 heavyhearted -2
## 1173 hell -4
## 1174 help 2
## 1175 helpful 2
## 1176 helping 2
## 1177 helpless -2
## 1178 helps 2
## 1179 hero 2
## 1180 heroes 2
## 1181 heroic 3
## 1182 hesitant -2
## 1183 hesitate -2
## 1184 hid -1
## 1185 hide -1
## 1186 hides -1
## 1187 hiding -1
## 1188 highlight 2
## 1189 hilarious 2
## 1190 hindrance -2
## 1191 hoax -2
## 1192 homesick -2
## 1193 honest 2
## 1194 honor 2
## 1195 honored 2
## 1196 honoring 2
## 1197 honour 2
## 1198 honoured 2
## 1199 honouring 2
## 1200 hooligan -2
## 1201 hooliganism -2
## 1202 hooligans -2
## 1203 hope 2
## 1204 hopeful 2
## 1205 hopefully 2
## 1206 hopeless -2
## 1207 hopelessness -2
## 1208 hopes 2
## 1209 hoping 2
## 1210 horrendous -3
## 1211 horrible -3
## 1212 horrific -3
## 1213 horrified -3
## 1214 hostile -2
## 1215 huckster -2
## 1216 hug 2
## 1217 huge 1
## 1218 hugs 2
## 1219 humerous 3
## 1220 humiliated -3
## 1221 humiliation -3
## 1222 humor 2
## 1223 humorous 2
## 1224 humour 2
## 1225 humourous 2
## 1226 hunger -2
## 1227 hurrah 5
## 1228 hurt -2
## 1229 hurting -2
## 1230 hurts -2
## 1231 hypocritical -2
## 1232 hysteria -3
## 1233 hysterical -3
## 1234 hysterics -3
## 1235 idiot -3
## 1236 idiotic -3
## 1237 ignorance -2
## 1238 ignorant -2
## 1239 ignore -1
## 1240 ignored -2
## 1241 ignores -1
## 1242 ill -2
## 1243 illegal -3
## 1244 illiteracy -2
## 1245 illness -2
## 1246 illnesses -2
## 1247 imbecile -3
## 1248 immobilized -1
## 1249 immortal 2
## 1250 immune 1
## 1251 impatient -2
## 1252 imperfect -2
## 1253 importance 2
## 1254 important 2
## 1255 impose -1
## 1256 imposed -1
## 1257 imposes -1
## 1258 imposing -1
## 1259 impotent -2
## 1260 impress 3
## 1261 impressed 3
## 1262 impresses 3
## 1263 impressive 3
## 1264 imprisoned -2
## 1265 improve 2
## 1266 improved 2
## 1267 improvement 2
## 1268 improves 2
## 1269 improving 2
## 1270 inability -2
## 1271 inaction -2
## 1272 inadequate -2
## 1273 incapable -2
## 1274 incapacitated -2
## 1275 incensed -2
## 1276 incompetence -2
## 1277 incompetent -2
## 1278 inconsiderate -2
## 1279 inconvenience -2
## 1280 inconvenient -2
## 1281 increase 1
## 1282 increased 1
## 1283 indecisive -2
## 1284 indestructible 2
## 1285 indifference -2
## 1286 indifferent -2
## 1287 indignant -2
## 1288 indignation -2
## 1289 indoctrinate -2
## 1290 indoctrinated -2
## 1291 indoctrinates -2
## 1292 indoctrinating -2
## 1293 ineffective -2
## 1294 ineffectively -2
## 1295 infatuated 2
## 1296 infatuation 2
## 1297 infected -2
## 1298 inferior -2
## 1299 inflamed -2
## 1300 influential 2
## 1301 infringement -2
## 1302 infuriate -2
## 1303 infuriated -2
## 1304 infuriates -2
## 1305 infuriating -2
## 1306 inhibit -1
## 1307 injured -2
## 1308 injury -2
## 1309 injustice -2
## 1310 innovate 1
## 1311 innovates 1
## 1312 innovation 1
## 1313 innovative 2
## 1314 inquisition -2
## 1315 inquisitive 2
## 1316 insane -2
## 1317 insanity -2
## 1318 insecure -2
## 1319 insensitive -2
## 1320 insensitivity -2
## 1321 insignificant -2
## 1322 insipid -2
## 1323 inspiration 2
## 1324 inspirational 2
## 1325 inspire 2
## 1326 inspired 2
## 1327 inspires 2
## 1328 inspiring 3
## 1329 insult -2
## 1330 insulted -2
## 1331 insulting -2
## 1332 insults -2
## 1333 intact 2
## 1334 integrity 2
## 1335 intelligent 2
## 1336 intense 1
## 1337 interest 1
## 1338 interested 2
## 1339 interesting 2
## 1340 interests 1
## 1341 interrogated -2
## 1342 interrupt -2
## 1343 interrupted -2
## 1344 interrupting -2
## 1345 interruption -2
## 1346 interrupts -2
## 1347 intimidate -2
## 1348 intimidated -2
## 1349 intimidates -2
## 1350 intimidating -2
## 1351 intimidation -2
## 1352 intricate 2
## 1353 intrigues 1
## 1354 invincible 2
## 1355 invite 1
## 1356 inviting 1
## 1357 invulnerable 2
## 1358 irate -3
## 1359 ironic -1
## 1360 irony -1
## 1361 irrational -1
## 1362 irresistible 2
## 1363 irresolute -2
## 1364 irresponsible 2
## 1365 irreversible -1
## 1366 irritate -3
## 1367 irritated -3
## 1368 irritating -3
## 1369 isolated -1
## 1370 itchy -2
## 1371 jackass -4
## 1372 jackasses -4
## 1373 jailed -2
## 1374 jaunty 2
## 1375 jealous -2
## 1376 jeopardy -2
## 1377 jerk -3
## 1378 jesus 1
## 1379 jewel 1
## 1380 jewels 1
## 1381 jocular 2
## 1382 join 1
## 1383 joke 2
## 1384 jokes 2
## 1385 jolly 2
## 1386 jovial 2
## 1387 joy 3
## 1388 joyful 3
## 1389 joyfully 3
## 1390 joyless -2
## 1391 joyous 3
## 1392 jubilant 3
## 1393 jumpy -1
## 1394 justice 2
## 1395 justifiably 2
## 1396 justified 2
## 1397 keen 1
## 1398 kill -3
## 1399 killed -3
## 1400 killing -3
## 1401 kills -3
## 1402 kind 2
## 1403 kinder 2
## 1404 kiss 2
## 1405 kudos 3
## 1406 lack -2
## 1407 lackadaisical -2
## 1408 lag -1
## 1409 lagged -2
## 1410 lagging -2
## 1411 lags -2
## 1412 lame -2
## 1413 landmark 2
## 1414 laugh 1
## 1415 laughed 1
## 1416 laughing 1
## 1417 laughs 1
## 1418 laughting 1
## 1419 launched 1
## 1420 lawl 3
## 1421 lawsuit -2
## 1422 lawsuits -2
## 1423 lazy -1
## 1424 leak -1
## 1425 leaked -1
## 1426 leave -1
## 1427 legal 1
## 1428 legally 1
## 1429 lenient 1
## 1430 lethargic -2
## 1431 lethargy -2
## 1432 liar -3
## 1433 liars -3
## 1434 libelous -2
## 1435 lied -2
## 1436 lifesaver 4
## 1437 lighthearted 1
## 1438 like 2
## 1439 liked 2
## 1440 likes 2
## 1441 limitation -1
## 1442 limited -1
## 1443 limits -1
## 1444 litigation -1
## 1445 litigious -2
## 1446 lively 2
## 1447 livid -2
## 1448 lmao 4
## 1449 lmfao 4
## 1450 loathe -3
## 1451 loathed -3
## 1452 loathes -3
## 1453 loathing -3
## 1454 lobby -2
## 1455 lobbying -2
## 1456 lol 3
## 1457 lonely -2
## 1458 lonesome -2
## 1459 longing -1
## 1460 loom -1
## 1461 loomed -1
## 1462 looming -1
## 1463 looms -1
## 1464 loose -3
## 1465 looses -3
## 1466 loser -3
## 1467 losing -3
## 1468 loss -3
## 1469 lost -3
## 1470 lovable 3
## 1471 love 3
## 1472 loved 3
## 1473 lovelies 3
## 1474 lovely 3
## 1475 loving 2
## 1476 lowest -1
## 1477 loyal 3
## 1478 loyalty 3
## 1479 luck 3
## 1480 luckily 3
## 1481 lucky 3
## 1482 lugubrious -2
## 1483 lunatic -3
## 1484 lunatics -3
## 1485 lurk -1
## 1486 lurking -1
## 1487 lurks -1
## 1488 mad -3
## 1489 maddening -3
## 1490 made-up -1
## 1491 madly -3
## 1492 madness -3
## 1493 mandatory -1
## 1494 manipulated -1
## 1495 manipulating -1
## 1496 manipulation -1
## 1497 marvel 3
## 1498 marvelous 3
## 1499 marvels 3
## 1500 masterpiece 4
## 1501 masterpieces 4
## 1502 matter 1
## 1503 matters 1
## 1504 mature 2
## 1505 meaningful 2
## 1506 meaningless -2
## 1507 medal 3
## 1508 mediocrity -3
## 1509 meditative 1
## 1510 melancholy -2
## 1511 menace -2
## 1512 menaced -2
## 1513 mercy 2
## 1514 merry 3
## 1515 mess -2
## 1516 messed -2
## 1517 messing up -2
## 1518 methodical 2
## 1519 mindless -2
## 1520 miracle 4
## 1521 mirth 3
## 1522 mirthful 3
## 1523 mirthfully 3
## 1524 misbehave -2
## 1525 misbehaved -2
## 1526 misbehaves -2
## 1527 misbehaving -2
## 1528 mischief -1
## 1529 mischiefs -1
## 1530 miserable -3
## 1531 misery -2
## 1532 misgiving -2
## 1533 misinformation -2
## 1534 misinformed -2
## 1535 misinterpreted -2
## 1536 misleading -3
## 1537 misread -1
## 1538 misreporting -2
## 1539 misrepresentation -2
## 1540 miss -2
## 1541 missed -2
## 1542 missing -2
## 1543 mistake -2
## 1544 mistaken -2
## 1545 mistakes -2
## 1546 mistaking -2
## 1547 misunderstand -2
## 1548 misunderstanding -2
## 1549 misunderstands -2
## 1550 misunderstood -2
## 1551 moan -2
## 1552 moaned -2
## 1553 moaning -2
## 1554 moans -2
## 1555 mock -2
## 1556 mocked -2
## 1557 mocking -2
## 1558 mocks -2
## 1559 mongering -2
## 1560 monopolize -2
## 1561 monopolized -2
## 1562 monopolizes -2
## 1563 monopolizing -2
## 1564 moody -1
## 1565 mope -1
## 1566 moping -1
## 1567 moron -3
## 1568 motherfucker -5
## 1569 motherfucking -5
## 1570 motivate 1
## 1571 motivated 2
## 1572 motivating 2
## 1573 motivation 1
## 1574 mourn -2
## 1575 mourned -2
## 1576 mournful -2
## 1577 mourning -2
## 1578 mourns -2
## 1579 mumpish -2
## 1580 murder -2
## 1581 murderer -2
## 1582 murdering -3
## 1583 murderous -3
## 1584 murders -2
## 1585 myth -1
## 1586 n00b -2
## 1587 naive -2
## 1588 nasty -3
## 1589 natural 1
## 1590 naïve -2
## 1591 needy -2
## 1592 negative -2
## 1593 negativity -2
## 1594 neglect -2
## 1595 neglected -2
## 1596 neglecting -2
## 1597 neglects -2
## 1598 nerves -1
## 1599 nervous -2
## 1600 nervously -2
## 1601 nice 3
## 1602 nifty 2
## 1603 niggas -5
## 1604 nigger -5
## 1605 no -1
## 1606 no fun -3
## 1607 noble 2
## 1608 noisy -1
## 1609 nonsense -2
## 1610 noob -2
## 1611 nosey -2
## 1612 not good -2
## 1613 not working -3
## 1614 notorious -2
## 1615 novel 2
## 1616 numb -1
## 1617 nuts -3
## 1618 obliterate -2
## 1619 obliterated -2
## 1620 obnoxious -3
## 1621 obscene -2
## 1622 obsessed 2
## 1623 obsolete -2
## 1624 obstacle -2
## 1625 obstacles -2
## 1626 obstinate -2
## 1627 odd -2
## 1628 offend -2
## 1629 offended -2
## 1630 offender -2
## 1631 offending -2
## 1632 offends -2
## 1633 offline -1
## 1634 oks 2
## 1635 ominous 3
## 1636 once-in-a-lifetime 3
## 1637 opportunities 2
## 1638 opportunity 2
## 1639 oppressed -2
## 1640 oppressive -2
## 1641 optimism 2
## 1642 optimistic 2
## 1643 optionless -2
## 1644 outcry -2
## 1645 outmaneuvered -2
## 1646 outrage -3
## 1647 outraged -3
## 1648 outreach 2
## 1649 outstanding 5
## 1650 overjoyed 4
## 1651 overload -1
## 1652 overlooked -1
## 1653 overreact -2
## 1654 overreacted -2
## 1655 overreaction -2
## 1656 overreacts -2
## 1657 oversell -2
## 1658 overselling -2
## 1659 oversells -2
## 1660 oversimplification -2
## 1661 oversimplified -2
## 1662 oversimplifies -2
## 1663 oversimplify -2
## 1664 overstatement -2
## 1665 overstatements -2
## 1666 overweight -1
## 1667 oxymoron -1
## 1668 pain -2
## 1669 pained -2
## 1670 panic -3
## 1671 panicked -3
## 1672 panics -3
## 1673 paradise 3
## 1674 paradox -1
## 1675 pardon 2
## 1676 pardoned 2
## 1677 pardoning 2
## 1678 pardons 2
## 1679 parley -1
## 1680 passionate 2
## 1681 passive -1
## 1682 passively -1
## 1683 pathetic -2
## 1684 pay -1
## 1685 peace 2
## 1686 peaceful 2
## 1687 peacefully 2
## 1688 penalty -2
## 1689 pensive -1
## 1690 perfect 3
## 1691 perfected 2
## 1692 perfectly 3
## 1693 perfects 2
## 1694 peril -2
## 1695 perjury -3
## 1696 perpetrator -2
## 1697 perpetrators -2
## 1698 perplexed -2
## 1699 persecute -2
## 1700 persecuted -2
## 1701 persecutes -2
## 1702 persecuting -2
## 1703 perturbed -2
## 1704 pesky -2
## 1705 pessimism -2
## 1706 pessimistic -2
## 1707 petrified -2
## 1708 phobic -2
## 1709 picturesque 2
## 1710 pileup -1
## 1711 pique -2
## 1712 piqued -2
## 1713 piss -4
## 1714 pissed -4
## 1715 pissing -3
## 1716 piteous -2
## 1717 pitied -1
## 1718 pity -2
## 1719 playful 2
## 1720 pleasant 3
## 1721 please 1
## 1722 pleased 3
## 1723 pleasure 3
## 1724 poised -2
## 1725 poison -2
## 1726 poisoned -2
## 1727 poisons -2
## 1728 pollute -2
## 1729 polluted -2
## 1730 polluter -2
## 1731 polluters -2
## 1732 pollutes -2
## 1733 poor -2
## 1734 poorer -2
## 1735 poorest -2
## 1736 popular 3
## 1737 positive 2
## 1738 positively 2
## 1739 possessive -2
## 1740 postpone -1
## 1741 postponed -1
## 1742 postpones -1
## 1743 postponing -1
## 1744 poverty -1
## 1745 powerful 2
## 1746 powerless -2
## 1747 praise 3
## 1748 praised 3
## 1749 praises 3
## 1750 praising 3
## 1751 pray 1
## 1752 praying 1
## 1753 prays 1
## 1754 prblm -2
## 1755 prblms -2
## 1756 prepared 1
## 1757 pressure -1
## 1758 pressured -2
## 1759 pretend -1
## 1760 pretending -1
## 1761 pretends -1
## 1762 pretty 1
## 1763 prevent -1
## 1764 prevented -1
## 1765 preventing -1
## 1766 prevents -1
## 1767 prick -5
## 1768 prison -2
## 1769 prisoner -2
## 1770 prisoners -2
## 1771 privileged 2
## 1772 proactive 2
## 1773 problem -2
## 1774 problems -2
## 1775 profiteer -2
## 1776 progress 2
## 1777 prominent 2
## 1778 promise 1
## 1779 promised 1
## 1780 promises 1
## 1781 promote 1
## 1782 promoted 1
## 1783 promotes 1
## 1784 promoting 1
## 1785 propaganda -2
## 1786 prosecute -1
## 1787 prosecuted -2
## 1788 prosecutes -1
## 1789 prosecution -1
## 1790 prospect 1
## 1791 prospects 1
## 1792 prosperous 3
## 1793 protect 1
## 1794 protected 1
## 1795 protects 1
## 1796 protest -2
## 1797 protesters -2
## 1798 protesting -2
## 1799 protests -2
## 1800 proud 2
## 1801 proudly 2
## 1802 provoke -1
## 1803 provoked -1
## 1804 provokes -1
## 1805 provoking -1
## 1806 pseudoscience -3
## 1807 punish -2
## 1808 punished -2
## 1809 punishes -2
## 1810 punitive -2
## 1811 pushy -1
## 1812 puzzled -2
## 1813 quaking -2
## 1814 questionable -2
## 1815 questioned -1
## 1816 questioning -1
## 1817 racism -3
## 1818 racist -3
## 1819 racists -3
## 1820 rage -2
## 1821 rageful -2
## 1822 rainy -1
## 1823 rant -3
## 1824 ranter -3
## 1825 ranters -3
## 1826 rants -3
## 1827 rape -4
## 1828 rapist -4
## 1829 rapture 2
## 1830 raptured 2
## 1831 raptures 2
## 1832 rapturous 4
## 1833 rash -2
## 1834 ratified 2
## 1835 reach 1
## 1836 reached 1
## 1837 reaches 1
## 1838 reaching 1
## 1839 reassure 1
## 1840 reassured 1
## 1841 reassures 1
## 1842 reassuring 2
## 1843 rebellion -2
## 1844 recession -2
## 1845 reckless -2
## 1846 recommend 2
## 1847 recommended 2
## 1848 recommends 2
## 1849 redeemed 2
## 1850 refuse -2
## 1851 refused -2
## 1852 refusing -2
## 1853 regret -2
## 1854 regretful -2
## 1855 regrets -2
## 1856 regretted -2
## 1857 regretting -2
## 1858 reject -1
## 1859 rejected -1
## 1860 rejecting -1
## 1861 rejects -1
## 1862 rejoice 4
## 1863 rejoiced 4
## 1864 rejoices 4
## 1865 rejoicing 4
## 1866 relaxed 2
## 1867 relentless -1
## 1868 reliant 2
## 1869 relieve 1
## 1870 relieved 2
## 1871 relieves 1
## 1872 relieving 2
## 1873 relishing 2
## 1874 remarkable 2
## 1875 remorse -2
## 1876 repulse -1
## 1877 repulsed -2
## 1878 rescue 2
## 1879 rescued 2
## 1880 rescues 2
## 1881 resentful -2
## 1882 resign -1
## 1883 resigned -1
## 1884 resigning -1
## 1885 resigns -1
## 1886 resolute 2
## 1887 resolve 2
## 1888 resolved 2
## 1889 resolves 2
## 1890 resolving 2
## 1891 respected 2
## 1892 responsible 2
## 1893 responsive 2
## 1894 restful 2
## 1895 restless -2
## 1896 restore 1
## 1897 restored 1
## 1898 restores 1
## 1899 restoring 1
## 1900 restrict -2
## 1901 restricted -2
## 1902 restricting -2
## 1903 restriction -2
## 1904 restricts -2
## 1905 retained -1
## 1906 retard -2
## 1907 retarded -2
## 1908 retreat -1
## 1909 revenge -2
## 1910 revengeful -2
## 1911 revered 2
## 1912 revive 2
## 1913 revives 2
## 1914 reward 2
## 1915 rewarded 2
## 1916 rewarding 2
## 1917 rewards 2
## 1918 rich 2
## 1919 ridiculous -3
## 1920 rig -1
## 1921 rigged -1
## 1922 right direction 3
## 1923 rigorous 3
## 1924 rigorously 3
## 1925 riot -2
## 1926 riots -2
## 1927 risk -2
## 1928 risks -2
## 1929 rob -2
## 1930 robber -2
## 1931 robed -2
## 1932 robing -2
## 1933 robs -2
## 1934 robust 2
## 1935 rofl 4
## 1936 roflcopter 4
## 1937 roflmao 4
## 1938 romance 2
## 1939 rotfl 4
## 1940 rotflmfao 4
## 1941 rotflol 4
## 1942 ruin -2
## 1943 ruined -2
## 1944 ruining -2
## 1945 ruins -2
## 1946 sabotage -2
## 1947 sad -2
## 1948 sadden -2
## 1949 saddened -2
## 1950 sadly -2
## 1951 safe 1
## 1952 safely 1
## 1953 safety 1
## 1954 salient 1
## 1955 sappy -1
## 1956 sarcastic -2
## 1957 satisfied 2
## 1958 save 2
## 1959 saved 2
## 1960 scam -2
## 1961 scams -2
## 1962 scandal -3
## 1963 scandalous -3
## 1964 scandals -3
## 1965 scapegoat -2
## 1966 scapegoats -2
## 1967 scare -2
## 1968 scared -2
## 1969 scary -2
## 1970 sceptical -2
## 1971 scold -2
## 1972 scoop 3
## 1973 scorn -2
## 1974 scornful -2
## 1975 scream -2
## 1976 screamed -2
## 1977 screaming -2
## 1978 screams -2
## 1979 screwed -2
## 1980 screwed up -3
## 1981 scumbag -4
## 1982 secure 2
## 1983 secured 2
## 1984 secures 2
## 1985 sedition -2
## 1986 seditious -2
## 1987 seduced -1
## 1988 self-confident 2
## 1989 self-deluded -2
## 1990 selfish -3
## 1991 selfishness -3
## 1992 sentence -2
## 1993 sentenced -2
## 1994 sentences -2
## 1995 sentencing -2
## 1996 serene 2
## 1997 severe -2
## 1998 sexy 3
## 1999 shaky -2
## 2000 shame -2
## 2001 shamed -2
## 2002 shameful -2
## 2003 share 1
## 2004 shared 1
## 2005 shares 1
## 2006 shattered -2
## 2007 shit -4
## 2008 shithead -4
## 2009 shitty -3
## 2010 shock -2
## 2011 shocked -2
## 2012 shocking -2
## 2013 shocks -2
## 2014 shoot -1
## 2015 short-sighted -2
## 2016 short-sightedness -2
## 2017 shortage -2
## 2018 shortages -2
## 2019 shrew -4
## 2020 shy -1
## 2021 sick -2
## 2022 sigh -2
## 2023 significance 1
## 2024 significant 1
## 2025 silencing -1
## 2026 silly -1
## 2027 sincere 2
## 2028 sincerely 2
## 2029 sincerest 2
## 2030 sincerity 2
## 2031 sinful -3
## 2032 singleminded -2
## 2033 skeptic -2
## 2034 skeptical -2
## 2035 skepticism -2
## 2036 skeptics -2
## 2037 slam -2
## 2038 slash -2
## 2039 slashed -2
## 2040 slashes -2
## 2041 slashing -2
## 2042 slavery -3
## 2043 sleeplessness -2
## 2044 slick 2
## 2045 slicker 2
## 2046 slickest 2
## 2047 sluggish -2
## 2048 slut -5
## 2049 smart 1
## 2050 smarter 2
## 2051 smartest 2
## 2052 smear -2
## 2053 smile 2
## 2054 smiled 2
## 2055 smiles 2
## 2056 smiling 2
## 2057 smog -2
## 2058 sneaky -1
## 2059 snub -2
## 2060 snubbed -2
## 2061 snubbing -2
## 2062 snubs -2
## 2063 sobering 1
## 2064 solemn -1
## 2065 solid 2
## 2066 solidarity 2
## 2067 solution 1
## 2068 solutions 1
## 2069 solve 1
## 2070 solved 1
## 2071 solves 1
## 2072 solving 1
## 2073 somber -2
## 2074 some kind 0
## 2075 son-of-a-bitch -5
## 2076 soothe 3
## 2077 soothed 3
## 2078 soothing 3
## 2079 sophisticated 2
## 2080 sore -1
## 2081 sorrow -2
## 2082 sorrowful -2
## 2083 sorry -1
## 2084 spam -2
## 2085 spammer -3
## 2086 spammers -3
## 2087 spamming -2
## 2088 spark 1
## 2089 sparkle 3
## 2090 sparkles 3
## 2091 sparkling 3
## 2092 speculative -2
## 2093 spirit 1
## 2094 spirited 2
## 2095 spiritless -2
## 2096 spiteful -2
## 2097 splendid 3
## 2098 sprightly 2
## 2099 squelched -1
## 2100 stab -2
## 2101 stabbed -2
## 2102 stable 2
## 2103 stabs -2
## 2104 stall -2
## 2105 stalled -2
## 2106 stalling -2
## 2107 stamina 2
## 2108 stampede -2
## 2109 startled -2
## 2110 starve -2
## 2111 starved -2
## 2112 starves -2
## 2113 starving -2
## 2114 steadfast 2
## 2115 steal -2
## 2116 steals -2
## 2117 stereotype -2
## 2118 stereotyped -2
## 2119 stifled -1
## 2120 stimulate 1
## 2121 stimulated 1
## 2122 stimulates 1
## 2123 stimulating 2
## 2124 stingy -2
## 2125 stolen -2
## 2126 stop -1
## 2127 stopped -1
## 2128 stopping -1
## 2129 stops -1
## 2130 stout 2
## 2131 straight 1
## 2132 strange -1
## 2133 strangely -1
## 2134 strangled -2
## 2135 strength 2
## 2136 strengthen 2
## 2137 strengthened 2
## 2138 strengthening 2
## 2139 strengthens 2
## 2140 stressed -2
## 2141 stressor -2
## 2142 stressors -2
## 2143 stricken -2
## 2144 strike -1
## 2145 strikers -2
## 2146 strikes -1
## 2147 strong 2
## 2148 stronger 2
## 2149 strongest 2
## 2150 struck -1
## 2151 struggle -2
## 2152 struggled -2
## 2153 struggles -2
## 2154 struggling -2
## 2155 stubborn -2
## 2156 stuck -2
## 2157 stunned -2
## 2158 stunning 4
## 2159 stupid -2
## 2160 stupidly -2
## 2161 suave 2
## 2162 substantial 1
## 2163 substantially 1
## 2164 subversive -2
## 2165 success 2
## 2166 successful 3
## 2167 suck -3
## 2168 sucks -3
## 2169 suffer -2
## 2170 suffering -2
## 2171 suffers -2
## 2172 suicidal -2
## 2173 suicide -2
## 2174 suing -2
## 2175 sulking -2
## 2176 sulky -2
## 2177 sullen -2
## 2178 sunshine 2
## 2179 super 3
## 2180 superb 5
## 2181 superior 2
## 2182 support 2
## 2183 supported 2
## 2184 supporter 1
## 2185 supporters 1
## 2186 supporting 1
## 2187 supportive 2
## 2188 supports 2
## 2189 survived 2
## 2190 surviving 2
## 2191 survivor 2
## 2192 suspect -1
## 2193 suspected -1
## 2194 suspecting -1
## 2195 suspects -1
## 2196 suspend -1
## 2197 suspended -1
## 2198 suspicious -2
## 2199 swear -2
## 2200 swearing -2
## 2201 swears -2
## 2202 sweet 2
## 2203 swift 2
## 2204 swiftly 2
## 2205 swindle -3
## 2206 swindles -3
## 2207 swindling -3
## 2208 sympathetic 2
## 2209 sympathy 2
## 2210 tard -2
## 2211 tears -2
## 2212 tender 2
## 2213 tense -2
## 2214 tension -1
## 2215 terrible -3
## 2216 terribly -3
## 2217 terrific 4
## 2218 terrified -3
## 2219 terror -3
## 2220 terrorize -3
## 2221 terrorized -3
## 2222 terrorizes -3
## 2223 thank 2
## 2224 thankful 2
## 2225 thanks 2
## 2226 thorny -2
## 2227 thoughtful 2
## 2228 thoughtless -2
## 2229 threat -2
## 2230 threaten -2
## 2231 threatened -2
## 2232 threatening -2
## 2233 threatens -2
## 2234 threats -2
## 2235 thrilled 5
## 2236 thwart -2
## 2237 thwarted -2
## 2238 thwarting -2
## 2239 thwarts -2
## 2240 timid -2
## 2241 timorous -2
## 2242 tired -2
## 2243 tits -2
## 2244 tolerant 2
## 2245 toothless -2
## 2246 top 2
## 2247 tops 2
## 2248 torn -2
## 2249 torture -4
## 2250 tortured -4
## 2251 tortures -4
## 2252 torturing -4
## 2253 totalitarian -2
## 2254 totalitarianism -2
## 2255 tout -2
## 2256 touted -2
## 2257 touting -2
## 2258 touts -2
## 2259 tragedy -2
## 2260 tragic -2
## 2261 tranquil 2
## 2262 trap -1
## 2263 trapped -2
## 2264 trauma -3
## 2265 traumatic -3
## 2266 travesty -2
## 2267 treason -3
## 2268 treasonous -3
## 2269 treasure 2
## 2270 treasures 2
## 2271 trembling -2
## 2272 tremulous -2
## 2273 tricked -2
## 2274 trickery -2
## 2275 triumph 4
## 2276 triumphant 4
## 2277 trouble -2
## 2278 troubled -2
## 2279 troubles -2
## 2280 true 2
## 2281 trust 1
## 2282 trusted 2
## 2283 tumor -2
## 2284 twat -5
## 2285 ugly -3
## 2286 unacceptable -2
## 2287 unappreciated -2
## 2288 unapproved -2
## 2289 unaware -2
## 2290 unbelievable -1
## 2291 unbelieving -1
## 2292 unbiased 2
## 2293 uncertain -1
## 2294 unclear -1
## 2295 uncomfortable -2
## 2296 unconcerned -2
## 2297 unconfirmed -1
## 2298 unconvinced -1
## 2299 uncredited -1
## 2300 undecided -1
## 2301 underestimate -1
## 2302 underestimated -1
## 2303 underestimates -1
## 2304 underestimating -1
## 2305 undermine -2
## 2306 undermined -2
## 2307 undermines -2
## 2308 undermining -2
## 2309 undeserving -2
## 2310 undesirable -2
## 2311 uneasy -2
## 2312 unemployment -2
## 2313 unequal -1
## 2314 unequaled 2
## 2315 unethical -2
## 2316 unfair -2
## 2317 unfocused -2
## 2318 unfulfilled -2
## 2319 unhappy -2
## 2320 unhealthy -2
## 2321 unified 1
## 2322 unimpressed -2
## 2323 unintelligent -2
## 2324 united 1
## 2325 unjust -2
## 2326 unlovable -2
## 2327 unloved -2
## 2328 unmatched 1
## 2329 unmotivated -2
## 2330 unprofessional -2
## 2331 unresearched -2
## 2332 unsatisfied -2
## 2333 unsecured -2
## 2334 unsettled -1
## 2335 unsophisticated -2
## 2336 unstable -2
## 2337 unstoppable 2
## 2338 unsupported -2
## 2339 unsure -1
## 2340 untarnished 2
## 2341 unwanted -2
## 2342 unworthy -2
## 2343 upset -2
## 2344 upsets -2
## 2345 upsetting -2
## 2346 uptight -2
## 2347 urgent -1
## 2348 useful 2
## 2349 usefulness 2
## 2350 useless -2
## 2351 uselessness -2
## 2352 vague -2
## 2353 validate 1
## 2354 validated 1
## 2355 validates 1
## 2356 validating 1
## 2357 verdict -1
## 2358 verdicts -1
## 2359 vested 1
## 2360 vexation -2
## 2361 vexing -2
## 2362 vibrant 3
## 2363 vicious -2
## 2364 victim -3
## 2365 victimize -3
## 2366 victimized -3
## 2367 victimizes -3
## 2368 victimizing -3
## 2369 victims -3
## 2370 vigilant 3
## 2371 vile -3
## 2372 vindicate 2
## 2373 vindicated 2
## 2374 vindicates 2
## 2375 vindicating 2
## 2376 violate -2
## 2377 violated -2
## 2378 violates -2
## 2379 violating -2
## 2380 violence -3
## 2381 violent -3
## 2382 virtuous 2
## 2383 virulent -2
## 2384 vision 1
## 2385 visionary 3
## 2386 visioning 1
## 2387 visions 1
## 2388 vitality 3
## 2389 vitamin 1
## 2390 vitriolic -3
## 2391 vivacious 3
## 2392 vociferous -1
## 2393 vulnerability -2
## 2394 vulnerable -2
## 2395 walkout -2
## 2396 walkouts -2
## 2397 wanker -3
## 2398 want 1
## 2399 war -2
## 2400 warfare -2
## 2401 warm 1
## 2402 warmth 2
## 2403 warn -2
## 2404 warned -2
## 2405 warning -3
## 2406 warnings -3
## 2407 warns -2
## 2408 waste -1
## 2409 wasted -2
## 2410 wasting -2
## 2411 wavering -1
## 2412 weak -2
## 2413 weakness -2
## 2414 wealth 3
## 2415 wealthy 2
## 2416 weary -2
## 2417 weep -2
## 2418 weeping -2
## 2419 weird -2
## 2420 welcome 2
## 2421 welcomed 2
## 2422 welcomes 2
## 2423 whimsical 1
## 2424 whitewash -3
## 2425 whore -4
## 2426 wicked -2
## 2427 widowed -1
## 2428 willingness 2
## 2429 win 4
## 2430 winner 4
## 2431 winning 4
## 2432 wins 4
## 2433 winwin 3
## 2434 wish 1
## 2435 wishes 1
## 2436 wishing 1
## 2437 withdrawal -3
## 2438 woebegone -2
## 2439 woeful -3
## 2440 won 3
## 2441 wonderful 4
## 2442 woo 3
## 2443 woohoo 3
## 2444 wooo 4
## 2445 woow 4
## 2446 worn -1
## 2447 worried -3
## 2448 worry -3
## 2449 worrying -3
## 2450 worse -3
## 2451 worsen -3
## 2452 worsened -3
## 2453 worsening -3
## 2454 worsens -3
## 2455 worshiped 3
## 2456 worst -3
## 2457 worth 2
## 2458 worthless -2
## 2459 worthy 2
## 2460 wow 4
## 2461 wowow 4
## 2462 wowww 4
## 2463 wrathful -3
## 2464 wreck -2
## 2465 wrong -2
## 2466 wronged -2
## 2467 wtf -4
## 2468 yeah 1
## 2469 yearning 1
## 2470 yeees 2
## 2471 yes 1
## 2472 youthful 2
## 2473 yucky -2
## 2474 yummy 3
## 2475 zealot -2
## 2476 zealots -2
## 2477 zealous 2
bing
## word sentiment
## 1 2-faces negative
## 2 abnormal negative
## 3 abolish negative
## 4 abominable negative
## 5 abominably negative
## 6 abominate negative
## 7 abomination negative
## 8 abort negative
## 9 aborted negative
## 10 aborts negative
## 11 abound positive
## 12 abounds positive
## 13 abrade negative
## 14 abrasive negative
## 15 abrupt negative
## 16 abruptly negative
## 17 abscond negative
## 18 absence negative
## 19 absent-minded negative
## 20 absentee negative
## 21 absurd negative
## 22 absurdity negative
## 23 absurdly negative
## 24 absurdness negative
## 25 abundance positive
## 26 abundant positive
## 27 abuse negative
## 28 abused negative
## 29 abuses negative
## 30 abusive negative
## 31 abysmal negative
## 32 abysmally negative
## 33 abyss negative
## 34 accessable positive
## 35 accessible positive
## 36 accidental negative
## 37 acclaim positive
## 38 acclaimed positive
## 39 acclamation positive
## 40 accolade positive
## 41 accolades positive
## 42 accommodative positive
## 43 accomodative positive
## 44 accomplish positive
## 45 accomplished positive
## 46 accomplishment positive
## 47 accomplishments positive
## 48 accost negative
## 49 accurate positive
## 50 accurately positive
## 51 accursed negative
## 52 accusation negative
## 53 accusations negative
## 54 accuse negative
## 55 accuses negative
## 56 accusing negative
## 57 accusingly negative
## 58 acerbate negative
## 59 acerbic negative
## 60 acerbically negative
## 61 ache negative
## 62 ached negative
## 63 aches negative
## 64 achey negative
## 65 achievable positive
## 66 achievement positive
## 67 achievements positive
## 68 achievible positive
## 69 aching negative
## 70 acrid negative
## 71 acridly negative
## 72 acridness negative
## 73 acrimonious negative
## 74 acrimoniously negative
## 75 acrimony negative
## 76 acumen positive
## 77 adamant negative
## 78 adamantly negative
## 79 adaptable positive
## 80 adaptive positive
## 81 addict negative
## 82 addicted negative
## 83 addicting negative
## 84 addicts negative
## 85 adequate positive
## 86 adjustable positive
## 87 admirable positive
## 88 admirably positive
## 89 admiration positive
## 90 admire positive
## 91 admirer positive
## 92 admiring positive
## 93 admiringly positive
## 94 admonish negative
## 95 admonisher negative
## 96 admonishingly negative
## 97 admonishment negative
## 98 admonition negative
## 99 adorable positive
## 100 adore positive
## 101 adored positive
## 102 adorer positive
## 103 adoring positive
## 104 adoringly positive
## 105 adroit positive
## 106 adroitly positive
## 107 adulate positive
## 108 adulation positive
## 109 adulatory positive
## 110 adulterate negative
## 111 adulterated negative
## 112 adulteration negative
## 113 adulterier negative
## 114 advanced positive
## 115 advantage positive
## 116 advantageous positive
## 117 advantageously positive
## 118 advantages positive
## 119 adventuresome positive
## 120 adventurous positive
## 121 adversarial negative
## 122 adversary negative
## 123 adverse negative
## 124 adversity negative
## 125 advocate positive
## 126 advocated positive
## 127 advocates positive
## 128 affability positive
## 129 affable positive
## 130 affably positive
## 131 affectation positive
## 132 affection positive
## 133 affectionate positive
## 134 affinity positive
## 135 affirm positive
## 136 affirmation positive
## 137 affirmative positive
## 138 afflict negative
## 139 affliction negative
## 140 afflictive negative
## 141 affluence positive
## 142 affluent positive
## 143 afford positive
## 144 affordable positive
## 145 affordably positive
## 146 affront negative
## 147 afordable positive
## 148 afraid negative
## 149 aggravate negative
## 150 aggravating negative
## 151 aggravation negative
## 152 aggression negative
## 153 aggressive negative
## 154 aggressiveness negative
## 155 aggressor negative
## 156 aggrieve negative
## 157 aggrieved negative
## 158 aggrivation negative
## 159 aghast negative
## 160 agile positive
## 161 agilely positive
## 162 agility positive
## 163 agonies negative
## 164 agonize negative
## 165 agonizing negative
## 166 agonizingly negative
## 167 agony negative
## 168 agreeable positive
## 169 agreeableness positive
## 170 agreeably positive
## 171 aground negative
## 172 ail negative
## 173 ailing negative
## 174 ailment negative
## 175 aimless negative
## 176 alarm negative
## 177 alarmed negative
## 178 alarming negative
## 179 alarmingly negative
## 180 alienate negative
## 181 alienated negative
## 182 alienation negative
## 183 all-around positive
## 184 allegation negative
## 185 allegations negative
## 186 allege negative
## 187 allergic negative
## 188 allergies negative
## 189 allergy negative
## 190 alluring positive
## 191 alluringly positive
## 192 aloof negative
## 193 altercation negative
## 194 altruistic positive
## 195 altruistically positive
## 196 amaze positive
## 197 amazed positive
## 198 amazement positive
## 199 amazes positive
## 200 amazing positive
## 201 amazingly positive
## 202 ambiguity negative
## 203 ambiguous negative
## 204 ambitious positive
## 205 ambitiously positive
## 206 ambivalence negative
## 207 ambivalent negative
## 208 ambush negative
## 209 ameliorate positive
## 210 amenable positive
## 211 amenity positive
## 212 amiability positive
## 213 amiabily positive
## 214 amiable positive
## 215 amicability positive
## 216 amicable positive
## 217 amicably positive
## 218 amiss negative
## 219 amity positive
## 220 ample positive
## 221 amply positive
## 222 amputate negative
## 223 amuse positive
## 224 amusing positive
## 225 amusingly positive
## 226 anarchism negative
## 227 anarchist negative
## 228 anarchistic negative
## 229 anarchy negative
## 230 anemic negative
## 231 angel positive
## 232 angelic positive
## 233 anger negative
## 234 angrily negative
## 235 angriness negative
## 236 angry negative
## 237 anguish negative
## 238 animosity negative
## 239 annihilate negative
## 240 annihilation negative
## 241 annoy negative
## 242 annoyance negative
## 243 annoyances negative
## 244 annoyed negative
## 245 annoying negative
## 246 annoyingly negative
## 247 annoys negative
## 248 anomalous negative
## 249 anomaly negative
## 250 antagonism negative
## 251 antagonist negative
## 252 antagonistic negative
## 253 antagonize negative
## 254 anti- negative
## 255 anti-american negative
## 256 anti-israeli negative
## 257 anti-occupation negative
## 258 anti-proliferation negative
## 259 anti-semites negative
## 260 anti-social negative
## 261 anti-us negative
## 262 anti-white negative
## 263 antipathy negative
## 264 antiquated negative
## 265 antithetical negative
## 266 anxieties negative
## 267 anxiety negative
## 268 anxious negative
## 269 anxiously negative
## 270 anxiousness negative
## 271 apathetic negative
## 272 apathetically negative
## 273 apathy negative
## 274 apocalypse negative
## 275 apocalyptic negative
## 276 apologist negative
## 277 apologists negative
## 278 apotheosis positive
## 279 appal negative
## 280 appall negative
## 281 appalled negative
## 282 appalling negative
## 283 appallingly negative
## 284 appeal positive
## 285 appealing positive
## 286 applaud positive
## 287 appreciable positive
## 288 appreciate positive
## 289 appreciated positive
## 290 appreciates positive
## 291 appreciative positive
## 292 appreciatively positive
## 293 apprehension negative
## 294 apprehensions negative
## 295 apprehensive negative
## 296 apprehensively negative
## 297 appropriate positive
## 298 approval positive
## 299 approve positive
## 300 arbitrary negative
## 301 arcane negative
## 302 archaic negative
## 303 ardent positive
## 304 ardently positive
## 305 ardor positive
## 306 arduous negative
## 307 arduously negative
## 308 argumentative negative
## 309 arrogance negative
## 310 arrogant negative
## 311 arrogantly negative
## 312 articulate positive
## 313 ashamed negative
## 314 asinine negative
## 315 asininely negative
## 316 asinininity negative
## 317 askance negative
## 318 asperse negative
## 319 aspersion negative
## 320 aspersions negative
## 321 aspiration positive
## 322 aspirations positive
## 323 aspire positive
## 324 assail negative
## 325 assassin negative
## 326 assassinate negative
## 327 assault negative
## 328 assult negative
## 329 assurance positive
## 330 assurances positive
## 331 assure positive
## 332 assuredly positive
## 333 assuring positive
## 334 astonish positive
## 335 astonished positive
## 336 astonishing positive
## 337 astonishingly positive
## 338 astonishment positive
## 339 astound positive
## 340 astounded positive
## 341 astounding positive
## 342 astoundingly positive
## 343 astray negative
## 344 astutely positive
## 345 asunder negative
## 346 atrocious negative
## 347 atrocities negative
## 348 atrocity negative
## 349 atrophy negative
## 350 attack negative
## 351 attacks negative
## 352 attentive positive
## 353 attraction positive
## 354 attractive positive
## 355 attractively positive
## 356 attune positive
## 357 audacious negative
## 358 audaciously negative
## 359 audaciousness negative
## 360 audacity negative
## 361 audible positive
## 362 audibly positive
## 363 audiciously negative
## 364 auspicious positive
## 365 austere negative
## 366 authentic positive
## 367 authoritarian negative
## 368 authoritative positive
## 369 autocrat negative
## 370 autocratic negative
## 371 autonomous positive
## 372 available positive
## 373 avalanche negative
## 374 avarice negative
## 375 avaricious negative
## 376 avariciously negative
## 377 avenge negative
## 378 aver positive
## 379 averse negative
## 380 aversion negative
## 381 avid positive
## 382 avidly positive
## 383 award positive
## 384 awarded positive
## 385 awards positive
## 386 awe positive
## 387 awed positive
## 388 aweful negative
## 389 awesome positive
## 390 awesomely positive
## 391 awesomeness positive
## 392 awestruck positive
## 393 awful negative
## 394 awfully negative
## 395 awfulness negative
## 396 awkward negative
## 397 awkwardness negative
## 398 awsome positive
## 399 ax negative
## 400 babble negative
## 401 back-logged negative
## 402 back-wood negative
## 403 back-woods negative
## 404 backache negative
## 405 backaches negative
## 406 backaching negative
## 407 backbite negative
## 408 backbiting negative
## 409 backbone positive
## 410 backward negative
## 411 backwardness negative
## 412 backwood negative
## 413 backwoods negative
## 414 bad negative
## 415 badly negative
## 416 baffle negative
## 417 baffled negative
## 418 bafflement negative
## 419 baffling negative
## 420 bait negative
## 421 balanced positive
## 422 balk negative
## 423 banal negative
## 424 banalize negative
## 425 bane negative
## 426 banish negative
## 427 banishment negative
## 428 bankrupt negative
## 429 barbarian negative
## 430 barbaric negative
## 431 barbarically negative
## 432 barbarity negative
## 433 barbarous negative
## 434 barbarously negative
## 435 bargain positive
## 436 barren negative
## 437 baseless negative
## 438 bash negative
## 439 bashed negative
## 440 bashful negative
## 441 bashing negative
## 442 bastard negative
## 443 bastards negative
## 444 battered negative
## 445 battering negative
## 446 batty negative
## 447 bearish negative
## 448 beastly negative
## 449 beauteous positive
## 450 beautiful positive
## 451 beautifullly positive
## 452 beautifully positive
## 453 beautify positive
## 454 beauty positive
## 455 beckon positive
## 456 beckoned positive
## 457 beckoning positive
## 458 beckons positive
## 459 bedlam negative
## 460 bedlamite negative
## 461 befoul negative
## 462 beg negative
## 463 beggar negative
## 464 beggarly negative
## 465 begging negative
## 466 beguile negative
## 467 belabor negative
## 468 belated negative
## 469 beleaguer negative
## 470 belie negative
## 471 believable positive
## 472 believeable positive
## 473 belittle negative
## 474 belittled negative
## 475 belittling negative
## 476 bellicose negative
## 477 belligerence negative
## 478 belligerent negative
## 479 belligerently negative
## 480 beloved positive
## 481 bemoan negative
## 482 bemoaning negative
## 483 bemused negative
## 484 benefactor positive
## 485 beneficent positive
## 486 beneficial positive
## 487 beneficially positive
## 488 beneficiary positive
## 489 benefit positive
## 490 benefits positive
## 491 benevolence positive
## 492 benevolent positive
## 493 benifits positive
## 494 bent negative
## 495 berate negative
## 496 bereave negative
## 497 bereavement negative
## 498 bereft negative
## 499 berserk negative
## 500 beseech negative
## 501 beset negative
## 502 besiege negative
## 503 besmirch negative
## 504 best positive
## 505 best-known positive
## 506 best-performing positive
## 507 best-selling positive
## 508 bestial negative
## 509 betray negative
## 510 betrayal negative
## 511 betrayals negative
## 512 betrayer negative
## 513 betraying negative
## 514 betrays negative
## 515 better positive
## 516 better-known positive
## 517 better-than-expected positive
## 518 beutifully positive
## 519 bewail negative
## 520 beware negative
## 521 bewilder negative
## 522 bewildered negative
## 523 bewildering negative
## 524 bewilderingly negative
## 525 bewilderment negative
## 526 bewitch negative
## 527 bias negative
## 528 biased negative
## 529 biases negative
## 530 bicker negative
## 531 bickering negative
## 532 bid-rigging negative
## 533 bigotries negative
## 534 bigotry negative
## 535 bitch negative
## 536 bitchy negative
## 537 biting negative
## 538 bitingly negative
## 539 bitter negative
## 540 bitterly negative
## 541 bitterness negative
## 542 bizarre negative
## 543 blab negative
## 544 blabber negative
## 545 blackmail negative
## 546 blah negative
## 547 blame negative
## 548 blameless positive
## 549 blameworthy negative
## 550 bland negative
## 551 blandish negative
## 552 blaspheme negative
## 553 blasphemous negative
## 554 blasphemy negative
## 555 blasted negative
## 556 blatant negative
## 557 blatantly negative
## 558 blather negative
## 559 bleak negative
## 560 bleakly negative
## 561 bleakness negative
## 562 bleed negative
## 563 bleeding negative
## 564 bleeds negative
## 565 blemish negative
## 566 bless positive
## 567 blessing positive
## 568 blind negative
## 569 blinding negative
## 570 blindingly negative
## 571 blindside negative
## 572 bliss positive
## 573 blissful positive
## 574 blissfully positive
## 575 blister negative
## 576 blistering negative
## 577 blithe positive
## 578 bloated negative
## 579 blockage negative
## 580 blockbuster positive
## 581 blockhead negative
## 582 bloodshed negative
## 583 bloodthirsty negative
## 584 bloody negative
## 585 bloom positive
## 586 blossom positive
## 587 blotchy negative
## 588 blow negative
## 589 blunder negative
## 590 blundering negative
## 591 blunders negative
## 592 blunt negative
## 593 blur negative
## 594 bluring negative
## 595 blurred negative
## 596 blurring negative
## 597 blurry negative
## 598 blurs negative
## 599 blurt negative
## 600 boastful negative
## 601 boggle negative
## 602 bogus negative
## 603 boil negative
## 604 boiling negative
## 605 boisterous negative
## 606 bolster positive
## 607 bomb negative
## 608 bombard negative
## 609 bombardment negative
## 610 bombastic negative
## 611 bondage negative
## 612 bonkers negative
## 613 bonny positive
## 614 bonus positive
## 615 bonuses positive
## 616 boom positive
## 617 booming positive
## 618 boost positive
## 619 bore negative
## 620 bored negative
## 621 boredom negative
## 622 bores negative
## 623 boring negative
## 624 botch negative
## 625 bother negative
## 626 bothered negative
## 627 bothering negative
## 628 bothers negative
## 629 bothersome negative
## 630 boundless positive
## 631 bountiful positive
## 632 bowdlerize negative
## 633 boycott negative
## 634 braggart negative
## 635 bragger negative
## 636 brainiest positive
## 637 brainless negative
## 638 brainwash negative
## 639 brainy positive
## 640 brand-new positive
## 641 brash negative
## 642 brashly negative
## 643 brashness negative
## 644 brat negative
## 645 bravado negative
## 646 brave positive
## 647 bravery positive
## 648 bravo positive
## 649 brazen negative
## 650 brazenly negative
## 651 brazenness negative
## 652 breach negative
## 653 break negative
## 654 break-up negative
## 655 break-ups negative
## 656 breakdown negative
## 657 breaking negative
## 658 breaks negative
## 659 breakthrough positive
## 660 breakthroughs positive
## 661 breakup negative
## 662 breakups negative
## 663 breathlessness positive
## 664 breathtaking positive
## 665 breathtakingly positive
## 666 breeze positive
## 667 bribery negative
## 668 bright positive
## 669 brighten positive
## 670 brighter positive
## 671 brightest positive
## 672 brilliance positive
## 673 brilliances positive
## 674 brilliant positive
## 675 brilliantly positive
## 676 brimstone negative
## 677 brisk positive
## 678 bristle negative
## 679 brittle negative
## 680 broke negative
## 681 broken negative
## 682 broken-hearted negative
## 683 brood negative
## 684 brotherly positive
## 685 browbeat negative
## 686 bruise negative
## 687 bruised negative
## 688 bruises negative
## 689 bruising negative
## 690 brusque negative
## 691 brutal negative
## 692 brutalising negative
## 693 brutalities negative
## 694 brutality negative
## 695 brutalize negative
## 696 brutalizing negative
## 697 brutally negative
## 698 brute negative
## 699 brutish negative
## 700 bs negative
## 701 buckle negative
## 702 bug negative
## 703 bugging negative
## 704 buggy negative
## 705 bugs negative
## 706 bulkier negative
## 707 bulkiness negative
## 708 bulky negative
## 709 bulkyness negative
## 710 bull---- negative
## 711 bull**** negative
## 712 bullies negative
## 713 bullish positive
## 714 bullshit negative
## 715 bullshyt negative
## 716 bully negative
## 717 bullying negative
## 718 bullyingly negative
## 719 bum negative
## 720 bump negative
## 721 bumped negative
## 722 bumping negative
## 723 bumpping negative
## 724 bumps negative
## 725 bumpy negative
## 726 bungle negative
## 727 bungler negative
## 728 bungling negative
## 729 bunk negative
## 730 buoyant positive
## 731 burden negative
## 732 burdensome negative
## 733 burdensomely negative
## 734 burn negative
## 735 burned negative
## 736 burning negative
## 737 burns negative
## 738 bust negative
## 739 busts negative
## 740 busybody negative
## 741 butcher negative
## 742 butchery negative
## 743 buzzing negative
## 744 byzantine negative
## 745 cackle negative
## 746 cajole positive
## 747 calamities negative
## 748 calamitous negative
## 749 calamitously negative
## 750 calamity negative
## 751 callous negative
## 752 calm positive
## 753 calming positive
## 754 calmness positive
## 755 calumniate negative
## 756 calumniation negative
## 757 calumnies negative
## 758 calumnious negative
## 759 calumniously negative
## 760 calumny negative
## 761 cancer negative
## 762 cancerous negative
## 763 cannibal negative
## 764 cannibalize negative
## 765 capability positive
## 766 capable positive
## 767 capably positive
## 768 capitulate negative
## 769 capricious negative
## 770 capriciously negative
## 771 capriciousness negative
## 772 capsize negative
## 773 captivate positive
## 774 captivating positive
## 775 carefree positive
## 776 careless negative
## 777 carelessness negative
## 778 caricature negative
## 779 carnage negative
## 780 carp negative
## 781 cartoonish negative
## 782 cash-strapped negative
## 783 cashback positive
## 784 cashbacks positive
## 785 castigate negative
## 786 castrated negative
## 787 casualty negative
## 788 cataclysm negative
## 789 cataclysmal negative
## 790 cataclysmic negative
## 791 cataclysmically negative
## 792 catastrophe negative
## 793 catastrophes negative
## 794 catastrophic negative
## 795 catastrophically negative
## 796 catastrophies negative
## 797 catchy positive
## 798 caustic negative
## 799 caustically negative
## 800 cautionary negative
## 801 cave negative
## 802 celebrate positive
## 803 celebrated positive
## 804 celebration positive
## 805 celebratory positive
## 806 censure negative
## 807 chafe negative
## 808 chaff negative
## 809 chagrin negative
## 810 challenging negative
## 811 champ positive
## 812 champion positive
## 813 chaos negative
## 814 chaotic negative
## 815 charisma positive
## 816 charismatic positive
## 817 charitable positive
## 818 charm positive
## 819 charming positive
## 820 charmingly positive
## 821 chaste positive
## 822 chasten negative
## 823 chastise negative
## 824 chastisement negative
## 825 chatter negative
## 826 chatterbox negative
## 827 cheap negative
## 828 cheapen negative
## 829 cheaper positive
## 830 cheapest positive
## 831 cheaply negative
## 832 cheat negative
## 833 cheated negative
## 834 cheater negative
## 835 cheating negative
## 836 cheats negative
## 837 checkered negative
## 838 cheer positive
## 839 cheerful positive
## 840 cheerless negative
## 841 cheery positive
## 842 cheesy negative
## 843 cherish positive
## 844 cherished positive
## 845 cherub positive
## 846 chic positive
## 847 chide negative
## 848 childish negative
## 849 chill negative
## 850 chilly negative
## 851 chintzy negative
## 852 chivalrous positive
## 853 chivalry positive
## 854 choke negative
## 855 choleric negative
## 856 choppy negative
## 857 chore negative
## 858 chronic negative
## 859 chunky negative
## 860 civility positive
## 861 civilize positive
## 862 clamor negative
## 863 clamorous negative
## 864 clarity positive
## 865 clash negative
## 866 classic positive
## 867 classy positive
## 868 clean positive
## 869 cleaner positive
## 870 cleanest positive
## 871 cleanliness positive
## 872 cleanly positive
## 873 clear positive
## 874 clear-cut positive
## 875 cleared positive
## 876 clearer positive
## 877 clearly positive
## 878 clears positive
## 879 clever positive
## 880 cleverly positive
## 881 cliche negative
## 882 cliched negative
## 883 clique negative
## 884 clog negative
## 885 clogged negative
## 886 clogs negative
## 887 cloud negative
## 888 clouding negative
## 889 cloudy negative
## 890 clueless negative
## 891 clumsy negative
## 892 clunky negative
## 893 coarse negative
## 894 cocky negative
## 895 coerce negative
## 896 coercion negative
## 897 coercive negative
## 898 cohere positive
## 899 coherence positive
## 900 coherent positive
## 901 cohesive positive
## 902 cold negative
## 903 coldly negative
## 904 collapse negative
## 905 collude negative
## 906 collusion negative
## 907 colorful positive
## 908 combative negative
## 909 combust negative
## 910 comely positive
## 911 comfort positive
## 912 comfortable positive
## 913 comfortably positive
## 914 comforting positive
## 915 comfy positive
## 916 comical negative
## 917 commend positive
## 918 commendable positive
## 919 commendably positive
## 920 commiserate negative
## 921 commitment positive
## 922 commodious positive
## 923 commonplace negative
## 924 commotion negative
## 925 commotions negative
## 926 compact positive
## 927 compactly positive
## 928 compassion positive
## 929 compassionate positive
## 930 compatible positive
## 931 competitive positive
## 932 complacent negative
## 933 complain negative
## 934 complained negative
## 935 complaining negative
## 936 complains negative
## 937 complaint negative
## 938 complaints negative
## 939 complement positive
## 940 complementary positive
## 941 complemented positive
## 942 complements positive
## 943 complex negative
## 944 compliant positive
## 945 complicated negative
## 946 complication negative
## 947 complicit negative
## 948 compliment positive
## 949 complimentary positive
## 950 comprehensive positive
## 951 compulsion negative
## 952 compulsive negative
## 953 concede negative
## 954 conceded negative
## 955 conceit negative
## 956 conceited negative
## 957 concen negative
## 958 concens negative
## 959 concern negative
## 960 concerned negative
## 961 concerns negative
## 962 concession negative
## 963 concessions negative
## 964 conciliate positive
## 965 conciliatory positive
## 966 concise positive
## 967 condemn negative
## 968 condemnable negative
## 969 condemnation negative
## 970 condemned negative
## 971 condemns negative
## 972 condescend negative
## 973 condescending negative
## 974 condescendingly negative
## 975 condescension negative
## 976 confess negative
## 977 confession negative
## 978 confessions negative
## 979 confidence positive
## 980 confident positive
## 981 confined negative
## 982 conflict negative
## 983 conflicted negative
## 984 conflicting negative
## 985 conflicts negative
## 986 confound negative
## 987 confounded negative
## 988 confounding negative
## 989 confront negative
## 990 confrontation negative
## 991 confrontational negative
## 992 confuse negative
## 993 confused negative
## 994 confuses negative
## 995 confusing negative
## 996 confusion negative
## 997 confusions negative
## 998 congenial positive
## 999 congested negative
## 1000 congestion negative
## 1001 congratulate positive
## 1002 congratulation positive
## 1003 congratulations positive
## 1004 congratulatory positive
## 1005 cons negative
## 1006 conscientious positive
## 1007 conscons negative
## 1008 conservative negative
## 1009 considerate positive
## 1010 consistent positive
## 1011 consistently positive
## 1012 conspicuous negative
## 1013 conspicuously negative
## 1014 conspiracies negative
## 1015 conspiracy negative
## 1016 conspirator negative
## 1017 conspiratorial negative
## 1018 conspire negative
## 1019 consternation negative
## 1020 constructive positive
## 1021 consummate positive
## 1022 contagious negative
## 1023 contaminate negative
## 1024 contaminated negative
## 1025 contaminates negative
## 1026 contaminating negative
## 1027 contamination negative
## 1028 contempt negative
## 1029 contemptible negative
## 1030 contemptuous negative
## 1031 contemptuously negative
## 1032 contend negative
## 1033 contention negative
## 1034 contentious negative
## 1035 contentment positive
## 1036 continuity positive
## 1037 contort negative
## 1038 contortions negative
## 1039 contradict negative
## 1040 contradiction negative
## 1041 contradictory negative
## 1042 contrariness negative
## 1043 contrasty positive
## 1044 contravene negative
## 1045 contribution positive
## 1046 contrive negative
## 1047 contrived negative
## 1048 controversial negative
## 1049 controversy negative
## 1050 convenience positive
## 1051 convenient positive
## 1052 conveniently positive
## 1053 convience positive
## 1054 convienient positive
## 1055 convient positive
## 1056 convincing positive
## 1057 convincingly positive
## 1058 convoluted negative
## 1059 cool positive
## 1060 coolest positive
## 1061 cooperative positive
## 1062 cooperatively positive
## 1063 cornerstone positive
## 1064 correct positive
## 1065 correctly positive
## 1066 corrode negative
## 1067 corrosion negative
## 1068 corrosions negative
## 1069 corrosive negative
## 1070 corrupt negative
## 1071 corrupted negative
## 1072 corrupting negative
## 1073 corruption negative
## 1074 corrupts negative
## 1075 corruptted negative
## 1076 cost-effective positive
## 1077 cost-saving positive
## 1078 costlier negative
## 1079 costly negative
## 1080 counter-attack positive
## 1081 counter-attacks positive
## 1082 counter-productive negative
## 1083 counterproductive negative
## 1084 coupists negative
## 1085 courage positive
## 1086 courageous positive
## 1087 courageously positive
## 1088 courageousness positive
## 1089 courteous positive
## 1090 courtly positive
## 1091 covenant positive
## 1092 covetous negative
## 1093 coward negative
## 1094 cowardly negative
## 1095 cozy positive
## 1096 crabby negative
## 1097 crack negative
## 1098 cracked negative
## 1099 cracks negative
## 1100 craftily negative
## 1101 craftly negative
## 1102 crafty negative
## 1103 cramp negative
## 1104 cramped negative
## 1105 cramping negative
## 1106 cranky negative
## 1107 crap negative
## 1108 crappy negative
## 1109 craps negative
## 1110 crash negative
## 1111 crashed negative
## 1112 crashes negative
## 1113 crashing negative
## 1114 crass negative
## 1115 craven negative
## 1116 cravenly negative
## 1117 craze negative
## 1118 crazily negative
## 1119 craziness negative
## 1120 crazy negative
## 1121 creak negative
## 1122 creaking negative
## 1123 creaks negative
## 1124 creative positive
## 1125 credence positive
## 1126 credible positive
## 1127 credulous negative
## 1128 creep negative
## 1129 creeping negative
## 1130 creeps negative
## 1131 creepy negative
## 1132 crept negative
## 1133 crime negative
## 1134 criminal negative
## 1135 cringe negative
## 1136 cringed negative
## 1137 cringes negative
## 1138 cripple negative
## 1139 crippled negative
## 1140 cripples negative
## 1141 crippling negative
## 1142 crisis negative
## 1143 crisp positive
## 1144 crisper positive
## 1145 critic negative
## 1146 critical negative
## 1147 criticism negative
## 1148 criticisms negative
## 1149 criticize negative
## 1150 criticized negative
## 1151 criticizing negative
## 1152 critics negative
## 1153 cronyism negative
## 1154 crook negative
## 1155 crooked negative
## 1156 crooks negative
## 1157 crowded negative
## 1158 crowdedness negative
## 1159 crude negative
## 1160 cruel negative
## 1161 crueler negative
## 1162 cruelest negative
## 1163 cruelly negative
## 1164 cruelness negative
## 1165 cruelties negative
## 1166 cruelty negative
## 1167 crumble negative
## 1168 crumbling negative
## 1169 crummy negative
## 1170 crumple negative
## 1171 crumpled negative
## 1172 crumples negative
## 1173 crush negative
## 1174 crushed negative
## 1175 crushing negative
## 1176 cry negative
## 1177 culpable negative
## 1178 culprit negative
## 1179 cumbersome negative
## 1180 cunt negative
## 1181 cunts negative
## 1182 cuplrit negative
## 1183 cure positive
## 1184 cure-all positive
## 1185 curse negative
## 1186 cursed negative
## 1187 curses negative
## 1188 curt negative
## 1189 cushy positive
## 1190 cuss negative
## 1191 cussed negative
## 1192 cute positive
## 1193 cuteness positive
## 1194 cutthroat negative
## 1195 cynical negative
## 1196 cynicism negative
## 1197 d*mn negative
## 1198 damage negative
## 1199 damaged negative
## 1200 damages negative
## 1201 damaging negative
## 1202 damn negative
## 1203 damnable negative
## 1204 damnably negative
## 1205 damnation negative
## 1206 damned negative
## 1207 damning negative
## 1208 damper negative
## 1209 danger negative
## 1210 dangerous negative
## 1211 dangerousness negative
## 1212 danke positive
## 1213 danken positive
## 1214 daring positive
## 1215 daringly positive
## 1216 dark negative
## 1217 darken negative
## 1218 darkened negative
## 1219 darker negative
## 1220 darkness negative
## 1221 darling positive
## 1222 dashing positive
## 1223 dastard negative
## 1224 dastardly negative
## 1225 daunt negative
## 1226 daunting negative
## 1227 dauntingly negative
## 1228 dauntless positive
## 1229 dawdle negative
## 1230 dawn positive
## 1231 daze negative
## 1232 dazed negative
## 1233 dazzle positive
## 1234 dazzled positive
## 1235 dazzling positive
## 1236 dead negative
## 1237 dead-cheap positive
## 1238 dead-on positive
## 1239 deadbeat negative
## 1240 deadlock negative
## 1241 deadly negative
## 1242 deadweight negative
## 1243 deaf negative
## 1244 dearth negative
## 1245 death negative
## 1246 debacle negative
## 1247 debase negative
## 1248 debasement negative
## 1249 debaser negative
## 1250 debatable negative
## 1251 debauch negative
## 1252 debaucher negative
## 1253 debauchery negative
## 1254 debilitate negative
## 1255 debilitating negative
## 1256 debility negative
## 1257 debt negative
## 1258 debts negative
## 1259 decadence negative
## 1260 decadent negative
## 1261 decay negative
## 1262 decayed negative
## 1263 deceit negative
## 1264 deceitful negative
## 1265 deceitfully negative
## 1266 deceitfulness negative
## 1267 deceive negative
## 1268 deceiver negative
## 1269 deceivers negative
## 1270 deceiving negative
## 1271 decency positive
## 1272 decent positive
## 1273 deception negative
## 1274 deceptive negative
## 1275 deceptively negative
## 1276 decisive positive
## 1277 decisiveness positive
## 1278 declaim negative
## 1279 decline negative
## 1280 declines negative
## 1281 declining negative
## 1282 decrement negative
## 1283 decrepit negative
## 1284 decrepitude negative
## 1285 decry negative
## 1286 dedicated positive
## 1287 defamation negative
## 1288 defamations negative
## 1289 defamatory negative
## 1290 defame negative
## 1291 defeat positive
## 1292 defeated positive
## 1293 defeating positive
## 1294 defeats positive
## 1295 defect negative
## 1296 defective negative
## 1297 defects negative
## 1298 defender positive
## 1299 defensive negative
## 1300 deference positive
## 1301 defiance negative
## 1302 defiant negative
## 1303 defiantly negative
## 1304 deficiencies negative
## 1305 deficiency negative
## 1306 deficient negative
## 1307 defile negative
## 1308 defiler negative
## 1309 deform negative
## 1310 deformed negative
## 1311 defrauding negative
## 1312 deft positive
## 1313 defunct negative
## 1314 defy negative
## 1315 degenerate negative
## 1316 degenerately negative
## 1317 degeneration negative
## 1318 deginified positive
## 1319 degradation negative
## 1320 degrade negative
## 1321 degrading negative
## 1322 degradingly negative
## 1323 dehumanization negative
## 1324 dehumanize negative
## 1325 deign negative
## 1326 deject negative
## 1327 dejected negative
## 1328 dejectedly negative
## 1329 dejection negative
## 1330 delay negative
## 1331 delayed negative
## 1332 delaying negative
## 1333 delays negative
## 1334 delectable positive
## 1335 delicacy positive
## 1336 delicate positive
## 1337 delicious positive
## 1338 delight positive
## 1339 delighted positive
## 1340 delightful positive
## 1341 delightfully positive
## 1342 delightfulness positive
## 1343 delinquency negative
## 1344 delinquent negative
## 1345 delirious negative
## 1346 delirium negative
## 1347 delude negative
## 1348 deluded negative
## 1349 deluge negative
## 1350 delusion negative
## 1351 delusional negative
## 1352 delusions negative
## 1353 demean negative
## 1354 demeaning negative
## 1355 demise negative
## 1356 demolish negative
## 1357 demolisher negative
## 1358 demon negative
## 1359 demonic negative
## 1360 demonize negative
## 1361 demonized negative
## 1362 demonizes negative
## 1363 demonizing negative
## 1364 demoralize negative
## 1365 demoralizing negative
## 1366 demoralizingly negative
## 1367 denial negative
## 1368 denied negative
## 1369 denies negative
## 1370 denigrate negative
## 1371 denounce negative
## 1372 dense negative
## 1373 dent negative
## 1374 dented negative
## 1375 dents negative
## 1376 denunciate negative
## 1377 denunciation negative
## 1378 denunciations negative
## 1379 deny negative
## 1380 denying negative
## 1381 dependable positive
## 1382 dependably positive
## 1383 deplete negative
## 1384 deplorable negative
## 1385 deplorably negative
## 1386 deplore negative
## 1387 deploring negative
## 1388 deploringly negative
## 1389 deprave negative
## 1390 depraved negative
## 1391 depravedly negative
## 1392 deprecate negative
## 1393 depress negative
## 1394 depressed negative
## 1395 depressing negative
## 1396 depressingly negative
## 1397 depression negative
## 1398 depressions negative
## 1399 deprive negative
## 1400 deprived negative
## 1401 deride negative
## 1402 derision negative
## 1403 derisive negative
## 1404 derisively negative
## 1405 derisiveness negative
## 1406 derogatory negative
## 1407 desecrate negative
## 1408 desert negative
## 1409 desertion negative
## 1410 deservedly positive
## 1411 deserving positive
## 1412 desiccate negative
## 1413 desiccated negative
## 1414 desirable positive
## 1415 desiring positive
## 1416 desirous positive
## 1417 desititute negative
## 1418 desolate negative
## 1419 desolately negative
## 1420 desolation negative
## 1421 despair negative
## 1422 despairing negative
## 1423 despairingly negative
## 1424 desperate negative
## 1425 desperately negative
## 1426 desperation negative
## 1427 despicable negative
## 1428 despicably negative
## 1429 despise negative
## 1430 despised negative
## 1431 despoil negative
## 1432 despoiler negative
## 1433 despondence negative
## 1434 despondency negative
## 1435 despondent negative
## 1436 despondently negative
## 1437 despot negative
## 1438 despotic negative
## 1439 despotism negative
## 1440 destabilisation negative
## 1441 destains negative
## 1442 destiny positive
## 1443 destitute negative
## 1444 destitution negative
## 1445 destroy negative
## 1446 destroyer negative
## 1447 destruction negative
## 1448 destructive negative
## 1449 desultory negative
## 1450 detachable positive
## 1451 deter negative
## 1452 deteriorate negative
## 1453 deteriorating negative
## 1454 deterioration negative
## 1455 deterrent negative
## 1456 detest negative
## 1457 detestable negative
## 1458 detestably negative
## 1459 detested negative
## 1460 detesting negative
## 1461 detests negative
## 1462 detract negative
## 1463 detracted negative
## 1464 detracting negative
## 1465 detraction negative
## 1466 detracts negative
## 1467 detriment negative
## 1468 detrimental negative
## 1469 devastate negative
## 1470 devastated negative
## 1471 devastates negative
## 1472 devastating negative
## 1473 devastatingly negative
## 1474 devastation negative
## 1475 deviate negative
## 1476 deviation negative
## 1477 devil negative
## 1478 devilish negative
## 1479 devilishly negative
## 1480 devilment negative
## 1481 devilry negative
## 1482 devious negative
## 1483 deviously negative
## 1484 deviousness negative
## 1485 devoid negative
## 1486 devout positive
## 1487 dexterous positive
## 1488 dexterously positive
## 1489 dextrous positive
## 1490 diabolic negative
## 1491 diabolical negative
## 1492 diabolically negative
## 1493 diametrically negative
## 1494 diappointed negative
## 1495 diatribe negative
## 1496 diatribes negative
## 1497 dick negative
## 1498 dictator negative
## 1499 dictatorial negative
## 1500 die negative
## 1501 die-hard negative
## 1502 died negative
## 1503 dies negative
## 1504 difficult negative
## 1505 difficulties negative
## 1506 difficulty negative
## 1507 diffidence negative
## 1508 dignified positive
## 1509 dignify positive
## 1510 dignity positive
## 1511 dilapidated negative
## 1512 dilemma negative
## 1513 diligence positive
## 1514 diligent positive
## 1515 diligently positive
## 1516 dilly-dally negative
## 1517 dim negative
## 1518 dimmer negative
## 1519 din negative
## 1520 ding negative
## 1521 dings negative
## 1522 dinky negative
## 1523 diplomatic positive
## 1524 dire negative
## 1525 direly negative
## 1526 direness negative
## 1527 dirt negative
## 1528 dirt-cheap positive
## 1529 dirtbag negative
## 1530 dirtbags negative
## 1531 dirts negative
## 1532 dirty negative
## 1533 disable negative
## 1534 disabled negative
## 1535 disaccord negative
## 1536 disadvantage negative
## 1537 disadvantaged negative
## 1538 disadvantageous negative
## 1539 disadvantages negative
## 1540 disaffect negative
## 1541 disaffected negative
## 1542 disaffirm negative
## 1543 disagree negative
## 1544 disagreeable negative
## 1545 disagreeably negative
## 1546 disagreed negative
## 1547 disagreeing negative
## 1548 disagreement negative
## 1549 disagrees negative
## 1550 disallow negative
## 1551 disapointed negative
## 1552 disapointing negative
## 1553 disapointment negative
## 1554 disappoint negative
## 1555 disappointed negative
## 1556 disappointing negative
## 1557 disappointingly negative
## 1558 disappointment negative
## 1559 disappointments negative
## 1560 disappoints negative
## 1561 disapprobation negative
## 1562 disapproval negative
## 1563 disapprove negative
## 1564 disapproving negative
## 1565 disarm negative
## 1566 disarray negative
## 1567 disaster negative
## 1568 disasterous negative
## 1569 disastrous negative
## 1570 disastrously negative
## 1571 disavow negative
## 1572 disavowal negative
## 1573 disbelief negative
## 1574 disbelieve negative
## 1575 disbeliever negative
## 1576 disclaim negative
## 1577 discombobulate negative
## 1578 discomfit negative
## 1579 discomfititure negative
## 1580 discomfort negative
## 1581 discompose negative
## 1582 disconcert negative
## 1583 disconcerted negative
## 1584 disconcerting negative
## 1585 disconcertingly negative
## 1586 disconsolate negative
## 1587 disconsolately negative
## 1588 disconsolation negative
## 1589 discontent negative
## 1590 discontented negative
## 1591 discontentedly negative
## 1592 discontinued negative
## 1593 discontinuity negative
## 1594 discontinuous negative
## 1595 discord negative
## 1596 discordance negative
## 1597 discordant negative
## 1598 discountenance negative
## 1599 discourage negative
## 1600 discouragement negative
## 1601 discouraging negative
## 1602 discouragingly negative
## 1603 discourteous negative
## 1604 discourteously negative
## 1605 discoutinous negative
## 1606 discredit negative
## 1607 discrepant negative
## 1608 discriminate negative
## 1609 discrimination negative
## 1610 discriminatory negative
## 1611 disdain negative
## 1612 disdained negative
## 1613 disdainful negative
## 1614 disdainfully negative
## 1615 disfavor negative
## 1616 disgrace negative
## 1617 disgraced negative
## 1618 disgraceful negative
## 1619 disgracefully negative
## 1620 disgruntle negative
## 1621 disgruntled negative
## 1622 disgust negative
## 1623 disgusted negative
## 1624 disgustedly negative
## 1625 disgustful negative
## 1626 disgustfully negative
## 1627 disgusting negative
## 1628 disgustingly negative
## 1629 dishearten negative
## 1630 disheartening negative
## 1631 dishearteningly negative
## 1632 dishonest negative
## 1633 dishonestly negative
## 1634 dishonesty negative
## 1635 dishonor negative
## 1636 dishonorable negative
## 1637 dishonorablely negative
## 1638 disillusion negative
## 1639 disillusioned negative
## 1640 disillusionment negative
## 1641 disillusions negative
## 1642 disinclination negative
## 1643 disinclined negative
## 1644 disingenuous negative
## 1645 disingenuously negative
## 1646 disintegrate negative
## 1647 disintegrated negative
## 1648 disintegrates negative
## 1649 disintegration negative
## 1650 disinterest negative
## 1651 disinterested negative
## 1652 dislike negative
## 1653 disliked negative
## 1654 dislikes negative
## 1655 disliking negative
## 1656 dislocated negative
## 1657 disloyal negative
## 1658 disloyalty negative
## 1659 dismal negative
## 1660 dismally negative
## 1661 dismalness negative
## 1662 dismay negative
## 1663 dismayed negative
## 1664 dismaying negative
## 1665 dismayingly negative
## 1666 dismissive negative
## 1667 dismissively negative
## 1668 disobedience negative
## 1669 disobedient negative
## 1670 disobey negative
## 1671 disoobedient negative
## 1672 disorder negative
## 1673 disordered negative
## 1674 disorderly negative
## 1675 disorganized negative
## 1676 disorient negative
## 1677 disoriented negative
## 1678 disown negative
## 1679 disparage negative
## 1680 disparaging negative
## 1681 disparagingly negative
## 1682 dispensable negative
## 1683 dispirit negative
## 1684 dispirited negative
## 1685 dispiritedly negative
## 1686 dispiriting negative
## 1687 displace negative
## 1688 displaced negative
## 1689 displease negative
## 1690 displeased negative
## 1691 displeasing negative
## 1692 displeasure negative
## 1693 disproportionate negative
## 1694 disprove negative
## 1695 disputable negative
## 1696 dispute negative
## 1697 disputed negative
## 1698 disquiet negative
## 1699 disquieting negative
## 1700 disquietingly negative
## 1701 disquietude negative
## 1702 disregard negative
## 1703 disregardful negative
## 1704 disreputable negative
## 1705 disrepute negative
## 1706 disrespect negative
## 1707 disrespectable negative
## 1708 disrespectablity negative
## 1709 disrespectful negative
## 1710 disrespectfully negative
## 1711 disrespectfulness negative
## 1712 disrespecting negative
## 1713 disrupt negative
## 1714 disruption negative
## 1715 disruptive negative
## 1716 diss negative
## 1717 dissapointed negative
## 1718 dissappointed negative
## 1719 dissappointing negative
## 1720 dissatisfaction negative
## 1721 dissatisfactory negative
## 1722 dissatisfied negative
## 1723 dissatisfies negative
## 1724 dissatisfy negative
## 1725 dissatisfying negative
## 1726 dissed negative
## 1727 dissemble negative
## 1728 dissembler negative
## 1729 dissension negative
## 1730 dissent negative
## 1731 dissenter negative
## 1732 dissention negative
## 1733 disservice negative
## 1734 disses negative
## 1735 dissidence negative
## 1736 dissident negative
## 1737 dissidents negative
## 1738 dissing negative
## 1739 dissocial negative
## 1740 dissolute negative
## 1741 dissolution negative
## 1742 dissonance negative
## 1743 dissonant negative
## 1744 dissonantly negative
## 1745 dissuade negative
## 1746 dissuasive negative
## 1747 distains negative
## 1748 distaste negative
## 1749 distasteful negative
## 1750 distastefully negative
## 1751 distinction positive
## 1752 distinctive positive
## 1753 distinguished positive
## 1754 distort negative
## 1755 distorted negative
## 1756 distortion negative
## 1757 distorts negative
## 1758 distract negative
## 1759 distracting negative
## 1760 distraction negative
## 1761 distraught negative
## 1762 distraughtly negative
## 1763 distraughtness negative
## 1764 distress negative
## 1765 distressed negative
## 1766 distressing negative
## 1767 distressingly negative
## 1768 distrust negative
## 1769 distrustful negative
## 1770 distrusting negative
## 1771 disturb negative
## 1772 disturbance negative
## 1773 disturbed negative
## 1774 disturbing negative
## 1775 disturbingly negative
## 1776 disunity negative
## 1777 disvalue negative
## 1778 divergent negative
## 1779 diversified positive
## 1780 divine positive
## 1781 divinely positive
## 1782 divisive negative
## 1783 divisively negative
## 1784 divisiveness negative
## 1785 dizzing negative
## 1786 dizzingly negative
## 1787 dizzy negative
## 1788 doddering negative
## 1789 dodgey negative
## 1790 dogged negative
## 1791 doggedly negative
## 1792 dogmatic negative
## 1793 doldrums negative
## 1794 dominate positive
## 1795 dominated positive
## 1796 dominates positive
## 1797 domineer negative
## 1798 domineering negative
## 1799 donside negative
## 1800 doom negative
## 1801 doomed negative
## 1802 doomsday negative
## 1803 dope negative
## 1804 dote positive
## 1805 dotingly positive
## 1806 doubt negative
## 1807 doubtful negative
## 1808 doubtfully negative
## 1809 doubtless positive
## 1810 doubts negative
## 1811 douchbag negative
## 1812 douchebag negative
## 1813 douchebags negative
## 1814 downbeat negative
## 1815 downcast negative
## 1816 downer negative
## 1817 downfall negative
## 1818 downfallen negative
## 1819 downgrade negative
## 1820 downhearted negative
## 1821 downheartedly negative
## 1822 downhill negative
## 1823 downside negative
## 1824 downsides negative
## 1825 downturn negative
## 1826 downturns negative
## 1827 drab negative
## 1828 draconian negative
## 1829 draconic negative
## 1830 drag negative
## 1831 dragged negative
## 1832 dragging negative
## 1833 dragoon negative
## 1834 drags negative
## 1835 drain negative
## 1836 drained negative
## 1837 draining negative
## 1838 drains negative
## 1839 drastic negative
## 1840 drastically negative
## 1841 drawback negative
## 1842 drawbacks negative
## 1843 dread negative
## 1844 dreadful negative
## 1845 dreadfully negative
## 1846 dreadfulness negative
## 1847 dreamland positive
## 1848 dreary negative
## 1849 dripped negative
## 1850 dripping negative
## 1851 drippy negative
## 1852 drips negative
## 1853 drones negative
## 1854 droop negative
## 1855 droops negative
## 1856 drop-out negative
## 1857 drop-outs negative
## 1858 dropout negative
## 1859 dropouts negative
## 1860 drought negative
## 1861 drowning negative
## 1862 drunk negative
## 1863 drunkard negative
## 1864 drunken negative
## 1865 dubious negative
## 1866 dubiously negative
## 1867 dubitable negative
## 1868 dud negative
## 1869 dull negative
## 1870 dullard negative
## 1871 dumb negative
## 1872 dumbfound negative
## 1873 dumbfounded positive
## 1874 dumbfounding positive
## 1875 dummy-proof positive
## 1876 dump negative
## 1877 dumped negative
## 1878 dumping negative
## 1879 dumps negative
## 1880 dunce negative
## 1881 dungeon negative
## 1882 dungeons negative
## 1883 dupe negative
## 1884 durable positive
## 1885 dust negative
## 1886 dusty negative
## 1887 dwindling negative
## 1888 dying negative
## 1889 dynamic positive
## 1890 eager positive
## 1891 eagerly positive
## 1892 eagerness positive
## 1893 earnest positive
## 1894 earnestly positive
## 1895 earnestness positive
## 1896 earsplitting negative
## 1897 ease positive
## 1898 eased positive
## 1899 eases positive
## 1900 easier positive
## 1901 easiest positive
## 1902 easiness positive
## 1903 easing positive
## 1904 easy positive
## 1905 easy-to-use positive
## 1906 easygoing positive
## 1907 ebullience positive
## 1908 ebullient positive
## 1909 ebulliently positive
## 1910 eccentric negative
## 1911 eccentricity negative
## 1912 ecenomical positive
## 1913 economical positive
## 1914 ecstasies positive
## 1915 ecstasy positive
## 1916 ecstatic positive
## 1917 ecstatically positive
## 1918 edify positive
## 1919 educated positive
## 1920 effective positive
## 1921 effectively positive
## 1922 effectiveness positive
## 1923 effectual positive
## 1924 efficacious positive
## 1925 efficient positive
## 1926 efficiently positive
## 1927 effigy negative
## 1928 effortless positive
## 1929 effortlessly positive
## 1930 effrontery negative
## 1931 effusion positive
## 1932 effusive positive
## 1933 effusively positive
## 1934 effusiveness positive
## 1935 egocentric negative
## 1936 egomania negative
## 1937 egotism negative
## 1938 egotistical negative
## 1939 egotistically negative
## 1940 egregious negative
## 1941 egregiously negative
## 1942 elan positive
## 1943 elate positive
## 1944 elated positive
## 1945 elatedly positive
## 1946 elation positive
## 1947 election-rigger negative
## 1948 electrify positive
## 1949 elegance positive
## 1950 elegant positive
## 1951 elegantly positive
## 1952 elevate positive
## 1953 elimination negative
## 1954 elite positive
## 1955 eloquence positive
## 1956 eloquent positive
## 1957 eloquently positive
## 1958 emaciated negative
## 1959 emasculate negative
## 1960 embarrass negative
## 1961 embarrassing negative
## 1962 embarrassingly negative
## 1963 embarrassment negative
## 1964 embattled negative
## 1965 embolden positive
## 1966 embroil negative
## 1967 embroiled negative
## 1968 embroilment negative
## 1969 emergency negative
## 1970 eminence positive
## 1971 eminent positive
## 1972 empathize positive
## 1973 empathy positive
## 1974 emphatic negative
## 1975 emphatically negative
## 1976 empower positive
## 1977 empowerment positive
## 1978 emptiness negative
## 1979 enchant positive
## 1980 enchanted positive
## 1981 enchanting positive
## 1982 enchantingly positive
## 1983 encourage positive
## 1984 encouragement positive
## 1985 encouraging positive
## 1986 encouragingly positive
## 1987 encroach negative
## 1988 encroachment negative
## 1989 endanger negative
## 1990 endear positive
## 1991 endearing positive
## 1992 endorse positive
## 1993 endorsed positive
## 1994 endorsement positive
## 1995 endorses positive
## 1996 endorsing positive
## 1997 enemies negative
## 1998 enemy negative
## 1999 energetic positive
## 2000 energize positive
## 2001 energy-efficient positive
## 2002 energy-saving positive
## 2003 enervate negative
## 2004 enfeeble negative
## 2005 enflame negative
## 2006 engaging positive
## 2007 engrossing positive
## 2008 engulf negative
## 2009 enhance positive
## 2010 enhanced positive
## 2011 enhancement positive
## 2012 enhances positive
## 2013 enjoin negative
## 2014 enjoy positive
## 2015 enjoyable positive
## 2016 enjoyably positive
## 2017 enjoyed positive
## 2018 enjoying positive
## 2019 enjoyment positive
## 2020 enjoys positive
## 2021 enlighten positive
## 2022 enlightenment positive
## 2023 enliven positive
## 2024 enmity negative
## 2025 ennoble positive
## 2026 enough positive
## 2027 enrage negative
## 2028 enraged negative
## 2029 enraging negative
## 2030 enrapt positive
## 2031 enrapture positive
## 2032 enraptured positive
## 2033 enrich positive
## 2034 enrichment positive
## 2035 enslave negative
## 2036 entangle negative
## 2037 entanglement negative
## 2038 enterprising positive
## 2039 entertain positive
## 2040 entertaining positive
## 2041 entertains positive
## 2042 enthral positive
## 2043 enthrall positive
## 2044 enthralled positive
## 2045 enthuse positive
## 2046 enthusiasm positive
## 2047 enthusiast positive
## 2048 enthusiastic positive
## 2049 enthusiastically positive
## 2050 entice positive
## 2051 enticed positive
## 2052 enticing positive
## 2053 enticingly positive
## 2054 entranced positive
## 2055 entrancing positive
## 2056 entrap negative
## 2057 entrapment negative
## 2058 entrust positive
## 2059 enviable positive
## 2060 enviably positive
## 2061 envious positive
## 2062 envious negative
## 2063 enviously positive
## 2064 enviously negative
## 2065 enviousness positive
## 2066 enviousness negative
## 2067 envy positive
## 2068 epidemic negative
## 2069 equitable positive
## 2070 equivocal negative
## 2071 erase negative
## 2072 ergonomical positive
## 2073 erode negative
## 2074 erodes negative
## 2075 erosion negative
## 2076 err negative
## 2077 err-free positive
## 2078 errant negative
## 2079 erratic negative
## 2080 erratically negative
## 2081 erroneous negative
## 2082 erroneously negative
## 2083 error negative
## 2084 errors negative
## 2085 erudite positive
## 2086 eruptions negative
## 2087 escapade negative
## 2088 eschew negative
## 2089 estranged negative
## 2090 ethical positive
## 2091 eulogize positive
## 2092 euphoria positive
## 2093 euphoric positive
## 2094 euphorically positive
## 2095 evade negative
## 2096 evaluative positive
## 2097 evasion negative
## 2098 evasive negative
## 2099 evenly positive
## 2100 eventful positive
## 2101 everlasting positive
## 2102 evil negative
## 2103 evildoer negative
## 2104 evils negative
## 2105 eviscerate negative
## 2106 evocative positive
## 2107 exacerbate negative
## 2108 exagerate negative
## 2109 exagerated negative
## 2110 exagerates negative
## 2111 exaggerate negative
## 2112 exaggeration negative
## 2113 exalt positive
## 2114 exaltation positive
## 2115 exalted positive
## 2116 exaltedly positive
## 2117 exalting positive
## 2118 exaltingly positive
## 2119 examplar positive
## 2120 examplary positive
## 2121 exasperate negative
## 2122 exasperated negative
## 2123 exasperating negative
## 2124 exasperatingly negative
## 2125 exasperation negative
## 2126 excallent positive
## 2127 exceed positive
## 2128 exceeded positive
## 2129 exceeding positive
## 2130 exceedingly positive
## 2131 exceeds positive
## 2132 excel positive
## 2133 exceled positive
## 2134 excelent positive
## 2135 excellant positive
## 2136 excelled positive
## 2137 excellence positive
## 2138 excellency positive
## 2139 excellent positive
## 2140 excellently positive
## 2141 excels positive
## 2142 exceptional positive
## 2143 exceptionally positive
## 2144 excessive negative
## 2145 excessively negative
## 2146 excite positive
## 2147 excited positive
## 2148 excitedly positive
## 2149 excitedness positive
## 2150 excitement positive
## 2151 excites positive
## 2152 exciting positive
## 2153 excitingly positive
## 2154 exclusion negative
## 2155 excoriate negative
## 2156 excruciating negative
## 2157 excruciatingly negative
## 2158 excuse negative
## 2159 excuses negative
## 2160 execrate negative
## 2161 exellent positive
## 2162 exemplar positive
## 2163 exemplary positive
## 2164 exhaust negative
## 2165 exhausted negative
## 2166 exhaustion negative
## 2167 exhausts negative
## 2168 exhilarate positive
## 2169 exhilarating positive
## 2170 exhilaratingly positive
## 2171 exhilaration positive
## 2172 exhorbitant negative
## 2173 exhort negative
## 2174 exile negative
## 2175 exonerate positive
## 2176 exorbitant negative
## 2177 exorbitantance negative
## 2178 exorbitantly negative
## 2179 expansive positive
## 2180 expeditiously positive
## 2181 expel negative
## 2182 expensive negative
## 2183 expertly positive
## 2184 expire negative
## 2185 expired negative
## 2186 explode negative
## 2187 exploit negative
## 2188 exploitation negative
## 2189 explosive negative
## 2190 expropriate negative
## 2191 expropriation negative
## 2192 expulse negative
## 2193 expunge negative
## 2194 exquisite positive
## 2195 exquisitely positive
## 2196 exterminate negative
## 2197 extermination negative
## 2198 extinguish negative
## 2199 extol positive
## 2200 extoll positive
## 2201 extort negative
## 2202 extortion negative
## 2203 extraneous negative
## 2204 extraordinarily positive
## 2205 extraordinary positive
## 2206 extravagance negative
## 2207 extravagant negative
## 2208 extravagantly negative
## 2209 extremism negative
## 2210 extremist negative
## 2211 extremists negative
## 2212 exuberance positive
## 2213 exuberant positive
## 2214 exuberantly positive
## 2215 exult positive
## 2216 exultant positive
## 2217 exultation positive
## 2218 exultingly positive
## 2219 eye-catch positive
## 2220 eye-catching positive
## 2221 eyecatch positive
## 2222 eyecatching positive
## 2223 eyesore negative
## 2224 f**k negative
## 2225 fabricate negative
## 2226 fabrication negative
## 2227 fabulous positive
## 2228 fabulously positive
## 2229 facetious negative
## 2230 facetiously negative
## 2231 facilitate positive
## 2232 fail negative
## 2233 failed negative
## 2234 failing negative
## 2235 fails negative
## 2236 failure negative
## 2237 failures negative
## 2238 faint negative
## 2239 fainthearted negative
## 2240 fair positive
## 2241 fairly positive
## 2242 fairness positive
## 2243 faith positive
## 2244 faithful positive
## 2245 faithfully positive
## 2246 faithfulness positive
## 2247 faithless negative
## 2248 fake negative
## 2249 fall negative
## 2250 fallacies negative
## 2251 fallacious negative
## 2252 fallaciously negative
## 2253 fallaciousness negative
## 2254 fallacy negative
## 2255 fallen negative
## 2256 falling negative
## 2257 fallout negative
## 2258 falls negative
## 2259 false negative
## 2260 falsehood negative
## 2261 falsely negative
## 2262 falsify negative
## 2263 falter negative
## 2264 faltered negative
## 2265 fame positive
## 2266 famed positive
## 2267 famine negative
## 2268 famished negative
## 2269 famous positive
## 2270 famously positive
## 2271 fanatic negative
## 2272 fanatical negative
## 2273 fanatically negative
## 2274 fanaticism negative
## 2275 fanatics negative
## 2276 fancier positive
## 2277 fanciful negative
## 2278 fancinating positive
## 2279 fancy positive
## 2280 fanfare positive
## 2281 fans positive
## 2282 fantastic positive
## 2283 fantastically positive
## 2284 far-fetched negative
## 2285 farce negative
## 2286 farcical negative
## 2287 farcical-yet-provocative negative
## 2288 farcically negative
## 2289 farfetched negative
## 2290 fascinate positive
## 2291 fascinating positive
## 2292 fascinatingly positive
## 2293 fascination positive
## 2294 fascism negative
## 2295 fascist negative
## 2296 fashionable positive
## 2297 fashionably positive
## 2298 fast positive
## 2299 fast-growing positive
## 2300 fast-paced positive
## 2301 faster positive
## 2302 fastest positive
## 2303 fastest-growing positive
## 2304 fastidious negative
## 2305 fastidiously negative
## 2306 fastuous negative
## 2307 fat negative
## 2308 fat-cat negative
## 2309 fat-cats negative
## 2310 fatal negative
## 2311 fatalistic negative
## 2312 fatalistically negative
## 2313 fatally negative
## 2314 fatcat negative
## 2315 fatcats negative
## 2316 fateful negative
## 2317 fatefully negative
## 2318 fathomless negative
## 2319 fatigue negative
## 2320 fatigued negative
## 2321 fatique negative
## 2322 fatty negative
## 2323 fatuity negative
## 2324 fatuous negative
## 2325 fatuously negative
## 2326 fault negative
## 2327 faultless positive
## 2328 faults negative
## 2329 faulty negative
## 2330 fav positive
## 2331 fave positive
## 2332 favor positive
## 2333 favorable positive
## 2334 favored positive
## 2335 favorite positive
## 2336 favorited positive
## 2337 favour positive
## 2338 fawningly negative
## 2339 faze negative
## 2340 fear negative
## 2341 fearful negative
## 2342 fearfully negative
## 2343 fearless positive
## 2344 fearlessly positive
## 2345 fears negative
## 2346 fearsome negative
## 2347 feasible positive
## 2348 feasibly positive
## 2349 feat positive
## 2350 feature-rich positive
## 2351 fecilitous positive
## 2352 feckless negative
## 2353 feeble negative
## 2354 feeblely negative
## 2355 feebleminded negative
## 2356 feign negative
## 2357 feint negative
## 2358 feisty positive
## 2359 felicitate positive
## 2360 felicitous positive
## 2361 felicity positive
## 2362 fell negative
## 2363 felon negative
## 2364 felonious negative
## 2365 ferociously negative
## 2366 ferocity negative
## 2367 fertile positive
## 2368 fervent positive
## 2369 fervently positive
## 2370 fervid positive
## 2371 fervidly positive
## 2372 fervor positive
## 2373 festive positive
## 2374 fetid negative
## 2375 fever negative
## 2376 feverish negative
## 2377 fevers negative
## 2378 fiasco negative
## 2379 fib negative
## 2380 fibber negative
## 2381 fickle negative
## 2382 fiction negative
## 2383 fictional negative
## 2384 fictitious negative
## 2385 fidelity positive
## 2386 fidget negative
## 2387 fidgety negative
## 2388 fiend negative
## 2389 fiendish negative
## 2390 fierce negative
## 2391 fiery positive
## 2392 figurehead negative
## 2393 filth negative
## 2394 filthy negative
## 2395 finagle negative
## 2396 fine positive
## 2397 fine-looking positive
## 2398 finely positive
## 2399 finer positive
## 2400 finest positive
## 2401 finicky negative
## 2402 firmer positive
## 2403 first-class positive
## 2404 first-in-class positive
## 2405 first-rate positive
## 2406 fissures negative
## 2407 fist negative
## 2408 flabbergast negative
## 2409 flabbergasted negative
## 2410 flagging negative
## 2411 flagrant negative
## 2412 flagrantly negative
## 2413 flair negative
## 2414 flairs negative
## 2415 flak negative
## 2416 flake negative
## 2417 flakey negative
## 2418 flakieness negative
## 2419 flaking negative
## 2420 flaky negative
## 2421 flare negative
## 2422 flares negative
## 2423 flareup negative
## 2424 flareups negative
## 2425 flashy positive
## 2426 flat-out negative
## 2427 flatter positive
## 2428 flattering positive
## 2429 flatteringly positive
## 2430 flaunt negative
## 2431 flaw negative
## 2432 flawed negative
## 2433 flawless positive
## 2434 flawlessly positive
## 2435 flaws negative
## 2436 flee negative
## 2437 fleed negative
## 2438 fleeing negative
## 2439 fleer negative
## 2440 flees negative
## 2441 fleeting negative
## 2442 flexibility positive
## 2443 flexible positive
## 2444 flicering negative
## 2445 flicker negative
## 2446 flickering negative
## 2447 flickers negative
## 2448 flighty negative
## 2449 flimflam negative
## 2450 flimsy negative
## 2451 flirt negative
## 2452 flirty negative
## 2453 floored negative
## 2454 flounder negative
## 2455 floundering negative
## 2456 flourish positive
## 2457 flourishing positive
## 2458 flout negative
## 2459 fluent positive
## 2460 fluster negative
## 2461 flutter positive
## 2462 foe negative
## 2463 fond positive
## 2464 fondly positive
## 2465 fondness positive
## 2466 fool negative
## 2467 fooled negative
## 2468 foolhardy negative
## 2469 foolish negative
## 2470 foolishly negative
## 2471 foolishness negative
## 2472 foolproof positive
## 2473 forbid negative
## 2474 forbidden negative
## 2475 forbidding negative
## 2476 forceful negative
## 2477 foreboding negative
## 2478 forebodingly negative
## 2479 foremost positive
## 2480 foresight positive
## 2481 forfeit negative
## 2482 forged negative
## 2483 forgetful negative
## 2484 forgetfully negative
## 2485 forgetfulness negative
## 2486 forlorn negative
## 2487 forlornly negative
## 2488 formidable positive
## 2489 forsake negative
## 2490 forsaken negative
## 2491 forswear negative
## 2492 fortitude positive
## 2493 fortuitous positive
## 2494 fortuitously positive
## 2495 fortunate positive
## 2496 fortunately positive
## 2497 fortune positive
## 2498 foul negative
## 2499 foully negative
## 2500 foulness negative
## 2501 fractious negative
## 2502 fractiously negative
## 2503 fracture negative
## 2504 fragile negative
## 2505 fragmented negative
## 2506 fragrant positive
## 2507 frail negative
## 2508 frantic negative
## 2509 frantically negative
## 2510 franticly negative
## 2511 fraud negative
## 2512 fraudulent negative
## 2513 fraught negative
## 2514 frazzle negative
## 2515 frazzled negative
## 2516 freak negative
## 2517 freaking negative
## 2518 freakish negative
## 2519 freakishly negative
## 2520 freaks negative
## 2521 free positive
## 2522 freed positive
## 2523 freedom positive
## 2524 freedoms positive
## 2525 freeze negative
## 2526 freezes negative
## 2527 freezing negative
## 2528 frenetic negative
## 2529 frenetically negative
## 2530 frenzied negative
## 2531 frenzy negative
## 2532 fresh positive
## 2533 fresher positive
## 2534 freshest positive
## 2535 fret negative
## 2536 fretful negative
## 2537 frets negative
## 2538 friction negative
## 2539 frictions negative
## 2540 fried negative
## 2541 friendliness positive
## 2542 friendly positive
## 2543 friggin negative
## 2544 frigging negative
## 2545 fright negative
## 2546 frighten negative
## 2547 frightening negative
## 2548 frighteningly negative
## 2549 frightful negative
## 2550 frightfully negative
## 2551 frigid negative
## 2552 frolic positive
## 2553 frost negative
## 2554 frown negative
## 2555 froze negative
## 2556 frozen negative
## 2557 frugal positive
## 2558 fruitful positive
## 2559 fruitless negative
## 2560 fruitlessly negative
## 2561 frustrate negative
## 2562 frustrated negative
## 2563 frustrates negative
## 2564 frustrating negative
## 2565 frustratingly negative
## 2566 frustration negative
## 2567 frustrations negative
## 2568 ftw positive
## 2569 fuck negative
## 2570 fucking negative
## 2571 fudge negative
## 2572 fugitive negative
## 2573 fulfillment positive
## 2574 full-blown negative
## 2575 fulminate negative
## 2576 fumble negative
## 2577 fume negative
## 2578 fumes negative
## 2579 fun positive
## 2580 fundamentalism negative
## 2581 funky negative
## 2582 funnily negative
## 2583 funny negative
## 2584 furious negative
## 2585 furiously negative
## 2586 furor negative
## 2587 fury negative
## 2588 fuss negative
## 2589 fussy negative
## 2590 fustigate negative
## 2591 fusty negative
## 2592 futile negative
## 2593 futilely negative
## 2594 futility negative
## 2595 futurestic positive
## 2596 futuristic positive
## 2597 fuzzy negative
## 2598 gabble negative
## 2599 gaff negative
## 2600 gaffe negative
## 2601 gaiety positive
## 2602 gaily positive
## 2603 gain positive
## 2604 gained positive
## 2605 gainful positive
## 2606 gainfully positive
## 2607 gaining positive
## 2608 gains positive
## 2609 gainsay negative
## 2610 gainsayer negative
## 2611 gall negative
## 2612 gallant positive
## 2613 gallantly positive
## 2614 galling negative
## 2615 gallingly negative
## 2616 galls negative
## 2617 galore positive
## 2618 gangster negative
## 2619 gape negative
## 2620 garbage negative
## 2621 garish negative
## 2622 gasp negative
## 2623 gauche negative
## 2624 gaudy negative
## 2625 gawk negative
## 2626 gawky negative
## 2627 geekier positive
## 2628 geeky positive
## 2629 geezer negative
## 2630 gem positive
## 2631 gems positive
## 2632 generosity positive
## 2633 generous positive
## 2634 generously positive
## 2635 genial positive
## 2636 genius positive
## 2637 genocide negative
## 2638 gentle positive
## 2639 gentlest positive
## 2640 genuine positive
## 2641 get-rich negative
## 2642 ghastly negative
## 2643 ghetto negative
## 2644 ghosting negative
## 2645 gibber negative
## 2646 gibberish negative
## 2647 gibe negative
## 2648 giddy negative
## 2649 gifted positive
## 2650 gimmick negative
## 2651 gimmicked negative
## 2652 gimmicking negative
## 2653 gimmicks negative
## 2654 gimmicky negative
## 2655 glad positive
## 2656 gladden positive
## 2657 gladly positive
## 2658 gladness positive
## 2659 glamorous positive
## 2660 glare negative
## 2661 glaringly negative
## 2662 glee positive
## 2663 gleeful positive
## 2664 gleefully positive
## 2665 glib negative
## 2666 glibly negative
## 2667 glimmer positive
## 2668 glimmering positive
## 2669 glisten positive
## 2670 glistening positive
## 2671 glitch negative
## 2672 glitches negative
## 2673 glitter positive
## 2674 glitz positive
## 2675 gloatingly negative
## 2676 gloom negative
## 2677 gloomy negative
## 2678 glorify positive
## 2679 glorious positive
## 2680 gloriously positive
## 2681 glory positive
## 2682 glow positive
## 2683 glower negative
## 2684 glowing positive
## 2685 glowingly positive
## 2686 glum negative
## 2687 glut negative
## 2688 gnawing negative
## 2689 goad negative
## 2690 goading negative
## 2691 god-awful negative
## 2692 god-given positive
## 2693 god-send positive
## 2694 godlike positive
## 2695 godsend positive
## 2696 gold positive
## 2697 golden positive
## 2698 good positive
## 2699 goodly positive
## 2700 goodness positive
## 2701 goodwill positive
## 2702 goof negative
## 2703 goofy negative
## 2704 goon negative
## 2705 goood positive
## 2706 gooood positive
## 2707 gorgeous positive
## 2708 gorgeously positive
## 2709 gossip negative
## 2710 grace positive
## 2711 graceful positive
## 2712 gracefully positive
## 2713 graceless negative
## 2714 gracelessly negative
## 2715 gracious positive
## 2716 graciously positive
## 2717 graciousness positive
## 2718 graft negative
## 2719 grainy negative
## 2720 grand positive
## 2721 grandeur positive
## 2722 grapple negative
## 2723 grate negative
## 2724 grateful positive
## 2725 gratefully positive
## 2726 gratification positive
## 2727 gratified positive
## 2728 gratifies positive
## 2729 gratify positive
## 2730 gratifying positive
## 2731 gratifyingly positive
## 2732 grating negative
## 2733 gratitude positive
## 2734 gravely negative
## 2735 greasy negative
## 2736 great positive
## 2737 greatest positive
## 2738 greatness positive
## 2739 greed negative
## 2740 greedy negative
## 2741 grief negative
## 2742 grievance negative
## 2743 grievances negative
## 2744 grieve negative
## 2745 grieving negative
## 2746 grievous negative
## 2747 grievously negative
## 2748 grim negative
## 2749 grimace negative
## 2750 grin positive
## 2751 grind negative
## 2752 gripe negative
## 2753 gripes negative
## 2754 grisly negative
## 2755 gritty negative
## 2756 gross negative
## 2757 grossly negative
## 2758 grotesque negative
## 2759 grouch negative
## 2760 grouchy negative
## 2761 groundbreaking positive
## 2762 groundless negative
## 2763 grouse negative
## 2764 growl negative
## 2765 grudge negative
## 2766 grudges negative
## 2767 grudging negative
## 2768 grudgingly negative
## 2769 gruesome negative
## 2770 gruesomely negative
## 2771 gruff negative
## 2772 grumble negative
## 2773 grumpier negative
## 2774 grumpiest negative
## 2775 grumpily negative
## 2776 grumpish negative
## 2777 grumpy negative
## 2778 guarantee positive
## 2779 guidance positive
## 2780 guile negative
## 2781 guilt negative
## 2782 guiltily negative
## 2783 guiltless positive
## 2784 guilty negative
## 2785 gullible negative
## 2786 gumption positive
## 2787 gush positive
## 2788 gusto positive
## 2789 gutless negative
## 2790 gutsy positive
## 2791 gutter negative
## 2792 hack negative
## 2793 hacks negative
## 2794 haggard negative
## 2795 haggle negative
## 2796 hail positive
## 2797 hairloss negative
## 2798 halcyon positive
## 2799 hale positive
## 2800 halfhearted negative
## 2801 halfheartedly negative
## 2802 hallmark positive
## 2803 hallmarks positive
## 2804 hallowed positive
## 2805 hallucinate negative
## 2806 hallucination negative
## 2807 hamper negative
## 2808 hampered negative
## 2809 handicapped negative
## 2810 handier positive
## 2811 handily positive
## 2812 hands-down positive
## 2813 handsome positive
## 2814 handsomely positive
## 2815 handy positive
## 2816 hang negative
## 2817 hangs negative
## 2818 haphazard negative
## 2819 hapless negative
## 2820 happier positive
## 2821 happily positive
## 2822 happiness positive
## 2823 happy positive
## 2824 harangue negative
## 2825 harass negative
## 2826 harassed negative
## 2827 harasses negative
## 2828 harassment negative
## 2829 harboring negative
## 2830 harbors negative
## 2831 hard negative
## 2832 hard-hit negative
## 2833 hard-line negative
## 2834 hard-liner negative
## 2835 hard-working positive
## 2836 hardball negative
## 2837 harden negative
## 2838 hardened negative
## 2839 hardheaded negative
## 2840 hardhearted negative
## 2841 hardier positive
## 2842 hardliner negative
## 2843 hardliners negative
## 2844 hardship negative
## 2845 hardships negative
## 2846 hardy positive
## 2847 harm negative
## 2848 harmed negative
## 2849 harmful negative
## 2850 harmless positive
## 2851 harmonious positive
## 2852 harmoniously positive
## 2853 harmonize positive
## 2854 harmony positive
## 2855 harms negative
## 2856 harpy negative
## 2857 harridan negative
## 2858 harried negative
## 2859 harrow negative
## 2860 harsh negative
## 2861 harshly negative
## 2862 hasseling negative
## 2863 hassle negative
## 2864 hassled negative
## 2865 hassles negative
## 2866 haste negative
## 2867 hastily negative
## 2868 hasty negative
## 2869 hate negative
## 2870 hated negative
## 2871 hateful negative
## 2872 hatefully negative
## 2873 hatefulness negative
## 2874 hater negative
## 2875 haters negative
## 2876 hates negative
## 2877 hating negative
## 2878 hatred negative
## 2879 haughtily negative
## 2880 haughty negative
## 2881 haunt negative
## 2882 haunting negative
## 2883 havoc negative
## 2884 hawkish negative
## 2885 haywire negative
## 2886 hazard negative
## 2887 hazardous negative
## 2888 haze negative
## 2889 hazy negative
## 2890 head-aches negative
## 2891 headache negative
## 2892 headaches negative
## 2893 headway positive
## 2894 heal positive
## 2895 healthful positive
## 2896 healthy positive
## 2897 heartbreaker negative
## 2898 heartbreaking negative
## 2899 heartbreakingly negative
## 2900 hearten positive
## 2901 heartening positive
## 2902 heartfelt positive
## 2903 heartily positive
## 2904 heartless negative
## 2905 heartwarming positive
## 2906 heathen negative
## 2907 heaven positive
## 2908 heavenly positive
## 2909 heavy-handed negative
## 2910 heavyhearted negative
## 2911 heck negative
## 2912 heckle negative
## 2913 heckled negative
## 2914 heckles negative
## 2915 hectic negative
## 2916 hedge negative
## 2917 hedonistic negative
## 2918 heedless negative
## 2919 hefty negative
## 2920 hegemonism negative
## 2921 hegemonistic negative
## 2922 hegemony negative
## 2923 heinous negative
## 2924 hell negative
## 2925 hell-bent negative
## 2926 hellion negative
## 2927 hells negative
## 2928 helped positive
## 2929 helpful positive
## 2930 helping positive
## 2931 helpless negative
## 2932 helplessly negative
## 2933 helplessness negative
## 2934 heresy negative
## 2935 heretic negative
## 2936 heretical negative
## 2937 hero positive
## 2938 heroic positive
## 2939 heroically positive
## 2940 heroine positive
## 2941 heroize positive
## 2942 heros positive
## 2943 hesitant negative
## 2944 hestitant negative
## 2945 hideous negative
## 2946 hideously negative
## 2947 hideousness negative
## 2948 high-priced negative
## 2949 high-quality positive
## 2950 high-spirited positive
## 2951 hilarious positive
## 2952 hiliarious negative
## 2953 hinder negative
## 2954 hindrance negative
## 2955 hiss negative
## 2956 hissed negative
## 2957 hissing negative
## 2958 ho-hum negative
## 2959 hoard negative
## 2960 hoax negative
## 2961 hobble negative
## 2962 hogs negative
## 2963 hollow negative
## 2964 holy positive
## 2965 homage positive
## 2966 honest positive
## 2967 honesty positive
## 2968 honor positive
## 2969 honorable positive
## 2970 honored positive
## 2971 honoring positive
## 2972 hoodium negative
## 2973 hoodwink negative
## 2974 hooligan negative
## 2975 hooray positive
## 2976 hopeful positive
## 2977 hopeless negative
## 2978 hopelessly negative
## 2979 hopelessness negative
## 2980 horde negative
## 2981 horrendous negative
## 2982 horrendously negative
## 2983 horrible negative
## 2984 horrid negative
## 2985 horrific negative
## 2986 horrified negative
## 2987 horrifies negative
## 2988 horrify negative
## 2989 horrifying negative
## 2990 horrifys negative
## 2991 hospitable positive
## 2992 hostage negative
## 2993 hostile negative
## 2994 hostilities negative
## 2995 hostility negative
## 2996 hot positive
## 2997 hotbeds negative
## 2998 hotcake positive
## 2999 hotcakes positive
## 3000 hothead negative
## 3001 hotheaded negative
## 3002 hothouse negative
## 3003 hottest positive
## 3004 hubris negative
## 3005 huckster negative
## 3006 hug positive
## 3007 hum negative
## 3008 humane positive
## 3009 humble positive
## 3010 humid negative
## 3011 humiliate negative
## 3012 humiliating negative
## 3013 humiliation negative
## 3014 humility positive
## 3015 humming negative
## 3016 humor positive
## 3017 humorous positive
## 3018 humorously positive
## 3019 humour positive
## 3020 humourous positive
## 3021 hung negative
## 3022 hurt negative
## 3023 hurted negative
## 3024 hurtful negative
## 3025 hurting negative
## 3026 hurts negative
## 3027 hustler negative
## 3028 hype negative
## 3029 hypocricy negative
## 3030 hypocrisy negative
## 3031 hypocrite negative
## 3032 hypocrites negative
## 3033 hypocritical negative
## 3034 hypocritically negative
## 3035 hysteria negative
## 3036 hysteric negative
## 3037 hysterical negative
## 3038 hysterically negative
## 3039 hysterics negative
## 3040 ideal positive
## 3041 idealize positive
## 3042 ideally positive
## 3043 idiocies negative
## 3044 idiocy negative
## 3045 idiot negative
## 3046 idiotic negative
## 3047 idiotically negative
## 3048 idiots negative
## 3049 idle negative
## 3050 idol positive
## 3051 idolize positive
## 3052 idolized positive
## 3053 idyllic positive
## 3054 ignoble negative
## 3055 ignominious negative
## 3056 ignominiously negative
## 3057 ignominy negative
## 3058 ignorance negative
## 3059 ignorant negative
## 3060 ignore negative
## 3061 ill-advised negative
## 3062 ill-conceived negative
## 3063 ill-defined negative
## 3064 ill-designed negative
## 3065 ill-fated negative
## 3066 ill-favored negative
## 3067 ill-formed negative
## 3068 ill-mannered negative
## 3069 ill-natured negative
## 3070 ill-sorted negative
## 3071 ill-tempered negative
## 3072 ill-treated negative
## 3073 ill-treatment negative
## 3074 ill-usage negative
## 3075 ill-used negative
## 3076 illegal negative
## 3077 illegally negative
## 3078 illegitimate negative
## 3079 illicit negative
## 3080 illiterate negative
## 3081 illness negative
## 3082 illogic negative
## 3083 illogical negative
## 3084 illogically negative
## 3085 illuminate positive
## 3086 illuminati positive
## 3087 illuminating positive
## 3088 illumine positive
## 3089 illusion negative
## 3090 illusions negative
## 3091 illusory negative
## 3092 illustrious positive
## 3093 ilu positive
## 3094 imaculate positive
## 3095 imaginary negative
## 3096 imaginative positive
## 3097 imbalance negative
## 3098 imbecile negative
## 3099 imbroglio negative
## 3100 immaculate positive
## 3101 immaculately positive
## 3102 immaterial negative
## 3103 immature negative
## 3104 immense positive
## 3105 imminence negative
## 3106 imminently negative
## 3107 immobilized negative
## 3108 immoderate negative
## 3109 immoderately negative
## 3110 immodest negative
## 3111 immoral negative
## 3112 immorality negative
## 3113 immorally negative
## 3114 immovable negative
## 3115 impair negative
## 3116 impaired negative
## 3117 impartial positive
## 3118 impartiality positive
## 3119 impartially positive
## 3120 impasse negative
## 3121 impassioned positive
## 3122 impatience negative
## 3123 impatient negative
## 3124 impatiently negative
## 3125 impeach negative
## 3126 impeccable positive
## 3127 impeccably positive
## 3128 impedance negative
## 3129 impede negative
## 3130 impediment negative
## 3131 impending negative
## 3132 impenitent negative
## 3133 imperfect negative
## 3134 imperfection negative
## 3135 imperfections negative
## 3136 imperfectly negative
## 3137 imperialist negative
## 3138 imperil negative
## 3139 imperious negative
## 3140 imperiously negative
## 3141 impermissible negative
## 3142 impersonal negative
## 3143 impertinent negative
## 3144 impetuous negative
## 3145 impetuously negative
## 3146 impiety negative
## 3147 impinge negative
## 3148 impious negative
## 3149 implacable negative
## 3150 implausible negative
## 3151 implausibly negative
## 3152 implicate negative
## 3153 implication negative
## 3154 implode negative
## 3155 impolite negative
## 3156 impolitely negative
## 3157 impolitic negative
## 3158 important positive
## 3159 importunate negative
## 3160 importune negative
## 3161 impose negative
## 3162 imposers negative
## 3163 imposing negative
## 3164 imposition negative
## 3165 impossible negative
## 3166 impossiblity negative
## 3167 impossibly negative
## 3168 impotent negative
## 3169 impoverish negative
## 3170 impoverished negative
## 3171 impractical negative
## 3172 imprecate negative
## 3173 imprecise negative
## 3174 imprecisely negative
## 3175 imprecision negative
## 3176 impress positive
## 3177 impressed positive
## 3178 impresses positive
## 3179 impressive positive
## 3180 impressively positive
## 3181 impressiveness positive
## 3182 imprison negative
## 3183 imprisonment negative
## 3184 improbability negative
## 3185 improbable negative
## 3186 improbably negative
## 3187 improper negative
## 3188 improperly negative
## 3189 impropriety negative
## 3190 improve positive
## 3191 improved positive
## 3192 improvement positive
## 3193 improvements positive
## 3194 improves positive
## 3195 improving positive
## 3196 imprudence negative
## 3197 imprudent negative
## 3198 impudence negative
## 3199 impudent negative
## 3200 impudently negative
## 3201 impugn negative
## 3202 impulsive negative
## 3203 impulsively negative
## 3204 impunity negative
## 3205 impure negative
## 3206 impurity negative
## 3207 inability negative
## 3208 inaccuracies negative
## 3209 inaccuracy negative
## 3210 inaccurate negative
## 3211 inaccurately negative
## 3212 inaction negative
## 3213 inactive negative
## 3214 inadequacy negative
## 3215 inadequate negative
## 3216 inadequately negative
## 3217 inadverent negative
## 3218 inadverently negative
## 3219 inadvisable negative
## 3220 inadvisably negative
## 3221 inane negative
## 3222 inanely negative
## 3223 inappropriate negative
## 3224 inappropriately negative
## 3225 inapt negative
## 3226 inaptitude negative
## 3227 inarticulate negative
## 3228 inattentive negative
## 3229 inaudible negative
## 3230 incapable negative
## 3231 incapably negative
## 3232 incautious negative
## 3233 incendiary negative
## 3234 incense negative
## 3235 incessant negative
## 3236 incessantly negative
## 3237 incite negative
## 3238 incitement negative
## 3239 incivility negative
## 3240 inclement negative
## 3241 incognizant negative
## 3242 incoherence negative
## 3243 incoherent negative
## 3244 incoherently negative
## 3245 incommensurate negative
## 3246 incomparable negative
## 3247 incomparably negative
## 3248 incompatability negative
## 3249 incompatibility negative
## 3250 incompatible negative
## 3251 incompetence negative
## 3252 incompetent negative
## 3253 incompetently negative
## 3254 incomplete negative
## 3255 incompliant negative
## 3256 incomprehensible negative
## 3257 incomprehension negative
## 3258 inconceivable negative
## 3259 inconceivably negative
## 3260 incongruous negative
## 3261 incongruously negative
## 3262 inconsequent negative
## 3263 inconsequential negative
## 3264 inconsequentially negative
## 3265 inconsequently negative
## 3266 inconsiderate negative
## 3267 inconsiderately negative
## 3268 inconsistence negative
## 3269 inconsistencies negative
## 3270 inconsistency negative
## 3271 inconsistent negative
## 3272 inconsolable negative
## 3273 inconsolably negative
## 3274 inconstant negative
## 3275 inconvenience negative
## 3276 inconveniently negative
## 3277 incorrect negative
## 3278 incorrectly negative
## 3279 incorrigible negative
## 3280 incorrigibly negative
## 3281 incredible positive
## 3282 incredibly positive
## 3283 incredulous negative
## 3284 incredulously negative
## 3285 inculcate negative
## 3286 indebted positive
## 3287 indecency negative
## 3288 indecent negative
## 3289 indecently negative
## 3290 indecision negative
## 3291 indecisive negative
## 3292 indecisively negative
## 3293 indecorum negative
## 3294 indefensible negative
## 3295 indelicate negative
## 3296 indeterminable negative
## 3297 indeterminably negative
## 3298 indeterminate negative
## 3299 indifference negative
## 3300 indifferent negative
## 3301 indigent negative
## 3302 indignant negative
## 3303 indignantly negative
## 3304 indignation negative
## 3305 indignity negative
## 3306 indiscernible negative
## 3307 indiscreet negative
## 3308 indiscreetly negative
## 3309 indiscretion negative
## 3310 indiscriminate negative
## 3311 indiscriminately negative
## 3312 indiscriminating negative
## 3313 indistinguishable negative
## 3314 individualized positive
## 3315 indoctrinate negative
## 3316 indoctrination negative
## 3317 indolent negative
## 3318 indulge negative
## 3319 indulgence positive
## 3320 indulgent positive
## 3321 industrious positive
## 3322 ineffective negative
## 3323 ineffectively negative
## 3324 ineffectiveness negative
## 3325 ineffectual negative
## 3326 ineffectually negative
## 3327 ineffectualness negative
## 3328 inefficacious negative
## 3329 inefficacy negative
## 3330 inefficiency negative
## 3331 inefficient negative
## 3332 inefficiently negative
## 3333 inelegance negative
## 3334 inelegant negative
## 3335 ineligible negative
## 3336 ineloquent negative
## 3337 ineloquently negative
## 3338 inept negative
## 3339 ineptitude negative
## 3340 ineptly negative
## 3341 inequalities negative
## 3342 inequality negative
## 3343 inequitable negative
## 3344 inequitably negative
## 3345 inequities negative
## 3346 inescapable negative
## 3347 inescapably negative
## 3348 inessential negative
## 3349 inestimable positive
## 3350 inestimably positive
## 3351 inevitable negative
## 3352 inevitably negative
## 3353 inexcusable negative
## 3354 inexcusably negative
## 3355 inexorable negative
## 3356 inexorably negative
## 3357 inexpensive positive
## 3358 inexperience negative
## 3359 inexperienced negative
## 3360 inexpert negative
## 3361 inexpertly negative
## 3362 inexpiable negative
## 3363 inexplainable negative
## 3364 inextricable negative
## 3365 inextricably negative
## 3366 infallibility positive
## 3367 infallible positive
## 3368 infallibly positive
## 3369 infamous negative
## 3370 infamously negative
## 3371 infamy negative
## 3372 infected negative
## 3373 infection negative
## 3374 infections negative
## 3375 inferior negative
## 3376 inferiority negative
## 3377 infernal negative
## 3378 infest negative
## 3379 infested negative
## 3380 infidel negative
## 3381 infidels negative
## 3382 infiltrator negative
## 3383 infiltrators negative
## 3384 infirm negative
## 3385 inflame negative
## 3386 inflammation negative
## 3387 inflammatory negative
## 3388 inflammed negative
## 3389 inflated negative
## 3390 inflationary negative
## 3391 inflexible negative
## 3392 inflict negative
## 3393 influential positive
## 3394 infraction negative
## 3395 infringe negative
## 3396 infringement negative
## 3397 infringements negative
## 3398 infuriate negative
## 3399 infuriated negative
## 3400 infuriating negative
## 3401 infuriatingly negative
## 3402 ingenious positive
## 3403 ingeniously positive
## 3404 ingenuity positive
## 3405 ingenuous positive
## 3406 ingenuously positive
## 3407 inglorious negative
## 3408 ingrate negative
## 3409 ingratitude negative
## 3410 inhibit negative
## 3411 inhibition negative
## 3412 inhospitable negative
## 3413 inhospitality negative
## 3414 inhuman negative
## 3415 inhumane negative
## 3416 inhumanity negative
## 3417 inimical negative
## 3418 inimically negative
## 3419 iniquitous negative
## 3420 iniquity negative
## 3421 injudicious negative
## 3422 injure negative
## 3423 injurious negative
## 3424 injury negative
## 3425 injustice negative
## 3426 injustices negative
## 3427 innocuous positive
## 3428 innovation positive
## 3429 innovative positive
## 3430 innuendo negative
## 3431 inoperable negative
## 3432 inopportune negative
## 3433 inordinate negative
## 3434 inordinately negative
## 3435 inpressed positive
## 3436 insane negative
## 3437 insanely negative
## 3438 insanity negative
## 3439 insatiable negative
## 3440 insecure negative
## 3441 insecurity negative
## 3442 insensible negative
## 3443 insensitive negative
## 3444 insensitively negative
## 3445 insensitivity negative
## 3446 insidious negative
## 3447 insidiously negative
## 3448 insightful positive
## 3449 insightfully positive
## 3450 insignificance negative
## 3451 insignificant negative
## 3452 insignificantly negative
## 3453 insincere negative
## 3454 insincerely negative
## 3455 insincerity negative
## 3456 insinuate negative
## 3457 insinuating negative
## 3458 insinuation negative
## 3459 insociable negative
## 3460 insolence negative
## 3461 insolent negative
## 3462 insolently negative
## 3463 insolvent negative
## 3464 insouciance negative
## 3465 inspiration positive
## 3466 inspirational positive
## 3467 inspire positive
## 3468 inspiring positive
## 3469 instability negative
## 3470 instable negative
## 3471 instantly positive
## 3472 instigate negative
## 3473 instigator negative
## 3474 instigators negative
## 3475 instructive positive
## 3476 instrumental positive
## 3477 insubordinate negative
## 3478 insubstantial negative
## 3479 insubstantially negative
## 3480 insufferable negative
## 3481 insufferably negative
## 3482 insufficiency negative
## 3483 insufficient negative
## 3484 insufficiently negative
## 3485 insular negative
## 3486 insult negative
## 3487 insulted negative
## 3488 insulting negative
## 3489 insultingly negative
## 3490 insults negative
## 3491 insupportable negative
## 3492 insupportably negative
## 3493 insurmountable negative
## 3494 insurmountably negative
## 3495 insurrection negative
## 3496 intefere negative
## 3497 inteferes negative
## 3498 integral positive
## 3499 integrated positive
## 3500 intelligence positive
## 3501 intelligent positive
## 3502 intelligible positive
## 3503 intense negative
## 3504 interesting positive
## 3505 interests positive
## 3506 interfere negative
## 3507 interference negative
## 3508 interferes negative
## 3509 intermittent negative
## 3510 interrupt negative
## 3511 interruption negative
## 3512 interruptions negative
## 3513 intimacy positive
## 3514 intimate positive
## 3515 intimidate negative
## 3516 intimidating negative
## 3517 intimidatingly negative
## 3518 intimidation negative
## 3519 intolerable negative
## 3520 intolerablely negative
## 3521 intolerance negative
## 3522 intoxicate negative
## 3523 intractable negative
## 3524 intransigence negative
## 3525 intransigent negative
## 3526 intricate positive
## 3527 intrigue positive
## 3528 intriguing positive
## 3529 intriguingly positive
## 3530 intrude negative
## 3531 intrusion negative
## 3532 intrusive negative
## 3533 intuitive positive
## 3534 inundate negative
## 3535 inundated negative
## 3536 invader negative
## 3537 invalid negative
## 3538 invalidate negative
## 3539 invalidity negative
## 3540 invaluable positive
## 3541 invaluablely positive
## 3542 invasive negative
## 3543 invective negative
## 3544 inveigle negative
## 3545 inventive positive
## 3546 invidious negative
## 3547 invidiously negative
## 3548 invidiousness negative
## 3549 invigorate positive
## 3550 invigorating positive
## 3551 invincibility positive
## 3552 invincible positive
## 3553 inviolable positive
## 3554 inviolate positive
## 3555 invisible negative
## 3556 involuntarily negative
## 3557 involuntary negative
## 3558 invulnerable positive
## 3559 irascible negative
## 3560 irate negative
## 3561 irately negative
## 3562 ire negative
## 3563 irk negative
## 3564 irked negative
## 3565 irking negative
## 3566 irks negative
## 3567 irksome negative
## 3568 irksomely negative
## 3569 irksomeness negative
## 3570 irksomenesses negative
## 3571 ironic negative
## 3572 ironical negative
## 3573 ironically negative
## 3574 ironies negative
## 3575 irony negative
## 3576 irragularity negative
## 3577 irrational negative
## 3578 irrationalities negative
## 3579 irrationality negative
## 3580 irrationally negative
## 3581 irrationals negative
## 3582 irreconcilable negative
## 3583 irrecoverable negative
## 3584 irrecoverableness negative
## 3585 irrecoverablenesses negative
## 3586 irrecoverably negative
## 3587 irredeemable negative
## 3588 irredeemably negative
## 3589 irreformable negative
## 3590 irregular negative
## 3591 irregularity negative
## 3592 irrelevance negative
## 3593 irrelevant negative
## 3594 irreparable negative
## 3595 irreplaceable positive
## 3596 irreplacible negative
## 3597 irrepressible negative
## 3598 irreproachable positive
## 3599 irresistible positive
## 3600 irresistibly positive
## 3601 irresolute negative
## 3602 irresolvable negative
## 3603 irresponsible negative
## 3604 irresponsibly negative
## 3605 irretating negative
## 3606 irretrievable negative
## 3607 irreversible negative
## 3608 irritable negative
## 3609 irritably negative
## 3610 irritant negative
## 3611 irritate negative
## 3612 irritated negative
## 3613 irritating negative
## 3614 irritation negative
## 3615 irritations negative
## 3616 isolate negative
## 3617 isolated negative
## 3618 isolation negative
## 3619 issue negative
## 3620 issue-free positive
## 3621 issues negative
## 3622 itch negative
## 3623 itching negative
## 3624 itchy negative
## 3625 jabber negative
## 3626 jaded negative
## 3627 jagged negative
## 3628 jam negative
## 3629 jarring negative
## 3630 jaundiced negative
## 3631 jaw-droping positive
## 3632 jaw-dropping positive
## 3633 jealous negative
## 3634 jealously negative
## 3635 jealousness negative
## 3636 jealousy negative
## 3637 jeer negative
## 3638 jeering negative
## 3639 jeeringly negative
## 3640 jeers negative
## 3641 jeopardize negative
## 3642 jeopardy negative
## 3643 jerk negative
## 3644 jerky negative
## 3645 jitter negative
## 3646 jitters negative
## 3647 jittery negative
## 3648 job-killing negative
## 3649 jobless negative
## 3650 joke negative
## 3651 joker negative
## 3652 jollify positive
## 3653 jolly positive
## 3654 jolt negative
## 3655 jovial positive
## 3656 joy positive
## 3657 joyful positive
## 3658 joyfully positive
## 3659 joyous positive
## 3660 joyously positive
## 3661 jubilant positive
## 3662 jubilantly positive
## 3663 jubilate positive
## 3664 jubilation positive
## 3665 jubiliant positive
## 3666 judder negative
## 3667 juddering negative
## 3668 judders negative
## 3669 judicious positive
## 3670 jumpy negative
## 3671 junk negative
## 3672 junky negative
## 3673 junkyard negative
## 3674 justly positive
## 3675 jutter negative
## 3676 jutters negative
## 3677 kaput negative
## 3678 keen positive
## 3679 keenly positive
## 3680 keenness positive
## 3681 kid-friendly positive
## 3682 kill negative
## 3683 killed negative
## 3684 killer negative
## 3685 killing negative
## 3686 killjoy negative
## 3687 kills negative
## 3688 kindliness positive
## 3689 kindly positive
## 3690 kindness positive
## 3691 knave negative
## 3692 knife negative
## 3693 knock negative
## 3694 knotted negative
## 3695 knowledgeable positive
## 3696 kook negative
## 3697 kooky negative
## 3698 kudos positive
## 3699 lack negative
## 3700 lackadaisical negative
## 3701 lacked negative
## 3702 lackey negative
## 3703 lackeys negative
## 3704 lacking negative
## 3705 lackluster negative
## 3706 lacks negative
## 3707 laconic negative
## 3708 lag negative
## 3709 lagged negative
## 3710 lagging negative
## 3711 laggy negative
## 3712 lags negative
## 3713 laid-off negative
## 3714 lambast negative
## 3715 lambaste negative
## 3716 lame negative
## 3717 lame-duck negative
## 3718 lament negative
## 3719 lamentable negative
## 3720 lamentably negative
## 3721 languid negative
## 3722 languish negative
## 3723 languor negative
## 3724 languorous negative
## 3725 languorously negative
## 3726 lanky negative
## 3727 lapse negative
## 3728 lapsed negative
## 3729 lapses negative
## 3730 large-capacity positive
## 3731 lascivious negative
## 3732 last-ditch negative
## 3733 latency negative
## 3734 laud positive
## 3735 laudable positive
## 3736 laudably positive
## 3737 laughable negative
## 3738 laughably negative
## 3739 laughingstock negative
## 3740 lavish positive
## 3741 lavishly positive
## 3742 law-abiding positive
## 3743 lawbreaker negative
## 3744 lawbreaking negative
## 3745 lawful positive
## 3746 lawfully positive
## 3747 lawless negative
## 3748 lawlessness negative
## 3749 layoff negative
## 3750 layoff-happy negative
## 3751 lazy negative
## 3752 lead positive
## 3753 leading positive
## 3754 leads positive
## 3755 leak negative
## 3756 leakage negative
## 3757 leakages negative
## 3758 leaking negative
## 3759 leaks negative
## 3760 leaky negative
## 3761 lean positive
## 3762 lech negative
## 3763 lecher negative
## 3764 lecherous negative
## 3765 lechery negative
## 3766 led positive
## 3767 leech negative
## 3768 leer negative
## 3769 leery negative
## 3770 left-leaning negative
## 3771 legendary positive
## 3772 lemon negative
## 3773 lengthy negative
## 3774 less-developed negative
## 3775 lesser-known negative
## 3776 letch negative
## 3777 lethal negative
## 3778 lethargic negative
## 3779 lethargy negative
## 3780 leverage positive
## 3781 levity positive
## 3782 lewd negative
## 3783 lewdly negative
## 3784 lewdness negative
## 3785 liability negative
## 3786 liable negative
## 3787 liar negative
## 3788 liars negative
## 3789 liberate positive
## 3790 liberation positive
## 3791 liberty positive
## 3792 licentious negative
## 3793 licentiously negative
## 3794 licentiousness negative
## 3795 lie negative
## 3796 lied negative
## 3797 lier negative
## 3798 lies negative
## 3799 life-threatening negative
## 3800 lifeless negative
## 3801 lifesaver positive
## 3802 light-hearted positive
## 3803 lighter positive
## 3804 likable positive
## 3805 like positive
## 3806 liked positive
## 3807 likes positive
## 3808 liking positive
## 3809 limit negative
## 3810 limitation negative
## 3811 limitations negative
## 3812 limited negative
## 3813 limits negative
## 3814 limp negative
## 3815 lionhearted positive
## 3816 listless negative
## 3817 litigious negative
## 3818 little-known negative
## 3819 lively positive
## 3820 livid negative
## 3821 lividly negative
## 3822 loath negative
## 3823 loathe negative
## 3824 loathing negative
## 3825 loathly negative
## 3826 loathsome negative
## 3827 loathsomely negative
## 3828 logical positive
## 3829 lone negative
## 3830 loneliness negative
## 3831 lonely negative
## 3832 loner negative
## 3833 lonesome negative
## 3834 long-lasting positive
## 3835 long-time negative
## 3836 long-winded negative
## 3837 longing negative
## 3838 longingly negative
## 3839 loophole negative
## 3840 loopholes negative
## 3841 loose negative
## 3842 loot negative
## 3843 lorn negative
## 3844 lose negative
## 3845 loser negative
## 3846 losers negative
## 3847 loses negative
## 3848 losing negative
## 3849 loss negative
## 3850 losses negative
## 3851 lost negative
## 3852 loud negative
## 3853 louder negative
## 3854 lousy negative
## 3855 lovable positive
## 3856 lovably positive
## 3857 love positive
## 3858 loved positive
## 3859 loveless negative
## 3860 loveliness positive
## 3861 lovelorn negative
## 3862 lovely positive
## 3863 lover positive
## 3864 loves positive
## 3865 loving positive
## 3866 low-cost positive
## 3867 low-price positive
## 3868 low-priced positive
## 3869 low-rated negative
## 3870 low-risk positive
## 3871 lower-priced positive
## 3872 lowly negative
## 3873 loyal positive
## 3874 loyalty positive
## 3875 lucid positive
## 3876 lucidly positive
## 3877 luck positive
## 3878 luckier positive
## 3879 luckiest positive
## 3880 luckiness positive
## 3881 lucky positive
## 3882 lucrative positive
## 3883 ludicrous negative
## 3884 ludicrously negative
## 3885 lugubrious negative
## 3886 lukewarm negative
## 3887 lull negative
## 3888 luminous positive
## 3889 lumpy negative
## 3890 lunatic negative
## 3891 lunaticism negative
## 3892 lurch negative
## 3893 lure negative
## 3894 lurid negative
## 3895 lurk negative
## 3896 lurking negative
## 3897 lush positive
## 3898 luster positive
## 3899 lustrous positive
## 3900 luxuriant positive
## 3901 luxuriate positive
## 3902 luxurious positive
## 3903 luxuriously positive
## 3904 luxury positive
## 3905 lying negative
## 3906 lyrical positive
## 3907 macabre negative
## 3908 mad negative
## 3909 madden negative
## 3910 maddening negative
## 3911 maddeningly negative
## 3912 madder negative
## 3913 madly negative
## 3914 madman negative
## 3915 madness negative
## 3916 magic positive
## 3917 magical positive
## 3918 magnanimous positive
## 3919 magnanimously positive
## 3920 magnificence positive
## 3921 magnificent positive
## 3922 magnificently positive
## 3923 majestic positive
## 3924 majesty positive
## 3925 maladjusted negative
## 3926 maladjustment negative
## 3927 malady negative
## 3928 malaise negative
## 3929 malcontent negative
## 3930 malcontented negative
## 3931 maledict negative
## 3932 malevolence negative
## 3933 malevolent negative
## 3934 malevolently negative
## 3935 malice negative
## 3936 malicious negative
## 3937 maliciously negative
## 3938 maliciousness negative
## 3939 malign negative
## 3940 malignant negative
## 3941 malodorous negative
## 3942 maltreatment negative
## 3943 manageable positive
## 3944 maneuverable positive
## 3945 mangle negative
## 3946 mangled negative
## 3947 mangles negative
## 3948 mangling negative
## 3949 mania negative
## 3950 maniac negative
## 3951 maniacal negative
## 3952 manic negative
## 3953 manipulate negative
## 3954 manipulation negative
## 3955 manipulative negative
## 3956 manipulators negative
## 3957 mar negative
## 3958 marginal negative
## 3959 marginally negative
## 3960 martyrdom negative
## 3961 martyrdom-seeking negative
## 3962 marvel positive
## 3963 marveled positive
## 3964 marvelled positive
## 3965 marvellous positive
## 3966 marvelous positive
## 3967 marvelously positive
## 3968 marvelousness positive
## 3969 marvels positive
## 3970 mashed negative
## 3971 massacre negative
## 3972 massacres negative
## 3973 master positive
## 3974 masterful positive
## 3975 masterfully positive
## 3976 masterpiece positive
## 3977 masterpieces positive
## 3978 masters positive
## 3979 mastery positive
## 3980 matchless positive
## 3981 matte negative
## 3982 mature positive
## 3983 maturely positive
## 3984 maturity positive
## 3985 mawkish negative
## 3986 mawkishly negative
## 3987 mawkishness negative
## 3988 meager negative
## 3989 meaningful positive
## 3990 meaningless negative
## 3991 meanness negative
## 3992 measly negative
## 3993 meddle negative
## 3994 meddlesome negative
## 3995 mediocre negative
## 3996 mediocrity negative
## 3997 melancholy negative
## 3998 melodramatic negative
## 3999 melodramatically negative
## 4000 meltdown negative
## 4001 memorable positive
## 4002 menace negative
## 4003 menacing negative
## 4004 menacingly negative
## 4005 mendacious negative
## 4006 mendacity negative
## 4007 menial negative
## 4008 merciful positive
## 4009 mercifully positive
## 4010 merciless negative
## 4011 mercilessly negative
## 4012 mercy positive
## 4013 merit positive
## 4014 meritorious positive
## 4015 merrily positive
## 4016 merriment positive
## 4017 merriness positive
## 4018 merry positive
## 4019 mesmerize positive
## 4020 mesmerized positive
## 4021 mesmerizes positive
## 4022 mesmerizing positive
## 4023 mesmerizingly positive
## 4024 mess negative
## 4025 messed negative
## 4026 messes negative
## 4027 messing negative
## 4028 messy negative
## 4029 meticulous positive
## 4030 meticulously positive
## 4031 midget negative
## 4032 miff negative
## 4033 mightily positive
## 4034 mighty positive
## 4035 militancy negative
## 4036 mind-blowing positive
## 4037 mindless negative
## 4038 mindlessly negative
## 4039 miracle positive
## 4040 miracles positive
## 4041 miraculous positive
## 4042 miraculously positive
## 4043 miraculousness positive
## 4044 mirage negative
## 4045 mire negative
## 4046 misalign negative
## 4047 misaligned negative
## 4048 misaligns negative
## 4049 misapprehend negative
## 4050 misbecome negative
## 4051 misbecoming negative
## 4052 misbegotten negative
## 4053 misbehave negative
## 4054 misbehavior negative
## 4055 miscalculate negative
## 4056 miscalculation negative
## 4057 miscellaneous negative
## 4058 mischief negative
## 4059 mischievous negative
## 4060 mischievously negative
## 4061 misconception negative
## 4062 misconceptions negative
## 4063 miscreant negative
## 4064 miscreants negative
## 4065 misdirection negative
## 4066 miser negative
## 4067 miserable negative
## 4068 miserableness negative
## 4069 miserably negative
## 4070 miseries negative
## 4071 miserly negative
## 4072 misery negative
## 4073 misfit negative
## 4074 misfortune negative
## 4075 misgiving negative
## 4076 misgivings negative
## 4077 misguidance negative
## 4078 misguide negative
## 4079 misguided negative
## 4080 mishandle negative
## 4081 mishap negative
## 4082 misinform negative
## 4083 misinformed negative
## 4084 misinterpret negative
## 4085 misjudge negative
## 4086 misjudgment negative
## 4087 mislead negative
## 4088 misleading negative
## 4089 misleadingly negative
## 4090 mislike negative
## 4091 mismanage negative
## 4092 mispronounce negative
## 4093 mispronounced negative
## 4094 mispronounces negative
## 4095 misread negative
## 4096 misreading negative
## 4097 misrepresent negative
## 4098 misrepresentation negative
## 4099 miss negative
## 4100 missed negative
## 4101 misses negative
## 4102 misstatement negative
## 4103 mist negative
## 4104 mistake negative
## 4105 mistaken negative
## 4106 mistakenly negative
## 4107 mistakes negative
## 4108 mistified negative
## 4109 mistress negative
## 4110 mistrust negative
## 4111 mistrustful negative
## 4112 mistrustfully negative
## 4113 mists negative
## 4114 misunderstand negative
## 4115 misunderstanding negative
## 4116 misunderstandings negative
## 4117 misunderstood negative
## 4118 misuse negative
## 4119 moan negative
## 4120 mobster negative
## 4121 mock negative
## 4122 mocked negative
## 4123 mockeries negative
## 4124 mockery negative
## 4125 mocking negative
## 4126 mockingly negative
## 4127 mocks negative
## 4128 modern positive
## 4129 modest positive
## 4130 modesty positive
## 4131 molest negative
## 4132 molestation negative
## 4133 momentous positive
## 4134 monotonous negative
## 4135 monotony negative
## 4136 monster negative
## 4137 monstrosities negative
## 4138 monstrosity negative
## 4139 monstrous negative
## 4140 monstrously negative
## 4141 monumental positive
## 4142 monumentally positive
## 4143 moody negative
## 4144 moot negative
## 4145 mope negative
## 4146 morality positive
## 4147 morbid negative
## 4148 morbidly negative
## 4149 mordant negative
## 4150 mordantly negative
## 4151 moribund negative
## 4152 moron negative
## 4153 moronic negative
## 4154 morons negative
## 4155 mortification negative
## 4156 mortified negative
## 4157 mortify negative
## 4158 mortifying negative
## 4159 motionless negative
## 4160 motivated positive
## 4161 motley negative
## 4162 mourn negative
## 4163 mourner negative
## 4164 mournful negative
## 4165 mournfully negative
## 4166 muddle negative
## 4167 muddy negative
## 4168 mudslinger negative
## 4169 mudslinging negative
## 4170 mulish negative
## 4171 multi-polarization negative
## 4172 multi-purpose positive
## 4173 mundane negative
## 4174 murder negative
## 4175 murderer negative
## 4176 murderous negative
## 4177 murderously negative
## 4178 murky negative
## 4179 muscle-flexing negative
## 4180 mushy negative
## 4181 musty negative
## 4182 mysterious negative
## 4183 mysteriously negative
## 4184 mystery negative
## 4185 mystify negative
## 4186 myth negative
## 4187 nag negative
## 4188 nagging negative
## 4189 naive negative
## 4190 naively negative
## 4191 narrower negative
## 4192 nastily negative
## 4193 nastiness negative
## 4194 nasty negative
## 4195 naughty negative
## 4196 nauseate negative
## 4197 nauseates negative
## 4198 nauseating negative
## 4199 nauseatingly negative
## 4200 navigable positive
## 4201 neat positive
## 4202 neatest positive
## 4203 neatly positive
## 4204 nebulous negative
## 4205 nebulously negative
## 4206 needless negative
## 4207 needlessly negative
## 4208 needy negative
## 4209 nefarious negative
## 4210 nefariously negative
## 4211 negate negative
## 4212 negation negative
## 4213 negative negative
## 4214 negatives negative
## 4215 negativity negative
## 4216 neglect negative
## 4217 neglected negative
## 4218 negligence negative
## 4219 negligent negative
## 4220 nemesis negative
## 4221 nepotism negative
## 4222 nervous negative
## 4223 nervously negative
## 4224 nervousness negative
## 4225 nettle negative
## 4226 nettlesome negative
## 4227 neurotic negative
## 4228 neurotically negative
## 4229 nice positive
## 4230 nicely positive
## 4231 nicer positive
## 4232 nicest positive
## 4233 nifty positive
## 4234 niggle negative
## 4235 niggles negative
## 4236 nightmare negative
## 4237 nightmarish negative
## 4238 nightmarishly negative
## 4239 nimble positive
## 4240 nitpick negative
## 4241 nitpicking negative
## 4242 noble positive
## 4243 nobly positive
## 4244 noise negative
## 4245 noiseless positive
## 4246 noises negative
## 4247 noisier negative
## 4248 noisy negative
## 4249 non-confidence negative
## 4250 non-violence positive
## 4251 non-violent positive
## 4252 nonexistent negative
## 4253 nonresponsive negative
## 4254 nonsense negative
## 4255 nosey negative
## 4256 notably positive
## 4257 noteworthy positive
## 4258 notoriety negative
## 4259 notorious negative
## 4260 notoriously negative
## 4261 nourish positive
## 4262 nourishing positive
## 4263 nourishment positive
## 4264 novelty positive
## 4265 noxious negative
## 4266 nuisance negative
## 4267 numb negative
## 4268 nurturing positive
## 4269 oasis positive
## 4270 obese negative
## 4271 object negative
## 4272 objection negative
## 4273 objectionable negative
## 4274 objections negative
## 4275 oblique negative
## 4276 obliterate negative
## 4277 obliterated negative
## 4278 oblivious negative
## 4279 obnoxious negative
## 4280 obnoxiously negative
## 4281 obscene negative
## 4282 obscenely negative
## 4283 obscenity negative
## 4284 obscure negative
## 4285 obscured negative
## 4286 obscures negative
## 4287 obscurity negative
## 4288 obsess negative
## 4289 obsession positive
## 4290 obsessions positive
## 4291 obsessive negative
## 4292 obsessively negative
## 4293 obsessiveness negative
## 4294 obsolete negative
## 4295 obstacle negative
## 4296 obstinate negative
## 4297 obstinately negative
## 4298 obstruct negative
## 4299 obstructed negative
## 4300 obstructing negative
## 4301 obstruction negative
## 4302 obstructs negative
## 4303 obtainable positive
## 4304 obtrusive negative
## 4305 obtuse negative
## 4306 occlude negative
## 4307 occluded negative
## 4308 occludes negative
## 4309 occluding negative
## 4310 odd negative
## 4311 odder negative
## 4312 oddest negative
## 4313 oddities negative
## 4314 oddity negative
## 4315 oddly negative
## 4316 odor negative
## 4317 offence negative
## 4318 offend negative
## 4319 offender negative
## 4320 offending negative
## 4321 offenses negative
## 4322 offensive negative
## 4323 offensively negative
## 4324 offensiveness negative
## 4325 officious negative
## 4326 ominous negative
## 4327 ominously negative
## 4328 omission negative
## 4329 omit negative
## 4330 one-sided negative
## 4331 onerous negative
## 4332 onerously negative
## 4333 onslaught negative
## 4334 openly positive
## 4335 openness positive
## 4336 opinionated negative
## 4337 opponent negative
## 4338 opportunistic negative
## 4339 oppose negative
## 4340 opposition negative
## 4341 oppositions negative
## 4342 oppress negative
## 4343 oppression negative
## 4344 oppressive negative
## 4345 oppressively negative
## 4346 oppressiveness negative
## 4347 oppressors negative
## 4348 optimal positive
## 4349 optimism positive
## 4350 optimistic positive
## 4351 opulent positive
## 4352 ordeal negative
## 4353 orderly positive
## 4354 originality positive
## 4355 orphan negative
## 4356 ostracize negative
## 4357 outbreak negative
## 4358 outburst negative
## 4359 outbursts negative
## 4360 outcast negative
## 4361 outcry negative
## 4362 outdo positive
## 4363 outdone positive
## 4364 outlaw negative
## 4365 outmoded negative
## 4366 outperform positive
## 4367 outperformed positive
## 4368 outperforming positive
## 4369 outperforms positive
## 4370 outrage negative
## 4371 outraged negative
## 4372 outrageous negative
## 4373 outrageously negative
## 4374 outrageousness negative
## 4375 outrages negative
## 4376 outshine positive
## 4377 outshone positive
## 4378 outsider negative
## 4379 outsmart positive
## 4380 outstanding positive
## 4381 outstandingly positive
## 4382 outstrip positive
## 4383 outwit positive
## 4384 ovation positive
## 4385 over-acted negative
## 4386 over-awe negative
## 4387 over-balanced negative
## 4388 over-hyped negative
## 4389 over-priced negative
## 4390 over-valuation negative
## 4391 overact negative
## 4392 overacted negative
## 4393 overawe negative
## 4394 overbalance negative
## 4395 overbalanced negative
## 4396 overbearing negative
## 4397 overbearingly negative
## 4398 overblown negative
## 4399 overdo negative
## 4400 overdone negative
## 4401 overdue negative
## 4402 overemphasize negative
## 4403 overheat negative
## 4404 overjoyed positive
## 4405 overkill negative
## 4406 overloaded negative
## 4407 overlook negative
## 4408 overpaid negative
## 4409 overpayed negative
## 4410 overplay negative
## 4411 overpower negative
## 4412 overpriced negative
## 4413 overrated negative
## 4414 overreach negative
## 4415 overrun negative
## 4416 overshadow negative
## 4417 oversight negative
## 4418 oversights negative
## 4419 oversimplification negative
## 4420 oversimplified negative
## 4421 oversimplify negative
## 4422 oversize negative
## 4423 overstate negative
## 4424 overstated negative
## 4425 overstatement negative
## 4426 overstatements negative
## 4427 overstates negative
## 4428 overtake positive
## 4429 overtaken positive
## 4430 overtakes positive
## 4431 overtaking positive
## 4432 overtaxed negative
## 4433 overthrow negative
## 4434 overthrows negative
## 4435 overtook positive
## 4436 overture positive
## 4437 overturn negative
## 4438 overweight negative
## 4439 overwhelm negative
## 4440 overwhelmed negative
## 4441 overwhelming negative
## 4442 overwhelmingly negative
## 4443 overwhelms negative
## 4444 overzealous negative
## 4445 overzealously negative
## 4446 overzelous negative
## 4447 pain negative
## 4448 pain-free positive
## 4449 painful negative
## 4450 painfull negative
## 4451 painfully negative
## 4452 painless positive
## 4453 painlessly positive
## 4454 pains negative
## 4455 palatial positive
## 4456 pale negative
## 4457 pales negative
## 4458 paltry negative
## 4459 pamper positive
## 4460 pampered positive
## 4461 pamperedly positive
## 4462 pamperedness positive
## 4463 pampers positive
## 4464 pan negative
## 4465 pandemonium negative
## 4466 pander negative
## 4467 pandering negative
## 4468 panders negative
## 4469 panic negative
## 4470 panick negative
## 4471 panicked negative
## 4472 panicking negative
## 4473 panicky negative
## 4474 panoramic positive
## 4475 paradise positive
## 4476 paradoxical negative
## 4477 paradoxically negative
## 4478 paralize negative
## 4479 paralyzed negative
## 4480 paramount positive
## 4481 paranoia negative
## 4482 paranoid negative
## 4483 parasite negative
## 4484 pardon positive
## 4485 pariah negative
## 4486 parody negative
## 4487 partiality negative
## 4488 partisan negative
## 4489 partisans negative
## 4490 passe negative
## 4491 passion positive
## 4492 passionate positive
## 4493 passionately positive
## 4494 passive negative
## 4495 passiveness negative
## 4496 pathetic negative
## 4497 pathetically negative
## 4498 patience positive
## 4499 patient positive
## 4500 patiently positive
## 4501 patriot positive
## 4502 patriotic positive
## 4503 patronize negative
## 4504 paucity negative
## 4505 pauper negative
## 4506 paupers negative
## 4507 payback negative
## 4508 peace positive
## 4509 peaceable positive
## 4510 peaceful positive
## 4511 peacefully positive
## 4512 peacekeepers positive
## 4513 peach positive
## 4514 peculiar negative
## 4515 peculiarly negative
## 4516 pedantic negative
## 4517 peeled negative
## 4518 peerless positive
## 4519 peeve negative
## 4520 peeved negative
## 4521 peevish negative
## 4522 peevishly negative
## 4523 penalize negative
## 4524 penalty negative
## 4525 pep positive
## 4526 pepped positive
## 4527 pepping positive
## 4528 peppy positive
## 4529 peps positive
## 4530 perfect positive
## 4531 perfection positive
## 4532 perfectly positive
## 4533 perfidious negative
## 4534 perfidity negative
## 4535 perfunctory negative
## 4536 peril negative
## 4537 perilous negative
## 4538 perilously negative
## 4539 perish negative
## 4540 permissible positive
## 4541 pernicious negative
## 4542 perplex negative
## 4543 perplexed negative
## 4544 perplexing negative
## 4545 perplexity negative
## 4546 persecute negative
## 4547 persecution negative
## 4548 perseverance positive
## 4549 persevere positive
## 4550 personages positive
## 4551 personalized positive
## 4552 pertinacious negative
## 4553 pertinaciously negative
## 4554 pertinacity negative
## 4555 perturb negative
## 4556 perturbed negative
## 4557 pervasive negative
## 4558 perverse negative
## 4559 perversely negative
## 4560 perversion negative
## 4561 perversity negative
## 4562 pervert negative
## 4563 perverted negative
## 4564 perverts negative
## 4565 pessimism negative
## 4566 pessimistic negative
## 4567 pessimistically negative
## 4568 pest negative
## 4569 pestilent negative
## 4570 petrified negative
## 4571 petrify negative
## 4572 pettifog negative
## 4573 petty negative
## 4574 phenomenal positive
## 4575 phenomenally positive
## 4576 phobia negative
## 4577 phobic negative
## 4578 phony negative
## 4579 picket negative
## 4580 picketed negative
## 4581 picketing negative
## 4582 pickets negative
## 4583 picky negative
## 4584 picturesque positive
## 4585 piety positive
## 4586 pig negative
## 4587 pigs negative
## 4588 pillage negative
## 4589 pillory negative
## 4590 pimple negative
## 4591 pinch negative
## 4592 pinnacle positive
## 4593 pique negative
## 4594 pitiable negative
## 4595 pitiful negative
## 4596 pitifully negative
## 4597 pitiless negative
## 4598 pitilessly negative
## 4599 pittance negative
## 4600 pity negative
## 4601 plagiarize negative
## 4602 plague negative
## 4603 plasticky negative
## 4604 playful positive
## 4605 playfully positive
## 4606 plaything negative
## 4607 plea negative
## 4608 pleas negative
## 4609 pleasant positive
## 4610 pleasantly positive
## 4611 pleased positive
## 4612 pleases positive
## 4613 pleasing positive
## 4614 pleasingly positive
## 4615 pleasurable positive
## 4616 pleasurably positive
## 4617 pleasure positive
## 4618 plebeian negative
## 4619 plentiful positive
## 4620 plight negative
## 4621 plot negative
## 4622 plotters negative
## 4623 ploy negative
## 4624 plunder negative
## 4625 plunderer negative
## 4626 pluses positive
## 4627 plush positive
## 4628 plusses positive
## 4629 poetic positive
## 4630 poeticize positive
## 4631 poignant positive
## 4632 pointless negative
## 4633 pointlessly negative
## 4634 poise positive
## 4635 poised positive
## 4636 poison negative
## 4637 poisonous negative
## 4638 poisonously negative
## 4639 pokey negative
## 4640 poky negative
## 4641 polarisation negative
## 4642 polemize negative
## 4643 polished positive
## 4644 polite positive
## 4645 politeness positive
## 4646 pollute negative
## 4647 polluter negative
## 4648 polluters negative
## 4649 polution negative
## 4650 pompous negative
## 4651 poor negative
## 4652 poorer negative
## 4653 poorest negative
## 4654 poorly negative
## 4655 popular positive
## 4656 portable positive
## 4657 posh positive
## 4658 positive positive
## 4659 positively positive
## 4660 positives positive
## 4661 posturing negative
## 4662 pout negative
## 4663 poverty negative
## 4664 powerful positive
## 4665 powerfully positive
## 4666 powerless negative
## 4667 praise positive
## 4668 praiseworthy positive
## 4669 praising positive
## 4670 prate negative
## 4671 pratfall negative
## 4672 prattle negative
## 4673 pre-eminent positive
## 4674 precarious negative
## 4675 precariously negative
## 4676 precious positive
## 4677 precipitate negative
## 4678 precipitous negative
## 4679 precise positive
## 4680 precisely positive
## 4681 predatory negative
## 4682 predicament negative
## 4683 preeminent positive
## 4684 prefer positive
## 4685 preferable positive
## 4686 preferably positive
## 4687 prefered positive
## 4688 preferes positive
## 4689 preferring positive
## 4690 prefers positive
## 4691 prejudge negative
## 4692 prejudice negative
## 4693 prejudices negative
## 4694 prejudicial negative
## 4695 premeditated negative
## 4696 premier positive
## 4697 preoccupy negative
## 4698 preposterous negative
## 4699 preposterously negative
## 4700 prestige positive
## 4701 prestigious positive
## 4702 presumptuous negative
## 4703 presumptuously negative
## 4704 pretence negative
## 4705 pretend negative
## 4706 pretense negative
## 4707 pretentious negative
## 4708 pretentiously negative
## 4709 prettily positive
## 4710 pretty positive
## 4711 prevaricate negative
## 4712 priceless positive
## 4713 pricey negative
## 4714 pricier negative
## 4715 prick negative
## 4716 prickle negative
## 4717 prickles negative
## 4718 pride positive
## 4719 prideful negative
## 4720 prik negative
## 4721 primitive negative
## 4722 principled positive
## 4723 prison negative
## 4724 prisoner negative
## 4725 privilege positive
## 4726 privileged positive
## 4727 prize positive
## 4728 proactive positive
## 4729 problem negative
## 4730 problem-free positive
## 4731 problem-solver positive
## 4732 problematic negative
## 4733 problems negative
## 4734 procrastinate negative
## 4735 procrastinates negative
## 4736 procrastination negative
## 4737 prodigious positive
## 4738 prodigiously positive
## 4739 prodigy positive
## 4740 productive positive
## 4741 productively positive
## 4742 profane negative
## 4743 profanity negative
## 4744 proficient positive
## 4745 proficiently positive
## 4746 profound positive
## 4747 profoundly positive
## 4748 profuse positive
## 4749 profusion positive
## 4750 progress positive
## 4751 progressive positive
## 4752 prohibit negative
## 4753 prohibitive negative
## 4754 prohibitively negative
## 4755 prolific positive
## 4756 prominence positive
## 4757 prominent positive
## 4758 promise positive
## 4759 promised positive
## 4760 promises positive
## 4761 promising positive
## 4762 promoter positive
## 4763 prompt positive
## 4764 promptly positive
## 4765 propaganda negative
## 4766 propagandize negative
## 4767 proper positive
## 4768 properly positive
## 4769 propitious positive
## 4770 propitiously positive
## 4771 proprietary negative
## 4772 pros positive
## 4773 prosecute negative
## 4774 prosper positive
## 4775 prosperity positive
## 4776 prosperous positive
## 4777 prospros positive
## 4778 protect positive
## 4779 protection positive
## 4780 protective positive
## 4781 protest negative
## 4782 protested negative
## 4783 protesting negative
## 4784 protests negative
## 4785 protracted negative
## 4786 proud positive
## 4787 proven positive
## 4788 proves positive
## 4789 providence positive
## 4790 proving positive
## 4791 provocation negative
## 4792 provocative negative
## 4793 provoke negative
## 4794 prowess positive
## 4795 prudence positive
## 4796 prudent positive
## 4797 prudently positive
## 4798 pry negative
## 4799 pugnacious negative
## 4800 pugnaciously negative
## 4801 pugnacity negative
## 4802 punch negative
## 4803 punctual positive
## 4804 punish negative
## 4805 punishable negative
## 4806 punitive negative
## 4807 punk negative
## 4808 puny negative
## 4809 puppet negative
## 4810 puppets negative
## 4811 pure positive
## 4812 purify positive
## 4813 purposeful positive
## 4814 puzzled negative
## 4815 puzzlement negative
## 4816 puzzling negative
## 4817 quack negative
## 4818 quaint positive
## 4819 qualified positive
## 4820 qualify positive
## 4821 qualm negative
## 4822 qualms negative
## 4823 quandary negative
## 4824 quarrel negative
## 4825 quarrellous negative
## 4826 quarrellously negative
## 4827 quarrels negative
## 4828 quarrelsome negative
## 4829 quash negative
## 4830 queer negative
## 4831 questionable negative
## 4832 quibble negative
## 4833 quibbles negative
## 4834 quicker positive
## 4835 quiet positive
## 4836 quieter positive
## 4837 quitter negative
## 4838 rabid negative
## 4839 racism negative
## 4840 racist negative
## 4841 racists negative
## 4842 racy negative
## 4843 radiance positive
## 4844 radiant positive
## 4845 radical negative
## 4846 radicalization negative
## 4847 radically negative
## 4848 radicals negative
## 4849 rage negative
## 4850 ragged negative
## 4851 raging negative
## 4852 rail negative
## 4853 raked negative
## 4854 rampage negative
## 4855 rampant negative
## 4856 ramshackle negative
## 4857 rancor negative
## 4858 randomly negative
## 4859 rankle negative
## 4860 rant negative
## 4861 ranted negative
## 4862 ranting negative
## 4863 rantingly negative
## 4864 rants negative
## 4865 rape negative
## 4866 raped negative
## 4867 rapid positive
## 4868 raping negative
## 4869 rapport positive
## 4870 rapt positive
## 4871 rapture positive
## 4872 raptureous positive
## 4873 raptureously positive
## 4874 rapturous positive
## 4875 rapturously positive
## 4876 rascal negative
## 4877 rascals negative
## 4878 rash negative
## 4879 rational positive
## 4880 rattle negative
## 4881 rattled negative
## 4882 rattles negative
## 4883 ravage negative
## 4884 raving negative
## 4885 razor-sharp positive
## 4886 reachable positive
## 4887 reactionary negative
## 4888 readable positive
## 4889 readily positive
## 4890 ready positive
## 4891 reaffirm positive
## 4892 reaffirmation positive
## 4893 realistic positive
## 4894 realizable positive
## 4895 reasonable positive
## 4896 reasonably positive
## 4897 reasoned positive
## 4898 reassurance positive
## 4899 reassure positive
## 4900 rebellious negative
## 4901 rebuff negative
## 4902 rebuke negative
## 4903 recalcitrant negative
## 4904 recant negative
## 4905 receptive positive
## 4906 recession negative
## 4907 recessionary negative
## 4908 reckless negative
## 4909 recklessly negative
## 4910 recklessness negative
## 4911 reclaim positive
## 4912 recoil negative
## 4913 recomend positive
## 4914 recommend positive
## 4915 recommendation positive
## 4916 recommendations positive
## 4917 recommended positive
## 4918 reconcile positive
## 4919 reconciliation positive
## 4920 record-setting positive
## 4921 recourses negative
## 4922 recover positive
## 4923 recovery positive
## 4924 rectification positive
## 4925 rectify positive
## 4926 rectifying positive
## 4927 redeem positive
## 4928 redeeming positive
## 4929 redemption positive
## 4930 redundancy negative
## 4931 redundant negative
## 4932 refine positive
## 4933 refined positive
## 4934 refinement positive
## 4935 reform positive
## 4936 reformed positive
## 4937 reforming positive
## 4938 reforms positive
## 4939 refresh positive
## 4940 refreshed positive
## 4941 refreshing positive
## 4942 refund positive
## 4943 refunded positive
## 4944 refusal negative
## 4945 refuse negative
## 4946 refused negative
## 4947 refuses negative
## 4948 refusing negative
## 4949 refutation negative
## 4950 refute negative
## 4951 refuted negative
## 4952 refutes negative
## 4953 refuting negative
## 4954 regal positive
## 4955 regally positive
## 4956 regard positive
## 4957 regress negative
## 4958 regression negative
## 4959 regressive negative
## 4960 regret negative
## 4961 regreted negative
## 4962 regretful negative
## 4963 regretfully negative
## 4964 regrets negative
## 4965 regrettable negative
## 4966 regrettably negative
## 4967 regretted negative
## 4968 reject negative
## 4969 rejected negative
## 4970 rejecting negative
## 4971 rejection negative
## 4972 rejects negative
## 4973 rejoice positive
## 4974 rejoicing positive
## 4975 rejoicingly positive
## 4976 rejuvenate positive
## 4977 rejuvenated positive
## 4978 rejuvenating positive
## 4979 relapse negative
## 4980 relaxed positive
## 4981 relent positive
## 4982 relentless negative
## 4983 relentlessly negative
## 4984 relentlessness negative
## 4985 reliable positive
## 4986 reliably positive
## 4987 relief positive
## 4988 relish positive
## 4989 reluctance negative
## 4990 reluctant negative
## 4991 reluctantly negative
## 4992 remarkable positive
## 4993 remarkably positive
## 4994 remedy positive
## 4995 remission positive
## 4996 remorse negative
## 4997 remorseful negative
## 4998 remorsefully negative
## 4999 remorseless negative
## 5000 remorselessly negative
## 5001 remorselessness negative
## 5002 remunerate positive
## 5003 renaissance positive
## 5004 renewed positive
## 5005 renounce negative
## 5006 renown positive
## 5007 renowned positive
## 5008 renunciation negative
## 5009 repel negative
## 5010 repetitive negative
## 5011 replaceable positive
## 5012 reprehensible negative
## 5013 reprehensibly negative
## 5014 reprehension negative
## 5015 reprehensive negative
## 5016 repress negative
## 5017 repression negative
## 5018 repressive negative
## 5019 reprimand negative
## 5020 reproach negative
## 5021 reproachful negative
## 5022 reprove negative
## 5023 reprovingly negative
## 5024 repudiate negative
## 5025 repudiation negative
## 5026 repugn negative
## 5027 repugnance negative
## 5028 repugnant negative
## 5029 repugnantly negative
## 5030 repulse negative
## 5031 repulsed negative
## 5032 repulsing negative
## 5033 repulsive negative
## 5034 repulsively negative
## 5035 repulsiveness negative
## 5036 reputable positive
## 5037 reputation positive
## 5038 resent negative
## 5039 resentful negative
## 5040 resentment negative
## 5041 resignation negative
## 5042 resigned negative
## 5043 resilient positive
## 5044 resistance negative
## 5045 resolute positive
## 5046 resound positive
## 5047 resounding positive
## 5048 resourceful positive
## 5049 resourcefulness positive
## 5050 respect positive
## 5051 respectable positive
## 5052 respectful positive
## 5053 respectfully positive
## 5054 respite positive
## 5055 resplendent positive
## 5056 responsibly positive
## 5057 responsive positive
## 5058 restful positive
## 5059 restless negative
## 5060 restlessness negative
## 5061 restored positive
## 5062 restrict negative
## 5063 restricted negative
## 5064 restriction negative
## 5065 restrictive negative
## 5066 restructure positive
## 5067 restructured positive
## 5068 restructuring positive
## 5069 resurgent negative
## 5070 retaliate negative
## 5071 retaliatory negative
## 5072 retard negative
## 5073 retarded negative
## 5074 retardedness negative
## 5075 retards negative
## 5076 reticent negative
## 5077 retract negative
## 5078 retractable positive
## 5079 retreat negative
## 5080 retreated negative
## 5081 revel positive
## 5082 revelation positive
## 5083 revenge negative
## 5084 revengeful negative
## 5085 revengefully negative
## 5086 revere positive
## 5087 reverence positive
## 5088 reverent positive
## 5089 reverently positive
## 5090 revert negative
## 5091 revile negative
## 5092 reviled negative
## 5093 revitalize positive
## 5094 revival positive
## 5095 revive positive
## 5096 revives positive
## 5097 revoke negative
## 5098 revolt negative
## 5099 revolting negative
## 5100 revoltingly negative
## 5101 revolutionary positive
## 5102 revolutionize positive
## 5103 revolutionized positive
## 5104 revolutionizes positive
## 5105 revulsion negative
## 5106 revulsive negative
## 5107 reward positive
## 5108 rewarding positive
## 5109 rewardingly positive
## 5110 rhapsodize negative
## 5111 rhetoric negative
## 5112 rhetorical negative
## 5113 ricer negative
## 5114 rich positive
## 5115 richer positive
## 5116 richly positive
## 5117 richness positive
## 5118 ridicule negative
## 5119 ridicules negative
## 5120 ridiculous negative
## 5121 ridiculously negative
## 5122 rife negative
## 5123 rift negative
## 5124 rifts negative
## 5125 right positive
## 5126 righten positive
## 5127 righteous positive
## 5128 righteously positive
## 5129 righteousness positive
## 5130 rightful positive
## 5131 rightfully positive
## 5132 rightly positive
## 5133 rightness positive
## 5134 rigid negative
## 5135 rigidity negative
## 5136 rigidness negative
## 5137 rile negative
## 5138 riled negative
## 5139 rip negative
## 5140 rip-off negative
## 5141 ripoff negative
## 5142 ripped negative
## 5143 risk negative
## 5144 risk-free positive
## 5145 risks negative
## 5146 risky negative
## 5147 rival negative
## 5148 rivalry negative
## 5149 roadblocks negative
## 5150 robust positive
## 5151 rock-star positive
## 5152 rock-stars positive
## 5153 rockstar positive
## 5154 rockstars positive
## 5155 rocky negative
## 5156 rogue negative
## 5157 rollercoaster negative
## 5158 romantic positive
## 5159 romantically positive
## 5160 romanticize positive
## 5161 roomier positive
## 5162 roomy positive
## 5163 rosy positive
## 5164 rot negative
## 5165 rotten negative
## 5166 rough negative
## 5167 rremediable negative
## 5168 rubbish negative
## 5169 rude negative
## 5170 rue negative
## 5171 ruffian negative
## 5172 ruffle negative
## 5173 ruin negative
## 5174 ruined negative
## 5175 ruining negative
## 5176 ruinous negative
## 5177 ruins negative
## 5178 rumbling negative
## 5179 rumor negative
## 5180 rumors negative
## 5181 rumours negative
## 5182 rumple negative
## 5183 run-down negative
## 5184 runaway negative
## 5185 rupture negative
## 5186 rust negative
## 5187 rusts negative
## 5188 rusty negative
## 5189 rut negative
## 5190 ruthless negative
## 5191 ruthlessly negative
## 5192 ruthlessness negative
## 5193 ruts negative
## 5194 sabotage negative
## 5195 sack negative
## 5196 sacrificed negative
## 5197 sad negative
## 5198 sadden negative
## 5199 sadly negative
## 5200 sadness negative
## 5201 safe positive
## 5202 safely positive
## 5203 sag negative
## 5204 sagacity positive
## 5205 sagely positive
## 5206 sagged negative
## 5207 sagging negative
## 5208 saggy negative
## 5209 sags negative
## 5210 saint positive
## 5211 saintliness positive
## 5212 saintly positive
## 5213 salacious negative
## 5214 salutary positive
## 5215 salute positive
## 5216 sanctimonious negative
## 5217 sane positive
## 5218 sap negative
## 5219 sarcasm negative
## 5220 sarcastic negative
## 5221 sarcastically negative
## 5222 sardonic negative
## 5223 sardonically negative
## 5224 sass negative
## 5225 satirical negative
## 5226 satirize negative
## 5227 satisfactorily positive
## 5228 satisfactory positive
## 5229 satisfied positive
## 5230 satisfies positive
## 5231 satisfy positive
## 5232 satisfying positive
## 5233 satisified positive
## 5234 savage negative
## 5235 savaged negative
## 5236 savagery negative
## 5237 savages negative
## 5238 saver positive
## 5239 savings positive
## 5240 savior positive
## 5241 savvy positive
## 5242 scaly negative
## 5243 scam negative
## 5244 scams negative
## 5245 scandal negative
## 5246 scandalize negative
## 5247 scandalized negative
## 5248 scandalous negative
## 5249 scandalously negative
## 5250 scandals negative
## 5251 scandel negative
## 5252 scandels negative
## 5253 scant negative
## 5254 scapegoat negative
## 5255 scar negative
## 5256 scarce negative
## 5257 scarcely negative
## 5258 scarcity negative
## 5259 scare negative
## 5260 scared negative
## 5261 scarier negative
## 5262 scariest negative
## 5263 scarily negative
## 5264 scarred negative
## 5265 scars negative
## 5266 scary negative
## 5267 scathing negative
## 5268 scathingly negative
## 5269 scenic positive
## 5270 sceptical negative
## 5271 scoff negative
## 5272 scoffingly negative
## 5273 scold negative
## 5274 scolded negative
## 5275 scolding negative
## 5276 scoldingly negative
## 5277 scorching negative
## 5278 scorchingly negative
## 5279 scorn negative
## 5280 scornful negative
## 5281 scornfully negative
## 5282 scoundrel negative
## 5283 scourge negative
## 5284 scowl negative
## 5285 scramble negative
## 5286 scrambled negative
## 5287 scrambles negative
## 5288 scrambling negative
## 5289 scrap negative
## 5290 scratch negative
## 5291 scratched negative
## 5292 scratches negative
## 5293 scratchy negative
## 5294 scream negative
## 5295 screech negative
## 5296 screw-up negative
## 5297 screwed negative
## 5298 screwed-up negative
## 5299 screwy negative
## 5300 scuff negative
## 5301 scuffs negative
## 5302 scum negative
## 5303 scummy negative
## 5304 seamless positive
## 5305 seasoned positive
## 5306 second-class negative
## 5307 second-tier negative
## 5308 secretive negative
## 5309 secure positive
## 5310 securely positive
## 5311 sedentary negative
## 5312 seedy negative
## 5313 seethe negative
## 5314 seething negative
## 5315 selective positive
## 5316 self-coup negative
## 5317 self-criticism negative
## 5318 self-defeating negative
## 5319 self-destructive negative
## 5320 self-determination positive
## 5321 self-humiliation negative
## 5322 self-interest negative
## 5323 self-interested negative
## 5324 self-respect positive
## 5325 self-satisfaction positive
## 5326 self-serving negative
## 5327 self-sufficiency positive
## 5328 self-sufficient positive
## 5329 selfinterested negative
## 5330 selfish negative
## 5331 selfishly negative
## 5332 selfishness negative
## 5333 semi-retarded negative
## 5334 senile negative
## 5335 sensation positive
## 5336 sensational positive
## 5337 sensationalize negative
## 5338 sensationally positive
## 5339 sensations positive
## 5340 senseless negative
## 5341 senselessly negative
## 5342 sensible positive
## 5343 sensibly positive
## 5344 sensitive positive
## 5345 serene positive
## 5346 serenity positive
## 5347 seriousness negative
## 5348 sermonize negative
## 5349 servitude negative
## 5350 set-up negative
## 5351 setback negative
## 5352 setbacks negative
## 5353 sever negative
## 5354 severe negative
## 5355 severity negative
## 5356 sexy positive
## 5357 sh*t negative
## 5358 shabby negative
## 5359 shadowy negative
## 5360 shady negative
## 5361 shake negative
## 5362 shaky negative
## 5363 shallow negative
## 5364 sham negative
## 5365 shambles negative
## 5366 shame negative
## 5367 shameful negative
## 5368 shamefully negative
## 5369 shamefulness negative
## 5370 shameless negative
## 5371 shamelessly negative
## 5372 shamelessness negative
## 5373 shark negative
## 5374 sharp positive
## 5375 sharper positive
## 5376 sharpest positive
## 5377 sharply negative
## 5378 shatter negative
## 5379 shemale negative
## 5380 shimmer negative
## 5381 shimmering positive
## 5382 shimmeringly positive
## 5383 shimmy negative
## 5384 shine positive
## 5385 shiny positive
## 5386 shipwreck negative
## 5387 shirk negative
## 5388 shirker negative
## 5389 shit negative
## 5390 shiver negative
## 5391 shock negative
## 5392 shocked negative
## 5393 shocking negative
## 5394 shockingly negative
## 5395 shoddy negative
## 5396 short-lived negative
## 5397 shortage negative
## 5398 shortchange negative
## 5399 shortcoming negative
## 5400 shortcomings negative
## 5401 shortness negative
## 5402 shortsighted negative
## 5403 shortsightedness negative
## 5404 showdown negative
## 5405 shrew negative
## 5406 shriek negative
## 5407 shrill negative
## 5408 shrilly negative
## 5409 shrivel negative
## 5410 shroud negative
## 5411 shrouded negative
## 5412 shrug negative
## 5413 shun negative
## 5414 shunned negative
## 5415 sick negative
## 5416 sicken negative
## 5417 sickening negative
## 5418 sickeningly negative
## 5419 sickly negative
## 5420 sickness negative
## 5421 sidetrack negative
## 5422 sidetracked negative
## 5423 siege negative
## 5424 significant positive
## 5425 silent positive
## 5426 sillily negative
## 5427 silly negative
## 5428 simpler positive
## 5429 simplest positive
## 5430 simplified positive
## 5431 simplifies positive
## 5432 simplify positive
## 5433 simplifying positive
## 5434 simplistic negative
## 5435 simplistically negative
## 5436 sin negative
## 5437 sincere positive
## 5438 sincerely positive
## 5439 sincerity positive
## 5440 sinful negative
## 5441 sinfully negative
## 5442 sinister negative
## 5443 sinisterly negative
## 5444 sink negative
## 5445 sinking negative
## 5446 skeletons negative
## 5447 skeptic negative
## 5448 skeptical negative
## 5449 skeptically negative
## 5450 skepticism negative
## 5451 sketchy negative
## 5452 skill positive
## 5453 skilled positive
## 5454 skillful positive
## 5455 skillfully positive
## 5456 skimpy negative
## 5457 skinny negative
## 5458 skittish negative
## 5459 skittishly negative
## 5460 skulk negative
## 5461 slack negative
## 5462 slammin positive
## 5463 slander negative
## 5464 slanderer negative
## 5465 slanderous negative
## 5466 slanderously negative
## 5467 slanders negative
## 5468 slap negative
## 5469 slashing negative
## 5470 slaughter negative
## 5471 slaughtered negative
## 5472 slave negative
## 5473 slaves negative
## 5474 sleazy negative
## 5475 sleek positive
## 5476 slick positive
## 5477 slime negative
## 5478 slog negative
## 5479 slogged negative
## 5480 slogging negative
## 5481 slogs negative
## 5482 sloooooooooooooow negative
## 5483 sloooow negative
## 5484 slooow negative
## 5485 sloow negative
## 5486 sloppily negative
## 5487 sloppy negative
## 5488 sloth negative
## 5489 slothful negative
## 5490 slow negative
## 5491 slow-moving negative
## 5492 slowed negative
## 5493 slower negative
## 5494 slowest negative
## 5495 slowly negative
## 5496 sloww negative
## 5497 slowww negative
## 5498 slowwww negative
## 5499 slug negative
## 5500 sluggish negative
## 5501 slump negative
## 5502 slumping negative
## 5503 slumpping negative
## 5504 slur negative
## 5505 slut negative
## 5506 sluts negative
## 5507 sly negative
## 5508 smack negative
## 5509 smallish negative
## 5510 smart positive
## 5511 smarter positive
## 5512 smartest positive
## 5513 smartly positive
## 5514 smash negative
## 5515 smear negative
## 5516 smell negative
## 5517 smelled negative
## 5518 smelling negative
## 5519 smells negative
## 5520 smelly negative
## 5521 smelt negative
## 5522 smile positive
## 5523 smiles positive
## 5524 smiling positive
## 5525 smilingly positive
## 5526 smitten positive
## 5527 smoke negative
## 5528 smokescreen negative
## 5529 smolder negative
## 5530 smoldering negative
## 5531 smooth positive
## 5532 smoother positive
## 5533 smoothes positive
## 5534 smoothest positive
## 5535 smoothly positive
## 5536 smother negative
## 5537 smoulder negative
## 5538 smouldering negative
## 5539 smudge negative
## 5540 smudged negative
## 5541 smudges negative
## 5542 smudging negative
## 5543 smug negative
## 5544 smugly negative
## 5545 smut negative
## 5546 smuttier negative
## 5547 smuttiest negative
## 5548 smutty negative
## 5549 snag negative
## 5550 snagged negative
## 5551 snagging negative
## 5552 snags negative
## 5553 snappish negative
## 5554 snappishly negative
## 5555 snappy positive
## 5556 snare negative
## 5557 snarky negative
## 5558 snarl negative
## 5559 snazzy positive
## 5560 sneak negative
## 5561 sneakily negative
## 5562 sneaky negative
## 5563 sneer negative
## 5564 sneering negative
## 5565 sneeringly negative
## 5566 snob negative
## 5567 snobbish negative
## 5568 snobby negative
## 5569 snobish negative
## 5570 snobs negative
## 5571 snub negative
## 5572 so-cal negative
## 5573 soapy negative
## 5574 sob negative
## 5575 sober negative
## 5576 sobering negative
## 5577 sociable positive
## 5578 soft positive
## 5579 softer positive
## 5580 solace positive
## 5581 solemn negative
## 5582 solicitous positive
## 5583 solicitously positive
## 5584 solicitude negative
## 5585 solid positive
## 5586 solidarity positive
## 5587 somber negative
## 5588 soothe positive
## 5589 soothingly positive
## 5590 sophisticated positive
## 5591 sore negative
## 5592 sorely negative
## 5593 soreness negative
## 5594 sorrow negative
## 5595 sorrowful negative
## 5596 sorrowfully negative
## 5597 sorry negative
## 5598 soulful positive
## 5599 soundly positive
## 5600 soundness positive
## 5601 sour negative
## 5602 sourly negative
## 5603 spacious positive
## 5604 spade negative
## 5605 spank negative
## 5606 sparkle positive
## 5607 sparkling positive
## 5608 spectacular positive
## 5609 spectacularly positive
## 5610 speedily positive
## 5611 speedy positive
## 5612 spellbind positive
## 5613 spellbinding positive
## 5614 spellbindingly positive
## 5615 spellbound positive
## 5616 spendy negative
## 5617 spew negative
## 5618 spewed negative
## 5619 spewing negative
## 5620 spews negative
## 5621 spilling negative
## 5622 spinster negative
## 5623 spirited positive
## 5624 spiritless negative
## 5625 spiritual positive
## 5626 spite negative
## 5627 spiteful negative
## 5628 spitefully negative
## 5629 spitefulness negative
## 5630 splatter negative
## 5631 splendid positive
## 5632 splendidly positive
## 5633 splendor positive
## 5634 split negative
## 5635 splitting negative
## 5636 spoil negative
## 5637 spoilage negative
## 5638 spoilages negative
## 5639 spoiled negative
## 5640 spoilled negative
## 5641 spoils negative
## 5642 spontaneous positive
## 5643 spook negative
## 5644 spookier negative
## 5645 spookiest negative
## 5646 spookily negative
## 5647 spooky negative
## 5648 spoon-fed negative
## 5649 spoon-feed negative
## 5650 spoonfed negative
## 5651 sporadic negative
## 5652 sporty positive
## 5653 spotless positive
## 5654 spotty negative
## 5655 sprightly positive
## 5656 spurious negative
## 5657 spurn negative
## 5658 sputter negative
## 5659 squabble negative
## 5660 squabbling negative
## 5661 squander negative
## 5662 squash negative
## 5663 squeak negative
## 5664 squeaks negative
## 5665 squeaky negative
## 5666 squeal negative
## 5667 squealing negative
## 5668 squeals negative
## 5669 squirm negative
## 5670 stab negative
## 5671 stability positive
## 5672 stabilize positive
## 5673 stable positive
## 5674 stagnant negative
## 5675 stagnate negative
## 5676 stagnation negative
## 5677 staid negative
## 5678 stain negative
## 5679 stainless positive
## 5680 stains negative
## 5681 stale negative
## 5682 stalemate negative
## 5683 stall negative
## 5684 stalls negative
## 5685 stammer negative
## 5686 stampede negative
## 5687 standout positive
## 5688 standstill negative
## 5689 stark negative
## 5690 starkly negative
## 5691 startle negative
## 5692 startling negative
## 5693 startlingly negative
## 5694 starvation negative
## 5695 starve negative
## 5696 state-of-the-art positive
## 5697 stately positive
## 5698 static negative
## 5699 statuesque positive
## 5700 staunch positive
## 5701 staunchly positive
## 5702 staunchness positive
## 5703 steadfast positive
## 5704 steadfastly positive
## 5705 steadfastness positive
## 5706 steadiest positive
## 5707 steadiness positive
## 5708 steady positive
## 5709 steal negative
## 5710 stealing negative
## 5711 steals negative
## 5712 steep negative
## 5713 steeply negative
## 5714 stellar positive
## 5715 stellarly positive
## 5716 stench negative
## 5717 stereotype negative
## 5718 stereotypical negative
## 5719 stereotypically negative
## 5720 stern negative
## 5721 stew negative
## 5722 sticky negative
## 5723 stiff negative
## 5724 stiffness negative
## 5725 stifle negative
## 5726 stifling negative
## 5727 stiflingly negative
## 5728 stigma negative
## 5729 stigmatize negative
## 5730 stimulate positive
## 5731 stimulates positive
## 5732 stimulating positive
## 5733 stimulative positive
## 5734 sting negative
## 5735 stinging negative
## 5736 stingingly negative
## 5737 stingy negative
## 5738 stink negative
## 5739 stinks negative
## 5740 stirringly positive
## 5741 stodgy negative
## 5742 stole negative
## 5743 stolen negative
## 5744 stooge negative
## 5745 stooges negative
## 5746 stormy negative
## 5747 straggle negative
## 5748 straggler negative
## 5749 straighten positive
## 5750 straightforward positive
## 5751 strain negative
## 5752 strained negative
## 5753 straining negative
## 5754 strange negative
## 5755 strangely negative
## 5756 stranger negative
## 5757 strangest negative
## 5758 strangle negative
## 5759 streaky negative
## 5760 streamlined positive
## 5761 strenuous negative
## 5762 stress negative
## 5763 stresses negative
## 5764 stressful negative
## 5765 stressfully negative
## 5766 stricken negative
## 5767 strict negative
## 5768 strictly negative
## 5769 strident negative
## 5770 stridently negative
## 5771 strife negative
## 5772 strike negative
## 5773 striking positive
## 5774 strikingly positive
## 5775 stringent negative
## 5776 stringently negative
## 5777 striving positive
## 5778 strong positive
## 5779 stronger positive
## 5780 strongest positive
## 5781 struck negative
## 5782 struggle negative
## 5783 struggled negative
## 5784 struggles negative
## 5785 struggling negative
## 5786 strut negative
## 5787 stubborn negative
## 5788 stubbornly negative
## 5789 stubbornness negative
## 5790 stuck negative
## 5791 stuffy negative
## 5792 stumble negative
## 5793 stumbled negative
## 5794 stumbles negative
## 5795 stump negative
## 5796 stumped negative
## 5797 stumps negative
## 5798 stun negative
## 5799 stunned positive
## 5800 stunning positive
## 5801 stunningly positive
## 5802 stunt negative
## 5803 stunted negative
## 5804 stupendous positive
## 5805 stupendously positive
## 5806 stupid negative
## 5807 stupidest negative
## 5808 stupidity negative
## 5809 stupidly negative
## 5810 stupified negative
## 5811 stupify negative
## 5812 stupor negative
## 5813 sturdier positive
## 5814 sturdy positive
## 5815 stutter negative
## 5816 stuttered negative
## 5817 stuttering negative
## 5818 stutters negative
## 5819 sty negative
## 5820 stylish positive
## 5821 stylishly positive
## 5822 stylized positive
## 5823 stymied negative
## 5824 suave positive
## 5825 suavely positive
## 5826 sub-par negative
## 5827 subdued negative
## 5828 subjected negative
## 5829 subjection negative
## 5830 subjugate negative
## 5831 subjugation negative
## 5832 sublime positive
## 5833 submissive negative
## 5834 subordinate negative
## 5835 subpoena negative
## 5836 subpoenas negative
## 5837 subservience negative
## 5838 subservient negative
## 5839 subsidize positive
## 5840 subsidized positive
## 5841 subsidizes positive
## 5842 subsidizing positive
## 5843 substandard negative
## 5844 substantive positive
## 5845 subtract negative
## 5846 subversion negative
## 5847 subversive negative
## 5848 subversively negative
## 5849 subvert negative
## 5850 succeed positive
## 5851 succeeded positive
## 5852 succeeding positive
## 5853 succeeds positive
## 5854 succes positive
## 5855 success positive
## 5856 successes positive
## 5857 successful positive
## 5858 successfully positive
## 5859 succumb negative
## 5860 suck negative
## 5861 sucked negative
## 5862 sucker negative
## 5863 sucks negative
## 5864 sucky negative
## 5865 sue negative
## 5866 sued negative
## 5867 sueing negative
## 5868 sues negative
## 5869 suffer negative
## 5870 suffered negative
## 5871 sufferer negative
## 5872 sufferers negative
## 5873 suffering negative
## 5874 suffers negative
## 5875 suffice positive
## 5876 sufficed positive
## 5877 suffices positive
## 5878 sufficient positive
## 5879 sufficiently positive
## 5880 suffocate negative
## 5881 sugar-coat negative
## 5882 sugar-coated negative
## 5883 sugarcoated negative
## 5884 suicidal negative
## 5885 suicide negative
## 5886 suitable positive
## 5887 sulk negative
## 5888 sullen negative
## 5889 sully negative
## 5890 sumptuous positive
## 5891 sumptuously positive
## 5892 sumptuousness positive
## 5893 sunder negative
## 5894 sunk negative
## 5895 sunken negative
## 5896 super positive
## 5897 superb positive
## 5898 superbly positive
## 5899 superficial negative
## 5900 superficiality negative
## 5901 superficially negative
## 5902 superfluous negative
## 5903 superior positive
## 5904 superiority positive
## 5905 superstition negative
## 5906 superstitious negative
## 5907 supple positive
## 5908 support positive
## 5909 supported positive
## 5910 supporter positive
## 5911 supporting positive
## 5912 supportive positive
## 5913 supports positive
## 5914 suppress negative
## 5915 suppression negative
## 5916 supremacy positive
## 5917 supreme positive
## 5918 supremely positive
## 5919 supurb positive
## 5920 supurbly positive
## 5921 surmount positive
## 5922 surpass positive
## 5923 surreal positive
## 5924 surrender negative
## 5925 survival positive
## 5926 survivor positive
## 5927 susceptible negative
## 5928 suspect negative
## 5929 suspicion negative
## 5930 suspicions negative
## 5931 suspicious negative
## 5932 suspiciously negative
## 5933 sustainability positive
## 5934 sustainable positive
## 5935 swagger negative
## 5936 swamped negative
## 5937 swank positive
## 5938 swankier positive
## 5939 swankiest positive
## 5940 swanky positive
## 5941 sweaty negative
## 5942 sweeping positive
## 5943 sweet positive
## 5944 sweeten positive
## 5945 sweetheart positive
## 5946 sweetly positive
## 5947 sweetness positive
## 5948 swelled negative
## 5949 swelling negative
## 5950 swift positive
## 5951 swiftness positive
## 5952 swindle negative
## 5953 swipe negative
## 5954 swollen negative
## 5955 symptom negative
## 5956 symptoms negative
## 5957 syndrome negative
## 5958 taboo negative
## 5959 tacky negative
## 5960 taint negative
## 5961 tainted negative
## 5962 talent positive
## 5963 talented positive
## 5964 talents positive
## 5965 tamper negative
## 5966 tangle negative
## 5967 tangled negative
## 5968 tangles negative
## 5969 tank negative
## 5970 tanked negative
## 5971 tanks negative
## 5972 tantalize positive
## 5973 tantalizing positive
## 5974 tantalizingly positive
## 5975 tantrum negative
## 5976 tardy negative
## 5977 tarnish negative
## 5978 tarnished negative
## 5979 tarnishes negative
## 5980 tarnishing negative
## 5981 tattered negative
## 5982 taunt negative
## 5983 taunting negative
## 5984 tauntingly negative
## 5985 taunts negative
## 5986 taut negative
## 5987 tawdry negative
## 5988 taxing negative
## 5989 tease negative
## 5990 teasingly negative
## 5991 tedious negative
## 5992 tediously negative
## 5993 temerity negative
## 5994 temper negative
## 5995 tempest negative
## 5996 tempt positive
## 5997 temptation negative
## 5998 tempting positive
## 5999 temptingly positive
## 6000 tenacious positive
## 6001 tenaciously positive
## 6002 tenacity positive
## 6003 tender positive
## 6004 tenderly positive
## 6005 tenderness negative
## 6006 tense negative
## 6007 tension negative
## 6008 tentative negative
## 6009 tentatively negative
## 6010 tenuous negative
## 6011 tenuously negative
## 6012 tepid negative
## 6013 terrible negative
## 6014 terribleness negative
## 6015 terribly negative
## 6016 terrific positive
## 6017 terrifically positive
## 6018 terror negative
## 6019 terror-genic negative
## 6020 terrorism negative
## 6021 terrorize negative
## 6022 testily negative
## 6023 testy negative
## 6024 tetchily negative
## 6025 tetchy negative
## 6026 thank positive
## 6027 thankful positive
## 6028 thankless negative
## 6029 thicker negative
## 6030 thinner positive
## 6031 thirst negative
## 6032 thorny negative
## 6033 thoughtful positive
## 6034 thoughtfully positive
## 6035 thoughtfulness positive
## 6036 thoughtless negative
## 6037 thoughtlessly negative
## 6038 thoughtlessness negative
## 6039 thrash negative
## 6040 threat negative
## 6041 threaten negative
## 6042 threatening negative
## 6043 threats negative
## 6044 threesome negative
## 6045 thrift positive
## 6046 thrifty positive
## 6047 thrill positive
## 6048 thrilled positive
## 6049 thrilling positive
## 6050 thrillingly positive
## 6051 thrills positive
## 6052 thrive positive
## 6053 thriving positive
## 6054 throb negative
## 6055 throbbed negative
## 6056 throbbing negative
## 6057 throbs negative
## 6058 throttle negative
## 6059 thug negative
## 6060 thumb-down negative
## 6061 thumb-up positive
## 6062 thumbs-down negative
## 6063 thumbs-up positive
## 6064 thwart negative
## 6065 tickle positive
## 6066 tidy positive
## 6067 time-consuming negative
## 6068 time-honored positive
## 6069 timely positive
## 6070 timid negative
## 6071 timidity negative
## 6072 timidly negative
## 6073 timidness negative
## 6074 tin-y negative
## 6075 tingle positive
## 6076 tingled negative
## 6077 tingling negative
## 6078 tired negative
## 6079 tiresome negative
## 6080 tiring negative
## 6081 tiringly negative
## 6082 titillate positive
## 6083 titillating positive
## 6084 titillatingly positive
## 6085 togetherness positive
## 6086 toil negative
## 6087 tolerable positive
## 6088 toll negative
## 6089 toll-free positive
## 6090 top positive
## 6091 top-heavy negative
## 6092 top-notch positive
## 6093 top-quality positive
## 6094 topnotch positive
## 6095 topple negative
## 6096 tops positive
## 6097 torment negative
## 6098 tormented negative
## 6099 torrent negative
## 6100 tortuous negative
## 6101 torture negative
## 6102 tortured negative
## 6103 tortures negative
## 6104 torturing negative
## 6105 torturous negative
## 6106 torturously negative
## 6107 totalitarian negative
## 6108 touchy negative
## 6109 tough positive
## 6110 tougher positive
## 6111 toughest positive
## 6112 toughness negative
## 6113 tout negative
## 6114 touted negative
## 6115 touts negative
## 6116 toxic negative
## 6117 traction positive
## 6118 traduce negative
## 6119 tragedy negative
## 6120 tragic negative
## 6121 tragically negative
## 6122 traitor negative
## 6123 traitorous negative
## 6124 traitorously negative
## 6125 tramp negative
## 6126 trample negative
## 6127 tranquil positive
## 6128 tranquility positive
## 6129 transgress negative
## 6130 transgression negative
## 6131 transparent positive
## 6132 trap negative
## 6133 traped negative
## 6134 trapped negative
## 6135 trash negative
## 6136 trashed negative
## 6137 trashy negative
## 6138 trauma negative
## 6139 traumatic negative
## 6140 traumatically negative
## 6141 traumatize negative
## 6142 traumatized negative
## 6143 travesties negative
## 6144 travesty negative
## 6145 treacherous negative
## 6146 treacherously negative
## 6147 treachery negative
## 6148 treason negative
## 6149 treasonous negative
## 6150 treasure positive
## 6151 tremendously positive
## 6152 trendy positive
## 6153 trick negative
## 6154 tricked negative
## 6155 trickery negative
## 6156 tricky negative
## 6157 triumph positive
## 6158 triumphal positive
## 6159 triumphant positive
## 6160 triumphantly positive
## 6161 trivial negative
## 6162 trivialize negative
## 6163 trivially positive
## 6164 trophy positive
## 6165 trouble negative
## 6166 trouble-free positive
## 6167 troubled negative
## 6168 troublemaker negative
## 6169 troubles negative
## 6170 troublesome negative
## 6171 troublesomely negative
## 6172 troubling negative
## 6173 troublingly negative
## 6174 truant negative
## 6175 trump positive
## 6176 trumpet positive
## 6177 trust positive
## 6178 trusted positive
## 6179 trusting positive
## 6180 trustingly positive
## 6181 trustworthiness positive
## 6182 trustworthy positive
## 6183 trusty positive
## 6184 truthful positive
## 6185 truthfully positive
## 6186 truthfulness positive
## 6187 tumble negative
## 6188 tumbled negative
## 6189 tumbles negative
## 6190 tumultuous negative
## 6191 turbulent negative
## 6192 turmoil negative
## 6193 twinkly positive
## 6194 twist negative
## 6195 twisted negative
## 6196 twists negative
## 6197 two-faced negative
## 6198 two-faces negative
## 6199 tyrannical negative
## 6200 tyrannically negative
## 6201 tyranny negative
## 6202 tyrant negative
## 6203 ugh negative
## 6204 uglier negative
## 6205 ugliest negative
## 6206 ugliness negative
## 6207 ugly negative
## 6208 ulterior negative
## 6209 ultimatum negative
## 6210 ultimatums negative
## 6211 ultra-crisp positive
## 6212 ultra-hardline negative
## 6213 un-viewable negative
## 6214 unabashed positive
## 6215 unabashedly positive
## 6216 unable negative
## 6217 unacceptable negative
## 6218 unacceptablely negative
## 6219 unacceptably negative
## 6220 unaccessible negative
## 6221 unaccustomed negative
## 6222 unachievable negative
## 6223 unaffected positive
## 6224 unaffordable negative
## 6225 unappealing negative
## 6226 unassailable positive
## 6227 unattractive negative
## 6228 unauthentic negative
## 6229 unavailable negative
## 6230 unavoidably negative
## 6231 unbearable negative
## 6232 unbearablely negative
## 6233 unbeatable positive
## 6234 unbelievable negative
## 6235 unbelievably negative
## 6236 unbiased positive
## 6237 unbound positive
## 6238 uncaring negative
## 6239 uncertain negative
## 6240 uncivil negative
## 6241 uncivilized negative
## 6242 unclean negative
## 6243 unclear negative
## 6244 uncollectible negative
## 6245 uncomfortable negative
## 6246 uncomfortably negative
## 6247 uncomfy negative
## 6248 uncompetitive negative
## 6249 uncomplicated positive
## 6250 uncompromising negative
## 6251 uncompromisingly negative
## 6252 unconditional positive
## 6253 unconfirmed negative
## 6254 unconstitutional negative
## 6255 uncontrolled negative
## 6256 unconvincing negative
## 6257 unconvincingly negative
## 6258 uncooperative negative
## 6259 uncouth negative
## 6260 uncreative negative
## 6261 undamaged positive
## 6262 undaunted positive
## 6263 undecided negative
## 6264 undefined negative
## 6265 undependability negative
## 6266 undependable negative
## 6267 undercut negative
## 6268 undercuts negative
## 6269 undercutting negative
## 6270 underdog negative
## 6271 underestimate negative
## 6272 underlings negative
## 6273 undermine negative
## 6274 undermined negative
## 6275 undermines negative
## 6276 undermining negative
## 6277 underpaid negative
## 6278 underpowered negative
## 6279 undersized negative
## 6280 understandable positive
## 6281 undesirable negative
## 6282 undetermined negative
## 6283 undid negative
## 6284 undignified negative
## 6285 undisputable positive
## 6286 undisputably positive
## 6287 undisputed positive
## 6288 undissolved negative
## 6289 undocumented negative
## 6290 undone negative
## 6291 undue negative
## 6292 unease negative
## 6293 uneasily negative
## 6294 uneasiness negative
## 6295 uneasy negative
## 6296 uneconomical negative
## 6297 unemployed negative
## 6298 unencumbered positive
## 6299 unequal negative
## 6300 unequivocal positive
## 6301 unequivocally positive
## 6302 unethical negative
## 6303 uneven negative
## 6304 uneventful negative
## 6305 unexpected negative
## 6306 unexpectedly negative
## 6307 unexplained negative
## 6308 unfairly negative
## 6309 unfaithful negative
## 6310 unfaithfully negative
## 6311 unfamiliar negative
## 6312 unfavorable negative
## 6313 unfazed positive
## 6314 unfeeling negative
## 6315 unfettered positive
## 6316 unfinished negative
## 6317 unfit negative
## 6318 unforeseen negative
## 6319 unforgettable positive
## 6320 unforgiving negative
## 6321 unfortunate negative
## 6322 unfortunately negative
## 6323 unfounded negative
## 6324 unfriendly negative
## 6325 unfulfilled negative
## 6326 unfunded negative
## 6327 ungovernable negative
## 6328 ungrateful negative
## 6329 unhappily negative
## 6330 unhappiness negative
## 6331 unhappy negative
## 6332 unhealthy negative
## 6333 unhelpful negative
## 6334 unilateralism negative
## 6335 unimaginable negative
## 6336 unimaginably negative
## 6337 unimportant negative
## 6338 uninformed negative
## 6339 uninsured negative
## 6340 unintelligible negative
## 6341 unintelligile negative
## 6342 unipolar negative
## 6343 unity positive
## 6344 unjust negative
## 6345 unjustifiable negative
## 6346 unjustifiably negative
## 6347 unjustified negative
## 6348 unjustly negative
## 6349 unkind negative
## 6350 unkindly negative
## 6351 unknown negative
## 6352 unlamentable negative
## 6353 unlamentably negative
## 6354 unlawful negative
## 6355 unlawfully negative
## 6356 unlawfulness negative
## 6357 unleash negative
## 6358 unlicensed negative
## 6359 unlikely negative
## 6360 unlimited positive
## 6361 unlucky negative
## 6362 unmatched positive
## 6363 unmoved negative
## 6364 unnatural negative
## 6365 unnaturally negative
## 6366 unnecessary negative
## 6367 unneeded negative
## 6368 unnerve negative
## 6369 unnerved negative
## 6370 unnerving negative
## 6371 unnervingly negative
## 6372 unnoticed negative
## 6373 unobserved negative
## 6374 unorthodox negative
## 6375 unorthodoxy negative
## 6376 unparalleled positive
## 6377 unpleasant negative
## 6378 unpleasantries negative
## 6379 unpopular negative
## 6380 unpredictable negative
## 6381 unprepared negative
## 6382 unproductive negative
## 6383 unprofitable negative
## 6384 unprove negative
## 6385 unproved negative
## 6386 unproven negative
## 6387 unproves negative
## 6388 unproving negative
## 6389 unqualified negative
## 6390 unquestionable positive
## 6391 unquestionably positive
## 6392 unravel negative
## 6393 unraveled negative
## 6394 unreachable negative
## 6395 unreadable negative
## 6396 unreal positive
## 6397 unrealistic negative
## 6398 unreasonable negative
## 6399 unreasonably negative
## 6400 unrelenting negative
## 6401 unrelentingly negative
## 6402 unreliability negative
## 6403 unreliable negative
## 6404 unresolved negative
## 6405 unresponsive negative
## 6406 unrest negative
## 6407 unrestricted positive
## 6408 unrivaled positive
## 6409 unruly negative
## 6410 unsafe negative
## 6411 unsatisfactory negative
## 6412 unsavory negative
## 6413 unscrupulous negative
## 6414 unscrupulously negative
## 6415 unsecure negative
## 6416 unseemly negative
## 6417 unselfish positive
## 6418 unsettle negative
## 6419 unsettled negative
## 6420 unsettling negative
## 6421 unsettlingly negative
## 6422 unskilled negative
## 6423 unsophisticated negative
## 6424 unsound negative
## 6425 unspeakable negative
## 6426 unspeakablely negative
## 6427 unspecified negative
## 6428 unstable negative
## 6429 unsteadily negative
## 6430 unsteadiness negative
## 6431 unsteady negative
## 6432 unsuccessful negative
## 6433 unsuccessfully negative
## 6434 unsupported negative
## 6435 unsupportive negative
## 6436 unsure negative
## 6437 unsuspecting negative
## 6438 unsustainable negative
## 6439 untenable negative
## 6440 untested negative
## 6441 unthinkable negative
## 6442 unthinkably negative
## 6443 untimely negative
## 6444 untouched negative
## 6445 untrue negative
## 6446 untrustworthy negative
## 6447 untruthful negative
## 6448 unusable negative
## 6449 unusably negative
## 6450 unuseable negative
## 6451 unuseably negative
## 6452 unusual negative
## 6453 unusually negative
## 6454 unviewable negative
## 6455 unwanted negative
## 6456 unwarranted negative
## 6457 unwatchable negative
## 6458 unwavering positive
## 6459 unwelcome negative
## 6460 unwell negative
## 6461 unwieldy negative
## 6462 unwilling negative
## 6463 unwillingly negative
## 6464 unwillingness negative
## 6465 unwise negative
## 6466 unwisely negative
## 6467 unworkable negative
## 6468 unworthy negative
## 6469 unyielding negative
## 6470 upbeat positive
## 6471 upbraid negative
## 6472 upgradable positive
## 6473 upgradeable positive
## 6474 upgraded positive
## 6475 upheaval negative
## 6476 upheld positive
## 6477 uphold positive
## 6478 uplift positive
## 6479 uplifting positive
## 6480 upliftingly positive
## 6481 upliftment positive
## 6482 uprising negative
## 6483 uproar negative
## 6484 uproarious negative
## 6485 uproariously negative
## 6486 uproarous negative
## 6487 uproarously negative
## 6488 uproot negative
## 6489 upscale positive
## 6490 upset negative
## 6491 upseting negative
## 6492 upsets negative
## 6493 upsetting negative
## 6494 upsettingly negative
## 6495 urgent negative
## 6496 usable positive
## 6497 useable positive
## 6498 useful positive
## 6499 useless negative
## 6500 user-friendly positive
## 6501 user-replaceable positive
## 6502 usurp negative
## 6503 usurper negative
## 6504 utterly negative
## 6505 vagrant negative
## 6506 vague negative
## 6507 vagueness negative
## 6508 vain negative
## 6509 vainly negative
## 6510 valiant positive
## 6511 valiantly positive
## 6512 valor positive
## 6513 valuable positive
## 6514 vanity negative
## 6515 variety positive
## 6516 vehement negative
## 6517 vehemently negative
## 6518 venerate positive
## 6519 vengeance negative
## 6520 vengeful negative
## 6521 vengefully negative
## 6522 vengefulness negative
## 6523 venom negative
## 6524 venomous negative
## 6525 venomously negative
## 6526 vent negative
## 6527 verifiable positive
## 6528 veritable positive
## 6529 versatile positive
## 6530 versatility positive
## 6531 vestiges negative
## 6532 vex negative
## 6533 vexation negative
## 6534 vexing negative
## 6535 vexingly negative
## 6536 vibrant positive
## 6537 vibrantly positive
## 6538 vibrate negative
## 6539 vibrated negative
## 6540 vibrates negative
## 6541 vibrating negative
## 6542 vibration negative
## 6543 vice negative
## 6544 vicious negative
## 6545 viciously negative
## 6546 viciousness negative
## 6547 victimize negative
## 6548 victorious positive
## 6549 victory positive
## 6550 viewable positive
## 6551 vigilance positive
## 6552 vigilant positive
## 6553 vile negative
## 6554 vileness negative
## 6555 vilify negative
## 6556 villainous negative
## 6557 villainously negative
## 6558 villains negative
## 6559 villian negative
## 6560 villianous negative
## 6561 villianously negative
## 6562 villify negative
## 6563 vindictive negative
## 6564 vindictively negative
## 6565 vindictiveness negative
## 6566 violate negative
## 6567 violation negative
## 6568 violator negative
## 6569 violators negative
## 6570 violent negative
## 6571 violently negative
## 6572 viper negative
## 6573 virtue positive
## 6574 virtuous positive
## 6575 virtuously positive
## 6576 virulence negative
## 6577 virulent negative
## 6578 virulently negative
## 6579 virus negative
## 6580 visionary positive
## 6581 vivacious positive
## 6582 vivid positive
## 6583 vociferous negative
## 6584 vociferously negative
## 6585 volatile negative
## 6586 volatility negative
## 6587 vomit negative
## 6588 vomited negative
## 6589 vomiting negative
## 6590 vomits negative
## 6591 vouch positive
## 6592 vouchsafe positive
## 6593 vulgar negative
## 6594 vulnerable negative
## 6595 wack negative
## 6596 wail negative
## 6597 wallow negative
## 6598 wane negative
## 6599 waning negative
## 6600 wanton negative
## 6601 war-like negative
## 6602 warily negative
## 6603 wariness negative
## 6604 warlike negative
## 6605 warm positive
## 6606 warmer positive
## 6607 warmhearted positive
## 6608 warmly positive
## 6609 warmth positive
## 6610 warned negative
## 6611 warning negative
## 6612 warp negative
## 6613 warped negative
## 6614 wary negative
## 6615 washed-out negative
## 6616 waste negative
## 6617 wasted negative
## 6618 wasteful negative
## 6619 wastefulness negative
## 6620 wasting negative
## 6621 water-down negative
## 6622 watered-down negative
## 6623 wayward negative
## 6624 weak negative
## 6625 weaken negative
## 6626 weakening negative
## 6627 weaker negative
## 6628 weakness negative
## 6629 weaknesses negative
## 6630 wealthy positive
## 6631 weariness negative
## 6632 wearisome negative
## 6633 weary negative
## 6634 wedge negative
## 6635 weed negative
## 6636 weep negative
## 6637 weird negative
## 6638 weirdly negative
## 6639 welcome positive
## 6640 well positive
## 6641 well-backlit positive
## 6642 well-balanced positive
## 6643 well-behaved positive
## 6644 well-being positive
## 6645 well-bred positive
## 6646 well-connected positive
## 6647 well-educated positive
## 6648 well-established positive
## 6649 well-informed positive
## 6650 well-intentioned positive
## 6651 well-known positive
## 6652 well-made positive
## 6653 well-managed positive
## 6654 well-mannered positive
## 6655 well-positioned positive
## 6656 well-received positive
## 6657 well-regarded positive
## 6658 well-rounded positive
## 6659 well-run positive
## 6660 well-wishers positive
## 6661 wellbeing positive
## 6662 wheedle negative
## 6663 whimper negative
## 6664 whine negative
## 6665 whining negative
## 6666 whiny negative
## 6667 whips negative
## 6668 whoa positive
## 6669 wholeheartedly positive
## 6670 wholesome positive
## 6671 whooa positive
## 6672 whoooa positive
## 6673 whore negative
## 6674 whores negative
## 6675 wicked negative
## 6676 wickedly negative
## 6677 wickedness negative
## 6678 wieldy positive
## 6679 wild negative
## 6680 wildly negative
## 6681 wiles negative
## 6682 willing positive
## 6683 willingly positive
## 6684 willingness positive
## 6685 wilt negative
## 6686 wily negative
## 6687 wimpy negative
## 6688 win positive
## 6689 wince negative
## 6690 windfall positive
## 6691 winnable positive
## 6692 winner positive
## 6693 winners positive
## 6694 winning positive
## 6695 wins positive
## 6696 wisdom positive
## 6697 wise positive
## 6698 wisely positive
## 6699 witty positive
## 6700 wobble negative
## 6701 wobbled negative
## 6702 wobbles negative
## 6703 woe negative
## 6704 woebegone negative
## 6705 woeful negative
## 6706 woefully negative
## 6707 womanizer negative
## 6708 womanizing negative
## 6709 won positive
## 6710 wonder positive
## 6711 wonderful positive
## 6712 wonderfully positive
## 6713 wonderous positive
## 6714 wonderously positive
## 6715 wonders positive
## 6716 wondrous positive
## 6717 woo positive
## 6718 work positive
## 6719 workable positive
## 6720 worked positive
## 6721 works positive
## 6722 world-famous positive
## 6723 worn negative
## 6724 worried negative
## 6725 worriedly negative
## 6726 worrier negative
## 6727 worries negative
## 6728 worrisome negative
## 6729 worry negative
## 6730 worrying negative
## 6731 worryingly negative
## 6732 worse negative
## 6733 worsen negative
## 6734 worsening negative
## 6735 worst negative
## 6736 worth positive
## 6737 worth-while positive
## 6738 worthiness positive
## 6739 worthless negative
## 6740 worthlessly negative
## 6741 worthlessness negative
## 6742 worthwhile positive
## 6743 worthy positive
## 6744 wound negative
## 6745 wounds negative
## 6746 wow positive
## 6747 wowed positive
## 6748 wowing positive
## 6749 wows positive
## 6750 wrangle negative
## 6751 wrath negative
## 6752 wreak negative
## 6753 wreaked negative
## 6754 wreaks negative
## 6755 wreck negative
## 6756 wrest negative
## 6757 wrestle negative
## 6758 wretch negative
## 6759 wretched negative
## 6760 wretchedly negative
## 6761 wretchedness negative
## 6762 wrinkle negative
## 6763 wrinkled negative
## 6764 wrinkles negative
## 6765 wrip negative
## 6766 wripped negative
## 6767 wripping negative
## 6768 writhe negative
## 6769 wrong negative
## 6770 wrongful negative
## 6771 wrongly negative
## 6772 wrought negative
## 6773 yawn negative
## 6774 yay positive
## 6775 youthful positive
## 6776 zap negative
## 6777 zapped negative
## 6778 zaps negative
## 6779 zeal positive
## 6780 zealot negative
## 6781 zealous negative
## 6782 zealously negative
## 6783 zenith positive
## 6784 zest positive
## 6785 zippy positive
## 6786 zombie negative
nrc
## word sentiment
## 1 abacus trust
## 2 abandon fear
## 3 abandon negative
## 4 abandon sadness
## 5 abandoned anger
## 6 abandoned fear
## 7 abandoned negative
## 8 abandoned sadness
## 9 abandonment anger
## 10 abandonment fear
## 11 abandonment negative
## 12 abandonment sadness
## 13 abandonment surprise
## 14 abba positive
## 15 abbot trust
## 16 abduction fear
## 17 abduction negative
## 18 abduction sadness
## 19 abduction surprise
## 20 aberrant negative
## 21 aberration disgust
## 22 aberration negative
## 23 abhor anger
## 24 abhor disgust
## 25 abhor fear
## 26 abhor negative
## 27 abhorrent anger
## 28 abhorrent disgust
## 29 abhorrent fear
## 30 abhorrent negative
## 31 ability positive
## 32 abject disgust
## 33 abject negative
## 34 abnormal disgust
## 35 abnormal negative
## 36 abolish anger
## 37 abolish negative
## 38 abolition negative
## 39 abominable disgust
## 40 abominable fear
## 41 abominable negative
## 42 abomination anger
## 43 abomination disgust
## 44 abomination fear
## 45 abomination negative
## 46 abort negative
## 47 abortion disgust
## 48 abortion fear
## 49 abortion negative
## 50 abortion sadness
## 51 abortive negative
## 52 abortive sadness
## 53 abovementioned positive
## 54 abrasion negative
## 55 abrogate negative
## 56 abrupt surprise
## 57 abscess negative
## 58 abscess sadness
## 59 absence fear
## 60 absence negative
## 61 absence sadness
## 62 absent negative
## 63 absent sadness
## 64 absentee negative
## 65 absentee sadness
## 66 absenteeism negative
## 67 absolute positive
## 68 absolution joy
## 69 absolution positive
## 70 absolution trust
## 71 absorbed positive
## 72 absurd negative
## 73 absurdity negative
## 74 abundance anticipation
## 75 abundance disgust
## 76 abundance joy
## 77 abundance negative
## 78 abundance positive
## 79 abundance trust
## 80 abundant joy
## 81 abundant positive
## 82 abuse anger
## 83 abuse disgust
## 84 abuse fear
## 85 abuse negative
## 86 abuse sadness
## 87 abysmal negative
## 88 abysmal sadness
## 89 abyss fear
## 90 abyss negative
## 91 abyss sadness
## 92 academic positive
## 93 academic trust
## 94 academy positive
## 95 accelerate anticipation
## 96 acceptable positive
## 97 acceptance positive
## 98 accessible positive
## 99 accident fear
## 100 accident negative
## 101 accident sadness
## 102 accident surprise
## 103 accidental fear
## 104 accidental negative
## 105 accidental surprise
## 106 accidentally surprise
## 107 accolade anticipation
## 108 accolade joy
## 109 accolade positive
## 110 accolade surprise
## 111 accolade trust
## 112 accommodation positive
## 113 accompaniment anticipation
## 114 accompaniment joy
## 115 accompaniment positive
## 116 accompaniment trust
## 117 accomplish joy
## 118 accomplish positive
## 119 accomplished joy
## 120 accomplished positive
## 121 accomplishment positive
## 122 accord positive
## 123 accord trust
## 124 account trust
## 125 accountability positive
## 126 accountability trust
## 127 accountable positive
## 128 accountable trust
## 129 accountant trust
## 130 accounts trust
## 131 accredited positive
## 132 accredited trust
## 133 accueil positive
## 134 accurate positive
## 135 accurate trust
## 136 accursed anger
## 137 accursed fear
## 138 accursed negative
## 139 accursed sadness
## 140 accusation anger
## 141 accusation disgust
## 142 accusation negative
## 143 accusative negative
## 144 accused anger
## 145 accused fear
## 146 accused negative
## 147 accuser anger
## 148 accuser fear
## 149 accuser negative
## 150 accusing anger
## 151 accusing fear
## 152 accusing negative
## 153 ace positive
## 154 ache negative
## 155 ache sadness
## 156 achieve joy
## 157 achieve positive
## 158 achieve trust
## 159 achievement anticipation
## 160 achievement joy
## 161 achievement positive
## 162 achievement trust
## 163 aching negative
## 164 aching sadness
## 165 acid negative
## 166 acknowledgment positive
## 167 acquire positive
## 168 acquiring anticipation
## 169 acquiring positive
## 170 acrobat fear
## 171 acrobat joy
## 172 acrobat positive
## 173 acrobat trust
## 174 action positive
## 175 actionable anger
## 176 actionable disgust
## 177 actionable negative
## 178 actual positive
## 179 acuity positive
## 180 acumen positive
## 181 adapt positive
## 182 adaptable positive
## 183 adder anger
## 184 adder disgust
## 185 adder fear
## 186 adder negative
## 187 adder sadness
## 188 addiction negative
## 189 addresses anticipation
## 190 addresses positive
## 191 adept positive
## 192 adequacy positive
## 193 adhering trust
## 194 adipose negative
## 195 adjudicate fear
## 196 adjudicate negative
## 197 adjunct positive
## 198 administrative trust
## 199 admirable joy
## 200 admirable positive
## 201 admirable trust
## 202 admiral positive
## 203 admiral trust
## 204 admiration joy
## 205 admiration positive
## 206 admiration trust
## 207 admire positive
## 208 admire trust
## 209 admirer positive
## 210 admissible positive
## 211 admissible trust
## 212 admonition fear
## 213 admonition negative
## 214 adorable joy
## 215 adorable positive
## 216 adoration joy
## 217 adoration positive
## 218 adoration trust
## 219 adore anticipation
## 220 adore joy
## 221 adore positive
## 222 adore trust
## 223 adrift anticipation
## 224 adrift fear
## 225 adrift negative
## 226 adrift sadness
## 227 adulterated negative
## 228 adultery disgust
## 229 adultery negative
## 230 adultery sadness
## 231 advance anticipation
## 232 advance fear
## 233 advance joy
## 234 advance positive
## 235 advance surprise
## 236 advanced positive
## 237 advancement positive
## 238 advantage positive
## 239 advantageous positive
## 240 advent anticipation
## 241 advent joy
## 242 advent positive
## 243 advent trust
## 244 adventure anticipation
## 245 adventure positive
## 246 adventurous positive
## 247 adversary anger
## 248 adversary negative
## 249 adverse anger
## 250 adverse disgust
## 251 adverse fear
## 252 adverse negative
## 253 adverse sadness
## 254 adversity anger
## 255 adversity fear
## 256 adversity negative
## 257 adversity sadness
## 258 advice trust
## 259 advisable positive
## 260 advisable trust
## 261 advise positive
## 262 advise trust
## 263 advised trust
## 264 adviser positive
## 265 adviser trust
## 266 advocacy anger
## 267 advocacy anticipation
## 268 advocacy joy
## 269 advocacy positive
## 270 advocacy trust
## 271 advocate trust
## 272 aesthetic positive
## 273 aesthetics joy
## 274 aesthetics positive
## 275 affable positive
## 276 affection joy
## 277 affection positive
## 278 affection trust
## 279 affiliated positive
## 280 affirm positive
## 281 affirm trust
## 282 affirmation positive
## 283 affirmative positive
## 284 affirmatively positive
## 285 affirmatively trust
## 286 afflict fear
## 287 afflict negative
## 288 afflict sadness
## 289 afflicted negative
## 290 affliction disgust
## 291 affliction fear
## 292 affliction negative
## 293 affliction sadness
## 294 affluence joy
## 295 affluence positive
## 296 affluent positive
## 297 afford positive
## 298 affront anger
## 299 affront disgust
## 300 affront fear
## 301 affront negative
## 302 affront sadness
## 303 affront surprise
## 304 afraid fear
## 305 afraid negative
## 306 aftermath anger
## 307 aftermath disgust
## 308 aftermath fear
## 309 aftermath negative
## 310 aftermath sadness
## 311 aftertaste negative
## 312 aga fear
## 313 aga positive
## 314 aga trust
## 315 aggravated anger
## 316 aggravated negative
## 317 aggravating anger
## 318 aggravating negative
## 319 aggravating sadness
## 320 aggravation anger
## 321 aggravation disgust
## 322 aggravation negative
## 323 aggression anger
## 324 aggression fear
## 325 aggression negative
## 326 aggressive anger
## 327 aggressive fear
## 328 aggressive negative
## 329 aggressor anger
## 330 aggressor fear
## 331 aggressor negative
## 332 aghast disgust
## 333 aghast fear
## 334 aghast negative
## 335 aghast surprise
## 336 agile positive
## 337 agility positive
## 338 agitated anger
## 339 agitated negative
## 340 agitation anger
## 341 agitation negative
## 342 agonizing fear
## 343 agonizing negative
## 344 agony anger
## 345 agony fear
## 346 agony negative
## 347 agony sadness
## 348 agree positive
## 349 agreeable positive
## 350 agreeable trust
## 351 agreed positive
## 352 agreed trust
## 353 agreeing positive
## 354 agreeing trust
## 355 agreement positive
## 356 agreement trust
## 357 agriculture positive
## 358 aground negative
## 359 ahead positive
## 360 aid positive
## 361 aiding positive
## 362 ail negative
## 363 ail sadness
## 364 ailing fear
## 365 ailing negative
## 366 ailing sadness
## 367 aimless negative
## 368 airport anticipation
## 369 airs disgust
## 370 airs negative
## 371 akin trust
## 372 alabaster positive
## 373 alarm fear
## 374 alarm negative
## 375 alarm surprise
## 376 alarming fear
## 377 alarming negative
## 378 alarming surprise
## 379 alb trust
## 380 alcoholism anger
## 381 alcoholism disgust
## 382 alcoholism fear
## 383 alcoholism negative
## 384 alcoholism sadness
## 385 alertness anticipation
## 386 alertness fear
## 387 alertness positive
## 388 alertness surprise
## 389 alerts anticipation
## 390 alerts fear
## 391 alerts surprise
## 392 alien disgust
## 393 alien fear
## 394 alien negative
## 395 alienate anger
## 396 alienate disgust
## 397 alienate negative
## 398 alienated negative
## 399 alienated sadness
## 400 alienation anger
## 401 alienation disgust
## 402 alienation fear
## 403 alienation negative
## 404 alienation sadness
## 405 alimentation positive
## 406 alimony negative
## 407 alive anticipation
## 408 alive joy
## 409 alive positive
## 410 alive trust
## 411 allay positive
## 412 allegation anger
## 413 allegation negative
## 414 allege negative
## 415 allegiance positive
## 416 allegiance trust
## 417 allegro positive
## 418 alleviate positive
## 419 alleviation positive
## 420 alliance trust
## 421 allied positive
## 422 allied trust
## 423 allowable positive
## 424 allure anticipation
## 425 allure joy
## 426 allure positive
## 427 allure surprise
## 428 alluring positive
## 429 ally positive
## 430 ally trust
## 431 almighty positive
## 432 aloha anticipation
## 433 aloha joy
## 434 aloha positive
## 435 aloof negative
## 436 altercation anger
## 437 altercation negative
## 438 amaze surprise
## 439 amazingly joy
## 440 amazingly positive
## 441 amazingly surprise
## 442 ambassador positive
## 443 ambassador trust
## 444 ambiguous negative
## 445 ambition anticipation
## 446 ambition joy
## 447 ambition positive
## 448 ambition trust
## 449 ambulance fear
## 450 ambulance trust
## 451 ambush anger
## 452 ambush fear
## 453 ambush negative
## 454 ambush surprise
## 455 ameliorate positive
## 456 amen joy
## 457 amen positive
## 458 amen trust
## 459 amenable positive
## 460 amend positive
## 461 amends positive
## 462 amenity positive
## 463 amiable positive
## 464 amicable joy
## 465 amicable positive
## 466 ammonia disgust
## 467 amnesia negative
## 468 amnesty joy
## 469 amnesty positive
## 470 amortization trust
## 471 amour anticipation
## 472 amour joy
## 473 amour positive
## 474 amour trust
## 475 amphetamines disgust
## 476 amphetamines negative
## 477 amuse joy
## 478 amuse positive
## 479 amused joy
## 480 amused positive
## 481 amusement joy
## 482 amusement positive
## 483 amusing joy
## 484 amusing positive
## 485 anaconda disgust
## 486 anaconda fear
## 487 anaconda negative
## 488 anal negative
## 489 analyst anticipation
## 490 analyst positive
## 491 analyst trust
## 492 anarchism anger
## 493 anarchism fear
## 494 anarchism negative
## 495 anarchist anger
## 496 anarchist fear
## 497 anarchist negative
## 498 anarchy anger
## 499 anarchy fear
## 500 anarchy negative
## 501 anathema anger
## 502 anathema disgust
## 503 anathema fear
## 504 anathema negative
## 505 anathema sadness
## 506 ancestral trust
## 507 anchor positive
## 508 anchorage positive
## 509 anchorage sadness
## 510 ancient negative
## 511 angel anticipation
## 512 angel joy
## 513 angel positive
## 514 angel surprise
## 515 angel trust
## 516 angelic joy
## 517 angelic positive
## 518 angelic trust
## 519 anger anger
## 520 anger negative
## 521 angina fear
## 522 angina negative
## 523 angling anticipation
## 524 angling negative
## 525 angry anger
## 526 angry disgust
## 527 angry negative
## 528 anguish anger
## 529 anguish fear
## 530 anguish negative
## 531 anguish sadness
## 532 animate positive
## 533 animated joy
## 534 animated positive
## 535 animosity anger
## 536 animosity disgust
## 537 animosity fear
## 538 animosity negative
## 539 animosity sadness
## 540 animus anger
## 541 animus negative
## 542 annihilate anger
## 543 annihilate fear
## 544 annihilate negative
## 545 annihilated anger
## 546 annihilated fear
## 547 annihilated negative
## 548 annihilated sadness
## 549 annihilation anger
## 550 annihilation fear
## 551 annihilation negative
## 552 annihilation sadness
## 553 announcement anticipation
## 554 annoy anger
## 555 annoy disgust
## 556 annoy negative
## 557 annoyance anger
## 558 annoyance disgust
## 559 annoyance negative
## 560 annoying anger
## 561 annoying negative
## 562 annul negative
## 563 annulment negative
## 564 annulment sadness
## 565 anomaly fear
## 566 anomaly negative
## 567 anomaly surprise
## 568 anonymous negative
## 569 answerable trust
## 570 antagonism anger
## 571 antagonism negative
## 572 antagonist anger
## 573 antagonist negative
## 574 antagonistic anger
## 575 antagonistic disgust
## 576 antagonistic negative
## 577 anthrax disgust
## 578 anthrax fear
## 579 anthrax negative
## 580 anthrax sadness
## 581 antibiotics positive
## 582 antichrist anger
## 583 antichrist disgust
## 584 antichrist fear
## 585 antichrist negative
## 586 anticipation anticipation
## 587 anticipatory anticipation
## 588 antidote anticipation
## 589 antidote positive
## 590 antidote trust
## 591 antifungal positive
## 592 antifungal trust
## 593 antipathy anger
## 594 antipathy disgust
## 595 antipathy negative
## 596 antiquated negative
## 597 antique positive
## 598 antiseptic positive
## 599 antiseptic trust
## 600 antisocial anger
## 601 antisocial disgust
## 602 antisocial fear
## 603 antisocial negative
## 604 antisocial sadness
## 605 antithesis anger
## 606 antithesis negative
## 607 anxiety anger
## 608 anxiety anticipation
## 609 anxiety fear
## 610 anxiety negative
## 611 anxiety sadness
## 612 anxious anticipation
## 613 anxious fear
## 614 anxious negative
## 615 apache fear
## 616 apache negative
## 617 apathetic negative
## 618 apathetic sadness
## 619 apathy negative
## 620 apathy sadness
## 621 aphid disgust
## 622 aphid negative
## 623 aplomb positive
## 624 apologetic positive
## 625 apologetic trust
## 626 apologize positive
## 627 apologize sadness
## 628 apologize trust
## 629 apology positive
## 630 apostle positive
## 631 apostle trust
## 632 apostolic trust
## 633 appalling disgust
## 634 appalling fear
## 635 appalling negative
## 636 apparition fear
## 637 apparition surprise
## 638 appeal anticipation
## 639 appendicitis fear
## 640 appendicitis negative
## 641 appendicitis sadness
## 642 applause joy
## 643 applause positive
## 644 applause surprise
## 645 applause trust
## 646 applicant anticipation
## 647 appreciation joy
## 648 appreciation positive
## 649 appreciation trust
## 650 apprehend fear
## 651 apprehension fear
## 652 apprehension negative
## 653 apprehensive anticipation
## 654 apprehensive fear
## 655 apprehensive negative
## 656 apprentice trust
## 657 approaching anticipation
## 658 approbation positive
## 659 approbation trust
## 660 appropriation negative
## 661 approval positive
## 662 approve joy
## 663 approve positive
## 664 approve trust
## 665 approving positive
## 666 apt positive
## 667 aptitude positive
## 668 arbiter trust
## 669 arbitration anticipation
## 670 arbitrator trust
## 671 archaeology anticipation
## 672 archaeology positive
## 673 archaic negative
## 674 architecture trust
## 675 ardent anticipation
## 676 ardent joy
## 677 ardent positive
## 678 ardor positive
## 679 arduous negative
## 680 argue anger
## 681 argue negative
## 682 argument anger
## 683 argument negative
## 684 argumentation anger
## 685 argumentative negative
## 686 arguments anger
## 687 arid negative
## 688 arid sadness
## 689 aristocracy positive
## 690 aristocratic positive
## 691 armament anger
## 692 armament fear
## 693 armaments fear
## 694 armaments negative
## 695 armed anger
## 696 armed fear
## 697 armed negative
## 698 armed positive
## 699 armor fear
## 700 armor positive
## 701 armor trust
## 702 armored fear
## 703 armory trust
## 704 aroma positive
## 705 arouse anticipation
## 706 arouse positive
## 707 arraignment anger
## 708 arraignment fear
## 709 arraignment negative
## 710 arraignment sadness
## 711 array positive
## 712 arrears negative
## 713 arrest negative
## 714 arrival anticipation
## 715 arrive anticipation
## 716 arrogance negative
## 717 arrogant anger
## 718 arrogant disgust
## 719 arrogant negative
## 720 arsenic disgust
## 721 arsenic fear
## 722 arsenic negative
## 723 arsenic sadness
## 724 arson anger
## 725 arson fear
## 726 arson negative
## 727 art anticipation
## 728 art joy
## 729 art positive
## 730 art sadness
## 731 art surprise
## 732 articulate positive
## 733 articulation positive
## 734 artillery fear
## 735 artillery negative
## 736 artisan positive
## 737 artiste positive
## 738 artistic positive
## 739 ascendancy positive
## 740 ascent positive
## 741 ash negative
## 742 ashamed disgust
## 743 ashamed negative
## 744 ashamed sadness
## 745 ashes negative
## 746 ashes sadness
## 747 asp fear
## 748 aspiration anticipation
## 749 aspiration joy
## 750 aspiration positive
## 751 aspiration surprise
## 752 aspiration trust
## 753 aspire anticipation
## 754 aspire joy
## 755 aspire positive
## 756 aspiring anticipation
## 757 aspiring joy
## 758 aspiring positive
## 759 aspiring trust
## 760 ass negative
## 761 assail anger
## 762 assail fear
## 763 assail negative
## 764 assail surprise
## 765 assailant anger
## 766 assailant fear
## 767 assailant negative
## 768 assailant sadness
## 769 assassin anger
## 770 assassin fear
## 771 assassin negative
## 772 assassin sadness
## 773 assassinate anger
## 774 assassinate fear
## 775 assassinate negative
## 776 assassination anger
## 777 assassination fear
## 778 assassination negative
## 779 assassination sadness
## 780 assault anger
## 781 assault fear
## 782 assault negative
## 783 assembly positive
## 784 assembly trust
## 785 assent positive
## 786 asserting positive
## 787 asserting trust
## 788 assessment surprise
## 789 assessment trust
## 790 assessor trust
## 791 assets positive
## 792 asshole anger
## 793 asshole disgust
## 794 asshole negative
## 795 assignee trust
## 796 assist positive
## 797 assist trust
## 798 assistance positive
## 799 associate positive
## 800 associate trust
## 801 association trust
## 802 assuage positive
## 803 assurance positive
## 804 assurance trust
## 805 assure trust
## 806 assured positive
## 807 assured trust
## 808 assuredly trust
## 809 astonishingly positive
## 810 astonishingly surprise
## 811 astonishment joy
## 812 astonishment positive
## 813 astonishment surprise
## 814 astray fear
## 815 astray negative
## 816 astringent negative
## 817 astrologer anticipation
## 818 astrologer positive
## 819 astronaut positive
## 820 astronomer anticipation
## 821 astronomer positive
## 822 astute positive
## 823 asylum fear
## 824 asylum negative
## 825 asymmetry disgust
## 826 atheism negative
## 827 atherosclerosis fear
## 828 atherosclerosis negative
## 829 atherosclerosis sadness
## 830 athlete positive
## 831 athletic positive
## 832 atom positive
## 833 atone anticipation
## 834 atone joy
## 835 atone positive
## 836 atone trust
## 837 atonement positive
## 838 atrocious anger
## 839 atrocious disgust
## 840 atrocious negative
## 841 atrocity anger
## 842 atrocity disgust
## 843 atrocity fear
## 844 atrocity negative
## 845 atrocity sadness
## 846 atrophy disgust
## 847 atrophy fear
## 848 atrophy negative
## 849 atrophy sadness
## 850 attachment positive
## 851 attack anger
## 852 attack fear
## 853 attack negative
## 854 attacking anger
## 855 attacking disgust
## 856 attacking fear
## 857 attacking negative
## 858 attacking sadness
## 859 attacking surprise
## 860 attainable anticipation
## 861 attainable positive
## 862 attainment positive
## 863 attempt anticipation
## 864 attendance anticipation
## 865 attendant positive
## 866 attendant trust
## 867 attention positive
## 868 attentive positive
## 869 attentive trust
## 870 attenuated negative
## 871 attenuation negative
## 872 attenuation sadness
## 873 attest positive
## 874 attest trust
## 875 attestation trust
## 876 attorney anger
## 877 attorney fear
## 878 attorney positive
## 879 attorney trust
## 880 attraction positive
## 881 attractiveness positive
## 882 auction anticipation
## 883 audacity negative
## 884 audience anticipation
## 885 auditor fear
## 886 auditor trust
## 887 augment positive
## 888 august positive
## 889 aunt positive
## 890 aunt trust
## 891 aura positive
## 892 auspicious anticipation
## 893 auspicious joy
## 894 auspicious positive
## 895 austere fear
## 896 austere negative
## 897 austere sadness
## 898 austerity negative
## 899 authentic joy
## 900 authentic positive
## 901 authentic trust
## 902 authenticate trust
## 903 authentication trust
## 904 authenticity positive
## 905 authenticity trust
## 906 author positive
## 907 author trust
## 908 authoritative positive
## 909 authoritative trust
## 910 authority positive
## 911 authority trust
## 912 authorization positive
## 913 authorization trust
## 914 authorize trust
## 915 authorized positive
## 916 autocratic negative
## 917 automatic trust
## 918 autopsy disgust
## 919 autopsy fear
## 920 autopsy negative
## 921 autopsy sadness
## 922 avalanche fear
## 923 avalanche negative
## 924 avalanche sadness
## 925 avalanche surprise
## 926 avarice anger
## 927 avarice disgust
## 928 avarice negative
## 929 avatar positive
## 930 avenger anger
## 931 avenger negative
## 932 averse anger
## 933 averse disgust
## 934 averse fear
## 935 averse negative
## 936 aversion anger
## 937 aversion disgust
## 938 aversion fear
## 939 aversion negative
## 940 avoid fear
## 941 avoid negative
## 942 avoidance fear
## 943 avoidance negative
## 944 avoiding fear
## 945 await anticipation
## 946 award anticipation
## 947 award joy
## 948 award positive
## 949 award surprise
## 950 award trust
## 951 awful anger
## 952 awful disgust
## 953 awful fear
## 954 awful negative
## 955 awful sadness
## 956 awkwardness disgust
## 957 awkwardness negative
## 958 awry negative
## 959 axiom trust
## 960 axiomatic trust
## 961 ay positive
## 962 aye positive
## 963 babble negative
## 964 babbling negative
## 965 baboon disgust
## 966 baboon negative
## 967 baby joy
## 968 baby positive
## 969 babysitter trust
## 970 baccalaureate positive
## 971 backbone anger
## 972 backbone positive
## 973 backbone trust
## 974 backer trust
## 975 backward negative
## 976 backwards disgust
## 977 backwards negative
## 978 backwater negative
## 979 backwater sadness
## 980 bacteria disgust
## 981 bacteria fear
## 982 bacteria negative
## 983 bacteria sadness
## 984 bacterium disgust
## 985 bacterium fear
## 986 bacterium negative
## 987 bad anger
## 988 bad disgust
## 989 bad fear
## 990 bad negative
## 991 bad sadness
## 992 badge trust
## 993 badger anger
## 994 badger negative
## 995 badly negative
## 996 badly sadness
## 997 badness anger
## 998 badness disgust
## 999 badness fear
## 1000 badness negative
## 1001 bailiff fear
## 1002 bailiff negative
## 1003 bailiff trust
## 1004 bait fear
## 1005 bait negative
## 1006 bait trust
## 1007 balance positive
## 1008 balanced positive
## 1009 bale fear
## 1010 bale negative
## 1011 balk negative
## 1012 ballad positive
## 1013 ballet positive
## 1014 ballot anticipation
## 1015 ballot positive
## 1016 ballot trust
## 1017 balm anticipation
## 1018 balm joy
## 1019 balm negative
## 1020 balm positive
## 1021 balsam positive
## 1022 ban negative
## 1023 bandit negative
## 1024 bane anger
## 1025 bane disgust
## 1026 bane fear
## 1027 bane negative
## 1028 bang anger
## 1029 bang disgust
## 1030 bang fear
## 1031 bang negative
## 1032 bang sadness
## 1033 bang surprise
## 1034 banger anger
## 1035 banger anticipation
## 1036 banger fear
## 1037 banger negative
## 1038 banger surprise
## 1039 banish anger
## 1040 banish disgust
## 1041 banish fear
## 1042 banish negative
## 1043 banish sadness
## 1044 banished anger
## 1045 banished fear
## 1046 banished negative
## 1047 banished sadness
## 1048 banishment anger
## 1049 banishment disgust
## 1050 banishment negative
## 1051 banishment sadness
## 1052 bank trust
## 1053 banker trust
## 1054 bankrupt fear
## 1055 bankrupt negative
## 1056 bankrupt sadness
## 1057 bankruptcy anger
## 1058 bankruptcy disgust
## 1059 bankruptcy fear
## 1060 bankruptcy negative
## 1061 bankruptcy sadness
## 1062 banquet anticipation
## 1063 banquet joy
## 1064 banquet positive
## 1065 banshee anger
## 1066 banshee disgust
## 1067 banshee fear
## 1068 banshee negative
## 1069 banshee sadness
## 1070 baptism positive
## 1071 baptismal joy
## 1072 baptismal positive
## 1073 barb anger
## 1074 barb negative
## 1075 barbarian fear
## 1076 barbarian negative
## 1077 barbaric anger
## 1078 barbaric disgust
## 1079 barbaric fear
## 1080 barbaric negative
## 1081 barbarism negative
## 1082 bard positive
## 1083 barf disgust
## 1084 bargain positive
## 1085 bargain trust
## 1086 bark anger
## 1087 bark negative
## 1088 barred negative
## 1089 barren negative
## 1090 barren sadness
## 1091 barricade fear
## 1092 barricade negative
## 1093 barrier anger
## 1094 barrier negative
## 1095 barrow disgust
## 1096 bartender trust
## 1097 barter trust
## 1098 base trust
## 1099 baseless negative
## 1100 basketball anticipation
## 1101 basketball joy
## 1102 basketball positive
## 1103 bastard disgust
## 1104 bastard negative
## 1105 bastard sadness
## 1106 bastion anger
## 1107 bastion positive
## 1108 bath positive
## 1109 battalion anger
## 1110 batter anger
## 1111 batter fear
## 1112 batter negative
## 1113 battered fear
## 1114 battered negative
## 1115 battered sadness
## 1116 battery anger
## 1117 battery negative
## 1118 battle anger
## 1119 battle negative
## 1120 battled anger
## 1121 battled fear
## 1122 battled negative
## 1123 battled sadness
## 1124 battlefield fear
## 1125 battlefield negative
## 1126 bawdy negative
## 1127 bayonet anger
## 1128 bayonet fear
## 1129 bayonet negative
## 1130 beach joy
## 1131 beam joy
## 1132 beam positive
## 1133 beaming anticipation
## 1134 beaming joy
## 1135 beaming positive
## 1136 bear anger
## 1137 bear fear
## 1138 bearer negative
## 1139 bearish anger
## 1140 bearish fear
## 1141 beast anger
## 1142 beast fear
## 1143 beast negative
## 1144 beastly disgust
## 1145 beastly fear
## 1146 beastly negative
## 1147 beating anger
## 1148 beating fear
## 1149 beating negative
## 1150 beating sadness
## 1151 beautification joy
## 1152 beautification positive
## 1153 beautification trust
## 1154 beautiful joy
## 1155 beautiful positive
## 1156 beautify joy
## 1157 beautify positive
## 1158 beauty joy
## 1159 beauty positive
## 1160 bedrock positive
## 1161 bedrock trust
## 1162 bee anger
## 1163 bee fear
## 1164 beer joy
## 1165 beer positive
## 1166 befall negative
## 1167 befitting positive
## 1168 befriend joy
## 1169 befriend positive
## 1170 befriend trust
## 1171 beg negative
## 1172 beg sadness
## 1173 beggar negative
## 1174 beggar sadness
## 1175 begging negative
## 1176 begun anticipation
## 1177 behemoth fear
## 1178 behemoth negative
## 1179 beholden negative
## 1180 belated negative
## 1181 believed trust
## 1182 believer trust
## 1183 believing positive
## 1184 believing trust
## 1185 belittle anger
## 1186 belittle disgust
## 1187 belittle fear
## 1188 belittle negative
## 1189 belittle sadness
## 1190 belligerent anger
## 1191 belligerent fear
## 1192 belligerent negative
## 1193 bellows anger
## 1194 belt anger
## 1195 belt fear
## 1196 belt negative
## 1197 bender negative
## 1198 benefactor positive
## 1199 benefactor trust
## 1200 beneficial positive
## 1201 benefit positive
## 1202 benevolence joy
## 1203 benevolence positive
## 1204 benevolence trust
## 1205 benign joy
## 1206 benign positive
## 1207 bequest trust
## 1208 bereaved negative
## 1209 bereaved sadness
## 1210 bereavement negative
## 1211 bereavement sadness
## 1212 bereft negative
## 1213 berserk anger
## 1214 berserk negative
## 1215 berth positive
## 1216 bestial disgust
## 1217 bestial fear
## 1218 bestial negative
## 1219 betray anger
## 1220 betray disgust
## 1221 betray negative
## 1222 betray sadness
## 1223 betray surprise
## 1224 betrayal anger
## 1225 betrayal disgust
## 1226 betrayal negative
## 1227 betrayal sadness
## 1228 betrothed anticipation
## 1229 betrothed joy
## 1230 betrothed positive
## 1231 betrothed trust
## 1232 betterment positive
## 1233 beverage positive
## 1234 beware anticipation
## 1235 beware fear
## 1236 beware negative
## 1237 bewildered fear
## 1238 bewildered negative
## 1239 bewildered surprise
## 1240 bewilderment fear
## 1241 bewilderment surprise
## 1242 bias anger
## 1243 bias negative
## 1244 biased negative
## 1245 biblical positive
## 1246 bickering anger
## 1247 bickering disgust
## 1248 bickering negative
## 1249 biennial anticipation
## 1250 bier fear
## 1251 bier negative
## 1252 bier sadness
## 1253 bigot anger
## 1254 bigot disgust
## 1255 bigot fear
## 1256 bigot negative
## 1257 bigoted anger
## 1258 bigoted disgust
## 1259 bigoted fear
## 1260 bigoted negative
## 1261 bigoted sadness
## 1262 bile anger
## 1263 bile disgust
## 1264 bile negative
## 1265 bilingual positive
## 1266 biopsy fear
## 1267 biopsy negative
## 1268 birch anger
## 1269 birch disgust
## 1270 birch fear
## 1271 birch negative
## 1272 birth anticipation
## 1273 birth fear
## 1274 birth joy
## 1275 birth positive
## 1276 birth trust
## 1277 birthday anticipation
## 1278 birthday joy
## 1279 birthday positive
## 1280 birthday surprise
## 1281 birthplace anger
## 1282 birthplace negative
## 1283 bitch anger
## 1284 bitch disgust
## 1285 bitch fear
## 1286 bitch negative
## 1287 bitch sadness
## 1288 bite negative
## 1289 bitterly anger
## 1290 bitterly disgust
## 1291 bitterly negative
## 1292 bitterly sadness
## 1293 bitterness anger
## 1294 bitterness disgust
## 1295 bitterness negative
## 1296 bitterness sadness
## 1297 bizarre negative
## 1298 bizarre surprise
## 1299 black negative
## 1300 black sadness
## 1301 blackjack negative
## 1302 blackmail anger
## 1303 blackmail fear
## 1304 blackmail negative
## 1305 blackness fear
## 1306 blackness negative
## 1307 blackness sadness
## 1308 blame anger
## 1309 blame disgust
## 1310 blame negative
## 1311 blameless positive
## 1312 bland negative
## 1313 blanket trust
## 1314 blasphemous anger
## 1315 blasphemous disgust
## 1316 blasphemous negative
## 1317 blasphemy anger
## 1318 blasphemy negative
## 1319 blast anger
## 1320 blast fear
## 1321 blast negative
## 1322 blast surprise
## 1323 blatant anger
## 1324 blatant disgust
## 1325 blatant negative
## 1326 blather negative
## 1327 blaze anger
## 1328 blaze negative
## 1329 bleak negative
## 1330 bleak sadness
## 1331 bleeding disgust
## 1332 bleeding fear
## 1333 bleeding negative
## 1334 bleeding sadness
## 1335 blemish anger
## 1336 blemish disgust
## 1337 blemish fear
## 1338 blemish negative
## 1339 blemish sadness
## 1340 bless anticipation
## 1341 bless joy
## 1342 bless positive
## 1343 bless trust
## 1344 blessed joy
## 1345 blessed positive
## 1346 blessing anticipation
## 1347 blessing joy
## 1348 blessing positive
## 1349 blessing trust
## 1350 blessings anticipation
## 1351 blessings joy
## 1352 blessings positive
## 1353 blessings surprise
## 1354 blessings trust
## 1355 blight disgust
## 1356 blight fear
## 1357 blight negative
## 1358 blight sadness
## 1359 blighted disgust
## 1360 blighted negative
## 1361 blighted sadness
## 1362 blind negative
## 1363 blinded negative
## 1364 blindfold anticipation
## 1365 blindfold fear
## 1366 blindfold surprise
## 1367 blindly negative
## 1368 blindly sadness
## 1369 blindness negative
## 1370 blindness sadness
## 1371 bliss joy
## 1372 bliss positive
## 1373 blissful joy
## 1374 blissful positive
## 1375 blister disgust
## 1376 blister negative
## 1377 blitz surprise
## 1378 bloated disgust
## 1379 bloated negative
## 1380 blob disgust
## 1381 blob fear
## 1382 blob negative
## 1383 blockade anger
## 1384 blockade fear
## 1385 blockade negative
## 1386 blockade sadness
## 1387 bloodless positive
## 1388 bloodshed anger
## 1389 bloodshed disgust
## 1390 bloodshed fear
## 1391 bloodshed negative
## 1392 bloodshed sadness
## 1393 bloodshed surprise
## 1394 bloodthirsty anger
## 1395 bloodthirsty disgust
## 1396 bloodthirsty fear
## 1397 bloodthirsty negative
## 1398 bloody anger
## 1399 bloody disgust
## 1400 bloody fear
## 1401 bloody negative
## 1402 bloody sadness
## 1403 bloom anticipation
## 1404 bloom joy
## 1405 bloom positive
## 1406 bloom trust
## 1407 blossom joy
## 1408 blossom positive
## 1409 blot negative
## 1410 blower negative
## 1411 blowout negative
## 1412 blue sadness
## 1413 blues fear
## 1414 blues negative
## 1415 blues sadness
## 1416 bluff negative
## 1417 blunder disgust
## 1418 blunder negative
## 1419 blunder sadness
## 1420 blur negative
## 1421 blurred negative
## 1422 blush negative
## 1423 board anticipation
## 1424 boast negative
## 1425 boast positive
## 1426 boasting negative
## 1427 bodyguard positive
## 1428 bodyguard trust
## 1429 bog negative
## 1430 bogus anger
## 1431 bogus disgust
## 1432 bogus negative
## 1433 boil disgust
## 1434 boil negative
## 1435 boilerplate negative
## 1436 boisterous anger
## 1437 boisterous anticipation
## 1438 boisterous joy
## 1439 boisterous negative
## 1440 boisterous positive
## 1441 bold positive
## 1442 boldness positive
## 1443 bolster positive
## 1444 bomb anger
## 1445 bomb fear
## 1446 bomb negative
## 1447 bomb sadness
## 1448 bomb surprise
## 1449 bombard anger
## 1450 bombard fear
## 1451 bombard negative
## 1452 bombardment anger
## 1453 bombardment fear
## 1454 bombardment negative
## 1455 bombed disgust
## 1456 bombed negative
## 1457 bomber fear
## 1458 bomber sadness
## 1459 bonanza joy
## 1460 bonanza positive
## 1461 bondage fear
## 1462 bondage negative
## 1463 bondage sadness
## 1464 bonds negative
## 1465 bonne positive
## 1466 bonus anticipation
## 1467 bonus joy
## 1468 bonus positive
## 1469 bonus surprise
## 1470 boo negative
## 1471 booby negative
## 1472 bookish positive
## 1473 bookshop positive
## 1474 bookworm negative
## 1475 bookworm positive
## 1476 boomerang anticipation
## 1477 boomerang trust
## 1478 boon positive
## 1479 booze negative
## 1480 bore negative
## 1481 boredom negative
## 1482 boredom sadness
## 1483 boring negative
## 1484 borrower negative
## 1485 bother negative
## 1486 bothering anger
## 1487 bothering negative
## 1488 bothering sadness
## 1489 bottom negative
## 1490 bottom sadness
## 1491 bottomless fear
## 1492 bound negative
## 1493 bountiful anticipation
## 1494 bountiful joy
## 1495 bountiful positive
## 1496 bounty anticipation
## 1497 bounty joy
## 1498 bounty positive
## 1499 bounty trust
## 1500 bouquet joy
## 1501 bouquet positive
## 1502 bouquet trust
## 1503 bout anger
## 1504 bout negative
## 1505 bovine disgust
## 1506 bovine negative
## 1507 bowels disgust
## 1508 boxing anger
## 1509 boy disgust
## 1510 boy negative
## 1511 boycott negative
## 1512 brag negative
## 1513 brains positive
## 1514 bran disgust
## 1515 brandy negative
## 1516 bravado negative
## 1517 bravery positive
## 1518 brawl anger
## 1519 brawl disgust
## 1520 brawl fear
## 1521 brawl negative
## 1522 brazen anger
## 1523 brazen negative
## 1524 breach negative
## 1525 break surprise
## 1526 breakdown negative
## 1527 breakfast positive
## 1528 breakneck negative
## 1529 breakup negative
## 1530 breakup sadness
## 1531 bribe negative
## 1532 bribery disgust
## 1533 bribery negative
## 1534 bridal anticipation
## 1535 bridal joy
## 1536 bridal positive
## 1537 bridal trust
## 1538 bride anticipation
## 1539 bride joy
## 1540 bride positive
## 1541 bride trust
## 1542 bridegroom anticipation
## 1543 bridegroom joy
## 1544 bridegroom positive
## 1545 bridegroom trust
## 1546 bridesmaid joy
## 1547 bridesmaid positive
## 1548 bridesmaid trust
## 1549 brigade fear
## 1550 brigade negative
## 1551 brighten joy
## 1552 brighten positive
## 1553 brighten surprise
## 1554 brighten trust
## 1555 brightness positive
## 1556 brilliant anticipation
## 1557 brilliant joy
## 1558 brilliant positive
## 1559 brilliant trust
## 1560 brimstone anger
## 1561 brimstone fear
## 1562 brimstone negative
## 1563 bristle negative
## 1564 broadside anticipation
## 1565 broadside negative
## 1566 brocade positive
## 1567 broil anger
## 1568 broil negative
## 1569 broke fear
## 1570 broke negative
## 1571 broke sadness
## 1572 broken anger
## 1573 broken fear
## 1574 broken negative
## 1575 broken sadness
## 1576 brothel disgust
## 1577 brothel negative
## 1578 brother positive
## 1579 brother trust
## 1580 brotherhood positive
## 1581 brotherhood trust
## 1582 brotherly anticipation
## 1583 brotherly joy
## 1584 brotherly positive
## 1585 brotherly trust
## 1586 bruise anticipation
## 1587 bruise negative
## 1588 brunt anger
## 1589 brunt negative
## 1590 brutal anger
## 1591 brutal fear
## 1592 brutal negative
## 1593 brutality anger
## 1594 brutality fear
## 1595 brutality negative
## 1596 brute anger
## 1597 brute fear
## 1598 brute negative
## 1599 brute sadness
## 1600 buck fear
## 1601 buck negative
## 1602 buck positive
## 1603 buck surprise
## 1604 buddy anticipation
## 1605 buddy joy
## 1606 buddy positive
## 1607 buddy trust
## 1608 budget trust
## 1609 buffet anger
## 1610 buffet negative
## 1611 bug disgust
## 1612 bug fear
## 1613 bug negative
## 1614 bugaboo anger
## 1615 bugaboo fear
## 1616 bugaboo negative
## 1617 bugaboo sadness
## 1618 bugle anticipation
## 1619 build positive
## 1620 building positive
## 1621 bulbous negative
## 1622 bulldog positive
## 1623 bulletproof positive
## 1624 bully anger
## 1625 bully fear
## 1626 bully negative
## 1627 bum disgust
## 1628 bum negative
## 1629 bum sadness
## 1630 bummer anger
## 1631 bummer disgust
## 1632 bummer negative
## 1633 bunker fear
## 1634 buoy positive
## 1635 burdensome fear
## 1636 burdensome negative
## 1637 burdensome sadness
## 1638 bureaucracy negative
## 1639 bureaucracy trust
## 1640 bureaucrat disgust
## 1641 bureaucrat negative
## 1642 burglar disgust
## 1643 burglar fear
## 1644 burglar negative
## 1645 burglary negative
## 1646 burial anger
## 1647 burial fear
## 1648 burial negative
## 1649 burial sadness
## 1650 buried fear
## 1651 buried negative
## 1652 buried sadness
## 1653 burke anger
## 1654 burke disgust
## 1655 burke fear
## 1656 burke negative
## 1657 burke sadness
## 1658 burlesque surprise
## 1659 burnt disgust
## 1660 burnt negative
## 1661 bursary trust
## 1662 bury sadness
## 1663 buss joy
## 1664 buss positive
## 1665 busted anger
## 1666 busted fear
## 1667 busted negative
## 1668 butcher anger
## 1669 butcher disgust
## 1670 butcher fear
## 1671 butcher negative
## 1672 butler positive
## 1673 butler trust
## 1674 butt negative
## 1675 buttery positive
## 1676 buxom positive
## 1677 buzz anticipation
## 1678 buzz fear
## 1679 buzz positive
## 1680 buzzed negative
## 1681 bye anticipation
## 1682 bylaw trust
## 1683 cab positive
## 1684 cabal fear
## 1685 cabal negative
## 1686 cabinet positive
## 1687 cabinet trust
## 1688 cable surprise
## 1689 cacophony anger
## 1690 cacophony disgust
## 1691 cacophony negative
## 1692 cad anger
## 1693 cad disgust
## 1694 cad negative
## 1695 cadaver disgust
## 1696 cadaver fear
## 1697 cadaver negative
## 1698 cadaver sadness
## 1699 cadaver surprise
## 1700 cafe positive
## 1701 cage negative
## 1702 cage sadness
## 1703 calamity sadness
## 1704 calculating negative
## 1705 calculation anticipation
## 1706 calculator positive
## 1707 calculator trust
## 1708 calf joy
## 1709 calf positive
## 1710 calf trust
## 1711 callous anger
## 1712 callous disgust
## 1713 callous negative
## 1714 calls anticipation
## 1715 calls negative
## 1716 calls trust
## 1717 calm positive
## 1718 camouflage surprise
## 1719 camouflaged surprise
## 1720 campaigning anger
## 1721 campaigning fear
## 1722 campaigning negative
## 1723 canary positive
## 1724 cancel negative
## 1725 cancel sadness
## 1726 cancer anger
## 1727 cancer disgust
## 1728 cancer fear
## 1729 cancer negative
## 1730 cancer sadness
## 1731 candid anticipation
## 1732 candid joy
## 1733 candid positive
## 1734 candid surprise
## 1735 candid trust
## 1736 candidate positive
## 1737 candied positive
## 1738 cane anger
## 1739 cane fear
## 1740 canker anger
## 1741 canker disgust
## 1742 canker negative
## 1743 cannibal disgust
## 1744 cannibal fear
## 1745 cannibal negative
## 1746 cannibalism disgust
## 1747 cannibalism negative
## 1748 cannon anger
## 1749 cannon fear
## 1750 cannon negative
## 1751 canons trust
## 1752 cap anticipation
## 1753 cap trust
## 1754 capitalist positive
## 1755 captain positive
## 1756 captivate anticipation
## 1757 captivate joy
## 1758 captivate positive
## 1759 captivate surprise
## 1760 captivate trust
## 1761 captivating positive
## 1762 captive fear
## 1763 captive negative
## 1764 captive sadness
## 1765 captivity negative
## 1766 captivity sadness
## 1767 captor fear
## 1768 captor negative
## 1769 capture negative
## 1770 carcass disgust
## 1771 carcass fear
## 1772 carcass negative
## 1773 carcass sadness
## 1774 carcinoma fear
## 1775 carcinoma negative
## 1776 carcinoma sadness
## 1777 cardiomyopathy fear
## 1778 cardiomyopathy negative
## 1779 cardiomyopathy sadness
## 1780 career anticipation
## 1781 career positive
## 1782 careful positive
## 1783 carefully positive
## 1784 carelessness anger
## 1785 carelessness disgust
## 1786 carelessness negative
## 1787 caress positive
## 1788 caretaker positive
## 1789 caretaker trust
## 1790 caricature negative
## 1791 caries disgust
## 1792 caries negative
## 1793 carnage anger
## 1794 carnage disgust
## 1795 carnage fear
## 1796 carnage negative
## 1797 carnage sadness
## 1798 carnage surprise
## 1799 carnal negative
## 1800 carnivorous fear
## 1801 carnivorous negative
## 1802 carol joy
## 1803 carol positive
## 1804 carol trust
## 1805 cartel negative
## 1806 cartridge fear
## 1807 cascade positive
## 1808 case fear
## 1809 case negative
## 1810 case sadness
## 1811 cash anger
## 1812 cash anticipation
## 1813 cash fear
## 1814 cash joy
## 1815 cash positive
## 1816 cash trust
## 1817 cashier trust
## 1818 casket fear
## 1819 casket negative
## 1820 casket sadness
## 1821 caste negative
## 1822 casualty anger
## 1823 casualty fear
## 1824 casualty negative
## 1825 casualty sadness
## 1826 cataract anticipation
## 1827 cataract fear
## 1828 cataract negative
## 1829 cataract sadness
## 1830 catastrophe anger
## 1831 catastrophe disgust
## 1832 catastrophe fear
## 1833 catastrophe negative
## 1834 catastrophe sadness
## 1835 catastrophe surprise
## 1836 catch surprise
## 1837 catechism disgust
## 1838 categorical positive
## 1839 cater positive
## 1840 cathartic positive
## 1841 cathedral joy
## 1842 cathedral positive
## 1843 cathedral trust
## 1844 catheter negative
## 1845 caution anger
## 1846 caution anticipation
## 1847 caution fear
## 1848 caution negative
## 1849 cautionary fear
## 1850 cautious anticipation
## 1851 cautious fear
## 1852 cautious positive
## 1853 cautious trust
## 1854 cautiously fear
## 1855 cautiously positive
## 1856 cede negative
## 1857 celebrated anticipation
## 1858 celebrated joy
## 1859 celebrated positive
## 1860 celebrating anticipation
## 1861 celebrating joy
## 1862 celebrating positive
## 1863 celebration anticipation
## 1864 celebration joy
## 1865 celebration positive
## 1866 celebration surprise
## 1867 celebration trust
## 1868 celebrity anger
## 1869 celebrity anticipation
## 1870 celebrity disgust
## 1871 celebrity joy
## 1872 celebrity negative
## 1873 celebrity positive
## 1874 celebrity surprise
## 1875 celebrity trust
## 1876 celestial anticipation
## 1877 celestial joy
## 1878 celestial positive
## 1879 cement anticipation
## 1880 cement trust
## 1881 cemetery fear
## 1882 cemetery negative
## 1883 cemetery sadness
## 1884 censor anger
## 1885 censor disgust
## 1886 censor fear
## 1887 censor negative
## 1888 censor trust
## 1889 censure negative
## 1890 center positive
## 1891 center trust
## 1892 centurion positive
## 1893 cerebral positive
## 1894 ceremony joy
## 1895 ceremony positive
## 1896 ceremony surprise
## 1897 certainty positive
## 1898 certify trust
## 1899 cess disgust
## 1900 cess negative
## 1901 cessation negative
## 1902 chaff anger
## 1903 chaff fear
## 1904 chaff negative
## 1905 chafing negative
## 1906 chagrin disgust
## 1907 chagrin negative
## 1908 chagrin sadness
## 1909 chairman positive
## 1910 chairman trust
## 1911 chairwoman positive
## 1912 chairwoman trust
## 1913 challenge anger
## 1914 challenge fear
## 1915 challenge negative
## 1916 champion anticipation
## 1917 champion joy
## 1918 champion positive
## 1919 champion trust
## 1920 chance surprise
## 1921 chancellor trust
## 1922 change fear
## 1923 changeable anticipation
## 1924 changeable surprise
## 1925 chant anger
## 1926 chant anticipation
## 1927 chant joy
## 1928 chant positive
## 1929 chant surprise
## 1930 chaos anger
## 1931 chaos fear
## 1932 chaos negative
## 1933 chaos sadness
## 1934 chaotic anger
## 1935 chaotic negative
## 1936 chaplain trust
## 1937 charade negative
## 1938 chargeable fear
## 1939 chargeable negative
## 1940 chargeable sadness
## 1941 charger positive
## 1942 charitable anticipation
## 1943 charitable joy
## 1944 charitable positive
## 1945 charitable trust
## 1946 charity joy
## 1947 charity positive
## 1948 charm positive
## 1949 charmed joy
## 1950 charmed negative
## 1951 charmed positive
## 1952 charming positive
## 1953 chart trust
## 1954 chase negative
## 1955 chasm fear
## 1956 chastisement negative
## 1957 chastity anticipation
## 1958 chastity positive
## 1959 chastity trust
## 1960 chattering positive
## 1961 chatty negative
## 1962 cheap negative
## 1963 cheat anger
## 1964 cheat disgust
## 1965 cheat negative
## 1966 checklist positive
## 1967 checklist trust
## 1968 cheer anticipation
## 1969 cheer joy
## 1970 cheer positive
## 1971 cheer surprise
## 1972 cheer trust
## 1973 cheerful joy
## 1974 cheerful positive
## 1975 cheerful surprise
## 1976 cheerfulness anticipation
## 1977 cheerfulness joy
## 1978 cheerfulness positive
## 1979 cheerfulness trust
## 1980 cheering joy
## 1981 cheering positive
## 1982 cheery anticipation
## 1983 cheery joy
## 1984 cheery positive
## 1985 cheesecake negative
## 1986 chemist positive
## 1987 chemist trust
## 1988 cherish anticipation
## 1989 cherish joy
## 1990 cherish positive
## 1991 cherish surprise
## 1992 cherish trust
## 1993 cherry positive
## 1994 chicane anticipation
## 1995 chicane negative
## 1996 chicane surprise
## 1997 chicane trust
## 1998 chicken fear
## 1999 chieftain positive
## 2000 child anticipation
## 2001 child joy
## 2002 child positive
## 2003 childhood joy
## 2004 childhood positive
## 2005 childish negative
## 2006 chilly negative
## 2007 chimera fear
## 2008 chimera surprise
## 2009 chirp joy
## 2010 chirp positive
## 2011 chisel positive
## 2012 chivalry positive
## 2013 chloroform negative
## 2014 chocolate anticipation
## 2015 chocolate joy
## 2016 chocolate positive
## 2017 chocolate trust
## 2018 choice positive
## 2019 choir joy
## 2020 choir positive
## 2021 choir trust
## 2022 choke anger
## 2023 choke negative
## 2024 choke sadness
## 2025 cholera disgust
## 2026 cholera fear
## 2027 cholera negative
## 2028 cholera sadness
## 2029 chop negative
## 2030 choral joy
## 2031 choral positive
## 2032 chore negative
## 2033 chorus positive
## 2034 chosen positive
## 2035 chowder positive
## 2036 chronic negative
## 2037 chronic sadness
## 2038 chronicle positive
## 2039 chronicle trust
## 2040 chuckle anticipation
## 2041 chuckle joy
## 2042 chuckle positive
## 2043 chuckle surprise
## 2044 chuckle trust
## 2045 church anticipation
## 2046 church joy
## 2047 church positive
## 2048 church trust
## 2049 cider positive
## 2050 cigarette negative
## 2051 circumcision positive
## 2052 circumvention negative
## 2053 circumvention positive
## 2054 citizen positive
## 2055 civil positive
## 2056 civility positive
## 2057 civilization positive
## 2058 civilization trust
## 2059 civilized joy
## 2060 civilized positive
## 2061 civilized trust
## 2062 claimant anger
## 2063 claimant disgust
## 2064 clairvoyant positive
## 2065 clamor anger
## 2066 clamor anticipation
## 2067 clamor disgust
## 2068 clamor negative
## 2069 clamor surprise
## 2070 clan trust
## 2071 clap anticipation
## 2072 clap joy
## 2073 clap positive
## 2074 clap trust
## 2075 clarify positive
## 2076 clash anger
## 2077 clash negative
## 2078 clashing anger
## 2079 clashing fear
## 2080 clashing negative
## 2081 classic positive
## 2082 classical positive
## 2083 classics joy
## 2084 classics positive
## 2085 classify positive
## 2086 claw anger
## 2087 claw fear
## 2088 claw negative
## 2089 clean joy
## 2090 clean positive
## 2091 clean trust
## 2092 cleaning positive
## 2093 cleanliness positive
## 2094 cleanly positive
## 2095 cleanse positive
## 2096 cleansing positive
## 2097 clearance positive
## 2098 clearance trust
## 2099 clearness positive
## 2100 cleave fear
## 2101 clerical positive
## 2102 clerical trust
## 2103 clever positive
## 2104 cleverness positive
## 2105 cliff fear
## 2106 climax anticipation
## 2107 climax joy
## 2108 climax positive
## 2109 climax surprise
## 2110 climax trust
## 2111 clock anticipation
## 2112 cloister negative
## 2113 closeness joy
## 2114 closeness positive
## 2115 closeness trust
## 2116 closure anticipation
## 2117 closure joy
## 2118 closure positive
## 2119 closure sadness
## 2120 clothe positive
## 2121 clouded negative
## 2122 clouded sadness
## 2123 cloudiness fear
## 2124 cloudiness negative
## 2125 cloudy sadness
## 2126 clown anticipation
## 2127 clown joy
## 2128 clown positive
## 2129 clown surprise
## 2130 clue anticipation
## 2131 clump negative
## 2132 clumsy disgust
## 2133 clumsy negative
## 2134 coach trust
## 2135 coalesce trust
## 2136 coalition positive
## 2137 coast positive
## 2138 coax trust
## 2139 cobra fear
## 2140 cocaine negative
## 2141 cocaine sadness
## 2142 coerce anger
## 2143 coerce disgust
## 2144 coerce fear
## 2145 coerce negative
## 2146 coercion anger
## 2147 coercion disgust
## 2148 coercion fear
## 2149 coercion negative
## 2150 coercion sadness
## 2151 coexist positive
## 2152 coexist trust
## 2153 coexisting trust
## 2154 coffin fear
## 2155 coffin negative
## 2156 coffin sadness
## 2157 cogent positive
## 2158 cogent trust
## 2159 cognitive positive
## 2160 coherence positive
## 2161 coherent positive
## 2162 cohesion trust
## 2163 cohesive positive
## 2164 cohesive trust
## 2165 coincidence surprise
## 2166 cold negative
## 2167 coldly negative
## 2168 coldness anger
## 2169 coldness disgust
## 2170 coldness fear
## 2171 coldness negative
## 2172 coldness sadness
## 2173 colic negative
## 2174 collaborator trust
## 2175 collapse disgust
## 2176 collapse fear
## 2177 collapse negative
## 2178 collapse sadness
## 2179 collateral trust
## 2180 collectively positive
## 2181 collectively trust
## 2182 collision anger
## 2183 collision negative
## 2184 collusion anger
## 2185 collusion disgust
## 2186 collusion fear
## 2187 collusion negative
## 2188 collusion sadness
## 2189 colonel positive
## 2190 colonel trust
## 2191 colossal positive
## 2192 coma fear
## 2193 coma negative
## 2194 coma sadness
## 2195 comatose fear
## 2196 comatose negative
## 2197 comatose sadness
## 2198 combat anger
## 2199 combat fear
## 2200 combat negative
## 2201 combatant anger
## 2202 combatant fear
## 2203 combatant negative
## 2204 combative anger
## 2205 combative fear
## 2206 combative negative
## 2207 comfort anticipation
## 2208 comfort joy
## 2209 comfort positive
## 2210 comfort trust
## 2211 coming anticipation
## 2212 commandant positive
## 2213 commandant trust
## 2214 commanding positive
## 2215 commanding trust
## 2216 commemorate anticipation
## 2217 commemorate joy
## 2218 commemorate positive
## 2219 commemorate sadness
## 2220 commemoration anticipation
## 2221 commemoration joy
## 2222 commemoration positive
## 2223 commemorative anticipation
## 2224 commemorative positive
## 2225 commend positive
## 2226 commendable joy
## 2227 commendable positive
## 2228 commendable trust
## 2229 commentator positive
## 2230 commerce trust
## 2231 commission trust
## 2232 committal negative
## 2233 committal sadness
## 2234 committed positive
## 2235 committed trust
## 2236 committee trust
## 2237 commodore positive
## 2238 commodore trust
## 2239 commonplace anticipation
## 2240 commonplace trust
## 2241 commonwealth positive
## 2242 commonwealth trust
## 2243 commotion anger
## 2244 commotion negative
## 2245 communicate positive
## 2246 communicate trust
## 2247 communication trust
## 2248 communicative positive
## 2249 communion joy
## 2250 communion positive
## 2251 communion trust
## 2252 communism anger
## 2253 communism fear
## 2254 communism negative
## 2255 communism sadness
## 2256 communist negative
## 2257 community positive
## 2258 commutation positive
## 2259 commute positive
## 2260 compact trust
## 2261 companion joy
## 2262 companion positive
## 2263 companion trust
## 2264 compass trust
## 2265 compassion fear
## 2266 compassion positive
## 2267 compassionate positive
## 2268 compatibility positive
## 2269 compatible positive
## 2270 compelling positive
## 2271 compensate anticipation
## 2272 compensate joy
## 2273 compensate positive
## 2274 compensate surprise
## 2275 compensate trust
## 2276 compensatory positive
## 2277 competence positive
## 2278 competence trust
## 2279 competency positive
## 2280 competency trust
## 2281 competent positive
## 2282 competent trust
## 2283 competition anticipation
## 2284 competition negative
## 2285 complacency positive
## 2286 complain anger
## 2287 complain negative
## 2288 complain sadness
## 2289 complaint anger
## 2290 complaint negative
## 2291 complement anticipation
## 2292 complement joy
## 2293 complement positive
## 2294 complement surprise
## 2295 complement trust
## 2296 complementary positive
## 2297 completely positive
## 2298 completeness positive
## 2299 completing anticipation
## 2300 completing joy
## 2301 completing positive
## 2302 completion anticipation
## 2303 completion joy
## 2304 completion positive
## 2305 complexed negative
## 2306 complexity negative
## 2307 compliance positive
## 2308 compliance trust
## 2309 compliant positive
## 2310 complicate anger
## 2311 complicate negative
## 2312 complicated negative
## 2313 complication negative
## 2314 complicity negative
## 2315 complicity positive
## 2316 compliment anticipation
## 2317 compliment joy
## 2318 compliment positive
## 2319 compliment surprise
## 2320 compliment trust
## 2321 composed positive
## 2322 composer positive
## 2323 compost disgust
## 2324 compost negative
## 2325 composure positive
## 2326 comprehend positive
## 2327 comprehensive positive
## 2328 compress anger
## 2329 comptroller trust
## 2330 compulsion anger
## 2331 compulsion negative
## 2332 compulsory negative
## 2333 comrade positive
## 2334 comrade trust
## 2335 conceal negative
## 2336 conceal sadness
## 2337 concealed anticipation
## 2338 concealed fear
## 2339 concealed negative
## 2340 concealed surprise
## 2341 concealment anger
## 2342 concealment anticipation
## 2343 concealment fear
## 2344 concealment negative
## 2345 conceit negative
## 2346 conceited negative
## 2347 concentric positive
## 2348 concerned fear
## 2349 concerned sadness
## 2350 conciliation joy
## 2351 conciliation positive
## 2352 conciliation trust
## 2353 concluding positive
## 2354 concord positive
## 2355 concord trust
## 2356 concordance positive
## 2357 concordance trust
## 2358 concussion anger
## 2359 concussion negative
## 2360 concussion sadness
## 2361 condemn anger
## 2362 condemn negative
## 2363 condemnation anger
## 2364 condemnation anticipation
## 2365 condemnation disgust
## 2366 condemnation fear
## 2367 condemnation negative
## 2368 condemnation sadness
## 2369 condescending negative
## 2370 condescension anger
## 2371 condescension disgust
## 2372 condescension negative
## 2373 condescension sadness
## 2374 condolence positive
## 2375 condolence sadness
## 2376 condone positive
## 2377 conducive positive
## 2378 conductivity positive
## 2379 confederate positive
## 2380 confederate trust
## 2381 confess negative
## 2382 confess positive
## 2383 confess trust
## 2384 confession anticipation
## 2385 confession fear
## 2386 confession negative
## 2387 confession sadness
## 2388 confession surprise
## 2389 confessional fear
## 2390 confessional trust
## 2391 confide trust
## 2392 confidence fear
## 2393 confidence joy
## 2394 confidence positive
## 2395 confidence trust
## 2396 confident joy
## 2397 confident positive
## 2398 confident trust
## 2399 confidential trust
## 2400 confidentially trust
## 2401 confine anger
## 2402 confine fear
## 2403 confine negative
## 2404 confine sadness
## 2405 confined anger
## 2406 confined disgust
## 2407 confined fear
## 2408 confined negative
## 2409 confined sadness
## 2410 confinement anger
## 2411 confinement fear
## 2412 confinement negative
## 2413 confinement sadness
## 2414 confirmation trust
## 2415 confirmed positive
## 2416 confirmed trust
## 2417 confiscate anger
## 2418 confiscate negative
## 2419 confiscate sadness
## 2420 confiscation negative
## 2421 conflagration anger
## 2422 conflagration fear
## 2423 conflagration negative
## 2424 conflict anger
## 2425 conflict fear
## 2426 conflict negative
## 2427 conflict sadness
## 2428 conflicting negative
## 2429 conformance positive
## 2430 conformity trust
## 2431 confound negative
## 2432 confounded negative
## 2433 confront anger
## 2434 confuse negative
## 2435 confusion anger
## 2436 confusion fear
## 2437 confusion negative
## 2438 congenial positive
## 2439 congestion negative
## 2440 conglomerate trust
## 2441 congratulatory joy
## 2442 congratulatory positive
## 2443 congregation positive
## 2444 congregation trust
## 2445 congress disgust
## 2446 congress trust
## 2447 congressman trust
## 2448 congruence positive
## 2449 congruence trust
## 2450 conjecture anticipation
## 2451 conjure anticipation
## 2452 conjure surprise
## 2453 conjuring negative
## 2454 connective trust
## 2455 connoisseur joy
## 2456 connoisseur positive
## 2457 connoisseur trust
## 2458 conquest anger
## 2459 conquest fear
## 2460 conquest negative
## 2461 conscience positive
## 2462 conscience trust
## 2463 conscientious positive
## 2464 conscientious trust
## 2465 consciousness positive
## 2466 consecration anticipation
## 2467 consecration joy
## 2468 consecration positive
## 2469 consecration sadness
## 2470 consecration trust
## 2471 consequent anticipation
## 2472 conservation anticipation
## 2473 conservation positive
## 2474 conservation trust
## 2475 conserve positive
## 2476 considerable positive
## 2477 considerate positive
## 2478 considerate trust
## 2479 consistency positive
## 2480 consistency trust
## 2481 console positive
## 2482 console sadness
## 2483 consonant positive
## 2484 consort trust
## 2485 conspiracy fear
## 2486 conspirator anger
## 2487 conspirator anticipation
## 2488 conspirator disgust
## 2489 conspirator fear
## 2490 conspirator negative
## 2491 conspire fear
## 2492 conspire negative
## 2493 constable trust
## 2494 constancy positive
## 2495 constancy trust
## 2496 constant positive
## 2497 constant trust
## 2498 constantly trust
## 2499 consternation anger
## 2500 consternation fear
## 2501 consternation negative
## 2502 constipation disgust
## 2503 constipation negative
## 2504 constitute trust
## 2505 constitutional positive
## 2506 constitutional trust
## 2507 constrain fear
## 2508 constrain negative
## 2509 constrained negative
## 2510 constraint anger
## 2511 constraint fear
## 2512 constraint negative
## 2513 constraint sadness
## 2514 construct positive
## 2515 consul trust
## 2516 consult trust
## 2517 consummate positive
## 2518 contact positive
## 2519 contagion anticipation
## 2520 contagion disgust
## 2521 contagion fear
## 2522 contagion negative
## 2523 contagious disgust
## 2524 contagious fear
## 2525 contagious negative
## 2526 contaminate disgust
## 2527 contaminate negative
## 2528 contaminated disgust
## 2529 contaminated fear
## 2530 contaminated negative
## 2531 contaminated sadness
## 2532 contamination disgust
## 2533 contamination negative
## 2534 contemplation positive
## 2535 contempt anger
## 2536 contempt disgust
## 2537 contempt fear
## 2538 contempt negative
## 2539 contemptible anger
## 2540 contemptible disgust
## 2541 contemptible negative
## 2542 contemptuous anger
## 2543 contemptuous negative
## 2544 content joy
## 2545 content positive
## 2546 content trust
## 2547 contentious anger
## 2548 contentious disgust
## 2549 contentious fear
## 2550 contentious negative
## 2551 contingent anticipation
## 2552 continuation anticipation
## 2553 continue anticipation
## 2554 continue positive
## 2555 continue trust
## 2556 contour positive
## 2557 contraband anger
## 2558 contraband disgust
## 2559 contraband fear
## 2560 contraband negative
## 2561 contracted negative
## 2562 contradict anger
## 2563 contradict negative
## 2564 contradiction negative
## 2565 contradictory negative
## 2566 contrary negative
## 2567 contrasted negative
## 2568 contravene negative
## 2569 contravention negative
## 2570 contribute positive
## 2571 contributor positive
## 2572 contributor trust
## 2573 controversial anger
## 2574 controversial negative
## 2575 controversy negative
## 2576 convenience positive
## 2577 convenient positive
## 2578 convent positive
## 2579 convent trust
## 2580 convention positive
## 2581 convergence anticipation
## 2582 conversant positive
## 2583 conversational positive
## 2584 convert positive
## 2585 conveyancing trust
## 2586 convict anger
## 2587 convict disgust
## 2588 convict fear
## 2589 convict negative
## 2590 convict sadness
## 2591 conviction negative
## 2592 convince anticipation
## 2593 convince positive
## 2594 convince trust
## 2595 convinced trust
## 2596 convincing trust
## 2597 cool positive
## 2598 coolness positive
## 2599 coop anger
## 2600 coop disgust
## 2601 coop negative
## 2602 cooperate positive
## 2603 cooperating positive
## 2604 cooperating trust
## 2605 cooperation positive
## 2606 cooperation trust
## 2607 cooperative positive
## 2608 cooperative trust
## 2609 cop fear
## 2610 cop trust
## 2611 copy negative
## 2612 copycat anger
## 2613 copycat disgust
## 2614 copycat negative
## 2615 core positive
## 2616 coronation joy
## 2617 coronation positive
## 2618 coronation trust
## 2619 coroner negative
## 2620 corporal negative
## 2621 corporation positive
## 2622 corporation trust
## 2623 corporeal positive
## 2624 corpse disgust
## 2625 corpse negative
## 2626 corpse sadness
## 2627 correction negative
## 2628 corrective positive
## 2629 correctness trust
## 2630 correspondence anticipation
## 2631 correspondence positive
## 2632 corroborate positive
## 2633 corroborate trust
## 2634 corroboration trust
## 2635 corrosion negative
## 2636 corrosive fear
## 2637 corrosive negative
## 2638 corrupt negative
## 2639 corrupting anger
## 2640 corrupting disgust
## 2641 corrupting fear
## 2642 corrupting negative
## 2643 corrupting sadness
## 2644 corruption disgust
## 2645 corruption negative
## 2646 corse sadness
## 2647 cosmopolitan positive
## 2648 cosmopolitan trust
## 2649 cosy positive
## 2650 couch sadness
## 2651 cough disgust
## 2652 cough negative
## 2653 council anticipation
## 2654 council positive
## 2655 council trust
## 2656 counsel positive
## 2657 counsel trust
## 2658 counsellor anger
## 2659 counsellor fear
## 2660 counsellor negative
## 2661 counsellor trust
## 2662 counselor positive
## 2663 counselor trust
## 2664 count positive
## 2665 count trust
## 2666 countdown anticipation
## 2667 countess positive
## 2668 countryman trust
## 2669 county trust
## 2670 coup anger
## 2671 coup surprise
## 2672 courage positive
## 2673 courageous fear
## 2674 courageous positive
## 2675 courier trust
## 2676 coursing negative
## 2677 court anger
## 2678 court anticipation
## 2679 court fear
## 2680 courteous positive
## 2681 courtesy positive
## 2682 courtship anticipation
## 2683 courtship joy
## 2684 courtship positive
## 2685 courtship trust
## 2686 cove anticipation
## 2687 cove disgust
## 2688 cove fear
## 2689 cove joy
## 2690 cove positive
## 2691 covenant positive
## 2692 covenant trust
## 2693 cover trust
## 2694 covet negative
## 2695 coward disgust
## 2696 coward fear
## 2697 coward negative
## 2698 coward sadness
## 2699 cowardice fear
## 2700 cowardice negative
## 2701 cowardly fear
## 2702 cowardly negative
## 2703 coy fear
## 2704 coyote fear
## 2705 crabby anger
## 2706 crabby negative
## 2707 crack negative
## 2708 cracked anger
## 2709 cracked fear
## 2710 cracked negative
## 2711 cracking negative
## 2712 cradle anticipation
## 2713 cradle joy
## 2714 cradle positive
## 2715 cradle trust
## 2716 craft positive
## 2717 craftsman positive
## 2718 cramp anticipation
## 2719 cramp negative
## 2720 cramped negative
## 2721 crank negative
## 2722 cranky anger
## 2723 cranky negative
## 2724 crap disgust
## 2725 crap negative
## 2726 craps anticipation
## 2727 crash fear
## 2728 crash negative
## 2729 crash sadness
## 2730 crash surprise
## 2731 crave anticipation
## 2732 craving anticipation
## 2733 crawl disgust
## 2734 crawl negative
## 2735 crazed anger
## 2736 crazed fear
## 2737 crazed negative
## 2738 crazy anger
## 2739 crazy fear
## 2740 crazy negative
## 2741 crazy sadness
## 2742 creaking negative
## 2743 cream anticipation
## 2744 cream joy
## 2745 cream positive
## 2746 cream surprise
## 2747 create joy
## 2748 create positive
## 2749 creative positive
## 2750 creature disgust
## 2751 creature fear
## 2752 creature negative
## 2753 credence positive
## 2754 credence trust
## 2755 credential positive
## 2756 credential trust
## 2757 credibility positive
## 2758 credibility trust
## 2759 credible positive
## 2760 credible trust
## 2761 credit positive
## 2762 credit trust
## 2763 creditable positive
## 2764 creditable trust
## 2765 credited positive
## 2766 creep negative
## 2767 creeping anticipation
## 2768 cremation sadness
## 2769 crescendo anticipation
## 2770 crescendo joy
## 2771 crescendo positive
## 2772 crescendo surprise
## 2773 crescendo trust
## 2774 crew trust
## 2775 crime anger
## 2776 crime negative
## 2777 criminal anger
## 2778 criminal disgust
## 2779 criminal fear
## 2780 criminal negative
## 2781 criminality anger
## 2782 criminality disgust
## 2783 criminality fear
## 2784 criminality negative
## 2785 cringe disgust
## 2786 cringe fear
## 2787 cringe negative
## 2788 cringe sadness
## 2789 cripple fear
## 2790 cripple negative
## 2791 cripple sadness
## 2792 crippled negative
## 2793 crippled sadness
## 2794 crisis negative
## 2795 crisp negative
## 2796 crisp trust
## 2797 critic negative
## 2798 criticism anger
## 2799 criticism negative
## 2800 criticism sadness
## 2801 criticize anger
## 2802 criticize disgust
## 2803 criticize fear
## 2804 criticize negative
## 2805 criticize sadness
## 2806 critique positive
## 2807 critter disgust
## 2808 crocodile fear
## 2809 crook negative
## 2810 cross anger
## 2811 cross fear
## 2812 cross negative
## 2813 cross sadness
## 2814 crouch fear
## 2815 crouching fear
## 2816 crouching negative
## 2817 crowning anticipation
## 2818 crowning joy
## 2819 crowning positive
## 2820 crowning surprise
## 2821 crowning trust
## 2822 crucial positive
## 2823 crucial trust
## 2824 cruciate negative
## 2825 crucifixion anger
## 2826 crucifixion disgust
## 2827 crucifixion fear
## 2828 crucifixion negative
## 2829 crucifixion sadness
## 2830 crude disgust
## 2831 crude negative
## 2832 cruel anger
## 2833 cruel disgust
## 2834 cruel fear
## 2835 cruel negative
## 2836 cruel sadness
## 2837 cruelly anger
## 2838 cruelly fear
## 2839 cruelly negative
## 2840 cruelty anger
## 2841 cruelty disgust
## 2842 cruelty fear
## 2843 cruelty negative
## 2844 cruelty sadness
## 2845 crumbling negative
## 2846 crumbling sadness
## 2847 crunch anger
## 2848 crunch negative
## 2849 crusade anger
## 2850 crusade fear
## 2851 crusade negative
## 2852 crushed anger
## 2853 crushed disgust
## 2854 crushed fear
## 2855 crushed negative
## 2856 crushed sadness
## 2857 crushing anger
## 2858 crushing disgust
## 2859 crushing fear
## 2860 crushing negative
## 2861 crusty disgust
## 2862 crusty negative
## 2863 cry negative
## 2864 cry sadness
## 2865 crying negative
## 2866 crying sadness
## 2867 crypt fear
## 2868 crypt negative
## 2869 crypt sadness
## 2870 crystal positive
## 2871 cube trust
## 2872 cuckold disgust
## 2873 cuckold negative
## 2874 cuckoo negative
## 2875 cuddle joy
## 2876 cuddle positive
## 2877 cuddle trust
## 2878 cue anticipation
## 2879 culinary positive
## 2880 culinary trust
## 2881 cull negative
## 2882 culmination positive
## 2883 culpability negative
## 2884 culpable negative
## 2885 culprit negative
## 2886 cult fear
## 2887 cult negative
## 2888 cultivate anticipation
## 2889 cultivate positive
## 2890 cultivate trust
## 2891 cultivated positive
## 2892 cultivation positive
## 2893 culture positive
## 2894 cumbersome negative
## 2895 cumbersome sadness
## 2896 cunning negative
## 2897 cunning positive
## 2898 cupping disgust
## 2899 cupping fear
## 2900 cupping negative
## 2901 cupping sadness
## 2902 cur anger
## 2903 cur disgust
## 2904 cur fear
## 2905 cur negative
## 2906 curable positive
## 2907 curable trust
## 2908 curiosity anticipation
## 2909 curiosity positive
## 2910 curiosity surprise
## 2911 curl positive
## 2912 curse anger
## 2913 curse disgust
## 2914 curse fear
## 2915 curse negative
## 2916 curse sadness
## 2917 cursed anger
## 2918 cursed fear
## 2919 cursed negative
## 2920 cursed sadness
## 2921 cursing anger
## 2922 cursing disgust
## 2923 cursing negative
## 2924 cursory negative
## 2925 cushion positive
## 2926 cussed anger
## 2927 custodian trust
## 2928 custody trust
## 2929 customer positive
## 2930 cute positive
## 2931 cutter fear
## 2932 cutter negative
## 2933 cutters positive
## 2934 cutthroat anger
## 2935 cutthroat fear
## 2936 cutthroat negative
## 2937 cutting anger
## 2938 cutting disgust
## 2939 cutting fear
## 2940 cutting negative
## 2941 cutting sadness
## 2942 cyanide fear
## 2943 cyanide negative
## 2944 cyclone fear
## 2945 cyclone negative
## 2946 cyclone surprise
## 2947 cyst fear
## 2948 cyst negative
## 2949 cyst sadness
## 2950 cystic disgust
## 2951 cytomegalovirus negative
## 2952 cytomegalovirus sadness
## 2953 dabbling anger
## 2954 dabbling disgust
## 2955 dabbling negative
## 2956 daemon anger
## 2957 daemon disgust
## 2958 daemon fear
## 2959 daemon negative
## 2960 daemon sadness
## 2961 daemon surprise
## 2962 daft disgust
## 2963 daft negative
## 2964 dagger fear
## 2965 dagger negative
## 2966 daily anticipation
## 2967 damage anger
## 2968 damage disgust
## 2969 damage negative
## 2970 damage sadness
## 2971 damages negative
## 2972 damages sadness
## 2973 dame anger
## 2974 dame disgust
## 2975 dame positive
## 2976 dame trust
## 2977 damn anger
## 2978 damn disgust
## 2979 damn negative
## 2980 damnation anger
## 2981 damnation fear
## 2982 damnation negative
## 2983 damnation sadness
## 2984 damned negative
## 2985 damper negative
## 2986 dance joy
## 2987 dance positive
## 2988 dance trust
## 2989 dandruff negative
## 2990 dandy disgust
## 2991 dandy negative
## 2992 danger fear
## 2993 danger negative
## 2994 danger sadness
## 2995 dangerous fear
## 2996 dangerous negative
## 2997 dank disgust
## 2998 dare anticipation
## 2999 dare trust
## 3000 daring positive
## 3001 dark sadness
## 3002 darken fear
## 3003 darken negative
## 3004 darken sadness
## 3005 darkened fear
## 3006 darkened negative
## 3007 darkened sadness
## 3008 darkness anger
## 3009 darkness fear
## 3010 darkness negative
## 3011 darkness sadness
## 3012 darling joy
## 3013 darling positive
## 3014 darling trust
## 3015 dart fear
## 3016 dashed anger
## 3017 dashed fear
## 3018 dashed negative
## 3019 dashed sadness
## 3020 dashing positive
## 3021 dastardly anger
## 3022 dastardly disgust
## 3023 dastardly fear
## 3024 dastardly negative
## 3025 daughter joy
## 3026 daughter positive
## 3027 dawn anticipation
## 3028 dawn joy
## 3029 dawn positive
## 3030 dawn surprise
## 3031 dawn trust
## 3032 dazed negative
## 3033 deacon trust
## 3034 deactivate negative
## 3035 deadlock negative
## 3036 deadly anger
## 3037 deadly disgust
## 3038 deadly fear
## 3039 deadly negative
## 3040 deadly sadness
## 3041 deaf negative
## 3042 deal anticipation
## 3043 deal joy
## 3044 deal positive
## 3045 deal surprise
## 3046 deal trust
## 3047 dealings trust
## 3048 dear positive
## 3049 death anger
## 3050 death anticipation
## 3051 death disgust
## 3052 death fear
## 3053 death negative
## 3054 death sadness
## 3055 death surprise
## 3056 debacle fear
## 3057 debacle negative
## 3058 debacle sadness
## 3059 debate positive
## 3060 debauchery disgust
## 3061 debauchery fear
## 3062 debauchery negative
## 3063 debenture anticipation
## 3064 debris disgust
## 3065 debris negative
## 3066 debt negative
## 3067 debt sadness
## 3068 debtor negative
## 3069 decay fear
## 3070 decay negative
## 3071 decay sadness
## 3072 decayed disgust
## 3073 decayed negative
## 3074 decayed sadness
## 3075 deceased negative
## 3076 deceased sadness
## 3077 deceit anger
## 3078 deceit disgust
## 3079 deceit fear
## 3080 deceit negative
## 3081 deceit sadness
## 3082 deceit surprise
## 3083 deceitful disgust
## 3084 deceitful negative
## 3085 deceitful sadness
## 3086 deceive anger
## 3087 deceive disgust
## 3088 deceive negative
## 3089 deceive sadness
## 3090 deceived anger
## 3091 deceived negative
## 3092 deceiving negative
## 3093 deceiving trust
## 3094 decency positive
## 3095 decent positive
## 3096 deception negative
## 3097 deceptive negative
## 3098 declaratory positive
## 3099 declination negative
## 3100 decline negative
## 3101 declining negative
## 3102 decompose disgust
## 3103 decomposed sadness
## 3104 decomposition disgust
## 3105 decomposition fear
## 3106 decomposition negative
## 3107 decomposition sadness
## 3108 decoy surprise
## 3109 decrease negative
## 3110 decrement negative
## 3111 decrepit negative
## 3112 decry anger
## 3113 decry negative
## 3114 dedication positive
## 3115 deduct negative
## 3116 deed trust
## 3117 defamation disgust
## 3118 defamation fear
## 3119 defamation negative
## 3120 defamatory anger
## 3121 defamatory negative
## 3122 default disgust
## 3123 default fear
## 3124 default negative
## 3125 default sadness
## 3126 defeat negative
## 3127 defeated negative
## 3128 defeated sadness
## 3129 defect anger
## 3130 defect negative
## 3131 defection fear
## 3132 defection negative
## 3133 defective disgust
## 3134 defective negative
## 3135 defend fear
## 3136 defend positive
## 3137 defendant anger
## 3138 defendant fear
## 3139 defendant sadness
## 3140 defended positive
## 3141 defended trust
## 3142 defender positive
## 3143 defender trust
## 3144 defending positive
## 3145 defense anger
## 3146 defense anticipation
## 3147 defense fear
## 3148 defense positive
## 3149 defenseless fear
## 3150 defenseless negative
## 3151 defenseless sadness
## 3152 deference positive
## 3153 deference trust
## 3154 deferral negative
## 3155 defiance anger
## 3156 defiance disgust
## 3157 defiance fear
## 3158 defiance negative
## 3159 defiant anger
## 3160 defiant negative
## 3161 deficiency negative
## 3162 deficit negative
## 3163 definitive positive
## 3164 definitive trust
## 3165 deflate anger
## 3166 deflate negative
## 3167 deflate sadness
## 3168 deflation fear
## 3169 deflation negative
## 3170 deform disgust
## 3171 deform negative
## 3172 deformed disgust
## 3173 deformed negative
## 3174 deformed sadness
## 3175 deformity disgust
## 3176 deformity fear
## 3177 deformity negative
## 3178 deformity sadness
## 3179 defraud anger
## 3180 defraud disgust
## 3181 defraud negative
## 3182 defunct negative
## 3183 defunct sadness
## 3184 defy anger
## 3185 defy fear
## 3186 defy negative
## 3187 defy sadness
## 3188 defy surprise
## 3189 degeneracy anger
## 3190 degeneracy disgust
## 3191 degeneracy negative
## 3192 degeneracy sadness
## 3193 degenerate negative
## 3194 degradation negative
## 3195 degrade disgust
## 3196 degrade negative
## 3197 degrading disgust
## 3198 degrading fear
## 3199 degrading negative
## 3200 degrading sadness
## 3201 degree positive
## 3202 delay anger
## 3203 delay disgust
## 3204 delay fear
## 3205 delay negative
## 3206 delay sadness
## 3207 delayed negative
## 3208 delectable positive
## 3209 delegate positive
## 3210 delegate trust
## 3211 deleterious anger
## 3212 deleterious disgust
## 3213 deleterious fear
## 3214 deleterious negative
## 3215 deletion negative
## 3216 deliberate positive
## 3217 delicious joy
## 3218 delicious positive
## 3219 delight anticipation
## 3220 delight joy
## 3221 delight positive
## 3222 delighted anticipation
## 3223 delighted joy
## 3224 delighted positive
## 3225 delighted surprise
## 3226 delightful anticipation
## 3227 delightful joy
## 3228 delightful positive
## 3229 delightful trust
## 3230 delinquency negative
## 3231 delinquent anger
## 3232 delinquent disgust
## 3233 delinquent negative
## 3234 delirious negative
## 3235 delirious sadness
## 3236 delirium disgust
## 3237 delirium negative
## 3238 delirium sadness
## 3239 deliverance anticipation
## 3240 deliverance joy
## 3241 deliverance positive
## 3242 deliverance trust
## 3243 delivery anticipation
## 3244 delivery positive
## 3245 deluge fear
## 3246 deluge negative
## 3247 deluge sadness
## 3248 deluge surprise
## 3249 delusion anger
## 3250 delusion fear
## 3251 delusion negative
## 3252 delusion sadness
## 3253 delusional anger
## 3254 delusional fear
## 3255 delusional negative
## 3256 demand anger
## 3257 demand negative
## 3258 demanding negative
## 3259 demented fear
## 3260 demented negative
## 3261 dementia fear
## 3262 dementia negative
## 3263 dementia sadness
## 3264 demise fear
## 3265 demise negative
## 3266 demise sadness
## 3267 democracy positive
## 3268 demolish anger
## 3269 demolish negative
## 3270 demolish sadness
## 3271 demolition negative
## 3272 demon anger
## 3273 demon disgust
## 3274 demon fear
## 3275 demon negative
## 3276 demon sadness
## 3277 demonic anger
## 3278 demonic disgust
## 3279 demonic fear
## 3280 demonic negative
## 3281 demonic sadness
## 3282 demonstrable positive
## 3283 demonstrative joy
## 3284 demonstrative positive
## 3285 demonstrative sadness
## 3286 demoralized fear
## 3287 demoralized negative
## 3288 demoralized sadness
## 3289 denial negative
## 3290 denied negative
## 3291 denied sadness
## 3292 denounce anger
## 3293 denounce disgust
## 3294 denounce negative
## 3295 dentistry fear
## 3296 denunciation anger
## 3297 denunciation disgust
## 3298 denunciation fear
## 3299 denunciation negative
## 3300 deny anger
## 3301 deny negative
## 3302 denying anticipation
## 3303 denying negative
## 3304 depart anticipation
## 3305 depart sadness
## 3306 departed negative
## 3307 departed sadness
## 3308 departure negative
## 3309 departure sadness
## 3310 depend anticipation
## 3311 depend trust
## 3312 dependence fear
## 3313 dependence negative
## 3314 dependence sadness
## 3315 dependency negative
## 3316 dependent negative
## 3317 dependent positive
## 3318 dependent trust
## 3319 deplorable anger
## 3320 deplorable disgust
## 3321 deplorable fear
## 3322 deplorable negative
## 3323 deplorable sadness
## 3324 deplore anger
## 3325 deplore disgust
## 3326 deplore negative
## 3327 deplore sadness
## 3328 deport fear
## 3329 deport negative
## 3330 deport sadness
## 3331 deportation anger
## 3332 deportation fear
## 3333 deportation negative
## 3334 deportation sadness
## 3335 depository trust
## 3336 depraved anger
## 3337 depraved anticipation
## 3338 depraved disgust
## 3339 depraved fear
## 3340 depraved negative
## 3341 depraved sadness
## 3342 depravity anger
## 3343 depravity disgust
## 3344 depravity negative
## 3345 depreciate anger
## 3346 depreciate disgust
## 3347 depreciate negative
## 3348 depreciated anger
## 3349 depreciated disgust
## 3350 depreciated fear
## 3351 depreciated negative
## 3352 depreciated sadness
## 3353 depreciation fear
## 3354 depreciation negative
## 3355 depress fear
## 3356 depress negative
## 3357 depress sadness
## 3358 depressed anger
## 3359 depressed fear
## 3360 depressed negative
## 3361 depressed sadness
## 3362 depressing disgust
## 3363 depressing negative
## 3364 depressing sadness
## 3365 depression negative
## 3366 depression sadness
## 3367 depressive negative
## 3368 depressive sadness
## 3369 deprivation anger
## 3370 deprivation disgust
## 3371 deprivation fear
## 3372 deprivation negative
## 3373 deprivation sadness
## 3374 depth positive
## 3375 depth trust
## 3376 deputy trust
## 3377 deranged anger
## 3378 deranged disgust
## 3379 deranged fear
## 3380 deranged negative
## 3381 derelict negative
## 3382 derision anger
## 3383 derision disgust
## 3384 derision negative
## 3385 dermatologist trust
## 3386 derogation anger
## 3387 derogation disgust
## 3388 derogation fear
## 3389 derogation negative
## 3390 derogation sadness
## 3391 derogatory anger
## 3392 derogatory disgust
## 3393 derogatory fear
## 3394 derogatory negative
## 3395 derogatory sadness
## 3396 descent fear
## 3397 descent sadness
## 3398 descriptive positive
## 3399 desecration anger
## 3400 desecration disgust
## 3401 desecration fear
## 3402 desecration negative
## 3403 desecration sadness
## 3404 desert anger
## 3405 desert disgust
## 3406 desert fear
## 3407 desert negative
## 3408 desert sadness
## 3409 deserted anger
## 3410 deserted disgust
## 3411 deserted fear
## 3412 deserted negative
## 3413 deserted sadness
## 3414 desertion negative
## 3415 deserve anger
## 3416 deserve anticipation
## 3417 deserve positive
## 3418 deserve trust
## 3419 deserved positive
## 3420 designation trust
## 3421 designer positive
## 3422 desirable positive
## 3423 desiring positive
## 3424 desirous positive
## 3425 desist anger
## 3426 desist disgust
## 3427 desist negative
## 3428 desolation fear
## 3429 desolation negative
## 3430 desolation sadness
## 3431 despair anger
## 3432 despair disgust
## 3433 despair fear
## 3434 despair negative
## 3435 despair sadness
## 3436 despairing fear
## 3437 despairing negative
## 3438 despairing sadness
## 3439 desperate negative
## 3440 despicable anger
## 3441 despicable disgust
## 3442 despicable negative
## 3443 despise anger
## 3444 despise disgust
## 3445 despise negative
## 3446 despotic fear
## 3447 despotic negative
## 3448 despotism anger
## 3449 despotism disgust
## 3450 despotism fear
## 3451 despotism negative
## 3452 despotism sadness
## 3453 destination anticipation
## 3454 destination fear
## 3455 destination joy
## 3456 destination positive
## 3457 destination sadness
## 3458 destination surprise
## 3459 destined anticipation
## 3460 destitute fear
## 3461 destitute negative
## 3462 destitute sadness
## 3463 destroyed anger
## 3464 destroyed fear
## 3465 destroyed negative
## 3466 destroyed sadness
## 3467 destroyer anger
## 3468 destroyer fear
## 3469 destroyer negative
## 3470 destroying anger
## 3471 destroying fear
## 3472 destroying negative
## 3473 destroying sadness
## 3474 destruction anger
## 3475 destruction negative
## 3476 destructive anger
## 3477 destructive disgust
## 3478 destructive fear
## 3479 destructive negative
## 3480 detachment negative
## 3481 detain negative
## 3482 detainee anger
## 3483 detainee anticipation
## 3484 detainee fear
## 3485 detainee negative
## 3486 detainee sadness
## 3487 detect positive
## 3488 detection positive
## 3489 detention negative
## 3490 detention sadness
## 3491 deteriorate fear
## 3492 deteriorate negative
## 3493 deteriorate sadness
## 3494 deteriorated disgust
## 3495 deteriorated negative
## 3496 deteriorated sadness
## 3497 deterioration anger
## 3498 deterioration disgust
## 3499 deterioration fear
## 3500 deterioration negative
## 3501 deterioration sadness
## 3502 determinate anticipation
## 3503 determinate trust
## 3504 determination positive
## 3505 determination trust
## 3506 determined positive
## 3507 detest anger
## 3508 detest disgust
## 3509 detest negative
## 3510 detonate fear
## 3511 detonate negative
## 3512 detonate surprise
## 3513 detonation anger
## 3514 detract anger
## 3515 detract negative
## 3516 detriment negative
## 3517 detrimental negative
## 3518 detritus negative
## 3519 devastate anger
## 3520 devastate fear
## 3521 devastate negative
## 3522 devastate sadness
## 3523 devastating anger
## 3524 devastating disgust
## 3525 devastating fear
## 3526 devastating negative
## 3527 devastating sadness
## 3528 devastating trust
## 3529 devastation anger
## 3530 devastation fear
## 3531 devastation negative
## 3532 devastation sadness
## 3533 devastation surprise
## 3534 develop anticipation
## 3535 develop positive
## 3536 deviation sadness
## 3537 devil anger
## 3538 devil anticipation
## 3539 devil disgust
## 3540 devil fear
## 3541 devil negative
## 3542 devil sadness
## 3543 devilish disgust
## 3544 devilish fear
## 3545 devilish negative
## 3546 devious negative
## 3547 devolution negative
## 3548 devotional positive
## 3549 devotional trust
## 3550 devour negative
## 3551 devout anticipation
## 3552 devout joy
## 3553 devout positive
## 3554 devout trust
## 3555 dexterity positive
## 3556 diabolical anger
## 3557 diabolical disgust
## 3558 diabolical fear
## 3559 diabolical negative
## 3560 diagnosis anticipation
## 3561 diagnosis fear
## 3562 diagnosis negative
## 3563 diagnosis trust
## 3564 diamond joy
## 3565 diamond positive
## 3566 diaper disgust
## 3567 diarrhoea disgust
## 3568 diary joy
## 3569 diary positive
## 3570 diary trust
## 3571 diatribe anger
## 3572 diatribe disgust
## 3573 diatribe negative
## 3574 dictator fear
## 3575 dictator negative
## 3576 dictatorial anger
## 3577 dictatorial negative
## 3578 dictatorship anger
## 3579 dictatorship anticipation
## 3580 dictatorship disgust
## 3581 dictatorship fear
## 3582 dictatorship negative
## 3583 dictatorship sadness
## 3584 dictionary positive
## 3585 dictionary trust
## 3586 dictum trust
## 3587 didactic positive
## 3588 die fear
## 3589 die negative
## 3590 die sadness
## 3591 dietary anticipation
## 3592 dietary positive
## 3593 differential trust
## 3594 differently surprise
## 3595 difficult fear
## 3596 difficulties negative
## 3597 difficulties sadness
## 3598 difficulty anger
## 3599 difficulty fear
## 3600 difficulty negative
## 3601 difficulty sadness
## 3602 digit trust
## 3603 dignified positive
## 3604 dignity positive
## 3605 dignity trust
## 3606 digress anticipation
## 3607 digress negative
## 3608 dike fear
## 3609 dilapidated disgust
## 3610 dilapidated negative
## 3611 dilapidated sadness
## 3612 diligence positive
## 3613 diligence trust
## 3614 dilute negative
## 3615 diminish negative
## 3616 diminish sadness
## 3617 diminished negative
## 3618 din negative
## 3619 dinner positive
## 3620 dinosaur fear
## 3621 diplomacy anticipation
## 3622 diplomacy positive
## 3623 diplomacy trust
## 3624 diplomatic positive
## 3625 diplomatic trust
## 3626 dire disgust
## 3627 dire fear
## 3628 dire negative
## 3629 dire sadness
## 3630 dire surprise
## 3631 director positive
## 3632 director trust
## 3633 dirt disgust
## 3634 dirt negative
## 3635 dirty disgust
## 3636 dirty negative
## 3637 disability negative
## 3638 disability sadness
## 3639 disable fear
## 3640 disable negative
## 3641 disable sadness
## 3642 disabled fear
## 3643 disabled negative
## 3644 disabled sadness
## 3645 disaffected negative
## 3646 disagree anger
## 3647 disagree negative
## 3648 disagreeing anger
## 3649 disagreeing negative
## 3650 disagreeing sadness
## 3651 disagreement anger
## 3652 disagreement negative
## 3653 disagreement sadness
## 3654 disallowed anger
## 3655 disallowed disgust
## 3656 disallowed fear
## 3657 disallowed negative
## 3658 disallowed sadness
## 3659 disappear fear
## 3660 disappoint anger
## 3661 disappoint disgust
## 3662 disappoint negative
## 3663 disappoint sadness
## 3664 disappointed anger
## 3665 disappointed disgust
## 3666 disappointed negative
## 3667 disappointed sadness
## 3668 disappointing negative
## 3669 disappointing sadness
## 3670 disappointment disgust
## 3671 disappointment negative
## 3672 disappointment sadness
## 3673 disapproval negative
## 3674 disapproval sadness
## 3675 disapprove anger
## 3676 disapprove disgust
## 3677 disapprove fear
## 3678 disapprove negative
## 3679 disapprove sadness
## 3680 disapproved anger
## 3681 disapproved negative
## 3682 disapproved sadness
## 3683 disapproving anger
## 3684 disapproving disgust
## 3685 disapproving negative
## 3686 disapproving sadness
## 3687 disaster anger
## 3688 disaster disgust
## 3689 disaster fear
## 3690 disaster negative
## 3691 disaster sadness
## 3692 disaster surprise
## 3693 disastrous anger
## 3694 disastrous fear
## 3695 disastrous negative
## 3696 disastrous sadness
## 3697 disbelieve negative
## 3698 discards negative
## 3699 discharge negative
## 3700 disciple trust
## 3701 discipline fear
## 3702 discipline negative
## 3703 disclaim anger
## 3704 disclaim disgust
## 3705 disclaim negative
## 3706 disclaim trust
## 3707 disclosed trust
## 3708 discoloration disgust
## 3709 discoloration negative
## 3710 discolored disgust
## 3711 discolored negative
## 3712 discolored sadness
## 3713 discomfort negative
## 3714 discomfort sadness
## 3715 disconnect negative
## 3716 disconnect sadness
## 3717 disconnected negative
## 3718 disconnected sadness
## 3719 disconnection negative
## 3720 discontent anger
## 3721 discontent disgust
## 3722 discontent fear
## 3723 discontent negative
## 3724 discontent sadness
## 3725 discontinue negative
## 3726 discontinuity disgust
## 3727 discontinuity fear
## 3728 discontinuity negative
## 3729 discontinuity sadness
## 3730 discord anger
## 3731 discord disgust
## 3732 discord negative
## 3733 discourage fear
## 3734 discourage negative
## 3735 discourage sadness
## 3736 discouragement negative
## 3737 discovery positive
## 3738 discredit negative
## 3739 discreet anticipation
## 3740 discreet positive
## 3741 discretion anticipation
## 3742 discretion positive
## 3743 discretion trust
## 3744 discretionary positive
## 3745 discriminate anger
## 3746 discriminate negative
## 3747 discriminate sadness
## 3748 discriminating disgust
## 3749 discriminating negative
## 3750 discrimination anger
## 3751 discrimination disgust
## 3752 discrimination fear
## 3753 discrimination negative
## 3754 discrimination sadness
## 3755 discussion positive
## 3756 disdain anger
## 3757 disdain disgust
## 3758 disdain negative
## 3759 disease anger
## 3760 disease disgust
## 3761 disease fear
## 3762 disease negative
## 3763 disease sadness
## 3764 diseased disgust
## 3765 diseased fear
## 3766 diseased negative
## 3767 diseased sadness
## 3768 disembodied fear
## 3769 disembodied negative
## 3770 disembodied sadness
## 3771 disengagement negative
## 3772 disfigured anger
## 3773 disfigured disgust
## 3774 disfigured fear
## 3775 disfigured negative
## 3776 disfigured sadness
## 3777 disgrace anger
## 3778 disgrace disgust
## 3779 disgrace negative
## 3780 disgrace sadness
## 3781 disgraced anger
## 3782 disgraced disgust
## 3783 disgraced negative
## 3784 disgraced sadness
## 3785 disgraceful anger
## 3786 disgraceful disgust
## 3787 disgraceful negative
## 3788 disgruntled anger
## 3789 disgruntled disgust
## 3790 disgruntled negative
## 3791 disgruntled sadness
## 3792 disgust anger
## 3793 disgust disgust
## 3794 disgust fear
## 3795 disgust negative
## 3796 disgust sadness
## 3797 disgusting anger
## 3798 disgusting disgust
## 3799 disgusting fear
## 3800 disgusting negative
## 3801 disheartened negative
## 3802 disheartened sadness
## 3803 disheartening negative
## 3804 disheartening sadness
## 3805 dishonest anger
## 3806 dishonest disgust
## 3807 dishonest negative
## 3808 dishonest sadness
## 3809 dishonesty disgust
## 3810 dishonesty negative
## 3811 dishonor anger
## 3812 dishonor disgust
## 3813 dishonor fear
## 3814 dishonor negative
## 3815 dishonor sadness
## 3816 disillusionment anger
## 3817 disillusionment disgust
## 3818 disillusionment negative
## 3819 disillusionment sadness
## 3820 disinfection positive
## 3821 disinformation anger
## 3822 disinformation fear
## 3823 disinformation negative
## 3824 disingenuous disgust
## 3825 disingenuous negative
## 3826 disintegrate disgust
## 3827 disintegrate fear
## 3828 disintegrate negative
## 3829 disintegration negative
## 3830 disinterested negative
## 3831 dislike anger
## 3832 dislike disgust
## 3833 dislike negative
## 3834 disliked anger
## 3835 disliked negative
## 3836 disliked sadness
## 3837 dislocated anger
## 3838 dislocated disgust
## 3839 dislocated fear
## 3840 dislocated negative
## 3841 dislocated sadness
## 3842 dismal disgust
## 3843 dismal fear
## 3844 dismal negative
## 3845 dismal sadness
## 3846 dismay anger
## 3847 dismay anticipation
## 3848 dismay fear
## 3849 dismay negative
## 3850 dismay sadness
## 3851 dismay surprise
## 3852 dismemberment disgust
## 3853 dismemberment fear
## 3854 dismemberment negative
## 3855 dismemberment sadness
## 3856 dismissal anger
## 3857 dismissal disgust
## 3858 dismissal fear
## 3859 dismissal negative
## 3860 dismissal sadness
## 3861 dismissal surprise
## 3862 disobedience anger
## 3863 disobedience disgust
## 3864 disobedience negative
## 3865 disobedient anger
## 3866 disobedient negative
## 3867 disobey anger
## 3868 disobey disgust
## 3869 disobey negative
## 3870 disorder fear
## 3871 disorder negative
## 3872 disorderly negative
## 3873 disorganized negative
## 3874 disparage anger
## 3875 disparage disgust
## 3876 disparage negative
## 3877 disparage sadness
## 3878 disparaging anger
## 3879 disparaging disgust
## 3880 disparaging negative
## 3881 disparaging sadness
## 3882 disparity anger
## 3883 disparity disgust
## 3884 disparity negative
## 3885 disparity sadness
## 3886 dispassionate negative
## 3887 dispassionate sadness
## 3888 dispel negative
## 3889 dispel sadness
## 3890 dispersion negative
## 3891 displace negative
## 3892 displaced anger
## 3893 displaced fear
## 3894 displaced sadness
## 3895 displeased anger
## 3896 displeased disgust
## 3897 displeased fear
## 3898 displeased negative
## 3899 displeased sadness
## 3900 displeasure disgust
## 3901 displeasure negative
## 3902 disposal negative
## 3903 dispose disgust
## 3904 disposed anticipation
## 3905 disposed positive
## 3906 disposed trust
## 3907 dispossessed anger
## 3908 dispossessed fear
## 3909 dispossessed negative
## 3910 dispossessed sadness
## 3911 dispute anger
## 3912 dispute negative
## 3913 disqualification negative
## 3914 disqualified anger
## 3915 disqualified disgust
## 3916 disqualified negative
## 3917 disqualified sadness
## 3918 disqualify negative
## 3919 disqualify sadness
## 3920 disregard negative
## 3921 disregarded disgust
## 3922 disregarded negative
## 3923 disreputable anger
## 3924 disreputable disgust
## 3925 disreputable fear
## 3926 disreputable negative
## 3927 disrespect anger
## 3928 disrespect negative
## 3929 disrespectful anger
## 3930 disrespectful disgust
## 3931 disrespectful fear
## 3932 disrespectful negative
## 3933 disrespectful sadness
## 3934 disruption anger
## 3935 disruption fear
## 3936 disruption negative
## 3937 disruption surprise
## 3938 dissatisfaction negative
## 3939 dissection disgust
## 3940 disseminate positive
## 3941 dissension anger
## 3942 dissension negative
## 3943 dissenting negative
## 3944 disservice anger
## 3945 disservice disgust
## 3946 disservice negative
## 3947 disservice sadness
## 3948 dissident anger
## 3949 dissident fear
## 3950 dissident negative
## 3951 dissolution anger
## 3952 dissolution fear
## 3953 dissolution negative
## 3954 dissolution sadness
## 3955 dissolution surprise
## 3956 dissonance anger
## 3957 dissonance negative
## 3958 distaste disgust
## 3959 distaste negative
## 3960 distasteful disgust
## 3961 distasteful negative
## 3962 distillation positive
## 3963 distinction positive
## 3964 distorted disgust
## 3965 distorted negative
## 3966 distortion negative
## 3967 distract negative
## 3968 distracted anger
## 3969 distracted negative
## 3970 distracting anger
## 3971 distracting anticipation
## 3972 distracting negative
## 3973 distraction negative
## 3974 distraught negative
## 3975 distraught sadness
## 3976 distress anger
## 3977 distress disgust
## 3978 distress fear
## 3979 distress negative
## 3980 distress sadness
## 3981 distress surprise
## 3982 distressed fear
## 3983 distressed negative
## 3984 distressing anger
## 3985 distressing fear
## 3986 distressing negative
## 3987 distrust anger
## 3988 distrust disgust
## 3989 distrust fear
## 3990 distrust negative
## 3991 disturbance anger
## 3992 disturbance fear
## 3993 disturbance negative
## 3994 disturbance sadness
## 3995 disturbance surprise
## 3996 disturbed anger
## 3997 disturbed negative
## 3998 disturbed sadness
## 3999 disuse negative
## 4000 disused anger
## 4001 disused negative
## 4002 ditty joy
## 4003 ditty positive
## 4004 divan trust
## 4005 divergent negative
## 4006 divergent surprise
## 4007 diverse negative
## 4008 diverse positive
## 4009 diversified positive
## 4010 diversion positive
## 4011 diversion surprise
## 4012 divested negative
## 4013 divestment negative
## 4014 divination anticipation
## 4015 divinity positive
## 4016 divorce anger
## 4017 divorce disgust
## 4018 divorce fear
## 4019 divorce negative
## 4020 divorce sadness
## 4021 divorce surprise
## 4022 divorce trust
## 4023 dizziness negative
## 4024 dizzy negative
## 4025 docked negative
## 4026 doctor positive
## 4027 doctor trust
## 4028 doctrine trust
## 4029 doer positive
## 4030 dogged positive
## 4031 dogma trust
## 4032 doit negative
## 4033 doldrums negative
## 4034 doldrums sadness
## 4035 dole negative
## 4036 dole sadness
## 4037 doll joy
## 4038 dolor negative
## 4039 dolor sadness
## 4040 dolphin joy
## 4041 dolphin positive
## 4042 dolphin surprise
## 4043 dolphin trust
## 4044 dominant fear
## 4045 dominant negative
## 4046 dominate anger
## 4047 dominate fear
## 4048 dominate negative
## 4049 dominate positive
## 4050 domination anger
## 4051 domination fear
## 4052 domination negative
## 4053 domination sadness
## 4054 dominion fear
## 4055 dominion trust
## 4056 don positive
## 4057 don trust
## 4058 donation positive
## 4059 donkey disgust
## 4060 donkey negative
## 4061 doodle negative
## 4062 doom fear
## 4063 doom negative
## 4064 doomed fear
## 4065 doomed negative
## 4066 doomed sadness
## 4067 doomsday anger
## 4068 doomsday anticipation
## 4069 doomsday disgust
## 4070 doomsday fear
## 4071 doomsday negative
## 4072 doomsday sadness
## 4073 doubt fear
## 4074 doubt negative
## 4075 doubt sadness
## 4076 doubt trust
## 4077 doubtful negative
## 4078 doubting negative
## 4079 doubtless positive
## 4080 doubtless trust
## 4081 douche negative
## 4082 dour negative
## 4083 dove anticipation
## 4084 dove joy
## 4085 dove positive
## 4086 dove trust
## 4087 downfall fear
## 4088 downfall negative
## 4089 downfall sadness
## 4090 downright trust
## 4091 downy positive
## 4092 drab negative
## 4093 drab sadness
## 4094 draft anticipation
## 4095 dragon fear
## 4096 drainage negative
## 4097 drawback negative
## 4098 dread anticipation
## 4099 dread fear
## 4100 dread negative
## 4101 dreadful anger
## 4102 dreadful anticipation
## 4103 dreadful disgust
## 4104 dreadful fear
## 4105 dreadful negative
## 4106 dreadful sadness
## 4107 dreadfully disgust
## 4108 dreadfully fear
## 4109 dreadfully negative
## 4110 dreadfully sadness
## 4111 dreadfully surprise
## 4112 dreary negative
## 4113 dreary sadness
## 4114 drinking negative
## 4115 drivel disgust
## 4116 drivel negative
## 4117 drone negative
## 4118 drool disgust
## 4119 drooping negative
## 4120 drought negative
## 4121 drown fear
## 4122 drown negative
## 4123 drown sadness
## 4124 drowsiness negative
## 4125 drudgery negative
## 4126 drugged sadness
## 4127 drunken disgust
## 4128 drunken negative
## 4129 drunkenness negative
## 4130 dubious fear
## 4131 dubious negative
## 4132 dubious trust
## 4133 duel anger
## 4134 duel anticipation
## 4135 duel fear
## 4136 duet positive
## 4137 duke positive
## 4138 dull negative
## 4139 dull sadness
## 4140 dumb negative
## 4141 dummy negative
## 4142 dumps anger
## 4143 dumps negative
## 4144 dumps sadness
## 4145 dun negative
## 4146 dung disgust
## 4147 dungeon fear
## 4148 dungeon negative
## 4149 dupe anger
## 4150 dupe negative
## 4151 duplicity anger
## 4152 duplicity negative
## 4153 durability positive
## 4154 durability trust
## 4155 durable positive
## 4156 durable trust
## 4157 duress anger
## 4158 duress disgust
## 4159 duress fear
## 4160 duress negative
## 4161 duress sadness
## 4162 dust negative
## 4163 dutiful anticipation
## 4164 dutiful positive
## 4165 dutiful trust
## 4166 dwarfed fear
## 4167 dwarfed negative
## 4168 dwarfed sadness
## 4169 dying anger
## 4170 dying disgust
## 4171 dying fear
## 4172 dying negative
## 4173 dying sadness
## 4174 dynamic surprise
## 4175 dysentery disgust
## 4176 dysentery negative
## 4177 dysentery sadness
## 4178 eager anticipation
## 4179 eager joy
## 4180 eager positive
## 4181 eager surprise
## 4182 eager trust
## 4183 eagerness anticipation
## 4184 eagerness joy
## 4185 eagerness positive
## 4186 eagerness trust
## 4187 eagle trust
## 4188 earl positive
## 4189 earn positive
## 4190 earnest positive
## 4191 earnestly positive
## 4192 earnestness positive
## 4193 earthquake anger
## 4194 earthquake fear
## 4195 earthquake negative
## 4196 earthquake sadness
## 4197 earthquake surprise
## 4198 ease positive
## 4199 easement positive
## 4200 easygoing positive
## 4201 eat positive
## 4202 eavesdropping negative
## 4203 economy trust
## 4204 ecstasy anticipation
## 4205 ecstasy joy
## 4206 ecstasy positive
## 4207 ecstatic anticipation
## 4208 ecstatic joy
## 4209 ecstatic positive
## 4210 ecstatic surprise
## 4211 edict fear
## 4212 edict negative
## 4213 edification anticipation
## 4214 edification joy
## 4215 edification positive
## 4216 edification trust
## 4217 edition anticipation
## 4218 educate positive
## 4219 educated positive
## 4220 educational positive
## 4221 educational trust
## 4222 eel fear
## 4223 effective positive
## 4224 effective trust
## 4225 effeminate negative
## 4226 efficacy positive
## 4227 efficiency positive
## 4228 efficient anticipation
## 4229 efficient positive
## 4230 efficient trust
## 4231 effigy anger
## 4232 effort positive
## 4233 egotistical disgust
## 4234 egotistical negative
## 4235 egregious anger
## 4236 egregious disgust
## 4237 egregious negative
## 4238 ejaculation anticipation
## 4239 ejaculation joy
## 4240 ejaculation positive
## 4241 ejaculation surprise
## 4242 ejaculation trust
## 4243 eject negative
## 4244 ejection negative
## 4245 elaboration positive
## 4246 elated joy
## 4247 elated positive
## 4248 elbow anger
## 4249 elder positive
## 4250 elder trust
## 4251 elders positive
## 4252 elders trust
## 4253 elect positive
## 4254 elect trust
## 4255 electorate trust
## 4256 electric joy
## 4257 electric positive
## 4258 electric surprise
## 4259 electricity positive
## 4260 elegance anticipation
## 4261 elegance joy
## 4262 elegance positive
## 4263 elegance trust
## 4264 elegant joy
## 4265 elegant positive
## 4266 elevation anticipation
## 4267 elevation fear
## 4268 elevation joy
## 4269 elevation positive
## 4270 elevation trust
## 4271 elf anger
## 4272 elf disgust
## 4273 elf fear
## 4274 eligible positive
## 4275 elimination anger
## 4276 elimination disgust
## 4277 elimination fear
## 4278 elimination negative
## 4279 elimination sadness
## 4280 elite anticipation
## 4281 elite joy
## 4282 elite positive
## 4283 elite trust
## 4284 eloquence positive
## 4285 eloquent positive
## 4286 elucidate positive
## 4287 elucidate trust
## 4288 elusive negative
## 4289 elusive surprise
## 4290 emaciated fear
## 4291 emaciated negative
## 4292 emaciated sadness
## 4293 emancipation anticipation
## 4294 emancipation joy
## 4295 emancipation positive
## 4296 embargo negative
## 4297 embarrass negative
## 4298 embarrass sadness
## 4299 embarrassing negative
## 4300 embarrassment fear
## 4301 embarrassment negative
## 4302 embarrassment sadness
## 4303 embarrassment surprise
## 4304 embezzlement negative
## 4305 embolism fear
## 4306 embolism negative
## 4307 embolism sadness
## 4308 embrace anticipation
## 4309 embrace joy
## 4310 embrace positive
## 4311 embrace surprise
## 4312 embrace trust
## 4313 embroiled negative
## 4314 emergency fear
## 4315 emergency negative
## 4316 emergency sadness
## 4317 emergency surprise
## 4318 emeritus positive
## 4319 eminence positive
## 4320 eminence trust
## 4321 eminent positive
## 4322 eminently positive
## 4323 emir positive
## 4324 empathy positive
## 4325 emphasize trust
## 4326 employ trust
## 4327 empower positive
## 4328 emptiness sadness
## 4329 emulate positive
## 4330 enable positive
## 4331 enable trust
## 4332 enablement positive
## 4333 enablement trust
## 4334 enchant anticipation
## 4335 enchant joy
## 4336 enchant positive
## 4337 enchant surprise
## 4338 enchanted joy
## 4339 enchanted positive
## 4340 enchanted trust
## 4341 enchanting anticipation
## 4342 enchanting joy
## 4343 enchanting positive
## 4344 enclave negative
## 4345 encore positive
## 4346 encourage joy
## 4347 encourage positive
## 4348 encourage trust
## 4349 encouragement positive
## 4350 encroachment fear
## 4351 encroachment negative
## 4352 encumbrance anger
## 4353 encumbrance fear
## 4354 encumbrance negative
## 4355 encumbrance sadness
## 4356 encyclopedia positive
## 4357 encyclopedia trust
## 4358 endanger anticipation
## 4359 endanger fear
## 4360 endanger negative
## 4361 endangered fear
## 4362 endangered negative
## 4363 endeavor anticipation
## 4364 endeavor positive
## 4365 endemic disgust
## 4366 endemic fear
## 4367 endemic negative
## 4368 endemic sadness
## 4369 endless anger
## 4370 endless fear
## 4371 endless joy
## 4372 endless negative
## 4373 endless positive
## 4374 endless sadness
## 4375 endless trust
## 4376 endocarditis fear
## 4377 endocarditis sadness
## 4378 endow positive
## 4379 endow trust
## 4380 endowed positive
## 4381 endowment positive
## 4382 endowment trust
## 4383 endurance positive
## 4384 endure positive
## 4385 enema disgust
## 4386 enemy anger
## 4387 enemy disgust
## 4388 enemy fear
## 4389 enemy negative
## 4390 energetic positive
## 4391 enforce anger
## 4392 enforce fear
## 4393 enforce negative
## 4394 enforce positive
## 4395 enforcement negative
## 4396 engaged anticipation
## 4397 engaged joy
## 4398 engaged positive
## 4399 engaged trust
## 4400 engaging joy
## 4401 engaging positive
## 4402 engaging trust
## 4403 engulf anticipation
## 4404 enhance positive
## 4405 enigmatic fear
## 4406 enigmatic negative
## 4407 enjoy anticipation
## 4408 enjoy joy
## 4409 enjoy positive
## 4410 enjoy trust
## 4411 enjoying anticipation
## 4412 enjoying joy
## 4413 enjoying positive
## 4414 enjoying trust
## 4415 enlighten joy
## 4416 enlighten positive
## 4417 enlighten trust
## 4418 enlightenment joy
## 4419 enlightenment positive
## 4420 enlightenment trust
## 4421 enliven joy
## 4422 enliven positive
## 4423 enliven surprise
## 4424 enliven trust
## 4425 enmity anger
## 4426 enmity fear
## 4427 enmity negative
## 4428 enmity sadness
## 4429 enrich positive
## 4430 enroll anticipation
## 4431 enroll trust
## 4432 ensemble positive
## 4433 ensemble trust
## 4434 ensign positive
## 4435 enslave negative
## 4436 enslaved anger
## 4437 enslaved disgust
## 4438 enslaved fear
## 4439 enslaved negative
## 4440 enslaved sadness
## 4441 enslavement negative
## 4442 entangled anger
## 4443 entangled disgust
## 4444 entangled fear
## 4445 entangled negative
## 4446 entangled sadness
## 4447 entanglement negative
## 4448 enterprising positive
## 4449 entertain joy
## 4450 entertain positive
## 4451 entertained joy
## 4452 entertained positive
## 4453 entertaining anticipation
## 4454 entertaining joy
## 4455 entertaining positive
## 4456 entertainment anticipation
## 4457 entertainment joy
## 4458 entertainment positive
## 4459 entertainment surprise
## 4460 entertainment trust
## 4461 enthusiasm anticipation
## 4462 enthusiasm joy
## 4463 enthusiasm positive
## 4464 enthusiasm surprise
## 4465 enthusiast anticipation
## 4466 enthusiast joy
## 4467 enthusiast positive
## 4468 enthusiast surprise
## 4469 entrails disgust
## 4470 entrails negative
## 4471 entrust trust
## 4472 envious negative
## 4473 environ positive
## 4474 ephemeris positive
## 4475 epic positive
## 4476 epidemic anger
## 4477 epidemic anticipation
## 4478 epidemic disgust
## 4479 epidemic fear
## 4480 epidemic negative
## 4481 epidemic sadness
## 4482 epidemic surprise
## 4483 epilepsy negative
## 4484 episcopal trust
## 4485 epitaph sadness
## 4486 epitome positive
## 4487 equality joy
## 4488 equality positive
## 4489 equality trust
## 4490 equally positive
## 4491 equilibrium positive
## 4492 equity positive
## 4493 eradicate anger
## 4494 eradicate negative
## 4495 eradication anger
## 4496 eradication disgust
## 4497 eradication fear
## 4498 eradication negative
## 4499 erase fear
## 4500 erase negative
## 4501 erosion negative
## 4502 erotic anticipation
## 4503 erotic joy
## 4504 erotic negative
## 4505 erotic positive
## 4506 erotic surprise
## 4507 erotic trust
## 4508 err negative
## 4509 errand anticipation
## 4510 errand positive
## 4511 errand trust
## 4512 errant negative
## 4513 erratic negative
## 4514 erratic surprise
## 4515 erratum negative
## 4516 erroneous negative
## 4517 error negative
## 4518 error sadness
## 4519 erudite positive
## 4520 erupt anger
## 4521 erupt negative
## 4522 erupt surprise
## 4523 eruption anger
## 4524 eruption fear
## 4525 eruption negative
## 4526 eruption surprise
## 4527 escalate anger
## 4528 escalate negative
## 4529 escape anticipation
## 4530 escape fear
## 4531 escape negative
## 4532 escape positive
## 4533 escaped fear
## 4534 eschew anger
## 4535 eschew negative
## 4536 eschew sadness
## 4537 escort trust
## 4538 espionage negative
## 4539 esprit positive
## 4540 essential positive
## 4541 establish trust
## 4542 established joy
## 4543 established positive
## 4544 esteem joy
## 4545 esteem positive
## 4546 esteem sadness
## 4547 esteem trust
## 4548 esthetic positive
## 4549 estranged negative
## 4550 ethereal fear
## 4551 ethical positive
## 4552 ethics positive
## 4553 euthanasia fear
## 4554 euthanasia negative
## 4555 euthanasia sadness
## 4556 evacuate fear
## 4557 evacuate negative
## 4558 evacuation negative
## 4559 evade anger
## 4560 evade disgust
## 4561 evade fear
## 4562 evade negative
## 4563 evanescence sadness
## 4564 evanescence surprise
## 4565 evasion fear
## 4566 evasion negative
## 4567 evasion sadness
## 4568 eventual anticipation
## 4569 eventuality anticipation
## 4570 eventuality fear
## 4571 evergreen joy
## 4572 evergreen positive
## 4573 evergreen trust
## 4574 everlasting positive
## 4575 evict negative
## 4576 evict sadness
## 4577 eviction anger
## 4578 eviction disgust
## 4579 eviction fear
## 4580 eviction negative
## 4581 eviction sadness
## 4582 evident positive
## 4583 evident trust
## 4584 evil anger
## 4585 evil disgust
## 4586 evil fear
## 4587 evil negative
## 4588 evil sadness
## 4589 evolution positive
## 4590 exacerbate negative
## 4591 exacerbation anger
## 4592 exacerbation fear
## 4593 exacerbation negative
## 4594 exacting negative
## 4595 exaggerate anger
## 4596 exaggerate negative
## 4597 exaggerated negative
## 4598 exalt anticipation
## 4599 exalt joy
## 4600 exalt positive
## 4601 exalt trust
## 4602 exaltation joy
## 4603 exaltation positive
## 4604 exaltation trust
## 4605 exalted joy
## 4606 exalted positive
## 4607 exalted trust
## 4608 examination fear
## 4609 examination negative
## 4610 examination surprise
## 4611 exasperation anger
## 4612 exasperation disgust
## 4613 exasperation negative
## 4614 excavation anticipation
## 4615 excavation negative
## 4616 excavation surprise
## 4617 exceed anticipation
## 4618 exceed joy
## 4619 exceed positive
## 4620 excel anticipation
## 4621 excel joy
## 4622 excel positive
## 4623 excel surprise
## 4624 excel trust
## 4625 excellence disgust
## 4626 excellence joy
## 4627 excellence positive
## 4628 excellence trust
## 4629 excellent joy
## 4630 excellent positive
## 4631 excellent trust
## 4632 excess negative
## 4633 exchange positive
## 4634 exchange trust
## 4635 excise negative
## 4636 excitable positive
## 4637 excitation anger
## 4638 excitation anticipation
## 4639 excitation fear
## 4640 excitation joy
## 4641 excitation positive
## 4642 excitation surprise
## 4643 excite anger
## 4644 excite anticipation
## 4645 excite fear
## 4646 excite joy
## 4647 excite positive
## 4648 excite surprise
## 4649 excited anticipation
## 4650 excited joy
## 4651 excited positive
## 4652 excited surprise
## 4653 excited trust
## 4654 excitement anticipation
## 4655 excitement joy
## 4656 excitement positive
## 4657 excitement surprise
## 4658 exciting anticipation
## 4659 exciting joy
## 4660 exciting positive
## 4661 exciting surprise
## 4662 exclaim surprise
## 4663 excluded disgust
## 4664 excluded negative
## 4665 excluded sadness
## 4666 excluding negative
## 4667 excluding sadness
## 4668 exclusion disgust
## 4669 exclusion fear
## 4670 exclusion negative
## 4671 exclusion sadness
## 4672 excrement disgust
## 4673 excrement negative
## 4674 excretion disgust
## 4675 excruciating fear
## 4676 excruciating negative
## 4677 excuse negative
## 4678 execution anger
## 4679 execution fear
## 4680 execution negative
## 4681 execution sadness
## 4682 execution trust
## 4683 executioner anger
## 4684 executioner fear
## 4685 executioner negative
## 4686 executioner sadness
## 4687 executor trust
## 4688 exemplary positive
## 4689 exemption positive
## 4690 exhaust negative
## 4691 exhausted negative
## 4692 exhausted sadness
## 4693 exhaustion anticipation
## 4694 exhaustion negative
## 4695 exhaustion sadness
## 4696 exhaustive trust
## 4697 exhilaration joy
## 4698 exhilaration positive
## 4699 exhilaration surprise
## 4700 exhort positive
## 4701 exhortation positive
## 4702 exigent anticipation
## 4703 exigent disgust
## 4704 exigent fear
## 4705 exigent negative
## 4706 exigent surprise
## 4707 exile anger
## 4708 exile fear
## 4709 exile negative
## 4710 exile sadness
## 4711 existence positive
## 4712 exorcism fear
## 4713 exorcism negative
## 4714 exorcism sadness
## 4715 exotic positive
## 4716 expatriate negative
## 4717 expect anticipation
## 4718 expect positive
## 4719 expect surprise
## 4720 expect trust
## 4721 expectancy anticipation
## 4722 expectant anticipation
## 4723 expectation anticipation
## 4724 expectation positive
## 4725 expected anticipation
## 4726 expecting anticipation
## 4727 expedient joy
## 4728 expedient positive
## 4729 expedient trust
## 4730 expedition anticipation
## 4731 expedition positive
## 4732 expel anger
## 4733 expel disgust
## 4734 expel fear
## 4735 expel negative
## 4736 expel sadness
## 4737 expenditure negative
## 4738 expenses negative
## 4739 experienced positive
## 4740 experienced trust
## 4741 experiment anticipation
## 4742 experiment surprise
## 4743 expert positive
## 4744 expert trust
## 4745 expertise positive
## 4746 expertise trust
## 4747 expire negative
## 4748 expire sadness
## 4749 expired negative
## 4750 explain positive
## 4751 explain trust
## 4752 expletive anger
## 4753 expletive negative
## 4754 explode anger
## 4755 explode fear
## 4756 explode negative
## 4757 explode sadness
## 4758 explode surprise
## 4759 explore anticipation
## 4760 explosion fear
## 4761 explosion negative
## 4762 explosion surprise
## 4763 explosive anger
## 4764 explosive anticipation
## 4765 explosive fear
## 4766 explosive negative
## 4767 explosive surprise
## 4768 expose anticipation
## 4769 expose fear
## 4770 exposed negative
## 4771 expropriation negative
## 4772 expulsion anger
## 4773 expulsion disgust
## 4774 expulsion fear
## 4775 expulsion negative
## 4776 expulsion sadness
## 4777 exquisite joy
## 4778 exquisite positive
## 4779 exquisitely positive
## 4780 extend positive
## 4781 extensive positive
## 4782 exterminate fear
## 4783 exterminate negative
## 4784 exterminate sadness
## 4785 extermination anger
## 4786 extermination fear
## 4787 extermination negative
## 4788 extinct negative
## 4789 extinct sadness
## 4790 extinguish anger
## 4791 extinguish negative
## 4792 extra positive
## 4793 extrajudicial fear
## 4794 extrajudicial negative
## 4795 extraordinary positive
## 4796 extremity negative
## 4797 extricate anticipation
## 4798 extricate positive
## 4799 exuberance joy
## 4800 exuberance positive
## 4801 eyewitness trust
## 4802 fabricate negative
## 4803 fabrication negative
## 4804 fabrication trust
## 4805 facilitate positive
## 4806 fact trust
## 4807 facts positive
## 4808 facts trust
## 4809 faculty positive
## 4810 faculty trust
## 4811 fade negative
## 4812 faeces disgust
## 4813 faeces negative
## 4814 failing anger
## 4815 failing anticipation
## 4816 failing fear
## 4817 failing negative
## 4818 failing sadness
## 4819 failure disgust
## 4820 failure fear
## 4821 failure negative
## 4822 failure sadness
## 4823 fain anticipation
## 4824 fain joy
## 4825 fain positive
## 4826 fain trust
## 4827 fainting fear
## 4828 fainting negative
## 4829 fainting sadness
## 4830 fainting surprise
## 4831 fair positive
## 4832 fairly positive
## 4833 fairly trust
## 4834 faith anticipation
## 4835 faith joy
## 4836 faith positive
## 4837 faith trust
## 4838 faithful positive
## 4839 faithful trust
## 4840 faithless negative
## 4841 faithless sadness
## 4842 fake negative
## 4843 fall negative
## 4844 fall sadness
## 4845 fallacious anger
## 4846 fallacious negative
## 4847 fallacy negative
## 4848 fallible negative
## 4849 falling negative
## 4850 falling sadness
## 4851 fallow negative
## 4852 falsehood anger
## 4853 falsehood negative
## 4854 falsehood trust
## 4855 falsely negative
## 4856 falsification anger
## 4857 falsification negative
## 4858 falsify disgust
## 4859 falsify negative
## 4860 falsity disgust
## 4861 falsity negative
## 4862 falter fear
## 4863 falter negative
## 4864 fame positive
## 4865 familiar positive
## 4866 familiar trust
## 4867 familiarity anticipation
## 4868 familiarity joy
## 4869 familiarity positive
## 4870 familiarity trust
## 4871 famine negative
## 4872 famine sadness
## 4873 famous positive
## 4874 famously positive
## 4875 fanatic negative
## 4876 fanaticism fear
## 4877 fancy anticipation
## 4878 fancy joy
## 4879 fancy positive
## 4880 fanfare anticipation
## 4881 fanfare joy
## 4882 fanfare positive
## 4883 fanfare surprise
## 4884 fang fear
## 4885 fangs fear
## 4886 farce negative
## 4887 farcical disgust
## 4888 farcical negative
## 4889 farm anticipation
## 4890 fascinating positive
## 4891 fascination positive
## 4892 fashionable positive
## 4893 fasting negative
## 4894 fasting sadness
## 4895 fat disgust
## 4896 fat negative
## 4897 fat sadness
## 4898 fatal anger
## 4899 fatal fear
## 4900 fatal negative
## 4901 fatal sadness
## 4902 fatality fear
## 4903 fatality negative
## 4904 fatality sadness
## 4905 fate anticipation
## 4906 fate negative
## 4907 father trust
## 4908 fatigue negative
## 4909 fatigued negative
## 4910 fatigued sadness
## 4911 fatty disgust
## 4912 fatty negative
## 4913 fatty sadness
## 4914 fault negative
## 4915 fault sadness
## 4916 faultless positive
## 4917 faultless trust
## 4918 faulty negative
## 4919 favorable anticipation
## 4920 favorable joy
## 4921 favorable positive
## 4922 favorable surprise
## 4923 favorable trust
## 4924 favorite joy
## 4925 favorite positive
## 4926 favorite trust
## 4927 favoritism positive
## 4928 fawn negative
## 4929 fear anger
## 4930 fear fear
## 4931 fear negative
## 4932 fearful fear
## 4933 fearful negative
## 4934 fearful sadness
## 4935 fearfully fear
## 4936 fearfully negative
## 4937 fearfully sadness
## 4938 fearfully surprise
## 4939 fearing fear
## 4940 fearing negative
## 4941 fearless fear
## 4942 fearless positive
## 4943 feat anticipation
## 4944 feat joy
## 4945 feat positive
## 4946 feat surprise
## 4947 feature positive
## 4948 febrile negative
## 4949 fecal disgust
## 4950 fecal negative
## 4951 feces disgust
## 4952 feces negative
## 4953 fee anger
## 4954 fee negative
## 4955 feeble negative
## 4956 feeble sadness
## 4957 feeling anger
## 4958 feeling anticipation
## 4959 feeling disgust
## 4960 feeling fear
## 4961 feeling joy
## 4962 feeling negative
## 4963 feeling positive
## 4964 feeling sadness
## 4965 feeling surprise
## 4966 feeling trust
## 4967 feigned negative
## 4968 felicity joy
## 4969 felicity positive
## 4970 fell negative
## 4971 fell sadness
## 4972 fellow positive
## 4973 fellow trust
## 4974 fellowship positive
## 4975 felon fear
## 4976 felon negative
## 4977 felony negative
## 4978 female positive
## 4979 fenced anger
## 4980 fender trust
## 4981 ferment anticipation
## 4982 ferment negative
## 4983 fermentation anticipation
## 4984 ferocious anger
## 4985 ferocious disgust
## 4986 ferocious fear
## 4987 ferocious negative
## 4988 ferocity anger
## 4989 ferocity negative
## 4990 fertile positive
## 4991 fervor anger
## 4992 fervor joy
## 4993 fervor positive
## 4994 festival anticipation
## 4995 festival joy
## 4996 festival positive
## 4997 festival surprise
## 4998 festive joy
## 4999 festive positive
## 5000 fete anticipation
## 5001 fete joy
## 5002 fete positive
## 5003 fete surprise
## 5004 feud anger
## 5005 feud negative
## 5006 feudal negative
## 5007 feudalism anger
## 5008 feudalism negative
## 5009 feudalism sadness
## 5010 fever fear
## 5011 feverish negative
## 5012 fiasco negative
## 5013 fib anger
## 5014 fib negative
## 5015 fickle negative
## 5016 fictitious negative
## 5017 fidelity joy
## 5018 fidelity positive
## 5019 fidelity trust
## 5020 fiend anger
## 5021 fiend disgust
## 5022 fiend fear
## 5023 fiend negative
## 5024 fierce anger
## 5025 fierce disgust
## 5026 fierce fear
## 5027 fierce negative
## 5028 fiesta anticipation
## 5029 fiesta joy
## 5030 fiesta positive
## 5031 fiesta surprise
## 5032 fiesta trust
## 5033 fight anger
## 5034 fight fear
## 5035 fight negative
## 5036 fighting anger
## 5037 fighting negative
## 5038 filibuster negative
## 5039 fill trust
## 5040 filth disgust
## 5041 filth negative
## 5042 filthy disgust
## 5043 filthy negative
## 5044 finally anticipation
## 5045 finally disgust
## 5046 finally joy
## 5047 finally positive
## 5048 finally surprise
## 5049 finally trust
## 5050 finery positive
## 5051 finesse positive
## 5052 fire fear
## 5053 firearms anger
## 5054 firearms fear
## 5055 firearms negative
## 5056 fireball positive
## 5057 fireman trust
## 5058 fireproof positive
## 5059 firmness positive
## 5060 firmness trust
## 5061 firstborn anticipation
## 5062 firstborn joy
## 5063 firstborn positive
## 5064 firstborn trust
## 5065 fits anger
## 5066 fits negative
## 5067 fitting anticipation
## 5068 fitting joy
## 5069 fitting positive
## 5070 fitting trust
## 5071 fixed trust
## 5072 fixture positive
## 5073 flabby disgust
## 5074 flabby negative
## 5075 flaccid negative
## 5076 flaccid sadness
## 5077 flagging negative
## 5078 flagrant anger
## 5079 flagrant disgust
## 5080 flagrant negative
## 5081 flagship trust
## 5082 flake negative
## 5083 flange trust
## 5084 flap negative
## 5085 flattering joy
## 5086 flattering positive
## 5087 flatulence disgust
## 5088 flatulence negative
## 5089 flaunt negative
## 5090 flaw negative
## 5091 flaw sadness
## 5092 flea disgust
## 5093 flea negative
## 5094 fled fear
## 5095 flee fear
## 5096 flee negative
## 5097 fleece anger
## 5098 fleece disgust
## 5099 fleece negative
## 5100 fleece sadness
## 5101 fleet positive
## 5102 flesh disgust
## 5103 fleshy negative
## 5104 flexibility positive
## 5105 flinch anticipation
## 5106 flinch disgust
## 5107 flinch fear
## 5108 flinch negative
## 5109 flinch sadness
## 5110 flinch surprise
## 5111 flirt anticipation
## 5112 flirt joy
## 5113 flirt negative
## 5114 flirt positive
## 5115 flirt surprise
## 5116 flirt trust
## 5117 flog anger
## 5118 flog disgust
## 5119 flog fear
## 5120 flog negative
## 5121 flog sadness
## 5122 flood fear
## 5123 flop disgust
## 5124 flop negative
## 5125 flop sadness
## 5126 floral positive
## 5127 flounder fear
## 5128 flounder negative
## 5129 flounder sadness
## 5130 flow positive
## 5131 flowery positive
## 5132 flu fear
## 5133 flu negative
## 5134 fluctuation anger
## 5135 fluctuation fear
## 5136 fluctuation negative
## 5137 fluke surprise
## 5138 flush positive
## 5139 flying fear
## 5140 flying positive
## 5141 focus positive
## 5142 foe anger
## 5143 foe fear
## 5144 foe negative
## 5145 foiled negative
## 5146 follower trust
## 5147 folly negative
## 5148 fondness joy
## 5149 fondness positive
## 5150 food joy
## 5151 food positive
## 5152 food trust
## 5153 fool disgust
## 5154 fool negative
## 5155 foolish negative
## 5156 foolishness negative
## 5157 football anticipation
## 5158 football joy
## 5159 football positive
## 5160 footing trust
## 5161 forage negative
## 5162 foray anger
## 5163 foray negative
## 5164 forbearance positive
## 5165 forbid negative
## 5166 forbid sadness
## 5167 forbidding anger
## 5168 forbidding fear
## 5169 forbidding negative
## 5170 force anger
## 5171 force fear
## 5172 force negative
## 5173 forced fear
## 5174 forced negative
## 5175 forcibly anger
## 5176 forcibly fear
## 5177 forcibly negative
## 5178 fore positive
## 5179 forearm anger
## 5180 forearm anticipation
## 5181 foreboding anticipation
## 5182 foreboding fear
## 5183 foreboding negative
## 5184 forecast anticipation
## 5185 forecast trust
## 5186 foreclose fear
## 5187 foreclose negative
## 5188 foreclose sadness
## 5189 forefathers joy
## 5190 forefathers positive
## 5191 forefathers trust
## 5192 forego negative
## 5193 foregoing positive
## 5194 foreign negative
## 5195 foreigner fear
## 5196 foreigner negative
## 5197 foreman positive
## 5198 forerunner positive
## 5199 foresee anticipation
## 5200 foresee positive
## 5201 foresee surprise
## 5202 foresee trust
## 5203 foreseen anticipation
## 5204 foreseen positive
## 5205 foresight anticipation
## 5206 foresight positive
## 5207 foresight trust
## 5208 forewarned anticipation
## 5209 forewarned fear
## 5210 forewarned negative
## 5211 forfeit anger
## 5212 forfeit negative
## 5213 forfeit sadness
## 5214 forfeited negative
## 5215 forfeiture fear
## 5216 forfeiture negative
## 5217 forfeiture sadness
## 5218 forge positive
## 5219 forgery negative
## 5220 forget negative
## 5221 forgive positive
## 5222 forgiven positive
## 5223 forgiving positive
## 5224 forgiving trust
## 5225 forgotten fear
## 5226 forgotten negative
## 5227 forgotten sadness
## 5228 forlorn negative
## 5229 forlorn sadness
## 5230 formality trust
## 5231 formative positive
## 5232 formative trust
## 5233 formidable fear
## 5234 forming anticipation
## 5235 formless negative
## 5236 formula positive
## 5237 formula trust
## 5238 fornication negative
## 5239 forsake negative
## 5240 forsake sadness
## 5241 forsaken anger
## 5242 forsaken negative
## 5243 forsaken sadness
## 5244 fort trust
## 5245 forte positive
## 5246 forthcoming positive
## 5247 fortify positive
## 5248 fortitude joy
## 5249 fortitude positive
## 5250 fortitude trust
## 5251 fortress fear
## 5252 fortress positive
## 5253 fortress sadness
## 5254 fortress trust
## 5255 fortunate positive
## 5256 fortune anticipation
## 5257 fortune joy
## 5258 fortune positive
## 5259 fortune surprise
## 5260 fortune trust
## 5261 forward positive
## 5262 foul anger
## 5263 foul disgust
## 5264 foul fear
## 5265 foul negative
## 5266 found joy
## 5267 found positive
## 5268 found trust
## 5269 foundation positive
## 5270 fracture negative
## 5271 fragile fear
## 5272 fragile negative
## 5273 fragile sadness
## 5274 fragrant positive
## 5275 frailty negative
## 5276 frailty sadness
## 5277 framework trust
## 5278 frank positive
## 5279 frank trust
## 5280 frankness positive
## 5281 frankness trust
## 5282 frantic anticipation
## 5283 frantic disgust
## 5284 frantic fear
## 5285 frantic negative
## 5286 frantic surprise
## 5287 fraternal joy
## 5288 fraternal positive
## 5289 fraternal trust
## 5290 fraud anger
## 5291 fraud negative
## 5292 fraudulent anger
## 5293 fraudulent disgust
## 5294 fraudulent negative
## 5295 fraught fear
## 5296 fraught negative
## 5297 fraught sadness
## 5298 fray negative
## 5299 frayed negative
## 5300 frayed sadness
## 5301 freakish disgust
## 5302 freakish fear
## 5303 freakish negative
## 5304 freakish surprise
## 5305 freedom joy
## 5306 freedom positive
## 5307 freedom trust
## 5308 freely joy
## 5309 freely positive
## 5310 freely trust
## 5311 freezing negative
## 5312 frenetic anger
## 5313 frenetic fear
## 5314 frenetic negative
## 5315 frenetic surprise
## 5316 frenzied anger
## 5317 frenzied fear
## 5318 frenzied negative
## 5319 frenzy negative
## 5320 fret fear
## 5321 fret negative
## 5322 friction anger
## 5323 friend joy
## 5324 friend positive
## 5325 friend trust
## 5326 friendliness joy
## 5327 friendliness positive
## 5328 friendliness trust
## 5329 friendly anticipation
## 5330 friendly joy
## 5331 friendly positive
## 5332 friendly trust
## 5333 friendship joy
## 5334 friendship positive
## 5335 friendship trust
## 5336 frigate fear
## 5337 fright fear
## 5338 fright negative
## 5339 fright surprise
## 5340 frighten fear
## 5341 frighten negative
## 5342 frighten sadness
## 5343 frighten surprise
## 5344 frightened fear
## 5345 frightened negative
## 5346 frightened surprise
## 5347 frightful anger
## 5348 frightful fear
## 5349 frightful negative
## 5350 frightful sadness
## 5351 frigid negative
## 5352 frisky anticipation
## 5353 frisky joy
## 5354 frisky positive
## 5355 frisky surprise
## 5356 frivolous negative
## 5357 frolic joy
## 5358 frolic positive
## 5359 frostbite negative
## 5360 froth negative
## 5361 frown negative
## 5362 frown sadness
## 5363 frowning anger
## 5364 frowning disgust
## 5365 frowning negative
## 5366 frowning sadness
## 5367 frugal positive
## 5368 fruitful positive
## 5369 fruitless negative
## 5370 fruitless sadness
## 5371 frustrate anger
## 5372 frustrate disgust
## 5373 frustrate negative
## 5374 frustrate sadness
## 5375 frustrated anger
## 5376 frustrated negative
## 5377 frustration anger
## 5378 frustration negative
## 5379 fudge negative
## 5380 fugitive anger
## 5381 fugitive disgust
## 5382 fugitive fear
## 5383 fugitive negative
## 5384 fugitive sadness
## 5385 fugitive trust
## 5386 fulfill joy
## 5387 fulfill positive
## 5388 fulfillment anticipation
## 5389 fulfillment joy
## 5390 fulfillment positive
## 5391 fulfillment trust
## 5392 full positive
## 5393 fully positive
## 5394 fully trust
## 5395 fumble negative
## 5396 fume negative
## 5397 fuming anger
## 5398 fuming negative
## 5399 fun anticipation
## 5400 fun joy
## 5401 fun positive
## 5402 fundamental positive
## 5403 fundamental trust
## 5404 funeral sadness
## 5405 fungus disgust
## 5406 fungus negative
## 5407 funk negative
## 5408 funk sadness
## 5409 furious anger
## 5410 furious disgust
## 5411 furious negative
## 5412 furiously anger
## 5413 furnace anger
## 5414 furor anger
## 5415 furor negative
## 5416 furrow sadness
## 5417 fury anger
## 5418 fury fear
## 5419 fury negative
## 5420 fury sadness
## 5421 fuse positive
## 5422 fuse trust
## 5423 fusion positive
## 5424 fuss anger
## 5425 fuss negative
## 5426 fuss sadness
## 5427 fussy disgust
## 5428 fussy negative
## 5429 futile negative
## 5430 futile sadness
## 5431 futility negative
## 5432 gaby disgust
## 5433 gaby negative
## 5434 gag disgust
## 5435 gag negative
## 5436 gage trust
## 5437 gain anticipation
## 5438 gain joy
## 5439 gain positive
## 5440 gaining positive
## 5441 gall anger
## 5442 gall disgust
## 5443 gall negative
## 5444 gallant positive
## 5445 gallantry positive
## 5446 gallows anger
## 5447 gallows fear
## 5448 gallows negative
## 5449 gallows sadness
## 5450 galore positive
## 5451 gamble negative
## 5452 gambler anticipation
## 5453 gambler negative
## 5454 gambler surprise
## 5455 gambling anticipation
## 5456 gambling negative
## 5457 gambling surprise
## 5458 gang anger
## 5459 gang fear
## 5460 gang negative
## 5461 gaol negative
## 5462 gap negative
## 5463 gape surprise
## 5464 garbage disgust
## 5465 garbage negative
## 5466 garden joy
## 5467 garden positive
## 5468 garish disgust
## 5469 garish negative
## 5470 garish surprise
## 5471 garnet positive
## 5472 garnish negative
## 5473 garrison positive
## 5474 garrison trust
## 5475 gash fear
## 5476 gash negative
## 5477 gasp surprise
## 5478 gasping fear
## 5479 gasping negative
## 5480 gate trust
## 5481 gateway trust
## 5482 gauche negative
## 5483 gauging trust
## 5484 gaunt negative
## 5485 gawk surprise
## 5486 gazette positive
## 5487 gazette trust
## 5488 gear positive
## 5489 gelatin disgust
## 5490 gem joy
## 5491 gem positive
## 5492 general positive
## 5493 general trust
## 5494 generosity anticipation
## 5495 generosity joy
## 5496 generosity positive
## 5497 generosity surprise
## 5498 generosity trust
## 5499 generous joy
## 5500 generous positive
## 5501 generous trust
## 5502 genial joy
## 5503 genial positive
## 5504 genius positive
## 5505 gent anger
## 5506 gent disgust
## 5507 gent fear
## 5508 gent negative
## 5509 genteel positive
## 5510 gentleman positive
## 5511 gentleman trust
## 5512 gentleness positive
## 5513 gentry positive
## 5514 gentry trust
## 5515 genuine positive
## 5516 genuine trust
## 5517 geranium positive
## 5518 geriatric negative
## 5519 geriatric sadness
## 5520 germ anticipation
## 5521 germ disgust
## 5522 germination anticipation
## 5523 ghastly disgust
## 5524 ghastly fear
## 5525 ghastly negative
## 5526 ghetto disgust
## 5527 ghetto fear
## 5528 ghetto negative
## 5529 ghetto sadness
## 5530 ghost fear
## 5531 ghostly fear
## 5532 ghostly negative
## 5533 giant fear
## 5534 gibberish anger
## 5535 gibberish negative
## 5536 gift anticipation
## 5537 gift joy
## 5538 gift positive
## 5539 gift surprise
## 5540 gifted positive
## 5541 gigantic positive
## 5542 giggle joy
## 5543 giggle positive
## 5544 girder positive
## 5545 girder trust
## 5546 giving positive
## 5547 glacial negative
## 5548 glad anticipation
## 5549 glad joy
## 5550 glad positive
## 5551 gladiator fear
## 5552 gladness joy
## 5553 gladness positive
## 5554 glare anger
## 5555 glare fear
## 5556 glare negative
## 5557 glaring anger
## 5558 glaring negative
## 5559 glee joy
## 5560 glee positive
## 5561 glib negative
## 5562 glide anticipation
## 5563 glide joy
## 5564 glide positive
## 5565 glimmer anticipation
## 5566 glimmer joy
## 5567 glimmer positive
## 5568 glimmer surprise
## 5569 glitter disgust
## 5570 glitter joy
## 5571 glittering positive
## 5572 gloom negative
## 5573 gloom sadness
## 5574 gloomy negative
## 5575 gloomy sadness
## 5576 glorification joy
## 5577 glorification positive
## 5578 glorify anticipation
## 5579 glorify joy
## 5580 glorify positive
## 5581 glorify surprise
## 5582 glorify trust
## 5583 glory anticipation
## 5584 glory joy
## 5585 glory positive
## 5586 glory trust
## 5587 gloss positive
## 5588 glow anticipation
## 5589 glow joy
## 5590 glow positive
## 5591 glow trust
## 5592 glowing positive
## 5593 glum negative
## 5594 glum sadness
## 5595 glut disgust
## 5596 glut negative
## 5597 gluttony disgust
## 5598 gluttony negative
## 5599 gnome anger
## 5600 gnome disgust
## 5601 gnome fear
## 5602 gnome negative
## 5603 gob disgust
## 5604 goblin disgust
## 5605 goblin fear
## 5606 goblin negative
## 5607 god anticipation
## 5608 god fear
## 5609 god joy
## 5610 god positive
## 5611 god trust
## 5612 godless anger
## 5613 godless negative
## 5614 godly joy
## 5615 godly positive
## 5616 godly trust
## 5617 godsend joy
## 5618 godsend positive
## 5619 godsend surprise
## 5620 gold positive
## 5621 gonorrhea anger
## 5622 gonorrhea disgust
## 5623 gonorrhea fear
## 5624 gonorrhea negative
## 5625 gonorrhea sadness
## 5626 goo disgust
## 5627 goo negative
## 5628 good anticipation
## 5629 good joy
## 5630 good positive
## 5631 good surprise
## 5632 good trust
## 5633 goodly positive
## 5634 goodness anticipation
## 5635 goodness joy
## 5636 goodness positive
## 5637 goodness surprise
## 5638 goodness trust
## 5639 goods positive
## 5640 goodwill positive
## 5641 gore anger
## 5642 gore disgust
## 5643 gore fear
## 5644 gore negative
## 5645 gore sadness
## 5646 gorge disgust
## 5647 gorge negative
## 5648 gorgeous joy
## 5649 gorgeous positive
## 5650 gorilla negative
## 5651 gory anger
## 5652 gory disgust
## 5653 gory fear
## 5654 gory negative
## 5655 gory sadness
## 5656 gospel positive
## 5657 gospel trust
## 5658 gossip negative
## 5659 gouge negative
## 5660 gout negative
## 5661 govern positive
## 5662 govern trust
## 5663 governess trust
## 5664 government fear
## 5665 government negative
## 5666 governor trust
## 5667 grab anger
## 5668 grab negative
## 5669 grace positive
## 5670 graceful positive
## 5671 gracious positive
## 5672 graciously positive
## 5673 gradual anticipation
## 5674 graduation anticipation
## 5675 graduation fear
## 5676 graduation joy
## 5677 graduation positive
## 5678 graduation surprise
## 5679 graduation trust
## 5680 grammar trust
## 5681 grandchildren anticipation
## 5682 grandchildren joy
## 5683 grandchildren positive
## 5684 grandchildren trust
## 5685 grandeur positive
## 5686 grandfather trust
## 5687 grandmother positive
## 5688 grant anticipation
## 5689 grant joy
## 5690 grant positive
## 5691 grant trust
## 5692 granted positive
## 5693 grasping anticipation
## 5694 grasping negative
## 5695 grate negative
## 5696 grated anger
## 5697 grated negative
## 5698 grateful positive
## 5699 gratify joy
## 5700 gratify positive
## 5701 gratify surprise
## 5702 grating anger
## 5703 grating disgust
## 5704 grating negative
## 5705 gratitude joy
## 5706 gratitude positive
## 5707 gratuitous disgust
## 5708 grave fear
## 5709 grave negative
## 5710 grave sadness
## 5711 gravitate anticipation
## 5712 gray disgust
## 5713 gray sadness
## 5714 greasy disgust
## 5715 greater positive
## 5716 greatness joy
## 5717 greatness positive
## 5718 greatness surprise
## 5719 greatness trust
## 5720 greed anger
## 5721 greed disgust
## 5722 greed negative
## 5723 greedy disgust
## 5724 greedy negative
## 5725 green joy
## 5726 green positive
## 5727 green trust
## 5728 greeting positive
## 5729 greeting surprise
## 5730 gregarious positive
## 5731 grenade fear
## 5732 grenade negative
## 5733 grief negative
## 5734 grief sadness
## 5735 grievance anger
## 5736 grievance disgust
## 5737 grievance negative
## 5738 grievance sadness
## 5739 grieve fear
## 5740 grieve negative
## 5741 grieve sadness
## 5742 grievous anger
## 5743 grievous fear
## 5744 grievous negative
## 5745 grievous sadness
## 5746 grim anger
## 5747 grim anticipation
## 5748 grim disgust
## 5749 grim fear
## 5750 grim negative
## 5751 grim sadness
## 5752 grime disgust
## 5753 grime negative
## 5754 grimy disgust
## 5755 grimy negative
## 5756 grin anticipation
## 5757 grin joy
## 5758 grin positive
## 5759 grin surprise
## 5760 grin trust
## 5761 grinding negative
## 5762 grisly disgust
## 5763 grisly fear
## 5764 grisly negative
## 5765 grist positive
## 5766 grit positive
## 5767 grit trust
## 5768 grizzly fear
## 5769 grizzly negative
## 5770 groan disgust
## 5771 groan negative
## 5772 groan sadness
## 5773 grope anger
## 5774 grope disgust
## 5775 grope fear
## 5776 grope negative
## 5777 gross disgust
## 5778 gross negative
## 5779 grotesque disgust
## 5780 grotesque negative
## 5781 ground trust
## 5782 grounded fear
## 5783 grounded negative
## 5784 grounded sadness
## 5785 groundless negative
## 5786 groundwork positive
## 5787 grow anticipation
## 5788 grow joy
## 5789 grow positive
## 5790 grow trust
## 5791 growl anger
## 5792 growl fear
## 5793 growl negative
## 5794 growling anger
## 5795 growling disgust
## 5796 growling fear
## 5797 growling negative
## 5798 growth positive
## 5799 grudge anger
## 5800 grudge negative
## 5801 grudgingly negative
## 5802 gruesome disgust
## 5803 gruesome negative
## 5804 gruff anger
## 5805 gruff disgust
## 5806 gruff negative
## 5807 grumble anger
## 5808 grumble disgust
## 5809 grumble negative
## 5810 grumpy anger
## 5811 grumpy disgust
## 5812 grumpy negative
## 5813 grumpy sadness
## 5814 guarantee positive
## 5815 guarantee trust
## 5816 guard fear
## 5817 guard positive
## 5818 guard trust
## 5819 guarded trust
## 5820 guardian positive
## 5821 guardian trust
## 5822 guardianship positive
## 5823 guardianship trust
## 5824 gubernatorial positive
## 5825 gubernatorial trust
## 5826 guerilla fear
## 5827 guerilla negative
## 5828 guess surprise
## 5829 guidance positive
## 5830 guidance trust
## 5831 guide positive
## 5832 guide trust
## 5833 guidebook positive
## 5834 guidebook trust
## 5835 guile negative
## 5836 guillotine anger
## 5837 guillotine anticipation
## 5838 guillotine disgust
## 5839 guillotine fear
## 5840 guillotine negative
## 5841 guillotine sadness
## 5842 guilt disgust
## 5843 guilt negative
## 5844 guilt sadness
## 5845 guilty anger
## 5846 guilty negative
## 5847 guilty sadness
## 5848 guise negative
## 5849 gull negative
## 5850 gullible negative
## 5851 gullible sadness
## 5852 gullible trust
## 5853 gulp fear
## 5854 gulp surprise
## 5855 gun anger
## 5856 gun fear
## 5857 gun negative
## 5858 gunpowder fear
## 5859 guru positive
## 5860 guru trust
## 5861 gush disgust
## 5862 gush joy
## 5863 gush negative
## 5864 gusset trust
## 5865 gut disgust
## 5866 guts positive
## 5867 gutter disgust
## 5868 guzzling negative
## 5869 gymnast positive
## 5870 gypsy negative
## 5871 habitat positive
## 5872 habitual anticipation
## 5873 hag disgust
## 5874 hag fear
## 5875 hag negative
## 5876 haggard negative
## 5877 haggard sadness
## 5878 hail negative
## 5879 hail positive
## 5880 hail trust
## 5881 hairy disgust
## 5882 hairy negative
## 5883 hale positive
## 5884 halfway negative
## 5885 hallucination fear
## 5886 hallucination negative
## 5887 halter anger
## 5888 halter fear
## 5889 halter negative
## 5890 halter sadness
## 5891 halting fear
## 5892 halting negative
## 5893 halting sadness
## 5894 hamper negative
## 5895 hamstring anger
## 5896 hamstring negative
## 5897 hamstring sadness
## 5898 handbook trust
## 5899 handicap negative
## 5900 handicap sadness
## 5901 handy positive
## 5902 hanging anger
## 5903 hanging disgust
## 5904 hanging fear
## 5905 hanging negative
## 5906 hanging sadness
## 5907 hangman fear
## 5908 hangman negative
## 5909 hankering anticipation
## 5910 hap anticipation
## 5911 hap surprise
## 5912 happen anticipation
## 5913 happily joy
## 5914 happily positive
## 5915 happiness anticipation
## 5916 happiness joy
## 5917 happiness positive
## 5918 happy anticipation
## 5919 happy joy
## 5920 happy positive
## 5921 happy trust
## 5922 harass anger
## 5923 harass disgust
## 5924 harass negative
## 5925 harassing anger
## 5926 harbinger anger
## 5927 harbinger anticipation
## 5928 harbinger fear
## 5929 harbinger negative
## 5930 harbor trust
## 5931 hardened anger
## 5932 hardened disgust
## 5933 hardened fear
## 5934 hardened negative
## 5935 hardness negative
## 5936 hardship negative
## 5937 hardship sadness
## 5938 hardy joy
## 5939 hardy positive
## 5940 hardy trust
## 5941 harlot disgust
## 5942 harlot negative
## 5943 harm fear
## 5944 harm negative
## 5945 harmful anger
## 5946 harmful disgust
## 5947 harmful fear
## 5948 harmful negative
## 5949 harmful sadness
## 5950 harmoniously joy
## 5951 harmoniously positive
## 5952 harmoniously trust
## 5953 harmony joy
## 5954 harmony positive
## 5955 harmony trust
## 5956 harrowing fear
## 5957 harrowing negative
## 5958 harry anger
## 5959 harry negative
## 5960 harry sadness
## 5961 harshness anger
## 5962 harshness fear
## 5963 harshness negative
## 5964 harvest anticipation
## 5965 harvest joy
## 5966 harvest positive
## 5967 hash negative
## 5968 hashish negative
## 5969 haste anticipation
## 5970 hasty negative
## 5971 hate anger
## 5972 hate disgust
## 5973 hate fear
## 5974 hate negative
## 5975 hate sadness
## 5976 hateful anger
## 5977 hateful disgust
## 5978 hateful fear
## 5979 hateful negative
## 5980 hateful sadness
## 5981 hating anger
## 5982 hating negative
## 5983 hatred anger
## 5984 hatred disgust
## 5985 hatred fear
## 5986 hatred negative
## 5987 hatred sadness
## 5988 haughty anger
## 5989 haughty negative
## 5990 haunt fear
## 5991 haunt negative
## 5992 haunted fear
## 5993 haunted negative
## 5994 haunted sadness
## 5995 haven positive
## 5996 haven trust
## 5997 havoc anger
## 5998 havoc fear
## 5999 havoc negative
## 6000 hawk fear
## 6001 hazard fear
## 6002 hazard negative
## 6003 hazardous fear
## 6004 hazardous negative
## 6005 haze fear
## 6006 haze negative
## 6007 headache negative
## 6008 headlight anticipation
## 6009 headway positive
## 6010 heady negative
## 6011 heal joy
## 6012 heal positive
## 6013 heal trust
## 6014 healing anticipation
## 6015 healing joy
## 6016 healing positive
## 6017 healing trust
## 6018 healthful joy
## 6019 healthful positive
## 6020 healthy positive
## 6021 hearing fear
## 6022 hearing negative
## 6023 hearsay negative
## 6024 hearse fear
## 6025 hearse negative
## 6026 hearse sadness
## 6027 heartache negative
## 6028 heartache sadness
## 6029 heartburn negative
## 6030 heartfelt joy
## 6031 heartfelt positive
## 6032 heartfelt sadness
## 6033 heartfelt trust
## 6034 hearth positive
## 6035 heartily joy
## 6036 heartily positive
## 6037 heartless negative
## 6038 heartless sadness
## 6039 heartworm disgust
## 6040 heathen fear
## 6041 heathen negative
## 6042 heavenly anticipation
## 6043 heavenly joy
## 6044 heavenly positive
## 6045 heavenly trust
## 6046 heavens joy
## 6047 heavens positive
## 6048 heavens trust
## 6049 heavily negative
## 6050 hedonism joy
## 6051 hedonism negative
## 6052 hedonism positive
## 6053 heel negative
## 6054 heft anticipation
## 6055 heft fear
## 6056 heft positive
## 6057 heighten fear
## 6058 heighten negative
## 6059 heinous negative
## 6060 hell anger
## 6061 hell disgust
## 6062 hell fear
## 6063 hell negative
## 6064 hell sadness
## 6065 hellish anger
## 6066 hellish disgust
## 6067 hellish fear
## 6068 hellish negative
## 6069 hellish sadness
## 6070 helmet fear
## 6071 helmet positive
## 6072 helper positive
## 6073 helper trust
## 6074 helpful joy
## 6075 helpful positive
## 6076 helpful trust
## 6077 helpless fear
## 6078 helpless negative
## 6079 helpless sadness
## 6080 helplessness fear
## 6081 helplessness negative
## 6082 helplessness sadness
## 6083 hemorrhage disgust
## 6084 hemorrhage fear
## 6085 hemorrhage negative
## 6086 hemorrhage sadness
## 6087 hemorrhoids negative
## 6088 herbal positive
## 6089 heresy negative
## 6090 heretic disgust
## 6091 heretic negative
## 6092 heritage trust
## 6093 hermaphrodite negative
## 6094 hermaphrodite surprise
## 6095 hermit sadness
## 6096 hermit trust
## 6097 hero anticipation
## 6098 hero joy
## 6099 hero positive
## 6100 hero surprise
## 6101 hero trust
## 6102 heroic joy
## 6103 heroic positive
## 6104 heroic surprise
## 6105 heroic trust
## 6106 heroics positive
## 6107 heroin negative
## 6108 heroine positive
## 6109 heroine trust
## 6110 heroism anticipation
## 6111 heroism joy
## 6112 heroism positive
## 6113 heroism surprise
## 6114 heroism trust
## 6115 herpes disgust
## 6116 herpes negative
## 6117 herpesvirus disgust
## 6118 herpesvirus negative
## 6119 hesitation fear
## 6120 hesitation negative
## 6121 heyday anticipation
## 6122 heyday joy
## 6123 heyday positive
## 6124 heyday trust
## 6125 hidden negative
## 6126 hide fear
## 6127 hideous disgust
## 6128 hideous fear
## 6129 hideous negative
## 6130 hideous sadness
## 6131 hiding fear
## 6132 highest anticipation
## 6133 highest fear
## 6134 highest joy
## 6135 highest negative
## 6136 highest positive
## 6137 highest surprise
## 6138 hilarious joy
## 6139 hilarious positive
## 6140 hilarious surprise
## 6141 hilarity joy
## 6142 hilarity positive
## 6143 hindering negative
## 6144 hindering sadness
## 6145 hindrance negative
## 6146 hippie negative
## 6147 hire anticipation
## 6148 hire joy
## 6149 hire positive
## 6150 hire trust
## 6151 hiss anger
## 6152 hiss fear
## 6153 hiss negative
## 6154 hissing negative
## 6155 hit anger
## 6156 hit negative
## 6157 hitherto negative
## 6158 hive negative
## 6159 hoarse negative
## 6160 hoary negative
## 6161 hoary sadness
## 6162 hoax anger
## 6163 hoax disgust
## 6164 hoax negative
## 6165 hoax sadness
## 6166 hoax surprise
## 6167 hobby joy
## 6168 hobby positive
## 6169 hobo negative
## 6170 hobo sadness
## 6171 hog disgust
## 6172 hog negative
## 6173 holiday anticipation
## 6174 holiday joy
## 6175 holiday positive
## 6176 holiness anticipation
## 6177 holiness fear
## 6178 holiness joy
## 6179 holiness positive
## 6180 holiness surprise
## 6181 holiness trust
## 6182 hollow negative
## 6183 hollow sadness
## 6184 holocaust anger
## 6185 holocaust disgust
## 6186 holocaust fear
## 6187 holocaust negative
## 6188 holocaust sadness
## 6189 holy positive
## 6190 homage positive
## 6191 homeless anger
## 6192 homeless anticipation
## 6193 homeless disgust
## 6194 homeless fear
## 6195 homeless negative
## 6196 homeless sadness
## 6197 homesick negative
## 6198 homesick sadness
## 6199 homework fear
## 6200 homicidal anger
## 6201 homicidal fear
## 6202 homicidal negative
## 6203 homicide anger
## 6204 homicide disgust
## 6205 homicide fear
## 6206 homicide negative
## 6207 homicide sadness
## 6208 homology positive
## 6209 homosexuality negative
## 6210 honest anger
## 6211 honest disgust
## 6212 honest fear
## 6213 honest joy
## 6214 honest positive
## 6215 honest sadness
## 6216 honest trust
## 6217 honesty positive
## 6218 honesty trust
## 6219 honey positive
## 6220 honeymoon anticipation
## 6221 honeymoon joy
## 6222 honeymoon positive
## 6223 honeymoon surprise
## 6224 honeymoon trust
## 6225 honor positive
## 6226 honor trust
## 6227 honorable positive
## 6228 honorable trust
## 6229 hood anger
## 6230 hood disgust
## 6231 hood fear
## 6232 hood negative
## 6233 hooded fear
## 6234 hooked negative
## 6235 hoot anger
## 6236 hoot disgust
## 6237 hoot negative
## 6238 hope anticipation
## 6239 hope joy
## 6240 hope positive
## 6241 hope surprise
## 6242 hope trust
## 6243 hopeful anticipation
## 6244 hopeful joy
## 6245 hopeful positive
## 6246 hopeful surprise
## 6247 hopeful trust
## 6248 hopeless fear
## 6249 hopeless negative
## 6250 hopeless sadness
## 6251 hopelessness anger
## 6252 hopelessness disgust
## 6253 hopelessness fear
## 6254 hopelessness negative
## 6255 hopelessness sadness
## 6256 horde negative
## 6257 horde surprise
## 6258 horizon anticipation
## 6259 horizon positive
## 6260 horoscope anticipation
## 6261 horrible anger
## 6262 horrible disgust
## 6263 horrible fear
## 6264 horrible negative
## 6265 horribly negative
## 6266 horrid anger
## 6267 horrid disgust
## 6268 horrid fear
## 6269 horrid negative
## 6270 horrid sadness
## 6271 horrific anger
## 6272 horrific disgust
## 6273 horrific fear
## 6274 horrific negative
## 6275 horrific sadness
## 6276 horrified fear
## 6277 horrified negative
## 6278 horrifying disgust
## 6279 horrifying fear
## 6280 horrifying negative
## 6281 horrifying sadness
## 6282 horror anger
## 6283 horror disgust
## 6284 horror fear
## 6285 horror negative
## 6286 horror sadness
## 6287 horror surprise
## 6288 horrors fear
## 6289 horrors negative
## 6290 horrors sadness
## 6291 horse trust
## 6292 hospice sadness
## 6293 hospital fear
## 6294 hospital sadness
## 6295 hospital trust
## 6296 hospitality positive
## 6297 hostage anger
## 6298 hostage fear
## 6299 hostage negative
## 6300 hostile anger
## 6301 hostile disgust
## 6302 hostile fear
## 6303 hostile negative
## 6304 hostilities anger
## 6305 hostilities fear
## 6306 hostilities negative
## 6307 hostility anger
## 6308 hostility disgust
## 6309 hostility negative
## 6310 hot anger
## 6311 household positive
## 6312 housekeeping positive
## 6313 howl anger
## 6314 howl disgust
## 6315 howl fear
## 6316 howl negative
## 6317 howl sadness
## 6318 howl surprise
## 6319 huff anger
## 6320 huff disgust
## 6321 huff negative
## 6322 hug joy
## 6323 hug positive
## 6324 hug trust
## 6325 hulk disgust
## 6326 humane positive
## 6327 humanitarian anticipation
## 6328 humanitarian joy
## 6329 humanitarian positive
## 6330 humanitarian surprise
## 6331 humanitarian trust
## 6332 humanity joy
## 6333 humanity positive
## 6334 humanity trust
## 6335 humble disgust
## 6336 humble negative
## 6337 humble positive
## 6338 humble sadness
## 6339 humbled positive
## 6340 humbled sadness
## 6341 humbly positive
## 6342 humbug anger
## 6343 humbug disgust
## 6344 humbug negative
## 6345 humbug sadness
## 6346 humiliate anger
## 6347 humiliate negative
## 6348 humiliate sadness
## 6349 humiliating disgust
## 6350 humiliating negative
## 6351 humiliation disgust
## 6352 humiliation negative
## 6353 humiliation sadness
## 6354 humility positive
## 6355 humility trust
## 6356 humorist positive
## 6357 humorous joy
## 6358 humorous positive
## 6359 hunch negative
## 6360 hungry anticipation
## 6361 hungry negative
## 6362 hunter anticipation
## 6363 hunter fear
## 6364 hunter negative
## 6365 hunter sadness
## 6366 hunting anger
## 6367 hunting anticipation
## 6368 hunting fear
## 6369 hunting negative
## 6370 hurrah joy
## 6371 hurrah positive
## 6372 hurricane fear
## 6373 hurricane negative
## 6374 hurried anticipation
## 6375 hurried negative
## 6376 hurry anticipation
## 6377 hurt anger
## 6378 hurt fear
## 6379 hurt negative
## 6380 hurt sadness
## 6381 hurtful anger
## 6382 hurtful disgust
## 6383 hurtful fear
## 6384 hurtful negative
## 6385 hurtful sadness
## 6386 hurting anger
## 6387 hurting fear
## 6388 hurting negative
## 6389 hurting sadness
## 6390 husbandry positive
## 6391 husbandry trust
## 6392 hush positive
## 6393 hustler negative
## 6394 hut positive
## 6395 hut sadness
## 6396 hydra fear
## 6397 hydra negative
## 6398 hydrocephalus disgust
## 6399 hydrocephalus fear
## 6400 hydrocephalus negative
## 6401 hydrocephalus sadness
## 6402 hygienic positive
## 6403 hymn anticipation
## 6404 hymn joy
## 6405 hymn positive
## 6406 hymn sadness
## 6407 hymn trust
## 6408 hype anticipation
## 6409 hype negative
## 6410 hyperbole negative
## 6411 hypertrophy disgust
## 6412 hypertrophy fear
## 6413 hypertrophy surprise
## 6414 hypocrisy negative
## 6415 hypocrite disgust
## 6416 hypocrite negative
## 6417 hypocritical disgust
## 6418 hypocritical negative
## 6419 hypothesis anticipation
## 6420 hypothesis surprise
## 6421 hysteria fear
## 6422 hysteria negative
## 6423 hysterical anger
## 6424 hysterical fear
## 6425 hysterical negative
## 6426 idealism positive
## 6427 idiocy anger
## 6428 idiocy disgust
## 6429 idiocy negative
## 6430 idiocy sadness
## 6431 idiot disgust
## 6432 idiot negative
## 6433 idiotic anger
## 6434 idiotic disgust
## 6435 idiotic negative
## 6436 idler negative
## 6437 idol positive
## 6438 idolatry disgust
## 6439 idolatry fear
## 6440 idolatry negative
## 6441 ignorance negative
## 6442 ignorant disgust
## 6443 ignorant negative
## 6444 ignore negative
## 6445 ill anger
## 6446 ill disgust
## 6447 ill fear
## 6448 ill negative
## 6449 ill sadness
## 6450 illegal anger
## 6451 illegal disgust
## 6452 illegal fear
## 6453 illegal negative
## 6454 illegal sadness
## 6455 illegality anger
## 6456 illegality disgust
## 6457 illegality fear
## 6458 illegality negative
## 6459 illegible negative
## 6460 illegitimate anger
## 6461 illegitimate disgust
## 6462 illegitimate fear
## 6463 illegitimate negative
## 6464 illegitimate sadness
## 6465 illegitimate surprise
## 6466 illicit anger
## 6467 illicit disgust
## 6468 illicit fear
## 6469 illicit negative
## 6470 illiterate disgust
## 6471 illiterate negative
## 6472 illness fear
## 6473 illness negative
## 6474 illness sadness
## 6475 illogical negative
## 6476 illuminate anticipation
## 6477 illuminate joy
## 6478 illuminate positive
## 6479 illuminate surprise
## 6480 illumination joy
## 6481 illumination positive
## 6482 illumination surprise
## 6483 illumination trust
## 6484 illusion negative
## 6485 illusion surprise
## 6486 illustrate positive
## 6487 illustrious positive
## 6488 imaginative positive
## 6489 imitated negative
## 6490 imitation negative
## 6491 immaculate joy
## 6492 immaculate positive
## 6493 immaculate trust
## 6494 immature anticipation
## 6495 immature negative
## 6496 immaturity anger
## 6497 immaturity anticipation
## 6498 immaturity negative
## 6499 immediacy surprise
## 6500 immediately anticipation
## 6501 immediately negative
## 6502 immediately positive
## 6503 immense positive
## 6504 immerse anticipation
## 6505 immerse fear
## 6506 immerse joy
## 6507 immerse positive
## 6508 immerse surprise
## 6509 immerse trust
## 6510 immigrant fear
## 6511 imminent anticipation
## 6512 imminent fear
## 6513 immoral anger
## 6514 immoral disgust
## 6515 immoral fear
## 6516 immoral negative
## 6517 immoral sadness
## 6518 immorality anger
## 6519 immorality disgust
## 6520 immorality negative
## 6521 immortal positive
## 6522 immortality anticipation
## 6523 immovable negative
## 6524 immovable positive
## 6525 immovable trust
## 6526 immunization trust
## 6527 impair negative
## 6528 impairment negative
## 6529 impart positive
## 6530 impart trust
## 6531 impartial positive
## 6532 impartial trust
## 6533 impartiality positive
## 6534 impartiality trust
## 6535 impassable negative
## 6536 impatience negative
## 6537 impatient anticipation
## 6538 impatient negative
## 6539 impeach disgust
## 6540 impeach fear
## 6541 impeach negative
## 6542 impeachment negative
## 6543 impeccable positive
## 6544 impeccable trust
## 6545 impede negative
## 6546 impending anticipation
## 6547 impending fear
## 6548 impenetrable trust
## 6549 imperfection negative
## 6550 imperfectly negative
## 6551 impermeable anger
## 6552 impermeable fear
## 6553 impersonate negative
## 6554 impersonation negative
## 6555 impervious positive
## 6556 implacable negative
## 6557 implicate anger
## 6558 implicate negative
## 6559 impolite disgust
## 6560 impolite negative
## 6561 importance anticipation
## 6562 importance positive
## 6563 important positive
## 6564 important trust
## 6565 imposition negative
## 6566 impossible negative
## 6567 impossible sadness
## 6568 impotence anger
## 6569 impotence fear
## 6570 impotence negative
## 6571 impotence sadness
## 6572 impotent negative
## 6573 impound negative
## 6574 impracticable negative
## 6575 impress positive
## 6576 impression positive
## 6577 impressionable trust
## 6578 imprison negative
## 6579 imprisoned anger
## 6580 imprisoned disgust
## 6581 imprisoned fear
## 6582 imprisoned negative
## 6583 imprisoned sadness
## 6584 imprisonment anger
## 6585 imprisonment disgust
## 6586 imprisonment fear
## 6587 imprisonment negative
## 6588 imprisonment sadness
## 6589 impropriety negative
## 6590 improve anticipation
## 6591 improve joy
## 6592 improve positive
## 6593 improve trust
## 6594 improved positive
## 6595 improvement joy
## 6596 improvement positive
## 6597 improvement trust
## 6598 improving positive
## 6599 improvisation surprise
## 6600 improvise anticipation
## 6601 improvise positive
## 6602 improvise surprise
## 6603 imprudent negative
## 6604 imprudent sadness
## 6605 impure disgust
## 6606 impure negative
## 6607 impurity disgust
## 6608 impurity negative
## 6609 imputation negative
## 6610 inability negative
## 6611 inability sadness
## 6612 inaccessible negative
## 6613 inaccurate negative
## 6614 inaction negative
## 6615 inactivity negative
## 6616 inadequacy negative
## 6617 inadequate negative
## 6618 inadequate sadness
## 6619 inadmissible anger
## 6620 inadmissible disgust
## 6621 inadmissible negative
## 6622 inalienable positive
## 6623 inane negative
## 6624 inapplicable negative
## 6625 inappropriate anger
## 6626 inappropriate disgust
## 6627 inappropriate negative
## 6628 inappropriate sadness
## 6629 inattention anger
## 6630 inattention negative
## 6631 inaudible negative
## 6632 inaugural anticipation
## 6633 inauguration anticipation
## 6634 inauguration joy
## 6635 inauguration positive
## 6636 inauguration trust
## 6637 incalculable negative
## 6638 incapacity negative
## 6639 incarceration anger
## 6640 incarceration disgust
## 6641 incarceration fear
## 6642 incarceration negative
## 6643 incarceration sadness
## 6644 incase anger
## 6645 incase disgust
## 6646 incase fear
## 6647 incase negative
## 6648 incase sadness
## 6649 incendiary anger
## 6650 incendiary fear
## 6651 incendiary negative
## 6652 incendiary surprise
## 6653 incense anger
## 6654 incense negative
## 6655 incessant negative
## 6656 incest anger
## 6657 incest disgust
## 6658 incest fear
## 6659 incest negative
## 6660 incest sadness
## 6661 incestuous disgust
## 6662 incestuous negative
## 6663 incident surprise
## 6664 incineration negative
## 6665 incisive positive
## 6666 incite anger
## 6667 incite anticipation
## 6668 incite fear
## 6669 incite negative
## 6670 inclement negative
## 6671 incline trust
## 6672 include positive
## 6673 included positive
## 6674 including positive
## 6675 inclusion trust
## 6676 inclusive positive
## 6677 incoherent negative
## 6678 income anticipation
## 6679 income joy
## 6680 income negative
## 6681 income positive
## 6682 income sadness
## 6683 income trust
## 6684 incompatible anger
## 6685 incompatible disgust
## 6686 incompatible negative
## 6687 incompatible sadness
## 6688 incompetence negative
## 6689 incompetent anger
## 6690 incompetent negative
## 6691 incompetent sadness
## 6692 incompleteness negative
## 6693 incomprehensible negative
## 6694 incongruous anger
## 6695 incongruous negative
## 6696 inconsequential negative
## 6697 inconsequential sadness
## 6698 inconsiderate anger
## 6699 inconsiderate disgust
## 6700 inconsiderate negative
## 6701 inconsiderate sadness
## 6702 inconsistency negative
## 6703 incontinence surprise
## 6704 inconvenient anger
## 6705 inconvenient disgust
## 6706 inconvenient negative
## 6707 inconvenient sadness
## 6708 incorrect negative
## 6709 increase positive
## 6710 incredulous anger
## 6711 incredulous disgust
## 6712 incredulous negative
## 6713 incrimination fear
## 6714 incrimination negative
## 6715 incrimination sadness
## 6716 incubus disgust
## 6717 incubus fear
## 6718 incubus negative
## 6719 incur negative
## 6720 incurable anger
## 6721 incurable disgust
## 6722 incurable fear
## 6723 incurable negative
## 6724 incurable sadness
## 6725 incursion fear
## 6726 incursion negative
## 6727 indecency anger
## 6728 indecency disgust
## 6729 indecent disgust
## 6730 indecent negative
## 6731 indecision negative
## 6732 indecisive negative
## 6733 indefensible fear
## 6734 indefensible negative
## 6735 indelible positive
## 6736 indelible trust
## 6737 indemnify negative
## 6738 indemnity positive
## 6739 indemnity trust
## 6740 indent trust
## 6741 indenture anger
## 6742 indenture negative
## 6743 independence anticipation
## 6744 independence joy
## 6745 independence positive
## 6746 independence surprise
## 6747 independence trust
## 6748 indestructible positive
## 6749 indestructible trust
## 6750 indeterminate negative
## 6751 indict anger
## 6752 indict fear
## 6753 indict negative
## 6754 indictment fear
## 6755 indictment negative
## 6756 indifference anger
## 6757 indifference disgust
## 6758 indifference fear
## 6759 indifference negative
## 6760 indifference sadness
## 6761 indigent negative
## 6762 indigent sadness
## 6763 indignant anger
## 6764 indignant negative
## 6765 indignation anger
## 6766 indignation disgust
## 6767 indignation negative
## 6768 indistinct negative
## 6769 individuality positive
## 6770 indivisible trust
## 6771 indoctrination anger
## 6772 indoctrination fear
## 6773 indoctrination negative
## 6774 indolent negative
## 6775 indomitable fear
## 6776 indomitable positive
## 6777 ineffable positive
## 6778 ineffective negative
## 6779 ineffectual disgust
## 6780 ineffectual negative
## 6781 inefficiency disgust
## 6782 inefficiency negative
## 6783 inefficiency sadness
## 6784 inefficient negative
## 6785 inefficient sadness
## 6786 inept anger
## 6787 inept disgust
## 6788 inept negative
## 6789 ineptitude disgust
## 6790 ineptitude fear
## 6791 ineptitude negative
## 6792 ineptitude sadness
## 6793 inequality anger
## 6794 inequality fear
## 6795 inequality negative
## 6796 inequality sadness
## 6797 inequitable negative
## 6798 inert negative
## 6799 inexcusable anger
## 6800 inexcusable disgust
## 6801 inexcusable negative
## 6802 inexcusable sadness
## 6803 inexpensive positive
## 6804 inexperience negative
## 6805 inexperienced negative
## 6806 inexplicable negative
## 6807 inexplicable surprise
## 6808 infallibility trust
## 6809 infallible positive
## 6810 infamous anger
## 6811 infamous disgust
## 6812 infamous fear
## 6813 infamous negative
## 6814 infamy negative
## 6815 infamy sadness
## 6816 infant anticipation
## 6817 infant fear
## 6818 infant joy
## 6819 infant positive
## 6820 infant surprise
## 6821 infanticide anger
## 6822 infanticide anticipation
## 6823 infanticide disgust
## 6824 infanticide fear
## 6825 infanticide negative
## 6826 infanticide sadness
## 6827 infantile anger
## 6828 infantile disgust
## 6829 infantile negative
## 6830 infarct fear
## 6831 infarct negative
## 6832 infarct surprise
## 6833 infect disgust
## 6834 infect negative
## 6835 infection fear
## 6836 infection negative
## 6837 infectious disgust
## 6838 infectious fear
## 6839 infectious negative
## 6840 infectious sadness
## 6841 inferior negative
## 6842 inferior sadness
## 6843 inferiority negative
## 6844 inferno anger
## 6845 inferno fear
## 6846 inferno negative
## 6847 infertility negative
## 6848 infertility sadness
## 6849 infestation disgust
## 6850 infestation fear
## 6851 infestation negative
## 6852 infidel anger
## 6853 infidel disgust
## 6854 infidel fear
## 6855 infidel negative
## 6856 infidelity anger
## 6857 infidelity disgust
## 6858 infidelity fear
## 6859 infidelity negative
## 6860 infidelity sadness
## 6861 infiltration negative
## 6862 infiltration positive
## 6863 infinite positive
## 6864 infinity anticipation
## 6865 infinity joy
## 6866 infinity positive
## 6867 infinity trust
## 6868 infirm negative
## 6869 infirmity fear
## 6870 infirmity negative
## 6871 inflammation negative
## 6872 inflated negative
## 6873 inflation fear
## 6874 inflation negative
## 6875 inflict anger
## 6876 inflict fear
## 6877 inflict negative
## 6878 inflict sadness
## 6879 infliction fear
## 6880 infliction negative
## 6881 infliction sadness
## 6882 influence negative
## 6883 influence positive
## 6884 influential positive
## 6885 influential trust
## 6886 influenza negative
## 6887 inform trust
## 6888 information positive
## 6889 informer negative
## 6890 infraction anger
## 6891 infraction negative
## 6892 infrequent surprise
## 6893 infrequently negative
## 6894 infringement negative
## 6895 ingenious positive
## 6896 inheritance anticipation
## 6897 inheritance joy
## 6898 inheritance positive
## 6899 inheritance surprise
## 6900 inheritance trust
## 6901 inhibit anger
## 6902 inhibit disgust
## 6903 inhibit negative
## 6904 inhibit sadness
## 6905 inhospitable negative
## 6906 inhospitable sadness
## 6907 inhuman anger
## 6908 inhuman disgust
## 6909 inhuman fear
## 6910 inhuman negative
## 6911 inhuman sadness
## 6912 inhumanity negative
## 6913 inhumanity sadness
## 6914 inimical anger
## 6915 inimical negative
## 6916 inimical sadness
## 6917 inimitable positive
## 6918 inimitable trust
## 6919 iniquity disgust
## 6920 iniquity negative
## 6921 injection fear
## 6922 injunction negative
## 6923 injure anger
## 6924 injure fear
## 6925 injure negative
## 6926 injure sadness
## 6927 injured fear
## 6928 injured negative
## 6929 injured sadness
## 6930 injurious anger
## 6931 injurious fear
## 6932 injurious negative
## 6933 injurious sadness
## 6934 injury anger
## 6935 injury fear
## 6936 injury negative
## 6937 injury sadness
## 6938 injustice anger
## 6939 injustice negative
## 6940 inmate disgust
## 6941 inmate fear
## 6942 inmate negative
## 6943 innocence positive
## 6944 innocent positive
## 6945 innocent trust
## 6946 innocently positive
## 6947 innocuous positive
## 6948 innovate positive
## 6949 innovation positive
## 6950 inoculation anticipation
## 6951 inoculation trust
## 6952 inoperative anger
## 6953 inoperative negative
## 6954 inquirer positive
## 6955 inquiry anticipation
## 6956 inquiry positive
## 6957 inquisitive positive
## 6958 insane anger
## 6959 insane fear
## 6960 insane negative
## 6961 insanity anger
## 6962 insanity disgust
## 6963 insanity fear
## 6964 insanity negative
## 6965 insanity sadness
## 6966 insecure anger
## 6967 insecure fear
## 6968 insecure negative
## 6969 insecure sadness
## 6970 insecurity fear
## 6971 insecurity negative
## 6972 inseparable joy
## 6973 inseparable positive
## 6974 inseparable trust
## 6975 insidious anger
## 6976 insidious disgust
## 6977 insidious fear
## 6978 insidious negative
## 6979 insignia positive
## 6980 insignificance negative
## 6981 insignificant anger
## 6982 insignificant negative
## 6983 insignificant sadness
## 6984 insipid negative
## 6985 insolent negative
## 6986 insolvency fear
## 6987 insolvency negative
## 6988 insolvency sadness
## 6989 insolvency surprise
## 6990 insolvent fear
## 6991 insolvent negative
## 6992 insolvent sadness
## 6993 insolvent trust
## 6994 inspector positive
## 6995 inspiration anticipation
## 6996 inspiration joy
## 6997 inspiration positive
## 6998 inspire anticipation
## 6999 inspire joy
## 7000 inspire positive
## 7001 inspire trust
## 7002 inspired joy
## 7003 inspired positive
## 7004 inspired surprise
## 7005 inspired trust
## 7006 instability disgust
## 7007 instability fear
## 7008 instability negative
## 7009 install anticipation
## 7010 instigate negative
## 7011 instigation negative
## 7012 instinctive anger
## 7013 instinctive disgust
## 7014 instinctive fear
## 7015 instinctive positive
## 7016 institute trust
## 7017 instruct positive
## 7018 instruct trust
## 7019 instruction positive
## 7020 instruction trust
## 7021 instructions anticipation
## 7022 instructions trust
## 7023 instructor anticipation
## 7024 instructor positive
## 7025 instructor trust
## 7026 instrumental positive
## 7027 insufficiency anger
## 7028 insufficiency negative
## 7029 insufficient negative
## 7030 insufficiently negative
## 7031 insulation trust
## 7032 insult anger
## 7033 insult disgust
## 7034 insult negative
## 7035 insult sadness
## 7036 insult surprise
## 7037 insulting anger
## 7038 insulting disgust
## 7039 insulting fear
## 7040 insulting negative
## 7041 insulting sadness
## 7042 insure positive
## 7043 insure trust
## 7044 insurgent negative
## 7045 insurmountable fear
## 7046 insurmountable negative
## 7047 insurmountable sadness
## 7048 insurrection anger
## 7049 insurrection negative
## 7050 intact positive
## 7051 intact trust
## 7052 integrity positive
## 7053 integrity trust
## 7054 intellect positive
## 7055 intellectual positive
## 7056 intelligence fear
## 7057 intelligence joy
## 7058 intelligence positive
## 7059 intelligence trust
## 7060 intelligent positive
## 7061 intelligent trust
## 7062 intend trust
## 7063 intended anticipation
## 7064 intended positive
## 7065 intense anger
## 7066 intense disgust
## 7067 intense fear
## 7068 intense joy
## 7069 intense negative
## 7070 intense positive
## 7071 intense surprise
## 7072 intense trust
## 7073 inter negative
## 7074 inter sadness
## 7075 intercede fear
## 7076 intercede sadness
## 7077 intercession trust
## 7078 intercourse positive
## 7079 interdiction negative
## 7080 interest positive
## 7081 interested disgust
## 7082 interested positive
## 7083 interested sadness
## 7084 interesting positive
## 7085 interference negative
## 7086 interim anticipation
## 7087 interior disgust
## 7088 interior positive
## 7089 interior trust
## 7090 interlocutory positive
## 7091 interlude positive
## 7092 interment negative
## 7093 interment sadness
## 7094 interminable anger
## 7095 interminable anticipation
## 7096 interminable negative
## 7097 interminable positive
## 7098 intermission anticipation
## 7099 interrogate fear
## 7100 interrogation fear
## 7101 interrupt anger
## 7102 interrupt negative
## 7103 interrupt surprise
## 7104 interrupted negative
## 7105 interrupted sadness
## 7106 intervention negative
## 7107 intervention positive
## 7108 intervention sadness
## 7109 interviewer fear
## 7110 intestate negative
## 7111 intestinal disgust
## 7112 intimate anticipation
## 7113 intimate joy
## 7114 intimate positive
## 7115 intimate trust
## 7116 intimately anticipation
## 7117 intimately fear
## 7118 intimately joy
## 7119 intimidate fear
## 7120 intimidate negative
## 7121 intimidation anger
## 7122 intimidation fear
## 7123 intimidation negative
## 7124 intolerable anger
## 7125 intolerable negative
## 7126 intolerance anger
## 7127 intolerance disgust
## 7128 intolerance fear
## 7129 intolerance negative
## 7130 intolerant anger
## 7131 intolerant disgust
## 7132 intolerant fear
## 7133 intolerant negative
## 7134 intolerant sadness
## 7135 intonation positive
## 7136 intoxicated disgust
## 7137 intoxicated negative
## 7138 intractable anger
## 7139 intractable negative
## 7140 intrepid positive
## 7141 intrigue anticipation
## 7142 intrigue fear
## 7143 intrigue negative
## 7144 intrigue surprise
## 7145 intruder anger
## 7146 intruder fear
## 7147 intruder negative
## 7148 intruder surprise
## 7149 intrusion fear
## 7150 intrusion negative
## 7151 intrusive anger
## 7152 intrusive disgust
## 7153 intrusive fear
## 7154 intrusive negative
## 7155 intrusive surprise
## 7156 intuition positive
## 7157 intuition trust
## 7158 intuitive positive
## 7159 intuitively anticipation
## 7160 invade anger
## 7161 invade fear
## 7162 invade negative
## 7163 invade sadness
## 7164 invade surprise
## 7165 invader anger
## 7166 invader fear
## 7167 invader negative
## 7168 invader sadness
## 7169 invalid sadness
## 7170 invalidate negative
## 7171 invalidation negative
## 7172 invalidity negative
## 7173 invariably positive
## 7174 invasion anger
## 7175 invasion negative
## 7176 inventive positive
## 7177 inventor positive
## 7178 investigate positive
## 7179 investigation anticipation
## 7180 invigorate positive
## 7181 invitation anticipation
## 7182 invitation positive
## 7183 invite anticipation
## 7184 invite joy
## 7185 invite positive
## 7186 invite surprise
## 7187 invite trust
## 7188 inviting anticipation
## 7189 inviting joy
## 7190 inviting positive
## 7191 inviting surprise
## 7192 inviting trust
## 7193 invocation anticipation
## 7194 invocation trust
## 7195 invoke anticipation
## 7196 involuntary negative
## 7197 involution anger
## 7198 involution negative
## 7199 involvement anger
## 7200 irate anger
## 7201 irate negative
## 7202 ire anger
## 7203 ire negative
## 7204 iris fear
## 7205 iron positive
## 7206 iron trust
## 7207 irons negative
## 7208 irrational disgust
## 7209 irrational fear
## 7210 irrational negative
## 7211 irrationality negative
## 7212 irreconcilable anger
## 7213 irreconcilable fear
## 7214 irreconcilable negative
## 7215 irreconcilable sadness
## 7216 irreducible positive
## 7217 irrefutable positive
## 7218 irrefutable trust
## 7219 irregular negative
## 7220 irregularity negative
## 7221 irrelevant negative
## 7222 irreparable fear
## 7223 irreparable negative
## 7224 irreparable sadness
## 7225 irresponsible negative
## 7226 irreverent negative
## 7227 irrevocable negative
## 7228 irritability anger
## 7229 irritability negative
## 7230 irritable anger
## 7231 irritable negative
## 7232 irritating anger
## 7233 irritating disgust
## 7234 irritating negative
## 7235 irritation anger
## 7236 irritation disgust
## 7237 irritation negative
## 7238 irritation sadness
## 7239 isolate sadness
## 7240 isolated fear
## 7241 isolated negative
## 7242 isolated sadness
## 7243 isolation negative
## 7244 isolation sadness
## 7245 jab anger
## 7246 jabber negative
## 7247 jackpot anticipation
## 7248 jackpot joy
## 7249 jackpot positive
## 7250 jackpot surprise
## 7251 jail fear
## 7252 jail negative
## 7253 jail sadness
## 7254 jam positive
## 7255 janitor disgust
## 7256 jargon negative
## 7257 jarring fear
## 7258 jarring negative
## 7259 jarring sadness
## 7260 jaundice fear
## 7261 jaundice negative
## 7262 jaws fear
## 7263 jealous anger
## 7264 jealous disgust
## 7265 jealous negative
## 7266 jealousy anger
## 7267 jealousy disgust
## 7268 jealousy fear
## 7269 jealousy negative
## 7270 jealousy sadness
## 7271 jeopardize anger
## 7272 jeopardize fear
## 7273 jeopardize negative
## 7274 jeopardy anticipation
## 7275 jeopardy fear
## 7276 jeopardy negative
## 7277 jerk anger
## 7278 jerk surprise
## 7279 jest joy
## 7280 jest positive
## 7281 jest surprise
## 7282 job positive
## 7283 john disgust
## 7284 john negative
## 7285 join positive
## 7286 joined positive
## 7287 joke negative
## 7288 joker joy
## 7289 joker positive
## 7290 joker surprise
## 7291 joking positive
## 7292 jolt surprise
## 7293 jornada negative
## 7294 journalism trust
## 7295 journalist positive
## 7296 journey anticipation
## 7297 journey fear
## 7298 journey joy
## 7299 journey positive
## 7300 journeyman trust
## 7301 jovial joy
## 7302 jovial positive
## 7303 joy joy
## 7304 joy positive
## 7305 joyful joy
## 7306 joyful positive
## 7307 joyful trust
## 7308 joyous joy
## 7309 joyous positive
## 7310 jubilant joy
## 7311 jubilant positive
## 7312 jubilant surprise
## 7313 jubilant trust
## 7314 jubilee joy
## 7315 jubilee positive
## 7316 jubilee surprise
## 7317 judgment surprise
## 7318 judicial anticipation
## 7319 judicial positive
## 7320 judicial trust
## 7321 judiciary anticipation
## 7322 judiciary trust
## 7323 judicious positive
## 7324 judicious trust
## 7325 jumble negative
## 7326 jump joy
## 7327 jump positive
## 7328 jungle fear
## 7329 junk negative
## 7330 junta negative
## 7331 jurisprudence sadness
## 7332 jurist trust
## 7333 jury trust
## 7334 justice positive
## 7335 justice trust
## 7336 justifiable positive
## 7337 justifiable trust
## 7338 justification positive
## 7339 juvenile negative
## 7340 keepsake positive
## 7341 ken positive
## 7342 kennel sadness
## 7343 kern negative
## 7344 kerosene fear
## 7345 keynote positive
## 7346 keystone positive
## 7347 khan fear
## 7348 khan trust
## 7349 kick anger
## 7350 kick negative
## 7351 kicking anger
## 7352 kidnap anger
## 7353 kidnap fear
## 7354 kidnap negative
## 7355 kidnap sadness
## 7356 kidnap surprise
## 7357 kill fear
## 7358 kill negative
## 7359 kill sadness
## 7360 killing anger
## 7361 killing fear
## 7362 killing negative
## 7363 killing sadness
## 7364 kind joy
## 7365 kind positive
## 7366 kind trust
## 7367 kindness positive
## 7368 kindred anticipation
## 7369 kindred joy
## 7370 kindred positive
## 7371 kindred trust
## 7372 king positive
## 7373 kiss anticipation
## 7374 kiss joy
## 7375 kiss positive
## 7376 kiss surprise
## 7377 kite disgust
## 7378 kite negative
## 7379 kitten joy
## 7380 kitten positive
## 7381 kitten trust
## 7382 knack positive
## 7383 knell fear
## 7384 knell negative
## 7385 knell sadness
## 7386 knickers trust
## 7387 knight positive
## 7388 knotted negative
## 7389 knowing positive
## 7390 knowledge positive
## 7391 kudos joy
## 7392 kudos positive
## 7393 label trust
## 7394 labor anticipation
## 7395 labor joy
## 7396 labor positive
## 7397 labor surprise
## 7398 labor trust
## 7399 labored negative
## 7400 labored sadness
## 7401 laborious negative
## 7402 labyrinth anticipation
## 7403 labyrinth negative
## 7404 lace anger
## 7405 lace fear
## 7406 lace negative
## 7407 lace positive
## 7408 lace sadness
## 7409 lace trust
## 7410 lack negative
## 7411 lacking negative
## 7412 lackluster negative
## 7413 laden negative
## 7414 lag negative
## 7415 lagging anger
## 7416 lagging anticipation
## 7417 lagging disgust
## 7418 lagging negative
## 7419 lagging sadness
## 7420 lair negative
## 7421 lamb joy
## 7422 lamb positive
## 7423 lamb trust
## 7424 lament disgust
## 7425 lament fear
## 7426 lament negative
## 7427 lament sadness
## 7428 lamenting sadness
## 7429 land positive
## 7430 landed positive
## 7431 landmark trust
## 7432 landslide fear
## 7433 landslide negative
## 7434 landslide sadness
## 7435 languid negative
## 7436 languish negative
## 7437 languishing fear
## 7438 languishing negative
## 7439 languishing sadness
## 7440 lapse negative
## 7441 larceny disgust
## 7442 larceny negative
## 7443 larger disgust
## 7444 larger surprise
## 7445 larger trust
## 7446 laser positive
## 7447 laser trust
## 7448 lash anger
## 7449 lash fear
## 7450 lash negative
## 7451 late negative
## 7452 late sadness
## 7453 lateness negative
## 7454 latent anger
## 7455 latent anticipation
## 7456 latent disgust
## 7457 latent negative
## 7458 latent surprise
## 7459 latrines disgust
## 7460 latrines negative
## 7461 laudable positive
## 7462 laugh joy
## 7463 laugh positive
## 7464 laugh surprise
## 7465 laughable disgust
## 7466 laughable negative
## 7467 laughing joy
## 7468 laughing positive
## 7469 laughter anticipation
## 7470 laughter joy
## 7471 laughter positive
## 7472 laughter surprise
## 7473 launch anticipation
## 7474 launch positive
## 7475 laureate positive
## 7476 laureate trust
## 7477 laurel positive
## 7478 laurels joy
## 7479 laurels positive
## 7480 lava anger
## 7481 lava fear
## 7482 lava negative
## 7483 lavatory disgust
## 7484 lavish positive
## 7485 law trust
## 7486 lawful positive
## 7487 lawful trust
## 7488 lawlessness anger
## 7489 lawlessness fear
## 7490 lawlessness negative
## 7491 lawsuit anger
## 7492 lawsuit disgust
## 7493 lawsuit fear
## 7494 lawsuit negative
## 7495 lawsuit sadness
## 7496 lawsuit surprise
## 7497 lawyer anger
## 7498 lawyer disgust
## 7499 lawyer fear
## 7500 lawyer negative
## 7501 lax negative
## 7502 lax sadness
## 7503 laxative disgust
## 7504 laxative fear
## 7505 laxative negative
## 7506 lazy negative
## 7507 lead positive
## 7508 leader positive
## 7509 leader trust
## 7510 leading trust
## 7511 league positive
## 7512 leak negative
## 7513 leakage negative
## 7514 leaky negative
## 7515 leaning trust
## 7516 learn positive
## 7517 learning positive
## 7518 leave negative
## 7519 leave sadness
## 7520 leave surprise
## 7521 lecturer positive
## 7522 leech negative
## 7523 leeches disgust
## 7524 leeches fear
## 7525 leeches negative
## 7526 leer disgust
## 7527 leer negative
## 7528 leery surprise
## 7529 leeway positive
## 7530 legal positive
## 7531 legal trust
## 7532 legalized anger
## 7533 legalized fear
## 7534 legalized joy
## 7535 legalized positive
## 7536 legalized trust
## 7537 legendary positive
## 7538 legibility positive
## 7539 legible positive
## 7540 legislator trust
## 7541 legislature trust
## 7542 legitimacy trust
## 7543 leisure anticipation
## 7544 leisure joy
## 7545 leisure positive
## 7546 leisure surprise
## 7547 leisure trust
## 7548 leisurely positive
## 7549 lemma positive
## 7550 lemon disgust
## 7551 lemon negative
## 7552 lender trust
## 7553 lenient positive
## 7554 leprosy disgust
## 7555 leprosy fear
## 7556 leprosy negative
## 7557 leprosy sadness
## 7558 lesbian disgust
## 7559 lesbian negative
## 7560 lesbian sadness
## 7561 lessen anticipation
## 7562 lessen negative
## 7563 lesser disgust
## 7564 lesser negative
## 7565 lesson anticipation
## 7566 lesson positive
## 7567 lesson trust
## 7568 lethal disgust
## 7569 lethal fear
## 7570 lethal negative
## 7571 lethal sadness
## 7572 lethargy negative
## 7573 lethargy sadness
## 7574 letter anticipation
## 7575 lettered anticipation
## 7576 lettered positive
## 7577 lettered trust
## 7578 leukemia anger
## 7579 leukemia fear
## 7580 leukemia negative
## 7581 leukemia sadness
## 7582 levee trust
## 7583 level positive
## 7584 level trust
## 7585 leverage positive
## 7586 levy negative
## 7587 lewd disgust
## 7588 lewd negative
## 7589 liaison negative
## 7590 liar disgust
## 7591 liar negative
## 7592 libel anger
## 7593 libel fear
## 7594 libel negative
## 7595 libel trust
## 7596 liberal negative
## 7597 liberal positive
## 7598 liberate anger
## 7599 liberate anticipation
## 7600 liberate joy
## 7601 liberate positive
## 7602 liberate surprise
## 7603 liberate trust
## 7604 liberation anticipation
## 7605 liberation joy
## 7606 liberation positive
## 7607 liberation surprise
## 7608 liberty anticipation
## 7609 liberty joy
## 7610 liberty positive
## 7611 liberty surprise
## 7612 liberty trust
## 7613 library positive
## 7614 lick disgust
## 7615 lick negative
## 7616 lie anger
## 7617 lie disgust
## 7618 lie negative
## 7619 lie sadness
## 7620 lieutenant trust
## 7621 lifeblood positive
## 7622 lifeless fear
## 7623 lifeless negative
## 7624 lifeless sadness
## 7625 lighthouse positive
## 7626 lightning anger
## 7627 lightning fear
## 7628 lightning surprise
## 7629 liking joy
## 7630 liking positive
## 7631 liking trust
## 7632 limited anger
## 7633 limited negative
## 7634 limited sadness
## 7635 limp negative
## 7636 lines fear
## 7637 linger anticipation
## 7638 linguist positive
## 7639 linguist trust
## 7640 lint negative
## 7641 lion fear
## 7642 lion positive
## 7643 liquor anger
## 7644 liquor joy
## 7645 liquor negative
## 7646 liquor sadness
## 7647 listless negative
## 7648 listless sadness
## 7649 lithe positive
## 7650 litigant negative
## 7651 litigate anger
## 7652 litigate anticipation
## 7653 litigate disgust
## 7654 litigate fear
## 7655 litigate negative
## 7656 litigate sadness
## 7657 litigation negative
## 7658 litigious anger
## 7659 litigious disgust
## 7660 litigious negative
## 7661 litter negative
## 7662 livid anger
## 7663 livid disgust
## 7664 livid negative
## 7665 loaf negative
## 7666 loafer negative
## 7667 loath anger
## 7668 loath negative
## 7669 loathe anger
## 7670 loathe disgust
## 7671 loathe negative
## 7672 loathing disgust
## 7673 loathing negative
## 7674 loathsome anger
## 7675 loathsome disgust
## 7676 loathsome negative
## 7677 lobbyist negative
## 7678 localize anticipation
## 7679 lockup fear
## 7680 lockup negative
## 7681 lockup sadness
## 7682 locust fear
## 7683 locust negative
## 7684 lodging trust
## 7685 lofty negative
## 7686 logical positive
## 7687 lone sadness
## 7688 loneliness fear
## 7689 loneliness negative
## 7690 loneliness sadness
## 7691 lonely anger
## 7692 lonely disgust
## 7693 lonely fear
## 7694 lonely negative
## 7695 lonely sadness
## 7696 lonesome negative
## 7697 lonesome sadness
## 7698 long anticipation
## 7699 longevity positive
## 7700 longing anticipation
## 7701 longing sadness
## 7702 loo disgust
## 7703 loo negative
## 7704 loom anticipation
## 7705 loom fear
## 7706 loom negative
## 7707 loon disgust
## 7708 loon negative
## 7709 loony negative
## 7710 loot negative
## 7711 lord disgust
## 7712 lord negative
## 7713 lord positive
## 7714 lord trust
## 7715 lordship positive
## 7716 lose anger
## 7717 lose disgust
## 7718 lose fear
## 7719 lose negative
## 7720 lose sadness
## 7721 lose surprise
## 7722 losing anger
## 7723 losing negative
## 7724 losing sadness
## 7725 loss anger
## 7726 loss fear
## 7727 loss negative
## 7728 loss sadness
## 7729 lost negative
## 7730 lost sadness
## 7731 lottery anticipation
## 7732 loudness anger
## 7733 loudness negative
## 7734 lounge negative
## 7735 louse disgust
## 7736 louse negative
## 7737 lovable joy
## 7738 lovable positive
## 7739 lovable trust
## 7740 love joy
## 7741 love positive
## 7742 lovely anticipation
## 7743 lovely joy
## 7744 lovely positive
## 7745 lovely sadness
## 7746 lovely surprise
## 7747 lovely trust
## 7748 lovemaking joy
## 7749 lovemaking positive
## 7750 lovemaking trust
## 7751 lover anticipation
## 7752 lover joy
## 7753 lover positive
## 7754 lover trust
## 7755 loving joy
## 7756 loving positive
## 7757 loving trust
## 7758 lower negative
## 7759 lower sadness
## 7760 lowering negative
## 7761 lowest negative
## 7762 lowest sadness
## 7763 lowlands negative
## 7764 lowly negative
## 7765 lowly sadness
## 7766 loyal fear
## 7767 loyal joy
## 7768 loyal positive
## 7769 loyal surprise
## 7770 loyal trust
## 7771 loyalty positive
## 7772 loyalty trust
## 7773 luck anticipation
## 7774 luck joy
## 7775 luck positive
## 7776 luck surprise
## 7777 lucky joy
## 7778 lucky positive
## 7779 lucky surprise
## 7780 ludicrous negative
## 7781 lull anticipation
## 7782 lumbering negative
## 7783 lump negative
## 7784 lumpy disgust
## 7785 lumpy negative
## 7786 lunacy anger
## 7787 lunacy disgust
## 7788 lunacy fear
## 7789 lunacy negative
## 7790 lunacy sadness
## 7791 lunatic anger
## 7792 lunatic disgust
## 7793 lunatic fear
## 7794 lunatic negative
## 7795 lunge surprise
## 7796 lurch negative
## 7797 lure negative
## 7798 lurid disgust
## 7799 lurid negative
## 7800 lurk negative
## 7801 lurking negative
## 7802 luscious anticipation
## 7803 luscious joy
## 7804 luscious positive
## 7805 lush disgust
## 7806 lush negative
## 7807 lush sadness
## 7808 lust anticipation
## 7809 lust negative
## 7810 luster joy
## 7811 luster positive
## 7812 lustful negative
## 7813 lustrous positive
## 7814 lusty disgust
## 7815 luxuriant positive
## 7816 luxurious joy
## 7817 luxurious positive
## 7818 luxury joy
## 7819 luxury positive
## 7820 lying anger
## 7821 lying disgust
## 7822 lying negative
## 7823 lynch anger
## 7824 lynch disgust
## 7825 lynch fear
## 7826 lynch negative
## 7827 lynch sadness
## 7828 lyre joy
## 7829 lyre positive
## 7830 lyrical joy
## 7831 lyrical positive
## 7832 mace fear
## 7833 mace negative
## 7834 machine trust
## 7835 mad anger
## 7836 mad disgust
## 7837 mad fear
## 7838 mad negative
## 7839 mad sadness
## 7840 madden anger
## 7841 madden fear
## 7842 madden negative
## 7843 madman anger
## 7844 madman fear
## 7845 madman negative
## 7846 madness anger
## 7847 madness fear
## 7848 madness negative
## 7849 mafia fear
## 7850 mafia negative
## 7851 mage fear
## 7852 maggot disgust
## 7853 maggot negative
## 7854 magical anticipation
## 7855 magical joy
## 7856 magical positive
## 7857 magical surprise
## 7858 magician surprise
## 7859 magnet positive
## 7860 magnet trust
## 7861 magnetism positive
## 7862 magnetite positive
## 7863 magnificence anticipation
## 7864 magnificence joy
## 7865 magnificence positive
## 7866 magnificence trust
## 7867 magnificent anticipation
## 7868 magnificent joy
## 7869 magnificent positive
## 7870 magnificent surprise
## 7871 magnificent trust
## 7872 maiden positive
## 7873 mail anticipation
## 7874 main positive
## 7875 mainstay positive
## 7876 mainstay trust
## 7877 maintenance trust
## 7878 majestic anticipation
## 7879 majestic joy
## 7880 majestic positive
## 7881 majestic surprise
## 7882 majestic trust
## 7883 majesty positive
## 7884 majesty trust
## 7885 major positive
## 7886 majority joy
## 7887 majority positive
## 7888 majority trust
## 7889 makeshift negative
## 7890 malady negative
## 7891 malaise negative
## 7892 malaise sadness
## 7893 malaria disgust
## 7894 malaria fear
## 7895 malaria negative
## 7896 malaria sadness
## 7897 malevolent anger
## 7898 malevolent disgust
## 7899 malevolent fear
## 7900 malevolent negative
## 7901 malevolent sadness
## 7902 malfeasance disgust
## 7903 malfeasance negative
## 7904 malformation negative
## 7905 malice anger
## 7906 malice fear
## 7907 malice negative
## 7908 malicious anger
## 7909 malicious disgust
## 7910 malicious fear
## 7911 malicious negative
## 7912 malicious sadness
## 7913 malign anger
## 7914 malign disgust
## 7915 malign negative
## 7916 malignancy fear
## 7917 malignancy negative
## 7918 malignancy sadness
## 7919 malignant anger
## 7920 malignant fear
## 7921 malignant negative
## 7922 malpractice anger
## 7923 malpractice negative
## 7924 mamma trust
## 7925 manage positive
## 7926 manage trust
## 7927 management positive
## 7928 management trust
## 7929 mandamus fear
## 7930 mandamus negative
## 7931 mandarin positive
## 7932 mandarin trust
## 7933 mange disgust
## 7934 mange fear
## 7935 mange negative
## 7936 mangle anger
## 7937 mangle disgust
## 7938 mangle fear
## 7939 mangle negative
## 7940 mangle sadness
## 7941 manhood positive
## 7942 mania negative
## 7943 maniac anger
## 7944 maniac fear
## 7945 maniac negative
## 7946 maniacal negative
## 7947 manifestation fear
## 7948 manifested positive
## 7949 manipulate negative
## 7950 manipulation anger
## 7951 manipulation fear
## 7952 manipulation negative
## 7953 manly positive
## 7954 manna positive
## 7955 mannered positive
## 7956 manners positive
## 7957 manslaughter anger
## 7958 manslaughter disgust
## 7959 manslaughter fear
## 7960 manslaughter negative
## 7961 manslaughter sadness
## 7962 manslaughter surprise
## 7963 manual trust
## 7964 manufacturer positive
## 7965 manure disgust
## 7966 manure negative
## 7967 mar negative
## 7968 march positive
## 7969 margin negative
## 7970 margin sadness
## 7971 marine trust
## 7972 marked positive
## 7973 marketable positive
## 7974 maroon negative
## 7975 marquis positive
## 7976 marriage anticipation
## 7977 marriage joy
## 7978 marriage positive
## 7979 marriage trust
## 7980 marrow joy
## 7981 marrow positive
## 7982 marrow trust
## 7983 marry anticipation
## 7984 marry fear
## 7985 marry joy
## 7986 marry positive
## 7987 marry surprise
## 7988 marry trust
## 7989 marshal positive
## 7990 marshal trust
## 7991 martial anger
## 7992 martingale negative
## 7993 martyr fear
## 7994 martyr negative
## 7995 martyr sadness
## 7996 martyrdom fear
## 7997 martyrdom negative
## 7998 martyrdom sadness
## 7999 marvel positive
## 8000 marvel surprise
## 8001 marvelous joy
## 8002 marvelous positive
## 8003 marvelously joy
## 8004 marvelously positive
## 8005 masculine positive
## 8006 masochism anger
## 8007 masochism disgust
## 8008 masochism fear
## 8009 masochism negative
## 8010 massacre anger
## 8011 massacre disgust
## 8012 massacre fear
## 8013 massacre negative
## 8014 massacre sadness
## 8015 massage joy
## 8016 massage positive
## 8017 master positive
## 8018 masterpiece joy
## 8019 masterpiece positive
## 8020 mastery anger
## 8021 mastery joy
## 8022 mastery positive
## 8023 mastery trust
## 8024 matchmaker anticipation
## 8025 mate positive
## 8026 mate trust
## 8027 materialism negative
## 8028 materialist disgust
## 8029 materialist negative
## 8030 maternal anticipation
## 8031 maternal negative
## 8032 maternal positive
## 8033 mathematical trust
## 8034 matrimony anticipation
## 8035 matrimony joy
## 8036 matrimony positive
## 8037 matrimony trust
## 8038 matron positive
## 8039 matron trust
## 8040 mausoleum sadness
## 8041 maxim trust
## 8042 maximum positive
## 8043 mayor positive
## 8044 meadow positive
## 8045 meandering negative
## 8046 meaningless negative
## 8047 meaningless sadness
## 8048 measles disgust
## 8049 measles fear
## 8050 measles negative
## 8051 measles sadness
## 8052 measure trust
## 8053 measured positive
## 8054 measured trust
## 8055 medal anticipation
## 8056 medal joy
## 8057 medal positive
## 8058 medal surprise
## 8059 medal trust
## 8060 meddle anger
## 8061 meddle negative
## 8062 mediate anticipation
## 8063 mediate positive
## 8064 mediate trust
## 8065 mediation positive
## 8066 mediator anticipation
## 8067 mediator positive
## 8068 mediator trust
## 8069 medical anticipation
## 8070 medical fear
## 8071 medical positive
## 8072 medical trust
## 8073 mediocre negative
## 8074 mediocrity negative
## 8075 meditate anticipation
## 8076 meditate joy
## 8077 meditate positive
## 8078 meditate trust
## 8079 mediterranean positive
## 8080 medley positive
## 8081 meek sadness
## 8082 melancholic negative
## 8083 melancholic sadness
## 8084 melancholy negative
## 8085 melancholy sadness
## 8086 melee fear
## 8087 melee negative
## 8088 melodrama anger
## 8089 melodrama negative
## 8090 melodrama sadness
## 8091 meltdown negative
## 8092 meltdown sadness
## 8093 memento positive
## 8094 memorable joy
## 8095 memorable positive
## 8096 memorable surprise
## 8097 memorable trust
## 8098 memorials sadness
## 8099 menace anger
## 8100 menace fear
## 8101 menace negative
## 8102 menacing anger
## 8103 menacing fear
## 8104 menacing negative
## 8105 mending positive
## 8106 menial negative
## 8107 menses positive
## 8108 mentor positive
## 8109 mentor trust
## 8110 mercenary fear
## 8111 mercenary negative
## 8112 merchant trust
## 8113 merciful positive
## 8114 merciless fear
## 8115 merciless negative
## 8116 mercy positive
## 8117 merge anticipation
## 8118 merge positive
## 8119 merit positive
## 8120 merit trust
## 8121 meritorious joy
## 8122 meritorious positive
## 8123 meritorious trust
## 8124 merriment joy
## 8125 merriment positive
## 8126 merriment surprise
## 8127 merry joy
## 8128 merry positive
## 8129 mess disgust
## 8130 mess negative
## 8131 messenger trust
## 8132 messy disgust
## 8133 messy negative
## 8134 metastasis negative
## 8135 methanol negative
## 8136 metropolitan positive
## 8137 mettle positive
## 8138 microscope trust
## 8139 microscopy positive
## 8140 midwife anticipation
## 8141 midwife joy
## 8142 midwife negative
## 8143 midwife positive
## 8144 midwife trust
## 8145 midwifery positive
## 8146 mighty anger
## 8147 mighty fear
## 8148 mighty joy
## 8149 mighty positive
## 8150 mighty trust
## 8151 mildew disgust
## 8152 mildew negative
## 8153 military fear
## 8154 militia anger
## 8155 militia fear
## 8156 militia negative
## 8157 militia sadness
## 8158 mill anticipation
## 8159 mime positive
## 8160 mimicry negative
## 8161 mimicry surprise
## 8162 mindful positive
## 8163 mindfulness positive
## 8164 minimize negative
## 8165 minimum negative
## 8166 ministry joy
## 8167 ministry positive
## 8168 ministry trust
## 8169 minority negative
## 8170 miracle anticipation
## 8171 miracle joy
## 8172 miracle positive
## 8173 miracle surprise
## 8174 miracle trust
## 8175 miraculous joy
## 8176 miraculous positive
## 8177 miraculous surprise
## 8178 mire disgust
## 8179 mire negative
## 8180 mirth joy
## 8181 mirth positive
## 8182 misbehavior anger
## 8183 misbehavior disgust
## 8184 misbehavior negative
## 8185 misbehavior surprise
## 8186 miscarriage fear
## 8187 miscarriage negative
## 8188 miscarriage sadness
## 8189 mischief negative
## 8190 mischievous negative
## 8191 misconception anger
## 8192 misconception disgust
## 8193 misconception fear
## 8194 misconception negative
## 8195 misconduct disgust
## 8196 misconduct negative
## 8197 miserable anger
## 8198 miserable disgust
## 8199 miserable negative
## 8200 miserable sadness
## 8201 miserably negative
## 8202 miserably sadness
## 8203 misery anger
## 8204 misery disgust
## 8205 misery fear
## 8206 misery negative
## 8207 misery sadness
## 8208 misfortune fear
## 8209 misfortune negative
## 8210 misfortune sadness
## 8211 misguided disgust
## 8212 misguided negative
## 8213 mishap disgust
## 8214 mishap fear
## 8215 mishap negative
## 8216 mishap sadness
## 8217 mishap surprise
## 8218 misinterpretation negative
## 8219 mislead anger
## 8220 mislead fear
## 8221 mislead negative
## 8222 mislead trust
## 8223 misleading anger
## 8224 misleading disgust
## 8225 misleading negative
## 8226 mismanagement negative
## 8227 mismatch negative
## 8228 misnomer negative
## 8229 misplace anger
## 8230 misplace disgust
## 8231 misplace negative
## 8232 misplaced negative
## 8233 misrepresent negative
## 8234 misrepresentation negative
## 8235 misrepresentation sadness
## 8236 misrepresented anger
## 8237 misrepresented negative
## 8238 missile fear
## 8239 missing fear
## 8240 missing negative
## 8241 missing sadness
## 8242 missionary positive
## 8243 misstatement anger
## 8244 misstatement disgust
## 8245 misstatement negative
## 8246 mistake negative
## 8247 mistake sadness
## 8248 mistaken fear
## 8249 mistaken negative
## 8250 mistress anger
## 8251 mistress disgust
## 8252 mistress negative
## 8253 mistrust disgust
## 8254 mistrust fear
## 8255 mistrust negative
## 8256 misunderstand negative
## 8257 misunderstanding anger
## 8258 misunderstanding negative
## 8259 misunderstanding sadness
## 8260 misuse negative
## 8261 mite disgust
## 8262 mite negative
## 8263 moan fear
## 8264 moan sadness
## 8265 moat trust
## 8266 mob anger
## 8267 mob fear
## 8268 mob negative
## 8269 mobile anticipation
## 8270 mockery disgust
## 8271 mockery negative
## 8272 mocking anger
## 8273 mocking disgust
## 8274 mocking negative
## 8275 mocking sadness
## 8276 model positive
## 8277 moderate positive
## 8278 moderator positive
## 8279 moderator trust
## 8280 modest positive
## 8281 modest trust
## 8282 modesty positive
## 8283 modify surprise
## 8284 molestation anger
## 8285 molestation disgust
## 8286 molestation fear
## 8287 molestation negative
## 8288 molestation sadness
## 8289 momentum anticipation
## 8290 momentum positive
## 8291 monetary anticipation
## 8292 monetary positive
## 8293 money anger
## 8294 money anticipation
## 8295 money joy
## 8296 money positive
## 8297 money surprise
## 8298 money trust
## 8299 monk positive
## 8300 monk trust
## 8301 monochrome disgust
## 8302 monochrome negative
## 8303 monogamy trust
## 8304 monopolist negative
## 8305 monsoon negative
## 8306 monsoon sadness
## 8307 monster fear
## 8308 monster negative
## 8309 monstrosity anger
## 8310 monstrosity disgust
## 8311 monstrosity fear
## 8312 monstrosity negative
## 8313 monstrosity surprise
## 8314 monument positive
## 8315 moody anger
## 8316 moody negative
## 8317 moody sadness
## 8318 moorings trust
## 8319 moot negative
## 8320 moral anger
## 8321 moral positive
## 8322 moral trust
## 8323 morality positive
## 8324 morality trust
## 8325 morals anger
## 8326 morals anticipation
## 8327 morals disgust
## 8328 morals joy
## 8329 morals positive
## 8330 morals surprise
## 8331 morals trust
## 8332 morbid negative
## 8333 morbid sadness
## 8334 morbidity anger
## 8335 morbidity disgust
## 8336 morbidity fear
## 8337 morbidity negative
## 8338 morbidity sadness
## 8339 morgue disgust
## 8340 morgue fear
## 8341 morgue negative
## 8342 morgue sadness
## 8343 moribund negative
## 8344 moribund sadness
## 8345 morn anticipation
## 8346 moron negative
## 8347 moronic negative
## 8348 morrow anticipation
## 8349 morsel negative
## 8350 mortal negative
## 8351 mortality anger
## 8352 mortality fear
## 8353 mortality negative
## 8354 mortality sadness
## 8355 mortar positive
## 8356 mortgage fear
## 8357 mortgagee trust
## 8358 mortgagor fear
## 8359 mortification anticipation
## 8360 mortification disgust
## 8361 mortification fear
## 8362 mortification negative
## 8363 mortification sadness
## 8364 mortuary fear
## 8365 mortuary negative
## 8366 mortuary sadness
## 8367 mosque anger
## 8368 mosquito anger
## 8369 mosquito disgust
## 8370 mosquito negative
## 8371 mother anticipation
## 8372 mother joy
## 8373 mother negative
## 8374 mother positive
## 8375 mother sadness
## 8376 mother trust
## 8377 motherhood joy
## 8378 motherhood positive
## 8379 motherhood trust
## 8380 motion anticipation
## 8381 motive positive
## 8382 mountain anticipation
## 8383 mourn negative
## 8384 mourn sadness
## 8385 mournful anger
## 8386 mournful fear
## 8387 mournful negative
## 8388 mournful sadness
## 8389 mourning negative
## 8390 mourning sadness
## 8391 mouth surprise
## 8392 mouthful disgust
## 8393 movable positive
## 8394 mover positive
## 8395 muck disgust
## 8396 muck negative
## 8397 mucous disgust
## 8398 mucus disgust
## 8399 mud negative
## 8400 muddle negative
## 8401 muddled negative
## 8402 muddy disgust
## 8403 muddy negative
## 8404 muff anger
## 8405 muff disgust
## 8406 muff negative
## 8407 mug anger
## 8408 mug fear
## 8409 mug negative
## 8410 mug positive
## 8411 mug sadness
## 8412 mule anger
## 8413 mule negative
## 8414 mule trust
## 8415 mum fear
## 8416 mum negative
## 8417 mumble negative
## 8418 mumps negative
## 8419 murder anger
## 8420 murder disgust
## 8421 murder fear
## 8422 murder negative
## 8423 murder sadness
## 8424 murder surprise
## 8425 murderer anger
## 8426 murderer disgust
## 8427 murderer fear
## 8428 murderer negative
## 8429 murderer sadness
## 8430 murderous anger
## 8431 murderous disgust
## 8432 murderous fear
## 8433 murderous negative
## 8434 murderous sadness
## 8435 murderous surprise
## 8436 murky disgust
## 8437 murky negative
## 8438 murky sadness
## 8439 muscular positive
## 8440 music joy
## 8441 music positive
## 8442 music sadness
## 8443 musical anger
## 8444 musical anticipation
## 8445 musical joy
## 8446 musical positive
## 8447 musical sadness
## 8448 musical surprise
## 8449 musical trust
## 8450 musket fear
## 8451 muss negative
## 8452 musty disgust
## 8453 musty negative
## 8454 mutable anticipation
## 8455 mutable positive
## 8456 mutant negative
## 8457 mutilated disgust
## 8458 mutilated negative
## 8459 mutilation anger
## 8460 mutilation disgust
## 8461 mutilation fear
## 8462 mutilation negative
## 8463 mutilation sadness
## 8464 mutiny anger
## 8465 mutiny disgust
## 8466 mutiny fear
## 8467 mutiny negative
## 8468 mutiny surprise
## 8469 mutter anger
## 8470 mutter negative
## 8471 mutual positive
## 8472 muzzle fear
## 8473 muzzle negative
## 8474 myopia anger
## 8475 myopia negative
## 8476 myopia sadness
## 8477 mysterious anticipation
## 8478 mysterious fear
## 8479 mysterious surprise
## 8480 mystery anticipation
## 8481 mystery surprise
## 8482 mystic surprise
## 8483 nab negative
## 8484 nab surprise
## 8485 nadir negative
## 8486 nag anger
## 8487 nag negative
## 8488 naive negative
## 8489 nameless disgust
## 8490 nameless negative
## 8491 nap joy
## 8492 nap positive
## 8493 napkin sadness
## 8494 nappy disgust
## 8495 nappy negative
## 8496 narcotic negative
## 8497 nascent anticipation
## 8498 nasty anger
## 8499 nasty disgust
## 8500 nasty fear
## 8501 nasty negative
## 8502 nasty sadness
## 8503 nation trust
## 8504 naturalist positive
## 8505 naughty negative
## 8506 nausea disgust
## 8507 nausea negative
## 8508 nauseous disgust
## 8509 nauseous negative
## 8510 nauseous sadness
## 8511 navigable anticipation
## 8512 navigable positive
## 8513 navigator anticipation
## 8514 navigator trust
## 8515 nay negative
## 8516 neatly positive
## 8517 necessity sadness
## 8518 nectar positive
## 8519 needful negative
## 8520 needle positive
## 8521 needy negative
## 8522 nefarious disgust
## 8523 nefarious fear
## 8524 nefarious negative
## 8525 nefarious sadness
## 8526 nefarious surprise
## 8527 negation anger
## 8528 negation negative
## 8529 negative negative
## 8530 negative sadness
## 8531 neglect negative
## 8532 neglected anger
## 8533 neglected disgust
## 8534 neglected negative
## 8535 neglected sadness
## 8536 neglecting negative
## 8537 negligence negative
## 8538 negligent negative
## 8539 negligently negative
## 8540 negotiate positive
## 8541 negotiate trust
## 8542 negotiator positive
## 8543 negro negative
## 8544 negro sadness
## 8545 neighbor anticipation
## 8546 neighbor positive
## 8547 neighbor trust
## 8548 neighborhood anticipation
## 8549 nepotism anger
## 8550 nepotism disgust
## 8551 nepotism negative
## 8552 nepotism sadness
## 8553 nerve positive
## 8554 nervous anticipation
## 8555 nervous fear
## 8556 nervous negative
## 8557 nervousness fear
## 8558 nest trust
## 8559 nestle positive
## 8560 nestle trust
## 8561 nether anger
## 8562 nether fear
## 8563 nether negative
## 8564 nether sadness
## 8565 nettle anger
## 8566 nettle disgust
## 8567 nettle negative
## 8568 network anticipation
## 8569 neuralgia fear
## 8570 neuralgia negative
## 8571 neuralgia sadness
## 8572 neurosis fear
## 8573 neurosis negative
## 8574 neurosis sadness
## 8575 neurotic disgust
## 8576 neurotic fear
## 8577 neurotic negative
## 8578 neutral anticipation
## 8579 neutral trust
## 8580 neutrality trust
## 8581 newcomer fear
## 8582 newcomer surprise
## 8583 nicotine disgust
## 8584 nicotine negative
## 8585 nigger negative
## 8586 nightmare fear
## 8587 nightmare negative
## 8588 nihilism negative
## 8589 nobility anticipation
## 8590 nobility positive
## 8591 nobility trust
## 8592 noble positive
## 8593 noble trust
## 8594 nobleman positive
## 8595 nobleman trust
## 8596 noise negative
## 8597 noisy anger
## 8598 noisy negative
## 8599 nomination positive
## 8600 noncompliance anger
## 8601 noncompliance anticipation
## 8602 noncompliance fear
## 8603 noncompliance negative
## 8604 noncompliance sadness
## 8605 nonsense negative
## 8606 nonsensical negative
## 8607 nonsensical sadness
## 8608 noose negative
## 8609 noose sadness
## 8610 normality positive
## 8611 nose disgust
## 8612 notable joy
## 8613 notable positive
## 8614 notable trust
## 8615 notables positive
## 8616 notary trust
## 8617 noted positive
## 8618 nothingness negative
## 8619 nothingness sadness
## 8620 notification anticipation
## 8621 notion positive
## 8622 notoriety anger
## 8623 notoriety disgust
## 8624 notoriety fear
## 8625 notoriety negative
## 8626 notoriety positive
## 8627 nourishment positive
## 8628 noxious disgust
## 8629 noxious fear
## 8630 noxious negative
## 8631 nuisance anger
## 8632 nuisance negative
## 8633 nul negative
## 8634 nullify negative
## 8635 nullify surprise
## 8636 numb negative
## 8637 numbers positive
## 8638 numbness negative
## 8639 numbness sadness
## 8640 nun negative
## 8641 nun trust
## 8642 nurse positive
## 8643 nurse trust
## 8644 nursery joy
## 8645 nursery positive
## 8646 nursery trust
## 8647 nurture anger
## 8648 nurture anticipation
## 8649 nurture disgust
## 8650 nurture fear
## 8651 nurture joy
## 8652 nurture positive
## 8653 nurture trust
## 8654 nutritious positive
## 8655 nutritious sadness
## 8656 oaf negative
## 8657 oak positive
## 8658 oasis anticipation
## 8659 oasis joy
## 8660 oasis positive
## 8661 oasis trust
## 8662 oath positive
## 8663 oath trust
## 8664 obedience positive
## 8665 obedience trust
## 8666 obese disgust
## 8667 obese negative
## 8668 obesity disgust
## 8669 obesity negative
## 8670 obesity sadness
## 8671 obey fear
## 8672 obey trust
## 8673 obi disgust
## 8674 obi fear
## 8675 obi negative
## 8676 obit negative
## 8677 obit sadness
## 8678 obit surprise
## 8679 obituary negative
## 8680 obituary sadness
## 8681 objection anger
## 8682 objection negative
## 8683 objectionable negative
## 8684 objective anticipation
## 8685 objective positive
## 8686 objective trust
## 8687 oblige negative
## 8688 oblige trust
## 8689 obliging anger
## 8690 obliging anticipation
## 8691 obliging disgust
## 8692 obliging fear
## 8693 obliging joy
## 8694 obliging positive
## 8695 obliging surprise
## 8696 obliging trust
## 8697 obligor fear
## 8698 obligor negative
## 8699 obliterate anger
## 8700 obliterate fear
## 8701 obliterate negative
## 8702 obliterate sadness
## 8703 obliterated anger
## 8704 obliterated fear
## 8705 obliterated negative
## 8706 obliteration fear
## 8707 obliteration negative
## 8708 obliteration sadness
## 8709 oblivion anger
## 8710 oblivion fear
## 8711 oblivion negative
## 8712 obnoxious anger
## 8713 obnoxious disgust
## 8714 obnoxious negative
## 8715 obnoxious sadness
## 8716 obscene disgust
## 8717 obscene negative
## 8718 obscenity anger
## 8719 obscenity disgust
## 8720 obscenity negative
## 8721 obscurity negative
## 8722 observant positive
## 8723 obstacle anger
## 8724 obstacle fear
## 8725 obstacle negative
## 8726 obstacle sadness
## 8727 obstetrician trust
## 8728 obstinate negative
## 8729 obstruct anger
## 8730 obstruct fear
## 8731 obstruct negative
## 8732 obstruction negative
## 8733 obstructive anger
## 8734 obstructive negative
## 8735 obtainable joy
## 8736 obtainable positive
## 8737 obtuse negative
## 8738 obvious positive
## 8739 obvious trust
## 8740 occasional surprise
## 8741 occult disgust
## 8742 occult fear
## 8743 occult negative
## 8744 occupant positive
## 8745 occupant trust
## 8746 occupation positive
## 8747 occupy positive
## 8748 octopus disgust
## 8749 oddity disgust
## 8750 oddity negative
## 8751 oddity sadness
## 8752 oddity surprise
## 8753 odious anger
## 8754 odious disgust
## 8755 odious fear
## 8756 odious negative
## 8757 odor negative
## 8758 offend anger
## 8759 offend disgust
## 8760 offend negative
## 8761 offended anger
## 8762 offended negative
## 8763 offended sadness
## 8764 offender anger
## 8765 offender disgust
## 8766 offender fear
## 8767 offender negative
## 8768 offender sadness
## 8769 offense anger
## 8770 offense disgust
## 8771 offense fear
## 8772 offense negative
## 8773 offense sadness
## 8774 offensive anger
## 8775 offensive disgust
## 8776 offensive negative
## 8777 offer positive
## 8778 offering trust
## 8779 offhand negative
## 8780 officer positive
## 8781 officer trust
## 8782 official trust
## 8783 offing negative
## 8784 offset anticipation
## 8785 offset positive
## 8786 offshoot positive
## 8787 ogre disgust
## 8788 ogre fear
## 8789 ogre negative
## 8790 older sadness
## 8791 olfactory anticipation
## 8792 olfactory negative
## 8793 oligarchy negative
## 8794 omen anticipation
## 8795 omen fear
## 8796 omen negative
## 8797 ominous anticipation
## 8798 ominous fear
## 8799 ominous negative
## 8800 omit negative
## 8801 omnipotence fear
## 8802 omnipotence negative
## 8803 omnipotence positive
## 8804 omniscient positive
## 8805 omniscient trust
## 8806 onerous anger
## 8807 onerous negative
## 8808 onerous sadness
## 8809 ongoing anticipation
## 8810 onset anticipation
## 8811 onus negative
## 8812 ooze disgust
## 8813 ooze negative
## 8814 opaque negative
## 8815 openness positive
## 8816 opera anger
## 8817 opera anticipation
## 8818 opera fear
## 8819 opera joy
## 8820 opera positive
## 8821 opera sadness
## 8822 opera surprise
## 8823 opera trust
## 8824 operatic negative
## 8825 operation fear
## 8826 operation trust
## 8827 opiate negative
## 8828 opinionated anger
## 8829 opinionated negative
## 8830 opium anger
## 8831 opium disgust
## 8832 opium fear
## 8833 opium negative
## 8834 opium sadness
## 8835 opponent anger
## 8836 opponent anticipation
## 8837 opponent disgust
## 8838 opponent fear
## 8839 opponent negative
## 8840 opportune joy
## 8841 opportune positive
## 8842 opportunity anticipation
## 8843 opportunity positive
## 8844 oppose negative
## 8845 opposed anger
## 8846 opposed fear
## 8847 opposed negative
## 8848 opposition anger
## 8849 opposition negative
## 8850 oppress anger
## 8851 oppress disgust
## 8852 oppress fear
## 8853 oppress negative
## 8854 oppress sadness
## 8855 oppression anger
## 8856 oppression disgust
## 8857 oppression fear
## 8858 oppression negative
## 8859 oppression sadness
## 8860 oppressive anger
## 8861 oppressive disgust
## 8862 oppressive fear
## 8863 oppressive negative
## 8864 oppressive sadness
## 8865 oppressor anger
## 8866 oppressor fear
## 8867 oppressor negative
## 8868 oppressor sadness
## 8869 optimism anticipation
## 8870 optimism joy
## 8871 optimism positive
## 8872 optimism surprise
## 8873 optimism trust
## 8874 optimist positive
## 8875 optimist trust
## 8876 option positive
## 8877 optional positive
## 8878 oracle anticipation
## 8879 oracle positive
## 8880 oracle trust
## 8881 oration positive
## 8882 orc anger
## 8883 orc disgust
## 8884 orc fear
## 8885 orc negative
## 8886 orchestra anger
## 8887 orchestra joy
## 8888 orchestra positive
## 8889 orchestra sadness
## 8890 orchestra trust
## 8891 ordained positive
## 8892 ordained trust
## 8893 ordeal anger
## 8894 ordeal negative
## 8895 ordeal surprise
## 8896 orderly positive
## 8897 ordinance trust
## 8898 ordination anticipation
## 8899 ordination joy
## 8900 ordination positive
## 8901 ordination trust
## 8902 ordnance fear
## 8903 ordnance negative
## 8904 organ anticipation
## 8905 organ joy
## 8906 organic positive
## 8907 organization anticipation
## 8908 organization joy
## 8909 organization positive
## 8910 organization surprise
## 8911 organization trust
## 8912 organize positive
## 8913 organized positive
## 8914 orgasm anticipation
## 8915 orgasm joy
## 8916 orgasm positive
## 8917 originality positive
## 8918 originality surprise
## 8919 ornamented positive
## 8920 ornate positive
## 8921 orphan fear
## 8922 orphan negative
## 8923 orphan sadness
## 8924 orthodoxy trust
## 8925 ostensibly negative
## 8926 oust anger
## 8927 oust negative
## 8928 oust sadness
## 8929 outburst anger
## 8930 outburst fear
## 8931 outburst joy
## 8932 outburst negative
## 8933 outburst positive
## 8934 outburst sadness
## 8935 outburst surprise
## 8936 outcast disgust
## 8937 outcast fear
## 8938 outcast negative
## 8939 outcast sadness
## 8940 outcome positive
## 8941 outcry anger
## 8942 outcry fear
## 8943 outcry negative
## 8944 outcry surprise
## 8945 outdo anticipation
## 8946 outdo positive
## 8947 outhouse disgust
## 8948 outhouse negative
## 8949 outlandish negative
## 8950 outlaw negative
## 8951 outpost fear
## 8952 outrage anger
## 8953 outrage disgust
## 8954 outrage negative
## 8955 outrageous surprise
## 8956 outsider fear
## 8957 outstanding joy
## 8958 outstanding negative
## 8959 outstanding positive
## 8960 outward positive
## 8961 ovation negative
## 8962 ovation sadness
## 8963 overbearing anger
## 8964 overbearing negative
## 8965 overburden negative
## 8966 overcast negative
## 8967 overdo negative
## 8968 overdose negative
## 8969 overdue anticipation
## 8970 overdue negative
## 8971 overdue sadness
## 8972 overdue surprise
## 8973 overestimate surprise
## 8974 overestimated negative
## 8975 overflow negative
## 8976 overgrown negative
## 8977 overjoyed joy
## 8978 overjoyed positive
## 8979 overload negative
## 8980 overload sadness
## 8981 overpaid negative
## 8982 overpower negative
## 8983 overpowering anger
## 8984 overpowering fear
## 8985 overpowering negative
## 8986 overpriced anger
## 8987 overpriced disgust
## 8988 overpriced negative
## 8989 overpriced sadness
## 8990 oversight negative
## 8991 overt fear
## 8992 overthrow anticipation
## 8993 overthrow fear
## 8994 overthrow negative
## 8995 overture anticipation
## 8996 overturn negative
## 8997 overwhelm negative
## 8998 overwhelmed negative
## 8999 overwhelmed sadness
## 9000 overwhelming positive
## 9001 owing anger
## 9002 owing anticipation
## 9003 owing disgust
## 9004 owing fear
## 9005 owing negative
## 9006 owing sadness
## 9007 owing trust
## 9008 ownership positive
## 9009 oxidation negative
## 9010 pacific positive
## 9011 pact trust
## 9012 pad positive
## 9013 padding positive
## 9014 paddle anticipation
## 9015 paddle positive
## 9016 pain fear
## 9017 pain negative
## 9018 pain sadness
## 9019 pained fear
## 9020 pained negative
## 9021 pained sadness
## 9022 painful anger
## 9023 painful disgust
## 9024 painful fear
## 9025 painful negative
## 9026 painful sadness
## 9027 painfully negative
## 9028 painfully sadness
## 9029 pains negative
## 9030 palatable positive
## 9031 palliative positive
## 9032 palpable surprise
## 9033 palsy disgust
## 9034 palsy fear
## 9035 palsy negative
## 9036 palsy sadness
## 9037 panacea positive
## 9038 panache positive
## 9039 pandemic fear
## 9040 pandemic negative
## 9041 pandemic sadness
## 9042 pang negative
## 9043 pang surprise
## 9044 panic fear
## 9045 panic negative
## 9046 panier positive
## 9047 paprika positive
## 9048 parachute fear
## 9049 parade anticipation
## 9050 parade fear
## 9051 parade joy
## 9052 parade negative
## 9053 parade positive
## 9054 parade surprise
## 9055 paragon anticipation
## 9056 paragon joy
## 9057 paragon positive
## 9058 paragon trust
## 9059 paralysis anger
## 9060 paralysis anticipation
## 9061 paralysis fear
## 9062 paralysis negative
## 9063 paralysis sadness
## 9064 paralyzed anger
## 9065 paralyzed fear
## 9066 paralyzed negative
## 9067 paralyzed sadness
## 9068 paralyzed surprise
## 9069 paramount positive
## 9070 paranoia fear
## 9071 paranoia negative
## 9072 paraphrase negative
## 9073 paraphrase positive
## 9074 parasite disgust
## 9075 parasite fear
## 9076 parasite negative
## 9077 pardon positive
## 9078 pare anger
## 9079 pare anticipation
## 9080 pare fear
## 9081 pare negative
## 9082 pare sadness
## 9083 parentage positive
## 9084 parietal positive
## 9085 parietal trust
## 9086 parish trust
## 9087 parliament trust
## 9088 parole anticipation
## 9089 parrot disgust
## 9090 parrot negative
## 9091 parsimonious negative
## 9092 partake positive
## 9093 partake trust
## 9094 participation positive
## 9095 parting sadness
## 9096 partisan negative
## 9097 partner positive
## 9098 partnership positive
## 9099 partnership trust
## 9100 passe negative
## 9101 passenger anticipation
## 9102 passion anticipation
## 9103 passion joy
## 9104 passion positive
## 9105 passion trust
## 9106 passionate anticipation
## 9107 passionate joy
## 9108 passionate positive
## 9109 passionate trust
## 9110 passive negative
## 9111 passivity negative
## 9112 pastime positive
## 9113 pastor joy
## 9114 pastor positive
## 9115 pastor trust
## 9116 pastry joy
## 9117 pastry positive
## 9118 pasture positive
## 9119 patch negative
## 9120 patent positive
## 9121 pathetic disgust
## 9122 pathetic negative
## 9123 pathetic sadness
## 9124 patience anticipation
## 9125 patience positive
## 9126 patience trust
## 9127 patient anticipation
## 9128 patient positive
## 9129 patriarchal positive
## 9130 patriarchal trust
## 9131 patrol trust
## 9132 patron positive
## 9133 patron trust
## 9134 patronage positive
## 9135 patronage trust
## 9136 patronizing negative
## 9137 patter anger
## 9138 patter negative
## 9139 paucity anger
## 9140 paucity disgust
## 9141 paucity negative
## 9142 paucity sadness
## 9143 pauper negative
## 9144 pauper sadness
## 9145 pavement trust
## 9146 pawn negative
## 9147 pawn trust
## 9148 pay anticipation
## 9149 pay joy
## 9150 pay positive
## 9151 pay trust
## 9152 payback anger
## 9153 payback negative
## 9154 payment negative
## 9155 peace anticipation
## 9156 peace joy
## 9157 peace positive
## 9158 peace trust
## 9159 peaceable positive
## 9160 peaceful anticipation
## 9161 peaceful joy
## 9162 peaceful positive
## 9163 peaceful surprise
## 9164 peaceful trust
## 9165 peacock positive
## 9166 peck positive
## 9167 peculiarities negative
## 9168 peculiarity positive
## 9169 pedestrian negative
## 9170 pedigree positive
## 9171 pedigree trust
## 9172 peerless positive
## 9173 penal fear
## 9174 penal negative
## 9175 penal sadness
## 9176 penalty anger
## 9177 penalty fear
## 9178 penalty negative
## 9179 penalty sadness
## 9180 penance fear
## 9181 penance sadness
## 9182 penchant positive
## 9183 penetration anger
## 9184 penetration fear
## 9185 penetration negative
## 9186 penitentiary anger
## 9187 penitentiary negative
## 9188 pensive sadness
## 9189 perceive positive
## 9190 perceive trust
## 9191 perceptible positive
## 9192 perchance surprise
## 9193 perdition anger
## 9194 perdition disgust
## 9195 perdition fear
## 9196 perdition negative
## 9197 perdition sadness
## 9198 perennial positive
## 9199 perennial trust
## 9200 perfect anticipation
## 9201 perfect joy
## 9202 perfect positive
## 9203 perfect trust
## 9204 perfection anticipation
## 9205 perfection joy
## 9206 perfection positive
## 9207 perfection surprise
## 9208 perfection trust
## 9209 performer positive
## 9210 peri surprise
## 9211 peril anticipation
## 9212 peril fear
## 9213 peril negative
## 9214 peril sadness
## 9215 perilous anticipation
## 9216 perilous fear
## 9217 perilous negative
## 9218 perilous sadness
## 9219 periodicity trust
## 9220 perish fear
## 9221 perish negative
## 9222 perish sadness
## 9223 perishable negative
## 9224 perished negative
## 9225 perished sadness
## 9226 perishing fear
## 9227 perishing negative
## 9228 perishing sadness
## 9229 perjury fear
## 9230 perjury negative
## 9231 perjury surprise
## 9232 perk positive
## 9233 permission positive
## 9234 pernicious anger
## 9235 pernicious fear
## 9236 pernicious negative
## 9237 pernicious sadness
## 9238 perpetrator anger
## 9239 perpetrator disgust
## 9240 perpetrator fear
## 9241 perpetrator negative
## 9242 perpetrator sadness
## 9243 perpetuate anticipation
## 9244 perpetuation negative
## 9245 perpetuity anticipation
## 9246 perpetuity positive
## 9247 perpetuity trust
## 9248 perplexed negative
## 9249 perplexity negative
## 9250 perplexity sadness
## 9251 persecute anger
## 9252 persecute fear
## 9253 persecute negative
## 9254 persecution anger
## 9255 persecution disgust
## 9256 persecution fear
## 9257 persecution negative
## 9258 persecution sadness
## 9259 persistence positive
## 9260 persistent positive
## 9261 personable positive
## 9262 personal trust
## 9263 perspiration disgust
## 9264 persuade trust
## 9265 pertinent positive
## 9266 pertinent trust
## 9267 perturbation fear
## 9268 perturbation negative
## 9269 pertussis negative
## 9270 perverse anger
## 9271 perverse disgust
## 9272 perverse fear
## 9273 perverse negative
## 9274 perversion anger
## 9275 perversion disgust
## 9276 perversion negative
## 9277 perversion sadness
## 9278 pervert anger
## 9279 pervert disgust
## 9280 pervert negative
## 9281 perverted disgust
## 9282 perverted negative
## 9283 pessimism anger
## 9284 pessimism fear
## 9285 pessimism negative
## 9286 pessimism sadness
## 9287 pessimist fear
## 9288 pessimist negative
## 9289 pessimist sadness
## 9290 pest anger
## 9291 pest disgust
## 9292 pest fear
## 9293 pest negative
## 9294 pestilence disgust
## 9295 pestilence fear
## 9296 pestilence negative
## 9297 pet negative
## 9298 petroleum disgust
## 9299 petroleum negative
## 9300 petroleum positive
## 9301 petty negative
## 9302 phalanx fear
## 9303 phalanx trust
## 9304 phantom fear
## 9305 phantom negative
## 9306 pharmaceutical positive
## 9307 philanthropic trust
## 9308 philanthropist positive
## 9309 philanthropist trust
## 9310 philanthropy positive
## 9311 philosopher positive
## 9312 philosopher trust
## 9313 phlegm disgust
## 9314 phlegm negative
## 9315 phoenix positive
## 9316 phonetic positive
## 9317 phony anger
## 9318 phony disgust
## 9319 phony negative
## 9320 physician positive
## 9321 physician trust
## 9322 physicist trust
## 9323 physics positive
## 9324 physiology positive
## 9325 physique positive
## 9326 pick positive
## 9327 picket anger
## 9328 picket anticipation
## 9329 picket fear
## 9330 picket negative
## 9331 picketing anger
## 9332 picketing negative
## 9333 pickle negative
## 9334 picnic anticipation
## 9335 picnic joy
## 9336 picnic positive
## 9337 picnic surprise
## 9338 picnic trust
## 9339 picturesque joy
## 9340 picturesque positive
## 9341 piety positive
## 9342 pig disgust
## 9343 pig negative
## 9344 pigeon negative
## 9345 piles disgust
## 9346 piles negative
## 9347 pill positive
## 9348 pill trust
## 9349 pillage anger
## 9350 pillage disgust
## 9351 pillage fear
## 9352 pillage negative
## 9353 pillow positive
## 9354 pilot positive
## 9355 pilot trust
## 9356 pimp negative
## 9357 pimple disgust
## 9358 pimple negative
## 9359 pine negative
## 9360 pine sadness
## 9361 pinion fear
## 9362 pinion negative
## 9363 pinnacle positive
## 9364 pioneer positive
## 9365 pious disgust
## 9366 pious positive
## 9367 pious sadness
## 9368 pious trust
## 9369 pique anger
## 9370 pique negative
## 9371 piracy negative
## 9372 pirate anger
## 9373 pirate negative
## 9374 pistol negative
## 9375 pitfall anger
## 9376 pitfall disgust
## 9377 pitfall fear
## 9378 pitfall negative
## 9379 pitfall sadness
## 9380 pitfall surprise
## 9381 pith positive
## 9382 pith trust
## 9383 pity sadness
## 9384 pivot positive
## 9385 pivot trust
## 9386 placard surprise
## 9387 placid positive
## 9388 plagiarism disgust
## 9389 plagiarism negative
## 9390 plague disgust
## 9391 plague fear
## 9392 plague negative
## 9393 plague sadness
## 9394 plaintiff negative
## 9395 plaintive sadness
## 9396 plan anticipation
## 9397 planning anticipation
## 9398 planning positive
## 9399 planning trust
## 9400 plated negative
## 9401 player negative
## 9402 playful anger
## 9403 playful joy
## 9404 playful positive
## 9405 playful surprise
## 9406 playful trust
## 9407 playground anticipation
## 9408 playground joy
## 9409 playground positive
## 9410 playground surprise
## 9411 playground trust
## 9412 playhouse joy
## 9413 playhouse positive
## 9414 plea anticipation
## 9415 plea fear
## 9416 plea negative
## 9417 plea sadness
## 9418 pleasant anticipation
## 9419 pleasant joy
## 9420 pleasant positive
## 9421 pleasant surprise
## 9422 pleasant trust
## 9423 pleased joy
## 9424 pleased positive
## 9425 pleasurable joy
## 9426 pleasurable positive
## 9427 pledge joy
## 9428 pledge positive
## 9429 pledge trust
## 9430 plenary positive
## 9431 plentiful positive
## 9432 plexus positive
## 9433 plight anticipation
## 9434 plight disgust
## 9435 plight fear
## 9436 plight negative
## 9437 plight sadness
## 9438 plodding negative
## 9439 plum positive
## 9440 plumb positive
## 9441 plummet fear
## 9442 plummet negative
## 9443 plump anticipation
## 9444 plunder anger
## 9445 plunder disgust
## 9446 plunder fear
## 9447 plunder negative
## 9448 plunder sadness
## 9449 plunder surprise
## 9450 plunge fear
## 9451 plunge negative
## 9452 plush positive
## 9453 ply positive
## 9454 pneumonia fear
## 9455 pneumonia negative
## 9456 poaching anger
## 9457 poaching disgust
## 9458 poaching fear
## 9459 poaching negative
## 9460 poaching sadness
## 9461 pointedly positive
## 9462 pointless negative
## 9463 pointless sadness
## 9464 poison anger
## 9465 poison disgust
## 9466 poison fear
## 9467 poison negative
## 9468 poison sadness
## 9469 poisoned anger
## 9470 poisoned disgust
## 9471 poisoned fear
## 9472 poisoned negative
## 9473 poisoned sadness
## 9474 poisoning disgust
## 9475 poisoning negative
## 9476 poisonous anger
## 9477 poisonous disgust
## 9478 poisonous fear
## 9479 poisonous negative
## 9480 poisonous sadness
## 9481 poke anticipation
## 9482 poke negative
## 9483 polarity surprise
## 9484 polemic anger
## 9485 polemic disgust
## 9486 polemic negative
## 9487 police fear
## 9488 police positive
## 9489 police trust
## 9490 policeman fear
## 9491 policeman positive
## 9492 policeman trust
## 9493 policy trust
## 9494 polio fear
## 9495 polio negative
## 9496 polio sadness
## 9497 polish positive
## 9498 polished positive
## 9499 polite positive
## 9500 politeness positive
## 9501 politic disgust
## 9502 politic positive
## 9503 politics anger
## 9504 poll trust
## 9505 pollute disgust
## 9506 pollute negative
## 9507 pollution disgust
## 9508 pollution negative
## 9509 polygamy disgust
## 9510 polygamy negative
## 9511 pomp negative
## 9512 pompous disgust
## 9513 pompous negative
## 9514 ponderous negative
## 9515 pontiff trust
## 9516 pool positive
## 9517 poorly negative
## 9518 pop negative
## 9519 pop surprise
## 9520 pope positive
## 9521 popularity positive
## 9522 popularized positive
## 9523 population positive
## 9524 porcupine negative
## 9525 porn disgust
## 9526 porn negative
## 9527 porno negative
## 9528 pornographic negative
## 9529 pornography disgust
## 9530 pornography negative
## 9531 portable positive
## 9532 pose negative
## 9533 posse fear
## 9534 possess anticipation
## 9535 possess joy
## 9536 possess positive
## 9537 possess trust
## 9538 possessed anger
## 9539 possessed disgust
## 9540 possessed fear
## 9541 possessed negative
## 9542 possession anger
## 9543 possession disgust
## 9544 possession fear
## 9545 possession negative
## 9546 possibility anticipation
## 9547 posthumous negative
## 9548 posthumous sadness
## 9549 postponement negative
## 9550 postponement surprise
## 9551 potable positive
## 9552 potency positive
## 9553 pound anger
## 9554 pound negative
## 9555 poverty anger
## 9556 poverty disgust
## 9557 poverty fear
## 9558 poverty negative
## 9559 poverty sadness
## 9560 pow anger
## 9561 powerful anger
## 9562 powerful anticipation
## 9563 powerful disgust
## 9564 powerful fear
## 9565 powerful joy
## 9566 powerful positive
## 9567 powerful trust
## 9568 powerfully fear
## 9569 powerfully positive
## 9570 powerless anger
## 9571 powerless disgust
## 9572 powerless fear
## 9573 powerless negative
## 9574 powerless sadness
## 9575 practice positive
## 9576 practiced joy
## 9577 practiced positive
## 9578 practiced surprise
## 9579 practiced trust
## 9580 practise anticipation
## 9581 practise positive
## 9582 praise joy
## 9583 praise positive
## 9584 praise trust
## 9585 praised joy
## 9586 praised positive
## 9587 praiseworthy anticipation
## 9588 praiseworthy joy
## 9589 praiseworthy positive
## 9590 praiseworthy surprise
## 9591 praiseworthy trust
## 9592 prank negative
## 9593 prank surprise
## 9594 pray anticipation
## 9595 pray fear
## 9596 pray joy
## 9597 pray positive
## 9598 pray surprise
## 9599 pray trust
## 9600 precarious anticipation
## 9601 precarious fear
## 9602 precarious negative
## 9603 precarious sadness
## 9604 precaution positive
## 9605 precede positive
## 9606 precedence positive
## 9607 precedence trust
## 9608 precinct negative
## 9609 precious anticipation
## 9610 precious joy
## 9611 precious positive
## 9612 precious surprise
## 9613 precipice fear
## 9614 precise positive
## 9615 precision positive
## 9616 preclude anger
## 9617 precursor anticipation
## 9618 predatory negative
## 9619 predicament fear
## 9620 predicament negative
## 9621 predict anticipation
## 9622 prediction anticipation
## 9623 predilection anticipation
## 9624 predilection positive
## 9625 predispose anticipation
## 9626 predominant positive
## 9627 predominant trust
## 9628 preeminent positive
## 9629 prefer positive
## 9630 prefer trust
## 9631 pregnancy disgust
## 9632 pregnancy negative
## 9633 prejudice anger
## 9634 prejudice negative
## 9635 prejudiced disgust
## 9636 prejudiced fear
## 9637 prejudiced negative
## 9638 prejudicial anger
## 9639 prejudicial negative
## 9640 preliminary anticipation
## 9641 premature surprise
## 9642 premeditated fear
## 9643 premeditated negative
## 9644 premier positive
## 9645 premises positive
## 9646 preparation anticipation
## 9647 preparatory anticipation
## 9648 prepare anticipation
## 9649 prepare positive
## 9650 prepared anticipation
## 9651 prepared positive
## 9652 prepared trust
## 9653 preparedness anticipation
## 9654 preponderance trust
## 9655 prerequisite anticipation
## 9656 prescient anticipation
## 9657 prescient positive
## 9658 presence positive
## 9659 present anticipation
## 9660 present joy
## 9661 present positive
## 9662 present surprise
## 9663 present trust
## 9664 presentable positive
## 9665 presentment negative
## 9666 presentment positive
## 9667 preservative anticipation
## 9668 preservative joy
## 9669 preservative positive
## 9670 preservative surprise
## 9671 preservative trust
## 9672 preserve positive
## 9673 president positive
## 9674 president trust
## 9675 pressure negative
## 9676 prestige joy
## 9677 prestige positive
## 9678 prestige trust
## 9679 presto joy
## 9680 presto positive
## 9681 presto surprise
## 9682 presumption trust
## 9683 presumptuous anger
## 9684 presumptuous disgust
## 9685 presumptuous negative
## 9686 pretend negative
## 9687 pretended negative
## 9688 pretending anger
## 9689 pretending negative
## 9690 pretense negative
## 9691 pretensions negative
## 9692 pretty anticipation
## 9693 pretty joy
## 9694 pretty positive
## 9695 pretty trust
## 9696 prevail anticipation
## 9697 prevail joy
## 9698 prevail positive
## 9699 prevalent trust
## 9700 prevent fear
## 9701 prevention anticipation
## 9702 prevention positive
## 9703 preventive negative
## 9704 prey fear
## 9705 prey negative
## 9706 priceless positive
## 9707 prick anger
## 9708 prick disgust
## 9709 prick fear
## 9710 prick negative
## 9711 prick surprise
## 9712 prickly negative
## 9713 pride joy
## 9714 pride positive
## 9715 priest positive
## 9716 priest trust
## 9717 priesthood anticipation
## 9718 priesthood joy
## 9719 priesthood positive
## 9720 priesthood sadness
## 9721 priesthood trust
## 9722 priestly positive
## 9723 primacy positive
## 9724 primary positive
## 9725 prime positive
## 9726 primer positive
## 9727 primer trust
## 9728 prince positive
## 9729 princely anticipation
## 9730 princely joy
## 9731 princely positive
## 9732 princely surprise
## 9733 princely trust
## 9734 princess positive
## 9735 principal positive
## 9736 principal trust
## 9737 prison anger
## 9738 prison fear
## 9739 prison negative
## 9740 prison sadness
## 9741 prisoner anger
## 9742 prisoner disgust
## 9743 prisoner fear
## 9744 prisoner negative
## 9745 prisoner sadness
## 9746 pristine positive
## 9747 privileged joy
## 9748 privileged positive
## 9749 privileged trust
## 9750 privy negative
## 9751 privy trust
## 9752 probability anticipation
## 9753 probation anticipation
## 9754 probation fear
## 9755 probation sadness
## 9756 probity positive
## 9757 probity trust
## 9758 problem fear
## 9759 problem negative
## 9760 problem sadness
## 9761 procedure fear
## 9762 procedure positive
## 9763 proceeding anticipation
## 9764 procession joy
## 9765 procession positive
## 9766 procession sadness
## 9767 procession surprise
## 9768 procrastinate negative
## 9769 procrastination negative
## 9770 proctor positive
## 9771 proctor trust
## 9772 procure positive
## 9773 prodigal negative
## 9774 prodigal positive
## 9775 prodigious positive
## 9776 prodigy positive
## 9777 producer positive
## 9778 producing positive
## 9779 production anticipation
## 9780 production positive
## 9781 productive positive
## 9782 productivity positive
## 9783 profane anger
## 9784 profane negative
## 9785 profanity anger
## 9786 profanity negative
## 9787 profession positive
## 9788 professional positive
## 9789 professional trust
## 9790 professor positive
## 9791 professor trust
## 9792 professorship trust
## 9793 proficiency anticipation
## 9794 proficiency joy
## 9795 proficiency positive
## 9796 proficiency surprise
## 9797 proficiency trust
## 9798 proficient positive
## 9799 proficient trust
## 9800 profuse positive
## 9801 profusion negative
## 9802 prognosis anticipation
## 9803 prognosis fear
## 9804 prognostic anticipation
## 9805 progress anticipation
## 9806 progress joy
## 9807 progress positive
## 9808 progression anticipation
## 9809 progression joy
## 9810 progression positive
## 9811 progression sadness
## 9812 progression trust
## 9813 progressive positive
## 9814 prohibited anger
## 9815 prohibited disgust
## 9816 prohibited fear
## 9817 prohibited negative
## 9818 prohibition negative
## 9819 projectile fear
## 9820 projectiles fear
## 9821 prolific positive
## 9822 prologue anticipation
## 9823 prolong disgust
## 9824 prolong negative
## 9825 prominence positive
## 9826 prominently positive
## 9827 promiscuous negative
## 9828 promise joy
## 9829 promise positive
## 9830 promise trust
## 9831 promising positive
## 9832 promotion positive
## 9833 proof trust
## 9834 prop positive
## 9835 propaganda negative
## 9836 proper positive
## 9837 prophecy anticipation
## 9838 prophet anticipation
## 9839 prophet positive
## 9840 prophet trust
## 9841 prophetic anticipation
## 9842 prophylactic anticipation
## 9843 prophylactic positive
## 9844 prophylactic trust
## 9845 proposition positive
## 9846 prosecute anger
## 9847 prosecute fear
## 9848 prosecute negative
## 9849 prosecute sadness
## 9850 prosecution disgust
## 9851 prosecution negative
## 9852 prospect positive
## 9853 prospectively anticipation
## 9854 prosper anticipation
## 9855 prosper joy
## 9856 prosper positive
## 9857 prosperity positive
## 9858 prosperous joy
## 9859 prosperous positive
## 9860 prostitute disgust
## 9861 prostitute negative
## 9862 prostitution disgust
## 9863 prostitution negative
## 9864 prostitution sadness
## 9865 protect positive
## 9866 protected trust
## 9867 protecting positive
## 9868 protecting trust
## 9869 protective positive
## 9870 protector positive
## 9871 protector trust
## 9872 protestant fear
## 9873 proud anticipation
## 9874 proud joy
## 9875 proud positive
## 9876 proud trust
## 9877 prove positive
## 9878 proven trust
## 9879 proverbial positive
## 9880 provide positive
## 9881 provide trust
## 9882 providing anticipation
## 9883 providing joy
## 9884 providing positive
## 9885 providing trust
## 9886 proviso trust
## 9887 provocation anger
## 9888 provocation negative
## 9889 provoking anger
## 9890 provoking disgust
## 9891 provoking negative
## 9892 prowl fear
## 9893 prowl surprise
## 9894 proxy trust
## 9895 prudence positive
## 9896 prudent positive
## 9897 prudent trust
## 9898 pry anger
## 9899 pry anticipation
## 9900 pry negative
## 9901 pry trust
## 9902 prying negative
## 9903 psalm positive
## 9904 psychosis anger
## 9905 psychosis fear
## 9906 psychosis negative
## 9907 psychosis sadness
## 9908 public anticipation
## 9909 public positive
## 9910 publicist negative
## 9911 puffy negative
## 9912 puke disgust
## 9913 pull positive
## 9914 pulpit positive
## 9915 puma fear
## 9916 puma surprise
## 9917 punch anger
## 9918 punch fear
## 9919 punch negative
## 9920 punch sadness
## 9921 punch surprise
## 9922 punctual anticipation
## 9923 punctual positive
## 9924 punctual trust
## 9925 punctuality positive
## 9926 pungent disgust
## 9927 pungent negative
## 9928 punish fear
## 9929 punish negative
## 9930 punished anger
## 9931 punished anticipation
## 9932 punished disgust
## 9933 punished fear
## 9934 punished negative
## 9935 punished sadness
## 9936 punishing anger
## 9937 punishing fear
## 9938 punishing negative
## 9939 punishing sadness
## 9940 punishment anger
## 9941 punishment disgust
## 9942 punishment fear
## 9943 punishment negative
## 9944 punitive anger
## 9945 punitive fear
## 9946 punitive negative
## 9947 punitive sadness
## 9948 punt anticipation
## 9949 puppy anticipation
## 9950 puppy positive
## 9951 puppy trust
## 9952 purely positive
## 9953 purely trust
## 9954 purgatory disgust
## 9955 purgatory fear
## 9956 purgatory negative
## 9957 purge fear
## 9958 purge negative
## 9959 purification positive
## 9960 purification trust
## 9961 purify joy
## 9962 purify positive
## 9963 purify trust
## 9964 purist positive
## 9965 purity positive
## 9966 purity surprise
## 9967 purr joy
## 9968 purr positive
## 9969 purr trust
## 9970 pus disgust
## 9971 pus negative
## 9972 putative trust
## 9973 quack disgust
## 9974 quack negative
## 9975 quagmire disgust
## 9976 quagmire negative
## 9977 quail fear
## 9978 quail negative
## 9979 quaint joy
## 9980 quaint positive
## 9981 quaint trust
## 9982 quake fear
## 9983 qualified positive
## 9984 qualified trust
## 9985 qualifying positive
## 9986 quandary anger
## 9987 quandary fear
## 9988 quandary negative
## 9989 quarantine fear
## 9990 quarrel anger
## 9991 quarrel negative
## 9992 quash fear
## 9993 quash negative
## 9994 quell negative
## 9995 quest anticipation
## 9996 quest positive
## 9997 question positive
## 9998 questionable disgust
## 9999 questionable negative
## 10000 quicken anticipation
## 10001 quickness positive
## 10002 quickness surprise
## 10003 quicksilver negative
## 10004 quicksilver surprise
## 10005 quiescent positive
## 10006 quiet positive
## 10007 quiet sadness
## 10008 quinine positive
## 10009 quit negative
## 10010 quiver fear
## 10011 quiver negative
## 10012 quivering fear
## 10013 quivering negative
## 10014 quiz negative
## 10015 quote anticipation
## 10016 quote negative
## 10017 quote positive
## 10018 quote surprise
## 10019 rabble anger
## 10020 rabble fear
## 10021 rabble negative
## 10022 rabid anger
## 10023 rabid anticipation
## 10024 rabid disgust
## 10025 rabid fear
## 10026 rabid negative
## 10027 rabid sadness
## 10028 rabies negative
## 10029 rack negative
## 10030 rack sadness
## 10031 racket negative
## 10032 radar trust
## 10033 radiance anticipation
## 10034 radiance joy
## 10035 radiance positive
## 10036 radiance trust
## 10037 radiant joy
## 10038 radiant positive
## 10039 radiate positive
## 10040 radiation fear
## 10041 radiation negative
## 10042 radio positive
## 10043 radioactive fear
## 10044 radioactive negative
## 10045 radon fear
## 10046 radon negative
## 10047 raffle anticipation
## 10048 raffle surprise
## 10049 rage anger
## 10050 rage negative
## 10051 raging anger
## 10052 raging disgust
## 10053 raging fear
## 10054 raging negative
## 10055 rags disgust
## 10056 rags negative
## 10057 raid anger
## 10058 raid fear
## 10059 raid negative
## 10060 raid surprise
## 10061 rail anger
## 10062 rail anticipation
## 10063 rail negative
## 10064 rainy sadness
## 10065 ram anger
## 10066 ram anticipation
## 10067 ram negative
## 10068 rambling negative
## 10069 rampage anger
## 10070 rampage fear
## 10071 rampage negative
## 10072 rancid disgust
## 10073 rancid negative
## 10074 randomly surprise
## 10075 ranger trust
## 10076 ransom anger
## 10077 ransom fear
## 10078 ransom negative
## 10079 rape anger
## 10080 rape disgust
## 10081 rape fear
## 10082 rape negative
## 10083 rape sadness
## 10084 rapid surprise
## 10085 rapping anger
## 10086 rapt joy
## 10087 rapt positive
## 10088 rapt surprise
## 10089 rapt trust
## 10090 raptors fear
## 10091 raptors negative
## 10092 rapture anticipation
## 10093 rapture joy
## 10094 rapture positive
## 10095 rarity surprise
## 10096 rascal anger
## 10097 rascal disgust
## 10098 rascal fear
## 10099 rascal negative
## 10100 rash disgust
## 10101 rash negative
## 10102 rat disgust
## 10103 rat fear
## 10104 rat negative
## 10105 ratify trust
## 10106 rating anger
## 10107 rating fear
## 10108 rating negative
## 10109 rating sadness
## 10110 rational positive
## 10111 rational trust
## 10112 rattlesnake fear
## 10113 raucous negative
## 10114 rave anger
## 10115 rave disgust
## 10116 rave joy
## 10117 rave negative
## 10118 rave positive
## 10119 rave surprise
## 10120 rave trust
## 10121 ravenous anger
## 10122 ravenous fear
## 10123 ravenous negative
## 10124 ravenous sadness
## 10125 ravine fear
## 10126 raving anger
## 10127 raving anticipation
## 10128 raving fear
## 10129 raving joy
## 10130 raving negative
## 10131 raving surprise
## 10132 razor fear
## 10133 react anger
## 10134 react fear
## 10135 reactionary negative
## 10136 reader positive
## 10137 readily positive
## 10138 readiness anticipation
## 10139 readiness joy
## 10140 readiness positive
## 10141 readiness trust
## 10142 reading positive
## 10143 ready anticipation
## 10144 reaffirm positive
## 10145 real positive
## 10146 real trust
## 10147 reappear surprise
## 10148 rear negative
## 10149 reason positive
## 10150 reassurance positive
## 10151 reassurance trust
## 10152 reassure positive
## 10153 reassure trust
## 10154 rebate positive
## 10155 rebel anger
## 10156 rebel fear
## 10157 rebel negative
## 10158 rebellion anger
## 10159 rebellion disgust
## 10160 rebellion fear
## 10161 rebuke negative
## 10162 rebut negative
## 10163 recalcitrant anger
## 10164 recalcitrant disgust
## 10165 recalcitrant negative
## 10166 recast positive
## 10167 received positive
## 10168 receiving anticipation
## 10169 receiving joy
## 10170 receiving positive
## 10171 receiving surprise
## 10172 recesses fear
## 10173 recession anger
## 10174 recession disgust
## 10175 recession fear
## 10176 recession negative
## 10177 recession sadness
## 10178 recherche positive
## 10179 recidivism anger
## 10180 recidivism disgust
## 10181 recidivism negative
## 10182 recidivism sadness
## 10183 recipient anticipation
## 10184 reciprocate positive
## 10185 reckless anger
## 10186 reckless fear
## 10187 reckless negative
## 10188 recklessness anger
## 10189 recklessness disgust
## 10190 recklessness fear
## 10191 recklessness negative
## 10192 recklessness surprise
## 10193 reclamation positive
## 10194 recline positive
## 10195 recline trust
## 10196 recognizable anticipation
## 10197 recognizable positive
## 10198 recombination anticipation
## 10199 recommend positive
## 10200 recommend trust
## 10201 reconciliation anticipation
## 10202 reconciliation joy
## 10203 reconciliation positive
## 10204 reconciliation trust
## 10205 reconsideration positive
## 10206 reconsideration trust
## 10207 reconstruct anticipation
## 10208 reconstruct positive
## 10209 reconstruction anticipation
## 10210 reconstruction positive
## 10211 recorder positive
## 10212 recoup positive
## 10213 recovery positive
## 10214 recreation anticipation
## 10215 recreation joy
## 10216 recreation positive
## 10217 recreational anticipation
## 10218 recreational joy
## 10219 recreational positive
## 10220 recruits trust
## 10221 rectify positive
## 10222 recurrent anticipation
## 10223 redemption positive
## 10224 redress positive
## 10225 redundant negative
## 10226 referee trust
## 10227 refine positive
## 10228 refinement positive
## 10229 reflex surprise
## 10230 reflux disgust
## 10231 reflux negative
## 10232 reform positive
## 10233 reformation positive
## 10234 reformer positive
## 10235 refractory negative
## 10236 refreshing positive
## 10237 refugee sadness
## 10238 refurbish positive
## 10239 refusal negative
## 10240 refuse negative
## 10241 refused negative
## 10242 refused sadness
## 10243 refutation fear
## 10244 regal positive
## 10245 regal trust
## 10246 regatta anticipation
## 10247 regent positive
## 10248 regent trust
## 10249 regiment fear
## 10250 registry trust
## 10251 regress negative
## 10252 regression negative
## 10253 regressive negative
## 10254 regressive positive
## 10255 regret negative
## 10256 regret sadness
## 10257 regrettable negative
## 10258 regrettable sadness
## 10259 regretted negative
## 10260 regretted sadness
## 10261 regretting negative
## 10262 regretting sadness
## 10263 regularity anticipation
## 10264 regularity positive
## 10265 regularity trust
## 10266 regulate positive
## 10267 regulatory fear
## 10268 regulatory negative
## 10269 regurgitation disgust
## 10270 rehabilitate positive
## 10271 rehabilitation anticipation
## 10272 rehabilitation positive
## 10273 reimburse positive
## 10274 reimbursement positive
## 10275 reimbursement trust
## 10276 rein negative
## 10277 reinforcement positive
## 10278 reinforcement trust
## 10279 reinforcements trust
## 10280 reinstate positive
## 10281 reject anger
## 10282 reject fear
## 10283 reject negative
## 10284 reject sadness
## 10285 rejected negative
## 10286 rejection anger
## 10287 rejection disgust
## 10288 rejection fear
## 10289 rejection negative
## 10290 rejection sadness
## 10291 rejects anger
## 10292 rejects fear
## 10293 rejects negative
## 10294 rejects sadness
## 10295 rejoice anticipation
## 10296 rejoice joy
## 10297 rejoice positive
## 10298 rejoice surprise
## 10299 rejoice trust
## 10300 rejoicing anticipation
## 10301 rejoicing joy
## 10302 rejoicing positive
## 10303 rejoicing surprise
## 10304 rejuvenate positive
## 10305 rejuvenated positive
## 10306 rekindle anticipation
## 10307 rekindle fear
## 10308 rekindle joy
## 10309 rekindle negative
## 10310 rekindle positive
## 10311 rekindle surprise
## 10312 relapse fear
## 10313 relapse negative
## 10314 relapse sadness
## 10315 related trust
## 10316 relative trust
## 10317 relaxation positive
## 10318 relegation negative
## 10319 relevant positive
## 10320 relevant trust
## 10321 reliability positive
## 10322 reliability trust
## 10323 reliable positive
## 10324 reliable trust
## 10325 reliance positive
## 10326 reliance trust
## 10327 relics sadness
## 10328 relief positive
## 10329 relieving positive
## 10330 religion trust
## 10331 relinquish negative
## 10332 reluctant fear
## 10333 reluctant negative
## 10334 remains disgust
## 10335 remains fear
## 10336 remains negative
## 10337 remains positive
## 10338 remains trust
## 10339 remake positive
## 10340 remand anger
## 10341 remand negative
## 10342 remarkable joy
## 10343 remarkable positive
## 10344 remarkable surprise
## 10345 remarkable trust
## 10346 remarkably positive
## 10347 remedial negative
## 10348 remedy anticipation
## 10349 remedy joy
## 10350 remedy positive
## 10351 remedy trust
## 10352 remiss anger
## 10353 remiss disgust
## 10354 remiss negative
## 10355 remiss sadness
## 10356 remission positive
## 10357 remodel positive
## 10358 remorse negative
## 10359 remorse sadness
## 10360 removal negative
## 10361 remove anger
## 10362 remove fear
## 10363 remove negative
## 10364 remove sadness
## 10365 renaissance positive
## 10366 rencontre negative
## 10367 rend negative
## 10368 render positive
## 10369 renegade anger
## 10370 renegade negative
## 10371 renewal positive
## 10372 renounce anger
## 10373 renounce negative
## 10374 renovate anticipation
## 10375 renovate positive
## 10376 renovation anticipation
## 10377 renovation joy
## 10378 renovation positive
## 10379 renown positive
## 10380 renowned positive
## 10381 renunciation negative
## 10382 reorganize positive
## 10383 reparation positive
## 10384 reparation trust
## 10385 repay anger
## 10386 repay anticipation
## 10387 repay joy
## 10388 repay positive
## 10389 repay trust
## 10390 repellant disgust
## 10391 repellant fear
## 10392 repellant negative
## 10393 repellent anger
## 10394 repellent disgust
## 10395 repellent fear
## 10396 repellent negative
## 10397 repelling disgust
## 10398 repelling negative
## 10399 repent fear
## 10400 repent positive
## 10401 replenish positive
## 10402 replete positive
## 10403 reporter positive
## 10404 reporter trust
## 10405 repose positive
## 10406 represented positive
## 10407 representing anticipation
## 10408 repress negative
## 10409 repress sadness
## 10410 repression fear
## 10411 repression negative
## 10412 reprimand anger
## 10413 reprimand negative
## 10414 reprint negative
## 10415 reprisal anger
## 10416 reprisal fear
## 10417 reprisal negative
## 10418 reprisal sadness
## 10419 reproach anger
## 10420 reproach disgust
## 10421 reproach negative
## 10422 reproach sadness
## 10423 reproductive joy
## 10424 reproductive positive
## 10425 republic negative
## 10426 repudiation anger
## 10427 repudiation disgust
## 10428 repudiation negative
## 10429 repulsion disgust
## 10430 repulsion fear
## 10431 repulsion negative
## 10432 reputable positive
## 10433 reputable trust
## 10434 requiem sadness
## 10435 rescind negative
## 10436 rescission negative
## 10437 rescue anticipation
## 10438 rescue joy
## 10439 rescue positive
## 10440 rescue surprise
## 10441 rescue trust
## 10442 resection fear
## 10443 resent anger
## 10444 resent negative
## 10445 resentful anger
## 10446 resentful negative
## 10447 resentment anger
## 10448 resentment disgust
## 10449 resentment negative
## 10450 resentment sadness
## 10451 reserve positive
## 10452 resident positive
## 10453 resign anger
## 10454 resign disgust
## 10455 resign fear
## 10456 resign negative
## 10457 resign sadness
## 10458 resignation negative
## 10459 resignation sadness
## 10460 resignation surprise
## 10461 resigned negative
## 10462 resigned sadness
## 10463 resilient positive
## 10464 resist negative
## 10465 resistance anger
## 10466 resistance negative
## 10467 resistant fear
## 10468 resistant negative
## 10469 resisting anger
## 10470 resisting fear
## 10471 resisting negative
## 10472 resisting sadness
## 10473 resistive positive
## 10474 resolutely positive
## 10475 resources joy
## 10476 resources positive
## 10477 resources trust
## 10478 respect anticipation
## 10479 respect joy
## 10480 respect positive
## 10481 respect trust
## 10482 respectability positive
## 10483 respectable positive
## 10484 respectable trust
## 10485 respectful positive
## 10486 respectful trust
## 10487 respecting positive
## 10488 respects positive
## 10489 respects trust
## 10490 respite joy
## 10491 respite positive
## 10492 respite trust
## 10493 resplendent joy
## 10494 resplendent positive
## 10495 responsible positive
## 10496 responsible trust
## 10497 responsive anticipation
## 10498 responsive positive
## 10499 responsive trust
## 10500 rest positive
## 10501 restful positive
## 10502 restitution anger
## 10503 restitution positive
## 10504 restlessness anticipation
## 10505 restorative anticipation
## 10506 restorative joy
## 10507 restorative positive
## 10508 restorative trust
## 10509 restoring positive
## 10510 restrain anger
## 10511 restrain fear
## 10512 restrain negative
## 10513 restrained fear
## 10514 restraint positive
## 10515 restrict negative
## 10516 restrict sadness
## 10517 restriction anger
## 10518 restriction fear
## 10519 restriction negative
## 10520 restriction sadness
## 10521 restrictive negative
## 10522 result anticipation
## 10523 resultant anticipation
## 10524 resumption positive
## 10525 retain trust
## 10526 retaliate anger
## 10527 retaliate negative
## 10528 retaliation anger
## 10529 retaliation fear
## 10530 retaliation negative
## 10531 retaliatory anger
## 10532 retaliatory negative
## 10533 retard disgust
## 10534 retard fear
## 10535 retard negative
## 10536 retard sadness
## 10537 retardation negative
## 10538 retention positive
## 10539 reticent fear
## 10540 reticent negative
## 10541 retirement anticipation
## 10542 retirement fear
## 10543 retirement joy
## 10544 retirement negative
## 10545 retirement positive
## 10546 retirement sadness
## 10547 retirement trust
## 10548 retort negative
## 10549 retract anger
## 10550 retract negative
## 10551 retraction negative
## 10552 retrenchment fear
## 10553 retrenchment negative
## 10554 retribution anger
## 10555 retribution fear
## 10556 retribution negative
## 10557 retribution sadness
## 10558 retrograde negative
## 10559 reunion anticipation
## 10560 reunion positive
## 10561 reunion trust
## 10562 revel joy
## 10563 revel positive
## 10564 revels joy
## 10565 revels positive
## 10566 revenge anger
## 10567 revenge anticipation
## 10568 revenge fear
## 10569 revenge negative
## 10570 revenge surprise
## 10571 revere anticipation
## 10572 revere joy
## 10573 revere positive
## 10574 revere trust
## 10575 reverence joy
## 10576 reverence positive
## 10577 reverence trust
## 10578 reverend joy
## 10579 reverend positive
## 10580 reverie joy
## 10581 reverie positive
## 10582 reverie trust
## 10583 reversal anger
## 10584 reversal disgust
## 10585 reversal negative
## 10586 reversal surprise
## 10587 revise positive
## 10588 revival anticipation
## 10589 revival joy
## 10590 revival positive
## 10591 revival trust
## 10592 revive anticipation
## 10593 revive negative
## 10594 revive positive
## 10595 revocation negative
## 10596 revoke anger
## 10597 revoke disgust
## 10598 revoke fear
## 10599 revoke negative
## 10600 revoke sadness
## 10601 revolt anger
## 10602 revolt negative
## 10603 revolt surprise
## 10604 revolting anger
## 10605 revolting disgust
## 10606 revolting fear
## 10607 revolting negative
## 10608 revolution anger
## 10609 revolution anticipation
## 10610 revolution fear
## 10611 revolution negative
## 10612 revolution positive
## 10613 revolution sadness
## 10614 revolution surprise
## 10615 revolutionary positive
## 10616 revolver anger
## 10617 revolver fear
## 10618 revolver negative
## 10619 revolver sadness
## 10620 revulsion anger
## 10621 revulsion disgust
## 10622 revulsion fear
## 10623 revulsion negative
## 10624 reward anticipation
## 10625 reward joy
## 10626 reward positive
## 10627 reward surprise
## 10628 reward trust
## 10629 rheumatism anger
## 10630 rheumatism fear
## 10631 rheumatism negative
## 10632 rheumatism sadness
## 10633 rhythm positive
## 10634 rhythmical joy
## 10635 rhythmical positive
## 10636 rhythmical surprise
## 10637 ribbon anger
## 10638 ribbon anticipation
## 10639 ribbon joy
## 10640 ribbon positive
## 10641 richness positive
## 10642 rickety negative
## 10643 riddle surprise
## 10644 riddled negative
## 10645 rider positive
## 10646 ridicule anger
## 10647 ridicule disgust
## 10648 ridicule negative
## 10649 ridicule sadness
## 10650 ridiculous anger
## 10651 ridiculous disgust
## 10652 ridiculous negative
## 10653 rife negative
## 10654 rifle anger
## 10655 rifle fear
## 10656 rifle negative
## 10657 rift negative
## 10658 righteous positive
## 10659 rightful positive
## 10660 rightly positive
## 10661 rigid negative
## 10662 rigidity negative
## 10663 rigor disgust
## 10664 rigor fear
## 10665 rigor negative
## 10666 rigorous negative
## 10667 ringer anger
## 10668 ringer negative
## 10669 riot anger
## 10670 riot fear
## 10671 riot negative
## 10672 riotous anger
## 10673 riotous fear
## 10674 riotous negative
## 10675 riotous surprise
## 10676 ripe positive
## 10677 ripen anticipation
## 10678 ripen positive
## 10679 rising anticipation
## 10680 rising joy
## 10681 rising positive
## 10682 risk anticipation
## 10683 risk fear
## 10684 risk negative
## 10685 risky anticipation
## 10686 risky fear
## 10687 risky negative
## 10688 rivalry anger
## 10689 rivalry negative
## 10690 riveting positive
## 10691 roadster joy
## 10692 roadster positive
## 10693 roadster trust
## 10694 rob anger
## 10695 rob disgust
## 10696 rob fear
## 10697 rob negative
## 10698 rob sadness
## 10699 robber disgust
## 10700 robber fear
## 10701 robber negative
## 10702 robbery anger
## 10703 robbery disgust
## 10704 robbery fear
## 10705 robbery negative
## 10706 robbery sadness
## 10707 robust positive
## 10708 rock positive
## 10709 rocket anger
## 10710 rod fear
## 10711 rod positive
## 10712 rod trust
## 10713 rogue disgust
## 10714 rogue negative
## 10715 rollicking joy
## 10716 rollicking positive
## 10717 romance anticipation
## 10718 romance fear
## 10719 romance joy
## 10720 romance positive
## 10721 romance sadness
## 10722 romance surprise
## 10723 romance trust
## 10724 romantic anticipation
## 10725 romantic joy
## 10726 romantic positive
## 10727 romantic trust
## 10728 romanticism joy
## 10729 romanticism positive
## 10730 romp joy
## 10731 romp positive
## 10732 rook anger
## 10733 rook disgust
## 10734 rook negative
## 10735 rooted positive
## 10736 rooted trust
## 10737 rosy positive
## 10738 rot disgust
## 10739 rot fear
## 10740 rot negative
## 10741 rot sadness
## 10742 rota positive
## 10743 rota trust
## 10744 rotting disgust
## 10745 rotting negative
## 10746 roughness negative
## 10747 roulette anticipation
## 10748 rout negative
## 10749 routine positive
## 10750 routine trust
## 10751 row anger
## 10752 row negative
## 10753 rowdy negative
## 10754 royalty positive
## 10755 rubbish disgust
## 10756 rubbish negative
## 10757 rubble fear
## 10758 rubble negative
## 10759 rubble sadness
## 10760 rubric positive
## 10761 rue negative
## 10762 rue sadness
## 10763 ruffle negative
## 10764 rugged negative
## 10765 ruin fear
## 10766 ruin negative
## 10767 ruin sadness
## 10768 ruined anger
## 10769 ruined disgust
## 10770 ruined fear
## 10771 ruined negative
## 10772 ruined sadness
## 10773 ruinous anger
## 10774 ruinous disgust
## 10775 ruinous fear
## 10776 ruinous negative
## 10777 ruinous sadness
## 10778 rule fear
## 10779 rule trust
## 10780 rumor negative
## 10781 rumor sadness
## 10782 runaway negative
## 10783 runaway sadness
## 10784 rupture fear
## 10785 rupture negative
## 10786 rupture sadness
## 10787 rupture surprise
## 10788 ruse negative
## 10789 rust negative
## 10790 rusty negative
## 10791 ruth positive
## 10792 ruthless anger
## 10793 ruthless disgust
## 10794 ruthless fear
## 10795 ruthless negative
## 10796 saber anger
## 10797 saber fear
## 10798 saber negative
## 10799 sabotage anger
## 10800 sabotage disgust
## 10801 sabotage fear
## 10802 sabotage negative
## 10803 sabotage sadness
## 10804 sabotage surprise
## 10805 sacrifices disgust
## 10806 sacrifices fear
## 10807 sacrifices negative
## 10808 sacrifices sadness
## 10809 sadly negative
## 10810 sadly sadness
## 10811 sadness negative
## 10812 sadness sadness
## 10813 sadness trust
## 10814 safe joy
## 10815 safe positive
## 10816 safe trust
## 10817 safeguard positive
## 10818 safeguard trust
## 10819 safekeeping trust
## 10820 sag fear
## 10821 sag negative
## 10822 sage positive
## 10823 sage trust
## 10824 saint anticipation
## 10825 saint joy
## 10826 saint positive
## 10827 saint surprise
## 10828 saint trust
## 10829 saintly anticipation
## 10830 saintly joy
## 10831 saintly positive
## 10832 saintly surprise
## 10833 saintly trust
## 10834 salary anticipation
## 10835 salary joy
## 10836 salary positive
## 10837 salary trust
## 10838 salient positive
## 10839 saliva anticipation
## 10840 sally surprise
## 10841 saloon anger
## 10842 salutary joy
## 10843 salutary positive
## 10844 salutary trust
## 10845 salute joy
## 10846 salute positive
## 10847 salvation anticipation
## 10848 salvation joy
## 10849 salvation positive
## 10850 salvation trust
## 10851 salve positive
## 10852 samurai fear
## 10853 samurai positive
## 10854 sanctification joy
## 10855 sanctification positive
## 10856 sanctification trust
## 10857 sanctify anticipation
## 10858 sanctify joy
## 10859 sanctify positive
## 10860 sanctify sadness
## 10861 sanctify surprise
## 10862 sanctify trust
## 10863 sanctuary anticipation
## 10864 sanctuary joy
## 10865 sanctuary positive
## 10866 sanctuary trust
## 10867 sanguine positive
## 10868 sanitary positive
## 10869 sap negative
## 10870 sap sadness
## 10871 sappy trust
## 10872 sarcasm anger
## 10873 sarcasm disgust
## 10874 sarcasm negative
## 10875 sarcasm sadness
## 10876 sarcoma fear
## 10877 sarcoma negative
## 10878 sarcoma sadness
## 10879 sardonic negative
## 10880 satanic anger
## 10881 satanic negative
## 10882 satin positive
## 10883 satisfactorily positive
## 10884 satisfied joy
## 10885 satisfied positive
## 10886 saturated disgust
## 10887 saturated negative
## 10888 savage anger
## 10889 savage fear
## 10890 savage negative
## 10891 savagery anger
## 10892 savagery fear
## 10893 savagery negative
## 10894 save joy
## 10895 save positive
## 10896 save trust
## 10897 savings positive
## 10898 savor anticipation
## 10899 savor disgust
## 10900 savor joy
## 10901 savor positive
## 10902 savor sadness
## 10903 savor trust
## 10904 savory positive
## 10905 savvy positive
## 10906 scab negative
## 10907 scaffold fear
## 10908 scaffold negative
## 10909 scalpel fear
## 10910 scalpel negative
## 10911 scaly negative
## 10912 scandal fear
## 10913 scandal negative
## 10914 scandalous anger
## 10915 scandalous negative
## 10916 scanty negative
## 10917 scapegoat anger
## 10918 scapegoat fear
## 10919 scapegoat negative
## 10920 scar anger
## 10921 scar disgust
## 10922 scar fear
## 10923 scar negative
## 10924 scar sadness
## 10925 scarce fear
## 10926 scarce negative
## 10927 scarce sadness
## 10928 scarcely negative
## 10929 scarcely sadness
## 10930 scarcity anger
## 10931 scarcity fear
## 10932 scarcity negative
## 10933 scarcity sadness
## 10934 scare anger
## 10935 scare anticipation
## 10936 scare fear
## 10937 scare negative
## 10938 scare surprise
## 10939 scarecrow fear
## 10940 scarecrow negative
## 10941 scarecrow positive
## 10942 scavenger negative
## 10943 sceptical trust
## 10944 scheme negative
## 10945 schism anger
## 10946 schism negative
## 10947 schizophrenia anger
## 10948 schizophrenia disgust
## 10949 schizophrenia fear
## 10950 schizophrenia negative
## 10951 schizophrenia sadness
## 10952 scholar positive
## 10953 scholarship joy
## 10954 scholarship positive
## 10955 school trust
## 10956 sciatica negative
## 10957 scientific positive
## 10958 scientific trust
## 10959 scientist anticipation
## 10960 scientist positive
## 10961 scientist trust
## 10962 scintilla positive
## 10963 scoff anger
## 10964 scoff disgust
## 10965 scoff negative
## 10966 scold anger
## 10967 scold disgust
## 10968 scold fear
## 10969 scold negative
## 10970 scold sadness
## 10971 scolding anger
## 10972 scolding negative
## 10973 scorching anger
## 10974 scorching negative
## 10975 score anticipation
## 10976 score joy
## 10977 score positive
## 10978 score surprise
## 10979 scorn anger
## 10980 scorn negative
## 10981 scorpion anger
## 10982 scorpion disgust
## 10983 scorpion fear
## 10984 scorpion negative
## 10985 scorpion surprise
## 10986 scotch negative
## 10987 scoundrel anger
## 10988 scoundrel disgust
## 10989 scoundrel fear
## 10990 scoundrel negative
## 10991 scoundrel trust
## 10992 scourge anger
## 10993 scourge fear
## 10994 scourge negative
## 10995 scourge sadness
## 10996 scrambling negative
## 10997 scrapie anger
## 10998 scrapie fear
## 10999 scrapie negative
## 11000 scrapie sadness
## 11001 scream anger
## 11002 scream disgust
## 11003 scream fear
## 11004 scream negative
## 11005 scream surprise
## 11006 screaming anger
## 11007 screaming disgust
## 11008 screaming fear
## 11009 screaming negative
## 11010 screech fear
## 11011 screech negative
## 11012 screech surprise
## 11013 screwed anger
## 11014 screwed negative
## 11015 scribe positive
## 11016 scrimmage negative
## 11017 scrimmage surprise
## 11018 script positive
## 11019 scripture trust
## 11020 scrub disgust
## 11021 scrub negative
## 11022 scrumptious positive
## 11023 scrutinize anticipation
## 11024 scrutinize negative
## 11025 scrutiny negative
## 11026 sculpture positive
## 11027 scum disgust
## 11028 scum negative
## 11029 sea positive
## 11030 seal positive
## 11031 seal trust
## 11032 seals trust
## 11033 sear negative
## 11034 seasoned positive
## 11035 secession negative
## 11036 secluded negative
## 11037 secluded sadness
## 11038 seclusion fear
## 11039 seclusion negative
## 11040 seclusion positive
## 11041 secondhand negative
## 11042 secrecy surprise
## 11043 secrecy trust
## 11044 secret trust
## 11045 secretariat positive
## 11046 secrete disgust
## 11047 secretion disgust
## 11048 secretion negative
## 11049 secretive negative
## 11050 sectarian anger
## 11051 sectarian fear
## 11052 sectarian negative
## 11053 secular anticipation
## 11054 securities trust
## 11055 sedition anger
## 11056 sedition negative
## 11057 sedition sadness
## 11058 seduce negative
## 11059 seduction negative
## 11060 seductive anticipation
## 11061 seek anticipation
## 11062 segregate anger
## 11063 segregate disgust
## 11064 segregate negative
## 11065 segregate sadness
## 11066 segregated negative
## 11067 seize fear
## 11068 seize negative
## 11069 seizure fear
## 11070 selfish anger
## 11071 selfish disgust
## 11072 selfish negative
## 11073 selfishness negative
## 11074 senate trust
## 11075 senile fear
## 11076 senile negative
## 11077 senile sadness
## 11078 seniority positive
## 11079 seniority trust
## 11080 sensational joy
## 11081 sensational positive
## 11082 sense positive
## 11083 senseless anger
## 11084 senseless disgust
## 11085 senseless fear
## 11086 senseless negative
## 11087 senseless sadness
## 11088 senseless surprise
## 11089 sensibility positive
## 11090 sensibly positive
## 11091 sensual anticipation
## 11092 sensual joy
## 11093 sensual negative
## 11094 sensual positive
## 11095 sensual surprise
## 11096 sensual trust
## 11097 sensuality anticipation
## 11098 sensuality joy
## 11099 sensuality positive
## 11100 sensuous joy
## 11101 sensuous positive
## 11102 sentence anger
## 11103 sentence anticipation
## 11104 sentence disgust
## 11105 sentence fear
## 11106 sentence negative
## 11107 sentence sadness
## 11108 sentimental positive
## 11109 sentimentality positive
## 11110 sentinel positive
## 11111 sentinel trust
## 11112 sentry trust
## 11113 separatist anger
## 11114 separatist disgust
## 11115 separatist negative
## 11116 sepsis fear
## 11117 sepsis negative
## 11118 sepsis sadness
## 11119 septic disgust
## 11120 septic negative
## 11121 sequel anticipation
## 11122 sequestration negative
## 11123 sequestration sadness
## 11124 serene negative
## 11125 serene trust
## 11126 serenity anticipation
## 11127 serenity joy
## 11128 serenity positive
## 11129 serenity trust
## 11130 serial anticipation
## 11131 series trust
## 11132 seriousness fear
## 11133 seriousness sadness
## 11134 sermon positive
## 11135 sermon trust
## 11136 serpent disgust
## 11137 serpent fear
## 11138 serpent negative
## 11139 serum positive
## 11140 servant negative
## 11141 servant trust
## 11142 serve negative
## 11143 serve trust
## 11144 servile disgust
## 11145 servile fear
## 11146 servile negative
## 11147 servile sadness
## 11148 servitude negative
## 11149 setback negative
## 11150 setback sadness
## 11151 settlor fear
## 11152 settlor positive
## 11153 sever negative
## 11154 severance sadness
## 11155 sewage disgust
## 11156 sewage negative
## 11157 sewer disgust
## 11158 sewerage disgust
## 11159 sewerage negative
## 11160 sex anticipation
## 11161 sex joy
## 11162 sex positive
## 11163 sex trust
## 11164 shabby disgust
## 11165 shabby negative
## 11166 shack disgust
## 11167 shack negative
## 11168 shack sadness
## 11169 shackle anger
## 11170 shackle anticipation
## 11171 shackle disgust
## 11172 shackle fear
## 11173 shackle negative
## 11174 shackle sadness
## 11175 shady fear
## 11176 shady negative
## 11177 shaking fear
## 11178 shaking negative
## 11179 shaky anger
## 11180 shaky anticipation
## 11181 shaky fear
## 11182 shaky negative
## 11183 sham anger
## 11184 sham disgust
## 11185 sham negative
## 11186 shambles negative
## 11187 shame disgust
## 11188 shame fear
## 11189 shame negative
## 11190 shame sadness
## 11191 shameful negative
## 11192 shameful sadness
## 11193 shameless disgust
## 11194 shameless negative
## 11195 shanghai disgust
## 11196 shanghai fear
## 11197 shanghai negative
## 11198 shank fear
## 11199 shape positive
## 11200 shapely positive
## 11201 share anticipation
## 11202 share joy
## 11203 share positive
## 11204 share trust
## 11205 shark negative
## 11206 sharpen anger
## 11207 sharpen anticipation
## 11208 shatter anger
## 11209 shatter fear
## 11210 shatter negative
## 11211 shatter sadness
## 11212 shatter surprise
## 11213 shattered negative
## 11214 shattered sadness
## 11215 shed negative
## 11216 shell anger
## 11217 shell fear
## 11218 shell negative
## 11219 shell sadness
## 11220 shell surprise
## 11221 shelter positive
## 11222 shelter trust
## 11223 shelved negative
## 11224 shepherd positive
## 11225 shepherd trust
## 11226 sheriff trust
## 11227 shine positive
## 11228 shining anticipation
## 11229 shining joy
## 11230 shining positive
## 11231 ship anticipation
## 11232 shipwreck fear
## 11233 shipwreck negative
## 11234 shipwreck sadness
## 11235 shit anger
## 11236 shit disgust
## 11237 shit negative
## 11238 shiver anger
## 11239 shiver anticipation
## 11240 shiver fear
## 11241 shiver negative
## 11242 shiver sadness
## 11243 shock anger
## 11244 shock fear
## 11245 shock negative
## 11246 shock surprise
## 11247 shockingly surprise
## 11248 shoddy anger
## 11249 shoddy disgust
## 11250 shoddy negative
## 11251 shoot anger
## 11252 shoot fear
## 11253 shoot negative
## 11254 shooter fear
## 11255 shooting anger
## 11256 shooting fear
## 11257 shooting negative
## 11258 shopkeeper trust
## 11259 shoplifting anger
## 11260 shoplifting disgust
## 11261 shoplifting negative
## 11262 shopping anticipation
## 11263 shopping joy
## 11264 shopping positive
## 11265 shopping surprise
## 11266 shopping trust
## 11267 shortage anger
## 11268 shortage fear
## 11269 shortage negative
## 11270 shortage sadness
## 11271 shortcoming negative
## 11272 shortly anticipation
## 11273 shot anger
## 11274 shot fear
## 11275 shot negative
## 11276 shot sadness
## 11277 shot surprise
## 11278 shoulder positive
## 11279 shoulder trust
## 11280 shout anger
## 11281 shout surprise
## 11282 shove anger
## 11283 shove negative
## 11284 show trust
## 11285 showy negative
## 11286 shrapnel fear
## 11287 shrewd positive
## 11288 shriek anger
## 11289 shriek fear
## 11290 shriek negative
## 11291 shriek sadness
## 11292 shriek surprise
## 11293 shrill anger
## 11294 shrill fear
## 11295 shrill negative
## 11296 shrill surprise
## 11297 shrink fear
## 11298 shrink negative
## 11299 shrink sadness
## 11300 shroud sadness
## 11301 shrunk negative
## 11302 shudder fear
## 11303 shudder negative
## 11304 shun anger
## 11305 shun disgust
## 11306 shun negative
## 11307 shun sadness
## 11308 sib trust
## 11309 sick disgust
## 11310 sick negative
## 11311 sick sadness
## 11312 sickening anger
## 11313 sickening disgust
## 11314 sickening fear
## 11315 sickening negative
## 11316 sickening sadness
## 11317 sickly disgust
## 11318 sickly negative
## 11319 sickly sadness
## 11320 sickness disgust
## 11321 sickness fear
## 11322 sickness negative
## 11323 sickness sadness
## 11324 signature trust
## 11325 signify anticipation
## 11326 silk positive
## 11327 silly joy
## 11328 silly negative
## 11329 simmer anger
## 11330 simmer anticipation
## 11331 simmering anticipation
## 11332 simplify anticipation
## 11333 simplify joy
## 11334 simplify positive
## 11335 simplify surprise
## 11336 simplify trust
## 11337 sin anger
## 11338 sin disgust
## 11339 sin fear
## 11340 sin negative
## 11341 sin sadness
## 11342 sincere positive
## 11343 sincere trust
## 11344 sincerity positive
## 11345 sinful anger
## 11346 sinful disgust
## 11347 sinful fear
## 11348 sinful negative
## 11349 sinful sadness
## 11350 sing anticipation
## 11351 sing joy
## 11352 sing positive
## 11353 sing sadness
## 11354 sing trust
## 11355 singly positive
## 11356 singularly surprise
## 11357 sinister anger
## 11358 sinister disgust
## 11359 sinister fear
## 11360 sinister negative
## 11361 sinner anger
## 11362 sinner disgust
## 11363 sinner fear
## 11364 sinner negative
## 11365 sinner sadness
## 11366 sinning disgust
## 11367 sinning negative
## 11368 sir positive
## 11369 sir trust
## 11370 siren fear
## 11371 siren negative
## 11372 sissy negative
## 11373 sisterhood anger
## 11374 sisterhood positive
## 11375 sisterhood sadness
## 11376 sisterhood surprise
## 11377 sisterhood trust
## 11378 sizzle anger
## 11379 skeptical negative
## 11380 sketchy negative
## 11381 skewed anger
## 11382 skewed anticipation
## 11383 skewed negative
## 11384 skid anger
## 11385 skid fear
## 11386 skid negative
## 11387 skid sadness
## 11388 skilled positive
## 11389 skillful positive
## 11390 skillful trust
## 11391 skip negative
## 11392 skirmish anger
## 11393 skirmish negative
## 11394 sky positive
## 11395 slack negative
## 11396 slag negative
## 11397 slam anger
## 11398 slam fear
## 11399 slam negative
## 11400 slam surprise
## 11401 slander anger
## 11402 slander disgust
## 11403 slander negative
## 11404 slanderous negative
## 11405 slap anger
## 11406 slap negative
## 11407 slap surprise
## 11408 slash anger
## 11409 slate positive
## 11410 slaughter anger
## 11411 slaughter disgust
## 11412 slaughter fear
## 11413 slaughter negative
## 11414 slaughter sadness
## 11415 slaughter surprise
## 11416 slaughterhouse anger
## 11417 slaughterhouse disgust
## 11418 slaughterhouse fear
## 11419 slaughterhouse negative
## 11420 slaughterhouse sadness
## 11421 slaughtering anger
## 11422 slaughtering disgust
## 11423 slaughtering fear
## 11424 slaughtering negative
## 11425 slaughtering sadness
## 11426 slaughtering surprise
## 11427 slave anger
## 11428 slave fear
## 11429 slave negative
## 11430 slave sadness
## 11431 slavery anger
## 11432 slavery disgust
## 11433 slavery fear
## 11434 slavery negative
## 11435 slavery sadness
## 11436 slay anger
## 11437 slay negative
## 11438 slayer anger
## 11439 slayer disgust
## 11440 slayer fear
## 11441 slayer negative
## 11442 slayer sadness
## 11443 slayer surprise
## 11444 sleek positive
## 11445 sleet negative
## 11446 slender positive
## 11447 slim positive
## 11448 slime disgust
## 11449 slimy disgust
## 11450 slimy negative
## 11451 slink negative
## 11452 slip negative
## 11453 slip surprise
## 11454 slop disgust
## 11455 slop negative
## 11456 sloppy disgust
## 11457 sloppy negative
## 11458 sloth disgust
## 11459 sloth negative
## 11460 slouch negative
## 11461 slough negative
## 11462 slowness negative
## 11463 sludge disgust
## 11464 sludge negative
## 11465 slug disgust
## 11466 slug negative
## 11467 sluggish negative
## 11468 sluggish sadness
## 11469 slum disgust
## 11470 slum negative
## 11471 slump negative
## 11472 slump sadness
## 11473 slur anger
## 11474 slur disgust
## 11475 slur negative
## 11476 slur sadness
## 11477 slush disgust
## 11478 slush negative
## 11479 slush surprise
## 11480 slut anger
## 11481 slut disgust
## 11482 slut negative
## 11483 sly anger
## 11484 sly disgust
## 11485 sly fear
## 11486 sly negative
## 11487 smack anger
## 11488 smack negative
## 11489 small negative
## 11490 smash anger
## 11491 smash fear
## 11492 smash negative
## 11493 smashed negative
## 11494 smattering negative
## 11495 smell anger
## 11496 smell disgust
## 11497 smell negative
## 11498 smelling disgust
## 11499 smelling negative
## 11500 smile joy
## 11501 smile positive
## 11502 smile surprise
## 11503 smile trust
## 11504 smiling joy
## 11505 smiling positive
## 11506 smirk negative
## 11507 smite anger
## 11508 smite fear
## 11509 smite negative
## 11510 smite sadness
## 11511 smith trust
## 11512 smitten positive
## 11513 smoker negative
## 11514 smoothness positive
## 11515 smother anger
## 11516 smother negative
## 11517 smudge negative
## 11518 smug negative
## 11519 smuggle fear
## 11520 smuggle negative
## 11521 smuggler anger
## 11522 smuggler disgust
## 11523 smuggler fear
## 11524 smuggler negative
## 11525 smuggling negative
## 11526 smut disgust
## 11527 smut fear
## 11528 smut negative
## 11529 snag negative
## 11530 snag surprise
## 11531 snags negative
## 11532 snake disgust
## 11533 snake fear
## 11534 snake negative
## 11535 snare fear
## 11536 snare negative
## 11537 snarl anger
## 11538 snarl disgust
## 11539 snarl negative
## 11540 snarling anger
## 11541 snarling negative
## 11542 sneak anger
## 11543 sneak fear
## 11544 sneak negative
## 11545 sneak surprise
## 11546 sneaking anticipation
## 11547 sneaking fear
## 11548 sneaking negative
## 11549 sneaking trust
## 11550 sneer anger
## 11551 sneer disgust
## 11552 sneer negative
## 11553 sneeze disgust
## 11554 sneeze negative
## 11555 sneeze surprise
## 11556 snicker positive
## 11557 snide negative
## 11558 snob negative
## 11559 snort sadness
## 11560 soak negative
## 11561 sob negative
## 11562 sob sadness
## 11563 sobriety positive
## 11564 sobriety trust
## 11565 sociable positive
## 11566 socialism disgust
## 11567 socialism fear
## 11568 socialist anger
## 11569 socialist disgust
## 11570 socialist fear
## 11571 socialist negative
## 11572 socialist sadness
## 11573 soil disgust
## 11574 soil negative
## 11575 soiled disgust
## 11576 soiled negative
## 11577 solace positive
## 11578 soldier anger
## 11579 soldier positive
## 11580 soldier sadness
## 11581 solid positive
## 11582 solidarity trust
## 11583 solidity positive
## 11584 solidity trust
## 11585 solution positive
## 11586 solvency positive
## 11587 somatic negative
## 11588 somatic surprise
## 11589 somber negative
## 11590 somber sadness
## 11591 sonar anticipation
## 11592 sonar positive
## 11593 sonata positive
## 11594 sonnet joy
## 11595 sonnet positive
## 11596 sonnet sadness
## 11597 sonorous joy
## 11598 sonorous positive
## 11599 soot disgust
## 11600 soot negative
## 11601 soothe positive
## 11602 soothing joy
## 11603 soothing positive
## 11604 soothing trust
## 11605 sorcery anticipation
## 11606 sorcery fear
## 11607 sorcery negative
## 11608 sorcery surprise
## 11609 sordid anger
## 11610 sordid disgust
## 11611 sordid fear
## 11612 sordid negative
## 11613 sordid sadness
## 11614 sore anger
## 11615 sore negative
## 11616 sore sadness
## 11617 sorely negative
## 11618 sorely sadness
## 11619 soreness disgust
## 11620 soreness negative
## 11621 soreness sadness
## 11622 sorrow fear
## 11623 sorrow negative
## 11624 sorrow sadness
## 11625 sorrowful negative
## 11626 sorrowful sadness
## 11627 sorter positive
## 11628 sortie fear
## 11629 sortie negative
## 11630 soulless disgust
## 11631 soulless fear
## 11632 soulless negative
## 11633 soulless sadness
## 11634 soulmate fear
## 11635 soulmate negative
## 11636 soundness anticipation
## 11637 soundness joy
## 11638 soundness positive
## 11639 soundness trust
## 11640 soup positive
## 11641 sour disgust
## 11642 sour negative
## 11643 sovereign trust
## 11644 spa anticipation
## 11645 spa joy
## 11646 spa positive
## 11647 spa surprise
## 11648 spa trust
## 11649 spacious positive
## 11650 spaniel joy
## 11651 spaniel positive
## 11652 spaniel trust
## 11653 spank anger
## 11654 spank fear
## 11655 spank negative
## 11656 spank sadness
## 11657 spanking anger
## 11658 sparkle anticipation
## 11659 sparkle joy
## 11660 sparkle positive
## 11661 sparkle surprise
## 11662 spasm fear
## 11663 spasm negative
## 11664 spat anger
## 11665 spat negative
## 11666 spear anger
## 11667 spear anticipation
## 11668 spear fear
## 11669 spear negative
## 11670 special joy
## 11671 special positive
## 11672 specialist trust
## 11673 specialize trust
## 11674 specie positive
## 11675 speck disgust
## 11676 speck negative
## 11677 spectacle negative
## 11678 spectacle positive
## 11679 spectacular anticipation
## 11680 spectacular surprise
## 11681 specter fear
## 11682 specter negative
## 11683 specter sadness
## 11684 spectral negative
## 11685 speculation fear
## 11686 speculation negative
## 11687 speculation sadness
## 11688 speculative anticipation
## 11689 speech positive
## 11690 speedy positive
## 11691 spelling positive
## 11692 spent negative
## 11693 spew disgust
## 11694 spice positive
## 11695 spider disgust
## 11696 spider fear
## 11697 spike fear
## 11698 spine anger
## 11699 spine negative
## 11700 spine positive
## 11701 spinster fear
## 11702 spinster negative
## 11703 spinster sadness
## 11704 spirit positive
## 11705 spirits anticipation
## 11706 spirits joy
## 11707 spirits positive
## 11708 spirits surprise
## 11709 spit disgust
## 11710 spite anger
## 11711 spite negative
## 11712 spiteful anger
## 11713 spiteful negative
## 11714 splash surprise
## 11715 splendid joy
## 11716 splendid positive
## 11717 splendid surprise
## 11718 splendor anticipation
## 11719 splendor joy
## 11720 splendor positive
## 11721 splendor surprise
## 11722 splinter negative
## 11723 split negative
## 11724 splitting negative
## 11725 splitting sadness
## 11726 spoil disgust
## 11727 spoil negative
## 11728 spoiler negative
## 11729 spoiler sadness
## 11730 spoke negative
## 11731 spokesman trust
## 11732 sponge negative
## 11733 sponsor positive
## 11734 sponsor trust
## 11735 spook fear
## 11736 spook negative
## 11737 spotless positive
## 11738 spotless trust
## 11739 spouse joy
## 11740 spouse positive
## 11741 spouse trust
## 11742 sprain negative
## 11743 sprain sadness
## 11744 spree negative
## 11745 sprite fear
## 11746 sprite negative
## 11747 spruce positive
## 11748 spur fear
## 11749 spurious disgust
## 11750 spurious negative
## 11751 squall fear
## 11752 squall negative
## 11753 squall sadness
## 11754 squatter negative
## 11755 squeamish disgust
## 11756 squeamish fear
## 11757 squeamish negative
## 11758 squelch anger
## 11759 squelch disgust
## 11760 squelch negative
## 11761 squirm disgust
## 11762 squirm negative
## 11763 stab anger
## 11764 stab fear
## 11765 stab negative
## 11766 stab sadness
## 11767 stab surprise
## 11768 stable positive
## 11769 stable trust
## 11770 staccato positive
## 11771 stagger surprise
## 11772 staggering negative
## 11773 stagnant negative
## 11774 stagnant sadness
## 11775 stain disgust
## 11776 stain negative
## 11777 stainless positive
## 11778 stale negative
## 11779 stalemate anger
## 11780 stalemate disgust
## 11781 stalk fear
## 11782 stalk negative
## 11783 stall disgust
## 11784 stallion positive
## 11785 stalwart positive
## 11786 stamina positive
## 11787 stamina trust
## 11788 standing positive
## 11789 standoff anger
## 11790 standoff fear
## 11791 standoff negative
## 11792 standstill anger
## 11793 standstill negative
## 11794 star anticipation
## 11795 star joy
## 11796 star positive
## 11797 star trust
## 11798 staring negative
## 11799 stark negative
## 11800 stark trust
## 11801 starlight positive
## 11802 starry anticipation
## 11803 starry joy
## 11804 starry positive
## 11805 start anticipation
## 11806 startle fear
## 11807 startle negative
## 11808 startle surprise
## 11809 startling surprise
## 11810 starvation fear
## 11811 starvation negative
## 11812 starvation sadness
## 11813 starved negative
## 11814 starving negative
## 11815 stately positive
## 11816 statement positive
## 11817 statement trust
## 11818 stationary negative
## 11819 statistical trust
## 11820 statue positive
## 11821 status positive
## 11822 staunch positive
## 11823 stave negative
## 11824 steadfast positive
## 11825 steadfast trust
## 11826 steady surprise
## 11827 steady trust
## 11828 steal anger
## 11829 steal fear
## 11830 steal negative
## 11831 steal sadness
## 11832 stealing disgust
## 11833 stealing fear
## 11834 stealing negative
## 11835 stealth surprise
## 11836 stealthily surprise
## 11837 stealthy anticipation
## 11838 stealthy fear
## 11839 stealthy negative
## 11840 stealthy surprise
## 11841 stellar positive
## 11842 stereotype negative
## 11843 stereotyped negative
## 11844 sterile negative
## 11845 sterile sadness
## 11846 sterility negative
## 11847 sterling anger
## 11848 sterling anticipation
## 11849 sterling joy
## 11850 sterling negative
## 11851 sterling positive
## 11852 sterling trust
## 11853 stern negative
## 11854 steward positive
## 11855 steward trust
## 11856 sticky disgust
## 11857 stiff negative
## 11858 stiffness negative
## 11859 stifle negative
## 11860 stifled anger
## 11861 stifled fear
## 11862 stifled negative
## 11863 stifled sadness
## 11864 stigma anger
## 11865 stigma disgust
## 11866 stigma fear
## 11867 stigma negative
## 11868 stigma sadness
## 11869 stillborn negative
## 11870 stillborn sadness
## 11871 stillness fear
## 11872 stillness positive
## 11873 stillness sadness
## 11874 sting anger
## 11875 sting fear
## 11876 sting negative
## 11877 stinging negative
## 11878 stingy anger
## 11879 stingy disgust
## 11880 stingy fear
## 11881 stingy negative
## 11882 stingy sadness
## 11883 stink disgust
## 11884 stink negative
## 11885 stinking disgust
## 11886 stinking negative
## 11887 stint fear
## 11888 stint negative
## 11889 stint sadness
## 11890 stocks negative
## 11891 stolen anger
## 11892 stolen negative
## 11893 stomach disgust
## 11894 stone anger
## 11895 stone negative
## 11896 stoned negative
## 11897 stools disgust
## 11898 stools negative
## 11899 stoppage negative
## 11900 store anticipation
## 11901 store positive
## 11902 storm anger
## 11903 storm negative
## 11904 storming anger
## 11905 stormy fear
## 11906 stormy negative
## 11907 straightforward positive
## 11908 straightforward trust
## 11909 strained anger
## 11910 strained negative
## 11911 straits fear
## 11912 straits negative
## 11913 stranded negative
## 11914 stranger fear
## 11915 stranger negative
## 11916 strangle anger
## 11917 strangle disgust
## 11918 strangle fear
## 11919 strangle negative
## 11920 strangle sadness
## 11921 strangle surprise
## 11922 strategic positive
## 11923 strategist anticipation
## 11924 strategist positive
## 11925 strategist trust
## 11926 stray negative
## 11927 strength positive
## 11928 strength trust
## 11929 strengthen positive
## 11930 strengthening joy
## 11931 strengthening positive
## 11932 strengthening trust
## 11933 stress negative
## 11934 stretcher fear
## 11935 stretcher sadness
## 11936 stricken sadness
## 11937 strife anger
## 11938 strife negative
## 11939 strike anger
## 11940 strike negative
## 11941 striking positive
## 11942 strikingly positive
## 11943 strip negative
## 11944 strip sadness
## 11945 stripe negative
## 11946 stripped anger
## 11947 stripped anticipation
## 11948 stripped disgust
## 11949 stripped fear
## 11950 stripped negative
## 11951 stripped sadness
## 11952 strive anticipation
## 11953 stroke fear
## 11954 stroke negative
## 11955 stroke sadness
## 11956 strongly positive
## 11957 structural trust
## 11958 structure positive
## 11959 structure trust
## 11960 struggle anger
## 11961 struggle fear
## 11962 struggle negative
## 11963 struggle sadness
## 11964 strut negative
## 11965 stud positive
## 11966 study positive
## 11967 stuffy negative
## 11968 stumble negative
## 11969 stunned fear
## 11970 stunned negative
## 11971 stunned surprise
## 11972 stunted negative
## 11973 stupid negative
## 11974 stupidity negative
## 11975 stupor negative
## 11976 sturdy positive
## 11977 sty disgust
## 11978 sty negative
## 11979 subdue negative
## 11980 subito surprise
## 11981 subject negative
## 11982 subjected negative
## 11983 subjected sadness
## 11984 subjection negative
## 11985 subjugation anger
## 11986 subjugation disgust
## 11987 subjugation fear
## 11988 subjugation negative
## 11989 subjugation sadness
## 11990 sublimation joy
## 11991 sublimation positive
## 11992 submit anticipation
## 11993 subordinate fear
## 11994 subordinate negative
## 11995 subpoena negative
## 11996 subscribe anticipation
## 11997 subsidence negative
## 11998 subsidence sadness
## 11999 subsidy anger
## 12000 subsidy disgust
## 12001 subsidy negative
## 12002 subsist negative
## 12003 substance positive
## 12004 substantiate trust
## 12005 substantive positive
## 12006 subtract negative
## 12007 subversion anger
## 12008 subversion fear
## 12009 subversion negative
## 12010 subversive anger
## 12011 subversive negative
## 12012 subversive surprise
## 12013 subvert disgust
## 12014 subvert fear
## 12015 subvert negative
## 12016 subvert sadness
## 12017 succeed anticipation
## 12018 succeed joy
## 12019 succeed positive
## 12020 succeed surprise
## 12021 succeed trust
## 12022 succeeding anticipation
## 12023 succeeding joy
## 12024 succeeding positive
## 12025 succeeding trust
## 12026 success anticipation
## 12027 success joy
## 12028 success positive
## 12029 successful anticipation
## 12030 successful joy
## 12031 successful positive
## 12032 successful trust
## 12033 succinct positive
## 12034 succulent negative
## 12035 succulent positive
## 12036 succumb negative
## 12037 suck negative
## 12038 sucker anger
## 12039 sucker negative
## 12040 sudden surprise
## 12041 suddenly surprise
## 12042 sue anger
## 12043 sue negative
## 12044 sue sadness
## 12045 suffer negative
## 12046 sufferer fear
## 12047 sufferer negative
## 12048 sufferer sadness
## 12049 suffering disgust
## 12050 suffering fear
## 12051 suffering negative
## 12052 suffering sadness
## 12053 sufficiency positive
## 12054 suffocating disgust
## 12055 suffocating fear
## 12056 suffocating negative
## 12057 suffocating sadness
## 12058 suffocation anger
## 12059 suffocation fear
## 12060 suffocation negative
## 12061 sugar positive
## 12062 suggest trust
## 12063 suicidal anger
## 12064 suicidal disgust
## 12065 suicidal fear
## 12066 suicidal negative
## 12067 suicidal sadness
## 12068 suicide anger
## 12069 suicide fear
## 12070 suicide negative
## 12071 suicide sadness
## 12072 suitable positive
## 12073 sullen anger
## 12074 sullen negative
## 12075 sullen sadness
## 12076 sultan fear
## 12077 sultry positive
## 12078 summons negative
## 12079 sump disgust
## 12080 sun anticipation
## 12081 sun joy
## 12082 sun positive
## 12083 sun surprise
## 12084 sun trust
## 12085 sundial anticipation
## 12086 sundial trust
## 12087 sunk disgust
## 12088 sunk fear
## 12089 sunk negative
## 12090 sunk sadness
## 12091 sunny anticipation
## 12092 sunny joy
## 12093 sunny positive
## 12094 sunny surprise
## 12095 sunset anticipation
## 12096 sunset positive
## 12097 sunshine joy
## 12098 sunshine positive
## 12099 superb positive
## 12100 superficial negative
## 12101 superfluous negative
## 12102 superhuman positive
## 12103 superior positive
## 12104 superiority positive
## 12105 superman joy
## 12106 superman positive
## 12107 superman trust
## 12108 superstar joy
## 12109 superstar positive
## 12110 superstar trust
## 12111 superstition fear
## 12112 superstition negative
## 12113 superstition positive
## 12114 superstitious anticipation
## 12115 superstitious fear
## 12116 superstitious negative
## 12117 supplication positive
## 12118 supplication trust
## 12119 supplies positive
## 12120 supply positive
## 12121 supported positive
## 12122 supporter joy
## 12123 supporter positive
## 12124 supporter trust
## 12125 supporting positive
## 12126 supporting trust
## 12127 suppress anger
## 12128 suppress fear
## 12129 suppress negative
## 12130 suppress sadness
## 12131 suppression anger
## 12132 suppression disgust
## 12133 suppression fear
## 12134 suppression negative
## 12135 supremacy anger
## 12136 supremacy anticipation
## 12137 supremacy fear
## 12138 supremacy joy
## 12139 supremacy negative
## 12140 supremacy positive
## 12141 supremacy surprise
## 12142 supremacy trust
## 12143 supreme positive
## 12144 supremely positive
## 12145 surcharge anger
## 12146 surcharge negative
## 12147 surety positive
## 12148 surety trust
## 12149 surge surprise
## 12150 surgery fear
## 12151 surgery sadness
## 12152 surly anger
## 12153 surly disgust
## 12154 surly negative
## 12155 surmise positive
## 12156 surpassing positive
## 12157 surprise fear
## 12158 surprise joy
## 12159 surprise positive
## 12160 surprise surprise
## 12161 surprised surprise
## 12162 surprising surprise
## 12163 surprisingly anticipation
## 12164 surprisingly surprise
## 12165 surrender fear
## 12166 surrender negative
## 12167 surrender sadness
## 12168 surrendering negative
## 12169 surrendering sadness
## 12170 surrogate trust
## 12171 surround anticipation
## 12172 surround negative
## 12173 surround positive
## 12174 surveillance fear
## 12175 surveying positive
## 12176 survive positive
## 12177 susceptible negative
## 12178 suspect fear
## 12179 suspect negative
## 12180 suspense anticipation
## 12181 suspense fear
## 12182 suspense surprise
## 12183 suspension fear
## 12184 suspension negative
## 12185 suspicion fear
## 12186 suspicion negative
## 12187 suspicious anger
## 12188 suspicious anticipation
## 12189 suspicious negative
## 12190 swab negative
## 12191 swamp disgust
## 12192 swamp fear
## 12193 swamp negative
## 12194 swampy disgust
## 12195 swampy fear
## 12196 swampy negative
## 12197 swarm disgust
## 12198 swastika anger
## 12199 swastika fear
## 12200 swastika negative
## 12201 swear positive
## 12202 swear trust
## 12203 sweat fear
## 12204 sweet anticipation
## 12205 sweet joy
## 12206 sweet positive
## 12207 sweet surprise
## 12208 sweet trust
## 12209 sweetheart anticipation
## 12210 sweetheart joy
## 12211 sweetheart positive
## 12212 sweetheart sadness
## 12213 sweetheart trust
## 12214 sweetie positive
## 12215 sweetness positive
## 12216 sweets anticipation
## 12217 sweets joy
## 12218 sweets positive
## 12219 swelling fear
## 12220 swelling negative
## 12221 swerve fear
## 12222 swerve surprise
## 12223 swift positive
## 12224 swig disgust
## 12225 swig negative
## 12226 swim anticipation
## 12227 swim fear
## 12228 swim joy
## 12229 swim positive
## 12230 swine disgust
## 12231 swine negative
## 12232 swollen negative
## 12233 symbolic positive
## 12234 symmetrical positive
## 12235 symmetry joy
## 12236 symmetry positive
## 12237 symmetry trust
## 12238 sympathetic fear
## 12239 sympathetic joy
## 12240 sympathetic positive
## 12241 sympathetic sadness
## 12242 sympathetic trust
## 12243 sympathize sadness
## 12244 sympathy positive
## 12245 sympathy sadness
## 12246 symphony anticipation
## 12247 symphony joy
## 12248 symphony positive
## 12249 symptom negative
## 12250 synchronize anticipation
## 12251 synchronize joy
## 12252 synchronize positive
## 12253 synchronize surprise
## 12254 synchronize trust
## 12255 syncope fear
## 12256 syncope negative
## 12257 syncope sadness
## 12258 syncope surprise
## 12259 synergistic positive
## 12260 synergistic trust
## 12261 synod positive
## 12262 synod trust
## 12263 synonymous fear
## 12264 synonymous negative
## 12265 synonymous positive
## 12266 synonymous trust
## 12267 syringe fear
## 12268 system trust
## 12269 taboo disgust
## 12270 taboo fear
## 12271 taboo negative
## 12272 tabulate anticipation
## 12273 tackle anger
## 12274 tackle surprise
## 12275 tact positive
## 12276 tactics fear
## 12277 tactics trust
## 12278 taint negative
## 12279 taint sadness
## 12280 tale positive
## 12281 talent positive
## 12282 talisman positive
## 12283 talk positive
## 12284 talons anger
## 12285 talons fear
## 12286 talons negative
## 12287 tandem trust
## 12288 tangled negative
## 12289 tanned positive
## 12290 tantalizing anticipation
## 12291 tantalizing joy
## 12292 tantalizing negative
## 12293 tantalizing positive
## 12294 tantalizing surprise
## 12295 tantamount trust
## 12296 tardiness negative
## 12297 tardy negative
## 12298 tariff anger
## 12299 tariff disgust
## 12300 tariff negative
## 12301 tarnish disgust
## 12302 tarnish negative
## 12303 tarnish sadness
## 12304 tarry negative
## 12305 task positive
## 12306 tasteful positive
## 12307 tasteless disgust
## 12308 tasteless negative
## 12309 tasty positive
## 12310 taught trust
## 12311 taunt anger
## 12312 taunt fear
## 12313 taunt negative
## 12314 taunt sadness
## 12315 tawny disgust
## 12316 tax negative
## 12317 tax sadness
## 12318 teach joy
## 12319 teach positive
## 12320 teach surprise
## 12321 teach trust
## 12322 teacher positive
## 12323 teacher trust
## 12324 team trust
## 12325 tearful disgust
## 12326 tearful fear
## 12327 tearful sadness
## 12328 tease anger
## 12329 tease anticipation
## 12330 tease negative
## 12331 tease sadness
## 12332 teasing anger
## 12333 teasing fear
## 12334 teasing negative
## 12335 technology positive
## 12336 tedious negative
## 12337 tedium negative
## 12338 teeming disgust
## 12339 teens negative
## 12340 teens positive
## 12341 temperance positive
## 12342 temperate trust
## 12343 tempered positive
## 12344 tempest anger
## 12345 tempest anticipation
## 12346 tempest fear
## 12347 tempest negative
## 12348 tempest sadness
## 12349 tempest surprise
## 12350 temptation negative
## 12351 tenable positive
## 12352 tenacious positive
## 12353 tenacity positive
## 12354 tenancy positive
## 12355 tenant positive
## 12356 tender joy
## 12357 tender positive
## 12358 tender trust
## 12359 tenderness joy
## 12360 tenderness positive
## 12361 tenement negative
## 12362 tension anger
## 12363 terminal fear
## 12364 terminal negative
## 12365 terminal sadness
## 12366 terminate sadness
## 12367 termination negative
## 12368 termination sadness
## 12369 termite disgust
## 12370 termite negative
## 12371 terrible anger
## 12372 terrible disgust
## 12373 terrible fear
## 12374 terrible negative
## 12375 terrible sadness
## 12376 terribly sadness
## 12377 terrific sadness
## 12378 terror fear
## 12379 terror negative
## 12380 terrorism anger
## 12381 terrorism disgust
## 12382 terrorism fear
## 12383 terrorism negative
## 12384 terrorism sadness
## 12385 terrorist anger
## 12386 terrorist disgust
## 12387 terrorist fear
## 12388 terrorist negative
## 12389 terrorist sadness
## 12390 terrorist surprise
## 12391 terrorize anger
## 12392 terrorize fear
## 12393 terrorize negative
## 12394 terrorize sadness
## 12395 testament anticipation
## 12396 testament trust
## 12397 testimony trust
## 12398 tetanus disgust
## 12399 tetanus negative
## 12400 tether negative
## 12401 thankful joy
## 12402 thankful positive
## 12403 thanksgiving joy
## 12404 thanksgiving positive
## 12405 theft anger
## 12406 theft disgust
## 12407 theft fear
## 12408 theft negative
## 12409 theft sadness
## 12410 theism disgust
## 12411 theism negative
## 12412 theocratic anger
## 12413 theocratic fear
## 12414 theocratic negative
## 12415 theocratic sadness
## 12416 theocratic trust
## 12417 theological trust
## 12418 theology anticipation
## 12419 theorem trust
## 12420 theoretical positive
## 12421 theory anticipation
## 12422 theory trust
## 12423 therapeutic joy
## 12424 therapeutic positive
## 12425 therapeutic trust
## 12426 therapeutics positive
## 12427 thermocouple anticipation
## 12428 thermometer trust
## 12429 thief anger
## 12430 thief disgust
## 12431 thief fear
## 12432 thief negative
## 12433 thief sadness
## 12434 thief surprise
## 12435 thinker positive
## 12436 thirst anticipation
## 12437 thirst sadness
## 12438 thirst surprise
## 12439 thirsty negative
## 12440 thirteenth fear
## 12441 thorn negative
## 12442 thorny fear
## 12443 thorny negative
## 12444 thoroughbred positive
## 12445 thought anticipation
## 12446 thoughtful positive
## 12447 thoughtful trust
## 12448 thoughtfulness positive
## 12449 thoughtless anger
## 12450 thoughtless disgust
## 12451 thoughtless negative
## 12452 thrash anger
## 12453 thrash disgust
## 12454 thrash fear
## 12455 thrash negative
## 12456 thrash sadness
## 12457 threat anger
## 12458 threat fear
## 12459 threat negative
## 12460 threaten anger
## 12461 threaten anticipation
## 12462 threaten fear
## 12463 threaten negative
## 12464 threatening anger
## 12465 threatening disgust
## 12466 threatening fear
## 12467 threatening negative
## 12468 thresh anger
## 12469 thresh fear
## 12470 thresh negative
## 12471 thresh sadness
## 12472 thrift disgust
## 12473 thrift positive
## 12474 thrift trust
## 12475 thrill anticipation
## 12476 thrill fear
## 12477 thrill joy
## 12478 thrill positive
## 12479 thrill surprise
## 12480 thrilling anticipation
## 12481 thrilling joy
## 12482 thrilling positive
## 12483 thrilling surprise
## 12484 thriving anticipation
## 12485 thriving joy
## 12486 thriving positive
## 12487 throb fear
## 12488 throb negative
## 12489 throb sadness
## 12490 throne positive
## 12491 throne trust
## 12492 throttle anger
## 12493 throttle negative
## 12494 thug anger
## 12495 thug disgust
## 12496 thug fear
## 12497 thug negative
## 12498 thump anger
## 12499 thump negative
## 12500 thumping fear
## 12501 thundering anger
## 12502 thundering fear
## 12503 thundering negative
## 12504 thwart negative
## 12505 thwart surprise
## 12506 tickle anticipation
## 12507 tickle joy
## 12508 tickle positive
## 12509 tickle surprise
## 12510 tickle trust
## 12511 tiff anger
## 12512 tiff negative
## 12513 tighten anger
## 12514 tiling positive
## 12515 time anticipation
## 12516 timely positive
## 12517 timid fear
## 12518 timid negative
## 12519 timid sadness
## 12520 timidity anticipation
## 12521 timidity fear
## 12522 timidity negative
## 12523 tinsel joy
## 12524 tinsel positive
## 12525 tipsy negative
## 12526 tirade anger
## 12527 tirade disgust
## 12528 tirade negative
## 12529 tired negative
## 12530 tiredness negative
## 12531 tiresome negative
## 12532 tit negative
## 12533 title positive
## 12534 title trust
## 12535 toad disgust
## 12536 toad negative
## 12537 toast joy
## 12538 toast positive
## 12539 tobacco negative
## 12540 toilet disgust
## 12541 toilet negative
## 12542 toils negative
## 12543 tolerant positive
## 12544 tolerate anger
## 12545 tolerate negative
## 12546 tolerate sadness
## 12547 toleration positive
## 12548 tomb sadness
## 12549 tomorrow anticipation
## 12550 toothache fear
## 12551 toothache negative
## 12552 top anticipation
## 12553 top positive
## 12554 top trust
## 12555 topple surprise
## 12556 torment anger
## 12557 torment fear
## 12558 torment negative
## 12559 torment sadness
## 12560 torn negative
## 12561 tornado fear
## 12562 torpedo anger
## 12563 torpedo negative
## 12564 torrent fear
## 12565 torrid negative
## 12566 tort negative
## 12567 tortious anger
## 12568 tortious disgust
## 12569 tortious negative
## 12570 torture anger
## 12571 torture anticipation
## 12572 torture disgust
## 12573 torture fear
## 12574 torture negative
## 12575 torture sadness
## 12576 touched negative
## 12577 touchy anger
## 12578 touchy negative
## 12579 touchy sadness
## 12580 tough negative
## 12581 tough sadness
## 12582 toughness anger
## 12583 toughness fear
## 12584 toughness positive
## 12585 toughness trust
## 12586 tower positive
## 12587 towering anticipation
## 12588 towering fear
## 12589 towering positive
## 12590 toxic disgust
## 12591 toxic negative
## 12592 toxin fear
## 12593 toxin negative
## 12594 track anticipation
## 12595 tract fear
## 12596 trade trust
## 12597 traditional positive
## 12598 tragedy fear
## 12599 tragedy negative
## 12600 tragedy sadness
## 12601 tragic negative
## 12602 trainer trust
## 12603 traitor anger
## 12604 traitor disgust
## 12605 traitor fear
## 12606 traitor negative
## 12607 traitor sadness
## 12608 tramp disgust
## 12609 tramp fear
## 12610 tramp negative
## 12611 tramp sadness
## 12612 trance negative
## 12613 tranquil joy
## 12614 tranquil positive
## 12615 tranquility joy
## 12616 tranquility positive
## 12617 tranquility trust
## 12618 transaction trust
## 12619 transcendence anticipation
## 12620 transcendence joy
## 12621 transcendence positive
## 12622 transcendence surprise
## 12623 transcendence trust
## 12624 transcendental positive
## 12625 transcript trust
## 12626 transgression negative
## 12627 transitional anticipation
## 12628 translation trust
## 12629 trappings negative
## 12630 traps negative
## 12631 trash disgust
## 12632 trash negative
## 12633 trash sadness
## 12634 trashy disgust
## 12635 trashy negative
## 12636 traumatic anger
## 12637 traumatic fear
## 12638 traumatic negative
## 12639 traumatic sadness
## 12640 travail negative
## 12641 traveling positive
## 12642 travesty disgust
## 12643 travesty fear
## 12644 travesty negative
## 12645 travesty sadness
## 12646 treacherous anger
## 12647 treacherous disgust
## 12648 treacherous fear
## 12649 treacherous negative
## 12650 treachery anger
## 12651 treachery fear
## 12652 treachery negative
## 12653 treachery sadness
## 12654 treachery surprise
## 12655 treadmill anticipation
## 12656 treason anger
## 12657 treason disgust
## 12658 treason fear
## 12659 treason negative
## 12660 treason surprise
## 12661 treasure anticipation
## 12662 treasure joy
## 12663 treasure positive
## 12664 treasure trust
## 12665 treasurer trust
## 12666 treat anger
## 12667 treat anticipation
## 12668 treat disgust
## 12669 treat fear
## 12670 treat joy
## 12671 treat negative
## 12672 treat positive
## 12673 treat sadness
## 12674 treat surprise
## 12675 treat trust
## 12676 tree anger
## 12677 tree anticipation
## 12678 tree disgust
## 12679 tree joy
## 12680 tree positive
## 12681 tree surprise
## 12682 tree trust
## 12683 trembling fear
## 12684 trembling negative
## 12685 tremendously positive
## 12686 tremor anger
## 12687 tremor anticipation
## 12688 tremor fear
## 12689 tremor negative
## 12690 tremor sadness
## 12691 trend positive
## 12692 trendy positive
## 12693 trepidation anticipation
## 12694 trepidation fear
## 12695 trepidation negative
## 12696 trepidation surprise
## 12697 trespass anger
## 12698 trespass negative
## 12699 tribe trust
## 12700 tribulation fear
## 12701 tribulation negative
## 12702 tribulation sadness
## 12703 tribunal anticipation
## 12704 tribunal disgust
## 12705 tribunal fear
## 12706 tribunal negative
## 12707 tribunal trust
## 12708 tribune trust
## 12709 tributary anticipation
## 12710 tributary positive
## 12711 tribute positive
## 12712 trick negative
## 12713 trick surprise
## 12714 trickery anger
## 12715 trickery disgust
## 12716 trickery fear
## 12717 trickery negative
## 12718 trickery sadness
## 12719 trickery surprise
## 12720 trifle negative
## 12721 trig positive
## 12722 trip surprise
## 12723 tripping anger
## 12724 tripping negative
## 12725 tripping sadness
## 12726 triumph anticipation
## 12727 triumph joy
## 12728 triumph positive
## 12729 triumphant anticipation
## 12730 triumphant joy
## 12731 triumphant positive
## 12732 triumphant trust
## 12733 troll anger
## 12734 troll fear
## 12735 troll negative
## 12736 trophy anticipation
## 12737 trophy joy
## 12738 trophy positive
## 12739 trophy surprise
## 12740 trophy trust
## 12741 troublesome anger
## 12742 troublesome fear
## 12743 troublesome negative
## 12744 truce joy
## 12745 truce positive
## 12746 truce trust
## 12747 truck trust
## 12748 true joy
## 12749 true positive
## 12750 true trust
## 12751 trump surprise
## 12752 trumpet negative
## 12753 truss trust
## 12754 trust trust
## 12755 trustee trust
## 12756 trusty positive
## 12757 truth positive
## 12758 truth trust
## 12759 truthful trust
## 12760 truthfulness positive
## 12761 truthfulness trust
## 12762 tumble negative
## 12763 tumor fear
## 12764 tumor negative
## 12765 tumour fear
## 12766 tumour negative
## 12767 tumour sadness
## 12768 tumult anger
## 12769 tumult fear
## 12770 tumult negative
## 12771 tumult surprise
## 12772 tumultuous anger
## 12773 tumultuous fear
## 12774 tumultuous negative
## 12775 turbulence anger
## 12776 turbulence fear
## 12777 turbulence negative
## 12778 turbulent fear
## 12779 turbulent negative
## 12780 turmoil anger
## 12781 turmoil fear
## 12782 turmoil negative
## 12783 turmoil sadness
## 12784 tussle anger
## 12785 tutelage positive
## 12786 tutelage trust
## 12787 tutor positive
## 12788 twin positive
## 12789 twinkle anticipation
## 12790 twinkle joy
## 12791 twinkle positive
## 12792 twitch negative
## 12793 typhoon fear
## 12794 typhoon negative
## 12795 tyrannical anger
## 12796 tyrannical disgust
## 12797 tyrannical fear
## 12798 tyrannical negative
## 12799 tyranny fear
## 12800 tyranny negative
## 12801 tyranny sadness
## 12802 tyrant anger
## 12803 tyrant disgust
## 12804 tyrant fear
## 12805 tyrant negative
## 12806 tyrant sadness
## 12807 ugliness disgust
## 12808 ugliness fear
## 12809 ugliness negative
## 12810 ugliness sadness
## 12811 ugly disgust
## 12812 ugly negative
## 12813 ulcer anger
## 12814 ulcer disgust
## 12815 ulcer fear
## 12816 ulcer negative
## 12817 ulcer sadness
## 12818 ulterior negative
## 12819 ultimate anticipation
## 12820 ultimate sadness
## 12821 ultimately anticipation
## 12822 ultimately positive
## 12823 ultimatum anger
## 12824 ultimatum fear
## 12825 ultimatum negative
## 12826 umpire positive
## 12827 umpire trust
## 12828 unable negative
## 12829 unable sadness
## 12830 unacceptable negative
## 12831 unacceptable sadness
## 12832 unaccountable anticipation
## 12833 unaccountable disgust
## 12834 unaccountable negative
## 12835 unaccountable sadness
## 12836 unaccountable trust
## 12837 unacknowledged sadness
## 12838 unanimity positive
## 12839 unanimous positive
## 12840 unanticipated surprise
## 12841 unapproved negative
## 12842 unassuming positive
## 12843 unattached negative
## 12844 unattainable anger
## 12845 unattainable negative
## 12846 unattainable sadness
## 12847 unattractive disgust
## 12848 unattractive negative
## 12849 unattractive sadness
## 12850 unauthorized negative
## 12851 unavoidable negative
## 12852 unaware negative
## 12853 unbearable disgust
## 12854 unbearable negative
## 12855 unbearable sadness
## 12856 unbeaten anticipation
## 12857 unbeaten joy
## 12858 unbeaten negative
## 12859 unbeaten positive
## 12860 unbeaten sadness
## 12861 unbeaten surprise
## 12862 unbelief negative
## 12863 unbelievable negative
## 12864 unbiased positive
## 12865 unborn negative
## 12866 unbreakable positive
## 12867 unbridled anger
## 12868 unbridled anticipation
## 12869 unbridled fear
## 12870 unbridled negative
## 12871 unbridled positive
## 12872 unbridled surprise
## 12873 unbroken positive
## 12874 unbroken trust
## 12875 uncanny fear
## 12876 uncanny negative
## 12877 uncanny surprise
## 12878 uncaring anger
## 12879 uncaring disgust
## 12880 uncaring negative
## 12881 uncaring sadness
## 12882 uncertain anger
## 12883 uncertain disgust
## 12884 uncertain fear
## 12885 uncertain negative
## 12886 uncertain surprise
## 12887 unchangeable negative
## 12888 unclean disgust
## 12889 unclean negative
## 12890 uncomfortable negative
## 12891 unconscionable disgust
## 12892 unconscionable negative
## 12893 unconscious negative
## 12894 unconstitutional negative
## 12895 unconstrained joy
## 12896 unconstrained positive
## 12897 uncontrollable anger
## 12898 uncontrollable anticipation
## 12899 uncontrollable negative
## 12900 uncontrollable surprise
## 12901 uncontrolled negative
## 12902 uncover surprise
## 12903 undecided anticipation
## 12904 undecided fear
## 12905 undecided negative
## 12906 underestimate surprise
## 12907 underline positive
## 12908 undermined negative
## 12909 underpaid anger
## 12910 underpaid negative
## 12911 underpaid sadness
## 12912 undersized negative
## 12913 understanding positive
## 12914 understanding trust
## 12915 undertaker sadness
## 12916 undertaking anticipation
## 12917 underwrite positive
## 12918 underwrite trust
## 12919 undesirable anger
## 12920 undesirable disgust
## 12921 undesirable fear
## 12922 undesirable negative
## 12923 undesirable sadness
## 12924 undesired negative
## 12925 undesired sadness
## 12926 undisclosed anticipation
## 12927 undiscovered surprise
## 12928 undivided positive
## 12929 undo negative
## 12930 undoubted anticipation
## 12931 undoubted disgust
## 12932 undying anticipation
## 12933 undying joy
## 12934 undying positive
## 12935 undying sadness
## 12936 undying trust
## 12937 uneasiness anticipation
## 12938 uneasiness negative
## 12939 uneasiness sadness
## 12940 uneasy disgust
## 12941 uneasy fear
## 12942 uneasy negative
## 12943 uneducated negative
## 12944 uneducated sadness
## 12945 unemployed fear
## 12946 unemployed negative
## 12947 unemployed sadness
## 12948 unequal anger
## 12949 unequal disgust
## 12950 unequal fear
## 12951 unequal negative
## 12952 unequal sadness
## 12953 unequivocal trust
## 12954 unequivocally positive
## 12955 uneven negative
## 12956 unexpected anticipation
## 12957 unexpected fear
## 12958 unexpected joy
## 12959 unexpected negative
## 12960 unexpected positive
## 12961 unexpected surprise
## 12962 unexpectedly surprise
## 12963 unexplained anticipation
## 12964 unexplained negative
## 12965 unexplained sadness
## 12966 unfair anger
## 12967 unfair disgust
## 12968 unfair negative
## 12969 unfair sadness
## 12970 unfairness anger
## 12971 unfairness negative
## 12972 unfairness sadness
## 12973 unfaithful disgust
## 12974 unfaithful negative
## 12975 unfavorable disgust
## 12976 unfavorable negative
## 12977 unfavorable sadness
## 12978 unfinished negative
## 12979 unfold anticipation
## 12980 unfold positive
## 12981 unforeseen surprise
## 12982 unforgiving anger
## 12983 unforgiving negative
## 12984 unforgiving sadness
## 12985 unfortunate negative
## 12986 unfortunate sadness
## 12987 unfriendly anger
## 12988 unfriendly disgust
## 12989 unfriendly fear
## 12990 unfriendly negative
## 12991 unfriendly sadness
## 12992 unfulfilled anger
## 12993 unfulfilled anticipation
## 12994 unfulfilled negative
## 12995 unfulfilled sadness
## 12996 unfulfilled surprise
## 12997 unfurnished negative
## 12998 ungodly negative
## 12999 ungodly sadness
## 13000 ungrateful anger
## 13001 ungrateful disgust
## 13002 ungrateful negative
## 13003 unguarded surprise
## 13004 unhappiness negative
## 13005 unhappiness sadness
## 13006 unhappy anger
## 13007 unhappy disgust
## 13008 unhappy negative
## 13009 unhappy sadness
## 13010 unhealthy disgust
## 13011 unhealthy fear
## 13012 unhealthy negative
## 13013 unhealthy sadness
## 13014 unholy fear
## 13015 unholy negative
## 13016 unification anticipation
## 13017 unification joy
## 13018 unification positive
## 13019 unification trust
## 13020 uniformly positive
## 13021 unimaginable negative
## 13022 unimaginable positive
## 13023 unimaginable surprise
## 13024 unimportant negative
## 13025 unimportant sadness
## 13026 unimpressed negative
## 13027 unimproved negative
## 13028 uninfected positive
## 13029 uninformed negative
## 13030 uninitiated negative
## 13031 uninspired negative
## 13032 uninspired sadness
## 13033 unintelligible negative
## 13034 unintended surprise
## 13035 unintentional surprise
## 13036 unintentionally negative
## 13037 unintentionally surprise
## 13038 uninterested negative
## 13039 uninterested sadness
## 13040 uninteresting negative
## 13041 uninteresting sadness
## 13042 uninvited sadness
## 13043 unique positive
## 13044 unique surprise
## 13045 unison positive
## 13046 unitary positive
## 13047 united positive
## 13048 united trust
## 13049 unity positive
## 13050 unity trust
## 13051 university anticipation
## 13052 university positive
## 13053 unjust anger
## 13054 unjust negative
## 13055 unjustifiable anger
## 13056 unjustifiable disgust
## 13057 unjustifiable fear
## 13058 unjustifiable negative
## 13059 unjustified negative
## 13060 unkind anger
## 13061 unkind disgust
## 13062 unkind fear
## 13063 unkind negative
## 13064 unkind sadness
## 13065 unknown anticipation
## 13066 unknown fear
## 13067 unknown negative
## 13068 unlawful anger
## 13069 unlawful disgust
## 13070 unlawful fear
## 13071 unlawful negative
## 13072 unlawful sadness
## 13073 unlicensed negative
## 13074 unlimited positive
## 13075 unlucky anger
## 13076 unlucky disgust
## 13077 unlucky fear
## 13078 unlucky negative
## 13079 unlucky sadness
## 13080 unmanageable disgust
## 13081 unmanageable negative
## 13082 unnatural disgust
## 13083 unnatural fear
## 13084 unnatural negative
## 13085 unofficial negative
## 13086 unpaid anger
## 13087 unpaid negative
## 13088 unpaid sadness
## 13089 unpleasant disgust
## 13090 unpleasant negative
## 13091 unpleasant sadness
## 13092 unpopular disgust
## 13093 unpopular negative
## 13094 unpopular sadness
## 13095 unprecedented surprise
## 13096 unpredictable negative
## 13097 unpredictable surprise
## 13098 unprepared negative
## 13099 unpretentious positive
## 13100 unproductive negative
## 13101 unprofitable negative
## 13102 unprotected negative
## 13103 unpublished anticipation
## 13104 unpublished negative
## 13105 unpublished sadness
## 13106 unquestionable positive
## 13107 unquestionable trust
## 13108 unquestionably positive
## 13109 unquestionably trust
## 13110 unquestioned positive
## 13111 unquestioned trust
## 13112 unreliable negative
## 13113 unreliable trust
## 13114 unrequited negative
## 13115 unrequited sadness
## 13116 unresolved anticipation
## 13117 unrest fear
## 13118 unrest sadness
## 13119 unruly anger
## 13120 unruly disgust
## 13121 unruly fear
## 13122 unruly negative
## 13123 unsafe fear
## 13124 unsafe negative
## 13125 unsatisfactory disgust
## 13126 unsatisfactory negative
## 13127 unsatisfied disgust
## 13128 unsatisfied negative
## 13129 unsatisfied sadness
## 13130 unsavory negative
## 13131 unscathed positive
## 13132 unscrupulous negative
## 13133 unseat sadness
## 13134 unselfish positive
## 13135 unsettled anger
## 13136 unsettled disgust
## 13137 unsettled fear
## 13138 unsettled negative
## 13139 unsightly disgust
## 13140 unsightly negative
## 13141 unsophisticated negative
## 13142 unspeakable fear
## 13143 unspeakable negative
## 13144 unstable fear
## 13145 unstable negative
## 13146 unstable surprise
## 13147 unsteady fear
## 13148 unsuccessful negative
## 13149 unsuccessful sadness
## 13150 unsuitable negative
## 13151 unsung negative
## 13152 unsupported negative
## 13153 unsurpassed anticipation
## 13154 unsurpassed fear
## 13155 unsurpassed joy
## 13156 unsurpassed positive
## 13157 unsurpassed trust
## 13158 unsuspecting surprise
## 13159 unsustainable negative
## 13160 unsympathetic anger
## 13161 unsympathetic negative
## 13162 untamed negative
## 13163 untenable negative
## 13164 unthinkable anger
## 13165 unthinkable disgust
## 13166 unthinkable fear
## 13167 unthinkable negative
## 13168 untidy disgust
## 13169 untidy negative
## 13170 untie joy
## 13171 untie negative
## 13172 untie positive
## 13173 untimely negative
## 13174 untitled negative
## 13175 untitled sadness
## 13176 untold anticipation
## 13177 untold negative
## 13178 untoward anger
## 13179 untoward disgust
## 13180 untoward negative
## 13181 untrained negative
## 13182 untrue negative
## 13183 untrustworthy anger
## 13184 untrustworthy negative
## 13185 unverified anticipation
## 13186 unwarranted negative
## 13187 unwashed disgust
## 13188 unwashed negative
## 13189 unwavering positive
## 13190 unwavering trust
## 13191 unwelcome negative
## 13192 unwelcome sadness
## 13193 unwell negative
## 13194 unwell sadness
## 13195 unwillingness negative
## 13196 unwise negative
## 13197 unwitting negative
## 13198 unworthy disgust
## 13199 unworthy negative
## 13200 unyielding negative
## 13201 upheaval anger
## 13202 upheaval fear
## 13203 upheaval negative
## 13204 upheaval sadness
## 13205 uphill anticipation
## 13206 uphill fear
## 13207 uphill negative
## 13208 uphill positive
## 13209 uplift anticipation
## 13210 uplift joy
## 13211 uplift positive
## 13212 uplift trust
## 13213 upright positive
## 13214 upright trust
## 13215 uprising anger
## 13216 uprising anticipation
## 13217 uprising fear
## 13218 uprising negative
## 13219 uproar negative
## 13220 upset anger
## 13221 upset negative
## 13222 upset sadness
## 13223 urchin negative
## 13224 urgency anticipation
## 13225 urgency fear
## 13226 urgency surprise
## 13227 urgent anticipation
## 13228 urgent fear
## 13229 urgent negative
## 13230 urgent surprise
## 13231 urn sadness
## 13232 usefulness positive
## 13233 useless negative
## 13234 usher positive
## 13235 usher trust
## 13236 usual positive
## 13237 usual trust
## 13238 usurp anger
## 13239 usurp negative
## 13240 usurped anger
## 13241 usurped fear
## 13242 usurped negative
## 13243 usury negative
## 13244 utility positive
## 13245 utopian anticipation
## 13246 utopian joy
## 13247 utopian positive
## 13248 utopian trust
## 13249 vacancy negative
## 13250 vacation anticipation
## 13251 vacation joy
## 13252 vacation positive
## 13253 vaccine positive
## 13254 vacuous disgust
## 13255 vacuous negative
## 13256 vague negative
## 13257 vagueness negative
## 13258 vainly disgust
## 13259 vainly negative
## 13260 vainly sadness
## 13261 valiant positive
## 13262 validity fear
## 13263 valor positive
## 13264 valor trust
## 13265 valuable positive
## 13266 vampire anger
## 13267 vampire disgust
## 13268 vampire fear
## 13269 vampire negative
## 13270 vanguard positive
## 13271 vanish surprise
## 13272 vanished fear
## 13273 vanished negative
## 13274 vanished sadness
## 13275 vanished surprise
## 13276 vanity negative
## 13277 vanquish positive
## 13278 variable surprise
## 13279 varicella disgust
## 13280 varicella fear
## 13281 varicella negative
## 13282 varicella sadness
## 13283 varicose negative
## 13284 veal sadness
## 13285 veal trust
## 13286 veer fear
## 13287 veer surprise
## 13288 vegetative disgust
## 13289 vegetative negative
## 13290 vegetative sadness
## 13291 vehement anger
## 13292 vehement fear
## 13293 vehement negative
## 13294 velvet positive
## 13295 velvety positive
## 13296 vendetta anger
## 13297 vendetta fear
## 13298 vendetta negative
## 13299 vendetta sadness
## 13300 venerable anticipation
## 13301 venerable joy
## 13302 venerable positive
## 13303 venerable trust
## 13304 veneration positive
## 13305 vengeance anger
## 13306 vengeance negative
## 13307 vengeful anger
## 13308 vengeful fear
## 13309 vengeful negative
## 13310 venom anger
## 13311 venom disgust
## 13312 venom fear
## 13313 venom negative
## 13314 venomous anger
## 13315 venomous disgust
## 13316 venomous fear
## 13317 venomous negative
## 13318 vent anger
## 13319 veracity anticipation
## 13320 veracity joy
## 13321 veracity positive
## 13322 veracity surprise
## 13323 veracity trust
## 13324 verbosity negative
## 13325 verdant positive
## 13326 verdict fear
## 13327 verge anticipation
## 13328 verge fear
## 13329 verge negative
## 13330 verification positive
## 13331 verification trust
## 13332 verified positive
## 13333 verified trust
## 13334 verily positive
## 13335 verily trust
## 13336 veritable positive
## 13337 vermin anger
## 13338 vermin disgust
## 13339 vermin fear
## 13340 vermin negative
## 13341 vernal joy
## 13342 vernal positive
## 13343 versus anger
## 13344 versus negative
## 13345 vertigo fear
## 13346 vertigo negative
## 13347 verve positive
## 13348 vesicular disgust
## 13349 veteran positive
## 13350 veteran trust
## 13351 veto anger
## 13352 veto negative
## 13353 vicar positive
## 13354 vicar trust
## 13355 vice negative
## 13356 vicious anger
## 13357 vicious disgust
## 13358 vicious negative
## 13359 victim anger
## 13360 victim fear
## 13361 victim negative
## 13362 victim sadness
## 13363 victimized anger
## 13364 victimized disgust
## 13365 victimized fear
## 13366 victimized negative
## 13367 victimized sadness
## 13368 victimized surprise
## 13369 victor joy
## 13370 victor positive
## 13371 victorious joy
## 13372 victorious positive
## 13373 victory anticipation
## 13374 victory joy
## 13375 victory positive
## 13376 victory trust
## 13377 vigil anticipation
## 13378 vigilance anticipation
## 13379 vigilance positive
## 13380 vigilance trust
## 13381 vigilant fear
## 13382 vigilant positive
## 13383 vigilant trust
## 13384 vigor positive
## 13385 vigorous positive
## 13386 vigorous trust
## 13387 villager positive
## 13388 villager trust
## 13389 villain fear
## 13390 villain negative
## 13391 villainous anger
## 13392 villainous disgust
## 13393 villainous fear
## 13394 villainous negative
## 13395 vindicate anger
## 13396 vindicated positive
## 13397 vindication anticipation
## 13398 vindication joy
## 13399 vindication positive
## 13400 vindication trust
## 13401 vindictive anger
## 13402 vindictive disgust
## 13403 vindictive negative
## 13404 violation anger
## 13405 violation fear
## 13406 violation negative
## 13407 violation sadness
## 13408 violation surprise
## 13409 violence anger
## 13410 violence fear
## 13411 violence negative
## 13412 violence sadness
## 13413 violent anger
## 13414 violent disgust
## 13415 violent fear
## 13416 violent negative
## 13417 violent surprise
## 13418 violently anger
## 13419 violently disgust
## 13420 violently fear
## 13421 violently negative
## 13422 violently sadness
## 13423 viper fear
## 13424 viper negative
## 13425 virgin positive
## 13426 virgin trust
## 13427 virginity anticipation
## 13428 virginity positive
## 13429 virtue positive
## 13430 virtue trust
## 13431 virtuous joy
## 13432 virtuous positive
## 13433 virtuous trust
## 13434 virulence anger
## 13435 virulence fear
## 13436 virulence negative
## 13437 virus negative
## 13438 vision anticipation
## 13439 vision positive
## 13440 visionary anticipation
## 13441 visionary joy
## 13442 visionary positive
## 13443 visionary trust
## 13444 visit positive
## 13445 visitation negative
## 13446 visitor anticipation
## 13447 visitor joy
## 13448 visitor positive
## 13449 visor anticipation
## 13450 visor surprise
## 13451 vital positive
## 13452 vitality joy
## 13453 vitality positive
## 13454 vitality trust
## 13455 vivacious joy
## 13456 vivacious positive
## 13457 vivid joy
## 13458 vivid positive
## 13459 vixen negative
## 13460 vocabulary positive
## 13461 volatility anger
## 13462 volatility anticipation
## 13463 volatility fear
## 13464 volatility negative
## 13465 volatility surprise
## 13466 volcano fear
## 13467 volcano negative
## 13468 volcano surprise
## 13469 volunteer anticipation
## 13470 volunteer fear
## 13471 volunteer joy
## 13472 volunteer positive
## 13473 volunteer trust
## 13474 volunteers trust
## 13475 voluptuous anticipation
## 13476 voluptuous joy
## 13477 voluptuous positive
## 13478 vomit disgust
## 13479 vomiting negative
## 13480 voodoo negative
## 13481 vote anger
## 13482 vote anticipation
## 13483 vote joy
## 13484 vote negative
## 13485 vote positive
## 13486 vote sadness
## 13487 vote surprise
## 13488 vote trust
## 13489 votive trust
## 13490 vouch positive
## 13491 vouch trust
## 13492 voucher trust
## 13493 vow anticipation
## 13494 vow joy
## 13495 vow positive
## 13496 vow trust
## 13497 voyage anticipation
## 13498 vulgar disgust
## 13499 vulgar negative
## 13500 vulgarity anger
## 13501 vulgarity disgust
## 13502 vulgarity negative
## 13503 vulgarity sadness
## 13504 vulnerability fear
## 13505 vulnerability negative
## 13506 vulnerability sadness
## 13507 vulture disgust
## 13508 vulture fear
## 13509 vulture negative
## 13510 waffle anger
## 13511 waffle negative
## 13512 waffle sadness
## 13513 wages joy
## 13514 wages positive
## 13515 wail fear
## 13516 wail negative
## 13517 wail sadness
## 13518 wait anticipation
## 13519 wait negative
## 13520 wallow disgust
## 13521 wallow negative
## 13522 wallow sadness
## 13523 wan fear
## 13524 wan negative
## 13525 wan sadness
## 13526 wane negative
## 13527 wane sadness
## 13528 wanting negative
## 13529 wanting sadness
## 13530 war fear
## 13531 war negative
## 13532 warden anger
## 13533 warden fear
## 13534 warden negative
## 13535 warden trust
## 13536 ware fear
## 13537 ware negative
## 13538 warfare anger
## 13539 warfare fear
## 13540 warfare negative
## 13541 warfare sadness
## 13542 warlike anger
## 13543 warlike fear
## 13544 warlike negative
## 13545 warlock fear
## 13546 warn anticipation
## 13547 warn fear
## 13548 warn negative
## 13549 warn surprise
## 13550 warn trust
## 13551 warned anticipation
## 13552 warned fear
## 13553 warned surprise
## 13554 warning fear
## 13555 warp anger
## 13556 warp negative
## 13557 warp sadness
## 13558 warped negative
## 13559 warranty positive
## 13560 warranty trust
## 13561 warrior anger
## 13562 warrior fear
## 13563 warrior positive
## 13564 wart disgust
## 13565 wart negative
## 13566 wary fear
## 13567 waste disgust
## 13568 waste negative
## 13569 wasted anger
## 13570 wasted disgust
## 13571 wasted negative
## 13572 wasteful anger
## 13573 wasteful disgust
## 13574 wasteful negative
## 13575 wasteful sadness
## 13576 wasting disgust
## 13577 wasting fear
## 13578 wasting negative
## 13579 wasting sadness
## 13580 watch anticipation
## 13581 watch fear
## 13582 watchdog positive
## 13583 watchdog trust
## 13584 watchful positive
## 13585 watchful trust
## 13586 watchman positive
## 13587 watchman trust
## 13588 waterproof positive
## 13589 watery negative
## 13590 waver fear
## 13591 waver negative
## 13592 weakened negative
## 13593 weakly fear
## 13594 weakly negative
## 13595 weakly sadness
## 13596 weakness negative
## 13597 wealth joy
## 13598 wealth positive
## 13599 wealth trust
## 13600 wear negative
## 13601 wear trust
## 13602 wearily negative
## 13603 wearily sadness
## 13604 weariness negative
## 13605 weariness sadness
## 13606 weary negative
## 13607 weary sadness
## 13608 weatherproof positive
## 13609 weeds negative
## 13610 weeds sadness
## 13611 weep negative
## 13612 weep sadness
## 13613 weeping sadness
## 13614 weigh anticipation
## 13615 weigh trust
## 13616 weight anticipation
## 13617 weight disgust
## 13618 weight fear
## 13619 weight joy
## 13620 weight negative
## 13621 weight positive
## 13622 weight sadness
## 13623 weight surprise
## 13624 weight trust
## 13625 weighty fear
## 13626 weird disgust
## 13627 weird negative
## 13628 weirdo fear
## 13629 weirdo negative
## 13630 welcomed joy
## 13631 welcomed positive
## 13632 wen negative
## 13633 wench anger
## 13634 wench disgust
## 13635 wench negative
## 13636 whack negative
## 13637 whim anticipation
## 13638 whim joy
## 13639 whim negative
## 13640 whim surprise
## 13641 whimper fear
## 13642 whimper sadness
## 13643 whimsical joy
## 13644 whine disgust
## 13645 whine negative
## 13646 whine sadness
## 13647 whip anger
## 13648 whip negative
## 13649 whirlpool fear
## 13650 whirlwind fear
## 13651 whirlwind negative
## 13652 whisky negative
## 13653 white anticipation
## 13654 white joy
## 13655 white positive
## 13656 white trust
## 13657 whiteness joy
## 13658 whiteness positive
## 13659 wholesome positive
## 13660 wholesome trust
## 13661 whore disgust
## 13662 whore negative
## 13663 wicked fear
## 13664 wicked negative
## 13665 wickedness disgust
## 13666 wickedness negative
## 13667 wicket positive
## 13668 widespread positive
## 13669 widow sadness
## 13670 widower sadness
## 13671 wild negative
## 13672 wild surprise
## 13673 wildcat negative
## 13674 wilderness anticipation
## 13675 wilderness fear
## 13676 wilderness sadness
## 13677 wildfire fear
## 13678 wildfire negative
## 13679 wildfire sadness
## 13680 wildfire surprise
## 13681 willful anger
## 13682 willful negative
## 13683 willful sadness
## 13684 willingly positive
## 13685 willingness positive
## 13686 wimp disgust
## 13687 wimp fear
## 13688 wimp negative
## 13689 wimpy anger
## 13690 wimpy disgust
## 13691 wimpy fear
## 13692 wimpy negative
## 13693 wimpy sadness
## 13694 wince anger
## 13695 wince disgust
## 13696 wince fear
## 13697 wince negative
## 13698 wince sadness
## 13699 windfall positive
## 13700 winner anticipation
## 13701 winner joy
## 13702 winner positive
## 13703 winner surprise
## 13704 winning anticipation
## 13705 winning disgust
## 13706 winning joy
## 13707 winning positive
## 13708 winning sadness
## 13709 winning surprise
## 13710 winning trust
## 13711 winnings anticipation
## 13712 winnings joy
## 13713 winnings positive
## 13714 wireless anger
## 13715 wireless anticipation
## 13716 wireless positive
## 13717 wireless surprise
## 13718 wis positive
## 13719 wisdom positive
## 13720 wisdom trust
## 13721 wise positive
## 13722 wishful anticipation
## 13723 wit positive
## 13724 witch anger
## 13725 witch disgust
## 13726 witch fear
## 13727 witch negative
## 13728 witchcraft anger
## 13729 witchcraft fear
## 13730 witchcraft negative
## 13731 witchcraft sadness
## 13732 withdraw negative
## 13733 withdraw sadness
## 13734 wither negative
## 13735 wither sadness
## 13736 withered disgust
## 13737 withered negative
## 13738 withstand anticipation
## 13739 withstand fear
## 13740 withstand positive
## 13741 witness trust
## 13742 wits positive
## 13743 witty joy
## 13744 witty positive
## 13745 wizard anticipation
## 13746 wizard positive
## 13747 wizard surprise
## 13748 woe disgust
## 13749 woe fear
## 13750 woe negative
## 13751 woe sadness
## 13752 woeful negative
## 13753 woeful sadness
## 13754 woefully disgust
## 13755 woefully negative
## 13756 woefully sadness
## 13757 womb positive
## 13758 wonderful joy
## 13759 wonderful positive
## 13760 wonderful surprise
## 13761 wonderful trust
## 13762 wonderfully joy
## 13763 wonderfully positive
## 13764 wonderfully surprise
## 13765 wondrous positive
## 13766 wont anticipation
## 13767 wop anger
## 13768 word positive
## 13769 word trust
## 13770 words anger
## 13771 words negative
## 13772 working positive
## 13773 worm anticipation
## 13774 worm negative
## 13775 worm surprise
## 13776 worn negative
## 13777 worn sadness
## 13778 worried negative
## 13779 worried sadness
## 13780 worry anticipation
## 13781 worry fear
## 13782 worry negative
## 13783 worry sadness
## 13784 worrying anticipation
## 13785 worrying fear
## 13786 worrying negative
## 13787 worrying sadness
## 13788 worse fear
## 13789 worse negative
## 13790 worse sadness
## 13791 worsening disgust
## 13792 worsening negative
## 13793 worsening sadness
## 13794 worship anticipation
## 13795 worship fear
## 13796 worship joy
## 13797 worship positive
## 13798 worship trust
## 13799 worth positive
## 13800 worthless anger
## 13801 worthless disgust
## 13802 worthless negative
## 13803 worthless sadness
## 13804 worthy positive
## 13805 worthy trust
## 13806 wot positive
## 13807 wot trust
## 13808 wound anger
## 13809 wound fear
## 13810 wound negative
## 13811 wound sadness
## 13812 wrangling anger
## 13813 wrangling disgust
## 13814 wrangling fear
## 13815 wrangling negative
## 13816 wrangling sadness
## 13817 wrath anger
## 13818 wrath fear
## 13819 wrath negative
## 13820 wreak anger
## 13821 wreak negative
## 13822 wreck anger
## 13823 wreck disgust
## 13824 wreck fear
## 13825 wreck negative
## 13826 wreck sadness
## 13827 wreck surprise
## 13828 wrecked anger
## 13829 wrecked fear
## 13830 wrecked negative
## 13831 wrecked sadness
## 13832 wrench negative
## 13833 wrestling negative
## 13834 wretch anger
## 13835 wretch disgust
## 13836 wretch negative
## 13837 wretch sadness
## 13838 wretched disgust
## 13839 wretched negative
## 13840 wretched sadness
## 13841 wring anger
## 13842 wrinkled sadness
## 13843 writer positive
## 13844 wrong negative
## 13845 wrongdoing anger
## 13846 wrongdoing disgust
## 13847 wrongdoing negative
## 13848 wrongdoing sadness
## 13849 wrongful anger
## 13850 wrongful disgust
## 13851 wrongful negative
## 13852 wrongful sadness
## 13853 wrongly anger
## 13854 wrongly fear
## 13855 wrongly negative
## 13856 wrongly sadness
## 13857 wrought negative
## 13858 wry negative
## 13859 xenophobia fear
## 13860 xenophobia negative
## 13861 yawn negative
## 13862 yawning negative
## 13863 yearning anticipation
## 13864 yearning joy
## 13865 yearning negative
## 13866 yearning positive
## 13867 yearning trust
## 13868 yell anger
## 13869 yell fear
## 13870 yell negative
## 13871 yell surprise
## 13872 yellows negative
## 13873 yelp anger
## 13874 yelp fear
## 13875 yelp negative
## 13876 yelp surprise
## 13877 young anticipation
## 13878 young joy
## 13879 young positive
## 13880 young surprise
## 13881 younger positive
## 13882 youth anger
## 13883 youth anticipation
## 13884 youth fear
## 13885 youth joy
## 13886 youth positive
## 13887 youth surprise
## 13888 zany surprise
## 13889 zeal anticipation
## 13890 zeal joy
## 13891 zeal positive
## 13892 zeal surprise
## 13893 zeal trust
## 13894 zealous joy
## 13895 zealous positive
## 13896 zealous trust
## 13897 zest anticipation
## 13898 zest joy
## 13899 zest positive
## 13900 zest trust
## 13901 zip negative
loughran
## word sentiment
## 1 abandon negative
## 2 abandoned negative
## 3 abandoning negative
## 4 abandonment negative
## 5 abandonments negative
## 6 abandons negative
## 7 abdicated negative
## 8 abdicates negative
## 9 abdicating negative
## 10 abdication negative
## 11 abdications negative
## 12 aberrant negative
## 13 aberration negative
## 14 aberrational negative
## 15 aberrations negative
## 16 abetting negative
## 17 abnormal negative
## 18 abnormalities negative
## 19 abnormality negative
## 20 abnormally negative
## 21 abolish negative
## 22 abolished negative
## 23 abolishes negative
## 24 abolishing negative
## 25 abrogate negative
## 26 abrogated negative
## 27 abrogates negative
## 28 abrogating negative
## 29 abrogation negative
## 30 abrogations negative
## 31 abrupt negative
## 32 abruptly negative
## 33 abruptness negative
## 34 absence negative
## 35 absences negative
## 36 absenteeism negative
## 37 abuse negative
## 38 abused negative
## 39 abuses negative
## 40 abusing negative
## 41 abusive negative
## 42 abusively negative
## 43 abusiveness negative
## 44 accident negative
## 45 accidental negative
## 46 accidentally negative
## 47 accidents negative
## 48 accusation negative
## 49 accusations negative
## 50 accuse negative
## 51 accused negative
## 52 accuses negative
## 53 accusing negative
## 54 acquiesce negative
## 55 acquiesced negative
## 56 acquiesces negative
## 57 acquiescing negative
## 58 acquit negative
## 59 acquits negative
## 60 acquittal negative
## 61 acquittals negative
## 62 acquitted negative
## 63 acquitting negative
## 64 adulterate negative
## 65 adulterated negative
## 66 adulterating negative
## 67 adulteration negative
## 68 adulterations negative
## 69 adversarial negative
## 70 adversaries negative
## 71 adversary negative
## 72 adverse negative
## 73 adversely negative
## 74 adversities negative
## 75 adversity negative
## 76 aftermath negative
## 77 aftermaths negative
## 78 against negative
## 79 aggravate negative
## 80 aggravated negative
## 81 aggravates negative
## 82 aggravating negative
## 83 aggravation negative
## 84 aggravations negative
## 85 alerted negative
## 86 alerting negative
## 87 alienate negative
## 88 alienated negative
## 89 alienates negative
## 90 alienating negative
## 91 alienation negative
## 92 alienations negative
## 93 allegation negative
## 94 allegations negative
## 95 allege negative
## 96 alleged negative
## 97 allegedly negative
## 98 alleges negative
## 99 alleging negative
## 100 annoy negative
## 101 annoyance negative
## 102 annoyances negative
## 103 annoyed negative
## 104 annoying negative
## 105 annoys negative
## 106 annul negative
## 107 annulled negative
## 108 annulling negative
## 109 annulment negative
## 110 annulments negative
## 111 annuls negative
## 112 anomalies negative
## 113 anomalous negative
## 114 anomalously negative
## 115 anomaly negative
## 116 anticompetitive negative
## 117 antitrust negative
## 118 argue negative
## 119 argued negative
## 120 arguing negative
## 121 argument negative
## 122 argumentative negative
## 123 arguments negative
## 124 arrearage negative
## 125 arrearages negative
## 126 arrears negative
## 127 arrest negative
## 128 arrested negative
## 129 arrests negative
## 130 artificially negative
## 131 assault negative
## 132 assaulted negative
## 133 assaulting negative
## 134 assaults negative
## 135 assertions negative
## 136 attrition negative
## 137 aversely negative
## 138 backdating negative
## 139 bad negative
## 140 bail negative
## 141 bailout negative
## 142 balk negative
## 143 balked negative
## 144 bankrupt negative
## 145 bankruptcies negative
## 146 bankruptcy negative
## 147 bankrupted negative
## 148 bankrupting negative
## 149 bankrupts negative
## 150 bans negative
## 151 barred negative
## 152 barrier negative
## 153 barriers negative
## 154 bottleneck negative
## 155 bottlenecks negative
## 156 boycott negative
## 157 boycotted negative
## 158 boycotting negative
## 159 boycotts negative
## 160 breach negative
## 161 breached negative
## 162 breaches negative
## 163 breaching negative
## 164 break negative
## 165 breakage negative
## 166 breakages negative
## 167 breakdown negative
## 168 breakdowns negative
## 169 breaking negative
## 170 breaks negative
## 171 bribe negative
## 172 bribed negative
## 173 briberies negative
## 174 bribery negative
## 175 bribes negative
## 176 bribing negative
## 177 bridge negative
## 178 broken negative
## 179 burden negative
## 180 burdened negative
## 181 burdening negative
## 182 burdens negative
## 183 burdensome negative
## 184 burned negative
## 185 calamities negative
## 186 calamitous negative
## 187 calamity negative
## 188 cancel negative
## 189 canceled negative
## 190 canceling negative
## 191 cancellation negative
## 192 cancellations negative
## 193 cancelled negative
## 194 cancelling negative
## 195 cancels negative
## 196 careless negative
## 197 carelessly negative
## 198 carelessness negative
## 199 catastrophe negative
## 200 catastrophes negative
## 201 catastrophic negative
## 202 catastrophically negative
## 203 caution negative
## 204 cautionary negative
## 205 cautioned negative
## 206 cautioning negative
## 207 cautions negative
## 208 cease negative
## 209 ceased negative
## 210 ceases negative
## 211 ceasing negative
## 212 censure negative
## 213 censured negative
## 214 censures negative
## 215 censuring negative
## 216 challenge negative
## 217 challenged negative
## 218 challenges negative
## 219 challenging negative
## 220 chargeoffs negative
## 221 circumvent negative
## 222 circumvented negative
## 223 circumventing negative
## 224 circumvention negative
## 225 circumventions negative
## 226 circumvents negative
## 227 claiming negative
## 228 claims negative
## 229 clawback negative
## 230 closed negative
## 231 closeout negative
## 232 closeouts negative
## 233 closing negative
## 234 closings negative
## 235 closure negative
## 236 closures negative
## 237 coerce negative
## 238 coerced negative
## 239 coerces negative
## 240 coercing negative
## 241 coercion negative
## 242 coercive negative
## 243 collapse negative
## 244 collapsed negative
## 245 collapses negative
## 246 collapsing negative
## 247 collision negative
## 248 collisions negative
## 249 collude negative
## 250 colluded negative
## 251 colludes negative
## 252 colluding negative
## 253 collusion negative
## 254 collusions negative
## 255 collusive negative
## 256 complain negative
## 257 complained negative
## 258 complaining negative
## 259 complains negative
## 260 complaint negative
## 261 complaints negative
## 262 complicate negative
## 263 complicated negative
## 264 complicates negative
## 265 complicating negative
## 266 complication negative
## 267 complications negative
## 268 compulsion negative
## 269 concealed negative
## 270 concealing negative
## 271 concede negative
## 272 conceded negative
## 273 concedes negative
## 274 conceding negative
## 275 concern negative
## 276 concerned negative
## 277 concerns negative
## 278 conciliating negative
## 279 conciliation negative
## 280 conciliations negative
## 281 condemn negative
## 282 condemnation negative
## 283 condemnations negative
## 284 condemned negative
## 285 condemning negative
## 286 condemns negative
## 287 condone negative
## 288 condoned negative
## 289 confess negative
## 290 confessed negative
## 291 confesses negative
## 292 confessing negative
## 293 confession negative
## 294 confine negative
## 295 confined negative
## 296 confinement negative
## 297 confinements negative
## 298 confines negative
## 299 confining negative
## 300 confiscate negative
## 301 confiscated negative
## 302 confiscates negative
## 303 confiscating negative
## 304 confiscation negative
## 305 confiscations negative
## 306 conflict negative
## 307 conflicted negative
## 308 conflicting negative
## 309 conflicts negative
## 310 confront negative
## 311 confrontation negative
## 312 confrontational negative
## 313 confrontations negative
## 314 confronted negative
## 315 confronting negative
## 316 confronts negative
## 317 confuse negative
## 318 confused negative
## 319 confuses negative
## 320 confusing negative
## 321 confusingly negative
## 322 confusion negative
## 323 conspiracies negative
## 324 conspiracy negative
## 325 conspirator negative
## 326 conspiratorial negative
## 327 conspirators negative
## 328 conspire negative
## 329 conspired negative
## 330 conspires negative
## 331 conspiring negative
## 332 contempt negative
## 333 contend negative
## 334 contended negative
## 335 contending negative
## 336 contends negative
## 337 contention negative
## 338 contentions negative
## 339 contentious negative
## 340 contentiously negative
## 341 contested negative
## 342 contesting negative
## 343 contraction negative
## 344 contractions negative
## 345 contradict negative
## 346 contradicted negative
## 347 contradicting negative
## 348 contradiction negative
## 349 contradictions negative
## 350 contradictory negative
## 351 contradicts negative
## 352 contrary negative
## 353 controversial negative
## 354 controversies negative
## 355 controversy negative
## 356 convict negative
## 357 convicted negative
## 358 convicting negative
## 359 conviction negative
## 360 convictions negative
## 361 corrected negative
## 362 correcting negative
## 363 correction negative
## 364 corrections negative
## 365 corrects negative
## 366 corrupt negative
## 367 corrupted negative
## 368 corrupting negative
## 369 corruption negative
## 370 corruptions negative
## 371 corruptly negative
## 372 corruptness negative
## 373 costly negative
## 374 counterclaim negative
## 375 counterclaimed negative
## 376 counterclaiming negative
## 377 counterclaims negative
## 378 counterfeit negative
## 379 counterfeited negative
## 380 counterfeiter negative
## 381 counterfeiters negative
## 382 counterfeiting negative
## 383 counterfeits negative
## 384 countermeasure negative
## 385 countermeasures negative
## 386 crime negative
## 387 crimes negative
## 388 criminal negative
## 389 criminally negative
## 390 criminals negative
## 391 crises negative
## 392 crisis negative
## 393 critical negative
## 394 critically negative
## 395 criticism negative
## 396 criticisms negative
## 397 criticize negative
## 398 criticized negative
## 399 criticizes negative
## 400 criticizing negative
## 401 crucial negative
## 402 crucially negative
## 403 culpability negative
## 404 culpable negative
## 405 culpably negative
## 406 cumbersome negative
## 407 curtail negative
## 408 curtailed negative
## 409 curtailing negative
## 410 curtailment negative
## 411 curtailments negative
## 412 curtails negative
## 413 cut negative
## 414 cutback negative
## 415 cutbacks negative
## 416 cyberattack negative
## 417 cyberattacks negative
## 418 cyberbullying negative
## 419 cybercrime negative
## 420 cybercrimes negative
## 421 cybercriminal negative
## 422 cybercriminals negative
## 423 damage negative
## 424 damaged negative
## 425 damages negative
## 426 damaging negative
## 427 dampen negative
## 428 dampened negative
## 429 danger negative
## 430 dangerous negative
## 431 dangerously negative
## 432 dangers negative
## 433 deadlock negative
## 434 deadlocked negative
## 435 deadlocking negative
## 436 deadlocks negative
## 437 deadweight negative
## 438 deadweights negative
## 439 debarment negative
## 440 debarments negative
## 441 debarred negative
## 442 deceased negative
## 443 deceit negative
## 444 deceitful negative
## 445 deceitfulness negative
## 446 deceive negative
## 447 deceived negative
## 448 deceives negative
## 449 deceiving negative
## 450 deception negative
## 451 deceptions negative
## 452 deceptive negative
## 453 deceptively negative
## 454 decline negative
## 455 declined negative
## 456 declines negative
## 457 declining negative
## 458 deface negative
## 459 defaced negative
## 460 defacement negative
## 461 defamation negative
## 462 defamations negative
## 463 defamatory negative
## 464 defame negative
## 465 defamed negative
## 466 defames negative
## 467 defaming negative
## 468 default negative
## 469 defaulted negative
## 470 defaulting negative
## 471 defaults negative
## 472 defeat negative
## 473 defeated negative
## 474 defeating negative
## 475 defeats negative
## 476 defect negative
## 477 defective negative
## 478 defects negative
## 479 defend negative
## 480 defendant negative
## 481 defendants negative
## 482 defended negative
## 483 defending negative
## 484 defends negative
## 485 defensive negative
## 486 defer negative
## 487 deficiencies negative
## 488 deficiency negative
## 489 deficient negative
## 490 deficit negative
## 491 deficits negative
## 492 defraud negative
## 493 defrauded negative
## 494 defrauding negative
## 495 defrauds negative
## 496 defunct negative
## 497 degradation negative
## 498 degradations negative
## 499 degrade negative
## 500 degraded negative
## 501 degrades negative
## 502 degrading negative
## 503 delay negative
## 504 delayed negative
## 505 delaying negative
## 506 delays negative
## 507 deleterious negative
## 508 deliberate negative
## 509 deliberated negative
## 510 deliberately negative
## 511 delinquencies negative
## 512 delinquency negative
## 513 delinquent negative
## 514 delinquently negative
## 515 delinquents negative
## 516 delist negative
## 517 delisted negative
## 518 delisting negative
## 519 delists negative
## 520 demise negative
## 521 demised negative
## 522 demises negative
## 523 demising negative
## 524 demolish negative
## 525 demolished negative
## 526 demolishes negative
## 527 demolishing negative
## 528 demolition negative
## 529 demolitions negative
## 530 demote negative
## 531 demoted negative
## 532 demotes negative
## 533 demoting negative
## 534 demotion negative
## 535 demotions negative
## 536 denial negative
## 537 denials negative
## 538 denied negative
## 539 denies negative
## 540 denigrate negative
## 541 denigrated negative
## 542 denigrates negative
## 543 denigrating negative
## 544 denigration negative
## 545 deny negative
## 546 denying negative
## 547 deplete negative
## 548 depleted negative
## 549 depletes negative
## 550 depleting negative
## 551 depletion negative
## 552 depletions negative
## 553 deprecation negative
## 554 depress negative
## 555 depressed negative
## 556 depresses negative
## 557 depressing negative
## 558 deprivation negative
## 559 deprive negative
## 560 deprived negative
## 561 deprives negative
## 562 depriving negative
## 563 derelict negative
## 564 dereliction negative
## 565 derogatory negative
## 566 destabilization negative
## 567 destabilize negative
## 568 destabilized negative
## 569 destabilizing negative
## 570 destroy negative
## 571 destroyed negative
## 572 destroying negative
## 573 destroys negative
## 574 destruction negative
## 575 destructive negative
## 576 detain negative
## 577 detained negative
## 578 detention negative
## 579 detentions negative
## 580 deter negative
## 581 deteriorate negative
## 582 deteriorated negative
## 583 deteriorates negative
## 584 deteriorating negative
## 585 deterioration negative
## 586 deteriorations negative
## 587 deterred negative
## 588 deterrence negative
## 589 deterrences negative
## 590 deterrent negative
## 591 deterrents negative
## 592 deterring negative
## 593 deters negative
## 594 detract negative
## 595 detracted negative
## 596 detracting negative
## 597 detriment negative
## 598 detrimental negative
## 599 detrimentally negative
## 600 detriments negative
## 601 devalue negative
## 602 devalued negative
## 603 devalues negative
## 604 devaluing negative
## 605 devastate negative
## 606 devastated negative
## 607 devastating negative
## 608 devastation negative
## 609 deviate negative
## 610 deviated negative
## 611 deviates negative
## 612 deviating negative
## 613 deviation negative
## 614 deviations negative
## 615 devolve negative
## 616 devolved negative
## 617 devolves negative
## 618 devolving negative
## 619 difficult negative
## 620 difficulties negative
## 621 difficultly negative
## 622 difficulty negative
## 623 diminish negative
## 624 diminished negative
## 625 diminishes negative
## 626 diminishing negative
## 627 diminution negative
## 628 disadvantage negative
## 629 disadvantaged negative
## 630 disadvantageous negative
## 631 disadvantages negative
## 632 disaffiliation negative
## 633 disagree negative
## 634 disagreeable negative
## 635 disagreed negative
## 636 disagreeing negative
## 637 disagreement negative
## 638 disagreements negative
## 639 disagrees negative
## 640 disallow negative
## 641 disallowance negative
## 642 disallowances negative
## 643 disallowed negative
## 644 disallowing negative
## 645 disallows negative
## 646 disappear negative
## 647 disappearance negative
## 648 disappearances negative
## 649 disappeared negative
## 650 disappearing negative
## 651 disappears negative
## 652 disappoint negative
## 653 disappointed negative
## 654 disappointing negative
## 655 disappointingly negative
## 656 disappointment negative
## 657 disappointments negative
## 658 disappoints negative
## 659 disapproval negative
## 660 disapprovals negative
## 661 disapprove negative
## 662 disapproved negative
## 663 disapproves negative
## 664 disapproving negative
## 665 disassociates negative
## 666 disassociating negative
## 667 disassociation negative
## 668 disassociations negative
## 669 disaster negative
## 670 disasters negative
## 671 disastrous negative
## 672 disastrously negative
## 673 disavow negative
## 674 disavowal negative
## 675 disavowed negative
## 676 disavowing negative
## 677 disavows negative
## 678 disciplinary negative
## 679 disclaim negative
## 680 disclaimed negative
## 681 disclaimer negative
## 682 disclaimers negative
## 683 disclaiming negative
## 684 disclaims negative
## 685 disclose negative
## 686 disclosed negative
## 687 discloses negative
## 688 disclosing negative
## 689 discontinuance negative
## 690 discontinuances negative
## 691 discontinuation negative
## 692 discontinuations negative
## 693 discontinue negative
## 694 discontinued negative
## 695 discontinues negative
## 696 discontinuing negative
## 697 discourage negative
## 698 discouraged negative
## 699 discourages negative
## 700 discouraging negative
## 701 discredit negative
## 702 discredited negative
## 703 discrediting negative
## 704 discredits negative
## 705 discrepancies negative
## 706 discrepancy negative
## 707 disfavor negative
## 708 disfavored negative
## 709 disfavoring negative
## 710 disfavors negative
## 711 disgorge negative
## 712 disgorged negative
## 713 disgorgement negative
## 714 disgorgements negative
## 715 disgorges negative
## 716 disgorging negative
## 717 disgrace negative
## 718 disgraceful negative
## 719 disgracefully negative
## 720 dishonest negative
## 721 dishonestly negative
## 722 dishonesty negative
## 723 dishonor negative
## 724 dishonorable negative
## 725 dishonorably negative
## 726 dishonored negative
## 727 dishonoring negative
## 728 dishonors negative
## 729 disincentives negative
## 730 disinterested negative
## 731 disinterestedly negative
## 732 disinterestedness negative
## 733 disloyal negative
## 734 disloyally negative
## 735 disloyalty negative
## 736 dismal negative
## 737 dismally negative
## 738 dismiss negative
## 739 dismissal negative
## 740 dismissals negative
## 741 dismissed negative
## 742 dismisses negative
## 743 dismissing negative
## 744 disorderly negative
## 745 disparage negative
## 746 disparaged negative
## 747 disparagement negative
## 748 disparagements negative
## 749 disparages negative
## 750 disparaging negative
## 751 disparagingly negative
## 752 disparities negative
## 753 disparity negative
## 754 displace negative
## 755 displaced negative
## 756 displacement negative
## 757 displacements negative
## 758 displaces negative
## 759 displacing negative
## 760 dispose negative
## 761 dispossess negative
## 762 dispossessed negative
## 763 dispossesses negative
## 764 dispossessing negative
## 765 disproportion negative
## 766 disproportional negative
## 767 disproportionate negative
## 768 disproportionately negative
## 769 dispute negative
## 770 disputed negative
## 771 disputes negative
## 772 disputing negative
## 773 disqualification negative
## 774 disqualifications negative
## 775 disqualified negative
## 776 disqualifies negative
## 777 disqualify negative
## 778 disqualifying negative
## 779 disregard negative
## 780 disregarded negative
## 781 disregarding negative
## 782 disregards negative
## 783 disreputable negative
## 784 disrepute negative
## 785 disrupt negative
## 786 disrupted negative
## 787 disrupting negative
## 788 disruption negative
## 789 disruptions negative
## 790 disruptive negative
## 791 disrupts negative
## 792 dissatisfaction negative
## 793 dissatisfied negative
## 794 dissent negative
## 795 dissented negative
## 796 dissenter negative
## 797 dissenters negative
## 798 dissenting negative
## 799 dissents negative
## 800 dissident negative
## 801 dissidents negative
## 802 dissolution negative
## 803 dissolutions negative
## 804 distort negative
## 805 distorted negative
## 806 distorting negative
## 807 distortion negative
## 808 distortions negative
## 809 distorts negative
## 810 distract negative
## 811 distracted negative
## 812 distracting negative
## 813 distraction negative
## 814 distractions negative
## 815 distracts negative
## 816 distress negative
## 817 distressed negative
## 818 disturb negative
## 819 disturbance negative
## 820 disturbances negative
## 821 disturbed negative
## 822 disturbing negative
## 823 disturbs negative
## 824 diversion negative
## 825 divert negative
## 826 diverted negative
## 827 diverting negative
## 828 diverts negative
## 829 divest negative
## 830 divested negative
## 831 divesting negative
## 832 divestiture negative
## 833 divestitures negative
## 834 divestment negative
## 835 divestments negative
## 836 divests negative
## 837 divorce negative
## 838 divorced negative
## 839 divulge negative
## 840 divulged negative
## 841 divulges negative
## 842 divulging negative
## 843 doubt negative
## 844 doubted negative
## 845 doubtful negative
## 846 doubts negative
## 847 downgrade negative
## 848 downgraded negative
## 849 downgrades negative
## 850 downgrading negative
## 851 downsize negative
## 852 downsized negative
## 853 downsizes negative
## 854 downsizing negative
## 855 downsizings negative
## 856 downtime negative
## 857 downtimes negative
## 858 downturn negative
## 859 downturns negative
## 860 downward negative
## 861 downwards negative
## 862 drag negative
## 863 drastic negative
## 864 drastically negative
## 865 drawback negative
## 866 drawbacks negative
## 867 dropped negative
## 868 drought negative
## 869 droughts negative
## 870 duress negative
## 871 dysfunction negative
## 872 dysfunctional negative
## 873 dysfunctions negative
## 874 easing negative
## 875 egregious negative
## 876 egregiously negative
## 877 embargo negative
## 878 embargoed negative
## 879 embargoes negative
## 880 embargoing negative
## 881 embarrass negative
## 882 embarrassed negative
## 883 embarrasses negative
## 884 embarrassing negative
## 885 embarrassment negative
## 886 embarrassments negative
## 887 embezzle negative
## 888 embezzled negative
## 889 embezzlement negative
## 890 embezzlements negative
## 891 embezzler negative
## 892 embezzles negative
## 893 embezzling negative
## 894 encroach negative
## 895 encroached negative
## 896 encroaches negative
## 897 encroaching negative
## 898 encroachment negative
## 899 encroachments negative
## 900 encumber negative
## 901 encumbered negative
## 902 encumbering negative
## 903 encumbers negative
## 904 encumbrance negative
## 905 encumbrances negative
## 906 endanger negative
## 907 endangered negative
## 908 endangering negative
## 909 endangerment negative
## 910 endangers negative
## 911 enjoin negative
## 912 enjoined negative
## 913 enjoining negative
## 914 enjoins negative
## 915 erode negative
## 916 eroded negative
## 917 erodes negative
## 918 eroding negative
## 919 erosion negative
## 920 erratic negative
## 921 erratically negative
## 922 erred negative
## 923 erring negative
## 924 erroneous negative
## 925 erroneously negative
## 926 error negative
## 927 errors negative
## 928 errs negative
## 929 escalate negative
## 930 escalated negative
## 931 escalates negative
## 932 escalating negative
## 933 evade negative
## 934 evaded negative
## 935 evades negative
## 936 evading negative
## 937 evasion negative
## 938 evasions negative
## 939 evasive negative
## 940 evict negative
## 941 evicted negative
## 942 evicting negative
## 943 eviction negative
## 944 evictions negative
## 945 evicts negative
## 946 exacerbate negative
## 947 exacerbated negative
## 948 exacerbates negative
## 949 exacerbating negative
## 950 exacerbation negative
## 951 exacerbations negative
## 952 exaggerate negative
## 953 exaggerated negative
## 954 exaggerates negative
## 955 exaggerating negative
## 956 exaggeration negative
## 957 excessive negative
## 958 excessively negative
## 959 exculpate negative
## 960 exculpated negative
## 961 exculpates negative
## 962 exculpating negative
## 963 exculpation negative
## 964 exculpations negative
## 965 exculpatory negative
## 966 exonerate negative
## 967 exonerated negative
## 968 exonerates negative
## 969 exonerating negative
## 970 exoneration negative
## 971 exonerations negative
## 972 exploit negative
## 973 exploitation negative
## 974 exploitations negative
## 975 exploitative negative
## 976 exploited negative
## 977 exploiting negative
## 978 exploits negative
## 979 expose negative
## 980 exposed negative
## 981 exposes negative
## 982 exposing negative
## 983 expropriate negative
## 984 expropriated negative
## 985 expropriates negative
## 986 expropriating negative
## 987 expropriation negative
## 988 expropriations negative
## 989 expulsion negative
## 990 expulsions negative
## 991 extenuating negative
## 992 fail negative
## 993 failed negative
## 994 failing negative
## 995 failings negative
## 996 fails negative
## 997 failure negative
## 998 failures negative
## 999 fallout negative
## 1000 false negative
## 1001 falsely negative
## 1002 falsification negative
## 1003 falsifications negative
## 1004 falsified negative
## 1005 falsifies negative
## 1006 falsify negative
## 1007 falsifying negative
## 1008 falsity negative
## 1009 fatalities negative
## 1010 fatality negative
## 1011 fatally negative
## 1012 fault negative
## 1013 faulted negative
## 1014 faults negative
## 1015 faulty negative
## 1016 fear negative
## 1017 fears negative
## 1018 felonies negative
## 1019 felonious negative
## 1020 felony negative
## 1021 fictitious negative
## 1022 fined negative
## 1023 fines negative
## 1024 fired negative
## 1025 firing negative
## 1026 flaw negative
## 1027 flawed negative
## 1028 flaws negative
## 1029 forbid negative
## 1030 forbidden negative
## 1031 forbidding negative
## 1032 forbids negative
## 1033 force negative
## 1034 forced negative
## 1035 forcing negative
## 1036 foreclose negative
## 1037 foreclosed negative
## 1038 forecloses negative
## 1039 foreclosing negative
## 1040 foreclosure negative
## 1041 foreclosures negative
## 1042 forego negative
## 1043 foregoes negative
## 1044 foregone negative
## 1045 forestall negative
## 1046 forestalled negative
## 1047 forestalling negative
## 1048 forestalls negative
## 1049 forfeit negative
## 1050 forfeited negative
## 1051 forfeiting negative
## 1052 forfeits negative
## 1053 forfeiture negative
## 1054 forfeitures negative
## 1055 forgers negative
## 1056 forgery negative
## 1057 fraud negative
## 1058 frauds negative
## 1059 fraudulence negative
## 1060 fraudulent negative
## 1061 fraudulently negative
## 1062 frivolous negative
## 1063 frivolously negative
## 1064 frustrate negative
## 1065 frustrated negative
## 1066 frustrates negative
## 1067 frustrating negative
## 1068 frustratingly negative
## 1069 frustration negative
## 1070 frustrations negative
## 1071 fugitive negative
## 1072 fugitives negative
## 1073 gratuitous negative
## 1074 gratuitously negative
## 1075 grievance negative
## 1076 grievances negative
## 1077 grossly negative
## 1078 groundless negative
## 1079 guilty negative
## 1080 halt negative
## 1081 halted negative
## 1082 hamper negative
## 1083 hampered negative
## 1084 hampering negative
## 1085 hampers negative
## 1086 harass negative
## 1087 harassed negative
## 1088 harassing negative
## 1089 harassment negative
## 1090 hardship negative
## 1091 hardships negative
## 1092 harm negative
## 1093 harmed negative
## 1094 harmful negative
## 1095 harmfully negative
## 1096 harming negative
## 1097 harms negative
## 1098 harsh negative
## 1099 harsher negative
## 1100 harshest negative
## 1101 harshly negative
## 1102 harshness negative
## 1103 hazard negative
## 1104 hazardous negative
## 1105 hazards negative
## 1106 hinder negative
## 1107 hindered negative
## 1108 hindering negative
## 1109 hinders negative
## 1110 hindrance negative
## 1111 hindrances negative
## 1112 hostile negative
## 1113 hostility negative
## 1114 hurt negative
## 1115 hurting negative
## 1116 idle negative
## 1117 idled negative
## 1118 idling negative
## 1119 ignore negative
## 1120 ignored negative
## 1121 ignores negative
## 1122 ignoring negative
## 1123 ill negative
## 1124 illegal negative
## 1125 illegalities negative
## 1126 illegality negative
## 1127 illegally negative
## 1128 illegible negative
## 1129 illicit negative
## 1130 illicitly negative
## 1131 illiquid negative
## 1132 illiquidity negative
## 1133 imbalance negative
## 1134 imbalances negative
## 1135 immature negative
## 1136 immoral negative
## 1137 impair negative
## 1138 impaired negative
## 1139 impairing negative
## 1140 impairment negative
## 1141 impairments negative
## 1142 impairs negative
## 1143 impasse negative
## 1144 impasses negative
## 1145 impede negative
## 1146 impeded negative
## 1147 impedes negative
## 1148 impediment negative
## 1149 impediments negative
## 1150 impeding negative
## 1151 impending negative
## 1152 imperative negative
## 1153 imperfection negative
## 1154 imperfections negative
## 1155 imperil negative
## 1156 impermissible negative
## 1157 implicate negative
## 1158 implicated negative
## 1159 implicates negative
## 1160 implicating negative
## 1161 impossibility negative
## 1162 impossible negative
## 1163 impound negative
## 1164 impounded negative
## 1165 impounding negative
## 1166 impounds negative
## 1167 impracticable negative
## 1168 impractical negative
## 1169 impracticalities negative
## 1170 impracticality negative
## 1171 imprisonment negative
## 1172 improper negative
## 1173 improperly negative
## 1174 improprieties negative
## 1175 impropriety negative
## 1176 imprudent negative
## 1177 imprudently negative
## 1178 inability negative
## 1179 inaccessible negative
## 1180 inaccuracies negative
## 1181 inaccuracy negative
## 1182 inaccurate negative
## 1183 inaccurately negative
## 1184 inaction negative
## 1185 inactions negative
## 1186 inactivate negative
## 1187 inactivated negative
## 1188 inactivates negative
## 1189 inactivating negative
## 1190 inactivation negative
## 1191 inactivations negative
## 1192 inactivity negative
## 1193 inadequacies negative
## 1194 inadequacy negative
## 1195 inadequate negative
## 1196 inadequately negative
## 1197 inadvertent negative
## 1198 inadvertently negative
## 1199 inadvisability negative
## 1200 inadvisable negative
## 1201 inappropriate negative
## 1202 inappropriately negative
## 1203 inattention negative
## 1204 incapable negative
## 1205 incapacitated negative
## 1206 incapacity negative
## 1207 incarcerate negative
## 1208 incarcerated negative
## 1209 incarcerates negative
## 1210 incarcerating negative
## 1211 incarceration negative
## 1212 incarcerations negative
## 1213 incidence negative
## 1214 incidences negative
## 1215 incident negative
## 1216 incidents negative
## 1217 incompatibilities negative
## 1218 incompatibility negative
## 1219 incompatible negative
## 1220 incompetence negative
## 1221 incompetency negative
## 1222 incompetent negative
## 1223 incompetently negative
## 1224 incompetents negative
## 1225 incomplete negative
## 1226 incompletely negative
## 1227 incompleteness negative
## 1228 inconclusive negative
## 1229 inconsistencies negative
## 1230 inconsistency negative
## 1231 inconsistent negative
## 1232 inconsistently negative
## 1233 inconvenience negative
## 1234 inconveniences negative
## 1235 inconvenient negative
## 1236 incorrect negative
## 1237 incorrectly negative
## 1238 incorrectness negative
## 1239 indecency negative
## 1240 indecent negative
## 1241 indefeasible negative
## 1242 indefeasibly negative
## 1243 indict negative
## 1244 indictable negative
## 1245 indicted negative
## 1246 indicting negative
## 1247 indictment negative
## 1248 indictments negative
## 1249 ineffective negative
## 1250 ineffectively negative
## 1251 ineffectiveness negative
## 1252 inefficiencies negative
## 1253 inefficiency negative
## 1254 inefficient negative
## 1255 inefficiently negative
## 1256 ineligibility negative
## 1257 ineligible negative
## 1258 inequitable negative
## 1259 inequitably negative
## 1260 inequities negative
## 1261 inequity negative
## 1262 inevitable negative
## 1263 inexperience negative
## 1264 inexperienced negative
## 1265 inferior negative
## 1266 inflicted negative
## 1267 infraction negative
## 1268 infractions negative
## 1269 infringe negative
## 1270 infringed negative
## 1271 infringement negative
## 1272 infringements negative
## 1273 infringes negative
## 1274 infringing negative
## 1275 inhibited negative
## 1276 inimical negative
## 1277 injunction negative
## 1278 injunctions negative
## 1279 injure negative
## 1280 injured negative
## 1281 injures negative
## 1282 injuries negative
## 1283 injuring negative
## 1284 injurious negative
## 1285 injury negative
## 1286 inordinate negative
## 1287 inordinately negative
## 1288 inquiry negative
## 1289 insecure negative
## 1290 insensitive negative
## 1291 insolvencies negative
## 1292 insolvency negative
## 1293 insolvent negative
## 1294 instability negative
## 1295 insubordination negative
## 1296 insufficiency negative
## 1297 insufficient negative
## 1298 insufficiently negative
## 1299 insurrection negative
## 1300 insurrections negative
## 1301 intentional negative
## 1302 interfere negative
## 1303 interfered negative
## 1304 interference negative
## 1305 interferences negative
## 1306 interferes negative
## 1307 interfering negative
## 1308 intermittent negative
## 1309 intermittently negative
## 1310 interrupt negative
## 1311 interrupted negative
## 1312 interrupting negative
## 1313 interruption negative
## 1314 interruptions negative
## 1315 interrupts negative
## 1316 intimidation negative
## 1317 intrusion negative
## 1318 invalid negative
## 1319 invalidate negative
## 1320 invalidated negative
## 1321 invalidates negative
## 1322 invalidating negative
## 1323 invalidation negative
## 1324 invalidity negative
## 1325 investigate negative
## 1326 investigated negative
## 1327 investigates negative
## 1328 investigating negative
## 1329 investigation negative
## 1330 investigations negative
## 1331 involuntarily negative
## 1332 involuntary negative
## 1333 irreconcilable negative
## 1334 irreconcilably negative
## 1335 irrecoverable negative
## 1336 irrecoverably negative
## 1337 irregular negative
## 1338 irregularities negative
## 1339 irregularity negative
## 1340 irregularly negative
## 1341 irreparable negative
## 1342 irreparably negative
## 1343 irreversible negative
## 1344 jeopardize negative
## 1345 jeopardized negative
## 1346 justifiable negative
## 1347 kickback negative
## 1348 kickbacks negative
## 1349 knowingly negative
## 1350 lack negative
## 1351 lacked negative
## 1352 lacking negative
## 1353 lackluster negative
## 1354 lacks negative
## 1355 lag negative
## 1356 lagged negative
## 1357 lagging negative
## 1358 lags negative
## 1359 lapse negative
## 1360 lapsed negative
## 1361 lapses negative
## 1362 lapsing negative
## 1363 late negative
## 1364 laundering negative
## 1365 layoff negative
## 1366 layoffs negative
## 1367 lie negative
## 1368 limitation negative
## 1369 limitations negative
## 1370 lingering negative
## 1371 liquidate negative
## 1372 liquidated negative
## 1373 liquidates negative
## 1374 liquidating negative
## 1375 liquidation negative
## 1376 liquidations negative
## 1377 liquidator negative
## 1378 liquidators negative
## 1379 litigant negative
## 1380 litigants negative
## 1381 litigate negative
## 1382 litigated negative
## 1383 litigates negative
## 1384 litigating negative
## 1385 litigation negative
## 1386 litigations negative
## 1387 lockout negative
## 1388 lockouts negative
## 1389 lose negative
## 1390 loses negative
## 1391 losing negative
## 1392 loss negative
## 1393 losses negative
## 1394 lost negative
## 1395 lying negative
## 1396 malfeasance negative
## 1397 malfunction negative
## 1398 malfunctioned negative
## 1399 malfunctioning negative
## 1400 malfunctions negative
## 1401 malice negative
## 1402 malicious negative
## 1403 maliciously negative
## 1404 malpractice negative
## 1405 manipulate negative
## 1406 manipulated negative
## 1407 manipulates negative
## 1408 manipulating negative
## 1409 manipulation negative
## 1410 manipulations negative
## 1411 manipulative negative
## 1412 markdown negative
## 1413 markdowns negative
## 1414 misapplication negative
## 1415 misapplications negative
## 1416 misapplied negative
## 1417 misapplies negative
## 1418 misapply negative
## 1419 misapplying negative
## 1420 misappropriate negative
## 1421 misappropriated negative
## 1422 misappropriates negative
## 1423 misappropriating negative
## 1424 misappropriation negative
## 1425 misappropriations negative
## 1426 misbranded negative
## 1427 miscalculate negative
## 1428 miscalculated negative
## 1429 miscalculates negative
## 1430 miscalculating negative
## 1431 miscalculation negative
## 1432 miscalculations negative
## 1433 mischaracterization negative
## 1434 mischief negative
## 1435 misclassification negative
## 1436 misclassifications negative
## 1437 misclassified negative
## 1438 misclassify negative
## 1439 miscommunication negative
## 1440 misconduct negative
## 1441 misdated negative
## 1442 misdemeanor negative
## 1443 misdemeanors negative
## 1444 misdirected negative
## 1445 mishandle negative
## 1446 mishandled negative
## 1447 mishandles negative
## 1448 mishandling negative
## 1449 misinform negative
## 1450 misinformation negative
## 1451 misinformed negative
## 1452 misinforming negative
## 1453 misinforms negative
## 1454 misinterpret negative
## 1455 misinterpretation negative
## 1456 misinterpretations negative
## 1457 misinterpreted negative
## 1458 misinterpreting negative
## 1459 misinterprets negative
## 1460 misjudge negative
## 1461 misjudged negative
## 1462 misjudges negative
## 1463 misjudging negative
## 1464 misjudgment negative
## 1465 misjudgments negative
## 1466 mislabel negative
## 1467 mislabeled negative
## 1468 mislabeling negative
## 1469 mislabelled negative
## 1470 mislabels negative
## 1471 mislead negative
## 1472 misleading negative
## 1473 misleadingly negative
## 1474 misleads negative
## 1475 misled negative
## 1476 mismanage negative
## 1477 mismanaged negative
## 1478 mismanagement negative
## 1479 mismanages negative
## 1480 mismanaging negative
## 1481 mismatch negative
## 1482 mismatched negative
## 1483 mismatches negative
## 1484 mismatching negative
## 1485 misplaced negative
## 1486 misprice negative
## 1487 mispricing negative
## 1488 mispricings negative
## 1489 misrepresent negative
## 1490 misrepresentation negative
## 1491 misrepresentations negative
## 1492 misrepresented negative
## 1493 misrepresenting negative
## 1494 misrepresents negative
## 1495 miss negative
## 1496 missed negative
## 1497 misses negative
## 1498 misstate negative
## 1499 misstated negative
## 1500 misstatement negative
## 1501 misstatements negative
## 1502 misstates negative
## 1503 misstating negative
## 1504 misstep negative
## 1505 missteps negative
## 1506 mistake negative
## 1507 mistaken negative
## 1508 mistakenly negative
## 1509 mistakes negative
## 1510 mistaking negative
## 1511 mistrial negative
## 1512 mistrials negative
## 1513 misunderstand negative
## 1514 misunderstanding negative
## 1515 misunderstandings negative
## 1516 misunderstood negative
## 1517 misuse negative
## 1518 misused negative
## 1519 misuses negative
## 1520 misusing negative
## 1521 monopolistic negative
## 1522 monopolists negative
## 1523 monopolization negative
## 1524 monopolize negative
## 1525 monopolized negative
## 1526 monopolizes negative
## 1527 monopolizing negative
## 1528 monopoly negative
## 1529 moratoria negative
## 1530 moratorium negative
## 1531 moratoriums negative
## 1532 mothballed negative
## 1533 mothballing negative
## 1534 negative negative
## 1535 negatively negative
## 1536 negatives negative
## 1537 neglect negative
## 1538 neglected negative
## 1539 neglectful negative
## 1540 neglecting negative
## 1541 neglects negative
## 1542 negligence negative
## 1543 negligences negative
## 1544 negligent negative
## 1545 negligently negative
## 1546 nonattainment negative
## 1547 noncompetitive negative
## 1548 noncompliance negative
## 1549 noncompliances negative
## 1550 noncompliant negative
## 1551 noncomplying negative
## 1552 nonconforming negative
## 1553 nonconformities negative
## 1554 nonconformity negative
## 1555 nondisclosure negative
## 1556 nonfunctional negative
## 1557 nonpayment negative
## 1558 nonpayments negative
## 1559 nonperformance negative
## 1560 nonperformances negative
## 1561 nonperforming negative
## 1562 nonproducing negative
## 1563 nonproductive negative
## 1564 nonrecoverable negative
## 1565 nonrenewal negative
## 1566 nuisance negative
## 1567 nuisances negative
## 1568 nullification negative
## 1569 nullifications negative
## 1570 nullified negative
## 1571 nullifies negative
## 1572 nullify negative
## 1573 nullifying negative
## 1574 objected negative
## 1575 objecting negative
## 1576 objection negative
## 1577 objectionable negative
## 1578 objectionably negative
## 1579 objections negative
## 1580 obscene negative
## 1581 obscenity negative
## 1582 obsolescence negative
## 1583 obsolete negative
## 1584 obstacle negative
## 1585 obstacles negative
## 1586 obstruct negative
## 1587 obstructed negative
## 1588 obstructing negative
## 1589 obstruction negative
## 1590 obstructions negative
## 1591 offence negative
## 1592 offences negative
## 1593 offend negative
## 1594 offended negative
## 1595 offender negative
## 1596 offenders negative
## 1597 offending negative
## 1598 offends negative
## 1599 omission negative
## 1600 omissions negative
## 1601 omit negative
## 1602 omits negative
## 1603 omitted negative
## 1604 omitting negative
## 1605 onerous negative
## 1606 opportunistic negative
## 1607 opportunistically negative
## 1608 oppose negative
## 1609 opposed negative
## 1610 opposes negative
## 1611 opposing negative
## 1612 opposition negative
## 1613 oppositions negative
## 1614 outage negative
## 1615 outages negative
## 1616 outdated negative
## 1617 outmoded negative
## 1618 overage negative
## 1619 overages negative
## 1620 overbuild negative
## 1621 overbuilding negative
## 1622 overbuilds negative
## 1623 overbuilt negative
## 1624 overburden negative
## 1625 overburdened negative
## 1626 overburdening negative
## 1627 overcapacities negative
## 1628 overcapacity negative
## 1629 overcharge negative
## 1630 overcharged negative
## 1631 overcharges negative
## 1632 overcharging negative
## 1633 overcome negative
## 1634 overcomes negative
## 1635 overcoming negative
## 1636 overdue negative
## 1637 overestimate negative
## 1638 overestimated negative
## 1639 overestimates negative
## 1640 overestimating negative
## 1641 overestimation negative
## 1642 overestimations negative
## 1643 overload negative
## 1644 overloaded negative
## 1645 overloading negative
## 1646 overloads negative
## 1647 overlook negative
## 1648 overlooked negative
## 1649 overlooking negative
## 1650 overlooks negative
## 1651 overpaid negative
## 1652 overpayment negative
## 1653 overpayments negative
## 1654 overproduced negative
## 1655 overproduces negative
## 1656 overproducing negative
## 1657 overproduction negative
## 1658 overrun negative
## 1659 overrunning negative
## 1660 overruns negative
## 1661 overshadow negative
## 1662 overshadowed negative
## 1663 overshadowing negative
## 1664 overshadows negative
## 1665 overstate negative
## 1666 overstated negative
## 1667 overstatement negative
## 1668 overstatements negative
## 1669 overstates negative
## 1670 overstating negative
## 1671 oversupplied negative
## 1672 oversupplies negative
## 1673 oversupply negative
## 1674 oversupplying negative
## 1675 overtly negative
## 1676 overturn negative
## 1677 overturned negative
## 1678 overturning negative
## 1679 overturns negative
## 1680 overvalue negative
## 1681 overvalued negative
## 1682 overvaluing negative
## 1683 panic negative
## 1684 panics negative
## 1685 penalize negative
## 1686 penalized negative
## 1687 penalizes negative
## 1688 penalizing negative
## 1689 penalties negative
## 1690 penalty negative
## 1691 peril negative
## 1692 perils negative
## 1693 perjury negative
## 1694 perpetrate negative
## 1695 perpetrated negative
## 1696 perpetrates negative
## 1697 perpetrating negative
## 1698 perpetration negative
## 1699 persist negative
## 1700 persisted negative
## 1701 persistence negative
## 1702 persistent negative
## 1703 persistently negative
## 1704 persisting negative
## 1705 persists negative
## 1706 pervasive negative
## 1707 pervasively negative
## 1708 pervasiveness negative
## 1709 petty negative
## 1710 picket negative
## 1711 picketed negative
## 1712 picketing negative
## 1713 plaintiff negative
## 1714 plaintiffs negative
## 1715 plea negative
## 1716 plead negative
## 1717 pleaded negative
## 1718 pleading negative
## 1719 pleadings negative
## 1720 pleads negative
## 1721 pleas negative
## 1722 pled negative
## 1723 poor negative
## 1724 poorly negative
## 1725 poses negative
## 1726 posing negative
## 1727 postpone negative
## 1728 postponed negative
## 1729 postponement negative
## 1730 postponements negative
## 1731 postpones negative
## 1732 postponing negative
## 1733 precipitated negative
## 1734 precipitous negative
## 1735 precipitously negative
## 1736 preclude negative
## 1737 precluded negative
## 1738 precludes negative
## 1739 precluding negative
## 1740 predatory negative
## 1741 prejudice negative
## 1742 prejudiced negative
## 1743 prejudices negative
## 1744 prejudicial negative
## 1745 prejudicing negative
## 1746 premature negative
## 1747 prematurely negative
## 1748 pressing negative
## 1749 pretrial negative
## 1750 preventing negative
## 1751 prevention negative
## 1752 prevents negative
## 1753 problem negative
## 1754 problematic negative
## 1755 problematical negative
## 1756 problems negative
## 1757 prolong negative
## 1758 prolongation negative
## 1759 prolongations negative
## 1760 prolonged negative
## 1761 prolonging negative
## 1762 prolongs negative
## 1763 prone negative
## 1764 prosecute negative
## 1765 prosecuted negative
## 1766 prosecutes negative
## 1767 prosecuting negative
## 1768 prosecution negative
## 1769 prosecutions negative
## 1770 protest negative
## 1771 protested negative
## 1772 protester negative
## 1773 protesters negative
## 1774 protesting negative
## 1775 protestor negative
## 1776 protestors negative
## 1777 protests negative
## 1778 protracted negative
## 1779 protraction negative
## 1780 provoke negative
## 1781 provoked negative
## 1782 provokes negative
## 1783 provoking negative
## 1784 punished negative
## 1785 punishes negative
## 1786 punishing negative
## 1787 punishment negative
## 1788 punishments negative
## 1789 punitive negative
## 1790 purport negative
## 1791 purported negative
## 1792 purportedly negative
## 1793 purporting negative
## 1794 purports negative
## 1795 question negative
## 1796 questionable negative
## 1797 questionably negative
## 1798 questioned negative
## 1799 questioning negative
## 1800 questions negative
## 1801 quit negative
## 1802 quitting negative
## 1803 racketeer negative
## 1804 racketeering negative
## 1805 rationalization negative
## 1806 rationalizations negative
## 1807 rationalize negative
## 1808 rationalized negative
## 1809 rationalizes negative
## 1810 rationalizing negative
## 1811 reassessment negative
## 1812 reassessments negative
## 1813 reassign negative
## 1814 reassigned negative
## 1815 reassigning negative
## 1816 reassignment negative
## 1817 reassignments negative
## 1818 reassigns negative
## 1819 recall negative
## 1820 recalled negative
## 1821 recalling negative
## 1822 recalls negative
## 1823 recession negative
## 1824 recessionary negative
## 1825 recessions negative
## 1826 reckless negative
## 1827 recklessly negative
## 1828 recklessness negative
## 1829 redact negative
## 1830 redacted negative
## 1831 redacting negative
## 1832 redaction negative
## 1833 redactions negative
## 1834 redefault negative
## 1835 redefaulted negative
## 1836 redefaults negative
## 1837 redress negative
## 1838 redressed negative
## 1839 redresses negative
## 1840 redressing negative
## 1841 refusal negative
## 1842 refusals negative
## 1843 refuse negative
## 1844 refused negative
## 1845 refuses negative
## 1846 refusing negative
## 1847 reject negative
## 1848 rejected negative
## 1849 rejecting negative
## 1850 rejection negative
## 1851 rejections negative
## 1852 rejects negative
## 1853 relinquish negative
## 1854 relinquished negative
## 1855 relinquishes negative
## 1856 relinquishing negative
## 1857 relinquishment negative
## 1858 relinquishments negative
## 1859 reluctance negative
## 1860 reluctant negative
## 1861 renegotiate negative
## 1862 renegotiated negative
## 1863 renegotiates negative
## 1864 renegotiating negative
## 1865 renegotiation negative
## 1866 renegotiations negative
## 1867 renounce negative
## 1868 renounced negative
## 1869 renouncement negative
## 1870 renouncements negative
## 1871 renounces negative
## 1872 renouncing negative
## 1873 reparation negative
## 1874 reparations negative
## 1875 repossessed negative
## 1876 repossesses negative
## 1877 repossessing negative
## 1878 repossession negative
## 1879 repossessions negative
## 1880 repudiate negative
## 1881 repudiated negative
## 1882 repudiates negative
## 1883 repudiating negative
## 1884 repudiation negative
## 1885 repudiations negative
## 1886 resign negative
## 1887 resignation negative
## 1888 resignations negative
## 1889 resigned negative
## 1890 resigning negative
## 1891 resigns negative
## 1892 restate negative
## 1893 restated negative
## 1894 restatement negative
## 1895 restatements negative
## 1896 restates negative
## 1897 restating negative
## 1898 restructure negative
## 1899 restructured negative
## 1900 restructures negative
## 1901 restructuring negative
## 1902 restructurings negative
## 1903 retaliate negative
## 1904 retaliated negative
## 1905 retaliates negative
## 1906 retaliating negative
## 1907 retaliation negative
## 1908 retaliations negative
## 1909 retaliatory negative
## 1910 retribution negative
## 1911 retributions negative
## 1912 revocation negative
## 1913 revocations negative
## 1914 revoke negative
## 1915 revoked negative
## 1916 revokes negative
## 1917 revoking negative
## 1918 ridicule negative
## 1919 ridiculed negative
## 1920 ridicules negative
## 1921 ridiculing negative
## 1922 riskier negative
## 1923 riskiest negative
## 1924 risky negative
## 1925 sabotage negative
## 1926 sacrifice negative
## 1927 sacrificed negative
## 1928 sacrifices negative
## 1929 sacrificial negative
## 1930 sacrificing negative
## 1931 scandalous negative
## 1932 scandals negative
## 1933 scrutinize negative
## 1934 scrutinized negative
## 1935 scrutinizes negative
## 1936 scrutinizing negative
## 1937 scrutiny negative
## 1938 secrecy negative
## 1939 seize negative
## 1940 seized negative
## 1941 seizes negative
## 1942 seizing negative
## 1943 sentenced negative
## 1944 sentencing negative
## 1945 serious negative
## 1946 seriously negative
## 1947 seriousness negative
## 1948 setback negative
## 1949 setbacks negative
## 1950 sever negative
## 1951 severe negative
## 1952 severed negative
## 1953 severely negative
## 1954 severities negative
## 1955 severity negative
## 1956 sharply negative
## 1957 shocked negative
## 1958 shortage negative
## 1959 shortages negative
## 1960 shortfall negative
## 1961 shortfalls negative
## 1962 shrinkage negative
## 1963 shrinkages negative
## 1964 shut negative
## 1965 shutdown negative
## 1966 shutdowns negative
## 1967 shuts negative
## 1968 shutting negative
## 1969 slander negative
## 1970 slandered negative
## 1971 slanderous negative
## 1972 slanders negative
## 1973 slippage negative
## 1974 slippages negative
## 1975 slow negative
## 1976 slowdown negative
## 1977 slowdowns negative
## 1978 slowed negative
## 1979 slower negative
## 1980 slowest negative
## 1981 slowing negative
## 1982 slowly negative
## 1983 slowness negative
## 1984 sluggish negative
## 1985 sluggishly negative
## 1986 sluggishness negative
## 1987 solvencies negative
## 1988 solvency negative
## 1989 spam negative
## 1990 spammers negative
## 1991 spamming negative
## 1992 staggering negative
## 1993 stagnant negative
## 1994 stagnate negative
## 1995 stagnated negative
## 1996 stagnates negative
## 1997 stagnating negative
## 1998 stagnation negative
## 1999 standstill negative
## 2000 standstills negative
## 2001 stolen negative
## 2002 stoppage negative
## 2003 stoppages negative
## 2004 stopped negative
## 2005 stopping negative
## 2006 stops negative
## 2007 strain negative
## 2008 strained negative
## 2009 straining negative
## 2010 strains negative
## 2011 stress negative
## 2012 stressed negative
## 2013 stresses negative
## 2014 stressful negative
## 2015 stressing negative
## 2016 stringent negative
## 2017 subjected negative
## 2018 subjecting negative
## 2019 subjection negative
## 2020 subpoena negative
## 2021 subpoenaed negative
## 2022 subpoenas negative
## 2023 substandard negative
## 2024 sue negative
## 2025 sued negative
## 2026 sues negative
## 2027 suffer negative
## 2028 suffered negative
## 2029 suffering negative
## 2030 suffers negative
## 2031 suing negative
## 2032 summoned negative
## 2033 summoning negative
## 2034 summons negative
## 2035 summonses negative
## 2036 susceptibility negative
## 2037 susceptible negative
## 2038 suspect negative
## 2039 suspected negative
## 2040 suspects negative
## 2041 suspend negative
## 2042 suspended negative
## 2043 suspending negative
## 2044 suspends negative
## 2045 suspension negative
## 2046 suspensions negative
## 2047 suspicion negative
## 2048 suspicions negative
## 2049 suspicious negative
## 2050 suspiciously negative
## 2051 taint negative
## 2052 tainted negative
## 2053 tainting negative
## 2054 taints negative
## 2055 tampered negative
## 2056 tense negative
## 2057 terminate negative
## 2058 terminated negative
## 2059 terminates negative
## 2060 terminating negative
## 2061 termination negative
## 2062 terminations negative
## 2063 testify negative
## 2064 testifying negative
## 2065 threat negative
## 2066 threaten negative
## 2067 threatened negative
## 2068 threatening negative
## 2069 threatens negative
## 2070 threats negative
## 2071 tightening negative
## 2072 tolerate negative
## 2073 tolerated negative
## 2074 tolerates negative
## 2075 tolerating negative
## 2076 toleration negative
## 2077 tortuous negative
## 2078 tortuously negative
## 2079 tragedies negative
## 2080 tragedy negative
## 2081 tragic negative
## 2082 tragically negative
## 2083 traumatic negative
## 2084 trouble negative
## 2085 troubled negative
## 2086 troubles negative
## 2087 turbulence negative
## 2088 turmoil negative
## 2089 unable negative
## 2090 unacceptable negative
## 2091 unacceptably negative
## 2092 unaccounted negative
## 2093 unannounced negative
## 2094 unanticipated negative
## 2095 unapproved negative
## 2096 unattractive negative
## 2097 unauthorized negative
## 2098 unavailability negative
## 2099 unavailable negative
## 2100 unavoidable negative
## 2101 unavoidably negative
## 2102 unaware negative
## 2103 uncollectable negative
## 2104 uncollected negative
## 2105 uncollectibility negative
## 2106 uncollectible negative
## 2107 uncollectibles negative
## 2108 uncompetitive negative
## 2109 uncompleted negative
## 2110 unconscionable negative
## 2111 unconscionably negative
## 2112 uncontrollable negative
## 2113 uncontrollably negative
## 2114 uncontrolled negative
## 2115 uncorrected negative
## 2116 uncover negative
## 2117 uncovered negative
## 2118 uncovering negative
## 2119 uncovers negative
## 2120 undeliverable negative
## 2121 undelivered negative
## 2122 undercapitalized negative
## 2123 undercut negative
## 2124 undercuts negative
## 2125 undercutting negative
## 2126 underestimate negative
## 2127 underestimated negative
## 2128 underestimates negative
## 2129 underestimating negative
## 2130 underestimation negative
## 2131 underfunded negative
## 2132 underinsured negative
## 2133 undermine negative
## 2134 undermined negative
## 2135 undermines negative
## 2136 undermining negative
## 2137 underpaid negative
## 2138 underpayment negative
## 2139 underpayments negative
## 2140 underpays negative
## 2141 underperform negative
## 2142 underperformance negative
## 2143 underperformed negative
## 2144 underperforming negative
## 2145 underperforms negative
## 2146 underproduced negative
## 2147 underproduction negative
## 2148 underreporting negative
## 2149 understate negative
## 2150 understated negative
## 2151 understatement negative
## 2152 understatements negative
## 2153 understates negative
## 2154 understating negative
## 2155 underutilization negative
## 2156 underutilized negative
## 2157 undesirable negative
## 2158 undesired negative
## 2159 undetected negative
## 2160 undetermined negative
## 2161 undisclosed negative
## 2162 undocumented negative
## 2163 undue negative
## 2164 unduly negative
## 2165 uneconomic negative
## 2166 uneconomical negative
## 2167 uneconomically negative
## 2168 unemployed negative
## 2169 unemployment negative
## 2170 unethical negative
## 2171 unethically negative
## 2172 unexcused negative
## 2173 unexpected negative
## 2174 unexpectedly negative
## 2175 unfair negative
## 2176 unfairly negative
## 2177 unfavorability negative
## 2178 unfavorable negative
## 2179 unfavorably negative
## 2180 unfavourable negative
## 2181 unfeasible negative
## 2182 unfit negative
## 2183 unfitness negative
## 2184 unforeseeable negative
## 2185 unforeseen negative
## 2186 unforseen negative
## 2187 unfortunate negative
## 2188 unfortunately negative
## 2189 unfounded negative
## 2190 unfriendly negative
## 2191 unfulfilled negative
## 2192 unfunded negative
## 2193 uninsured negative
## 2194 unintended negative
## 2195 unintentional negative
## 2196 unintentionally negative
## 2197 unjust negative
## 2198 unjustifiable negative
## 2199 unjustifiably negative
## 2200 unjustified negative
## 2201 unjustly negative
## 2202 unknowing negative
## 2203 unknowingly negative
## 2204 unlawful negative
## 2205 unlawfully negative
## 2206 unlicensed negative
## 2207 unliquidated negative
## 2208 unmarketable negative
## 2209 unmerchantable negative
## 2210 unmeritorious negative
## 2211 unnecessarily negative
## 2212 unnecessary negative
## 2213 unneeded negative
## 2214 unobtainable negative
## 2215 unoccupied negative
## 2216 unpaid negative
## 2217 unperformed negative
## 2218 unplanned negative
## 2219 unpopular negative
## 2220 unpredictability negative
## 2221 unpredictable negative
## 2222 unpredictably negative
## 2223 unpredicted negative
## 2224 unproductive negative
## 2225 unprofitability negative
## 2226 unprofitable negative
## 2227 unqualified negative
## 2228 unrealistic negative
## 2229 unreasonable negative
## 2230 unreasonableness negative
## 2231 unreasonably negative
## 2232 unreceptive negative
## 2233 unrecoverable negative
## 2234 unrecovered negative
## 2235 unreimbursed negative
## 2236 unreliable negative
## 2237 unremedied negative
## 2238 unreported negative
## 2239 unresolved negative
## 2240 unrest negative
## 2241 unsafe negative
## 2242 unsalable negative
## 2243 unsaleable negative
## 2244 unsatisfactory negative
## 2245 unsatisfied negative
## 2246 unsavory negative
## 2247 unscheduled negative
## 2248 unsellable negative
## 2249 unsold negative
## 2250 unsound negative
## 2251 unstabilized negative
## 2252 unstable negative
## 2253 unsubstantiated negative
## 2254 unsuccessful negative
## 2255 unsuccessfully negative
## 2256 unsuitability negative
## 2257 unsuitable negative
## 2258 unsuitably negative
## 2259 unsuited negative
## 2260 unsure negative
## 2261 unsuspected negative
## 2262 unsuspecting negative
## 2263 unsustainable negative
## 2264 untenable negative
## 2265 untimely negative
## 2266 untrusted negative
## 2267 untruth negative
## 2268 untruthful negative
## 2269 untruthfully negative
## 2270 untruthfulness negative
## 2271 untruths negative
## 2272 unusable negative
## 2273 unwanted negative
## 2274 unwarranted negative
## 2275 unwelcome negative
## 2276 unwilling negative
## 2277 unwillingness negative
## 2278 upset negative
## 2279 urgency negative
## 2280 urgent negative
## 2281 usurious negative
## 2282 usurp negative
## 2283 usurped negative
## 2284 usurping negative
## 2285 usurps negative
## 2286 usury negative
## 2287 vandalism negative
## 2288 verdict negative
## 2289 verdicts negative
## 2290 vetoed negative
## 2291 victims negative
## 2292 violate negative
## 2293 violated negative
## 2294 violates negative
## 2295 violating negative
## 2296 violation negative
## 2297 violations negative
## 2298 violative negative
## 2299 violator negative
## 2300 violators negative
## 2301 violence negative
## 2302 violent negative
## 2303 violently negative
## 2304 vitiate negative
## 2305 vitiated negative
## 2306 vitiates negative
## 2307 vitiating negative
## 2308 vitiation negative
## 2309 voided negative
## 2310 voiding negative
## 2311 volatile negative
## 2312 volatility negative
## 2313 vulnerabilities negative
## 2314 vulnerability negative
## 2315 vulnerable negative
## 2316 vulnerably negative
## 2317 warn negative
## 2318 warned negative
## 2319 warning negative
## 2320 warnings negative
## 2321 warns negative
## 2322 wasted negative
## 2323 wasteful negative
## 2324 wasting negative
## 2325 weak negative
## 2326 weaken negative
## 2327 weakened negative
## 2328 weakening negative
## 2329 weakens negative
## 2330 weaker negative
## 2331 weakest negative
## 2332 weakly negative
## 2333 weakness negative
## 2334 weaknesses negative
## 2335 willfully negative
## 2336 worries negative
## 2337 worry negative
## 2338 worrying negative
## 2339 worse negative
## 2340 worsen negative
## 2341 worsened negative
## 2342 worsening negative
## 2343 worsens negative
## 2344 worst negative
## 2345 worthless negative
## 2346 writedown negative
## 2347 writedowns negative
## 2348 writeoff negative
## 2349 writeoffs negative
## 2350 wrong negative
## 2351 wrongdoing negative
## 2352 wrongdoings negative
## 2353 wrongful negative
## 2354 wrongfully negative
## 2355 wrongly negative
## 2356 able positive
## 2357 abundance positive
## 2358 abundant positive
## 2359 acclaimed positive
## 2360 accomplish positive
## 2361 accomplished positive
## 2362 accomplishes positive
## 2363 accomplishing positive
## 2364 accomplishment positive
## 2365 accomplishments positive
## 2366 achieve positive
## 2367 achieved positive
## 2368 achievement positive
## 2369 achievements positive
## 2370 achieves positive
## 2371 achieving positive
## 2372 adequately positive
## 2373 advancement positive
## 2374 advancements positive
## 2375 advances positive
## 2376 advancing positive
## 2377 advantage positive
## 2378 advantaged positive
## 2379 advantageous positive
## 2380 advantageously positive
## 2381 advantages positive
## 2382 alliance positive
## 2383 alliances positive
## 2384 assure positive
## 2385 assured positive
## 2386 assures positive
## 2387 assuring positive
## 2388 attain positive
## 2389 attained positive
## 2390 attaining positive
## 2391 attainment positive
## 2392 attainments positive
## 2393 attains positive
## 2394 attractive positive
## 2395 attractiveness positive
## 2396 beautiful positive
## 2397 beautifully positive
## 2398 beneficial positive
## 2399 beneficially positive
## 2400 benefit positive
## 2401 benefited positive
## 2402 benefiting positive
## 2403 benefitted positive
## 2404 benefitting positive
## 2405 best positive
## 2406 better positive
## 2407 bolstered positive
## 2408 bolstering positive
## 2409 bolsters positive
## 2410 boom positive
## 2411 booming positive
## 2412 boost positive
## 2413 boosted positive
## 2414 breakthrough positive
## 2415 breakthroughs positive
## 2416 brilliant positive
## 2417 charitable positive
## 2418 collaborate positive
## 2419 collaborated positive
## 2420 collaborates positive
## 2421 collaborating positive
## 2422 collaboration positive
## 2423 collaborations positive
## 2424 collaborative positive
## 2425 collaborator positive
## 2426 collaborators positive
## 2427 compliment positive
## 2428 complimentary positive
## 2429 complimented positive
## 2430 complimenting positive
## 2431 compliments positive
## 2432 conclusive positive
## 2433 conclusively positive
## 2434 conducive positive
## 2435 confident positive
## 2436 constructive positive
## 2437 constructively positive
## 2438 courteous positive
## 2439 creative positive
## 2440 creatively positive
## 2441 creativeness positive
## 2442 creativity positive
## 2443 delight positive
## 2444 delighted positive
## 2445 delightful positive
## 2446 delightfully positive
## 2447 delighting positive
## 2448 delights positive
## 2449 dependability positive
## 2450 dependable positive
## 2451 desirable positive
## 2452 desired positive
## 2453 despite positive
## 2454 destined positive
## 2455 diligent positive
## 2456 diligently positive
## 2457 distinction positive
## 2458 distinctions positive
## 2459 distinctive positive
## 2460 distinctively positive
## 2461 distinctiveness positive
## 2462 dream positive
## 2463 easier positive
## 2464 easily positive
## 2465 easy positive
## 2466 effective positive
## 2467 efficiencies positive
## 2468 efficiency positive
## 2469 efficient positive
## 2470 efficiently positive
## 2471 empower positive
## 2472 empowered positive
## 2473 empowering positive
## 2474 empowers positive
## 2475 enable positive
## 2476 enabled positive
## 2477 enables positive
## 2478 enabling positive
## 2479 encouraged positive
## 2480 encouragement positive
## 2481 encourages positive
## 2482 encouraging positive
## 2483 enhance positive
## 2484 enhanced positive
## 2485 enhancement positive
## 2486 enhancements positive
## 2487 enhances positive
## 2488 enhancing positive
## 2489 enjoy positive
## 2490 enjoyable positive
## 2491 enjoyably positive
## 2492 enjoyed positive
## 2493 enjoying positive
## 2494 enjoyment positive
## 2495 enjoys positive
## 2496 enthusiasm positive
## 2497 enthusiastic positive
## 2498 enthusiastically positive
## 2499 excellence positive
## 2500 excellent positive
## 2501 excelling positive
## 2502 excels positive
## 2503 exceptional positive
## 2504 exceptionally positive
## 2505 excited positive
## 2506 excitement positive
## 2507 exciting positive
## 2508 exclusive positive
## 2509 exclusively positive
## 2510 exclusiveness positive
## 2511 exclusives positive
## 2512 exclusivity positive
## 2513 exemplary positive
## 2514 fantastic positive
## 2515 favorable positive
## 2516 favorably positive
## 2517 favored positive
## 2518 favoring positive
## 2519 favorite positive
## 2520 favorites positive
## 2521 friendly positive
## 2522 gain positive
## 2523 gained positive
## 2524 gaining positive
## 2525 gains positive
## 2526 good positive
## 2527 great positive
## 2528 greater positive
## 2529 greatest positive
## 2530 greatly positive
## 2531 greatness positive
## 2532 happiest positive
## 2533 happily positive
## 2534 happiness positive
## 2535 happy positive
## 2536 highest positive
## 2537 honor positive
## 2538 honorable positive
## 2539 honored positive
## 2540 honoring positive
## 2541 honors positive
## 2542 ideal positive
## 2543 impress positive
## 2544 impressed positive
## 2545 impresses positive
## 2546 impressing positive
## 2547 impressive positive
## 2548 impressively positive
## 2549 improve positive
## 2550 improved positive
## 2551 improvement positive
## 2552 improvements positive
## 2553 improves positive
## 2554 improving positive
## 2555 incredible positive
## 2556 incredibly positive
## 2557 influential positive
## 2558 informative positive
## 2559 ingenuity positive
## 2560 innovate positive
## 2561 innovated positive
## 2562 innovates positive
## 2563 innovating positive
## 2564 innovation positive
## 2565 innovations positive
## 2566 innovative positive
## 2567 innovativeness positive
## 2568 innovator positive
## 2569 innovators positive
## 2570 insightful positive
## 2571 inspiration positive
## 2572 inspirational positive
## 2573 integrity positive
## 2574 invent positive
## 2575 invented positive
## 2576 inventing positive
## 2577 invention positive
## 2578 inventions positive
## 2579 inventive positive
## 2580 inventiveness positive
## 2581 inventor positive
## 2582 inventors positive
## 2583 leadership positive
## 2584 leading positive
## 2585 loyal positive
## 2586 lucrative positive
## 2587 meritorious positive
## 2588 opportunities positive
## 2589 opportunity positive
## 2590 optimistic positive
## 2591 outperform positive
## 2592 outperformed positive
## 2593 outperforming positive
## 2594 outperforms positive
## 2595 perfect positive
## 2596 perfected positive
## 2597 perfectly positive
## 2598 perfects positive
## 2599 pleasant positive
## 2600 pleasantly positive
## 2601 pleased positive
## 2602 pleasure positive
## 2603 plentiful positive
## 2604 popular positive
## 2605 popularity positive
## 2606 positive positive
## 2607 positively positive
## 2608 preeminence positive
## 2609 preeminent positive
## 2610 premier positive
## 2611 premiere positive
## 2612 prestige positive
## 2613 prestigious positive
## 2614 proactive positive
## 2615 proactively positive
## 2616 proficiency positive
## 2617 proficient positive
## 2618 proficiently positive
## 2619 profitability positive
## 2620 profitable positive
## 2621 profitably positive
## 2622 progress positive
## 2623 progressed positive
## 2624 progresses positive
## 2625 progressing positive
## 2626 prospered positive
## 2627 prospering positive
## 2628 prosperity positive
## 2629 prosperous positive
## 2630 prospers positive
## 2631 rebound positive
## 2632 rebounded positive
## 2633 rebounding positive
## 2634 receptive positive
## 2635 regain positive
## 2636 regained positive
## 2637 regaining positive
## 2638 resolve positive
## 2639 revolutionize positive
## 2640 revolutionized positive
## 2641 revolutionizes positive
## 2642 revolutionizing positive
## 2643 reward positive
## 2644 rewarded positive
## 2645 rewarding positive
## 2646 rewards positive
## 2647 satisfaction positive
## 2648 satisfactorily positive
## 2649 satisfactory positive
## 2650 satisfied positive
## 2651 satisfies positive
## 2652 satisfy positive
## 2653 satisfying positive
## 2654 smooth positive
## 2655 smoothing positive
## 2656 smoothly positive
## 2657 smooths positive
## 2658 solves positive
## 2659 solving positive
## 2660 spectacular positive
## 2661 spectacularly positive
## 2662 stability positive
## 2663 stabilization positive
## 2664 stabilizations positive
## 2665 stabilize positive
## 2666 stabilized positive
## 2667 stabilizes positive
## 2668 stabilizing positive
## 2669 stable positive
## 2670 strength positive
## 2671 strengthen positive
## 2672 strengthened positive
## 2673 strengthening positive
## 2674 strengthens positive
## 2675 strengths positive
## 2676 strong positive
## 2677 stronger positive
## 2678 strongest positive
## 2679 succeed positive
## 2680 succeeded positive
## 2681 succeeding positive
## 2682 succeeds positive
## 2683 success positive
## 2684 successes positive
## 2685 successful positive
## 2686 successfully positive
## 2687 superior positive
## 2688 surpass positive
## 2689 surpassed positive
## 2690 surpasses positive
## 2691 surpassing positive
## 2692 transparency positive
## 2693 tremendous positive
## 2694 tremendously positive
## 2695 unmatched positive
## 2696 unparalleled positive
## 2697 unsurpassed positive
## 2698 upturn positive
## 2699 upturns positive
## 2700 valuable positive
## 2701 versatile positive
## 2702 versatility positive
## 2703 vibrancy positive
## 2704 vibrant positive
## 2705 win positive
## 2706 winner positive
## 2707 winners positive
## 2708 winning positive
## 2709 worthy positive
## 2710 abeyance uncertainty
## 2711 abeyances uncertainty
## 2712 almost uncertainty
## 2713 alteration uncertainty
## 2714 alterations uncertainty
## 2715 ambiguities uncertainty
## 2716 ambiguity uncertainty
## 2717 ambiguous uncertainty
## 2718 anomalies uncertainty
## 2719 anomalous uncertainty
## 2720 anomalously uncertainty
## 2721 anomaly uncertainty
## 2722 anticipate uncertainty
## 2723 anticipated uncertainty
## 2724 anticipates uncertainty
## 2725 anticipating uncertainty
## 2726 anticipation uncertainty
## 2727 anticipations uncertainty
## 2728 apparent uncertainty
## 2729 apparently uncertainty
## 2730 appear uncertainty
## 2731 appeared uncertainty
## 2732 appearing uncertainty
## 2733 appears uncertainty
## 2734 approximate uncertainty
## 2735 approximated uncertainty
## 2736 approximately uncertainty
## 2737 approximates uncertainty
## 2738 approximating uncertainty
## 2739 approximation uncertainty
## 2740 approximations uncertainty
## 2741 arbitrarily uncertainty
## 2742 arbitrariness uncertainty
## 2743 arbitrary uncertainty
## 2744 assume uncertainty
## 2745 assumed uncertainty
## 2746 assumes uncertainty
## 2747 assuming uncertainty
## 2748 assumption uncertainty
## 2749 assumptions uncertainty
## 2750 believe uncertainty
## 2751 believed uncertainty
## 2752 believes uncertainty
## 2753 believing uncertainty
## 2754 cautious uncertainty
## 2755 cautiously uncertainty
## 2756 cautiousness uncertainty
## 2757 clarification uncertainty
## 2758 clarifications uncertainty
## 2759 conceivable uncertainty
## 2760 conceivably uncertainty
## 2761 conditional uncertainty
## 2762 conditionally uncertainty
## 2763 confuses uncertainty
## 2764 confusing uncertainty
## 2765 confusingly uncertainty
## 2766 confusion uncertainty
## 2767 contingencies uncertainty
## 2768 contingency uncertainty
## 2769 contingent uncertainty
## 2770 contingently uncertainty
## 2771 contingents uncertainty
## 2772 could uncertainty
## 2773 crossroad uncertainty
## 2774 crossroads uncertainty
## 2775 depend uncertainty
## 2776 depended uncertainty
## 2777 dependence uncertainty
## 2778 dependencies uncertainty
## 2779 dependency uncertainty
## 2780 dependent uncertainty
## 2781 depending uncertainty
## 2782 depends uncertainty
## 2783 destabilizing uncertainty
## 2784 deviate uncertainty
## 2785 deviated uncertainty
## 2786 deviates uncertainty
## 2787 deviating uncertainty
## 2788 deviation uncertainty
## 2789 deviations uncertainty
## 2790 differ uncertainty
## 2791 differed uncertainty
## 2792 differing uncertainty
## 2793 differs uncertainty
## 2794 doubt uncertainty
## 2795 doubted uncertainty
## 2796 doubtful uncertainty
## 2797 doubts uncertainty
## 2798 exposure uncertainty
## 2799 exposures uncertainty
## 2800 fluctuate uncertainty
## 2801 fluctuated uncertainty
## 2802 fluctuates uncertainty
## 2803 fluctuating uncertainty
## 2804 fluctuation uncertainty
## 2805 fluctuations uncertainty
## 2806 hidden uncertainty
## 2807 hinges uncertainty
## 2808 imprecise uncertainty
## 2809 imprecision uncertainty
## 2810 imprecisions uncertainty
## 2811 improbability uncertainty
## 2812 improbable uncertainty
## 2813 incompleteness uncertainty
## 2814 indefinite uncertainty
## 2815 indefinitely uncertainty
## 2816 indefiniteness uncertainty
## 2817 indeterminable uncertainty
## 2818 indeterminate uncertainty
## 2819 inexact uncertainty
## 2820 inexactness uncertainty
## 2821 instabilities uncertainty
## 2822 instability uncertainty
## 2823 intangible uncertainty
## 2824 intangibles uncertainty
## 2825 likelihood uncertainty
## 2826 may uncertainty
## 2827 maybe uncertainty
## 2828 might uncertainty
## 2829 nearly uncertainty
## 2830 nonassessable uncertainty
## 2831 occasionally uncertainty
## 2832 ordinarily uncertainty
## 2833 pending uncertainty
## 2834 perhaps uncertainty
## 2835 possibilities uncertainty
## 2836 possibility uncertainty
## 2837 possible uncertainty
## 2838 possibly uncertainty
## 2839 precaution uncertainty
## 2840 precautionary uncertainty
## 2841 precautions uncertainty
## 2842 predict uncertainty
## 2843 predictability uncertainty
## 2844 predicted uncertainty
## 2845 predicting uncertainty
## 2846 prediction uncertainty
## 2847 predictions uncertainty
## 2848 predictive uncertainty
## 2849 predictor uncertainty
## 2850 predictors uncertainty
## 2851 predicts uncertainty
## 2852 preliminarily uncertainty
## 2853 preliminary uncertainty
## 2854 presumably uncertainty
## 2855 presume uncertainty
## 2856 presumed uncertainty
## 2857 presumes uncertainty
## 2858 presuming uncertainty
## 2859 presumption uncertainty
## 2860 presumptions uncertainty
## 2861 probabilistic uncertainty
## 2862 probabilities uncertainty
## 2863 probability uncertainty
## 2864 probable uncertainty
## 2865 probably uncertainty
## 2866 random uncertainty
## 2867 randomize uncertainty
## 2868 randomized uncertainty
## 2869 randomizes uncertainty
## 2870 randomizing uncertainty
## 2871 randomly uncertainty
## 2872 randomness uncertainty
## 2873 reassess uncertainty
## 2874 reassessed uncertainty
## 2875 reassesses uncertainty
## 2876 reassessing uncertainty
## 2877 reassessment uncertainty
## 2878 reassessments uncertainty
## 2879 recalculate uncertainty
## 2880 recalculated uncertainty
## 2881 recalculates uncertainty
## 2882 recalculating uncertainty
## 2883 recalculation uncertainty
## 2884 recalculations uncertainty
## 2885 reconsider uncertainty
## 2886 reconsidered uncertainty
## 2887 reconsidering uncertainty
## 2888 reconsiders uncertainty
## 2889 reexamination uncertainty
## 2890 reexamine uncertainty
## 2891 reexamining uncertainty
## 2892 reinterpret uncertainty
## 2893 reinterpretation uncertainty
## 2894 reinterpretations uncertainty
## 2895 reinterpreted uncertainty
## 2896 reinterpreting uncertainty
## 2897 reinterprets uncertainty
## 2898 revise uncertainty
## 2899 revised uncertainty
## 2900 risk uncertainty
## 2901 risked uncertainty
## 2902 riskier uncertainty
## 2903 riskiest uncertainty
## 2904 riskiness uncertainty
## 2905 risking uncertainty
## 2906 risks uncertainty
## 2907 risky uncertainty
## 2908 roughly uncertainty
## 2909 rumors uncertainty
## 2910 seems uncertainty
## 2911 seldom uncertainty
## 2912 seldomly uncertainty
## 2913 sometime uncertainty
## 2914 sometimes uncertainty
## 2915 somewhat uncertainty
## 2916 somewhere uncertainty
## 2917 speculate uncertainty
## 2918 speculated uncertainty
## 2919 speculates uncertainty
## 2920 speculating uncertainty
## 2921 speculation uncertainty
## 2922 speculations uncertainty
## 2923 speculative uncertainty
## 2924 speculatively uncertainty
## 2925 sporadic uncertainty
## 2926 sporadically uncertainty
## 2927 sudden uncertainty
## 2928 suddenly uncertainty
## 2929 suggest uncertainty
## 2930 suggested uncertainty
## 2931 suggesting uncertainty
## 2932 suggests uncertainty
## 2933 susceptibility uncertainty
## 2934 tending uncertainty
## 2935 tentative uncertainty
## 2936 tentatively uncertainty
## 2937 turbulence uncertainty
## 2938 uncertain uncertainty
## 2939 uncertainly uncertainty
## 2940 uncertainties uncertainty
## 2941 uncertainty uncertainty
## 2942 unclear uncertainty
## 2943 unconfirmed uncertainty
## 2944 undecided uncertainty
## 2945 undefined uncertainty
## 2946 undesignated uncertainty
## 2947 undetectable uncertainty
## 2948 undeterminable uncertainty
## 2949 undetermined uncertainty
## 2950 undocumented uncertainty
## 2951 unexpected uncertainty
## 2952 unexpectedly uncertainty
## 2953 unfamiliar uncertainty
## 2954 unfamiliarity uncertainty
## 2955 unforecasted uncertainty
## 2956 unforseen uncertainty
## 2957 unguaranteed uncertainty
## 2958 unhedged uncertainty
## 2959 unidentifiable uncertainty
## 2960 unidentified uncertainty
## 2961 unknown uncertainty
## 2962 unknowns uncertainty
## 2963 unobservable uncertainty
## 2964 unplanned uncertainty
## 2965 unpredictability uncertainty
## 2966 unpredictable uncertainty
## 2967 unpredictably uncertainty
## 2968 unpredicted uncertainty
## 2969 unproved uncertainty
## 2970 unproven uncertainty
## 2971 unquantifiable uncertainty
## 2972 unquantified uncertainty
## 2973 unreconciled uncertainty
## 2974 unseasonable uncertainty
## 2975 unseasonably uncertainty
## 2976 unsettled uncertainty
## 2977 unspecific uncertainty
## 2978 unspecified uncertainty
## 2979 untested uncertainty
## 2980 unusual uncertainty
## 2981 unusually uncertainty
## 2982 unwritten uncertainty
## 2983 vagaries uncertainty
## 2984 vague uncertainty
## 2985 vaguely uncertainty
## 2986 vagueness uncertainty
## 2987 vaguenesses uncertainty
## 2988 vaguer uncertainty
## 2989 vaguest uncertainty
## 2990 variability uncertainty
## 2991 variable uncertainty
## 2992 variables uncertainty
## 2993 variably uncertainty
## 2994 variance uncertainty
## 2995 variances uncertainty
## 2996 variant uncertainty
## 2997 variants uncertainty
## 2998 variation uncertainty
## 2999 variations uncertainty
## 3000 varied uncertainty
## 3001 varies uncertainty
## 3002 vary uncertainty
## 3003 varying uncertainty
## 3004 volatile uncertainty
## 3005 volatilities uncertainty
## 3006 volatility uncertainty
## 3007 abovementioned litigious
## 3008 abrogate litigious
## 3009 abrogated litigious
## 3010 abrogates litigious
## 3011 abrogating litigious
## 3012 abrogation litigious
## 3013 abrogations litigious
## 3014 absolve litigious
## 3015 absolved litigious
## 3016 absolves litigious
## 3017 absolving litigious
## 3018 accession litigious
## 3019 accessions litigious
## 3020 acquirees litigious
## 3021 acquirors litigious
## 3022 acquit litigious
## 3023 acquits litigious
## 3024 acquittal litigious
## 3025 acquittals litigious
## 3026 acquittance litigious
## 3027 acquittances litigious
## 3028 acquitted litigious
## 3029 acquitting litigious
## 3030 addendums litigious
## 3031 adjourn litigious
## 3032 adjourned litigious
## 3033 adjourning litigious
## 3034 adjournment litigious
## 3035 adjournments litigious
## 3036 adjourns litigious
## 3037 adjudge litigious
## 3038 adjudged litigious
## 3039 adjudges litigious
## 3040 adjudging litigious
## 3041 adjudicate litigious
## 3042 adjudicated litigious
## 3043 adjudicates litigious
## 3044 adjudicating litigious
## 3045 adjudication litigious
## 3046 adjudications litigious
## 3047 adjudicative litigious
## 3048 adjudicator litigious
## 3049 adjudicators litigious
## 3050 adjudicatory litigious
## 3051 admissibility litigious
## 3052 admissible litigious
## 3053 admissibly litigious
## 3054 admission litigious
## 3055 admissions litigious
## 3056 affidavit litigious
## 3057 affidavits litigious
## 3058 affirmance litigious
## 3059 affreightment litigious
## 3060 aforedescribed litigious
## 3061 aforementioned litigious
## 3062 aforesaid litigious
## 3063 aforestated litigious
## 3064 aggrieved litigious
## 3065 allegation litigious
## 3066 allegations litigious
## 3067 allege litigious
## 3068 alleged litigious
## 3069 allegedly litigious
## 3070 alleges litigious
## 3071 alleging litigious
## 3072 amend litigious
## 3073 amendable litigious
## 3074 amendatory litigious
## 3075 amended litigious
## 3076 amending litigious
## 3077 amendment litigious
## 3078 amendments litigious
## 3079 amends litigious
## 3080 antecedent litigious
## 3081 antecedents litigious
## 3082 anticorruption litigious
## 3083 antitrust litigious
## 3084 anywise litigious
## 3085 appeal litigious
## 3086 appealable litigious
## 3087 appealed litigious
## 3088 appealing litigious
## 3089 appeals litigious
## 3090 appellant litigious
## 3091 appellants litigious
## 3092 appellate litigious
## 3093 appellees litigious
## 3094 appointor litigious
## 3095 appurtenance litigious
## 3096 appurtenances litigious
## 3097 appurtenant litigious
## 3098 arbitrability litigious
## 3099 arbitral litigious
## 3100 arbitrate litigious
## 3101 arbitrated litigious
## 3102 arbitrates litigious
## 3103 arbitrating litigious
## 3104 arbitration litigious
## 3105 arbitrational litigious
## 3106 arbitrations litigious
## 3107 arbitrative litigious
## 3108 arbitrator litigious
## 3109 arbitrators litigious
## 3110 arrearage litigious
## 3111 arrearages litigious
## 3112 ascendancy litigious
## 3113 ascendant litigious
## 3114 ascendants litigious
## 3115 assertable litigious
## 3116 assignation litigious
## 3117 assignations litigious
## 3118 assumable litigious
## 3119 attest litigious
## 3120 attestation litigious
## 3121 attestations litigious
## 3122 attested litigious
## 3123 attesting litigious
## 3124 attorn litigious
## 3125 attorney litigious
## 3126 attorneys litigious
## 3127 attornment litigious
## 3128 attorns litigious
## 3129 bail litigious
## 3130 bailed litigious
## 3131 bailee litigious
## 3132 bailees litigious
## 3133 bailiff litigious
## 3134 bailiffs litigious
## 3135 bailment litigious
## 3136 beneficiated litigious
## 3137 beneficiation litigious
## 3138 bona litigious
## 3139 bonafide litigious
## 3140 breach litigious
## 3141 breached litigious
## 3142 breaches litigious
## 3143 breaching litigious
## 3144 cedant litigious
## 3145 cedants litigious
## 3146 certiorari litigious
## 3147 cession litigious
## 3148 chattel litigious
## 3149 chattels litigious
## 3150 choate litigious
## 3151 claim litigious
## 3152 claimable litigious
## 3153 claimant litigious
## 3154 claimants litigious
## 3155 claimholder litigious
## 3156 claims litigious
## 3157 clawbacks litigious
## 3158 codefendant litigious
## 3159 codefendants litigious
## 3160 codicil litigious
## 3161 codicils litigious
## 3162 codification litigious
## 3163 codifications litigious
## 3164 codified litigious
## 3165 codifies litigious
## 3166 codify litigious
## 3167 codifying litigious
## 3168 collusion litigious
## 3169 compensatory litigious
## 3170 complainant litigious
## 3171 complainants litigious
## 3172 condemnor litigious
## 3173 confiscatory litigious
## 3174 consent litigious
## 3175 consented litigious
## 3176 consenting litigious
## 3177 consents litigious
## 3178 conservatorships litigious
## 3179 constitution litigious
## 3180 constitutional litigious
## 3181 constitutionality litigious
## 3182 constitutionally litigious
## 3183 constitutions litigious
## 3184 constitutive litigious
## 3185 construe litigious
## 3186 construed litigious
## 3187 construes litigious
## 3188 construing litigious
## 3189 contestability litigious
## 3190 contestation litigious
## 3191 contract litigious
## 3192 contracted litigious
## 3193 contractholder litigious
## 3194 contractholders litigious
## 3195 contractible litigious
## 3196 contractile litigious
## 3197 contracting litigious
## 3198 contracts litigious
## 3199 contractual litigious
## 3200 contractually litigious
## 3201 contravene litigious
## 3202 contravened litigious
## 3203 contravenes litigious
## 3204 contravening litigious
## 3205 contravention litigious
## 3206 contraventions litigious
## 3207 controvert litigious
## 3208 controverted litigious
## 3209 controverting litigious
## 3210 conveniens litigious
## 3211 conveyance litigious
## 3212 conveyances litigious
## 3213 convict litigious
## 3214 convicted litigious
## 3215 convicting litigious
## 3216 conviction litigious
## 3217 convictions litigious
## 3218 coterminous litigious
## 3219 counsel litigious
## 3220 counseled litigious
## 3221 counselled litigious
## 3222 counsels litigious
## 3223 countersignor litigious
## 3224 countersued litigious
## 3225 countersuit litigious
## 3226 countersuits litigious
## 3227 court litigious
## 3228 courtroom litigious
## 3229 courts litigious
## 3230 crime litigious
## 3231 crimes litigious
## 3232 criminal litigious
## 3233 criminality litigious
## 3234 criminalize litigious
## 3235 criminalizing litigious
## 3236 criminally litigious
## 3237 criminals litigious
## 3238 crossclaim litigious
## 3239 crossclaims litigious
## 3240 decedent litigious
## 3241 decedents litigious
## 3242 declarant litigious
## 3243 decree litigious
## 3244 decreed litigious
## 3245 decreeing litigious
## 3246 decrees litigious
## 3247 defalcation litigious
## 3248 defalcations litigious
## 3249 defeasance litigious
## 3250 defeasances litigious
## 3251 defease litigious
## 3252 defeased litigious
## 3253 defeasement litigious
## 3254 defeases litigious
## 3255 defeasing litigious
## 3256 defectively litigious
## 3257 defendable litigious
## 3258 defendant litigious
## 3259 defendants litigious
## 3260 deference litigious
## 3261 delegable litigious
## 3262 delegatable litigious
## 3263 delegatee litigious
## 3264 delegees litigious
## 3265 demurred litigious
## 3266 demurrer litigious
## 3267 demurrers litigious
## 3268 demurring litigious
## 3269 demurs litigious
## 3270 depose litigious
## 3271 deposed litigious
## 3272 deposes litigious
## 3273 deposing litigious
## 3274 deposition litigious
## 3275 depositional litigious
## 3276 depositions litigious
## 3277 derogate litigious
## 3278 derogated litigious
## 3279 derogates litigious
## 3280 derogating litigious
## 3281 derogation litigious
## 3282 derogations litigious
## 3283 designator litigious
## 3284 desist litigious
## 3285 detainer litigious
## 3286 devisees litigious
## 3287 disaffiliation litigious
## 3288 disaffirm litigious
## 3289 disaffirmance litigious
## 3290 disaffirmed litigious
## 3291 disaffirms litigious
## 3292 dispositive litigious
## 3293 dispossession litigious
## 3294 dispossessory litigious
## 3295 distraint litigious
## 3296 distributee litigious
## 3297 distributees litigious
## 3298 docket litigious
## 3299 docketed litigious
## 3300 docketing litigious
## 3301 dockets litigious
## 3302 donees litigious
## 3303 duly litigious
## 3304 ejectment litigious
## 3305 encumber litigious
## 3306 encumbered litigious
## 3307 encumbering litigious
## 3308 encumbers litigious
## 3309 encumbrance litigious
## 3310 encumbrancer litigious
## 3311 encumbrancers litigious
## 3312 encumbrances litigious
## 3313 endorsee litigious
## 3314 enforceability litigious
## 3315 enforceable litigious
## 3316 enforceably litigious
## 3317 escheat litigious
## 3318 escheated litigious
## 3319 escheatment litigious
## 3320 escrowing litigious
## 3321 estoppel litigious
## 3322 evidential litigious
## 3323 evidentiary litigious
## 3324 exceedance litigious
## 3325 exceedances litigious
## 3326 exceedences litigious
## 3327 excised litigious
## 3328 exculpate litigious
## 3329 exculpated litigious
## 3330 exculpates litigious
## 3331 exculpating litigious
## 3332 exculpation litigious
## 3333 exculpations litigious
## 3334 exculpatory litigious
## 3335 executor litigious
## 3336 executors litigious
## 3337 executory litigious
## 3338 executrices litigious
## 3339 executrix litigious
## 3340 executrixes litigious
## 3341 extracontractual litigious
## 3342 extracorporeal litigious
## 3343 extrajudicial litigious
## 3344 facie litigious
## 3345 facto litigious
## 3346 felonies litigious
## 3347 felonious litigious
## 3348 felony litigious
## 3349 fide litigious
## 3350 forbade litigious
## 3351 forbear litigious
## 3352 forbearance litigious
## 3353 forbearances litigious
## 3354 forbearing litigious
## 3355 forbears litigious
## 3356 forebear litigious
## 3357 forebearance litigious
## 3358 forebears litigious
## 3359 forfeitability litigious
## 3360 forfeitable litigious
## 3361 forthwith litigious
## 3362 forwhich litigious
## 3363 fugitive litigious
## 3364 fugitives litigious
## 3365 furtherance litigious
## 3366 grantor litigious
## 3367 grantors litigious
## 3368 henceforth litigious
## 3369 henceforward litigious
## 3370 hereafter litigious
## 3371 hereby litigious
## 3372 hereditaments litigious
## 3373 herefor litigious
## 3374 herefore litigious
## 3375 herefrom litigious
## 3376 herein litigious
## 3377 hereinabove litigious
## 3378 hereinafter litigious
## 3379 hereinbefore litigious
## 3380 hereinbelow litigious
## 3381 hereof litigious
## 3382 hereon litigious
## 3383 hereto litigious
## 3384 heretofore litigious
## 3385 hereunder litigious
## 3386 hereunto litigious
## 3387 hereupon litigious
## 3388 herewith litigious
## 3389 herewithin litigious
## 3390 immateriality litigious
## 3391 impleaded litigious
## 3392 inasmuch litigious
## 3393 incapacity litigious
## 3394 incarcerate litigious
## 3395 incarcerated litigious
## 3396 incarcerates litigious
## 3397 incarcerating litigious
## 3398 incarceration litigious
## 3399 incarcerations litigious
## 3400 inchoate litigious
## 3401 incontestability litigious
## 3402 incontestable litigious
## 3403 indemnifiable litigious
## 3404 indemnification litigious
## 3405 indemnifications litigious
## 3406 indemnified litigious
## 3407 indemnifies litigious
## 3408 indemnify litigious
## 3409 indemnifying litigious
## 3410 indemnitee litigious
## 3411 indemnitees litigious
## 3412 indemnities litigious
## 3413 indemnitor litigious
## 3414 indemnitors litigious
## 3415 indemnity litigious
## 3416 indict litigious
## 3417 indictable litigious
## 3418 indicted litigious
## 3419 indicting litigious
## 3420 indictment litigious
## 3421 indictments litigious
## 3422 indorsees litigious
## 3423 inforce litigious
## 3424 infraction litigious
## 3425 infractions litigious
## 3426 infringer litigious
## 3427 injunction litigious
## 3428 injunctions litigious
## 3429 injunctive litigious
## 3430 insofar litigious
## 3431 interlocutory litigious
## 3432 interpleader litigious
## 3433 interpose litigious
## 3434 interposed litigious
## 3435 interposes litigious
## 3436 interposing litigious
## 3437 interposition litigious
## 3438 interpositions litigious
## 3439 interrogate litigious
## 3440 interrogated litigious
## 3441 interrogates litigious
## 3442 interrogating litigious
## 3443 interrogation litigious
## 3444 interrogations litigious
## 3445 interrogator litigious
## 3446 interrogatories litigious
## 3447 interrogators litigious
## 3448 interrogatory litigious
## 3449 intestacy litigious
## 3450 intestate litigious
## 3451 irrevocability litigious
## 3452 irrevocable litigious
## 3453 irrevocably litigious
## 3454 joinder litigious
## 3455 judicial litigious
## 3456 judicially litigious
## 3457 judiciaries litigious
## 3458 judiciary litigious
## 3459 juries litigious
## 3460 juris litigious
## 3461 jurisdiction litigious
## 3462 jurisdictional litigious
## 3463 jurisdictionally litigious
## 3464 jurisdictions litigious
## 3465 jurisprudence litigious
## 3466 jurist litigious
## 3467 jurists litigious
## 3468 juror litigious
## 3469 jurors litigious
## 3470 jury litigious
## 3471 juryman litigious
## 3472 justice litigious
## 3473 justices litigious
## 3474 law litigious
## 3475 lawful litigious
## 3476 lawfully litigious
## 3477 lawfulness litigious
## 3478 lawmakers litigious
## 3479 lawmaking litigious
## 3480 laws litigious
## 3481 lawsuit litigious
## 3482 lawsuits litigious
## 3483 lawyer litigious
## 3484 lawyers litigious
## 3485 legal litigious
## 3486 legalese litigious
## 3487 legality litigious
## 3488 legalization litigious
## 3489 legalizations litigious
## 3490 legalize litigious
## 3491 legalized litigious
## 3492 legalizes litigious
## 3493 legalizing litigious
## 3494 legally litigious
## 3495 legals litigious
## 3496 legatee litigious
## 3497 legatees litigious
## 3498 legislate litigious
## 3499 legislated litigious
## 3500 legislates litigious
## 3501 legislating litigious
## 3502 legislation litigious
## 3503 legislations litigious
## 3504 legislative litigious
## 3505 legislatively litigious
## 3506 legislator litigious
## 3507 legislators litigious
## 3508 legislature litigious
## 3509 legislatures litigious
## 3510 libel litigious
## 3511 libeled litigious
## 3512 libelous litigious
## 3513 libels litigious
## 3514 licensable litigious
## 3515 lienholders litigious
## 3516 litigant litigious
## 3517 litigants litigious
## 3518 litigate litigious
## 3519 litigated litigious
## 3520 litigates litigious
## 3521 litigating litigious
## 3522 litigation litigious
## 3523 litigations litigious
## 3524 litigator litigious
## 3525 litigators litigious
## 3526 litigious litigious
## 3527 litigiousness litigious
## 3528 majeure litigious
## 3529 mandamus litigious
## 3530 mediate litigious
## 3531 mediated litigious
## 3532 mediates litigious
## 3533 mediating litigious
## 3534 mediation litigious
## 3535 mediations litigious
## 3536 mediator litigious
## 3537 mediators litigious
## 3538 misdemeanor litigious
## 3539 misfeasance litigious
## 3540 mistrial litigious
## 3541 mistrials litigious
## 3542 moreover litigious
## 3543 motions litigious
## 3544 mutandis litigious
## 3545 nolo litigious
## 3546 nonappealable litigious
## 3547 nonbreaching litigious
## 3548 noncontingent litigious
## 3549 noncontract litigious
## 3550 noncontractual litigious
## 3551 noncontributory litigious
## 3552 nonfeasance litigious
## 3553 nonfiduciary litigious
## 3554 nonforfeitability litigious
## 3555 nonforfeitable litigious
## 3556 nonforfeiture litigious
## 3557 nonguarantor litigious
## 3558 noninfringement litigious
## 3559 noninfringing litigious
## 3560 nonjudicial litigious
## 3561 nonjudicially litigious
## 3562 nonjurisdictional litigious
## 3563 nonseverable litigious
## 3564 nonterminable litigious
## 3565 nonusurious litigious
## 3566 notarial litigious
## 3567 notaries litigious
## 3568 notarization litigious
## 3569 notarizations litigious
## 3570 notarize litigious
## 3571 notarized litigious
## 3572 notarizing litigious
## 3573 notary litigious
## 3574 notwithstanding litigious
## 3575 novo litigious
## 3576 nullification litigious
## 3577 nullifications litigious
## 3578 nullified litigious
## 3579 nullifies litigious
## 3580 nullify litigious
## 3581 nullifying litigious
## 3582 nullities litigious
## 3583 nullity litigious
## 3584 obligee litigious
## 3585 obligees litigious
## 3586 obligor litigious
## 3587 obligors litigious
## 3588 offense litigious
## 3589 offeree litigious
## 3590 offerees litigious
## 3591 offeror litigious
## 3592 offerors litigious
## 3593 optionee litigious
## 3594 optionees litigious
## 3595 overrule litigious
## 3596 overruled litigious
## 3597 overrules litigious
## 3598 overruling litigious
## 3599 para litigious
## 3600 pari litigious
## 3601 passu litigious
## 3602 patentee litigious
## 3603 pecuniarily litigious
## 3604 perjury litigious
## 3605 permittee litigious
## 3606 permittees litigious
## 3607 perpetrate litigious
## 3608 perpetrated litigious
## 3609 perpetrates litigious
## 3610 perpetrating litigious
## 3611 perpetration litigious
## 3612 personam litigious
## 3613 petition litigious
## 3614 petitioned litigious
## 3615 petitioner litigious
## 3616 petitioners litigious
## 3617 petitioning litigious
## 3618 petitions litigious
## 3619 plaintiff litigious
## 3620 plaintiffs litigious
## 3621 pleading litigious
## 3622 pleadings litigious
## 3623 pleads litigious
## 3624 pleas litigious
## 3625 pledgee litigious
## 3626 pledgees litigious
## 3627 pledgor litigious
## 3628 pledgors litigious
## 3629 possessory litigious
## 3630 postclosing litigious
## 3631 postclosure litigious
## 3632 postcontract litigious
## 3633 postjudgment litigious
## 3634 preamendment litigious
## 3635 predecease litigious
## 3636 predeceased litigious
## 3637 predeceases litigious
## 3638 predeceasing litigious
## 3639 prehearing litigious
## 3640 prejudice litigious
## 3641 prejudiced litigious
## 3642 prejudices litigious
## 3643 prejudicial litigious
## 3644 prejudicing litigious
## 3645 prepetition litigious
## 3646 presumptively litigious
## 3647 pretrial litigious
## 3648 prima litigious
## 3649 privity litigious
## 3650 probate litigious
## 3651 probated litigious
## 3652 probates litigious
## 3653 probating litigious
## 3654 probation litigious
## 3655 probational litigious
## 3656 probationary litigious
## 3657 probationer litigious
## 3658 probationers litigious
## 3659 probations litigious
## 3660 promulgate litigious
## 3661 promulgated litigious
## 3662 promulgates litigious
## 3663 promulgating litigious
## 3664 promulgation litigious
## 3665 promulgations litigious
## 3666 promulgator litigious
## 3667 promulgators litigious
## 3668 prorata litigious
## 3669 proration litigious
## 3670 prosecute litigious
## 3671 prosecuted litigious
## 3672 prosecutes litigious
## 3673 prosecuting litigious
## 3674 prosecution litigious
## 3675 prosecutions litigious
## 3676 prosecutor litigious
## 3677 prosecutorial litigious
## 3678 prosecutors litigious
## 3679 proviso litigious
## 3680 provisoes litigious
## 3681 provisos litigious
## 3682 punishable litigious
## 3683 quitclaim litigious
## 3684 quitclaims litigious
## 3685 rata litigious
## 3686 ratable litigious
## 3687 ratably litigious
## 3688 reargument litigious
## 3689 rebut litigious
## 3690 rebuts litigious
## 3691 rebuttable litigious
## 3692 rebuttably litigious
## 3693 rebuttal litigious
## 3694 rebuttals litigious
## 3695 rebutted litigious
## 3696 rebutting litigious
## 3697 recordation litigious
## 3698 recoupable litigious
## 3699 recoupment litigious
## 3700 recoupments litigious
## 3701 recourse litigious
## 3702 recourses litigious
## 3703 rectification litigious
## 3704 rectifications litigious
## 3705 recusal litigious
## 3706 recuse litigious
## 3707 recused litigious
## 3708 recuses litigious
## 3709 recusing litigious
## 3710 redact litigious
## 3711 redacted litigious
## 3712 redacting litigious
## 3713 redaction litigious
## 3714 redactions litigious
## 3715 referenda litigious
## 3716 referendum litigious
## 3717 referendums litigious
## 3718 refile litigious
## 3719 refiled litigious
## 3720 refiles litigious
## 3721 refiling litigious
## 3722 regulate litigious
## 3723 regulated litigious
## 3724 regulates litigious
## 3725 regulating litigious
## 3726 regulation litigious
## 3727 regulations litigious
## 3728 regulative litigious
## 3729 regulator litigious
## 3730 regulators litigious
## 3731 regulatory litigious
## 3732 rehear litigious
## 3733 reheard litigious
## 3734 rehearing litigious
## 3735 rehearings litigious
## 3736 releasees litigious
## 3737 remand litigious
## 3738 remanded litigious
## 3739 remanding litigious
## 3740 remands litigious
## 3741 remediate litigious
## 3742 remediated litigious
## 3743 remediating litigious
## 3744 remediation litigious
## 3745 remediations litigious
## 3746 remedied litigious
## 3747 remised litigious
## 3748 repledged litigious
## 3749 replevin litigious
## 3750 reprorated litigious
## 3751 requester litigious
## 3752 requestor litigious
## 3753 reregulation litigious
## 3754 rescind litigious
## 3755 rescinded litigious
## 3756 rescinding litigious
## 3757 rescinds litigious
## 3758 rescission litigious
## 3759 rescissions litigious
## 3760 restitutionary litigious
## 3761 retendering litigious
## 3762 retrocede litigious
## 3763 retroceded litigious
## 3764 retrocessionaires litigious
## 3765 revocability litigious
## 3766 revocation litigious
## 3767 revocations litigious
## 3768 ruling litigious
## 3769 rulings litigious
## 3770 sentenced litigious
## 3771 sentencing litigious
## 3772 sequestrator litigious
## 3773 settlement litigious
## 3774 settlements litigious
## 3775 severability litigious
## 3776 severable litigious
## 3777 severally litigious
## 3778 severance litigious
## 3779 severances litigious
## 3780 shall litigious
## 3781 statute litigious
## 3782 statutes litigious
## 3783 statutorily litigious
## 3784 statutory litigious
## 3785 subclause litigious
## 3786 subclauses litigious
## 3787 subdocket litigious
## 3788 subleasee litigious
## 3789 subleasehold litigious
## 3790 sublessors litigious
## 3791 sublicensee litigious
## 3792 sublicensor litigious
## 3793 subparagraph litigious
## 3794 subparagraphs litigious
## 3795 subpoena litigious
## 3796 subpoenaed litigious
## 3797 subpoenas litigious
## 3798 subrogated litigious
## 3799 subrogation litigious
## 3800 subtrust litigious
## 3801 subtrusts litigious
## 3802 sue litigious
## 3803 sued litigious
## 3804 sues litigious
## 3805 suing litigious
## 3806 summoned litigious
## 3807 summoning litigious
## 3808 summons litigious
## 3809 summonses litigious
## 3810 supersede litigious
## 3811 supersedeas litigious
## 3812 superseded litigious
## 3813 supersedes litigious
## 3814 superseding litigious
## 3815 sureties litigious
## 3816 surety litigious
## 3817 tenantability litigious
## 3818 terminable litigious
## 3819 terminus litigious
## 3820 testamentary litigious
## 3821 testify litigious
## 3822 testifying litigious
## 3823 testimony litigious
## 3824 thence litigious
## 3825 thenceforth litigious
## 3826 thenceforward litigious
## 3827 thereafter litigious
## 3828 thereat litigious
## 3829 therefrom litigious
## 3830 therein litigious
## 3831 thereinafter litigious
## 3832 thereof litigious
## 3833 thereon litigious
## 3834 thereover litigious
## 3835 thereto litigious
## 3836 theretofor litigious
## 3837 theretofore litigious
## 3838 thereunder litigious
## 3839 thereunto litigious
## 3840 thereupon litigious
## 3841 therewith litigious
## 3842 tort litigious
## 3843 tortious litigious
## 3844 tortiously litigious
## 3845 torts litigious
## 3846 transferor litigious
## 3847 transferors litigious
## 3848 unappealable litigious
## 3849 unappealed litigious
## 3850 unconstitutional litigious
## 3851 unconstitutionality litigious
## 3852 unconstitutionally litigious
## 3853 uncontracted litigious
## 3854 undefeased litigious
## 3855 undischarged litigious
## 3856 unencumber litigious
## 3857 unencumbered litigious
## 3858 unenforceability litigious
## 3859 unenforceable litigious
## 3860 unlawful litigious
## 3861 unlawfully litigious
## 3862 unlawfulness litigious
## 3863 unremediated litigious
## 3864 unstayed litigious
## 3865 unto litigious
## 3866 usurious litigious
## 3867 usurp litigious
## 3868 usurpation litigious
## 3869 usurped litigious
## 3870 usurping litigious
## 3871 usurps litigious
## 3872 usury litigious
## 3873 vendee litigious
## 3874 vendees litigious
## 3875 verdict litigious
## 3876 verdicts litigious
## 3877 viatical litigious
## 3878 violative litigious
## 3879 voidable litigious
## 3880 voided litigious
## 3881 voiding litigious
## 3882 warrantees litigious
## 3883 warrantor litigious
## 3884 whatever litigious
## 3885 whatsoever litigious
## 3886 whensoever litigious
## 3887 whereabouts litigious
## 3888 whereas litigious
## 3889 whereat litigious
## 3890 whereby litigious
## 3891 wherefore litigious
## 3892 wherein litigious
## 3893 whereof litigious
## 3894 whereon litigious
## 3895 whereto litigious
## 3896 whereunder litigious
## 3897 whereupon litigious
## 3898 wherewith litigious
## 3899 whistleblowers litigious
## 3900 whomever litigious
## 3901 whomsoever litigious
## 3902 whosoever litigious
## 3903 wilful litigious
## 3904 willful litigious
## 3905 willfully litigious
## 3906 willfulness litigious
## 3907 witness litigious
## 3908 witnesses litigious
## 3909 writ litigious
## 3910 writs litigious
## 3911 abide constraining
## 3912 abiding constraining
## 3913 bound constraining
## 3914 bounded constraining
## 3915 commit constraining
## 3916 commitment constraining
## 3917 commitments constraining
## 3918 commits constraining
## 3919 committed constraining
## 3920 committing constraining
## 3921 compel constraining
## 3922 compelled constraining
## 3923 compelling constraining
## 3924 compels constraining
## 3925 comply constraining
## 3926 compulsion constraining
## 3927 compulsory constraining
## 3928 confine constraining
## 3929 confined constraining
## 3930 confinement constraining
## 3931 confines constraining
## 3932 confining constraining
## 3933 constrain constraining
## 3934 constrained constraining
## 3935 constraining constraining
## 3936 constrains constraining
## 3937 constraint constraining
## 3938 constraints constraining
## 3939 covenant constraining
## 3940 covenanted constraining
## 3941 covenanting constraining
## 3942 covenants constraining
## 3943 depend constraining
## 3944 dependance constraining
## 3945 dependances constraining
## 3946 dependant constraining
## 3947 dependencies constraining
## 3948 dependent constraining
## 3949 depending constraining
## 3950 depends constraining
## 3951 dictate constraining
## 3952 dictated constraining
## 3953 dictates constraining
## 3954 dictating constraining
## 3955 directive constraining
## 3956 directives constraining
## 3957 earmark constraining
## 3958 earmarked constraining
## 3959 earmarking constraining
## 3960 earmarks constraining
## 3961 encumber constraining
## 3962 encumbered constraining
## 3963 encumbering constraining
## 3964 encumbers constraining
## 3965 encumbrance constraining
## 3966 encumbrances constraining
## 3967 entail constraining
## 3968 entailed constraining
## 3969 entailing constraining
## 3970 entails constraining
## 3971 entrench constraining
## 3972 entrenched constraining
## 3973 escrow constraining
## 3974 escrowed constraining
## 3975 escrows constraining
## 3976 forbade constraining
## 3977 forbid constraining
## 3978 forbidden constraining
## 3979 forbidding constraining
## 3980 forbids constraining
## 3981 impair constraining
## 3982 impaired constraining
## 3983 impairing constraining
## 3984 impairment constraining
## 3985 impairments constraining
## 3986 impairs constraining
## 3987 impose constraining
## 3988 imposed constraining
## 3989 imposes constraining
## 3990 imposing constraining
## 3991 imposition constraining
## 3992 impositions constraining
## 3993 indebted constraining
## 3994 inhibit constraining
## 3995 inhibited constraining
## 3996 inhibiting constraining
## 3997 inhibits constraining
## 3998 insist constraining
## 3999 insisted constraining
## 4000 insistence constraining
## 4001 insisting constraining
## 4002 insists constraining
## 4003 irrevocable constraining
## 4004 irrevocably constraining
## 4005 limit constraining
## 4006 limiting constraining
## 4007 limits constraining
## 4008 mandate constraining
## 4009 mandated constraining
## 4010 mandates constraining
## 4011 mandating constraining
## 4012 mandatory constraining
## 4013 manditorily constraining
## 4014 necessitate constraining
## 4015 necessitated constraining
## 4016 necessitates constraining
## 4017 necessitating constraining
## 4018 noncancelable constraining
## 4019 noncancellable constraining
## 4020 obligate constraining
## 4021 obligated constraining
## 4022 obligates constraining
## 4023 obligating constraining
## 4024 obligation constraining
## 4025 obligations constraining
## 4026 obligatory constraining
## 4027 oblige constraining
## 4028 obliged constraining
## 4029 obliges constraining
## 4030 permissible constraining
## 4031 permission constraining
## 4032 permissions constraining
## 4033 permitted constraining
## 4034 permitting constraining
## 4035 pledge constraining
## 4036 pledged constraining
## 4037 pledges constraining
## 4038 pledging constraining
## 4039 preclude constraining
## 4040 precluded constraining
## 4041 precludes constraining
## 4042 precluding constraining
## 4043 precondition constraining
## 4044 preconditions constraining
## 4045 preset constraining
## 4046 prevent constraining
## 4047 prevented constraining
## 4048 preventing constraining
## 4049 prevents constraining
## 4050 prohibit constraining
## 4051 prohibited constraining
## 4052 prohibiting constraining
## 4053 prohibition constraining
## 4054 prohibitions constraining
## 4055 prohibitive constraining
## 4056 prohibitively constraining
## 4057 prohibitory constraining
## 4058 prohibits constraining
## 4059 refrain constraining
## 4060 refraining constraining
## 4061 refrains constraining
## 4062 require constraining
## 4063 required constraining
## 4064 requirement constraining
## 4065 requirements constraining
## 4066 requires constraining
## 4067 requiring constraining
## 4068 restrain constraining
## 4069 restrained constraining
## 4070 restraining constraining
## 4071 restrains constraining
## 4072 restraint constraining
## 4073 restraints constraining
## 4074 restrict constraining
## 4075 restricted constraining
## 4076 restricting constraining
## 4077 restriction constraining
## 4078 restrictions constraining
## 4079 restrictive constraining
## 4080 restrictively constraining
## 4081 restrictiveness constraining
## 4082 restricts constraining
## 4083 stipulate constraining
## 4084 stipulated constraining
## 4085 stipulates constraining
## 4086 stipulating constraining
## 4087 stipulation constraining
## 4088 stipulations constraining
## 4089 strict constraining
## 4090 stricter constraining
## 4091 strictest constraining
## 4092 strictly constraining
## 4093 unavailability constraining
## 4094 unavailable constraining
## 4095 aegis superfluous
## 4096 amorphous superfluous
## 4097 anticipatory superfluous
## 4098 appertaining superfluous
## 4099 assimilate superfluous
## 4100 assimilating superfluous
## 4101 assimilation superfluous
## 4102 bifurcated superfluous
## 4103 bifurcation superfluous
## 4104 cessions superfluous
## 4105 cognizable superfluous
## 4106 concomitant superfluous
## 4107 correlative superfluous
## 4108 deconsolidation superfluous
## 4109 delineation superfluous
## 4110 demonstrable superfluous
## 4111 demonstrably superfluous
## 4112 derecognized superfluous
## 4113 derecognizes superfluous
## 4114 derivatively superfluous
## 4115 effectuate superfluous
## 4116 effectuated superfluous
## 4117 effectuates superfluous
## 4118 effectuating superfluous
## 4119 effectuation superfluous
## 4120 efficacious superfluous
## 4121 efficacy superfluous
## 4122 exigent superfluous
## 4123 expeditiously superfluous
## 4124 extant superfluous
## 4125 furthermore superfluous
## 4126 germane superfluous
## 4127 howsoever superfluous
## 4128 impost superfluous
## 4129 imposts superfluous
## 4130 imputation superfluous
## 4131 imputed superfluous
## 4132 investigatory superfluous
## 4133 mandatorily superfluous
## 4134 nonetheless superfluous
## 4135 obviate superfluous
## 4136 plenary superfluous
## 4137 preponderance superfluous
## 4138 presumptive superfluous
## 4139 propagation superfluous
## 4140 proscribe superfluous
## 4141 putative superfluous
## 4142 recharacterization superfluous
## 4143 redetermination superfluous
## 4144 redetermined superfluous
## 4145 stratum superfluous
## 4146 superannuation superfluous
## 4147 theses superfluous
## 4148 ubiquitous superfluous
## 4149 wheresoever superfluous
## 4150 whilst superfluous
Lets read in a file I want to clean outside of the tutorial.
reviews <- read.csv('cleanedRegexReviews13.csv',sep=',', header=TRUE,na.strings=c('',' ','NA'))
head(reviews)
## userReviewSeries
## 1 mostRecentVisit_review
## 2 mostRecentVisit_review
## 3 mostRecentVisit_review
## 4 mostRecentVisit_review
## 5 mostRecentVisit_review
## 6 mostRecentVisit_review
## userReviewOnlyContent
## 1 What a wonderful way to start the year! This was my second time back to HIGH END SPA, and we had a great time. The crowds were very low (seriously, it felt like we had the place to ourselves most of the day.) We walked right into the mineral baths, club mud, and didn't wait in any kind of line for lunch. None of the pools were crowded, and we were even able to enjoy one of the hammocks in the secret garden.\n\nTiffany at the front check-in desk went above and beyond for us regarding the robes. I had requested a plus-sized robe, since after my last review I knew they had added some to their collection. Unfortunately, all of their plus-sized robes were still dirty from the day before. Tiffany was so accommodating, though! She was able to get us robes from the cabana area that fit me perfectly! It is so great to know that not only do they now offer guests of all sizes the option to enjoy a warm robe, but that they really want to make sure you have a good day. Thank you, Tiffany, for everything.\n\nAll of the staff today were in good spirits. The only thing that would have made today better would have been a massage. We'll have to book one next time. My husband and I are going to make HIGH END SPA our annual New Year's Day tradition!\n\n
## 2 My sister and I brought my mom here for her birthday and overall, we really enjoyed our time here. We're used to going to Korean spas, but this was definitely an upgrade.\n\nPROS:\n- The resort itself is beautiful and so relaxing. Like seriously such a pleasing escape from reality that I needed. It's set up so nicely and feels very luxurious.\n- It was my mom's birthday so she received free admission on birthday with a purchase of a service. Admission is $52, so she booked a manicure for $50 and got in for free. WORTH. My mom had gone 52 years without ever getting her nails done, so it was kind of heartwarming to see how much she loved her experience.\n- The three of us took a Yin Yoga class and really enjoyed it. We definitely want to take advantage of the other class options next time we come.\n- CLUB MUD. We had so much fun there and even made a little clay sculpture. It really does do wonders for your skin, and the area is suprisingly very well-kept.\n- The shower and locker facilities can get pretty crowded, but overall, they are super nice and clean. They have an ample amount of showers, so we didn't have to wait at all.\n- All the staff seemed really friendly and helpful. There's always staff members roaming around, so you always feel somewhat taken care of.\n- I really appreciated the towel and water stands located throughout the resort. So handy and necessary.\n- Parking is free, thank God.\n\nCONS:\n- We went on a fairly cold day (around 60 degrees), so the hot pools were CROWDED,. Like there were a couple of times I touched other people's body parts I definitely did not want to touch. I feel like some of the hot pools exceeded capacity, and I'm sure it was mostly because it was a cold day, but I do wish there were more of the hot pools or they should just be larger!\n- The food is incredibly expensive. Like as ridiculous as Disneyland, which is saying something. Plan to spend around $20 per meal per person. The one thing that was worth it was the nachos ($16 for the small, but this thing is huge).\n- The kitchen moves VERY SLOWLY. Especially the salad section because I came before the lunch rush and still waited 20 minutes to order my salad. The kitchen staff seems a bit incompetent, or maybe it's just run inefficiently.\n- This is more of a side note, but I wish there was a more streamlined reservation system. I made the entire reservation over the phone, which was fine, but it wasn't laid out as clearly as I would have liked it with the premium admissions prices, services, etc. The online one also just seemed really confusing.\n\nOverall, we had a positive experience with just a couple of kinks here and there. We love that there's just a lot to do here and time FLIES when you're here so come as early as you can. We definitely want to try coming back in the summer months when it's warmer!\n\n\n
## 3 I came to CHIROPRACTIC with severe back and neck pain. DOCTOR was AMAZING and helped me to feel much better than I have felt for YEARS! The girls up front also are very sweet and always made sure that all my appointments were set and on time! Heather the billing manager was very kind as well, she was AWESOME when it came to dealing with me and my insurance amd was definitely a huge help! I don't know what I would have done without Heather helping me with all of the insurance problems I had!!! She is the BEST, thank you Heather!! I would definitely recommend going to this clinic!!!!
## 4 I have to say.... This is by far the best Chiropractic place I've ever been to. The staff is super friendly and very professional. From the moment I walk in the door I get greeted by name . The Drs are amazing too. Love this place and I highly recommend them.
## 5 Dr. is my chiropractor and he is a fabulous individual. I've never waited more than few minutes for him to see me. The front team (Both ladies" are great with an outstanding care and smile. Thank you guys for all you do.
## 6 Many in our family have seen DOCTOR for chiropractic care. He is very warm and friendly, knowledgable, puts your mind at ease during his adjustments. He gives great explanations. Our 14yo son said, "he is really good at what he does and he is a good person." We all feel better after visiting him. Recommend him to everyone.
## userRatingSeries userRatingValue businessReplied
## 1 mostRecentVisit_rating 5 yes
## 2 mostRecentVisit_rating 4 yes
## 3 mostRecentVisit_rating 5 no
## 4 mostRecentVisit_rating 5 no
## 5 mostRecentVisit_rating 5 no
## 6 mostRecentVisit_rating 5 no
## businessReplyContent
## 1 Amber P. of HIGH END SPA Hot Springs\n\nBusiness Customer Service\n\n1/2/20191/15/2018-\nHi Michelle, HIGH END SPA is proud to welcome men and women of all shapes and sizes. In response to your day, we are now in the process of ordering a few XL robes so we can continue to have offerings for all of our guests. I wanted to reach out to you to let you know we have sent you a private message as we would like to connect with you directly. Thank you again for communicating your concern with us.\nAlexa Gallegos\n\n1/2/2019 -\n\nHi Michelle,\nI am so happy to hear that you had a great returning experience! Our team members do the best they can to accommodate all of our guests needs and we are very glad to hear you were happy with the solution.\nWe hope to see you and your husband again!\n\nBest,\nAmber Peyghambari\n\nRead less\n
## 2 Amber P. of HIGH END SPA Hot Springs\n\nBusiness Customer Service\n\n3/25/2019Hi Cathy,\n\nThank you for taking the time to share your experience with us. We are happy to hear that you enjoyed your day at HIGH END SPA. We appreciate all feedback and will share these concerns with our team. We hope to see you back this summer!\n\nWith kind,\nAmber Peyghambari\n
## 3 <NA>
## 4 <NA>
## 5 <NA>
## 6 <NA>
## userReviewContent
## 1 1/1/2019Updated review\n 2 photos\n\nWhat a wonderful way to start the year! This was my second time back to HIGH END SPA, and we had a great time. The crowds were very low (seriously, it felt like we had the place to ourselves most of the day.) We walked right into the mineral baths, club mud, and didn't wait in any kind of line for lunch. None of the pools were crowded, and we were even able to enjoy one of the hammocks in the secret garden.\n\nTiffany at the front check-in desk went above and beyond for us regarding the robes. I had requested a plus-sized robe, since after my last review I knew they had added some to their collection. Unfortunately, all of their plus-sized robes were still dirty from the day before. Tiffany was so accommodating, though! She was able to get us robes from the cabana area that fit me perfectly! It is so great to know that not only do they now offer guests of all sizes the option to enjoy a warm robe, but that they really want to make sure you have a good day. Thank you, Tiffany, for everything.\n\nAll of the staff today were in good spirits. The only thing that would have made today better would have been a massage. We'll have to book one next time. My husband and I are going to make HIGH END SPA our annual New Year's Day tradition!\n\nComment from Amber P. of HIGH END SPA Hot Springs\n\nBusiness Customer Service\n\n1/2/20191/15/2018-\nHi Michelle, HIGH END SPA is proud to welcome men and women of all shapes and sizes. In response to your day, we are now in the process of ordering a few XL robes so we can continue to have offerings for all of our guests. I wanted to reach out to you to let you know we have sent you a private message as we would like to connect with you directly. Thank you again for communicating your concern with us.\nAlexa Gallegos\n\n1/2/2019 -\n\nHi Michelle,\nI am so happy to hear that you had a great returning experience! Our team members do the best they can to accommodate all of our guests needs and we are very glad to hear you were happy with the solution.\nWe hope to see you and your husband again!\n\nBest,\nAmber Peyghambari\n\nRead less\n
## 2 3/24/2019\n 12 photos\n\nMy sister and I brought my mom here for her birthday and overall, we really enjoyed our time here. We're used to going to Korean spas, but this was definitely an upgrade.\n\nPROS:\n- The resort itself is beautiful and so relaxing. Like seriously such a pleasing escape from reality that I needed. It's set up so nicely and feels very luxurious.\n- It was my mom's birthday so she received free admission on birthday with a purchase of a service. Admission is $52, so she booked a manicure for $50 and got in for free. WORTH. My mom had gone 52 years without ever getting her nails done, so it was kind of heartwarming to see how much she loved her experience.\n- The three of us took a Yin Yoga class and really enjoyed it. We definitely want to take advantage of the other class options next time we come.\n- CLUB MUD. We had so much fun there and even made a little clay sculpture. It really does do wonders for your skin, and the area is suprisingly very well-kept.\n- The shower and locker facilities can get pretty crowded, but overall, they are super nice and clean. They have an ample amount of showers, so we didn't have to wait at all.\n- All the staff seemed really friendly and helpful. There's always staff members roaming around, so you always feel somewhat taken care of.\n- I really appreciated the towel and water stands located throughout the resort. So handy and necessary.\n- Parking is free, thank God.\n\nCONS:\n- We went on a fairly cold day (around 60 degrees), so the hot pools were CROWDED,. Like there were a couple of times I touched other people's body parts I definitely did not want to touch. I feel like some of the hot pools exceeded capacity, and I'm sure it was mostly because it was a cold day, but I do wish there were more of the hot pools or they should just be larger!\n- The food is incredibly expensive. Like as ridiculous as Disneyland, which is saying something. Plan to spend around $20 per meal per person. The one thing that was worth it was the nachos ($16 for the small, but this thing is huge).\n- The kitchen moves VERY SLOWLY. Especially the salad section because I came before the lunch rush and still waited 20 minutes to order my salad. The kitchen staff seems a bit incompetent, or maybe it's just run inefficiently.\n- This is more of a side note, but I wish there was a more streamlined reservation system. I made the entire reservation over the phone, which was fine, but it wasn't laid out as clearly as I would have liked it with the premium admissions prices, services, etc. The online one also just seemed really confusing.\n\nOverall, we had a positive experience with just a couple of kinks here and there. We love that there's just a lot to do here and time FLIES when you're here so come as early as you can. We definitely want to try coming back in the summer months when it's warmer!\n\n\nComment from Amber P. of HIGH END SPA Hot Springs\n\nBusiness Customer Service\n\n3/25/2019Hi Cathy,\n\nThank you for taking the time to share your experience with us. We are happy to hear that you enjoyed your day at HIGH END SPA. We appreciate all feedback and will share these concerns with our team. We hope to see you back this summer!\n\nWith kind,\nAmber Peyghambari\n
## 3 1/26/2020\nI came to CHIROPRACTIC with severe back and neck pain. DOCTOR was AMAZING and helped me to feel much better than I have felt for YEARS! The girls up front also are very sweet and always made sure that all my appointments were set and on time! Heather the billing manager was very kind as well, she was AWESOME when it came to dealing with me and my insurance amd was definitely a huge help! I don't know what I would have done without Heather helping me with all of the insurance problems I had!!! She is the BEST, thank you Heather!! I would definitely recommend going to this clinic!!!!
## 4 1/24/2020\nI have to say.... This is by far the best Chiropractic place I've ever been to. The staff is super friendly and very professional. From the moment I walk in the door I get greeted by name . The Drs are amazing too. Love this place and I highly recommend them.
## 5 10/22/2019\nDr. is my chiropractor and he is a fabulous individual. I've never waited more than few minutes for him to see me. The front team (Both ladies" are great with an outstanding care and smile. Thank you guys for all you do.
## 6 12/23/2019\nMany in our family have seen DOCTOR for chiropractic care. He is very warm and friendly, knowledgable, puts your mind at ease during his adjustments. He gives great explanations. Our 14yo son said, "he is really good at what he does and he is a good person." We all feel better after visiting him. Recommend him to everyone.
## LowAvgHighCost businessType cityState friends reviews
## 1 High high end massage retreat Orange, CA 26 33
## 2 High high end massage retreat Los Angeles, CA 894 311
## 3 Avg chiropractic Laguna Beach, CA 0 NA
## 4 Avg chiropractic Moreno Valley, CA 0 NA
## 5 Avg chiropractic Corona, CA 0 11
## 6 Avg chiropractic Corona, CA 0 2
## photos eliteStatus userName Date userBusinessPhotos userCheckIns
## 1 21 <NA> Michelle A. 2019-01-01 2 NA
## 2 1187 Elite '2020 Cathy P. 2019-03-24 NA NA
## 3 NA <NA> Brie W. 2020-01-26 NA NA
## 4 NA <NA> Yoles A. 2020-01-24 NA NA
## 5 NA <NA> Rafeh T. 2019-10-22 NA NA
## 6 NA <NA> Kort U. 2019-12-23 NA NA
I want to use the rating and the cleaned up reviews only.This is not a corpus, and the following document term matrix (dtm) and document feature matrix (dfm) work on corpus of documents to split each review into a large matrix of sparse words and counts per row of each document. For this it would be each review.
reviews1 <- reviews[,c(2,4)]
head(reviews1)
## userReviewOnlyContent
## 1 What a wonderful way to start the year! This was my second time back to HIGH END SPA, and we had a great time. The crowds were very low (seriously, it felt like we had the place to ourselves most of the day.) We walked right into the mineral baths, club mud, and didn't wait in any kind of line for lunch. None of the pools were crowded, and we were even able to enjoy one of the hammocks in the secret garden.\n\nTiffany at the front check-in desk went above and beyond for us regarding the robes. I had requested a plus-sized robe, since after my last review I knew they had added some to their collection. Unfortunately, all of their plus-sized robes were still dirty from the day before. Tiffany was so accommodating, though! She was able to get us robes from the cabana area that fit me perfectly! It is so great to know that not only do they now offer guests of all sizes the option to enjoy a warm robe, but that they really want to make sure you have a good day. Thank you, Tiffany, for everything.\n\nAll of the staff today were in good spirits. The only thing that would have made today better would have been a massage. We'll have to book one next time. My husband and I are going to make HIGH END SPA our annual New Year's Day tradition!\n\n
## 2 My sister and I brought my mom here for her birthday and overall, we really enjoyed our time here. We're used to going to Korean spas, but this was definitely an upgrade.\n\nPROS:\n- The resort itself is beautiful and so relaxing. Like seriously such a pleasing escape from reality that I needed. It's set up so nicely and feels very luxurious.\n- It was my mom's birthday so she received free admission on birthday with a purchase of a service. Admission is $52, so she booked a manicure for $50 and got in for free. WORTH. My mom had gone 52 years without ever getting her nails done, so it was kind of heartwarming to see how much she loved her experience.\n- The three of us took a Yin Yoga class and really enjoyed it. We definitely want to take advantage of the other class options next time we come.\n- CLUB MUD. We had so much fun there and even made a little clay sculpture. It really does do wonders for your skin, and the area is suprisingly very well-kept.\n- The shower and locker facilities can get pretty crowded, but overall, they are super nice and clean. They have an ample amount of showers, so we didn't have to wait at all.\n- All the staff seemed really friendly and helpful. There's always staff members roaming around, so you always feel somewhat taken care of.\n- I really appreciated the towel and water stands located throughout the resort. So handy and necessary.\n- Parking is free, thank God.\n\nCONS:\n- We went on a fairly cold day (around 60 degrees), so the hot pools were CROWDED,. Like there were a couple of times I touched other people's body parts I definitely did not want to touch. I feel like some of the hot pools exceeded capacity, and I'm sure it was mostly because it was a cold day, but I do wish there were more of the hot pools or they should just be larger!\n- The food is incredibly expensive. Like as ridiculous as Disneyland, which is saying something. Plan to spend around $20 per meal per person. The one thing that was worth it was the nachos ($16 for the small, but this thing is huge).\n- The kitchen moves VERY SLOWLY. Especially the salad section because I came before the lunch rush and still waited 20 minutes to order my salad. The kitchen staff seems a bit incompetent, or maybe it's just run inefficiently.\n- This is more of a side note, but I wish there was a more streamlined reservation system. I made the entire reservation over the phone, which was fine, but it wasn't laid out as clearly as I would have liked it with the premium admissions prices, services, etc. The online one also just seemed really confusing.\n\nOverall, we had a positive experience with just a couple of kinks here and there. We love that there's just a lot to do here and time FLIES when you're here so come as early as you can. We definitely want to try coming back in the summer months when it's warmer!\n\n\n
## 3 I came to CHIROPRACTIC with severe back and neck pain. DOCTOR was AMAZING and helped me to feel much better than I have felt for YEARS! The girls up front also are very sweet and always made sure that all my appointments were set and on time! Heather the billing manager was very kind as well, she was AWESOME when it came to dealing with me and my insurance amd was definitely a huge help! I don't know what I would have done without Heather helping me with all of the insurance problems I had!!! She is the BEST, thank you Heather!! I would definitely recommend going to this clinic!!!!
## 4 I have to say.... This is by far the best Chiropractic place I've ever been to. The staff is super friendly and very professional. From the moment I walk in the door I get greeted by name . The Drs are amazing too. Love this place and I highly recommend them.
## 5 Dr. is my chiropractor and he is a fabulous individual. I've never waited more than few minutes for him to see me. The front team (Both ladies" are great with an outstanding care and smile. Thank you guys for all you do.
## 6 Many in our family have seen DOCTOR for chiropractic care. He is very warm and friendly, knowledgable, puts your mind at ease during his adjustments. He gives great explanations. Our 14yo son said, "he is really good at what he does and he is a good person." We all feel better after visiting him. Recommend him to everyone.
## userRatingValue
## 1 5
## 2 4
## 3 5
## 4 5
## 5 5
## 6 5
dim(reviews1)
## [1] 614 2
colnames(reviews1)
## [1] "userReviewOnlyContent" "userRatingValue"
The unnest() from strings to tokens of a table. This uses dplyr and the tidytext package.
revs <- as.character(paste(reviews1$userReviewOnlyContent))
length(revs)
## [1] 614
head(revs)
## [1] " What a wonderful way to start the year! This was my second time back to HIGH END SPA, and we had a great time. The crowds were very low (seriously, it felt like we had the place to ourselves most of the day.) We walked right into the mineral baths, club mud, and didn't wait in any kind of line for lunch. None of the pools were crowded, and we were even able to enjoy one of the hammocks in the secret garden.\n\nTiffany at the front check-in desk went above and beyond for us regarding the robes. I had requested a plus-sized robe, since after my last review I knew they had added some to their collection. Unfortunately, all of their plus-sized robes were still dirty from the day before. Tiffany was so accommodating, though! She was able to get us robes from the cabana area that fit me perfectly! It is so great to know that not only do they now offer guests of all sizes the option to enjoy a warm robe, but that they really want to make sure you have a good day. Thank you, Tiffany, for everything.\n\nAll of the staff today were in good spirits. The only thing that would have made today better would have been a massage. We'll have to book one next time. My husband and I are going to make HIGH END SPA our annual New Year's Day tradition!\n\n"
## [2] " My sister and I brought my mom here for her birthday and overall, we really enjoyed our time here. We're used to going to Korean spas, but this was definitely an upgrade.\n\nPROS:\n- The resort itself is beautiful and so relaxing. Like seriously such a pleasing escape from reality that I needed. It's set up so nicely and feels very luxurious.\n- It was my mom's birthday so she received free admission on birthday with a purchase of a service. Admission is $52, so she booked a manicure for $50 and got in for free. WORTH. My mom had gone 52 years without ever getting her nails done, so it was kind of heartwarming to see how much she loved her experience.\n- The three of us took a Yin Yoga class and really enjoyed it. We definitely want to take advantage of the other class options next time we come.\n- CLUB MUD. We had so much fun there and even made a little clay sculpture. It really does do wonders for your skin, and the area is suprisingly very well-kept.\n- The shower and locker facilities can get pretty crowded, but overall, they are super nice and clean. They have an ample amount of showers, so we didn't have to wait at all.\n- All the staff seemed really friendly and helpful. There's always staff members roaming around, so you always feel somewhat taken care of.\n- I really appreciated the towel and water stands located throughout the resort. So handy and necessary.\n- Parking is free, thank God.\n\nCONS:\n- We went on a fairly cold day (around 60 degrees), so the hot pools were CROWDED,. Like there were a couple of times I touched other people's body parts I definitely did not want to touch. I feel like some of the hot pools exceeded capacity, and I'm sure it was mostly because it was a cold day, but I do wish there were more of the hot pools or they should just be larger!\n- The food is incredibly expensive. Like as ridiculous as Disneyland, which is saying something. Plan to spend around $20 per meal per person. The one thing that was worth it was the nachos ($16 for the small, but this thing is huge).\n- The kitchen moves VERY SLOWLY. Especially the salad section because I came before the lunch rush and still waited 20 minutes to order my salad. The kitchen staff seems a bit incompetent, or maybe it's just run inefficiently.\n- This is more of a side note, but I wish there was a more streamlined reservation system. I made the entire reservation over the phone, which was fine, but it wasn't laid out as clearly as I would have liked it with the premium admissions prices, services, etc. The online one also just seemed really confusing.\n\nOverall, we had a positive experience with just a couple of kinks here and there. We love that there's just a lot to do here and time FLIES when you're here so come as early as you can. We definitely want to try coming back in the summer months when it's warmer!\n\n\n"
## [3] "I came to CHIROPRACTIC with severe back and neck pain. DOCTOR was AMAZING and helped me to feel much better than I have felt for YEARS! The girls up front also are very sweet and always made sure that all my appointments were set and on time! Heather the billing manager was very kind as well, she was AWESOME when it came to dealing with me and my insurance amd was definitely a huge help! I don't know what I would have done without Heather helping me with all of the insurance problems I had!!! She is the BEST, thank you Heather!! I would definitely recommend going to this clinic!!!!"
## [4] "I have to say.... This is by far the best Chiropractic place I've ever been to. The staff is super friendly and very professional. From the moment I walk in the door I get greeted by name . The Drs are amazing too. Love this place and I highly recommend them."
## [5] "Dr. is my chiropractor and he is a fabulous individual. I've never waited more than few minutes for him to see me. The front team (Both ladies\" are great with an outstanding care and smile. Thank you guys for all you do."
## [6] "Many in our family have seen DOCTOR for chiropractic care. He is very warm and friendly, knowledgable, puts your mind at ease during his adjustments. He gives great explanations. Our 14yo son said, \"he is really good at what he does and he is a good person.\" We all feel better after visiting him. Recommend him to everyone."
A tibble is a tibble and dplyr product that doesn’t convert to factors, the string was converted to character before making this tibble.
library(dplyr)
text_df <- tibble(line = 1:614, text = revs)
text_df
## # A tibble: 614 x 2
## line text
## <int> <chr>
## 1 1 " What a wonderful way to start the year! This was my second time back…
## 2 2 " My sister and I brought my mom here for her birthday and overall, we…
## 3 3 "I came to CHIROPRACTIC with severe back and neck pain. DOCTOR was AMA…
## 4 4 "I have to say.... This is by far the best Chiropractic place I've eve…
## 5 5 "Dr. is my chiropractor and he is a fabulous individual. I've never w…
## 6 6 "Many in our family have seen DOCTOR for chiropractic care. He is ver…
## 7 7 "Dr. fixed my neck/shoulder pain in 2 sessions! I was in horrible pai…
## 8 8 " has been treating myself, family and friends so many years. I drive…
## 9 9 "Dr. is great! I've been to other chiropractors in the past and have …
## 10 10 "I'm so happy I found CHIROPRACTIC!\n\nBrenda was so sweet and attenti…
## # … with 604 more rows
Now the tidytext packages is used to unnest the tokens or words per document and count the frequency of each token per document or line.
tokenizedRevs <- text_df %>%
unnest_tokens(word, text)
Note that all tokens are lowercase and none are punctuations, because they have been stripped with the unnest_tokens(), but also because this cleaned reviews data did so.
head(tokenizedRevs,30)
## # A tibble: 30 x 2
## line word
## <int> <chr>
## 1 1 what
## 2 1 a
## 3 1 wonderful
## 4 1 way
## 5 1 to
## 6 1 start
## 7 1 the
## 8 1 year
## 9 1 this
## 10 1 was
## # … with 20 more rows
tokRevs <- tokenizedRevs %>% group_by(line) %>% count(word, sort=TRUE) %>%
mutate(wordCount=n) %>% ungroup()
tokRevs2 <- tokRevs[,-3]
head(tokRevs2)
## # A tibble: 6 x 3
## line word wordCount
## <int> <chr> <int>
## 1 365 the 45
## 2 334 the 36
## 3 376 the 35
## 4 372 the 31
## 5 373 the 29
## 6 420 the 29
bing_tokRevs <- tokRevs2 %>%
inner_join(bing, by = c(word = "word")) %>%
mutate(Bing_wordCount=wordCount,Bing_sentiment=sentiment)
bing_tokRevs2 <- bing_tokRevs[,-c(3:4)]
bing_tokRevs2
## # A tibble: 4,860 x 4
## line word Bing_wordCount Bing_sentiment
## <int> <chr> <int> <fct>
## 1 224 like 7 positive
## 2 509 like 7 positive
## 3 365 dirty 6 negative
## 4 440 warm 6 positive
## 5 602 better 5 positive
## 6 2 like 4 positive
## 7 25 best 4 positive
## 8 56 great 4 positive
## 9 63 great 4 positive
## 10 108 relief 4 positive
## # … with 4,850 more rows
nrc_tokRevs <- tokRevs2 %>%
inner_join(nrc, by = c(word = "word")) %>%
mutate(NRC_wordCount=wordCount,NRC_sentiment=sentiment)
nrc_tokRevs2 <- nrc_tokRevs[,-c(3:4)]
nrc_tokRevs2
## # A tibble: 15,189 x 4
## line word NRC_wordCount NRC_sentiment
## <int> <chr> <int> <fct>
## 1 466 spa 13 anticipation
## 2 466 spa 13 joy
## 3 466 spa 13 positive
## 4 466 spa 13 surprise
## 5 466 spa 13 trust
## 6 410 mud 12 negative
## 7 393 spa 10 anticipation
## 8 393 spa 10 joy
## 9 393 spa 10 positive
## 10 393 spa 10 surprise
## # … with 15,179 more rows
loughran_tokRevs <- tokRevs2 %>%
inner_join(loughran, by = c(word="word")) %>%
mutate(loughran_wordCount=wordCount,
loughran_sentiment=sentiment)
loughran_tokRevs2 <- loughran_tokRevs[,-c(3:4)]
loughran_tokRevs2
## # A tibble: 2,045 x 4
## line word loughran_wordCount loughran_sentiment
## <int> <chr> <int> <fct>
## 1 602 better 5 positive
## 2 25 accident 4 negative
## 3 25 best 4 positive
## 4 56 great 4 positive
## 5 63 great 4 positive
## 6 308 able 4 positive
## 7 350 good 4 positive
## 8 372 could 4 uncertainty
## 9 420 good 4 positive
## 10 439 good 4 positive
## # … with 2,035 more rows
afinn_tokRevs <- tokRevs2 %>%
inner_join(afinn, by=c(word="word")) %>%
mutate(afinn_wordCount=wordCount,
afinn_wordValue=value)
afinn_tokRevs2 <- afinn_tokRevs[,-c(3:4)]
afinn_tokRevs2
## # A tibble: 4,309 x 4
## line word afinn_wordCount afinn_wordValue
## <int> <chr> <int> <int>
## 1 224 like 7 2
## 2 509 like 7 2
## 3 308 gift 6 2
## 4 365 dirty 6 -2
## 5 440 warm 6 1
## 6 602 better 5 2
## 7 2 like 4 2
## 8 25 accident 4 -2
## 9 25 best 4 3
## 10 56 great 4 3
## # … with 4,299 more rows
group_afinn_tR <- afinn_tokRevs2 %>% group_by(line) %>% summarise(totalAFINN_Value=sum(afinn_wordValue),
totalAFINN_Words=sum(afinn_wordCount))
head(group_afinn_tR)
## # A tibble: 6 x 3
## line totalAFINN_Value totalAFINN_Words
## <int> <int> <int>
## 1 1 24 16
## 2 2 44 39
## 3 3 20 14
## 4 4 18 7
## 5 5 18 6
## 6 6 17 9
revs2 <- reviews1
revs2$line <- as.integer(row.names(reviews1))
revs3 <- revs2 %>% full_join(group_afinn_tR, by = c(line='line'))
head(revs3)
## userReviewOnlyContent
## 1 What a wonderful way to start the year! This was my second time back to HIGH END SPA, and we had a great time. The crowds were very low (seriously, it felt like we had the place to ourselves most of the day.) We walked right into the mineral baths, club mud, and didn't wait in any kind of line for lunch. None of the pools were crowded, and we were even able to enjoy one of the hammocks in the secret garden.\n\nTiffany at the front check-in desk went above and beyond for us regarding the robes. I had requested a plus-sized robe, since after my last review I knew they had added some to their collection. Unfortunately, all of their plus-sized robes were still dirty from the day before. Tiffany was so accommodating, though! She was able to get us robes from the cabana area that fit me perfectly! It is so great to know that not only do they now offer guests of all sizes the option to enjoy a warm robe, but that they really want to make sure you have a good day. Thank you, Tiffany, for everything.\n\nAll of the staff today were in good spirits. The only thing that would have made today better would have been a massage. We'll have to book one next time. My husband and I are going to make HIGH END SPA our annual New Year's Day tradition!\n\n
## 2 My sister and I brought my mom here for her birthday and overall, we really enjoyed our time here. We're used to going to Korean spas, but this was definitely an upgrade.\n\nPROS:\n- The resort itself is beautiful and so relaxing. Like seriously such a pleasing escape from reality that I needed. It's set up so nicely and feels very luxurious.\n- It was my mom's birthday so she received free admission on birthday with a purchase of a service. Admission is $52, so she booked a manicure for $50 and got in for free. WORTH. My mom had gone 52 years without ever getting her nails done, so it was kind of heartwarming to see how much she loved her experience.\n- The three of us took a Yin Yoga class and really enjoyed it. We definitely want to take advantage of the other class options next time we come.\n- CLUB MUD. We had so much fun there and even made a little clay sculpture. It really does do wonders for your skin, and the area is suprisingly very well-kept.\n- The shower and locker facilities can get pretty crowded, but overall, they are super nice and clean. They have an ample amount of showers, so we didn't have to wait at all.\n- All the staff seemed really friendly and helpful. There's always staff members roaming around, so you always feel somewhat taken care of.\n- I really appreciated the towel and water stands located throughout the resort. So handy and necessary.\n- Parking is free, thank God.\n\nCONS:\n- We went on a fairly cold day (around 60 degrees), so the hot pools were CROWDED,. Like there were a couple of times I touched other people's body parts I definitely did not want to touch. I feel like some of the hot pools exceeded capacity, and I'm sure it was mostly because it was a cold day, but I do wish there were more of the hot pools or they should just be larger!\n- The food is incredibly expensive. Like as ridiculous as Disneyland, which is saying something. Plan to spend around $20 per meal per person. The one thing that was worth it was the nachos ($16 for the small, but this thing is huge).\n- The kitchen moves VERY SLOWLY. Especially the salad section because I came before the lunch rush and still waited 20 minutes to order my salad. The kitchen staff seems a bit incompetent, or maybe it's just run inefficiently.\n- This is more of a side note, but I wish there was a more streamlined reservation system. I made the entire reservation over the phone, which was fine, but it wasn't laid out as clearly as I would have liked it with the premium admissions prices, services, etc. The online one also just seemed really confusing.\n\nOverall, we had a positive experience with just a couple of kinks here and there. We love that there's just a lot to do here and time FLIES when you're here so come as early as you can. We definitely want to try coming back in the summer months when it's warmer!\n\n\n
## 3 I came to CHIROPRACTIC with severe back and neck pain. DOCTOR was AMAZING and helped me to feel much better than I have felt for YEARS! The girls up front also are very sweet and always made sure that all my appointments were set and on time! Heather the billing manager was very kind as well, she was AWESOME when it came to dealing with me and my insurance amd was definitely a huge help! I don't know what I would have done without Heather helping me with all of the insurance problems I had!!! She is the BEST, thank you Heather!! I would definitely recommend going to this clinic!!!!
## 4 I have to say.... This is by far the best Chiropractic place I've ever been to. The staff is super friendly and very professional. From the moment I walk in the door I get greeted by name . The Drs are amazing too. Love this place and I highly recommend them.
## 5 Dr. is my chiropractor and he is a fabulous individual. I've never waited more than few minutes for him to see me. The front team (Both ladies" are great with an outstanding care and smile. Thank you guys for all you do.
## 6 Many in our family have seen DOCTOR for chiropractic care. He is very warm and friendly, knowledgable, puts your mind at ease during his adjustments. He gives great explanations. Our 14yo son said, "he is really good at what he does and he is a good person." We all feel better after visiting him. Recommend him to everyone.
## userRatingValue line totalAFINN_Value totalAFINN_Words
## 1 5 1 24 16
## 2 4 2 44 39
## 3 5 3 20 14
## 4 5 4 18 7
## 5 5 5 18 6
## 6 5 6 17 9
The above data frame shows the review, rating, line or review original order, and the sum of the afinn measures of positive and negative words in the review as shown in the total column.
group_loughran_tR <- loughran_tokRevs2 %>% group_by(line) %>% count(loughran_sentiment) %>%
mutate(loughran_totalSentimentCount=n)
group_loughran_tR2 <- group_loughran_tR[,-3]
head(group_loughran_tR2,30)
## # A tibble: 30 x 3
## # Groups: line [19]
## line loughran_sentiment loughran_totalSentimentCount
## <int> <fct> <int>
## 1 1 negative 2
## 2 1 positive 6
## 3 2 litigious 2
## 4 2 negative 5
## 5 2 positive 6
## 6 2 uncertainty 4
## 7 3 negative 2
## 8 3 positive 2
## 9 4 positive 2
## 10 5 positive 1
## # … with 20 more rows
grL <- group_loughran_tR2 %>% pivot_wider(names_from=loughran_sentiment, values_from = loughran_totalSentimentCount)
head(grL)
## # A tibble: 6 x 7
## # Groups: line [6]
## line negative positive litigious uncertainty constraining superfluous
## <int> <int> <int> <int> <int> <int> <int>
## 1 1 2 6 NA NA NA NA
## 2 2 5 6 2 4 NA NA
## 3 3 2 2 NA NA NA NA
## 4 4 NA 2 NA NA NA NA
## 5 5 NA 1 NA NA NA NA
## 6 6 NA 4 NA NA NA NA
group_nrc_tR <- nrc_tokRevs2 %>% group_by(line) %>% count(NRC_sentiment) %>%
mutate(NRC_totalSentimentCount=n)
group_nrc_tR2 <- group_nrc_tR[,-3]
head(group_nrc_tR2,30)
## # A tibble: 30 x 3
## # Groups: line [5]
## line NRC_sentiment NRC_totalSentimentCount
## <int> <fct> <int>
## 1 1 anticipation 7
## 2 1 disgust 1
## 3 1 joy 8
## 4 1 negative 3
## 5 1 positive 10
## 6 1 surprise 4
## 7 1 trust 6
## 8 2 anger 3
## 9 2 anticipation 10
## 10 2 disgust 2
## # … with 20 more rows
grN <- group_nrc_tR2 %>% pivot_wider(names_from=NRC_sentiment, values_from = NRC_totalSentimentCount)
head(grN)
## # A tibble: 6 x 11
## # Groups: line [6]
## line anticipation disgust joy negative positive surprise trust anger fear
## <int> <int> <int> <int> <int> <int> <int> <int> <int> <int>
## 1 1 7 1 8 3 10 4 6 NA NA
## 2 2 10 2 12 8 19 2 10 3 2
## 3 3 2 NA 2 1 4 1 4 NA 1
## 4 4 1 NA 2 NA 4 NA 3 NA NA
## 5 5 NA NA 2 1 2 1 2 NA NA
## 6 6 2 NA 2 NA 5 1 4 NA NA
## # … with 1 more variable: sadness <int>
revs4 <- revs3 %>% full_join(grL, by=c(line='line'))
head(revs4)
## userReviewOnlyContent
## 1 What a wonderful way to start the year! This was my second time back to HIGH END SPA, and we had a great time. The crowds were very low (seriously, it felt like we had the place to ourselves most of the day.) We walked right into the mineral baths, club mud, and didn't wait in any kind of line for lunch. None of the pools were crowded, and we were even able to enjoy one of the hammocks in the secret garden.\n\nTiffany at the front check-in desk went above and beyond for us regarding the robes. I had requested a plus-sized robe, since after my last review I knew they had added some to their collection. Unfortunately, all of their plus-sized robes were still dirty from the day before. Tiffany was so accommodating, though! She was able to get us robes from the cabana area that fit me perfectly! It is so great to know that not only do they now offer guests of all sizes the option to enjoy a warm robe, but that they really want to make sure you have a good day. Thank you, Tiffany, for everything.\n\nAll of the staff today were in good spirits. The only thing that would have made today better would have been a massage. We'll have to book one next time. My husband and I are going to make HIGH END SPA our annual New Year's Day tradition!\n\n
## 2 My sister and I brought my mom here for her birthday and overall, we really enjoyed our time here. We're used to going to Korean spas, but this was definitely an upgrade.\n\nPROS:\n- The resort itself is beautiful and so relaxing. Like seriously such a pleasing escape from reality that I needed. It's set up so nicely and feels very luxurious.\n- It was my mom's birthday so she received free admission on birthday with a purchase of a service. Admission is $52, so she booked a manicure for $50 and got in for free. WORTH. My mom had gone 52 years without ever getting her nails done, so it was kind of heartwarming to see how much she loved her experience.\n- The three of us took a Yin Yoga class and really enjoyed it. We definitely want to take advantage of the other class options next time we come.\n- CLUB MUD. We had so much fun there and even made a little clay sculpture. It really does do wonders for your skin, and the area is suprisingly very well-kept.\n- The shower and locker facilities can get pretty crowded, but overall, they are super nice and clean. They have an ample amount of showers, so we didn't have to wait at all.\n- All the staff seemed really friendly and helpful. There's always staff members roaming around, so you always feel somewhat taken care of.\n- I really appreciated the towel and water stands located throughout the resort. So handy and necessary.\n- Parking is free, thank God.\n\nCONS:\n- We went on a fairly cold day (around 60 degrees), so the hot pools were CROWDED,. Like there were a couple of times I touched other people's body parts I definitely did not want to touch. I feel like some of the hot pools exceeded capacity, and I'm sure it was mostly because it was a cold day, but I do wish there were more of the hot pools or they should just be larger!\n- The food is incredibly expensive. Like as ridiculous as Disneyland, which is saying something. Plan to spend around $20 per meal per person. The one thing that was worth it was the nachos ($16 for the small, but this thing is huge).\n- The kitchen moves VERY SLOWLY. Especially the salad section because I came before the lunch rush and still waited 20 minutes to order my salad. The kitchen staff seems a bit incompetent, or maybe it's just run inefficiently.\n- This is more of a side note, but I wish there was a more streamlined reservation system. I made the entire reservation over the phone, which was fine, but it wasn't laid out as clearly as I would have liked it with the premium admissions prices, services, etc. The online one also just seemed really confusing.\n\nOverall, we had a positive experience with just a couple of kinks here and there. We love that there's just a lot to do here and time FLIES when you're here so come as early as you can. We definitely want to try coming back in the summer months when it's warmer!\n\n\n
## 3 I came to CHIROPRACTIC with severe back and neck pain. DOCTOR was AMAZING and helped me to feel much better than I have felt for YEARS! The girls up front also are very sweet and always made sure that all my appointments were set and on time! Heather the billing manager was very kind as well, she was AWESOME when it came to dealing with me and my insurance amd was definitely a huge help! I don't know what I would have done without Heather helping me with all of the insurance problems I had!!! She is the BEST, thank you Heather!! I would definitely recommend going to this clinic!!!!
## 4 I have to say.... This is by far the best Chiropractic place I've ever been to. The staff is super friendly and very professional. From the moment I walk in the door I get greeted by name . The Drs are amazing too. Love this place and I highly recommend them.
## 5 Dr. is my chiropractor and he is a fabulous individual. I've never waited more than few minutes for him to see me. The front team (Both ladies" are great with an outstanding care and smile. Thank you guys for all you do.
## 6 Many in our family have seen DOCTOR for chiropractic care. He is very warm and friendly, knowledgable, puts your mind at ease during his adjustments. He gives great explanations. Our 14yo son said, "he is really good at what he does and he is a good person." We all feel better after visiting him. Recommend him to everyone.
## userRatingValue line totalAFINN_Value totalAFINN_Words negative positive
## 1 5 1 24 16 2 6
## 2 4 2 44 39 5 6
## 3 5 3 20 14 2 2
## 4 5 4 18 7 NA 2
## 5 5 5 18 6 NA 1
## 6 5 6 17 9 NA 4
## litigious uncertainty constraining superfluous
## 1 NA NA NA NA
## 2 2 4 NA NA
## 3 NA NA NA NA
## 4 NA NA NA NA
## 5 NA NA NA NA
## 6 NA NA NA NA
revs5 <- revs4 %>% full_join(grN, by=c(line='line'))
colnames(revs5)[6:7] <- paste(colnames(revs5)[6:7],'loughran',sep='_')
colnames(revs5)[15:16] <- paste(colnames(revs5)[15:16],'nrc', sep='_')
colnames(revs5)[6:7] <- gsub('.x_','_',colnames(revs5)[6:7])
colnames(revs5)[15:16] <- gsub('.y_','_',colnames(revs5)[15:16])
head(revs5)
## userReviewOnlyContent
## 1 What a wonderful way to start the year! This was my second time back to HIGH END SPA, and we had a great time. The crowds were very low (seriously, it felt like we had the place to ourselves most of the day.) We walked right into the mineral baths, club mud, and didn't wait in any kind of line for lunch. None of the pools were crowded, and we were even able to enjoy one of the hammocks in the secret garden.\n\nTiffany at the front check-in desk went above and beyond for us regarding the robes. I had requested a plus-sized robe, since after my last review I knew they had added some to their collection. Unfortunately, all of their plus-sized robes were still dirty from the day before. Tiffany was so accommodating, though! She was able to get us robes from the cabana area that fit me perfectly! It is so great to know that not only do they now offer guests of all sizes the option to enjoy a warm robe, but that they really want to make sure you have a good day. Thank you, Tiffany, for everything.\n\nAll of the staff today were in good spirits. The only thing that would have made today better would have been a massage. We'll have to book one next time. My husband and I are going to make HIGH END SPA our annual New Year's Day tradition!\n\n
## 2 My sister and I brought my mom here for her birthday and overall, we really enjoyed our time here. We're used to going to Korean spas, but this was definitely an upgrade.\n\nPROS:\n- The resort itself is beautiful and so relaxing. Like seriously such a pleasing escape from reality that I needed. It's set up so nicely and feels very luxurious.\n- It was my mom's birthday so she received free admission on birthday with a purchase of a service. Admission is $52, so she booked a manicure for $50 and got in for free. WORTH. My mom had gone 52 years without ever getting her nails done, so it was kind of heartwarming to see how much she loved her experience.\n- The three of us took a Yin Yoga class and really enjoyed it. We definitely want to take advantage of the other class options next time we come.\n- CLUB MUD. We had so much fun there and even made a little clay sculpture. It really does do wonders for your skin, and the area is suprisingly very well-kept.\n- The shower and locker facilities can get pretty crowded, but overall, they are super nice and clean. They have an ample amount of showers, so we didn't have to wait at all.\n- All the staff seemed really friendly and helpful. There's always staff members roaming around, so you always feel somewhat taken care of.\n- I really appreciated the towel and water stands located throughout the resort. So handy and necessary.\n- Parking is free, thank God.\n\nCONS:\n- We went on a fairly cold day (around 60 degrees), so the hot pools were CROWDED,. Like there were a couple of times I touched other people's body parts I definitely did not want to touch. I feel like some of the hot pools exceeded capacity, and I'm sure it was mostly because it was a cold day, but I do wish there were more of the hot pools or they should just be larger!\n- The food is incredibly expensive. Like as ridiculous as Disneyland, which is saying something. Plan to spend around $20 per meal per person. The one thing that was worth it was the nachos ($16 for the small, but this thing is huge).\n- The kitchen moves VERY SLOWLY. Especially the salad section because I came before the lunch rush and still waited 20 minutes to order my salad. The kitchen staff seems a bit incompetent, or maybe it's just run inefficiently.\n- This is more of a side note, but I wish there was a more streamlined reservation system. I made the entire reservation over the phone, which was fine, but it wasn't laid out as clearly as I would have liked it with the premium admissions prices, services, etc. The online one also just seemed really confusing.\n\nOverall, we had a positive experience with just a couple of kinks here and there. We love that there's just a lot to do here and time FLIES when you're here so come as early as you can. We definitely want to try coming back in the summer months when it's warmer!\n\n\n
## 3 I came to CHIROPRACTIC with severe back and neck pain. DOCTOR was AMAZING and helped me to feel much better than I have felt for YEARS! The girls up front also are very sweet and always made sure that all my appointments were set and on time! Heather the billing manager was very kind as well, she was AWESOME when it came to dealing with me and my insurance amd was definitely a huge help! I don't know what I would have done without Heather helping me with all of the insurance problems I had!!! She is the BEST, thank you Heather!! I would definitely recommend going to this clinic!!!!
## 4 I have to say.... This is by far the best Chiropractic place I've ever been to. The staff is super friendly and very professional. From the moment I walk in the door I get greeted by name . The Drs are amazing too. Love this place and I highly recommend them.
## 5 Dr. is my chiropractor and he is a fabulous individual. I've never waited more than few minutes for him to see me. The front team (Both ladies" are great with an outstanding care and smile. Thank you guys for all you do.
## 6 Many in our family have seen DOCTOR for chiropractic care. He is very warm and friendly, knowledgable, puts your mind at ease during his adjustments. He gives great explanations. Our 14yo son said, "he is really good at what he does and he is a good person." We all feel better after visiting him. Recommend him to everyone.
## userRatingValue line totalAFINN_Value totalAFINN_Words negative_loughran
## 1 5 1 24 16 2
## 2 4 2 44 39 5
## 3 5 3 20 14 2
## 4 5 4 18 7 NA
## 5 5 5 18 6 NA
## 6 5 6 17 9 NA
## positive_loughran litigious uncertainty constraining superfluous anticipation
## 1 6 NA NA NA NA 7
## 2 6 2 4 NA NA 10
## 3 2 NA NA NA NA 2
## 4 2 NA NA NA NA 1
## 5 1 NA NA NA NA NA
## 6 4 NA NA NA NA 2
## disgust joy negative_nrc positive_nrc surprise trust anger fear sadness
## 1 1 8 3 10 4 6 NA NA NA
## 2 2 12 8 19 2 10 3 2 1
## 3 NA 2 1 4 1 4 NA 1 1
## 4 NA 2 NA 4 NA 3 NA NA NA
## 5 NA 2 1 2 1 2 NA NA NA
## 6 NA 2 NA 5 1 4 NA NA NA
group_bing_tR <- bing_tokRevs2 %>% group_by(line) %>% count(Bing_sentiment) %>%
mutate(Bing_totalSentimentCount=n)
group_bing_tR2 <- group_bing_tR[,-3]
head(group_bing_tR2,30)
## # A tibble: 30 x 3
## # Groups: line [20]
## line Bing_sentiment Bing_totalSentimentCount
## <int> <fct> <int>
## 1 1 negative 3
## 2 1 positive 10
## 3 2 negative 9
## 4 2 positive 36
## 5 3 negative 3
## 6 3 positive 10
## 7 4 positive 6
## 8 5 positive 5
## 9 6 positive 7
## 10 7 negative 2
## # … with 20 more rows
grB <- group_bing_tR2 %>% pivot_wider(names_from=Bing_sentiment, values_from = Bing_totalSentimentCount)
colnames(grB)[2:3] <- paste(colnames(grB)[2:3],'bing',sep='.')
head(grB)
## # A tibble: 6 x 3
## # Groups: line [6]
## line negative.bing positive.bing
## <int> <int> <int>
## 1 1 3 10
## 2 2 9 36
## 3 3 3 10
## 4 4 NA 6
## 5 5 NA 5
## 6 6 NA 7
reviewsLexicons <- revs5 %>% full_join(grB, by=c(line='line'))
head(reviewsLexicons)
## userReviewOnlyContent
## 1 What a wonderful way to start the year! This was my second time back to HIGH END SPA, and we had a great time. The crowds were very low (seriously, it felt like we had the place to ourselves most of the day.) We walked right into the mineral baths, club mud, and didn't wait in any kind of line for lunch. None of the pools were crowded, and we were even able to enjoy one of the hammocks in the secret garden.\n\nTiffany at the front check-in desk went above and beyond for us regarding the robes. I had requested a plus-sized robe, since after my last review I knew they had added some to their collection. Unfortunately, all of their plus-sized robes were still dirty from the day before. Tiffany was so accommodating, though! She was able to get us robes from the cabana area that fit me perfectly! It is so great to know that not only do they now offer guests of all sizes the option to enjoy a warm robe, but that they really want to make sure you have a good day. Thank you, Tiffany, for everything.\n\nAll of the staff today were in good spirits. The only thing that would have made today better would have been a massage. We'll have to book one next time. My husband and I are going to make HIGH END SPA our annual New Year's Day tradition!\n\n
## 2 My sister and I brought my mom here for her birthday and overall, we really enjoyed our time here. We're used to going to Korean spas, but this was definitely an upgrade.\n\nPROS:\n- The resort itself is beautiful and so relaxing. Like seriously such a pleasing escape from reality that I needed. It's set up so nicely and feels very luxurious.\n- It was my mom's birthday so she received free admission on birthday with a purchase of a service. Admission is $52, so she booked a manicure for $50 and got in for free. WORTH. My mom had gone 52 years without ever getting her nails done, so it was kind of heartwarming to see how much she loved her experience.\n- The three of us took a Yin Yoga class and really enjoyed it. We definitely want to take advantage of the other class options next time we come.\n- CLUB MUD. We had so much fun there and even made a little clay sculpture. It really does do wonders for your skin, and the area is suprisingly very well-kept.\n- The shower and locker facilities can get pretty crowded, but overall, they are super nice and clean. They have an ample amount of showers, so we didn't have to wait at all.\n- All the staff seemed really friendly and helpful. There's always staff members roaming around, so you always feel somewhat taken care of.\n- I really appreciated the towel and water stands located throughout the resort. So handy and necessary.\n- Parking is free, thank God.\n\nCONS:\n- We went on a fairly cold day (around 60 degrees), so the hot pools were CROWDED,. Like there were a couple of times I touched other people's body parts I definitely did not want to touch. I feel like some of the hot pools exceeded capacity, and I'm sure it was mostly because it was a cold day, but I do wish there were more of the hot pools or they should just be larger!\n- The food is incredibly expensive. Like as ridiculous as Disneyland, which is saying something. Plan to spend around $20 per meal per person. The one thing that was worth it was the nachos ($16 for the small, but this thing is huge).\n- The kitchen moves VERY SLOWLY. Especially the salad section because I came before the lunch rush and still waited 20 minutes to order my salad. The kitchen staff seems a bit incompetent, or maybe it's just run inefficiently.\n- This is more of a side note, but I wish there was a more streamlined reservation system. I made the entire reservation over the phone, which was fine, but it wasn't laid out as clearly as I would have liked it with the premium admissions prices, services, etc. The online one also just seemed really confusing.\n\nOverall, we had a positive experience with just a couple of kinks here and there. We love that there's just a lot to do here and time FLIES when you're here so come as early as you can. We definitely want to try coming back in the summer months when it's warmer!\n\n\n
## 3 I came to CHIROPRACTIC with severe back and neck pain. DOCTOR was AMAZING and helped me to feel much better than I have felt for YEARS! The girls up front also are very sweet and always made sure that all my appointments were set and on time! Heather the billing manager was very kind as well, she was AWESOME when it came to dealing with me and my insurance amd was definitely a huge help! I don't know what I would have done without Heather helping me with all of the insurance problems I had!!! She is the BEST, thank you Heather!! I would definitely recommend going to this clinic!!!!
## 4 I have to say.... This is by far the best Chiropractic place I've ever been to. The staff is super friendly and very professional. From the moment I walk in the door I get greeted by name . The Drs are amazing too. Love this place and I highly recommend them.
## 5 Dr. is my chiropractor and he is a fabulous individual. I've never waited more than few minutes for him to see me. The front team (Both ladies" are great with an outstanding care and smile. Thank you guys for all you do.
## 6 Many in our family have seen DOCTOR for chiropractic care. He is very warm and friendly, knowledgable, puts your mind at ease during his adjustments. He gives great explanations. Our 14yo son said, "he is really good at what he does and he is a good person." We all feel better after visiting him. Recommend him to everyone.
## userRatingValue line totalAFINN_Value totalAFINN_Words negative_loughran
## 1 5 1 24 16 2
## 2 4 2 44 39 5
## 3 5 3 20 14 2
## 4 5 4 18 7 NA
## 5 5 5 18 6 NA
## 6 5 6 17 9 NA
## positive_loughran litigious uncertainty constraining superfluous anticipation
## 1 6 NA NA NA NA 7
## 2 6 2 4 NA NA 10
## 3 2 NA NA NA NA 2
## 4 2 NA NA NA NA 1
## 5 1 NA NA NA NA NA
## 6 4 NA NA NA NA 2
## disgust joy negative_nrc positive_nrc surprise trust anger fear sadness
## 1 1 8 3 10 4 6 NA NA NA
## 2 2 12 8 19 2 10 3 2 1
## 3 NA 2 1 4 1 4 NA 1 1
## 4 NA 2 NA 4 NA 3 NA NA NA
## 5 NA 2 1 2 1 2 NA NA NA
## 6 NA 2 NA 5 1 4 NA NA NA
## negative.bing positive.bing
## 1 3 10
## 2 9 36
## 3 3 10
## 4 NA 6
## 5 NA 5
## 6 NA 7
ReviewsLexicons <- reviewsLexicons[,-c(1,3)]
colnames(ReviewsLexicons)
## [1] "userRatingValue" "totalAFINN_Value" "totalAFINN_Words"
## [4] "negative_loughran" "positive_loughran" "litigious"
## [7] "uncertainty" "constraining" "superfluous"
## [10] "anticipation" "disgust" "joy"
## [13] "negative_nrc" "positive_nrc" "surprise"
## [16] "trust" "anger" "fear"
## [19] "sadness" "negative.bing" "positive.bing"
dim(ReviewsLexicons)
## [1] 614 21
We should change the NAs to zeros, and the target,userRatingValue, to a factor.
RL1 <- as.matrix(ReviewsLexicons)
RL2 <- as.factor(paste(RL1))
RL3 <- gsub('NA','0',RL2)
RL4 <- as.numeric(paste(RL3))#to make numeric 2nd run
RL5 <- matrix(RL4,nrow=614,ncol=21,byrow=FALSE)
RL6 <- as.data.frame(RL5)
colnames(RL6) <- colnames(ReviewsLexicons)
RL6$userRatingValue <- as.factor(paste(RL6$userRatingValue))
Now lets use this data frame RL6 to test out how well these feature scores per review using four different sentiment lexicons of the tokens in each review can predict the rating accurately, or if some adjustments by feature selection would help to prevent a lot of noise effecting prediction accuracy.
library(RANN) #this pkg supplements caret for out of bag validation
library(e1071)
library(caret)
library(randomForest)
library(MASS)
library(gbm)
set.seed(12345)
inTrain <- createDataPartition(y=RL6$userRatingValue, p=0.7, list=FALSE)
trainingSet <- RL6[inTrain,]
testingSet <- RL6[-inTrain,]
Lets use random forest, knn, and glm algorithms to predict the ratings.
rf_boot <- train(userRatingValue~., method='rf',
na.action=na.pass,
data=(trainingSet), preProc = c("center", "scale","knnImpute"),
trControl=trainControl(method='boot'), number=5)
predRF_boot <- predict(rf_boot, testingSet)
DF_boot <- data.frame(predRF_boot, type=testingSet$userRatingValue)
length_boot <- length(DF_boot$type)
sum_boot <- sum(DF_boot$predRF_boot==DF_boot$type)
accRF_boot <- (sum_boot/length_boot)
accRF_boot
## [1] 0.6428571
head(DF_boot,30)
## predRF_boot type
## 1 5 5
## 2 5 5
## 3 5 5
## 4 1 5
## 5 5 5
## 6 5 5
## 7 5 5
## 8 5 3
## 9 1 4
## 10 5 5
## 11 5 5
## 12 5 5
## 13 5 4
## 14 5 5
## 15 5 5
## 16 5 5
## 17 5 5
## 18 5 5
## 19 5 5
## 20 5 1
## 21 5 5
## 22 5 4
## 23 5 5
## 24 5 5
## 25 5 5
## 26 5 5
## 27 1 1
## 28 5 5
## 29 5 5
## 30 5 5
knn_boot <- train(userRatingValue ~ .,
method='knn', preProcess=c('center','scale'),
tuneLength=10, trControl=trainControl(method='boot'),
data=trainingSet)
predKNN_boot <- predict(knn_boot, testingSet)
DF_KNN_boot <- data.frame(predKNN_boot, type=testingSet$userRatingValue)
length_KNN_boot <- length(DF_KNN_boot$type)
sum_KNN_boot <- sum(DF_KNN_boot$predKNN_boot==DF_KNN_boot$type)
accKNN_boot <- (sum_KNN_boot/length_KNN_boot)
accKNN_boot
## [1] 0.5934066
head(DF_KNN_boot,30)
## predKNN_boot type
## 1 5 5
## 2 5 5
## 3 5 5
## 4 5 5
## 5 5 5
## 6 5 5
## 7 5 5
## 8 5 3
## 9 5 4
## 10 5 5
## 11 5 5
## 12 5 5
## 13 5 4
## 14 5 5
## 15 5 5
## 16 5 5
## 17 5 5
## 18 5 5
## 19 5 5
## 20 4 1
## 21 5 5
## 22 5 4
## 23 5 5
## 24 5 5
## 25 5 5
## 26 5 5
## 27 5 1
## 28 5 5
## 29 4 5
## 30 5 5
GeneralizedBoostedModel
gbmMod <- train(userRatingValue~., method='gbm', data=trainingSet, verbose=FALSE )
predGbm <- predict(gbmMod, testingSet)
sumGBM0 <- sum(predGbm==testingSet$userRatingValue)
lengthGBM0 <- length(testingSet$userRatingValue)
accuracy_gbmMod <- sumGBM0/lengthGBM0
accuracy_gbmMod
## [1] 0.6593407
DF_GBM <- data.frame(predGbm, type=testingSet$userRatingValue)
head(DF_GBM,30)
## predGbm type
## 1 5 5
## 2 5 5
## 3 4 5
## 4 3 5
## 5 5 5
## 6 5 5
## 7 5 5
## 8 5 3
## 9 1 4
## 10 5 5
## 11 5 5
## 12 5 5
## 13 4 4
## 14 5 5
## 15 5 5
## 16 5 5
## 17 5 5
## 18 5 5
## 19 5 5
## 20 1 1
## 21 5 5
## 22 5 4
## 23 5 5
## 24 5 5
## 25 5 5
## 26 5 5
## 27 1 1
## 28 5 5
## 29 5 5
## 30 5 5
Linkage dirichlet allocation model
ldaMod <- train(userRatingValue~., method='lda', data=trainingSet)
predlda <- predict(ldaMod, testingSet)
sumLDA0 <- sum(predlda==testingSet$userRatingValue)
lengthLDA0 <- length(testingSet$userRatingValue)
accuracy_ldaMod <- sumLDA0/lengthLDA0
accuracy_ldaMod
## [1] 0.6153846
DF_LDA <- data.frame(predlda, type=testingSet$userRatingValue)
head(DF_LDA,30)
## predlda type
## 1 5 5
## 2 5 5
## 3 5 5
## 4 1 5
## 5 5 5
## 6 5 5
## 7 5 5
## 8 4 3
## 9 2 4
## 10 5 5
## 11 5 5
## 12 5 5
## 13 4 4
## 14 5 5
## 15 5 5
## 16 5 5
## 17 5 5
## 18 5 5
## 19 5 5
## 20 5 1
## 21 5 5
## 22 5 4
## 23 5 5
## 24 5 5
## 25 5 5
## 26 5 5
## 27 5 1
## 28 5 5
## 29 5 5
## 30 5 5
trainingSet$userRatingValue <- as.numeric(paste(trainingSet$userRatingValue))
testingSet$userRatingValue <- as.numeric(paste(testingSet$userRatingValue))
glmMod2 <- train(userRatingValue ~ .,
method='glm', data=trainingSet)
predglm2 <- predict(glmMod2, testingSet)
DF_glm2 <- data.frame(predglm2,ceiling=ceiling(predglm2), type=testingSet$userRatingValue)
length_glm2 <- length(DF_glm2$type)
sum_glm2 <- sum(ceiling(DF_glm2$predglm2)==DF_glm2$type)
accglm2 <- (sum_glm2/length_glm2)
accglm2
## [1] 0.4450549
head(DF_glm2,30)
## predglm2 ceiling type
## 3 5.029177 6 5
## 12 4.879738 5 5
## 19 3.861239 4 5
## 25 2.840386 3 5
## 26 4.034935 5 5
## 28 4.934079 5 5
## 30 4.817512 5 5
## 35 3.578700 4 3
## 37 2.987951 3 4
## 38 4.323159 5 5
## 39 4.408233 5 5
## 40 3.998067 4 5
## 46 4.449719 5 4
## 47 4.583152 5 5
## 49 4.055503 5 5
## 51 4.296429 5 5
## 53 4.706731 5 5
## 54 3.862306 4 5
## 56 4.665154 5 5
## 57 3.284461 4 1
## 58 4.133352 5 5
## 59 3.991659 4 4
## 60 4.186162 5 5
## 61 4.589193 5 5
## 64 4.572981 5 5
## 70 5.741061 6 5
## 73 3.469176 4 1
## 82 4.610063 5 5
## 87 4.420120 5 5
## 88 4.046568 5 5
Using the lexicon ratings of tokens in each review to predict the ratings of our reviews we get back accuracies from 44-64%. The models were random forest (64.3%), k-nearest neighbor (59.3%), latent dirichlet allocation (61.5%), gradient boosted models (62.1%), and generalized linear models (44.5%).
What if we could do better by removing some features of the lexicons. Or only using certain lexicons to predict the rating? We won’t know unless we try. So we will.
colnames(RL6)
## [1] "userRatingValue" "totalAFINN_Value" "totalAFINN_Words"
## [4] "negative_loughran" "positive_loughran" "litigious"
## [7] "uncertainty" "constraining" "superfluous"
## [10] "anticipation" "disgust" "joy"
## [13] "negative_nrc" "positive_nrc" "surprise"
## [16] "trust" "anger" "fear"
## [19] "sadness" "negative.bing" "positive.bing"
Lets use the best performing model above, which was the random forest to test out each of the four different lexicons to predict the rating.
The following will produce the data sets with the target variable of the rating, from the predictors of each lexicon sentiment class as a feature.
NRC <- RL6[,c(1,10:19)]
LOUGHRAN <- RL6[,c(1,4:9)]
BING <- RL6[,c(1,20:21)]
AFINN <- RL6[,c(1:3)]
Test of the NRC class features to predict ratings for each review follows.
set.seed(12345)
inTrain <- createDataPartition(y=NRC$userRatingValue, p=0.7, list=FALSE)
trainingSet <- NRC[inTrain,]
testingSet <- NRC[-inTrain,]
rf_boot <- train(userRatingValue~., method='rf',
na.action=na.pass,
data=(trainingSet), preProc = c("center", "scale","knnImpute"),
trControl=trainControl(method='boot'), number=5)
predRF_boot <- predict(rf_boot, testingSet)
DF_boot <- data.frame(predRF_boot, type=testingSet$userRatingValue)
length_boot <- length(DF_boot$type)
sum_boot <- sum(DF_boot$predRF_boot==DF_boot$type)
accRF_boot <- (sum_boot/length_boot)
accRF_boot
## [1] 0.6208791
head(DF_boot,30)
## predRF_boot type
## 1 5 5
## 2 5 5
## 3 5 5
## 4 1 5
## 5 5 5
## 6 5 5
## 7 5 5
## 8 5 3
## 9 1 4
## 10 5 5
## 11 5 5
## 12 5 5
## 13 4 4
## 14 5 5
## 15 5 5
## 16 5 5
## 17 5 5
## 18 5 5
## 19 5 5
## 20 5 1
## 21 5 5
## 22 5 4
## 23 5 5
## 24 5 5
## 25 5 5
## 26 5 5
## 27 1 1
## 28 5 5
## 29 5 5
## 30 5 5
The NRC lexicon scored 62% accuracy in predicting the rating with the random forest model.
Now lets use the LOUGHRAN lexicon to predict the ratings. Test of the NRC class features to predict ratings for each review follows.
set.seed(12345)
inTrain <- createDataPartition(y=LOUGHRAN$userRatingValue, p=0.7, list=FALSE)
trainingSet <- LOUGHRAN[inTrain,]
testingSet <- LOUGHRAN[-inTrain,]
rf_boot <- train(userRatingValue~., method='rf',
na.action=na.pass,
data=(trainingSet), preProc = c("center", "scale","knnImpute"),
trControl=trainControl(method='boot'), number=5)
predRF_boot <- predict(rf_boot, testingSet)
DF_boot <- data.frame(predRF_boot, type=testingSet$userRatingValue)
length_boot <- length(DF_boot$type)
sum_boot <- sum(DF_boot$predRF_boot==DF_boot$type)
accRF_boot <- (sum_boot/length_boot)
accRF_boot
## [1] 0.5604396
head(DF_boot,30)
## predRF_boot type
## 1 5 5
## 2 5 5
## 3 5 5
## 4 1 5
## 5 5 5
## 6 5 5
## 7 5 5
## 8 5 3
## 9 5 4
## 10 5 5
## 11 5 5
## 12 5 5
## 13 5 4
## 14 5 5
## 15 5 5
## 16 5 5
## 17 5 5
## 18 5 5
## 19 5 5
## 20 5 1
## 21 5 5
## 22 5 4
## 23 5 5
## 24 5 5
## 25 5 5
## 26 5 5
## 27 5 1
## 28 5 5
## 29 4 5
## 30 5 5
The LOUGHRAN lexicon scored 56% accuracy, now lets test the BING lexicon.
set.seed(12345)
inTrain <- createDataPartition(y=BING$userRatingValue, p=0.7, list=FALSE)
trainingSet <- BING[inTrain,]
testingSet <- BING[-inTrain,]
rf_boot <- train(userRatingValue~., method='rf',
na.action=na.pass,
data=(trainingSet), preProc = c("center", "scale","knnImpute"),
trControl=trainControl(method='boot'), number=5)
## note: only 1 unique complexity parameters in default grid. Truncating the grid to 1 .
predRF_boot <- predict(rf_boot, testingSet)
DF_boot <- data.frame(predRF_boot, type=testingSet$userRatingValue)
length_boot <- length(DF_boot$type)
sum_boot <- sum(DF_boot$predRF_boot==DF_boot$type)
accRF_boot <- (sum_boot/length_boot)
accRF_boot
## [1] 0.5769231
head(DF_boot,30)
## predRF_boot type
## 1 5 5
## 2 5 5
## 3 5 5
## 4 2 5
## 5 5 5
## 6 5 5
## 7 5 5
## 8 5 3
## 9 1 4
## 10 5 5
## 11 5 5
## 12 5 5
## 13 4 4
## 14 5 5
## 15 5 5
## 16 5 5
## 17 2 5
## 18 5 5
## 19 5 5
## 20 5 1
## 21 5 5
## 22 5 4
## 23 5 5
## 24 5 5
## 25 5 5
## 26 5 5
## 27 5 1
## 28 5 5
## 29 5 5
## 30 5 5
The bing lexicon scored 57.6 % accuracy. Now lets test the afinn lexicon.
set.seed(12345)
inTrain <- createDataPartition(y=AFINN$userRatingValue, p=0.7, list=FALSE)
trainingSet <- AFINN[inTrain,]
testingSet <- AFINN[-inTrain,]
rf_boot <- train(userRatingValue~., method='rf',
na.action=na.pass,
data=(trainingSet), preProc = c("center", "scale","knnImpute"),
trControl=trainControl(method='boot'), number=5)
## note: only 1 unique complexity parameters in default grid. Truncating the grid to 1 .
predRF_boot <- predict(rf_boot, testingSet)
DF_boot <- data.frame(predRF_boot, type=testingSet$userRatingValue)
length_boot <- length(DF_boot$type)
sum_boot <- sum(DF_boot$predRF_boot==DF_boot$type)
accRF_boot <- (sum_boot/length_boot)
accRF_boot
## [1] 0.543956
head(DF_boot,30)
## predRF_boot type
## 1 4 5
## 2 5 5
## 3 5 5
## 4 1 5
## 5 1 5
## 6 5 5
## 7 5 5
## 8 4 3
## 9 1 4
## 10 3 5
## 11 5 5
## 12 1 5
## 13 5 4
## 14 3 5
## 15 4 5
## 16 5 5
## 17 5 5
## 18 5 5
## 19 5 5
## 20 1 1
## 21 5 5
## 22 4 4
## 23 3 5
## 24 3 5
## 25 3 5
## 26 5 5
## 27 1 1
## 28 5 5
## 29 4 5
## 30 5 5
The AFINN lexicon scored 54.4% accuracy. The best lexicon to predict the rating on reviews of businesses out of the four was the NRC lexicon with 62% accuracy. The NRC lexicon counts each word in separate categories of anticipation, disgust, joy, negative, positive, surprise, trust, anger, fear, or sadness. This requires a commercial license and citation to use as well as the Loughran lexicon if publishing their work.
When it came to predicting ratings on a score of 1 to 5 the best we could do is when we turned the class into a dichotomous split into a low or high rating using the 24 bigrams, 12 keywords, and 12 stopwords on the absolute minimum distance between term to total terms ratio in documents to all documents in each rating as a corpus. That model scored 70%.
What if we did the same to these lexicon predictions, since the best predictor model is all lexicon features used with the random forest algorithm. Lets try it and see. We have to run it again, because the tests were re-run for a quick comparison with the same object names for each type.
set.seed(12345)
inTrain <- createDataPartition(y=RL6$userRatingValue, p=0.7, list=FALSE)
trainingSet <- RL6[inTrain,]
testingSet <- RL6[-inTrain,]
rf_boot <- train(userRatingValue~., method='rf',
na.action=na.pass,
data=(trainingSet), preProc = c("center", "scale","knnImpute"),
trControl=trainControl(method='boot'), number=5)
predRF_boot <- predict(rf_boot, testingSet)
DF_boot <- data.frame(predRF_boot, type=testingSet$userRatingValue)
length_boot <- length(DF_boot$type)
sum_boot <- sum(DF_boot$predRF_boot==DF_boot$type)
accRF_boot <- (sum_boot/length_boot)
accRF_boot
## [1] 0.6428571
head(DF_boot,30)
## predRF_boot type
## 1 5 5
## 2 5 5
## 3 5 5
## 4 1 5
## 5 5 5
## 6 5 5
## 7 5 5
## 8 5 3
## 9 1 4
## 10 5 5
## 11 5 5
## 12 5 5
## 13 5 4
## 14 5 5
## 15 5 5
## 16 5 5
## 17 5 5
## 18 5 5
## 19 5 5
## 20 5 1
## 21 5 5
## 22 5 4
## 23 5 5
## 24 5 5
## 25 5 5
## 26 5 5
## 27 1 1
## 28 5 5
## 29 5 5
## 30 5 5
DF_boot$predRF_boot <- as.integer(DF_boot$predRF_boot)
DF_boot$type <- as.integer(DF_boot$type)
DF_boot$lowHighPrediction <- ifelse(DF_boot$predRF_boot>3,'high','low')
DF_boot$lowHighTrueValue <- ifelse(DF_boot$type>3,'high','low')
DF_boot$Correct <- ifelse(DF_boot$lowHighPrediction==DF_boot$lowHighTrueValue,
1,0)
accuracy2class4lexicons <- sum(DF_boot$Correct)/length(DF_boot$Correct)
accuracy2class4lexicons
## [1] 0.8351648
DF_boot
## predRF_boot type lowHighPrediction lowHighTrueValue Correct
## 1 5 5 high high 1
## 2 5 5 high high 1
## 3 5 5 high high 1
## 4 1 5 low high 0
## 5 5 5 high high 1
## 6 5 5 high high 1
## 7 5 5 high high 1
## 8 5 3 high low 0
## 9 1 4 low high 0
## 10 5 5 high high 1
## 11 5 5 high high 1
## 12 5 5 high high 1
## 13 5 4 high high 1
## 14 5 5 high high 1
## 15 5 5 high high 1
## 16 5 5 high high 1
## 17 5 5 high high 1
## 18 5 5 high high 1
## 19 5 5 high high 1
## 20 5 1 high low 0
## 21 5 5 high high 1
## 22 5 4 high high 1
## 23 5 5 high high 1
## 24 5 5 high high 1
## 25 5 5 high high 1
## 26 5 5 high high 1
## 27 1 1 low low 1
## 28 5 5 high high 1
## 29 5 5 high high 1
## 30 5 5 high high 1
## 31 5 5 high high 1
## 32 5 1 high low 0
## 33 5 5 high high 1
## 34 5 5 high high 1
## 35 1 5 low high 0
## 36 5 5 high high 1
## 37 1 5 low high 0
## 38 5 5 high high 1
## 39 5 5 high high 1
## 40 5 5 high high 1
## 41 5 5 high high 1
## 42 5 5 high high 1
## 43 5 5 high high 1
## 44 5 5 high high 1
## 45 5 5 high high 1
## 46 1 2 low low 1
## 47 5 5 high high 1
## 48 5 5 high high 1
## 49 1 5 low high 0
## 50 5 1 high low 0
## 51 5 4 high high 1
## 52 3 1 low low 1
## 53 5 5 high high 1
## 54 5 5 high high 1
## 55 5 5 high high 1
## 56 4 4 high high 1
## 57 5 5 high high 1
## 58 5 4 high high 1
## 59 5 5 high high 1
## 60 1 2 low low 1
## 61 5 4 high high 1
## 62 1 1 low low 1
## 63 1 1 low low 1
## 64 5 5 high high 1
## 65 5 5 high high 1
## 66 4 4 high high 1
## 67 4 4 high high 1
## 68 5 5 high high 1
## 69 5 5 high high 1
## 70 5 4 high high 1
## 71 5 5 high high 1
## 72 5 4 high high 1
## 73 5 4 high high 1
## 74 5 1 high low 0
## 75 5 5 high high 1
## 76 1 2 low low 1
## 77 5 5 high high 1
## 78 5 4 high high 1
## 79 5 5 high high 1
## 80 5 4 high high 1
## 81 5 4 high high 1
## 82 5 5 high high 1
## 83 5 5 high high 1
## 84 5 5 high high 1
## 85 5 5 high high 1
## 86 5 4 high high 1
## 87 1 3 low low 1
## 88 5 3 high low 0
## 89 5 5 high high 1
## 90 5 5 high high 1
## 91 5 5 high high 1
## 92 5 1 high low 0
## 93 5 5 high high 1
## 94 5 5 high high 1
## 95 2 1 low low 1
## 96 1 2 low low 1
## 97 1 3 low low 1
## 98 5 5 high high 1
## 99 5 5 high high 1
## 100 4 3 high low 0
## 101 1 2 low low 1
## 102 5 5 high high 1
## 103 5 4 high high 1
## 104 4 1 high low 0
## 105 5 5 high high 1
## 106 5 5 high high 1
## 107 4 4 high high 1
## 108 5 4 high high 1
## 109 4 2 high low 0
## 110 5 5 high high 1
## 111 2 2 low low 1
## 112 1 3 low low 1
## 113 5 1 high low 0
## 114 5 5 high high 1
## 115 2 1 low low 1
## 116 4 4 high high 1
## 117 4 5 high high 1
## 118 5 5 high high 1
## 119 4 4 high high 1
## 120 5 5 high high 1
## 121 1 1 low low 1
## 122 5 2 high low 0
## 123 1 1 low low 1
## 124 5 5 high high 1
## 125 4 4 high high 1
## 126 5 5 high high 1
## 127 5 4 high high 1
## 128 1 5 low high 0
## 129 5 5 high high 1
## 130 5 5 high high 1
## 131 5 5 high high 1
## 132 1 1 low low 1
## 133 5 1 high low 0
## 134 5 1 high low 0
## 135 1 2 low low 1
## 136 4 4 high high 1
## 137 5 5 high high 1
## 138 5 3 high low 0
## 139 1 1 low low 1
## 140 4 5 high high 1
## 141 5 5 high high 1
## 142 5 5 high high 1
## 143 1 1 low low 1
## 144 1 3 low low 1
## 145 1 1 low low 1
## 146 3 1 low low 1
## 147 2 2 low low 1
## 148 5 4 high high 1
## 149 1 4 low high 0
## 150 1 3 low low 1
## 151 5 5 high high 1
## 152 4 4 high high 1
## 153 1 3 low low 1
## 154 4 4 high high 1
## 155 5 5 high high 1
## 156 5 5 high high 1
## 157 5 5 high high 1
## 158 5 5 high high 1
## 159 5 5 high high 1
## 160 4 4 high high 1
## 161 4 3 high low 0
## 162 3 4 low high 0
## 163 1 1 low low 1
## 164 4 1 high low 0
## 165 4 1 high low 0
## 166 3 1 low low 1
## 167 4 3 high low 0
## 168 4 3 high low 0
## 169 4 3 high low 0
## 170 4 3 high low 0
## 171 3 3 low low 1
## 172 5 5 high high 1
## 173 5 5 high high 1
## 174 5 5 high high 1
## 175 5 5 high high 1
## 176 5 5 high high 1
## 177 5 5 high high 1
## 178 5 5 high high 1
## 179 5 5 high high 1
## 180 5 5 high high 1
## 181 5 5 high high 1
## 182 5 5 high high 1
The accuracy when using all four lexicons to predict on two classes instead of five was much better than 64.3%, at 83.5% correctly predicted.
We can make an interactive link network of this by using the Correctly anwered as groups to see how well this model works on predicting ratings for reviews when only concerned with whether the sentiment is low or high praise for the business.
DF_boot$predRF_boot <- as.factor(paste(DF_boot$predRF_boot))
DF_boot$type <- as.factor(paste(DF_boot$type))
DF_boot$lowHighPrediction <- as.factor(paste(DF_boot$lowHighPrediction))
DF_boot$lowHighTrueValue <- as.factor(paste(DF_boot$lowHighTrueValue))
DF_boot$Correct <- as.factor(paste(DF_boot$Correct))
It moves from 614 to 7368 obsrevations because of the 12 keywords and 614 reveiws which equals 7368.
nodes <- DF_boot[,c(2:5)]
nodes$id <- row.names(nodes)
nodes$label <- nodes$type
nodes$title <- nodes$lowHighPrediction
nodes$group <- nodes$Correct
nodes$group <- gsub('1','Correct', nodes$group)
nodes$group <- gsub('0','Incorrect',nodes$group)
nodes1 <- nodes[,c(6:8,5,2,3)]
head(nodes1)
## label title group id lowHighPrediction lowHighTrueValue
## 1 5 high Correct 1 high high
## 2 5 high Correct 2 high high
## 3 5 high Correct 3 high high
## 4 5 low Incorrect 4 low high
## 5 5 high Correct 5 high high
## 6 5 high Correct 6 high high
edges <- DF_boot[,c(1:3)]
edges$label <- DF_boot$lowHighPrediction
edges$width <-
abs(as.numeric(paste(DF_boot$predRF_boot))/as.numeric(paste(DF_boot$type)))
edges$weight <- edges$width/5
edges1 <- edges %>% mutate(to=plyr::mapvalues(edges$label, from=nodes1$lowHighPrediction,
to=nodes1$id)) %>%
mutate(from=plyr::mapvalues(edges$label, from=nodes1$lowHighTrueValue, to=nodes1$id))
edges2 <- edges1[,c(8,7,4:6)]
head(edges2)
## from to label width weight
## 1 1 1 high 1.0 0.20
## 2 1 1 high 1.0 0.20
## 3 1 1 high 1.0 0.20
## 4 8 4 low 0.2 0.04
## 5 1 1 high 1.0 0.20
## 6 1 1 high 1.0 0.20
Now lets use visNetwork and igraph to plot these nodes and edges.
visNetwork(nodes=nodes1, edges=edges2, main='Low High Prediction on Hovering with the True Rating as Each Node\'s Label and Grouped by Correct or Incorrect', width=500,height=600) %>% visEdges(arrows=c('from','middle')) %>%
visInteraction(navigationButtons=TRUE, dragNodes=TRUE,
dragView=TRUE, zoomView = TRUE) %>%
visOptions(nodesIdSelection = TRUE, manipulation=FALSE) %>%
visIgraphLayout(layout='layout.star') %>%
visLegend
The above shows us that there aren’t as many incorrectly classified in two classes of low or high praise for a business by a user’s rating of the business based on tokenized lexicon scores per review. The plot above shows there are about 83.5% correctly classified. The hovering will show what the true rating is as a 1-3 being low praise, and a 4-5 being high praise.
Pst! Lets try out reticulate. Have you heard of this link between python coding and R for the R ennvironment? Well, lets test it out. It does what MySQL and maria db do for communicating between R and MySQL, but with python. I did try out the same cleaned dataset of ‘cleanedRegexReviews13.csv’ in python using multinomial naive bayes. The time to do so actually didn’t take long using the python 3.6 with packages that worked for that version in sci-kit learn and keras among a few. The results were better than the best here using all five ratings as classes but not by much. The score was 73% accuracy and the best here was 64% accuracy on all five classes using a modified absolute shortest difference of ratios in document to rating corpus’s of term to total terms. And also with random forest or the ceiling of the generalized linear models using regression for the latter. Because both scored 64% on first runs with a set seed.
So, here we go…
The python packages were sklearn, matplotlib, pandas, numpy, nltk, textBlob, and regex. Some versions that work are later modules, for instance the re package was used that made regex obsolete because it is a build version that replaced regex for my version of python, 3.6.
# knitr::knit_engines$set(python = reticulate::eng_python)
library(reticulate)
## Warning: package 'reticulate' was built under R version 3.6.3
conda_list(conda = "auto")
## name python
## 1 Anaconda2 C:\\Users\\m\\Anaconda2\\python.exe
## 2 djangoenv C:\\Users\\m\\Anaconda2\\envs\\djangoenv\\python.exe
## 3 python36 C:\\Users\\m\\Anaconda2\\envs\\python36\\python.exe
## 4 python37 C:\\Users\\m\\Anaconda2\\envs\\python37\\python.exe
## 5 r-reticulate C:\\Users\\m\\Anaconda2\\envs\\r-reticulate\\python.exe
I have my python IDE, Anaconda, open in the console and use the python36 environment mostly, and more importantly for the testing that was done on NLP using multinomial Naive Bayes to classify 5 ratings categores per review. The above shows those environments in conda.
use_condaenv(condaenv = "python36")
import pandas as pd
import matplotlib.pyplot as plt
from textblob import TextBlob
import sklearn
import numpy as np
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import classification_report, f1_score, accuracy_score, confusion_matrix
np.random.seed(47)
reviews = pd.read_csv('cleanedRegexReviews13.csv', encoding = 'unicode_escape')
print(reviews.head())
## userReviewSeries ... userCheckIns
## 0 mostRecentVisit_review ... NaN
## 1 mostRecentVisit_review ... NaN
## 2 mostRecentVisit_review ... NaN
## 3 mostRecentVisit_review ... NaN
## 4 mostRecentVisit_review ... NaN
##
## [5 rows x 18 columns]
print(reviews.tail())
## userReviewSeries ... userCheckIns
## 609 mostRecentVisit_review ... 1.0
## 610 mostRecentVisit_review ... 1.0
## 611 mostRecentVisit_review ... 1.0
## 612 mostRecentVisit_review ... 1.0
## 613 mostRecentVisit_review ... NaN
##
## [5 rows x 18 columns]
print(reviews.shape)
## (614, 18)
import regex
def preprocessor(text):
text = regex.sub('<[^>]*>', '', text)
emoticons = regex.findall('(?::|;|=)(?:-)?(?:\)|\(|D|P)', text)
text = regex.sub('[\W]+', ' ', text.lower()) +\
' '.join(emoticons).replace('-', '')
return text
reviews.tail()
## userReviewSeries ... userCheckIns
## 609 mostRecentVisit_review ... 1.0
## 610 mostRecentVisit_review ... 1.0
## 611 mostRecentVisit_review ... 1.0
## 612 mostRecentVisit_review ... 1.0
## 613 mostRecentVisit_review ... NaN
##
## [5 rows x 18 columns]
import numpy as np
reviews = reviews.reindex(np.random.permutation(reviews.index))
print(reviews.head())
## userReviewSeries ... userCheckIns
## 551 mostRecentVisit_review ... NaN
## 340 mostRecentVisit_review ... NaN
## 474 lastVisit_review ... NaN
## 7 mostRecentVisit_review ... 1.0
## 239 mostRecentVisit_review ... NaN
##
## [5 rows x 18 columns]
print(reviews.tail())
## userReviewSeries ... userCheckIns
## 23 mostRecentVisit_review ... NaN
## 584 mostRecentVisit_review ... 1.0
## 264 mostRecentVisit_review ... 6.0
## 327 mostRecentVisit_review ... NaN
## 135 mostRecentVisit_review ... NaN
##
## [5 rows x 18 columns]
reviews.groupby('userRatingValue').describe()
## friends ... userCheckIns
## count mean std min ... 25% 50% 75% max
## userRatingValue ...
## 1 81.0 85.370370 133.524103 0.0 ... 1.0 1.5 2.00 3.0
## 2 31.0 149.967742 152.750010 0.0 ... 1.0 1.0 2.00 3.0
## 3 52.0 275.461538 700.341862 0.0 ... 1.0 2.0 2.75 22.0
## 4 101.0 288.841584 493.898000 0.0 ... 1.0 1.0 2.25 45.0
## 5 308.0 122.746753 329.574151 0.0 ... 1.0 1.0 3.00 41.0
##
## [5 rows x 40 columns]
reviews.groupby('businessType').describe()
## userRatingValue ... userCheckIns
## count mean std ... 50% 75% max
## businessType ...
## chiropractic 233.0 4.686695 0.956216 ... 1.0 3.0 43.0
## grocery store 136.0 3.779412 1.484194 ... 1.0 5.5 45.0
## high end massage retreat 245.0 3.261224 1.511271 ... 1.0 2.0 4.0
##
## [3 rows x 48 columns]
reviews['length'] = reviews['userReviewOnlyContent'].map(lambda text: len(text))
print(reviews.head())
## userReviewSeries ... length
## 551 mostRecentVisit_review ... 112
## 340 mostRecentVisit_review ... 750
## 474 lastVisit_review ... 2972
## 7 mostRecentVisit_review ... 210
## 239 mostRecentVisit_review ... 213
##
## [5 rows x 19 columns]
# %matplotlib inline
reviews.length.plot(bins=20, kind='hist')
plt.show()
reviews.length.describe()
## count 614.000000
## mean 626.206840
## std 588.507777
## min 36.000000
## 25% 249.000000
## 50% 433.500000
## 75% 785.750000
## max 3489.000000
## Name: length, dtype: float64
print(list(reviews.userReviewOnlyContent[reviews.length > 630].index))
## [340, 474, 107, 319, 460, 75, 157, 417, 331, 214, 182, 581, 119, 110, 100, 390, 440, 360, 483, 556, 528, 427, 12, 410, 559, 587, 68, 248, 1, 414, 463, 220, 385, 371, 426, 547, 146, 336, 301, 407, 304, 415, 431, 386, 17, 328, 121, 513, 314, 24, 502, 222, 291, 462, 158, 217, 531, 313, 352, 320, 375, 393, 469, 347, 424, 508, 439, 312, 381, 270, 302, 236, 120, 583, 112, 269, 242, 452, 34, 329, 298, 20, 41, 409, 349, 325, 364, 365, 296, 613, 495, 344, 438, 464, 315, 316, 299, 401, 191, 434, 419, 392, 317, 272, 282, 592, 138, 377, 330, 335, 358, 404, 149, 459, 466, 601, 318, 45, 49, 376, 444, 505, 309, 0, 78, 86, 83, 527, 480, 193, 22, 526, 521, 455, 26, 485, 348, 279, 307, 337, 332, 604, 451, 94, 412, 246, 98, 189, 356, 97, 67, 229, 333, 267, 156, 475, 341, 373, 537, 372, 277, 310, 210, 355, 430, 402, 262, 465, 476, 391, 535, 382, 238, 201, 380, 369, 366, 418, 44, 305, 406, 442, 354, 489, 374, 573, 30, 397, 416, 306, 225, 195, 324, 205, 170, 458, 21, 223, 578, 379, 23, 327]
print(list(reviews.userRatingValue[reviews.length > 630]))
## [1, 1, 5, 1, 2, 5, 1, 5, 5, 1, 5, 5, 4, 4, 1, 1, 3, 4, 5, 5, 2, 1, 4, 4, 1, 5, 5, 4, 4, 5, 1, 5, 4, 2, 2, 3, 5, 1, 5, 4, 4, 5, 5, 2, 3, 5, 5, 5, 3, 5, 1, 1, 3, 1, 5, 4, 4, 3, 4, 5, 1, 2, 3, 1, 5, 4, 4, 3, 5, 3, 3, 1, 5, 5, 1, 5, 5, 1, 3, 1, 3, 5, 5, 1, 2, 5, 3, 2, 5, 5, 4, 4, 4, 2, 3, 2, 5, 3, 5, 2, 4, 3, 2, 4, 4, 4, 5, 5, 3, 4, 4, 5, 2, 1, 4, 5, 5, 4, 5, 2, 5, 2, 1, 5, 4, 5, 5, 1, 4, 1, 1, 1, 5, 3, 1, 5, 2, 1, 2, 5, 5, 5, 2, 5, 3, 3, 5, 2, 3, 5, 1, 4, 4, 5, 1, 1, 3, 1, 5, 5, 5, 4, 5, 2, 4, 1, 5, 2, 2, 2, 4, 4, 5, 1, 5, 1, 5, 4, 5, 4, 3, 1, 5, 1, 3, 5, 5, 5, 5, 5, 1, 1, 4, 1, 5, 4, 5, 4, 3, 3, 4, 4]
reviews.hist(column='length', by='userRatingValue', bins=10)
plt.show()
def split_into_tokens(review):
#review = unicode(review, 'iso-8859-1')# in python 3 the default of str() previously python2 as unicode() is utf-8
return TextBlob(review).words
reviews.userReviewOnlyContent.head().apply(split_into_tokens)
## 551 [Still, no, update, by, this, facility, do, n'...
## 340 [It, 's, a, pretty, cool, nice, place, from, w...
## 474 [Imagine, planning, a, family, event, for, the...
## 7 [has, been, treating, myself, family, and, fri...
## 239 [Love, the, deli, department, cheap, fast, foo...
## Name: userReviewOnlyContent, dtype: object
TextBlob("hello world, how is it going?").tags # list of (word, POS) pairs
## [('hello', 'JJ'), ('world', 'NN'), ('how', 'WRB'), ('is', 'VBZ'), ('it', 'PRP'), ('going', 'VBG')]
import nltk
nltk.download('stopwords')
## True
##
## [nltk_data] Downloading package stopwords to
## [nltk_data] C:\Users\m\AppData\Roaming\nltk_data...
## [nltk_data] Package stopwords is already up-to-date!
from nltk.corpus import stopwords
stop = stopwords.words('english')
stop = stop + [u'a',u'b',u'c',u'd',u'e',u'f',u'g',u'h',u'i',u'j',u'k',u'l',u'm',u'n',u'o',u'p',u'q',u'r',u's',u't',u'v',u'w',u'x',u'y',u'z']
def split_into_lemmas(review):
#review = unicode(review, 'iso-8859-1')
review = review.lower()
#review = unicode(review, 'utf8').lower()
#review = str(review).lower()
words = TextBlob(review).words
# for each word, take its "base form" = lemma
return [word.lemma for word in words if word not in stop]
reviews.userReviewOnlyContent.head().apply(split_into_lemmas)
## 551 [still, update, facility, n't, think, 'll, eve...
## 340 ['s, pretty, cool, nice, place, tell, next, mo...
## 474 [imagine, planning, family, event, last, three...
## 7 [treating, family, friend, many, year, drive, ...
## 239 [love, deli, department, cheap, fast, food, st...
## Name: userReviewOnlyContent, dtype: object
bow_transformer = CountVectorizer(analyzer=split_into_lemmas).fit(reviews['userReviewOnlyContent'])
print(len(bow_transformer.vocabulary_))
## 4547
review4 = reviews['userReviewOnlyContent'][42]
print(review4)
## Love this place! I had never been to a chiropractor before and was definitely scared but I tried this place out because I had heard great things and it was even better than I anticipated. The whole staff is super efficient and organized. Dr. Brian Heller was super friendly and helped ease the neck pain I was having before.
##
## On top of that, the first appointment which includes X-rays, a consultation and the first adjustment was only $40! Great price and an overall awesome experience. I plan to come here regularly now.
bow4 = bow_transformer.transform([review4])
print(bow4)
## (0, 106) 1
## (0, 212) 1
## (0, 335) 1
## (0, 363) 1
## (0, 459) 1
## (0, 571) 1
## (0, 663) 1
## (0, 854) 1
## (0, 945) 1
## (0, 1013) 1
## (0, 1185) 1
## (0, 1330) 1
## (0, 1374) 1
## (0, 1389) 1
## (0, 1465) 1
## (0, 1515) 1
## (0, 1620) 2
## (0, 1709) 1
## (0, 1813) 2
## (0, 1908) 1
## (0, 1925) 1
## (0, 1929) 1
## (0, 2076) 1
## (0, 2398) 1
## (0, 2650) 1
## (0, 2665) 1
## (0, 2784) 1
## (0, 2799) 1
## (0, 2833) 1
## (0, 2944) 2
## (0, 2947) 1
## (0, 3048) 1
## (0, 3243) 1
## (0, 3453) 1
## (0, 3802) 1
## (0, 3922) 2
## (0, 4052) 1
## (0, 4121) 1
## (0, 4167) 1
## (0, 4441) 1
## (0, 4502) 1
reviews_bow = bow_transformer.transform(reviews['userReviewOnlyContent'])
print('sparse matrix shape:', reviews_bow.shape)
## sparse matrix shape: (614, 4547)
print('number of non-zeros:', reviews_bow.nnz)
## number of non-zeros: 29971
print('sparsity: %.2f%%' % (100.0 * reviews_bow.nnz / (reviews_bow.shape[0] * reviews_bow.shape[1])))
## sparsity: 1.07%
Indexing is different in python compared to R. Python includes zero and when indicating a slice, the last value is ignored, so only up to the value. So it is used to slice, so that the next can start and include that number up to the empty slice which indicates the last value.
# Split/splice into training ~ 80% and testing ~ 20%
reviews_bow_train = reviews_bow[:491]
reviews_bow_test = reviews_bow[491:]
reviews_sentiment_train = reviews['userRatingValue'][:491]
reviews_sentiment_test = reviews['userRatingValue'][491:]
print(reviews_bow_train.shape)
## (491, 4547)
print(reviews_bow_test.shape)
## (123, 4547)
review_sentiment = MultinomialNB().fit(reviews_bow_train, reviews_sentiment_train)
print('predicted:', review_sentiment.predict(bow4)[0])
## predicted: 5
print('expected:', reviews.userRatingValue[42])
## expected: 5
predictions = review_sentiment.predict(reviews_bow_test)
print(predictions)
## [5 4 2 4 5 1 5 5 4 1 4 5 5 4 5 5 1 3 5 4 5 4 5 5 1 4 4 5 5 5 5 5 5 4 5 5 4
## 5 5 4 5 1 5 5 3 4 1 4 5 5 5 4 5 2 5 5 5 5 5 5 5 5 5 5 5 4 4 4 4 5 4 1 1 1
## 5 5 5 5 3 5 5 5 1 5 5 1 4 5 4 5 5 4 5 5 4 5 5 5 5 5 1 4 5 5 4 4 1 3 5 4 5
## 5 5 4 3 5 5 5 4 5 4 4 5]
print('accuracy', accuracy_score(reviews_sentiment_test, predictions))
## accuracy 0.7235772357723578
print('confusion matrix\n', confusion_matrix(reviews_sentiment_test, predictions))
## confusion matrix
## [[10 0 0 2 2]
## [ 1 1 0 3 0]
## [ 1 0 1 4 2]
## [ 0 1 3 15 5]
## [ 1 0 1 8 62]]
print('(row=expected, col=predicted)')
## (row=expected, col=predicted)
This model generated a 72% accuracy using multinomial naive bayes. The confusion matrix above gives the 1 through 5 values that 10 were correctly predicted 1s, but a 1 was falsely predicted as a 2, 3, and a 5 as type 1 errors. Also, 62 5s were correctly predicted, but 8 5s were misclassified as a 4, one 5 as a 3, and another 5 as a 1.
print(classification_report(reviews_sentiment_test, predictions))
## precision recall f1-score support
##
## 1 0.77 0.71 0.74 14
## 2 0.50 0.20 0.29 5
## 3 0.20 0.12 0.15 8
## 4 0.47 0.62 0.54 24
## 5 0.87 0.86 0.87 72
##
## accuracy 0.72 123
## macro avg 0.56 0.51 0.52 123
## weighted avg 0.72 0.72 0.72 123
From the above, precision accounts for type 1 errors (how many real negatives classified as positives-False Positives: TP/(TP+FP)) and type 2 errors (how many real posiives classified as negatives-False Negatives: TP/(TP+FN)) are part of recall. The 5s and 1 ratings had higher recall and precision than the 2-4 ratings classified.
def predict_review(new_review):
new_sample = bow_transformer.transform([new_review])
pr = np.around(review_sentiment.predict_proba(new_sample),2)
print(new_review,'\n\n', pr)
if (pr[0][0] == max(pr[0])):
print('The max probability is 1 for this review with ', pr[0][0]*100,'%')
elif (pr[0][1] == max(pr[0])):
print('The max probability is 2 for this review with ', pr[0][1]*100,'%')
elif (pr[0][2] == max(pr[0])):
print('The max probability is 3 for this review with ', pr[0][2]*100,'%')
elif (pr[0][3] == max(pr[0])):
print('The max probability is 4 for this review with ', pr[0][3]*100,'%')
else:
print('The max probability is 5 for this review with ', pr[0][4]*100,'%')
print('-----------------------------------------\n\n')
reviews.userRatingValue.unique()
## array([1, 5, 4, 2, 3], dtype=int64)
predict_review('great place. loved it. returning soon.')
## great place. loved it. returning soon.
##
## [[0.01 0. 0.01 0.05 0.92]]
## The max probability is 5 for this review with 92.0 %
## -----------------------------------------
predict_review('i\'ve been going here for years, and never again, worst place ever.')
## i've been going here for years, and never again, worst place ever.
##
## [[0.1 0. 0. 0. 0.9]]
## The max probability is 5 for this review with 90.0 %
## -----------------------------------------
predict_review('way too over priced. had better')
## way too over priced. had better
##
## [[0.02 0.01 0. 0.08 0.88]]
## The max probability is 5 for this review with 88.0 %
## -----------------------------------------
predict_review('wonderful. perfect. loved anaconda.')
## wonderful. perfect. loved anaconda.
##
## [[0.01 0.01 0. 0.16 0.81]]
## The max probability is 5 for this review with 81.0 %
## -----------------------------------------
In the above, the second review is more of a low review, and the algorithm predicted it would be a 5 instead of a 1-3. It did predict it being a 1 rating by 10%.
predict_review('can never get an appointment. Still waiting. ')
## can never get an appointment. Still waiting.
##
## [[0.25 0.03 0.01 0.08 0.63]]
## The max probability is 5 for this review with 63.0 %
## -----------------------------------------
predict_review("don't waste your time or money here.")
## don't waste your time or money here.
##
## [[0.57 0.09 0.09 0.15 0.09]]
## The max probability is 1 for this review with 56.99999999999999 %
## -----------------------------------------
The above shows that this sentiment put into the function predicted the sentiment to be a 1 rating by 57%, and next best was a 4 rating with 15%
predict_review('love this place better than others')
## love this place better than others
##
## [[0. 0. 0. 0.01 0.98]]
## The max probability is 5 for this review with 98.0 %
## -----------------------------------------
predict_review('''OMG! the best! a hidden gem.
The prices are affordable. ''')
## OMG! the best! a hidden gem.
## The prices are affordable.
##
## [[0. 0. 0. 0.05 0.95]]
## The max probability is 5 for this review with 95.0 %
## -----------------------------------------
predict_review('''OMG! I am in so much pain. Sale on the massages. I want to go here regularly. ''')
## OMG! I am in so much pain. Sale on the massages. I want to go here regularly.
##
## [[0. 0. 0. 0. 1.]]
## The max probability is 5 for this review with 100.0 %
## -----------------------------------------
When knitting with python36 open in Anaconda prompt window, the matplotlib graphs above threw an error and halted knitr with a message,‘…could not find or load the Qt platform plugin …’ for windows. Checking online, stackoverflow, found one to:
$ conda env remove -n r-reticulate $ conda create -n r-reticulate python=3 $ source activate r-reticulate $ python -m pip install matplotlib $ Rscript -e “library(knitr); knit(‘eng-reticulate-example.Rmd’)”
in the Anaconda prompt.
I started at line 2, and made python=3.6 adjustment to the command. Anaconda updated some packages. This actually created a new environment called ‘r-reticulate’
As a comparison, the multinomial naive bayes from the sklearn, keras, and numpy python packages offer a way to manually enter in a sentiment and get back a probability of the sentiment being a 1-5 rating. The accuracy scored was 72% using our same cleaned reviews of 614 reviews. Reticulate is a great package with dual purpose data science needs between python and R coders. There are much more tasks or techniques than what was shown here, as all angles are infinite in approaching a feasible way to predict a rating off a bunch of mixed reviews that scored high or low based on their own scale. You are encouraged to try out your own and publish to Rpubs or message me.