In [1]:
import tweepy
from tweepy import OAuthHandler

consumer_key = 'NgbszsMy18esxzBRpnS6YJSg5'
consumer_secret = 'fUlGwElm7B7Q5UUl99TdnMewBA3xW9Cw5xmzBAq1xU9j5O6wUa'

access_token = '3847979172-1TNy6qbn1DvF2lHuUMpM86hAyRSxN8Uc9WpZzET'
access_secret = 'ZCooGbFqAqxCyFtZGqMPczAhD6IkZW1TfT1hocKVPm8pV'

auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_secret)

api = tweepy.API(auth)

import pandas as pd
import numpy as np
import datetime
import sys
import codecs
import re
import urllib, urllib2
import itertools, collections

import nltk  # Natural Language Processing
#nltk.download('punkt')
#nltk.download('all')
from nltk.stem.wordnet import WordNetLemmatizer
from nltk.corpus import stopwords # list of words
from collections import Counter  # optimized way to do this
import string  # list(string.punctuation) - produces a list of punctuations
import copy
from itertools import product, tee, combinations, chain
from nltk.stem import PorterStemmer
from operator import itemgetter # help with dataframes

from scipy.spatial.distance import cosine

from sklearn.cluster import KMeans
from sklearn.metrics import pairwise_distances_argmin
from sklearn.utils import shuffle

from tweepy import Stream

encodingTot = sys.stdout.encoding or 'utf-8'
In [2]:
# Similarity Measure *******************************************************************************************
def cosine_sim(v1, v2):
        
    rho = round(1.0 - cosine(v1, v2), 3)
    rho = rho if(not np.isnan(rho)) else 0.0
    return rho

# Words Replacement ***************************************************************************************
def replace_all(text, dic):
    for i, j in dic.iteritems():
        text = text.replace(i, j)
    return text

# Function to find element with Maximum Frequency in TDM  *******************************************************************
def nanargmax(a):
    idx = np.argmax(a, axis=None)
    multi_idx = np.unravel_index(idx, a.shape)
    if np.isnan(a[multi_idx]):
        nan_count = np.sum(np.isnan(a))

        idx = np.argpartition(a, -nan_count-1, axis=None)[-nan_count-1]
        multi_idx = np.unravel_index(idx, a.shape)
    return multi_idx

# Define Top K Neighbours to the WORD or TWEET ***************************************************************************
def K_neighbor(k, term, list_t):
    
    # list_t - a list of tuples
    # term - value of criteria (tweet or word)
    
    neighbor = []
    neighbor = [item for item in list_t if term in item] 
    neighbor.append(item) 
    
    neighbor.sort(key = itemgetter(0), reverse=True)
      
    print 'Top ', k, ' elements for ', term   
    print '**********************************************'
        
    for i in xrange(k):
        print neighbor[i]
    
    return neighbor[:k]

# Determine Pair of Words Counter method ******************************************************************************
def Pair_words(word_list, tweet_clean_fin, n_top):

    pairs = list(itertools.combinations(word_list, 2)) # order does not matter

    #pairs = set(map(tuple, map(sorted, _pairs)))
    pairs = set(pairs)
    c = collections.Counter()

    for tweet in tweet_clean_fin:
        for pair in pairs:
            if pair[0] == pair[1]: 
                pass
            elif pair[0] in tweet and pair[1] in tweet:
                #c.update({pair: 1})
                c[pair] +=1
 
    return c.most_common(n_top)

# BIC score function ********************************************************************************

from sklearn import cluster
from scipy.spatial import distance
from sklearn.preprocessing import StandardScaler

def compute_bic(kmeans,X):
    """
    Computes the BIC metric for given clusters

    Parameters:
    -----------------------------------------
    kmeans:  List of clustering object from scikit learn

    X     :  multidimension np array of data points

    """
    # assign centers and labels
    centers = [kmeans.cluster_centers_]
    labels  = kmeans.labels_
    #number of clusters
    m = kmeans.n_clusters
    # size of the clusters
    n = np.bincount(labels)
    #size of data set
    N, d = X.shape

    #compute variance for all clusters beforehand
    cl_var =  (1.0 / (N - m) / d) * sum([sum(distance.cdist(X[np.where(labels == i)], [centers[0][i]], 'euclidean')**2) for i in range(m)])
    const_term = 0.5 * m * np.log(N) * (d+1)

    BIC = np.sum([n[i] * np.log(n[i]) -
               n[i] * np.log(N) -
             ((n[i] * d) / 2) * np.log(2*np.pi*cl_var) -
             ((n[i] - 1) * d/ 2) for i in range(m)]) - const_term

    return(BIC)
In [3]:
# Store to file text, who and time

columns = ['Screen_Name', 'Time_Stamp', 'Tweet']
todays_date = datetime.datetime.now().date()

tweetDF = pd.DataFrame(columns=columns)

num_tweets = 500

for tweet in tweepy.Cursor(api.search, q="google", lang="en").items(num_tweets):
    
    lenDF = len(tweetDF)

    tweetDF.loc[lenDF] = [tweet.user.screen_name, tweet.created_at, tweet.text]
        
tweetDF.to_csv("C:/Users/Toly/Documents/Big Data/DeZyre/Data Science/IBM Project/tweetDF", sep='\t', encoding = encodingTot)

#tweetDF = pd.read_csv("C:/Users/Toly/Documents/Big Data/DeZyre/Data Science/IBM Project/tweetDF", sep='\t')

tweetDF = pd.read_csv(open('C:/Users/Toly/Documents/Big Data/DeZyre/Data Science/IBM Project/tweetDF','rU'), sep='\t', engine='c')

tweetDF["Tweet"].head()
Out[3]:
0    RT @auctionnuterr: #nexus #cellphone LG Google...
1    How These 10 Rising Entrepreneurs Stay Product...
2    ATFC Lottery comp 53 week 1 lofty needs 3 numb...
3    My new #Android work: https://t.co/9CKWDlvSdJ\...
4    RT @JaDineNATION: ⚠ The long wait is over!! ⚠\...
Name: Tweet, dtype: object
In [4]:
tweet_list_org = tweetDF['Tweet'].tolist() # convert DF to list (tweets only) NOT a nested list

# Regex from Gagan ************************************************************

emoticons_str = r"""
    (?:
        [:=;] # Eyes
        [oO\-]? # Nose (optional)
        [D\)\]\(\]/\\OpP] # Mouth
    )"""

# Regex_str is used to GET text from CSV file

regex_str = [
    
    r'<[^>]+>', # HTML tags
    r'(?:@[\w_]+)', # @-signs
    r"(?:\#+[\w_]+[\w\'_\-]*[\w_]+)", # hash-tags
    r'http[s]?://(?:[a-z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-f][0-9a-f]))+', # URLs 
    r'(?:(?:\d+,?)+(?:\.?\d+)?)', # numbers
    r"(?:[a-z][a-z'\-_]+[a-z])", # words with - and '
    r'(?:[\w_]+)' # other words
]

# These Regex are used to EXCLUDE items from the text AFTER IMPORTING from csv with regex_str

numbers = r'(?:(?:\d+,?)+(?:\.?\d+)?)'
URL = r'http[s]?://(?:[a-z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-f][0-9a-f]))+'
html_tag = r'<[^>]+>'
hash_tag = r"(?:\#+[\w_]+[\w\'_\-]*[\w_]+)"
at_sign = r'(?:@[\w_]+)'
dash_quote = r"(?:[a-z][a-z'\-_]+[a-z])"
other_word = r'(?:[\w_]+)'
other_stuff = r'(?:\S)' # anything else - NOT USED
start_pound = r"([#?])(\w+)" # Start with #
start_quest_pound = r"(?:^|\s)([#?])(\w+)" # Start with ? or with #
cont_number = r'(\w*\d\w*)' # Words containing numbers

# My REGEX **************************************************************************

#      Remove '[' and ']' brackets

sq_br_f = r'(?:[[\w_]+)' # removes '['
sq_br_b = r'(?:][\w_]+)' # removes ']'

rem_bracket = r'(' + '|'.join([sq_br_f, sq_br_b]) +')'
rem_bracketC = re.compile(rem_bracket, re.VERBOSE)

# Removes all words of 3 characters or less *****************************************************

short_words = r'\W*\b\w{1,3}\b' # Short words of 3 character or less
short_wordsC = re.compile(short_words, re.VERBOSE | re.IGNORECASE)

# REGEX remove all words with \ and / combinations

slash_back =  r'\s*(?:[\w_]*\\(?:[\w_]*\\)*[\w_]*)'
slash_fwd = r'\s*(?:[\w_]*/(?:[\w_]*/)*[\w_]*)'
slash_all = r'\s*(?:[\w_]*[/\\](?:[\w_]*[/\\])*[\w_]*)'

# REGEX numbers, short words and URL only to EXCLUDE +++++++++++++++++++++++++++++++++++++++++++++++++++

num_url_short = r'(' + '|'.join([numbers, URL, short_words + sq_br_f + sq_br_b]) +')'  # Exclude from tweets
comp_num_url_short = re.compile(num_url_short, re.VERBOSE | re.IGNORECASE)

# Master REGEX to INCLUDE from the original tweets ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

list_regex = r'(' + '|'.join(regex_str) + ')'

master_regex = re.compile(list_regex, re.VERBOSE | re.IGNORECASE) # TAKE from tweets INITIALLY
In [5]:
# Filters IMPORTED from csv file data

def filterPick(list, filter):
    return [ ( l, m.group(1) ) for l in list for m in (filter(l),) if m]

search_regex = re.compile(list_regex, re.VERBOSE | re.IGNORECASE).search

# Use tweetList -  that is a list from DF (using .tolist())

outlist_init = filterPick(tweet_list_org, search_regex) # It is a tuple: initial list from all tweets

char_remove = [']', '[', '(', ')', '{', '}'] # characters to be removed
words_keep = ['old', 'new', 'age', 'lot', 'bag', 'top', 'cat', 'bat', 'sap', 'jda', 'tea', 'dog', 'lie', 'law', 'lab',\
             'mob', 'map', 'car', 'fat', 'sea', 'saw', 'raw', 'rob', 'win', 'can', 'get', 'fan', 'fun', 'big',\
             'use', 'pea', 'pit','pot', 'pat', 'ear', 'eye', 'kit', 'pot', 'pen', 'bud', 'bet', 'god', 'tax', 'won', 'run',\
              'lid', 'log', 'pr', 'pd', 'cop', 'nyc', 'ny', 'la', 'toy', 'war', 'law', 'lax', 'jfk', 'fed', 'cry', 'ceo',\
              'pay', 'pet', 'fan', 'fun', 'usd', 'rio']

emotion_list = [':)', ';)', '(:', '(;', '}', '{','}']
word_garb = ['here', 'there', 'where', 'when', 'would', 'should', 'could','thats', 'youre', 'thanks', 'hasn',\
             'thank', 'https', 'since', 'wanna', 'gonna', 'aint', 'http', 'unto', 'onto', 'into', 'havent',\
             'dont', 'done', 'cant', 'werent', 'https', 'u', 'isnt', 'go', 'theyre', 'each', 'every', 'shes', 'youve', 'youll',\
            'weve', 'theyve']

# Dictionary with Replacement Pairs ******************************************************************************
repl_dict = {'googleele': 'goog', 'lyin': 'lie', 'googles': 'goog', 'aapl':'apple',\
             'msft':'microsoft', 'google': 'goog', 'googl':'goog'}

exclude = list(string.punctuation) + emotion_list + word_garb

# Convert tuple to a list, then to a string; Remove the characters; Stays as a STRING. Porter Stemmer

stemmer=PorterStemmer()
lmtzr = WordNetLemmatizer()
In [6]:
# Convert tuple to a list, then to a string; Remove the characters; Stays as a STRING. Porter Stemmer

# Preparing CLEAN tweets tp keep SEPARATELY from WORDS in TWEETS

tweet_clean_fin = [] # Cleaned Tweets - Final Version
for tweet in outlist_init:

    tw_clean = []
    tw_clean = [ch for ch in tweet if ch not in char_remove]

    tw_clean = re.sub(URL, "", str(tw_clean))
    tw_clean = re.sub(html_tag, "",str(tw_clean))
    tw_clean = re.sub(hash_tag, "",str(tw_clean))
    tw_clean = re.sub(slash_all,"", str(tw_clean))
    tw_clean = re.sub(cont_number, "",str(tw_clean))
    tw_clean = re.sub(numbers, "",str(tw_clean))
    tw_clean = re.sub(start_pound, "",str(tw_clean))
    tw_clean = re.sub(start_quest_pound, "",str(tw_clean))
    tw_clean = re.sub(at_sign, "",str(tw_clean))
    tw_clean = re.sub("'", "",str(tw_clean))
    tw_clean = re.sub('"', "",str(tw_clean))
    tw_clean = re.sub(r'(?:^|\s)[@#].*?(?=[,;:.!?]|\s|$)', r'', tw_clean) # Removes # and @ in words (lookahead)

    tw_clean = lmtzr.lemmatize(str(tw_clean))
    #tw_clean = stemmer.stem(str(tw_clean))
    
    tw_clean_lst = re.findall(r'\w+', str(tw_clean))
    
    tw_clean_lst = [tw.lower() for tw in tw_clean_lst if tw.lower() not in stopwords.words('english')]
    tw_clean_lst = [word for word in tw_clean_lst if word not in exclude]
    tw_clean_lst = str([word for word in tw_clean_lst if len(word)>3 or word.lower() in words_keep])
    
    tw_clean_lst = re.findall(r'\w+', str(tw_clean_lst))
    tw_clean_lst = [replace_all(word, repl_dict) for word in tw_clean_lst]
    
    tweet_clean_fin.append(list(tw_clean_lst))

