{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ " # Transformer Encoder for Email Spam Classification using PyTorch. \n", "## Steps\n", "1. Reading a CSV file\n", "2. Preprocessing text (Tokenization, Vocabulary creation)\n", "3. Splitting the dataset into train & test\n", "4. Transformer Encoder Model (with a Sigmoid activation for binary classification)\n", "5. Training & Evaluation on CPU" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Install the Pacakges" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Requirement already satisfied: torch in /system/conda/miniconda3/envs/cloudspace/lib/python3.10/site-packages (2.2.1+cu121)\n", "Requirement already satisfied: torchvision in /system/conda/miniconda3/envs/cloudspace/lib/python3.10/site-packages (0.17.1+cu121)\n", "Requirement already satisfied: torchaudio in /system/conda/miniconda3/envs/cloudspace/lib/python3.10/site-packages (2.2.1)\n", "Requirement already satisfied: pandas in /system/conda/miniconda3/envs/cloudspace/lib/python3.10/site-packages (2.1.4)\n", "Requirement already satisfied: scikit-learn in /system/conda/miniconda3/envs/cloudspace/lib/python3.10/site-packages (1.3.2)\n", "Requirement already satisfied: nltk in /system/conda/miniconda3/envs/cloudspace/lib/python3.10/site-packages (3.9.1)\n", "Requirement already satisfied: tqdm in /system/conda/miniconda3/envs/cloudspace/lib/python3.10/site-packages (4.67.1)\n", "Requirement already satisfied: transformers in /system/conda/miniconda3/envs/cloudspace/lib/python3.10/site-packages (4.49.0)\n", "\u001b[31mERROR: Could not find a version that satisfies the requirement pickle (from versions: none)\u001b[0m\u001b[31m\n", "\u001b[0m\u001b[31mERROR: No matching distribution found for pickle\u001b[0m\u001b[31m\n", "\u001b[0mNote: you may need to restart the kernel to use updated packages.\n" ] } ], "source": [ "pip install torch torchvision torchaudio pandas scikit-learn nltk tqdm transformers\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Import Packages" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "[nltk_data] Downloading package punkt to\n", "[nltk_data] /teamspace/studios/this_studio/nltk_data...\n", "[nltk_data] Package punkt is already up-to-date!\n" ] }, { "data": { "text/plain": [ "True" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import torch\n", "import torch.nn as nn\n", "import torch.optim as optim\n", "import pandas as pd\n", "import numpy as np\n", "from sklearn.model_selection import train_test_split\n", "from torch.utils.data import DataLoader, Dataset\n", "import nltk\n", "from nltk.tokenize import word_tokenize\n", "from collections import Counter\n", "from tqdm import tqdm\n", "import re\n", "\n", "nltk.download('punkt')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Read the Dataset using Pandas" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# Load Data\n", "df = pd.read_csv(\"spam.csv\")\n", "df.columns = [\"labels\", \"text\"]\n", "\n", "\n", "# Split Data\n", "train_texts, test_texts, train_labels, test_labels = train_test_split(df[\"text\"], df[\"labels\"], test_size=0.2, random_state=42)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Preprocessing text" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Counter({'i': 2429, 'to': 1826, 'you': 1791, 'a': 1149, 'the': 1072, 'u': 966, 'and': 783, 'in': 717, 'is': 690, 'me': 651, 'it': 611, 'my': 603, 'for': 560, 'your': 547, 'of': 493, 'call': 476, 'that': 454, 'have': 454, 's': 450, 'on': 434, '2': 431, 'are': 403, 'now': 395, 'can': 390, 't': 388, 'not': 375, 'but': 359, 'so': 357, 'm': 357, 'or': 350, 'do': 346, 'we': 332, 'at': 329, 'be': 324, 'get': 321, 'will': 319, 'ur': 310, 'with': 309, 'if': 308, 'just': 301, 'no': 293, '4': 278, 'this': 272, 'how': 263, 'up': 257, 'gt': 253, 'lt': 252, 'when': 250, 'what': 244, 'ok': 242, 'free': 239, 'go': 231, 'from': 230, 'll': 221, 'all': 219, 'know': 206, 'out': 200, 'good': 196, 'got': 196, 'like': 191, 'there': 188, 'come': 184, 'then': 181, 'its': 181, 'am': 180, 'time': 179, 'love': 179, 'was': 177, 'day': 176, 'he': 171, 'only': 168, 'send': 164, 'text': 158, 'want': 150, 'as': 147, 'by': 147, 'ü': 146, '1': 145, 'need': 142, 'one': 141, 'home': 139, 'going': 139, 'don': 137, 'she': 136, 'see': 135, 'txt': 134, 'stop': 133, 'about': 132, 'today': 129, 'sorry': 128, 'n': 127, 'still': 126, 'reply': 125, 'lor': 124, 'back': 123, 'r': 122, 'da': 120, 'dont': 116, 'mobile': 116, 'tell': 115, 'please': 115, 'her': 114, 'our': 114, 'later': 114, 'hi': 113, 'new': 113, 'd': 113, 'think': 112, 'pls': 111, 'k': 111, 'been': 107, 'phone': 106, 'take': 104, 'they': 104, 'did': 104, 'here': 103, 'any': 103, 'week': 102, 'dear': 102, 're': 101, 'c': 100, 'where': 96, 'an': 94, 'night': 94, 'oh': 91, 'more': 91, 'hey': 90, 'much': 90, '3': 90, 'who': 89, 'msg': 88, 'well': 88, 'some': 87, 'hope': 87, 'claim': 87, 'yes': 86, 'great': 86, 'make': 86, 'wat': 84, 'had': 84, 'him': 83, 've': 83, 'too': 83, 'work': 83, 'www': 82, 'give': 81, 'has': 81, 'tomorrow': 80, 'happy': 80, 'e': 79, 'number': 79, 'message': 79, 'say': 79, 'should': 79, 'after': 76, 'way': 75, 'right': 74, 'im': 74, 'doing': 74, 'b': 73, 'yeah': 70, 'life': 70, 'cash': 70, 'already': 69, 'really': 69, 'said': 69, 'amp': 69, 'very': 68, 'won': 67, 'them': 67, 'meet': 66, 'last': 66, 'miss': 66, 'ask': 66, 'babe': 65, 'let': 64, 'prize': 64, 'win': 62, 'keep': 62, 'every': 60, 'morning': 60, 'thanks': 59, 'pick': 59, 'why': 58, 'cos': 58, 'uk': 58, 'anything': 57, 'com': 57, 'find': 57, 'before': 57, 'care': 55, 'buy': 55, 'also': 55, 'first': 55, 'nice': 55, 'sure': 55, 'something': 55, 'sent': 54, '50': 54, '150p': 54, 'off': 54, 'cant': 54, 'nokia': 54, 'urgent': 53, 'over': 53, 'his': 53, 'feel': 53, 'us': 53, 'lol': 53, 'even': 52, 'min': 52, 'would': 52, 'again': 52, 'someone': 52, 'tonight': 52, 'x': 52, 'soon': 52, 'around': 51, 'wait': 51, 'were': 50, 'ya': 50, 'down': 50, '5': 50, 'contact': 49, 'went': 49, 'next': 49, 'dun': 48, 'per': 48, 'which': 47, 'sleep': 47, 'gud': 47, 'could': 47, 'tone': 47, 'many': 47, 'sms': 47, 'service': 46, 'waiting': 46, 'money': 46, 'wan': 46, 'place': 46, 'late': 46, 'always': 46, 'gonna': 46, 'hello': 45, 'told': 45, 'special': 45, 'thing': 45, 'friend': 45, 'co': 44, 'help': 44, 'year': 44, 'customer': 44, 'getting': 44, 'heart': 44, 'chat': 43, 'leave': 43, 'best': 43, '16': 42, 'friends': 42, 'name': 42, 'done': 41, 'haha': 41, 'wish': 41, 'v': 41, 'people': 41, 'same': 40, 'thk': 40, 'yet': 40, 'guaranteed': 40, 'y': 40, 'try': 40, 'may': 40, '18': 40, 'coming': 40, 'fine': 40, 'holiday': 40, 'didn': 39, 'things': 39, 'class': 39, '6': 39, '7': 38, 'bit': 38, 'lunch': 38, 'being': 38, 'meeting': 38, 'god': 38, 'stuff': 37, 'live': 37, 'yup': 37, 'cool': 37, 'thats': 37, 'check': 36, '500': 36, 'wk': 36, 'trying': 36, 'draw': 36, 'long': 36, 'enjoy': 36, 'line': 36, 'mins': 36, 'smile': 36, 'house': 36, 'person': 36, 'never': 35, 'cs': 35, 'ready': 35, 'job': 35, 'talk': 35, '100': 34, 'because': 34, 'ill': 34, 'other': 34, 'dat': 34, 'world': 33, 'end': 33, 'finish': 33, 'use': 33, 'play': 33, 'chance': 33, 'big': 33, 'cost': 33, 'yo': 33, 'having': 33, '1000': 33, 'awarded': 32, 'man': 32, 'thought': 32, 'girl': 32, 'camera': 32, 'word': 32, 'two': 31, 'lar': 31, 'wanna': 31, 'start': 31, 'few': 31, 'latest': 31, '1st': 31, 'sir': 31, 'liao': 30, 'room': 30, 'shit': 30, 'mind': 30, 'real': 30, 'box': 30, 'days': 30, 'better': 30, 'receive': 30, 'ah': 30, '10': 30, 'problem': 29, 'once': 29, 'into': 29, 'baby': 29, 'nothing': 29, 'luv': 29, 'video': 29, 'aight': 29, 'called': 29, 'sweet': 29, 'ever': 29, 'half': 28, 'hear': 28, 'po': 28, 'birthday': 28, 'forgot': 28, 'shows': 28, 'ringtone': 28, 'eat': 28, 'guess': 28, 'car': 28, 'another': 27, 'pa': 27, 'thanx': 27, 'watch': 27, 'left': 27, 'bus': 27, 'might': 27, 'weekend': 27, 'calls': 27, 'working': 27, 'leh': 27, 'tmr': 27, 'fun': 27, 'probably': 26, 'den': 26, 'watching': 26, 'jus': 26, 'guys': 26, 'maybe': 26, 'little': 26, 'quite': 26, 'tv': 26, '8': 26, 'g': 26, 'look': 26, 'lot': 26, 'selected': 26, 'award': 26, 'dis': 26, 'bt': 26, 'does': 26, 'face': 26, 'office': 25, 'reach': 25, 'okay': 25, 'xxx': 25, 'landline': 25, 'school': 25, 'tones': 25, 'network': 25, 'remember': 25, 'part': 25, 'bed': 25, '150ppm': 25, 'asked': 25, 'afternoon': 25, 'rate': 25, 'put': 25, 'kiss': 25, 'offer': 25, 'minutes': 25, '9': 25, 'boy': 25, 'everything': 25, 'shopping': 25, 'till': 24, 'easy': 24, 'actually': 24, 'shall': 24, 'wont': 24, 'dunno': 24, 'apply': 24, 'pay': 24, 'speak': 24, 'til': 24, 'plz': 24, 'texts': 24, 'thank': 24, 'than': 24, 'wife': 24, 'enough': 24, 'between': 24, '000': 23, 'wanted': 23, 'says': 23, 'bad': 23, 'while': 23, 'account': 23, 'yesterday': 23, 'messages': 23, 'princess': 23, 'means': 23, 'anyway': 23, 'sat': 23, 'most': 23, 'month': 23, 'weekly': 22, 'town': 22, 'orange': 22, 'plus': 22, 'abt': 22, 'details': 22, 'pain': 22, 'without': 22, 'code': 22, 'though': 22, 'collect': 22, 'music': 22, 'price': 22, 'join': 22, 'didnt': 22, 'early': 22, 'plan': 22, 'came': 22, 'made': 22, 'dinner': 22, 'since': 22, 'dad': 22, 'hour': 22, 'evening': 21, 'those': 21, 'mail': 21, 'colour': 21, 'wake': 21, 'yours': 21, 'alright': 21, 'collection': 21, 'guy': 21, 'years': 21, 'bored': 21, 'wif': 21, 'entry': 21, 'fuck': 21, 'must': 21, 'hair': 21, 'wen': 21, 'update': 21, '2nd': 20, 'havent': 20, 'o': 20, 'true': 20, 'game': 20, 'away': 20, 'movie': 20, 'valid': 20, 'address': 20, 'sch': 20, '2000': 20, 'food': 20, 'wot': 20, 'hav': 20, 'order': 20, 'gift': 20, 'run': 20, 'question': 20, 'yourself': 20, 'ard': 20, 'these': 19, 'sexy': 19, 'worry': 19, 'missed': 19, 'tot': 19, 'coz': 19, 'online': 19, 'test': 19, '10p': 19, 'haf': 19, 'delivery': 19, 'juz': 19, 'simple': 19, 'mob': 19, 'family': 19, 'important': 19, 'net': 19, 'goin': 19, 'smiling': 19, 'sleeping': 19, 'show': 19, 'de': 19, 'oso': 18, 'trip': 18, 'makes': 18, 'tomo': 18, 'friendship': 18, 'else': 18, 'feeling': 18, 'haven': 18, 'pounds': 18, 'answer': 18, 'able': 18, 'bring': 18, 'missing': 18, 'comes': 18, 'happen': 18, 'forget': 18, 'hot': 18, 'hours': 18, 'full': 18, 'stay': 18, 'book': 18, '8007': 18, 'okie': 18, 'calling': 18, 'nite': 18, 'attempt': 17, 'lets': 17, 'vouchers': 17, 'anyone': 17, 'finished': 17, 'poly': 17, 'hurt': 17, '800': 17, 'either': 17, 'id': 17, 'tried': 17, '5000': 17, 'pm': 17, 'national': 17, 'lei': 17, 'making': 17, 'looking': 17, 'driving': 17, 'saying': 17, 'doesn': 17, 'date': 17, 'set': 17, 'until': 17, 'xmas': 17, 'lots': 17, 'beautiful': 17, 'saw': 16, 'wil': 16, 'whatever': 16, 'top': 16, 'leaving': 16, 'email': 16, 'decimal': 16, 'words': 16, 'congrats': 16, 'wid': 16, 'ring': 16, 'todays': 16, 'both': 16, 'shop': 16, 'dude': 16, 'carlos': 16, 'mean': 16, 'bout': 16, 'xx': 16, 'await': 16, 'sae': 16, 'goes': 16, 'noe': 16, '250': 16, 'awesome': 16, 'available': 16, 'times': 16, 'wants': 16, 'visit': 16, 'row': 16, 'lose': 16, 'brother': 16, 'eve': 16, 'alone': 16, 'post': 16, '750': 16, 'double': 16, 'huh': 16, 'opt': 15, 'anytime': 15, '150': 15, 'chikku': 15, 'touch': 15, 'drive': 15, 'pub': 15, 'change': 15, 'open': 15, 'sis': 15, 'thinking': 15, 'operator': 15, 'believe': 15, 'drop': 15, 'together': 15, 'far': 15, 'saturday': 15, 'story': 15, 'drink': 15, 'services': 15, 'aft': 15, 'mum': 15, 'break': 15, 'tho': 15, 'busy': 15, 'search': 15, 'took': 15, 'hand': 15, 'started': 15, 'each': 14, 'pics': 14, 'everyone': 14, 'bonus': 14, 'gr8': 14, 'info': 14, 'dating': 14, 'head': 14, 'pic': 14, 'taking': 14, 'points': 14, 'games': 14, 'quiz': 14, 'player': 14, 'land': 14, 'wonderful': 14, 'kind': 14, 'hows': 14, 'auction': 14, 'angry': 14, 'snow': 14, '12hrs': 14, 'outside': 14, 'pretty': 14, 'parents': 14, 'cause': 14, 'fucking': 14, 'close': 14, 'knw': 14, 'f': 14, 'frnd': 14, 'neva': 14, 'walk': 14, 'ni8': 13, '86688': 13, 'worth': 13, 'nt': 13, 'boytoy': 13, 'friday': 13, 'gd': 13, 'college': 13, 'second': 13, 'fone': 13, 'company': 13, 'bslvyl': 13, 'charge': 13, 'dreams': 13, 'sunday': 13, 'chennai': 13, '350': 13, 'news': 13, 'winner': 13, 'sounds': 13, 'sea': 13, 'p': 13, 'treat': 13, 'happened': 13, 'frm': 13, 'sister': 13, 'freemsg': 13, 'club': 13, 'mine': 13, 'knew': 13, 'hmmm': 13, 'sad': 13, 'reading': 13, '08000930705': 13, 'minute': 13, 'lesson': 13, 'ten': 13, 'takes': 13, 'fast': 13, 'rite': 13, 'wit': 13, 'unsubscribe': 13, 'wasn': 12, 'decided': 12, 'cut': 12, 'luck': 12, 'fancy': 12, 'whole': 12, 'project': 12, 'type': 12, 'private': 12, 'expires': 12, 'wkly': 12, 'crazy': 12, 'voucher': 12, 'talking': 12, 'w': 12, 'india': 12, 'smoke': 12, 'lovely': 12, 'http': 12, 'nope': 12, 'age': 12, 'weeks': 12, 'used': 12, 'read': 12, 'suite342': 12, '2lands': 12, 'side': 12, 'content': 12, '87066': 12, '11': 12, 'ac': 12, 'ltd': 12, 'loving': 12, 'goodmorning': 12, 'choose': 12, 'gone': 12, 'welcome': 12, 'fri': 12, 'gn': 12, 'camcorder': 12, 'na': 12, 'prob': 12, 'mobileupd8': 12, '08000839402': 12, 'fr': 12, 'phones': 12, 'earlier': 12, 'case': 12, 'hit': 11, 'mu': 11, 'shower': 11, 'hee': 11, 'gym': 11, 'stupid': 11, 'secret': 11, 'listen': 11, 'ass': 11, 'yar': 11, 'savamob': 11, 'mr': 11, 'currently': 11, '0800': 11, 'march': 11, 'hmm': 11, 'asking': 11, 'darlin': 11, 'finally': 11, 'rs': 11, 'almost': 11, 'support': 11, 'ago': 11, 'statement': 11, 'identifier': 11, 'unlimited': 11, 'song': 11, 'mates': 11, 'mah': 11, 'card': 11, 'sun': 11, 'die': 11, 'old': 11, 'telling': 11, 'cum': 11, 'ge': 11, 'mate': 11, 'area': 11, 'tc': 11, 'police': 11, 'tired': 11, 'gotta': 11, 'doin': 11, 'msgs': 11, 'hungry': 11, 'girls': 11, 'ipod': 11, 'frnds': 11, '200': 11, 'invited': 11, 'wrong': 11, 'whats': 11, 'semester': 11, 'least': 11, 'through': 11, 'etc': 11, 'paper': 11, 'mobiles': 11, 'meant': 11, 'rental': 11, 'nyt': 11, 'bcoz': 11, 'loads': 11, 'hard': 11, 'hold': 11, 'pobox': 11, 'feels': 11, 'complimentary': 11, 'uncle': 11, 'bank': 11, 'mayb': 11, 'party': 11, 'sort': 10, 'ringtones': 10, 'lucky': 10, 'ends': 10, 'thinks': 10, 'sending': 10, 'happiness': 10, 'picking': 10, 'near': 10, 'final': 10, 'offers': 10, 'yr': 10, 'balance': 10, 'confirm': 10, 'sex': 10, '12': 10, 'normal': 10, 'download': 10, 'seen': 10, 'england': 10, 'pass': 10, 'sony': 10, 'immediately': 10, 'usf': 10, 'tel': 10, 'numbers': 10, 'mom': 10, 'charged': 10, 'eg': 10, '20': 10, 'valued': 10, 'slow': 10, 'comp': 10, 'across': 10, 'monday': 10, 'slowly': 10, 'jay': 10, 'convey': 10, 'press': 10, 'otherwise': 10, 'store': 10, 'un': 10, '04': 10, 'course': 10, 'b4': 10, 'ans': 10, 'small': 10, 'light': 10, 'swing': 10, 'congratulations': 10, 'clean': 10, 'truth': 10, '30': 10, 'laptop': 10, 'found': 10, 'credit': 10, 'supposed': 10, 'motorola': 10, 'askd': 10, 'ha': 10, 'gave': 10, 'sitting': 9, '03': 9, 'reveal': 9, 'grins': 9, 'film': 9, 'computer': 9, 'heard': 9, 'less': 9, 'questions': 9, 'boss': 9, 'forwarded': 9, 'lost': 9, 'seeing': 9, 'red': 9, 'smth': 9, 'entered': 9, 'doctor': 9, 'flag': 9, 'sunshine': 9, 'darren': 9, 'bathe': 9, 'checking': 9, 'orchard': 9, 'correct': 9, 'plans': 9, 'ntt': 9, 'st': 9, 'met': 9, 'understand': 9, 'bath': 9, 'worried': 9, 'summer': 9, 'park': 9, 'valentine': 9, 'dream': 9, 'spend': 9, 'rakhesh': 9, 'within': 9, 'iam': 9, 'mrng': 9, 'mrt': 9, 'lect': 9, 'needs': 9, 'dnt': 9, 'difficult': 9, 'enter': 9, 'wow': 9, 'rply': 9, 'w1j6hl': 9, 'oredi': 9, 'against': 9, 'wana': 9, 'specially': 9, 'age16': 9, '2003': 9, 'redeemed': 9, 'remove': 9, 'crave': 9, 'muz': 9, 'safe': 9, 'information': 9, 'rest': 9, 'gas': 9, 'christmas': 9, 'std': 9, 'hg': 9, 'txts': 9, 'ts': 9, 'silent': 9, 'lovable': 9, 'whenever': 9, 'custcare': 9, 'surprise': 9, 'sell': 9, 'loved': 9, 'warm': 9, 'reason': 9, 'ldew': 9, 'goodnight': 9, 'felt': 9, 'charity': 9, 'caller': 8, 'possible': 8, 'eyes': 8, 'knows': 8, 'joy': 8, 'oops': 8, 'isn': 8, 'discount': 8, '00': 8, 'starting': 8, 'tuesday': 8, 'wine': 8, 'tonite': 8, 'eh': 8, '900': 8, 'trust': 8, 'starts': 8, 'em': 8, 'deep': 8, 'dvd': 8, 'sp': 8, 'lemme': 8, 'pray': 8, 'hoping': 8, 'seems': 8, 'point': 8, 'cheers': 8, 'noon': 8, 'add': 8, 'blue': 8, 'extra': 8, 'thinkin': 8, 'pizza': 8, 'ugh': 8, 'coffee': 8, 'del': 8, 'voice': 8, 'cheap': 8, 'hiya': 8, 'moment': 8, 'couple': 8, 'rock': 8, 'lover': 8, 'slave': 8, 'via': 8, 'match': 8, 'rates': 8, 'others': 8, 'buying': 8, 'bb': 8, 'callertune': 8, 'yep': 8, '4u': 8, 'vl': 8, 'wonder': 8, 'dead': 8, 'catch': 8, 'water': 8, 'log': 8, 'street': 8, 'thru': 8, 'merry': 8, 'rain': 8, 'loves': 8, 'promise': 8, 'kate': 8, 'comin': 8, 'wednesday': 8, 'ave': 8, 'mo': 8, 'door': 8, 'realy': 8, 'exam': 8, 'lessons': 8, 'hospital': 8, 'blood': 8, '20p': 8, 'mon': 8, 'months': 8, 'write': 8, 'call2optout': 8, 'bill': 8, 'booked': 8, '2nite': 8, 'pete': 8, 'study': 8, 'il': 8, 'spent': 8, 'leaves': 8, 'staying': 8, 'colleagues': 8, 'wishing': 8, 'somebody': 8, '11mths': 8, 'cd': 8, 'own': 8, 'terms': 8, 'children': 8, 'apartment': 8, 'john': 8, 'gal': 8, 'eating': 7, 'single': 7, 'brings': 7, 'wap': 7, 'cine': 7, 'admirer': 7, 'meaning': 7, 'short': 7, 'sofa': 7, 'link': 7, '08718720201': 7, 'completely': 7, 'return': 7, 'reached': 7, 'self': 7, 'gets': 7, 'men': 7, '2day': 7, 'under': 7, 'movies': 7, 'country': 7, '82277': 7, 'disturb': 7, 'during': 7, 'move': 7, 'wondering': 7, 'holla': 7, 'laugh': 7, 'swt': 7, 'happening': 7, 'bid': 7, 'ending': 7, 'matches': 7, 'asap': 7, 'mm': 7, 'abiola': 7, '3030': 7, 'sale': 7, '08712460324': 7, 'deal': 7, 'slept': 7, 'excellent': 7, 'digital': 7, 'usual': 7, 'sub': 7, 'round': 7, 'their': 7, 'ticket': 7, 'list': 7, 'wishes': 7, 'horny': 7, 'trouble': 7, 'doesnt': 7, 'copy': 7, 'ldn': 7, 'shd': 7, 'father': 7, 'power': 7, 'studying': 7, 'polys': 7, 'mood': 7, 'inc': 7, 'cover': 7, 'urself': 7, 'eatin': 7, 'cinema': 7, 'biz': 7, 'especially': 7, 'representative': 7, 'quick': 7, 'none': 7, 'ar': 7, 'moral': 7, 'poor': 7, 'seriously': 7, 'loan': 7, 'pound': 7, 'cell': 7, 'idea': 7, 'yahoo': 7, 'pleasure': 7, 'hurts': 7, 'izzit': 7, 'sight': 7, 'lazy': 7, 'pc': 7, 'insurance': 7, 'umma': 7, 'kinda': 7, 'fixed': 7, 'looks': 7, 'ones': 7, 'facebook': 7, 'j': 7, 'myself': 7, 'sick': 7, 'tuition': 7, 'yijue': 7, 'credits': 7, 'holding': 7, 'training': 7, '62468': 7, 'miracle': 7, '0870': 7, 'hop': 7, 'alrite': 7, 'entitled': 7, 'damn': 7, 'stand': 7, 'energy': 7, '25p': 7, 'mode': 7, 'direct': 7, 'nah': 7, 'getzed': 7, 'woke': 7, 'omw': 7, 'fullonsms': 7, 'txting': 7, 'wiv': 7, '7pm': 7, 'opinion': 7, 'marriage': 7, 'reaching': 7, 'interested': 7, 'rcvd': 7, 'aha': 7, 'bucks': 7, 'menu': 7, 'medical': 7, 'replying': 7, 'unless': 7, 'ive': 7, 'bedroom': 7, 'king': 7, 'fantastic': 7, 'tickets': 7, 'style': 7, 'cake': 7, 'giving': 7, 'valentines': 7, 'cup': 6, '02': 6, 'save': 6, 'moon': 6, 'reference': 6, 'tat': 6, 'tear': 6, 'funny': 6, 'decide': 6, 'somewhere': 6, 'hmv': 6, 'member': 6, 'maximize': 6, 'cc': 6, 'cal': 6, 'sound': 6, 'freephone': 6, 'ish': 6, 'lady': 6, 'howz': 6, 'ice': 6, 'buzz': 6, 'london': 6, 'qatar': 6, 'kerala': 6, 'weekends': 6, 'ex': 6, 'official': 6, 'informed': 6, '2004': 6, 'bx420': 6, 'ip4': 6, '5we': 6, '150pm': 6, 'q': 6, 'planning': 6, 'sometimes': 6, 'bugis': 6, 'wats': 6, 'drugs': 6, 'system': 6, 'envelope': 6, 'unsub': 6, 'mark': 6, 'south': 6, 'sucks': 6, 'planned': 6, 'costa': 6, 'sol': 6, 'sk38xh': 6, 'gay': 6, 'worries': 6, 'hell': 6, 'showing': 6, 'awake': 6, 'cancer': 6, 'tea': 6, '25': 6, 'anymore': 6, 'raining': 6, 'midnight': 6, 'depends': 6, 'nobody': 6, 'texting': 6, 'joined': 6, 'cancel': 6, 'imma': 6, 'bold': 6, 'nimya': 6, 'isnt': 6, 'request': 6, 'space': 6, 'flights': 6, 'spree': 6, 'babes': 6, 'longer': 6, 'fingers': 6, 'nxt': 6, 'internet': 6, 'towards': 6, 'spoke': 6, 'role': 6, 'appreciate': 6, 'cute': 6, 'tough': 6, 'ahmad': 6, 'imagine': 6, 'version': 6, 'girlfrnd': 6, 'aiyo': 6, 'accept': 6, 'logo': 6, 'omg': 6, 'mp3': 6, 'hai': 6, 'pix': 6, 'excuse': 6, 'o2': 6, 'added': 6, 'user': 6, 'instead': 6, 'kept': 6, 'sup': 6, 'cuz': 6, 'shuhui': 6, 'pilates': 6, 'honey': 6, 'itself': 6, 'barely': 6, 'keeping': 6, 'created': 6, 'gap': 6, 'inviting': 6, 'melle': 6, 'vry': 6, 'flower': 6, '08707509020': 6, '1327': 6, 'croydon': 6, 'cr9': 6, '5wb': 6, 'sign': 6, 'track': 6, 'complete': 6, 'mistake': 6, 'lacs': 6, 'asleep': 6, 'la': 6, 'murder': 6, 'tampa': 6, 'bak': 6, 'mid': 6, 'heavy': 6, 'persons': 6, 'frens': 6, 'kids': 6, 'glad': 6, 'comuk': 6, 'bag': 6, 'due': 6, 'registered': 6, 'character': 6, '10am': 6, 'fact': 6, 'yrs': 6, 'using': 6, 'weight': 6, 'behind': 6, 'hunny': 6, 'feb': 6, 'yoga': 6, 'advance': 6, 'naked': 6, 'forward': 6, 'arcade': 6, 'happens': 6, 'nigeria': 6, 'following': 6, 'kano': 6, 'activate': 6, 'definitely': 6, 'road': 6, 'daddy': 6, 'screaming': 6, 'empty': 6, '06': 6, 'share': 6, 'password': 6, 'th': 6, 'al': 6, 'num': 6, 'zed': 6, 'tht': 6, 'tncs': 6, 'tick': 6, 'dint': 5, 'situation': 5, 'tt': 5, 'yogasana': 5, 'gives': 5, 'mother': 5, 'law': 5, 'listening': 5, 'sense': 5, 'armand': 5, 'aiyah': 5, 'station': 5, '85023': 5, 'pobox84': 5, 'app': 5, 'waste': 5, 'joking': 5, '2mrw': 5, 'usually': 5, 'uni': 5, 'optout': 5, 'fault': 5, 'ho': 5, 'unable': 5, 'thursday': 5, 'theatre': 5, 'group': 5, 'sura': 5, 'battery': 5, 'april': 5, 'totally': 5, 'awaiting': 5, 'begin': 5, 'travel': 5, 'vary': 5, 'oz': 5, 'vote': 5, 'library': 5, 'greet': 5, 'cry': 5, 'rose': 5, 'hun': 5, 'surely': 5, 'sighs': 5, 'current': 5, 'kick': 5, 'bought': 5, 'past': 5, 'original': 5, 'vodafone': 5, 'expensive': 5, 'works': 5, 'aren': 5, '09050090044': 5, 'toclaim': 5, 'pobox334': 5, 'stockport': 5, 'max10mins': 5, 'process': 5, 'walking': 5, 'team': 5, '87077': 5, 'nvm': 5, 'sen': 5, 'posted': 5, 'waking': 5, 'cold': 5, 'exciting': 5, 'sipix': 5, '28': 5, 'l8r': 5, 'drug': 5, 'smiles': 5, 'loyalty': 5, 'become': 5, 'xy': 5, 'meh': 5, 'marry': 5, 'problems': 5, '21': 5, 'er': 5, 'rent': 5, 'plenty': 5, 'hl': 5, 'died': 5, 'running': 5, 'mad': 5, 'announcement': 5, 'city': 5, 'sport': 5, 'players': 5, 'bye': 5, 'willing': 5, 'ad': 5, 'lonely': 5, 'respond': 5, 'fyi': 5, 'atm': 5, 'strong': 5, 'hands': 5, 'indian': 5, 'lift': 5, 'roommate': 5, 'wun': 5, 'stock': 5, 'campus': 5, 'meds': 5, 'txtauction': 5, 'turns': 5, 'dog': 5, 'pictures': 5, 'forever': 5, 'pobox36504w45wq': 5, 'sim': 5, 'high': 5, '2optout': 5, '50p': 5, 'holder': 5, 'allah': 5, 'arrive': 5, 'ppl': 5, 'cbe': 5, 'serious': 5, 'joke': 5, 'ignore': 5, 'hook': 5, 'weak': 5, 'loverboy': 5, 'ttyl': 5, '530': 5, 'future': 5, 'weather': 5, 'model': 5, 'pin': 5, '40gb': 5, 'cartoon': 5, 'liked': 5, 'issues': 5, 'boo': 5, 'interesting': 5, 'bluetooth': 5, 'arrange': 5, 'social': 5, 'wnt': 5, 'somethin': 5, 'basically': 5, 'google': 5, 'hotel': 5, 'checked': 5, 'fall': 5, 'exactly': 5, 'jst': 5, 'yan': 5, 'jiu': 5, 'alex': 5, 'hurry': 5, 'selling': 5, '4th': 5, 'italian': 5, 'no1': 5, 'intro': 5, '434': 5, 'nw': 5, 'login': 5, 'fantasies': 5, 'local': 5, 'tyler': 5, 'spl': 5, 'stylish': 5, 'regards': 5, 'air': 5, 'directly': 5, 'cds': 5, 'present': 5, 'five': 5, 'daily': 5, 'dogging': 5, 'married': 5, 'gettin': 5, 'revealed': 5, 'kb': 5, 'changed': 5, 'pissed': 5, 'choice': 5, 'shouldn': 5, 'living': 5, 'anybody': 5, 'asks': 5, '80488': 5, 'jazz': 5, 'cabin': 5, 'fetch': 5, 'conditions': 5, 'lookin': 5, 'prabha': 5, 'page': 5, 'vikky': 5, 'goto': 5, 'inside': 5, '3510i': 5, '300': 5, 'black': 5, 'mite': 5, 'sed': 5, 'brand': 5, 'murdered': 5, 'maid': 5, 'murderer': 5, 'brilliant': 5, 'yun': 5, 'review': 5, '87239': 4, 'rush': 4, 'receiving': 4, 'suite': 4, 'wah': 4, 'recd': 4, 'cust': 4, 'results': 4, 'woman': 4, 'total': 4, '60p': 4, 'diet': 4, 'whether': 4, 'term': 4, 'w1': 4, 'l': 4, 'receipt': 4, 'jordan': 4, 'series': 4, 'white': 4, 'takin': 4, 'jen': 4, 'answers': 4, 'ladies': 4, 'yer': 4, '84199': 4, 'eng': 4, 'box39822': 4, 'w111wx': 4, 'settled': 4, 'cud': 4, 'twice': 4, 'technical': 4, 'lives': 4, 'charges': 4, '3g': 4, 'videophones': 4, 'videochat': 4, 'java': 4, 'dload': 4, 'noline': 4, 'rentl': 4, 'ansr': 4, 'tyrone': 4, 'considering': 4, 'cleaning': 4, 'whom': 4, 'bahamas': 4, 'upset': 4, 'assume': 4, 'access': 4, 'befor': 4, 'wear': 4, 'dates': 4, 'wed': 4, 'infernal': 4, 'ate': 4, 'unsold': 4, 'relax': 4, 'songs': 4, 'stopped': 4, 'paid': 4, 'fill': 4, 'common': 4, 'hols': 4, 'med': 4, 'singles': 4, 'village': 4, 'gals': 4, 'cheaper': 4, 'moan': 4, 'purchase': 4, 'reward': 4, 'derek': 4, 'smokes': 4, 'moms': 4, 'cha': 4, 'nights': 4, 'pple': 4, 'giv': 4, 'paying': 4, 'teasing': 4, '08712300220': 4, 'standard': 4, 'comedy': 4, 'h': 4, 'looked': 4, 'vomit': 4, 'church': 4, 'turn': 4, 'fantasy': 4, 'bitch': 4, 'unique': 4, 'bother': 4, 'thts': 4, 'birds': 4, 'pleased': 4, 'february': 4, 'fifteen': 4, 'moby': 4, 'bringing': 4, 'seem': 4, 'callers': 4, 'quit': 4, 'hr': 4, 'oni': 4, 'fighting': 4, 'some1': 4, 'child': 4, 'din': 4, '88039': 4, 'skilgme': 4, 'themob': 4, 'selection': 4, 'partner': 4, '1000s': 4, 'putting': 4, 'beer': 4, 'horrible': 4, 'bf': 4, 'passed': 4, 'pg': 4, 'blackberry': 4, 'experience': 4, 'playing': 4, 'simply': 4, 'malaria': 4, '9am': 4, 'site': 4, 'quality': 4, 'cafe': 4, '4get': 4, 'purpose': 4, 'tenants': 4, 'refused': 4, 'scared': 4, 'exams': 4, 'yest': 4, 'throat': 4, 'cream': 4, '08718727870': 4, 'urgnt': 4, 'becoz': 4, 'broke': 4, 'argument': 4, 'wins': 4, 'lecture': 4, '86021': 4, 'remain': 4, 'ta': 4, 'throw': 4, 'skype': 4, 'ref': 4, '6hrs': 4, 'however': 4, 'centre': 4, 'childish': 4, '3mins': 4, 'train': 4, 'gm': 4, 'queen': 4, 'sec': 4, 'learn': 4, 'buns': 4, '3gbp': 4, 'handset': 4, 'note': 4, 'waitin': 4, 'advice': 4, 'figure': 4, 'hopefully': 4, 'ride': 4, 'naughty': 4, 'fills': 4, 'gaps': 4, 'pod': 4, 'textpod': 4, '08712405020': 4, 'kallis': 4, '440': 4, 'oru': 4, 'green': 4, 'quote': 4, 'except': 4, 'returns': 4, 'addicted': 4, 'thnk': 4, 'jess': 4, 'hip': 4, 'bin': 4, 'bishan': 4, 'wrc': 4, 'rally': 4, 'lucozade': 4, 'june': 4, '3rd': 4, 'recently': 4, 'jamster': 4, 'dictionary': 4, 'gently': 4, 'linerental': 4, 'cars': 4, 'hv': 4, 'searching': 4, 'ran': 4, 'title': 4, 'sore': 4, 'chinese': 4, 'meal': 4, 'acc': 4, 'thurs': 4, 'dropped': 4, 'sha': 4, 'sam': 4, 'freefone': 4, 'idiot': 4, 'iz': 4, 'lab': 4, 'hw': 4, 'coins': 4, 'body': 4, 'legal': 4, '2moro': 4, 'alert': 4, 'notice': 4, 'freak': 4, 'indians': 4, 'passionate': 4, '36504': 4, 'w45wq': 4, 'norm150p': 4, 'contract': 4, 'pages': 4, 'xxxx': 4, 'gravity': 4, 'carefully': 4, 'yetunde': 4, 'january': 4, 'ended': 4, 'ibiza': 4, 'purity': 4, 'evng': 4, 'different': 4, 'result': 4, 'rooms': 4, 'activities': 4, 'costs': 4, 'romantic': 4, 'paris': 4, 'gee': 4, 'received': 4, 'respect': 4, 'replied': 4, 'tells': 4, 'boys': 4, 'jada': 4, 'kusruthi': 4, 'matured': 4, 'connection': 4, 'apparently': 4, 'atlanta': 4, 'spoken': 4, 'earth': 4, 'fat': 4, 'faster': 4, 'records': 4, 'boring': 4, 'solve': 4, 'favour': 4, 'celebrate': 4, 'fight': 4, 'website': 4, '8th': 4, 'losing': 4, 'picked': 4, 'december': 4, 'worse': 4, 'three': 4, 'tm': 4, 'settings': 4, 'uncles': 4, 'bowl': 4, '1x150p': 4, 'tariffs': 4, 'aathi': 4, 'regret': 4, 'often': 4, 'closer': 4, 'english': 4, 'nature': 4, 'yuo': 4, 'tihs': 4, 'expecting': 4, 'radio': 4, 'pig': 4, 'ppm': 4, 'tenerife': 4, 'belly': 4, 'tb': 4, 'wanting': 4, 'wkend': 4, 'egg': 4, 'including': 4, 'relation': 4, 'def': 4, 'boston': 4, 'meetin': 4, 'santa': 4, 'torch': 4, 'six': 4, 'tree': 4, 'embarassed': 4, 'arrested': 4, 'ron': 4, 'deliver': 4, 'guide': 4, 'thangam': 4, 'sky': 4, 'shortly': 4, 'lmao': 4, 'com1win150ppmx3age16': 4, 'lik': 4, 'feet': 4, '83600': 4, 'cook': 4, 'temple': 4, 'é': 4, 'teach': 4, 'spook': 4, 'eerie': 4, 'enjoyed': 4, 'grl': 4, 'mumtaz': 4, 'harry': 4, '83355': 4, 'kidz': 4, 'born': 4, 'closed': 4, 'minuts': 4, 'latr': 4, '0871': 3, 'box95qu': 3, 'amazing': 3, 'dirty': 3, 'twelve': 3, '24': 3, 'cheer': 3, 'decision': 3, 'exact': 3, 'erm': 3, 'missin': 3, 'm263uz': 3, 'subs': 3, 'prepare': 3, '114': 3, '14': 3, 'tcr': 3, 'foreign': 3, 'stamps': 3, '88600': 3, '542': 3, '88066': 3, 'prolly': 3, 'machan': 3, 'ym': 3, 'toa': 3, 'payoh': 3, 'opportunity': 3, 'credited': 3, 'dollars': 3, 'american': 3, 'callin': 3, 'gram': 3, 'runs': 3, 'shorter': 3, 'shirt': 3, 'moved': 3, 'networking': 3, 'moji': 3, 'saved': 3, 'polyphonic': 3, 'standing': 3, 'senthil': 3, 'dare': 3, 'pussy': 3, 'elsewhere': 3, 'bathing': 3, 'iq': 3, 'wherever': 3, 'bday': 3, 'cruise': 3, '10k': 3, 'afraid': 3, 'sing': 3, 'along': 3, 'stars': 3, 'karaoke': 3, '15': 3, 'accidentally': 3, '_': 3, 'tease': 3, 'ru': 3, 'snake': 3, 'birla': 3, 'soft': 3, 'ptbo': 3, '2morrow': 3, 'executive': 3, '2u': 3, 'history': 3, 'sh': 3, 'played': 3, 'china': 3, 'drinks': 3, 'flirt': 3, 'mmm': 3, 'yummy': 3, 'behave': 3, 'invite': 3, 'anywhere': 3, 'male': 3, '5p': 3, 'belovd': 3, 'regular': 3, 'mono': 3, 'adult': 3, 'knackered': 3, '08715705022': 3, 'appointment': 3, '09061221066': 3, 'fromm': 3, 'chechi': 3, 'major': 3, 'community': 3, 'anyways': 3, 'display': 3, 'voda': 3, 'quoting': 3, 'caught': 3, 'scream': 3, '0207': 3, 'july': 3, 'captain': 3, 'grand': 3, 'philosophy': 3, 'addie': 3, 'dresser': 3, 'collecting': 3, 'slippers': 3, 'brought': 3, 'names': 3, 'personal': 3, 'click': 3, 'enuff': 3, 'taunton': 3, 'software': 3, 'madam': 3, 'interview': 3, 'further': 3, 'macho': 3, 'budget': 3, 'eye': 3, 'jesus': 3, 'stranger': 3, 'bloke': 3, 'tessy': 3, 'favor': 3, 'shijas': 3, 'august': 3, 'chain': 3, 'confirmed': 3, 'audition': 3, 'season': 3, 'theory': 3, 'texted': 3, 'cam': 3, '82242': 3, 'smart': 3, 'm26': 3, '3uz': 3, 'fees': 3, '87021': 3, 'txtin': 3, '4info': 3, 'str': 3, 'xchat': 3, 'msgrcvdhg': 3, 'lousy': 3, 'frndship': 3, 'threats': 3, 'key': 3, 'tscs087147403231winawk': 3, '50perwksub': 3, 'newest': 3, 'fit': 3, 'tscs': 3, 'skillgame': 3, '1winaweek': 3, '150ppermesssubscription': 3, 'leona': 3, 'ben': 3, 'vodka': 3, 'fool': 3, 'contents': 3, 'maneesha': 3, 'satisfied': 3, 'toll': 3, 'understanding': 3, '0808': 3, '145': 3, '4742': 3, '11pm': 3, '80082': 3, 'research': 3, 'shesil': 3, 'pop': 3, 'morn': 3, 'strike': 3, 'storming': 3, 'phne': 3, 'wt': 3, 'margaret': 3, 'grahmbell': 3, 'invnted': 3, 'telphone': 3, 'yay': 3, 'flaked': 3, 'enemy': 3, '75': 3, 'homeowners': 3, 'previously': 3, '1956669': 3, 'forevr': 3, 'record': 3, 'swimming': 3, 'seven': 3, '81151': 3, '4t': 3, 'hate': 3, 'bright': 3, 'nearly': 3, 'art': 3, 'freezing': 3, 'fml': 3, 'subpoly': 3, '81618': 3, 'kisses': 3, 'escape': 3, 'valuable': 3, 'sum1': 3, 'amount': 3, 'esplanade': 3, 'se': 3, '89545': 3, '087187262701': 3, '50gbp': 3, 'mtmsg18': 3, 'm8': 3, 'tour': 3, '7250i': 3, 'w1jhl': 3, 'maintain': 3, 'include': 3, 'switch': 3, 'follow': 3, 'instructions': 3, 'nap': 3, 'caring': 3, 'whenevr': 3, 'remembered': 3, 'insha': 3, 'smoking': 3, 'vava': 3, 'nat': 3, 'photos': 3, 'chill': 3, 'obviously': 3, 'gorgeous': 3, 'garage': 3, 'ordered': 3, 'bcums': 3, 'affection': 3, 'kettoda': 3, 'manda': 3, 'regarding': 3, 'honeybee': 3, 'sweetest': 3, 'laughed': 3, 'havnt': 3, 'crack': 3, 'jokes': 3, 'spk': 3, 'hon': 3, 'shot': 3, 'truly': 3, 'answering': 3, 'workin': 3, 'meanwhile': 3, 'darling': 3, 'sugar': 3, 'death': 3, 'university': 3, 'scary': 3, 'cann': 3, 'ma': 3, 'hahaha': 3, 'brain': 3, 'luxury': 3, 'islands': 3, 'lines': 3, 'idk': 3, 'flash': 3, '80182': 3, '08452810073': 3, '84128': 3, 'bloody': 3, 'spanish': 3, 'rd': 3, 'minnaminunginte': 3, 'nurungu': 3, 'vettam': 3, 'ummmmmaah': 3, 'teacher': 3, 'ain': 3, '05': 3, 'random': 3, 'reality': 3, 'roger': 3, 'k52': 3, 'jason': 3, 'knowing': 3, 'wtf': 3, 'tomarrow': 3, 'le': 3, 'schedule': 3, 'seemed': 3, 'voicemail': 3, 'shame': 3, 'wallpaper': 3, 'alive': 3, '31': 3, 'clear': 3, 'dubsack': 3, 'screen': 3, 'pink': 3, 'sn': 3, 'bmw': 3, 'urgently': 3, 'shortage': 3, 'source': 3, 'arng': 3, 'amt': 3, 'inches': 3, 'dry': 3, 'titles': 3, 'failed': 3, 'ne': 3, 'slap': 3, 'morphine': 3, 'minmobsmorelkpobox177hp51fl': 3, 'askin': 3, 'force': 3, 'fuckin': 3, 'messenger': 3, 'preferably': 3, 'skip': 3, 'blah': 3, 'liverpool': 3, 'sooner': 3, '09061209465': 3, 'suprman': 3, 'matrix3': 3, 'starwars3': 3, 'various': 3, 'locations': 3, 'ph': 3, 'gary': 3, 'requests': 3, 'btw': 3, 'easier': 3, 'dress': 3, 'normally': 3, 'connect': 3, 'biggest': 3, 'shut': 3, 'four': 3, 'subscriber': 3, 'delivered': 3, 'jan': 3, 'returned': 3, 'period': 3, 'sk3': 3, '8wp': 3, 'sachin': 3, '87121': 3, 'concert': 3, 'jane': 3, 'wrk': 3, 'di': 3, 'sonyericsson': 3, 'inclusive': 3, '3qxj9': 3, '08702840625': 3, '9ae': 3, 'loss': 3, 'blake': 3, '6months': 3, 'chillin': 3, 'parked': 3, 'popped': 3, 'welp': 3, 'speed': 3, 'affairs': 3, 'everybody': 3, 'fren': 3, 'subscription': 3, 'package': 3, 'building': 3, 'milk': 3, 'walmart': 3, 'supply': 3, 'havin': 3, 'okey': 3, 'onwards': 3, 'ahead': 3, 'distance': 3, 'step': 3, 'bless': 3, 'yor': 3, 'laid': 3, 'ec2a': 3, 'tape': 3, 'weird': 3, 'bein': 3, 'ure': 3, 'salary': 3, 'basic': 3, 'finishing': 3, '08002986906': 3, 'floor': 3, 'fix': 3, 'postcode': 3, 'hrs': 3, 'ikea': 3, 'textcomp': 3, 'roads': 3, 'monthly': 3, 'stomach': 3, 'couldn': 3, '33': 3, 'bud': 3, '0': 3, 'chatting': 3, 'terrible': 3, 'reasons': 3, 'booty': 3, 'handle': 3, 'bloo': 3, 'straight': 3, 'outstanding': 3, 'goal': 3, 'arsenal': 3, 'pongal': 3, 'lie': 3, 'buzy': 3, '9pm': 3, '2stoptxt': 3, 'onto': 3, 'urawinner': 3, 'walls': 3, 'cross': 3, '08001950382': 3, 'finishes': 3, 'apologise': 3, 'wonders': 3, '7th': 3, '6th': 3, '5th': 3, 'personality': 3, '80062': 3, 'doggy': 3, '125gift': 3, 'laughing': 3, 'winning': 3, 'nan': 3, 'matter': 3, 'constantly': 3, 'outta': 3, 'vijay': 3, 'careful': 3, 'wet': 3, 'quickly': 3, 'mths': 3, 'abi': 3, 'sit': 3, '87575': 3, '07xxxxxxxxx': 3, '09066362231': 3, 'box97n7qp': 3, 'soryda': 3, 'sory': 3, 'ringtoneking': 3, 'rather': 3, 'netcollex': 3, 'thanksgiving': 3, '400': 3, 'tis': 3, 'taken': 3, 'nyc': 3, 'discuss': 3, 'aiya': 3, 'anythin': 3, 'map': 3, 'sheets': 3, '4mths': 3, 'mobilesdirect': 3, '08000938767': 3, 'or2stoptxt': 3, 'responding': 3, 'sometime': 3, 'bags': 3, 'lead': 3, 'surfing': 3, 'alfie': 3, 'm8s': 3, 'nokias': 3, '08701417012': 3, 'profit': 3, 'report': 3, 'touched': 3, 'raji': 3, 'deliveredtomorrow': 3, 'boat': 3, 'warner': 3, 'perfect': 3, 'maga': 3, 'given': 3, 'possession': 3, 'incident': 3, 'remains': 3, 'bro': 3, 'members': 3, 'symbol': 3, 'aint': 3, 'doc': 3, 'aah': 3, 'aiyar': 3, 'dem': 3, 'challenge': 3, 'explain': 3, 'mas': 3, 'realized': 3, 'upto': 3, 'sports': 3, '26': 3, 'kadeem': 3, 'hasn': 3, 'wylie': 3, 'bigger': 3, 'pouts': 3, 'stomps': 3, 'url': 3, 'ache': 3, 'xavier': 3, 'flat': 3, 'questioned': 3, 'cooking': 3, 'gardener': 3, 'vegetables': 3, 'neighbour': 3, 'accident': 3, 'competition': 3, 'among': 3, 'rem': 3, 'downloads': 3, 'boye': 3, '2morow': 3, 'intelligent': 3, 'jealous': 3, 'aunty': 3, 'pack': 3, 'husband': 3, 'likes': 3, 'dislikes': 3, 'cannot': 3, 'promises': 3, 'sunny': 3, 'weed': 3, 'crab': 3, 'cleared': 3, 'footprints': 3, 'lifetime': 3, 'gbp': 3, 'eggs': 3, 'yeh': 3, 'euro2004': 3, 'euro': 3, 'mtmsgrcvd18': 3, 'miles': 3, 'fish': 3, 'chosen': 3, 'sept': 3, 'contacted': 3, 'dot': 3, 'boost': 3, 'sry': 3, '84025': 3, 'cat': 3, 'ages': 3, 'ubi': 3, 'mini': 3, 'handed': 3, 'pending': 3, 'dsn': 3, 'cramps': 3, 'held': 2, 'eta': 2, 'sathya': 2, 'chart': 2, '09': 2, '872': 2, 'lk': 2, 'collected': 2, 'dough': 2, 'control': 2, '09065174042': 2, '07821230901': 2, 'letters': 2, 'lies': 2, 'edge': 2, 'window': 2, 'celebration': 2, 'rents': 2, 'greetings': 2, 'epsilon': 2, 'nydc': 2, 'eight': 2, 'poem': 2, 'fear': 2, 'magical': 2, 'telephone': 2, 'guilty': 2, 'paragon': 2, 'genuine': 2, '100percent': 2, 'sheffield': 2, 'raise': 2, 'fever': 2, 'box334sk38ch': 2, 'seconds': 2, 'spare': 2, 'celeb': 2, 'pocketbabe': 2, '0578': 2, 'panic': 2, 'renewal': 2, 'form': 2, 'clark': 2, 'utter': 2, 'medicine': 2, 'bottle': 2, 'aww': 2, 'smashed': 2, 'driver': 2, 'ned': 2, 'bell': 2, 'transaction': 2, 'modules': 2, 'tonights': 2, 'wishin': 2, 'in2': 2, 'appt': 2, 'puttin': 2, 'gautham': 2, 'dey': 2, 'kicks': 2, '786': 2, 'unredeemed': 2, '09061744553': 2, 'polyh': 2, '5pm': 2, 'algarve': 2, 'scrounge': 2, 'low': 2, 'divorce': 2, 'oooh': 2, 'langport': 2, 'auto': 2, '09061702893': 2, 'acl03530150pm': 2, 'callfreefone': 2, '08081560665': 2, '07786200117': 2, 'rocks': 2, '5k': 2, '09064011000': 2, 'cr01327bt': 2, 'fixedline': 2, 'unnecessarily': 2, 'print': 2, 'forms': 2, 'norm': 2, 'tests': 2, 'letter': 2, 'affair': 2, 'grave': 2, 'sux': 2, 'buff': 2, 'topic': 2, 'sweets': 2, 'stayin': 2, 'soo': 2, '08718726270': 2, 'jd': 2, 'accounts': 2, 'gibbs': 2, 'chase': 2, 'fret': 2, '4882': 2, '09064019014': 2, 'anna': 2, 'nagar': 2, 'stamped': 2, '113': 2, 'bray': 2, 'wicklow': 2, 'eire': 2, 'build': 2, 'snowman': 2, 'lido': 2, '09061790121': 2, 'jolt': 2, 'suzy': 2, 'hyde': 2, 'animation': 2, '08709222922': 2, '8p': 2, 'peak': 2, 'bruce': 2, 'bck': 2, 'dan': 2, 'lookatme': 2, 'scotland': 2, '4txt': 2, 'improve': 2, 'fb': 2, 'begging': 2, 'cardiff': 2, 'aka': 2, 'pap': 2, 'recharge': 2, 'business': 2, '700': 2, 'location': 2, 'sells': 2, '4d': 2, 'closes': 2, 'gr8prizes': 2, '80878': 2, 'gossip': 2, 'shitload': 2, 'mel': 2, 'mystery': 2, 'solved': 2, 'sweetie': 2, 'rcv': 2, 'hardcore': 2, 'verify': 2, '3100': 2, 'hsbc': 2, 'upgrade': 2, '153': 2, '26th': 2, 'drunken': 2, '09061221061': 2, '28days': 2, 'box177': 2, 'm221bp': 2, '2yr': 2, 'warranty': 2, '99': 2, 'gf': 2, 'individual': 2, 'penis': 2, 'pie': 2, 'chest': 2, 'infections': 2, 'bone': 2, 'foley': 2, 'prizes': 2, '82050': 2, 'christ': 2, 'dave': 2, 'sorted': 2, 'gona': 2, 'natural': 2, 'reverse': 2, 'cheating': 2, 'mathematics': 2, 'lovers': 2, 'whn': 2, 'elaine': 2, 'ela': 2, 'jiayin': 2, 'hlp': 2, '08712317606': 2, 'msg150p': 2, '2rcv': 2, 'practice': 2, 'anthony': 2, 'module': 2, 'nok': 2, '0776xxxxxxx': 2, '18yrs': 2, 'confuses': 2, 'plaza': 2, 'sales': 2, 'complaint': 2, 'furniture': 2, 'admit': 2, 'correction': 2, 'fightng': 2, 'dificult': 2, 'wkg': 2, 'mmmmm': 2, 'sooooo': 2, 'mmmm': 2, 'lion': 2, 'devouring': 2, '0871277810810': 2, 'premier': 2, 'funky': 2, 'idew': 2, 'sar': 2, '41685': 2, '07': 2, 'teeth': 2, 'painful': 2, 'blind': 2, 'hide': 2, 'wiskey': 2, 'brandy': 2, 'rum': 2, 'gin': 2, 'scotch': 2, 'shampain': 2, 'kudi': 2, 'yarasu': 2, 'dhina': 2, 'vaazhthukkal': 2, 'field': 2, 'bruv': 2, 'rewarding': 2, 'geeeee': 2, 'range': 2, 'properly': 2, 'beauty': 2, 'yelling': 2, 'drinkin': 2, 'polo': 2, '373': 2, 'w1j': 2, '6hl': 2, 'fly': 2, 'prey': 2, 'plm': 2, 'east': 2, 'coast': 2, 'prove': 2, '09063458130': 2, 'polyph': 2, 'fringe': 2, 'noun': 2, 'silently': 2, 'drms': 2, 'register': 2, 'licks': 2, 'center': 2, 'railway': 2, 'cock': 2, 'reminding': 2, 'owns': 2, 'british': 2, 'hotels': 2, 'dial': 2, 'sw73ss': 2, 'hamster': 2, 'japanese': 2, 'proverb': 2, 'constant': 2, 'rstm': 2, 'sw7': 2, '3ss': 2, 'drivin': 2, 'dear1': 2, 'best1': 2, 'clos1': 2, 'lvblefrnd': 2, 'jstfrnd': 2, 'cutefrnd': 2, 'lifpartnr': 2, 'swtheart': 2, 'bstfrnd': 2, 'lib': 2, 'loud': 2, '09058094599': 2, 'rofl': 2, 'hppnss': 2, 'sorrow': 2, 'goodfriend': 2, 'eaten': 2, 'staring': 2, 'juicy': 2, 'ruining': 2, 'tap': 2, 'spile': 2, 'broad': 2, 'canal': 2, '07734396839': 2, 'ibh': 2, 'nokia6600': 2, 'iscoming': 2, 'pole': 2, 'absolutly': 2, 'name1': 2, 'name2': 2, 'mobno': 2, 'adam': 2, '07123456789': 2, 'txtno': 2, 'ads': 2, 'main': 2, 'pours': 2, 'nahi': 2, 'zindgi': 2, 'wo': 2, 'jo': 2, 'ham': 2, 'duchess': 2, 'cornwall': 2, '008704050406': 2, 'ke': 2, 'loses': 2, 'argue': 2, 'wan2': 2, 'westlife': 2, 'unbreakable': 2, 'untamed': 2, 'unkempt': 2, '83049': 2, 'tee': 2, 'randy': 2, 'remind': 2, 'jas': 2, 'shock': 2, 'smith': 2, 'select': 2, 'tissco': 2, 'tayseer': 2, 'mb': 2, 'cappuccino': 2, 'claims': 2, 'joanna': 2, 'impossible': 2, 'shoes': 2, 'membership': 2, 'serving': 2, 'hug': 2, 'kappa': 2, 'scores': 2, 'schools': 2, 'kothi': 2, 'effect': 2, '3650': 2, '09066382422': 2, '300603': 2, 'bcm4284': 2, 'wc1n3xx': 2, 'sentence': 2, 'concentrate': 2, 'career': 2, 'goodo': 2, 'hrishi': 2, 'sleepin': 2, 'hill': 2, 'bk': 2, 'royal': 2, 'wedding': 2, 'genius': 2, 'clothes': 2, 'trips': 2, 'arm': 2, 'blow': 2, 'fire': 2, 'suntec': 2, 'adore': 2, 'slice': 2, '4eva': 2, 'sweetheart': 2, 'lions': 2, 'lionm': 2, 'lionp': 2, 'stores': 2, 'depressed': 2, 'ryan': 2, 'suggest': 2, 'stays': 2, 'wee': 2, 'canary': 2, 'printed': 2, 'forum': 2, 'gpu': 2, 'hurting': 2, 'compromised': 2, 'mornin': 2, 'heads': 2, 'freedom': 2, 'responsibility': 2, 'recognise': 2, 'confused': 2, 'signing': 2, 'odi': 2, 'traffic': 2, 'moves': 2, 'slip': 2, '3d': 2, 'natalja': 2, 'nat27081980': 2, 'jerry': 2, 'irritates': 2, 'fails': 2, 'express': 2, 'teaches': 2, 'conducts': 2, 'tirupur': 2, 'channel': 2, 'msging': 2, 'proof': 2, 'allow': 2, 'tms': 2, 'widelive': 2, 'index': 2, 'wml': 2, 'peace': 2, 'bird': 2, 'grow': 2, 'usb': 2, 'kg': 2, 'weigh': 2, 'revision': 2, 'gent': 2, '09064012160': 2, '08002986030': 2, 'flirting': 2, '61200': 2, 'packs': 2, 'itcould': 2, 'soiree': 2, 'pen': 2, 'masters': 2, '88888': 2, 'women': 2, '40533': 2, 'sarcastic': 2, 'ola': 2, 'bids': 2, 'shipping': 2, 'wud': 2, '1hr': 2, 'kay': 2, 'dearly': 2, 'goodnoon': 2, 'parking': 2, 'galileo': 2, 'dobby': 2, 'msn': 2, '300p': 2, 'belive': 2, 'misbehaved': 2, 'blur': 2, 'l8tr': 2, 'prefer': 2, 'dorm': 2, 'lucy': 2, 'science': 2, '4a': 2, 'hes': 2, '2p': 2, 'germany': 2, '12mths': 2, 'falling': 2, 'smeone': 2, 'soul': 2, 'flame': 2, 'cancelled': 2, 'cheat': 2, 'kegger': 2, '08006344447': 2, 'remembr': 2, 'yellow': 2, 'bluff': 2, 'cared': 2, 'tons': 2, 'expect': 2, 'headin': 2, 'annie': 2, 'tears': 2, 'poop': 2, 'kent': 2, 'vale': 2, 'flight': 2, '21870000': 2, 'mailbox': 2, 'messaging': 2, '09056242159': 2, 'retrieve': 2, 'youre': 2, 'turning': 2, 'successful': 2, 'prospects': 2, 'enjoyin': 2, 'woken': 2, 'property': 2, 'capital': 2, 'jobs': 2, 'postcard': 2, 'brief': 2, 'nit': 2, '165': 2, '2geva': 2, 'walked': 2, 'fran': 2, 'bhaji': 2, 'cricketer': 2, 'kaiez': 2, 'option': 2, 'understood': 2, 'acted': 2, 'removal': 2, '08708034412': 2, 'gentleman': 2, 'dignity': 2, 'eurodisinc': 2, 'trav': 2, 'aco': 2, 'entry41': 2, 'morefrmmob': 2, 'shracomorsglsuplt': 2, 'ls1': 2, '3aj': 2, '5min': 2, 'opening': 2, 'swatch': 2, 'jogging': 2, 'lst': 2, '600': 2, 'impatient': 2, 'wasted': 2, 'bet': 2, 'speechless': 2, 'easily': 2, 'chocolate': 2, 'melt': 2, 'sunlight': 2, 'spell': 2, 'n9dx': 2, 'engin': 2, 'lyfu': 2, 'lyf': 2, 'ali': 2, 'program': 2, 'meow': 2, 'os': 2, 'files': 2, 'desparate': 2, 'appreciated': 2, 'lovejen': 2, 'although': 2, 'fucked': 2, 'gain': 2, 'resume': 2, 'soup': 2, 'buffet': 2, 'onion': 2, 'roast': 2, '54': 2, 'combine': 2, 'coin': 2, 'settle': 2, 'admin': 2, 'slightly': 2, 'hostel': 2, 'loose': 2, 'sake': 2, 'clock': 2, 'reasonable': 2, 'smsco': 2, 'approx': 2, 'loveme': 2, 'xxxxx': 2, 'slots': 2, 'taxi': 2, 'ing': 2, 'journey': 2, 'dhoni': 2, 'dressed': 2, 'whose': 2, 'kills': 2, 'mei': 2, 'shld': 2, 'rich': 2, 'uh': 2, 'payment': 2, 'caroline': 2, 'favourite': 2, 'babies': 2, 'borin': 2, 'premium': 2, 'ny': 2, 'films': 2, 'reaction': 2, 'uks': 2, 'fastest': 2, 'growing': 2, 'largest': 2, '3lp': 2, 'thoughts': 2, 'breath': 2, 'named': 2, 'craziest': 2, 'singing': 2, 'chicken': 2, 'curry': 2, 'evn': 2, 'evr': 2, 'salon': 2, 'usc': 2, 'secretary': 2, 'blessing': 2, 'indeed': 2, 'max': 2, 'u4': 2, 'beg': 2, 'shy': 2, 'greatest': 2, 'courage': 2, 'bear': 2, 'defeat': 2, 'siva': 2, '1030': 2, 'tmrw': 2, 'doors': 2, 'posts': 2, 'juan': 2, 'heading': 2, 'cutting': 2, 'reg': 2, 'exeter': 2, 'patty': 2, 'temp': 2, 'likely': 2, '2morro': 2, 'windows': 2, 'jenny': 2, 'places': 2, 'hospitals': 2, 'slp': 2, 'muah': 2, 'reminder': 2, 'inform': 2, 'neither': 2, 'hugs': 2, 'snogs': 2, 'potential': 2, 'talent': 2, 'distract': 2, 'difference': 2, 'mails': 2, '69698': 2, 'funk': 2, 'tones2u': 2, 'darlings': 2, 'transfered': 2, 'mk45': 2, '2wt': 2, 'explicit': 2, 'secs': 2, '02073162414': 2, 'bc': 2, 'abj': 2, 'textbuddy': 2, 'gaytextbuddy': 2, '89693': 2, 'ques': 2, 'suits': 2, '88877': 2, 'swiss': 2, 'crore': 2, 'banks': 2, 'delhi': 2, 'lane': 2, 'citizen': 2, 'politicians': 2, 'rights': 2, 'lou': 2, 'neway': 2, 'catching': 2, '65': 2, 'ability': 2, 'taste': 2, 'holy': 2, '08000776320': 2, '08': 2, 'dance': 2, 'island': 2, 'album': 2, 'becomes': 2, 'habit': 2, 'feelin': 2, 'biola': 2, 'oil': 2, 'fave': 2, 'position': 2, 'apps': 2, 'vegas': 2, 'oranges': 2, 'upd8': 2, 'airport': 2, 'lounge': 2, 'booking': 2, 'henry': 2, 'loans': 2, 'hardly': 2, 'tom': 2, '08712402050': 2, '10ppm': 2, 'ag': 2, 'promo': 2, 'consider': 2, 'networks': 2, 'issue': 2, 'breathe': 2, 'lov': 2, 'mistakes': 2, 'hearts': 2, 'cares': 2, 'ntwk': 2, 'generally': 2, '09050003091': 2, 'c52': 2, 'exhausted': 2, 'cuddle': 2, '08717898035': 2, 'taylor': 2, 'blu': 2, 'coat': 2, 'dokey': 2, 'sorting': 2, 'dining': 2, 'value': 2, 'faith': 2, 'subs16': 2, '1win150ppmx3': 2, 'fab': 2, 'bar': 2, 'konw': 2, 'waht': 2, 'rael': 2, 'gving': 2, 'exmpel': 2, 'jsut': 2, 'ese': 2, 'evrey': 2, 'splleing': 2, 'wrnog': 2, 'sitll': 2, 'raed': 2, 'wihtuot': 2, 'ayn': 2, 'mitsake': 2, 'fav': 2, 'easter': 2, 'nothin': 2, 'kavalan': 2, 'rice': 2, 'tok': 2, 'photo': 2, 'upload': 2, 'tooo': 2, 'minimum': 2, 'recovery': 2, 'visionsms': 2, 'broken': 2, 'wise': 2, 'abta': 2, 'environment': 2, 'terrific': 2, 'hm': 2, 'headache': 2, 'peaceful': 2, 'web': 2, '2stop': 2, 'filled': 2, 'math': 2, 'treated': 2, 'wks': 2, 'bleh': 2, 'spoiled': 2, 'california': 2, 'practicing': 2, 'invaders': 2, 'orig': 2, 'console': 2, '09066350750': 2, 'thx': 2, 'comfort': 2, 'dollar': 2, 'tcs': 2, 'cw25wx': 2, 'filling': 2, 'decisions': 2, 'arts': 2, '89555': 2, 'textoperator': 2, 'action': 2, '80608': 2, 'movietrivia': 2, '08712405022': 2, 'football': 2, 'coping': 2, 'helloooo': 2, 'welcomes': 2, 'subscribed': 2, 'callback': 2, 'housewives': 2, '0871750': 2, '77': 2, 'landlines': 2, 'released': 2, 'mila': 2, 'age23': 2, 'blonde': 2, 'mtalk': 2, '69866': 2, '30pp': 2, '5free': 2, 'increments': 2, 'help08718728876': 2, 'previous': 2, 'favorite': 2, 'mess': 2, 'wipro': 2, '07781482378': 2, 'ebay': 2, 'pickle': 2, 'gentle': 2, 'protect': 2, 'sib': 2, 'sensitive': 2, 'passwords': 2, 'potato': 2, 'needed': 2, 'valid12hrs': 2, 'realise': 2, 'actor': 2, 'unemployed': 2, 'vivek': 2, 'cherish': 2, 'mojibiola': 2, 'purse': 2, 'shore': 2, 'female': 2, '08700621170150p': 2, 'wld': 2, 'tank': 2, 'prem': 2, 'nos': 2, 'beware': 2, 'literally': 2, 'bedrm': 2, 'agree': 2, 'ipad': 2, 'mesages': 2, '6pm': 2, 'transfer': 2, 'shelf': 2, 'jolly': 2, 'ideas': 2, 'clever': 2, 'mix': 2, 'ofice': 2, 'cn': 2, 'petrol': 2, 'nd': 2, 'hor': 2, 'apart': 2, 'dr': 2, 'ee': 2, 'urn': 2, 'front': 2, 'cld': 2, 'salam': 2, 'sharing': 2, 'inshah': 2, 'rang': 2, 'ear': 2, 'si': 2, 'oreo': 2, 'truffles': 2, 'foot': 2, 'dippeditinadew': 2, 'lovingly': 2, 'itwhichturnedinto': 2, 'gifted': 2, 'tomeandsaid': 2, 'toughest': 2, 'acting': 2, 'zoe': 2, 'painting': 2, 'kiosk': 2, 'piss': 2, 'hockey': 2, 'everyday': 2, 'chances': 2, 'csh11': 2, '6days': 2, 'tsandcs': 2, 'mmmmmm': 2, 'funeral': 2, 'shining': 2, 'otside': 2, 'wearing': 2, 'loxahatchee': 2, 'burning': 2, 'skyped': 2, 'kz': 2, 'ultimatum': 2, 'countin': 2, 'aburo': 2, 'fathima': 2, 'creep': 2, 'custom': 2, 'rub': 2, 'clearing': 2, 'sacrifice': 2, 'audrey': 2, 'status': 2, 'mis': 2, 'dealer': 2, 'amongst': 2, 'bros': 2, 'moving': 2, 'falls': 2, 'granite': 2, 'explosive': 2, 'nasdaq': 2, 'cdgt': 2, 'woot': 2, 'watever': 2, '09058091854': 2, 'box385': 2, 'm6': 2, '6wu': 2, 'lush': 2, 'drinking': 2, 'shouted': 2, 'sumthin': 2, '2waxsto': 2, 'quiet': 2, 'academic': 2, 'chasing': 2, 'dearer': 2, 'dick': 2, 'fake': 2, 'color': 2, 'ding': 2, 'gist': 2, 'mega': 2, '08712101358': 2, 'xuhui': 2, '8am': 2, 'legs': 2, 'neck': 2, 'killing': 2, 'fell': 2, 'gender': 2, 'bread': 2, 'forgiven': 2, 'poker': 2, 'pouch': 2, 'buses': 2, 'stress': 2, 'iouri': 2, 'student': 2, 'violence': 2, 'super': 2, 'burns': 2, 'tech': 2, '2005': 2, 'hella': 2, 'chip': 2, 'attend': 2, 'surprised': 2, 'borrow': 2, 'score': 2, '21st': 2, 'indicate': 2, 'ls15hb': 2, 'allowed': 2, 'arms': 2, 'repeat': 2, 'gotten': 2, 'carry': 2, 'priscilla': 2, 'necklace': 2, 'attached': 2, 'gold': 2, 'logos': 2, 'mall': 2, 'halloween': 2, '08701417012150p': 2, '61610': 2, '08712400602450p': 2, 'provided': 2, 'tones2you': 2, 'several': 2, 'figures': 2, 'innocent': 2, 'certainly': 2, '30ish': 2, 'desperate': 2, '08002888812': 2, 'sum': 2, 'birth': 2, 'ranjith': 2, 'deciding': 2, 'musthu': 2, 'disturbing': 2, 'forgets': 2, 'minmoremobsemspobox45po139wa': 2, 'wisdom': 2, 'billed': 2, 'shipped': 2, 'followed': 2, 'lays': 2, 'hallaq': 2, 'sue': 2, 'mahal': 2, 'prof': 2, 'papers': 2, 'sem': 2, 'goldviking': 2, '29': 2, '762': 2, 'parco': 2, 'nb': 2, 'opinions': 2, 'unknown': 2, 'rays': 2, 'bay': 2, 'agalla': 2, 'interflora': 2, 'hundred': 2, 'waves': 2, 'keeps': 2, 'tlp': 2, 'tiwary': 2, 'moments': 2, 'ic': 2, 'lux': 2, 'frog': 2, 'shahjahan': 2, 'potter': 2, 'phoenix': 2, 'readers': 2, 'txt82228': 2, 'pride': 2, 'kid': 2, 'twenty': 2, 'mummy': 2, 'timing': 2, 'forgotten': 2, 'kickoff': 2, '83222': 2, 'whos': 2, 'ths': 2, 'thot': 2, 'mca': 2, 'geeee': 2, 'scold': 2, 'rude': 2, '8552': 2, 'ibhltd': 2, 'ldnw15h': 2, 'trains': 2, 'warning': 2, 'whr': 2, 'charles': 2, 'lip': 2, 'mac': 2, '83383': 2, 'rule': 2, 'essential': 2, 'disconnect': 2, 'terrorist': 2, 'itz': 2, 'confirmd': 2, 'verified': 2, 'cnn': 2, 'ibn': 2, 'middle': 2, 'lo': 2, '09066364311': 2, 'pieces': 2, 'silver': 2, 'avatar': 2, 'fa': 2, 'tkts': 2, 'saucy': 2, 'electricity': 2, 'keys': 2, 'advise': 2, 'recent': 2, '1500': 2, 'pushes': 2, 'stone': 2, 'convinced': 2, 'shared': 2, 'garden': 2, 'bulbs': 2, 'seeds': 2, 'scotsman': 2, 'go2': 2, 'notxt': 2, 'mt': 2, 'kindly': 2, 'rgds': 2, 'administrator': 2, 'tight': 2, 'claire': 2, 'ground': 2, 'eek': 2, 'contacts': 2, 'mostly': 2, 'lyk': 2, 'ashley': 2, '89070': 2, 'vomiting': 2, 'spider': 2, 'calicut': 2, 'inch': 2, 'garbage': 2, 'upstairs': 2, 'racing': 2, 'vewy': 2, 'detroit': 2, 'bootydelious': 2, 'sptv': 2, 'public': 2, 'govt': 2, 'instituitions': 2, 'west': 2, 'james': 2, 'cochin': 2, 'accordingly': 2, 'excuses': 2, 'steam': 2, 'flaky': 2, 'parent': 2, 'error': 2, 'pence': 2, '85': 2, 'oi': 2, 'forums': 2, 'eastenders': 2, 'compare': 2, 'herself': 2, 'violet': 2, 'tulip': 2, 'lily': 2, 'wkent': 2, '150p16': 2, '09066612661': 2, 'speedchat': 2, 'cashto': 2, '08000407165': 2, 'getstop': 2, '88222': 2, 'php': 2, 'table': 2, 'tooth': 2, 'gimme': 2, '910': 2, 'spring': 2, 'woulda': 2, 'language': 2, 'yck': 2, 'avent': 2, 'tacos': 2, '7ish': 2, 'staff': 2, 'placement': 2, 'dedicated': 2, 'dedicate': 2, 'costing': 2, 'shoppin': 2, 'xam': 2, 'manage': 2, 'success': 2, 'cme': 2, 'tog': 2, 'adoring': 2, 'maturity': 2, 'pee': 2, '220': 2, 'cm2': 2, 'tirunelvali': 2, 'roommates': 2, 'rumour': 2, '08719181513': 2, '2marrow': 2, 'spending': 2, 'somtimes': 2, 'donate': 2, 'heater': 2, 'dracula': 2, 'ghost': 2, 'addamsfa': 2, 'munsters': 2, 'exorcist': 2, 'twilight': 2, 'wn': 2, 'bite': 2, 'miserable': 2, 'evry': 2, 'dark': 2, 'measure': 2, 'denis': 2, 'sian': 2, 'ericsson': 2, 'cashbin': 2, 'mag': 2, 'mnth': 2, '4fil': 2, 'stick': 2, 'jsco': 2, 'knock': 2, 'lotr': 2, '2006': 1, 'fifa': 1, 'nachos': 1, 'guoyang': 1, 'heroes': 1, 'tips': 1, '07808726822': 1, '9758': 1, 'rearrange': 1, 'dormitory': 1, 'astronomer': 1, 'starer': 1, 'election': 1, 'recount': 1, 'hitler': 1, 'eleven': 1, '09090900040': 1, 'extreme': 1, 'privacy': 1, 'sic': 1, '7mp': 1, '0870753331018': 1, 'flew': 1, 'loooooool': 1, 'couch': 1, 'wheellock': 1, 'sorts': 1, 'simpler': 1, 'intentions': 1, 'woodland': 1, 'avenue': 1, 'parish': 1, 'magazine': 1, 'sarcasm': 1, 'scarcasim': 1, 'wherre': 1, 'nanny': 1, 'pleasured': 1, 'alternative': 1, 'suffering': 1, 'dysentry': 1, 'accenture': 1, '09064012103': 1, '087016248': 1, 'atten': 1, 'crickiting': 1, 'fujitsu': 1, 'lifebook': 1, 'arr': 1, 'oscar': 1, 'sunoco': 1, 'howard': 1, 'fring': 1, 'ystrday': 1, 'amused': 1, 'linear': 1, 'algebra': 1, 'reboot': 1, 'dent': 1, 'hero': 1, 'apt': 1, 'conacted': 1, '09111030116': 1, 'pobox12n146tf15': 1, 'fredericksburg': 1, 'telugu': 1, '09061701851': 1, 'k61': 1, '12hours': 1, 'pocy': 1, 'neft': 1, 'beneficiary': 1, 'ninish': 1, 'icky': 1, 'freek': 1, 'eighth': 1, 'smarter': 1, 'smaller': 1, 'capacity': 1, 'bothering': 1, 'gaze': 1, 'tiring': 1, 'concentrating': 1, 'someplace': 1, 'associate': 1, '69669': 1, 'gprs': 1, 'bhaskar': 1, 'swhrt': 1, '07742676969': 1, '08719180248': 1, '45239': 1, 'ful': 1, 'lyrics': 1, 'rebooting': 1, 'apnt': 1, 'stretch': 1, 'testing': 1, 'satanic': 1, 'imposter': 1, 'destiny': 1, 'ammo': 1, 'ak': 1, 'gep': 1, 'apples': 1, 'pairs': 1, 'malarky': 1, 'va': 1, '09050000460': 1, 'j89': 1, 'box245c2150pm': 1, 'ridden': 1, 'ey': 1, 'gnarls': 1, 'barkleys': 1, 'denying': 1, 'macha': 1, 'mindset': 1, '448712404000': 1, '08712404000': 1, 'dhanush': 1, 'superior': 1, 'general': 1, 'hostile': 1, 'outs': 1, 'consent': 1, 'snowboarding': 1, 'deleted': 1, 'resend': 1, 'shirts': 1, 'nudist': 1, 'themed': 1, 'barbie': 1, 'ken': 1, 'walkabout': 1, 'raiden': 1, 'sindu': 1, 'host': 1, 'based': 1, 'idps': 1, 'linux': 1, 'systems': 1, 'crucial': 1, 'spoons': 1, 'stressfull': 1, 'adds': 1, 'lindsay': 1, 'bars': 1, 'heron': 1, 'rugby': 1, 'leading': 1, '151': 1, 'pause': 1, 'coco': 1, 'slices': 1, 'ryder': 1, 'stated': 1, 'ovulate': 1, '3wks': 1, 'textin': 1, 'yavnt': 1, 'mus': 1, 'symptoms': 1, 'beloved': 1, 'talks': 1, 'ow': 1, '60': 1, '400thousad': 1, 'asia': 1, 'angels': 1, 'snowball': 1, 'fights': 1, 'watchin': 1, 'supose': 1, 'babysit': 1, 'summers': 1, 'matched': 1, 'help08714742804': 1, 'wesley': 1, 'afterwards': 1, 'westshore': 1, 'african': 1, 'soil': 1, 'spjanuary': 1, 'abstract': 1, 'z': 1, 'fowler': 1, 'stu': 1, 'truble': 1, 'evone': 1, 'hates': 1, 'av': 1, 'clip': 1, '35p': 1, 'mmsto': 1, '32323': 1, 'chk': 1, 'ms': 1, 'dict': 1, 'macedonia': 1, 'goals': 1, 'wales': 1, 'ú1': 1, 'poboxox36504w45wq': 1, 'lakhs': 1, 'multimedia': 1, 'receivea': 1, '09061701461': 1, 'kl341': 1, 'jjc': 1, 'tendencies': 1, 'netflix': 1, 'gosh': 1, 'spose': 1, 'exe': 1, 'arrived': 1, 'radiator': 1, 'wisheds': 1, 'checkup': 1, 'smear': 1, 'boltblue': 1, 'poly3': 1, 'slide': 1, 'jamz': 1, 'toxic': 1, 'amk': 1, 'unni': 1, 'lark': 1, '09058094454': 1, 'breakfast': 1, 'hamper': 1, '8800': 1, 'psp': 1, 'leo': 1, 'juswoke': 1, 'boatin': 1, 'docks': 1, 'spinout': 1, 'diamonds': 1, 'cutest': 1, 'attention': 1, 'roles': 1, 'outreach': 1, 'steve': 1, 'opened': 1, 'batch': 1, 'someonone': 1, '09064015307': 1, 'svc': 1, '69988': 1, 'internal': 1, 'extract': 1, '1225': 1, '50award': 1, 'upgrdcentre': 1, '9153': 1, '930': 1, 'vijaykanth': 1, 'prix': 1, 'slob': 1, 'hanks': 1, 'lotsly': 1, 'gong': 1, 'kaypoh': 1, 'returning': 1, '08718730555': 1, 'league': 1, 'lists': 1, 'awkward': 1, '15pm': 1, 'antibiotic': 1, 'abdomen': 1, 'gynae': 1, 'birthdate': 1, 'certificate': 1, 'publish': 1, 'cmon': 1, 'sticky': 1, 'replies': 1, 'rp176781': 1, 'regalportfolio': 1, '08717205546': 1, '2getha': 1, '30th': 1, 'areyouunique': 1, 'ip': 1, 'minecraft': 1, 'server': 1, 'humans': 1, 'becz': 1, 'undrstndng': 1, 'avoids': 1, 'suffer': 1, 'onum': 1, 'cartons': 1, 'shelves': 1, 'hustle': 1, 'forth': 1, 'harlem': 1, 'showered': 1, 'ything': 1, 'w8in': 1, '4utxt': 1, '85222': 1, 'winnersclub': 1, '84': 1, 'gbp1': 1, 'cultures': 1, 'maangalyam': 1, 'alaipayuthe': 1, 'audrie': 1, 'autocorrect': 1, 'nalla': 1, 'adi': 1, 'entey': 1, 'nattil': 1, 'kittum': 1, 'shifad': 1, 'raised': 1, 'str8': 1, 'classic': 1, '200p': 1, 'pity': 1, 'suggestions': 1, 'lock': 1, 'locks': 1, 'jenne': 1, 'ay': 1, 'apologize': 1, 'apologetic': 1, 'fallen': 1, 'actin': 1, 'spoilt': 1, 'badly': 1, 'vomitin': 1, '420': 1, 'promotion': 1, '8714714': 1, '82468': 1, 'teams': 1, '62220cncl': 1, 'stopcs': 1, '08717890890': 1, 'ummifying': 1, 'ouch': 1, 'stayed': 1, 'alter': 1, 'intrepid': 1, 'duo': 1, 'tau': 1, 'piah': 1, '07808': 1, 'xxxxxx': 1, '08719899217': 1, 'maintaining': 1, 'rodds1': 1, 'aberdeen': 1, 'united': 1, 'kingdom': 1, 'img': 1, 'icmb3cktz8r7': 1, 'ignoring': 1, 'prashanthettan': 1, 'cthen': 1, 'conclusion': 1, 'references': 1, 'completing': 1, 'smoked': 1, 'freaky': 1, 'interfued': 1, 'sozi': 1, 'culdnt': 1, 'talkbut': 1, 'wannatell': 1, 'wenwecan': 1, 'dang': 1, 'pimples': 1, 'scrappy': 1, 'wrkin': 1, 'dancin': 1, 'wright': 1, 'bani': 1, 'stripes': 1, 'skirt': 1, 'lay': 1, 'bimbo': 1, 'ugo': 1, 'trek': 1, 'simulate': 1, 'readiness': 1, 'surrender': 1, 'toot': 1, 'continued': 1, 'president': 1, 'plural': 1, 'recharged': 1, 'tootsie': 1, 'warned': 1, 'sprint': 1, 'pathaya': 1, 'enketa': 1, 'maraikara': 1, 'sink': 1, 'paces': 1, 'cage': 1, 'surrounded': 1, 'cuck': 1, 'andros': 1, 'bx526': 1, 'profile': 1, 'bpo': 1, '1pm': 1, 'praveesh': 1, 'delicious': 1, '80086': 1, 'txttowin': 1, 'call09050000327': 1, 'crossing': 1, 'deny': 1, 'lunchtime': 1, 'organise': 1, 'mylife': 1, 'rushing': 1, 'hourish': 1, 'opener': 1, 'swollen': 1, 'glands': 1, 'arithmetic': 1, 'percentages': 1, 'level': 1, 'cheesy': 1, 'frosty': 1, 'starve': 1, 'annoying': 1, 'canteen': 1, 'jez': 1, 'todo': 1, 'workand': 1, 'whilltake': 1, 'prestige': 1, 'dice': 1, 'craving': 1, 'whatsup': 1, '087018728737': 1, 'toppoly': 1, 'tune': 1, 'wating': 1, 'officially': 1, 'philosophical': 1, 'hole': 1, 'bridge': 1, 'lager': 1, 'real1': 1, 'pushbutton': 1, 'dontcha': 1, 'babygoodbye': 1, 'golddigger': 1, 'webeburnin': 1, 'situations': 1, 'loosing': 1, 'performed': 1, 'soooo': 1, 'provider': 1, 'tming': 1, 'converted': 1, 'sources': 1, 'unhappiness': 1, 'lim': 1, 'waqt': 1, 'pehle': 1, 'naseeb': 1, 'zyada': 1, 'kisi': 1, 'ko': 1, 'kuch': 1, 'milta': 1, 'hum': 1, 'sochte': 1, 'jeetey': 1, 'arrow': 1, 'qi': 1, 'suddenly': 1, 'reunion': 1, 'printing': 1, 'handing': 1, 'miwa': 1, 'cheery': 1, 'buffy': 1, 'satisfy': 1, 'qlynnbv': 1, 'help08700621170150p': 1, 'mcfly': 1, 'ab': 1, 'sara': 1, 'jorge': 1, 'sao': 1, 'jog': 1, 'brainy': 1, 'benefits': 1, 'trained': 1, 'advisors': 1, 'dialling': 1, '402': 1, 'wtlp': 1, 'posh': 1, 'chaps': 1, 'trial': 1, 'prods': 1, 'champneys': 1, 'dob': 1, 'brainless': 1, 'doll': 1, 'vehicle': 1, 'sariyag': 1, 'madoke': 1, 'barolla': 1, 'merely': 1, 'relationship': 1, 'wherevr': 1, 'gudnyt': 1, 'onam': 1, 'sirji': 1, 'tata': 1, 'aig': 1, 'sip': 1, '09050005321': 1, 'k718': 1, '09065069120': 1, 'prin': 1, 'buz': 1, 'wedlunch': 1, 'outsomewhere': 1, 'adrink': 1, '2watershd': 1, 'fromwrk': 1, 'bthere': 1, 'petexxx': 1, 'hypertension': 1, 'dine': 1, 'opposed': 1, 'twinks': 1, 'bears': 1, 'scallies': 1, 'skins': 1, 'jocks': 1, '08712466669': 1, 'mokka': 1, 'rajini': 1, 'byatch': 1, 'whassup': 1, 'convenience': 1, 'nordstrom': 1, 'blank': 1, 'freaking': 1, 'myspace': 1, 'logged': 1, 'monkey': 1, 'asshole': 1, 'changes': 1, 'appendix': 1, 'jp': 1, 'mofo': 1, 'unfortunately': 1, 'arent': 1, 'cakes': 1, 'werethe': 1, 'monkeespeople': 1, 'monkeyaround': 1, 'howdy': 1, 'howu': 1, 'foundurself': 1, 'jobyet': 1, 'sausage': 1, 'exhaust': 1, 'replacing': 1, 'nowadays': 1, 'showrooms': 1, 'shaping': 1, 'mailed': 1, 'varma': 1, 'virtual': 1, 'sophas': 1, 'secondary': 1, 'application': 1, 'applying': 1, 'ogunrinde': 1, 'marandratha': 1, 'irritation': 1, 'juliana': 1, 'andrews': 1, 'physics': 1, 'educational': 1, 'honeymoon': 1, 'outfit': 1, 'praps': 1, 'fuuuuck': 1, 'worc': 1, 'foregate': 1, 'shrub': 1, 'spun': 1, 'wrld': 1, 'nytho': 1, 'tx': 1, 'fonin': 1, '2mwen': 1, 'frmcloud': 1, 'jewelry': 1, 'incredible': 1, 'o2fwd': 1, '18p': 1, 'lit': 1, 'knocking': 1, 'steamboat': 1, 'meatballs': 1, 'everyones': 1, 'babysitting': 1, 'forced': 1, 'astrology': 1, 'overtime': 1, 'nigpun': 1, 'prakesh': 1, 'teju': 1, 'twins': 1, 'plum': 1, 'smacks': 1, 'barred': 1, 'twat': 1, 'dungerees': 1, 'decking': 1, 'punch': 1, 'robs': 1, 'avenge': 1, 'forfeit': 1, 'florida': 1, 'sittin': 1, 'wind': 1, 'drops': 1, 'iron': 1, 'asa': 1, 'aaooooright': 1, 'ors': 1, 'stool': 1, '09061213237': 1, '177': 1, 'm227xy': 1, 'chickened': 1, 'messaged': 1, 'woould': 1, '08718726978': 1, 'dismay': 1, 'olol': 1, 'replacement': 1, 'meaningful': 1, 'butting': 1, 'vs': 1, 'equally': 1, 'uneventful': 1, 'pesky': 1, 'cyclists': 1, 'ericson': 1, 'der': 1, 'luks': 1, 'modl': 1, 'gek1510': 1, 'topped': 1, 'bubbletext': 1, 'tgxxrz': 1, 'adding': 1, 'zeros': 1, 'savings': 1, 'surname': 1, 'clue': 1, 'begins': 1, 'accidant': 1, 'tookplace': 1, 'ghodbandar': 1, 'slovely': 1, 'hdd': 1, 'casing': 1, 'shrek': 1, 'diddy': 1, 'neighbor': 1, 'toothpaste': 1, 'beerage': 1, 'strict': 1, 'guessin': 1, 'losers': 1, 'truro': 1, 'ext': 1, 'dependents': 1, '1b6a5ecef91ff9': 1, '37819': 1, 'true18': 1, '0430': 1, 'jul': 1, 'ditto': 1, 'neighbors': 1, 'adventuring': 1, 'antelope': 1, 'toplay': 1, 'fieldof': 1, 'selfindependence': 1, 'contention': 1, 'supports': 1, 'srt': 1, 'ps3': 1, 'jod': 1, 'keris': 1, 'smidgin': 1, 'alian': 1, 'erutupalam': 1, 'thandiyachu': 1, 'elaborating': 1, 'safety': 1, 'aspects': 1, 'nearer': 1, 'paperwork': 1, 'nervous': 1, 'fired': 1, 'misundrstud': 1, 'teaching': 1, 'court': 1, '07090298926': 1, '9307622': 1, 'sickness': 1, 'mathews': 1, 'tait': 1, 'edwards': 1, 'anderson': 1, 'tagged': 1, 'count': 1, 'panren': 1, 'paru': 1, '08719181503': 1, 'beyond': 1, 'biro': 1, 'friendships': 1, 'probs': 1, 'doinat': 1, 'blame': 1, 'sabarish': 1, '08701213186': 1, 'browsin': 1, 'compulsory': 1, '08715203694': 1, 'pose': 1, 'comb': 1, 'dryer': 1, 'sometext': 1, 'lf56': 1, 'partnership': 1, 'invest': 1, 'reliant': 1, 'dub': 1, 'je': 1, 'inspection': 1, 'nursery': 1, 'kotees': 1, 'tscs08714740323': 1, '1winawk': 1, '50perweeksub': 1, 'collapsed': 1, 'ortxt': 1, 'practising': 1, 'curtsey': 1, 'hen': 1, 'stash': 1, 'hotmail': 1, 'mobs': 1, 'breathe1': 1, 'crazyin': 1, 'sleepingwith': 1, 'finest': 1, 'ymca': 1, 'pobox365o4w45wq': 1, 'youi': 1, 'wknd': 1, 'wahala': 1, 'sd': 1, 'butt': 1, 'investigate': 1, 'submitting': 1, 'gail': 1, 'yaxxx': 1, 'crashing': 1, 'univ': 1, 'western': 1, 'cr': 1, 'millers': 1, 'maps': 1, 'hubby': 1, 'meetins': 1, 'cumin': 1, '09099726395': 1, 'computational': 1, 'push': 1, 'onbus': 1, '2go': 1, 'donyt': 1, 'latelyxxx': 1, '08448350055': 1, 'planettalkinstant': 1, 'update_now': 1, '400mins': 1, 'j5q': 1, 'shoul': 1, 'pleasant': 1, 'statements': 1, 'hugging': 1, 'spark': 1, 'rawring': 1, 'xoxo': 1, 'pre': 1, 'sacked': 1, 'eachother': 1, 'notified': 1, 'marketing': 1, '84122': 1, '08450542832': 1, 'drunk': 1, 'girlie': 1, 'ambrith': 1, 'madurai': 1, 'arun': 1, 'dha': 1, 'marrge': 1, 'misscall': 1, 'frndz': 1, '6missed': 1, 'necesity': 1, 'witout': 1, 'colleg': 1, 'wth': 1, 'functions': 1, 'events': 1, 'espe': 1, 'irritated': 1, '4wrd': 1, 'wthout': 1, 'takecare': 1, 'okies': 1, 'paypal': 1, 'voila': 1, 'pockets': 1, 'necessarily': 1, 'treasure': 1, 'uncomfortable': 1, 'mids': 1, 'ffffffffff': 1, 'dialogue': 1, 'reltnship': 1, 'wipe': 1, 'jokin': 1, 'accommodation': 1, 'global': 1, 'phb1': 1, '08700435505150p': 1, 'significant': 1, 'sdryb8i': 1, 'split': 1, 'ceri': 1, 'rebel': 1, 'dreamz': 1, 'buddy': 1, 'blokes': 1, '1stchoice': 1, '08707808226': 1, '40': 1, 'cc100p': 1, 'que': 1, 'pases': 1, 'buen': 1, 'tiempo': 1, 'mirror': 1, 'treadmill': 1, 'craigslist': 1, 'commit': 1, 'panties': 1, 'asus': 1, 'randomly': 1, 'reformat': 1, 'sall': 1, 'hehe': 1, 'shexy': 1, 'maths': 1, 'chapter': 1, '121': 1, '09094646899': 1, 'vu': 1, 'bcm1896wc1n3xx': 1, '08715205273': 1, '447801259231': 1, '09058094597': 1, 'photoshop': 1, 'bognor': 1, 'splendid': 1, '32000': 1, 'legitimat': 1, 'efreefone': 1, 'positions': 1, 'kama': 1, 'sutra': 1, 'gonnamissu': 1, 'buttheres': 1, 'aboutas': 1, 'merememberin': 1, 'asthere': 1, 'ofsi': 1, 'breakin': 1, 'yaxx': 1, 'covers': 1, 'trends': 1, 'pros': 1, 'cons': 1, 'description': 1, 'nuclear': 1, 'fusion': 1, 'iter': 1, 'jet': 1, 'exp': 1, '30apr': 1, 'natalie': 1, 'natalie2k9': 1, 'sometme': 1, 'mint': 1, 'supplies': 1, 'sleepwell': 1, '09066649731from': 1, 'grinule': 1, 'janx': 1, 'dads': 1, 'attended': 1, '08708800282': 1, 'pierre': 1, 'cardin': 1, 'wallet': 1, '79': 1, '08704439680ts': 1, 'beta': 1, 'upon': 1, 'opposite': 1, 'ffffuuuuuuu': 1, '1172': 1, 'resizing': 1, 'hanging': 1, 'randomlly': 1, 'waliking': 1, '087147123779am': 1, '116': 1, 'billy': 1, 'foned': 1, 'chuck': 1, 'providing': 1, 'assistance': 1, 'landmark': 1, 'bob': 1, 'barry': 1, '83738': 1, 'hme': 1, 'jackpot': 1, '81010': 1, 'dbuk': 1, 'lccltd': 1, '4403ldnw1a7rw18': 1, '4qf2': 1, 'belligerent': 1, 'stalking': 1, 'dual': 1, 'temales': 1, 'esaplanade': 1, 'applebees': 1, 'gotto': 1, '220cm2': 1, 'hides': 1, 'thousands': 1, 'secrets': 1, 'n8': 1, 'finance': 1, 'skye': 1, 'management': 1, 'aids': 1, 'patent': 1, 'piggy': 1, 'goigng': 1, 'perfume': 1, 'lengths': 1, 'behalf': 1, 'stunning': 1, 'reserves': 1, 'flirtparty': 1, 'replys150': 1, 'newspapers': 1, 'nannys': 1, 'errors': 1, 'difficulties': 1, 'yalru': 1, 'astne': 1, 'innu': 1, 'mundhe': 1, 'halla': 1, 'bilo': 1, 'edhae': 1, 'ovr': 1, 'vargu': 1, 'printer': 1, 'groovy': 1, 'groovying': 1, 'ubandu': 1, 'installing': 1, 'disk': 1, 'repair': 1, '08714712412': 1, 'dept': 1, '13': 1, '08717507382': 1, 'owl': 1, 'unconvinced': 1, 'elaborate': 1, 'willpower': 1, 'recorded': 1, 'desires': 1, 'liver': 1, 'managed': 1, 'sunroof': 1, 'contribute': 1, 'greatly': 1, 'refund': 1, 'fudge': 1, 'oreos': 1, '07008009200': 1, 'responce': 1, 'happend': 1, 'retired': 1, 'justthought': 1, 'sayhey': 1, 'endof': 1, 'offdam': 1, 'nevamind': 1, '2hook': 1, 'uwant': 1, 'apo': 1, 'eventually': 1, 'tolerance': 1, 'hits': 1, 'survey': 1, 'dai': 1, 'misplaced': 1, 'mcat': 1, 'msgrcvd': 1, 'customercare': 1, 'deduct': 1, 'jurong': 1, 'amore': 1, 'rebtel': 1, 'firefox': 1, 'lower': 1, 'performance': 1, 'calculated': 1, 'resubmit': 1, 'expiry': 1, 'parts': 1, 'kalainar': 1, 'thenampet': 1, 'choices': 1, 'toss': 1, 'gudni8': 1, 'lingo': 1, '146tf150p': 1, 'magic': 1, 'veggie': 1, 'tallahassee': 1, 'coveragd': 1, 'vasai': 1, 'rows': 1, 'answerin': 1, 'sleepy': 1, 'soz': 1, 'imat': 1, 'mums': 1, 'virgin': 1, '09061104283': 1, '50pm': 1, 'dammit': 1, 'tex': 1, 'mecause': 1, 'werebored': 1, 'okden': 1, 'uin': 1, 'likeyour': 1, 'gr8fun': 1, 'updat': 1, 'countinlots': 1, 'yupz': 1, 'jide': 1, 'visiting': 1, 'ree': 1, 'anyplaces': 1, '1mega': 1, 'pixels': 1, '3optical': 1, '5digital': 1, 'dooms': 1, 'beside': 1, 'doke': 1, 'laying': 1, 'completed': 1, 'spreadsheet': 1, 'determine': 1, 'entire': 1, 'hunting': 1, 'referin': 1, 'sts': 1, 'jade': 1, 'paul': 1, 'barmed': 1, 'minor': 1, 'shindig': 1, 'wondarfull': 1, 'foward': 1, 'ruin': 1, 'authorise': 1, 'younger': 1, 'ba': 1, 'dao': 1, 'crap': 1, 'boggy': 1, 'biatch': 1, 'soc': 1, 'dusk': 1, 'puzzles': 1, 'nose': 1, 'essay': 1, 'enufcredeit': 1, 'tocall': 1, 'ileave': 1, '88800': 1, '89034': 1, '08718711108': 1, '89105': 1, 'tablets': 1, '83021': 1, 'wamma': 1, 'doggin': 1, 'dogs': 1, '69696': 1, 'grocers': 1, 'attraction': 1, 'sorrows': 1, 'proove': 1, 'planet': 1, 'praises': 1, 'makiing': 1, 'sambar': 1, 'woah': 1, 'realising': 1, '3pound': 1, 'rajitha': 1, 'raj': 1, 'ranju': 1, 'baaaaaaaabe': 1, 'yourjob': 1, 'llspeak': 1, 'soonlots': 1, 'delay': 1, 'expired': 1, 'monoc': 1, 'monos': 1, 'polyc': 1, 'stream': 1, '0871212025016': 1, 'olowoyey': 1, 'edu': 1, 'argentina': 1, 'props': 1, 'awww': 1, 'obey': 1, 'rgent': 1, '1250': 1, '09071512433': 1, '050703': 1, 'csbcm4235wc1n3xx': 1, 'callcost': 1, 'mobilesvary': 1, '08714712379': 1, 'beach': 1, 'expected': 1, 'fifty': 1, 'knickers': 1, '01223585236': 1, 'nikiyu4': 1, 'nic': 1, 'checkin': 1, '09058091870': 1, 'apology': 1, 'gimmi': 1, 'goss': 1, 'approve': 1, 'panalam': 1, 'reache': 1, 'auntie': 1, 'huai': 1, 'lavender': 1, 'alibi': 1, 'purchases': 1, 'lodging': 1, 'pract': 1, 'flung': 1, 'voted': 1, 'laready': 1, 'fifth': 1, 'woozles': 1, 'weasels': 1, 'haul': 1, 'unmits': 1, 'squeezed': 1, 'scraped': 1, 'barrel': 1, 'misfits': 1, 'passion': 1, '09099726481': 1, 'dena': 1, 'hui': 1, 'xin': 1, 'thinkthis': 1, 'dangerous': 1, 'everywhere': 1, 'dirt': 1, 'mouth': 1, 'flowing': 1, 'chores': 1, 'exist': 1, 'hail': 1, 'mist': 1, '08718738034': 1, 'raviyog': 1, 'peripherals': 1, 'bhayandar': 1, 'cruisin': 1, '1million': 1, 'ppt150x3': 1, 'box403': 1, 'w1t1jy': 1, '08718723815': 1, 'receipts': 1, 'hmph': 1, 'baller': 1, 'theyre': 1, '08712402902': 1, 'splash': 1, 'priya': 1, 'beads': 1, 'signal': 1, 'unusual': 1, 'derp': 1, 'abusers': 1, 'isaiah': 1, 'onluy': 1, 'matters': 1, 'offcampus': 1, 'versus': 1, 'tomorro': 1, 'spys': 1, 'presents': 1, 'nicky': 1, 'laughs': 1, '08719899230': 1, 'avalarr': 1, 'hollalater': 1, 'club4mobiles': 1, '87070': 1, 'club4': 1, 'box1146': 1, 'star': 1, '09066364349': 1, 'box434sk38wp150ppm18': 1, '09095350301': 1, 'erotic': 1, 'ecstacy': 1, 'aunt': 1, 'flow': 1, 'developed': 1, 'ovarian': 1, 'cysts': 1, 'shrink': 1, 'quarter': 1, '09064018838': 1, 'cro1327': 1, '08715500022': 1, 'rpl': 1, 'cnl': 1, 'spontaneously': 1, 'goodevening': 1, 'initiate': 1, 'directors': 1, 'lac': 1, 'deposited': 1, 'taxless': 1, 'suply': 1, 'projects': 1, 'imf': 1, 'blocked': 1, 'corrupt': 1, 'itna': 1, 'karo': 1, 'ki': 1, 'pura': 1, 'padhe': 1, 'trauma': 1, 'swear': 1, 'lancaster': 1, 'feathery': 1, 'bowa': 1, 'smell': 1, 'tobacco': 1, 'mental': 1, 'weren': 1, 'kidding': 1, 'rayman': 1, 'golf': 1, 'activ8': 1, 'termsapply': 1, 'noice': 1, 'possibility': 1, 'thanks2': 1, 'taxt': 1, 'massage': 1, 'tie': 1, 'pos': 1, 'argh': 1, 'lool': 1, 'idc': 1, 'weaseling': 1, 'phone750': 1, 'zac': 1, 'faggy': 1, '09065171142': 1, 'stopsms': 1, 'shaking': 1, 'victoria': 1, 'rejected': 1, 'hopeso': 1, 'amnow': 1, 'ithink': 1, 'tonsolitusaswell': 1, 'layin': 1, 'bedreal': 1, 'lotsof': 1, 'fne': 1, 'massages': 1, '07815296484': 1, '08718738001': 1, '41782': 1, '83370': 1, 'trivia': 1, 'thanku': 1, 'ashwini': 1, '2stoptx': 1, 'missy': 1, 'passes': 1, '08704439680': 1, 'hiding': 1, 'commercial': 1, 'hasbro': 1, 'jump': 1, 'hoops': 1, 'yards': 1, 'bergkamp': 1, 'margin': 1, '78': 1, 'placed': 1, 'checkmate': 1, 'chess': 1, 'persian': 1, 'phrase': 1, 'shah': 1, 'maat': 1, 'risk': 1, 'pdate_now': 1, 'yhl': 1, 'lovin': 1, 'tnc': 1, 'com1win150ppmx3age16subscription': 1, 'mentionned': 1, 'goggles': 1, '169': 1, '6031': 1, 'command': 1, 'draws': 1, '09058094565': 1, 'dehydrated': 1, 'progress': 1, 'continue': 1, 'excused': 1, 'chillaxin': 1, 'inner': 1, 'tigress': 1, '09058094594': 1, 'predicte': 1, 'nevr': 1, 'unrecognized': 1, 'somone': 1, 'valuing': 1, 'definitly': 1, 'undrstnd': 1, '49': 1, 'bundle': 1, 'deals': 1, 'avble': 1, 'mf': 1, 'brothas': 1, 'gayle': 1, 'listed': 1, 'bffs': 1, 'carly': 1, 'propose': 1, 'seing': 1, 'asssssholeeee': 1, 'defer': 1, 'admission': 1, 'ga': 1, 'assumed': 1, 'worst': 1, 'vip': 1, 'november': 1, '09061104276': 1, '75max': 1, 'tensed': 1, 'rencontre': 1, 'mountains': 1, 'atleast': 1, 'shakespeare': 1, 'invitation': 1, 'cali': 1, 'weddin': 1, 'ukp': 1, '09061790125': 1, 'onwords': 1, 'mtnl': 1, 'mumbai': 1, 'ignorant': 1, 'experiencehttp': 1, 'vouch4me': 1, 'etlp': 1, 'asp': 1, 'changing': 1, 'diapers': 1, 'owed': 1, 'consensus': 1, 'get4an18th': 1, 'sterm': 1, 'resolved': 1, 'makin': 1, 'weirdy': 1, 'brownies': 1, 'cookies': 1, 'optin': 1, 'bbc': 1, 'charts': 1, 'restocked': 1, 'satsgettin': 1, '47per': 1, 'hanger': 1, 'keen': 1, '2find': 1, 'achan': 1, 'amma': 1, 'chief': 1, 'blastin': 1, 'tsunamis': 1, 'occur': 1, 'rajnikant': 1, 'ocean': 1, 'chinatown': 1, 'porridge': 1, 'claypot': 1, 'yam': 1, 'fishhead': 1, 'beehoon': 1, 'floppy': 1, 'snappy': 1, '08718730666': 1, 'hhahhaahahah': 1, 'nig': 1, 'leonardo': 1, 'orh': 1, 'resuming': 1, 'reapply': 1, 'september': 1, 'uworld': 1, 'qbank': 1, 'assessment': 1, 'classes': 1, 'dodgey': 1, 'retard': 1, 'abroad': 1, 'xxsp': 1, 'stopcost': 1, '08712400603': 1, 'infront': 1, '9t': 1, '0906346330': 1, '47': 1, 'po19': 1, '2ez': 1, 'file': 1, 'whens': 1, 'bari': 1, 'hudgi': 1, 'yorge': 1, 'pataistha': 1, 'ertini': 1, 'slacking': 1, 'nri': 1, 'bunkers': 1, 'sender': 1, 'gauge': 1, 'interest': 1, 'applausestore': 1, 'monthlysubscription': 1, 'max6': 1, 'csc': 1, 'gifts': 1, 'cliff': 1, 'slurp': 1, 'posting': 1, 'gauti': 1, 'sehwag': 1, 'priority': 1, 'grasp': 1, 'buzzzz': 1, 'vibrator': 1, 'shake': 1, 'adsense': 1, 'approved': 1, 'sculpture': 1, 'mw': 1, 'tuth': 1, 'epi': 1, 'digi': 1, 'coupla': 1, 'stuffed': 1, 'writhing': 1, 'surya': 1, 'pokkiri': 1, 'ooooooh': 1, 'yoville': 1, 'manageable': 1, 'tarot': 1, '85555': 1, '08702490080': 1, '09066358152': 1, 'prompts': 1, 'toyota': 1, 'camry': 1, 'olayiwola': 1, 'mileage': 1, 'landing': 1, 'ajith': 1, 'sundayish': 1, 'blankets': 1, 'sufficient': 1, 'tolerat': 1, 'bcs': 1, '09061743806': 1, 'box326': 1, 'snickering': 1, 'chords': 1, 'setting': 1, 'honesty': 1, 'fo': 1, 'senor': 1, 'zoom': 1, 'yetty': 1, 'ktv': 1, 'converter': 1, 'concentration': 1, 'torture': 1, 'helens': 1, 'princes': 1, 'gastroenteritis': 1, 'replace': 1, 'reduce': 1, 'limiting': 1, 'illness': 1, 'db': 1, 'ps': 1, 'grown': 1, 'hottest': 1, 'g696ga': 1, 'data': 1, 'analysis': 1, 'thesis': 1, 'arranging': 1, 'debating': 1, 'ringing': 1, 'houseful': 1, 'brats': 1, 'pulling': 1, 'wavering': 1, 'heal': 1, 'factory': 1, 'nitros': 1, 'dartboard': 1, 'condition': 1, 'doubles': 1, 'trebles': 1, 'leg': 1, 'musta': 1, 'overdid': 1, 'gdeve': 1, 'pansy': 1, 'jungle': 1, 'coccooning': 1, '83435': 1, 'helpline': 1, '08706091795': 1, 'everyso': 1, 'panicks': 1, 'orno': 1, 'r836': 1, '09065069154': 1, 'waited': 1, 'repent': 1, 'velly': 1, 'ammae': 1, 'steering': 1, 'pt2': 1, 'programs': 1, 'simpsons': 1, '2007': 1, 'band': 1, 'lanre': 1, 'fakeye': 1, 'eckankar': 1, 'suggestion': 1, 'lands': 1, 'helps': 1, 'forgt': 1, 'oyster': 1, 'sashimi': 1, 'rumbling': 1, 'bull': 1, 'floating': 1, 't4get2text': 1, 'imin': 1, 'dontmatter': 1, 'urgoin': 1, 'outl8r': 1, 'reallyneed': 1, '2docd': 1, 'dontplease': 1, 'dontignore': 1, 'mycalls': 1, 'thecd': 1, 'isv': 1, 'tome': 1, 'punish': 1, 'neshanth': 1, 'hellogorgeous': 1, 'nitw': 1, 'texd': 1, 'hopeu': 1, '4ward': 1, 'jaz': 1, 'leanne': 1, 'sonetimes': 1, 'rough': 1, 'uniform': 1, 'dip': 1, 'ratio': 1, 'tortilla': 1, 'rt': 1, 'pro': 1, '08701237397': 1, 'redeemable': 1, 'harish': 1, 'transfred': 1, 'acnt': 1, '09050001808': 1, 'm95': 1, 'sq825': 1, 'arrival': 1, 'semiobscure': 1, 'logoff': 1, 'fps': 1, 'cooked': 1, 'salmon': 1, 'jot': 1, 'drunkard': 1, 'okors': 1, '09061790126': 1, 'snatch': 1, 'hillsborough': 1, 'mobsi': 1, '391784': 1, 'dawns': 1, 'refreshed': 1, 'gandhipuram': 1, 'bluray': 1, 'taka': 1, 'bcaz': 1, 'disastrous': 1, 'stressed': 1, 'jacket': 1, 'multis': 1, 'postponed': 1, 'stocked': 1, 'professional': 1, 'tiger': 1, 'woods': 1, '087104711148': 1, 'lacking': 1, 'particular': 1, 'dramastorm': 1, 'plate': 1, 'leftovers': 1, 'operate': 1, '4goten': 1, 'scammers': 1, 'luvs': 1, 'praying': 1, 'hype': 1, 'studio': 1, 'flavour': 1, '09058094507': 1, '09058094455': 1, 'kickboxing': 1, 'swan': 1, 'signin': 1, 'catches': 1, 'heehee': 1, 'adewale': 1, 'egbon': 1, 'olave': 1, 'mandara': 1, 'trishul': 1, 'karnan': 1, 'costume': 1, 'withdraw': 1, 'anyhow': 1, 'north': 1, 'carolina': 1, 'texas': 1, 'gre': 1, '09090204448': 1, 'minded': 1, 'minapn': 1, 'ls278bb': 1, 'brum': 1, '0871277810710p': 1, 'secured': 1, 'unsecured': 1, '195': 1, '6669': 1, 'openings': 1, 'upcharge': 1, 'flatter': 1, 'pints': 1, 'carlin': 1, 'guesses': 1, 'attach': 1, '85069': 1, 'usher': 1, 'britney': 1, '5249': 1, 'mk17': 1, '92h': 1, '450ppw': 1, 'function': 1, 'duffer': 1, 'pump': 1, 'complain': 1, 'bettr': 1, 'bsnl': 1, 'offc': 1, 'semi': 1, 'significance': 1, 'seeking': 1, 'edison': 1, 'rightly': 1, 'viva': 1, 'gnt': 1, 'tallent': 1, 'wasting': 1, 'poortiyagi': 1, 'odalebeku': 1, 'hanumanji': 1, 'hanuman': 1, 'bajarangabali': 1, 'maruti': 1, 'pavanaputra': 1, 'sankatmochan': 1, 'ramaduth': 1, 'mahaveer': 1, 'janarige': 1, 'ivatte': 1, 'kalisidare': 1, 'olage': 1, 'ondu': 1, 'keluviri': 1, 'maretare': 1, 'inde': 1, 'dodda': 1, 'problum': 1, 'nalli': 1, 'siguviri': 1, 'idu': 1, 'matra': 1, 'neglet': 1, '09058094583': 1, '7548': 1, '4041': 1, 'firmware': 1, 'sinco': 1, 'payee': 1, 'icicibank': 1, 'frauds': 1, 'disclose': 1, 'ideal': 1, 'path': 1, 'appear': 1, 'paths': 1, 'nosh': 1, '0a': 1, 'companies': 1, 'responsible': 1, 'suppliers': 1, 'guarantee': 1, 'wahleykkum': 1, 'grace': 1, 'visitor': 1, 'blanket': 1, 'woul': 1, 'curfew': 1, 'gibe': 1, 'getsleep': 1, 'studdying': 1, 'ahhhh': 1, 'theres': 1, 'screwd': 1, 'noisy': 1, 'reckon': 1, 'eightish': 1, 'carpark': 1, 'offline': 1, 'anjola': 1, 'restock': 1, 'dumb': 1, 'maggi': 1, 'mee': 1, 'wrks': 1, 'yeesh': 1, 'barring': 1, 'sudden': 1, 'influx': 1, 'shell': 1, 'unconsciously': 1, 'avoiding': 1, 'unhappy': 1, 'cosign': 1, 'visa': 1, 'gucci': 1, 'bills': 1, 'famous': 1, 'develop': 1, 'unconditionally': 1, 'temper': 1, 'confidence': 1, 'casualty': 1, 'stuff42moro': 1, 'includes': 1, '083': 1, '6089': 1, 'rdy': 1, 'ship': 1, 'jabo': 1, 'unspoken': 1, 'mys': 1, 'gsoh': 1, 'spam': 1, 'gigolo': 1, 'mens': 1, 'oncall': 1, 'mjzgroup': 1, '08714342399': 1, '50rcvd': 1, 'kfc': 1, 'meals': 1, 'gravy': 1, 'wall': 1, '83118': 1, 'colin': 1, 'farrell': 1, 'swat': 1, 'popcorn': 1, 'mre': 1, 'excited': 1, 'backwards': 1, 'elections': 1, 'fatty': 1, 'castor': 1, 'rounder': 1, 'required': 1, 'pears': 1, 'boyf': 1, 'interviw': 1, 'picture': 1, 'violated': 1, 'mumhas': 1, 'beendropping': 1, 'theplace': 1, 'adress': 1, 'heavily': 1, 'gang': 1, 'practical': 1, '07753741225': 1, '08715203677': 1, '42478': 1, 'arabian': 1, 'steed': 1, 'bao': 1, 'sugardad': 1, 'pants': 1, 'restaurant': 1, 'quiteamuzing': 1, 'scool': 1, 'probpop': 1, 'cu': 1, 'satthen': 1, '4brekkie': 1, 'psxtra': 1, 'lrg': 1, 'portions': 1, 'sonathaya': 1, 'soladha': 1, 'waheed': 1, 'hvae': 1, '09061701444': 1, 'earn': 1, 'intention': 1, 'visitors': 1, 'specify': 1, 'domain': 1, 'nusstu': 1, 'x49': 1, '09065989182': 1, 'txtstar': 1, 'officer': 1, 'mcr': 1, 'parkin': 1, 'hint': 1, 'videos': 1, 'shsex': 1, 'netun': 1, 'fgkslpopw': 1, 'fgkslpo': 1, 'amy': 1, 'parties': 1, 'salt': 1, 'wounds': 1, 'timi': 1, '3230': 1, 'textbook': 1, 'algorithms': 1, 'edition': 1, 'compliments': 1, 'grandma': 1, 'parade': 1, 'loo': 1, 'ed': 1, 'nìte': 1, 'yuou': 1, 'spot': 1, 'perhaps': 1, 'identification': 1, 'presnts': 1, 'bcz': 1, 'jeevithathile': 1, 'irulinae': 1, 'neekunna': 1, 'prakasamanu': 1, 'sneham': 1, 'prakasam': 1, 'ennal': 1, 'mns': 1, 'huiming': 1, 'stability': 1, 'tranquility': 1, 'vibrant': 1, 'colourful': 1, 'pressies': 1, 'vco': 1, 'win150ppmx3age16': 1, '09061743386': 1, 'drama': 1, 'struggling': 1, 'strange': 1, 'ego': 1, 'necessity': 1, 'reppurcussions': 1, 'nationwide': 1, 'newport': 1, 'ball': 1, 'spin': 1, 'bat': 1, 'prone': 1, 'dorothy': 1, 'kiefer': 1, 'grumble': 1, 'wa': 1, 'openin': 1, 'formal': 1, 'cl': 1, 'shanil': 1, 'exchanged': 1, 'uncut': 1, 'diamond': 1, 'dino': 1, 'stuffing': 1, 'panther': 1, 'sugababes': 1, 'zebra': 1, 'badass': 1, 'hoody': 1, 'built': 1, 'atlast': 1, 'lonlines': 1, 'lotz': 1, 'memories': 1, 'finn': 1, 'romcapspam': 1, 'presence': 1, 'outgoing': 1, 'aluable': 1, 'ffectionate': 1, 'oveable': 1, 'ternal': 1, 'oble': 1, 'ruthful': 1, 'ntimate': 1, 'atural': 1, 'namous': 1, 'annoncement': 1, '07046744435': 1, 'continent': 1, 'luckily': 1, 'starring': 1, 'harri': 1, 'fumbling': 1, 'mandan': 1, 'hadn': 1, 'clocks': 1, 'realised': 1, 'wahay': 1, 'lodge': 1, 'grooved': 1, 'spouse': 1, 'pmt': 1, '4give': 1, 'shldxxxx': 1, 'airtel': 1, 'studies': 1, 'anyones': 1, 'beth': 1, 'aunts': 1, 'charlie': 1, 'helen': 1, 'shola': 1, 'department': 1, 'sagamu': 1, 'lautech': 1, 'vital': 1, 'completes': 1, 'education': 1, 'zealand': 1, 'hoped': 1, 'regretted': 1, 'nosy': 1, 'reacting': 1, 'freaked': 1, 'noworriesloans': 1, '08717111821': 1, 'calculation': 1, 'units': 1, 'accent': 1, '4years': 1, 'dental': 1, 'nmde': 1, 'young': 1, 'wrking': 1, 'salad': 1, 'desert': 1, 'beers': 1, 'bleak': 1, 'sez': 1, 'arab': 1, 'evry1': 1, 'eshxxxxxxxxxxx': 1, 'block': 1, 'breaker': 1, 'deluxe': 1, 'format': 1, 'features': 1, 'graphics': 1, 'bbdeluxe': 1, 'exorcism': 1, 'emily': 1, 'sun0819': 1, 'every1': 1, 'ava': 1, 'goodtime': 1, 'oli': 1, 'melnite': 1, 'ifink': 1, 'everythin': 1, 'l8rs': 1, 'reffering': 1, 'getiing': 1, 'mnths': 1, 'musical': 1, 'tai': 1, 'feng': 1, 'reservations': 1, 'stubborn': 1, 'sucker': 1, 'suckers': 1, 'goodnite': 1, 'gailxx': 1, 'ana': 1, 'sathy': 1, 'rto': 1, '08714712394': 1, 'proper': 1, 'tongued': 1, 'hitter': 1, 'mmmmmmm': 1, 'snuggles': 1, 'contented': 1, 'sigh': 1, 'whispers': 1, '3mobile': 1, 'chatlines': 1, 'inclu': 1, 'servs': 1, 'l8er': 1, 'bailiff': 1, 'absence': 1, 'stagwood': 1, 'winterstone': 1, 'victors': 1, 'coulda': 1, '07973788240': 1, '08715203649': 1, 'liquor': 1, 'loko': 1, 'gamestar': 1, 'active': 1, '250k': 1, 'scoring': 1, '88088': 1, 'dabooks': 1, 'detailed': 1, 'timings': 1, 'nooooooo': 1, 'cable': 1, 'outage': 1, 'ijust': 1, 'talked': 1, 'ew': 1, 'amigos': 1, 'burn': 1, 'dreading': 1, 'thou': 1, '24m': 1, 'shag': 1, 'sextextuk': 1, 'xxuk': 1, '69876': 1, 'fans': 1, '0870141701216': 1, '120p': 1, '08719181259': 1, 'hooked': 1, 'clearly': 1, 'triple': 1, 'echo': 1, 'billion': 1, 'raping': 1, 'dudes': 1, 'dom': 1, 'spoil': 1, 'pocked': 1, 'nor': 1, 'convince': 1, 'witot': 1, '100p': 1, 'l8': 1, 'gon': 1, 'thinked': 1, '125': 1, 'freeentry': 1, 'xt': 1, 'ambitious': 1, 'paranoid': 1, 'dealing': 1, 'books': 1, 'stoners': 1, 'syllabus': 1, '2yrs': 1, 'belongs': 1, 'fated': 1, 'shoranur': 1, 'fuelled': 1, 'concern': 1, 'prior': 1, 'grief': 1, 'invention': 1, '07732584351': 1, 'rodger': 1, 'tiime': 1, 'fridge': 1, 'deepest': 1, 'darkest': 1, '09094646631': 1, 'justify': 1, 'needy': 1, 'incomm': 1, 'manual': 1, 'reset': 1, 'troubleshooting': 1, 'scratches': 1, 'grinder': 1, 'callon': 1, 'selflessness': 1, 'forwarding': 1, 'prayers': 1, 'womdarfull': 1, 'tues': 1, 'crucify': 1, 'bawling': 1, 'failure': 1, 'failing': 1, 'starshine': 1, 'sips': 1, 'hont': 1, 'scenario': 1, 'gota': 1, 'french': 1, 'fooled': 1, 'phasing': 1, 'fourth': 1, 'dimension': 1, 'plumbers': 1, 'wrench': 1, '09050000332': 1, 'joys': 1, 'lifeis': 1, 'daywith': 1, 'somewheresomeone': 1, 'tosend': 1, 'greeting': 1, 'pocay': 1, 'wocay': 1, '2morrowxxxx': 1, 'motivating': 1, 'nasty': 1, 'cough': 1, 'crying': 1, 'imprtant': 1, 'tomorw': 1, 'shanghai': 1, 'cya': 1, 'prevent': 1, 'dehydration': 1, 'fluids': 1, 'poyyarikatur': 1, 'kolathupalayam': 1, 'unjalur': 1, 'erode': 1, '330': 1, '1120': 1, '1205': 1, '50s': 1, 'alot': 1, 'bathroom': 1, 'compensation': 1, '08717895698': 1, 'mobstorequiz10ppm': 1, 'antha': 1, 'corrct': 1, 'dane': 1, 'useless': 1, 'instant': 1, '08715203028': 1, '9th': 1, 'amanda': 1, 'regard': 1, 'renewing': 1, 'upgrading': 1, '0845': 1, '021': 1, '3680': 1, 'subject': 1, 'decorating': 1, 'resolution': 1, 'frank': 1, 'someday': 1, 'poo': 1, '09058097189': 1, 'clarification': 1, 'deus': 1, 'install': 1, 'browse': 1, 'artists': 1, 'tlk': 1, 'meat': 1, 'supreme': 1, 'forgive': 1, 'spelled': 1, 'caps': 1, 'bullshit': 1, 'correctly': 1, 'theoretically': 1, 'buyer': 1, 'jos': 1, 'bec': 1, 'lighters': 1, 'ripped': 1, 'clubmoby': 1, '08717509990': 1, 'afternon': 1, 'interviews': 1, 'prediction': 1, 'relieved': 1, 'westonzoyland': 1, 'objection': 1, 'faded': 1, 'glory': 1, 'ralphs': 1, 'shitin': 1, 'defo': 1, 'hardest': 1, 'millions': 1, 'lekdog': 1, 'fassyole': 1, 'blacko': 1, 'londn': 1, '30pm': 1, 'pure': 1, 'hearted': 1, 'enemies': 1, 'smiley': 1, 'begun': 1, 'registration': 1, 'permanent': 1, 'residency': 1, 'anythiing': 1, '515': 1, 'wifi': 1, '98321561': 1, 'familiar': 1, 'tool': 1, 'gray': 1, 'listn': 1, 'watevr': 1, 'mouse': 1, 'desk': 1, 'token': 1, 'liking': 1, 'ecstasy': 1, 'recpt': 1, 'processed': 1, '140': 1, '180': 1, 'aust': 1, 'urgh': 1, 'coach': 1, 'smells': 1, 'duvet': 1, 'predictive': 1, 'engalnd': 1, 'telly': 1, 'mia': 1, 'elliot': 1, 'kissing': 1, 'companion': 1, 'chef': 1, 'listener': 1, 'organizer': 1, 'boyfriend': 1, 'sympathetic': 1, 'athletic': 1, 'courageous': 1, 'determined': 1, 'dependable': 1, 'psychologist': 1, 'pest': 1, 'exterminator': 1, 'psychiatrist': 1, 'healer': 1, 'stylist': 1, 'aaniye': 1, 'pudunga': 1, 'venaam': 1, '69101': 1, 'rtf': 1, 'sphosting': 1, 'restrictions': 1, 'buddys': 1, 'arty': 1, 'collages': 1, 'tryin': 1, 'grab': 1, 'videosound': 1, 'videosounds': 1, 'musicnews': 1, '09701213186': 1, 'kaila': 1, 'chloe': 1, 'nus': 1, 'sc': 1, 'specialise': 1, 'wad': 1, 'phony': 1, 'recorder': 1, 'canname': 1, 'australia': 1, 'mquiz': 1, 'iraq': 1, 'afghanistan': 1, 'stable': 1, 'honest': 1, 'traveling': 1, '02072069400': 1, 'bx': 1, '526': 1, 'gobi': 1, 'evo': 1, 'thinl': 1, 'piece': 1, 'tension': 1, 'terror': 1, 'cruel': 1, 'decent': 1, 'joker': 1, 'sapna': 1, 'manege': 1, 'hogidhe': 1, 'chinnu': 1, 'swalpa': 1, 'agidhane': 1, 'puts': 1, 'perspective': 1, 'headstart': 1, 'rummer': 1, '087123002209am': 1, 'frying': 1, 'cereals': 1, 'gari': 1, '9ja': 1, 'clarify': 1, 'preponed': 1, 'windy': 1, 'lucyxx': 1, '8lb': 1, '7oz': 1, 'brilliantly': 1, '820554ad0a1705572711': 1, 'nuerologist': 1, 'bookedthe': 1, 'hut': 1, 'taught': 1, 'becaus': 1, 'verifying': 1, 'prabu': 1, 'matric': 1, 'cts': 1, 'employee': 1, 'evenings': 1, 'smiled': 1, 'answered': 1, 'gudnite': 1, 'zogtorius': 1, 'thout': 1, '09061749602': 1, '528': 1, 'hp20': 1, '1yf': 1, 'demand': 1, 'restrict': 1, 'drugdealer': 1, 'workout': 1, 'fats': 1, 'recieve': 1, '24hrs': 1, 'teletext': 1, 'rahul': 1, 'dengra': 1, 'disappointment': 1, '09096102316': 1, 'playin': 1, 'non': 1, 'breeze': 1, 'fresh': 1, 'twittering': 1, 'hidden': 1, 'famamus': 1, 'shoot': 1, 'xclusive': 1, 'clubsaisai': 1, 'speciale': 1, 'zouk': 1, 'nichols': 1, 'roses': 1, '07946746291': 1, '07880867867': 1, 'hiphop': 1, 'filthy': 1, 'stories': 1, 'the4th': 1, 'october': 1, '08719839835': 1, 'mgs': 1, '89123': 1, 'wither': 1, '23f': 1, '23g': 1, 'treatin': 1, 'treacle': 1, 'such': 1, 'worlds': 1, 'oooooh': 1, 'cab': 1, 'steps': 1, 'garments': 1, 'apeshit': 1, 'durban': 1, 'smartcall': 1, '68866': 1, 'subscriptn3gbp': 1, '08448714184': 1, 'landlineonly': 1, 'remb': 1, 'screamed': 1, 'owned': 1, 'possessive': 1, 'creative': 1, 'monkeys': 1, 'annoyin': 1, 'lapdancer': 1, 'g2': 1, '1da': 1, '150ppmsg': 1, 'gran': 1, 'onlyfound': 1, 'afew': 1, 'cusoon': 1, 'honi': 1, 'inperialmusic': 1, 'listening2the': 1, 'weirdest': 1, 'leafcutter': 1, 'insects': 1, 'molested': 1, 'plumbing': 1, 'remixed': 1, 'evil': 1, 'acid': 1, 'enna': 1, 'kalaachutaarama': 1, '3750': 1, 'lips': 1, 'strongly': 1, 'creativity': 1, 'stifled': 1, 'importantly': 1, 'breather': 1, 'granted': 1, 'fulfil': 1, 'boooo': 1, 'poking': 1, 'canada': 1, 'busetop': 1, 'rats': 1, 'themes': 1, 'consistently': 1, 'practicum': 1, 'links': 1, 'ears': 1, 'thkin': 1, 'asjesus': 1, 'wrote': 1, 'ujhhhhhhh': 1, 'sandiago': 1, 'parantella': 1, 'stereo': 1, 'mi': 1, 'deficient': 1, 'hogolo': 1, 'kodstini': 1, 'madstini': 1, 'hogli': 1, 'mutai': 1, 'eerulli': 1, 'kodthini': 1, 'flowers': 1, '505060': 1, 'seventeen': 1, 'ml': 1, 'surly': 1, 'sang': 1, 'uptown': 1, '80': 1, 'fox': 1, 'frndsship': 1, 'dwn': 1, 'desparately': 1, 'rcb': 1, 'battle': 1, 'bang': 1, 'kochi': 1, 'dentists': 1, 'meaningless': 1, 'mary': 1, 'matthew': 1, '09063440451': 1, 'ppm150': 1, 'box334': 1, 'prometazine': 1, 'syrup': 1, '5mls': 1, 'feed': 1, 'qet': 1, 'mountain': 1, 'deer': 1, 'lined': 1, 'wewa': 1, '130': 1, 'iriver': 1, '255': 1, '128': 1, 'brin': 1, 'sheet': 1, 'prasanth': 1, 'ettans': 1, 'ams': 1, 'mad1': 1, 'mad2': 1, 'browser': 1, 'surf': 1, 'bangbabes': 1, 'bangb': 1, 'taj': 1, 'lesser': 1, 'known': 1, 'facts': 1, 'wifes': 1, 'killed': 1, 'arises': 1, 'hari': 1, 'whore': 1, 'unbelievable': 1, 'spatula': 1, 'lap': 1, 'textand': 1, '08002988890': 1, 'bbq': 1, '6ish': 1, 'kane': 1, 'shud': 1, 'spacebucks': 1, 'text82228': 1, 'fan': 1, 'sparkling': 1, 'breaks': 1, '45': 1, '0121': 1, '2025050': 1, 'shortbreaks': 1, 'org': 1, 'riley': 1, 'grownup': 1, 'coherently': 1, 'unconscious': 1, 'adults': 1, 'abnormally': 1, 'remembrs': 1, 'everytime': 1, 'banned': 1, 'machines': 1, '1405': 1, '1680': 1, '1843': 1, 'transport': 1, 'problematic': 1, 'definite': 1, 'wasnt': 1, 'phoned': 1, '____': 1, 'ias': 1, 'pai': 1, 'seh': 1, 'fondly': 1, 'shhhhh': 1, '09066660100': 1, '2309': 1, 'samus': 1, 'shoulders': 1, '3000': 1, 'conform': 1, 'thet': 1, 'skinny': 1, 'casting': 1, 'gokila': 1, 'bw': 1, '01223585334': 1, '2c': 1, 'shagged': 1, '2end': 1, 'curious': 1, 'ovulation': 1, 'strips': 1, 'postal': 1, 'tunji': 1, 'mike': 1, 'hussey': 1, 'tip': 1, 'unintentionally': 1, 'bare': 1, 'buyers': 1, 'packing': 1, 'grandmas': 1, 'hungover': 1, 'synced': 1, 'shangela': 1, 'yoyyooo': 1, 'permissions': 1, 'rob': 1, 'mack': 1, 'theater': 1, 'realize': 1, 'goin2bed': 1, 'only1more': 1, '6230': 1, 'pobox114': 1, '14tcr': 1, 'panasonic': 1, 'bluetoothhdset': 1, 'doublemins': 1, 'doubletxt': 1, '09066362220': 1, '09061743810': 1, '326': 1, 'shant': 1, 'jia': 1, 'rules': 1, 'bend': 1, 'thia': 1, 'inlude': 1, 'previews': 1, 'meive': 1, 'gotany': 1, 'lightly': 1, 'checkboxes': 1, 'chiong': 1, 'jaya': 1, 'fundamentals': 1, 'whoever': 1, 'disagreeable': 1, 'uv': 1, 'causes': 1, 'mutations': 1, 'sunscreen': 1, 'thesedays': 1, 'classmates': 1, 'arestaurant': 1, 'squid': 1, 'dosomething': 1, 'stuck': 1, 'swimsuit': 1, 'nigh': 1, 'somewhr': 1, 'crushes': 1, 'tahan': 1, 'anot': 1, 'clover': 1, '28th': 1, 'uncountable': 1, 'somerset': 1, 'nauseous': 1, 'dieting': 1, '674': 1, 'allday': 1, 'perf': 1, 'baaaaabe': 1, 'misss': 1, 'youuuuu': 1, 'lnly': 1, 'farm': 1, '95': 1, 'pax': 1, 'deposit': 1, 'nigro': 1, 'tbs': 1, 'persolvo': 1, '38': 1, 'kath': 1, 'manchester': 1, '08452810075over18': 1, 'free2day': 1, 'george': 1, '89080': 1, '0870241182716': 1, 'crashed': 1, 'cuddled': 1, 'rr': 1, 'cheque': 1, 'scrumptious': 1, 'accomodations': 1, 'cave': 1, 'offered': 1, 'embarassing': 1, 'learned': 1, 'jeans': 1, '09066364589': 1, 'wi': 1, 'nz': 1, 'highest': 1, 'maximum': 1, '71': 1, 'fair': 1, 'weaknesses': 1, 'knee': 1, 'exposes': 1, 'pulls': 1, 'wicked': 1, 'cried': 1, 'dled': 1, 'imp': 1, '8000930705': 1, '09064017305': 1, 'pobox75ldns7': 1, 'chic': 1, 'declare': 1, '077xxx': 1, '09066362206': 1, 'computerless': 1, 'arnt': 1, 'xxxxxxxxxxxxxx': 1, 'bold2': 1, 'forgiveness': 1, 'fruit': 1, 'burgundy': 1, 'captaining': 1, 'narcotics': 1, 'baig': 1, 'watches': 1, 'pei': 1, 'conversations': 1, 'senses': 1, 'overemphasise': 1, 'cooped': 1, 'necessary': 1, 'nokia6650': 1, 'ctxt': 1, 'mtmsg': 1, 'bookshelf': 1, '09064017295': 1, 'strt': 1, 'ltdhelpdesk': 1, '02085076972': 1, 'flip': 1, 'impressively': 1, 'sensible': 1, 'stairs': 1, 'phews': 1, 'flippin': 1, 'thanx4': 1, 'cer': 1, '07801543489': 1, 'latests': 1, 'llc': 1, 'usa': 1, 'msgrcvd18': 1, 'disturbance': 1, 'dlf': 1, 'premarica': 1, 'inconvenient': 1, 'adjustable': 1, 'cooperative': 1, 'allows': 1, 'bits': 1, '4719': 1, '523': 1, 'wuld': 1, 'everyboy': 1, 'xxxxxxxx': 1, 'waheeda': 1, 'hep': 1, 'immunisation': 1, 'rhode': 1, 'bong': 1, 'html': 1, 'gbp4': 1, 'mfl': 1, '1146': 1, 'oic': 1, 'occurs': 1, 'go2sri': 1, 'lanka': 1, 'ax': 1, 'footie': 1, 'phil': 1, 'neville': 1, 'bitching': 1, 'actual': 1, '09099725823': 1, 'axis': 1, 'freinds': 1, 'webadres': 1, 'geting': 1, 'suffers': 1, 'silence': 1, 'aslamalaikkum': 1, 'tohar': 1, 'beeen': 1, 'muht': 1, 'albi': 1, 'mufti': 1, 'mahfuuz': 1, 'burger': 1, 'greatness': 1, 'typical': 1, 'flurries': 1, 'dileep': 1, 'muchand': 1, 'venugopal': 1, 'mentioned': 1, 'jetton': 1, 'doubt': 1, 'handsome': 1, 'finding': 1, 'ummma': 1, 'tonght': 1, 'footbl': 1, 'crckt': 1, 'optimistic': 1, 'web2mobile': 1, 'txt250': 1, 'box139': 1, 'la32wu': 1, 'txtx': 1, 'motivate': 1, 'darkness': 1, 'sexiest': 1, 'dirtiest': 1, 'nte': 1, 'exposed': 1, 'watts': 1, 'cards': 1, 'marvel': 1, 'ultimate': 1, '83338': 1, '8ball': 1, 'appeal': 1, 'thriller': 1, 'director': 1, 'predicting': 1, 'accumulation': 1, 'cocksuckers': 1, 'ipads': 1, 'worthless': 1, 'novelty': 1, 'items': 1, 'jack': 1, 'helpful': 1, 'pretend': 1, 'response': 1, 'hypotheticalhuagauahahuagahyuhagga': 1, 'btwn': 1, 'dock': 1, 'rolled': 1, 'newscaster': 1, 'dabbles': 1, 'flute': 1, 'wheel': 1, 'wouldn': 1, 'impressed': 1, 'funs': 1, 'playng': 1, 'totes': 1, 'x2': 1, '08715203656': 1, '42049': 1, 'zhong': 1, 'qing': 1, 'act': 1, 'lag': 1, 'lubly': 1, 'frequently': 1, 'folks': 1, '32': 1, 'spirit': 1, 'docs': 1, 'appointments': 1, 'shoving': 1, 'stuffs': 1, 'rv': 1, 'hol': 1, 'rvx': 1, 'expert': 1, 'vill': 1, 'orc': 1, 'jersey': 1, 'devils': 1, 'wings': 1, 'incorrect': 1, 'vday': 1, 'parachute': 1, 'useful': 1, 'specialisation': 1, 'labor': 1, 'shakara': 1, 'beggar': 1, 'peach': 1, 'tasts': 1, 'webpage': 1, '09050000878': 1, 'pobox45w2tg150p': 1, 'ahold': 1, '07808247860': 1, '08719899229': 1, '40411': 1, '85233': 1, 'dismissial': 1, 'lovly': 1, 'dust': 1, '67441233': 1, 'irene': 1, 'ere': 1, 'bus8': 1, '22': 1, '61': 1, '66': 1, '382': 1, 'cres': 1, '6ph': 1, '5wkg': 1, 'èn': 1, 'newquay': 1, '1im': 1, 'talkin': 1, 'haiz': 1, 'jon': 1, 'spain': 1, 'dinero': 1, '000pes': 1, '48': 1, 'colours': 1, '3lions': 1, 'cherthala': 1, 'bfore': 1, 'tmorow': 1, 'engaged': 1, 'snot': 1, 'unintentional': 1, 'nonetheless': 1, 'resent': 1, 'queries': 1, 'customersqueries': 1, 'netvision': 1, 'basket': 1, 'hlday': 1, 'camp': 1, 'amrca': 1, 'serena': 1, 'dull': 1, 'lotta': 1, 'childporn': 1, 'clas': 1, 'andre': 1, 'virgil': 1, 'leads': 1, '0844': 1, '861': 1, 'prepayment': 1, 'telediscount': 1, 'southern': 1, 'payments': 1, 'fedex': 1, 'uhhhhrmm': 1, 'intend': 1, 'iwas': 1, 'marine': 1, 'itried2tell': 1, 'urmom': 1, 'careabout': 1, 'thread': 1, 'wishlist': 1, 'section': 1, 'nitro': 1, 'bottom': 1, 'speaking': 1, '730': 1, 'eh74rr': 1, 'badrith': 1, 'gsex': 1, '2667': 1, 'wc1n': 1, '3xx': 1, 'nearby': 1, 'cliffs': 1, 'pubs': 1, 'frankie': 1, 'bennys': 1, 'donno': 1, 'scorable': 1, 'affectionate': 1, 'follows': 1, 'subsequent': 1, 'spaces': 1, 'embassy': 1, 'washob': 1, 'nobbing': 1, 'nickey': 1, 'platt': 1, 'dogbreath': 1, 'sounding': 1, 'obedient': 1, 'eviction': 1, 'spiral': 1, 'michael': 1, 'riddance': 1, 'gloucesterroad': 1, 'uup': 1, 'chapel': 1, 'frontierville': 1, 'tall': 1, '80155': 1, 'swap': 1, 'chatter': 1, 'chat80155': 1, 'rcd': 1, 'shun': 1, 'bian': 1, 'glass': 1, 'exhibition': 1, 'subtoitles': 1, '87131': 1, '0870737910216yrs': 1, 'cashed': 1, 'announced': 1, 'blog': 1, 'occupied': 1, 'bsn': 1, 'advising': 1, 'woo': 1, 'hoo': 1, 'mc': 1, 'thankyou': 1, 'relaxing': 1, '7am': 1, '5ish': 1, 'glo': 1, 'delete': 1, 'tag': 1, 'messy': 1, 'laundry': 1, 'underwear': 1, 'bras': 1, 'strewn': 1, 'pillows': 1, 'or2optout': 1, 'hv9d': 1, 'lately': 1, 'raglan': 1, 'edward': 1, 'cricket': 1, 'closeby': 1, 'peoples': 1, 'configure': 1, 'swashbuckling': 1, 'slower': 1, 'maniac': 1, '08712402972': 1, 'revealing': 1, 'prasad': 1, '8pm': 1, 't91': 1, '09057039994': 1, 'ello': 1, 'cupboard': 1, 'lyricalladie': 1, 'hmmross': 1, 'wildlife': 1, 'want2come': 1, 'that2worzels': 1, 'wizzle': 1, '449050000301': 1, '09050000301': 1, 'formatting': 1, 'cozy': 1, 'meg': 1, 'goodmate': 1, 'sary': 1, 'asusual': 1, 'cheered': 1, 'franyxxxxx': 1, 'surgical': 1, 'emergency': 1, 'unfolds': 1, 'shadow': 1, '09050001295': 1, 'a21': 1, 'invoices': 1, 'cheetos': 1, 'pert': 1, 'drastic': 1, 'fffff': 1, 'squishy': 1, 'mwahs': 1, 'immed': 1, 'spice': 1, 'scenery': 1, 'wondar': 1, 'flim': 1, 'punto': 1, 'samantha': 1, 'guitar': 1, 'impress': 1, 'doug': 1, 'realizes': 1, 'brison': 1, '0871277810910p': 1, 'allo': 1, 'braved': 1, 'triumphed': 1, 'guessing': 1, 'jb': 1, 'slippery': 1, 'chgs': 1, 'apes': 1, 'horniest': 1, '69888': 1, 'pleassssssseeeeee': 1, 'sportsx': 1, 'rajas': 1, 'burrito': 1, 'nighters': 1, 'persevered': 1, '09066368470': 1, 'sane': 1, 'helping': 1, 'reminded': 1, 'perpetual': 1, 'dd': 1, 'ou': 1, 'shattered': 1, 'uploaded': 1, 'amrita': 1, 'habba': 1, 'prices': 1, '0796xxxxxx': 1, 'prizeawaiting': 1, 'dudette': 1, 'rubber': 1, 'owe': 1, 'adventure': 1, 'predict': 1, 'perumbavoor': 1, 'cumming': 1, 'showr': 1, 'prescribed': 1, 'africa': 1, 'avin': 1, '9755': 1, 'mallika': 1, 'sherawat': 1, 'fetching': 1, 'shocking': 1, 'crash': 1, 'weirdo': 1, '2mro': 1, 'hectic': 1, 'swoop': 1, 'infact': 1, 'durham': 1, 'reserved': 1, 'seat': 1, 'lunsford': 1, 'huge': 1, 'marking': 1, 'splashmobile': 1, 'subscrition': 1, 'abbey': 1, 'punj': 1, 'infra': 1, 'en': 1, 'nange': 1, 'bakra': 1, 'kalstiya': 1, '44': 1, '7732584351': 1, 'celebrations': 1, 'missionary': 1, 'fucks': 1, 'brolly': 1, 'franxx': 1, 'vibrate': 1, 'lambda': 1, 'upping': 1, 'grams': 1, 'portal': 1, 'passport': 1, 'alwys': 1, 'popping': 1, 'ibuprofens': 1, 'breathing': 1, 'kitty': 1, 'shaved': 1, 'yeovil': 1, 'motor': 1, 'waaaat': 1, 'lololo': 1, 'hall': 1, 'hesitation': 1, 'intha': 1, 'ponnungale': 1, 'ipaditan': 1, '07099833605': 1, '9280114': 1, '84484': 1, '08712402779': 1, 'showers': 1, 'possessiveness': 1, 'poured': 1, 'golden': 1, '2price': 1, '100txt': 1, 'mth': 1, 'd3wv': 1, 'bomb': 1, 'lennon': 1, 'thirtyeight': 1, 'copies': 1, 'dramatic': 1, '08452810071': 1, '7250': 1, 'lifting': 1, 'hos': 1, 'oga': 1, 'tunde': 1, 'offering': 1, 'memory': 1, 'chit': 1, 'logon': 1, '8883': 1, 'cm': 1, '4217': 1, 'w1a': 1, '6zf': 1, '118p': 1, '945': 1, 'animal': 1, '9996': 1, '14thmarch': 1, 'availa': 1, 'ger': 1, 'toking': 1, 'syd': 1, 'sarasota': 1, 'chez': 1, 'jules': 1, 'bowls': 1, 'rounds': 1, 'outsider': 1, 'wenever': 1, 'copied': 1, 'compass': 1, 'gnun': 1, 'way2sms': 1, 'palm': 1, 'sac': 1, 'batsman': 1, 'muchxxlove': 1, 'locaxx': 1, 'ayo': 1, 'travelled': 1, 'el': 1, 'nino': 1, 'himself': 1, 'base': 1, 'thesmszone': 1, 'anonymous': 1, 'masked': 1, 'abuse': 1, 'students': 1, '1thing': 1, 'answr': 1, '850': 1, '650': 1, 'tats': 1, 'kvb': 1, 'smsservices': 1, 'yourinclusive': 1, 'ilol': 1, 'personally': 1, 'wuldnt': 1, 'lolnice': 1, 'audiitions': 1, 'relocate': 1, 'reserve': 1, 'thirunelvali': 1, 'tackle': 1, 'yah': 1, 'increase': 1, 'stil': 1, 'tobed': 1, '430': 1, '630': 1, '08714712388': 1, '2hrs': 1, 'porn': 1, 'vat': 1, 'teresa': 1, 'dec': 1, 'ld': 1, 'bam': 1, 'aid': 1, 'usmle': 1, 'sitter': 1, 'kaitlyn': 1, 'minus': 1, 'paragraphs': 1, 'jackson': 1, 'rec': 1, 'reception': 1, 'ploughing': 1, 'pile': 1, 'ironing': 1, 'chinky': 1, 'pool': 1, 'jacuzzi': 1, 'becausethey': 1, '09058098002': 1, 'pobox1': 1, 'w14rg': 1, 'toledo': 1, '1apple': 1, '1tulsi': 1, 'leaf': 1, '1lemon': 1, '1cup': 1, 'problms': 1, 'litres': 1, 'watr': 1, 'diseases': 1, 'snd': 1, 'prepared': 1, 'finalise': 1, 'x29': 1, '09065989180': 1, 'underdtand': 1, 'fireplace': 1, 'icon': 1, 'fried': 1, 'spares': 1, 'looovvve': 1, 'nver': 1, 'occupy': 1, 'secure': 1, 'mittelschmertz': 1, 'paracetamol': 1, 'fellow': 1, 'warwick': 1, 'tmw': 1, 'canceled': 1, 'havn': 1, 'tp': 1, 'stands': 1, 'nitz': 1, 'mising': 1, 'unicef': 1, 'asian': 1, 'tsunami': 1, 'disaster': 1, 'fund': 1, '864233': 1, 'varaya': 1, 'elaya': 1, '09058095107': 1, 's3xy': 1, 'gate': 1, 'cuddling': 1, 'sleeps': 1, 'fortune': 1, 'humanities': 1, 'requirements': 1, 'gam': 1, 'innings': 1, 'fwiw': 1, 'afford': 1, 'half8th': 1, 'hundreds': 1, 'handsomes': 1, 'beauties': 1, 'aunties': 1, 'ganesh': 1, 'caveboy': 1, 'degrees': 1, 'dentist': 1, '0825': 1, 'mention': 1, 'served': 1, 'chachi': 1, 'pl': 1, 'tiz': 1, 'kanagu': 1, 'watched': 1, '0089': 1, 'digits': 1, '09063442151': 1, 'thus': 1, 'tightly': 1, 'lasting': 1, 'drizzling': 1, 'julianaland': 1, 'oblivious': 1, 'youdoing': 1, 'easiest': 1, 'barcelona': 1, 'lamp': 1, 'unsubscribed': 1, 'hunks': 1, 'gotbabes': 1, 'subscriptions': 1, 'loneliness': 1, 'propsd': 1, 'gv': 1, 'lv': 1, 'lttrs': 1, 'threw': 1, 'thm': 1, 'aproach': 1, 'dt': 1, 'truck': 1, 'speeding': 1, 'instantly': 1, 'thy': 1, 'lived': 1, 'happily': 1, '2gthr': 1, 'evrydy': 1, 'ciao': 1, '3miles': 1, 'diwali': 1, 'alle': 1, 'mone': 1, 'eppolum': 1, 'allalo': 1, 'thasa': 1, 'messed': 1, 'shudvetold': 1, 'urgran': 1, 'illspeak': 1, 'u2moro': 1, 'arngd': 1, 'walkin': 1, 'unfortuntly': 1, 'bites': 1, 'dancing': 1, 'frnt': 1, 'sayin': 1, 'okday': 1, 'chop': 1, 'indyarocks': 1, 'phonebook': 1, 'burial': 1, 'axel': 1, 'akon': 1, 'eyed': 1, 'alaikkum': 1, 'respectful': 1, 'expressoffer': 1, 'drpd': 1, 'deeraj': 1, 'deepak': 1, 'emotion': 1, 'prayrs': 1, 'othrwise': 1, 'expression': 1, 'depression': 1, 'lambu': 1, 'ji': 1, 'batchlor': 1, 'complacent': 1, 'despite': 1, 'related': 1, 'trade': 1, 'arul': 1, 'teenager': 1, 'hopeing': 1, 'sisters': 1, 'horse': 1, 'categories': 1, 'ethnicity': 1, 'census': 1, 'transcribing': 1, 'mina': 1, 'downs': 1, 'fletcher': 1, 'dessert': 1, 'anti': 1, 'bcum': 1, 'yalrigu': 1, 'heltini': 1, 'iyo': 1, 'uttered': 1, 'trusting': 1, 'noncomittal': 1, 'aftr': 1, 'sections': 1, 'clearer': 1, 'fones': 1, 'wild': 1, 'stop2stop': 1, 'supervisor': 1, 'purple': 1, 'yelow': 1, 'brown': 1, 'involve': 1, 'imposed': 1, 'hang': 1, 'alcohol': 1, 'heaven': 1, 'prince': 1, 'haiyoh': 1, 'million': 1, 'diesel': 1, 'deltomorrow': 1, 'suppose': 1, 'salesman': 1, 'outbid': 1, 'simonwatson5120': 1, 'shinco': 1, 'plyr': 1, 'smsrewards': 1, 'notifications': 1, 'agent': 1, 'goodies': 1, 'mat': 1, 'pisces': 1, 'aquarius': 1, 'natwest': 1, 'effects': 1, 'massive': 1, 'gut': 1, 'wrenching': 1, 'emailed': 1, 'yifeng': 1, 'brownie': 1, 'cantdo': 1, 'anythingtomorrow': 1, 'myparents': 1, 'aretaking': 1, 'outfor': 1, 'katexxx': 1, 'weightloss': 1, 'fancies': 1, '09058097218': 1, 'spiritual': 1, 'avo': 1, '86888': 1, 'subscribe6gbp': 1, '3hrs': 1, 'txtstop': 1, 'gamb': 1, 'coincidence': 1, 'sooo': 1, 'settling': 1, 'happenin': 1, 'toilet': 1, 'stolen': 1, 'cops': 1, 'sporadically': 1, 'height': 1, 'recycling': 1, 'earning': 1, 'hairdressers': 1, 'beforehand': 1, 'perform': 1, 'ducking': 1, 'chinchillas': 1, 'somewhat': 1, 'event': 1, 'laden': 1, 'wrecked': 1, 'mushy': 1, 'embarrassed': 1, 'deserve': 1, 'proze': 1, 'norcorp': 1, 'virgins': 1, 'sexual': 1, 'theirs': 1, '69911': 1, 'muhommad': 1, 'penny': 1, 'specific': 1, 'intrude': 1, '24th': 1, 'concerned': 1, 'accessible': 1, '08709501522': 1, '139': 1, 'la3': 1, '2wu': 1, 'sliding': 1, 'ingredients': 1, 'comingdown': 1, 'mandy': 1, 'sullivan': 1, 'hotmix': 1, 'fm': 1, '09041940223': 1, 'transferred': 1, 'tirunelvai': 1, 'length': 1, 'wikipedia': 1, 'yunny': 1, 'citylink': 1, '09058095201': 1, 'prsn': 1, 'saves': 1, 'eveb': 1, 'bridgwater': 1, 'banter': 1, 'vpod': 1, '81303': 1, 'blessed': 1, 'christmassy': 1, 'meets': 1, 'lasagna': 1, 'petey': 1, 'noi': 1, 'js': 1, 'sexychat': 1, 'urfeeling': 1, 'bettersn': 1, 'probthat': 1, 'overdose': 1, 'offense': 1, 'evey': 1, 'corporation': 1, 'reassuring': 1, 'shiny': 1, 'warming': 1, 'jap': 1, 'appy': 1, 'fizz': 1, 'contains': 1, 'causing': 1, '08718726970': 1, 'up4': 1, 'payed2day': 1, 'havbeen': 1, 'rise': 1, '4my': 1, 'havebeen': 1, 'preschoolco': 1, 'ordinator': 1, '2i': 1, 'feelingood': 1, 'guai': 1, 'gage': 1, 'deck': 1, 'cnupdates': 1, 'newsletter': 1, 'alerts': 1, 'stalk': 1, 'profiles': 1, '83039': 1, '62735': 1, '450': 1, 'accommodationvouchers': 1, 'mustprovide': 1, '15541': 1, 'ft': 1, 'combination': 1, 'designation': 1, 'developer': 1, 'nelson': 1, 'rct': 1, 'thnq': 1, 'adrian': 1, 'vatian': 1, 'daytime': 1, 'busty': 1, '09099726429': 1, 'janinexx': 1, 'pull': 1, 'chastity': 1, 'device': 1, 'beatings': 1, 'europe': 1, '10th': 1, '09050000555': 1, 'ba128nnfwfly150ppm': 1, 'gopalettan': 1, 'participate': 1, 'olympics': 1, '20m12aq': 1, 'above': 1, 'opps': 1, 'entertaining': 1, 'hugh': 1, 'laurie': 1, 'throwing': 1, 'needing': 1, 'calm': 1, 'reassurance': 1, 'connections': 1, 'sday': 1, 'khelate': 1, 'kintu': 1, 'opponenter': 1, 'dhorte': 1, 'lage': 1, '0721072': 1, 'tops': 1, '45pm': 1, 'witin': 1, 'northampton': 1, 'skyving': 1, 'image': 1, 'rg21': 1, '4jx': 1, 'payed': 1, 'suganya': 1, 'heat': 1, 'applyed': 1, 'enc': 1, 'creepy': 1, 'inever': 1, 'inpersonation': 1, 'flea': 1, 'wining': 1, '946': 1, 'vitamin': 1, 'crammed': 1, 'vid': 1, 'finishd': 1, 'gumby': 1, 'cheese': 1, 'saeed': 1, 'payasam': 1, 'rinu': 1, 'dizzamn': 1, 'suitemates': 1, '6times': 1, 'ami': 1, 'parchi': 1, 'kicchu': 1, 'kaaj': 1, 'korte': 1, 'iccha': 1, 'korche': 1, 'tul': 1, 'wined': 1, 'dined': 1, 'cudnt': 1, 'drove': 1, 'ctla': 1, 'ente': 1, 'ishtamayoo': 1, 'bakrid': 1, 'sold': 1, 'lil': 1, 'beverage': 1, 'pist': 1, 'nhs': 1, '2b': 1, 'terminated': 1, 'inconvenience': 1, '08712402578': 1, 'envy': 1, '09077818151': 1, 'calls1': 1, '50ppm': 1, '30s': 1, 'santacalling': 1, '2channel': 1, 'leadership': 1, 'skills': 1, 'psychic': 1, 'chile': 1, 'subletting': 1, 'a30': 1, 'divert': 1, 'wadebridge': 1, 'glorious': 1, 'anniversary': 1, 'finds': 1, 'coaxing': 1, 'images': 1, 'fond': 1, 'souveniers': 1, 'cougar': 1, 'borderline': 1, 'snap': 1, 'quizclub': 1, '80122300p': 1, 'rwm': 1, '08704050406': 1, 'ofcourse': 1, 'river': 1, 'tkls': 1, 'stoptxtstop': 1, 'hearing': 1, 'breadstick': 1, 'torrents': 1, 'particularly': 1, 'slowing': 1, 'asda': 1, 'counts': 1, 'limited': 1, '9061100010': 1, 'wire3': 1, '1st4terms': 1, 'mobcudb': 1, 'shouting': 1, 'didntgive': 1, 'bellearlier': 1, 'bedbut': 1, 'thepub': 1, 'uwana': 1, 'jenxxx': 1, '08718738002': 1, '48922': 1, '09058099801': 1, 'b4190604': 1, '7876150ppm': 1, 'wrongly': 1, 'gmw': 1, 'connected': 1, '69888nyt': 1, '31p': 1, 'shortcode': 1, '83332': 1, '08081263000': 1, 'refunded': 1, 'avoid': 1, 'guides': 1, 'gained': 1, 'pressure': 1, 'limits': 1, 'board': 1, 'overheating': 1, 'reslove': 1, 'inst': 1, 'jam': 1, 'hannaford': 1, 'wheat': 1, 'chex': 1, 'oral': 1, 'lord': 1, 'rings': 1, 'soundtrack': 1, 'stdtxtrate': 1, 'wlcome': 1})\n", "7742\n" ] } ], "source": [ "def simple_tokenize(text):\n", " return re.findall(r\"\\b\\w+\\b\", text.lower())\n", "\n", "\n", "class SpamDataset(Dataset):\n", " def __init__(self, texts, labels, vocab, max_len=100):\n", " self.texts = [self.tokenize_and_pad(text, vocab, max_len) for text in texts]\n", " self.labels = torch.tensor(labels, dtype=torch.float32)\n", "\n", " def tokenize_and_pad(self, text, vocab, max_len):\n", " tokens = simple_tokenize(text.lower()) # Tokenize text\n", " token_ids = [vocab.get(word, vocab['']) for word in tokens] # Convert to IDs\n", " if len(token_ids) < max_len:\n", " token_ids += [vocab['']] * (max_len - len(token_ids)) # Padding\n", " return torch.tensor(token_ids[:max_len], dtype=torch.long) # Trim if too long\n", "\n", " def __len__(self):\n", " return len(self.labels)\n", "\n", " def __getitem__(self, idx):\n", " return self.texts[idx], self.labels[idx]\n", "\n", "\n", "\n", "# Create Vocabulary\n", "all_words = [word for text in train_texts for word in simple_tokenize(text)]\n", "word_freq = Counter(all_words)\n", "print(word_freq)\n", "vocab = {word: i+2 for i, (word, _) in enumerate(word_freq.most_common(10000))} # Top 10k words\n", "vocab[''] = 0\n", "vocab[''] = 1\n", "vocab_size = len(vocab)\n", "print(vocab_size)\n", "\n", "# Create Datasets\n", "train_dataset = SpamDataset(train_texts.tolist(), train_labels.tolist(), vocab)\n", "test_dataset = SpamDataset(test_texts.tolist(), test_labels.tolist(), vocab)\n", "\n", "# Create DataLoaders\n", "batch_size = 32\n", "train_loader = DataLoader(train_dataset, batch_size=batch_size, shuffle=True)\n", "test_loader = DataLoader(test_dataset, batch_size=batch_size)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Transformer Encoder Model" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "class TransformerEncoder(nn.Module):\n", " def __init__(self, d_model=256, num_heads=1, d_ff=512, num_layers=1, vocab_size=10000, max_seq_len=100, dropout=0.1):\n", " super(TransformerEncoder, self).__init__()\n", " \n", " # Embedding & Positional Encoding\n", " self.embedding = nn.Embedding(vocab_size, d_model)\n", " self.positional_encoding = nn.Parameter(torch.zeros(1, max_seq_len, d_model))\n", "\n", " # Transformer Encoder Layers\n", " encoder_layer = nn.TransformerEncoderLayer(\n", " d_model=d_model,\n", " nhead=num_heads,\n", " dim_feedforward=d_ff,\n", " dropout=dropout,\n", " activation='relu',\n", " batch_first=True\n", " )\n", " \n", " self.encoder = nn.TransformerEncoder(encoder_layer, num_layers=num_layers)\n", "\n", " # Classification Head\n", " self.fc = nn.Linear(d_model, 1)\n", " self.sigmoid = nn.Sigmoid()\n", "\n", " def forward(self, x):\n", " x = self.embedding(x) + self.positional_encoding[:, :x.size(1), :]\n", " x = self.encoder(x) # Pass through transformer\n", " x = x[:, 0, :] # Take first token's output (CLS token equivalent)\n", " x = self.fc(x)\n", " return self.sigmoid(x) # Binary classification (spam or not)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Train & Evaluate Model" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/home/zeus/miniconda3/envs/cloudspace/lib/python3.10/site-packages/torch/nn/modules/transformer.py:286: UserWarning: enable_nested_tensor is True, but self.use_nested_tensor is False because encoder_layer.self_attn.num_heads is odd\n", " warnings.warn(f\"enable_nested_tensor is True, but self.use_nested_tensor is False because {why_not_sparsity_fast_path}\")\n", "Epoch 1/10: 100%|██████████| 140/140 [00:09<00:00, 14.09it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1: Loss = 0.2599\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 2/10: 100%|██████████| 140/140 [00:09<00:00, 14.76it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 2: Loss = 0.1236\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 3/10: 100%|██████████| 140/140 [00:09<00:00, 14.92it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 3: Loss = 0.0734\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 4/10: 100%|██████████| 140/140 [00:09<00:00, 14.53it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 4: Loss = 0.0531\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 5/10: 100%|██████████| 140/140 [00:09<00:00, 14.19it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 5: Loss = 0.0716\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 6/10: 100%|██████████| 140/140 [00:09<00:00, 14.52it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 6: Loss = 0.0612\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 7/10: 100%|██████████| 140/140 [00:09<00:00, 14.30it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 7: Loss = 0.0527\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 8/10: 100%|██████████| 140/140 [00:10<00:00, 13.52it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 8: Loss = 0.0391\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 9/10: 100%|██████████| 140/140 [00:11<00:00, 11.78it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 9: Loss = 0.0342\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Epoch 10/10: 100%|██████████| 140/140 [00:10<00:00, 12.76it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 10: Loss = 0.0380\n", "Test Accuracy: 95.52%\n" ] } ], "source": [ "device = torch.device(\"cpu\") # Run on CPU\n", "model = TransformerEncoder(d_model=256, num_heads=1, num_layers=1, vocab_size=vocab_size, max_seq_len=100).to(device)\n", "\n", "criterion = nn.BCELoss() # Binary Cross Entropy for classification\n", "optimizer = optim.Adam(model.parameters(), lr=0.001)\n", "\n", "def train_model(model, train_loader, criterion, optimizer, epochs=10):\n", " model.train()\n", " for epoch in range(epochs):\n", " total_loss = 0\n", " for texts, labels in tqdm(train_loader, desc=f\"Epoch {epoch+1}/{epochs}\"):\n", " texts, labels = texts.to(device), labels.to(device)\n", " optimizer.zero_grad()\n", " outputs = model(texts).squeeze()\n", " loss = criterion(outputs, labels)\n", " loss.backward()\n", " optimizer.step()\n", " total_loss += loss.item()\n", " print(f\"Epoch {epoch+1}: Loss = {total_loss / len(train_loader):.4f}\")\n", "\n", "def evaluate_model(model, test_loader):\n", " model.eval()\n", " correct, total = 0, 0\n", " with torch.no_grad():\n", " for texts, labels in test_loader:\n", " texts, labels = texts.to(device), labels.to(device)\n", " outputs = model(texts).squeeze()\n", " preds = (outputs > 0.5).float()\n", " correct += (preds == labels).sum().item()\n", " total += labels.size(0)\n", " print(f\"Test Accuracy: {100 * correct / total:.2f}%\")\n", "\n", "# Run Training & Evaluation\n", "train_model(model, train_loader, criterion, optimizer, epochs=10)\n", "evaluate_model(model, test_loader)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Save & Test the Model" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "✅ Model and vocabulary saved successfully!\n" ] } ], "source": [ "import torch\n", "import pickle\n", "import json\n", "\n", "# Define paths\n", "MODEL_PATH = \"spam_model.pth\"\n", "VOCAB_PATH = \"vocab.pkl\"\n", "\n", "# Save model\n", "torch.save(model.state_dict(), MODEL_PATH)\n", "\n", "# Save vocabulary\n", "with open(VOCAB_PATH, \"wb\") as f:\n", " pickle.dump(vocab, f)\n", "\n", "print(\"✅ Model and vocabulary saved successfully!\")\n", "\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Load the Model & Vocabulary" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "✅ Model and vocabulary loaded successfully!\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/home/zeus/miniconda3/envs/cloudspace/lib/python3.10/site-packages/torch/nn/modules/transformer.py:286: UserWarning: enable_nested_tensor is True, but self.use_nested_tensor is False because encoder_layer.self_attn.num_heads is odd\n", " warnings.warn(f\"enable_nested_tensor is True, but self.use_nested_tensor is False because {why_not_sparsity_fast_path}\")\n" ] } ], "source": [ "# Load vocabulary\n", "with open(VOCAB_PATH, \"rb\") as f:\n", " vocab = pickle.load(f)\n", "\n", "# Load model\n", "device = torch.device(\"cpu\") # Change to \"cuda\" if using GPU\n", "model = TransformerEncoder(d_model=256, num_heads=1, num_layers=1, vocab_size=len(vocab), max_seq_len=100).to(device)\n", "model.load_state_dict(torch.load(MODEL_PATH, map_location=device))\n", "model.eval() # Set model to evaluation mode\n", "\n", "print(\"✅ Model and vocabulary loaded successfully!\")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Test the Model with a Sample Input" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Prediction: Spam\n" ] } ], "source": [ "def simple_tokenize(text):\n", " return re.findall(r\"\\b\\w+\\b\", text.lower())\n", "def predict(text, model, vocab, max_len=100):\n", " model.eval()\n", " tokens = simple_tokenize(text.lower())\n", " token_ids = [vocab.get(word, vocab['']) for word in tokens]\n", " token_ids += [vocab['']] * (max_len - len(token_ids)) # Pad if needed\n", " input_tensor = torch.tensor([token_ids], dtype=torch.long).to(device)\n", "\n", " with torch.no_grad():\n", " output = model(input_tensor).squeeze().item()\n", " \n", " return \"Spam\" if output > 0.5 else \"Ham\"\n", "\n", "# Test prediction\n", "sample_text = \"FreeMsg Hey there darling it's been 3 week's now and no word back! I'd like some fun you up for it still? Tb ok! XxX std chgs to send, £1.50 to rcv\"\n", "print(f\"Prediction: {predict(sample_text, model, vocab)}\")\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "language_info": { "name": "python" } }, "nbformat": 4, "nbformat_minor": 2 }