# Delete various elements from the text (LIST OF WORDS)

out_list_fin = []
out_string_temp = ''.join([ch for ch in str(list(outlist_init)) if ch not in char_remove])

out_string_temp = re.sub(URL, "", out_string_temp)
out_string_temp = re.sub(html_tag, "", out_string_temp)
out_string_temp = re.sub(hash_tag, "", out_string_temp)
out_string_temp = re.sub(slash_all,"", str(out_string_temp))
out_string_temp = re.sub(cont_number, "", out_string_temp) 
out_string_temp = re.sub(numbers, "", out_string_temp)
out_string_temp = re.sub(start_pound, "", out_string_temp)
out_string_temp = re.sub(start_quest_pound, "", out_string_temp)
out_string_temp = re.sub(at_sign, "", out_string_temp)
out_string_temp = re.sub("'", "", out_string_temp)
out_string_temp = re.sub('"', "", out_string_temp)
out_string_temp = re.sub(r'(?:^|\s)[@#].*?(?=[,;:.!?]|\s|$)', r'', out_string_temp) # Removes # and @ in words (lookahead)

out_list_w = re.findall(r'\w+', out_string_temp)

out_string_short = str([word.lower() for word in out_list_w if len(word)>3 or word.lower() in words_keep])

out_list_w = re.findall(r'\w+', out_string_short)   

out_list_w = [lmtzr.lemmatize(word) for word in out_list_w]
#out_list_w = [stemmer.stem(word) for word in out_list_w]
out_list_w = [word.lower() for word in out_list_w if word.lower() not in stopwords.words('english')]  # Remove stopwords
out_list_w = str([word.lower() for word in out_list_w if word not in exclude])
out_string_rpl = replace_all(out_list_w, repl_dict) # replace all words from dictionary

# Convert "Cleaned" STRING to a LIST

out_list_fin = re.findall(r'\w+', out_string_rpl)

list_len = len(out_list_fin)
word_list = set(out_list_fin) # list of unique words from all tweets - SET
word_list_len = len(word_list)

print "Set = ", word_list_len, "Original Qty = ", list_len
print word_list
print '********************************************************************************************************'
print tweet_clean_fin
print len(tweet_clean_fin)
Set =  1340 Original Qty =  3764
set(['essay', 'katy', 'code', 'curate', 'forget', 'founder', 'global', 'focus', 'existing', 'steve', 'protest', 'balloon', 'elottery', 'discoverable', 'pacific', 'cameron', 'shazam', 'album', 'religious', 'seemed', 'okcupids', 'looking', 'atsume', 'number', 'uphold', 'recome', 'tweet', 'itll', 'father', 'laid', 'environment', 'teetering', 'mate', 'device', 'lord', 'charity', 'adebayo', 'sent', 'bogus', 'started', 'sound', 'stocked', 'woman', 'premium', 'garden', 'advantage', 'sitting', 'slis', 'blanket', 'caught', 'keeping', 'vegan', 'intel', 'fan', 'lynch', 'fall', 'sony', 'uniteds', 'condition', 'cool', 'school', 'magic', 'sans', 'catherine', 'valley', 'celebrity', 'list', 'joined', 'bournemouth', 'convenience', 'gardener', 'team', 'small', 'inspection', 'round', 'retweeted', 'programme', 'enjoy', 'jamaica', 'charter', 'force', 'instagram', 'fence', 'porn', 'trend', 'managed', 'warns', 'japanese', 'sign', 'past', 'second', 'street', 'video', 'professional', 'jameis', 'download', 'buccaneer', 'acid', 'woogyu', 'investment', 'optins', 'even', 'optimize', 'revised', 'microsofts', 'giving', 'integrity', 'thou', 'beaten', 'brief', 'find', 'access', 'maghery', 'waiting', 'version', 'ancient', 'spotlight', 'new', 'technology', 'order', 'ever', 'public', 'appseeq', 'told', 'specialist', 'widget', 'full', 'iran', 'bentley', 'degree', 'brate', 'molly', 'gathered', 'men', 'jasmine', 'french', 'lack', 'busy', 'let', 'nikolaous', 'licence', 'others', 'active', 'path', 'november', 'cardboard', 'fifteen', 'appears', 'change', 'wait', 'ukraine', 'collec', 'great', 'bible', 'incoming', 'discount', 'healthy', 'riviera', 'study', 'changed', 'murdered', 'experience', 'leaving', 'itunes', 'gravityinfosoft', 'survey', 'month', 'social', 'action', 'bucs', 'weird', 'sticking', 'salvation', 'cbia', 'smas', 'fantastic', 'homegrown', 'love', 'apple', 'figure', 'claim', 'win', 'explained', 'brought', 'sincerely', 'follower', 'apply', 'total', 'crisis', 'market', 'cost', 'endangered', 'use', 'fee', 'lottery', 'discus', 'inspiration', 'army', 'swachh', 'illegal', 'hyatt', 'dude', 'upgrad', 'next', 'live', 'wood', 'call', 'asset', 'wondering', 'cassette', 'australian', 'type', 'gujrat', 'today', 'flat', 'winston', 'conductor', 'tester', 'club', 'patience', 'phablets', 'yahoo', 'award', 'hurt', 'phone', 'train', 'accept', 'rabbit', 'baby', 'central', 'jadine', 'webmaster', 'trait', 'must', 'town', 'topic', 'none', 'join', 'evolution', 'hour', 'car', 'work', 'applied', 'london', 'mena', 'outweigh', 'soup', 'printing', 'mali', 'following', 'making', 'trans', 'history', 'control', 'heart', 'scam', 'trump', 'estate', 'give', 'nexus', 'cited', 'flickr', 'india', 'heartless', 'udemy', 'high', 'currency', 'smartphone', 'taking', 'want', 'sense', 'pond', 'simple', 'approved', 'startup', 'luthuli', 'productive', 'milestone', 'turn', 'buoyant', 'travel', 'bernie', 'mike', 'damage', 'dismissed', 'amigo', 'sunday', 'labor', 'animal', 'fallout', 'answer', 'ensure', 'comedy', 'horror', 'blackness', 'profile', 'map', 'continues', 'seoul', 'gentoo', 'bday', 'advice', 'began', 'internet', 'hazard', 'indy', 'plane', 'coming', 'jcpenney', 'law', 'hast', 'purchase', 'stress', 'drop', 'tout', 'move', 'host', 'maybe', 'bing', 'amazon', 'season', 'think', 'specific', 'assailant', 'habe', 'automatically', 'african', 'putting', 'addiction', 'discover', 'make', 'talk', 'anyone', 'cute', 'sunggyu', 'producer', 'deck', 'demand', 'bowl', 'presley', 'petco', 'soon', 'canary', 'feature', 'course', 'coll', 'paper', 'lyric', 'left', 'japan', 'cold', 'still', 'searched', 'antinudes', 'spotify', 'le', 'police', 'bridget', 'personal', 'amazing', 'denver', 'writing', 'late', 'age', 'window', 'production', 'rankbrain', 'policy', 'owner', 'hidden', 'soccer', 'easier', 'struggling', 'goog', 'eyal', 'good', 'return', 'pure', 'food', 'auto', 'thee', 'spell', 'earn', 'nation', 'break', 'lunch', 'exhibiting', 'penetration', 'rank', 'cadieux', 'wealthy', 'mimicking', 'investor', 'reminder', 'association', 'wont', 'term', 'equality', 'sleeve', 'chronic', 'puzzle', 'artist', 'detroit', 'realistic', 'legend', 'latvia', 'affiliate', 'fitness', 'found', 'went', 'lofty', 'sabayon', 'domain', 'financial', 'mental', 'accelerator', 'generation', 'cairo', 'energy', 'hard', 'idea', 'group', 'duchess', 'nigerian', 'used', 'sponsor', 'year', 'operation', 'beyond', 'saturday', 'brings', 'really', 'category', 'living', 'disjointed', 'shoppi', 'network', 'driving', 'capital', 'house', 'god', 'activism', 'diesel', 'mason', 'content', 'farm', 'hear', 'safety', 'health', 'trendstream', 'reader', 'issue', 'networp', 'smart', 'buenos', 'benoit', 'city', 'phoenixthe', 'olivera', 'friday', 'dominated', 'horse', 'free', 'fred', 'kajiado', 'difficulty', 'reason', 'please', 'giveaway', 'ahwaz', 'airway', 'put', 'comeback', 'hand', 'storm', 'generate', 'card', 'leverage', 'bjsbrew', 'bumped', 'training', 'river', 'googexpertuk', 'arcade', 'language', 'sytsma', 'woven', 'refugee', 'partner', 'success', 'property', 'david', 'creates', 'thing', 'isi', 'place', 'vladimi', 'seapch', 'messaged', 'xweporn', 'museum', 'south', 'first', 'piney', 'bedlam', 'graduate', 'neil', 'feel', 'blogger', 'powerful', 'flipping', 'owned', 'dia', 'unaccompanied', 'featured', 'jeannessur', 'tango', 'another', 'changing', 'vote', 'decides', 'miss', 'spread', 'fella', 'given', 'hawk', 'silent', 'service', 'introduction', 'pradesh', 'top', 'engagement', 'bitcoin', 'approximately', 'name', 'priority', 'needed', 'attack', 'station', 'persecute', 'passed', 'jisho', 'store', 'discussion', 'hangout', 'option', 'cope', 'pittsburgh', 'taiwanese', 'tool', 'hotel', 'debate', 'prediction', 'released', 'hillary', 'part', 'predictable', 'digi', 'word', 'consult', 'copy', 'customer', 'jonghyun', 'bach', 'population', 'toronto', 'spoiler', 'kind', 'assaulted', 'gayn', 'minister', 'padresaislados', 'freerider_hd', 'hike', 'leafy', 'eradicating', 'zero', 'ebay', 'project', 'autumn', 'li_ivanildo', 'marriage', 'friend', 'ancyl', 'kindle', 'hacking', 'country', 'select', 'remembers', 'bet', 'published', 'prospect', 'bridge', 'hyyh', 'humble', 'intolerance', 'jeffbullas', 'pro', 'suspicious', 'measure', 'glass', 'relieve', 'pedestrian', 'bevten', 'selling', 'adele', 'unlikely', 'need', 'seen', 'seem', 'cetow', 'border', 'pay', 'lie', 'valleyfox', 'self', 'steamboat', 'overcoming', 'click', 'note', 'also', 'squad', 'take', 'online', 'beshear', 'wonder', 'completed', 'channel', 'concedes', 'urge', 'play', 'added', 'reality', 'normal', 'track', 'albert', 'price', 'enter', 'doug', 'paid', 'translator', 'nitin', 'hired', 'plan', 'letter', 'converter', 'canny', 'egyptian', 'class', 'gain', 'singled', 'misshijabi_mk', 'singer', 'mobile', 'incomplete', 'medical', 'calling', 'metal', 'sale', 'letsearnbux', 'playing', 'amigas', 'definitely', 'tech', 'artistic', 'enterprise', 'link', 'realised', 'microsoft', 'grotemeloenen', 'agnes', 'affair', 'madison', 'cooking', 'show', 'hahhahaa', 'encrypted', 'appreciates', 'bookmark', 'bring', 'inflexible', 'manchester', 'lowe', 'forecast', 'pleased', 'decade', 'help', 'litigation', 'coloring', 'based', 'huawei', 'writer', 'outside', 'crime', 'hierarchy', 'going', 'black', 'rich', 'money', 'morand', 'penguin', 'local', 'interested', 'england', 'bahrain', 'ranking', 'american', 'get', 'beat', 'syst', 'jazz', 'watch', 'backburner', 'preferred', 'famous', 'community', 'tammy', 'pretending', 'reply', 'report', 'biotechnology', 'bronco', 'spur', 'celebrate', 'lmao', 'prime', 'manager', 'reading', 'glory', 'girl', 'hiring', 'leather', 'racing', 'cry', 'doubt', 'martial', 'pirate', 'chemtrail', 'stupid', 'wwwow', 'activity', 'miley', 'rein', 'bought', 'cringe', 'wrote', 'view', 'insane', 'reveals', 'optimus', 'set', 'art', 'reference', 'creator', 'govt', 'netizens', 'frame', 'enjoyed', 'authorize', 'wallpapr', 'welcome', 'analytics', 'computer', 'college', 'result', 'greece', 'tender', 'portrait', 'surgery', 'sport', 'aberdeen', 'retweet', 'best', 'cbph', 'closer', 'youth', 'interview', 'parent', 'blueprint', 'tackling', 'lafell', 'movie', 'review', 'currently', 'wikipedia', 'maingarden', 'gujarat', 'registration', 'state', 'future', 'lavonte', 'cooperation', 'honour', 'silly', 'todredrob', 'swansea', 'email', 'whipped', 'steelers', 'available', 'notice', 'follow', 'recently', 'extend', 'missing', 'majesty', 'comp', 'embrace', 'deliver', 'garda', 'wednesday', 'incident', 'key', 'activist', 'news', 'library', 'come', 'kitchen', 'mukesh', 'climate', 'touc', 'last', 'candidate', 'kacich', 'meredith', 'many', 'region', 'gainesville', 'macedonia', 'foreign', 'huncha', 'tightens', 'acquisition', 'kestzs', 'collection', 'senator', 'whole', 'realsense', 'journey', 'con', 'comment', 'suggest', 'loon', 'reconsidered', 'stream', 'point', 'wall', 'baseball', 'way', 'sweep', 'pop', 'migrant', 'purpose', 'alone', 'fashion', 'anti', 'church', 'wider', 'respect', 'poll', 'cltwhineclub', 'hitler', 'chelmsford', 'turkey', 'question', 'unusual', 'cream', 'agree', 'union', 'tatum', 'create', 'political', 'tree', 'cyrus', 'strengthen', 'much', 'matatu', 'interest', 'collected', 'extends', 'renewables', 'chandler', 'woke', 'board', 'website', 'commentsuncategorized', 'azizramadhaners', 'flight', 'champion', 'league', 'fire', 'turned', 'elvis', 'dismiss', 'search', 'chill', 'accident', 'mombasa', 'bull', 'aviation', 'jjoni', 'careful', 'spirit', 'present', 'volunteer', 'case', 'chlos', 'holiday', 'look', 'coventry', 'truax', 'reliable', 'restaurant', 'resmlts', 'say', 'governor', 'technical', 'near', 'veggoagogo', 'sourcj', 'owns', 'urinetown', 'voice', 'guide', 'launched', 'buried', 'hoping', 'supposed', 'demo', 'nepali', 'gaera', 'site', 'linkedin', 'helped', 'middle', 'evening', 'brake', 'drug', 'violin', 'arabic', 'seattle', 'medna', 'road', 'around', 'barcelona', 'funny', 'decor', 'shirt', 'open', 'rooting', 'patent', 'seek', 'nobody', 'chou', 'administration', 'campus', 'member', 'pirello', 'upon', 'grand', 'inch', 'party', 'android', 'physical', 'cumming', 'accused', 'higher', 'week', 'tighten', 'safe', 'moved', 'fatty', 'promo', 'downloads', 'pick', 'driver', 'fetish', 'ftmuazsag', 'director', 'moment', 'anfield', 'user', 'student', 'kaido', 'infinite', 'robust', 'opportunity', 'windy', 'integral', 'konza', 'delhi', 'minimize', 'alleging', 'well', 'spent', 'county', 'ministerial', 'thought', 'person', 'synopsis', 'without', 'temperature', 'inspirational', 'english', 'direction', 'reward', 'corporate', 'spend', 'know', 'summer', 'ateneo', 'child', 'sentence', 'photo', 'executive', 'iiiiiii', 'ninth', 'aroma', 'macedonian', 'clinic', 'grader', 'kill', 'wifey', 'human', 'behind', 'skill', 'brandon', 'indian', 'wearable', 'projection', 'wage', 'announcement', 'death', 'campaign', 'tablet', 'majority', 'ease', 'smith', 'handy', 'blog', 'source', 'verse', 'book', 'prisoner', 'bank', 'prison', 'input', 'save', 'match', 'real', 'dependability', 'partnership', 'march', 'captivating', 'government', 'read', 'big', 'couple', 'credit', 'christina', 'uttar', 'arab', 'department', 'game', 'quest', 'five', 'seahawks', 'burden', 'press', 'world', 'tweetsheets', 'unique', 'dare', 'like', 'linux', 'newborn', 'dubai', 'brutality', 'gift', 'factoysex', 'collective', 'galata', 'journalism', 'xbox', 'chorus', 'trial', 'destination', 'superiority', 'journalist', 'night', 'become', 'tower', 'garage', 'disorder', 'university', 'right', 'old', 'marshawn', 'deal', 'people', 'speed', 'twitter', 'commandeer', 'searching', 'birmingham', 'hair', 'born', 'sure', 'learn', 'loaded', 'dear', 'home', 'digestive', 'facing', 'webrtc', 'trust', 'leaf', 'lead', 'bottom', 'decision', 'footing', 'neko', 'filling', 'legal', 'twerking', 'edition', 'everything', 'representa', 'cloud', 'provider', 'forgiven', 'adorable', 'christmas', 'booking', 'blackberry', 'bingo', 'felt', 'patient', 'vintage', 'business', 'marketing', 'warwickshire', 'zombie', 'pressure', 'step', 'diet', 'defensive', 'leftover', 'post', 'raspberry', 'paste', 'dadri', 'dead', 'crafting', 'lifestyle', 'extending', 'freedom', 'chance', 'page', 'angeles', 'chrome', 'magazine', 'regular', 'plus', 'banker', 'positive', 'silence', 'addict', 'channing', 'cambridge', 'clinton', 'happ', 'coupon', 'slogan', 'selfie', 'within', 'profession', 'gleaner', 'atfc', 'entrepreneur', 'playoff', 'doesnt', 'rising', 'esteem', 'homeless', 'steven', 'actually', 'extraordinary', 'nyali', 'boycotting', 'parade', 'princo_linsky', 'minority', 'legacy', 'banas', 'prepare', 'area', 'support', 'doll', 'apps', 'promoting', 'long', 'fight', 'campaigner', 'start', 'camera', 'handbook', 'jins', 'series', 'music', 'translate', 'war', 'happy', 'function', 'jones', 'head', 'medium', 'battery', 'invite', 'form', 'suitability', 'something', 'anywhere', 'mitigate', 'webinar', 'volume', 'seagal', 'larry', 'brain', 'alive', 'russian', 'remote', 'line', 'trying', 'posted', 'patriot', 'made', 'largest', 'happen', 'petra', 'inside', 'official', 'smooth', 'us', 'tell', 'record', 'bosphorus', 'convince', 'limit', 'goldshmid', 'highlight', 'daddy', 'called', 'accelerated', 'uber', 'festive', 'gasehat', 'iphone', 'remaking', 'taste', 'cover', 'pic', 'shinee', 'life', 'thanksgiving', 'daily', 'donated', 'optouts', 'girlfriend', 'watched', 'doe', 'check', 'film', 'fill', 'facebook', 'hasnt', 'yoga', 'dying', 'tit', 'adwords', 'stake', 'tip', 'erecting', 'virtual', 'illinois', 'wher', 'grouped', 'summit', 'ellen', 'digital', 'test', 'ramification', 'ebooks', 'shenzhen', 'picture', 'star', 'shelter', 'wshs', 'braking', 'discoveryd', 'update', 'adult', 'stay', 'helping', 'lufthansa', 'meaning', 'whining', 'peak', 'coverage', 'nintendo', 'chris', 'song', 'smartly', 'weekend', 'structure', 'broomfield', 'building', 'scouting', 'shootout', 'noviembre', 'jalapeno', 'algorithm', 'wife', 'nebel', 'invest', 'rescued', 'youtube', 'rule', 'hello', 'manganiello', 'beverage', 'u', 'fact', 'time', 'international', 'overseas', 'quantity', 'starting', 'goddamnedl', 'representative'])
********************************************************************************************************
[['goog', 'nexus', 'good', 'condition', 'black'], ['rising', 'entrepreneurs', 'stay', 'productive'], ['atfc', 'lottery', 'comp', 'week', 'lofty', 'needs', 'numbers', 'win', 'goog', 'elottery', 'bingo', 'check', 'club', 'twitter', 'website', 'full', 'update', 'atfc'], ['new', 'work', 'store', 'notes', 'encrypted', 'grouped', 'categories', 'functions', 'soon'], ['long', 'wait', 'official', 'member', 'jadine', 'nation', 'fill', 'form'], ['powerful', 'tool', 'curate', 'create', 'great', 'content', 'goog', 'loves'], ['swansea', 'team', 'news', 'live', 'coverage', 'free', 'anfield'], ['porn'], ['powerful', 'tool', 'curate', 'create', 'great', 'content', 'goog', 'loves'], ['flipping', 'amazing', 'want', 'need', 'english', 'patient', 'like', 'summer', 'without', 'dying', 'course', 'flipping'], ['gravityinfosoft'], ['also', 'currently', 'uses', 'frames', 'makes', 'doesnt', 'change', 'wont', 'work', 'well', 'goog'], ['dare', 'goog', 'canny', 'canary', 'pops', 'make', 'sure', 'spell', 'right'], ['broomfield', 'enterprise', 'test', 'kitchen', 'soup', 'healthy', 'option', 'leftover', 'turkey', 'broomfield'], ['bulls'], ['migrants', 'break', 'greece', 'macedonia', 'border', 'macedonian', 'army', 'began', 'erecting', 'metal', 'fence', 'migrants'], ['moment', 'silence', 'greece', 'turkey', 'soccer', 'match', 'silent', 'refugees', 'migrants', 'moment'], ['iran', 'greece', 'seek', 'cooperation', 'energy', 'prepare', 'plan', 'action', 'iran', 'greece', 'going', 'discuss', 'long', 'iran'], ['latvia', 'urges', 'greece', 'tighten', 'border', 'ease', 'refugee', 'crisis', 'reason', 'really', 'need', 'changed', 'latvia'], ['tips', 'hillary', 'going', 'rein', 'walls', 'bankers', 'clintons', 'collected', 'financial'], ['misshijabi_mk'], ['leverage', 'book', 'giveaway', 'get', 'reviews'], ['misshijabi_mk'], ['first', 'cloud', 'accelerator', 'programme', 'region', 'launched', 'bahrain', 'first', 'cloud', 'accelerator', 'programme', 'first'], ['messaged', 'woman', 'okcupids', 'realistic', 'photos', 'convince', 'advice', 'even'], ['many', 'medical', 'tests', 'health', 'past', 'five', 'years', 'ellen', 'explained', 'syst'], ['living', 'nikolaous', 'wife', 'olivera', 'creates', 'unique', 'home', 'decor', 'wood', 'added', 'artistic', 'touc'], ['wealthy', 'governor', 'friends', 'remaking', 'illinois'], ['hazard'], ['rising', 'entrepreneurs', 'stay', 'productive'], ['first', 'pics', 'goog', 'search', 'dude', 'selfie'], ['download', 'great', 'free', 'get', 'premium', 'version', 'download'], ['works', 'world', 'climate', 'summit', 'start', 'noviembre'], ['cbph', 'fan', 'support', 'project', 'form'], [], [], [], ['whos', 'bought', 'new', 'available', 'itunes', 'goog', 'play', 'spotify'], ['padresaislados', 'make', 'money', 'android', 'apps', 'goog', 'play', 'money', 'padresaislados'], ['azizramadhaners', 'download', 'great'], ['media', 'persons', 'singled', 'assaulted', 'police', 'alleging', 'police', 'brutality', 'media', 'persons', 'media'], ['nintendo', 'sony', 'trump', 'microsofts', 'xbox', 'japan', 'sony', 'microsoft', 'years', 'nintendo'], ['news', 'travel', 'valleyfox', 'news', 'phoenixthe', 'sunday'], ['porn'], ['azizramadhaners', 'download', 'great'], ['powerful', 'tool', 'curate', 'create', 'great', 'content', 'goog', 'loves'], ['goog', 'bing'], ['azizramadhaners', 'download', 'great', 'free'], ['new', 'patent', 'reveals', 'googs', 'self', 'driving', 'cars', 'talk', 'pedestrians'], ['kacich', 'nobody', 'like', 'todays'], ['goog', 'play', 'store', 'version', 'goog'], ['focus', 'assets', 'call', 'peoples', 'uniteds', 'preferred', 'investment', 'options', 'take', 'look'], ['cltwhineclub', 'completed', 'jasmine', 'quest', 'cltwhineclub'], ['ukraine', 'tightens', 'control', 'foreign', 'charter', 'flights', 'state', 'aviation', 'administration'], ['li_ivanildo', 'factoysex', 'retweet', 'like'], ['answer', 'steven', 'mason', 'doesnt', 'apple', 'purchase', 'stake', 'goog', 'answer'], ['goog', 'beaten', 'youtube', 'recome', 'worlds', 'second', 'largest', 'social', 'media', 'network', 'sourcj', 'trendstream', 'goog'], ['azizramadhaners', 'download', 'great', 'free', 'get'], ['azizramadhaners', 'download', 'great', 'free'], ['factoysex', 'retweet', 'like'], ['princo_linsky', 'factoysex', 'retweet', 'like'], ['princo_linsky', 'factoysex', 'retweet', 'like'], ['princo_linsky', 'factoysex', 'retweet', 'like'], ['jeannessur', 'factoysex', 'retweet', 'like'], ['pleased', 'following', 'join', 'android'], ['following', 'twitter', 'download', 'android'], ['pleased', 'following', 'join', 'android'], ['princo_linsky', 'factoysex', 'retweet', 'like'], ['download', 'new', 'bournemouth', 'fan', 'free', 'android', 'download'], ['grotemeloenen', 'antinudes', 'factoysex', 'retweet', 'like'], ['grotemeloenen', 'xweporn', 'factoysex', 'retweet', 'like'], ['high', 'returns', 'bring', 'foreign', 'investors', 'detroit', 'real', 'estate', 'market', 'high'], ['grotemeloenen', 'factoysex', 'retweet', 'like'], ['goog', 'bevten', 'youtube', 'become', 'worlds', 'largest', 'social', 'medna', 'networp', 'source', 'trendstream', 'goog'], ['business', 'briefs', 'food', 'beverage', 'operations', 'changes', 'steamboat', 'grand', 'steamboat', 'grand', 'hotel', 'hired', 'business'], ['cltwhineclub', 'gathered', 'captivating', 'aromas', 'collection', 'cltwhineclub'], ['goog', 'maps', 'told', 'best', 'path', 'town'], ['playoff', 'picture', 'steelers', 'fans', 'rooting', 'guide', 'week'], ['whole', 'time', 'goog', 'spent', 'hiring', 'drivers', 'map', 'streets', 'homes', 'buildings', 'idea', 'uber', 'sitting', 'right'], ['business', 'briefs', 'food', 'beverage', 'operations', 'changes', 'steamboat', 'grand', 'steamboat', 'grand', 'hotel', 'hired', 'business'], ['goog', 'maps', 'told', 'best', 'path', 'town'], ['scouting', 'report', 'pittsburgh', 'steelers', 'seattle', 'seahawks', 'week'], ['writing', 'essay', 'copy', 'paste', 'goog', 'translate', 'read', 'itll', 'much', 'easier', 'find'], ['unique', 'gift', 'ideas', 'girlfriend', 'christmas', 'maingarden', 'unique', 'gift', 'ideas', 'girlfriend'], ['business', 'briefs', 'food', 'beverage', 'operations', 'changes', 'steamboat', 'grand', 'steamboat', 'grand', 'hotel', 'hired', 'business'], ['christmas', 'gift', 'unusual', 'ideas', 'maingarden', 'christmas', 'gift', 'unusual', 'ideas', 'find', 'unique', 'chris'], ['happy', 'comments', 'goog', 'play', 'store', 'given', 'star'], ['misshijabi_mk'], ['business', 'briefs', 'food', 'beverage', 'operations', 'changes', 'steamboat', 'grand', 'steamboat', 'grand', 'hotel', 'hired', 'business'], ['unique', 'ideas', 'mens', 'christmas', 'gifts', 'maingarden', 'unique', 'ideas', 'find', 'best'], ['misshijabi_mk'], ['forget', 'vote', 'topics', 'going', 'discuss', 'evening'], ['leafy', 'gainesville'], ['pittsburgh', 'steelers', 'keys', 'game'], ['gravityinfosoft'], ['business', 'briefs', 'food', 'beverage', 'operations', 'changes', 'steamboat', 'grand', 'steamboat', 'grand', 'hotel', 'hired', 'business'], ['download', 'great', 'free', 'get', 'premium', 'version', 'download'], [], ['powerful', 'tool', 'curate', 'create', 'great', 'content', 'goog', 'loves'], [], ['fight', 'church', 'attack', 'freedoms', 'public', 'interest', 'litigation', 'bernie', 'gayn', 'fight'], ['marriage', 'debate', 'wider', 'religious', 'freedoms', 'reading', 'buoyant', 'comment'], [], ['beshear', 'administration', 'hasnt', 'paid', 'legal', 'fees', 'marriage', 'case', 'unlikely', 'steve', 'beshear'], ['ramifications', 'beyond', 'marriage', 'began', 'robust', 'debate', 'marriage', 'ramifications'], ['azizramadhaners', 'download', 'great'], ['misses', 'history', 'black', 'artists', 'museums', 'needed', 'consult', 'bridgets', 'exhibiting', 'blackness'], ['new', 'poll', 'shows', 'majority', 'japanese', 'support', 'marriage', 'equality', 'support', 'marriage', 'new'], ['azizramadhaners', 'download', 'great'], ['warns', 'mali', 'attack', 'war', 'crime'], ['azizramadhaners', 'download', 'great', 'free'], ['theres', 'thing', 'called', 'goog'], ['lord', 'god', 'thee', 'trust', 'save', 'persecute', 'deliver'], ['use', 'goog', 'analytics', 'measure', 'engagement', 'blog'], ['user', 'started', 'playing', 'arcade', 'game', 'user'], ['rich', 'famous', 'people', 'homeless'], ['happen', 'yahoo', 'turns', 'flickr', 'goog', 'gives', 'photo', 'record'], ['service', 'unique', 'goog', 'plus', 'followers'], ['azizramadhaners', 'download', 'great', 'free'], ['vote', 'reminder', 'vote', 'shinee', 'jonghyun', 'smas'], ['smooth', 'jazz', 'commentsuncategorized', 'posts', 'category', 'smooth', 'jazz', 'smooth', 'jazz', 'stars', 'smooth', 'smooth', 'jazz'], ['maghery', 'putting', 'fitness', 'heart', 'physical', 'mental', 'health', 'specialists', 'joined', 'club', 'members', 'representa', 'maghery'], ['remote', 'play', 'brought', 'sony', 'currently', 'existing', 'remote', 'play', 'sony', 'owns', 'lets'], ['insane', 'love', 'life', 'heartless', 'zombie', 'android', 'insane'], ['find', 'find'], ['find', 'find'], ['find', 'find'], ['iran', 'suspicious', 'death', 'arab', 'political', 'prisoner', 'prison', 'ahwaz'], ['agnes', 'cadieux', 'life', 'surgery', 'waiting', 'list', 'sent', 'sports', 'clinic', 'wher', 'agnes'], ['fatty', 'foods', 'damage', 'brain', 'study', 'says', 'fatty'], ['regular', 'brake', 'inspections', 'best', 'ensure', 'safe', 'reliable', 'braking', 'minimize', 'cost', 'regular'], ['arabic', 'online', 'english', 'online', 'goog', 'translator', 'arabic'], ['careful', 'scam', 'email', 'pretending', 'making', 'rounds', 'claims', 'law', 'bogus'], ['great', 'read'], ['new', 'battery', 'goog', 'nexus', 'optimus', 'full', 'read', 'ebay', 'new'], ['active', 'community', 'waiting', 'join'], ['future', 'reference', 'wikipedia', 'movie', 'synopsis', 'goog', 'movie', 'spoiler', 'sites', 'enjoyed', 'reading', 'replies'], ['want', 'appreciates', 'tits', 'want'], ['miley', 'cyrus', 'twerking', 'game', 'lmao', 'funny', 'miley'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['porn'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['assailants', 'kill', 'egyptian', 'police', 'south', 'cairo'], ['seem', 'eradicating', 'top', 'priority', 'african', 'union'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['diesel', 'black', 'woven', 'leather', 'phone', 'case', 'cover', 'goog', 'nexus', 'film', 'full', 'read', 'diesel'], ['goog', 'hangouts', 'taking', 'inspiration', 'discoveryd'], ['vote', 'seoul', 'music', 'awards', 'download'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['pirates', 'selling', 'training', 'videos', 'udemy'], ['global', 'climate', 'march', 'record', 'numbers', 'turn', 'climate', 'protests'], ['search', 'inspirational', 'singers', 'goog', 'appears'], ['pirates', 'selling', 'training', 'videos', 'udemy'], ['pirates', 'selling', 'training', 'videos', 'udemy'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['pirates', 'selling', 'training', 'videos', 'udemy', 'pirates'], ['goog', 'check', 'actually', 'neil', 'nitin', 'mukesh'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['humble', 'gardener', 'extending', 'time', 'garden', 'fall', 'extend', 'time', 'garden', 'late'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['things', 'goog', 'map', 'caught', 'camera', 'supposed'], ['computer', 'reviews', 'goog', 'nexus', 'tablet', 'inch', 'black', 'computer'], ['inside', 'chemtrail', 'plane', 'still', 'think', 'real', 'click', 'link'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['senator', 'calls', 'vote', 'authorize', 'war', 'isis'], ['whipped', 'cream'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['time', 'writers', 'comedy', 'backburner'], ['lufthansa', 'struggling', 'labor', 'issues', 'concedes', 'wage', 'hike', 'demands', 'international', 'business', 'times'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['kacich', 'nobody', 'like', 'todays'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['love', 'great', 'tweets', 'like'], ['cbph', 'fan', 'support', 'project', 'form'], ['really', 'commandeer', 'simple', 'access', 'goog', 'itunes', 'really'], ['love', 'great', 'tweets', 'like'], ['porn'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['love', 'great', 'tweets', 'like'], ['search', 'inspirational', 'singers', 'goog', 'appears'], ['love', 'great', 'tweets', 'like'], ['love', 'great', 'tweets', 'like'], ['people', 'searching', 'adele', 'lyrics', 'illegal', 'downloads'], ['love', 'great', 'tweets', 'like'], ['vote', 'infinite', 'sunggyu', 'seoul', 'music', 'awards', 'download'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['people', 'turned', 'licences', 'coventry', 'warwickshire'], ['love', 'great', 'tweets', 'like'], ['order', 'kaido', 'blanket', 'slogan'], ['time', 'lunch', 'bulls', 'head', 'birmingham'], ['love', 'great', 'tweets', 'like'], ['love', 'great', 'tweets', 'like'], ['goog', 'terms', 'explained', 'bloggers'], ['know', 'music', 'help', 'figure', 'puzzle'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['love', 'great', 'tweets', 'like'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['rich', 'famous', 'people', 'homeless', 'famous'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['fatty', 'foods', 'damage', 'brain', 'study', 'says', 'medical', 'news', 'today', 'cited', 'high'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['make', 'sure', 'download', 'new', 'album', 'introduction', 'itunes', 'amazon', 'goog', 'play', 'spotify', 'make'], ['hawk', 'students', 'please', 'link', 'interested', 'fan', 'friday'], ['patriots', 'brandon', 'lafell', 'must', 'step', 'broncos'], ['spurs'], ['new', 'england', 'patriots', 'denver', 'broncos'], ['goog', 'glass', 'project', 'seemed', 'like', 'future', 'wearable', 'devices', 'closer', 'thought'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['patriots', 'broncos', 'point', 'spread', 'total', 'prediction'], ['definitely', 'agree', 'used', 'hear', 'goog', 'superiority', 'inflexible', 'flat', 'network', 'hierarchy', 'owned', 'hard'], ['patriots', 'defensive', 'keys', 'chandler', 'jones', 'must', 'generate', 'pressure', 'broncos'], ['woogyu', 'dolls', 'price'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['wondering', 'make', 'chorus', 'videos', 'everything'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['safety', 'dependability', 'structure', 'meaning', 'purpose', 'safety'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], [], ['takes', 'sign'], ['find', 'yoga', 'tammy', 'sytsma', 'facing', 'leads', 'yoga', 'class', 'madison', 'area', 'technical', 'coll'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['new', 'released', 'email', 'marketing', 'android', 'new'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['cute', 'goog', 'live', 'stream', 'neko', 'atsume'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['vote', 'calling', 'banas', 'vote', 'seoul', 'music', 'awards', 'download', 'device', 'android'], ['new', 'website', 'highlights', 'content', 'social', 'networks', 'want'], ['googexpertuk', 'middle', 'difficulty', 'lies', 'opportunity', 'albert', 'googexpertuk'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['comeback', 'jins', 'bday', 'giveaway', 'hyyh', 'rules', 'fill', 'form', 'enter'], ['cbph', 'fan', 'support', 'project', 'form'], ['watched', 'urinetown', 'ateneo', 'answer'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['powerful', 'tool', 'curate', 'create', 'great', 'content', 'goog', 'loves'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['jamaica', 'gleaner', 'sweeps', 'awards', 'gleaner', 'saturday', 'night', 'dominated', 'press', 'association', 'jamaica'], ['goog', 'goog'], ['goog', 'goog', 'affairs', 'producers', 'directors'], ['gentoo', 'based', 'sabayon', 'linux', 'raspberry', 'version', 'incoming'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['taiwanese', 'star', 'chou', 'starting', 'league', 'legends', 'team', 'taiwanese'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['luthuli', 'father', 'nation', 'luthuli'], ['ancyl', 'remembers', 'murdered', 'woman', 'ancyl'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['revised', 'ministerial', 'handbook', 'must', 'enter', 'public', 'domain', 'cope', 'revised'], ['local', 'government', 'gujrat', 'tender', 'notice', 'local'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['adebayo', 'urges', 'journalists', 'uphold', 'integrity', 'journalism', 'profession', 'adebayo'], ['cbia', 'renewables', 'alone', 'wont', 'mitigate', 'energy', 'cost', 'burden', 'cbia'], ['spotlight', 'journalism', 'spotlight'], ['global', 'climate', 'march', 'record', 'numbers', 'turn', 'climate', 'protests'], ['newborn', 'girl', 'found', 'buried', 'alive', 'rescued', 'angeles', 'news'], ['check', 'link', 'first', 'posted', 'hour', 'code', 'media', 'arts', 'activities'], ['rich', 'famous', 'people', 'homeless'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['sets', 'best', 'wallpapr', 'automatically', 'free', 'nebel'], ['searches', 'old'], ['category', 'nigerian', 'journalism', 'category'], ['powerful', 'tool', 'curate', 'create', 'great', 'content', 'goog', 'loves'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['goog', 'donated', 'university', 'wrote', 'goog', 'policy', 'papers', 'goog', 'goog'], ['beat', 'android', 'beat'], ['cbph', 'fan', 'support', 'project', 'form'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['searches', 'bedlam', 'old'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['warns', 'mali', 'attack', 'war', 'crime'], ['rank', 'site', 'first', 'page', 'rank'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['vote', 'seoul', 'music', 'awards', 'download'], ['mombasa', 'police', 'dismiss', 'nyali', 'bridge', 'accident', 'police', 'dismissed', 'claims', 'matatu'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['number'], ['seattle', 'auto', 'marshawn', 'lynch'], ['overseas', 'fashion', 'tech', 'startups', 'spent', 'week', 'goog', 'london', 'join', 'goog'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['searches', 'bowl', 'projections', 'old'], ['crafting', 'legacy'], ['daily', 'amazon', 'deals', 'save', 'spend', 'jcpenney', 'email', 'gift', 'cards', 'code', 'daily'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['daily', 'amazon', 'deals', 'save', 'spend', 'petco', 'email', 'gift', 'cards', 'code', 'daily'], ['homegrown', 'holiday'], ['daily', 'amazon', 'deals', 'get', 'amazon', 'promo', 'credit', 'purchase', 'hyatt', 'email', 'gift', 'code', 'daily'], ['daily', 'amazon', 'deals', 'save', 'spend', 'restaurant', 'email', 'gift', 'cards', 'code', 'bjsbrew', 'daily'], ['first', 'cloud', 'accelerator', 'programme', 'region', 'launched', 'bahrain', 'first'], ['daily', 'amazon', 'deals', 'get', 'amazon', 'promo', 'credit', 'purchase', 'gift', 'card', 'daily'], ['get', 'chance', 'win'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['good', 'spirits'], ['online', 'marketing', 'sales', 'representative'], ['gentoo', 'based', 'sabayon', 'linux', 'raspberry', 'version', 'incoming', 'gentoo', 'based'], ['taste', 'past'], ['missing', 'decade', 'leaving', 'seen', 'goog', 'maps', 'bottom', 'pond'], ['raspberry', 'devices', 'predictable', 'host', 'keys'], ['new', 'released', 'email', 'marketing', 'android', 'new'], ['new', 'age', 'giving'], ['get', 'chance', 'win'], ['like', 'hair', 'fantastic', 'success', 'molly', 'like', 'sponsors'], ['like', 'letter', 'bach', 'fellas', 'hair', 'bachs', 'music', 'unaccompanied', 'violin'], ['global', 'climate', 'march', 'record', 'numbers', 'turn', 'climate', 'protests'], ['order', 'girls', 'generation', 'shirt'], ['realised', 'goog', 'currency', 'converter', 'bitcoin', 'sincerely', 'doubt', 'ever', 'come', 'handy'], ['silly', 'season', 'update', 'morand', 'racing', 'benoit', 'morand', 'squad', 'upgrad'], ['iran', 'suspicious', 'death', 'arab', 'political', 'prisoner', 'prison', 'ahwaz'], ['download', 'android', 'bible', 'bookmark', 'verses', 'download'], ['make', 'money', 'android', 'apps', 'goog', 'play', 'make'], ['powerful', 'tool', 'curate', 'create', 'great', 'content', 'goog', 'loves'], ['goog', 'nexus', 'felt', 'sleeve', 'acid', 'goog'], ['enter', 'win', 'goog', 'nexus', 'android', 'smartphone', 'enter'], ['respect', 'parents', 'passed', 'school', 'without', 'goog'], ['graduate', 'sales', 'executive'], ['wifey'], ['vote', 'seoul', 'music', 'awards', 'download'], ['need', 'voice', 'tweets', 'animals', 'class', 'endangered'], ['powerful', 'tool', 'curate', 'create', 'great', 'content', 'goog', 'loves'], ['goog', 'founder', 'larry', 'page', 'decides', 'next', 'big', 'bet'], ['widgets', 'like'], ['quantity', 'survey', 'jjoni', 'rabbit'], ['happ', 'users', 'users', 'goog', 'webmasters', 'happ'], ['eyal', 'goldshmid', 'cons', 'digital', 'picture', 'printing', 'website', 'outweigh', 'pros', 'reader'], ['used', 'shazam', 'discover', 'cry', 'daddy', 'elvis', 'presley'], ['find', 'yoga', 'tammy', 'sytsma', 'facing', 'leads', 'yoga', 'class', 'madison', 'area', 'technical', 'colleges', 'truax', 'campus', 'find'], ['widgets', 'like'], ['jeffbullas', 'powerful', 'tool', 'curate', 'create', 'great', 'content', 'goog', 'loves', 'jeffbullas'], ['tips', 'create', 'discoverable', 'content', 'goog', 'humans', 'social', 'networks', 'love'], ['assailants', 'kill', 'egyptian', 'police', 'south', 'cairo'], ['download', 'android', 'bible', 'bookmark', 'verses', 'download'], ['drug', 'discount', 'coupon', 'provider', 'gains', 'minority', 'owner', 'drug'], ['tips', 'local', 'digital', 'marketing', 'small', 'business', 'trends', 'small', 'business'], ['tips', 'local', 'digital', 'marketing', 'small', 'business', 'trends', 'small', 'business'], ['goog', 'riviera', 'club', 'barcelona', 'mate', 'went', 'positive', 'bumped', 'doug', 'fred'], ['results', 'come', 'searched', 'goog', 'stupid', 'prime', 'minister'], ['creators', 'still', 'need', 'accept', 'partnership', 'invite', 'accept', 'invite', 'today', 'creators'], ['goog', 'nexus', 'leather', 'felt', 'sleeve', 'jalapeno', 'goog'], ['registration', 'still', 'open', 'sans', 'dubai', 'registration'], ['property', 'investment', 'property'], ['powerful', 'tool', 'curate', 'create', 'great', 'content', 'goog', 'loves'], ['love', 'puzzle', 'games', 'november', 'love'], ['another', 'hour', 'november', 'leather', 'sleeve', 'autumn', 'another'], ['suggest', 'collective', 'use', 'goog', 'translate', 'bing', 'translate', 'jisho'], ['mobile', 'marketing', 'best', 'marketing', 'optouts', 'optins', 'kinds', 'great', 'features'], ['hawk', 'students', 'please', 'link', 'interested', 'fan', 'friday', 'hawk'], ['baby', 'cold', 'outside', 'fire', 'loaded', 'ebooks', 'win'], ['stress'], ['adult', 'coloring', 'book', 'vegan', 'cooking', 'coloring', 'christina', 'pirello', 'adult'], ['adult', 'coloring', 'book', 'vegan', 'cooking', 'coloring', 'christina', 'pirello', 'adult'], ['welcome', 'french', 'riviera', 'take', 'anywhere', 'phone', 'goog', 'play', 'apple', 'store', 'windows', 'store', 'blackberry', 'store', 'welcome'], ['news', 'huawei', 'mate', 'nexus', 'top', 'phablets', 'shootout', 'tech', 'times', 'news'], ['senator', 'calls', 'vote', 'authorize', 'war', 'isis'], ['cute', 'goog', 'live', 'stream', 'neko', 'atsume'], ['online', 'marketing', 'sales', 'representative'], ['trying', 'use', 'goog', 'maps', 'buildings', 'moved', 'new', 'river', 'none', 'sounds', 'woke', 'horror'], ['graduate', 'sales', 'executive'], ['shenzhen', 'govt', 'invest', 'gujarat', 'smart', 'city', 'projects', 'shenzhen'], ['goog', 'adwords', 'facebook'], ['digi', 'puts', 'spotlight', 'extraordinary', 'netizens', 'wwwow', 'awards', 'digi'], ['diet', 'plan', 'review'], ['goog', 'translate', 'help', 'maybe'], ['ways', 'linkedin', 'profile'], ['letsearnbux', 'sign', 'premium', 'member', 'free', 'pay'], ['retweeted', 'goog', 'facts', 'study', 'higher', 'word', 'less', 'retweeted'], ['powerful', 'tool', 'curate', 'create', 'great', 'content', 'goog', 'loves'], ['banks', 'customer', 'convenience', 'strengthen', 'footing', 'mena', 'region', 'shoppi'], ['last', 'cetow', 'normal', 'temperature', 'cassette', 'order', 'line', 'last'], ['vote', 'seoul', 'music', 'awards', 'download'], ['hahhahaa', 'goog', 'hahhahaa'], ['goog', 'trials', 'content', 'mobile', 'goog'], ['online', 'marketing', 'sales', 'representative'], ['ways', 'linkedin', 'profile'], ['kindle', 'fire', 'stocked', 'ebooks'], ['skills', 'looks', 'managers'], ['pure', 'review'], ['goog', 'trials', 'content', 'mobile', 'goog'], ['student', 'volunteer', 'portrait', 'wshs', 'ninth', 'grader', 'embraces', 'lifestyle', 'helping', 'others', 'student'], ['changing', 'lifestyle', 'help', 'relieve', 'chronic', 'digestive', 'disorders', 'changing'], ['think', 'american', 'acquisition', 'airways', 'acquisition', 'instagram', 'acquisition'], ['tackling', 'whining', 'child', 'takes', 'patience', 'tackling'], ['like'], ['letsearnbux', 'sign', 'premium', 'member', 'free', 'pay'], ['free', 'energy', 'blueprint', 'free'], ['slis', 'looking', 'present', 'part', 'webinar', 'series', 'email', 'meredith', 'lowe', 'learn', 'slis'], ['goog', 'translate', 'weird', 'disjointed', 'tweets', 'incomplete', 'sentences', 'replies'], ['couple', 'weeks', 'month', 'milestone', 'catherine', 'duchess', 'cambridge', 'released', 'adorable', 'collec'], ['cute', 'goog', 'live', 'stream', 'neko', 'atsume'], ['love', 'great', 'tweets', 'like'], ['earn', 'money', 'make', 'money', 'online', 'android', 'apps', 'goog', 'play', 'earn'], ['production', 'professional', 'videos', 'promoting', 'goog', 'video', 'managed', 'youtube', 'channels', 'production'], ['self', 'esteem', 'apply', 'within', 'self', 'esteem', 'habe', 'specific', 'fetish', 'cumming'], ['people', 'business', 'people'], ['warns', 'mali', 'attack', 'war', 'crime'], ['public', 'works', 'writing', 'announcement', 'public'], ['watch', 'test', 'project', 'loon', 'balloon', 'zero', 'environments', 'watch'], ['charity', 'rewards', 'aberdeen', 'addicts', 'overcoming', 'addiction'], ['internet', 'goog', 'sticking', 'horses'], ['evolution', 'show', 'tell', 'mimicking', 'dead', 'leaf', 'evolution'], ['farm', 'house', 'kajiado', 'county', 'near', 'konza', 'city', 'farm', 'house', 'kajiado', 'county', 'near'], ['intolerance', 'search', 'volume', 'goog', 'peaks', 'incidents', 'like', 'dadri', 'uttar', 'pradesh'], ['public', 'works', 'christmas', 'tree', 'pick', 'public', 'works', 'christmas', 'tree'], ['goog', 'adwords', 'affiliate', 'game'], ['public', 'works', 'department', 'swachh', 'delhi', 'keeping', 'capital', 'roads'], ['anyone', 'knows', 'lack', 'sense', 'direction', 'please', 'note', 'made', 'chlos', 'train', 'station'], ['eyal', 'goldshmid', 'cons', 'digital', 'picture', 'printing', 'website', 'outweigh', 'pros', 'reader', 'eyal'], ['know', 'name', 'song', 'type', 'words', 'know', 'goog', 'hoping', 'find'], ['smith', 'baseball', 'teetering', 'good', 'need', 'goddamnedl', 'champion', 'around'], ['iran', 'suspicious', 'death', 'arab', 'political', 'prisoner', 'prison', 'ahwaz'], ['download', 'goog', 'play', 'use', 'android', 'phone', 'apple', 'store', 'use', 'iphone', 'search', 'cool', 'download'], ['news', 'accelerated', 'mobile', 'pages', 'rankbrain', 'next', 'penguin', 'update', 'conductor'], ['record'], ['searches', 'chill', 'goog'], ['goog', 'hacking', 'penetration', 'testers', 'second', 'edition', 'goog'], ['goog', 'analytics', 'tips', 'optimize', 'social', 'media', 'campaign'], ['cbph', 'fan', 'support', 'project', 'form', 'cbph'], ['force', 'behind', 'activism', 'join', 'live', 'discussion'], ['unaccompanied', 'homeless', 'youth', 'hidden', 'population', 'schools', 'unaccompanied'], ['indian', 'minister', 'says', 'countrys', 'needs', 'reconsidered', 'indian'], ['chelmsford', 'board', 'seeks', 'limits', 'hotel', 'stays', 'homeless', 'chelmsford'], ['equality', 'campaigners', 'question', 'candidates', 'suitability', 'anti', 'marriage', 'blog', 'equality'], ['russian', 'magazine', 'published', 'list', 'forgiven', 'celebrities'], ['warns', 'mali', 'attack', 'war', 'crime'], ['rights', 'activists', 'celebrate', 'degree', 'gains', 'india', 'march', 'new', 'delhi', 'parade'], ['freerider_hd', 'read', 'track', 'muazsag', 'todredrob', 'games', 'free', 'freerider_hd'], ['assailants', 'kill', 'egyptian', 'police', 'south', 'cairo'], ['appseeq', 'featured', 'veggoagogo', 'games', 'free', 'appseeq'], ['fire', 'left', 'cold', 'fire'], ['fashion', 'limit', 'fashion', 'limit', 'fashion'], ['activism', 'trait', 'born', 'decision', 'make', 'join', 'discussion'], ['busy', 'travel', 'valley', 'busy'], ['manganiello', 'shows', 'moves', 'magic', 'mike'], ['corporate', 'travel', 'starting', 'feel', 'like', 'booking', 'holiday', 'purpose', 'corporate'], ['vote', 'reminder', 'vote', 'shinee', 'jonghyun', 'smas'], ['looking', 'something', 'toronto', 'destinations', 'weekend', 'looking'], ['enjoy', 'game', 'enjoy'], ['following', 'join', 'discussion', 'android'], ['virtual', 'reality', 'star', 'wars', 'experience', 'coming', 'goog', 'cardboard', 'next', 'month'], ['vintage', 'bentley', 'speed'], ['cameron', 'brate', 'smartly', 'filling', 'buccaneers'], ['letsearnbux', 'sign', 'premium', 'member', 'free', 'pay'], ['letsearnbux', 'sign', 'premium', 'member', 'free', 'pay'], ['lavonte', 'david', 'jameis', 'winston', 'integral', 'bucs', 'chances', 'indy'], ['cameron', 'brate', 'smartly', 'filling', 'buccaneers'], ['powerful', 'tool', 'curate', 'create', 'great', 'content', 'goog', 'loves'], ['goog', 'founder', 'larry', 'page', 'decides', 'next', 'big', 'bet'], ['goog', 'translate', 'helped'], ['iran', 'suspicious', 'death', 'arab', 'political', 'prisoner', 'prison', 'ahwaz'], ['hands', 'deck', 'join', 'tweet', 'storm', 'tweetsheets'], ['fifteen', 'years', 'joined', 'small', 'startup', 'called', 'goog', 'journey', 'continues'], ['lavonte', 'david', 'jameis', 'winston', 'integral', 'bucs', 'chances', 'indy'], ['senator', 'calls', 'vote', 'authorize', 'war', 'isis'], ['online', 'marketing', 'sales', 'representative'], ['ways', 'linkedin', 'profile'], ['beat', 'android', 'beat'], ['twitter', 'extends', 'business', 'prospects'], ['forecast', 'london', 'high', 'forecast'], ['even', 'goog', 'wont', 'find', 'even'], ['goog', 'inputs', 'gaera', 'nepali', 'language', 'select', 'garda', 'huncha', 'need', 'translator'], ['christmas', 'fire', 'stocked'], ['australian', 'banks', 'accused', 'boycotting', 'apple', 'pay', 'labor', 'party', 'official', 'australian'], ['building', 'fire', 'katy', 'piney', 'point', 'building'], ['groups', 'tout', 'advantages', 'new', 'language', 'biotechnology', 'recently', 'approved', 'trans', 'pacific', 'partner'], ['dear', 'wednesday', 'march', 'hitler', 'iiiiiii', 'applied'], ['manganiello', 'shows', 'moves', 'magic', 'mike', 'mike', 'channing', 'tatum'], ['assailants', 'kill', 'egyptian', 'police', 'south', 'cairo'], ['goog', 'chrome', 'gasehat', 'goog'], ['goog', 'tips', 'good', 'interview'], ['manchester', 'central', 'library', 'home', 'digital', 'garage'], ['enjoy', 'video', 'windy', 'garden', 'trees', 'today', 'hello', 'friends', 'buenos', 'dias', 'amigas', 'amigos'], ['kestzs', 'november', 'kestzs'], ['street', 'view', 'brings', 'ancient', 'wonders', 'petra'], ['bosphorus', 'taking', 'place', 'goog', 'webrtc', 'mobile'], ['goog', 'bing'], ['fallout', 'shelter', 'continues', 'festive', 'content', 'drops', 'thanksgiving', 'update'], ['watch', 'heres', 'steven', 'seagal', 'giving', 'martial', 'arts', 'demo', 'pure', 'cringe', 'personal', 'friends', 'vladimi', 'watch'], ['glory', 'great', 'salvation', 'honour', 'majesty', 'hast', 'thou', 'laid', 'upon'], ['follow', 'follow'], ['user', 'experience', 'hurt', 'sites', 'ranking', 'seapch', 'resmlts', 'goog', 'webmasters'], ['cute', 'goog', 'live', 'stream', 'neko', 'atsume'], ['goog', 'changes', 'algorithm', 'approximately', 'times', 'year', 'goog'], ['watch', 'heres', 'steven', 'seagal', 'giving', 'martial', 'arts', 'demo', 'pure', 'cringe', 'personal', 'friends', 'vladimi', 'watch'], ['taking', 'place', 'galata', 'tower', 'introduction', 'goog', 'project', 'tango', 'intel', 'realsense', 'technologies']]
500
In [7]:
# Create a matrix of frequencies for word pairs

words = {v:k for (k, v) in enumerate(word_list)}
keys = words.keys() # List all UNIQUE words in the dictionary from all CLEANED tweets   
l_keys = len(keys) 

matrix_pair = np.zeros([l_keys, l_keys]) # store all combination of keys

for tweet in tweet_clean_fin:
    word_l = []
    
    for word in tweet:
        word_l.append(word)         # List of words from ONE CLEANED tweet
    
    items = set(word_l)  #set of words in from ONE CLEANED tweet
    items = [term for term in items if term in keys] # take only words from a tweet that are in keys
    index = [words[pos] for pos in items] # positions of the words

    for i1 in index: 
        for i2 in index:
            if i1< i2:
                matrix_pair[i1][i2] += 1  #frequency
                
print "Frequency Matrix *********************************************"
print matrix_pair
print "                                                              "

print 'Maximum Frequency', np.max(matrix_pair)
print "                                                             "

idx1, idx2 = nanargmax(matrix_pair)

print "Indexes for a pair with max frequency - ", idx1, idx2
print "Pair of Words with Max Frequency: Word1 - ", words.keys()[idx1], "  Word2 - ", words.keys()[idx2]
print "                                                            "

# Selecting TOP N elements from the Matrix ##########################################################################

n_top = 10

matrix_pairF = matrix_pair.flatten()
idx_f = matrix_pairF.argsort()[-n_top:]
x_idx, y_idx = np.unravel_index(idx_f, matrix_pair.shape)

for x, y, in zip(x_idx, y_idx):
    print("Frequency = ", matrix_pair[x][y], "index1 = ", x, "index2 = ", y, "Word1 - ", words.keys()[x], "  Word2 - ", words.keys()[y])
Frequency Matrix *********************************************
[[ 0.  0.  0. ...,  0.  0.  0.]
 [ 0.  0.  0. ...,  0.  0.  0.]
 [ 0.  0.  0. ...,  0.  0.  0.]
 ..., 
 [ 0.  0.  0. ...,  0.  0.  0.]
 [ 0.  0.  0. ...,  0.  0.  0.]
 [ 0.  0.  0. ...,  0.  0.  0.]]
                                                              
Maximum Frequency 61.0
                                                             
Indexes for a pair with max frequency -  162 271
Pair of Words with Max Frequency: Word1 -  gravityinfosoft   Word2 -  buoyant
                                                            
('Frequency = ', 61.0, 'index1 = ', 162, 'index2 = ', 608, 'Word1 - ', 'gravityinfosoft', '  Word2 - ', 'doug')
('Frequency = ', 61.0, 'index1 = ', 608, 'index2 = ', 1118, 'Word1 - ', 'doug', '  Word2 - ', 'blackberry')
('Frequency = ', 61.0, 'index1 = ', 373, 'index2 = ', 804, 'Word1 - ', 'cadieux', '  Word2 - ', 'acquisition')
('Frequency = ', 61.0, 'index1 = ', 271, 'index2 = ', 685, 'Word1 - ', 'buoyant', '  Word2 - ', 'backburner')
('Frequency = ', 61.0, 'index1 = ', 271, 'index2 = ', 804, 'Word1 - ', 'buoyant', '  Word2 - ', 'acquisition')
('Frequency = ', 61.0, 'index1 = ', 373, 'index2 = ', 1118, 'Word1 - ', 'cadieux', '  Word2 - ', 'blackberry')
('Frequency = ', 61.0, 'index1 = ', 685, 'index2 = ', 1118, 'Word1 - ', 'backburner', '  Word2 - ', 'blackberry')
('Frequency = ', 61.0, 'index1 = ', 162, 'index2 = ', 373, 'Word1 - ', 'gravityinfosoft', '  Word2 - ', 'cadieux')
('Frequency = ', 61.0, 'index1 = ', 271, 'index2 = ', 1118, 'Word1 - ', 'buoyant', '  Word2 - ', 'blackberry')
('Frequency = ', 61.0, 'index1 = ', 373, 'index2 = ', 608, 'Word1 - ', 'cadieux', '  Word2 - ', 'doug')
In [8]:
# Create document-term-matrix

columns = word_list
ncols = word_list_len + 1

term_doc = pd.DataFrame(columns = columns)
term_doc.insert(0, "Tweet", " ")
term_doc["Tweet"] = tweetDF["Tweet"]
term_doc.fillna(0, inplace=True)

i_row = 0
for line in tweet_clean_fin:
    
    for word in line:

        for col in xrange(1, ncols-1):
            if word == term_doc.columns[col]: term_doc.iloc[i_row, col] += 1

    i_row += 1

# DataFrame for Statistics with Totals by Row and by Column
    
statDF = copy.deepcopy(term_doc)
columns_cl = ["Tweet", "Sim"]
tweet_sim = pd.DataFrame(columns = columns_cl)
tweet_sim = tweetDF["Tweet"]
tweet_sim.fillna(0.0, inplace=True)

# Sum Rows by Columns
row_sum = statDF.sum(axis=1)
statDF["Total"] = row_sum
print 'Row Max Value = ', row_sum.max()
print "Max Value DF = ", statDF["Total"].max(axis=0)

# Sum Columns by Row:
col_list = list(statDF)
col_list.remove('Tweet')

rsum = {col: statDF[col].sum() for col in col_list}
# Turn the sums into a DataFrame with one row with an index of 'Total':
sum_df = pd.DataFrame(rsum, index=["Total"])
# Now append the row:
statDF = statDF.append(sum_df)

# Calculate Similarity of Unique Words
tup_word = [] # need to pull column headers and rows af words
sim_word = np.zeros((ncols, ncols))

for i in xrange(ncols-1):
    
    v1 = [0.0]*ncols
    v1 = term_doc.iloc[:, i+1]
    
    for k in xrange(ncols-1):
        
        v2 = [0.0]*ncols 
        if i >= k: pass
        else:
            v2 = term_doc.iloc[:, k+1]
            similar = cosine_sim(v1, v2)
            tup_w = (similar, list(columns)[i], list(columns)[k])

            tup_word.append(tup_w)
            sim_word[i,k] = similar
            sim_word[k,i] = similar
    
    sim_word[i,i] = 1.0

sim_word[ncols-1,ncols-1] = 1.0

print 'Similarity for Words: Words = ', word_list_len
print sim_word

# SIMILARITY for TWEETS
tu_tweet = []
sim_tweet = np.zeros((num_tweets, num_tweets))

for i in xrange(num_tweets):
    
    v1 = [0.0]*num_tweets
    v1 = term_doc.iloc[i, 1:]
    
    for k in xrange(num_tweets):
        
        v2 = [0.0]*num_tweets
        if i >= k: pass
        else:
            v2 = term_doc.iloc[k, 1:]
            similar = cosine_sim(v1, v2)
            tup_twe = (similar, term_doc['Tweet'][i], term_doc['Tweet'][k])
            tu_tweet.append(tup_twe)
            
            sim_tweet[i, k] = similar
            sim_tweet[k, i] = similar
    sim_tweet[i,i] = 1.0

print '                                                                                         '
print "Similarity for Tweets: Tweets = ", num_tweets
print sim_tweet

statDF.tail()
Row Max Value =  16
Max Value DF =  16
Similarity for Words: Words =  1340
[[ 1.  0.  0. ...,  0.  0.  0.]
 [ 0.  1.  0. ...,  0.  0.  0.]
 [ 0.  0.  1. ...,  0.  0.  0.]
 ..., 
 [ 0.  0.  0. ...,  1.  0.  0.]
 [ 0.  0.  0. ...,  0.  1.  0.]
 [ 0.  0.  0. ...,  0.  0.  1.]]
                                                                                         
Similarity for Tweets: Tweets =  500
[[ 1.     0.     0.105 ...,  0.338  0.     0.141]
 [ 0.     1.     0.    ...,  0.     0.     0.   ]
 [ 0.105  0.     1.    ...,  0.178  0.     0.075]
 ..., 
 [ 0.338  0.     0.178 ...,  1.     0.     0.239]
 [ 0.     0.     0.    ...,  0.     1.     0.   ]
 [ 0.141  0.     0.075 ...,  0.239  0.     1.   ]]
Out[8]:
Total Tweet aberdeen accelerated accelerator accept access accident accused acid ... wwwow xbox xweporn yahoo year yoga youth youtube zero zombie
496 6 RT @Tsunderecum: How cute. Google did a live s... 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
497 5 Google changes their algorithm approximately 5... 0 0 0 0 0 0 0 0 ... 0 0 0 0 1 0 0 0 0 0
498 11 Watch: Here's Steven Seagal giving a martial a... 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
499 10 RT @GDGIstanbul: .@ph0b taking place now in 'G... 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0
Total 2901 NaN 1 1 3 2 1 1 1 1 ... 1 1 1 1 1 4 1 3 1 1

5 rows × 1342 columns

In [9]:
# Determine Top N TWEETS / WORDS

K_neighbor(n_top, tweetDF['Tweet'][498], tu_tweet)  #Top tweets for a given tweet

K_neighbor(n_top, 'accelerator', tup_word)  #Top words for a given word
Top  10  elements for  Watch: Here's Steven Seagal giving a martial arts demo that is pure cringe: He's personal friends with Vladimi... https://t.co/CsU2LbgCOh
**********************************************
(1.0, "Watch: Here's Steven Seagal giving a martial arts demo that is pure cringe: He's personal friends with Vladimi... https://t.co/Ft7pqschc0", "Watch: Here's Steven Seagal giving a martial arts demo that is pure cringe: He's personal friends with Vladimi... https://t.co/CsU2LbgCOh")
(0.37, 'Watch #Google test a Project Loon balloon in sub-zero environments. Via @VentureBeat https://t.co/AnZ2AgQpvM https://t.co/UlRMvUqTiT', "Watch: Here's Steven Seagal giving a martial arts demo that is pure cringe: He's personal friends with Vladimi... https://t.co/CsU2LbgCOh")
(0.196, '100% #GarciniaCambogia Pure Review #naturalsupplements #garciniacambogiapureselect https://t.co/fRL7OknDTn', "Watch: Here's Steven Seagal giving a martial arts demo that is pure cringe: He's personal friends with Vladimi... https://t.co/CsU2LbgCOh")
(0.16, '#Winston #salem A New Age of Giving https://t.co/gK9K9UDV54', "Watch: Here's Steven Seagal giving a martial arts demo that is pure cringe: He's personal friends with Vladimi... https://t.co/CsU2LbgCOh")
(0.084, "Answer on @Quora by Steven Mason to Why doesn't Apple purchase a 51% stake in Google? https://t.co/PGgfjLp6hU", "Watch: Here's Steven Seagal giving a martial arts demo that is pure cringe: He's personal friends with Vladimi... https://t.co/CsU2LbgCOh")
(0.0, 'RT @auctionnuterr: #nexus #cellphone LG Google Nexus 5 16GB - Good Condition Black Unlocked\xe2\x80\xa6 https://t.co/5sJxGqiwTx #mobile #ebay https://\xe2\x80\xa6', "Watch: Here's Steven Seagal giving a martial arts demo that is pure cringe: He's personal friends with Vladimi... https://t.co/CsU2LbgCOh")
(0.0, 'How These 10 Rising Entrepreneurs Stay Productive https://t.co/lSWZq0klrY https://t.co/AjcF9AduMA', "Watch: Here's Steven Seagal giving a martial arts demo that is pure cringe: He's personal friends with Vladimi... https://t.co/CsU2LbgCOh")
(0.0, 'ATFC Lottery comp 53 week 1 lofty needs 3 numbers to win \xc2\xa3106 Google elottery bingo or check club twitter &amp; website for full update', "Watch: Here's Steven Seagal giving a martial arts demo that is pure cringe: He's personal friends with Vladimi... https://t.co/CsU2LbgCOh")
(0.0, 'My new #Android work: https://t.co/9CKWDlvSdJ\nEasily store notes, encrypted or not, grouped in categories. More functions soon! #SecretNotes', "Watch: Here's Steven Seagal giving a martial arts demo that is pure cringe: He's personal friends with Vladimi... https://t.co/CsU2LbgCOh")
(0.0, 'RT @JaDineNATION: \xe2\x9a\xa0 The long wait is over!! \xe2\x9a\xa0\n\nWant to be an official member of JaDine Nation? :) Fill up this form: https://t.co/nO3y8NA61\xe2\x80\xa6', "Watch: Here's Steven Seagal giving a martial arts demo that is pure cringe: He's personal friends with Vladimi... https://t.co/CsU2LbgCOh")
Top  10  elements for  accelerator
**********************************************
(1.0, 'programme', 'accelerator')
(1.0, 'accelerator', 'cloud')
(0.949, 'accelerator', 'bahrain')
(0.949, 'accelerator', 'launched')
(0.894, 'accelerator', 'first')
(0.775, 'accelerator', 'region')
(0.0, 'essay', 'accelerator')
(0.0, 'katy', 'accelerator')
(0.0, 'code', 'accelerator')
(0.0, 'curate', 'accelerator')
Out[9]:
[(1.0, 'programme', 'accelerator'),
 (1.0, 'accelerator', 'cloud'),
 (0.949, 'accelerator', 'bahrain'),
 (0.949, 'accelerator', 'launched'),
 (0.894, 'accelerator', 'first'),
 (0.775, 'accelerator', 'region'),
 (0.0, 'essay', 'accelerator'),
 (0.0, 'katy', 'accelerator'),
 (0.0, 'code', 'accelerator'),
 (0.0, 'curate', 'accelerator')]
In [10]:
def tweet_prep(df):
    
    tweet_list = df['Tweet'].tolist()
    tweet_list_clean = df['Clean_Tweet'].tolist()
    word_list_cl = [[word for word in str(line).split()] for line in tweet_list_clean]
    word_list_tot = list(chain.from_iterable(word_list_cl))
    
    set_word = set(word_list_tot) # from clean tweets
    
    return Pair_words(set_word, tweet_list_clean, n_top)

print "Top ", n_top, " pairs of words"

most_comm = Pair_words(word_list, tweet_clean_fin, n_top)

print most_comm
Top  10  pairs of words
[(('goog', 'decade'), 61), (('goog', 'missing'), 61), (('missing', 'bottom'), 61), (('pond', 'goog'), 61), (('goog', 'seen'), 61), (('pond', 'decade'), 61), (('decade', 'missing'), 61), (('pond', 'bottom'), 61), (('leaving', 'seen'), 61), (('seen', 'decade'), 61)]
In [24]:
from sklearn.decomposition import TruncatedSVD
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.feature_extraction.text import HashingVectorizer
from sklearn.feature_extraction.text import TfidfTransformer

from sklearn.preprocessing import Normalizer
from sklearn import metrics

# K-Means Processing
n_clst = 200
cluster_doc = term_doc.drop(['Tweet'], axis=1)

kmeans = KMeans(n_clusters=n_clst, init='k-means++', random_state=0, max_iter=100, n_init=10, verbose=True)
print("Clustering sparse data with %s" % kmeans)

kmeans.fit(cluster_doc)

cluster_num = kmeans.predict(cluster_doc)
tweet_clean_list = [" ".join(tweet) for tweet in tweet_clean_fin]

labels = kmeans.labels_
cluster_centers = kmeans.cluster_centers_
labels_unique = np.unique(labels)

lenlb = len(labels_unique)
label_elem = np.zeros([lenlb])

print len(cluster_num), len(term_doc), len(tweet_clean_list), len(tweet_clean_fin)

cluster_tweet = pd.DataFrame({"Tweet": term_doc["Tweet"], "Cluster_Num": cluster_num, "Clean_Tweet": tweet_clean_list})
tweet_prep(cluster_tweet)

cluster_top_pair = cluster_tweet.groupby("Cluster_Num").apply(tweet_prep)
elem_cluster = np.bincount(labels) # Number of elements per Cluster
print "Top Cluster Pair"
print cluster_top_pair

for i in labels_unique:
    label_elem[i] = 0
    
    for l in labels:
        if l == i: label_elem[i] +=1
    print "Label = ", i, "  Number of Elements = ", label_elem[i] 

samp_size = min(num_tweets, 300) 

silh_score = metrics.silhouette_score(cluster_doc, labels, metric='euclidean', sample_size=samp_size)
print "Silhouette score = ", round(silh_score, 3), "  for Sample Size = ", samp_size

cluster_arr = cluster_doc.as_matrix()
BIC = compute_bic(kmeans,cluster_arr)
print 'BIC Score = ', round(BIC, 3)
Clustering sparse data with KMeans(copy_x=True, init='k-means++', max_iter=100, n_clusters=200, n_init=10,
    n_jobs=1, precompute_distances='auto', random_state=0, tol=0.0001,
    verbose=True)
Initialization complete
Iteration  0, inertia 487.000
Iteration  1, inertia 426.516
Iteration  2, inertia 425.584
Converged at iteration 2
Initialization complete
Iteration  0, inertia 492.000
Iteration  1, inertia 429.940
Iteration  2, inertia 429.010
Converged at iteration 2
Initialization complete
Iteration  0, inertia 487.000
Iteration  1, inertia 425.732
Iteration  2, inertia 424.801
Converged at iteration 2
Initialization complete
Iteration  0, inertia 497.000
Iteration  1, inertia 427.977
Iteration  2, inertia 427.045
Converged at iteration 2
Initialization complete
Iteration  0, inertia 491.000
Iteration  1, inertia 441.202
Iteration  2, inertia 440.277
Converged at iteration 2
Initialization complete
Iteration  0, inertia 496.000
Iteration  1, inertia 432.837
Iteration  2, inertia 431.905
Converged at iteration 2
Initialization complete
Iteration  0, inertia 501.000
Iteration  1, inertia 448.696
Iteration  2, inertia 446.268
Converged at iteration 2
Initialization complete
Iteration  0, inertia 497.000
Iteration  1, inertia 428.537
Iteration  2, inertia 427.607
Converged at iteration 2
Initialization complete
Iteration  0, inertia 498.000
Iteration  1, inertia 437.329
Iteration  2, inertia 436.398
Converged at iteration 2
Initialization complete
Iteration  0, inertia 494.000
Iteration  1, inertia 455.733
Iteration  2, inertia 454.811
Converged at iteration 2
500 500 500 500
Top Cluster Pair
Cluster_Num
0      [((view, review), 3), ((broncos, patriots), 3)...
1      [((missing, leaving), 61), ((goog, leaving), 6...
2      [((category, commentsuncategorized), 1), ((cat...
3      [((curate, tool), 12), ((goog, powerful), 12),...
4      [((great, get), 2), ((premium, get), 2), ((gre...
5      [((email, amazon), 3), ((daily, cards), 3), ((...
6      [((iran, energy), 1), ((iran, seek), 1), ((act...
7      [((instagram, acquisition), 1), ((think, airwa...
8      [((apps, play), 1), ((goog, android), 1), ((ea...
9      [((pay, free), 4), ((free, member), 4), ((prem...
10     [((vladimi, personal), 2), ((vladimi, giving),...
11     [((like, factoysex), 7), ((factoysex, retweet)...
12     [((apple, store), 1), ((french, phone), 1), ((...
13     [((death, prisoner), 4), ((death, prison), 4),...
14     [((business, steamboat), 5), ((briefs, grand),...
15     [((second, largest), 1), ((goog, worlds), 1), ...
16     [((goog, translate), 3), ((goog, help), 2), ((...
17     [((goog, cute), 4), ((goog, atsume), 4), ((str...
18                                                    []
19                               [((fashion, limit), 1)]
20     [((love, like), 11), ((like, tweets), 11), ((l...
21     [((bookmark, bible), 2), ((download, bookmark)...
22     [((famous, people), 3), ((homeless, rich), 3),...
23     [((facing, find), 2), ((area, facing), 2), ((c...
24     [((marketing, tips), 2), ((trends, digital), 2...
25     [((goog, spotify), 1), ((amazon, new), 1), ((p...
26     [((county, city), 1), ((county, konza), 1), ((...
27     [((support, cbph), 5), ((project, form), 5), (...
28     [((goog, search), 3), ((tips, goog), 3), ((hap...
29     [((credit, amazon), 2), ((gift, promo), 2), ((...
                             ...                        
170    [((even, wont), 1), ((even, find), 1), ((find,...
171    [((buoyant, marriage), 1), ((religious, debate...
172    [((dependability, purpose), 1), ((safety, purp...
173    [((suggest, collective), 1), ((goog, translate...
174    [((weekend, destinations), 1), ((toronto, some...
175    [((notes, work), 1), ((work, store), 1), ((fun...
176    [((cold, left), 1), ((fire, cold), 1), ((fire,...
177    [((goog, cardboard), 1), ((wars, next), 1), ((...
178    [((focus, uniteds), 1), ((focus, peoples), 1),...
179    [((profession, journalism), 1), ((profession, ...
180    [((goog, mukesh), 1), ((neil, check), 1), ((go...
181    [((study, higher), 1), ((word, study), 1), ((w...
182    [((strengthen, banks), 1), ((convenience, bank...
183    [((grotemeloenen, retweet), 3), ((like, factoy...
184    [((engagement, blog), 1), ((use, blog), 1), ((...
185    [((patience, takes), 1), ((child, takes), 1), ...
186    [((ways, linkedin), 3), ((ways, profile), 3), ...
187    [((generate, chandler), 1), ((patriots, must),...
188    [((okcupids, messaged), 1), ((okcupids, even),...
189    [((london, forecast), 1), ((high, forecast), 1...
190    [((people, adele), 1), ((illegal, searching), ...
191    [((countrys, indian), 1), ((needs, indian), 1)...
192    [((googexpertuk, opportunity), 1), ((middle, o...
193    [((appseeq, games), 1), ((appseeq, free), 1), ...
194    [((shazam, elvis), 1), ((discover, presley), 1...
195    [((hour, media), 1), ((hour, check), 1), ((hou...
196    [((bachs, bach), 1), ((unaccompanied, hair), 1...
197    [((win, chance), 2), ((chance, get), 2), ((win...
198    [((live, team), 1), ((anfield, team), 1), ((li...
199    [((dear, hitler), 1), ((wednesday, dear), 1), ...
dtype: object
Label =  0   Number of Elements =  95.0
Label =  1   Number of Elements =  61.0
Label =  2   Number of Elements =  1.0
Label =  3   Number of Elements =  12.0
Label =  4   Number of Elements =  2.0
Label =  5   Number of Elements =  3.0
Label =  6   Number of Elements =  1.0
Label =  7   Number of Elements =  1.0
Label =  8   Number of Elements =  1.0
Label =  9   Number of Elements =  4.0
Label =  10   Number of Elements =  2.0
Label =  11   Number of Elements =  7.0
Label =  12   Number of Elements =  1.0
Label =  13   Number of Elements =  4.0
Label =  14   Number of Elements =  5.0
Label =  15   Number of Elements =  1.0
Label =  16   Number of Elements =  3.0
Label =  17   Number of Elements =  4.0
Label =  18   Number of Elements =  3.0
Label =  19   Number of Elements =  1.0
Label =  20   Number of Elements =  12.0
Label =  21   Number of Elements =  2.0
Label =  22   Number of Elements =  3.0
Label =  23   Number of Elements =  2.0
Label =  24   Number of Elements =  2.0
Label =  25   Number of Elements =  1.0
Label =  26   Number of Elements =  1.0
Label =  27   Number of Elements =  5.0
Label =  28   Number of Elements =  22.0
Label =  29   Number of Elements =  2.0
Label =  30   Number of Elements =  2.0
Label =  31   Number of Elements =  1.0
Label =  32   Number of Elements =  1.0
Label =  33   Number of Elements =  1.0
Label =  34   Number of Elements =  1.0
Label =  35   Number of Elements =  2.0
Label =  36   Number of Elements =  2.0
Label =  37   Number of Elements =  2.0
Label =  38   Number of Elements =  2.0
Label =  39   Number of Elements =  1.0
Label =  40   Number of Elements =  1.0
Label =  41   Number of Elements =  2.0
Label =  42   Number of Elements =  1.0
Label =  43   Number of Elements =  3.0
Label =  44   Number of Elements =  10.0
Label =  45   Number of Elements =  1.0
Label =  46   Number of Elements =  1.0
Label =  47   Number of Elements =  1.0
Label =  48   Number of Elements =  6.0
Label =  49   Number of Elements =  1.0
Label =  50   Number of Elements =  4.0
Label =  51   Number of Elements =  1.0
Label =  52   Number of Elements =  1.0
Label =  53   Number of Elements =  2.0
Label =  54   Number of Elements =  4.0
Label =  55   Number of Elements =  1.0
Label =  56   Number of Elements =  1.0
Label =  57   Number of Elements =  1.0
Label =  58   Number of Elements =  1.0
Label =  59   Number of Elements =  1.0
Label =  60   Number of Elements =  1.0
Label =  61   Number of Elements =  1.0
Label =  62   Number of Elements =  1.0
Label =  63   Number of Elements =  1.0
Label =  64   Number of Elements =  1.0
Label =  65   Number of Elements =  1.0
Label =  66   Number of Elements =  1.0
Label =  67   Number of Elements =  1.0
Label =  68   Number of Elements =  1.0
Label =  69   Number of Elements =  1.0
Label =  70   Number of Elements =  2.0
Label =  71   Number of Elements =  2.0
Label =  72   Number of Elements =  4.0
Label =  73   Number of Elements =  1.0
Label =  74   Number of Elements =  2.0
Label =  75   Number of Elements =  3.0
Label =  76   Number of Elements =  4.0
Label =  77   Number of Elements =  1.0
Label =  78   Number of Elements =  2.0
Label =  79   Number of Elements =  1.0
Label =  80   Number of Elements =  1.0
Label =  81   Number of Elements =  2.0
Label =  82   Number of Elements =  2.0
Label =  83   Number of Elements =  1.0
Label =  84   Number of Elements =  1.0
Label =  85   Number of Elements =  1.0
Label =  86   Number of Elements =  1.0
Label =  87   Number of Elements =  1.0
Label =  88   Number of Elements =  1.0
Label =  89   Number of Elements =  1.0
Label =  90   Number of Elements =  1.0
Label =  91   Number of Elements =  1.0
Label =  92   Number of Elements =  1.0
Label =  93   Number of Elements =  1.0
Label =  94   Number of Elements =  1.0
Label =  95   Number of Elements =  1.0
Label =  96   Number of Elements =  1.0
Label =  97   Number of Elements =  1.0
Label =  98   Number of Elements =  1.0
Label =  99   Number of Elements =  2.0
Label =  100   Number of Elements =  1.0
Label =  101   Number of Elements =  1.0
Label =  102   Number of Elements =  1.0
Label =  103   Number of Elements =  1.0
Label =  104   Number of Elements =  1.0
Label =  105   Number of Elements =  1.0
Label =  106   Number of Elements =  1.0
Label =  107   Number of Elements =  1.0
Label =  108   Number of Elements =  1.0
Label =  109   Number of Elements =  1.0
Label =  110   Number of Elements =  1.0
Label =  111   Number of Elements =  1.0
Label =  112   Number of Elements =  1.0
Label =  113   Number of Elements =  6.0
Label =  114   Number of Elements =  1.0
Label =  115   Number of Elements =  1.0
Label =  116   Number of Elements =  1.0
Label =  117   Number of Elements =  4.0
Label =  118   Number of Elements =  1.0
Label =  119   Number of Elements =  2.0
Label =  120   Number of Elements =  1.0
Label =  121   Number of Elements =  1.0
Label =  122   Number of Elements =  1.0
Label =  123   Number of Elements =  1.0
Label =  124   Number of Elements =  1.0
Label =  125   Number of Elements =  1.0
Label =  126   Number of Elements =  1.0
Label =  127   Number of Elements =  1.0
Label =  128   Number of Elements =  1.0
Label =  129   Number of Elements =  1.0
Label =  130   Number of Elements =  1.0
Label =  131   Number of Elements =  1.0
Label =  132   Number of Elements =  1.0
Label =  133   Number of Elements =  1.0
Label =  134   Number of Elements =  1.0
Label =  135   Number of Elements =  2.0
Label =  136   Number of Elements =  1.0
Label =  137   Number of Elements =  2.0
Label =  138   Number of Elements =  1.0
Label =  139   Number of Elements =  1.0
Label =  140   Number of Elements =  1.0
Label =  141   Number of Elements =  1.0
Label =  142   Number of Elements =  1.0
Label =  143   Number of Elements =  1.0
Label =  144   Number of Elements =  1.0
Label =  145   Number of Elements =  1.0
Label =  146   Number of Elements =  1.0
Label =  147   Number of Elements =  1.0
Label =  148   Number of Elements =  1.0
Label =  149   Number of Elements =  1.0
Label =  150   Number of Elements =  1.0
Label =  151   Number of Elements =  1.0
Label =  152   Number of Elements =  1.0
Label =  153   Number of Elements =  1.0
Label =  154   Number of Elements =  1.0
Label =  155   Number of Elements =  1.0
Label =  156   Number of Elements =  1.0
Label =  157   Number of Elements =  1.0
Label =  158   Number of Elements =  2.0
Label =  159   Number of Elements =  1.0
Label =  160   Number of Elements =  1.0
Label =  161   Number of Elements =  1.0
Label =  162   Number of Elements =  6.0
Label =  163   Number of Elements =  1.0
Label =  164   Number of Elements =  1.0
Label =  165   Number of Elements =  1.0
Label =  166   Number of Elements =  1.0
Label =  167   Number of Elements =  1.0
Label =  168   Number of Elements =  1.0
Label =  169   Number of Elements =  1.0
Label =  170   Number of Elements =  1.0
Label =  171   Number of Elements =  1.0
Label =  172   Number of Elements =  1.0
Label =  173   Number of Elements =  1.0
Label =  174   Number of Elements =  1.0
Label =  175   Number of Elements =  1.0
Label =  176   Number of Elements =  1.0
Label =  177   Number of Elements =  1.0
Label =  178   Number of Elements =  1.0
Label =  179   Number of Elements =  1.0
Label =  180   Number of Elements =  1.0
Label =  181   Number of Elements =  1.0
Label =  182   Number of Elements =  1.0
Label =  183   Number of Elements =  3.0
Label =  184   Number of Elements =  1.0
Label =  185   Number of Elements =  1.0
Label =  186   Number of Elements =  3.0
Label =  187   Number of Elements =  1.0
Label =  188   Number of Elements =  1.0
Label =  189   Number of Elements =  1.0
Label =  190   Number of Elements =  1.0
Label =  191   Number of Elements =  1.0
Label =  192   Number of Elements =  1.0
Label =  193   Number of Elements =  1.0
Label =  194   Number of Elements =  1.0
Label =  195   Number of Elements =  1.0
Label =  196   Number of Elements =  1.0
Label =  197   Number of Elements =  2.0
Label =  198   Number of Elements =  1.0
Label =  199   Number of Elements =  1.0
Silhouette score =  -0.438   for Sample Size =  300
BIC Score =  643442.527
In [ ]: