diff --git a/.gitignore b/.gitignore index 09f63a5..9bd6391 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,23 @@ -./data/ \ No newline at end of file +__pycache__/ +*.py[cod] +data/ +docs/build/ + +*.so + +bin/ +build/ +develop-eggs/ +dist/ +eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +*.egg-info/ +.installed.cfg +*.egg + +pip-log.txt +pip-delete-this-directory.txt diff --git a/.readthedocs.yml b/.readthedocs.yml new file mode 100644 index 0000000..63398e5 --- /dev/null +++ b/.readthedocs.yml @@ -0,0 +1,16 @@ +# .readthedocs.yml +# Read the Docs configuration file +# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details + +# Required +version: 2 + +# Build documentation in the docs/ directory with Sphinx +sphinx: + configuration: docs/source/conf.py + +# Optionally set the version of Python and requirements required to build your docs +python: + version: 3.6 + install: + - requirements: docs/requirements.txt diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..9513659 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2021- decile.org + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md index 999b36a..541244a 100644 --- a/README.md +++ b/README.md @@ -1 +1,119 @@ -# spear + + +[![Lines of code](https://img.shields.io/tokei/lines/github/decile-team/spear)]() +![visitors](https://visitor-badge.glitch.me/badge?page_id=decile-team/spear) +![PyPI](https://img.shields.io/pypi/v/spear) +[![docs](https://readthedocs.org/projects/spear-decile/badge)](https://spear-decile.readthedocs.io/) +[![license](https://img.shields.io/badge/License-MIT-blue.svg)](https://github.com/decile-team/spear/blob/main/LICENSE.txt) +[![website](https://img.shields.io/badge/website-online-green)](https://decile.org/) + + + +

+
+ +
+

+ +## Semi-Supervised Data Programming for Data Efficient Machine Learning +SPEAR is a library for data programming with semi-supervision. The package implements several recent data programming approaches including facility to programmatically label and build training data. + +### Pipeline +* Design Labeling functions(LFs) +* generate pickle file containing labels by passing raw data to LFs +* Use one of the Label Aggregators(LA) to get final labels + +

+
+ +
+

+ + +### SPEAR provides functionality such as +* development of LFs/rules/heuristics for quick labeling +* compare against several data programming approaches +* compare against semi-supervised data programming approaches +* use subset selection to make best use of the annotation efforts +* facility to store and save data in [pickle file](https://spear-decile.readthedocs.io/en/latest/index.html#spear.utils.data_editor.get_data) + +#### Labelling Functions (LFs) +* discrete LFs - Users can define LFs that return discrete labels +* continuous LFs - return continuous scores/confidence to the labels assigned + +#### Approaches Implemented +You can read [this paper](https://arxiv.org/pdf/2008.09887.pdf) to know about below approaches +* Only-L +* Learning to Reweight +* Posterior Regularization +* Imply Loss +* CAGE +* Joint Learning + +Data folder for SMS & TREC can be found [here](https://drive.google.com/file/d/1CJZ73nNa7Ho0BOSDgGx9CRvXoepVSpet/view?usp=sharing). This folder needs to be placed in the same directory as notebooks folder is in, to run the notebooks or examples. + +Direct download of the zip file can be done via wget using `gdown` library . +```bash +pip install gdown +gdown 1CJZ73nNa7Ho0BOSDgGx9CRvXoepVSpet +``` + +## Installation +* Install Submodlib library +`pip install -i https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ submodlib` +#### Method 1 +To install latest version of SPEAR package using PyPI: + ```python + pip install decile-spear + ``` +#### Method 2 +SPEAR requires Python 3.6 or later. First install [submodlib](https://github.com/decile-team/submodlib#setup). Then install SPEAR: + +```bash +git clone https://github.com/decile-team/spear.git +cd spear +pip install -r requirements/requirements.txt +``` + +## Citation +```bibtex +@misc{abhishek2021spear, + title={SPEAR : Semi-supervised Data Programming in Python}, + author={Guttu Sai Abhishek and Harshad Ingole and Parth Laturia and Vineeth Dorna and Ayush Maheshwari and Ganesh Ramakrishnan and Rishabh Iyer}, + year={2021}, + eprint={2108.00373}, + archivePrefix={arXiv}, + primaryClass={cs.LG} +} +``` + +### Quick Links +* [SPEAR tutorials](https://github.com/decile-team/spear/tree/main/notebooks) +* [SPEAR documentation](https://spear-decile.readthedocs.io/) +* [Demonstration of Cage and Joint Learning using SPEAR](https://youtu.be/qdukvO3B8YU) +* [Demonstration of Imply Loss, Learn2Reweight using SPEAR](https://youtu.be/SN9YYK4FlU0) +* SMS SPAM: [CAGE colab](https://colab.research.google.com/drive/1vec-Q-xO9wQtM3p_CZ7237gCq0xIR9b9?usp=sharing), [JL colab](https://colab.research.google.com/drive/1HqkqQ8ytWjP9on3du-vVB07IQvo8Li3W?usp=sharing) +* [DECILE website](https://decile.org) +* [SubModLib - Summarize massive datasets using submodular optimization](https://github.com/decile-team/submodlib) +* [DISTIL- Deep Diversified Interactive Learning](https://github.com/decile-team/distil) +* [CORDS- COResets and Data Subset Selection](https://github.com/decile-team/cords) + + + +### Acknowledgment +SPEAR takes inspiration, builds upon, and uses pieces of code from several open source codebases. These include [Snorkel](https://github.com/snorkel-team/snorkel), [Snuba](https://github.com/HazyResearch/reef) & [Imply Loss](https://github.com/awasthiabhijeet/Learning-From-Rules). Also, SPEAR uses [SUBMODLIB](https://github.com/decile-team/submodlib) for subset selection, which is provided by [DECILE](https://decile.org/) too. + +### Team +SPEAR is created and maintained by [Ayush](https://www.cse.iitb.ac.in/~ayusham), [Abhishek](https://www.linkedin.com/in/guttu-sai-abhishek/), [Vineeth](https://www.cse.iitb.ac.in/~vineethdorna/), [Harshad](https://www.cse.iitb.ac.in/~harshadingole/), [Parth](https://www.cse.iitb.ac.in/~parthlaturia/), [Pankaj](https://www.linkedin.com/in/pankaj-singh-b000894a/), [Rishabh Iyer](https://www.rishiyer.com), and [Ganesh Ramakrishnan](https://www.cse.iitb.ac.in/~ganesh/). We look forward to have SPEAR more community driven. Please use it and contribute to it for your research, and feel free to use it for your commercial projects. We will add the major contributors here. + + +## Publications +[1] Abhishek et al. [SPEAR : Semi-supervised Data Programming in Python](https://arxiv.org/abs/2108.00373), Demonstration Paper. + +[2] Maheshwari et al. [Learning to Robustly Aggregate Labeling Functions for Semi-supervised Data Programming](https://arxiv.org/abs/2109.11410), In Findings of ACL (Long Paper) 2022. + +[3] Maheshwari, Ayush, et al. [Data Programming using Semi-Supervision and Subset Selection](https://arxiv.org/abs/2008.09887), In Findings of ACL (Long Paper) 2021. + +[4] Chatterjee, Oishik, Ganesh Ramakrishnan, and Sunita Sarawagi. [Data Programming using Continuous and Quality-Guided Labeling Functions](https://arxiv.org/abs/1911.09860), In AAAI 2020. + +[5] Sahay, Atul, et al. [Rule augmented unsupervised constituency parsing](https://arxiv.org/abs/2105.10193), In Findings of ACL (Short Paper) 2021. diff --git a/__init__.py b/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/docs/make.bat b/docs/make.bat index 6247f7e..747ffb7 100644 --- a/docs/make.bat +++ b/docs/make.bat @@ -10,8 +10,6 @@ if "%SPHINXBUILD%" == "" ( set SOURCEDIR=source set BUILDDIR=build -if "%1" == "" goto help - %SPHINXBUILD% >NUL 2>NUL if errorlevel 9009 ( echo. @@ -21,10 +19,12 @@ if errorlevel 9009 ( echo.may add the Sphinx directory to PATH. echo. echo.If you don't have Sphinx installed, grab it from - echo.http://sphinx-doc.org/ + echo.https://www.sphinx-doc.org/ exit /b 1 ) +if "%1" == "" goto help + %SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% goto end diff --git a/docs/requirements.txt b/docs/requirements.txt new file mode 100644 index 0000000..f0a4e3d --- /dev/null +++ b/docs/requirements.txt @@ -0,0 +1,9 @@ +sphinx-rtd-theme==0.5.1 +sphinxcontrib-applehelp==1.0.2 +sphinxcontrib-bibtex==2.2.0 +sphinxcontrib-devhelp==1.0.2 +sphinxcontrib-htmlhelp==1.0.3 +sphinxcontrib-jsmath==1.0.1 +sphinxcontrib-napoleon==0.7 +sphinxcontrib-qthelp==1.0.3 +sphinxcontrib-serializinghtml==1.1.4 \ No newline at end of file diff --git a/docs/source/conf.py b/docs/source/conf.py index e46fabb..b8ffc8c 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -14,13 +14,13 @@ import sys sys.path.insert(0, os.path.abspath('../..')) + master_doc = 'index' -autodoc_mock_imports = ["torch", "sklearn", "utils_jl", "models", "tensorflow", "snorkel", "my_checkmate", "my_checkpoints","my_config", "my_data_feeder_utils", "my_data_types", "my_gen_cross_entropy_utils", "my_pr_utils", "my_test", "my_train", "my_utils"] # -- Project information ----------------------------------------------------- project = 'SPEAR(DECILE)' -copyright = '2021, Ganesh_Sir, Ayush_Maheshwari, Guttu_Sai_Abhishek, Harshad_Ingole, Parth_Laturia, Vineeth_Dorna' -author = 'Ganesh_Sir, Ayush_Maheshwari, Guttu_Sai_Abhishek, Harshad_Ingole, Parth_Laturia, Vineeth_Dorna' +copyright = '2021 DECILE' +author = 'Ayush_Maheshwari, Guttu_Sai_Abhishek, Harshad_Ingole, Parth_Laturia, Vineeth_Dorna' # The full version, including alpha/beta/rc tags release = '0.0.1' @@ -42,9 +42,7 @@ #'numpydoc' 'sphinxcontrib.napoleon', 'sphinxcontrib.bibtex' -# 'rinoh.frontend.sphinx' ] - bibtex_bibfiles = ['refs.bib'] # Add any paths that contain templates here, relative to this directory. @@ -61,13 +59,11 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # -html_theme = 'sphinx_rtd_theme' #'alabaster' +html_theme = 'sphinx_rtd_theme' # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". -#html_static_path = ['_static'] -html_static_path = [] +html_static_path = ['_static'] -#below line makes functions to print in order they were defined in files. added by abhishek -autodoc_member_order = 'bysource' \ No newline at end of file +autodoc_member_order = 'bysource' diff --git a/docs/source/index.rst b/docs/source/index.rst index d01c869..2e2ee7f 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -1,19 +1,30 @@ -.. SPEAR(DECILE) documentation master file, created by - sphinx-quickstart on Sat Apr 17 15:41:01 2021. +.. SPEAR documentation master file, created by + sphinx-quickstart on Wed Apr 12 13:40:49 2023. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. - -SPEAR(DECILE) documentation! -======================================== +Welcome to SPEAR's documentation! +================================= +SPEAR: **S**\ emi-Su\ **p**\ ervis\ **e**\ d D\ **a**\ ta P\ **r**\ ogramming .. toctree:: :maxdepth: 5 :caption: Contents: - - + +We present SPEAR, an open-source python library for data programming with semi-supervision. +The package implements several recent data programming approaches including facility to programmatically +label and build training data. SPEAR facilitates weak supervision, either pre-defined, in the form of +rules/heuristics and associate 'noisy' labels(or prelabels) to the training dataset. These noisy labels +are aggregated to assign labels to the unlabeled data for downstream tasks. Several label aggregation +approaches have been proposed that aggregate the noisy labels and then train the 'noisily' labeled set in +a cascaded manner, while other approaches 'jointly' aggregates and trains the model. In the python package, we +integrate several cascade and joint data-programming approaches while providing facility to define rules. +The code and tutorial notebooks are available `here `_. + Labeling -================================ +========== + +This module takes inspiration and build upon :cite:t:`snorkel:2020` LF ------ @@ -34,16 +45,29 @@ LFSet ------ .. automodule:: spear.labeling.lf_set.core :members: LFSet + +LFgen +------ +.. automodule:: spear.labeling.lf_gen.core + :members: LFgenerator, LFgenerator2 LFAnalysis ------------- .. automodule:: spear.labeling.analysis.core :members: LFAnalysis -Noisy Labels +Pre Labels --------------- -.. automodule:: spear.labeling.noisy_labels.core - :members: NoisyLabels +.. automodule:: spear.labeling.prelabels.core + :members: PreLabels + +---- + +WISDOM +================== + +.. automodule:: spear.wisdom.core + :members: Reweight ---- @@ -52,7 +76,7 @@ CAGE :cite:t:`2020:CAGE` -.. automodule:: spear.Cage.core +.. automodule:: spear.cage.core :members: ---- @@ -60,11 +84,22 @@ CAGE Joint Learning(JL) ================== -:cite:t:`2020:JL` +:cite:t:`DBLP:journals/corr/abs-2008-09887` From here on, Feature model(fm) imply Feature based classification model -.. automodule:: spear.JL.core +.. automodule:: spear.jl.core + :members: + +---- + +Subset Selection +================== + +Uses facilityLocation from `submodlib `_ library which is also provided by `DECILE `_ for submodular optimization + + +.. automodule:: spear.jl.subset_selection :members: ---- @@ -72,12 +107,16 @@ Joint Learning(JL) CAGE, JL - UTILS ================== +Note: The arguments whose shapes are mentioned in '[....]' are torch tensors. + Data loaders --------------- -.. automodule:: spear.utils.data_editer +.. automodule:: spear.utils.data_editor :members: +---- + CAGE and JL utils ------------------ @@ -86,82 +125,86 @@ CAGE and JL utils .. automodule:: spear.utils.utils_cage :members: +---- + JL utils --------- .. automodule:: spear.utils.utils_jl :members: +---- + Feature-based Models --------------------- -.. automodule:: spear.JL.models.models +.. automodule:: spear.jl.models.models :members: ---- -IMPLYLOSS +Hls ============ -Implyloss Checkmate +Hls Checkmate --------------------------- -.. automodule:: spear.Implyloss.my_checkmate +.. automodule:: spear.Implyloss.checkmate :members: -Implyloss Checkpoints +Hls Checkpoints --------------------------- -.. automodule:: spear.Implyloss.my_checkpoints +.. automodule:: spear.Implyloss.checkpoints :members: -Implyloss Config ---------------------------- -.. automodule:: spear.Implyloss.my_config - :members: +.. Implyloss Config +.. --------------------------- +.. .. automodule:: spear.Implyloss.config +.. :members: -Implyloss Data Feeders +Hls Data Feeders --------------------------- -.. automodule:: spear.Implyloss.my_data_feeders +.. automodule:: spear.Implyloss.data_feeders :members: -Implyloss Data Feeders Utils +Hls Data Feeders Utils ---------------------------------- -.. automodule:: spear.Implyloss.my_data_feeder_utils +.. automodule:: spear.Implyloss.data_feeder_utils :members: -Implyloss Gen Cross Entropy Utils +Hls Gen Cross Entropy Utils ------------------------------------ -.. automodule:: spear.Implyloss.my_gen_cross_entropy_utils +.. automodule:: spear.Implyloss.gen_cross_entropy_utils :members: -Implyloss Model +Hls Model --------------------------- -.. automodule:: spear.Implyloss.my_model +.. automodule:: spear.Implyloss.model :members: -Implyloss PR Utils +Hls PR Utils --------------------------- -.. automodule:: spear.Implyloss.my_pr_utils +.. automodule:: spear.Implyloss.pr_utils :members: -Implyloss Test +Hls Test --------------------------- -.. automodule:: spear.Implyloss.my_test +.. automodule:: spear.Implyloss.test :members: -Implyloss Train +Hls Train --------------------------- -.. automodule:: spear.Implyloss.my_train +.. automodule:: spear.Implyloss.train :members: -Implyloss Utils +Hls Utils --------------------------- -.. automodule:: spear.Implyloss.my_utils +.. automodule:: spear.Implyloss.utils :members: Bibilography ============= -.. bibliography:: \ No newline at end of file +.. bibliography:: diff --git a/docs/source/modules.rst b/docs/source/modules.rst new file mode 100644 index 0000000..a179fa7 --- /dev/null +++ b/docs/source/modules.rst @@ -0,0 +1,7 @@ +spear +===== + +.. toctree:: + :maxdepth: 4 + + spear diff --git a/docs/source/refs.bib b/docs/source/refs.bib index a090b4c..3242c3a 100644 --- a/docs/source/refs.bib +++ b/docs/source/refs.bib @@ -1,13 +1,41 @@ -@Book{2020:CAGE, - author = {Oishik Chatterjee and Ganesh Ramakrishnan and Sunita Sarawagi}, - title = {Robust Data Programming with Precision-guided Labeling Functions}, - publisher = {Proceedings of the AAAI Conference on Artificial Intelligence}, - year = {2020} +@article{2020:CAGE, + title={Robust Data Programming with Precision-guided Labeling Functions}, + volume={34}, + url={https://ojs.aaai.org/index.php/AAAI/article/view/5742}, + DOI={10.1609/aaai.v34i04.5742}, + abstractNote={<p>Scarcity of labeled data is a bottleneck for supervised learning models. A paradigm that has evolved for dealing with this problem is data programming. An existing data programming paradigm allows human supervision to be provided as a set of discrete labeling functions (LF) that output possibly noisy labels to input instances and a generative model for consolidating the weak labels. We enhance and generalize this paradigm by supporting functions that output a continuous score (instead of a hard label) that noisily correlates with labels. We show across five applications that continuous LFs are more natural to program and lead to improved recall. We also show that accuracy of existing generative models is unstable with respect to initialization, training epochs, and learning rates. We give control to the data programmer to guide the training process by providing intuitive quality guides with each LF. We propose an elegant method of incorporating these guides into the generative model. Our overall method, called CAGE, makes the data programming paradigm more reliable than other tricks based on initialization, sign-penalties, or soft-accuracy constraints.</p>}, + number={04}, + journal={Proceedings of the AAAI Conference on Artificial Intelligence}, + author={Chatterjee, Oishik and Ramakrishnan, Ganesh and Sarawagi, Sunita}, + year={2020}, + month={Apr.}, + pages={3397-3404} } + +@article{DBLP:journals/corr/abs-2008-09887, + author = {Ayush Maheshwari and + Oishik Chatterjee and + KrishnaTeja Killamsetty and + Rishabh K. Iyer and + Ganesh Ramakrishnan}, + title = {Data Programming using Semi-Supervision and Subset Selection}, + journal = {CoRR}, + volume = {abs/2008.09887}, + year = {2020}, + url = {https://arxiv.org/abs/2008.09887}, + archivePrefix = {arXiv}, + eprint = {2008.09887}, + timestamp = {Fri, 28 Aug 2020 12:11:44 +0200}, + biburl = {https://dblp.org/rec/journals/corr/abs-2008-09887.bib}, + bibsource = {dblp computer science bibliography, https://dblp.org} } -@Book{2020:JL, - author = {Ayush Maheshwari and Oishik Chatterjee and KrishnaTeja Killamsetty and Rishabh Iyer and Ganesh Ramakrishnan}, - title = {Data Programming using Semi-Supervision and Subset Selection}, - publisher = {}, - year = {2020} +@article{snorkel:2020, +author = {Ratner, Alexander and Bach, Stephen and Ehrenberg, Henry and Fries, Jason and Wu, Sen and Ré, Christopher}, +year = {2020}, +month = {05}, +pages = {}, +title = {Snorkel: rapid training data creation with weak supervision}, +volume = {29}, +journal = {The VLDB Journal}, +doi = {10.1007/s00778-019-00552-1} } \ No newline at end of file diff --git a/docs/source/spear.Implyloss.rst b/docs/source/spear.Implyloss.rst new file mode 100644 index 0000000..5cf571d --- /dev/null +++ b/docs/source/spear.Implyloss.rst @@ -0,0 +1,117 @@ +spear.Implyloss package +======================= + +Submodules +---------- + +spear.Implyloss.checkmate module +-------------------------------- + +.. automodule:: spear.Implyloss.checkmate + :members: + :undoc-members: + :show-inheritance: + +spear.Implyloss.checkpoints module +---------------------------------- + +.. automodule:: spear.Implyloss.checkpoints + :members: + :undoc-members: + :show-inheritance: + +spear.Implyloss.data\_feeder\_utils module +------------------------------------------ + +.. automodule:: spear.Implyloss.data_feeder_utils + :members: + :undoc-members: + :show-inheritance: + +spear.Implyloss.data\_feeders module +------------------------------------ + +.. automodule:: spear.Implyloss.data_feeders + :members: + :undoc-members: + :show-inheritance: + +spear.Implyloss.data\_types module +---------------------------------- + +.. automodule:: spear.Implyloss.data_types + :members: + :undoc-members: + :show-inheritance: + +spear.Implyloss.gen\_cross\_entropy\_utils module +------------------------------------------------- + +.. automodule:: spear.Implyloss.gen_cross_entropy_utils + :members: + :undoc-members: + :show-inheritance: + +spear.Implyloss.main module +--------------------------- + +.. automodule:: spear.Implyloss.main + :members: + :undoc-members: + :show-inheritance: + +spear.Implyloss.model module +---------------------------- + +.. automodule:: spear.Implyloss.model + :members: + :undoc-members: + :show-inheritance: + +spear.Implyloss.networks module +------------------------------- + +.. automodule:: spear.Implyloss.networks + :members: + :undoc-members: + :show-inheritance: + +spear.Implyloss.pr\_utils module +-------------------------------- + +.. automodule:: spear.Implyloss.pr_utils + :members: + :undoc-members: + :show-inheritance: + +spear.Implyloss.test module +--------------------------- + +.. automodule:: spear.Implyloss.test + :members: + :undoc-members: + :show-inheritance: + +spear.Implyloss.train module +---------------------------- + +.. automodule:: spear.Implyloss.train + :members: + :undoc-members: + :show-inheritance: + +spear.Implyloss.utils module +---------------------------- + +.. automodule:: spear.Implyloss.utils + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: spear.Implyloss + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/spear.cage.rst b/docs/source/spear.cage.rst new file mode 100644 index 0000000..4bf6af2 --- /dev/null +++ b/docs/source/spear.cage.rst @@ -0,0 +1,21 @@ +spear.cage package +================== + +Submodules +---------- + +spear.cage.core module +---------------------- + +.. automodule:: spear.cage.core + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: spear.cage + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/spear.jl.models.rst b/docs/source/spear.jl.models.rst new file mode 100644 index 0000000..4a7b600 --- /dev/null +++ b/docs/source/spear.jl.models.rst @@ -0,0 +1,21 @@ +spear.jl.models package +======================= + +Submodules +---------- + +spear.jl.models.models module +----------------------------- + +.. automodule:: spear.jl.models.models + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: spear.jl.models + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/spear.jl.rst b/docs/source/spear.jl.rst new file mode 100644 index 0000000..fe0a539 --- /dev/null +++ b/docs/source/spear.jl.rst @@ -0,0 +1,37 @@ +spear.jl package +================ + +Subpackages +----------- + +.. toctree:: + :maxdepth: 4 + + spear.jl.models + +Submodules +---------- + +spear.jl.core module +-------------------- + +.. automodule:: spear.jl.core + :members: + :undoc-members: + :show-inheritance: + +spear.jl.subset\_selection module +--------------------------------- + +.. automodule:: spear.jl.subset_selection + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: spear.jl + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/spear.labeling.analysis.rst b/docs/source/spear.labeling.analysis.rst new file mode 100644 index 0000000..75d547a --- /dev/null +++ b/docs/source/spear.labeling.analysis.rst @@ -0,0 +1,21 @@ +spear.labeling.analysis package +=============================== + +Submodules +---------- + +spear.labeling.analysis.core module +----------------------------------- + +.. automodule:: spear.labeling.analysis.core + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: spear.labeling.analysis + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/spear.labeling.apply.rst b/docs/source/spear.labeling.apply.rst new file mode 100644 index 0000000..b076af0 --- /dev/null +++ b/docs/source/spear.labeling.apply.rst @@ -0,0 +1,21 @@ +spear.labeling.apply package +============================ + +Submodules +---------- + +spear.labeling.apply.core module +-------------------------------- + +.. automodule:: spear.labeling.apply.core + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: spear.labeling.apply + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/spear.labeling.continuous_scoring.rst b/docs/source/spear.labeling.continuous_scoring.rst new file mode 100644 index 0000000..e488890 --- /dev/null +++ b/docs/source/spear.labeling.continuous_scoring.rst @@ -0,0 +1,21 @@ +spear.labeling.continuous\_scoring package +========================================== + +Submodules +---------- + +spear.labeling.continuous\_scoring.core module +---------------------------------------------- + +.. automodule:: spear.labeling.continuous_scoring.core + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: spear.labeling.continuous_scoring + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/spear.labeling.data_types.rst b/docs/source/spear.labeling.data_types.rst new file mode 100644 index 0000000..d9099f2 --- /dev/null +++ b/docs/source/spear.labeling.data_types.rst @@ -0,0 +1,21 @@ +spear.labeling.data\_types package +================================== + +Submodules +---------- + +spear.labeling.data\_types.data module +-------------------------------------- + +.. automodule:: spear.labeling.data_types.data + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: spear.labeling.data_types + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/spear.labeling.lf.rst b/docs/source/spear.labeling.lf.rst new file mode 100644 index 0000000..b5879b7 --- /dev/null +++ b/docs/source/spear.labeling.lf.rst @@ -0,0 +1,21 @@ +spear.labeling.lf package +========================= + +Submodules +---------- + +spear.labeling.lf.core module +----------------------------- + +.. automodule:: spear.labeling.lf.core + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: spear.labeling.lf + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/spear.labeling.lf_gen.Loaders.rst b/docs/source/spear.labeling.lf_gen.Loaders.rst new file mode 100644 index 0000000..97b7ea6 --- /dev/null +++ b/docs/source/spear.labeling.lf_gen.Loaders.rst @@ -0,0 +1,69 @@ +spear.labeling.lf\_gen.Loaders package +====================================== + +Submodules +---------- + +spear.labeling.lf\_gen.Loaders.imdb\_loader module +-------------------------------------------------- + +.. automodule:: spear.labeling.lf_gen.Loaders.imdb_loader + :members: + :undoc-members: + :show-inheritance: + +spear.labeling.lf\_gen.Loaders.loader module +-------------------------------------------- + +.. automodule:: spear.labeling.lf_gen.Loaders.loader + :members: + :undoc-members: + :show-inheritance: + +spear.labeling.lf\_gen.Loaders.sms\_loader module +------------------------------------------------- + +.. automodule:: spear.labeling.lf_gen.Loaders.sms_loader + :members: + :undoc-members: + :show-inheritance: + +spear.labeling.lf\_gen.Loaders.sst5\_loader module +-------------------------------------------------- + +.. automodule:: spear.labeling.lf_gen.Loaders.sst5_loader + :members: + :undoc-members: + :show-inheritance: + +spear.labeling.lf\_gen.Loaders.trec\_loader module +-------------------------------------------------- + +.. automodule:: spear.labeling.lf_gen.Loaders.trec_loader + :members: + :undoc-members: + :show-inheritance: + +spear.labeling.lf\_gen.Loaders.twitter\_loader module +----------------------------------------------------- + +.. automodule:: spear.labeling.lf_gen.Loaders.twitter_loader + :members: + :undoc-members: + :show-inheritance: + +spear.labeling.lf\_gen.Loaders.youtube\_loader module +----------------------------------------------------- + +.. automodule:: spear.labeling.lf_gen.Loaders.youtube_loader + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: spear.labeling.lf_gen.Loaders + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/spear.labeling.lf_gen.rst b/docs/source/spear.labeling.lf_gen.rst new file mode 100644 index 0000000..25d3255 --- /dev/null +++ b/docs/source/spear.labeling.lf_gen.rst @@ -0,0 +1,29 @@ +spear.labeling.lf\_gen package +============================== + +Subpackages +----------- + +.. toctree:: + :maxdepth: 4 + + spear.labeling.lf_gen.Loaders + +Submodules +---------- + +spear.labeling.lf\_gen.core module +---------------------------------- + +.. automodule:: spear.labeling.lf_gen.core + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: spear.labeling.lf_gen + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/spear.labeling.lf_set.rst b/docs/source/spear.labeling.lf_set.rst new file mode 100644 index 0000000..4a9f976 --- /dev/null +++ b/docs/source/spear.labeling.lf_set.rst @@ -0,0 +1,21 @@ +spear.labeling.lf\_set package +============================== + +Submodules +---------- + +spear.labeling.lf\_set.core module +---------------------------------- + +.. automodule:: spear.labeling.lf_set.core + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: spear.labeling.lf_set + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/spear.labeling.prelabels.rst b/docs/source/spear.labeling.prelabels.rst new file mode 100644 index 0000000..ef596b9 --- /dev/null +++ b/docs/source/spear.labeling.prelabels.rst @@ -0,0 +1,21 @@ +spear.labeling.prelabels package +================================ + +Submodules +---------- + +spear.labeling.prelabels.core module +------------------------------------ + +.. automodule:: spear.labeling.prelabels.core + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: spear.labeling.prelabels + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/spear.labeling.preprocess.rst b/docs/source/spear.labeling.preprocess.rst new file mode 100644 index 0000000..800a45d --- /dev/null +++ b/docs/source/spear.labeling.preprocess.rst @@ -0,0 +1,21 @@ +spear.labeling.preprocess package +================================= + +Submodules +---------- + +spear.labeling.preprocess.core module +------------------------------------- + +.. automodule:: spear.labeling.preprocess.core + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: spear.labeling.preprocess + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/spear.labeling.rst b/docs/source/spear.labeling.rst new file mode 100644 index 0000000..9fe6fad --- /dev/null +++ b/docs/source/spear.labeling.rst @@ -0,0 +1,27 @@ +spear.labeling package +====================== + +Subpackages +----------- + +.. toctree:: + :maxdepth: 4 + + spear.labeling.analysis + spear.labeling.apply + spear.labeling.continuous_scoring + spear.labeling.data_types + spear.labeling.lf + spear.labeling.lf_gen + spear.labeling.lf_set + spear.labeling.prelabels + spear.labeling.preprocess + spear.labeling.utils + +Module contents +--------------- + +.. automodule:: spear.labeling + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/spear.labeling.utils.generation.rst b/docs/source/spear.labeling.utils.generation.rst new file mode 100644 index 0000000..8d48b28 --- /dev/null +++ b/docs/source/spear.labeling.utils.generation.rst @@ -0,0 +1,69 @@ +spear.labeling.utils.generation package +======================================= + +Submodules +---------- + +spear.labeling.utils.generation.DeepLSTM module +----------------------------------------------- + +.. automodule:: spear.labeling.utils.generation.DeepLSTM + :members: + :undoc-members: + :show-inheritance: + +spear.labeling.utils.generation.greedy\_filtering\_GraphCut module +------------------------------------------------------------------ + +.. automodule:: spear.labeling.utils.generation.greedy_filtering_GraphCut + :members: + :undoc-members: + :show-inheritance: + +spear.labeling.utils.generation.heuristic\_generator module +----------------------------------------------------------- + +.. automodule:: spear.labeling.utils.generation.heuristic_generator + :members: + :undoc-members: + :show-inheritance: + +spear.labeling.utils.generation.label\_aggregator module +-------------------------------------------------------- + +.. automodule:: spear.labeling.utils.generation.label_aggregator + :members: + :undoc-members: + :show-inheritance: + +spear.labeling.utils.generation.others module +--------------------------------------------- + +.. automodule:: spear.labeling.utils.generation.others + :members: + :undoc-members: + :show-inheritance: + +spear.labeling.utils.generation.synthesizer module +-------------------------------------------------- + +.. automodule:: spear.labeling.utils.generation.synthesizer + :members: + :undoc-members: + :show-inheritance: + +spear.labeling.utils.generation.verifier module +----------------------------------------------- + +.. automodule:: spear.labeling.utils.generation.verifier + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: spear.labeling.utils.generation + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/spear.labeling.utils.rst b/docs/source/spear.labeling.utils.rst new file mode 100644 index 0000000..cb14245 --- /dev/null +++ b/docs/source/spear.labeling.utils.rst @@ -0,0 +1,45 @@ +spear.labeling.utils package +============================ + +Subpackages +----------- + +.. toctree:: + :maxdepth: 4 + + spear.labeling.utils.generation + +Submodules +---------- + +spear.labeling.utils.data\_operators module +------------------------------------------- + +.. automodule:: spear.labeling.utils.data_operators + :members: + :undoc-members: + :show-inheritance: + +spear.labeling.utils.pickle module +---------------------------------- + +.. automodule:: spear.labeling.utils.pickle + :members: + :undoc-members: + :show-inheritance: + +spear.labeling.utils.plot module +-------------------------------- + +.. automodule:: spear.labeling.utils.plot + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: spear.labeling.utils + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/spear.rst b/docs/source/spear.rst new file mode 100644 index 0000000..f333c2c --- /dev/null +++ b/docs/source/spear.rst @@ -0,0 +1,23 @@ +spear package +============= + +Subpackages +----------- + +.. toctree:: + :maxdepth: 4 + + spear.Implyloss + spear.cage + spear.jl + spear.labeling + spear.utils + spear.wisdom + +Module contents +--------------- + +.. automodule:: spear + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/spear.utils.rst b/docs/source/spear.utils.rst new file mode 100644 index 0000000..83a8eac --- /dev/null +++ b/docs/source/spear.utils.rst @@ -0,0 +1,77 @@ +spear.utils package +=================== + +Submodules +---------- + +spear.utils.data\_editor module +------------------------------- + +.. automodule:: spear.utils.data_editor + :members: + :undoc-members: + :show-inheritance: + +spear.utils.deep\_net module +---------------------------- + +.. automodule:: spear.utils.deep_net + :members: + :undoc-members: + :show-inheritance: + +spear.utils.gpu\_weighted\_cage module +-------------------------------------- + +.. automodule:: spear.utils.gpu_weighted_cage + :members: + :undoc-members: + :show-inheritance: + +spear.utils.logistic\_regression module +--------------------------------------- + +.. automodule:: spear.utils.logistic_regression + :members: + :undoc-members: + :show-inheritance: + +spear.utils.losses module +------------------------- + +.. automodule:: spear.utils.losses + :members: + :undoc-members: + :show-inheritance: + +spear.utils.utils\_cage module +------------------------------ + +.. automodule:: spear.utils.utils_cage + :members: + :undoc-members: + :show-inheritance: + +spear.utils.utils\_jl module +---------------------------- + +.. automodule:: spear.utils.utils_jl + :members: + :undoc-members: + :show-inheritance: + +spear.utils.weighted\_cage module +--------------------------------- + +.. automodule:: spear.utils.weighted_cage + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: spear.utils + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/spear.wisdom.rst b/docs/source/spear.wisdom.rst new file mode 100644 index 0000000..f18c41f --- /dev/null +++ b/docs/source/spear.wisdom.rst @@ -0,0 +1,21 @@ +spear.wisdom package +==================== + +Submodules +---------- + +spear.wisdom.core module +------------------------ + +.. automodule:: spear.wisdom.core + :members: + :undoc-members: + :show-inheritance: + +Module contents +--------------- + +.. automodule:: spear.wisdom + :members: + :undoc-members: + :show-inheritance: diff --git a/examples/SMS_SPAM/apply.py b/examples/SMS_SPAM/apply.py index 07c7053..1f44093 100644 --- a/examples/SMS_SPAM/apply.py +++ b/examples/SMS_SPAM/apply.py @@ -1,50 +1,24 @@ import sys sys.path.append('../../') -import re import numpy as np from spear.labeling import PreLabels from lfs import rules, ClassLabels -from utils import load_data_to_numpy +from utils import load_data_to_numpy, get_various_data X, X_feats, Y = load_data_to_numpy() -test_size = 200 validation_size = 100 +test_size = 200 L_size = 100 -# U_size = X.size - L_size - validation_size - test_size -U_size = 300 - - -index = np.arange(X.size) -index = np.random.permutation(index) -X = X[index] -Y = Y[index] -X_feats = X_feats[index] - -X_V = X[-validation_size:] -Y_V = Y[-validation_size:] -X_feats_V = X_feats[-validation_size:] -R_V = np.zeros((validation_size,len(rules.get_lfs()))) - -X_T = X[-(validation_size+test_size):-validation_size] -Y_T = Y[-(validation_size+test_size):-validation_size] -X_feats_T = X_feats[-(validation_size+test_size):-validation_size] -R_T = np.zeros((test_size,len(rules.get_lfs()))) - -X_L = X[-(validation_size+test_size+L_size):-(validation_size+test_size)] -Y_L = Y[-(validation_size+test_size+L_size):-(validation_size+test_size)] -X_feats_L = X_feats[-(validation_size+test_size+L_size):-(validation_size+test_size)] -R_L = np.zeros((L_size,len(rules.get_lfs()))) +U_size = X.size - L_size - validation_size - test_size +# U_size = 300 -# X_U = X[:-(validation_size+test_size+L_size)] -X_U = X[:U_size] -X_feats_U = X_feats[:U_size] -# Y_U = Y[:-(validation_size+test_size+L_size)] -R_U = np.zeros((U_size,len(rules.get_lfs()))) +X_V,Y_V,X_feats_V,R_V, X_T,Y_T,X_feats_T,R_T, X_L,Y_L,X_feats_L,R_L, X_U,X_feats_U,R_U = get_various_data(X,Y,\ + X_feats, len(rules.get_lfs()),validation_size,test_size,L_size,U_size) sms_noisy_labels = PreLabels(name="sms", diff --git a/examples/SMS_SPAM/cage.py b/examples/SMS_SPAM/cage.py index b3f0376..1610ce5 100644 --- a/examples/SMS_SPAM/cage.py +++ b/examples/SMS_SPAM/cage.py @@ -2,7 +2,7 @@ sys.path.append('../../') import numpy as np -from spear.Cage import Cage +from spear.cage import Cage from spear.utils import get_data, get_classes path_json = 'data_pipeline/sms_json.json' @@ -31,12 +31,12 @@ print("labels shape: ",labels.shape) #---------------use of fit_and_predict------------------ -# labels = cage.fit_and_predict(U_path_pkl, T_path_pkl, log_path_1, need_strings=False) -# print("labels shape: ", labels.shape) +labels = cage.fit_and_predict(U_path_pkl, T_path_pkl, log_path_1, need_strings=False) +print("labels shape: ", labels.shape) #---------------use of fit_and_predict------------------ -# labels_strings = cage.fit_and_predict(U_path_pkl, T_path_pkl, log_path_1, need_strings=True) -# print("labels_strings shape: ", labels_strings.shape) +labels_strings = cage.fit_and_predict(U_path_pkl, T_path_pkl, log_path_1, need_strings=True) +print("labels_strings shape: ", labels_strings.shape) cage.save_params('params/sms_cage_params.pkl') @@ -45,8 +45,8 @@ #-----------PREDICT--------- #---------------use of predict_proba------------------ -# probs_test = cage.predict_proba(T_path_pkl) -# print("probs_test shape: ",probs_test.shape) +probs_test = cage.predict_proba(T_path_pkl) +print("probs_test shape: ",probs_test.shape) #---------------use of predict------------------ labels_test = cage.predict(T_path_pkl, need_strings = False) diff --git a/examples/SMS_SPAM/data_pipeline/sms_pickle_L.pkl b/examples/SMS_SPAM/data_pipeline/sms_pickle_L.pkl index 1b186bc..721ea61 100644 Binary files a/examples/SMS_SPAM/data_pipeline/sms_pickle_L.pkl and b/examples/SMS_SPAM/data_pipeline/sms_pickle_L.pkl differ diff --git a/examples/SMS_SPAM/data_pipeline/sms_pickle_T.pkl b/examples/SMS_SPAM/data_pipeline/sms_pickle_T.pkl index fb77408..ee05f0b 100644 Binary files a/examples/SMS_SPAM/data_pipeline/sms_pickle_T.pkl and b/examples/SMS_SPAM/data_pipeline/sms_pickle_T.pkl differ diff --git a/examples/SMS_SPAM/data_pipeline/sms_pickle_U.pkl b/examples/SMS_SPAM/data_pipeline/sms_pickle_U.pkl index 1a09d52..d00a10f 100644 Binary files a/examples/SMS_SPAM/data_pipeline/sms_pickle_U.pkl and b/examples/SMS_SPAM/data_pipeline/sms_pickle_U.pkl differ diff --git a/examples/SMS_SPAM/data_pipeline/sms_pickle_V.pkl b/examples/SMS_SPAM/data_pipeline/sms_pickle_V.pkl index 2b503e2..a6abc7b 100644 Binary files a/examples/SMS_SPAM/data_pipeline/sms_pickle_V.pkl and b/examples/SMS_SPAM/data_pipeline/sms_pickle_V.pkl differ diff --git a/examples/SMS_SPAM/jl.py b/examples/SMS_SPAM/jl.py index 09f5ba3..559331f 100644 --- a/examples/SMS_SPAM/jl.py +++ b/examples/SMS_SPAM/jl.py @@ -2,7 +2,7 @@ sys.path.append('../../') import numpy as np -from spear.JL import JL +from spear.jl import JL path_json = 'data_pipeline/sms_json.json' U_path_pkl = 'data_pipeline/sms_pickle_U.pkl' diff --git a/examples/SMS_SPAM/log/cage_log_1.txt b/examples/SMS_SPAM/log/cage_log_1.txt index 5d0a4c7..1bb5c30 100644 --- a/examples/SMS_SPAM/log/cage_log_1.txt +++ b/examples/SMS_SPAM/log/cage_log_1.txt @@ -1,1206 +1,603 @@ CAGE log: -Epoch: 0 accuracy_score: 0.835 -Epoch: 0 average_metric: binary f1_score: 0.6373626373626373 -Epoch: 1 accuracy_score: 0.835 -Epoch: 1 average_metric: binary f1_score: 0.6373626373626373 -Epoch: 2 accuracy_score: 0.805 -Epoch: 2 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 3 accuracy_score: 0.8 -Epoch: 3 average_metric: binary f1_score: 0.6 -Epoch: 4 accuracy_score: 0.8 -Epoch: 4 average_metric: binary f1_score: 0.6 -Epoch: 5 accuracy_score: 0.8 -Epoch: 5 average_metric: binary f1_score: 0.6 -Epoch: 6 accuracy_score: 0.805 -Epoch: 6 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 7 accuracy_score: 0.805 -Epoch: 7 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 8 accuracy_score: 0.805 -Epoch: 8 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 9 accuracy_score: 0.805 -Epoch: 9 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 10 accuracy_score: 0.805 -Epoch: 10 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 11 accuracy_score: 0.805 -Epoch: 11 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 12 accuracy_score: 0.805 -Epoch: 12 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 13 accuracy_score: 0.805 -Epoch: 13 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 14 accuracy_score: 0.805 -Epoch: 14 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 15 accuracy_score: 0.805 -Epoch: 15 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 16 accuracy_score: 0.805 -Epoch: 16 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 17 accuracy_score: 0.805 -Epoch: 17 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 18 accuracy_score: 0.805 -Epoch: 18 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 19 accuracy_score: 0.805 -Epoch: 19 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 20 accuracy_score: 0.805 -Epoch: 20 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 21 accuracy_score: 0.805 -Epoch: 21 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 22 accuracy_score: 0.805 -Epoch: 22 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 23 accuracy_score: 0.805 -Epoch: 23 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 24 accuracy_score: 0.805 -Epoch: 24 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 25 accuracy_score: 0.805 -Epoch: 25 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 26 accuracy_score: 0.805 -Epoch: 26 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 27 accuracy_score: 0.805 -Epoch: 27 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 28 accuracy_score: 0.805 -Epoch: 28 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 29 accuracy_score: 0.805 -Epoch: 29 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 30 accuracy_score: 0.805 -Epoch: 30 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 31 accuracy_score: 0.805 -Epoch: 31 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 32 accuracy_score: 0.805 -Epoch: 32 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 33 accuracy_score: 0.805 -Epoch: 33 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 34 accuracy_score: 0.805 -Epoch: 34 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 35 accuracy_score: 0.805 -Epoch: 35 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 36 accuracy_score: 0.805 -Epoch: 36 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 37 accuracy_score: 0.805 -Epoch: 37 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 38 accuracy_score: 0.805 -Epoch: 38 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 39 accuracy_score: 0.805 -Epoch: 39 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 40 accuracy_score: 0.805 -Epoch: 40 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 41 accuracy_score: 0.805 -Epoch: 41 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 42 accuracy_score: 0.805 -Epoch: 42 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 43 accuracy_score: 0.805 -Epoch: 43 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 44 accuracy_score: 0.805 -Epoch: 44 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 45 accuracy_score: 0.805 -Epoch: 45 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 46 accuracy_score: 0.805 -Epoch: 46 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 47 accuracy_score: 0.805 -Epoch: 47 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 48 accuracy_score: 0.805 -Epoch: 48 average_metric: binary f1_score: 0.5979381443298969 -Epoch: 49 accuracy_score: 0.81 -Epoch: 49 average_metric: binary f1_score: 0.6122448979591837 -Epoch: 50 accuracy_score: 0.81 -Epoch: 50 average_metric: binary f1_score: 0.6122448979591837 -Epoch: 51 accuracy_score: 0.81 -Epoch: 51 average_metric: binary f1_score: 0.6122448979591837 -Epoch: 52 accuracy_score: 0.81 -Epoch: 52 average_metric: binary f1_score: 0.6122448979591837 -Epoch: 53 accuracy_score: 0.81 -Epoch: 53 average_metric: binary f1_score: 0.6122448979591837 -Epoch: 54 accuracy_score: 0.815 -Epoch: 54 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 55 accuracy_score: 0.815 -Epoch: 55 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 56 accuracy_score: 0.815 -Epoch: 56 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 57 accuracy_score: 0.815 -Epoch: 57 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 58 accuracy_score: 0.815 -Epoch: 58 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 59 accuracy_score: 0.815 -Epoch: 59 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 60 accuracy_score: 0.815 -Epoch: 60 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 61 accuracy_score: 0.815 -Epoch: 61 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 62 accuracy_score: 0.815 -Epoch: 62 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 63 accuracy_score: 0.815 -Epoch: 63 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 64 accuracy_score: 0.815 -Epoch: 64 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 65 accuracy_score: 0.815 -Epoch: 65 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 66 accuracy_score: 0.815 -Epoch: 66 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 67 accuracy_score: 0.815 -Epoch: 67 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 68 accuracy_score: 0.815 -Epoch: 68 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 69 accuracy_score: 0.815 -Epoch: 69 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 70 accuracy_score: 0.815 -Epoch: 70 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 71 accuracy_score: 0.815 -Epoch: 71 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 72 accuracy_score: 0.815 -Epoch: 72 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 73 accuracy_score: 0.815 -Epoch: 73 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 74 accuracy_score: 0.815 -Epoch: 74 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 75 accuracy_score: 0.815 -Epoch: 75 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 76 accuracy_score: 0.815 -Epoch: 76 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 77 accuracy_score: 0.805 -Epoch: 77 average_metric: binary f1_score: 0.6060606060606061 -Epoch: 78 accuracy_score: 0.81 -Epoch: 78 average_metric: binary f1_score: 0.6122448979591837 -Epoch: 79 accuracy_score: 0.81 -Epoch: 79 average_metric: binary f1_score: 0.6122448979591837 -Epoch: 80 accuracy_score: 0.81 -Epoch: 80 average_metric: binary f1_score: 0.6122448979591837 -Epoch: 81 accuracy_score: 0.81 -Epoch: 81 average_metric: binary f1_score: 0.6122448979591837 -Epoch: 82 accuracy_score: 0.81 -Epoch: 82 average_metric: binary f1_score: 0.6122448979591837 -Epoch: 83 accuracy_score: 0.81 -Epoch: 83 average_metric: binary f1_score: 0.6122448979591837 -Epoch: 84 accuracy_score: 0.81 -Epoch: 84 average_metric: binary f1_score: 0.6122448979591837 -Epoch: 85 accuracy_score: 0.81 -Epoch: 85 average_metric: binary f1_score: 0.6122448979591837 -Epoch: 86 accuracy_score: 0.81 -Epoch: 86 average_metric: binary f1_score: 0.6122448979591837 -Epoch: 87 accuracy_score: 0.81 -Epoch: 87 average_metric: binary f1_score: 0.6122448979591837 -Epoch: 88 accuracy_score: 0.81 -Epoch: 88 average_metric: binary f1_score: 0.6122448979591837 -Epoch: 89 accuracy_score: 0.81 -Epoch: 89 average_metric: binary f1_score: 0.6122448979591837 -Epoch: 90 accuracy_score: 0.81 -Epoch: 90 average_metric: binary f1_score: 0.6122448979591837 -Epoch: 91 accuracy_score: 0.81 -Epoch: 91 average_metric: binary f1_score: 0.6122448979591837 -Epoch: 92 accuracy_score: 0.815 -Epoch: 92 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 93 accuracy_score: 0.815 -Epoch: 93 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 94 accuracy_score: 0.815 -Epoch: 94 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 95 accuracy_score: 0.815 -Epoch: 95 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 96 accuracy_score: 0.815 -Epoch: 96 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 97 accuracy_score: 0.815 -Epoch: 97 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 98 accuracy_score: 0.815 -Epoch: 98 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 99 accuracy_score: 0.815 -Epoch: 99 average_metric: binary f1_score: 0.6185567010309279 +Epoch: 0 test_accuracy_score: 0.845 +Epoch: 0 test_average_metric: binary test_f1_score: 0.617283950617284 +Epoch: 1 test_accuracy_score: 0.815 +Epoch: 1 test_average_metric: binary test_f1_score: 0.5747126436781609 +Epoch: 2 test_accuracy_score: 0.835 +Epoch: 2 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 3 test_accuracy_score: 0.835 +Epoch: 3 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 4 test_accuracy_score: 0.835 +Epoch: 4 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 5 test_accuracy_score: 0.835 +Epoch: 5 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 6 test_accuracy_score: 0.835 +Epoch: 6 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 7 test_accuracy_score: 0.835 +Epoch: 7 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 8 test_accuracy_score: 0.835 +Epoch: 8 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 9 test_accuracy_score: 0.835 +Epoch: 9 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 10 test_accuracy_score: 0.835 +Epoch: 10 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 11 test_accuracy_score: 0.835 +Epoch: 11 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 12 test_accuracy_score: 0.835 +Epoch: 12 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 13 test_accuracy_score: 0.835 +Epoch: 13 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 14 test_accuracy_score: 0.835 +Epoch: 14 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 15 test_accuracy_score: 0.835 +Epoch: 15 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 16 test_accuracy_score: 0.835 +Epoch: 16 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 17 test_accuracy_score: 0.835 +Epoch: 17 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 18 test_accuracy_score: 0.835 +Epoch: 18 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 19 test_accuracy_score: 0.835 +Epoch: 19 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 20 test_accuracy_score: 0.835 +Epoch: 20 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 21 test_accuracy_score: 0.835 +Epoch: 21 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 22 test_accuracy_score: 0.835 +Epoch: 22 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 23 test_accuracy_score: 0.835 +Epoch: 23 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 24 test_accuracy_score: 0.835 +Epoch: 24 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 25 test_accuracy_score: 0.835 +Epoch: 25 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 26 test_accuracy_score: 0.835 +Epoch: 26 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 27 test_accuracy_score: 0.835 +Epoch: 27 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 28 test_accuracy_score: 0.835 +Epoch: 28 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 29 test_accuracy_score: 0.835 +Epoch: 29 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 30 test_accuracy_score: 0.835 +Epoch: 30 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 31 test_accuracy_score: 0.835 +Epoch: 31 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 32 test_accuracy_score: 0.835 +Epoch: 32 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 33 test_accuracy_score: 0.835 +Epoch: 33 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 34 test_accuracy_score: 0.835 +Epoch: 34 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 35 test_accuracy_score: 0.835 +Epoch: 35 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 36 test_accuracy_score: 0.835 +Epoch: 36 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 37 test_accuracy_score: 0.835 +Epoch: 37 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 38 test_accuracy_score: 0.835 +Epoch: 38 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 39 test_accuracy_score: 0.835 +Epoch: 39 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 40 test_accuracy_score: 0.835 +Epoch: 40 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 41 test_accuracy_score: 0.835 +Epoch: 41 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 42 test_accuracy_score: 0.835 +Epoch: 42 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 43 test_accuracy_score: 0.835 +Epoch: 43 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 44 test_accuracy_score: 0.835 +Epoch: 44 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 45 test_accuracy_score: 0.835 +Epoch: 45 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 46 test_accuracy_score: 0.835 +Epoch: 46 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 47 test_accuracy_score: 0.835 +Epoch: 47 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 48 test_accuracy_score: 0.835 +Epoch: 48 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 49 test_accuracy_score: 0.835 +Epoch: 49 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 50 test_accuracy_score: 0.835 +Epoch: 50 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 51 test_accuracy_score: 0.835 +Epoch: 51 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 52 test_accuracy_score: 0.835 +Epoch: 52 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 53 test_accuracy_score: 0.835 +Epoch: 53 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 54 test_accuracy_score: 0.835 +Epoch: 54 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 55 test_accuracy_score: 0.835 +Epoch: 55 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 56 test_accuracy_score: 0.835 +Epoch: 56 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 57 test_accuracy_score: 0.835 +Epoch: 57 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 58 test_accuracy_score: 0.835 +Epoch: 58 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 59 test_accuracy_score: 0.835 +Epoch: 59 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 60 test_accuracy_score: 0.835 +Epoch: 60 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 61 test_accuracy_score: 0.835 +Epoch: 61 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 62 test_accuracy_score: 0.835 +Epoch: 62 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 63 test_accuracy_score: 0.835 +Epoch: 63 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 64 test_accuracy_score: 0.835 +Epoch: 64 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 65 test_accuracy_score: 0.835 +Epoch: 65 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 66 test_accuracy_score: 0.835 +Epoch: 66 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 67 test_accuracy_score: 0.835 +Epoch: 67 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 68 test_accuracy_score: 0.835 +Epoch: 68 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 69 test_accuracy_score: 0.835 +Epoch: 69 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 70 test_accuracy_score: 0.835 +Epoch: 70 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 71 test_accuracy_score: 0.835 +Epoch: 71 test_average_metric: binary test_f1_score: 0.6024096385542169 +Epoch: 72 test_accuracy_score: 0.82 +Epoch: 72 test_average_metric: binary test_f1_score: 0.5813953488372092 +Epoch: 73 test_accuracy_score: 0.82 +Epoch: 73 test_average_metric: binary test_f1_score: 0.5813953488372092 +Epoch: 74 test_accuracy_score: 0.82 +Epoch: 74 test_average_metric: binary test_f1_score: 0.5813953488372092 +Epoch: 75 test_accuracy_score: 0.82 +Epoch: 75 test_average_metric: binary test_f1_score: 0.5813953488372092 +Epoch: 76 test_accuracy_score: 0.82 +Epoch: 76 test_average_metric: binary test_f1_score: 0.5813953488372092 +Epoch: 77 test_accuracy_score: 0.82 +Epoch: 77 test_average_metric: binary test_f1_score: 0.5813953488372092 +Epoch: 78 test_accuracy_score: 0.82 +Epoch: 78 test_average_metric: binary test_f1_score: 0.5813953488372092 +Epoch: 79 test_accuracy_score: 0.82 +Epoch: 79 test_average_metric: binary test_f1_score: 0.5813953488372092 +Epoch: 80 test_accuracy_score: 0.82 +Epoch: 80 test_average_metric: binary test_f1_score: 0.5813953488372092 +Epoch: 81 test_accuracy_score: 0.82 +Epoch: 81 test_average_metric: binary test_f1_score: 0.5813953488372092 +Epoch: 82 test_accuracy_score: 0.82 +Epoch: 82 test_average_metric: binary test_f1_score: 0.5813953488372092 +Epoch: 83 test_accuracy_score: 0.82 +Epoch: 83 test_average_metric: binary test_f1_score: 0.5813953488372092 +Epoch: 84 test_accuracy_score: 0.82 +Epoch: 84 test_average_metric: binary test_f1_score: 0.5813953488372092 +Epoch: 85 test_accuracy_score: 0.82 +Epoch: 85 test_average_metric: binary test_f1_score: 0.5813953488372092 +Epoch: 86 test_accuracy_score: 0.82 +Epoch: 86 test_average_metric: binary test_f1_score: 0.5813953488372092 +Epoch: 87 test_accuracy_score: 0.82 +Epoch: 87 test_average_metric: binary test_f1_score: 0.5813953488372092 +Epoch: 88 test_accuracy_score: 0.82 +Epoch: 88 test_average_metric: binary test_f1_score: 0.5813953488372092 +Epoch: 89 test_accuracy_score: 0.82 +Epoch: 89 test_average_metric: binary test_f1_score: 0.5813953488372092 +Epoch: 90 test_accuracy_score: 0.82 +Epoch: 90 test_average_metric: binary test_f1_score: 0.5813953488372092 +Epoch: 91 test_accuracy_score: 0.82 +Epoch: 91 test_average_metric: binary test_f1_score: 0.5813953488372092 +Epoch: 92 test_accuracy_score: 0.82 +Epoch: 92 test_average_metric: binary test_f1_score: 0.5813953488372092 +Epoch: 93 test_accuracy_score: 0.825 +Epoch: 93 test_average_metric: binary test_f1_score: 0.5882352941176471 +Epoch: 94 test_accuracy_score: 0.825 +Epoch: 94 test_average_metric: binary test_f1_score: 0.5882352941176471 +Epoch: 95 test_accuracy_score: 0.825 +Epoch: 95 test_average_metric: binary test_f1_score: 0.5882352941176471 +Epoch: 96 test_accuracy_score: 0.825 +Epoch: 96 test_average_metric: binary test_f1_score: 0.5882352941176471 +Epoch: 97 test_accuracy_score: 0.825 +Epoch: 97 test_average_metric: binary test_f1_score: 0.5882352941176471 +Epoch: 98 test_accuracy_score: 0.825 +Epoch: 98 test_average_metric: binary test_f1_score: 0.5882352941176471 +Epoch: 99 test_accuracy_score: 0.825 +Epoch: 99 test_average_metric: binary test_f1_score: 0.5882352941176471 CAGE log: -Epoch: 0 accuracy_score: 0.815 -Epoch: 0 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 1 accuracy_score: 0.815 -Epoch: 1 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 2 accuracy_score: 0.815 -Epoch: 2 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 3 accuracy_score: 0.815 -Epoch: 3 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 4 accuracy_score: 0.815 -Epoch: 4 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 5 accuracy_score: 0.815 -Epoch: 5 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 6 accuracy_score: 0.815 -Epoch: 6 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 7 accuracy_score: 0.815 -Epoch: 7 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 8 accuracy_score: 0.815 -Epoch: 8 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 9 accuracy_score: 0.815 -Epoch: 9 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 10 accuracy_score: 0.815 -Epoch: 10 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 11 accuracy_score: 0.815 -Epoch: 11 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 12 accuracy_score: 0.815 -Epoch: 12 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 13 accuracy_score: 0.815 -Epoch: 13 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 14 accuracy_score: 0.815 -Epoch: 14 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 15 accuracy_score: 0.815 -Epoch: 15 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 16 accuracy_score: 0.815 -Epoch: 16 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 17 accuracy_score: 0.815 -Epoch: 17 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 18 accuracy_score: 0.815 -Epoch: 18 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 19 accuracy_score: 0.82 -Epoch: 19 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 20 accuracy_score: 0.82 -Epoch: 20 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 21 accuracy_score: 0.82 -Epoch: 21 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 22 accuracy_score: 0.82 -Epoch: 22 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 23 accuracy_score: 0.82 -Epoch: 23 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 24 accuracy_score: 0.82 -Epoch: 24 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 25 accuracy_score: 0.82 -Epoch: 25 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 26 accuracy_score: 0.82 -Epoch: 26 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 27 accuracy_score: 0.82 -Epoch: 27 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 28 accuracy_score: 0.82 -Epoch: 28 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 29 accuracy_score: 0.82 -Epoch: 29 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 30 accuracy_score: 0.82 -Epoch: 30 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 31 accuracy_score: 0.825 -Epoch: 31 average_metric: binary f1_score: 0.631578947368421 -Epoch: 32 accuracy_score: 0.825 -Epoch: 32 average_metric: binary f1_score: 0.631578947368421 -Epoch: 33 accuracy_score: 0.825 -Epoch: 33 average_metric: binary f1_score: 0.631578947368421 -Epoch: 34 accuracy_score: 0.825 -Epoch: 34 average_metric: binary f1_score: 0.631578947368421 -Epoch: 35 accuracy_score: 0.825 -Epoch: 35 average_metric: binary f1_score: 0.631578947368421 -Epoch: 36 accuracy_score: 0.825 -Epoch: 36 average_metric: binary f1_score: 0.631578947368421 -Epoch: 37 accuracy_score: 0.825 -Epoch: 37 average_metric: binary f1_score: 0.631578947368421 -Epoch: 38 accuracy_score: 0.825 -Epoch: 38 average_metric: binary f1_score: 0.631578947368421 -Epoch: 39 accuracy_score: 0.825 -Epoch: 39 average_metric: binary f1_score: 0.631578947368421 -Epoch: 40 accuracy_score: 0.825 -Epoch: 40 average_metric: binary f1_score: 0.631578947368421 -Epoch: 41 accuracy_score: 0.82 -Epoch: 41 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 42 accuracy_score: 0.82 -Epoch: 42 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 43 accuracy_score: 0.82 -Epoch: 43 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 44 accuracy_score: 0.82 -Epoch: 44 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 45 accuracy_score: 0.82 -Epoch: 45 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 46 accuracy_score: 0.82 -Epoch: 46 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 47 accuracy_score: 0.82 -Epoch: 47 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 48 accuracy_score: 0.82 -Epoch: 48 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 49 accuracy_score: 0.82 -Epoch: 49 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 50 accuracy_score: 0.82 -Epoch: 50 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 51 accuracy_score: 0.82 -Epoch: 51 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 52 accuracy_score: 0.82 -Epoch: 52 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 53 accuracy_score: 0.82 -Epoch: 53 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 54 accuracy_score: 0.82 -Epoch: 54 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 55 accuracy_score: 0.82 -Epoch: 55 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 56 accuracy_score: 0.82 -Epoch: 56 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 57 accuracy_score: 0.82 -Epoch: 57 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 58 accuracy_score: 0.82 -Epoch: 58 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 59 accuracy_score: 0.82 -Epoch: 59 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 60 accuracy_score: 0.82 -Epoch: 60 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 61 accuracy_score: 0.82 -Epoch: 61 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 62 accuracy_score: 0.82 -Epoch: 62 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 63 accuracy_score: 0.82 -Epoch: 63 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 64 accuracy_score: 0.82 -Epoch: 64 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 65 accuracy_score: 0.82 -Epoch: 65 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 66 accuracy_score: 0.82 -Epoch: 66 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 67 accuracy_score: 0.82 -Epoch: 67 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 68 accuracy_score: 0.82 -Epoch: 68 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 69 accuracy_score: 0.82 -Epoch: 69 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 70 accuracy_score: 0.82 -Epoch: 70 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 71 accuracy_score: 0.82 -Epoch: 71 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 72 accuracy_score: 0.82 -Epoch: 72 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 73 accuracy_score: 0.82 -Epoch: 73 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 74 accuracy_score: 0.82 -Epoch: 74 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 75 accuracy_score: 0.82 -Epoch: 75 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 76 accuracy_score: 0.82 -Epoch: 76 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 77 accuracy_score: 0.82 -Epoch: 77 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 78 accuracy_score: 0.82 -Epoch: 78 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 79 accuracy_score: 0.82 -Epoch: 79 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 80 accuracy_score: 0.82 -Epoch: 80 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 81 accuracy_score: 0.82 -Epoch: 81 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 82 accuracy_score: 0.82 -Epoch: 82 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 83 accuracy_score: 0.82 -Epoch: 83 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 84 accuracy_score: 0.82 -Epoch: 84 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 85 accuracy_score: 0.82 -Epoch: 85 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 86 accuracy_score: 0.82 -Epoch: 86 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 87 accuracy_score: 0.82 -Epoch: 87 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 88 accuracy_score: 0.82 -Epoch: 88 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 89 accuracy_score: 0.82 -Epoch: 89 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 90 accuracy_score: 0.82 -Epoch: 90 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 91 accuracy_score: 0.82 -Epoch: 91 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 92 accuracy_score: 0.82 -Epoch: 92 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 93 accuracy_score: 0.82 -Epoch: 93 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 94 accuracy_score: 0.82 -Epoch: 94 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 95 accuracy_score: 0.82 -Epoch: 95 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 96 accuracy_score: 0.82 -Epoch: 96 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 97 accuracy_score: 0.82 -Epoch: 97 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 98 accuracy_score: 0.82 -Epoch: 98 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 99 accuracy_score: 0.82 -Epoch: 99 average_metric: binary f1_score: 0.6249999999999999 +Epoch: 0 test_accuracy_score: 0.825 +Epoch: 0 test_average_metric: binary test_f1_score: 0.5882352941176471 +Epoch: 1 test_accuracy_score: 0.825 +Epoch: 1 test_average_metric: binary test_f1_score: 0.5882352941176471 +Epoch: 2 test_accuracy_score: 0.825 +Epoch: 2 test_average_metric: binary test_f1_score: 0.5882352941176471 +Epoch: 3 test_accuracy_score: 0.825 +Epoch: 3 test_average_metric: binary test_f1_score: 0.5882352941176471 +Epoch: 4 test_accuracy_score: 0.825 +Epoch: 4 test_average_metric: binary test_f1_score: 0.5882352941176471 +Epoch: 5 test_accuracy_score: 0.825 +Epoch: 5 test_average_metric: binary test_f1_score: 0.5882352941176471 +Epoch: 6 test_accuracy_score: 0.825 +Epoch: 6 test_average_metric: binary test_f1_score: 0.5882352941176471 +Epoch: 7 test_accuracy_score: 0.825 +Epoch: 7 test_average_metric: binary test_f1_score: 0.5882352941176471 +Epoch: 8 test_accuracy_score: 0.825 +Epoch: 8 test_average_metric: binary test_f1_score: 0.5882352941176471 +Epoch: 9 test_accuracy_score: 0.825 +Epoch: 9 test_average_metric: binary test_f1_score: 0.5882352941176471 +Epoch: 10 test_accuracy_score: 0.825 +Epoch: 10 test_average_metric: binary test_f1_score: 0.5882352941176471 +Epoch: 11 test_accuracy_score: 0.825 +Epoch: 11 test_average_metric: binary test_f1_score: 0.5882352941176471 +Epoch: 12 test_accuracy_score: 0.825 +Epoch: 12 test_average_metric: binary test_f1_score: 0.5882352941176471 +Epoch: 13 test_accuracy_score: 0.825 +Epoch: 13 test_average_metric: binary test_f1_score: 0.5882352941176471 +Epoch: 14 test_accuracy_score: 0.83 +Epoch: 14 test_average_metric: binary test_f1_score: 0.6046511627906977 +Epoch: 15 test_accuracy_score: 0.83 +Epoch: 15 test_average_metric: binary test_f1_score: 0.6046511627906977 +Epoch: 16 test_accuracy_score: 0.83 +Epoch: 16 test_average_metric: binary test_f1_score: 0.6046511627906977 +Epoch: 17 test_accuracy_score: 0.83 +Epoch: 17 test_average_metric: binary test_f1_score: 0.6046511627906977 +Epoch: 18 test_accuracy_score: 0.83 +Epoch: 18 test_average_metric: binary test_f1_score: 0.6046511627906977 +Epoch: 19 test_accuracy_score: 0.83 +Epoch: 19 test_average_metric: binary test_f1_score: 0.6046511627906977 +Epoch: 20 test_accuracy_score: 0.83 +Epoch: 20 test_average_metric: binary test_f1_score: 0.6046511627906977 +Epoch: 21 test_accuracy_score: 0.83 +Epoch: 21 test_average_metric: binary test_f1_score: 0.6046511627906977 +Epoch: 22 test_accuracy_score: 0.83 +Epoch: 22 test_average_metric: binary test_f1_score: 0.6046511627906977 +Epoch: 23 test_accuracy_score: 0.835 +Epoch: 23 test_average_metric: binary test_f1_score: 0.611764705882353 +Epoch: 24 test_accuracy_score: 0.835 +Epoch: 24 test_average_metric: binary test_f1_score: 0.611764705882353 +Epoch: 25 test_accuracy_score: 0.835 +Epoch: 25 test_average_metric: binary test_f1_score: 0.611764705882353 +Epoch: 26 test_accuracy_score: 0.835 +Epoch: 26 test_average_metric: binary test_f1_score: 0.611764705882353 +Epoch: 27 test_accuracy_score: 0.835 +Epoch: 27 test_average_metric: binary test_f1_score: 0.611764705882353 +Epoch: 28 test_accuracy_score: 0.835 +Epoch: 28 test_average_metric: binary test_f1_score: 0.611764705882353 +Epoch: 29 test_accuracy_score: 0.835 +Epoch: 29 test_average_metric: binary test_f1_score: 0.611764705882353 +Epoch: 30 test_accuracy_score: 0.835 +Epoch: 30 test_average_metric: binary test_f1_score: 0.611764705882353 +Epoch: 31 test_accuracy_score: 0.835 +Epoch: 31 test_average_metric: binary test_f1_score: 0.611764705882353 +Epoch: 32 test_accuracy_score: 0.835 +Epoch: 32 test_average_metric: binary test_f1_score: 0.611764705882353 +Epoch: 33 test_accuracy_score: 0.835 +Epoch: 33 test_average_metric: binary test_f1_score: 0.611764705882353 +Epoch: 34 test_accuracy_score: 0.835 +Epoch: 34 test_average_metric: binary test_f1_score: 0.611764705882353 +Epoch: 35 test_accuracy_score: 0.835 +Epoch: 35 test_average_metric: binary test_f1_score: 0.611764705882353 +Epoch: 36 test_accuracy_score: 0.835 +Epoch: 36 test_average_metric: binary test_f1_score: 0.611764705882353 +Epoch: 37 test_accuracy_score: 0.835 +Epoch: 37 test_average_metric: binary test_f1_score: 0.611764705882353 +Epoch: 38 test_accuracy_score: 0.83 +Epoch: 38 test_average_metric: binary test_f1_score: 0.6046511627906977 +Epoch: 39 test_accuracy_score: 0.83 +Epoch: 39 test_average_metric: binary test_f1_score: 0.6046511627906977 +Epoch: 40 test_accuracy_score: 0.83 +Epoch: 40 test_average_metric: binary test_f1_score: 0.6046511627906977 +Epoch: 41 test_accuracy_score: 0.83 +Epoch: 41 test_average_metric: binary test_f1_score: 0.6046511627906977 +Epoch: 42 test_accuracy_score: 0.83 +Epoch: 42 test_average_metric: binary test_f1_score: 0.6046511627906977 +Epoch: 43 test_accuracy_score: 0.83 +Epoch: 43 test_average_metric: binary test_f1_score: 0.6046511627906977 +Epoch: 44 test_accuracy_score: 0.83 +Epoch: 44 test_average_metric: binary test_f1_score: 0.6046511627906977 +Epoch: 45 test_accuracy_score: 0.83 +Epoch: 45 test_average_metric: binary test_f1_score: 0.6046511627906977 +Epoch: 46 test_accuracy_score: 0.83 +Epoch: 46 test_average_metric: binary test_f1_score: 0.6046511627906977 +Epoch: 47 test_accuracy_score: 0.835 +Epoch: 47 test_average_metric: binary test_f1_score: 0.6206896551724138 +Epoch: 48 test_accuracy_score: 0.835 +Epoch: 48 test_average_metric: binary test_f1_score: 0.6206896551724138 +Epoch: 49 test_accuracy_score: 0.835 +Epoch: 49 test_average_metric: binary test_f1_score: 0.6206896551724138 +Epoch: 50 test_accuracy_score: 0.835 +Epoch: 50 test_average_metric: binary test_f1_score: 0.6206896551724138 +Epoch: 51 test_accuracy_score: 0.835 +Epoch: 51 test_average_metric: binary test_f1_score: 0.6206896551724138 +Epoch: 52 test_accuracy_score: 0.835 +Epoch: 52 test_average_metric: binary test_f1_score: 0.6206896551724138 +Epoch: 53 test_accuracy_score: 0.835 +Epoch: 53 test_average_metric: binary test_f1_score: 0.6206896551724138 +Epoch: 54 test_accuracy_score: 0.835 +Epoch: 54 test_average_metric: binary test_f1_score: 0.6206896551724138 +Epoch: 55 test_accuracy_score: 0.835 +Epoch: 55 test_average_metric: binary test_f1_score: 0.6206896551724138 +Epoch: 56 test_accuracy_score: 0.835 +Epoch: 56 test_average_metric: binary test_f1_score: 0.6206896551724138 +Epoch: 57 test_accuracy_score: 0.835 +Epoch: 57 test_average_metric: binary test_f1_score: 0.6206896551724138 +Epoch: 58 test_accuracy_score: 0.83 +Epoch: 58 test_average_metric: binary test_f1_score: 0.6136363636363636 +Epoch: 59 test_accuracy_score: 0.83 +Epoch: 59 test_average_metric: binary test_f1_score: 0.6136363636363636 +Epoch: 60 test_accuracy_score: 0.83 +Epoch: 60 test_average_metric: binary test_f1_score: 0.6136363636363636 +Epoch: 61 test_accuracy_score: 0.83 +Epoch: 61 test_average_metric: binary test_f1_score: 0.6136363636363636 +Epoch: 62 test_accuracy_score: 0.83 +Epoch: 62 test_average_metric: binary test_f1_score: 0.6136363636363636 +Epoch: 63 test_accuracy_score: 0.83 +Epoch: 63 test_average_metric: binary test_f1_score: 0.6136363636363636 +Epoch: 64 test_accuracy_score: 0.83 +Epoch: 64 test_average_metric: binary test_f1_score: 0.6136363636363636 +Epoch: 65 test_accuracy_score: 0.83 +Epoch: 65 test_average_metric: binary test_f1_score: 0.6136363636363636 +Epoch: 66 test_accuracy_score: 0.83 +Epoch: 66 test_average_metric: binary test_f1_score: 0.6136363636363636 +Epoch: 67 test_accuracy_score: 0.83 +Epoch: 67 test_average_metric: binary test_f1_score: 0.6136363636363636 +Epoch: 68 test_accuracy_score: 0.83 +Epoch: 68 test_average_metric: binary test_f1_score: 0.6136363636363636 +Epoch: 69 test_accuracy_score: 0.83 +Epoch: 69 test_average_metric: binary test_f1_score: 0.6136363636363636 +Epoch: 70 test_accuracy_score: 0.83 +Epoch: 70 test_average_metric: binary test_f1_score: 0.6136363636363636 +Epoch: 71 test_accuracy_score: 0.83 +Epoch: 71 test_average_metric: binary test_f1_score: 0.6136363636363636 +Epoch: 72 test_accuracy_score: 0.83 +Epoch: 72 test_average_metric: binary test_f1_score: 0.6136363636363636 +Epoch: 73 test_accuracy_score: 0.83 +Epoch: 73 test_average_metric: binary test_f1_score: 0.6136363636363636 +Epoch: 74 test_accuracy_score: 0.83 +Epoch: 74 test_average_metric: binary test_f1_score: 0.6136363636363636 +Epoch: 75 test_accuracy_score: 0.83 +Epoch: 75 test_average_metric: binary test_f1_score: 0.6136363636363636 +Epoch: 76 test_accuracy_score: 0.83 +Epoch: 76 test_average_metric: binary test_f1_score: 0.6136363636363636 +Epoch: 77 test_accuracy_score: 0.83 +Epoch: 77 test_average_metric: binary test_f1_score: 0.6136363636363636 +Epoch: 78 test_accuracy_score: 0.825 +Epoch: 78 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 79 test_accuracy_score: 0.825 +Epoch: 79 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 80 test_accuracy_score: 0.825 +Epoch: 80 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 81 test_accuracy_score: 0.825 +Epoch: 81 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 82 test_accuracy_score: 0.825 +Epoch: 82 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 83 test_accuracy_score: 0.825 +Epoch: 83 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 84 test_accuracy_score: 0.825 +Epoch: 84 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 85 test_accuracy_score: 0.825 +Epoch: 85 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 86 test_accuracy_score: 0.825 +Epoch: 86 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 87 test_accuracy_score: 0.825 +Epoch: 87 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 88 test_accuracy_score: 0.825 +Epoch: 88 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 89 test_accuracy_score: 0.825 +Epoch: 89 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 90 test_accuracy_score: 0.825 +Epoch: 90 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 91 test_accuracy_score: 0.825 +Epoch: 91 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 92 test_accuracy_score: 0.825 +Epoch: 92 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 93 test_accuracy_score: 0.825 +Epoch: 93 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 94 test_accuracy_score: 0.825 +Epoch: 94 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 95 test_accuracy_score: 0.825 +Epoch: 95 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 96 test_accuracy_score: 0.825 +Epoch: 96 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 97 test_accuracy_score: 0.825 +Epoch: 97 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 98 test_accuracy_score: 0.825 +Epoch: 98 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 99 test_accuracy_score: 0.825 +Epoch: 99 test_average_metric: binary test_f1_score: 0.6067415730337079 CAGE log: -Epoch: 0 accuracy_score: 0.82 -Epoch: 0 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 1 accuracy_score: 0.82 -Epoch: 1 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 2 accuracy_score: 0.82 -Epoch: 2 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 3 accuracy_score: 0.82 -Epoch: 3 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 4 accuracy_score: 0.82 -Epoch: 4 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 5 accuracy_score: 0.82 -Epoch: 5 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 6 accuracy_score: 0.82 -Epoch: 6 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 7 accuracy_score: 0.82 -Epoch: 7 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 8 accuracy_score: 0.82 -Epoch: 8 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 9 accuracy_score: 0.82 -Epoch: 9 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 10 accuracy_score: 0.82 -Epoch: 10 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 11 accuracy_score: 0.82 -Epoch: 11 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 12 accuracy_score: 0.82 -Epoch: 12 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 13 accuracy_score: 0.82 -Epoch: 13 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 14 accuracy_score: 0.82 -Epoch: 14 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 15 accuracy_score: 0.82 -Epoch: 15 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 16 accuracy_score: 0.82 -Epoch: 16 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 17 accuracy_score: 0.82 -Epoch: 17 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 18 accuracy_score: 0.82 -Epoch: 18 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 19 accuracy_score: 0.82 -Epoch: 19 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 20 accuracy_score: 0.82 -Epoch: 20 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 21 accuracy_score: 0.82 -Epoch: 21 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 22 accuracy_score: 0.82 -Epoch: 22 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 23 accuracy_score: 0.82 -Epoch: 23 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 24 accuracy_score: 0.82 -Epoch: 24 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 25 accuracy_score: 0.82 -Epoch: 25 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 26 accuracy_score: 0.82 -Epoch: 26 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 27 accuracy_score: 0.82 -Epoch: 27 average_metric: binary f1_score: 0.6249999999999999 -Epoch: 28 accuracy_score: 0.815 -Epoch: 28 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 29 accuracy_score: 0.815 -Epoch: 29 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 30 accuracy_score: 0.815 -Epoch: 30 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 31 accuracy_score: 0.815 -Epoch: 31 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 32 accuracy_score: 0.815 -Epoch: 32 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 33 accuracy_score: 0.815 -Epoch: 33 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 34 accuracy_score: 0.815 -Epoch: 34 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 35 accuracy_score: 0.815 -Epoch: 35 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 36 accuracy_score: 0.815 -Epoch: 36 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 37 accuracy_score: 0.815 -Epoch: 37 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 38 accuracy_score: 0.815 -Epoch: 38 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 39 accuracy_score: 0.815 -Epoch: 39 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 40 accuracy_score: 0.815 -Epoch: 40 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 41 accuracy_score: 0.815 -Epoch: 41 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 42 accuracy_score: 0.815 -Epoch: 42 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 43 accuracy_score: 0.815 -Epoch: 43 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 44 accuracy_score: 0.815 -Epoch: 44 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 45 accuracy_score: 0.815 -Epoch: 45 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 46 accuracy_score: 0.815 -Epoch: 46 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 47 accuracy_score: 0.815 -Epoch: 47 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 48 accuracy_score: 0.815 -Epoch: 48 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 49 accuracy_score: 0.815 -Epoch: 49 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 50 accuracy_score: 0.815 -Epoch: 50 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 51 accuracy_score: 0.815 -Epoch: 51 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 52 accuracy_score: 0.815 -Epoch: 52 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 53 accuracy_score: 0.815 -Epoch: 53 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 54 accuracy_score: 0.815 -Epoch: 54 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 55 accuracy_score: 0.815 -Epoch: 55 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 56 accuracy_score: 0.815 -Epoch: 56 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 57 accuracy_score: 0.815 -Epoch: 57 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 58 accuracy_score: 0.815 -Epoch: 58 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 59 accuracy_score: 0.815 -Epoch: 59 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 60 accuracy_score: 0.815 -Epoch: 60 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 61 accuracy_score: 0.815 -Epoch: 61 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 62 accuracy_score: 0.815 -Epoch: 62 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 63 accuracy_score: 0.815 -Epoch: 63 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 64 accuracy_score: 0.815 -Epoch: 64 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 65 accuracy_score: 0.815 -Epoch: 65 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 66 accuracy_score: 0.815 -Epoch: 66 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 67 accuracy_score: 0.815 -Epoch: 67 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 68 accuracy_score: 0.815 -Epoch: 68 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 69 accuracy_score: 0.815 -Epoch: 69 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 70 accuracy_score: 0.815 -Epoch: 70 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 71 accuracy_score: 0.815 -Epoch: 71 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 72 accuracy_score: 0.815 -Epoch: 72 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 73 accuracy_score: 0.815 -Epoch: 73 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 74 accuracy_score: 0.815 -Epoch: 74 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 75 accuracy_score: 0.815 -Epoch: 75 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 76 accuracy_score: 0.815 -Epoch: 76 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 77 accuracy_score: 0.815 -Epoch: 77 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 78 accuracy_score: 0.815 -Epoch: 78 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 79 accuracy_score: 0.815 -Epoch: 79 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 80 accuracy_score: 0.815 -Epoch: 80 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 81 accuracy_score: 0.815 -Epoch: 81 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 82 accuracy_score: 0.815 -Epoch: 82 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 83 accuracy_score: 0.815 -Epoch: 83 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 84 accuracy_score: 0.815 -Epoch: 84 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 85 accuracy_score: 0.815 -Epoch: 85 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 86 accuracy_score: 0.815 -Epoch: 86 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 87 accuracy_score: 0.815 -Epoch: 87 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 88 accuracy_score: 0.815 -Epoch: 88 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 89 accuracy_score: 0.815 -Epoch: 89 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 90 accuracy_score: 0.815 -Epoch: 90 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 91 accuracy_score: 0.815 -Epoch: 91 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 92 accuracy_score: 0.815 -Epoch: 92 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 93 accuracy_score: 0.815 -Epoch: 93 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 94 accuracy_score: 0.815 -Epoch: 94 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 95 accuracy_score: 0.815 -Epoch: 95 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 96 accuracy_score: 0.815 -Epoch: 96 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 97 accuracy_score: 0.815 -Epoch: 97 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 98 accuracy_score: 0.815 -Epoch: 98 average_metric: binary f1_score: 0.6185567010309279 -Epoch: 99 accuracy_score: 0.815 -Epoch: 99 average_metric: binary f1_score: 0.6185567010309279 -CAGE log: -Epoch: 0 accuracy_score: 0.76 -Epoch: 0 average_metric: binary f1_score: 0.4545454545454545 -Epoch: 1 accuracy_score: 0.765 -Epoch: 1 average_metric: binary f1_score: 0.5154639175257731 -Epoch: 2 accuracy_score: 0.75 -Epoch: 2 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 3 accuracy_score: 0.75 -Epoch: 3 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 4 accuracy_score: 0.75 -Epoch: 4 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 5 accuracy_score: 0.75 -Epoch: 5 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 6 accuracy_score: 0.75 -Epoch: 6 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 7 accuracy_score: 0.75 -Epoch: 7 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 8 accuracy_score: 0.75 -Epoch: 8 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 9 accuracy_score: 0.75 -Epoch: 9 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 10 accuracy_score: 0.75 -Epoch: 10 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 11 accuracy_score: 0.75 -Epoch: 11 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 12 accuracy_score: 0.75 -Epoch: 12 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 13 accuracy_score: 0.75 -Epoch: 13 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 14 accuracy_score: 0.75 -Epoch: 14 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 15 accuracy_score: 0.75 -Epoch: 15 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 16 accuracy_score: 0.75 -Epoch: 16 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 17 accuracy_score: 0.75 -Epoch: 17 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 18 accuracy_score: 0.75 -Epoch: 18 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 19 accuracy_score: 0.75 -Epoch: 19 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 20 accuracy_score: 0.75 -Epoch: 20 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 21 accuracy_score: 0.75 -Epoch: 21 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 22 accuracy_score: 0.75 -Epoch: 22 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 23 accuracy_score: 0.75 -Epoch: 23 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 24 accuracy_score: 0.75 -Epoch: 24 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 25 accuracy_score: 0.75 -Epoch: 25 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 26 accuracy_score: 0.75 -Epoch: 26 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 27 accuracy_score: 0.75 -Epoch: 27 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 28 accuracy_score: 0.75 -Epoch: 28 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 29 accuracy_score: 0.75 -Epoch: 29 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 30 accuracy_score: 0.75 -Epoch: 30 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 31 accuracy_score: 0.75 -Epoch: 31 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 32 accuracy_score: 0.75 -Epoch: 32 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 33 accuracy_score: 0.75 -Epoch: 33 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 34 accuracy_score: 0.75 -Epoch: 34 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 35 accuracy_score: 0.75 -Epoch: 35 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 36 accuracy_score: 0.75 -Epoch: 36 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 37 accuracy_score: 0.75 -Epoch: 37 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 38 accuracy_score: 0.75 -Epoch: 38 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 39 accuracy_score: 0.75 -Epoch: 39 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 40 accuracy_score: 0.75 -Epoch: 40 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 41 accuracy_score: 0.75 -Epoch: 41 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 42 accuracy_score: 0.75 -Epoch: 42 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 43 accuracy_score: 0.75 -Epoch: 43 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 44 accuracy_score: 0.75 -Epoch: 44 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 45 accuracy_score: 0.75 -Epoch: 45 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 46 accuracy_score: 0.75 -Epoch: 46 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 47 accuracy_score: 0.75 -Epoch: 47 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 48 accuracy_score: 0.75 -Epoch: 48 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 49 accuracy_score: 0.75 -Epoch: 49 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 50 accuracy_score: 0.75 -Epoch: 50 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 51 accuracy_score: 0.75 -Epoch: 51 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 52 accuracy_score: 0.75 -Epoch: 52 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 53 accuracy_score: 0.75 -Epoch: 53 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 54 accuracy_score: 0.75 -Epoch: 54 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 55 accuracy_score: 0.75 -Epoch: 55 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 56 accuracy_score: 0.75 -Epoch: 56 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 57 accuracy_score: 0.75 -Epoch: 57 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 58 accuracy_score: 0.75 -Epoch: 58 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 59 accuracy_score: 0.75 -Epoch: 59 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 60 accuracy_score: 0.75 -Epoch: 60 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 61 accuracy_score: 0.75 -Epoch: 61 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 62 accuracy_score: 0.75 -Epoch: 62 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 63 accuracy_score: 0.75 -Epoch: 63 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 64 accuracy_score: 0.75 -Epoch: 64 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 65 accuracy_score: 0.75 -Epoch: 65 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 66 accuracy_score: 0.75 -Epoch: 66 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 67 accuracy_score: 0.75 -Epoch: 67 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 68 accuracy_score: 0.75 -Epoch: 68 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 69 accuracy_score: 0.75 -Epoch: 69 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 70 accuracy_score: 0.75 -Epoch: 70 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 71 accuracy_score: 0.75 -Epoch: 71 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 72 accuracy_score: 0.75 -Epoch: 72 average_metric: binary f1_score: 0.4444444444444444 -Epoch: 73 accuracy_score: 0.755 -Epoch: 73 average_metric: binary f1_score: 0.4948453608247423 -Epoch: 74 accuracy_score: 0.755 -Epoch: 74 average_metric: binary f1_score: 0.4948453608247423 -Epoch: 75 accuracy_score: 0.755 -Epoch: 75 average_metric: binary f1_score: 0.4948453608247423 -Epoch: 76 accuracy_score: 0.755 -Epoch: 76 average_metric: binary f1_score: 0.4948453608247423 -Epoch: 77 accuracy_score: 0.755 -Epoch: 77 average_metric: binary f1_score: 0.4948453608247423 -Epoch: 78 accuracy_score: 0.755 -Epoch: 78 average_metric: binary f1_score: 0.4948453608247423 -Epoch: 79 accuracy_score: 0.755 -Epoch: 79 average_metric: binary f1_score: 0.4948453608247423 -Epoch: 80 accuracy_score: 0.755 -Epoch: 80 average_metric: binary f1_score: 0.4948453608247423 -Epoch: 81 accuracy_score: 0.755 -Epoch: 81 average_metric: binary f1_score: 0.4948453608247423 -Epoch: 82 accuracy_score: 0.755 -Epoch: 82 average_metric: binary f1_score: 0.4948453608247423 -Epoch: 83 accuracy_score: 0.755 -Epoch: 83 average_metric: binary f1_score: 0.4948453608247423 -Epoch: 84 accuracy_score: 0.755 -Epoch: 84 average_metric: binary f1_score: 0.4948453608247423 -Epoch: 85 accuracy_score: 0.755 -Epoch: 85 average_metric: binary f1_score: 0.4948453608247423 -Epoch: 86 accuracy_score: 0.755 -Epoch: 86 average_metric: binary f1_score: 0.4948453608247423 -Epoch: 87 accuracy_score: 0.755 -Epoch: 87 average_metric: binary f1_score: 0.4948453608247423 -Epoch: 88 accuracy_score: 0.755 -Epoch: 88 average_metric: binary f1_score: 0.4948453608247423 -Epoch: 89 accuracy_score: 0.755 -Epoch: 89 average_metric: binary f1_score: 0.4948453608247423 -Epoch: 90 accuracy_score: 0.755 -Epoch: 90 average_metric: binary f1_score: 0.4948453608247423 -Epoch: 91 accuracy_score: 0.755 -Epoch: 91 average_metric: binary f1_score: 0.4948453608247423 -Epoch: 92 accuracy_score: 0.755 -Epoch: 92 average_metric: binary f1_score: 0.4948453608247423 -Epoch: 93 accuracy_score: 0.755 -Epoch: 93 average_metric: binary f1_score: 0.4948453608247423 -Epoch: 94 accuracy_score: 0.755 -Epoch: 94 average_metric: binary f1_score: 0.4948453608247423 -Epoch: 95 accuracy_score: 0.755 -Epoch: 95 average_metric: binary f1_score: 0.4948453608247423 -Epoch: 96 accuracy_score: 0.755 -Epoch: 96 average_metric: binary f1_score: 0.4948453608247423 -Epoch: 97 accuracy_score: 0.755 -Epoch: 97 average_metric: binary f1_score: 0.4948453608247423 -Epoch: 98 accuracy_score: 0.755 -Epoch: 98 average_metric: binary f1_score: 0.4948453608247423 -Epoch: 99 accuracy_score: 0.76 -Epoch: 99 average_metric: binary f1_score: 0.5000000000000001 -CAGE log: -Epoch: 0 accuracy_score: 0.76 -Epoch: 0 average_metric: binary f1_score: 0.5000000000000001 -Epoch: 1 accuracy_score: 0.76 -Epoch: 1 average_metric: binary f1_score: 0.5000000000000001 -Epoch: 2 accuracy_score: 0.76 -Epoch: 2 average_metric: binary f1_score: 0.5000000000000001 -Epoch: 3 accuracy_score: 0.76 -Epoch: 3 average_metric: binary f1_score: 0.5000000000000001 -Epoch: 4 accuracy_score: 0.76 -Epoch: 4 average_metric: binary f1_score: 0.5000000000000001 -Epoch: 5 accuracy_score: 0.76 -Epoch: 5 average_metric: binary f1_score: 0.5000000000000001 -Epoch: 6 accuracy_score: 0.765 -Epoch: 6 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 7 accuracy_score: 0.765 -Epoch: 7 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 8 accuracy_score: 0.765 -Epoch: 8 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 9 accuracy_score: 0.765 -Epoch: 9 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 10 accuracy_score: 0.765 -Epoch: 10 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 11 accuracy_score: 0.765 -Epoch: 11 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 12 accuracy_score: 0.765 -Epoch: 12 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 13 accuracy_score: 0.765 -Epoch: 13 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 14 accuracy_score: 0.765 -Epoch: 14 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 15 accuracy_score: 0.765 -Epoch: 15 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 16 accuracy_score: 0.765 -Epoch: 16 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 17 accuracy_score: 0.765 -Epoch: 17 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 18 accuracy_score: 0.765 -Epoch: 18 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 19 accuracy_score: 0.765 -Epoch: 19 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 20 accuracy_score: 0.765 -Epoch: 20 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 21 accuracy_score: 0.765 -Epoch: 21 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 22 accuracy_score: 0.765 -Epoch: 22 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 23 accuracy_score: 0.765 -Epoch: 23 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 24 accuracy_score: 0.765 -Epoch: 24 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 25 accuracy_score: 0.765 -Epoch: 25 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 26 accuracy_score: 0.765 -Epoch: 26 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 27 accuracy_score: 0.765 -Epoch: 27 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 28 accuracy_score: 0.765 -Epoch: 28 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 29 accuracy_score: 0.765 -Epoch: 29 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 30 accuracy_score: 0.765 -Epoch: 30 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 31 accuracy_score: 0.765 -Epoch: 31 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 32 accuracy_score: 0.765 -Epoch: 32 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 33 accuracy_score: 0.765 -Epoch: 33 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 34 accuracy_score: 0.765 -Epoch: 34 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 35 accuracy_score: 0.765 -Epoch: 35 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 36 accuracy_score: 0.765 -Epoch: 36 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 37 accuracy_score: 0.765 -Epoch: 37 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 38 accuracy_score: 0.765 -Epoch: 38 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 39 accuracy_score: 0.765 -Epoch: 39 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 40 accuracy_score: 0.765 -Epoch: 40 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 41 accuracy_score: 0.765 -Epoch: 41 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 42 accuracy_score: 0.765 -Epoch: 42 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 43 accuracy_score: 0.765 -Epoch: 43 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 44 accuracy_score: 0.765 -Epoch: 44 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 45 accuracy_score: 0.765 -Epoch: 45 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 46 accuracy_score: 0.765 -Epoch: 46 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 47 accuracy_score: 0.765 -Epoch: 47 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 48 accuracy_score: 0.765 -Epoch: 48 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 49 accuracy_score: 0.765 -Epoch: 49 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 50 accuracy_score: 0.76 -Epoch: 50 average_metric: binary f1_score: 0.5000000000000001 -Epoch: 51 accuracy_score: 0.76 -Epoch: 51 average_metric: binary f1_score: 0.5000000000000001 -Epoch: 52 accuracy_score: 0.76 -Epoch: 52 average_metric: binary f1_score: 0.5000000000000001 -Epoch: 53 accuracy_score: 0.76 -Epoch: 53 average_metric: binary f1_score: 0.5000000000000001 -Epoch: 54 accuracy_score: 0.76 -Epoch: 54 average_metric: binary f1_score: 0.5000000000000001 -Epoch: 55 accuracy_score: 0.76 -Epoch: 55 average_metric: binary f1_score: 0.5000000000000001 -Epoch: 56 accuracy_score: 0.76 -Epoch: 56 average_metric: binary f1_score: 0.5000000000000001 -Epoch: 57 accuracy_score: 0.76 -Epoch: 57 average_metric: binary f1_score: 0.5000000000000001 -Epoch: 58 accuracy_score: 0.76 -Epoch: 58 average_metric: binary f1_score: 0.5000000000000001 -Epoch: 59 accuracy_score: 0.76 -Epoch: 59 average_metric: binary f1_score: 0.5000000000000001 -Epoch: 60 accuracy_score: 0.76 -Epoch: 60 average_metric: binary f1_score: 0.5000000000000001 -Epoch: 61 accuracy_score: 0.76 -Epoch: 61 average_metric: binary f1_score: 0.5000000000000001 -Epoch: 62 accuracy_score: 0.76 -Epoch: 62 average_metric: binary f1_score: 0.5000000000000001 -Epoch: 63 accuracy_score: 0.76 -Epoch: 63 average_metric: binary f1_score: 0.5000000000000001 -Epoch: 64 accuracy_score: 0.76 -Epoch: 64 average_metric: binary f1_score: 0.5000000000000001 -Epoch: 65 accuracy_score: 0.76 -Epoch: 65 average_metric: binary f1_score: 0.5000000000000001 -Epoch: 66 accuracy_score: 0.76 -Epoch: 66 average_metric: binary f1_score: 0.5000000000000001 -Epoch: 67 accuracy_score: 0.765 -Epoch: 67 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 68 accuracy_score: 0.765 -Epoch: 68 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 69 accuracy_score: 0.765 -Epoch: 69 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 70 accuracy_score: 0.765 -Epoch: 70 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 71 accuracy_score: 0.765 -Epoch: 71 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 72 accuracy_score: 0.765 -Epoch: 72 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 73 accuracy_score: 0.765 -Epoch: 73 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 74 accuracy_score: 0.765 -Epoch: 74 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 75 accuracy_score: 0.765 -Epoch: 75 average_metric: binary f1_score: 0.5052631578947369 -Epoch: 76 accuracy_score: 0.77 -Epoch: 76 average_metric: binary f1_score: 0.5106382978723405 -Epoch: 77 accuracy_score: 0.77 -Epoch: 77 average_metric: binary f1_score: 0.5106382978723405 -Epoch: 78 accuracy_score: 0.775 -Epoch: 78 average_metric: binary f1_score: 0.5161290322580645 -Epoch: 79 accuracy_score: 0.775 -Epoch: 79 average_metric: binary f1_score: 0.5161290322580645 -Epoch: 80 accuracy_score: 0.775 -Epoch: 80 average_metric: binary f1_score: 0.5161290322580645 -Epoch: 81 accuracy_score: 0.775 -Epoch: 81 average_metric: binary f1_score: 0.5161290322580645 -Epoch: 82 accuracy_score: 0.775 -Epoch: 82 average_metric: binary f1_score: 0.5161290322580645 -Epoch: 83 accuracy_score: 0.775 -Epoch: 83 average_metric: binary f1_score: 0.5161290322580645 -Epoch: 84 accuracy_score: 0.775 -Epoch: 84 average_metric: binary f1_score: 0.5161290322580645 -Epoch: 85 accuracy_score: 0.775 -Epoch: 85 average_metric: binary f1_score: 0.5161290322580645 -Epoch: 86 accuracy_score: 0.775 -Epoch: 86 average_metric: binary f1_score: 0.5161290322580645 -Epoch: 87 accuracy_score: 0.775 -Epoch: 87 average_metric: binary f1_score: 0.5161290322580645 -Epoch: 88 accuracy_score: 0.775 -Epoch: 88 average_metric: binary f1_score: 0.5161290322580645 -Epoch: 89 accuracy_score: 0.775 -Epoch: 89 average_metric: binary f1_score: 0.5161290322580645 -Epoch: 90 accuracy_score: 0.775 -Epoch: 90 average_metric: binary f1_score: 0.5161290322580645 -Epoch: 91 accuracy_score: 0.775 -Epoch: 91 average_metric: binary f1_score: 0.5161290322580645 -Epoch: 92 accuracy_score: 0.775 -Epoch: 92 average_metric: binary f1_score: 0.5161290322580645 -Epoch: 93 accuracy_score: 0.775 -Epoch: 93 average_metric: binary f1_score: 0.5161290322580645 -Epoch: 94 accuracy_score: 0.775 -Epoch: 94 average_metric: binary f1_score: 0.5161290322580645 -Epoch: 95 accuracy_score: 0.775 -Epoch: 95 average_metric: binary f1_score: 0.5161290322580645 -Epoch: 96 accuracy_score: 0.775 -Epoch: 96 average_metric: binary f1_score: 0.5161290322580645 -Epoch: 97 accuracy_score: 0.775 -Epoch: 97 average_metric: binary f1_score: 0.5161290322580645 -Epoch: 98 accuracy_score: 0.775 -Epoch: 98 average_metric: binary f1_score: 0.5161290322580645 -Epoch: 99 accuracy_score: 0.775 -Epoch: 99 average_metric: binary f1_score: 0.5161290322580645 -CAGE log: -Epoch: 0 accuracy_score: 0.775 -Epoch: 0 average_metric: binary f1_score: 0.5161290322580645 -Epoch: 1 accuracy_score: 0.775 -Epoch: 1 average_metric: binary f1_score: 0.5161290322580645 -Epoch: 2 accuracy_score: 0.775 -Epoch: 2 average_metric: binary f1_score: 0.5161290322580645 -Epoch: 3 accuracy_score: 0.775 -Epoch: 3 average_metric: binary f1_score: 0.5161290322580645 -Epoch: 4 accuracy_score: 0.775 -Epoch: 4 average_metric: binary f1_score: 0.5161290322580645 -Epoch: 5 accuracy_score: 0.775 -Epoch: 5 average_metric: binary f1_score: 0.5161290322580645 -Epoch: 6 accuracy_score: 0.775 -Epoch: 6 average_metric: binary f1_score: 0.5161290322580645 -Epoch: 7 accuracy_score: 0.775 -Epoch: 7 average_metric: binary f1_score: 0.5161290322580645 -Epoch: 8 accuracy_score: 0.775 -Epoch: 8 average_metric: binary f1_score: 0.5161290322580645 -Epoch: 9 accuracy_score: 0.775 -Epoch: 9 average_metric: binary f1_score: 0.5161290322580645 -Epoch: 10 accuracy_score: 0.775 -Epoch: 10 average_metric: binary f1_score: 0.5161290322580645 -Epoch: 11 accuracy_score: 0.775 -Epoch: 11 average_metric: binary f1_score: 0.5161290322580645 -Epoch: 12 accuracy_score: 0.775 -Epoch: 12 average_metric: binary f1_score: 0.5161290322580645 -Epoch: 13 accuracy_score: 0.775 -Epoch: 13 average_metric: binary f1_score: 0.5161290322580645 -Epoch: 14 accuracy_score: 0.775 -Epoch: 14 average_metric: binary f1_score: 0.5161290322580645 -Epoch: 15 accuracy_score: 0.775 -Epoch: 15 average_metric: binary f1_score: 0.5161290322580645 -Epoch: 16 accuracy_score: 0.775 -Epoch: 16 average_metric: binary f1_score: 0.5161290322580645 -Epoch: 17 accuracy_score: 0.775 -Epoch: 17 average_metric: binary f1_score: 0.5161290322580645 -Epoch: 18 accuracy_score: 0.775 -Epoch: 18 average_metric: binary f1_score: 0.5161290322580645 -Epoch: 19 accuracy_score: 0.775 -Epoch: 19 average_metric: binary f1_score: 0.5161290322580645 -Epoch: 20 accuracy_score: 0.775 -Epoch: 20 average_metric: binary f1_score: 0.5161290322580645 -Epoch: 21 accuracy_score: 0.775 -Epoch: 21 average_metric: binary f1_score: 0.5161290322580645 -Epoch: 22 accuracy_score: 0.77 -Epoch: 22 average_metric: binary f1_score: 0.5106382978723405 -Epoch: 23 accuracy_score: 0.77 -Epoch: 23 average_metric: binary f1_score: 0.5106382978723405 -Epoch: 24 accuracy_score: 0.77 -Epoch: 24 average_metric: binary f1_score: 0.5106382978723405 -Epoch: 25 accuracy_score: 0.77 -Epoch: 25 average_metric: binary f1_score: 0.5106382978723405 -Epoch: 26 accuracy_score: 0.77 -Epoch: 26 average_metric: binary f1_score: 0.5106382978723405 -Epoch: 27 accuracy_score: 0.77 -Epoch: 27 average_metric: binary f1_score: 0.5106382978723405 -Epoch: 28 accuracy_score: 0.77 -Epoch: 28 average_metric: binary f1_score: 0.5106382978723405 -Epoch: 29 accuracy_score: 0.77 -Epoch: 29 average_metric: binary f1_score: 0.5106382978723405 -Epoch: 30 accuracy_score: 0.77 -Epoch: 30 average_metric: binary f1_score: 0.5106382978723405 -Epoch: 31 accuracy_score: 0.77 -Epoch: 31 average_metric: binary f1_score: 0.5106382978723405 -Epoch: 32 accuracy_score: 0.77 -Epoch: 32 average_metric: binary f1_score: 0.5106382978723405 -Epoch: 33 accuracy_score: 0.77 -Epoch: 33 average_metric: binary f1_score: 0.5106382978723405 -Epoch: 34 accuracy_score: 0.77 -Epoch: 34 average_metric: binary f1_score: 0.5106382978723405 -Epoch: 35 accuracy_score: 0.77 -Epoch: 35 average_metric: binary f1_score: 0.5106382978723405 -Epoch: 36 accuracy_score: 0.77 -Epoch: 36 average_metric: binary f1_score: 0.5106382978723405 -Epoch: 37 accuracy_score: 0.77 -Epoch: 37 average_metric: binary f1_score: 0.5106382978723405 -Epoch: 38 accuracy_score: 0.77 -Epoch: 38 average_metric: binary f1_score: 0.5106382978723405 -Epoch: 39 accuracy_score: 0.77 -Epoch: 39 average_metric: binary f1_score: 0.5106382978723405 -Epoch: 40 accuracy_score: 0.77 -Epoch: 40 average_metric: binary f1_score: 0.5106382978723405 -Epoch: 41 accuracy_score: 0.77 -Epoch: 41 average_metric: binary f1_score: 0.5106382978723405 -Epoch: 42 accuracy_score: 0.77 -Epoch: 42 average_metric: binary f1_score: 0.5106382978723405 -Epoch: 43 accuracy_score: 0.77 -Epoch: 43 average_metric: binary f1_score: 0.5106382978723405 -Epoch: 44 accuracy_score: 0.77 -Epoch: 44 average_metric: binary f1_score: 0.5106382978723405 -Epoch: 45 accuracy_score: 0.77 -Epoch: 45 average_metric: binary f1_score: 0.5106382978723405 -Epoch: 46 accuracy_score: 0.77 -Epoch: 46 average_metric: binary f1_score: 0.5106382978723405 -Epoch: 47 accuracy_score: 0.77 -Epoch: 47 average_metric: binary f1_score: 0.5106382978723405 -Epoch: 48 accuracy_score: 0.77 -Epoch: 48 average_metric: binary f1_score: 0.5106382978723405 -Epoch: 49 accuracy_score: 0.77 -Epoch: 49 average_metric: binary f1_score: 0.5106382978723405 -Epoch: 50 accuracy_score: 0.77 -Epoch: 50 average_metric: binary f1_score: 0.5106382978723405 -Epoch: 51 accuracy_score: 0.77 -Epoch: 51 average_metric: binary f1_score: 0.5106382978723405 -Epoch: 52 accuracy_score: 0.77 -Epoch: 52 average_metric: binary f1_score: 0.5106382978723405 -Epoch: 53 accuracy_score: 0.77 -Epoch: 53 average_metric: binary f1_score: 0.5106382978723405 -Epoch: 54 accuracy_score: 0.77 -Epoch: 54 average_metric: binary f1_score: 0.5106382978723405 -Epoch: 55 accuracy_score: 0.77 -Epoch: 55 average_metric: binary f1_score: 0.5106382978723405 -Epoch: 56 accuracy_score: 0.77 -Epoch: 56 average_metric: binary f1_score: 0.5106382978723405 -Epoch: 57 accuracy_score: 0.77 -Epoch: 57 average_metric: binary f1_score: 0.5106382978723405 -Epoch: 58 accuracy_score: 0.775 -Epoch: 58 average_metric: binary f1_score: 0.5263157894736842 -Epoch: 59 accuracy_score: 0.775 -Epoch: 59 average_metric: binary f1_score: 0.5263157894736842 -Epoch: 60 accuracy_score: 0.775 -Epoch: 60 average_metric: binary f1_score: 0.5263157894736842 -Epoch: 61 accuracy_score: 0.775 -Epoch: 61 average_metric: binary f1_score: 0.5263157894736842 -Epoch: 62 accuracy_score: 0.775 -Epoch: 62 average_metric: binary f1_score: 0.5263157894736842 -Epoch: 63 accuracy_score: 0.775 -Epoch: 63 average_metric: binary f1_score: 0.5263157894736842 -Epoch: 64 accuracy_score: 0.775 -Epoch: 64 average_metric: binary f1_score: 0.5263157894736842 -Epoch: 65 accuracy_score: 0.775 -Epoch: 65 average_metric: binary f1_score: 0.5263157894736842 -Epoch: 66 accuracy_score: 0.77 -Epoch: 66 average_metric: binary f1_score: 0.5208333333333334 -Epoch: 67 accuracy_score: 0.77 -Epoch: 67 average_metric: binary f1_score: 0.5208333333333334 -Epoch: 68 accuracy_score: 0.77 -Epoch: 68 average_metric: binary f1_score: 0.5208333333333334 -Epoch: 69 accuracy_score: 0.77 -Epoch: 69 average_metric: binary f1_score: 0.5208333333333334 -Epoch: 70 accuracy_score: 0.77 -Epoch: 70 average_metric: binary f1_score: 0.5208333333333334 -Epoch: 71 accuracy_score: 0.77 -Epoch: 71 average_metric: binary f1_score: 0.5208333333333334 -Epoch: 72 accuracy_score: 0.77 -Epoch: 72 average_metric: binary f1_score: 0.5208333333333334 -Epoch: 73 accuracy_score: 0.77 -Epoch: 73 average_metric: binary f1_score: 0.5208333333333334 -Epoch: 74 accuracy_score: 0.77 -Epoch: 74 average_metric: binary f1_score: 0.5208333333333334 -Epoch: 75 accuracy_score: 0.765 -Epoch: 75 average_metric: binary f1_score: 0.5154639175257731 -Epoch: 76 accuracy_score: 0.765 -Epoch: 76 average_metric: binary f1_score: 0.5154639175257731 -Epoch: 77 accuracy_score: 0.765 -Epoch: 77 average_metric: binary f1_score: 0.5154639175257731 -Epoch: 78 accuracy_score: 0.765 -Epoch: 78 average_metric: binary f1_score: 0.5154639175257731 -Epoch: 79 accuracy_score: 0.765 -Epoch: 79 average_metric: binary f1_score: 0.5154639175257731 -Epoch: 80 accuracy_score: 0.765 -Epoch: 80 average_metric: binary f1_score: 0.5154639175257731 -Epoch: 81 accuracy_score: 0.765 -Epoch: 81 average_metric: binary f1_score: 0.5154639175257731 -Epoch: 82 accuracy_score: 0.765 -Epoch: 82 average_metric: binary f1_score: 0.5154639175257731 -Epoch: 83 accuracy_score: 0.765 -Epoch: 83 average_metric: binary f1_score: 0.5154639175257731 -Epoch: 84 accuracy_score: 0.765 -Epoch: 84 average_metric: binary f1_score: 0.5154639175257731 -Epoch: 85 accuracy_score: 0.765 -Epoch: 85 average_metric: binary f1_score: 0.5154639175257731 -Epoch: 86 accuracy_score: 0.765 -Epoch: 86 average_metric: binary f1_score: 0.5154639175257731 -Epoch: 87 accuracy_score: 0.765 -Epoch: 87 average_metric: binary f1_score: 0.5154639175257731 -Epoch: 88 accuracy_score: 0.765 -Epoch: 88 average_metric: binary f1_score: 0.5154639175257731 -Epoch: 89 accuracy_score: 0.765 -Epoch: 89 average_metric: binary f1_score: 0.5154639175257731 -Epoch: 90 accuracy_score: 0.765 -Epoch: 90 average_metric: binary f1_score: 0.5154639175257731 -Epoch: 91 accuracy_score: 0.765 -Epoch: 91 average_metric: binary f1_score: 0.5154639175257731 -Epoch: 92 accuracy_score: 0.765 -Epoch: 92 average_metric: binary f1_score: 0.5154639175257731 -Epoch: 93 accuracy_score: 0.765 -Epoch: 93 average_metric: binary f1_score: 0.5154639175257731 -Epoch: 94 accuracy_score: 0.765 -Epoch: 94 average_metric: binary f1_score: 0.5154639175257731 -Epoch: 95 accuracy_score: 0.765 -Epoch: 95 average_metric: binary f1_score: 0.5154639175257731 -Epoch: 96 accuracy_score: 0.765 -Epoch: 96 average_metric: binary f1_score: 0.5154639175257731 -Epoch: 97 accuracy_score: 0.765 -Epoch: 97 average_metric: binary f1_score: 0.5154639175257731 -Epoch: 98 accuracy_score: 0.765 -Epoch: 98 average_metric: binary f1_score: 0.5154639175257731 -Epoch: 99 accuracy_score: 0.765 -Epoch: 99 average_metric: binary f1_score: 0.5154639175257731 +Epoch: 0 test_accuracy_score: 0.825 +Epoch: 0 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 1 test_accuracy_score: 0.825 +Epoch: 1 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 2 test_accuracy_score: 0.825 +Epoch: 2 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 3 test_accuracy_score: 0.825 +Epoch: 3 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 4 test_accuracy_score: 0.825 +Epoch: 4 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 5 test_accuracy_score: 0.825 +Epoch: 5 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 6 test_accuracy_score: 0.825 +Epoch: 6 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 7 test_accuracy_score: 0.825 +Epoch: 7 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 8 test_accuracy_score: 0.825 +Epoch: 8 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 9 test_accuracy_score: 0.825 +Epoch: 9 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 10 test_accuracy_score: 0.825 +Epoch: 10 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 11 test_accuracy_score: 0.825 +Epoch: 11 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 12 test_accuracy_score: 0.825 +Epoch: 12 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 13 test_accuracy_score: 0.825 +Epoch: 13 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 14 test_accuracy_score: 0.825 +Epoch: 14 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 15 test_accuracy_score: 0.825 +Epoch: 15 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 16 test_accuracy_score: 0.825 +Epoch: 16 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 17 test_accuracy_score: 0.825 +Epoch: 17 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 18 test_accuracy_score: 0.825 +Epoch: 18 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 19 test_accuracy_score: 0.825 +Epoch: 19 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 20 test_accuracy_score: 0.825 +Epoch: 20 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 21 test_accuracy_score: 0.83 +Epoch: 21 test_average_metric: binary test_f1_score: 0.6136363636363636 +Epoch: 22 test_accuracy_score: 0.83 +Epoch: 22 test_average_metric: binary test_f1_score: 0.6136363636363636 +Epoch: 23 test_accuracy_score: 0.83 +Epoch: 23 test_average_metric: binary test_f1_score: 0.6136363636363636 +Epoch: 24 test_accuracy_score: 0.83 +Epoch: 24 test_average_metric: binary test_f1_score: 0.6136363636363636 +Epoch: 25 test_accuracy_score: 0.835 +Epoch: 25 test_average_metric: binary test_f1_score: 0.6206896551724138 +Epoch: 26 test_accuracy_score: 0.835 +Epoch: 26 test_average_metric: binary test_f1_score: 0.6206896551724138 +Epoch: 27 test_accuracy_score: 0.835 +Epoch: 27 test_average_metric: binary test_f1_score: 0.6206896551724138 +Epoch: 28 test_accuracy_score: 0.835 +Epoch: 28 test_average_metric: binary test_f1_score: 0.6206896551724138 +Epoch: 29 test_accuracy_score: 0.835 +Epoch: 29 test_average_metric: binary test_f1_score: 0.6206896551724138 +Epoch: 30 test_accuracy_score: 0.835 +Epoch: 30 test_average_metric: binary test_f1_score: 0.6206896551724138 +Epoch: 31 test_accuracy_score: 0.835 +Epoch: 31 test_average_metric: binary test_f1_score: 0.6206896551724138 +Epoch: 32 test_accuracy_score: 0.835 +Epoch: 32 test_average_metric: binary test_f1_score: 0.6206896551724138 +Epoch: 33 test_accuracy_score: 0.835 +Epoch: 33 test_average_metric: binary test_f1_score: 0.6206896551724138 +Epoch: 34 test_accuracy_score: 0.835 +Epoch: 34 test_average_metric: binary test_f1_score: 0.6206896551724138 +Epoch: 35 test_accuracy_score: 0.835 +Epoch: 35 test_average_metric: binary test_f1_score: 0.6206896551724138 +Epoch: 36 test_accuracy_score: 0.835 +Epoch: 36 test_average_metric: binary test_f1_score: 0.6206896551724138 +Epoch: 37 test_accuracy_score: 0.835 +Epoch: 37 test_average_metric: binary test_f1_score: 0.6206896551724138 +Epoch: 38 test_accuracy_score: 0.835 +Epoch: 38 test_average_metric: binary test_f1_score: 0.6206896551724138 +Epoch: 39 test_accuracy_score: 0.835 +Epoch: 39 test_average_metric: binary test_f1_score: 0.6206896551724138 +Epoch: 40 test_accuracy_score: 0.835 +Epoch: 40 test_average_metric: binary test_f1_score: 0.6206896551724138 +Epoch: 41 test_accuracy_score: 0.835 +Epoch: 41 test_average_metric: binary test_f1_score: 0.6206896551724138 +Epoch: 42 test_accuracy_score: 0.835 +Epoch: 42 test_average_metric: binary test_f1_score: 0.6206896551724138 +Epoch: 43 test_accuracy_score: 0.835 +Epoch: 43 test_average_metric: binary test_f1_score: 0.6206896551724138 +Epoch: 44 test_accuracy_score: 0.835 +Epoch: 44 test_average_metric: binary test_f1_score: 0.6206896551724138 +Epoch: 45 test_accuracy_score: 0.83 +Epoch: 45 test_average_metric: binary test_f1_score: 0.6136363636363636 +Epoch: 46 test_accuracy_score: 0.83 +Epoch: 46 test_average_metric: binary test_f1_score: 0.6136363636363636 +Epoch: 47 test_accuracy_score: 0.83 +Epoch: 47 test_average_metric: binary test_f1_score: 0.6136363636363636 +Epoch: 48 test_accuracy_score: 0.83 +Epoch: 48 test_average_metric: binary test_f1_score: 0.6136363636363636 +Epoch: 49 test_accuracy_score: 0.83 +Epoch: 49 test_average_metric: binary test_f1_score: 0.6136363636363636 +Epoch: 50 test_accuracy_score: 0.83 +Epoch: 50 test_average_metric: binary test_f1_score: 0.6136363636363636 +Epoch: 51 test_accuracy_score: 0.83 +Epoch: 51 test_average_metric: binary test_f1_score: 0.6136363636363636 +Epoch: 52 test_accuracy_score: 0.83 +Epoch: 52 test_average_metric: binary test_f1_score: 0.6136363636363636 +Epoch: 53 test_accuracy_score: 0.83 +Epoch: 53 test_average_metric: binary test_f1_score: 0.6136363636363636 +Epoch: 54 test_accuracy_score: 0.83 +Epoch: 54 test_average_metric: binary test_f1_score: 0.6136363636363636 +Epoch: 55 test_accuracy_score: 0.83 +Epoch: 55 test_average_metric: binary test_f1_score: 0.6136363636363636 +Epoch: 56 test_accuracy_score: 0.825 +Epoch: 56 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 57 test_accuracy_score: 0.825 +Epoch: 57 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 58 test_accuracy_score: 0.825 +Epoch: 58 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 59 test_accuracy_score: 0.825 +Epoch: 59 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 60 test_accuracy_score: 0.825 +Epoch: 60 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 61 test_accuracy_score: 0.825 +Epoch: 61 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 62 test_accuracy_score: 0.825 +Epoch: 62 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 63 test_accuracy_score: 0.825 +Epoch: 63 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 64 test_accuracy_score: 0.825 +Epoch: 64 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 65 test_accuracy_score: 0.825 +Epoch: 65 test_average_metric: binary test_f1_score: 0.6067415730337079 +Epoch: 66 test_accuracy_score: 0.815 +Epoch: 66 test_average_metric: binary test_f1_score: 0.5934065934065934 +Epoch: 67 test_accuracy_score: 0.815 +Epoch: 67 test_average_metric: binary test_f1_score: 0.5934065934065934 +Epoch: 68 test_accuracy_score: 0.815 +Epoch: 68 test_average_metric: binary test_f1_score: 0.5934065934065934 +Epoch: 69 test_accuracy_score: 0.815 +Epoch: 69 test_average_metric: binary test_f1_score: 0.5934065934065934 +Epoch: 70 test_accuracy_score: 0.815 +Epoch: 70 test_average_metric: binary test_f1_score: 0.5934065934065934 +Epoch: 71 test_accuracy_score: 0.815 +Epoch: 71 test_average_metric: binary test_f1_score: 0.5934065934065934 +Epoch: 72 test_accuracy_score: 0.815 +Epoch: 72 test_average_metric: binary test_f1_score: 0.5934065934065934 +Epoch: 73 test_accuracy_score: 0.815 +Epoch: 73 test_average_metric: binary test_f1_score: 0.5934065934065934 +Epoch: 74 test_accuracy_score: 0.815 +Epoch: 74 test_average_metric: binary test_f1_score: 0.5934065934065934 +Epoch: 75 test_accuracy_score: 0.815 +Epoch: 75 test_average_metric: binary test_f1_score: 0.5934065934065934 +Epoch: 76 test_accuracy_score: 0.81 +Epoch: 76 test_average_metric: binary test_f1_score: 0.5869565217391304 +Epoch: 77 test_accuracy_score: 0.81 +Epoch: 77 test_average_metric: binary test_f1_score: 0.5869565217391304 +Epoch: 78 test_accuracy_score: 0.81 +Epoch: 78 test_average_metric: binary test_f1_score: 0.5869565217391304 +Epoch: 79 test_accuracy_score: 0.81 +Epoch: 79 test_average_metric: binary test_f1_score: 0.5869565217391304 +Epoch: 80 test_accuracy_score: 0.81 +Epoch: 80 test_average_metric: binary test_f1_score: 0.5869565217391304 +Epoch: 81 test_accuracy_score: 0.81 +Epoch: 81 test_average_metric: binary test_f1_score: 0.5869565217391304 +Epoch: 82 test_accuracy_score: 0.81 +Epoch: 82 test_average_metric: binary test_f1_score: 0.5869565217391304 +Epoch: 83 test_accuracy_score: 0.81 +Epoch: 83 test_average_metric: binary test_f1_score: 0.5869565217391304 +Epoch: 84 test_accuracy_score: 0.81 +Epoch: 84 test_average_metric: binary test_f1_score: 0.5869565217391304 +Epoch: 85 test_accuracy_score: 0.81 +Epoch: 85 test_average_metric: binary test_f1_score: 0.5869565217391304 +Epoch: 86 test_accuracy_score: 0.81 +Epoch: 86 test_average_metric: binary test_f1_score: 0.5869565217391304 +Epoch: 87 test_accuracy_score: 0.81 +Epoch: 87 test_average_metric: binary test_f1_score: 0.5869565217391304 +Epoch: 88 test_accuracy_score: 0.81 +Epoch: 88 test_average_metric: binary test_f1_score: 0.5869565217391304 +Epoch: 89 test_accuracy_score: 0.81 +Epoch: 89 test_average_metric: binary test_f1_score: 0.5869565217391304 +Epoch: 90 test_accuracy_score: 0.81 +Epoch: 90 test_average_metric: binary test_f1_score: 0.5869565217391304 +Epoch: 91 test_accuracy_score: 0.81 +Epoch: 91 test_average_metric: binary test_f1_score: 0.5869565217391304 +Epoch: 92 test_accuracy_score: 0.81 +Epoch: 92 test_average_metric: binary test_f1_score: 0.5869565217391304 +Epoch: 93 test_accuracy_score: 0.81 +Epoch: 93 test_average_metric: binary test_f1_score: 0.5869565217391304 +Epoch: 94 test_accuracy_score: 0.81 +Epoch: 94 test_average_metric: binary test_f1_score: 0.5869565217391304 +Epoch: 95 test_accuracy_score: 0.81 +Epoch: 95 test_average_metric: binary test_f1_score: 0.5869565217391304 +Epoch: 96 test_accuracy_score: 0.81 +Epoch: 96 test_average_metric: binary test_f1_score: 0.5869565217391304 +Epoch: 97 test_accuracy_score: 0.81 +Epoch: 97 test_average_metric: binary test_f1_score: 0.5869565217391304 +Epoch: 98 test_accuracy_score: 0.81 +Epoch: 98 test_average_metric: binary test_f1_score: 0.5869565217391304 +Epoch: 99 test_accuracy_score: 0.81 +Epoch: 99 test_average_metric: binary test_f1_score: 0.5869565217391304 diff --git a/examples/SMS_SPAM/log/jl_log_1.txt b/examples/SMS_SPAM/log/jl_log_1.txt index 2e59381..14b601b 100644 --- a/examples/SMS_SPAM/log/jl_log_1.txt +++ b/examples/SMS_SPAM/log/jl_log_1.txt @@ -1,278 +1,121 @@ JL log: -f1_score: Epoch: 0 gm_valid_score: 0.7278170930865542 fm_valid_score: 0.5360501567398119 -f1_score: Epoch: 0 gm_test_score: 0.7346126365213841 fm_test_score: 0.5429001640181764 -f1_score: Epoch: 1 gm_valid_score: 0.7278170930865542 fm_valid_score: 0.45011783189316573 -f1_score: Epoch: 2 gm_valid_score: 0.7165131112686038 fm_valid_score: 0.550763701707098 -f1_score: Epoch: 3 gm_valid_score: 0.7165131112686038 fm_valid_score: 0.5842293906810035 -f1_score: Epoch: 4 gm_valid_score: 0.7056277056277056 fm_valid_score: 0.625 -f1_score: Epoch: 5 gm_valid_score: 0.7165131112686038 fm_valid_score: 0.6426250812215726 -f1_score: Epoch: 5 gm_test_score: 0.7482222449049029 fm_test_score: 0.69558599695586 -f1_score: Epoch: 6 gm_valid_score: 0.7165131112686038 fm_valid_score: 0.625 -f1_score: Epoch: 7 gm_valid_score: 0.7165131112686038 fm_valid_score: 0.6810772501771793 -f1_score: Epoch: 8 gm_valid_score: 0.7278170930865542 fm_valid_score: 0.7508305647840531 -f1_score: Epoch: 9 gm_valid_score: 0.7278170930865542 fm_valid_score: 0.7023809523809524 -f1_score: Epoch: 10 gm_valid_score: 0.7278170930865542 fm_valid_score: 0.5250930560903606 -f1_score: Epoch: 10 gm_test_score: 0.7395833333333333 fm_test_score: 0.6226521359578723 -f1_score: Epoch: 11 gm_valid_score: 0.7278170930865542 fm_valid_score: 0.8888888888888888 -f1_score: Epoch: 12 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.9127653387612678 -f1_score: Epoch: 13 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7942857142857144 -f1_score: Epoch: 14 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.6426250812215726 -f1_score: Epoch: 15 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7942857142857144 -f1_score: Epoch: 15 gm_test_score: 0.7496871088861077 fm_test_score: 0.872591176939003 -f1_score: Epoch: 16 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8669859005054537 -f1_score: Epoch: 17 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8467824310520939 -f1_score: Epoch: 18 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7645043887818455 -f1_score: Epoch: 19 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7254901960784315 -f1_score: Epoch: 20 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7254901960784315 -f1_score: Epoch: 20 gm_test_score: 0.7496871088861077 fm_test_score: 0.8338090248925177 -f1_score: Epoch: 21 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.7508305647840531 -f1_score: Epoch: 22 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.8669859005054537 -f1_score: Epoch: 23 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.7942857142857144 +f1_score: Epoch: 0 gm_valid_score: 0.6165055990182544 fm_valid_score: 0.7292562509953815 +f1_score: Epoch: 0 gm_test_score: 0.7491543460909886 fm_test_score: 0.7161778618732262 +f1_score: Epoch: 1 gm_valid_score: 0.6165055990182544 fm_valid_score: 0.9526515151515151 +f1_score: Epoch: 2 gm_valid_score: 0.625 fm_valid_score: 0.9754360108081552 +f1_score: Epoch: 3 gm_valid_score: 0.625 fm_valid_score: 0.7085442552538732 +f1_score: Epoch: 4 gm_valid_score: 0.6336996336996337 fm_valid_score: 0.8929565403553843 +f1_score: Epoch: 5 gm_valid_score: 0.6336996336996337 fm_valid_score: 0.7400909681611436 +f1_score: Epoch: 5 gm_test_score: 0.7699033594109526 fm_test_score: 0.8088867654085046 +f1_score: Epoch: 6 gm_valid_score: 0.6336996336996337 fm_valid_score: 0.6183708382681933 +f1_score: Epoch: 7 gm_valid_score: 0.6336996336996337 fm_valid_score: 0.8139880952380953 +f1_score: Epoch: 8 gm_valid_score: 0.6336996336996337 fm_valid_score: 0.6266666666666667 +f1_score: Epoch: 9 gm_valid_score: 0.65625 fm_valid_score: 0.7873848334514528 +f1_score: Epoch: 10 gm_valid_score: 0.65625 fm_valid_score: 0.7400909681611436 +f1_score: Epoch: 10 gm_test_score: 0.7576291726341302 fm_test_score: 0.7929606625258798 +f1_score: Epoch: 11 gm_valid_score: 0.65625 fm_valid_score: 0.6523432067862607 +f1_score: Epoch: 12 gm_valid_score: 0.65625 fm_valid_score: 0.643640350877193 +f1_score: Epoch: 13 gm_valid_score: 0.65625 fm_valid_score: 0.6794871794871795 +f1_score: Epoch: 14 gm_valid_score: 0.647185151096794 fm_valid_score: 0.5324918186068256 +f1_score: Epoch: 15 gm_valid_score: 0.647185151096794 fm_valid_score: 0.7292562509953815 +f1_score: Epoch: 15 gm_test_score: 0.7326493009140503 fm_test_score: 0.7755331088664421 +f1_score: Epoch: 16 gm_valid_score: 0.647185151096794 fm_valid_score: 0.7400909681611436 +f1_score: Epoch: 17 gm_valid_score: 0.6593097318915716 fm_valid_score: 0.6986136226642556 +f1_score: Epoch: 18 gm_valid_score: 0.6593097318915716 fm_valid_score: 0.6350858224084336 +f1_score: Epoch: 19 gm_valid_score: 0.6593097318915716 fm_valid_score: 0.43466666666666665 +f1_score: Epoch: 20 gm_valid_score: 0.6593097318915716 fm_valid_score: 0.7292562509953815 +f1_score: Epoch: 20 gm_test_score: 0.7275985663082438 fm_test_score: 0.7755331088664421 JL log: -f1_score: Epoch: 0 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.7136858179041801 -f1_score: Epoch: 0 gm_test_score: 0.7496871088861077 fm_test_score: 0.8079590312600022 -f1_score: Epoch: 1 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.8467824310520939 -f1_score: Epoch: 2 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.8669859005054537 -f1_score: Epoch: 3 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.7789566755083996 -f1_score: Epoch: 4 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.7645043887818455 -f1_score: Epoch: 5 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.7942857142857144 -f1_score: Epoch: 5 gm_test_score: 0.7496871088861077 fm_test_score: 0.9044433827042522 -f1_score: Epoch: 6 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.8280520756570867 -f1_score: Epoch: 7 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.7645043887818455 -f1_score: Epoch: 8 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.7023809523809524 -f1_score: Epoch: 9 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.7645043887818455 -f1_score: Epoch: 10 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.8467824310520939 -f1_score: Epoch: 10 gm_test_score: 0.7548246996602571 fm_test_score: 0.8933333333333333 -f1_score: Epoch: 11 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.7789566755083996 -f1_score: Epoch: 12 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.8669859005054537 -f1_score: Epoch: 13 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.7942857142857144 -f1_score: Epoch: 14 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.691526038831428 -f1_score: Epoch: 15 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.7942857142857144 -f1_score: Epoch: 15 gm_test_score: 0.7600225861095427 fm_test_score: 0.8772817916858413 -f1_score: Epoch: 16 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.8669859005054537 -f1_score: Epoch: 17 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.7254901960784315 -f1_score: Epoch: 18 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.7789566755083996 -f1_score: Epoch: 19 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.8280520756570867 -f1_score: Epoch: 20 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.8467824310520939 -f1_score: Epoch: 20 gm_test_score: 0.751058003485188 fm_test_score: 0.8538011695906433 -f1_score: Epoch: 21 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.7645043887818455 -f1_score: Epoch: 22 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.7942857142857144 -f1_score: Epoch: 23 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.8888888888888888 -f1_score: Epoch: 24 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.8106060606060607 -f1_score: Epoch: 25 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.670995670995671 -f1_score: Epoch: 25 gm_test_score: 0.751058003485188 fm_test_score: 0.7432935438326274 -f1_score: Epoch: 26 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.7789566755083996 -f1_score: Epoch: 27 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.8888888888888888 -f1_score: Epoch: 28 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.7789566755083996 -f1_score: Epoch: 29 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.6810772501771793 -f1_score: Epoch: 30 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.7254901960784315 -f1_score: Epoch: 30 gm_test_score: 0.751058003485188 fm_test_score: 0.8136200716845877 -f1_score: Epoch: 31 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8888888888888888 -f1_score: Epoch: 32 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.9127653387612678 -f1_score: Epoch: 33 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.6517990383021058 -f1_score: Epoch: 34 gm_valid_score: 0.7395833333333333 fm_valid_score: 0.8280520756570867 -f1_score: Epoch: 35 gm_valid_score: 0.7395833333333333 fm_valid_score: 0.8467824310520939 -f1_score: Epoch: 35 gm_test_score: 0.7600225861095427 fm_test_score: 0.8575677600435675 -f1_score: Epoch: 36 gm_valid_score: 0.7395833333333333 fm_valid_score: 0.7789566755083996 -f1_score: Epoch: 37 gm_valid_score: 0.7395833333333333 fm_valid_score: 0.7254901960784315 -f1_score: Epoch: 38 gm_valid_score: 0.7395833333333333 fm_valid_score: 0.7378503730590846 -f1_score: Epoch: 39 gm_valid_score: 0.7395833333333333 fm_valid_score: 0.7645043887818455 -f1_score: Epoch: 40 gm_valid_score: 0.7395833333333333 fm_valid_score: 0.8106060606060607 -f1_score: Epoch: 40 gm_test_score: 0.7548246996602571 fm_test_score: 0.8619420156465716 -f1_score: Epoch: 41 gm_valid_score: 0.7395833333333333 fm_valid_score: 0.7789566755083996 -f1_score: Epoch: 42 gm_valid_score: 0.7395833333333333 fm_valid_score: 0.7136858179041801 -f1_score: Epoch: 43 gm_valid_score: 0.7395833333333333 fm_valid_score: 0.7508305647840531 +f1_score: Epoch: 0 gm_valid_score: 0.6593097318915716 fm_valid_score: 0.7512850273586469 +f1_score: Epoch: 0 gm_test_score: 0.7275985663082438 fm_test_score: 0.7833800186741363 +f1_score: Epoch: 1 gm_valid_score: 0.6593097318915716 fm_valid_score: 0.7292562509953815 +f1_score: Epoch: 2 gm_valid_score: 0.6593097318915716 fm_valid_score: 0.7512850273586469 +f1_score: Epoch: 3 gm_valid_score: 0.6684749849306811 fm_valid_score: 0.850139156497538 +f1_score: Epoch: 4 gm_valid_score: 0.6684749849306811 fm_valid_score: 0.6183708382681933 +f1_score: Epoch: 5 gm_valid_score: 0.6684749849306811 fm_valid_score: 0.6702508960573477 +f1_score: Epoch: 5 gm_test_score: 0.7275985663082438 fm_test_score: 0.7218745654290086 +f1_score: Epoch: 6 gm_valid_score: 0.6684749849306811 fm_valid_score: 0.6266666666666667 +f1_score: Epoch: 7 gm_valid_score: 0.6684749849306811 fm_valid_score: 0.6794871794871795 +f1_score: Epoch: 8 gm_valid_score: 0.6684749849306811 fm_valid_score: 0.7292562509953815 +f1_score: Epoch: 9 gm_valid_score: 0.6684749849306811 fm_valid_score: 0.6021049929405724 +f1_score: Epoch: 10 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.6889349725966523 +f1_score: Epoch: 10 gm_test_score: 0.7275985663082438 fm_test_score: 0.7419354838709677 +f1_score: Epoch: 11 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.6794871794871795 +f1_score: Epoch: 12 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.6612083568605308 +f1_score: Epoch: 13 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.8282114907425081 +f1_score: Epoch: 14 gm_valid_score: 0.6684749849306811 fm_valid_score: 0.6523432067862607 +f1_score: Epoch: 15 gm_valid_score: 0.6684749849306811 fm_valid_score: 0.6266666666666667 +f1_score: Epoch: 15 gm_test_score: 0.7377622377622377 fm_test_score: 0.684553172925266 +f1_score: Epoch: 16 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.6266666666666667 +f1_score: Epoch: 17 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.6021049929405724 +f1_score: Epoch: 18 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.6021049929405724 +f1_score: Epoch: 19 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.561128526645768 +f1_score: Epoch: 20 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.7519489723600283 +f1_score: Epoch: 20 gm_test_score: 0.7326493009140503 fm_test_score: 0.8306233062330624 +f1_score: Epoch: 21 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.5476190476190476 +f1_score: Epoch: 22 gm_valid_score: 0.6684749849306811 fm_valid_score: 0.5552350042072364 +f1_score: Epoch: 23 gm_valid_score: 0.6684749849306811 fm_valid_score: 0.6986136226642556 +f1_score: Epoch: 24 gm_valid_score: 0.6684749849306811 fm_valid_score: 0.6350858224084336 JL log: -f1_score: Epoch: 0 gm_valid_score: 0.7395833333333333 fm_valid_score: 0.938949938949939 -f1_score: Epoch: 0 gm_test_score: 0.7548246996602571 fm_test_score: 0.9152183128444256 -f1_score: Epoch: 1 gm_valid_score: 0.7395833333333333 fm_valid_score: 0.7789566755083996 -f1_score: Epoch: 2 gm_valid_score: 0.7395833333333333 fm_valid_score: 0.7508305647840531 -f1_score: Epoch: 3 gm_valid_score: 0.7395833333333333 fm_valid_score: 0.8888888888888888 -f1_score: Epoch: 4 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8106060606060607 -f1_score: Epoch: 5 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7789566755083996 -f1_score: Epoch: 5 gm_test_score: 0.7548246996602571 fm_test_score: 0.8885172798216276 -f1_score: Epoch: 6 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.9127653387612678 -f1_score: Epoch: 7 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8106060606060607 -f1_score: Epoch: 8 gm_valid_score: 0.7395833333333333 fm_valid_score: 0.8106060606060607 -f1_score: Epoch: 9 gm_valid_score: 0.7395833333333333 fm_valid_score: 0.7942857142857144 -f1_score: Epoch: 10 gm_valid_score: 0.7395833333333333 fm_valid_score: 0.7942857142857144 -f1_score: Epoch: 10 gm_test_score: 0.7548246996602571 fm_test_score: 0.8397435897435896 -f1_score: Epoch: 11 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8467824310520939 -f1_score: Epoch: 12 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.9127653387612678 -f1_score: Epoch: 13 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8467824310520939 -f1_score: Epoch: 14 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7789566755083996 -f1_score: Epoch: 15 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8280520756570867 -f1_score: Epoch: 15 gm_test_score: 0.7548246996602571 fm_test_score: 0.8793775883559166 -f1_score: Epoch: 16 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8106060606060607 -f1_score: Epoch: 17 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8280520756570867 -f1_score: Epoch: 18 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8669859005054537 -f1_score: Epoch: 19 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8467824310520939 -f1_score: Epoch: 20 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8106060606060607 -f1_score: Epoch: 20 gm_test_score: 0.7496871088861077 fm_test_score: 0.8555737144160237 -f1_score: Epoch: 21 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8280520756570867 -f1_score: Epoch: 22 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8669859005054537 -f1_score: Epoch: 23 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8669859005054537 +f1_score: Epoch: 0 gm_valid_score: 0.6684749849306811 fm_valid_score: 0.6350858224084336 +f1_score: Epoch: 0 gm_test_score: 0.7275985663082438 fm_test_score: 0.6575342465753424 +f1_score: Epoch: 1 gm_valid_score: 0.6684749849306811 fm_valid_score: 0.6889349725966523 +f1_score: Epoch: 2 gm_valid_score: 0.6684749849306811 fm_valid_score: 0.6523432067862607 +f1_score: Epoch: 3 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.6245306633291614 +f1_score: Epoch: 4 gm_valid_score: 0.6684749849306811 fm_valid_score: 0.6889349725966523 +f1_score: Epoch: 5 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.6794871794871795 +f1_score: Epoch: 5 gm_test_score: 0.7275985663082438 fm_test_score: 0.7317899491812534 +f1_score: Epoch: 6 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.6702508960573477 +f1_score: Epoch: 7 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.5920515857349651 +f1_score: Epoch: 8 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.71875 +f1_score: Epoch: 9 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.6612083568605308 +f1_score: Epoch: 10 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.6350858224084336 +f1_score: Epoch: 10 gm_test_score: 0.7275985663082438 fm_test_score: 0.707968293700459 +f1_score: Epoch: 11 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.5174632352941176 +f1_score: Epoch: 12 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.7873848334514528 +f1_score: Epoch: 13 gm_valid_score: 0.6684749849306811 fm_valid_score: 0.6523432067862607 +f1_score: Epoch: 14 gm_valid_score: 0.6684749849306811 fm_valid_score: 0.6794871794871795 +f1_score: Epoch: 15 gm_valid_score: 0.6684749849306811 fm_valid_score: 0.6350858224084336 +f1_score: Epoch: 15 gm_test_score: 0.7275985663082438 fm_test_score: 0.712794648173444 +f1_score: Epoch: 16 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.6101871101871101 +f1_score: Epoch: 17 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.6021049929405724 +f1_score: Epoch: 18 gm_valid_score: 0.6684749849306811 fm_valid_score: 0.40370331624646927 +f1_score: Epoch: 19 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.7085442552538732 +f1_score: Epoch: 20 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.6889349725966523 +f1_score: Epoch: 20 gm_test_score: 0.7275985663082438 fm_test_score: 0.7210030281378654 +f1_score: Epoch: 21 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.643640350877193 +f1_score: Epoch: 22 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.5628946090335114 +f1_score: Epoch: 23 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.6612083568605308 JL log: -f1_score: Epoch: 0 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8669859005054537 -f1_score: Epoch: 0 gm_test_score: 0.7496871088861077 fm_test_score: 0.8686457375541836 -f1_score: Epoch: 1 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8669859005054537 -f1_score: Epoch: 2 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8106060606060607 -f1_score: Epoch: 3 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7508305647840531 -f1_score: Epoch: 4 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7645043887818455 -f1_score: Epoch: 5 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8467824310520939 -f1_score: Epoch: 5 gm_test_score: 0.7496871088861077 fm_test_score: 0.902534113060429 -f1_score: Epoch: 6 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8467824310520939 -f1_score: Epoch: 7 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8467824310520939 -f1_score: Epoch: 8 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7789566755083996 -f1_score: Epoch: 9 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7508305647840531 -f1_score: Epoch: 10 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7645043887818455 -f1_score: Epoch: 10 gm_test_score: 0.7496871088861077 fm_test_score: 0.8251748251748252 -f1_score: Epoch: 11 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8280520756570867 -f1_score: Epoch: 12 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8669859005054537 -f1_score: Epoch: 13 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8669859005054537 -f1_score: Epoch: 14 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8669859005054537 -f1_score: Epoch: 15 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7942857142857144 -f1_score: Epoch: 15 gm_test_score: 0.7496871088861077 fm_test_score: 0.8555737144160237 -f1_score: Epoch: 16 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7254901960784315 -f1_score: Epoch: 17 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7136858179041801 -f1_score: Epoch: 18 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7645043887818455 -f1_score: Epoch: 19 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7942857142857144 -f1_score: Epoch: 20 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7942857142857144 -f1_score: Epoch: 20 gm_test_score: 0.7496871088861077 fm_test_score: 0.864376130198915 -f1_score: Epoch: 21 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7789566755083996 -f1_score: Epoch: 22 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8106060606060607 -f1_score: Epoch: 23 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8280520756570867 -JL log: -f1_score: Epoch: 0 gm_valid_score: 0.7278170930865542 fm_valid_score: 0.08256880733944953 -f1_score: Epoch: 0 gm_test_score: 0.7346126365213841 fm_test_score: 0.15469146238377007 -f1_score: Epoch: 1 gm_valid_score: 0.7165131112686038 fm_valid_score: 0.48574100046750823 -f1_score: Epoch: 2 gm_valid_score: 0.7056277056277056 fm_valid_score: 0.5733333333333334 -f1_score: Epoch: 3 gm_valid_score: 0.7056277056277056 fm_valid_score: 0.6129032258064516 -f1_score: Epoch: 4 gm_valid_score: 0.7165131112686038 fm_valid_score: 0.670995670995671 -f1_score: Epoch: 5 gm_valid_score: 0.7165131112686038 fm_valid_score: 0.6612466124661247 -f1_score: Epoch: 5 gm_test_score: 0.7395833333333333 fm_test_score: 0.7466666666666666 -f1_score: Epoch: 6 gm_valid_score: 0.7165131112686038 fm_valid_score: 0.7789566755083996 -f1_score: Epoch: 7 gm_valid_score: 0.7395833333333333 fm_valid_score: 0.7942857142857144 -f1_score: Epoch: 8 gm_valid_score: 0.7395833333333333 fm_valid_score: 0.6612466124661247 -f1_score: Epoch: 9 gm_valid_score: 0.7395833333333333 fm_valid_score: 0.7508305647840531 -f1_score: Epoch: 10 gm_valid_score: 0.7395833333333333 fm_valid_score: 0.7789566755083996 -f1_score: Epoch: 10 gm_test_score: 0.7395833333333333 fm_test_score: 0.8529354851193931 -f1_score: Epoch: 11 gm_valid_score: 0.7395833333333333 fm_valid_score: 0.7508305647840531 -f1_score: Epoch: 12 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7645043887818455 -f1_score: Epoch: 13 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8467824310520939 -f1_score: Epoch: 14 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7789566755083996 -f1_score: Epoch: 15 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7378503730590846 -f1_score: Epoch: 15 gm_test_score: 0.7496871088861077 fm_test_score: 0.8518737964745964 -f1_score: Epoch: 16 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7645043887818455 -f1_score: Epoch: 17 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8888888888888888 -f1_score: Epoch: 18 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8888888888888888 -f1_score: Epoch: 19 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7645043887818455 -f1_score: Epoch: 20 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.7136858179041801 -f1_score: Epoch: 20 gm_test_score: 0.7496871088861077 fm_test_score: 0.8164878599661208 -f1_score: Epoch: 21 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.8669859005054537 -f1_score: Epoch: 22 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.8280520756570867 -f1_score: Epoch: 23 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.7645043887818455 -f1_score: Epoch: 24 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.691526038831428 -f1_score: Epoch: 25 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.8280520756570867 -f1_score: Epoch: 25 gm_test_score: 0.7496871088861077 fm_test_score: 0.8954605765751277 -f1_score: Epoch: 26 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.7942857142857144 -f1_score: Epoch: 27 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.7136858179041801 -f1_score: Epoch: 28 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.7508305647840531 -JL log: -f1_score: Epoch: 0 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.9127653387612678 -f1_score: Epoch: 0 gm_test_score: 0.7496871088861077 fm_test_score: 0.9211874425325102 -f1_score: Epoch: 1 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.8669859005054537 -f1_score: Epoch: 2 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.7645043887818455 -f1_score: Epoch: 3 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.8467824310520939 -f1_score: Epoch: 4 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.8467824310520939 -f1_score: Epoch: 5 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.7942857142857144 -f1_score: Epoch: 5 gm_test_score: 0.7548246996602571 fm_test_score: 0.864376130198915 -f1_score: Epoch: 6 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.8467824310520939 -f1_score: Epoch: 7 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.7645043887818455 -f1_score: Epoch: 8 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.8669859005054537 -f1_score: Epoch: 9 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.8669859005054537 -f1_score: Epoch: 10 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.8106060606060607 -f1_score: Epoch: 10 gm_test_score: 0.7600225861095427 fm_test_score: 0.8555737144160237 -f1_score: Epoch: 11 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.8280520756570867 -f1_score: Epoch: 12 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.7789566755083996 -f1_score: Epoch: 13 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.8467824310520939 -f1_score: Epoch: 14 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.8106060606060607 -f1_score: Epoch: 15 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.7645043887818455 -f1_score: Epoch: 15 gm_test_score: 0.751058003485188 fm_test_score: 0.8431372549019607 -f1_score: Epoch: 16 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.7508305647840531 -f1_score: Epoch: 17 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.8888888888888888 -f1_score: Epoch: 18 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.7508305647840531 -f1_score: Epoch: 19 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.7789566755083996 -f1_score: Epoch: 20 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.8467824310520939 -f1_score: Epoch: 20 gm_test_score: 0.751058003485188 fm_test_score: 0.8538011695906433 -f1_score: Epoch: 21 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.8467824310520939 -f1_score: Epoch: 22 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.7508305647840531 -f1_score: Epoch: 23 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.8280520756570867 -f1_score: Epoch: 24 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.8106060606060607 -f1_score: Epoch: 25 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.7023809523809524 -f1_score: Epoch: 25 gm_test_score: 0.751058003485188 fm_test_score: 0.7733333333333333 -f1_score: Epoch: 26 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7789566755083996 -f1_score: Epoch: 27 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8888888888888888 -f1_score: Epoch: 28 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7645043887818455 -JL log: -f1_score: Epoch: 0 gm_valid_score: 0.7395833333333333 fm_valid_score: 0.8888888888888888 -f1_score: Epoch: 0 gm_test_score: 0.7600225861095427 fm_test_score: 0.8805970149253732 -f1_score: Epoch: 1 gm_valid_score: 0.7395833333333333 fm_valid_score: 0.8888888888888888 -f1_score: Epoch: 2 gm_valid_score: 0.7395833333333333 fm_valid_score: 0.7508305647840531 -f1_score: Epoch: 3 gm_valid_score: 0.7395833333333333 fm_valid_score: 0.8280520756570867 -f1_score: Epoch: 4 gm_valid_score: 0.7395833333333333 fm_valid_score: 0.9127653387612678 -f1_score: Epoch: 5 gm_valid_score: 0.7395833333333333 fm_valid_score: 0.8669859005054537 -f1_score: Epoch: 5 gm_test_score: 0.7548246996602571 fm_test_score: 0.9097435897435897 -f1_score: Epoch: 6 gm_valid_score: 0.7395833333333333 fm_valid_score: 0.7378503730590846 -f1_score: Epoch: 7 gm_valid_score: 0.7395833333333333 fm_valid_score: 0.7789566755083996 -f1_score: Epoch: 8 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8467824310520939 -f1_score: Epoch: 9 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8669859005054537 -f1_score: Epoch: 10 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7942857142857144 -f1_score: Epoch: 10 gm_test_score: 0.7548246996602571 fm_test_score: 0.8493068113321278 -f1_score: Epoch: 11 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7378503730590846 -f1_score: Epoch: 12 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8106060606060607 -f1_score: Epoch: 13 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.8106060606060607 -f1_score: Epoch: 14 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.7508305647840531 -f1_score: Epoch: 15 gm_valid_score: 0.7647058823529411 fm_valid_score: 0.7942857142857144 -f1_score: Epoch: 15 gm_test_score: 0.7548246996602571 fm_test_score: 0.837061176122056 -f1_score: Epoch: 16 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8669859005054537 -f1_score: Epoch: 17 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8467824310520939 -f1_score: Epoch: 18 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7378503730590846 -f1_score: Epoch: 19 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7645043887818455 -f1_score: Epoch: 20 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7942857142857144 -f1_score: Epoch: 20 gm_test_score: 0.7548246996602571 fm_test_score: 0.8555737144160237 -JL log: -f1_score: Epoch: 0 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.9127653387612678 -f1_score: Epoch: 0 gm_test_score: 0.7548246996602571 fm_test_score: 0.9134199134199135 -f1_score: Epoch: 1 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8888888888888888 -f1_score: Epoch: 2 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8467824310520939 -f1_score: Epoch: 3 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7942857142857144 -f1_score: Epoch: 4 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7378503730590846 -f1_score: Epoch: 5 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8106060606060607 -f1_score: Epoch: 5 gm_test_score: 0.7496871088861077 fm_test_score: 0.8885172798216276 -f1_score: Epoch: 6 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8106060606060607 -f1_score: Epoch: 7 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7942857142857144 -f1_score: Epoch: 8 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7942857142857144 -f1_score: Epoch: 9 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7645043887818455 -f1_score: Epoch: 10 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.670995670995671 -f1_score: Epoch: 10 gm_test_score: 0.7496871088861077 fm_test_score: 0.7450230459939198 -f1_score: Epoch: 11 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7942857142857144 -f1_score: Epoch: 12 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7942857142857144 -f1_score: Epoch: 13 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7645043887818455 -f1_score: Epoch: 14 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7508305647840531 -f1_score: Epoch: 15 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7789566755083996 -f1_score: Epoch: 15 gm_test_score: 0.7496871088861077 fm_test_score: 0.8493068113321278 -f1_score: Epoch: 16 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.9127653387612678 -f1_score: Epoch: 17 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7942857142857144 -f1_score: Epoch: 18 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.6612466124661247 -f1_score: Epoch: 19 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8106060606060607 -f1_score: Epoch: 20 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8106060606060607 -f1_score: Epoch: 20 gm_test_score: 0.7496871088861077 fm_test_score: 0.902534113060429 -f1_score: Epoch: 21 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7508305647840531 -f1_score: Epoch: 22 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7645043887818455 -f1_score: Epoch: 23 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8280520756570867 -f1_score: Epoch: 24 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.8280520756570867 -f1_score: Epoch: 25 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7942857142857144 -f1_score: Epoch: 25 gm_test_score: 0.7496871088861077 fm_test_score: 0.845764018948992 -f1_score: Epoch: 26 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7378503730590846 -f1_score: Epoch: 27 gm_valid_score: 0.7518610421836228 fm_valid_score: 0.7508305647840531 +f1_score: Epoch: 0 gm_valid_score: 0.6684749849306811 fm_valid_score: 0.6889349725966523 +f1_score: Epoch: 0 gm_test_score: 0.7377622377622377 fm_test_score: 0.7684407096171801 +f1_score: Epoch: 1 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.6523432067862607 +f1_score: Epoch: 2 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.6612083568605308 +f1_score: Epoch: 3 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.6183708382681933 +f1_score: Epoch: 4 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.71875 +f1_score: Epoch: 5 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.5628946090335114 +f1_score: Epoch: 5 gm_test_score: 0.7326493009140503 fm_test_score: 0.6927200810695957 +f1_score: Epoch: 6 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.6350858224084336 +f1_score: Epoch: 7 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.6021049929405724 +f1_score: Epoch: 8 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.5324918186068256 +f1_score: Epoch: 9 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.6986136226642556 +f1_score: Epoch: 10 gm_valid_score: 0.6684749849306811 fm_valid_score: 0.6021049929405724 +f1_score: Epoch: 10 gm_test_score: 0.7326493009140503 fm_test_score: 0.6796443398385146 +f1_score: Epoch: 11 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.5783730158730158 +f1_score: Epoch: 12 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.6266666666666667 +f1_score: Epoch: 13 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.6702508960573477 +f1_score: Epoch: 14 gm_valid_score: 0.6684749849306811 fm_valid_score: 0.71875 +f1_score: Epoch: 15 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.643640350877193 +f1_score: Epoch: 15 gm_test_score: 0.7377622377622377 fm_test_score: 0.684553172925266 +f1_score: Epoch: 16 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.6021049929405724 +f1_score: Epoch: 17 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.4650070968446337 +f1_score: Epoch: 18 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.6889349725966523 +f1_score: Epoch: 19 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.5941146626078133 +f1_score: Epoch: 20 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.5024875621890548 +f1_score: Epoch: 20 gm_test_score: 0.7275985663082438 fm_test_score: 0.5863970588235294 +f1_score: Epoch: 21 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.6266666666666667 +f1_score: Epoch: 22 gm_valid_score: 0.6778647031753336 fm_valid_score: 0.643640350877193 +f1_score: Epoch: 23 gm_valid_score: 0.6684749849306811 fm_valid_score: 0.6183708382681933 +f1_score: Epoch: 24 gm_valid_score: 0.6684749849306811 fm_valid_score: 0.6702508960573477 +f1_score: Epoch: 25 gm_valid_score: 0.6684749849306811 fm_valid_score: 0.6702508960573477 +f1_score: Epoch: 25 gm_test_score: 0.7326493009140503 fm_test_score: 0.7368327465414843 diff --git a/examples/SMS_SPAM/params/sms_cage_params.pkl b/examples/SMS_SPAM/params/sms_cage_params.pkl new file mode 100644 index 0000000..5195da1 Binary files /dev/null and b/examples/SMS_SPAM/params/sms_cage_params.pkl differ diff --git a/examples/SMS_SPAM/params/sms_jl_params.pkl b/examples/SMS_SPAM/params/sms_jl_params.pkl new file mode 100644 index 0000000..d09aead Binary files /dev/null and b/examples/SMS_SPAM/params/sms_jl_params.pkl differ diff --git a/examples/SMS_SPAM/utils.py b/examples/SMS_SPAM/utils.py index 156fdf7..97d9741 100644 --- a/examples/SMS_SPAM/utils.py +++ b/examples/SMS_SPAM/utils.py @@ -53,5 +53,59 @@ def load_data_to_numpy(folder="../../data/SMS_SPAM/"): Y = np.array(Y) return X, X_feats, Y +def get_various_data(X, Y, X_feats, temp_len, validation_size = 100, test_size = 200, L_size = 100, U_size = None): + if U_size == None: + U_size = X.size - L_size - validation_size - test_size + index = np.arange(X.size) + index = np.random.permutation(index) + X = X[index] + Y = Y[index] + X_feats = X_feats[index] + + X_V = X[-validation_size:] + Y_V = Y[-validation_size:] + X_feats_V = X_feats[-validation_size:] + R_V = np.zeros((validation_size, temp_len)) + + X_T = X[-(validation_size+test_size):-validation_size] + Y_T = Y[-(validation_size+test_size):-validation_size] + X_feats_T = X_feats[-(validation_size+test_size):-validation_size] + R_T = np.zeros((test_size,temp_len)) + + X_L = X[-(validation_size+test_size+L_size):-(validation_size+test_size)] + Y_L = Y[-(validation_size+test_size+L_size):-(validation_size+test_size)] + X_feats_L = X_feats[-(validation_size+test_size+L_size):-(validation_size+test_size)] + R_L = np.zeros((L_size,temp_len)) + + # X_U = X[:-(validation_size+test_size+L_size)] + X_U = X[:U_size] + X_feats_U = X_feats[:U_size] + # Y_U = Y[:-(validation_size+test_size+L_size)] + R_U = np.zeros((U_size,temp_len)) + + return X_V,Y_V,X_feats_V,R_V, X_T,Y_T,X_feats_T,R_T, X_L,Y_L,X_feats_L,R_L, X_U,X_feats_U,R_U + +def get_test_U_data(X, Y, X_feats, temp_len, test_size = 200, U_size = None): + if U_size == None: + U_size = X.size - test_size + index = np.arange(X.size) + index = np.random.permutation(index) + X = X[index] + Y = Y[index] + X_feats = X_feats[index] + + X_T = X[-(test_size):] + Y_T = Y[-(test_size):] + X_feats_T = X_feats[-(test_size):] + R_T = np.zeros((test_size,temp_len)) + + # X_U = X[:-(validation_size+test_size+L_size)] + X_U = X[:U_size] + X_feats_U = X_feats[:U_size] + # Y_U = Y[:-(validation_size+test_size+L_size)] + R_U = np.zeros((U_size,temp_len)) + + return X_T,Y_T,X_feats_T,R_T, X_U,X_feats_U,R_U + diff --git a/examples/TREC/lfs.py b/examples/TREC/lfs.py index 25239bc..61cdd32 100644 --- a/examples/TREC/lfs.py +++ b/examples/TREC/lfs.py @@ -9,6 +9,13 @@ from preprocessor import convert_to_lower +label_map = {"DESC": "DESCRIPTION", + "ENTY": "ENTITY", + "HUM": "HUMAN", + "ABBR": "ABBREVIATION", + "LOC": "LOCATION", + "NUM": "NUMERIC"} + class ClassLabels(enum.Enum): DESCRIPTION = 0 ENTITY = 1 @@ -25,15 +32,15 @@ def load_rules(file_name='rules.txt'): i = 0 for line in f: list_in = line.strip().split("\t") - label = ClassLabels[list_in[0]] + label = ClassLabels[label_map[list_in[0]]] pattern = list_in[1] rule_name = "rule"+str(i) - @labeling_function(name=rule_name,resources=dict(pattern=pattern),pre=[convert_to_lower],label=label) + @labeling_function(name=rule_name,resources=dict(pattern=pattern,output=label),pre=[convert_to_lower],label=label) def f(x,**kwargs): result = re.findall(kwargs["pattern"], x) if result: - return label + return kwargs["output"] else: return ABSTAIN diff --git a/examples/TREC/rules.txt b/examples/TREC/rules.txt index f3f42cc..eb76ac9 100644 --- a/examples/TREC/rules.txt +++ b/examples/TREC/rules.txt @@ -1,68 +1,68 @@ -ENTITY ( |^)(name|name)[^\w]* (\w+ ){0,1}(a)[^\w]*( |$) Name a canine cartoon character other than Huckleberry Hound to have a voice by Daws Butler . -DESCRIPTION ( |^)(how|how)[^\w]* (\w+ ){0,1}(does|to|can|should|would|could|will|do|do)[^\w]*( |$) How do you throw a housewarming party ? -DESCRIPTION ( |^)(what|what)[^\w]* (\w+ ){0,1}(is|is)[^\w]* ([^\s]+ )*(hypertension|hypertension)[^\w]*( |$) What is the medical condition of hypertension ? -LOCATION ( |^)(which|where|what|what)[^\w]* ([^\s]+ )*(near|close to|far|around|surrounds|surrounds)[^\w]*( |$) What ocean surrounds the Madeira Islands ? -HUMAN ( |^)(which|who|what|what)[^\w]* ([^\s]+ )*(person|man|woman|human|poet|poet)[^\w]*( |$) What 2th-century American poet wrote a four-volume biography of Abraham Lincoln ? -ENTITY ( |^)(what|what)[^\w]* (\w+ ){0,1}(.*er|fastener|fastener)[^\w]* ([^\s]+ )*(played|play|run|study |studied|patent|patent)[^\w]*( |$) What fastener did Whitcomb Judson patent in 1893 ? -DESCRIPTION ( |^)(how|how)[^\w]* (\w+ ){0,1}(do|do)[^\w]* (\w+ ){0,1}(you|you)[^\w]*( |$) How do you find out what is allowed to claim as a contibution for income tax purposes ? -HUMAN ( |^)(who|what|what)[^\w]* (\w+ ){0,1}(person|man|woman|human|president|president)[^\w]*( |$) What president also became a supreme court justice ? -NUMERIC ( |^)(how|how)[^\w]* (\w+ ){0,1}(much|many|many)[^\w]*( |$) How many hearts does an octopus have ? -LOCATION ( |^)(which|what|where|where)[^\w]* ([^\s]+ )*(situated|located|located)[^\w]*( |$) Where is Microsoft 's corporate headquarters located ? -HUMAN ( |^)(who|who)[^\w]* ([^\s]+ )*(man|woman|human|person|person)[^\w]*( |$) Who is the richest person in the world ? -ENTITY ( |^)(which|what|what)[^\w]* ([^\s]+ )*(team|group|groups|teams|teams)[^\w]*( |$) What 's the most common nickname of U.S. college football teams ? -LOCATION ( |^)(where|where)[^\w]* ([^\s]+ )*(stand|stand)[^\w]*( |$) Where must a soccer goalie stand to be permitted to handle the ball ? -DESCRIPTION ( |^)(what|what)[^\w]* ([^\s]+ )*(mean|meant|meant)[^\w]*( |$) What is meant by `` capital market '' ? -ENTITY ( |^)(what|what)[^\w]* (\w+ ){0,1}(kind|kind)[^\w]*( |$) What kind of sport is often associated with hooligans ? -NUMERIC ( |^)(what|what)[^\w]* (\w+ ){0,1}(amount|number|percentage|percentage)[^\w]*( |$) What percentage of the body is muscle ? -LOCATION ( |^)(capital|capital)[^\w]* (\w+ ){0,1}(of|of)[^\w]*( |$) What is the capital of Uruguay ? -DESCRIPTION ( |^)(why|why)[^\w]* (\w+ ){0,1}(does|should |shall|could|would|will|can|do|do)[^\w]*( |$) Why do recipe books recommend starting with cold water when you boil something ? -ENTITY ( |^)(composed|made|made)[^\w]* (\w+ ){0,1}(from|through|using|by|of|of)[^\w]*( |$) What was paper made of in the late 16th century ? -LOCATION ( |^)(where|which|what|what)[^\w]* (\w+ ){0,1}(island|island)[^\w]*( |$) What island group is Guadalcanal a part of ? -HUMAN ( |^)(who|who)[^\w]* (\w+ ){0,1}(owner|leads|governs|pays|owns|owns)[^\w]*( |$) Who owns CNN ? -DESCRIPTION ( |^)(what|what)[^\w]* (\w+ ){0,1}(is|is)[^\w]* (\w+ ){0,1}(tetrinet|tetrinet)[^\w]*( |$) What is Tetrinet ? -HUMAN ( |^)(who|who)[^\w]* (\w+ ){0,1}(found|discovered|made|built|build|invented|invented)[^\w]*( |$) Who invented volleyball ? -ENTITY ( |^)(what|what)[^\w]* ([^\s]+ )*(called|called)[^\w]*( |$) What are the historical trials following World War II called ? -DESCRIPTION ( |^)(unusual|unusual)[^\w]*( |$) What was unusual about Alexandra 's appearance in Josie and the Pussycats ? -DESCRIPTION ( |^)(what|what)[^\w]* ([^\s]+ )*(origin|origin)[^\w]*( |$) What is the origin of the term soda jerk ? -LOCATION ( |^)(country|country)[^\w]*( |$) What country lies directly south of Detroit ? -LOCATION ( |^)(where|where)[^\w]*( |$) Where did Wile E. Coyote always get his devices ? -NUMERIC ( |^)(which|what|what)[^\w]* ([^\s]+ )*(time|day|month|hours|minute|seconds|year|date|date)[^\w]*( |$) What was the date of CNN 's first broadcast ? -DESCRIPTION ( |^)(why|why)[^\w]* (\w+ ){0,1}(does|doesn|doesn)[^\w]*( |$) Why doesn 't www.answers.com have any answers to my questions ? -HUMAN ( |^)(queen|king|king)[^\w]*( |$) What king was forced to agree to the Magna Carta ? -NUMERIC ( |^)(year|year)[^\w]*( |$) What year did the United States pass the Copyright law ? -ENTITY ( |^)(novel|novel)[^\w]*( |$) What 1956 Grace Metalious novel was on the best-seller list for two years ? -DESCRIPTION ( |^)(used|used)[^\w]* (\w+ ){0,1}(for|for)[^\w]*( |$) What is the S&P 500 used for ? -NUMERIC ( |^)(when|when)[^\w]* (\w+ ){0,1}(did|do|does|was|was)[^\w]*( |$) When was Yemen reunified ? -DESCRIPTION ( |^)(what|what)[^\w]* (\w+ ){0,1}(kind|kind)[^\w]*( |$) Winnie the Pooh is what kind of animal ? -NUMERIC ( |^)(how|how)[^\w]* (\w+ ){0,1}(old|far|long|tall|wide|short|small|close|long|long)[^\w]*( |$) How long would it take to get from Earth to Mars ? -NUMERIC ( |^)(speed|speed)[^\w]*( |$) What is the speed of the Mississippi River ? -ABBREVIATION ( |^)(abbreviation|abbreviation)[^\w]*( |$) CNN is the abbreviation for what ? -NUMERIC ( |^)(how|how)[^\w]* (\w+ ){0,1}(much|many|many)[^\w]*( |$) How many visitors go to the Vatican each year ? -NUMERIC ( |^)(what|what)[^\w]* ([^\s]+ )*(percentage|share|number|population|population)[^\w]*( |$) What is the population of Japan ? -DESCRIPTION ( |^)(explain|describe|what|what)[^\w]*( |$) What are the 10 plagues of Egypt ? -LOCATION ( |^)(located|located)[^\w]*( |$) What country is located at 13 degrees North latitude and 10 degrees East longitude ? -ENTITY ( |^)(thing|instance|object|object)[^\w]*( |$) What is a 2-sided object called ? -HUMAN ( |^)(who|who)[^\w]*( |$) Who was the lawyer for Randy Craft ? -ENTITY ( |^)(fear|fear)[^\w]* (\w+ ){0,1}(of|of)[^\w]*( |$) What is a fear of insanity ? -DESCRIPTION ( |^)(explain|describe|how|how)[^\w]* (\w+ ){0,1}(can|can)[^\w]*( |$) How can you be happy ? -HUMAN ( |^)(who|who)[^\w]* (\w+ ){0,1}(worked|lived|guarded|watched|played|ate|slept|portrayed|served|served)[^\w]*( |$) Who served as inspiration for the schoolteacher portrayed by Robin Williams in `` Dead Poets Society '' ? -NUMERIC ( |^)(what|what)[^\w]* (\w+ ){0,1}(part|division|ratio|percentage|percentage)[^\w]*( |$) Of children between the ages of two and eleven , what percentage watch `` The Simpsons '' ? -DESCRIPTION ( |^)(explain|describe|what|what)[^\w]* ([^\s]+ )*(mean|mean)[^\w]*( |$) What does the word terrorism mean ? -DESCRIPTION ( |^)(what|what)[^\w]* ([^\s]+ )*(demands|take|take)[^\w]*( |$) What does it take to become a lawyer ? -HUMAN ( |^)(who|who)[^\w]* (\w+ ){0,1}(is|will|was|was)[^\w]* ([^\s]+ )*(leader|citizen|captain|nationalist|hero|actor|actress|star|gamer|player|lawyer|president|president)[^\w]*( |$) Who was the 1st U.S. President ? -ENTITY ( |^)(name|name)[^\w]*( |$) What other name were the `` Little Rascals '' known as ? -DESCRIPTION ( |^)(how|what|what)[^\w]* (\w+ ){0,1}(do|does|does)[^\w]*( |$) What does idle mean ? -DESCRIPTION ( |^)(enumerate|list out|name|name)[^\w]* (\w+ ){0,1}(the|the)[^\w]* (\w+ ){0,1}(various|various)[^\w]*( |$) Name the various super-teams to which the Angel has belonged . -NUMERIC ( |^)(at|in|in)[^\w]* (\w+ ){0,1}(which|how many|what|what)[^\w]* (\w+ ){0,1}(age|year|year)[^\w]*( |$) In what year did the Bounty mutiny happen ? -ENTITY ( |^)(which|what|what)[^\w]* (\w+ ){0,1}(play|game|movie|book|book)[^\w]*( |$) What book is the follow-up to Future Shock ? -HUMAN ( |^)(who|what|what)[^\w]* ([^\s]+ )*(lives|lives)[^\w]*( |$) What detective lives on Punchbowl Hill and has 11 children ? -ENTITY ( |^)(which|what|what)[^\w]* ([^\s]+ )*(organization|trust|company|company)[^\w]*( |$) What bread company used to feature stickers of the Cisco Kid on the ends of their packages ? -NUMERIC ( |^)(latitude|latitude)[^\w]* ([^\s]+ )*(longitude|longitude)[^\w]*( |$) What is the latitude and longitude of El Paso , Texas ? -HUMAN ( |^)(called|alias|nicknamed|nicknamed)[^\w]*( |$) Who was nicknamed The Little Corporal ? -HUMAN ( |^)(which|who|who)[^\w]* (\w+ ){0,1}(is|will|are|was|was)[^\w]* ([^\s]+ )*(engineer|actor|actress|player|lawyer|model|captain|team|doctor|doctor)[^\w]*( |$) Who was the first doctor to successfully transplant a liver ? -LOCATION ( |^)(where|where)[^\w]*( |$) Where is Kings Canyon ? -NUMERIC ( |^)(by how|how|how)[^\w]* (\w+ ){0,1}(much|many|many)[^\w]*( |$) How many people were executed for Abraham Lincoln 's assassination ? -NUMERIC ( |^)(how|how)[^\w]* (\w+ ){0,1}(many|many)[^\w]*( |$) How many flavors of ice cream does Howard Johnson 's have ? -LOCATION ( |^)(where|where)[^\w]* (\w+ ){0,1}(was|is|is)[^\w]*( |$) Where is Trinidad ? -ENTITY ( |^)(what|what)[^\w]* (\w+ ){0,1}(is|is)[^\w]* ([^\s]+ )*(surname|address|name|name)[^\w]*( |$) What is the name of a Greek god ? -ABBREVIATION ( |^)(what|what)[^\w]* (\w+ ){0,1}(does|does)[^\w]* ([^\s]+ )*(stand for)[^\w]*( |$) What does NASA stand for ? +ENTY ( |^)(name|name)[^\w]* (\w+ ){0,1}(a)[^\w]*( |$) Name a canine cartoon character other than Huckleberry Hound to have a voice by Daws Butler . +DESC ( |^)(how|how)[^\w]* (\w+ ){0,1}(does|to|can|should|would|could|will|do|do)[^\w]*( |$) How do you throw a housewarming party ? +DESC ( |^)(what|what)[^\w]* (\w+ ){0,1}(is|is)[^\w]* ([^\s]+ )*(hypertension|hypertension)[^\w]*( |$) What is the medical condition of hypertension ? +LOC ( |^)(which|where|what|what)[^\w]* ([^\s]+ )*(near|close to|far|around|surrounds|surrounds)[^\w]*( |$) What ocean surrounds the Madeira Islands ? +HUM ( |^)(which|who|what|what)[^\w]* ([^\s]+ )*(person|man|woman|human|poet|poet)[^\w]*( |$) What 2th-century American poet wrote a four-volume biography of Abraham Lincoln ? +ENTY ( |^)(what|what)[^\w]* (\w+ ){0,1}(.*er|fastener|fastener)[^\w]* ([^\s]+ )*(played|play|run|study |studied|patent|patent)[^\w]*( |$) What fastener did Whitcomb Judson patent in 1893 ? +DESC ( |^)(how|how)[^\w]* (\w+ ){0,1}(do|do)[^\w]* (\w+ ){0,1}(you|you)[^\w]*( |$) How do you find out what is allowed to claim as a contibution for income tax purposes ? +HUM ( |^)(who|what|what)[^\w]* (\w+ ){0,1}(person|man|woman|human|president|president)[^\w]*( |$) What president also became a supreme court justice ? +NUM ( |^)(how|how)[^\w]* (\w+ ){0,1}(much|many|many)[^\w]*( |$) How many hearts does an octopus have ? +LOC ( |^)(which|what|where|where)[^\w]* ([^\s]+ )*(situated|located|located)[^\w]*( |$) Where is Microsoft 's corporate headquarters located ? +HUM ( |^)(who|who)[^\w]* ([^\s]+ )*(man|woman|human|person|person)[^\w]*( |$) Who is the richest person in the world ? +ENTY ( |^)(which|what|what)[^\w]* ([^\s]+ )*(team|group|groups|teams|teams)[^\w]*( |$) What 's the most common nickname of U.S. college football teams ? +LOC ( |^)(where|where)[^\w]* ([^\s]+ )*(stand|stand)[^\w]*( |$) Where must a soccer goalie stand to be permitted to handle the ball ? +DESC ( |^)(what|what)[^\w]* ([^\s]+ )*(mean|meant|meant)[^\w]*( |$) What is meant by `` capital market '' ? +ENTY ( |^)(what|what)[^\w]* (\w+ ){0,1}(kind|kind)[^\w]*( |$) What kind of sport is often associated with hooligans ? +NUM ( |^)(what|what)[^\w]* (\w+ ){0,1}(amount|number|percentage|percentage)[^\w]*( |$) What percentage of the body is muscle ? +LOC ( |^)(capital|capital)[^\w]* (\w+ ){0,1}(of|of)[^\w]*( |$) What is the capital of Uruguay ? +DESC ( |^)(why|why)[^\w]* (\w+ ){0,1}(does|should |shall|could|would|will|can|do|do)[^\w]*( |$) Why do recipe books recommend starting with cold water when you boil something ? +ENTY ( |^)(composed|made|made)[^\w]* (\w+ ){0,1}(from|through|using|by|of|of)[^\w]*( |$) What was paper made of in the late 16th century ? +LOC ( |^)(where|which|what|what)[^\w]* (\w+ ){0,1}(island|island)[^\w]*( |$) What island group is Guadalcanal a part of ? +HUM ( |^)(who|who)[^\w]* (\w+ ){0,1}(owner|leads|governs|pays|owns|owns)[^\w]*( |$) Who owns CNN ? +DESC ( |^)(what|what)[^\w]* (\w+ ){0,1}(is|is)[^\w]* (\w+ ){0,1}(tetrinet|tetrinet)[^\w]*( |$) What is Tetrinet ? +HUM ( |^)(who|who)[^\w]* (\w+ ){0,1}(found|discovered|made|built|build|invented|invented)[^\w]*( |$) Who invented volleyball ? +ENTY ( |^)(what|what)[^\w]* ([^\s]+ )*(called|called)[^\w]*( |$) What are the historical trials following World War II called ? +DESC ( |^)(unusual|unusual)[^\w]*( |$) What was unusual about Alexandra 's appearance in Josie and the Pussycats ? +DESC ( |^)(what|what)[^\w]* ([^\s]+ )*(origin|origin)[^\w]*( |$) What is the origin of the term soda jerk ? +LOC ( |^)(country|country)[^\w]*( |$) What country lies directly south of Detroit ? +LOC ( |^)(where|where)[^\w]*( |$) Where did Wile E. Coyote always get his devices ? +NUM ( |^)(which|what|what)[^\w]* ([^\s]+ )*(time|day|month|hours|minute|seconds|year|date|date)[^\w]*( |$) What was the date of CNN 's first broadcast ? +DESC ( |^)(why|why)[^\w]* (\w+ ){0,1}(does|doesn|doesn)[^\w]*( |$) Why doesn 't www.answers.com have any answers to my questions ? +HUM ( |^)(queen|king|king)[^\w]*( |$) What king was forced to agree to the Magna Carta ? +NUM ( |^)(year|year)[^\w]*( |$) What year did the United States pass the Copyright law ? +ENTY ( |^)(novel|novel)[^\w]*( |$) What 1956 Grace Metalious novel was on the best-seller list for two years ? +DESC ( |^)(used|used)[^\w]* (\w+ ){0,1}(for|for)[^\w]*( |$) What is the S&P 500 used for ? +NUM ( |^)(when|when)[^\w]* (\w+ ){0,1}(did|do|does|was|was)[^\w]*( |$) When was Yemen reunified ? +DESC ( |^)(what|what)[^\w]* (\w+ ){0,1}(kind|kind)[^\w]*( |$) Winnie the Pooh is what kind of animal ? +NUM ( |^)(how|how)[^\w]* (\w+ ){0,1}(old|far|long|tall|wide|short|small|close|long|long)[^\w]*( |$) How long would it take to get from Earth to Mars ? +NUM ( |^)(speed|speed)[^\w]*( |$) What is the speed of the Mississippi River ? +ABBR ( |^)(ABBR|ABBR)[^\w]*( |$) CNN is the ABBR for what ? +NUM ( |^)(how|how)[^\w]* (\w+ ){0,1}(much|many|many)[^\w]*( |$) How many visitors go to the Vatican each year ? +NUM ( |^)(what|what)[^\w]* ([^\s]+ )*(percentage|share|number|population|population)[^\w]*( |$) What is the population of Japan ? +DESC ( |^)(explain|describe|what|what)[^\w]*( |$) What are the 10 plagues of Egypt ? +LOC ( |^)(located|located)[^\w]*( |$) What country is located at 13 degrees North latitude and 10 degrees East longitude ? +ENTY ( |^)(thing|instance|object|object)[^\w]*( |$) What is a 2-sided object called ? +HUM ( |^)(who|who)[^\w]*( |$) Who was the lawyer for Randy Craft ? +ENTY ( |^)(fear|fear)[^\w]* (\w+ ){0,1}(of|of)[^\w]*( |$) What is a fear of insanity ? +DESC ( |^)(explain|describe|how|how)[^\w]* (\w+ ){0,1}(can|can)[^\w]*( |$) How can you be happy ? +HUM ( |^)(who|who)[^\w]* (\w+ ){0,1}(worked|lived|guarded|watched|played|ate|slept|portrayed|served|served)[^\w]*( |$) Who served as inspiration for the schoolteacher portrayed by Robin Williams in `` Dead Poets Society '' ? +NUM ( |^)(what|what)[^\w]* (\w+ ){0,1}(part|division|ratio|percentage|percentage)[^\w]*( |$) Of children between the ages of two and eleven , what percentage watch `` The Simpsons '' ? +DESC ( |^)(explain|describe|what|what)[^\w]* ([^\s]+ )*(mean|mean)[^\w]*( |$) What does the word terrorism mean ? +DESC ( |^)(what|what)[^\w]* ([^\s]+ )*(demands|take|take)[^\w]*( |$) What does it take to become a lawyer ? +HUM ( |^)(who|who)[^\w]* (\w+ ){0,1}(is|will|was|was)[^\w]* ([^\s]+ )*(leader|citizen|captain|nationalist|hero|actor|actress|star|gamer|player|lawyer|president|president)[^\w]*( |$) Who was the 1st U.S. President ? +ENTY ( |^)(name|name)[^\w]*( |$) What other name were the `` Little Rascals '' known as ? +DESC ( |^)(how|what|what)[^\w]* (\w+ ){0,1}(do|does|does)[^\w]*( |$) What does idle mean ? +DESC ( |^)(enumerate|list out|name|name)[^\w]* (\w+ ){0,1}(the|the)[^\w]* (\w+ ){0,1}(various|various)[^\w]*( |$) Name the various super-teams to which the Angel has belonged . +NUM ( |^)(at|in|in)[^\w]* (\w+ ){0,1}(which|how many|what|what)[^\w]* (\w+ ){0,1}(age|year|year)[^\w]*( |$) In what year did the Bounty mutiny happen ? +ENTY ( |^)(which|what|what)[^\w]* (\w+ ){0,1}(play|game|movie|book|book)[^\w]*( |$) What book is the follow-up to Future Shock ? +HUM ( |^)(who|what|what)[^\w]* ([^\s]+ )*(lives|lives)[^\w]*( |$) What detective lives on Punchbowl Hill and has 11 children ? +ENTY ( |^)(which|what|what)[^\w]* ([^\s]+ )*(organization|trust|company|company)[^\w]*( |$) What bread company used to feature stickers of the Cisco Kid on the ends of their packages ? +NUM ( |^)(latitude|latitude)[^\w]* ([^\s]+ )*(longitude|longitude)[^\w]*( |$) What is the latitude and longitude of El Paso , Texas ? +HUM ( |^)(called|alias|nicknamed|nicknamed)[^\w]*( |$) Who was nicknamed The Little Corporal ? +HUM ( |^)(which|who|who)[^\w]* (\w+ ){0,1}(is|will|are|was|was)[^\w]* ([^\s]+ )*(engineer|actor|actress|player|lawyer|model|captain|team|doctor|doctor)[^\w]*( |$) Who was the first doctor to successfully transplant a liver ? +LOC ( |^)(where|where)[^\w]*( |$) Where is Kings Canyon ? +NUM ( |^)(by how|how|how)[^\w]* (\w+ ){0,1}(much|many|many)[^\w]*( |$) How many people were executed for Abraham Lincoln 's assassination ? +NUM ( |^)(how|how)[^\w]* (\w+ ){0,1}(many|many)[^\w]*( |$) How many flavors of ice cream does Howard Johnson 's have ? +LOC ( |^)(where|where)[^\w]* (\w+ ){0,1}(was|is|is)[^\w]*( |$) Where is Trinidad ? +ENTY ( |^)(what|what)[^\w]* (\w+ ){0,1}(is|is)[^\w]* ([^\s]+ )*(surname|address|name|name)[^\w]*( |$) What is the name of a Greek god ? +ABBR ( |^)(what|what)[^\w]* (\w+ ){0,1}(does|does)[^\w]* ([^\s]+ )*(stand for)[^\w]*( |$) What does NASA stand for ? diff --git a/notebooks/IMDB/.ipynb_checkpoints/imdb_autogeneration-checkpoint.ipynb b/notebooks/IMDB/.ipynb_checkpoints/imdb_autogeneration-checkpoint.ipynb new file mode 100644 index 0000000..27563ad --- /dev/null +++ b/notebooks/IMDB/.ipynb_checkpoints/imdb_autogeneration-checkpoint.ipynb @@ -0,0 +1,374 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "4f4b3592", + "metadata": {}, + "source": [ + "## IMDB Labeling : Auto Generation of LFs" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "9e180495", + "metadata": {}, + "outputs": [], + "source": [ + "# Installation\n", + "\n", + "import sys\n", + "sys.path.append('../../')" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "5716e6e2", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2023-04-07 11:16:22.302406: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n", + "To enable the following instructions: AVX2 FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", + "2023-04-07 11:16:22.898045: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "cpu\n" + ] + } + ], + "source": [ + "# Importing all required modules \n", + "import enum\n", + "from spear.labeling import labeling_function, LFgenerator, LFgenerator2, ABSTAIN\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "37e293c7", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "dataset imdb, model dt, card 1, loops 26, features count" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Generating Labelling Functions using SNUBA\n", + "gen = LFgenerator('imdb', 'dt', 1, 26, 'count')\n", + "gen" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "6b1514a0", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "save path : /home/aziz/Documents/CS769/Example_runs\n", + "dataset is imdb\n", + "/home/aziz/Documents/CS769/spear/notebooks/IMDB\n", + "len(labels 1920\n", + "labels : [ 1 1 1 ... 1 -1 -1]\n", + "test length 500\n", + "train primitive matrix : (1278, 143)\n", + "Size of validation set 142\n", + "Size of train set 1278\n", + "Size of test set 500\n", + "val_primitive_matrix.shape (142, 143)\n", + "save_path /home/aziz/Documents/CS769/Example_runs\n", + "self.b 0.5\n", + "Remaining to be labelled 140\n", + "Remaining to be labelled 139\n", + "Remaining to be labelled 142\n", + "Remaining to be labelled 142\n", + "Running iteration: 5\n", + "Remaining to be labelled 142\n", + "Remaining to be labelled 142\n", + "Remaining to be labelled 142\n", + "Remaining to be labelled 142\n", + "Remaining to be labelled 142\n", + "Running iteration: 10\n", + "Remaining to be labelled 142\n", + "Remaining to be labelled 142\n", + "Remaining to be labelled 142\n", + "Remaining to be labelled 140\n", + "Remaining to be labelled 136\n", + "Running iteration: 15\n", + "Remaining to be labelled 137\n", + "Remaining to be labelled 136\n", + "Remaining to be labelled 136\n", + "Remaining to be labelled 137\n", + "Remaining to be labelled 136\n", + "Running iteration: 20\n", + "Remaining to be labelled 136\n", + "Remaining to be labelled 135\n", + "Remaining to be labelled 133\n", + "labels saved\n", + "Remaining to be labelled 131\n", + "Program Synthesis Train Accuracy: 0.7758007117437722\n", + "Program Synthesis Train Coverage: 0.4397496087636933\n", + "Program Synthesis Validation Accuracy: 0.9024390243902439\n", + "(1278, 25) (142, 25) (500, 25)\n", + "LFS are [0 0 1 1 0 0 0 1 1 0 0 1 0 1 1 1 0 1 1 0 1 0 0 0 0]\n" + ] + } + ], + "source": [ + "data_dir = r'/home/aziz/Documents/CS769/spear/spear/labeling/lf_gen/Loaders/data/imdb/'\n", + "save_dir = r'/home/aziz/Documents/CS769/Example_runs'\n", + "a = gen(data_dir, save_dir)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "2d1312cf", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "label : 0, Labeling Word : love\n", + "label : 0, Labeling Word : man\n", + "label : 1, Labeling Word : team\n", + "label : 1, Labeling Word : government\n", + "label : 0, Labeling Word : boyfriend\n", + "label : 0, Labeling Word : discovers\n", + "label : 0, Labeling Word : friend\n", + "label : 1, Labeling Word : race\n", + "label : 1, Labeling Word : agent\n", + "label : 0, Labeling Word : friendship\n", + "label : 0, Labeling Word : story\n", + "label : 1, Labeling Word : home\n", + "label : 0, Labeling Word : falls\n", + "label : 1, Labeling Word : government\n", + "label : 1, Labeling Word : government\n", + "label : 1, Labeling Word : government\n", + "label : 0, Labeling Word : finds\n", + "label : 1, Labeling Word : government\n", + "label : 1, Labeling Word : cop\n", + "label : 0, Labeling Word : woman\n", + "label : 1, Labeling Word : government\n", + "label : 0, Labeling Word : boyfriend\n", + "label : 0, Labeling Word : boyfriend\n", + "label : 0, Labeling Word : boyfriend\n", + "label : 0, Labeling Word : boyfriend\n" + ] + } + ], + "source": [ + "# The LFs are sotred in the returned variable\n", + "for (label, word) in a :\n", + " print(f'label : {label}, Labeling Word : {word}')" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "5665845c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Final Size of d set , U set , validation set , test set 71 1278 71 500\n", + "final LFs are (25,)\n" + ] + } + ], + "source": [ + "# To dump all the information in pickle files, to be stored in the defined save directory\n", + "gen.dump(a)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "cc9bca2b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "dataset imdb, model dt, filter 0, feats count numRules 50, MaxLFs 15" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Generating Labelling Functions using Classifier Weights\n", + "gen2 = LFgenerator2('imdb', 'dt', 0, 'count', 50, 15)\n", + "gen2" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "f3a346a1", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "dataset is imdb\n", + "len(labels 1920\n", + "labels : [ 1 1 1 ... 1 -1 -1]\n", + "Size of validation set 142\n", + "Size of train set 1278\n", + "Size of test set 500\n", + "val_primitive_matrix.shape (142, 143)\n", + " n_classes 1\n", + "{'love': 0, 'woman': 0, 'team': 1, 'man': 0, 'story': 0, 'government': 1, 'friend': 0, 'home': 1, 'race': 1, 'life': 0, 'date': 0, 'meets': 0, 'falls': 0, 'discovers': 0, 'boyfriend': 0}\n", + " train_feats.shape (1278, 3471)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████| 1278/1278 [00:00<00:00, 32264.07it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "val_text 142\n", + "val_feats (142, 3471)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████████████████████████████████| 142/142 [00:00<00:00, 21895.93it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(142, 15) val_L.shape\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████████████████████████████████| 500/500 [00:00<00:00, 29466.80it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "label [0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "data_dir = r'/home/aziz/Documents/CS769/spear/spear/labeling/lf_gen/Loaders/data/imdb/'\n", + "save_dir = r'/home/aziz/Documents/CS769/Example_runs2'\n", + "b = gen2(data_dir, save_dir)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "34a7c323", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "label : 0, Labeling Word : love\n", + "label : 0, Labeling Word : woman\n", + "label : 1, Labeling Word : team\n", + "label : 0, Labeling Word : man\n", + "label : 0, Labeling Word : story\n", + "label : 1, Labeling Word : government\n", + "label : 0, Labeling Word : friend\n", + "label : 1, Labeling Word : home\n", + "label : 1, Labeling Word : race\n", + "label : 0, Labeling Word : life\n", + "label : 0, Labeling Word : date\n", + "label : 0, Labeling Word : meets\n", + "label : 0, Labeling Word : falls\n", + "label : 0, Labeling Word : discovers\n", + "label : 0, Labeling Word : boyfriend\n" + ] + } + ], + "source": [ + "# The LFs are sotred in the returned variable\n", + "for (label, word) in b :\n", + " print(f'label : {label}, Labeling Word : {word}')" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "acb0a57f", + "metadata": {}, + "outputs": [], + "source": [ + "# To dump all the information in pickle files, to be stored in the defined save directory\n", + "gen2.dump(b)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.13" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/IMDB/imdb_autogeneration.ipynb b/notebooks/IMDB/imdb_autogeneration.ipynb new file mode 100644 index 0000000..0f0fca3 --- /dev/null +++ b/notebooks/IMDB/imdb_autogeneration.ipynb @@ -0,0 +1,457 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "4f4b3592", + "metadata": {}, + "source": [ + "## IMDB Labeling : Auto Generation of LFs" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "9e180495", + "metadata": {}, + "outputs": [], + "source": [ + "# Installation\n", + "\n", + "import sys\n", + "sys.path.append('../../')" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "5716e6e2", + "metadata": {}, + "outputs": [], + "source": [ + "# Importing all required modules \n", + "import enum\n", + "import numpy as np\n", + "from spear.labeling import labeling_function, LFgenerator, LFgenerator2, ABSTAIN\n", + "from spear.wisdom import Reweight" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "37e293c7", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "dataset imdb, model dt, card 1, loops 26, features count" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Generating Labelling Functions using SNUBA\n", + "gen = LFgenerator('imdb', 'dt', 1, 26, 'count')\n", + "gen" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "6b1514a0", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "save path : Example_runs1\n", + "dataset is imdb\n", + "/home/aziz/Documents/Projects/CS769/spear/notebooks/IMDB\n", + "len(labels 1920\n", + "labels : [ 1 1 1 ... 1 -1 -1]\n", + "test length 500\n", + "train primitive matrix : (1278, 143)\n", + "Size of validation set 142\n", + "Size of train set 1278\n", + "Size of test set 500\n", + "val_primitive_matrix.shape (142, 143)\n", + "save_path Example_runs1\n", + "self.b 0.5\n", + "Remaining to be labelled 140\n", + "Remaining to be labelled 139\n", + "Remaining to be labelled 142\n", + "Remaining to be labelled 142\n", + "Running iteration: 5\n", + "Remaining to be labelled 142\n", + "Remaining to be labelled 142\n", + "Remaining to be labelled 142\n", + "Remaining to be labelled 142\n", + "Remaining to be labelled 142\n", + "Running iteration: 10\n", + "Remaining to be labelled 142\n", + "Remaining to be labelled 142\n", + "Remaining to be labelled 142\n", + "Remaining to be labelled 140\n", + "Remaining to be labelled 136\n", + "Running iteration: 15\n", + "Remaining to be labelled 137\n", + "Remaining to be labelled 136\n", + "Remaining to be labelled 136\n", + "Remaining to be labelled 137\n", + "Remaining to be labelled 136\n", + "Running iteration: 20\n", + "Remaining to be labelled 136\n", + "Remaining to be labelled 135\n", + "Remaining to be labelled 133\n", + "labels saved\n", + "Remaining to be labelled 131\n", + "Program Synthesis Train Accuracy: 0.7758007117437722\n", + "Program Synthesis Train Coverage: 0.4397496087636933\n", + "Program Synthesis Validation Accuracy: 0.9024390243902439\n", + "(1278, 25) (142, 25) (500, 25)\n", + "LFS are [0 0 1 1 0 0 0 1 1 0 0 1 0 1 1 1 0 1 1 0 1 0 0 0 0]\n" + ] + } + ], + "source": [ + "data_dir = r'../../spear/labeling/lf_gen/Loaders/data/imdb/'\n", + "save_dir = r'Example_runs1'\n", + "a = gen(data_dir, save_dir)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "2d1312cf", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "label : 0, Labeling Word : love\n", + "label : 0, Labeling Word : man\n", + "label : 1, Labeling Word : team\n", + "label : 1, Labeling Word : government\n", + "label : 0, Labeling Word : boyfriend\n", + "label : 0, Labeling Word : discovers\n", + "label : 0, Labeling Word : friend\n", + "label : 1, Labeling Word : race\n", + "label : 1, Labeling Word : agent\n", + "label : 0, Labeling Word : friendship\n", + "label : 0, Labeling Word : story\n", + "label : 1, Labeling Word : home\n", + "label : 0, Labeling Word : falls\n", + "label : 1, Labeling Word : government\n", + "label : 1, Labeling Word : government\n", + "label : 1, Labeling Word : government\n", + "label : 0, Labeling Word : finds\n", + "label : 1, Labeling Word : government\n", + "label : 1, Labeling Word : cop\n", + "label : 0, Labeling Word : woman\n", + "label : 1, Labeling Word : government\n", + "label : 0, Labeling Word : boyfriend\n", + "label : 0, Labeling Word : boyfriend\n", + "label : 0, Labeling Word : boyfriend\n", + "label : 0, Labeling Word : boyfriend\n" + ] + } + ], + "source": [ + "# The LFs are sotred in the returned variable\n", + "for (label, word) in a :\n", + " print(f'label : {label}, Labeling Word : {word}')" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "5665845c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Final Size of d set , U set , validation set , test set 71 1278 71 500\n", + "final LFs are (25,)\n" + ] + } + ], + "source": [ + "# To dump all the information in pickle files, to be stored in the defined save directory\n", + "gen.dump(a)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "cc9bca2b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "dataset imdb, model dt, filter 0, feats count numRules 50, MaxLFs 15" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Generating Labelling Functions using Classifier Weights\n", + "gen2 = LFgenerator2('imdb', 'dt', 0, 'count', 50, 15)\n", + "gen2" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "f3a346a1", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "dataset is imdb\n", + "len(labels 1920\n", + "labels : [ 1 1 1 ... 1 -1 -1]\n", + "Size of validation set 142\n", + "Size of train set 1278\n", + "Size of test set 500\n", + "val_primitive_matrix.shape (142, 143)\n", + " train_feats.shape (1278, 3471)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 1278/1278 [00:00<00:00, 40791.74it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "val_text 142\n", + "val_feats (142, 3471)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 142/142 [00:00<00:00, 39042.36it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(142, 15) val_L.shape\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 500/500 [00:00<00:00, 35693.77it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "label [0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "data_dir = r'../../spear/labeling/lf_gen/Loaders/data/imdb/'\n", + "save_dir = r'Example_runs2'\n", + "b = gen2(data_dir, save_dir)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "34a7c323", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "label : 0, Labeling Word : love\n", + "label : 0, Labeling Word : woman\n", + "label : 1, Labeling Word : team\n", + "label : 0, Labeling Word : man\n", + "label : 0, Labeling Word : story\n", + "label : 1, Labeling Word : government\n", + "label : 0, Labeling Word : friend\n", + "label : 1, Labeling Word : home\n", + "label : 1, Labeling Word : race\n", + "label : 0, Labeling Word : life\n", + "label : 0, Labeling Word : date\n", + "label : 0, Labeling Word : meets\n", + "label : 0, Labeling Word : falls\n", + "label : 0, Labeling Word : discovers\n", + "label : 0, Labeling Word : boyfriend\n" + ] + } + ], + "source": [ + "# The LFs are sotred in the returned variable\n", + "for (label, word) in b :\n", + " print(f'label : {label}, Labeling Word : {word}')" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "acb0a57f", + "metadata": {}, + "outputs": [], + "source": [ + "# To dump all the information in pickle files, to be stored in the defined save directory\n", + "gen2.dump(b)" + ] + }, + { + "cell_type": "markdown", + "id": "22060820", + "metadata": {}, + "source": [ + "## Reweighing the LFs : WISDOM" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "a25c4626", + "metadata": {}, + "outputs": [], + "source": [ + "datapath = r'Example_runs1'\n", + "rwt = Reweight(datapath=datapath, num_classes=2)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "04bd9e70", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "datapath Example_runs1, number of classes 2" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "rwt" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "e367e86b", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "cpu\n", + "dset is example_runs1\n", + "fname is Example_runs1/normal_d_processed.p\n", + "no of excludings are 716\n", + "Length of U is 562\n", + "LFs are tensor([0, 0, 1, ..., 0, 0, 0])\n", + "no of lfs are 25\n", + "num runs are 2\n", + "Early Stopping at 13 0.47544028618602097 0.631947000368053\n", + "Validation score Early Stopping at 13 0.6586538461538461 0.4213166144200627\n", + "Best Epoch LR 13\n", + "Best Epoch GM 13\n", + "Run \t 0 Epoch, GM, LR \t 0.47544028618602097 0.631947000368053\n", + "Run \t 0 GM Val, LR Val \t 0.4213166144200627 0.6586538461538461\n", + "num runs are 2\n", + "Early Stopping at 15 0.4597759038530246 0.6054302412683915\n", + "Validation score Early Stopping at 15 0.6737262737262737 0.6017628205128205\n", + "Best Epoch LR 15\n", + "Best Epoch GM 15\n", + "Run \t 1 Epoch, GM, LR \t 0.4597759038530246 0.6054302412683915\n", + "Run \t 1 GM Val, LR Val \t 0.6017628205128205 0.6737262737262737\n", + "===================================================\n", + "TEST Averaged scores LR 0.6186886208182223\n", + "TEST Precision averaged scores LR 0.6191344359777246\n", + "TEST Recall averaged scores LR 0.6193747894306204\n", + "===================================================\n", + "TEST Averaged scores GM 0.4676080950195228\n", + "TEST Precision averaged scores GM 0.49034944064268216\n", + "TEST Recall averaged scores GM 0.4925518602300621\n", + "===================================================\n", + "VALIDATION Averaged scores are GM,LR 0.5115397174664416 0.6661900599400599\n", + "TEST STD GM,LR 0.007832191166498192 0.013258379549830723\n", + "VALIDATION STD GM,LR 0.0902231030463789 0.007536213786213775\n", + "Sorted weights [12 19 5 16 10 11 17 20 3 15 13 14 6 9 1 0 2 8 18 7 4 21 22 23\n", + " 24]\n" + ] + } + ], + "source": [ + "rwt(num_runs=2, batch_size=32, lr_lr=0.0003, gm_lr=0.01)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a12aba99", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.0" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/SMS_SPAM/.ipynb_checkpoints/sms_autogeneration-checkpoint.ipynb b/notebooks/SMS_SPAM/.ipynb_checkpoints/sms_autogeneration-checkpoint.ipynb new file mode 100644 index 0000000..e99e357 --- /dev/null +++ b/notebooks/SMS_SPAM/.ipynb_checkpoints/sms_autogeneration-checkpoint.ipynb @@ -0,0 +1,371 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "f74d2ad4", + "metadata": {}, + "outputs": [], + "source": [ + "import sys\n", + "sys.path.append('../../')" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "fc9f11ba", + "metadata": {}, + "outputs": [], + "source": [ + "# from helper.utils import load_data_to_numpy\n", + "# import numpy as np\n", + "# import pandas as pd\n", + "\n", + "# X, X_feats, Y = load_data_to_numpy()\n", + "\n", + "# df = pd.DataFrame({'SMS TEXT':X})\n", + "# result = df.head(10)\n", + "# display(result)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "025df659", + "metadata": {}, + "outputs": [], + "source": [ + "import enum\n", + "\n", + "# enum to hold the class labels\n", + "class ClassLabels(enum.Enum):\n", + " SPAM = 1\n", + " HAM = 0\n", + "\n", + "THRESHOLD = 0.8\n", + "\n", + "trigWord1 = {\"free\",\"credit\",\"cheap\",\"apply\",\"buy\",\"attention\",\"shop\",\"sex\",\"soon\",\"now\",\"spam\"}\n", + "trigWord2 = {\"gift\",\"click\",\"new\",\"online\",\"discount\",\"earn\",\"miss\",\"hesitate\",\"exclusive\",\"urgent\"}\n", + "trigWord3 = {\"cash\",\"refund\",\"insurance\",\"money\",\"guaranteed\",\"save\",\"win\",\"teen\",\"weight\",\"hair\"}\n", + "notFreeWords = {\"toll\",\"Toll\",\"freely\",\"call\",\"meet\",\"talk\",\"feedback\"}\n", + "notFreeSubstring = {\"not free\",\"you are\",\"when\",\"wen\"}\n", + "firstAndSecondPersonWords = {\"I\",\"i\",\"u\",\"you\",\"ur\",\"your\",\"our\",\"we\",\"us\",\"youre\"}\n", + "thirdPersonWords = {\"He\",\"he\",\"She\",\"she\",\"they\",\"They\",\"Them\",\"them\",\"their\",\"Their\"}" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "17a305da", + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2023-04-07 10:53:00.011139: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n", + "To enable the following instructions: AVX2 FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", + "2023-04-07 10:53:00.615197: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "cpu\n" + ] + } + ], + "source": [ + "import enum\n", + "from enum import Enum\n", + "from spear.labeling import labeling_function, LFgenerator, ABSTAIN, LFgenerator2\n", + "\n", + "class sampleLabels(enum.Enum):\n", + " red = 1\n", + " green = 0" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c9157a98", + "metadata": {}, + "outputs": [], + "source": [ + "gen = LFgenerator('imdb', 'dt', 1, 26, 'count')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f5315eb2", + "metadata": {}, + "outputs": [], + "source": [ + "gen" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f089fad3", + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "a = gen(r'/home/aziz/Documents/CS769/spear/spear/labeling/lf_gen/Loaders/data/imdb/', r'/home/aziz/Documents/CS769/Example_runs')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d54cfe18", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "a" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2c895da0", + "metadata": {}, + "outputs": [], + "source": [ + "gen.dump(a)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "17c8d8f4", + "metadata": {}, + "outputs": [], + "source": [ + "gen2 = LFgenerator2('imdb', 'dt', 1, 'count', 50, 2)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "5020c3f1", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "dataset imdb, model dt, filter 1, numRules 50, MaxLFs 2" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "gen2" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "9f9ded31", + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "dataset is imdb\n", + "len(labels 1920\n", + "labels : [ 1 1 1 ... 1 -1 -1]\n", + "Size of validation set 142\n", + "Size of train set 1278\n", + "Size of test set 500\n", + "val_primitive_matrix.shape (142, 143)\n", + " n_classes 1\n", + "{'love': 0, 'woman': 0, 'team': 1, 'man': 0, 'story': 0, 'government': 1, 'friend': 0, 'home': 1, 'race': 1, 'life': 0, 'date': 0, 'meets': 0, 'falls': 0, 'discovers': 0, 'boyfriend': 0, 'mafia': 0, 'school': 0, 'plan': 1, 'friendship': 0, 'girl': 0, 'space': 1, 'planet': 1, 'american': 1, 'human': 1, 'cop': 1, 'friends': 0, 'small': 0, 'set': 1, 'kidnapped': 1, 'lord': 1, 'game': 1, 'agent': 1, 'called': 1, 'real': 1, 'world': 1, 'come': 0, 'group': 1, 'finds': 0, 'party': 0, 'make': 0, 'special': 1, 'earth': 1, 'fbi': 1, 'form': 0, 'problems': 0, 'agent brings': 0, 'brings': 0, 'brings mafia': 0, 'dea': 0, 'dea agent': 0}\n", + " train_feats.shape (1278, 3471)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████| 1278/1278 [00:00<00:00, 10460.65it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "val_text 142\n", + "val_feats (142, 3471)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████████████████████████████████| 142/142 [00:00<00:00, 10848.46it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(142, 50) val_L.shape\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████████████████████████████████| 500/500 [00:00<00:00, 11090.76it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[3, 6]\n", + "The best set is [3, 6] \n", + " Classes of Lfs are [-1, -1]\n", + "len(final_set) 2\n", + "len (labels_lfs) 2\n", + "final set is {3: 0, 6: 0}\n", + "lx is [0, 0]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r", + "[|||||||||| ]50% [Iteration 1 of 2]\r", + "[||||||||||||||||||||]100% [Iteration 2 of 2]" + ] + } + ], + "source": [ + "b = gen2(r'/home/aziz/Documents/CS769/spear/spear/labeling/lf_gen/Loaders/data/imdb/', r'/home/aziz/Documents/CS769/Example_runs2')" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "d55170a2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[('man', '0'), ('friend', '0')]" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "b" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "678dde57", + "metadata": {}, + "outputs": [], + "source": [ + "gen2.dump(b)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6afbcec9", + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "gen2(r'/home/aziz/Documents/CS769/spear/spear/labeling/lf_gen/Loaders/data/twitter/', r'/home/aziz/Documents/CS769/Example_runs')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0623b987", + "metadata": {}, + "outputs": [], + "source": [ + "import pickle\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8807483d", + "metadata": {}, + "outputs": [], + "source": [ + "pickle.load(r'/home/aziz/Documents/CS769/Example_runs/normal_d_processed.p')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bf2ecae8", + "metadata": {}, + "outputs": [], + "source": [ + "with open(r'/home/aziz/Documents/CS769/Example_runs/normal_test_processed.p', 'rb') as f:\n", + " for k in pickle.load(f):\n", + " print(k.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "dd532552", + "metadata": {}, + "outputs": [], + "source": [ + "x[0].shape" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.13" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/SMS_SPAM/.ipynb_checkpoints/sms_cage-checkpoint.ipynb b/notebooks/SMS_SPAM/.ipynb_checkpoints/sms_cage-checkpoint.ipynb new file mode 100644 index 0000000..e17128c --- /dev/null +++ b/notebooks/SMS_SPAM/.ipynb_checkpoints/sms_cage-checkpoint.ipynb @@ -0,0 +1,768 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ***End to End tutorial for SMS_SPAM labeling using Cage:***\n", + "**The paper, documentation, colab notebook can be found here:** [Paper](https://ojs.aaai.org/index.php/AAAI/article/view/5742), [Documentation](https://spear-decile.readthedocs.io/en/latest/#cage), [Colab](https://colab.research.google.com/drive/1vec-Q-xO9wQtM3p_CZ7237gCq0xIR9b9?usp=sharing)" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "#pip install" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "'''\n", + "User don't need to include this cell to use the package\n", + "'''\n", + "import sys\n", + "sys.path.append('../../')" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ***Defining an Enum to hold labels:***\n", + "### **Representation of class Labels**\n", + "\n", + "

All the class labels for which we define labeling functions are encoded in enum and utilized in our next tasks. Make sure not to define an Abstain(Labeling function(LF) not deciding anything) class inside this Enum, instead import the ABSTAIN object as used later in LF section.

\n", + "\n", + "

SPAM dataset contains 2 classes i.e HAM and SPAM. Note that the numbers we associate can be anything but it is suggested to use a continuous numbers from 0 to number_of_classes-1

\n", + "\n", + "

**Note that even though this example is a binary classification, this(SPEAR) library supports multi-class classification**

" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "import enum\n", + "\n", + "# enum to hold the class labels\n", + "class ClassLabels(enum.Enum):\n", + " SPAM = 1\n", + " HAM = 0\n", + "\n", + "THRESHOLD = 0.8" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ***Defining preprocessors, continuous_scorers, labeling functions:***\n", + "During labeling the unlabelled data we lookup for few keywords to assign a class SMS.\n", + "\n", + "Example : *If a message contains apply or buy in it then most probably the message is spam*" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "trigWord1 = {\"free\",\"credit\",\"cheap\",\"apply\",\"buy\",\"attention\",\"shop\",\"sex\",\"soon\",\"now\",\"spam\"}\n", + "trigWord2 = {\"gift\",\"click\",\"new\",\"online\",\"discount\",\"earn\",\"miss\",\"hesitate\",\"exclusive\",\"urgent\"}\n", + "trigWord3 = {\"cash\",\"refund\",\"insurance\",\"money\",\"guaranteed\",\"save\",\"win\",\"teen\",\"weight\",\"hair\"}\n", + "notFreeWords = {\"toll\",\"Toll\",\"freely\",\"call\",\"meet\",\"talk\",\"feedback\"}\n", + "notFreeSubstring = {\"not free\",\"you are\",\"when\",\"wen\"}\n", + "firstAndSecondPersonWords = {\"I\",\"i\",\"u\",\"you\",\"ur\",\"your\",\"our\",\"we\",\"us\",\"youre\"}\n", + "thirdPersonWords = {\"He\",\"he\",\"She\",\"she\",\"they\",\"They\",\"Them\",\"them\",\"their\",\"Their\"}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Declaration of a simple preprocessor function**\n", + "\n", + "\n", + "For most of the tasks in NLP, computer vivsion instead of using the raw datapoint we preprocess the datapoint and then label it. Preprocessor functions are used to preprocess an instance before labeling it. We use **`@preprocessor(name,resources)`** decorator to declare a function as preprocessor." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "from spear.labeling import preprocessor\n", + "\n", + "\n", + "@preprocessor(name = \"LOWER_CASE\")\n", + "def convert_to_lower(x):\n", + " return x.lower().strip()\n", + "\n", + "lower = convert_to_lower(\"RED\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Some Labeling function(LF) definitions**\n", + "Below are some examples on how to define LFs and continuous LFs(CLFs). To get the continuous score for a CLF, we need to define a function with continuous_scorer decorator(just like labeling_function decorator) and pass it to a CLF as displayed below. Also note how the continuous score can be used in CLF. Note that the word_similarity is the function with continuous_scorer decorator and is written in con_scorer file(this file is not a part of package) in same folder." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "model loading\n", + "model loaded\n" + ] + } + ], + "source": [ + "from spear.labeling import labeling_function, ABSTAIN\n", + "\n", + "from helper.con_scorer import word_similarity\n", + "import re\n", + "\n", + "\n", + "@preprocessor()\n", + "def convert_to_lower(x):\n", + " return x.lower().strip()\n", + "\n", + "\n", + "@labeling_function(resources=dict(keywords=trigWord1),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def LF1(c,**kwargs): \n", + " if len(kwargs[\"keywords\"].intersection(c.split())) > 0:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(resources=dict(keywords=trigWord2),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def LF2(c,**kwargs):\n", + " if len(kwargs[\"keywords\"].intersection(c.split())) > 0:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(resources=dict(keywords=trigWord3),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def LF3(c,**kwargs):\n", + " if len(kwargs[\"keywords\"].intersection(c.split())) > 0:\n", + " return ClassLabels.SPAM \n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(resources=dict(keywords=notFreeWords),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def LF4(c,**kwargs):\n", + " if \"free\" in c.split() and len(kwargs[\"keywords\"].intersection(c.split()))>0:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(resources=dict(keywords=notFreeSubstring),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def LF5(c,**kwargs):\n", + " for pattern in kwargs[\"keywords\"]: \n", + " if \"free\" in c.split() and re.search(pattern,c, flags= re.I):\n", + " return ClassLabels.HAM\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(resources=dict(keywords=firstAndSecondPersonWords),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def LF6(c,**kwargs):\n", + " if \"free\" in c.split() and len(kwargs[\"keywords\"].intersection(c.split()))>0:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "\n", + "@labeling_function(resources=dict(keywords=thirdPersonWords),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def LF7(c,**kwargs):\n", + " if \"free\" in c.split() and len(kwargs[\"keywords\"].intersection(c.split()))>0:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(label=ClassLabels.SPAM)\n", + "def LF8(c,**kwargs):\n", + " if (sum(1 for ch in c if ch.isupper()) > 6):\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=trigWord1),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def CLF1(c,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=trigWord2),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def CLF2(c,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=trigWord3),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def CLF3(c,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=notFreeWords),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def CLF4(c,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=notFreeSubstring),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def CLF5(c,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=firstAndSecondPersonWords),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def CLF6(c,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=thirdPersonWords),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def CLF7(c,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=lambda x: 1-np.exp(float(-(sum(1 for ch in x if ch.isupper()))/2)),label=ClassLabels.SPAM)\n", + "def CLF8(c,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ***Accumulating all LFs into rules, an LFset(a class) object:***\n", + "### **Importing LFSet and passing LFs we defined, to that class**" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "from spear.labeling import LFSet\n", + "\n", + "LFS = [LF1,\n", + " LF2,\n", + " LF3,\n", + " LF4,\n", + " LF5,\n", + " LF6,\n", + " LF7,\n", + " LF8,\n", + " CLF1,\n", + " CLF2,\n", + " CLF3,\n", + " CLF4,\n", + " CLF5,\n", + " CLF6,\n", + " CLF7,\n", + " CLF8\n", + " ]\n", + "\n", + "rules = LFSet(\"SPAM_LF\")\n", + "rules.add_lf_list(LFS)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ***Loading data:***\n", + "### **Load the data: X, Y**\n", + "

Note that the utils below is not a part of package but is used to load the necessary data. User have to use some means(which doesn't matter) to load his data(X, Y). X is the raw data that is to be passed to LFs and Y are true labels(if available). Note that feature matrix is not needed in Cage algorithm but it is needed in JL algorithm.

" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "from helper.utils import load_data_to_numpy, get_test_U_data\n", + "\n", + "X, _, Y = load_data_to_numpy()\n", + "\n", + "test_size = 400\n", + "U_size = 4500\n", + "n_lfs = len(rules.get_lfs())\n", + "\n", + "X_T, Y_T, _, X_U, _= get_test_U_data(X, Y, n_lfs, test_size, U_size)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ***Labeling data:***\n", + "### **Paths**\n", + "* path_json: path to json file generated by PreLabels\n", + "* T_path_pkl: path to pkl file generated by PreLabels containing the test data with true labels\n", + "* U_path_pkl: path to pkl file generated by PreLabels containing the unlabelled data without true labels\n", + "* log_path: path to save the log which is generated during the algorithm\n", + "* params_path: path to save parameters of model\n", + "\n", + "

Make sure that the directory of the files(in above paths) exists. Note that any existing contents in pickle files will be erased.

" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "path_json = 'data_pipeline/Cage/sms_json.json'\n", + "T_path_pkl = 'data_pipeline/Cage/sms_pickle_T.pkl' #test data - have true labels\n", + "U_path_pkl = 'data_pipeline/Cage/sms_pickle_U.pkl' #unlabelled data - don't have true labels\n", + "\n", + "log_path_cage_1 = 'log/Cage/sms_log_1.txt' #cage is an algorithm, can be found below\n", + "params_path = 'params/Cage/sms_params.pkl' #file path to store parameters of Cage, used below" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Importing PreLabels class and using it to label data**\n", + "Json file should be generated only once as shown below.\n", + "

Note: We don't pass feature matrix as the CAGE algorithm don't need one. Also note that we don't pass gold_lables(or true labels) to the 2nd PreLabels class which generates labels to unlabelled data(U).

" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 400/400 [00:40<00:00, 9.99it/s]\n", + "100%|██████████| 4500/4500 [07:36<00:00, 9.85it/s]\n" + ] + } + ], + "source": [ + "from spear.labeling import PreLabels\n", + "\n", + "sms_noisy_labels = PreLabels(name=\"sms\",\n", + " data=X_T,\n", + " gold_labels=Y_T,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "sms_noisy_labels.generate_pickle(T_path_pkl)\n", + "sms_noisy_labels.generate_json(path_json) #generating json files once is enough\n", + "\n", + "sms_noisy_labels = PreLabels(name=\"sms\",\n", + " data=X_U,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2) #note that we don't pass gold_labels here, for the unlabelled data\n", + "sms_noisy_labels.generate_pickle(U_path_pkl)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ***Accessing labeled data:***\n", + "### **Importing and the use of get_data and get_classes**\n", + "

These functions can be used to extract data from pickle files and json file respectively. Note that these are the files generated using PreLabels.

\n", + "

For detailed contents of output, please refer documentation.

" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of elements in data list: 10\n", + "Shape of feature matrix: (0,)\n", + "Shape of labels matrix: (4500, 16)\n", + "Shape of continuous scores matrix : (4500, 16)\n", + "Total number of classes: 2\n", + "Classes dictionary in json file(modified to have integer keys): {1: 'SPAM', 0: 'HAM'}\n" + ] + } + ], + "source": [ + "from spear.utils import get_data, get_classes\n", + "\n", + "data_U = get_data(path = U_path_pkl, check_shapes=True)\n", + "#check_shapes being True(above), asserts for relative shapes of arrays in pickle file\n", + "print(\"Number of elements in data list: \", len(data_U))\n", + "print(\"Shape of feature matrix: \", data_U[0].shape)\n", + "print(\"Shape of labels matrix: \", data_U[1].shape)\n", + "print(\"Shape of continuous scores matrix : \", data_U[6].shape)\n", + "print(\"Total number of classes: \", data_U[9])\n", + "\n", + "classes = get_classes(path = path_json)\n", + "print(\"Classes dictionary in json file(modified to have integer keys): \", classes)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ***Cage Algorithm:***\n", + "### **Importing Cage class (the algorithm) and declaring an object of it**\n", + "Cage algorithm needs only the pickle file(with labels given by LFs using PreLabels class) with unlabelled data(the data without true/gold labels) and it will predict the labels of this data. An optinal test data(which has true/gold labels) can also passed to get a log information of accuracies. \n", + "

Note: Multiple calls to fit_* functions will train parameters continuously ie, parameters are not reinitialised in fit_* functions. So, to train large data, one can call fit_* functions repeatedly on smaller chunks. Also, in order to perform multiple runs over the algorithm, one need to reinitialise paramters(by creating an object of Cage) at the start of each run.

" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "from spear.cage import Cage\n", + "\n", + "cage = Cage(path_json = path_json, n_lfs = n_lfs)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **fit_and_predict_proba function of Cage class**\n", + "The output(probs) is a numpy matrix of shape (num_instances, num_classes) having the probability of a particular instance being that class. \n", + "

Here the order of classes along a row for any instance is the ascending order of values used in enum defined before to hold labels.

\n", + "

For more details about arguments, please refer documentation; same should be the case for any of the member functions used from here on.

" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 200/200 [00:15<00:00, 12.57it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "final_test_accuracy_score: 0.7975\n", + "test_average_metric: binary\tfinal_test_f1_score: 0.5030674846625766\n", + "probs shape: (4500, 2)\n", + "labels shape: (4500,)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "cage = Cage(path_json = path_json, n_lfs = n_lfs)\n", + "\n", + "probs = cage.fit_and_predict_proba(path_pkl = U_path_pkl, path_test = T_path_pkl, path_log = log_path_cage_1, \\\n", + " qt = 0.9, qc = 0.85, metric_avg = ['binary'], n_epochs = 200, lr = 0.01)\n", + "labels = np.argmax(probs, 1)\n", + "print(\"probs shape: \", probs.shape)\n", + "print(\"labels shape: \",labels.shape)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **fit_and_predict function of Cage class**\n", + "The output(probs) is a numpy matrix of shape (num_instances,) containing integers(because need_strings is False), having the classes of each instance." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 200/200 [00:25<00:00, 7.92it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "final_test_accuracy_score: 0.7975\n", + "test_average_metric: binary\tfinal_test_f1_score: 0.5030674846625766\n", + "labels shape: (4500,)\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "cage = Cage(path_json = path_json, n_lfs = n_lfs)\n", + "\n", + "labels = cage.fit_and_predict(path_pkl = U_path_pkl, path_test = T_path_pkl, path_log = log_path_cage_1, \\\n", + " qt = 0.9, qc = 0.85, metric_avg = ['binary'], n_epochs = 200, lr = 0.01, \\\n", + " need_strings = False)\n", + "\n", + "print(\"labels shape: \", labels.shape)\n", + "print(type(labels[0]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **fit_and_predict function of Cage class**\n", + "The output(probs) is a numpy matrix of shape (num_instances,) containing strings(because need_strings is True), having the classes of each instance." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 200/200 [00:21<00:00, 9.12it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "final_test_accuracy_score: 0.7975\n", + "test_average_metric: binary\tfinal_test_f1_score: 0.5030674846625766\n", + "labels_strings shape: (4500,)\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "cage = Cage(path_json = path_json, n_lfs = n_lfs)\n", + "\n", + "labels_strings = cage.fit_and_predict(path_pkl = U_path_pkl, path_test = T_path_pkl, path_log = log_path_cage_1, \\\n", + " qt = 0.9, qc = 0.85, metric_avg = ['binary'], n_epochs = 200, lr = 0.01, \\\n", + " need_strings = True)\n", + "\n", + "print(\"labels_strings shape: \", labels_strings.shape)\n", + "print(type(labels_strings[0]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Save parameters**\n", + "

Make sure that the directory of the save_path file exists. Note that any existing contents in pickle file will be erased.

" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "cage.save_params(save_path = params_path)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Load parameters**" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "cage_2 = Cage(path_json = path_json, n_lfs = n_lfs)\n", + "cage_2.load_params(load_path = params_path)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **predict_proba function of Cage class**\n", + "The output(probs_test) is a numpy matrix of shape (num_instances, num_classes) having the probability of a particular instance being that class.\n", + "

Here the order of classes along a row for any instance is the ascending order of values used in enum defined before to hold labels.

" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warning: Predict is used before training any paramters in Cage class. Hope you have loaded parameters.\n", + "probs_test shape: (400, 2)\n" + ] + } + ], + "source": [ + "probs_test = cage_2.predict_proba(path_test = T_path_pkl, qc = 0.85) \n", + "#NEED NOT use the same test data(above) used in Cage class before.\n", + "print(\"probs_test shape: \",probs_test.shape)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **predict function of Cage class**\n", + "The output(probs) is a numpy matrix of shape (num_instances,) containing integers(strings) if need_strings is Flase(True), having the classes of each instance. Just the use case with need_strings as False is displayed here." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warning: Predict is used before training any paramters in Cage class. Hope you have loaded parameters.\n", + "labels_test shape: (400,)\n", + "accuracy_score: 0.7975\n", + "f1_score: 0.5030674846625766\n" + ] + } + ], + "source": [ + "labels_test = cage_2.predict(path_test = T_path_pkl, qc = 0.85, need_strings = False)\n", + "print(\"labels_test shape: \", labels_test.shape)\n", + "\n", + "from sklearn.metrics import accuracy_score, f1_score\n", + "\n", + "#Y_T is true labels of test data, type is numpy array of shape (num_instances,)\n", + "print(\"accuracy_score: \", accuracy_score(Y_T, labels_test))\n", + "print(\"f1_score: \", f1_score(Y_T, labels_test, average = 'binary'))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Converting numpy array of integers to enums**\n", + "The below utility from spear can help convert return values of predict(obtained when need_strings is Flase) to a numpy array of enums." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "from spear.utils import get_enum\n", + "\n", + "labels_test_enum = get_enum(np_array = labels_test, enm = ClassLabels) \n", + "#the second argument is the Enum class defined at beginning\n", + "print(type(labels_test_enum[0]))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/notebooks/SMS_SPAM/.ipynb_checkpoints/sms_cage_jl-checkpoint.ipynb b/notebooks/SMS_SPAM/.ipynb_checkpoints/sms_cage_jl-checkpoint.ipynb new file mode 100644 index 0000000..2f064b6 --- /dev/null +++ b/notebooks/SMS_SPAM/.ipynb_checkpoints/sms_cage_jl-checkpoint.ipynb @@ -0,0 +1,1093 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ***End to End tutorial for SMS_SPAM labeling using SPEAR(Cage and JL):***" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "#pip install" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "import sys\n", + "sys.path.append('../../')\n", + "import numpy as np" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ***Defining an Enum to hold labels:***\n", + "### **Representation of class Labels**\n", + "\n", + "

All the class labels for which we define labeling functions are encoded in enum and utilized in our next tasks. Make sure not to define an Abstain(Labeling function(LF) not deciding anything) class inside this Enum, instead use the Abstain object as used later in LF section.

\n", + "\n", + "

SPAM dataset contains 2 classes i.e HAM and SPAM. Note that the numbers we associate can be anything but it is suggested to use a continuous numbers from 0 to number_of_classes-1

\n", + "\n", + "

**Note that even though this example is a binary classification, this(SPEAR) library supports multi-label classification**

" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "import enum\n", + "\n", + "# enum to hold the class labels\n", + "class ClassLabels(enum.Enum):\n", + " SPAM = 1\n", + " HAM = 0\n", + "\n", + "THRESHOLD = 0.8" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ***Defining preprocessors, continuous_scorers, labeling functions:***\n", + "During labeling the unlabelled data we lookup for few keywords to assign a class SMS.\n", + "\n", + "Example : *If a message contains apply or buy in it then most probably the message is spam*" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "trigWord1 = {\"free\",\"credit\",\"cheap\",\"apply\",\"buy\",\"attention\",\"shop\",\"sex\",\"soon\",\"now\",\"spam\"}\n", + "trigWord2 = {\"gift\",\"click\",\"new\",\"online\",\"discount\",\"earn\",\"miss\",\"hesitate\",\"exclusive\",\"urgent\"}\n", + "trigWord3 = {\"cash\",\"refund\",\"insurance\",\"money\",\"guaranteed\",\"save\",\"win\",\"teen\",\"weight\",\"hair\"}\n", + "notFreeWords = {\"toll\",\"Toll\",\"freely\",\"call\",\"meet\",\"talk\",\"feedback\"}\n", + "notFreeSubstring = {\"not free\",\"you are\",\"when\",\"wen\"}\n", + "firstAndSecondPersonWords = {\"I\",\"i\",\"u\",\"you\",\"ur\",\"your\",\"our\",\"we\",\"us\",\"youre\"}\n", + "thirdPersonWords = {\"He\",\"he\",\"She\",\"she\",\"they\",\"They\",\"Them\",\"them\",\"their\",\"Their\"}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Declaration of a simple preprocessor function**\n", + "\n", + "\n", + "For most of the tasks in NLP, computer vivsion instead of using the raw datapoint we preprocess the datapoint and then label it. Preprocessor functions are used to preprocess an instance before labeling it. We use **`@preprocessor(name,resources)`** decorator to declare a function as preprocessor." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "from spear.labeling import preprocessor\n", + "\n", + "\n", + "@preprocessor(name = \"LOWER_CASE\")\n", + "def convert_to_lower(x):\n", + " return x.lower().strip()\n", + "\n", + "lower = convert_to_lower(\"RED\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Some Labeling function(LF) definitions**\n", + "Below are some examples on how to define LFs and continuous LFs(CLFs). To get the continuous score for a CLF, we need to define a function with continuous_scorer decorator(just like labeling_function decorator) and pass it to a CLF as displayed below. Also note how the continuous score can be used in CLF. Note that the word_similarity is the function with continuous_scorer decorator and is written in con_scorer file(this file is not a part of package) in same folder." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "model loading\n", + "model loaded\n" + ] + } + ], + "source": [ + "from spear.labeling import labeling_function, ABSTAIN\n", + "\n", + "from helper.con_scorer import word_similarity\n", + "import re\n", + "\n", + "\n", + "@preprocessor()\n", + "def convert_to_lower(x):\n", + " return x.lower().strip()\n", + "\n", + "\n", + "@labeling_function(resources=dict(keywords=trigWord1),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def LF1(c,**kwargs): \n", + " if len(kwargs[\"keywords\"].intersection(c.split())) > 0:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(resources=dict(keywords=trigWord2),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def LF2(c,**kwargs):\n", + " if len(kwargs[\"keywords\"].intersection(c.split())) > 0:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(resources=dict(keywords=trigWord3),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def LF3(c,**kwargs):\n", + " if len(kwargs[\"keywords\"].intersection(c.split())) > 0:\n", + " return ClassLabels.SPAM \n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(resources=dict(keywords=notFreeWords),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def LF4(c,**kwargs):\n", + " if \"free\" in c.split() and len(kwargs[\"keywords\"].intersection(c.split()))>0:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(resources=dict(keywords=notFreeSubstring),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def LF5(c,**kwargs):\n", + " for pattern in kwargs[\"keywords\"]: \n", + " if \"free\" in c.split() and re.search(pattern,c, flags= re.I):\n", + " return ClassLabels.HAM\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(resources=dict(keywords=firstAndSecondPersonWords),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def LF6(c,**kwargs):\n", + " if \"free\" in c.split() and len(kwargs[\"keywords\"].intersection(c.split()))>0:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "\n", + "@labeling_function(resources=dict(keywords=thirdPersonWords),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def LF7(c,**kwargs):\n", + " if \"free\" in c.split() and len(kwargs[\"keywords\"].intersection(c.split()))>0:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(label=ClassLabels.SPAM)\n", + "def LF8(c,**kwargs):\n", + " if (sum(1 for ch in c if ch.isupper()) > 6):\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=trigWord1),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def CLF1(c,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=trigWord2),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def CLF2(c,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=trigWord3),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def CLF3(c,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=notFreeWords),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def CLF4(c,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=notFreeSubstring),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def CLF5(c,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=firstAndSecondPersonWords),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def CLF6(c,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=thirdPersonWords),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def CLF7(c,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=lambda x: 1-np.exp(float(-(sum(1 for ch in x if ch.isupper()))/2)),label=ClassLabels.SPAM)\n", + "def CLF8(c,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ***Accumulating all LFs into rules, an LFset(a class) object:***\n", + "### **Importing LFSet and passing LFs we defined, to that class**" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "from spear.labeling import LFSet\n", + "\n", + "LFS = [LF1,\n", + " LF2,\n", + " LF3,\n", + " LF4,\n", + " LF5,\n", + " LF6,\n", + " LF7,\n", + " LF8,\n", + " CLF1,\n", + " CLF2,\n", + " CLF3,\n", + " CLF4,\n", + " CLF5,\n", + " CLF6,\n", + " CLF7,\n", + " CLF8\n", + " ]\n", + "\n", + "rules = LFSet(\"SPAM_LF\")\n", + "rules.add_lf_list(LFS)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ***Loading data:***\n", + "### **Load the data: X, X_feats, Y**\n", + "

Note that the utils below is not a part of package but is used to load the necessary data. User have to use some means(which doesn't matter) to load his data. X is the raw data that is to be passed to LFs, X_feats is a numpy array of shape (num_instances, num_features) and Y are true labels(if available).

" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "from helper.utils import load_data_to_numpy, get_various_data\n", + "\n", + "X, X_feats, Y = load_data_to_numpy()\n", + "\n", + "validation_size = 100\n", + "test_size = 400\n", + "L_size = 100\n", + "U_size = 4500\n", + "n_lfs = len(rules.get_lfs())\n", + "\n", + "X_V, Y_V, X_feats_V,_, X_T, Y_T, X_feats_T,_, X_L, Y_L, X_feats_L,_, X_U, X_feats_U,_ = get_various_data(X, Y,\\\n", + " X_feats, n_lfs, validation_size, test_size, L_size, U_size)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ***Labeling data:***\n", + "### **Paths**\n", + "* path_json: path to json file generated by PreLabels\n", + "* V_path_pkl: path to pkl file generated by PreLabels containing the validation data with true labels\n", + "* L_path_pkl: path to pkl file generated by PreLabels containing the labeled data with true labels\n", + "* T_path_pkl: path to pkl file generated by PreLabels containing the test data with true labels\n", + "* U_path_pkl: path to pkl file generated by PreLabels containing the unlabelled data without true labels\n", + "* log_path: path to save the log which is generated during the algorithm\n", + "\n", + "

Difference between test and labeled data is that labeled data may be used in the algorithm(JL uses it while Cage doesn't) but test data isn't. Make sure to have the pickle files EMPTY ie, it should not any data inside it before passing to .generate_pickle() member function of PreLabels

" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "path_json = 'data_pipeline/sms_json.json'\n", + "V_path_pkl = 'data_pipeline/sms_pickle_V.pkl' #validation data - have true labels\n", + "T_path_pkl = 'data_pipeline/sms_pickle_T.pkl' #test data - have true labels\n", + "L_path_pkl = 'data_pipeline/sms_pickle_L.pkl' #Labeled data - have true labels\n", + "U_path_pkl = 'data_pipeline/sms_pickle_U.pkl' #unlabelled data - don't have true labels\n", + "\n", + "log_path_cage_1 = 'log/cage_log_1.txt' #cage is an algorithm, can be found below\n", + "log_path_jl_1 = 'log/jl_log_1.txt' #jl is an algorithm, can be found below" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Importing PreLabels class and using it to label data**\n", + "Json file should be generated only once as shown below." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 100/100 [00:08<00:00, 12.19it/s]\n", + "100%|██████████| 400/400 [00:27<00:00, 14.81it/s]\n", + "100%|██████████| 100/100 [00:06<00:00, 15.05it/s]\n", + "100%|██████████| 4500/4500 [05:23<00:00, 13.93it/s]\n" + ] + } + ], + "source": [ + "from spear.labeling import PreLabels\n", + "\n", + "sms_noisy_labels = PreLabels(name=\"sms\",\n", + " data=X_V,\n", + " gold_labels=Y_V,\n", + " data_feats=X_feats_V,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "sms_noisy_labels.generate_pickle(V_path_pkl)\n", + "sms_noisy_labels.generate_json(path_json) #generating json files once is enough\n", + "\n", + "sms_noisy_labels = PreLabels(name=\"sms\",\n", + " data=X_T,\n", + " gold_labels=Y_T,\n", + " data_feats=X_feats_T,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "sms_noisy_labels.generate_pickle(T_path_pkl)\n", + "\n", + "sms_noisy_labels = PreLabels(name=\"sms\",\n", + " data=X_L,\n", + " gold_labels=Y_L,\n", + " data_feats=X_feats_L,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "sms_noisy_labels.generate_pickle(L_path_pkl)\n", + "\n", + "sms_noisy_labels = PreLabels(name=\"sms\",\n", + " data=X_U,\n", + " rules=rules,\n", + " data_feats=X_feats_U,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "sms_noisy_labels.generate_pickle(U_path_pkl)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ***Accessing labeled data:***\n", + "### **Importing and the use of get_data and get_classes**\n", + "

These functions can be used to extract data from pickle files and json file respectively. Note that these are the files generated using PreLabels.

\n", + "

For detailed contents of output, please refer documentation.

" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of elements in data list: 10\n", + "Shape of feature matrix: (4500, 1024)\n", + "Shape of labels matrix: (4500, 16)\n", + "Shape of continuous scores matrix : (4500, 16)\n", + "Total number of classes: 2\n", + "Classes dictionary in json file(modified to have integer keys): {1: 'SPAM', 0: 'HAM'}\n" + ] + } + ], + "source": [ + "from spear.utils import get_data, get_classes\n", + "\n", + "data_U = get_data(path = U_path_pkl, check_shapes=True)\n", + "#check_shapes being True(above), asserts for relative shapes of arrays in pickle file\n", + "print(\"Number of elements in data list: \", len(data_U))\n", + "print(\"Shape of feature matrix: \", data_U[0].shape)\n", + "print(\"Shape of labels matrix: \", data_U[1].shape)\n", + "print(\"Shape of continuous scores matrix : \", data_U[6].shape)\n", + "print(\"Total number of classes: \", data_U[9])\n", + "\n", + "classes = get_classes(path = path_json)\n", + "print(\"Classes dictionary in json file(modified to have integer keys): \", classes)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ***Cage Algorithm:***\n", + "### **Importing Cage class (the algorithm) and declaring an object of it**\n", + "Cage algorithm needs only the pickle file(with labels given by LFs using PreLabels class) with unlabelled data(the data without true/gold labels) and it will predict the labels of this data. An optinal test data(which has true/gold labels) can also passed to get a log information of accuracies. \n", + "

Note: Multiple calls to fit_* functions will train parameters continuously ie, parameters are not reinitialised in fit_* functions. So, to train large data, one can call fit_* functions repeatedly on smaller chunks. Also, in order to perform multiple runs over the algorithm, one need to reinitialise paramters(by creating an object of Cage) at the start of each run.

" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "from spear.Cage import Cage\n", + "\n", + "cage = Cage(path_json = path_json, n_lfs = n_lfs)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **fit_and_predict_proba function of Cage class**\n", + "The output(probs) is a numpy matrix of shape (num_instances, num_classes) having the probability of a particular instance being that class. For more details about arguments, please refer documentation; same should be the case for any of the member functions used from here on." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "final_test_accuracy_score: 0.815\n", + "test_average_metric: binary\tfinal_test_f1_score: 0.5747126436781609\n", + "probs shape: (4500, 2)\n", + "labels shape: (4500,)\n" + ] + } + ], + "source": [ + "cage = Cage(path_json = path_json, n_lfs = n_lfs)\n", + "\n", + "probs = cage.fit_and_predict_proba(path_pkl = U_path_pkl, path_test = T_path_pkl, path_log = log_path_cage_1, \\\n", + " qt = 0.9, qc = 0.85, metric_avg = ['binary'], n_epochs = 200, lr = 0.01)\n", + "labels = np.argmax(probs, 1)\n", + "print(\"probs shape: \", probs.shape)\n", + "print(\"labels shape: \",labels.shape)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **fit_and_predict function of Cage class**\n", + "The output(probs) is a numpy matrix of shape (num_instances,) containing integers(because need_strings is False), having the classes of each instance." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "final_test_accuracy_score: 0.815\n", + "test_average_metric: binary\tfinal_test_f1_score: 0.5747126436781609\n", + "labels shape: (4500,)\n", + "\n" + ] + } + ], + "source": [ + "cage = Cage(path_json = path_json, n_lfs = n_lfs)\n", + "\n", + "labels = cage.fit_and_predict(path_pkl = U_path_pkl, path_test = T_path_pkl, path_log = log_path_cage_1, \\\n", + " qt = 0.9, qc = 0.85, metric_avg = ['binary'], n_epochs = 200, lr = 0.01, \\\n", + " need_strings = False)\n", + "\n", + "print(\"labels shape: \", labels.shape)\n", + "print(type(labels[0]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **fit_and_predict function of Cage class**\n", + "The output(probs) is a numpy matrix of shape (num_instances,) containing strings(because need_strings is True), having the classes of each instance." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "final_test_accuracy_score: 0.815\n", + "test_average_metric: binary\tfinal_test_f1_score: 0.5747126436781609\n", + "labels_strings shape: (4500,)\n", + "\n" + ] + } + ], + "source": [ + "cage = Cage(path_json = path_json, n_lfs = n_lfs)\n", + "\n", + "labels_strings = cage.fit_and_predict(path_pkl = U_path_pkl, path_test = T_path_pkl, path_log = log_path_cage_1, \\\n", + " qt = 0.9, qc = 0.85, metric_avg = ['binary'], n_epochs = 200, lr = 0.01, \\\n", + " need_strings = True)\n", + "\n", + "print(\"labels_strings shape: \", labels_strings.shape)\n", + "print(type(labels_strings[0]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Save parameters**\n", + "

Make sure the pickle you are passing here is EMPTY

" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "cage.save_params(save_path = 'params/sms_cage_params.pkl')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Load parameters**" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "cage_2 = Cage(path_json = path_json, n_lfs = n_lfs)\n", + "cage_2.load_params(load_path = 'params/sms_cage_params.pkl')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **predict_proba function of Cage class**\n", + "The output(probs_test) is a numpy matrix of shape (num_instances, num_classes) having the probability of a particular instance being that class." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warning: Predict is used before training any paramters in Cage class. Hope you have loaded parameters.\n", + "probs_test shape: (400, 2)\n" + ] + } + ], + "source": [ + "probs_test = cage_2.predict_proba(path_test = T_path_pkl, qc = 0.85) \n", + "#NEED NOT use the same test data(above) used in Cage class before.\n", + "print(\"probs_test shape: \",probs_test.shape)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **predict function of Cage class**\n", + "The output(probs) is a numpy matrix of shape (num_instances,) containing integers(strings) if need_strings is Flase(True), having the classes of each instance. Just the use case with need_strings as False is displayed here." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warning: Predict is used before training any paramters in Cage class. Hope you have loaded parameters.\n", + "labels_test shape: (400,)\n", + "accuracy_score: 0.815\n", + "f1_score: 0.5747126436781609\n" + ] + } + ], + "source": [ + "labels_test = cage_2.predict(path_test = T_path_pkl, qc = 0.85, need_strings = False)\n", + "print(\"labels_test shape: \", labels_test.shape)\n", + "\n", + "from sklearn.metrics import accuracy_score, f1_score\n", + "\n", + "#Y_T is true labels of test data, type is numpy array of shape (num_instances,)\n", + "print(\"accuracy_score: \", accuracy_score(Y_T, labels_test))\n", + "print(\"f1_score: \", f1_score(Y_T, labels_test, average = 'binary'))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Converting numpy array of integers to enums**\n", + "The below utility from spear can help convert return values of predict(obtained when need_strings is Flase) to a numpy array of enums" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "from spear.utils import get_enum\n", + "\n", + "labels_test_enum = get_enum(np_array = labels_test, enm = ClassLabels) \n", + "#the second argument is the Enum class defined at beginning\n", + "print(type(labels_test_enum[0]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ***Joint Learning(JL) Algorithm:***\n", + "## **Importing JL class (the algorithm) and declaring an object of it**\n", + "JL algoritm needs the four types of data:(all this data should be labeled using LFs via PreLabels class)\n", + "* Unlabeled data(doesn't have true/gold labels)\n", + "* labeled data(have true/gold labels)\n", + "* validation data(have true/gold labels)\n", + "* test data(have true/gold labels)\n", + "\n", + "

All this data is compulsory for training(passed in fit_and_predict functions). Note that the amount of labeled or validation data can be small, for example they can be of the order of 100 each. Also refer subset selection to find the subset of the data, that is available with you, to label(using a trustable means) and use it as 'labeled data' so that the data complements the LFs.

\n", + "

The member functions of JL can be choosen to return fm(feature model) or gm(graphical model) predictions. It is highly advised to use the predictions of fm.

\n", + "

Note: Multiple calls to fit_* functions will train parameters continuously ie, parameters are not reinitialised in fit_* functions. So, to train large data, one can call fit_* functions repeatedly on smaller chunks. Also, in order to perform multiple runs over the algorithm, one need to reinitialise paramters(by creating an object of JL) at the start of each run.

" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "from spear.JL import JL\n", + "\n", + "n_features = 1024\n", + "n_hidden = 512\n", + "feature_model = 'nn'\n", + "\n", + "jl = JL(path_json = path_json, n_lfs = n_lfs, n_features = n_features, n_hidden = n_hidden, \\\n", + " feature_model = feature_model)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **fit_and_predict_proba function of JL class with two return values**\n", + "Here return_gm argument is True which returns predictions from graphical model(Cage) along with feature model. Also note that here test data(path_T) is compulsory and metric_avg is just one value(instead of list as in Cage). The output(probs) is a numpy matrix of shape (num_instances, num_classes) having the probability of a particular instance being that class." + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "early stopping at epoch: 19\tbest_epoch: 8\n", + "score used: f1_score\n", + "best_gm_val_score:0.5581395348837209\tbest_fm_val_score:0.7499999999999999\n", + "best_gm_test_score:0.6025641025641025\tbest_fm_test_score:0.7999999999999999\n", + "best_gm_test_precision:0.46078431372549017\tbest_fm_test_precision:0.7272727272727273\n", + "best_gm_test_recall:0.8703703703703703\tbest_fm_test_recall:0.8888888888888888\n", + "probs_fm shape: (4500, 2)\n", + "probs_gm shape: (4500, 2)\n" + ] + } + ], + "source": [ + "loss_func_mask = [1,1,1,1,1,1,1] \n", + "'''\n", + "One can keep 0s in places where he don't want the specific loss function to be part\n", + "the final loss function used in training. Refer documentation(spear.JL.core.JL) to understand\n", + "the which index of loss_func_mask refers to what loss function.\n", + "Note: the loss_func_mask may not be the optimal mask for sms dataset.\n", + "'''\n", + "batch_size = 150\n", + "lr_fm = 0.0005\n", + "lr_gm = 0.01\n", + "use_accuracy_score = False\n", + "\n", + "jl = JL(path_json = path_json, n_lfs = n_lfs, n_features = n_features, n_hidden = n_hidden, \\\n", + " feature_model = feature_model)\n", + "\n", + "probs_fm, probs_gm = jl.fit_and_predict_proba(path_L = L_path_pkl, path_U = U_path_pkl, path_V = V_path_pkl, \\\n", + " path_T = T_path_pkl, loss_func_mask = loss_func_mask, batch_size = batch_size, lr_fm = lr_fm, lr_gm = \\\n", + " lr_gm, use_accuracy_score = use_accuracy_score, path_log = log_path_jl_1, return_gm = True, n_epochs = \\\n", + " 100, start_len = 7,stop_len = 10, is_qt = True, is_qc = True, qt = 0.9, qc = 0.85, metric_avg = 'binary')\n", + "\n", + "labels = np.argmax(probs_fm, 1)\n", + "print(\"probs_fm shape: \", probs_fm.shape)\n", + "print(\"probs_gm shape: \", probs_gm.shape)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **fit_and_predict_proba function of JL class with one return value**\n", + "Here return_gm argument is False which returns predictions only from feature model. The output(probs) is a numpy matrix of shape (num_instances, num_classes) having the probability of a particular instance being that class." + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "early stopping at epoch: 27\tbest_epoch: 16\n", + "score used: f1_score\n", + "best_gm_val_score:0.5454545454545454\tbest_fm_val_score:0.631578947368421\n", + "best_gm_test_score:0.5949367088607594\tbest_fm_test_score:0.676056338028169\n", + "best_gm_test_precision:0.4519230769230769\tbest_fm_test_precision:0.5454545454545454\n", + "best_gm_test_recall:0.8703703703703703\tbest_fm_test_recall:0.8888888888888888\n", + "probs_fm shape: (4500, 2)\n" + ] + } + ], + "source": [ + "jl = JL(path_json = path_json, n_lfs = n_lfs, n_features = n_features, n_hidden = n_hidden, \\\n", + " feature_model = feature_model)\n", + "\n", + "probs_fm = jl.fit_and_predict_proba(path_L = L_path_pkl, path_U = U_path_pkl, path_V = V_path_pkl, \\\n", + " path_T = T_path_pkl, loss_func_mask = loss_func_mask, batch_size = batch_size, lr_fm = lr_fm, lr_gm = \\\n", + " lr_gm, use_accuracy_score = use_accuracy_score, path_log = log_path_jl_1, return_gm = False, n_epochs = \\\n", + " 100, start_len = 7,stop_len = 10, is_qt = True, is_qc = True, qt = 0.9, qc = 0.85, metric_avg = 'binary')\n", + "\n", + "labels = np.argmax(probs_fm, 1)\n", + "print(\"probs_fm shape: \", probs_fm.shape)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **fit_and_predict function of JL class**\n", + "Here return_gm argument is True. The output(probs) is a numpy matrix of shape (num_instances,) containing integers(because need_strings is False), having the classes of each instance." + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "early stopping at epoch: 27\tbest_epoch: 16\n", + "score used: f1_score\n", + "best_gm_val_score:0.5581395348837209\tbest_fm_val_score:0.7058823529411764\n", + "best_gm_test_score:0.5911949685534591\tbest_fm_test_score:0.7868852459016393\n", + "best_gm_test_precision:0.44761904761904764\tbest_fm_test_precision:0.7058823529411765\n", + "best_gm_test_recall:0.8703703703703703\tbest_fm_test_recall:0.8888888888888888\n", + "labels_fm shape: (4500,)\n", + "labels_gm shape: (4500,)\n", + "\n", + "\n" + ] + } + ], + "source": [ + "jl = JL(path_json = path_json, n_lfs = n_lfs, n_features = n_features, n_hidden = n_hidden, \\\n", + " feature_model = feature_model)\n", + "\n", + "labels_fm, labels_gm = jl.fit_and_predict(path_L = L_path_pkl, path_U = U_path_pkl, path_V = V_path_pkl, \\\n", + " path_T = T_path_pkl, loss_func_mask = loss_func_mask, batch_size = batch_size, lr_fm = lr_fm, lr_gm = \\\n", + " lr_gm, use_accuracy_score = use_accuracy_score, path_log = log_path_jl_1, return_gm = True, n_epochs = \\\n", + " 100, start_len = 7,stop_len = 10, is_qt = True, is_qc = True, qt = 0.9, qc = 0.85, metric_avg = 'binary', \\\n", + " need_strings = False)\n", + "\n", + "print(\"labels_fm shape: \", labels_fm.shape)\n", + "print(\"labels_gm shape: \", labels_gm.shape)\n", + "print(type(labels_fm[0]))\n", + "print(type(labels_gm[0]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **fit_and_predict function of JL class**\n", + "Here return_gm argument is True. The output(probs) is a numpy matrix of shape (num_instances,) containing strings(because need_strings is True), having the classes of each instance." + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "early stopping at epoch: 25\tbest_epoch: 14\n", + "score used: f1_score\n", + "best_gm_val_score:0.5714285714285715\tbest_fm_val_score:0.7272727272727273\n", + "best_gm_test_score:0.6025641025641025\tbest_fm_test_score:0.8235294117647058\n", + "best_gm_test_precision:0.46078431372549017\tbest_fm_test_precision:0.7538461538461538\n", + "best_gm_test_recall:0.8703703703703703\tbest_fm_test_recall:0.9074074074074074\n", + "labels_fm shape: (4500,)\n", + "labels_gm shape: (4500,)\n", + "\n", + "\n" + ] + } + ], + "source": [ + "jl = JL(path_json = path_json, n_lfs = n_lfs, n_features = n_features, n_hidden = n_hidden, \\\n", + " feature_model = feature_model)\n", + "\n", + "labels_fm, labels_gm = jl.fit_and_predict(path_L = L_path_pkl, path_U = U_path_pkl, path_V = V_path_pkl, \\\n", + " path_T = T_path_pkl, loss_func_mask = loss_func_mask, batch_size = batch_size, lr_fm = lr_fm, lr_gm = \\\n", + " lr_gm, use_accuracy_score = use_accuracy_score, path_log = log_path_jl_1, return_gm = True, n_epochs = \\\n", + " 100, start_len = 7,stop_len = 10, is_qt = True, is_qc = True, qt = 0.9, qc = 0.85, metric_avg = 'binary', \\\n", + " need_strings = True)\n", + "\n", + "print(\"labels_fm shape: \", labels_fm.shape)\n", + "print(\"labels_gm shape: \", labels_gm.shape)\n", + "print(type(labels_fm[0]))\n", + "print(type(labels_gm[0]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Save parameters**\n", + "

Make sure the pickle you are passing here is EMPTY

" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [], + "source": [ + "jl.save_params(save_path = 'params/sms_jl_params.pkl')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Load parameters**" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [], + "source": [ + "jl_2 = JL(path_json = path_json, n_lfs = n_lfs, n_features = n_features, n_hidden = n_hidden, \\\n", + " feature_model = feature_model)\n", + "jl_2.load_params(load_path = 'params/sms_jl_params.pkl')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **predict_fm/gm_proba functions of JL class**\n", + "The output(probs_test) is a numpy matrix of shape (num_instances, num_classes) having the probability of a particular instance being that class.\n", + "

Note that predict_fm_proba takes feature matrix(can also be obtained from pickle file using get_data()) as argument while predict_gm_proba takes pickle file(containing labels given by LFs) as argument.

" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warning: Predict is used before training any paramters in JL class. Hope you have loaded parameters.\n", + "probs_fm_test shape: (400, 2)\n", + "probs_gm_test shape: (400, 2)\n" + ] + } + ], + "source": [ + "probs_fm_test = jl_2.predict_fm_proba(x_test = X_feats_T)\n", + "probs_gm_test = jl_2.predict_gm_proba(path_test = T_path_pkl, qc = 0.85)\n", + "\n", + "print(\"probs_fm_test shape: \", probs_fm_test.shape)\n", + "print(\"probs_gm_test shape: \", probs_gm_test.shape)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **predict_fm/gm functions of JL class**\n", + "The output(probs) is a numpy matrix of shape (num_instances,) containing integers(strings) if need_strings is Flase(True), having the classes of each instance. Just the use case with need_strings as False is displayed here. \n", + "

Note that predict_fm takes feature matrix(can also be obtained from pickle file using get_data()) as argument while predict_gm takes pickle file(containing labels given by LFs) as argument.

" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warning: Predict is used before training any paramters in JL class. Hope you have loaded parameters.\n", + "labels_fm_test shape: (400,)\n", + "labels_gm_test shape: (400,)\n", + "accuracy_score of gm: 0.815 | fm: 0.9475\n", + "f1_score of gm: 0.5595238095238095 | fm: 0.8235294117647058\n" + ] + } + ], + "source": [ + "labels_fm_test = jl_2.predict_fm(x_test = X_feats_T, need_strings=False)\n", + "labels_gm_test = jl_2.predict_gm(path_test = T_path_pkl, qc = 0.85, need_strings=False)\n", + "\n", + "print(\"labels_fm_test shape: \", labels_fm_test.shape)\n", + "print(\"labels_gm_test shape: \", labels_gm_test.shape)\n", + "\n", + "from sklearn.metrics import accuracy_score, f1_score\n", + "\n", + "#Y_T is true labels of test data, type is numpy array of shape (num_instances,)\n", + "print(\"accuracy_score of gm: \", accuracy_score(Y_T, labels_gm_test), \"| fm: \", accuracy_score(Y_T, labels_fm_test))\n", + "print(\"f1_score of gm: \", f1_score(Y_T, labels_gm_test, average = 'binary'), \"| fm: \", f1_score(Y_T, labels_fm_test, average = 'binary'))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Converting numpy array of integers to enums**\n", + "The below utility from spear can help convert return values of predict_fm, predict_gm(obtained when need_strings is Flase) to a numpy array of enums" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "from spear.utils import get_enum\n", + "\n", + "probs_fm_test_enum = get_enum(np_array = labels_fm_test, enm = ClassLabels) \n", + "#the second argument is the Enum class defined at beginning\n", + "print(type(probs_fm_test_enum[0]))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/notebooks/SMS_SPAM/.ipynb_checkpoints/sms_hls-checkpoint.ipynb b/notebooks/SMS_SPAM/.ipynb_checkpoints/sms_hls-checkpoint.ipynb new file mode 100644 index 0000000..fe130d2 --- /dev/null +++ b/notebooks/SMS_SPAM/.ipynb_checkpoints/sms_hls-checkpoint.ipynb @@ -0,0 +1,640 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "27e4057f", + "metadata": {}, + "source": [ + "# ***End to End tutorial for SMS_SPAM labeling using High Level Supervision:***\n", + "**The paper and documentation can be found here:** [Paper](https://openreview.net/pdf/e4d3b0f4237ea03ce6b9b73bd796822f7f84a40c.pdf), [Documentation](https://spear-decile.readthedocs.io/en/latest)" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "54b88922", + "metadata": {}, + "outputs": [], + "source": [ + "'''\n", + "User don't need to include this cell to use the package\n", + "'''\n", + "import sys\n", + "sys.path.append('../../')" + ] + }, + { + "cell_type": "markdown", + "id": "d1cd22ce", + "metadata": {}, + "source": [ + "# ***Defining an Enum to hold labels:***\n", + "### **Representation of class Labels**\n", + "\n", + "

All the class labels for which we define labeling functions are encoded in enum and utilized in our next tasks. Make sure not to define an Abstain(Labeling function(LF) not deciding anything) class inside this Enum, instead import the ABSTAIN object as used later in LF section.

\n", + "\n", + "

SPAM dataset contains 2 classes i.e HAM and SPAM. Note that the numbers we associate can be anything but it is suggested to use a continuous numbers from 0 to number_of_classes-1

\n", + "\n", + "

**Note that even though this example is a binary classification, this(SPEAR) library supports multi-class classification**

" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "3d396484", + "metadata": {}, + "outputs": [], + "source": [ + "import enum\n", + "\n", + "# enum to hold the class labels\n", + "class ClassLabels(enum.Enum):\n", + " SPAM = 1\n", + " HAM = 0\n", + "\n", + "THRESHOLD = 0.8" + ] + }, + { + "cell_type": "markdown", + "id": "ed8759f9", + "metadata": {}, + "source": [ + "# ***Defining preprocessors, continuous_scorers, labeling functions:***\n", + "During labeling the unlabelled data we lookup for few keywords to assign a class SMS.\n", + "\n", + "Example : *If a message contains apply or buy in it then most probably the message is spam*" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "d93a5ac3", + "metadata": {}, + "outputs": [], + "source": [ + "trigWord1 = {\"free\",\"credit\",\"cheap\",\"apply\",\"buy\",\"attention\",\"shop\",\"sex\",\"soon\",\"now\",\"spam\"}\n", + "trigWord2 = {\"gift\",\"click\",\"new\",\"online\",\"discount\",\"earn\",\"miss\",\"hesitate\",\"exclusive\",\"urgent\"}\n", + "trigWord3 = {\"cash\",\"refund\",\"insurance\",\"money\",\"guaranteed\",\"save\",\"win\",\"teen\",\"weight\",\"hair\"}\n", + "notFreeWords = {\"toll\",\"Toll\",\"freely\",\"call\",\"meet\",\"talk\",\"feedback\"}\n", + "notFreeSubstring = {\"not free\",\"you are\",\"when\",\"wen\"}\n", + "firstAndSecondPersonWords = {\"I\",\"i\",\"u\",\"you\",\"ur\",\"your\",\"our\",\"we\",\"us\",\"youre\"}\n", + "thirdPersonWords = {\"He\",\"he\",\"She\",\"she\",\"they\",\"They\",\"Them\",\"them\",\"their\",\"Their\"}" + ] + }, + { + "cell_type": "markdown", + "id": "1e1ffb4b", + "metadata": {}, + "source": [ + "### **Declaration of a simple preprocessor function**\n", + "\n", + "\n", + "For most of the tasks in NLP, computer vivsion instead of using the raw datapoint we preprocess the datapoint and then label it. Preprocessor functions are used to preprocess an instance before labeling it. We use **`@preprocessor(name,resources)`** decorator to declare a function as preprocessor." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "102adabd", + "metadata": {}, + "outputs": [], + "source": [ + "from spear.labeling import preprocessor\n", + "\n", + "\n", + "@preprocessor(name = \"LOWER_CASE\")\n", + "def convert_to_lower(x):\n", + " return x.lower().strip()\n", + "\n", + "lower = convert_to_lower(\"RED\")" + ] + }, + { + "cell_type": "markdown", + "id": "3ddae1cb", + "metadata": {}, + "source": [ + "# ***High Level Supervision Algorithm:***" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "944fe4ad", + "metadata": {}, + "outputs": [], + "source": [ + "#my_data_feeders\n", + "import collections\n", + "\n", + "f_d = 'f_d'\n", + "f_d_U = 'f_d_U'\n", + "test_w = 'test_w'\n", + "\n", + "train_modes = [f_d, f_d_U]\n", + "\n", + "F_d_U_Data = collections.namedtuple('GMMDataF_d_U', 'x l m L d r')\n", + "F_d_Data = collections.namedtuple('GMMDataF_d', 'x labels')" + ] + }, + { + "cell_type": "markdown", + "id": "d2be11f7", + "metadata": {}, + "source": [ + "### **Importing the required functionalities**\n", + "\n", + "\n", + "Import the required libraries. Also, import the latest version of tensorflow." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "2758a604", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/compat/v2_compat.py:96: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "non-resource variables are not supported in the long term\n" + ] + } + ], + "source": [ + "from spear.Implyloss import *\n", + "import numpy as np\n", + "import sys, os, shutil\n", + "import tensorflow.compat.v1 as tf\n", + "tf.disable_v2_behavior()\n", + "# tf.reset_default_graph()" + ] + }, + { + "cell_type": "markdown", + "id": "7898a182", + "metadata": {}, + "source": [ + "### **Setting up the model's checkpoints**" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "016a1991", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Checkpoint file does not exist\n", + "INFO:tensorflow:best.ckpt-51 is not in all_model_checkpoint_paths. Manually adding it.\n", + "Saved new best checkpoint to path: /tmp/best_ckpt_0.266783/foo-bar/best.ckpt-51\n", + "Restoring best checkpoint from path: /tmp/best_ckpt_0.266783/foo-bar/best.ckpt-51\n", + "INFO:tensorflow:Restoring parameters from /tmp/best_ckpt_0.266783/foo-bar/best.ckpt-51\n", + "INFO:tensorflow:best.ckpt-52 is not in all_model_checkpoint_paths. Manually adding it.\n", + "Saved new best checkpoint to path: /tmp/best_ckpt_0.266783/foo-bar/best.ckpt-52\n", + "Restoring best checkpoint from path: /tmp/best_ckpt_0.266783/foo-bar/best.ckpt-51\n", + "INFO:tensorflow:Restoring parameters from /tmp/best_ckpt_0.266783/foo-bar/best.ckpt-51\n", + "INFO:tensorflow:best.ckpt-53 is not in all_model_checkpoint_paths. Manually adding it.\n", + "Saved new best checkpoint to path: /tmp/best_ckpt_0.266783/foo-bar/best.ckpt-53\n", + "INFO:tensorflow:best.ckpt-54 is not in all_model_checkpoint_paths. Manually adding it.\n", + "Saved new best checkpoint to path: /tmp/best_ckpt_0.266783/foo-bar/best.ckpt-54\n", + "Restoring best checkpoint from path: /tmp/best_ckpt_0.266783/foo-bar/best.ckpt-53\n", + "INFO:tensorflow:Restoring parameters from /tmp/best_ckpt_0.266783/foo-bar/best.ckpt-53\n", + "INFO:tensorflow:/tmp/best_ckpt_0.743327/best.ckpt-12 is not in all_model_checkpoint_paths. Manually adding it.\n", + "INFO:tensorflow:/tmp/best_ckpt_0.743327/best.ckpt-13 is not in all_model_checkpoint_paths. Manually adding it.\n", + "INFO:tensorflow:/tmp/best_ckpt_0.743327/best.ckpt-14 is not in all_model_checkpoint_paths. Manually adding it.\n", + "Best ckpt path: /tmp/best_ckpt_0.743327/best.ckpt-13\n", + "INFO:tensorflow:Restoring parameters from /tmp/best_ckpt_0.743327/best.ckpt-13\n", + "INFO:tensorflow:/tmp/best_ckpt_0.743327/best.ckpt-15 is not in all_model_checkpoint_paths. Manually adding it.\n", + "Best ckpt path: /tmp/best_ckpt_0.743327/best.ckpt-13\n", + "INFO:tensorflow:Restoring parameters from /tmp/best_ckpt_0.743327/best.ckpt-13\n", + "INFO:tensorflow:/tmp/best_ckpt_0.743327/best.ckpt-16 is not in all_model_checkpoint_paths. Manually adding it.\n", + "Best ckpt path: /tmp/best_ckpt_0.743327/best.ckpt-16\n", + "INFO:tensorflow:Restoring parameters from /tmp/best_ckpt_0.743327/best.ckpt-16\n", + "Best ckpt path: /tmp/best_ckpt_0.743327/best.ckpt-15\n", + "INFO:tensorflow:Restoring parameters from /tmp/best_ckpt_0.743327/best.ckpt-15\n", + "Saved MRU checkpoint to path: /tmp/checkpoints/hls-model\n", + "Restoring checkpoint from path: /tmp/checkpoints/hls-model\n", + "INFO:tensorflow:Restoring parameters from /tmp/checkpoints/hls-model\n", + "Restoring checkpoint from path: /tmp/checkpoints/hls-model\n", + "INFO:tensorflow:Restoring parameters from /tmp/checkpoints/hls-model\n", + "Saved MRU checkpoint to path: /tmp/checkpoints_0.064679/hls-model-11\n", + "Restoring checkpoint from path: /tmp/checkpoints_0.064679/hls-model-11\n", + "INFO:tensorflow:Restoring parameters from /tmp/checkpoints_0.064679/hls-model-11\n", + "WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/training/saver.py:968: remove_checkpoint (from tensorflow.python.training.checkpoint_management) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use standard file APIs to delete files with this prefix.\n", + "Saved MRU checkpoint to path: /tmp/checkpoints_0.064679/hls-model-5\n", + "Restoring checkpoint from path: /tmp/checkpoints_0.064679/hls-model-5\n", + "INFO:tensorflow:Restoring parameters from /tmp/checkpoints_0.064679/hls-model-5\n", + "Saved MRU checkpoint to path: /tmp/checkpoints_0.443770/hls-model-11\n", + "Restoring checkpoint from path: /tmp/checkpoints_0.443770/hls-model-11\n", + "INFO:tensorflow:Restoring parameters from /tmp/checkpoints_0.443770/hls-model-11\n", + "Saved MRU checkpoint to path: /tmp/checkpoints_0.443770/hls-model-5\n", + "Restoring checkpoint from path: /tmp/checkpoints_0.443770/hls-model-5\n", + "INFO:tensorflow:Restoring parameters from /tmp/checkpoints_0.443770/hls-model-5\n" + ] + } + ], + "source": [ + "# import tensorflow.compat.v1 as tf\n", + "# tf.disable_v2_behavior()\n", + "tf.reset_default_graph()\n", + "\n", + "\n", + "test_best_ckpt()\n", + "test_checkmate()\n", + "test_checkpoint()\n", + "test_mru_checkpoints(num_to_keep=1)\n", + "test_mru_checkpoints(num_to_keep=5)\n" + ] + }, + { + "cell_type": "markdown", + "id": "6ffb2908", + "metadata": {}, + "source": [ + "### **Initializing the Directories for storing relevant information**" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "a6f76abb", + "metadata": {}, + "outputs": [], + "source": [ + "checkpoint_dir = './checkpoint'\n", + "# data_dir = \"/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC\" # Directory containing data pickles\n", + "# data_dir = \"/home/parth/Desktop/SEM6/RnD/spear/examples/SMS_SPAM/data_pipeline/\"\n", + "data_dir = \"../../examples/SMS_SPAM/data_pipeline/\"\n", + "inference_output_dir = './inference_output/'\n", + "log_dir = './log/hls'\n", + "metric_pickle_dir = './met_pickl/'\n", + "tensorboard_dir = './tensorboard'" + ] + }, + { + "cell_type": "markdown", + "id": "712aec03", + "metadata": {}, + "source": [ + "### **Creating the directories if they don't exist**" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "6b9f760a", + "metadata": {}, + "outputs": [], + "source": [ + "if not os.path.exists(inference_output_dir):\n", + " os.makedirs(inference_output_dir)\n", + "\n", + "if not os.path.exists(log_dir):\n", + " os.makedirs(log_dir)\n", + "\n", + "if not os.path.exists(metric_pickle_dir):\n", + " os.makedirs(metric_pickle_dir)\n", + "\n", + "if not os.path.exists(tensorboard_dir):\n", + " os.makedirs(tensorboard_dir)" + ] + }, + { + "cell_type": "markdown", + "id": "8b133fa9", + "metadata": {}, + "source": [ + "### **Initializing the parameter values**" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "5fbdc2fc", + "metadata": {}, + "outputs": [], + "source": [ + "checkpoint_load_mode = 'mru' # Which kind of checkpoint to restore from. Possible options are mru: Most recently saved checkpoint. Use this to continue a run f_d, f_d_U: Use these to load the best checkpoint from these runs \n", + "# d_pickle = data_dir+\"d_processed.p\"\n", + "d_pickle = data_dir+\"sms_pickle_L.pkl\"\n", + "dropout_keep_prob = 0.8\n", + "early_stopping_p = 20 # early stopping patience (in epochs)\n", + "f_d_adam_lr = 0.0003 # default = 0.01\n", + "f_d_batch_size = 16\n", + "f_d_class_sampling = [10,10] # Comma-separated list of number of times each d instance should be sampled depending on its class for training f on d. Size of list must equal number of classes.\n", + "f_d_epochs = 4 # default = 2\n", + "f_d_metrics_pickle = metric_pickle_dir+\"metrics_train_f_on_d.p\"\n", + "f_d_primary_metric = 'accuracy' #'f1_score_1' # Metric for best checkpoint computation. The best metrics pickle will also be stored on this basis. Valid values are: accuracy: overall accuracy. f1_score_1: f1_score of class 1. avg_f1_score: average of all classes f1_score \n", + "f_d_U_adam_lr = 0.0003 # default = 0.01\n", + "f_d_U_batch_size = 32\n", + "f_d_U_epochs = 4 # default = 2 \n", + "f_d_U_metrics_pickle = metric_pickle_dir+\"metrics_train_f_on_d_U.p\"\n", + "f_infer_out_pickle = inference_output_dir+\"infer_f.p\" # output file name for any inference that was ran on f (classification) network\n", + "gamma = 0.1 # weighting factor for loss on U used in implication, pr_loss, snorkel, generalized cross entropy etc. \n", + "lamda = 0.1\n", + "min_rule_coverage = 0 # Minimum coverage of a rule in U in order to include it in co-training. Rules which have coverage less than this are assigned a constant weight of 1.0.\n", + "mode = \"implication\" # \"learn2reweight\" / \"implication\" / \"pr_loss\" / \"f_d\" \n", + "test_mode = \"\" # \"\" / test_f\" / \"test_w\" / \"test_all\"\n", + "num_classes = 2 # can be 0. Number of classes. If 0, this will be dynamically determined using max of labels in 'd'.\n", + "num_load_d = None # can be 0. Number of instances to load from d. If 0 load all.\n", + "num_load_U = None # can be 0. Number of instances to load from U. If 0 load all.\n", + "num_load_validation = None # can be 0. Number of instances to load from validation. If 0 load all.\n", + "q = \"1\"\n", + "rule_classes = None # Comma-separated list of the classes predicted by each rule if string is empty, rule classes are determined from data associated with rule firings.\n", + "shuffle_batches = True # Don't shuffle batches. Useful for debugging and stepping through batch by batch\n", + "test_w_batch_size = 1000\n", + "# U_pickle = data_dir+\"U_processed.p\"\n", + "U_pickle = data_dir+\"sms_pickle_U.pkl\"\n", + "use_joint_f_w = False # whether to utilize w network during inference\n", + "# validation_pickle = data_dir+\"validation_processed.p\"\n", + "validation_pickle = data_dir+\"sms_pickle_V.pkl\"\n", + "w_infer_out_pickle = inference_output_dir+\"infer_w.p\" # output file name for any inference that was ran on w (rule) network\n", + "json_file = data_dir+\"sms_json.json\"\n" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "29a0fb4a", + "metadata": {}, + "outputs": [], + "source": [ + "import shutil\n", + "output_dir = \"./\" + str(mode) + \"_\" + str(gamma) + \"_\" + str(lamda) + \"_\" + str(q)\n", + "if not os.path.exists(output_dir):\n", + " os.makedirs(output_dir)\n", + "\n", + "if test_mode==\"\":\n", + " if os.path.exists(checkpoint_dir):\n", + " shutil.rmtree(checkpoint_dir, ignore_errors=True) \n", + " os.makedirs(checkpoint_dir)\n", + "\n", + "# number of input dir - 1 (data_dir)\n", + "# number of output dir - 6 (checkpoint, inference_output, log_dir, metric_pickle, output, tensorboard)\n" + ] + }, + { + "cell_type": "markdown", + "id": "1769866e", + "metadata": {}, + "source": [ + "### **Creating a Data Feeder Object to process data**" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "41858faa", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`.\n", + "WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "\n", + "Future major versions of TensorFlow will allow gradients to flow\n", + "into the labels input on backprop by default.\n", + "\n", + "See `tf.nn.softmax_cross_entropy_with_logits_v2`.\n", + "\n", + "WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/spear/notebooks/SMS_SPAM/../../spear/Implyloss/model.py:641: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use `tf.cast` instead.\n", + "INFO:tensorflow:./checkpoint/f_d_U/best.ckpt-124 is not in all_model_checkpoint_paths. Manually adding it.\n" + ] + } + ], + "source": [ + "if(str(test_mode)==\"\"):\n", + " output_text_file=log_dir + \"/\" + str(mode) + \"_\" + str(gamma) + \"_\" + str(lamda) + \"_\" + str(q)+\".txt\"\n", + "else: \n", + " output_text_file=log_dir + \"/\" + str(test_mode) + \"_\" + str(mode) + \"_\" + str(gamma) + \"_\" + str(lamda) + \"_\" + str(q)+\".txt\"\n", + "sys.stdout = open(output_text_file,\"w\")\n", + "if(test_mode!=\"\"):\n", + " mode = test_mode\n", + "if mode not in ['learn2reweight', 'implication', 'f_d', 'pr_loss', 'gcross', 'label_snorkel', 'pure_snorkel', 'gcross_snorkel', 'test_f', 'test_w', 'test_all']:\n", + " raise ValueError('Invalid run mode ' + mode)\n", + "\n", + "data_feeder = DataFeeder(d_pickle, \n", + " U_pickle, \n", + " validation_pickle,\n", + " json_file,\n", + " shuffle_batches, \n", + " num_load_d, \n", + " num_load_U, \n", + " num_classes, \n", + " f_d_class_sampling, \n", + " min_rule_coverage, \n", + " rule_classes, \n", + " num_load_validation, \n", + " f_d_batch_size, \n", + " f_d_U_batch_size, \n", + " test_w_batch_size,\n", + " out_dir=output_dir)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "92840867", + "metadata": {}, + "outputs": [], + "source": [ + " num_features, num_classes, num_rules, num_rules_to_train = data_feeder.get_features_classes_rules()" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "5fd1f51a", + "metadata": {}, + "outputs": [], + "source": [ + "print(\"Number of features: \", num_features)\n", + "print(\"Number of classes: \",num_classes)\n", + "print(\"Print num of rules to train: \", num_rules_to_train)\n", + "print(\"Print num of rules: \", num_rules)\n", + "print(\"\\n\\n\")" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "e5ca4b7e", + "metadata": {}, + "outputs": [], + "source": [ + "rule_classes = data_feeder.rule_classes" + ] + }, + { + "cell_type": "markdown", + "id": "95e973e0", + "metadata": {}, + "source": [ + "### **Initializing the rule network and classification network of the algorithm**" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "d3dc90ae", + "metadata": {}, + "outputs": [], + "source": [ + "w_network = networks.w_network_fully_connected #rule network - CHANGE config in w_network_fully_connected of my_networks - DONE\n", + "f_network = networks.f_network_fully_connected #classification network - CHANGE config in f_network_fully_connected of my_networks - DONE\n", + " " + ] + }, + { + "cell_type": "markdown", + "id": "f4f8dff5", + "metadata": {}, + "source": [ + "### **Creating a High Level Supervision Network Object to be trained and tested**" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "1882b85c", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/legacy_tf_layers/core.py:171: UserWarning: `tf.layers.dense` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dense` instead.\n", + " warnings.warn('`tf.layers.dense` is deprecated and '\n", + "/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer_v1.py:1719: UserWarning: `layer.apply` is deprecated and will be removed in a future version. Please use `layer.__call__` method instead.\n", + " warnings.warn('`layer.apply` is deprecated and '\n" + ] + } + ], + "source": [ + "tf.reset_default_graph()\n", + "hls = HighLevelSupervisionNetwork(\n", + " num_features,\n", + " num_classes,\n", + " num_rules,\n", + " num_rules_to_train,\n", + " rule_classes,\n", + " w_network,\n", + " f_network,\n", + " f_d_epochs, \n", + " f_d_U_epochs, \n", + " f_d_adam_lr, \n", + " f_d_U_adam_lr, \n", + " dropout_keep_prob, \n", + " f_d_metrics_pickle, \n", + " f_d_U_metrics_pickle, \n", + " early_stopping_p, \n", + " f_d_primary_metric, \n", + " mode, \n", + " data_dir, \n", + " tensorboard_dir, \n", + " checkpoint_dir, \n", + " checkpoint_load_mode, \n", + " gamma, \n", + " lamda,\n", + " raw_d_x=data_feeder.raw_d.x, #instances from the \"d\" set\n", + " raw_d_L=data_feeder.raw_d.L) #labels from the \"d\" set\n", + "\n", + "float_formatter = lambda x: \"%.3f\" % x # Output 3 digits after decimal point in numpy arrays\n", + "np.set_printoptions(formatter={'float_kind':float_formatter})" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "e41b23e9", + "metadata": {}, + "outputs": [], + "source": [ + "print('Run mode is ' + mode)" + ] + }, + { + "cell_type": "markdown", + "id": "9fd904b0", + "metadata": {}, + "source": [ + "### **Train and Test on the hls object**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "89a2e277", + "metadata": {}, + "outputs": [], + "source": [ + "if mode == 'f_d':\n", + " print('training f on d')\n", + " hls.train.train_f_on_d(data_feeder, f_d_epochs)\n", + "elif mode[:4]!=\"test\":\n", + " print(mode+\" training started\")\n", + " hls.train.train_f_on_d_U(data_feeder, f_d_U_epochs, loss_type=mode)\n", + " print(mode+\" training ended\")\n", + "elif mode == 'test_f':\n", + " print('Running test_f')\n", + " hls.test.test_f(data_feeder, log_output=True, \n", + " save_filename=f_infer_out_pickle, \n", + " use_joint_f_w=use_joint_f_w)\n", + "elif mode == 'test_w': # use only if train_mode = implication or train_mode = pr_loss\n", + " print('Running test_w')\n", + " hls.test.test_w(data_feeder, log_output=True, save_filename=w_infer_out_pickle+\"_test\")\n", + "elif mode == 'test_all': # use only if train_mode = implication or train_mode = pr_loss\n", + " print('Running all tests')\n", + " print('\\ninference on f network ...\\n')\n", + " hls.test.test_f(data_feeder, log_output=True, \n", + " save_filename=f_infer_out_pickle,\n", + " use_joint_f_w=use_joint_f_w)\n", + " print('\\ninference on w network...')\n", + " print('we only test on instances covered by atleast one rule\\n')\n", + " hls.test.test_w(data_feeder, log_output=True, save_filename=w_infer_out_pickle+\"_test\")\n", + "else:\n", + " assert not \"Invalid mode string: %s\" % mode\n", + "\n", + "sys.stdout.close()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/SMS_SPAM/.ipynb_checkpoints/sms_jl-checkpoint.ipynb b/notebooks/SMS_SPAM/.ipynb_checkpoints/sms_jl-checkpoint.ipynb new file mode 100644 index 0000000..01fc659 --- /dev/null +++ b/notebooks/SMS_SPAM/.ipynb_checkpoints/sms_jl-checkpoint.ipynb @@ -0,0 +1,920 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ***End to End tutorial for SMS_SPAM labeling using JL:***\n", + "**The paper, documentation, colab notebook can be found here:** [Paper](https://arxiv.org/abs/2008.09887), [Documentation](https://spear-decile.readthedocs.io/en/latest/#joint-learning-jl), [Colab](https://colab.research.google.com/drive/1HqkqQ8ytWjP9on3du-vVB07IQvo8Li3W?usp=sharing)" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "#pip install" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "'''\n", + "User don't need to include this cell to use the package\n", + "'''\n", + "import sys\n", + "sys.path.append('../../') " + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ***Defining an Enum to hold labels:***\n", + "### **Representation of class Labels**\n", + "\n", + "

All the class labels for which we define labeling functions are encoded in enum and utilized in our next tasks. Make sure not to define an Abstain(Labeling function(LF) not deciding anything) class inside this Enum, instead import the ABSTAIN object as used later in LF section.

\n", + "\n", + "

SPAM dataset contains 2 classes i.e HAM and SPAM. Note that the numbers we associate can be anything but it is suggested to use a continuous numbers from 0 to number_of_classes-1

\n", + "\n", + "

**Note that even though this example is a binary classification, this(SPEAR) library supports multi-class classification**

" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "import enum\n", + "\n", + "# enum to hold the class labels\n", + "class ClassLabels(enum.Enum):\n", + " SPAM = 1\n", + " HAM = 0\n", + "\n", + "THRESHOLD = 0.8" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ***Defining preprocessors, continuous_scorers, labeling functions:***\n", + "During labeling the unlabelled data we lookup for few keywords to assign a class SMS.\n", + "\n", + "Example : *If a message contains apply or buy in it then most probably the message is spam*" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "trigWord1 = {\"free\",\"credit\",\"cheap\",\"apply\",\"buy\",\"attention\",\"shop\",\"sex\",\"soon\",\"now\",\"spam\"}\n", + "trigWord2 = {\"gift\",\"click\",\"new\",\"online\",\"discount\",\"earn\",\"miss\",\"hesitate\",\"exclusive\",\"urgent\"}\n", + "trigWord3 = {\"cash\",\"refund\",\"insurance\",\"money\",\"guaranteed\",\"save\",\"win\",\"teen\",\"weight\",\"hair\"}\n", + "notFreeWords = {\"toll\",\"Toll\",\"freely\",\"call\",\"meet\",\"talk\",\"feedback\"}\n", + "notFreeSubstring = {\"not free\",\"you are\",\"when\",\"wen\"}\n", + "firstAndSecondPersonWords = {\"I\",\"i\",\"u\",\"you\",\"ur\",\"your\",\"our\",\"we\",\"us\",\"youre\"}\n", + "thirdPersonWords = {\"He\",\"he\",\"She\",\"she\",\"they\",\"They\",\"Them\",\"them\",\"their\",\"Their\"}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Declaration of a simple preprocessor function**\n", + "\n", + "\n", + "For most of the tasks in NLP, computer vivsion instead of using the raw datapoint we preprocess the datapoint and then label it. Preprocessor functions are used to preprocess an instance before labeling it. We use **`@preprocessor(name,resources)`** decorator to declare a function as preprocessor." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "from spear.labeling import preprocessor\n", + "\n", + "\n", + "@preprocessor(name = \"LOWER_CASE\")\n", + "def convert_to_lower(x):\n", + " return x.lower().strip()\n", + "\n", + "lower = convert_to_lower(\"RED\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Some Labeling function(LF) definitions**\n", + "Below are some examples on how to define LFs and continuous LFs(CLFs). To get the continuous score for a CLF, we need to define a function with continuous_scorer decorator(just like labeling_function decorator) and pass it to a CLF as displayed below. Also note how the continuous score can be used in CLF. Note that the word_similarity is the function with continuous_scorer decorator and is written in con_scorer file(this file is not a part of package) in same folder." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "model loading\n", + "model loaded\n" + ] + } + ], + "source": [ + "from spear.labeling import labeling_function, ABSTAIN\n", + "\n", + "from helper.con_scorer import word_similarity\n", + "import re\n", + "\n", + "\n", + "@preprocessor()\n", + "def convert_to_lower(x):\n", + " return x.lower().strip()\n", + "\n", + "\n", + "@labeling_function(resources=dict(keywords=trigWord1),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def LF1(c,**kwargs): \n", + " if len(kwargs[\"keywords\"].intersection(c.split())) > 0:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(resources=dict(keywords=trigWord2),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def LF2(c,**kwargs):\n", + " if len(kwargs[\"keywords\"].intersection(c.split())) > 0:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(resources=dict(keywords=trigWord3),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def LF3(c,**kwargs):\n", + " if len(kwargs[\"keywords\"].intersection(c.split())) > 0:\n", + " return ClassLabels.SPAM \n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(resources=dict(keywords=notFreeWords),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def LF4(c,**kwargs):\n", + " if \"free\" in c.split() and len(kwargs[\"keywords\"].intersection(c.split()))>0:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(resources=dict(keywords=notFreeSubstring),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def LF5(c,**kwargs):\n", + " for pattern in kwargs[\"keywords\"]: \n", + " if \"free\" in c.split() and re.search(pattern,c, flags= re.I):\n", + " return ClassLabels.HAM\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(resources=dict(keywords=firstAndSecondPersonWords),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def LF6(c,**kwargs):\n", + " if \"free\" in c.split() and len(kwargs[\"keywords\"].intersection(c.split()))>0:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "\n", + "@labeling_function(resources=dict(keywords=thirdPersonWords),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def LF7(c,**kwargs):\n", + " if \"free\" in c.split() and len(kwargs[\"keywords\"].intersection(c.split()))>0:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(label=ClassLabels.SPAM)\n", + "def LF8(c,**kwargs):\n", + " if (sum(1 for ch in c if ch.isupper()) > 6):\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=trigWord1),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def CLF1(c,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=trigWord2),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def CLF2(c,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=trigWord3),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def CLF3(c,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=notFreeWords),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def CLF4(c,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=notFreeSubstring),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def CLF5(c,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=firstAndSecondPersonWords),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def CLF6(c,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=thirdPersonWords),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def CLF7(c,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=lambda x: 1-np.exp(float(-(sum(1 for ch in x if ch.isupper()))/2)),label=ClassLabels.SPAM)\n", + "def CLF8(c,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ***Accumulating all LFs into rules, an LFset(a class) object:***\n", + "### **Importing LFSet and passing LFs we defined, to that class**" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "from spear.labeling import LFSet\n", + "\n", + "LFS = [LF1,\n", + " LF2,\n", + " LF3,\n", + " LF4,\n", + " LF5,\n", + " LF6,\n", + " LF7,\n", + " LF8,\n", + " CLF1,\n", + " CLF2,\n", + " CLF3,\n", + " CLF4,\n", + " CLF5,\n", + " CLF6,\n", + " CLF7,\n", + " CLF8\n", + " ]\n", + "\n", + "rules = LFSet(\"SPAM_LF\")\n", + "rules.add_lf_list(LFS)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ***Loading data:***\n", + "### **Load the data: X, X_feats, Y**\n", + "

Note that the utils below is not a part of package but is used to load the necessary data. User have to use some means(which doesn't matter) to load his data(X, X_feats, Y). X is the raw data that is to be passed to LFs, X_feats is feature matrix, of type numpy array and shape (num_instances, num_features) and Y are true labels(if available). Note that we except user to provide feature matrix and feature matrix is not needed in Cage algorithm but it is needed in JL algorithm.

" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "from helper.utils import load_data_to_numpy, get_various_data\n", + "\n", + "X, X_feats, Y = load_data_to_numpy()\n", + "\n", + "validation_size = 100\n", + "test_size = 400\n", + "L_size = 100\n", + "U_size = 4500\n", + "n_lfs = len(rules.get_lfs())\n", + "\n", + "X_V, Y_V, X_feats_V,_, X_T, Y_T, X_feats_T,_, X_L, Y_L, X_feats_L,_, X_U, X_feats_U,_ = get_various_data(X, Y,\\\n", + " X_feats, n_lfs, validation_size, test_size, L_size, U_size)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ***Labeling data:***\n", + "### **Paths**\n", + "* path_json: path to json file generated by PreLabels\n", + "* V_path_pkl: path to pkl file generated by PreLabels containing the validation data with true labels\n", + "* L_path_pkl: path to pkl file generated by PreLabels containing the labeled data with true labels\n", + "* T_path_pkl: path to pkl file generated by PreLabels containing the test data with true labels\n", + "* U_path_pkl: path to pkl file generated by PreLabels containing the unlabelled data without true labels\n", + "* log_path: path to save the log which is generated during the algorithm\n", + "* params_path: path to save parameters of model\n", + "\n", + "

Difference between test and labeled data is that labeled data may be used in the algorithm(JL uses it while Cage doesn't) but test data isn't. Make sure that the directory of the files(in above paths) exists. Note that any existing contents in pickle files will be erased.

" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "path_json = 'data_pipeline/JL/sms_json.json'\n", + "V_path_pkl = 'data_pipeline/JL/sms_pickle_V.pkl' #validation data - have true labels\n", + "T_path_pkl = 'data_pipeline/JL/sms_pickle_T.pkl' #test data - have true labels\n", + "L_path_pkl = 'data_pipeline/JL/sms_pickle_L.pkl' #Labeled data - have true labels\n", + "U_path_pkl = 'data_pipeline/JL/sms_pickle_U.pkl' #unlabelled data - don't have true labels\n", + "\n", + "log_path_jl_1 = 'log/JL/sms_log_1.txt' #jl is an algorithm, can be found below\n", + "params_path = 'params/JL/sms_params.pkl' #file path to store parameters of JL, used below" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Importing PreLabels class and using it to label data**\n", + "Json file should be generated only once as shown below.\n", + "

Note: We don't pass gold_lables(or true labels) to the 4th PreLabels class which generates labels to unlabelled data(U).

" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 100/100 [00:08<00:00, 12.48it/s]\n", + "100%|██████████| 400/400 [00:37<00:00, 10.69it/s]\n", + "100%|██████████| 100/100 [00:11<00:00, 8.94it/s]\n", + "100%|██████████| 4500/4500 [07:36<00:00, 9.86it/s]\n" + ] + } + ], + "source": [ + "from spear.labeling import PreLabels\n", + "\n", + "sms_noisy_labels = PreLabels(name=\"sms\",\n", + " data=X_V,\n", + " gold_labels=Y_V,\n", + " data_feats=X_feats_V,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "sms_noisy_labels.generate_pickle(V_path_pkl)\n", + "sms_noisy_labels.generate_json(path_json) #generating json files once is enough\n", + "\n", + "sms_noisy_labels = PreLabels(name=\"sms\",\n", + " data=X_T,\n", + " gold_labels=Y_T,\n", + " data_feats=X_feats_T,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "sms_noisy_labels.generate_pickle(T_path_pkl)\n", + "\n", + "sms_noisy_labels = PreLabels(name=\"sms\",\n", + " data=X_L,\n", + " gold_labels=Y_L,\n", + " data_feats=X_feats_L,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "sms_noisy_labels.generate_pickle(L_path_pkl)\n", + "\n", + "sms_noisy_labels = PreLabels(name=\"sms\",\n", + " data=X_U,\n", + " rules=rules,\n", + " data_feats=X_feats_U,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2) #note that we don't pass gold_labels here, for the unlabelled data\n", + "sms_noisy_labels.generate_pickle(U_path_pkl)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ***Accessing labeled data:***\n", + "### **Importing and the use of get_data and get_classes**\n", + "

These functions can be used to extract data from pickle files and json file respectively. Note that these are the files generated using PreLabels.

\n", + "

For detailed contents of output, please refer documentation.

" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of elements in data list: 10\n", + "Shape of feature matrix: (4500, 1024)\n", + "Shape of labels matrix: (4500, 16)\n", + "Shape of continuous scores matrix : (4500, 16)\n", + "Total number of classes: 2\n", + "Classes dictionary in json file(modified to have integer keys): {1: 'SPAM', 0: 'HAM'}\n" + ] + } + ], + "source": [ + "from spear.utils import get_data, get_classes\n", + "\n", + "data_U = get_data(path = U_path_pkl, check_shapes=True)\n", + "#check_shapes being True(above), asserts for relative shapes of arrays in pickle file\n", + "print(\"Number of elements in data list: \", len(data_U))\n", + "print(\"Shape of feature matrix: \", data_U[0].shape)\n", + "print(\"Shape of labels matrix: \", data_U[1].shape)\n", + "print(\"Shape of continuous scores matrix : \", data_U[6].shape)\n", + "print(\"Total number of classes: \", data_U[9])\n", + "\n", + "classes = get_classes(path = path_json)\n", + "print(\"Classes dictionary in json file(modified to have integer keys): \", classes)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ***Joint Learning(JL) Algorithm:***\n", + "## **Importing JL class (the algorithm) and declaring an object of it**\n", + "JL algoritm needs the four types of data:(all this data should be labeled using LFs via PreLabels class)\n", + "* Unlabeled data(doesn't have true/gold labels)\n", + "* labeled data(have true/gold labels)\n", + "* validation data(have true/gold labels)\n", + "* test data(have true/gold labels)\n", + "\n", + "

All this data is compulsory for training(passed in fit_and_predict functions). Note that the amount of labeled or validation data can be small, for example they can be of the order of 100 each. Also refer subset selection to find the subset of the data, that is available with you, to label(using a trustable means/SMEs) and use it as 'labeled data' so that the data complements the LFs.

\n", + "

The member functions of JL can be choosen to return fm(feature model) or gm(graphical model) predictions. It is highly advised to use the predictions of fm.

\n", + "

Note: Multiple calls to fit_* functions will train parameters continuously ie, parameters are not reinitialised in fit_* functions. So, to train large data, one can call fit_* functions repeatedly on smaller chunks. Also, in order to perform multiple runs over the algorithm, one need to reinitialise paramters(by creating an object of JL) at the start of each run.

" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "from spear.jl import JL\n", + "\n", + "n_features = 1024\n", + "n_hidden = 512\n", + "feature_model = 'nn'\n", + "'''\n", + "'nn' is neural network. other alternative is 'lr'(logistic regression) which doesn't need n_hidden to be passed\n", + "during initialisation.\n", + "''' \n", + "\n", + "jl = JL(path_json = path_json, n_lfs = n_lfs, n_features = n_features, feature_model = feature_model, \\\n", + " n_hidden = n_hidden)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **fit_and_predict_proba function of JL class with two return values**\n", + "Here return_gm argument is True which returns predictions/probabilities from graphical model(Cage algorithm) along with feature model. Also note that here test data(path_T) is compulsory and metric_avg is just one value(instead of list as in Cage). The output(probs) is a numpy matrix of shape (num_instances, num_classes) having the probability of a particular instance being that class. \n", + "

Here the order of classes along a row for any instance is the ascending order of values used in enum defined before to hold labels.

\n", + "

For more details about arguments, please refer documentation; same should be the case for any of the member functions used from here on.

" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 19%|█▉ | 19/100 [01:09<04:56, 3.66s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "early stopping at epoch: 19\tbest_epoch: 8\n", + "score used: f1_score\n", + "best_gm_val_score:0.7272727272727272\tbest_fm_val_score:0.8292682926829268\n", + "best_gm_test_score:0.5540540540540541\tbest_fm_test_score:0.8264462809917356\n", + "best_gm_test_precision:0.4270833333333333\tbest_fm_test_precision:0.7246376811594203\n", + "best_gm_test_recall:0.7884615384615384\tbest_fm_test_recall:0.9615384615384616\n", + "probs_fm shape: (4500, 2)\n", + "probs_gm shape: (4500, 2)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "loss_func_mask = [1,1,1,1,1,1,1] \n", + "'''\n", + "One can keep 0s in places where he don't want the specific loss function to be part\n", + "the final loss function used in training. Refer documentation(spear.JL.core.JL) to understand\n", + "the which index of loss_func_mask refers to what loss function.\n", + "\n", + "Note: the loss_func_mask above may not be the optimal mask for sms dataset. We have to try\n", + " some other masks too, to find the best one that gives good accuracies.\n", + "'''\n", + "batch_size = 150\n", + "lr_fm = 0.0005\n", + "lr_gm = 0.01\n", + "use_accuracy_score = False\n", + "\n", + "jl = JL(path_json = path_json, n_lfs = n_lfs, n_features = n_features, feature_model = feature_model, \\\n", + " n_hidden = n_hidden)\n", + "\n", + "probs_fm, probs_gm = jl.fit_and_predict_proba(path_L = L_path_pkl, path_U = U_path_pkl, path_V = V_path_pkl, \\\n", + " path_T = T_path_pkl, loss_func_mask = loss_func_mask, batch_size = batch_size, lr_fm = lr_fm, lr_gm = \\\n", + " lr_gm, use_accuracy_score = use_accuracy_score, path_log = log_path_jl_1, return_gm = True, n_epochs = \\\n", + " 100, start_len = 7,stop_len = 10, is_qt = True, is_qc = True, qt = 0.9, qc = 0.85, metric_avg = 'binary')\n", + "\n", + "labels = np.argmax(probs_fm, 1)\n", + "print(\"probs_fm shape: \", probs_fm.shape)\n", + "print(\"probs_gm shape: \", probs_gm.shape)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **fit_and_predict_proba function of JL class with one return value**\n", + "Here return_gm argument is False which returns predictions only from feature model. Also note the feature_model used here is 'lr'(logistic regression). The output(probs) is a numpy matrix of shape (num_instances, num_classes) having the probability of a particular instance being that class.\n", + "

Here the order of classes along a row for any instance is the ascending order of values used in enum defined before to hold labels.

" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 20%|██ | 20/100 [00:39<02:36, 1.95s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "early stopping at epoch: 20\tbest_epoch: 20\n", + "score used: f1_score\n", + "best_gm_val_score:0.6818181818181819\tbest_fm_val_score:0.9714285714285714\n", + "best_gm_test_score:0.563758389261745\tbest_fm_test_score:0.8448275862068965\n", + "best_gm_test_precision:0.4329896907216495\tbest_fm_test_precision:0.765625\n", + "best_gm_test_recall:0.8076923076923077\tbest_fm_test_recall:0.9423076923076923\n", + "probs_fm shape: (4500, 2)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "feature_model = 'lr' #in this case, n_hidden need not be passed as an argument\n", + "\n", + "jl = JL(path_json = path_json, n_lfs = n_lfs, n_features = n_features, feature_model = feature_model)\n", + "\n", + "probs_fm = jl.fit_and_predict_proba(path_L = L_path_pkl, path_U = U_path_pkl, path_V = V_path_pkl, \\\n", + " path_T = T_path_pkl, loss_func_mask = loss_func_mask, batch_size = batch_size, lr_fm = lr_fm, lr_gm = \\\n", + " lr_gm, use_accuracy_score = use_accuracy_score, path_log = log_path_jl_1, return_gm = False, n_epochs = \\\n", + " 100, start_len = 7,stop_len = 10, is_qt = True, is_qc = True, qt = 0.9, qc = 0.85, metric_avg = 'binary')\n", + "\n", + "labels = np.argmax(probs_fm, 1)\n", + "print(\"probs_fm shape: \", probs_fm.shape)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **fit_and_predict function of JL class**\n", + "The return_gm argument is set to True. The output(probs) is a numpy matrix of shape (num_instances,) containing integers(because need_strings is False), having the classes of each instance." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 21%|██ | 21/100 [01:11<04:27, 3.38s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "early stopping at epoch: 21\tbest_epoch: 10\n", + "score used: f1_score\n", + "best_gm_val_score:0.7272727272727272\tbest_fm_val_score:0.7391304347826086\n", + "best_gm_test_score:0.5540540540540541\tbest_fm_test_score:0.6944444444444445\n", + "best_gm_test_precision:0.4270833333333333\tbest_fm_test_precision:0.5434782608695652\n", + "best_gm_test_recall:0.7884615384615384\tbest_fm_test_recall:0.9615384615384616\n", + "labels_fm shape: (4500,)\n", + "labels_gm shape: (4500,)\n", + "\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "feature_model = 'nn' #resetting feature_model as 'nn'(neural network) for further trainings\n", + "\n", + "jl = JL(path_json = path_json, n_lfs = n_lfs, n_features = n_features, feature_model = feature_model, \\\n", + " n_hidden = n_hidden)\n", + "\n", + "labels_fm, labels_gm = jl.fit_and_predict(path_L = L_path_pkl, path_U = U_path_pkl, path_V = V_path_pkl, \\\n", + " path_T = T_path_pkl, loss_func_mask = loss_func_mask, batch_size = batch_size, lr_fm = lr_fm, lr_gm = \\\n", + " lr_gm, use_accuracy_score = use_accuracy_score, path_log = log_path_jl_1, return_gm = True, n_epochs = \\\n", + " 100, start_len = 7,stop_len = 10, is_qt = True, is_qc = True, qt = 0.9, qc = 0.85, metric_avg = 'binary', \\\n", + " need_strings = False)\n", + "\n", + "print(\"labels_fm shape: \", labels_fm.shape)\n", + "print(\"labels_gm shape: \", labels_gm.shape)\n", + "print(type(labels_fm[0]))\n", + "print(type(labels_gm[0]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **fit_and_predict function of JL class**\n", + "The return_gm argument is set to True. The output(probs) is a numpy matrix of shape (num_instances,) containing strings(because need_strings is True), having the classes of each instance." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 19%|█▉ | 19/100 [01:02<04:24, 3.27s/it]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "early stopping at epoch: 19\tbest_epoch: 9\n", + "score used: f1_score\n", + "best_gm_val_score:0.6976744186046512\tbest_fm_val_score:0.7391304347826086\n", + "best_gm_test_score:0.54421768707483\tbest_fm_test_score:0.7299270072992701\n", + "best_gm_test_precision:0.42105263157894735\tbest_fm_test_precision:0.5882352941176471\n", + "best_gm_test_recall:0.7692307692307693\tbest_fm_test_recall:0.9615384615384616\n", + "labels_fm shape: (4500,)\n", + "labels_gm shape: (4500,)\n", + "\n", + "\n" + ] + } + ], + "source": [ + "jl = JL(path_json = path_json, n_lfs = n_lfs, n_features = n_features, feature_model = feature_model, \\\n", + " n_hidden = n_hidden)\n", + "\n", + "labels_fm, labels_gm = jl.fit_and_predict(path_L = L_path_pkl, path_U = U_path_pkl, path_V = V_path_pkl, \\\n", + " path_T = T_path_pkl, loss_func_mask = loss_func_mask, batch_size = batch_size, lr_fm = lr_fm, lr_gm = \\\n", + " lr_gm, use_accuracy_score = use_accuracy_score, path_log = log_path_jl_1, return_gm = True, n_epochs = \\\n", + " 100, start_len = 7,stop_len = 10, is_qt = True, is_qc = True, qt = 0.9, qc = 0.85, metric_avg = 'binary', \\\n", + " need_strings = True)\n", + "\n", + "print(\"labels_fm shape: \", labels_fm.shape)\n", + "print(\"labels_gm shape: \", labels_gm.shape)\n", + "print(type(labels_fm[0]))\n", + "print(type(labels_gm[0]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Save parameters**\n", + "

Make sure that the directory of save_path file exists. Note that any existing contents in pickle file will be erased.

" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "jl.save_params(save_path = params_path)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Load parameters**" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "jl_2 = JL(path_json = path_json, n_lfs = n_lfs, n_features = n_features, feature_model = feature_model, \\\n", + " n_hidden = n_hidden)\n", + "jl_2.load_params(load_path = params_path)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **predict_fm/gm_proba functions of JL class**\n", + "The output(probs_test) is a numpy matrix of shape (num_instances, num_classes) having the probability of a particular instance being that class.\n", + "

Here the order of classes along a row for any instance is the ascending order of values used in enum defined before to hold labels.

\n", + "

Note that predict_fm_proba takes feature matrix(can also be obtained from pickle file using get_data()) as argument while predict_gm_proba takes pickle file(containing labels given by LFs) as argument.

" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warning: Predict is used before training any paramters in JL class. Hope you have loaded parameters.\n", + "Warning: Predict is used before training any paramters in JL class. Hope you have loaded parameters.\n", + "probs_fm_test shape: (400, 2)\n", + "probs_gm_test shape: (400, 2)\n" + ] + } + ], + "source": [ + "probs_fm_test = jl_2.predict_fm_proba(x_test = X_feats_T)\n", + "probs_gm_test = jl_2.predict_gm_proba(path_test = T_path_pkl, qc = 0.85)\n", + "\n", + "print(\"probs_fm_test shape: \", probs_fm_test.shape)\n", + "print(\"probs_gm_test shape: \", probs_gm_test.shape)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **predict_fm/gm functions of JL class**\n", + "The output(probs) is a numpy matrix of shape (num_instances,) containing integers(strings) if need_strings is Flase(True), having the classes of each instance. Just the use case with need_strings as False is displayed here. \n", + "

Note that predict_fm takes feature matrix(can also be obtained from pickle file using get_data()) as argument while predict_gm takes pickle file(containing labels given by LFs) as argument.

" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warning: Predict is used before training any paramters in JL class. Hope you have loaded parameters.\n", + "Warning: Predict is used before training any paramters in JL class. Hope you have loaded parameters.\n", + "labels_fm_test shape: (400,)\n", + "labels_gm_test shape: (400,)\n", + "accuracy_score of gm: 0.8325 | fm: 0.9075\n", + "f1_score of gm: 0.54421768707483 | fm: 0.7299270072992701\n" + ] + } + ], + "source": [ + "labels_fm_test = jl_2.predict_fm(x_test = X_feats_T, need_strings=False)\n", + "labels_gm_test = jl_2.predict_gm(path_test = T_path_pkl, qc = 0.85, need_strings=False)\n", + "\n", + "print(\"labels_fm_test shape: \", labels_fm_test.shape)\n", + "print(\"labels_gm_test shape: \", labels_gm_test.shape)\n", + "\n", + "from sklearn.metrics import accuracy_score, f1_score\n", + "\n", + "#Y_T is true labels of test data, type is numpy array of shape (num_instances,)\n", + "print(\"accuracy_score of gm: \", accuracy_score(Y_T, labels_gm_test), \"| fm: \", accuracy_score(Y_T, labels_fm_test))\n", + "print(\"f1_score of gm: \", f1_score(Y_T, labels_gm_test, average = 'binary'), \"| fm: \", f1_score(Y_T, labels_fm_test, average = 'binary'))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Converting numpy array of integers to enums**\n", + "The below utility from spear can help convert return values of predict_fm, predict_gm(obtained when need_strings is Flase) to a numpy array of enums." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "from spear.utils import get_enum\n", + "\n", + "probs_fm_test_enum = get_enum(np_array = labels_fm_test, enm = ClassLabels) \n", + "#the second argument is the Enum class defined at beginning\n", + "print(type(probs_fm_test_enum[0]))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/notebooks/SMS_SPAM/.ipynb_checkpoints/sms_labeling-checkpoint.ipynb b/notebooks/SMS_SPAM/.ipynb_checkpoints/sms_labeling-checkpoint.ipynb new file mode 100644 index 0000000..319d682 --- /dev/null +++ b/notebooks/SMS_SPAM/.ipynb_checkpoints/sms_labeling-checkpoint.ipynb @@ -0,0 +1,861 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# **SMS SPAM DETECTION** " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Installation**" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import sys\n", + "sys.path.append('../../')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Load SMS Dataset**\n", + "\n", + "The SMS Spam Collection is a set of SMS tagged messages that have been collected for SMS Spam research. It contains one set of SMS messages in English of 5,574 messages, tagged acording being ham (legitimate) or spam. We have used **ELMo** embeddings as features to represent sms sentences.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
SMS TEXT
0Go until jurong point, crazy.. Available only ...
1Ok lar... Joking wif u oni...\\n
2Free entry in 2 a wkly comp to win FA Cup fina...
3U dun say so early hor... U c already then say...
4Nah I don't think he goes to usf, he lives aro...
5FreeMsg Hey there darling it's been 3 week's n...
6Even my brother is not like to speak with me. ...
7As per your request 'Melle Melle (Oru Minnamin...
8WINNER!! As a valued network customer you have...
9Had your mobile 11 months or more? U R entitle...
\n", + "
" + ], + "text/plain": [ + " SMS TEXT\n", + "0 Go until jurong point, crazy.. Available only ...\n", + "1 Ok lar... Joking wif u oni...\\n\n", + "2 Free entry in 2 a wkly comp to win FA Cup fina...\n", + "3 U dun say so early hor... U c already then say...\n", + "4 Nah I don't think he goes to usf, he lives aro...\n", + "5 FreeMsg Hey there darling it's been 3 week's n...\n", + "6 Even my brother is not like to speak with me. ...\n", + "7 As per your request 'Melle Melle (Oru Minnamin...\n", + "8 WINNER!! As a valued network customer you have...\n", + "9 Had your mobile 11 months or more? U R entitle..." + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from helper.utils import load_data_to_numpy\n", + "import numpy as np\n", + "import pandas as pd\n", + "\n", + "X, X_feats, Y = load_data_to_numpy()\n", + "\n", + "df = pd.DataFrame({'SMS TEXT':X})\n", + "result = df.head(10)\n", + "display(result)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "### **Representation of class Labels**\n", + "\n", + "

All the class labels for which we define labeling functions are encoded in enum and utilized in our next tasks

\n", + "\n", + "

SPAM dataset contains 2 classes i.e HAM and SPAM

" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "import enum\n", + "\n", + "# enum to hold the class labels\n", + "class ClassLabels(enum.Enum):\n", + " SPAM = 1\n", + " HAM = 0\n", + "\n", + "THRESHOLD = 0.8" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "During labeling the unlabelled data we lookup for few keywords to assign a class SMS.\n", + "\n", + "Example : *If a message contains apply or buy in it then most probably the message is spam*" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "trigWord1 = {\"free\",\"credit\",\"cheap\",\"apply\",\"buy\",\"attention\",\"shop\",\"sex\",\"soon\",\"now\",\"spam\"}\n", + "trigWord2 = {\"gift\",\"click\",\"new\",\"online\",\"discount\",\"earn\",\"miss\",\"hesitate\",\"exclusive\",\"urgent\"}\n", + "trigWord3 = {\"cash\",\"refund\",\"insurance\",\"money\",\"guaranteed\",\"save\",\"win\",\"teen\",\"weight\",\"hair\"}\n", + "notFreeWords = {\"toll\",\"Toll\",\"freely\",\"call\",\"meet\",\"talk\",\"feedback\"}\n", + "notFreeSubstring = {\"not free\",\"you are\",\"when\",\"wen\"}\n", + "firstAndSecondPersonWords = {\"I\",\"i\",\"u\",\"you\",\"ur\",\"your\",\"our\",\"we\",\"us\",\"youre\"}\n", + "thirdPersonWords = {\"He\",\"he\",\"She\",\"she\",\"they\",\"They\",\"Them\",\"them\",\"their\",\"Their\"}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Labeling Functions**\n", + "\n", + "#### Labeling functions are helpful for users to assign a class for an instance programatically. ####\n", + "\n", + "These labeling functions are heuristics which might yeild very noisy lables (or) abstains on many datapoints. Each labeling function is associated with a class and each labeling function can trigger on its corresponding class given an instance. We use **`@labeling_function(name,resources, preprocessor, label)`** decorator for declaring a labeling function. Before labeling an instance we can preprocess instance through preprocessors." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Declaration of simple labeling functions**" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "sampleLabels.red\n" + ] + } + ], + "source": [ + "from spear.labeling import labeling_function, ABSTAIN\n", + "\n", + "class sampleLabels(enum.Enum):\n", + " red = 1\n", + " green = 0\n", + "\n", + "@labeling_function(label=sampleLabels.red,name=\"SAMPLE_LABELING\")\n", + "def sample_labeling(x):\n", + " '''A sample labeling function which predicts red when x is \"red\"\n", + " label=1 argument in decorator indicates that this lf is corresponding to class red'''\n", + " if(x == \"red\"):\n", + " return sampleLabels.red\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "label, _ = sample_labeling(\"red\")\n", + "print(label)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Declaration of simple preprocessor functions**\n", + "\n", + "\n", + "For most of the tasks in NLP, computer vivsion instead of using the raw datapoint we preprocess the datapoint and then label it. Preprocessor functions are used to preprocess an instance before labeling it. We use **`@preprocessor(name,resources)`** decorator to declare a function as preprocessor." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "red\n" + ] + } + ], + "source": [ + "from spear.labeling import preprocessor\n", + "\n", + "\n", + "@preprocessor(name = \"LOWER_CASE\")\n", + "def convert_to_lower(x):\n", + " return x.lower().strip()\n", + "\n", + "lower = convert_to_lower(\"RED\")\n", + "print(lower)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Declaration of continious scoring functions**\n", + "\n", + "Along with labeling instances with hard labels we aslo provide soft labels ranging from 0-1 for an instance.\n", + "\n", + "We use **`@continuous_scorer(name,resources)`** decorator to declare a function as continious scorer." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.2\n" + ] + } + ], + "source": [ + "from spear.labeling import continuous_scorer\n", + "\n", + "@continuous_scorer(name=\"INVERSE SCORER\")\n", + "def continious(x):\n", + " if x<1:\n", + " return x\n", + " else:\n", + " return 1/x\n", + " \n", + "\n", + "score = continious(5)\n", + "print(score)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Few labeling functions to annotate SMS Dataset**\n", + "\n", + "We have used glove embeddings as part of our continuos scorer to assign soft labels (similarity score).\n", + "\n", + "`word_similarity` is a function with `@continuous_scorer(name,resources)` decorator to calculate the similarity with trigger words." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "from spear.labeling import labeling_function, ABSTAIN, preprocessor\n", + "\n", + "from helper.con_scorer import word_similarity\n", + "import re\n", + "\n", + "\n", + "@preprocessor()\n", + "def convert_to_lower(x):\n", + " return x.lower().strip()\n", + "\n", + "\n", + "@labeling_function(resources=dict(keywords=trigWord1),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def LF1(x,**kwargs): \n", + " if len(kwargs[\"keywords\"].intersection(x.split())) > 0:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(resources=dict(keywords=trigWord2),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def LF2(x,**kwargs):\n", + " if len(kwargs[\"keywords\"].intersection(x.split())) > 0:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(resources=dict(keywords=trigWord3),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def LF3(x,**kwargs):\n", + " if len(kwargs[\"keywords\"].intersection(x.split())) > 0:\n", + " return ClassLabels.SPAM \n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(resources=dict(keywords=notFreeWords),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def LF4(x,**kwargs):\n", + " if \"free\" in x.split() and len(kwargs[\"keywords\"].intersection(x.split()))>0:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(resources=dict(keywords=notFreeSubstring),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def LF5(x,**kwargs):\n", + " for pattern in kwargs[\"keywords\"]: \n", + " if \"free\" in x.split() and re.search(pattern,x, flags= re.I):\n", + " return ClassLabels.HAM\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(resources=dict(keywords=firstAndSecondPersonWords),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def LF6(x,**kwargs):\n", + " if \"free\" in x.split() and len(kwargs[\"keywords\"].intersection(x.split()))>0:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "\n", + "@labeling_function(resources=dict(keywords=thirdPersonWords),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def LF7(x,**kwargs):\n", + " if \"free\" in x.split() and len(kwargs[\"keywords\"].intersection(x.split()))>0:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(label=ClassLabels.SPAM)\n", + "def LF8(x,**kwargs):\n", + " if (sum(1 for ch in x if ch.isupper()) > 6):\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "# @labeling_function()\n", + "# def LF9(x,**kwargs):\n", + "# return ClassLabels.HAM.value\n", + "\n", + "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=trigWord1),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def CLF1(x,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=trigWord2),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def CLF2(x,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=trigWord3),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def CLF3(x,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=notFreeWords),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def CLF4(x,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=notFreeSubstring),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def CLF5(x,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=firstAndSecondPersonWords),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def CLF6(x,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=thirdPersonWords),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def CLF7(x,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=lambda x: 1-np.exp(float(-(sum(1 for ch in x if ch.isupper()))/2)),label=ClassLabels.SPAM)\n", + "def CLF8(x,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "# @labeling_function()\n", + "# def CLF9(x,**kwargs):\n", + "# return ClassLabels.HAM\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **LFSet**\n", + "\n", + "Place holder for declared labeling functions. " + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "from spear.labeling import LFSet\n", + "\n", + "LFS = [LF1,\n", + " LF2,\n", + " LF3,\n", + " LF4,\n", + " LF5,\n", + " LF6,\n", + " LF7,\n", + " LF8,\n", + " CLF1,\n", + " CLF2,\n", + " CLF3,\n", + " CLF4,\n", + " CLF5,\n", + " CLF6,\n", + " CLF7,\n", + " CLF8\n", + " ]\n", + "\n", + "rules = LFSet(\"SPAM_LF\")\n", + "rules.add_lf_list(LFS)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Label the dataset with defined labeling functions**\n", + "\n", + "We can label the dataset using PreLabels by providing as set of labeling funtions. We can also provide the golden labels of the dataset if we already have some labeled data to evaluate our lf's.We provide both the soft labels and hard labels given an instance, although these labels can be very noisy we provide few frameworks to effectively use these rules to label unlabelled data." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 5574/5574 [05:52<00:00, 15.83it/s]\n" + ] + } + ], + "source": [ + "from spear.labeling import PreLabels\n", + "\n", + "R = np.zeros((X.shape[0],len(rules.get_lfs())))\n", + "\n", + "sms_noisy_labels = PreLabels(name=\"sms\",\n", + " data=X,\n", + " data_feats = X_feats,\n", + " gold_labels=Y,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "L,S = sms_noisy_labels.get_labels()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Analyse and refining labeling functions**\n", + "\n", + "Once we are done with labeling the dataset with given lf's, we can analyse the labeling functions we declared by calculating coverage, overlap, conflicts, empirical accuracy for of each lf which helps us to re-iterate on the process by refining new lf's." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "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HH744Tz00EM8++yzfOhDH2LKlCkAXHTRRZx99tlsttlm7Lbbbqy//vqcf/75LFu2jBNPPJEHH3wQgHPPPZe999677z8s9ap6T2Z05mRFRY0DFmfmAwARcRkwgZrnMWXmjTX1bwaO6dMe9oEbbriBYcOG8d73vheAIUOG8PWvf50xY8bw29/+lu9973vsvPPOAOy7776cc8457Ljjjpx88sncfffdvPDCC5xxxhlMmDCBSy65hKuuuoqnnnqKVatWcemll64+zpIlSzj22GP55z//CcD555/P//t//4/Zs2dz2mmnsfHGG7N48WLe9ra38a1vfYvM5Pjjj2fu3LlEBO973/v4yEc+0vcfkAaHek6idHCCRD2n3t9Os2fP5owzzmD48OHcfffdvPnNb+aHP/whF110EZdffjnXXHMNV199NV/84hdX72/27Nmcc845/PKXv+Spp57i5JNPXh13Tj/9dObMmcMzzzzD7rvvzs4778z06dN517veRXNzM6tWreKzn/0sEydObKv7GkDqOZnRmRMVjWYy1wUtQaW1q666innz5nHnnXfy6KOPsscee7DPPvswceJELr/8ct7xjnfw/PPPc/311/Ptb3+biy66iE033ZQ5c+bw3HPPsffee3PQQQcBcPvtt3P33Xevnj3p4osvZosttuCZZ55hjz324J3vfCfPPfccn//857n99tvZeOON2W+//dhtt90A+NCHPsRHPvIR3vKWt/Dggw9y8MEHs2jRor77kKS+tS3wUM16M7DnWuofD1xdsz4sIuYCK4GzMvPnPd7DPrBgwYKXxaZNNtmEUaNG8Y53vIPLL7+cz33uczz88MM8/PDDNDU18elPf5r99tuPiy++mMcff5xx48ZxwAEHAEUcuuuuu9hiiy3WOPv9yle+kmuvvZZhw4Zx//33c/TRRzN37lwAbr31VhYuXMj222/P+PHjueqqqxgzZgxLly7l7rvvBuDxxx/vk89DUv9R728ngDvuuIMFCxawzTbbsPfee/OHP/yBE044gZtuuolDDz2UI488co3YVOvzn/88m266KfPnFz/GV6xYwTvf+U7OP/985s2bB8CVV17JNttsw69+VZwYfeIJk3tVj/fM9aCbbrqJo48+miFDhrDVVlvx1re+lTlz5nDIIYdw44038txzz3H11Vezzz77sMEGG/Cb3/yG73//++y+++7sueeeLF++nPvvvx+AcePGrTEN7je/+U1222039tprLx566CHuv/9+br31Vt761reyxRZbsO6663LUUUetrn/dddcxdepUdt99dw477DCefPJJnnrqqT7/TKT+JiKOAZqA2nGH22dmE/Bu4NyIeE07badExNyImLts2bI+6G3P2XfffbniiisAuPzyyznyyCMB+M1vfsNZZ53F7rvvzr777suzzz67+or+gQceyBZbbPGyfb3wwgu8//3vZ5ddduGoo45i4cKXRrOOGzeOV7/61QwZMoSjjz6am266iVe/+tU88MADnHzyyfz6179mk0026YN3LKkK2vvtBEU8GTlyJOussw677757u4lbW6677jpOOumk1eubb775y+rssssuXHvttXzqU5/i97//PZtu2sND46U+YDLXBTvvvDO33XZbp+sPGzaMfffdl2uuuYYZM2asvoSfmZx33nnMmzePefPm8ec//3n1lblXvOIVq9vPnj2b6667jj/+8Y/ceeedvPGNb+xwmtwXX3yRm2++efW+ly5dykYbbdSFdytVwlJgu5r1kWXZGiLiAOAzwGGZ+VxLeWYuLf/7ADAbeGNbB8nM6ZnZlJlNI0aM6Lne95CddtrpZbHpySef5MEHH2SPPfZgyy235K677npZHLryyitXx4oHH3yQHXfcEVgzDtX6+te/zlZbbcWdd97J3Llz15hgpfXMbxHB5ptvzp133sm+++7LhRdeyAknnNCTb1tSBdT72wlg/fXXX708ZMiQHr9/d4cdduD2229nl1124dRTT+XMM8/s0f1LfcFkrgv2228/nnvuOaZPn7667K677mKzzTZjxowZrFq1imXLlvG73/2OcePGATBx4kS+973v8fvf/57x48cDcPDBB/Ptb3+bF154AYD77rtv9T0otZ544gk233xzNtxwQ+655x5uvvlmAPbYYw9++9vfsmLFClauXMmVV770TPaDDjqI8847b/V6y5ACaYCaA4yNiDERsR4wCVhjVsqIeCPwHYpE7pGa8s0jYv1yeTiwNzX32lXJ/vvvz9NPP833v/99AFatWsXHPvYxjjvuODbccEMmTpzIl7/8ZZ544gl23XVXoIhD5513HpkJFMOaOvLEE0+w9dZbs8466/CDH/yAVatWrd5266238uc//5kXX3yRGTNm8Ja3vIVHH32UF198kXe+85184Qtf4Pbbb++Fdy+pP+vKb6fuOPDAA7ngggtWr69YsQKAddddd/Xvrr/+9a9suOGGHHPMMXziE58wNqmSTOa6ICL42c9+xnXXXcdrXvMadt55Z0455RTe/e53s+uuu7Lbbrux33778eUvf5lXvepVQJFc/fa3v+WAAw5gvfXWA+CEE05gp5124k1vehNveMMb+MAHPtDmWafx48ezcuVKdtxxR6ZNm8Zee+0FwLbbbsunP/1pxo0bx957783o0aNXDxH45je/ydy5c9l1113ZaaeduPDCC/vo05H6XmauBKYC1wCLgMszc0FEnBkRh5XVvgJsBPy01SMIdgTmRsSdwI0U98xVMplriU0//elPGTt2LDvssAPDhg1bPRX3kUceyWWXXca73vWu1W0++9nP8sILL7Drrruy884789nPfrbD4/znf/4nl156Kbvtthv33HPPGlfw9thjD6ZOncqOO+7ImDFjOOKII1i6dCn77rsvu+++O8cccwz//d//3fNvXlK/1pXfTt1x6qmnsmLFCt7whjew2267ceONxRxYU6ZMYdddd+U973kP8+fPZ9y4cey+++587nOf49RTT+32caW+Fi1nY/ujpqambLmpvsWiRYtWDwESPPXUU2y00UasXLmSI444gve9730cccQRnW7v51ltVZ3NMiJuK+9Rqyzj08vVziTXFYP981MP6cZslsYmtcXPb2Cp4myWa4tNzmZZcWeccQbXXXcdzz77LAcddBCHH354o7skSZIkqUa9z3fsbCJpMldx55xzTqO7IElAMWPmvvvu2+huSJI0aHjPnCRJkiRVUCWTuf58n1+V+DlKPc/vVdf4uUm9y+9Y1/i5qb+rXDI3bNgwli9f7permzKT5cuXM2zYsEZ3RRowjE9dYzySepexqWuMTaqCyt0zN3LkSJqbm1m2bFmju1J5w4YNY+TIkY3uhjRgGJ+6zngk9R5jU9cZm9TfVS6ZW3fddRkzZkyjuyFJL2N8ktQfGZukgatywywlSZIkSSZzkiRJklRJJnOSJEmSVEEmc5IkSb0oIsZHxL0RsTgiprWxfZ+IuD0iVkbEkW1s3yQimiPi/L7psaSqMJmTJEnqJRExBLgAOATYCTg6InZqVe1B4Djgx+3s5vPA73qrj5Kqy2ROkiSp94wDFmfmA5n5PHAZMKG2QmYuycy7gBdb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Bi7uiT75HewaPzcNRm09K7PV9nafj9mFY3Wnq2rFz1P9ReWuzEmSJA0Ql7D2R6HUPh9zCsXzMSVptUpemau16PU79uj+drxnUafq/e1vf+PDH/4wc+bMYbPNNmOrrbbi3HPPZYcddujR/rTlkksu4aCDDmKbbbbp9WNJ6roLTryhR/d30oX7dVhno4024qmnnurR4/akc889lylTprDhhhs2uitSw2Xm7yJi9FqqrH4+JnBzRGzWMsFTd4771YmHdqf5y3xsxi87rDNkyBB22WWX1euTJk1i2rRpPdqPtuy+++68/vWv57LLLuv1Y0mNUPlkrhEykyOOOILJkyevDg533nknf//73ztM5lauXMnQoUPbXe+MSy65hDe84Q0mc5L6VE/Er3PPPZdjjjnGZE7qnPaeg9mtZK4RNthgA+bNm9enx1y0aBGrVq3i97//Pf/85z95xSte0afHl/qCyVwX3Hjjjay77rqceOKJq8t22203MpNPfOITXH311UQEp556KhMnTmT27Nl89rOfZfPNN+eee+5h+vTpa6wvWrSIadOmMXv2bJ577jlOOukkPvCBDwBw9tln88Mf/pB11lmHQw45hKamJubOnct73vMeNthgA/74xz+ywQYbNOqjUIPVe2W6s1eeVX2zZ8/mjDPOYPjw4dx99928+c1v5oc//CERwZw5c/jQhz7EP//5T9Zff32uv/561l13XT74wQ8yd+5chg4dyte+9jXe9ra3cckll3DVVVfx1FNPsWrVKt773veusT5r1ixOPvlk7r77bl544QXOOOMMJkyYwKpVq/jUpz7Fr3/9a9ZZZx3e//73k5n89a9/5W1vexvDhw/nxhtvbPTHpAGonivinbnaXQURMYViGCajRo1qcG/qM3r0aI4++miuvvpqhg4dyvTp0znllFNYvHgxn/jEJzjxxBOZPXs2p512GhtvvDGLFy/mbW97G9/61rdYZ5213y30k5/8hGOPPZZFixbxi1/8gne/+90AbcbADTfc8GUx6+STT67rvdRzxbMzVzOlzjCZ64KWH0atXXXVVcybN48777yTRx99lD322IN99tkHgNtvv527776bMWPGMHv27DXWp0+fzqabbsqcOXN47rnn2HvvvTnooIO45557+MUvfsEtt9zChhtuyGOPPcYWW2zB+eefzznnnENTU1Nfv3VJFXLHHXewYMECttlmG/bee2/+8Ic/MG7cOCZOnMiMGTPYY489ePLJJ9lggw34xje+QUQwf/587rnnHg466CDuu+8+oIhfd911F1tssQWXXHLJGuuf/vSn2W+//bj44ot5/PHHGTduHAcccADf//73WbJkCfPmzWPo0KGr49fXvvY1brzxRoYPH97gT0eqhPaej7mGjp6B2R8888wz7L777qvXTznlFCZOnAgUCei8efP4yEc+wnHHHccf/vAHnn32Wd7whjesPnF+6623snDhQrbffnvGjx/PVVddxZFHHrnWY86YMYNrr72We+65h/POO493v/vdPP/8823GwOnTp78sZklV0GEy195MSxFxMsXMcKuAX2XmJ8vyU4Djy/L/ysxryvLxFDMyDQG+m5lnMcDcdNNNHH300QwZMoStttqKt771rcyZM4dNNtmEcePGrfEsktr13/zmN9x1111cccUVADzxxBPcf//9XHfddbz3ve9dPRxpiy226Ps3Jamyxo0bx8iRI4HivpElS5aw6aabsvXWW7PHHnsAsMkmmwBF/Go5C/3617+e7bfffnUyd+CBB64Rf2rXf/Ob3zBz5kzOOeccoJgC/cEHH+S6667jxBNPXD0M0/gldUmbz8dscJ+6ZG3DLA877DAAdtllF5566ik23nhjNt54Y9Zff30ef/xxoIhnr371qwE4+uijuemmm9aazM2dO5fhw4czatQott12W973vvfx2GOPsXTp0jZjoDFLnVHv/aZ9cQW2M1fmLgHOB77fUhARb6O4KXe3zHwuIl5Zlu8ETAJ2BrYBrouIlpvILgAOpBjvPSciZmbmwp56I31p5513Xp14dVbrcdq165nJeeedx8EHH7xGnWuuuabrnZQ06K2//vqrl4cMGcLKlSu7tJ+O4teVV17J6173uq51UhrEymdl7gsMj4hm4HRgXYDMvJDi+Zhvp3g+5tPAexvT097VEqvWWWedNeLWOuusszputX4UQEePBvjJT37CPffcw+jRowF48sknufLKK9lrr716sOdS43X4aILM/B3Q+lrzB4GzMvO5ss4jZfkE4LLMfC4z/0wRfMaVr8WZ+UBmPg9cVtatpP3224/nnnuO6dOnry6766672GyzzZgxYwarVq1i2bJl/O53v2PcuHEd7u/ggw/m29/+Ni+88AIA9913H//85z858MAD+d73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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PolarityCoverageOverlapsConflictsCorrectIncorrectEmp. Acc.
LF1[-1.0, 0.0]0.0981340.0861140.0613562532940.462523
LF2[-1.0, 0.0]0.0482600.0482600.0242201171520.434944
LF3[-1.0, 0.0]0.0365980.0365980.016505124800.607843
LF4[-1.0, 1.0]0.0123790.0123790.01237914550.202899
LF5[-1.0, 1.0]0.0034090.0034090.0034099100.473684
LF6[-1.0, 1.0]0.0278080.0278080.027808381170.245161
LF7[-1.0, 1.0]0.0014350.0014350.001435801.000000
LF8[-1.0, 0.0]0.1860420.1860420.0945466024350.580521
CLF1[-1.0, 0.0]0.0651240.0644060.0475421881750.517906
CLF2[-1.0, 0.0]0.0496950.0491570.0249371191580.429603
CLF3[-1.0, 0.0]0.0443130.0441330.019555165820.668016
CLF4[-1.0, 1.0]0.0243990.0163260.010944118180.867647
CLF5[-1.0, 1.0]0.0559740.0330100.021708294180.942308
CLF6[-1.0, 1.0]0.3360240.1923210.15303216402330.875601
CLF7[-1.0, 1.0]0.0369570.0369570.01058520420.990291
CLF8[-1.0, 0.0]0.2945820.2515250.1490856769660.411693
\n", + "
" + ], + "text/plain": [ + " Polarity Coverage Overlaps Conflicts Correct Incorrect \\\n", + "LF1 [-1.0, 0.0] 0.098134 0.086114 0.061356 253 294 \n", + "LF2 [-1.0, 0.0] 0.048260 0.048260 0.024220 117 152 \n", + "LF3 [-1.0, 0.0] 0.036598 0.036598 0.016505 124 80 \n", + "LF4 [-1.0, 1.0] 0.012379 0.012379 0.012379 14 55 \n", + "LF5 [-1.0, 1.0] 0.003409 0.003409 0.003409 9 10 \n", + "LF6 [-1.0, 1.0] 0.027808 0.027808 0.027808 38 117 \n", + "LF7 [-1.0, 1.0] 0.001435 0.001435 0.001435 8 0 \n", + "LF8 [-1.0, 0.0] 0.186042 0.186042 0.094546 602 435 \n", + "CLF1 [-1.0, 0.0] 0.065124 0.064406 0.047542 188 175 \n", + "CLF2 [-1.0, 0.0] 0.049695 0.049157 0.024937 119 158 \n", + "CLF3 [-1.0, 0.0] 0.044313 0.044133 0.019555 165 82 \n", + "CLF4 [-1.0, 1.0] 0.024399 0.016326 0.010944 118 18 \n", + "CLF5 [-1.0, 1.0] 0.055974 0.033010 0.021708 294 18 \n", + "CLF6 [-1.0, 1.0] 0.336024 0.192321 0.153032 1640 233 \n", + "CLF7 [-1.0, 1.0] 0.036957 0.036957 0.010585 204 2 \n", + "CLF8 [-1.0, 0.0] 0.294582 0.251525 0.149085 676 966 \n", + "\n", + " Emp. Acc. \n", + "LF1 0.462523 \n", + "LF2 0.434944 \n", + "LF3 0.607843 \n", + "LF4 0.202899 \n", + "LF5 0.473684 \n", + "LF6 0.245161 \n", + "LF7 1.000000 \n", + "LF8 0.580521 \n", + "CLF1 0.517906 \n", + "CLF2 0.429603 \n", + "CLF3 0.668016 \n", + "CLF4 0.867647 \n", + "CLF5 0.942308 \n", + "CLF6 0.875601 \n", + "CLF7 0.990291 \n", + "CLF8 0.411693 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from spear.labeling import LFAnalysis\n", + "\n", + "analyse = sms_noisy_labels.analyse_lfs(plot=True)\n", + "\n", + "result = analyse.head(16)\n", + "display(result)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "sms_noisy_labels.generate_pickle()\n", + "sms_noisy_labels.generate_json()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.9" + }, + "metadata": { + "interpreter": { + "hash": "31f2aee4e71d21fbe5cf8b01ff0e069b9275f58929596ceb00d14d90e3e16cd6" + } + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/notebooks/SMS_SPAM/.ipynb_checkpoints/subset_selection-checkpoint.ipynb b/notebooks/SMS_SPAM/.ipynb_checkpoints/subset_selection-checkpoint.ipynb new file mode 100644 index 0000000..67e3247 --- /dev/null +++ b/notebooks/SMS_SPAM/.ipynb_checkpoints/subset_selection-checkpoint.ipynb @@ -0,0 +1,378 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "12fde778", + "metadata": {}, + "source": [ + "# ***Subset selection:***\n", + "**The paper, documentation, colab notebook can be found here:** [Paper](https://arxiv.org/abs/2008.09887), [Documentation](https://spear-decile.readthedocs.io/en/latest/#subset-selection), [Colab](https://colab.research.google.com/drive/1HqkqQ8ytWjP9on3du-vVB07IQvo8Li3W?ts=60ce20fe)(Subset selection section can be found quite below in colab notebook)\n", + "\n", + "For subset selection, we use FacilityLocation from the [submodlib](https://github.com/decile-team/submodlib) library which is also provided by [DECILE](https://decile.org/) for submodular optimization.\n", + "\n", + "

This notebook aims at demonstrating the use cases for the functions in spear library for subset selection. Subset selection is selecting a small subset of unlabeled data(or the data labeled by LFs, in case of supervised subset selection) so that it can be labeled and use that small labeled data(the L dataset) for effective training of JL algorithm(Cage algorithm doesn't need labeled data). Finding the best subset makes best use of the labeling efforts. Note that for this notebook demo, we need data generated from the first half(labeling part) of sms_jl.ipynb.

" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "f499ea92", + "metadata": {}, + "outputs": [], + "source": [ + "'''\n", + "User don't need to include this cell to use the package\n", + "'''\n", + "import sys\n", + "sys.path.append('../../')" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "f7c3d7f5", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np" + ] + }, + { + "cell_type": "markdown", + "id": "c9d757bf", + "metadata": {}, + "source": [ + "### **Random subset selection**\n", + "Here we select a random subset of instances to label. We need number of instances available and number of instances we intend to label to get a sorted numpy array of indices" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "356ba6f4", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "indices selected by rand_subset: [ 0 3 4 10 12]\n", + "return type of rand_subset: \n" + ] + } + ], + "source": [ + "from spear.jl import rand_subset\n", + "\n", + "indices = rand_subset(n_all = 20, n_instances = 5) #select 5 instances from a total of 20 instances\n", + "print(\"indices selected by rand_subset: \", indices)\n", + "print(\"return type of rand_subset: \", type(indices))" + ] + }, + { + "cell_type": "markdown", + "id": "60cecb70", + "metadata": {}, + "source": [ + "### **Unsupervised subset selection**\n", + "Here we select a unsupervised subset(for more on this, please refer [here](https://arxiv.org/abs/2008.09887) ) of instances to label. We need feature matrix(of shape (num_instaces, num_features)) and number of instances we intend to label and we get a sorted numpy array of indices. For any other arguments to unsup_subset(or to sup_subset_indices or sup_subset_save_files) please refer documentation.\n", + "

For this let's first get some data(feature matrix), say from sms_pickle_U.pkl(in data_pipeline folder). For more on this pickle file, please refer the other notebook named sms_jl.ipynb

" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "449ec58b", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "x_U shape: (4500, 1024)\n", + "x_U type: \n" + ] + } + ], + "source": [ + "from spear.utils import get_data, get_classes\n", + "\n", + "U_path_pkl = 'data_pipeline/JL/sms_pickle_U.pkl' #unlabelled data - don't have true labels\n", + "data_U = get_data(U_path_pkl, check_shapes=True)\n", + "x_U = data_U[0] #the feature matrix\n", + "print(\"x_U shape: \", x_U.shape)\n", + "print(\"x_U type: \", type(x_U))" + ] + }, + { + "cell_type": "markdown", + "id": "f55c16aa", + "metadata": {}, + "source": [ + "Now that we have feature matrix, let's select the indices to label from it. After labeling(through a trustable means/SMEs) those instances, whose indices(index with respect to feature matrix) are given by the following function, one can pass them as gold_labels to the PreLabels class in the process for labeling the subset-selected data and forming a pickle file." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "6972ed8c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "first 10 indices given by unsup_subset: [ 455 659 806 985 1036 1438 2092 2197 2277 2283]\n", + "return type of unsup_subset: \n" + ] + } + ], + "source": [ + "from spear.jl import unsup_subset\n", + "\n", + "indices = unsup_subset(x_train = x_U, n_unsup = 20)\n", + "print(\"first 10 indices given by unsup_subset: \", indices[:10])\n", + "print(\"return type of unsup_subset: \", type(indices))" + ] + }, + { + "cell_type": "markdown", + "id": "59b7f408", + "metadata": {}, + "source": [ + "### **Supervised subset selection**\n", + "Here we select a supervised subset(for more on this, please refer [here](https://arxiv.org/abs/2008.09887) ) of instances to label. We need \n", + "* path to json file having information about classes\n", + "* path to pickle file generated by feature matrix after labeling using LFs\n", + "* number of instances we intend to label\n", + "\n", + "

we get a sorted numpy array of indices.

\n", + "

For this let's use sms_json.json, sms_pickle_U.pkl(in data_pipeline folder). For more on this json/pickle file, please refer the other notebook named sms_cage_jl.ipynb

" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "8659db63", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "first 10 indices given by sup_subset: [1632 1848 3284 4403 4404 4405 4406 4407 4408 4409]\n", + "return type of sup_subset: \n" + ] + } + ], + "source": [ + "from spear.jl import sup_subset_indices\n", + "\n", + "U_path_pkl = 'data_pipeline/JL/sms_pickle_U.pkl' #unlabelled data - don't have true labels\n", + "path_json = 'data_pipeline/JL/sms_json.json'\n", + "indices = sup_subset_indices(path_json = path_json, path_pkl = U_path_pkl, n_sup = 100, qc = 0.85)\n", + "\n", + "print(\"first 10 indices given by sup_subset: \", indices[:10])\n", + "print(\"return type of sup_subset: \", type(indices))" + ] + }, + { + "cell_type": "markdown", + "id": "095e8d97", + "metadata": {}, + "source": [ + "Instead of just getting indices to already labeled data(stored in pickle format, using LFs), we also provide the following utility to split the input pickle file and save two pickle files on the basis of subset selection. Make sure that the directory of the files(path_save_L and path_save_U) exists. Note that any existing contents in these pickle files will be erased. You can still get the return value of subset-selected indices." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "2dd0353c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "first 10 indices given by sup_subset: [1632 1848 3284 4403 4404 4405 4406 4407 4408 4409]\n", + "return type of sup_subset: \n" + ] + } + ], + "source": [ + "from spear.jl import sup_subset_save_files\n", + "\n", + "U_path_pkl = 'data_pipeline/JL/sms_pickle_U.pkl' #unlabelled data - don't have true labels\n", + "path_json = 'data_pipeline/JL/sms_json.json'\n", + "path_save_L = 'data_pipeline/JL/sup_subset_L.pkl'\n", + "path_save_U = 'data_pipeline/JL/sup_subset_U.pkl'\n", + "\n", + "indices = sup_subset_save_files(path_json = path_json, path_pkl = U_path_pkl, path_save_L = path_save_L, \\\n", + " path_save_U = path_save_U, n_sup = 100, qc = 0.85)\n", + "\n", + "print(\"first 10 indices given by sup_subset: \", indices[:10])\n", + "print(\"return type of sup_subset: \", type(indices))" + ] + }, + { + "cell_type": "markdown", + "id": "1dd3800e", + "metadata": {}, + "source": [ + "### **Inserting true labels into pickle files**\n", + "Now after doing supervised subset selection, say we get two pickle files path_save_L and path_save_U. Now say you labeled the instances of path_save_L and want to insert them into pickle file. So here, instead of going over the process of generating pickle through PreLabels again, you can use the following function to create a new pickle file, which now contain true labels, using path_save_L pickle file. There is no return value to this function.\n", + "

Make sure that path_save file, the pickle file path that is to be formed with the data in path_save_L file and true labels, is in an existing directory. Note that any existing contents in this pickle file(path_save) will be erased.

\n", + "

Note that one can pass same file to path, path_save and path arguments, in which case the true labels numpy array is just replaced with what user provides in labels argument.

" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "d68700e1", + "metadata": {}, + "outputs": [], + "source": [ + "from spear.jl import insert_true_labels\n", + "\n", + "path_save_L = 'data_pipeline/JL/sup_subset_L.pkl'\n", + "path_save_labeled = 'data_pipeline/JL/sup_subset_labeled_L.pkl'\n", + "labels = np.random.randint(0,2,[100, 1])\n", + "'''\n", + "Above is just a random association of labels used for demo. In real time user has to label the instances in\n", + "path_save_L with a trustable means/SMEs and use it here.\n", + "\n", + "Note that the shape of labels is (num_instances, 1) and just for reference, feature_matrix(the first element\n", + "in pickle file) in path_save_L has shape (num_instances, num_features).\n", + "'''\n", + "insert_true_labels(path = path_save_L, path_save = path_save_labeled, labels = labels)" + ] + }, + { + "cell_type": "markdown", + "id": "ccbd2f3f", + "metadata": {}, + "source": [ + "A similar function as insert_true_labels called replace_in_pkl is also made available to make changes to pickle file. replace_in_pkl usage is demonstrated below. Make sure that path_save, the pickle file path that is to be formed with the data in path file and a new numpy array, is in an existing directory. Note that any existing contents in this pickle file(path_save) will be erased. There is no return value for this function too.\n", + "

Note that one can pass same file to path, path_save and path arguments, in which case the intended numpy array is just replaced with what user provides in np_array argument.

\n", + "

It is highly advised to use insert_true_labels function for the purpose of inserting the labels since it does some other necessary changes.

" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "1fc5e52e", + "metadata": {}, + "outputs": [], + "source": [ + "from spear.jl import replace_in_pkl\n", + "\n", + "path_labeled = 'data_pipeline/JL/sup_subset_labeled_L.pkl' # this is the previously used path, path_save_labeled\n", + "path_save_altered = 'data_pipeline/JL/sup_subset_altered_L.pkl'\n", + "np_array = np.random.randint(0,2,[100, 1]) #we are just replacing the labels we inserted before\n", + "index = 3 \n", + "'''\n", + "index refers to the element we intend to replace. Refer documentaion(specifically \n", + "spear.utils.data_editor.get_data) to understand which numpy array an index value\n", + "maps to(order the contents of pickle file from 0 to 8). Index should be in range [0,8].\n", + "'''\n", + "\n", + "replace_in_pkl(path = path_labeled, path_save = path_save_altered, np_array = np_array, index = index)" + ] + }, + { + "cell_type": "markdown", + "id": "bfee87f1", + "metadata": {}, + "source": [ + "### **Demonstrating the use of labeled subset-selected data**\n", + "Now that we have our subset(labeled) in path_save_labeled, lets see a use case by calling a member function of JL class using path_save_labeled as our path to L data." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "c82c3681", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 24%|██▍ | 24/100 [00:56<02:58, 2.34s/it]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "early stopping at epoch: 24\tbest_epoch: 13\n", + "score used: f1_score\n", + "best_gm_val_score:0.6037735849056604\tbest_fm_val_score:0.6808510638297872\n", + "best_gm_test_score:0.5581395348837209\tbest_fm_test_score:0.5818181818181818\n", + "best_gm_test_precision:0.4\tbest_fm_test_precision:0.4247787610619469\n", + "best_gm_test_recall:0.9230769230769231\tbest_fm_test_recall:0.9230769230769231\n", + "probs_fm shape: (4400, 2)\n", + "probs_gm shape: (4400, 2)\n" + ] + } + ], + "source": [ + "from spear.jl import JL\n", + "\n", + "n_lfs = 16\n", + "n_features = 1024\n", + "n_hidden = 512\n", + "feature_model = 'nn'\n", + "path_json = 'data_pipeline/JL/sms_json.json'\n", + "\n", + "jl = JL(path_json = path_json, n_lfs = n_lfs, n_features = n_features, feature_model = feature_model, \\\n", + " n_hidden = n_hidden)\n", + "\n", + "L_path_pkl = path_save_labeled #Labeled data - have true labels\n", + "'''\n", + "Note that I saved random labels, in file path_save_labeled, as true labels which are \n", + "supposed to be labeled by a trustable means/SMEs. Hence the accuracies below can be small.\n", + "'''\n", + "U_path_pkl = path_save_U #unlabelled data - don't have true labels\n", + "V_path_pkl = 'data_pipeline/JL/sms_pickle_V.pkl' #validation data - have true labels\n", + "T_path_pkl = 'data_pipeline/JL/sms_pickle_T.pkl' #test data - have true labels\n", + "log_path_jl_1 = 'log/JL/jl_log_1.txt'\n", + "loss_func_mask = [1,1,1,1,1,1,1] \n", + "batch_size = 150\n", + "lr_fm = 0.0005\n", + "lr_gm = 0.01\n", + "use_accuracy_score = False\n", + "\n", + "probs_fm, probs_gm = jl.fit_and_predict_proba(path_L = L_path_pkl, path_U = U_path_pkl, path_V = V_path_pkl, \\\n", + " path_T = T_path_pkl, loss_func_mask = loss_func_mask, batch_size = batch_size, lr_fm = lr_fm, lr_gm = \\\n", + " lr_gm, use_accuracy_score = use_accuracy_score, path_log = log_path_jl_1, return_gm = True, n_epochs = \\\n", + " 100, start_len = 7,stop_len = 10, is_qt = True, is_qc = True, qt = 0.9, qc = 0.85, metric_avg = 'binary')\n", + "\n", + "labels = np.argmax(probs_fm, 1)\n", + "print(\"probs_fm shape: \", probs_fm.shape)\n", + "print(\"probs_gm shape: \", probs_gm.shape)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.9" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/SMS_SPAM/LFs/sms/home/aziz/Documents/CS769/Example_runs/U.txt b/notebooks/SMS_SPAM/LFs/sms/home/aziz/Documents/CS769/Example_runs/U.txt new file mode 100644 index 0000000..b2fcb52 --- /dev/null +++ b/notebooks/SMS_SPAM/LFs/sms/home/aziz/Documents/CS769/Example_runs/U.txt @@ -0,0 +1,14408 @@ +"want to funk up ur fone with a weekly new tone reply tones2u 2 this text. www.ringtones.co.uk +do you want a new video phone750 anytime any network mins 150 text for only five pounds per week call 08000776320 now or reply for delivery tomorrow + +jesus christ bitch i'm trying to give you drugs answer your fucking phone + +prabha..i'm soryda..realy..frm heart i'm sory + +once free call me sir. i am waiting for you. + +"so anyways +phony ??350 award - todays voda numbers ending xxxx are selected to receive a ??350 award. if you have a match please call 08712300220 quoting claim code 3100 standard rates app + +"sorry +"hot live fantasies call now 08707509020 just 20p per min ntt ltd +otherwise had part time job na-tuition.. + +"k i'm ready +"dont worry +but i'm surprised she still can guess right lor... + +"you are guaranteed the latest nokia phone +74355 xmas iscoming & ur awarded either ??500 cd gift vouchers & free entry 2 r ??100 weekly draw txt music to 87066 tnc + +jus finish bathing... + +my computer just fried the only essential part we don't keep spares of because my fucking idiot roommates looovvve leaving the thing running on full <#> /7 + +i'm home... + +do you want a new nokia 3510i colour phone delivered tomorrow? with 200 free minutes to any mobile + 100 free text + free camcorder reply or call 08000930705 + +is it your yahoo boys that bring in the perf? or legal. + +please call 08712402578 immediately as there is an urgent message waiting for you + +december only! had your mobile 11mths+? you are entitled to update to the latest colour camera mobile for free! call the mobile update vco free on 08002986906 + +babe ? i lost you ... :-( + +"xmas offer! latest motorola +santa calling! would your little ones like a call from santa xmas eve? call 09058094583 to book your time. + +hey i am really horny want to chat or see me naked text hot to 69698 text charged at 150pm to unsubscribe text stop 69698 + +"urgent -call 09066649731from landline. your complimentary 4* ibiza holiday or ??10 +free 1st week entry 2 textpod 4 a chance 2 win 40gb ipod or ??250 cash every wk. txt pod to 84128 ts&cs www.textpod.net custcare 08712405020. + +"romantic paris. 2 nights +what do u want for xmas? how about 100 free text messages & a new video phone with half price line rental? call free now on 0800 0721072 to find out more! + +married local women looking for discreet action now! 5 real matches instantly to your phone. text match to 69969 msg cost 150p 2 stop txt stop bcmsfwc1n3xx + +10 min later k... + +big brother alert! the computer has selected u for 10k cash or #150 voucher. call 09064018838. ntt po box cro1327 18+ bt landline cost 150ppm mobiles vary + +free tones hope you enjoyed your new content. text stop to 61610 to unsubscribe. help:08712400602450p provided by tones2you.co.uk + +great new offer - double mins & double txt on best orange tariffs and get latest camera phones 4 free! call mobileupd8 free on 08000839402 now! or 2stoptxt t&cs + +is ur changes 2 da report big? cos i've already made changes 2 da previous report. + +you'll not rcv any more msgs from the chat svc. for free hardcore services text go to: 69988 if u get nothing u must age verify with yr network & try again + +call freephone 0800 542 0578 now! + +"gud gud..k +"did you say bold +"spook up your mob with a halloween collection of a logo & pic message plus a free eerie tone +"congrats! 2 mobile 3g videophones r yours. call 09061744553 now! videochat wid ur mates +i am late. i will be there at + +private! your 2003 account statement for shows 800 un-redeemed s.i.m. points. call 08715203685 identifier code:4xx26 expires 13/10/04 + +"ok that would b lovely +25p 4 alfie moon's children in need song on ur mob. tell ur m8s. txt tone charity to 8007 for nokias or poly charity for polys: zed 08701417012 profit 2 charity. + +id onluy matters when getting on from offcampus + +tessy..pls do me a favor. pls convey my birthday wishes to nimya..pls dnt forget it. today is her birthday shijas + +?? eatin later but i'm eatin wif my frens now lei... ?? going home first? + +"hot live fantasies call now 08707509020 just 20p per min ntt ltd +had your mobile 11mths ? update for free to oranges latest colour camera mobiles & unlimited weekend calls. call mobile upd8 on freefone 08000839402 or 2stoptxt + +lmao where's your fish memory when i need it? + +private! your 2003 account statement for 07815296484 shows 800 un-redeemed s.i.m. points. call 08718738001 identifier code 41782 expires 18/11/04 + +sports fans - get the latest sports news str* 2 ur mobile 1 wk free plus a free tone txt sport on to 8007 www.getzed.co.uk 0870141701216+ norm 4txt/120p + +"it???s ??6 to get in +mmmm.... i cant wait to lick it! + +"customer service announcement. we recently tried to make a delivery to you but were unable to do so +todays vodafone numbers ending with 4882 are selected to a receive a ??350 award. if your number matches call 09064019014 to receive your ??350 award. + +"had your mobile 10 mths? update to the latest camera/video phones for free. keep ur same number +"someone u know has asked our dating service 2 contact you! cant guess who? call 09058095107 now all will be revealed. pobox 7 +some of them told accenture is not confirm. is it true. + +no let me do the math. your not good at it. + +"wan2 win a meet+greet with westlife 4 u or a m8? they are currently on what tour? 1)unbreakable +customer service annoncement. you have a new years delivery waiting for you. please call 07046744435 now to arrange delivery + +you have won! as a valued vodafone customer our computer has picked you to win a ??150 prize. to collect is easy. just call 09061743386 + +you have 1 new message. call 0207-083-6089 + +you have won a guaranteed ??200 award or even ??1000 cashto claim ur award call free on 08000407165 (18+) 2 stop getstop on 88222 php + +yeah just open chat and click friend lists. then make the list. easy as pie + +"this is the 2nd time we have tried 2 contact u. u have won the 750 pound prize. 2 claim is easy +text & meet someone sexy today. u can find a date or even flirt its up to u. join 4 just 10p. reply with name & age eg sam 25. 18 -msg recd pence + +u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094599 + +where's my boytoy? i miss you ... what happened? + +i come n pick ?_ up... come out immediately aft ur lesson... + +ugh i don't wanna get out of bed. it's so warm. + +"\im on gloucesterroad what are uup to later?\""""" + +no 1 polyphonic tone 4 ur mob every week! just txt pt2 to 87575. 1st tone free ! so get txtin now and tell ur friends. 150p/tone. 16 reply hl 4info + +"win: we have a winner! mr. t. foley won an ipod! more exciting prizes soon +i'll probably be by tomorrow (or even later tonight if something's going on) + +aight what time you want me to come up? + +"loan for any purpose ??500 - ??75 +"tick +"free message activate your 500 free text messages by replying to this message with the word free for terms & conditions +free 1st week entry 2 textpod 4 a chance 2 win 40gb ipod or ??250 cash every wk. txt pod to 84128 ts&cs www.textpod.net custcare 08712405020. + +"oh +"congrats! 1 year special cinema pass for 2 is yours. call 09061209465 now! c suprman v +-pls stop bootydelious (32/f) is inviting you to be her friend. reply yes-434 or no-434 see her: www.sms.ac/u/bootydelious stop? send stop frnd to 62468 + +private! your 2003 account statement for 07808247860 shows 800 un-redeemed s. i. m. points. call 08719899229 identifier code: 40411 expires 06/11/04 + +"i got another job! the one at the hospital doing data analysis or something +"hi. hope ur day * good! back from walk +private! your 2003 account statement for shows 800 un-redeemed s. i. m. points. call 08719899230 identifier code: 41685 expires 07/11/04 + +yes we were outside for like 2 hours. and i called my whole family to wake them up cause it started at 1 am + +same. wana plan a trip sometme then + +claire here am havin borin time & am now alone u wanna cum over 2nite? chat now 09099725823 hope 2 c u luv claire xx calls??1/minmoremobsemspobox45po139wa + +are you unique enough? find out from 30th august. www.areyouunique.co.uk + +the xmas story is peace.. the xmas msg is love.. the xmas miracle is jesus.. hav a blessed month ahead & wish u merry xmas... + +"me +missed call alert. these numbers called but left no message. 07008009200 + +"rose needs water +urgent! please call 09061743811 from landline. your abta complimentary 4* tenerife holiday or ??5000 cash await collection sae t&cs box 326 cw25wx 150ppm + +"dear voucher holder +"yeah +"free msg. sorry +sports fans - get the latest sports news str* 2 ur mobile 1 wk free plus a free tone txt sport on to 8007 www.getzed.co.uk 0870141701216+ norm 4txt/120p + +"greetings me +"this weeks savamob member offers are now accessible. just call 08709501522 for details! savamob +how do friends help us in problems? they give the most stupid suggestion that lands us into another problem and helps us forgt the previous problem + +"urgent! your mobile no 077xxx won a ??2 +i don't quite know what to do. i still can't get hold of anyone. i cud pick you up bout 7.30pm and we can see if they're in the pub? + +"as a sim subscriber +"like <#> +get your garden ready for summer with a free selection of summer bulbs and seeds worth ??33:50 only with the scotsman this saturday. to stop go2 notxt.co.uk + +free top ringtone -sub to weekly ringtone-get 1st week free-send subpoly to 81618-?3 per week-stop sms-08718727870 + +"free msg. sorry +not tonight mate. catching up on some sleep. this is my new number by the way. + +we tried to contact you re your reply to our offer of a video handset? 750 anytime any networks mins? unlimited text? camcorder? reply or call 08000930705 now + +a ??400 xmas reward is waiting for you! our computer has randomly picked you from our loyal mobile customers to receive a ??400 reward. just call 09066380611 + +call 09090900040 & listen to extreme dirty live chat going on in the office right now total privacy no one knows your [sic] listening 60p min 24/7mp 0870753331018+ + +tone club: your subs has now expired 2 re-sub reply monoc 4 monos or polyc 4 polys 1 weekly @ 150p per week txt stop 2 stop this msg free stream 0871212025016 + +what's the significance? + +short but cute : \ be a good person + +"spjanuary male sale! hot gay chat now cheaper +we tried to contact you re your reply to our offer of a video phone 750 anytime any network mins half price line rental camcorder reply or call 08000930705 + +"hot live fantasies call now 08707509020 just 20p per min ntt ltd +two teams waiting for some players + +it should take about <#> min + +"same here +txt: call to no: 86888 & claim your reward of 3 hours talk time to use from your phone now! subscribe6gbp/mnth inc 3hrs 16 stop?txtstop www.gamb.tv + +"last chance! claim ur ??150 worth of discount vouchers today! text shop to 85023 now! savamob +i.ll post her out l8r. in class + +this is the 2nd time we have tried to contact u. u have won the ??1450 prize to claim just call 09053750005 b4 310303. t&cs/stop sms 08718725756. 140ppm + +"want to funk up ur fone with a weekly new tone reply tones2u 2 this text. www.ringtones.co.uk +ur awarded a city break and could win a ??200 summer shopping spree every wk. txt store to 88039.skilgme.tscs087147403231winawk!age16+??1.50perwksub + +"thanks for your ringtone order +you have registered sinco as payee. log in at icicibank.com and enter urn <#> to confirm. beware of frauds. do not share or disclose urn to anyone. + +oh ok.. + +"idk. you keep saying that you're not +win urgent! your mobile number has been awarded with a ??2000 prize guaranteed call 09061790121 from land line. claim 3030 valid 12hrs only 150ppm + +not a lot has happened here. feels very quiet. beth is at her aunts and charlie is working lots. just me and helen in at the mo. how have you been? + +u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09065171142-stopsms-08 + +"congratulations! thanks to a good friend u have won the ??2 +"yeah +i???m parked next to a mini!!!! when are you coming in today do you think? + +"\im at arestaurant eating squid! i will be out about 10:30 wanna dosomething or is that to late?\""""" + +"today's offer! claim ur ??150 worth of discount vouchers! text yes to 85023 now! savamob +what u talking bout early morning? it's almost noon where your at! + +"fair enough +call germany for only 1 pence per minute! call from a fixed line via access number 0844 861 85 85. no prepayment. direct access! www.telediscount.co.uk + +you all ready for * big day tomorrow? + +hi darlin i finish at 3 do u 1 2 pick me up or meet me? text back on this number luv kate xxx + +see? i thought it all through + +we have new local dates in your area - lots of new people registered in your area. reply date to start now! 18 only www.flirtparty.us replys150 + +umma my life and vava umma love you lot dear + +hi darlin im on helens fone im gonna b up the princes 2 nite please come up tb love kate + +even i cant close my eyes you are in me our vava playing umma :-d + +recpt 1/3. you have ordered a ringtone. your order is being processed... + +would you like to see my xxx pics they are so hot they were nearly banned in the uk! + +you have been specially selected to receive a 2000 pound award! call 08712402050 before the lines close. cost 10ppm. 16+. t&cs apply. ag promo + +pls accept me for one day. or am begging you change the number. + +u r a winner u ave been specially selected 2 receive ??1000 cash or a 4* holiday (flights inc) speak to a live operator 2 claim 0871277810710p/min (18 ) + +"last chance! claim ur ??150 worth of discount vouchers today! text shop to 85023 now! savamob +enjoy the jamster videosound gold club with your credits for 2 new videosounds+2 logos+musicnews! get more fun from jamster.co.uk! 16+only help? call: 09701213186 + +"i thought i'd get him a watch +last chance 2 claim ur ??150 worth of discount vouchers-text yes to 85023 now!savamob-member offers mobile t cs 08717898035. ??3.00 sub. 16 . remove txt x or stop + +"hi babe its chloe +"someone u know has asked our dating service 2 contact you! cant guess who? call 09058095107 now all will be revealed. pobox 7 +"had your contract mobile 11 mnths? latest motorola +"cmon babe +that would be great. we'll be at the guild. could meet on bristol road or somewhere - will get in touch over weekend. our plans take flight! have a good week + +then what about further plan? + +aiyo cos i sms ?_ then ?_ neva reply so i wait 4 ?_ to reply lar. i tot ?_ havent finish ur lab wat. + +haha okay... today weekend leh... + +i havent lei.. next mon can? + +we currently have a message awaiting your collection. to collect your message just call 08718723815. + +this msg is for your mobile content order it has been resent as previous attempt failed due to network error queries to customersqueries.uk.com + +"text82228>> get more ringtones +"isn't frnd a necesity in life? imagine urself witout a frnd.. hw'd u feel at ur colleg? wat'll u do wth ur cell? wat abt functions? thnk abt events espe'll cared +i'm on da bus going home... + +"congratulations! thanks to a good friend u have won the ??2 +should i send you naughty pix? :) + +"dear voucher holder +-pls stop bootydelious (32/f) is inviting you to be her friend. reply yes-434 or no-434 see her: www.sms.ac/u/bootydelious stop? send stop frnd to 62468 + +"free2day sexy st george's day pic of jordan!txt pic to 89080 dont miss out +moby pub quiz.win a ??100 high street prize if u know who the new duchess of cornwall will be? txt her first name to 82277.unsub stop ??1.50 008704050406 sp + +"you are guaranteed the latest nokia phone +check with nuerologist. + +hi. || do u want | to join me with sts later? || meeting them at five. || call u after class. + +purity of friendship between two is not about smiling after reading the forwarded message..its about smiling just by seeing the name. gud evng musthu + +"i think i???m waiting for the same bus! inform me when you get there +"free nokia or motorola with upto 12mths 1/2price linerental +wanna do some art?! :d + +no da. . vijay going to talk in jaya tv + +"when i was born +"multiply the numbers independently and count decimal points then +hmv bonus special 500 pounds of genuine hmv vouchers to be won. just answer 4 easy questions. play now! send hmv to 86688 more info:www.100percent-real.com + +for sale - arsenal dartboard. good condition but no doubles or trebles! + +"pdate_now - double mins and 1000 txts on orange tariffs. latest motorola +jus telling u dat i'll b leaving 4 shanghai on 21st instead so we'll haf more time 2 meet up cya... + +my supervisor find 4 me one lor i thk his students. i havent ask her yet. tell u aft i ask her. + +ur going 2 bahamas! callfreefone 08081560665 and speak to a live operator to claim either bahamas cruise of??2000 cash 18+only. to opt out txt x to 07786200117 + +going to take your babe out ? + +"our mobile number has won ??5000 +"as a valued customer +guess what! somebody you know secretly fancies you! wanna find out who it is? give us a call on 09065394973 from landline datebox1282essexcm61xn 150p/min 18 + +r u meeting da ge at nite tmr? + +no..but heard abt tat.. + +here is your discount code rp176781. to stop further messages reply stop. www.regalportfolio.co.uk. customer services 08717205546 + +get the official england poly ringtone or colour flag on yer mobile for tonights game! text tone or flag to 84199. optout txt eng stop box39822 w111wx ??1.50 + +i gotta collect da car at 6 lei. + +"if you don't +huh so fast... dat means u havent finished painting? + +free msg: ringtone!from: http://tms. widelive.com/index. wml?id=1b6a5ecef91ff9*37819&first=true18:0430-jul-05 + +"idc get over here +you have an important customer service announcement. call freephone 0800 542 0825 now! + +"babe ! how goes that day ? what are you doing ? where are you ? i sip my cappuccino and think of you +"hello +"jus chillaxin +"carlos took a while (again) +wat makes some people dearer is not just de happiness dat u feel when u meet them but de pain u feel when u miss dem!!! + +"he said that he had a right giggle when he saw u again! you would possibly be the first person2die from nvq +**free message**thanks for using the auction subscription service. 18 . 150p/msgrcvd 2 skip an auction txt out. 2 unsubscribe txt stop customercare 08718726270 + +"new tones this week include: 1)mcfly-all ab.. +"wan2 win a meet+greet with westlife 4 u or a m8? they are currently on what tour? 1)unbreakable +ur cash-balance is currently 500 pounds - to maximize ur cash-in now send go to 86688 only 150p/msg. cc: 08718720201 po box 114/14 tcr/w1 + +"hot live fantasies call now 08707509020 just 20p per min ntt ltd +"sorry that took so long +"life is more strict than teacher... bcoz teacher teaches lesson & then conducts exam +yup. izzit still raining heavily cos i'm in e mrt i can't c outside. + +"hello +i'm leaving my house now. + +"for ur chance to win ??250 cash every wk txt: play to 83370. t's&c's www.music-trivia.net custcare 08715705022 +ok lor. + +company is very good.environment is terrific and food is really nice:) + +eastenders tv quiz. what flower does dot compare herself to? d= violet e= tulip f= lily txt d e or f to 84025 now 4 chance 2 win ??100 cash wkent/150p16+ + +dunno he jus say go lido. same time 930. + +boo i'm on my way to my moms. she's making tortilla soup. yummmm + +"this is the 2nd attempt to contract u +text pass to 69669 to collect your polyphonic ringtones. normal gprs charges apply only. enjoy your tones + +what time should i tell my friend to be around? + +ur cash-balance is currently 500 pounds - to maximize ur cash-in now send go to 86688 only 150p/msg. cc: 08718720201 po box 114/14 tcr/w1 + +money i have won wining number 946 wot do i do next + +how much did ur hdd casing cost. + +"urgent! call 09066350750 from your landline. your complimentary 4* ibiza holiday or 10 +"congrats! 2 mobile 3g videophones r yours. call 09061744553 now! videochat wid ur mates +hope you enjoyed your new content. text stop to 61610 to unsubscribe. help:08712400602450p provided by tones2you.co.uk + +1's finish meeting call me. + +you call him now ok i said call him + +did u turn on the heater? the heater was on and set to <#> degrees. + +panasonic & bluetoothhdset free. nokia free. motorola free & doublemins & doubletxt on orange contract. call mobileupd8 on 08000839402 or call 2optout + +hope you are not scared! + +85233 free>ringtone!reply real + +hmmm.but you should give it on one day.. + +"you've won tkts to the euro2004 cup final or ??800 cash +no 1 polyphonic tone 4 ur mob every week! just txt pt2 to 87575. 1st tone free ! so get txtin now and tell ur friends. 150p/tone. 16 reply hl 4info + +would really appreciate if you call me. just need someone to talk to. + +"got what it takes 2 take part in the wrc rally in oz? u can with lucozade energy! text rally le to 61200 (25p) +"do you ever notice that when you're driving +please call our customer service representative on 0800 169 6031 between 10am-9pm as you have won a guaranteed ??1000 cash or ??5000 prize! + +eh den sat u book e kb liao huh... + +"ah +"hello from orange. for 1 month's free access to games +hi - this is your mailbox messaging sms alert. you have 4 messages. you have 21 matches. please call back on 09056242159 to retrieve your messages and matches + +pls come quick cant bare this. + +back 2 work 2morro half term over! can u c me 2nite 4 some sexy passion b4 i have 2 go back? chat now 09099726481 luv dena calls ??1/minmobsmorelkpobox177hp51fl + +u having lunch alone? i now so bored... + +but i haf enuff space got like 4 mb... + +"hmmm ... i thought we said 2 hours slave +"did he say how fantastic i am by any chance +"did you hear about the new \divorce barbie\""? it comes with all of ken's stuff!""" + +"got what it takes 2 take part in the wrc rally in oz? u can with lucozade energy! text rally le to 61200 (25p) +so can collect ur laptop? + +shant disturb u anymore... jia you... + +sunshine quiz wkly q! win a top sony dvd player if u know which country liverpool played in mid week? txt ansr to 82277. ??1.50 sp:tyrone + +"text82228>> get more ringtones +u are subscribed to the best mobile content service in the uk for ??3 per 10 days until you send stop to 82324. helpline 08706091795 + +guess who am i?this is the first time i created a web page www.asjesus.com read all i wrote. i'm waiting for your opinions. i want to be your friend 1/1 + +"i want some cock! my hubby's away +"evry emotion dsn't hav words.evry wish dsn't hav prayrs.. if u smile +freemsg: txt: call to no: 86888 & claim your reward of 3 hours talk time to use from your phone now! subscribe6gbp/mnth inc 3hrs 16 stop?txtstop + +"dear voucher holder +urgent! your mobile number has been awarded with a ??2000 prize guaranteed. call 09061790126 from land line. claim 3030. valid 12hrs only 150ppm + +"cool breeze... bright sun... fresh flower... twittering birds... all these waiting to wish u: \goodmorning & have a nice day\"" :)""" + +this phone has the weirdest auto correct. + +you are chosen to receive a ??350 award! pls call claim number 09066364311 to collect your award which you are selected to receive as a valued mobile customer. + +"urgent!: your mobile no. was awarded a ??2 +74355 xmas iscoming & ur awarded either ??500 cd gift vouchers & free entry 2 r ??100 weekly draw txt music to 87066 tnc + +free entry into our ??250 weekly comp just send the word enter to 84128 now. 18 t&c www.textcomp.com cust care 08712405020. + +you dont know you jabo me abi. + +todays vodafone numbers ending with 4882 are selected to a receive a ??350 award. if your number matches call 09064019014 to receive your ??350 award. + +it to 80488. your 500 free text messages are valid until 31 december 2005. + +"shit that is really shocking and scary +filthy stories and girls waiting for your + +"you are being contacted by our dating service by someone you know! to find out who it is +congratulations you've won. you're a winner in our august ??1000 prize draw. call 09066660100 now. prize code 2309. + +1000's of girls many local 2 u who r virgins 2 this & r ready 2 4fil ur every sexual need. can u 4fil theirs? text cute to 69911(??1.50p. m) + +ree entry in 2 a weekly comp for a chance to win an ipod. txt pod to 80182 to get entry (std txt rate) t&c's apply 08452810073 for details 18+ + +"edison has rightly said +cashbin.co.uk (get lots of cash this weekend!) www.cashbin.co.uk dear welcome to the weekend we have got our biggest and best ever cash give away!! these.. + +joy's father is john. then john is the name of joy's father. mandan + +interflora - ??it's not too late to order interflora flowers for christmas call 0800 505060 to place your order before midnight tomorrow. + +"themob>hit the link to get a premium pink panther game +4mths half price orange line rental & latest camera phones 4 free. had your phone 11mths+? call mobilesdirect free on 08000938767 to update now! or2stoptxt t&cs + +i don't know u and u don't know me. send chat to 86688 now and let's find each other! only 150p/msg rcvd. hg/suite342/2lands/row/w1j6hl ldn. 18 years or over. + +"madam +"hi hun! im not comin 2nite-tell every1 im sorry 4 me +"for ur chance to win a ??250 wkly shopping spree txt: shop to 80878. t's&c's www.txt-2-shop.com custcare 08715705022 +gent! we are trying to contact you. last weekends draw shows that you won a ??1000 prize guaranteed. call 09064012160. claim code k52. valid 12hrs only. 150ppm + +am in gobi arts college + +"urgent! your mobile number *************** won a ??2000 bonus caller prize on 10/06/03! this is the 2nd attempt to reach you! call 09066368753 asap! box 97n7qp +"very strange. and are watching the 2nd one now but i'm in bed. sweet dreams +hello! how's you and how did saturday go? i was just texting to see if you'd decided to do anything tomo. not that i'm trying to invite myself or anything! + +we tried to contact you re your reply to our offer of 750 mins 150 textand a new video phone call 08002988890 now or reply for free delivery tomorrow + +big brother alert! the computer has selected u for 10k cash or #150 voucher. call 09064018838. ntt po box cro1327 18+ bt landline cost 150ppm mobiles vary + +"shop till u drop +" +thank you princess! you are so sexy... + +xclusive 2morow 28/5 soiree speciale zouk with nichols from paris.free roses 2 all ladies !!! info: 07946746291/07880867867 + +finish already... yar they keep saying i mushy... i so embarrassed ok... + +"500 new mobiles from 2004 +olol i printed out a forum post by a guy with the exact same prob which was fixed with a gpu replacement. hopefully they dont ignore that. + +back 2 work 2morro half term over! can u c me 2nite 4 some sexy passion b4 i have 2 go back? chat now 09099726481 luv dena calls ??1/minmobsmorelkpobox177hp51fl + +u will switch your fone on dammit!! + +you are a big chic. common. declare + +ok... + +from here after the performance award is calculated every two month.not for current one month period.. + +yes! the only place in town to meet exciting adult singles is now in the uk. txt chat to 86688 now! 150p/msg. + +from next month get upto 50% more calls 4 ur standard network charge 2 activate call 9061100010 c wire3.net 1st4terms pobox84 m26 3uz cost ??1.50 min mobcudb more + +hello handsome ! are you finding that job ? not being lazy ? working towards getting back that net for mummy ? where's my boytoy now ? does he miss me ? + +i don't know u and u don't know me. send chat to 86688 now and let's find each other! only 150p/msg rcvd. hg/suite342/2lands/row/w1j6hl ldn. 18 years or over. + +i'm ok wif it cos i like 2 try new things. but i scared u dun like mah. cos u said not too loud. + +?? still got lessons? ?? in sch? + +free entry in 2 a wkly comp to win fa cup final tkts 21st may 2005. text fa to 87121 to receive entry question(std txt rate)t&c's apply 08452810075over18's + +you are a winner u have been specially selected 2 receive ??1000 cash or a 4* holiday (flights inc) speak to a live operator 2 claim 0871277810810 + +free entry into our ??250 weekly comp just send the word enter to 84128 now. 18 t&c www.textcomp.com cust care 08712405020. + +kit strip - you have been billed 150p. netcollex ltd. po box 1013 ig11 oja + +u 447801259231 have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094597 + +"your chance to be on a reality fantasy show call now = 08707509020 just 20p per min ntt ltd +where you. what happen + +married local women looking for discreet action now! 5 real matches instantly to your phone. text match to 69969 msg cost 150p 2 stop txt stop bcmsfwc1n3xx + +you have 1 new message. call 0207-083-6089 + +win urgent! your mobile number has been awarded with a ??2000 prize guaranteed call 09061790121 from land line. claim 3030 valid 12hrs only 150ppm + +do u noe wat time e place dat sells 4d closes? + +ok i am on the way to home hi hi + +?? v ma fan... + +our prasanth ettans mother passed away last night. just pray for her and family. + +nothing but we jus tot u would ask cos u ba gua... but we went mt faber yest... yest jus went out already mah so today not going out... jus call lor... + +"spook up your mob with a halloween collection of a logo & pic message plus a free eerie tone +"free msg: get gnarls barkleys \crazy\"" ringtone totally free just reply go to this message right now!""" + +"double mins and txts 4 6months free bluetooth on orange. available on sony +"honeybee said: *i'm d sweetest in d world* god laughed & said: *wait +urgent! please call 09061743810 from landline. your abta complimentary 4* tenerife holiday or #5000 cash await collection sae t&cs box 326 cw25wx 150 ppm + +sex up ur mobile with a free sexy pic of jordan! just text babe to 88600. then every wk get a sexy celeb! pocketbabe.co.uk 4 more pics. 16 ??3/wk 087016248 + +lol boo i was hoping for a laugh + +come back to tampa ffffuuuuuuu + +i love to wine and dine my lady! + +"chile +lol i would but my mom would have a fit and tell the whole family how crazy and terrible i am + +your unique user id is 1172. for removal send stop to 87239 customer services 08708034412 + +married local women looking for discreet action now! 5 real matches instantly to your phone. text match to 69969 msg cost 150p 2 stop txt stop bcmsfwc1n3xx + +am only searching for good dual sim mobile pa. + +sexy singles are waiting for you! text your age followed by your gender as wither m or f e.g.23f. for gay men text your age followed by a g. e.g.23g. + +freemsg: hey - i'm buffy. 25 and love to satisfy men. home alone feeling randy. reply 2 c my pix! qlynnbv help08700621170150p a msg send stop to stop txts + +winner!! as a valued network customer you have been selected to receivea ??900 prize reward! to claim call 09061701461. claim code kl341. valid 12 hours only. + +guess what! somebody you know secretly fancies you! wanna find out who it is? give us a call on 09065394973 from landline datebox1282essexcm61xn 150p/min 18 + +get me out of this dump heap. my mom decided to come to lowes. boring. + +just finished eating. got u a plate. not leftovers this time. + +"aight +"hey +nah im goin 2 the wrks with j wot bout u? + +"you have been specially selected to receive a \3000 award! call 08712402050 before the lines close. cost 10ppm. 16+. t&cs apply. ag promo""" + +your unique user id is 1172. for removal send stop to 87239 customer services 08708034412 + +"urgent! your mobile was awarded a ??1 +you have 1 new voicemail. please call 08719181513. + +more people are dogging in your area now. call 09090204448 and join like minded guys. why not arrange 1 yourself. there's 1 this evening. a??1.50 minapn ls278bb + +we tried to contact you re your reply to our offer of a video handset? 750 anytime networks mins? unlimited text? camcorder? reply or call 08000930705 now + +you have registered sinco as payee. log in at icicibank.com and enter urn <#> to confirm. beware of frauds. do not share or disclose urn to anyone. + +important information 4 orange user . today is your lucky day!2find out why log onto http://www.urawinner.com there's a fantastic surprise awaiting you! + +"alright omw +4mths half price orange line rental & latest camera phones 4 free. had your phone 11mths ? call mobilesdirect free on 08000938767 to update now! or2stoptxt + +leave it de:-). start prepare for next:-).. + +can help u swoop by picking u up from wherever ur other birds r meeting if u want. + +had your mobile 10 mths? update to latest orange camera/video phones for free. save ??s with free texts/weekend calls. text yes for a callback orno to opt out + +wanna have a laugh? try chit-chat on your mobile now! logon by txting the word: chat and send it to no: 8883 cm po box 4217 london w1a 6zf 16+ 118p/msg rcvd + +guess what! somebody you know secretly fancies you! wanna find out who it is? give us a call on 09065394514 from landline datebox1282essexcm61xn 150p/min 18 + +and maybe some pressies + +i love u 2 babe! r u sure everything is alrite. is he being an idiot? txt bak girlie + +s..antha num corrct dane + +"you ve won! your 4* costa del sol holiday or ??5000 await collection. call 09050090044 now toclaim. sae +thanks 4 your continued support your question this week will enter u in2 our draw 4 ??100 cash. name the new us president? txt ans to 80082 + +text banneduk to 89555 to see! cost 150p textoperator g696ga 18+ xxx + +"loan for any purpose ??500 - ??75 +"call me da +todays voda numbers ending 1225 are selected to receive a ??50award. if you have a match please call 08712300220 quoting claim code 3100 standard rates app + +gent! we are trying to contact you. last weekends draw shows that you won a ??1000 prize guaranteed. call 09064012160. claim code k52. valid 12hrs only. 150ppm + +"you are guaranteed the latest nokia phone +i will be gentle princess! we will make sweet gentle love... + +i wnt to buy a bmw car urgently..its vry urgent.but hv a shortage of <#> lacs.there is no source to arng dis amt. <#> lacs..thats my prob + +"romantic paris. 2 nights +gent! we are trying to contact you. last weekends draw shows that you won a ??1000 prize guaranteed. call 09064012160. claim code k52. valid 12hrs only. 150ppm + +dont let studying stress you out. l8r. + +**free message**thanks for using the auction subscription service. 18 . 150p/msgrcvd 2 skip an auction txt out. 2 unsubscribe txt stop customercare 08718726270 + +will it help if we propose going back again tomorrow + +"urgent! call 09066350750 from your landline. your complimentary 4* ibiza holiday or 10 +warner village 83118 c colin farrell in swat this wkend village & get 1 free med. popcorn!just show msg+ticket.valid 4-7/12. c t&c . reply sony 4 mre film offers + +did he just say somebody is named tampa + +"i'll see if i can swing by in a bit +"0a$networks allow companies to bill for sms +sunshine quiz wkly q! win a top sony dvd player if u know which country the algarve is in? txt ansr to 82277. ??1.50 sp:tyrone + +"just arrived +so is there anything specific i should be doing with regards to jaklin or what because idk what the fuck + +december only! had your mobile 11mths+? you are entitled to update to the latest colour camera mobile for free! call the mobile update co free on 08002986906 + +thats cool. where should i cum? on you or in you? :) + +hey.. something came up last min.. think i wun be signing up tmr.. hee + +thank you baby! i cant wait to taste the real thing... + +"thank you +gent! we are trying to contact you. last weekends draw shows that you won a ??1000 prize guaranteed. call 09064012160. claim code k52. valid 12hrs only. 150ppm + +* free* polyphonic ringtone text super to 87131 to get your free poly tone of the week now! 16 sn pobox202 nr31 7zs subscription 450pw + +"\for the most sparkling shopping breaks from 45 per person; call 0121 2025050 or visit www.shortbreaks.org.uk\""""" + +"urgent! your mobile was awarded a ??1 +when did i use soc... i use it only at home... ?? dunno how 2 type it in word ar... + +i see the letter b on my car + +"urgent! please call 0906346330. your abta complimentary 4* spanish holiday or ??10 +free entry into our ??250 weekly comp just send the word enter to 88877 now. 18 t&c www.textcomp.com + +hey i will be late... i'm at amk. need to drink tea or coffee + +boltblue tones for 150p reply poly# or mono# eg poly3 1. cha cha slide 2. yeah 3. slow jamz 6. toxic 8. come with me or stop 4 more tones txt more + +"thk shld b can... ya +you'll not rcv any more msgs from the chat svc. for free hardcore services text go to: 69988 if u get nothing u must age verify with yr network & try again + +claire here am havin borin time & am now alone u wanna cum over 2nite? chat now 09099725823 hope 2 c u luv claire xx calls??1/minmoremobsemspobox45po139wa + +you'll not rcv any more msgs from the chat svc. for free hardcore services text go to: 69988 if u get nothing u must age verify with yr network & try again + +mobile club: choose any of the top quality items for your mobile. 7cfca1a + +am new 2 club & dont fink we met yet will b gr8 2 c u please leave msg 2day wiv ur area 09099726553 reply promised carlie x calls??1/minmobsmore lkpobox177hp51fl + +"this weeks savamob member offers are now accessible. just call 08709501522 for details! savamob +"ahhhh...just woken up!had a bad dream about u tho +get a free mobile video player free movie. to collect text go to 89105. its free! extra films can be ordered t's and c's apply. 18 yrs only + +win a year supply of cds 4 a store of ur choice worth ??500 & enter our ??100 weekly draw txt music to 87066 ts&cs www.ldew.com.subs16+1win150ppmx3 + +more people are dogging in your area now. call 09090204448 and join like minded guys. why not arrange 1 yourself. there's 1 this evening. a??1.50 minapn ls278bb + +all day working day:)except saturday and sunday.. + +it to 80488. your 500 free text messages are valid until 31 december 2005. + +"congrats! 1 year special cinema pass for 2 is yours. call 09061209465 now! c suprman v +any way where are you and what doing. + +message important information for o2 user. today is your lucky day! 2 find out why log onto http://www.urawinner.com there is a fantastic surprise awaiting you + +wat time u finish ur lect today? + +from 88066 lost ??12 help + +urgent! we are trying to contact u. todays draw shows that you have won a ??800 prize guaranteed. call 09050003091 from land line. claim c52. valid 12hrs only + +message important information for o2 user. today is your lucky day! 2 find out why log onto http://www.urawinner.com there is a fantastic surprise awaiting you + +ur cash-balance is currently 500 pounds - to maximize ur cash-in now send collect to 83600 only 150p/msg. cc: 08718720201 po box 114/14 tcr/w1 + +no probs hon! how u doinat the mo? + ++449071512431 urgent! this is the 2nd attempt to contact u!u have won ??1250 call 09071512433 b4 050703 t&csbcm4235wc1n3xx. callcost 150ppm mobilesvary. max??7. 50 + +can you call me plz. your number shows out of coveragd area. i have urgnt call in vasai & have to reach before 4'o clock so call me plz + +finally the match heading towards draw as your prediction. + +go fool dont cheat others ok + +howz pain?hope u r fine.. + +"sms services. for your inclusive text credits +you still at grand prix? + +"free-message: jamster!get the crazy frog sound now! for poly text mad1 +private! your 2004 account statement for 078498****7 shows 786 unredeemed bonus points. to claim call 08719180219 identifier code: 45239 expires 06.05.05 + +the current leading bid is 151. to pause this auction send out. customer care: 08718726270 + +he needs to stop going to bed and make with the fucking dealing + +new textbuddy chat 2 horny guys in ur area 4 just 25p free 2 receive search postcode or at gaytextbuddy.com. txt one name to 89693 + +ur balance is now ??500. ur next question is: who sang 'uptown girl' in the 80's ? 2 answer txt ur answer to 83600. good luck! + +me i'm not workin. once i get job... + +free entry in 2 a wkly comp to win fa cup final tkts 21st may 2005. text fa to 87121 to receive entry question(std txt rate)t&c's apply 08452810075over18's + +win a year supply of cds 4 a store of ur choice worth ??500 & enter our ??100 weekly draw txt music to 87066 ts&cs www.ldew.com.subs16+1win150ppmx3 + +"me not waking up until 4 in the afternoon +anything lar then ?_ not going home 4 dinner? + +surely result will offer:) + +lol no. just trying to make your day a little more interesting + +err... cud do. i'm going to at 8pm. i haven't got a way to contact him until then. + +"sounds good +"urgent!: your mobile no. was awarded a ??2 +07732584351 - rodger burns - msg = we tried to call you re your reply to our sms for a free nokia mobile + free camcorder. please call now 08000930705 for delivery tomorrow + +"height of \oh shit....!!\"" situation: a guy throws a luv letter on a gal but falls on her brothers head whos a gay" + +when i have stuff to sell i.ll tell you + +what you thinked about me. first time you saw me in class. + +"upgrdcentre orange customer +"that's the trouble with classes that go well - you're due a dodgey one ??_ expecting mine tomo! see you for recovery +we currently have a message awaiting your collection. to collect your message just call 08718723815. + +"hot live fantasies call now 08707500020 just 20p per min ntt ltd +do you want 750 anytime any network mins 150 text and a new video phone for only five pounds per week call 08000776320 now or reply for delivery tomorrow + +"nothing. i meant that once the money enters your account here +i am hot n horny and willing i live local to you - text a reply to hear strt back from me 150p per msg netcollex ltdhelpdesk: 02085076972 reply stop to end + +change windows logoff sound.. + +u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094599 + +text pass to 69669 to collect your polyphonic ringtones. normal gprs charges apply only. enjoy your tones + +"urgent! your mobile was awarded a ??1 +shall i ask one thing if you dont mistake me. + +u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094594 + +thanks for sending this mental ability question.. + +freemsg hi baby wow just got a new cam moby. wanna c a hot pic? or fancy a chat?im w8in 4utxt / rply chat to 82242 hlp 08712317606 msg150p 2rcv + +free entry into our ??250 weekly comp just send the word enter to 88877 now. 18 t&c www.textcomp.com + +i'll let you know when it kicks in + +you have been specially selected to receive a 2000 pound award! call 08712402050 before the lines close. cost 10ppm. 16+. t&cs apply. ag promo + +no other valentines huh? the proof is on your fb page. ugh i'm so glad i really didn't watch your rupaul show you tool! + +"hi babe its jordan +you in your room? i need a few + +big brother alert! the computer has selected u for 10k cash or #150 voucher. call 09064018838. ntt po box cro1327 18+ bt landline cost 150ppm mobiles vary + +you have an important customer service announcement. call freephone 0800 542 0825 now! + +congratulations ur awarded either ??500 of cd gift vouchers & free entry 2 our ??100 weekly draw txt music to 87066 tncs www.ldew.com 1 win150ppmx3age16 + +i will see in half an hour + +see the forwarding message for proof + +"sunshine hols. to claim ur med holiday send a stamped self address envelope to drinks on us uk +"win the newest ???harry potter and the order of the phoenix (book 5) reply harry +nice.nice.how is it working? + +"your chance to be on a reality fantasy show call now = 08707509020 just 20p per min ntt ltd +dunno lei shd b driving lor cos i go sch 1 hr oni. + +"win: we have a winner! mr. t. foley won an ipod! more exciting prizes soon +"haha i heard that +"this is the 2nd time we have tried 2 contact u. u have won the ??750 pound prize. 2 claim is easy +just checking in on you. really do miss seeing jeremiah. do have a great month + ++449071512431 urgent! this is the 2nd attempt to contact u!u have won ??1250 call 09071512433 b4 050703 t&csbcm4235wc1n3xx. callcost 150ppm mobilesvary. max??7. 50 + +are you in castor? you need to see something + +thanks for understanding. i've been trying to tell sura that. + +i'm serious. you are in the money base + +"bored of speed dating? try speedchat +freemsg today's the day if you are ready! i'm horny & live in your town. i love sex fun & games! netcollex ltd 08700621170150p per msg reply stop to end + +ur cash-balance is currently 500 pounds - to maximize ur cash-in now send collect to 83600 only 150p/msg. cc: 08718720201 po box 114/14 tcr/w1 + +pls help me tell sura that i'm expecting a battery from hont. and that if should pls send me a message about how to download movies. thanks + +double your mins & txts on orange or 1/2 price linerental - motorola and sonyericsson with b/tooth free-nokia free call mobileupd8 on 08000839402 or2optout/hv9d + +sunshine quiz wkly q! win a top sony dvd player if u know which country the algarve is in? txt ansr to 82277. ??1.50 sp:tyrone + +didn't you get hep b immunisation in nigeria. + +and now electricity just went out fml. + +are u coming to the funeral home + +a ??400 xmas reward is waiting for you! our computer has randomly picked you from our loyal mobile customers to receive a ??400 reward. just call 09066380611 + +tone club: your subs has now expired 2 re-sub reply monoc 4 monos or polyc 4 polys 1 weekly @ 150p per week txt stop 2 stop this msg free stream 0871212025016 + +mm have some kanji dont eat anything heavy ok + +"hottest pics straight to your phone!! see me getting wet and wanting +3. you have received your mobile content. enjoy + +ur balance is now ??500. ur next question is: who sang 'uptown girl' in the 80's ? 2 answer txt ur answer to 83600. good luck! + +"cmon babe +staff.science.nus.edu.sg/~phyhcmk/teaching/pc1323 + +you have an important customer service announcement from premier. call freephone 0800 542 0578 now! + +sexy sexy cum and text me im wet and warm and ready for some porn! u up for some fun? this msg is free recd msgs 150p inc vat 2 cancel text stop + +"urgent! call 09066350750 from your landline. your complimentary 4* ibiza holiday or 10 +do you want a new video handset? 750 anytime any network mins? half price line rental? camcorder? reply or call 08000930705 for delivery tomorrow + +u???ve bin awarded ??50 to play 4 instant cash. call 08715203028 to claim. every 9th player wins min ??50-??500. optout 08718727870 + +i know i'm lacking on most of this particular dramastorm's details but for the most part i'm not worried about that + +refused a loan? secured or unsecured? can't get credit? call free now 0800 195 6669 or text back 'help' & we will! + +"for your chance to win a free bluetooth headset then simply reply back with \adp\""""" + +somewhere out there beneath the pale moon light someone think in of u some where out there where dreams come true... goodnite & sweet dreams + +please call 08712402578 immediately as there is an urgent message waiting for you + +"lookatme!: thanks for your purchase of a video clip from lookatme! +u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094599 + +"update_now - xmas offer! latest motorola +ok i also wan 2 watch e 9 pm show... + +"thanks for your ringtone order +as a registered subscriber yr draw 4 a ??100 gift voucher will b entered on receipt of a correct ans. when are the next olympics. txt ans to 80062 + +urgent! your mobile number has been awarded with a ??2000 prize guaranteed. call 09061790126 from land line. claim 3030. valid 12hrs only 150ppm + +burger king - wanna play footy at a top stadium? get 2 burger king before 1st sept and go large or super with coca-cola and walk out a winner + +win a year supply of cds 4 a store of ur choice worth ??500 & enter our ??100 weekly draw txt music to 87066 ts&cs www.ldew.com.subs16+1win150ppmx3 + +you won't believe it but it's true. it's incredible txts! reply g now to learn truly amazing things that will blow your mind. from o2fwd only 18p/txt + +free top ringtone -sub to weekly ringtone-get 1st week free-send subpoly to 81618-?3 per week-stop sms-08718727870 + +"pdate_now - double mins and 1000 txts on orange tariffs. latest motorola +can you open the door? + +i am in hospital da. . i will return home in evening + +"i??m cool ta luv but v.tired 2 cause i have been doin loads of planning all wk +s....s...india going to draw the series after many years in south african soil.. + +"you can stop further club tones by replying \stop mix\"" see my-tone.com/enjoy. html for terms. club tones cost gbp4.50/week. mfl" + +tomorrow i am not going to theatre. . . so i can come wherever u call me. . . tell me where and when to come tomorrow + +okay name ur price as long as its legal! wen can i pick them up? y u ave x ams xx + +we tried to call you re your reply to our sms for a video mobile 750 mins unlimited text free camcorder reply or call now 08000930705 del thurs + +18 days to euro2004 kickoff! u will be kept informed of all the latest news and results daily. unsubscribe send get euro stop to 83222. + +"k.. i yan jiu liao... sat we can go 4 bugis vill one frm 10 to 3 den hop to parco 4 nb. sun can go cine frm 1030 to 2 +how come u got nothing to do? + +"urgent! please call 09066612661 from your landline +"get 3 lions england tone +wot student discount can u get on books? + +happy new year my no.1 man + +collect your valentine's weekend to paris inc flight & hotel + ??200 prize guaranteed! text: paris to no: 69101. www.rtf.sphosting.com + +"thanks for your ringtone order +natalja (25/f) is inviting you to be her friend. reply yes-440 or no-440 see her: www.sms.ac/u/nat27081980 stop? send stop frnd to 62468 + +valentines day special! win over ??1000 in our quiz and take your partner on the trip of a lifetime! send go to 83600 now. 150p/msg rcvd. custcare:08718720201 + +"loan for any purpose ??500 - ??75 +"nothing much +"our mobile number has won ??5000 +"hi babe its jordan +had your mobile 11mths ? update for free to oranges latest colour camera mobiles & unlimited weekend calls. call mobile upd8 on freefone 08000839402 or 2stoptxt + +i will come tomorrow di + +"latest nokia mobile or ipod mp3 player +??400 proze guaranteed! reply with: win to 83355 now! norcorp ltd.??1 +no. but we'll do medical missions to nigeria + +urgent! we are trying to contact u. todays draw shows that you have won a ??2000 prize guaranteed. call 09058094507 from land line. claim 3030. valid 12hrs only + +u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094599 + +tbs/persolvo. been chasing us since sept for??38 definitely not paying now thanks to your information. we will ignore them. kath. manchester. + +okay... i booked all already... including the one at bugis. + +how abt making some of the pics bigger? + +"0a$networks allow companies to bill for sms +sports fans - get the latest sports news str* 2 ur mobile 1 wk free plus a free tone txt sport on to 8007 www.getzed.co.uk 0870141701216+ norm 4txt/120p + +no. 1 nokia tone 4 ur mob every week! just txt nok to 87021. 1st tone free ! so get txtin now and tell ur friends. 150p/tone. 16 reply hl 4info + +*deep sigh* ... i miss you :-( ... i am really surprised you haven't gone to the net cafe yet to get to me ... don't you miss me? + +or maybe my fat fingers just press all these buttons and it doesn't know what to do. + +hi i'm sue. i am 20 years old and work as a lapdancer. i love sex. text me live - i'm i my bedroom now. text sue to 89555. by textoperator g2 1da 150ppmsg 18+ + +645 + +its going good...no problem..but still need little experience to understand american customer voice... + +"i'm home +"not yet chikku..k +i don't think he has spatula hands! + +"single line with a big meaning::::: \miss anything 4 ur \""best life\"" but" + +gent! we are trying to contact you. last weekends draw shows that you won a ??1000 prize guaranteed. call 09064012160. claim code k52. valid 12hrs only. 150ppm + +ok no prob... + +o was not into fps then. + +"u were outbid by simonwatson5120 on the shinco dvd plyr. 2 bid again +stop the story. i've told him i've returned it and he's saying i should not re order it. + +smile in pleasure smile in pain smile when trouble pours like rain smile when sum1 hurts u smile becoz someone still loves to see u smiling!! + +"i want some cock! my hubby's away +"sorry +\si.como no?!listened2the plaid album-quite gd&the new air1 which is hilarious-also bought??braindance??a comp.ofstuff on aphex??s ;abel + +"hungry gay guys feeling hungry and up 4 it +\er + +"hot live fantasies call now 08707509020 just 20p per min ntt ltd +"1000's flirting now! txt girl or bloke & ur name & age +want a new video phone? 750 anytime any network mins? half price line rental free text for 3 months? reply or call 08000930705 for free delivery + +our records indicate u maybe entitled to 5000 pounds in compensation for the accident you had. to claim 4 free reply with claim to this msg. 2 stop txt stop + +no 1 polyphonic tone 4 ur mob every week! just txt pt2 to 87575. 1st tone free ! so get txtin now and tell ur friends. 150p/tone. 16 reply hl 4info + +"sms services. for your inclusive text credits +"oh right +love it! i want to flood that pretty pussy with cum... + +would you like to see my xxx pics they are so hot they were nearly banned in the uk! + +that's y i said it's bad dat all e gals know u... wat u doing now? + +no shoot me. i'm in the docs waiting room. :/ + +i have printed it oh. so <#> come upstairs + +"this is the 2nd time we have tried 2 contact u. u have won the 750 pound prize. 2 claim is easy +"mmmmm ... i loved waking to your words this morning ! i miss you too +"v-aluable. a-ffectionate. l-oveable. e-ternal. n-oble. t-ruthful. i-ntimate. n-atural. e-namous. happy \valentines day\"" in advance""" + +"spook up your mob with a halloween collection of a logo & pic message plus a free eerie tone +moby pub quiz.win a ??100 high street prize if u know who the new duchess of cornwall will be? txt her first name to 82277.unsub stop ??1.50 008704050406 sp arrow + +message important information for o2 user. today is your lucky day! 2 find out why log onto http://www.urawinner.com there is a fantastic surprise awaiting you + +you will be receiving this week's triple echo ringtone shortly. enjoy it! + +88066 from 88066 lost 3pound help + +18 days to euro2004 kickoff! u will be kept informed of all the latest news and results daily. unsubscribe send get euro stop to 83222. + +please call our customer service representative on freephone 0808 145 4742 between 9am-11pm as you have won a guaranteed ??1000 cash or ??5000 prize! + +"congratulations - thanks to a good friend u have won the ??2 +i'm home. ard wat time will u reach? + +u calling me right? call my hand phone... + +no 1 polyphonic tone 4 ur mob every week! just txt pt2 to 87575. 1st tone free ! so get txtin now and tell ur friends. 150p/tone. 16 reply hl 4info + +urgent! your mobile number has been awarded with a ??2000 bonus caller prize. call 09058095201 from land line. valid 12hrs only + +free 1st week entry 2 textpod 4 a chance 2 win 40gb ipod or ??250 cash every wk. txt vpod to 81303 ts&cs www.textpod.net custcare 08712405020. + +oooh i got plenty of those! + +yeah get the unlimited + +"i call you later +"urgent! your mobile no *********** won a ??2 +"she was supposed to be but couldn't make it +"sms services. for your inclusive text credits +not heard from u4 a while. call 4 rude chat private line 01223585334 to cum. wan 2c pics of me gettin shagged then text pix to 8552. 2end send stop 8552 sam xxx + +hi i'm sue. i am 20 years old and work as a lapdancer. i love sex. text me live - i'm i my bedroom now. text sue to 89555. by textoperator g2 1da 150ppmsg 18+ + +"fantasy football is back on your tv. go to sky gamestar on sky active and play ??250k dream team. scoring starts on saturday +customer service annoncement. you have a new years delivery waiting for you. please call 07046744435 now to arrange delivery + +"urgent! last weekend's draw shows that you have won ??1000 cash or a spanish holiday! call now 09050000332 to claim. t&c: rstm +cds 4u: congratulations ur awarded ??500 of cd gift vouchers or ??125 gift guaranteed & freeentry 2 ??100 wkly draw xt music to 87066 tncs www.ldew.com1win150ppmx3age16 + +hhahhaahahah rofl wtf nig was leonardo in your room or something + +lol no ouch but wish i'd stayed out a bit longer + +please call our customer service representative on 0800 169 6031 between 10am-9pm as you have won a guaranteed ??1000 cash or ??5000 prize! + +you have won a nokia 7250i. this is what you get when you win our free auction. to take part send nokia to 86021 now. hg/suite342/2lands row/w1jhl 16+ + +well keep in mind i've only got enough gas for one more round trip barring a sudden influx of cash + +i'm leaving my house now... + +"you are being contacted by our dating service by someone you know! to find out who it is +"argh my 3g is spotty +"free entry to the gr8prizes wkly comp 4 a chance to win the latest nokia 8800 +t-mobile customer you may now claim your free camera phone upgrade & a pay & go sim card for your loyalty. call on 0845 021 3680.offer ends 28thfeb.t&c's apply + +"come to me right now +private! your 2003 account statement for shows 800 un-redeemed s. i. m. points. call 08715203652 identifier code: 42810 expires 29/10/0 + +* free* polyphonic ringtone text super to 87131 to get your free poly tone of the week now! 16 sn pobox202 nr31 7zs subscription 450pw + +hi dear we saw dear. we both are happy. where you my battery is low + +"this weeks savamob member offers are now accessible. just call 08709501522 for details! savamob +* am on my way + +want explicit sex in 30 secs? ring 02073162414 now! costs 20p/min + +call from 08702490080 - tells u 2 call 09066358152 to claim ??5000 prize. u have 2 enter all ur mobile & personal details @ the prompts. careful! + +get your garden ready for summer with a free selection of summer bulbs and seeds worth ??33:50 only with the scotsman this saturday. to stop go2 notxt.co.uk + +ha... both of us doing e same thing. but i got tv 2 watch. u can thk of where 2 go tonight or u already haf smth in mind... + +text pass to 69669 to collect your polyphonic ringtones. normal gprs charges apply only. enjoy your tones + +u 447801259231 have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094597 + +would me smoking you out help us work through this difficult time + +arun can u transfr me d amt + +no screaming means shouting.. + +i got your back! do you have any dislikes in bed? + +"al he does is moan at me if n e thin goes wrong its my fault&al de arguments r my fault&fed up of him of himso y bother? hav 2go +home so we can always chat + +adult 18 content your video will be with you shortly + +leaving to qatar tonite in search of an opportunity.all went fast.pls add me in ur prayers dear.rakhesh + +can you say what happen + +come to my home for one last time i wont do anything. trust me. + +please call 08712402779 immediately as there is an urgent message waiting for you + +don no da:)whats you plan? + +"my mobile number.pls sms ur mail id.convey regards to achan +"had your contract mobile 11 mnths? latest motorola +"7 wonders in my world 7th you 6th ur style 5th ur smile 4th ur personality 3rd ur nature 2nd ur sms and 1st \ur lovely friendship\""... good morning dear""" + +warner village 83118 c colin farrell in swat this wkend village & get 1 free med. popcorn!just show msg+ticket.valid 4-7/12. c t&c . reply sony 4 mre film offers + +cos daddy arranging time c wat time fetch ?_ mah... + +how much is torch in 9ja. + +someone has contacted our dating service and entered your phone because they fancy you! to find out who it is call from a landline 09111032124 . pobox12n146tf150p + +we tried to contact you re your reply to our offer of a video handset? 750 anytime any networks mins? unlimited text? camcorder? reply or call 08000930705 now + +congratulations you've won. you're a winner in our august ??1000 prize draw. call 09066660100 now. prize code 2309. + +"urgent ur awarded a complimentary trip to eurodisinc trav +ur cash-balance is currently 500 pounds - to maximize ur cash-in now send cash to 86688 only 150p/msg. cc: 08718720201 po box 114/14 tcr/w1 + +"solve d case : a man was found murdered on <decimal> . <#> afternoon. 1 +i sent you <#> bucks + +want 2 get laid tonight? want real dogging locations sent direct 2 ur mob? join the uk's largest dogging network bt txting gravel to 69888! nt. ec2a. 31p.msg + +hope you are having a good week. just checking in + +(bank of granite issues strong-buy) explosive pick for our members *****up over 300% *********** nasdaq symbol cdgt that is a $5.00 per.. + +i guess it is useless calling u 4 something important. + +hmmm...k...but i want to change the field quickly da:-)i wanna get system administrator or network administrator.. + +"hello darling how are you today? i would love to have a chat +you have 1 new message. call 0207-083-6089 + +"congrats! 2 mobile 3g videophones r yours. call 09061744553 now! videochat wid ur mates +dude we should go sup again + +ok lor. + +someone u know has asked our dating service 2 contact you! cant guess who? call 09058091854 now all will be revealed. po box385 m6 6wu + +bloomberg -message center +447797706009 why wait? apply for your future http://careers. bloomberg.com + +"final chance! claim ur ??150 worth of discount vouchers today! text yes to 85023 now! savamob +near kalainar tv office.thenampet + +even my brother is not like to speak with me. they treat me like aids patent. + +please call 08712404000 immediately as there is an urgent message waiting for you. + +please call our customer service representative on freephone 0808 145 4742 between 9am-11pm as you have won a guaranteed ??1000 cash or ??5000 prize! + +want explicit sex in 30 secs? ring 02073162414 now! costs 20p/min + +25p 4 alfie moon's children in need song on ur mob. tell ur m8s. txt tone charity to 8007 for nokias or poly charity for polys: zed 08701417012 profit 2 charity. + +marvel mobile play the official ultimate spider-man game (??4.50) on ur mobile right now. text spider to 83338 for the game & we ll send u a free 8ball wallpaper + +"09066362231 urgent! your mobile no 07xxxxxxxxx won a ??2 +last chance 2 claim ur ??150 worth of discount vouchers-text yes to 85023 now!savamob-member offers mobile t cs 08717898035. ??3.00 sub. 16 . remove txt x or stop + +"\for the most sparkling shopping breaks from 45 per person; call 0121 2025050 or visit www.shortbreaks.org.uk\""""" + +free entry into our ??250 weekly comp just send the word enter to 84128 now. 18 t&c www.textcomp.com cust care 08712405020. + +just sing hu. i think its also important to find someone female that know the place well preferably a citizen that is also smart to help you navigate through. even things like choosing a phone plan require guidance. when in doubt ask especially girls. + +ugh just got outta class + +"eerie nokia tones 4u +o we cant see if we can join denis and mina? or does denis want alone time + +yes see ya not on the dot + +"helloooo... wake up..! \sweet\"" \""morning\"" \""welcomes\"" \""you\"" \""enjoy\"" \""this day\"" \""with full of joy\"".. \""gud mrng\"".""" + +sunshine quiz! win a super sony dvd recorder if you canname the capital of australia? text mquiz to 82277. b + +i will treasure every moment we spend together... + +monthly password for wap. mobsi.com is 391784. use your wap phone not pc. + +dont forget you can place as many free requests with 1stchoice.co.uk as you wish. for more information call 08707808226. + +mind blastin.. no more tsunamis will occur from now on.. rajnikant stopped swimming in indian ocean..:-d + +freemsg: fancy a flirt? reply date now & join the uks fastest growing mobile dating service. msgs rcvd just 25p to optout txt stop to 83021. reply date now! + +"urgent. important information for 02 user. today is your lucky day! 2 find out why +love it! the girls at the office may wonder why you are smiling but sore... + +babe? you said 2 hours and it's been almost 4 ... is your internet down ? + +great new offer - double mins & double txt on best orange tariffs and get latest camera phones 4 free! call mobileupd8 free on 08000839402 now! or 2stoptxt t&cs + +"3 free tarot texts! find out about your love life now! try 3 for free! text chance to 85555 16 only! after 3 free +you see the requirements please + +i don't know u and u don't know me. send chat to 86688 now and let's find each other! only 150p/msg rcvd. hg/suite342/2lands/row/w1j6hl ldn. 18 years or over. + +"hello! just got here +"\symptoms\"" when u are in love: \""1.u like listening songs 2.u get stopped where u see the name of your beloved 3.u won't get angry when your""" + +december only! had your mobile 11mths+? you are entitled to update to the latest colour camera mobile for free! call the mobile update co free on 08002986906 + +"call 09094100151 to use ur mins! calls cast 10p/min (mob vary). service provided by aom +"k +do you want a new video handset? 750 anytime any network mins? half price line rental? camcorder? reply or call 08000930705 for delivery tomorrow + +"if e timing can +u have a secret admirer. reveal who thinks u r so special. call 09065174042. to opt out reply reveal stop. 1.50 per msg recd. cust care 07821230901 + +you have won a guaranteed ??1000 cash or a ??2000 prize. to claim yr prize call our customer service representative on 08714712379 between 10am-7pm cost 10p + +thank you princess! i want to see your nice juicy booty... + +dear u've been invited to xchat. this is our final attempt to contact u! txt chat to 86688 150p/msgrcvdhg/suite342/2lands/row/w1j6hl ldn 18 yrs + +i've sent ?_ my part.. + +nope but i'll b going 2 sch on fri quite early lor cos mys sis got paper in da morn :-) + +"good afternoon +ya:)going for restaurant.. + +"you have come into my life and brought the sun ..shiny down on me +free msg: single? find a partner in your area! 1000s of real people are waiting to chat now!send chat to 62220cncl send stopcs 08717890890??1.50 per msg + +it's ok i wun b angry. msg u aft i come home tonight. + +"sorry +"jay wants to work out first +stupid.its not possible + +"every king was once a crying baby and every great building was once a map.. not imprtant where u r today +"actually +congratulations ur awarded 500 of cd vouchers or 125gift guaranteed & free entry 2 100 wkly draw txt music to 87066 + +we tried to contact you re our offer of new video phone 750 anytime any network mins half price rental camcorder call 08000930705 or reply for delivery wed + +"probably not +your 2004 account for 07xxxxxxxxx shows 786 unredeemed points. to claim call 08719181259 identifier code: xxxxx expires 26.03.05 + +if i was i wasn't paying attention + +headin towards busetop + +eastenders tv quiz. what flower does dot compare herself to? d= violet e= tulip f= lily txt d e or f to 84025 now 4 chance 2 win ??100 cash wkent/150p16+ + +"just checked out +mm i am on the way to railway + +i have no money 4 steve mate! ! + +winner!! as a valued network customer you have been selected to receivea ??900 prize reward! to claim call 09061701461. claim code kl341. valid 12 hours only. + +"free2day sexy st george's day pic of jordan!txt pic to 89080 dont miss out +"freemsg hey u +quite late lar... ard 12 anyway i wun b drivin... + +hi 07734396839 ibh customer loyalty offer: the new nokia6600 mobile from only ??10 at txtauction!txt word:start to no:81151 & get yours now!4t& + +so how many days since then? + +"loan for any purpose ??500 - ??75 +good luck! draw takes place 28th feb 06. good luck! for removal send stop to 87239 customer services 08708034412 + +hi i won't b ard 4 christmas. but do enjoy n merry x'mas. + +your unique user id is 1172. for removal send stop to 87239 customer services 08708034412 + +2/2 146tf150p + +no problem. how are you doing? + +ha ha ha good joke. girls are situation seekers. + +"yo +dear 0776xxxxxxx u've been invited to xchat. this is our final attempt to contact u! txt chat to 86688 150p/msgrcvdhg/suite342/2lands/row/w1j6hl ldn 18yrs + +hi:)did you asked to waheeda fathima about leave? + +you are awarded a sipix digital camera! call 09061221061 from landline. delivery within 28days. t cs box177. m221bp. 2yr warranty. 150ppm. 16 . p p??3.99 + +december only! had your mobile 11mths+? you are entitled to update to the latest colour camera mobile for free! call the mobile update co free on 08002986906 + +enjoy the jamster videosound gold club with your credits for 2 new videosounds+2 logos+musicnews! get more fun from jamster.co.uk! 16+only help? call: 09701213186 + +urgent please call 09066612661 from landline. ??5000 cash or a luxury 4* canary islands holiday await collection. t&cs sae award. 20m12aq. 150ppm. 16+ ??? + +"congrats! 1 year special cinema pass for 2 is yours. call 09061209465 now! c suprman v +i'm already back home so no probably not + +"hungry gay guys feeling hungry and up 4 it +u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09065171142-stopsms-08718727870150ppm + +private! your 2003 account statement for shows 800 un-redeemed s. i. m. points. call 08715203694 identifier code: 40533 expires 31/10/04 + +do you want a new nokia 3510i colour phone deliveredtomorrow? with 300 free minutes to any mobile + 100 free texts + free camcorder reply or call 08000930705. + +"i think we're going to finn's now +someone has contacted our dating service and entered your phone because they fancy you! to find out who it is call from a landline 09111032124 . pobox12n146tf150p + +santa calling! would your little ones like a call from santa xmas eve? call 09077818151 to book you time. calls1.50ppm last 3mins 30s t&c www.santacalling.com + +someone u know has asked our dating service 2 contact you! cant guess who? call 09058091854 now all will be revealed. po box385 m6 6wu + +panasonic & bluetoothhdset free. nokia free. motorola free & doublemins & doubletxt on orange contract. call mobileupd8 on 08000839402 or call 2optout + +the evo. i just had to download flash. jealous? + +hard live 121 chat just 60p/min. choose your girl and connect live. call 09094646899 now! cheap chat uk's biggest live service. vu bcm1896wc1n3xx + +lyricalladie(21/f) is inviting you to be her friend. reply yes-910 or no-910. see her: www.sms.ac/u/hmmross stop? send stop frnd to 62468 + +missed call alert. these numbers called but left no message. 07008009200 + +"if you don't +"i can't speak +"eerie nokia tones 4u +"urgent! your mobile was awarded a ??1 +not heard from u4 a while. call me now am here all night with just my knickers on. make me beg for it like u did last time 01223585236 xx luv nikiyu4.net + +we stopped to get ice cream and will go back after + +sunshine quiz wkly q! win a top sony dvd player if u know which country the algarve is in? txt ansr to 82277. ??1.50 sp:tyrone + +we tried to call you re your reply to our sms for a video mobile 750 mins unlimited text free camcorder reply or call now 08000930705 del thurs + +had your mobile 11 months or more? u r entitled to update to the latest colour mobiles with camera for free! call the mobile update co free on 08002986030 + +eastenders tv quiz. what flower does dot compare herself to? d= violet e= tulip f= lily txt d e or f to 84025 now 4 chance 2 win ??100 cash wkent/150p16+ + +i dont have any of your file in my bag..i was in work when you called me.i 'll tell you if i find anything in my room. + +"urgent! you have won a 1 week free membership in our ??100 +not yet had..ya sapna aunty manege y'day hogidhe..chinnu full weak and swalpa black agidhane.. + +i am waiting for your call sir. + +"thanks for your ringtone order +"hi this is amy +sorry i cant take your call right now. it so happens that there r 2waxsto do wat you want. she can come and ill get her medical insurance. and she'll be able to deliver and have basic care. i'm currently shopping for the right medical insurance for her. so just give me til friday morning. thats when i.ll see the major person that can guide me to the right insurance. + +dear voucher holder have your next meal on us. use the following link on your pc 2 enjoy a 2 4 1 dining experiencehttp://www.vouch4me.com/etlp/dining.asp + +it to 80488. your 500 free text messages are valid until 31 december 2005. + +you are awarded a sipix digital camera! call 09061221061 from landline. delivery within 28days. t cs box177. m221bp. 2yr warranty. 150ppm. 16 . p p??3.99 + +how come it takes so little time for a child who is afraid of the dark to become a teenager who wants to stay out all night? + +"you have won ?1 +are you unique enough? find out from 30th august. www.areyouunique.co.uk + +free msg: ringtone!from: http://tms. widelive.com/index. wml?id=1b6a5ecef91ff9*37819&first=true18:0430-jul-05 + +hope you enjoyed your new content. text stop to 61610 to unsubscribe. help:08712400602450p provided by tones2you.co.uk + +i cant pick the phone right now. pls send a message + +"urgent! please call 0906346330. your abta complimentary 4* spanish holiday or ??10 +"500 new mobiles from 2004 +85233 free>ringtone!reply real + +where u been hiding stranger? + +i got a call from a landline number. . . i am asked to come to anna nagar . . . i will go in the afternoon + +"friendship is not a game to play +"urgent! your mobile no. was awarded ??2000 bonus caller prize on 5/9/03 this is our final try to contact u! call from landline 09064019788 box42wr29c +ur balance is now ??500. ur next question is: who sang 'uptown girl' in the 80's ? 2 answer txt ur answer to 83600. good luck! + +aight should i just plan to come up later tonight? + +urgent! we are trying to contact u. todays draw shows that you have won a ??2000 prize guaranteed. call 09058094507 from land line. claim 3030. valid 12hrs only + +sms auction - a brand new nokia 7250 is up 4 auction today! auction is free 2 join & take part! txt nokia to 86021 now! + +ok but knackered. just came home and went to sleep! not good at this full time work lark. + +"just wondering +bugis oso near wat... + +hi - this is your mailbox messaging sms alert. you have 4 messages. you have 21 matches. please call back on 09056242159 to retrieve your messages and matches + +rct' thnq adrian for u text. rgds vatian + +"double mins and txts 4 6months free bluetooth on orange. available on sony +todays voda numbers ending with 7634 are selected to receive a ??350 reward. if you have a match please call 08712300220 quoting claim code 7684 standard rates apply. + +"awesome question with a cute answer: someone asked a boy \how is ur life?\"" . . he smiled & answered: . . \""she is fine!\"" gudnite""" + +"sunshine hols. to claim ur med holiday send a stamped self address envelope to drinks on us uk +boltblue tones for 150p reply poly# or mono# eg poly3 1. cha cha slide 2. yeah 3. slow jamz 6. toxic 8. come with me or stop 4 more tones txt more + +ugh hopefully the asus ppl dont randomly do a reformat. + +come to medical college at 7pm ......forward it da + +no. yes please. been swimming? + +"just gettin a bit arty with my collages at the mo +we not leaving yet. ok lor then we go elsewhere n eat. u thk... + +i can do that! i want to please you both inside and outside the bedroom... + +our ride equally uneventful - not too many of those pesky cyclists around at that time of night ;). + +"it???s reassuring +"aight +:) + +yup i thk so until e shop closes lor. + +"to review and keep the fantastic nokia n-gage game deck with club nokia +"u can win ??100 of music gift vouchers every week starting now txt the word draw to 87066 tscs www.idew.com skillgame +"ugh y can't u just apologize +dont forget you can place as many free requests with 1stchoice.co.uk as you wish. for more information call 08707808226. + +no de. but call me after some time. ill tell you k + +okie... thanx... + +and picking them up from various points + +but that's on ebay it might be less elsewhere. + +88066 from 88066 lost 3pound help + +"want to funk up ur fone with a weekly new tone reply tones2u 2 this text. www.ringtones.co.uk +oh god i am happy to see your message after 3 days + +free entry in 2 a weekly comp for a chance to win an ipod. txt pod to 80182 to get entry (std txt rate) t&c's apply 08452810073 for details 18+ + +got meh... when? + +you have won a guaranteed ??1000 cash or a ??2000 prize. to claim yr prize call our customer service representative on 08714712379 between 10am-7pm cost 10p + +"i know you are thinkin malaria. but relax +i am hot n horny and willing i live local to you - text a reply to hear strt back from me 150p per msg netcollex ltdhelpdesk: 02085076972 reply stop to end + +congratulations ur awarded either ??500 of cd gift vouchers & free entry 2 our ??100 weekly draw txt music to 87066 tncs www.ldew.com 1 win150ppmx3age16 + +reply with your name and address and you will receive by post a weeks completely free accommodation at various global locations www.phb1.com ph:08700435505150p + +dear 0776xxxxxxx u've been invited to xchat. this is our final attempt to contact u! txt chat to 86688 150p/msgrcvdhg/suite342/2lands/row/w1j6hl ldn 18yrs + +wamma get laid?want real doggin locations sent direct to your mobile? join the uks largest dogging network. txt dogs to 69696 now!nyt. ec2a. 3lp ??1.50/msg. + +goodmorning sleeping ga. + +free for 1st week! no1 nokia tone 4 ur mob every week just txt nokia to 8007 get txting and tell ur mates www.getzed.co.uk pobox 36504 w45wq norm150p/tone 16+ + +"your chance to be on a reality fantasy show call now = 08707509020 just 20p per min ntt ltd +"bears pic nick +hmv bonus special 500 pounds of genuine hmv vouchers to be won. just answer 4 easy questions. play now! send hmv to 86688 more info:www.100percent-real.com + +haha mayb u're rite... u know me well. da feeling of being liked by someone is gd lor. u faster go find one then all gals in our group attached liao. + +there r many model..sony ericson also der.. <#> ..it luks good bt i forgot modl no + +dad went out oredi... + +free top ringtone -sub to weekly ringtone-get 1st week free-send subpoly to 81618-?3 per week-stop sms-08718727870 + +u r a winner u ave been specially selected 2 receive ??1000 cash or a 4* holiday (flights inc) speak to a live operator 2 claim 0871277810710p/min (18 ) + +"sometimes we put walls around our hearts +hows that watch resizing + +private! your 2003 account statement for shows 800 un-redeemed s. i. m. points. call 08718738002 identifier code: 48922 expires 21/11/04 + +urgent! we are trying to contact u. todays draw shows that you have won a ??800 prize guaranteed. call 09050001808 from land line. claim m95. valid12hrs only + +hmv bonus special 500 pounds of genuine hmv vouchers to be won. just answer 4 easy questions. play now! send hmv to 86688 more info:www.100percent-real.com + +free for 1st week! no1 nokia tone 4 ur mob every week just txt nokia to 8007 get txting and tell ur mates www.getzed.co.uk pobox 36504 w45wq norm150p/tone 16+ + +ringtone club: gr8 new polys direct to your mobile every week ! + +"this is the 2nd time we have tried 2 contact u. u have won the 750 pound prize. 2 claim is easy +would you like to see my xxx pics they are so hot they were nearly banned in the uk! + +lol yes. our friendship is hanging on a thread cause u won't buy stuff. + +"oops i did have it +do you want 750 anytime any network mins 150 text and a new video phone for only five pounds per week call 08002888812 or reply for delivery tomorrow + +lol your always so convincing. + +hi darlin im missin u hope you are having a good time. when are u back and what time if u can give me a call at home. jess xx + +yes..gauti and sehwag out of odi series. + +you should know now. so how's anthony. are you bringing money. i've school fees to pay and rent and stuff like that. thats why i need your help. a friend in need....| + +and smile for me right now as you go and the world will wonder what you are smiling about and think your crazy and keep away from you ... *grins* + +"urgent! your mobile no. was awarded ??2000 bonus caller prize on 5/9/03 this is our final try to contact u! call from landline 09064019788 box42wr29c +you have won! as a valued vodafone customer our computer has picked you to win a ??150 prize. to collect is easy. just call 09061743386 + +"dude. what's up. how teresa. hope you have been okay. when i didnt hear from these people +"urgent! your mobile was awarded a ??1 +no. 1 nokia tone 4 ur mob every week! just txt nok to 87021. 1st tone free ! so get txtin now and tell ur friends. 150p/tone. 16 reply hl 4info + +"bangbabes ur order is on the way. u should receive a service msg 2 download ur content. if u do not +important information 4 orange user 0789xxxxxxx. today is your lucky day!2find out why log onto http://www.urawinner.com there's a fantastic surprise awaiting you! + ++449071512431 urgent! this is the 2nd attempt to contact u!u have won ??1250 call 09071512433 b4 050703 t&csbcm4235wc1n3xx. callcost 150ppm mobilesvary. max??7. 50 + +"sorry +"yeah +free entry into our ??250 weekly comp just send the word enter to 88877 now. 18 t&c www.textcomp.com + +important information 4 orange user . today is your lucky day!2find out why log onto http://www.urawinner.com there's a fantastic surprise awaiting you! + +"say this slowly.? god +"urgent! your mobile no 077xxx won a ??2 +your 2004 account for 07xxxxxxxxx shows 786 unredeemed points. to claim call 08719181259 identifier code: xxxxx expires 26.03.05 + +"congratulations - thanks to a good friend u have won the ??2 +natalja (25/f) is inviting you to be her friend. reply yes-440 or no-440 see her: www.sms.ac/u/nat27081980 stop? send stop frnd to 62468 + +"bangbabes ur order is on the way. u should receive a service msg 2 download ur content. if u do not +what do u want when i come back?.a beautiful necklace as a token of my heart for you.thats what i will give but only to my wife of my liking.be that and see..no one can give you that.dont call me.i will wait till i come. + +network operator. the service is free. for t & c's visit 80488.biz + +"dear matthew please call 09063440451 from a landline +i cant pick the phone right now. pls send a message + +life has never been this much fun and great until you came in. you made it truly special for me. i won't forget you! enjoy @ one gbp/sms + +hello madam how are you ? + +"urgent!! your 4* costa del sol holiday or ??5000 await collection. call 09050090044 now toclaim. sae +am surfing online store. for offers do you want to buy any thing. + +pls tell nelson that the bb's are no longer comin. the money i was expecting aint coming + +lol yep did that yesterday. already got my fireplace. now its just another icon sitting there for me. + +kit strip - you have been billed 150p. netcollex ltd. po box 1013 ig11 oja + +"that way transport is less problematic than on sat night. by the way +i have gone into get info bt dont know what to do + +8007 25p 4 alfie moon's children in need song on ur mob. tell ur m8s. txt tone charity to 8007 for nokias or poly charity for polys :zed 08701417012 profit 2 charity + +we tried to contact you re your reply to our offer of a video phone 750 anytime any network mins half price line rental camcorder reply or call 08000930705 + +dis is yijue. i jus saw ur mail. in case huiming havent sent u my num. dis is my num. + +what's nannys address? + +dont know you bring some food + +ever thought about living a good life with a perfect partner? just txt back name and age to join the mobile community. (100p/sms) + +tessy..pls do me a favor. pls convey my birthday wishes to nimya..pls dnt forget it. today is her birthday shijas + +"today is sorry day.! if ever i was angry with you +ur cash-balance is currently 500 pounds - to maximize ur cash-in now send go to 86688 only 150p/meg. cc: 08718720201 hg/suite342/2lands row/w1j6hl + +"you have won ?1 +"go until jurong point +txt: call to no: 86888 & claim your reward of 3 hours talk time to use from your phone now! subscribe6gbp/mnth inc 3hrs 16 stop?txtstop www.gamb.tv + +" +"not that i know of +havent shopping now lor i juz arrive only + +the current leading bid is 151. to pause this auction send out. customer care: 08718726270 + +"wan2 win a meet+greet with westlife 4 u or a m8? they are currently on what tour? 1)unbreakable +our brand new mobile music service is now live. the free music player will arrive shortly. just install on your phone to browse content from the top artists. + +call germany for only 1 pence per minute! call from a fixed line via access number 0844 861 85 85. no prepayment. direct access! www.telediscount.co.uk + +yup... hey then one day on fri we can ask miwa and jiayin take leave go karaoke + +tbs/persolvo. been chasing us since sept for??38 definitely not paying now thanks to your information. we will ignore them. kath. manchester. + +"free-message: jamster!get the crazy frog sound now! for poly text mad1 +urgent! your mobile number has been awarded with a ??2000 prize guaranteed. call 09061790121 from land line. claim 3030. valid 12hrs only 150ppm + +private! your 2003 account statement for shows 800 un-redeemed s. i. m. points. call 08715203656 identifier code: 42049 expires 26/10/04 + +thanks for the vote. now sing along with the stars with karaoke on your mobile. for a free link just reply with sing now. + +customer loyalty offer:the new nokia6650 mobile from only ??10 at txtauction! txt word: start to no: 81151 & get yours now! 4t&ctxt tc 150p/mtmsg + +they don't put that stuff on the roads to keep it from getting slippery over there? + +on hen night. going with a swing + +romcapspam everyone around should be responding well to your presence since you are so warm and outgoing. you are bringing in a real breath of sunshine. + +"congrats! 1 year special cinema pass for 2 is yours. call 09061209465 now! c suprman v +good afternoon starshine! how's my boytoy? does he crave me yet? ache to fuck me ? *sips cappuccino* i miss you babe *teasing kiss* + +get a free mobile video player free movie. to collect text go to 89105. its free! extra films can be ordered t's and c's apply. 18 yrs only + +"ok. can be later showing around 8-8:30 if you want + cld have drink before. wld prefer not to spend money on nosh if you don't mind +"you are guaranteed the latest nokia phone +back 2 work 2morro half term over! can u c me 2nite 4 some sexy passion b4 i have 2 go back? chat now 09099726481 luv dena calls ??1/minmobsmorelkpobox177hp51fl + +wow so healthy. old airport rd lor. cant thk of anything else. but i'll b bathing my dog later. + +customer service annoncement. you have a new years delivery waiting for you. please call 07046744435 now to arrange delivery + +"lookatme!: thanks for your purchase of a video clip from lookatme! +double your mins & txts on orange or 1/2 price linerental - motorola and sonyericsson with b/tooth free-nokia free call mobileupd8 on 08000839402 or2optout/hv9d + +u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09065171142-stopsms-08718727870150ppm + +urgent! please call 09061213237 from a landline. ??5000 cash or a 4* holiday await collection. t &cs sae po box 177 m227xy. 16+ + +"wan2 win a meet+greet with westlife 4 u or a m8? they are currently on what tour? 1)unbreakable +tension ah?what machi?any problem? + +you also didnt get na hi hi hi hi hi + +private! your 2004 account statement for 07742676969 shows 786 unredeemed bonus points. to claim call 08719180248 identifier code: 45239 expires + +"last chance! claim ur ??150 worth of discount vouchers today! text shop to 85023 now! savamob +you will recieve your tone within the next 24hrs. for terms and conditions please see channel u teletext pg 750 + +so how are you really. what are you up to. how's the masters. and so on. + +"free game. get rayman golf 4 free from the o2 games arcade. 1st get ur games settings. reply post +valentines day special! win over ??1000 in our quiz and take your partner on the trip of a lifetime! send go to 83600 now. 150p/msg rcvd. custcare:08718720201. + +oh k.i think most of wi and nz players unsold. + +god created gap btwn ur fingers so dat sum1 vry special will fill those gaps by holding ur hands.. now plz dont ask y he created so much gap between legs !!! + +"thank you so much. when we skyped wit kz and sura +this message is free. welcome to the new & improved sex & dogging club! to unsubscribe from this service reply stop. msgs 18+only + +"latest news! police station toilet stolen +"urgent +send a logo 2 ur lover - 2 names joined by a heart. txt love name1 name2 mobno eg love adam eve 07123456789 to 87077 yahoo! pobox36504w45wq txtno 4 no ads 150p + +it has everything to do with the weather. keep extra warm. its a cold but nothing serious. pls lots of vitamin c + +"if i let you do this +when u love someone dont make them to love u as much as u do. but love them so much that they dont want to be loved by anyone except you... gud nit. + +no 1 polyphonic tone 4 ur mob every week! just txt pt2 to 87575. 1st tone free ! so get txtin now and tell ur friends. 150p/tone. 16 reply hl 4info + +we are okay. going to sleep now. later + +"i don't think i can get away for a trek that long with family in town +todays vodafone numbers ending with 4882 are selected to a receive a ??350 award. if your number matches call 09064019014 to receive your ??350 award. + +me fine..absolutly fine + +free entry into our ??250 weekly comp just send the word win to 80086 now. 18 t&c www.txttowin.co.uk + +"i know dat feelin had it with pete! wuld get with em +dear 0776xxxxxxx u've been invited to xchat. this is our final attempt to contact u! txt chat to 86688 150p/msgrcvdhg/suite342/2lands/row/w1j6hl ldn 18yrs + +"hi babe its chloe +"i'm taking derek & taylor to walmart +ummmmmaah many many happy returns of d day my dear sweet heart.. happy birthday dear + +"\ey! calm downon theacusations.. itxt u cos iwana know wotu r doin at thew/end... haventcn u in ages..ring me if ur up4 nething sat.love j xxx.\""""" + +winner!! as a valued network customer you have been selected to receivea ??900 prize reward! to claim call 09061701461. claim code kl341. valid 12 hours only. + +"double mins & 1000 txts on orange tariffs. latest motorola +wat makes u thk i'll fall down. but actually i thk i'm quite prone 2 falls. lucky my dad at home i ask him come n fetch me already. + +thanx 4 sending me home... + +i have lost 10 kilos as of today! + +call freephone 0800 542 0578 now! + +"hi this is amy +private! your 2003 account statement for shows 800 un-redeemed s. i. m. points. call 08715203694 identifier code: 40533 expires 31/10/04 + +its a valentine game. . . send dis msg to all ur friends. . if 5 answers r d same then someone really loves u. . ques- which colour suits me the best? + +do you want 750 anytime any network mins 150 text and a new video phone for only five pounds per week call 08000776320 now or reply for delivery tomorrow + +xmas prize draws! we are trying to contact u. todays draw shows that you have won a ??2000 prize guaranteed. call 09058094565 from land line. valid 12hrs only + +"hey +urgent! we are trying to contact u. todays draw shows that you have won a ??800 prize guaranteed. call 09050001295 from land line. claim a21. valid 12hrs only + +think i could stop by in like an hour or so? my roommate's looking to stock up for a trip + +urgent this is our 2nd attempt to contact u. your ??900 prize from yesterday is still awaiting collection. to claim call now 09061702893 + +you won't believe it but it's true. it's incredible txts! reply g now to learn truly amazing things that will blow your mind. from o2fwd only 18p/txt + +money i have won wining number 946 wot do i do next + +"no idea +"goodmorning +"we are hoping to get away by 7 +cashbin.co.uk (get lots of cash this weekend!) www.cashbin.co.uk dear welcome to the weekend we have got our biggest and best ever cash give away!! these.. + +where r we meeting? + +"urgent ur awarded a complimentary trip to eurodisinc trav +"as a valued customer +oh ya ya. i remember da. . + +winner!! as a valued network customer you have been selected to receivea ??900 prize reward! to claim call 09061701461. claim code kl341. valid 12 hours only. + +knock knock txt whose there to 80082 to enter r weekly draw 4 a ??250 gift voucher 4 a store of yr choice. t&cs www.tkls.com age16 to stoptxtstop??1.50/week + +8007 free for 1st week! no1 nokia tone 4 ur mob every week just txt nokia to 8007 get txting and tell ur mates www.getzed.co.uk pobox 36504 w4 5wq norm 150p/tone 16+ + +"fyi i'm at usf now +"you have been selected to stay in 1 of 250 top british hotels - for nothing! holiday worth ??350! to claim +good day to you too.pray for me.remove the teeth as its painful maintaining other stuff. + +dear dave this is your final notice to collect your 4* tenerife holiday or #5000 cash award! call 09061743806 from landline. tcs sae box326 cw25wx 150ppm + +urgent! we are trying to contact u. todays draw shows that you have won a ??2000 prize guaranteed. call 09066358361 from land line. claim y87. valid 12hrs only + +ur awarded a city break and could win a ??200 summer shopping spree every wk. txt store to 88039.skilgme.tscs087147403231winawk!age16+??1.50perwksub + +someone u know has asked our dating service 2 contact you! cant guess who? call 09058091854 now all will be revealed. po box385 m6 6wu + +dear 0776xxxxxxx u've been invited to xchat. this is our final attempt to contact u! txt chat to 86688 150p/msgrcvdhg/suite342/2lands/row/w1j6hl ldn 18yrs + +i dont know ask to my brother. nothing problem some thing that. just i told . + +nite... + +ok both our days. so what are you making for dinner tonite? am i invited? + +hi. i'm always online on yahoo and would like to chat with you someday + +private! your 2004 account statement for 07742676969 shows 786 unredeemed bonus points. to claim call 08719180248 identifier code: 45239 expires + +"new theory: argument wins d situation +not heard from u4 a while. call me now am here all night with just my knickers on. make me beg for it like u did last time 01223585236 xx luv nikiyu4.net + +please call 08712402972 immediately as there is an urgent message waiting for you + +"congratulations! thanks to a good friend u have won the ??2 +you still at the game? + +i don't know but i'm raping dudes at poker + +want explicit sex in 30 secs? ring 02073162414 now! costs 20p/min gsex pobox 2667 wc1n 3xx + +"for ur chance to win a ??250 cash every wk txt: action to 80608. t's&c's www.movietrivia.tv custcare 08712405022 +"hack chat. get backdoor entry into 121 chat rooms at a fraction of the cost. reply neo69 or call 09050280520 +do you want a new nokia 3510i colour phone delivered tomorrow? with 200 free minutes to any mobile + 100 free text + free camcorder reply or call 8000930705 + +ok set let u noe e details later... + +"your free ringtone is waiting to be collected. simply text the password \mix\"" to 85069 to verify. get usher and britney. fml mk17 92h. 450ppw 16""" + +i don't know u and u don't know me. send chat to 86688 now and let's find each other! only 150p/msg rcvd. hg/suite342/2lands/row/w1j6hl ldn. 18 years or over. + +thanks for the vote. now sing along with the stars with karaoke on your mobile. for a free link just reply with sing now. + +k..k..i'm also fine:)when will you complete the course? + +i luv u soo much u don??t understand how special u r 2 me ring u 2morrow luv u xxx + +"congrats! 1 year special cinema pass for 2 is yours. call 09061209465 now! c suprman v +"want to funk up ur fone with a weekly new tone reply tones2u 2 this text. www.ringtones.co.uk +"geeee ... i miss you already +"someone has contacted our dating service and entered your phone becausethey fancy you! to find out who it is call from a landline 09058098002. pobox1 +u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094599 + +dont think you need yellow card for uk travel. ask someone that has gone before. if you do its just <#> bucks + +"themob>hit the link to get a premium pink panther game +"solve d case : a man was found murdered on <decimal> . <#> afternoon. 1 +all done? all handed in? celebrations in full swing yet? + +no wonder... cos i dun rem seeing a silver car... but i thk i saw a black one... + +free entry into our ??250 weekly competition just text the word win to 80086 now. 18 t&c www.txttowin.co.uk + +you have 1 new voicemail. please call 08719181513. + +you have 1 new voicemail. please call 08719181503 + +i thk u dun haf 2 hint in e forum already lor... cos i told ron n darren is going 2 tell shuhui. + +it's still not working. and this time i also tried adding zeros. that was the savings. the checking is <#> + +private! your 2003 account statement for shows 800 un-redeemed s. i. m. points. call 08715203656 identifier code: 42049 expires 26/10/04 + +sports fans - get the latest sports news str* 2 ur mobile 1 wk free plus a free tone txt sport on to 8007 www.getzed.co.uk 0870141701216+ norm 4txt/120p + +congratulations ur awarded 500 of cd vouchers or 125gift guaranteed & free entry 2 100 wkly draw txt music to 87066 + +"sure +"hello from orange. for 1 month's free access to games +"urgent!! your 4* costa del sol holiday or ??5000 await collection. call 09050090044 now toclaim. sae +how to make a girl happy? it's not at all difficult to make girls happy. u only need to be... 1. a friend 2. companion 3. lover 4. chef . . . <#> . good listener <#> . organizer <#> . good boyfriend <#> . very clean <#> . sympathetic <#> . athletic <#> . warm . . . <#> . courageous <#> . determined <#> . true <#> . dependable <#> . intelligent . . . <#> . psychologist <#> . pest exterminator <#> . psychiatrist <#> . healer . . <#> . stylist <#> . driver . . aaniye pudunga venaam.. + +watching tv lor... + +ringtoneking 84484 + +interflora - ??it's not too late to order interflora flowers for christmas call 0800 505060 to place your order before midnight tomorrow. + +xclusive 2morow 28/5 soiree speciale zouk with nichols from paris.free roses 2 all ladies !!! info: 07946746291/07880867867 + +u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09065171142-stopsms-08 + +hmmm.still we dont have opener? + +sounds like there could be a lot of time spent in that chastity device boy ... *grins* ... or take your beatings like a good dog. going to lounge in a nice long bath now ? + +no no. i will check all rooms befor activities + +i know girls always safe and selfish know i got it pa. thank you. good night. + +freemsg: txt: call to no: 86888 & claim your reward of 3 hours talk time to use from your phone now! subscribe6gbp/mnth inc 3hrs 16 stop?txtstop + +mm yes dear look how i am hugging you both. :-p + +life has never been this much fun and great until you came in. you made it truly special for me. i won't forget you! enjoy @ one gbp/sms + +thing r good thanx got exams in march ive done no revision? is fran still with boyf? ive gotta interviw 4 exeter bit worried!x + +free msg:we billed your mobile number by mistake from shortcode 83332.please call 08081263000 to have charges refunded.this call will be free from a bt landline + +dude just saw a parked car with its sunroof popped up. sux + +urgent! your mobile number has been awarded with a ??2000 prize guaranteed. call 09061790126 from land line. claim 3030. valid 12hrs only 150ppm + +also hi wesley how've you been + +when did you get to the library + +jus finish blowing my hair. u finish dinner already? + +cold. dont be sad dear + +ok... the theory test? when are ?_ going to book? i think it's on 21 may. coz thought wanna go out with jiayin. but she isnt free + +"dear voucher holder +"this is the 2nd time we have tried 2 contact u. u have won the 750 pound prize. 2 claim is easy +ur cash-balance is currently 500 pounds - to maximize ur cash-in now send go to 86688 only 150p/msg. cc: 08718720201 po box 114/14 tcr/w1 + +we tried to contact you re your reply to our offer of a video phone 750 anytime any network mins half price line rental camcorder reply or call 08000930705 + +dear good morning now only i am up + +"5 free top polyphonic tones call 087018728737 +that is wondar full flim. + +themob>yo yo yo-here comes a new selection of hot downloads for our members to get for free! just click & open the next link sent to ur fone... + +i'm at home. please call + +what today-sunday..sunday is holiday..so no work.. + +"today's offer! claim ur ??150 worth of discount vouchers! text yes to 85023 now! savamob +"we have sent jd for customer service cum accounts executive to ur mail id +oh ho. is this the first time u use these type of words + +"had your contract mobile 11 mnths? latest motorola +join the uk's horniest dogging service and u can have sex 2nite!. just sign up and follow the instructions. txt entry to 69888 now! nyt.ec2a.3lp.msg + +"thanks da thangam +"daddy +so dont use hook up any how + +what time is ur flight tmr? + +"free2day sexy st george's day pic of jordan!txt pic to 89080 dont miss out +xmas iscoming & ur awarded either ??500 cd gift vouchers & free entry 2 r ??100 weekly draw txt music to 87066 tnc www.ldew.com1win150ppmx3age16subscription + +"theoretically yeah +"you are a ??1000 winner or guaranteed caller prize +i will reach ur home in <#> minutes + +"congrats 2 mobile 3g videophones r yours. call 09063458130 now! videochat wid ur mates +ok i wont call or disturb any one. i know all are avoiding me. i am a burden for all + +wat's da model num of ur phone? + +monthly password for wap. mobsi.com is 391784. use your wap phone not pc. + +"last chance! claim ur ??150 worth of discount vouchers today! text shop to 85023 now! savamob +"beautiful truth against gravity.. read carefully: \our heart feels light when someone is in it.. but it feels very heavy when someone leaves it..\"" goodmorning""" + +"whats that coming over the hill..... is it a monster! hope you have a great day. things r going fine here +"your account has been credited with 500 free text messages. to activate +when're you guys getting back? g said you were thinking about not staying for mcr + +"thanks for your ringtone order +"living is very simple.. loving is also simple.. laughing is too simple.. winning is tooo simple.. but +private! your 2003 account statement for 07753741225 shows 800 un-redeemed s. i. m. points. call 08715203677 identifier code: 42478 expires 24/10/04 + +"\oh fuck. juswoke up in a bed on a boatin the docks. slept wid 25 year old. spinout! giv u da gossip l8r. xxx\""""" + +dear 0776xxxxxxx u've been invited to xchat. this is our final attempt to contact u! txt chat to 86688 150p/msgrcvdhg/suite342/2lands/row/w1j6hl ldn 18yrs + +hi:)cts employee how are you? + +we have new local dates in your area - lots of new people registered in your area. reply date to start now! 18 only www.flirtparty.us replys150 + +"yeah +"it wont b until 2.15 as trying 2 sort house out +i called and said all to him:)then he have to choose this future. + +dear how you. are you ok? + +buy space invaders 4 a chance 2 win orig arcade game console. press 0 for games arcade (std wap charge) see o2.co.uk/games 4 terms + settings. no purchase + +"free2day sexy st george's day pic of jordan!txt pic to 89080 dont miss out +2p per min to call germany 08448350055 from your bt line. just 2p per min. check planettalkinstant.com for info & t's & c's. text stop to opt out + +"we spend our days waiting for the ideal path to appear in front of us.. but what we forget is.. \paths are made by walking.. not by waiting..\"" goodnight!""" + +dont think so. it turns off like randomlly within 5min of opening + +"house-maid is the murderer +raji..pls do me a favour. pls convey my birthday wishes to nimya. pls. today is her birthday. + +i'm done... + +dear 0776xxxxxxx u've been invited to xchat. this is our final attempt to contact u! txt chat to 86688 150p/msgrcvdhg/suite342/2lands/row/w1j6hl ldn 18yrs + +summers finally here! fancy a chat or flirt with sexy singles in yr area? to get matched up just reply summer now. free 2 join. optout txt stop help08714742804 + +dont gimme that lip caveboy + +tell me whos this pls:-) + +"sorry +"six chances to win cash! from 100 to 20 +07732584351 - rodger burns - msg = we tried to call you re your reply to our sms for a free nokia mobile + free camcorder. please call now 08000930705 for delivery tomorrow + +i think asking for a gym is the excuse for lazy people. i jog. + +all e best 4 ur driving tmr :-) + +do you want a new video handset? 750 any time any network mins? unlimited text? camcorder? reply or call now 08000930705 for del sat am + +"download as many ringtones as u like no restrictions +"i dont knw pa +dear u've been invited to xchat. this is our final attempt to contact u! txt chat to 86688 150p/msgrcvdhg/suite342/2lands/row/w1j6hl ldn 18 yrs + +"your account has been credited with 500 free text messages. to activate +"its cool but tyler had to take off so we're gonna buy for him and drop it off at his place later tonight. our total order is a quarter +any chance you might have had with me evaporated as soon as you violated my privacy by stealing my phone number from your employer's paperwork. not cool at all. please do not contact me again or i will report you to your supervisor. + +you have won a guaranteed ??1000 cash or a ??2000 prize. to claim yr prize call our customer service representative on 08714712412 between 10am-7pm cost 10p + +"xxxmobilemovieclub: to use your credit +mum say we wan to go then go... then she can shun bian watch da glass exhibition... + +"finally it has happened..! aftr decades..! beer is now cheaper than petrol! the goverment expects us to \drink\"". . . but don't \""drive \""""" + +even u dont get in trouble while convincing..just tel him once or twice and just tel neglect his msgs dont c and read it..just dont reply + +cool. i am <#> inches long. hope you like them big! + +your opinion about me? 1. over 2. jada 3. kusruthi 4. lovable 5. silent 6. spl character 7. not matured 8. stylish 9. simple pls reply.. + +marvel mobile play the official ultimate spider-man game (??4.50) on ur mobile right now. text spider to 83338 for the game & we ll send u a free 8ball wallpaper + +we tried to contact you re our offer of new video phone 750 anytime any network mins half price rental camcorder call 08000930705 or reply for delivery wed + +gent! we are trying to contact you. last weekends draw shows that you won a ??1000 prize guaranteed. call 09064012160. claim code k52. valid 12hrs only. 150ppm + +ok lor... + +great! i have to run now so ttyl! + +"no dice +someonone you know is trying to contact you via our dating service! to find out who it could be call from your mobile or landline 09064015307 box334sk38ch + +i know she called me + +"1000's flirting now! txt girl or bloke & ur name & age +you have an important customer service announcement. call freephone 0800 542 0825 now! + +future is not what we planned for tomorrow.....! it is the result of what we do today...! do the best in present... enjoy the future. + +urgent we are trying to contact you last weekends draw shows u have won a ??1000 prize guaranteed call 09064017295 claim code k52 valid 12hrs 150p pm + +not heard from u4 a while. call me now am here all night with just my knickers on. make me beg for it like u did last time 01223585236 xx luv nikiyu4.net + +"44 7732584351 +k. i will sent it again + +"you have been selected to stay in 1 of 250 top british hotels - for nothing! holiday worth ??350! to claim +private! your 2003 account statement for shows 800 un-redeemed s. i. m. points. call 08715203694 identifier code: 40533 expires 31/10/04 + +hiya do u like the hlday pics looked horrible in them so took mo out! hows the camp amrca thing? speak soon serena:) + +"latest nokia mobile or ipod mp3 player +??400 proze guaranteed! reply with: win to 83355 now! norcorp ltd.??1 +nt joking seriously i told + +free entry into our ??250 weekly comp just send the word enter to 88877 now. 18 t&c www.textcomp.com + +"cmon babe +"hello darling how are you today? i would love to have a chat +"just so that you know +"did you hear about the new \divorce barbie\""? it comes with all of ken's stuff!""" + +you are now unsubscribed all services. get tons of sexy babes or hunks straight to your phone! go to http://gotbabes.co.uk. no subscriptions. + +"hi jon +you have an important customer service announcement. call freephone 0800 542 0825 now! + +i'm job profile seems like bpo.. + +private! your 2003 account statement for 07808 xxxxxx shows 800 un-redeemed s. i. m. points. call 08719899217 identifier code: 41685 expires 07/11/04 + +this is my number by vivek.. + +or u ask they all if next sat can a not. if all of them can make it then i'm ok lor. + +i'm on my way home. went to change batt 4 my watch then go shop a bit lor. + +"i have 2 sleeping bags +u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094599 + +enjoy ur life. . good night + +then why no one talking to me + +"st andre +i'm now but have to wait till 2 for the bus to pick me. + +moby pub quiz.win a ??100 high street prize if u know who the new duchess of cornwall will be? txt her first name to 82277.unsub stop ??1.50 008704050406 sp arrow + +"your free ringtone is waiting to be collected. simply text the password \mix\"" to 85069 to verify. get usher and britney. fml mk17 92h. 450ppw 16""" + +k.k:)apo k.good movie. + +nite nite pocay wocay luv u more than n e thing 4eva i promise ring u 2morrowxxxx + +"someone u know has asked our dating service 2 contact you! cant guess who? call 09058095107 now all will be revealed. pobox 7 +k:)all the best:)congrats... + +call from 08702490080 - tells u 2 call 09066358152 to claim ??5000 prize. u have 2 enter all ur mobile & personal details @ the prompts. careful! + +"evening * v good if somewhat event laden. will fill you in +call freephone 0800 542 0578 now! + +dear where you will be when i reach there + +try to do something dear. you read something for exams + +oh that was a forwarded message. i thought you send that to me + +ok . . now i am in bus. . if i come soon i will come otherwise tomorrow + +ill be there on <#> ok. + +"hot live fantasies call now 08707509020 just 20p per min ntt ltd +"1.20 that call cost. which i guess isnt bad. miss ya +"thanks for your ringtone order +am in film ill call you later. + +were somewhere on fredericksburg + +bored housewives! chat n date now! 0871750.77.11! bt-national rate 10p/min only from landlines! + +not able to do anything. + +"sms services. for your inclusive text credits +its a part of checking iq + +"\hey! do u fancy meetin me at 4 at cha ?? hav a lil beverage on me. if not txt or ring me and we can meet up l8r. quite tired got in at 3 v.pist ;) love pete x x x\""""" + +ur awarded a city break and could win a ??200 summer shopping spree every wk. txt store to 88039.skilgme.tscs087147403231winawk!age16+??1.50perwksub + +my phone + +"fantasy football is back on your tv. go to sky gamestar on sky active and play ??250k dream team. scoring starts on saturday +"yo +get your garden ready for summer with a free selection of summer bulbs and seeds worth ??33:50 only with the scotsman this saturday. to stop go2 notxt.co.uk + +free for 1st week! no1 nokia tone 4 ur mob every week just txt nokia to 87077 get txting and tell ur mates. zed pobox 36504 w45wq norm150p/tone 16+ + +you have 1 new voicemail. please call 08719181513. + +u call me alter at 11 ok. + +your gonna have to pick up a $1 burger for yourself on your way home. i can't even move. pain is killing me. + +"urgent! call 09066350750 from your landline. your complimentary 4* ibiza holiday or 10 +i love you both too :-) + +"hi this is amy +get ready to moan and scream :) + +good morning princess! happy new year! + +urgent please call 09066612661 from landline. ??5000 cash or a luxury 4* canary islands holiday await collection. t&cs sae award. 20m12aq. 150ppm. 16+ ??? + +appt is at <time> am. not my fault u don't listen. i told u twice + +forgot to tell ?_ smth.. can ?_ like number the sections so that it's clearer.. + +dating:i have had two of these. only started after i sent a text to talk sport radio last week. any connection do you think or coincidence? + +wow! the boys r back. take that 2007 uk tour. win vip tickets & pre-book with vip club. txt club to 81303. trackmarque ltd info. + +u 447801259231 have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094597 + +sms. ac sun0819 posts hello:\you seem cool + +from 88066 lost ??12 help + +talk sexy!! make new friends or fall in love in the worlds most discreet text dating service. just text vip to 83110 and see who you could meet. + +"loan for any purpose ??500 - ??75 +we tried to call you re your reply to our sms for a video mobile 750 mins unlimited text + free camcorder reply of call 08000930705 now + +am slow in using biola's fne + +wishing you a beautiful day. each moment revealing even more things to keep you smiling. do enjoy it. + +urgent! please call 09061213237 from landline. ??5000 cash or a luxury 4* canary islands holiday await collection. t&cs sae po box 177. m227xy. 150ppm. 16+ + +i'm gonna rip out my uterus. + +"today is \song dedicated day..\"" which song will u dedicate for me? send this to all ur valuable frnds but first rply me...""" + +we tried to contact you re your reply to our offer of a video handset? 750 anytime networks mins? unlimited text? camcorder? reply or call 08000930705 now + +yes princess! i want to make you happy... + +i've told you everything will stop. just dont let her get dehydrated. + +"you are always putting your business out there. you put pictures of your ass on facebook. you are one of the most open people i've ever met. why would i think a picture of your room would hurt you +"get 3 lions england tone +"\what are youdoing later? sar xxx\""""" + +private! your 2003 account statement for shows 800 un-redeemed s. i. m. points. call 08719899230 identifier code: 41685 expires 07/11/04 + +"sorry +"final chance! claim ur ??150 worth of discount vouchers today! text yes to 85023 now! savamob +"aight +you've always been the brainy one. + +what does the dance river do? + +loans for any purpose even if you have bad credit! tenants welcome. call noworriesloans.com on 08717111821 + +"urgent! your mobile no 07808726822 was awarded a ??2 +thesmszone.com lets you send free anonymous and masked messages..im sending this message from there..do you see the potential for abuse??? + +ok. not sure what time tho as not sure if can get to library before class. will try. see you at some point! have good eve. + +no message..no responce..what happend? + +let ur heart be ur compass ur mind ur map ur soul ur guide and u will never loose in world....gnun - sent via way2sms.com + +"??_ we r stayin here an extra week +u 447801259231 have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094597 + +"haha yeah +lol ... no just was busy + +don no da:)whats you plan? + +good words.... but words may leave u in dismay many times. + +no problem. talk to you later + +please call 08712402972 immediately as there is an urgent message waiting for you + +want the latest video handset? 750 anytime any network mins? half price line rental? reply or call 08000930705 for delivery tomorrow + +there are no other charges after transfer charges and you can withdraw anyhow you like + +u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094599 + +goin to workout lor... muz lose e fats... + +now get step 2 outta the way. congrats again. + +y de asking like this. + +my no. in luton 0125698789 ring me if ur around! h* + +gr8 new service - live sex video chat on your mob - see the sexiest dirtiest girls live on ur phone - 4 details text horny to 89070 to cancel send stop to 89070 + +"double mins and txts 4 6months free bluetooth on orange. available on sony +congratulations u can claim 2 vip row a tickets 2 c blu in concert in november or blu gift guaranteed call 09061104276 to claim ts&cs www.smsco.net cost??3.75max + +"thanks again for your reply today. when is ur visa coming in. and r u still buying the gucci and bags. my sister things are not easy +i'll talk to the others and probably just come early tomorrow then + +"to review and keep the fantastic nokia n-gage game deck with club nokia +"welcome to uk-mobile-date this msg is free giving you free calling to 08719839835. future mgs billed at 150p daily. to cancel send \go stop\"" to 89123""" + +"haha figures +hi. customer loyalty offer:the new nokia6650 mobile from only ??10 at txtauction! txt word: start to no: 81151 & get yours now! 4t&ctxt tc 150p/mtmsg + +lmao you know me so well... + +"someone has contacted our dating service and entered your phone becausethey fancy you! to find out who it is call from a landline 09058098002. pobox1 +"as a sim subscriber +ur awarded a city break and could win a ??200 summer shopping spree every wk. txt store to 88039.skilgme.tscs087147403231winawk!age16+??1.50perwksub + +"our mobile number has won ??5000 +"someone u know has asked our dating service 2 contact you! cant guess who? call 09058097189 now all will be revealed. pobox 6 +"got what it takes 2 take part in the wrc rally in oz? u can with lucozade energy! text rally le to 61200 (25p) +k i'll be sure to get up before noon and see what's what + +your account has been refilled successfully by inr <decimal> . your keralacircle prepaid account balance is rs <decimal> . your transaction id is kr <#> . + +please call 08712402902 immediately as there is an urgent message waiting for you. + +there bold 2 <#> . is that yours + +loans for any purpose even if you have bad credit! tenants welcome. call noworriesloans.com on 08717111821 + +"you are sweet as well +ok. i only ask abt e movie. u wan ktv oso? + +"yes +"sms services. for your inclusive text credits +stupid.its not possible + +hi 07734396839 ibh customer loyalty offer: the new nokia6600 mobile from only ??10 at txtauction!txt word:start to no:81151 & get yours now!4t& + +"xmas offer! latest motorola +buy space invaders 4 a chance 2 win orig arcade game console. press 0 for games arcade (std wap charge) see o2.co.uk/games 4 terms + settings. no purchase + +natalja (25/f) is inviting you to be her friend. reply yes-440 or no-440 see her: www.sms.ac/u/nat27081980 stop? send stop frnd to 62468 + +its a big difference. <#> versus <#> every <#> hrs + +"had your mobile 10 mths? update to the latest camera/video phones for free. keep ur same number +"had your contract mobile 11 mnths? latest motorola +ur awarded a city break and could win a ??200 summer shopping spree every wk. txt store to 88039 . skilgme. tscs087147403231winawk!age16 ??1.50perwksub + +you are not bothering me but you have to trust my answers. pls. + +congratulations ur awarded either ??500 of cd gift vouchers & free entry 2 our ??100 weekly draw txt music to 87066 tncs www.ldew.com1win150ppmx3age16 + +camera - you are awarded a sipix digital camera! call 09061221066 fromm landline. delivery within 28 days. + +"free2day sexy st george's day pic of jordan!txt pic to 89080 dont miss out +you can donate ??2.50 to unicef's asian tsunami disaster support fund by texting donate to 864233. ??2.50 will be added to your next bill + +"this is the 2nd time we have tried 2 contact u. u have won the 750 pound prize. 2 claim is easy +take care and sleep well.you need to learn to change in life.you only need to get convinced on that.i will wait but no more conversations between us.get convinced by that time.your family is over for you in many senses.respect them but not overemphasise.or u have no role in my life. + +"beautiful truth against gravity.. read carefully: \our heart feels light when someone is in it.. but it feels very heavy when someone leaves it..\"" good night""" + +sorry . i will be able to get to you. see you in the morning. + +oh ok i didnt know what you meant. yep i am baby jontin + +do you want 750 anytime any network mins 150 text and a new video phone for only five pounds per week call 08002888812 or reply for delivery tomorrow + +important information 4 orange user . today is your lucky day!2find out why log onto http://www.urawinner.com there's a fantastic surprise awaiting you! + +i know you mood off today + +"omw back to tampa from west palm +there are many company. tell me the language. + +u haven??t lost me ill always b here 4u.i didn??t intend 2 hurt u but i never knew how u felt about me when iwas+marine&that??s what itried2tell urmom.i careabout u + +today my system sh get ready.all is well and i am also in the deep well + +"best msg: it's hard to be with a person +did you catch the bus ? are you frying an egg ? did you make a tea? are you eating your mom's left over dinner ? do you feel my love ? + +ha... u jus ate honey ar? so sweet... + +free entry in 2 a wkly comp to win fa cup final tkts 21st may 2005. text fa to 87121 to receive entry question(std txt rate)t&c's apply 08452810075over18's + +i think it's all still in my car + +"cant believe i said so many things to you this morning when all i really wanted to say was good morning +lul im gettin some juicy gossip at the hospital. two nurses are talking about how fat they are gettin. and one thinks shes obese. oyea. + +"shop till u drop +we tried to contact you re our offer of new video phone 750 anytime any network mins half price rental camcorder call 08000930705 or reply for delivery wed + +dear voucher holder 2 claim your 1st class airport lounge passes when using your holiday voucher call 08704439680. when booking quote 1st class x 2 + +dude while were makin those weirdy brownies my sister made awesome cookies. i took pics. + +y she dun believe leh? i tot i told her it's true already. i thk she muz c us tog then she believe. + +"hi elaine +urgent! we are trying to contact you. last weekends draw shows that you have won a ??900 prize guaranteed. call 09061701939. claim code s89. valid 12hrs only + +sorry i missed your call let's talk when you have the time. i'm on 07090201529 + +had your mobile 11 months or more? u r entitled to update to the latest colour mobiles with camera for free! call the mobile update co free on 08002986030 + +urgent! we are trying to contact u. todays draw shows that you have won a ??2000 prize guaranteed. call 09058094507 from land line. claim 3030. valid 12hrs only + +urgent! please call 09061743811 from landline. your abta complimentary 4* tenerife holiday or ??5000 cash await collection sae t&cs box 326 cw25wx 150ppm + +wrong phone! this phone! i answer this one but assume the other is people i don't well + +have you ever had one foot before? + +ur cash-balance is currently 500 pounds - to maximize ur cash-in now send cash to 86688 only 150p/msg. cc: 08708800282 hg/suite342/2lands row/w1j6hl + +oops my phone died and i didn't even know. yeah i like it better. + +hope you enjoyed your new content. text stop to 61610 to unsubscribe. help:08712400602450p provided by tones2you.co.uk + +having lunch:)you are not in online?why? + +"yeah that's what i thought +a lot of this sickness thing going round. take it easy. hope u feel better soon. lol + +free entry into our ??250 weekly comp just send the word enter to 84128 now. 18 t&c www.textcomp.com cust care 08712405020. + +i'm working technical support :)voice process. + +"you've won tkts to the euro2004 cup final or ??800 cash +great new offer - double mins & double txt on best orange tariffs and get latest camera phones 4 free! call mobileupd8 free on 08000839402 now! or 2stoptxt t&cs + +urgent! your mobile number has been awarded a 2000 prize guaranteed. call 09061790125 from landline. claim 3030. valid 12hrs only 150ppm + +dude how do you like the buff wind. + +"do you ever notice that when you're driving +k.k:)advance happy pongal. + +"hi +just hopeing that wasn???t too pissed up to remember and has gone off to his sisters or something! + +a ??400 xmas reward is waiting for you! our computer has randomly picked you from our loyal mobile customers to receive a ??400 reward. just call 09066380611 + +"well +txt: call to no: 86888 & claim your reward of 3 hours talk time to use from your phone now! subscribe6gbp/mnth inc 3hrs 16 stop?txtstop www.gamb.tv + +bring it if you got it + +u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09065171142-stopsms-08 + +you have 1 new voicemail. please call 08719181513. + +"so many people seems to be special at first sight +you are awarded a sipix digital camera! call 09061221061 from landline. delivery within 28days. t cs box177. m221bp. 2yr warranty. 150ppm. 16 . p p??3.99 + +today is accept day..u accept me as? brother sister lover dear1 best1 clos1 lvblefrnd jstfrnd cutefrnd lifpartnr belovd swtheart bstfrnd no rply means enemy + +"if you're still up +don't b floppy... b snappy & happy! only gay chat service with photo upload call 08718730666 (10p/min). 2 stop our texts call 08712460324 + +i wanted to ask ?_ to wait 4 me to finish lect. cos my lect finishes in an hour anyway. + +"pdate_now - double mins and 1000 txts on orange tariffs. latest motorola +"claim a 200 shopping spree +"fran i decided 2 go n e way im completely broke an knackered i got up bout 3 c u 2mrw love janx p.s this is my dads fone +"free2day sexy st george's day pic of jordan!txt pic to 89080 dont miss out +"free message activate your 500 free text messages by replying to this message with the word free for terms & conditions +"* was really good to see you the other day dudette +free for 1st week! no1 nokia tone 4 ur mob every week just txt nokia to 8007 get txting and tell ur mates www.getzed.co.uk pobox 36504 w45wq norm150p/tone 16+ + +you are right though. i can't give you the space you want and need. this is really starting to become an issue. i was going to suggest setting a definite move out--if i'm still there-- after greece. but maybe you are ready and should do it now. + +"sppok up ur mob with a halloween collection of nokia logo&pic message plus a free eerie tone +panasonic & bluetoothhdset free. nokia free. motorola free & doublemins & doubletxt on orange contract. call mobileupd8 on 08000839402 or call 2optout + +you have 1 new voicemail. please call 08719181513. + +please ask mummy to call father + +only 2% students solved this cat question in 'xam... 5+3+2= <#> 9+2+4= <#> 8+6+3= <#> then 7+2+5=????? tell me the answer if u r brilliant...1thing.i got d answr. + +"pdate_now - double mins and 1000 txts on orange tariffs. latest motorola +"you are being contacted by our dating service by someone you know! to find out who it is +so when you gonna get rimac access + +camera - you are awarded a sipix digital camera! call 09061221066 fromm landline. delivery within 28 days. + +water logging in desert. geoenvironmental implications. + +your next amazing xxx picsfree1 video will be sent to you enjoy! if one vid is not enough for 2day text back the keyword picsfree1 to get the next video. + +"damn +he is there. you call and meet him + +i'm in office now da:)where are you? + +no. to be nosy i guess. idk am i over reacting if i'm freaked? + +free>ringtone! reply real or poly eg real1 1. pushbutton 2. dontcha 3. babygoodbye 4. golddigger 5. webeburnin 1st tone free and 6 more when u join for ??3/wk + +now project pa. after that only i can come. + +"urgent ur awarded a complimentary trip to eurodisinc trav +"customer service announcement. we recently tried to make a delivery to you but were unable to do so +"goal! arsenal 4 (henry +great news! call freefone 08006344447 to claim your guaranteed ??1000 cash or ??2000 gift. speak to a live operator now! + +xmas prize draws! we are trying to contact u. todays draw shows that you have won a ??2000 prize guaranteed. call 09058094565 from land line. valid 12hrs only + +"for ur chance to win a ??250 wkly shopping spree txt: shop to 80878. t's&c's www.txt-2-shop.com custcare 08715705022 +"could you not read me +at home also. + +"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 +"babe! i fucking love you too !! you know? fuck it was so good to hear your voice. i so need that. i crave it. i can't get enough. i adore you +anything is valuable in only 2 situations: first- before getting it... second- after loosing it... + +jamster! to get your free wallpaper text heart to 88888 now! t&c apply. 16 only. need help? call 08701213186. + +camera - you are awarded a sipix digital camera! call 09061221066 fromm landline. delivery within 28 days. + +"thanks for your ringtone order +midnight at the earliest + +sorry i missed your call let's talk when you have the time. i'm on 07090201529 + +"latest nokia mobile or ipod mp3 player +??400 proze guaranteed! reply with: win to 83355 now! norcorp ltd.??1 +get a free mobile video player free movie. to collect text go to 89105. its free! extra films can be ordered t's and c's apply. 18 yrs only + +sms auction - a brand new nokia 7250 is up 4 auction today! auction is free 2 join & take part! txt nokia to 86021 now! hg/suite342/2lands row/w1j6hl + +win a ??1000 cash prize or a prize worth ??5000 + +adult 18 content your video will be with you shortly + +hey what's up charles sorry about the late reply. + +"oh! shit +sms auction - a brand new nokia 7250 is up 4 auction today! auction is free 2 join & take part! txt nokia to 86021 now! hg/suite342/2lands row/w1j6hl + +"cool +pls go ahead with watts. i just wanted to be sure. do have a great weekend. abiola + +hi i'm sue. i am 20 years old and work as a lapdancer. i love sex. text me live - i'm i my bedroom now. text sue to 89555. by textoperator g2 1da 150ppmsg 18+ + +"whatever +tell me something. thats okay. + +don't fret. i'll buy the ovulation test strips and send them to you. you wont get them til like march. can you send me your postal address.u'll be alright.okay. + +if i said anything wrong sorry de:-) + +your credits have been topped up for http://www.bubbletext.com your renewal pin is tgxxrz + +ha ha cool cool chikku chikku:-):-db-) + +you have 1 new voicemail. please call 08719181503 + +y dun cut too short leh. u dun like ah? she failed. she's quite sad. + +wow! the boys r back. take that 2007 uk tour. win vip tickets & pre-book with vip club. txt club to 81303. trackmarque ltd info. + +natalja (25/f) is inviting you to be her friend. reply yes-440 or no-440 see her: www.sms.ac/u/nat27081980 stop? send stop frnd to 62468 + +"text82228>> get more ringtones +congrats. that's great. i wanted to tell you not to tell me your score cos it might make me relax. but its motivating me so thanks for sharing + +so u workin overtime nigpun? + +"hiya +ur cash-balance is currently 500 pounds - to maximize ur cash-in now send cash to 86688 only 150p/msg. cc: 08718720201 po box 114/14 tcr/w1 + +hello beautiful r u ok? i've kinda ad a row wiv and he walked out the pub?? i wanted a night wiv u miss u + +"got what it takes 2 take part in the wrc rally in oz? u can with lucozade energy! text rally le to 61200 (25p) +"merry christmas to you too babe +"last chance! claim ur ??150 worth of discount vouchers today! text shop to 85023 now! savamob +private! your 2003 account statement for 078 + +"your chance to be on a reality fantasy show call now = 08707509020 just 20p per min ntt ltd +he didn't see his shadow. we get an early spring yay + +alrite + +ok... let u noe when i leave my house. + +tessy..pls do me a favor. pls convey my birthday wishes to nimya..pls dnt forget it. today is her birthday shijas + +big brother alert! the computer has selected u for 10k cash or #150 voucher. call 09064018838. ntt po box cro1327 18+ bt landline cost 150ppm mobiles vary + +money i have won wining number 946 wot do i do next + +honey boo i'm missing u. + +"our dating service has been asked 2 contact u by someone shy! call 09058091870 now all will be revealed. pobox84 +joy's father is john. then john is the name of joy's father. mandan + +"i sent my scores to sophas and i had to do secondary application for a few schools. i think if you are thinking of applying +what time you coming down later? + +sunshine quiz wkly q! win a top sony dvd player if u know which country liverpool played in mid week? txt ansr to 82277. ??1.50 sp:tyrone + +07732584351 - rodger burns - msg = we tried to call you re your reply to our sms for a free nokia mobile + free camcorder. please call now 08000930705 for delivery tomorrow + +"win the newest ??harry potter and the order of the phoenix (book 5) reply harry +"fr'ndship is like a needle of a clock. though v r in d same clock +i had askd u a question some hours before. its answer + +i was wondering if it would be okay for you to call uncle john and let him know that things are not the same in nigeria as they r here. that <#> dollars is 2years sent and that you know its a strain but i plan to pay back every dime he gives. every dime so for me to expect anything from you is not practical. something like that. + +been running but only managed 5 minutes and then needed oxygen! might have to resort to the roller option! + +"this is the 2nd attempt to contract u +"urgent! call 09061749602 from landline. your complimentary 4* tenerife holiday or ??10 +"customer service announcement. we recently tried to make a delivery to you but were unable to do so +dear subscriber ur draw 4 ??100 gift voucher will b entered on receipt of a correct ans. when was elvis presleys birthday? txt answer to 80062 + +"win the newest ???harry potter and the order of the phoenix (book 5) reply harry +i am hot n horny and willing i live local to you - text a reply to hear strt back from me 150p per msg netcollex ltdhelpdesk: 02085076972 reply stop to end + +prof: you have passed in all the papers in this sem congrats . . . . student: enna kalaachutaarama..!! prof:???? gud mrng! + +"win: we have a winner! mr. t. foley won an ipod! more exciting prizes soon +"u can win ??100 of music gift vouchers every week starting now txt the word draw to 87066 tscs www.ldew.com skillgame +look at the fuckin time. what the fuck you think is up + +hi - this is your mailbox messaging sms alert. you have 40 matches. please call back on 09056242159 to retrieve your messages and matches cc100p/min + +all boys made fun of me today. ok i have no problem. i just sent one message just for fun + +burger king - wanna play footy at a top stadium? get 2 burger king before 1st sept and go large or super with coca-cola and walk out a winner + +"hi there +sent me ur email id soon + +yes i have. so that's why u texted. pshew...missing you so much + +hi di is yijue we're meeting at 7 pm at esaplanade tonight. + +"shop till u drop +one small prestige problem now. + +bognor it is! should be splendid at this time of year. + +want explicit sex in 30 secs? ring 02073162414 now! costs 20p/min + +you'll not rcv any more msgs from the chat svc. for free hardcore services text go to: 69988 if u get nothing u must age verify with yr network & try again + +thanks for this hope you had a good day today + +hi - this is your mailbox messaging sms alert. you have 40 matches. please call back on 09056242159 to retrieve your messages and matches cc100p/min + +free any day but i finish at 6 on mon n thurs... + +december only! had your mobile 11mths+? you are entitled to update to the latest colour camera mobile for free! call the mobile update co free on 08002986906 + +sunshine quiz wkly q! win a top sony dvd player if u know which country the algarve is in? txt ansr to 82277. ??1.50 sp:tyrone + +"latest nokia mobile or ipod mp3 player +??400 proze guaranteed! reply with: win to 83355 now! norcorp ltd.??1 +anything lor but toa payoh got place 2 walk meh... + +we left already we at orchard now. + +kind of. took it to garage. centre part of exhaust needs replacing. part ordered n taking it to be fixed tomo morning. + +keep my payasam there if rinu brings + +rt-king pro video club>> need help? info.co.uk or call 08701237397 you must be 16+ club credits redeemable at www.ringtoneking.co.uk! enjoy! + +xclusive 2morow 28/5 soiree speciale zouk with nichols from paris.free roses 2 all ladies !!! info: 07946746291/07880867867 + +fancy a shag? i do.interested? sextextuk.com txt xxuk suzy to 69876. txts cost 1.50 per msg. tncs on website. x + +have you bookedthe hut? and also your time off? how are you by the way? + +"goodnight +.please charge my mobile when you get up in morning. + +\hey kate + +hard live 121 chat just 60p/min. choose your girl and connect live. call 09094646899 now! cheap chat uk's biggest live service. vu bcm1896wc1n3xx + +"the world is running and i am still.maybe all are feeling the same +early bird! any purchases yet? + +"hey +please call our customer service representative on 0800 169 6031 between 10am-9pm as you have won a guaranteed ??1000 cash or ??5000 prize! + +no need lar. jus testing e phone card. dunno network not gd i thk. me waiting 4 my sis 2 finish bathing so i can bathe. dun disturb u liao u cleaning ur room. + +what makes you most happy? + +private! your 2003 account statement for 07808247860 shows 800 un-redeemed s. i. m. points. call 08719899229 identifier code: 40411 expires 06/11/04 + +"as a valued customer +"england v macedonia - dont miss the goals/team news. txt ur national team to 87077 eg england to 87077 try:wales +that is wondarfull song + +tomarrow i want to got to court. at <decimal> . so you come to bus stand at 9. + +"you've won tkts to the euro2004 cup final or ??800 cash +"new mobiles from 2004 +ringtoneking 84484 + +dare i ask... any luck with sorting out the car? + +here is your discount code rp176781. to stop further messages reply stop. www.regalportfolio.co.uk. customer services 08717205546 + +the battery is for mr adewale my uncle. aka egbon + +well done england! get the official poly ringtone or colour flag on yer mobile! text tone or flag to 84199 now! opt-out txt eng stop. box39822 w111wx ??1.50 + +call from 08702490080 - tells u 2 call 09066358152 to claim ??5000 prize. u have 2 enter all ur mobile & personal details @ the prompts. careful! + +"it's fine +"think ur smart ? win ??200 this week in our weekly quiz +my superior telling that friday is leave for all other department except ours:)so it will be leave for you:)any way call waheed fathima hr and conform it:) + +"goal! arsenal 4 (henry +have your lunch and come quickly and open the door:) + +i sent them. do you like? + +its sunny in california. the weather's just cool + +congratulations u can claim 2 vip row a tickets 2 c blu in concert in november or blu gift guaranteed call 09061104276 to claim ts&cs www.smsco.net cost??3.75max + +"bears pic nick +you have won! as a valued vodafone customer our computer has picked you to win a ??150 prize. to collect is easy. just call 09061743386 + +todays vodafone numbers ending with 4882 are selected to a receive a ??350 award. if your number matches call 09064019014 to receive your ??350 award. + +you have 1 new voicemail. please call 08719181503 + +what he said is not the matter. my mind saying some other matter is there. + +ok chinese food on its way. when i get fat you're paying for my lipo. + +how much is blackberry bold2 in nigeria. + +don???t give a flying monkeys wot they think and i certainly don???t mind. any friend of mine and all that! + +dear dave this is your final notice to collect your 4* tenerife holiday or #5000 cash award! call 09061743806 from landline. tcs sae box326 cw25wx 150ppm + +"you have been specially selected to receive a \3000 award! call 08712402050 before the lines close. cost 10ppm. 16+. t&cs apply. ag promo""" + +text pass to 69669 to collect your polyphonic ringtones. normal gprs charges apply only. enjoy your tones + +where can download clear movies. dvd copies. + +win urgent! your mobile number has been awarded with a ??2000 prize guaranteed call 09061790121 from land line. claim 3030 valid 12hrs only 150ppm + +4mths half price orange line rental & latest camera phones 4 free. had your phone 11mths ? call mobilesdirect free on 08000938767 to update now! or2stoptxt + +true dear..i sat to pray evening and felt so.so i sms'd you in some time... + +hmv bonus special 500 pounds of genuine hmv vouchers to be won. just answer 4 easy questions. play now! send hmv to 86688 more info:www.100percent-real.com + +you have won a nokia 7250i. this is what you get when you win our free auction. to take part send nokia to 86021 now. hg/suite342/2lands row/w1jhl 16+ + +"urgent!! your 4* costa del sol holiday or ??5000 await collection. call 09050090044 now toclaim. sae +i'm in a movie. call me 4 wat? + +you have won a guaranteed ??1000 cash or a ??2000 prize. to claim yr prize call our customer service representative on 08714712379 between 10am-7pm cost 10p + +want 2 get laid tonight? want real dogging locations sent direct 2 ur mob? join the uk's largest dogging network by txting moan to 69888nyt. ec2a. 31p.msg + +yes princess! i want to please you every night. your wish is my command... + +i reach home safe n sound liao... + +hey what happen de. are you alright. + +"for your chance to win a free bluetooth headset then simply reply back with \adp\""""" + +"what will we do in the shower +"thanks for your ringtone order +hmv bonus special 500 pounds of genuine hmv vouchers to be won. just answer 4 easy questions. play now! send hmv to 86688 more info:www.100percent-real.com + +back 2 work 2morro half term over! can u c me 2nite 4 some sexy passion b4 i have 2 go back? chat now 09099726481 luv dena calls ??1/minmobsmorelkpobox177hp51fl + +"awesome +hmv bonus special 500 pounds of genuine hmv vouchers to be won. just answer 4 easy questions. play now! send hmv to 86688 more info:www.100percent-real.com + +private! your 2004 account statement for 078498****7 shows 786 unredeemed bonus points. to claim call 08719180219 identifier code: 45239 expires 06.05.05 + +free entry in 2 a wkly comp to win fa cup final tkts 21st may 2005. text fa to 87121 to receive entry question(std txt rate)t&c's apply 08452810075over18's + +call 09095350301 and send our girls into erotic ecstacy. just 60p/min. to stop texts call 08712460324 (nat rate) + +"i'm in a meeting +hi 07734396839 ibh customer loyalty offer: the new nokia6600 mobile from only ??10 at txtauction!txt word:start to no:81151 & get yours now!4t& + +natalja (25/f) is inviting you to be her friend. reply yes-440 or no-440 see her: www.sms.ac/u/nat27081980 stop? send stop frnd to 62468 + +"dear voucher holder +urgent! we are trying to contact you. last weekends draw shows that you have won a ??900 prize guaranteed. call 09061701939. claim code s89. valid 12hrs only + +"you have been selected to stay in 1 of 250 top british hotels - for nothing! holiday worth ??350! to claim +"cool +so no messages. had food? + +i told her i had a dr appt next week. she thinks i'm gonna die. i told her its just a check. nothing to be worried about. but she didn't listen. + +"indians r poor but india is not a poor country. says one of the swiss bank directors. he says that \ <#> lac crore\"" of indian money is deposited in swiss banks which can be used for 'taxless' budget for <#> yrs. can give <#> crore jobs to all indians. from any village to delhi 4 lane roads. forever free power suply to more than <#> social projects. every citizen can get monthly <#> /- for <#> yrs. no need of world bank & imf loan. think how our money is blocked by rich politicians. we have full rights against corrupt politicians. itna forward karo ki pura india padhe.g.m.\""""" + +"got hella gas money +joy's father is john. then john is the ____ of joy's father. if u ans ths you hav <#> iq. tis s ias question try to answer. + +"urgent +you have 1 new voicemail. please call 08719181513. + +dating:i have had two of these. only started after i sent a text to talk sport radio last week. any connection do you think or coincidence? + +want 2 get laid tonight? want real dogging locations sent direct 2 ur mob? join the uk's largest dogging network by txting moan to 69888nyt. ec2a. 31p.msg + +25p 4 alfie moon's children in need song on ur mob. tell ur m8s. txt tone charity to 8007 for nokias or poly charity for polys: zed 08701417012 profit 2 charity. + +missed your call cause i was yelling at scrappy. miss u. can't wait for u to come home. i'm so lonely today. + +hi kindly give us back our documents which we submitted for loan from stapati + +join the uk's horniest dogging service and u can have sex 2nite!. just sign up and follow the instructions. txt entry to 69888 now! nyt.ec2a.3lp.msg + +happy birthday to you....dear.with lots of love.rakhesh nri + +now thats going to ruin your thesis! + +yes.. now only saw your message.. + +no. i meant the calculation is the same. that <#> units at <#> . this school is really expensive. have you started practicing your accent. because its important. and have you decided if you are doing 4years of dental school or if you'll just do the nmde exam. + +sry da..jst nw only i came to home.. + +"we are at grandmas. oh dear +check out choose your babe videos @ sms.shsex.netun fgkslpopw fgkslpo + +got it..mail panren paru.. + +check out choose your babe videos @ sms.shsex.netun fgkslpopw fgkslpo + +so when do you wanna gym? + +"well done! your 4* costa del sol holiday or ??5000 await collection. call 09050090044 now toclaim. sae +ugh fuck it i'm resubbing to eve + +private! your 2004 account statement for 078498****7 shows 786 unredeemed bonus points. to claim call 08719180219 identifier code: 45239 expires 06.05.05 + +wot is u up 2 then bitch? + +congratulations u can claim 2 vip row a tickets 2 c blu in concert in november or blu gift guaranteed call 09061104276 to claim ts&cs www.smsco.net cost??3.75max + +please call amanda with regard to renewing or upgrading your current t-mobile handset free of charge. offer ends today. tel 0845 021 3680 subject to t's and c's + +"urgent! your mobile no. was awarded ??2000 bonus caller prize on 5/9/03 this is our final try to contact u! call from landline 09064019788 box42wr29c +?? still attending da talks? + +does uncle timi help in clearing cars + +panasonic & bluetoothhdset free. nokia free. motorola free & doublemins & doubletxt on orange contract. call mobileupd8 on 08000839402 or call 2optout + +burger king - wanna play footy at a top stadium? get 2 burger king before 1st sept and go large or super with coca-cola and walk out a winner + +"oh rite. well im with my best mate pete +ok thanx... + +noice. text me when you're here + +"bored of speed dating? try speedchat +good morning plz call me sir + +"shop till u drop +did you show him and wot did he say or could u not c him 4 dust? + +"wait that's still not all that clear +hmv bonus special 500 pounds of genuine hmv vouchers to be won. just answer 4 easy questions. play now! send hmv to 86688 more info:www.100percent-real.com + +freemsg today's the day if you are ready! i'm horny & live in your town. i love sex fun & games! netcollex ltd 08700621170150p per msg reply stop to end + +ya! when are ?_ taking ure practical lessons? i start in june.. + +ok. i asked for money how far + +i was about to do it when i texted. i finished a long time ago and showered and er'ything! + +yup i've finished c ?_ there... + +sorry to be a pain. is it ok if we meet another night? i spent late afternoon in casualty and that means i haven't done any of y stuff42moro and that includes all my time sheets and that. sorry. + +who are you seeing? + +do you want a new nokia 3510i colour phone deliveredtomorrow? with 300 free minutes to any mobile + 100 free texts + free camcorder reply or call 08000930705. + +your unique user id is 1172. for removal send stop to 87239 customer services 08708034412 + +i was gonna ask you lol but i think its at 7 + +"oops - am at my mum's in somerset... bit far! back tomo +i will be outside office take all from there + +or remind me in a few hrs. + +btw regarding that we should really try to see if anyone else can be our 4th guy before we commit to a random dude + +"i'm used to it. i just hope my agents don't drop me since i've only booked a few things this year. this whole me in boston +great news! call freefone 08006344447 to claim your guaranteed ??1000 cash or ??2000 gift. speak to a live operator now! + +"aight +dear 0776xxxxxxx u've been invited to xchat. this is our final attempt to contact u! txt chat to 86688 150p/msgrcvdhg/suite342/2lands/row/w1j6hl ldn 18yrs + +a cute thought for friendship: \its not necessary to share every secret with ur close frnd + +u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094594 + +you have 1 new voicemail. please call 08719181513. + +k..k...from tomorrow onwards started ah? + +urgent we are trying to contact you last weekends draw shows u have won a ??1000 prize guaranteed call 09064017295 claim code k52 valid 12hrs 150p pm + +free entry into our ??250 weekly competition just text the word win to 80086 now. 18 t&c www.txttowin.co.uk + +"sir +ok how you dear. did you call chechi + +"free game. get rayman golf 4 free from the o2 games arcade. 1st get ur games settings. reply post +you are awarded a sipix digital camera! call 09061221061 from landline. delivery within 28days. t cs box177. m221bp. 2yr warranty. 150ppm. 16 . p p??3.99 + +it's ok i noe u're busy but i'm really too bored so i msg u. i oso dunno wat colour she choose 4 me one. + +"call 09094100151 to use ur mins! calls cast 10p/min (mob vary). service provided by aom +don't necessarily expect it to be done before you get back though because i'm just now headin out + +and by when you're done i mean now + +ur tonexs subscription has been renewed and you have been charged ??4.50. you can choose 10 more polys this month. www.clubzed.co.uk *billing msg* + +our brand new mobile music service is now live. the free music player will arrive shortly. just install on your phone to browse content from the top artists. + +"\getting tickets 4 walsall tue 6 th march. my mate is getting me them on sat. ill pay my treat. want 2 go. txt bak .terry\""""" + +neft transaction with reference number <#> for rs. <decimal> has been credited to the beneficiary account on <#> at <time> : <#> + +its not the same here. still looking for a job. how much do ta's earn there. + +"\for the most sparkling shopping breaks from 45 per person; call 0121 2025050 or visit www.shortbreaks.org.uk\""""" + +"japanese proverb: if one can do it +dont show yourself. how far. put new pictures up on facebook. + +oic... i saw him too but i tot he din c me... i found a group liao... + +u coming 2 pick me? + +hurry home u big butt. hang up on your last caller if u have to. food is done and i'm starving. don't ask what i cooked. + +this single single answers are we fighting? plus i said am broke and you didnt reply + +bought one ringtone and now getting texts costing 3 pound offering more tones etc + +todays vodafone numbers ending with 4882 are selected to a receive a ??350 award. if your number matches call 09064019014 to receive your ??350 award. + +send to someone else :-) + +sorry! u can not unsubscribe yet. the mob offer package has a min term of 54 weeks> pls resubmit request after expiry. reply themob help 4 more info + +07732584351 - rodger burns - msg = we tried to call you re your reply to our sms for a free nokia mobile + free camcorder. please call now 08000930705 for delivery tomorrow + +"hot live fantasies call now 08707509020 just 20p per min ntt ltd +"free nokia or motorola with upto 12mths 1/2price linerental +"as a valued customer +get the official england poly ringtone or colour flag on yer mobile for tonights game! text tone or flag to 84199. optout txt eng stop box39822 w111wx ??1.50 + +goldviking (29/m) is inviting you to be his friend. reply yes-762 or no-762 see him: www.sms.ac/u/goldviking stop? send stop frnd to 62468 + +text & meet someone sexy today. u can find a date or even flirt its up to u. join 4 just 10p. reply with name & age eg sam 25. 18 -msg recd pence + +will you like to be spoiled? :) + +18 days to euro2004 kickoff! u will be kept informed of all the latest news and results daily. unsubscribe send get euro stop to 83222. + +8007 free for 1st week! no1 nokia tone 4 ur mob every week just txt nokia to 8007 get txting and tell ur mates www.getzed.co.uk pobox 36504 w4 5wq norm 150p/tone 16+ + +"hi there +you have 1 new message. please call 08718738034. + +jay is snickering and tells me that x is totally fucking up the chords as we speak + +i will spoil you in bed as well :) + +"sorry man +"urgent!! your 4* costa del sol holiday or ??5000 await collection. call 09050090044 now toclaim. sae +"will do +from 88066 lost ??12 help + +customer loyalty offer:the new nokia6650 mobile from only ??10 at txtauction! txt word: start to no: 81151 & get yours now! 4t&ctxt tc 150p/mtmsg + +buy space invaders 4 a chance 2 win orig arcade game console. press 0 for games arcade (std wap charge) see o2.co.uk/games 4 terms + settings. no purchase + +"themob>hit the link to get a premium pink panther game +"urgent! your mobile no. was awarded ??2000 bonus caller prize on 5/9/03 this is our final try to contact u! call from landline 09064019788 box42wr29c +hey we can go jazz power yoga hip hop kb and yogasana + +congratulations ur awarded 500 of cd vouchers or 125gift guaranteed & free entry 2 100 wkly draw txt music to 87066 + +i'm in school now n i'll be in da lab doing some stuff give me a call when ?_ r done. + +you are a winner you have been specially selected to receive ??1000 cash or a ??2000 award. speak to a live operator to claim call 087147123779am-7pm. cost 10p + +u have a secret admirer. reveal who thinks u r so special. call 09065174042. to opt out reply reveal stop. 1.50 per msg recd. cust care 07821230901 + +what i'm saying is if you haven't explicitly told nora i know someone i'm probably just not gonna bother + +i ask if u meeting da ge tmr nite... + +yes! the only place in town to meet exciting adult singles is now in the uk. txt chat to 86688 now! 150p/msg. + +you have won a nokia 7250i. this is what you get when you win our free auction. to take part send nokia to 86021 now. hg/suite342/2lands row/w1jhl 16+ + +guess what! somebody you know secretly fancies you! wanna find out who it is? give us a call on 09065394514 from landline datebox1282essexcm61xn 150p/min 18 + +sad story of a man - last week was my b'day. my wife did'nt wish me. my parents forgot n so did my kids . i went to work. even my colleagues did not wish. + +free 1st week entry 2 textpod 4 a chance 2 win 40gb ipod or ??250 cash every wk. txt vpod to 81303 ts&cs www.textpod.net custcare 08712405020. + +i'm vivek:)i got call from your number. + +88066 from 88066 lost 3pound help + +freemsg>fav xmas tones!reply real + +"what are you doing in langport? sorry +u r a winner u ave been specially selected 2 receive ??1000 cash or a 4* holiday (flights inc) speak to a live operator 2 claim 0871277810710p/min (18 ) + +"urgent! call 09066612661 from landline. your complementary 4* tenerife holiday or ??10 +"\not enufcredeit tocall.shall ileave uni at 6 +get a bus to yor house?\""""" + +oh dang! i didn't mean o send that to you! lol! + +height of recycling: read twice- people spend time for earning money and the same money is spent for spending time!;-) good morning.. keep smiling:-) + +what pa tell me.. i went to bath:-) + +ur going 2 bahamas! callfreefone 08081560665 and speak to a live operator to claim either bahamas cruise of??2000 cash 18+only. to opt out txt x to 07786200117 + +gr8. so how do you handle the victoria island traffic. plus when's the album due + +get ur 1st ringtone free now! reply to this msg with tone. gr8 top 20 tones to your phone every week just ??1.50 per wk 2 opt out send stop 08452810071 16 + +"someone u know has asked our dating service 2 contact you! cant guess who? call 09058097189 now all will be revealed. pobox 6 +s now only i took tablets . reaction morning only. + +"thank you for calling.forgot to say happy onam to you sirji.i am fine here and remembered you when i met an insurance person.meet you in qatar insha allah.rakhesh +"win the newest ???harry potter and the order of the phoenix (book 5) reply harry +i'm working technical support :)voice process.networking field. + +total video converter free download type this in google search:) + +will be out of class in a few hours. sorry + +i have 2 docs appointments next week.:/ i'm tired of them shoving stuff up me. ugh why couldn't i have had a normal body? + +todays vodafone numbers ending with 4882 are selected to a receive a ??350 award. if your number matches call 09064019014 to receive your ??350 award. + +urgent! your mobile number has been awarded with a ??2000 prize guaranteed. call 09061790121 from land line. claim 3030. valid 12hrs only 150ppm + +want to finally have lunch today? + +alright. thanks for the advice. enjoy your night out. i'ma try to get some sleep... + +wait.i will come out.. <#> min:) + +this pen thing is beyond a joke. wont a biro do? don't do a masters as can't do this ever again! + +go chase after her and run her over while she's crossing the street + +its on in engalnd! but telly has decided it won't let me watch it and mia and elliot were kissing! damn it! + +hope you enjoyed your new content. text stop to 61610 to unsubscribe. help:08712400602450p provided by tones2you.co.uk + +"tddnewsletter.co.uk (more games from thedailydraw) dear helen +urgent! we are trying to contact u. todays draw shows that you have won a ??800 prize guaranteed. call 09050001808 from land line. claim m95. valid12hrs only + +no da if you run that it activate the full version da. + +wot u up 2 j? + +ur awarded a city break and could win a ??200 summer shopping spree every wk. txt store to 88039.skilgme.tscs087147403231winawk!age16+??1.50perwksub + +aah! a cuddle would be lush! i'd need lots of tea and soup before any kind of fumbling! + +"well the weather in cali's great. but its complexities are great. you need a car to move freely +"aight +"eerie nokia tones 4u +captain vijaykanth is doing comedy in captain tv..he is drunken :) + +xmas prize draws! we are trying to contact u. todays draw shows that you have won a ??2000 prize guaranteed. call 09058094565 from land line. valid 12hrs only + +"claim a 200 shopping spree +"tddnewsletter.co.uk (more games from thedailydraw) dear helen +do you know where my lab goggles went + +free unlimited hardcore porn direct 2 your mobile txt porn to 69200 & get free access for 24 hrs then chrgd per day txt stop 2exit. this msg is free + +u r a winner u ave been specially selected 2 receive ??1000 cash or a 4* holiday (flights inc) speak to a live operator 2 claim 0871277810710p/min (18 ) + +back in brum! thanks for putting us up and keeping us all and happy. see you soon + +in fact when do you leave? i think addie goes back to school tues or wed + +"sorry +lara said she can loan me <#> . + +"no +i tagged my friends that you seemed to count as your friends. + +"living is very simple.. loving is also simple.. laughing is too simple.. winning is tooo simple.. but +ok lor wat time ?_ finish? + +"will u meet ur dream partner soon? is ur career off 2 a flyng start? 2 find out free +sorry i missed your call let's talk when you have the time. i'm on 07090201529 + +"you are being contacted by our dating service by someone you know! to find out who it is +aight well keep me informed + +i'm not coming home 4 dinner. + +back 2 work 2morro half term over! can u c me 2nite 4 some sexy passion b4 i have 2 go back? chat now 09099726481 luv dena calls ??1/minmobsmorelkpobox177hp51fl + +i've reached home n i bathe liao... u can call me now... + +you have won a guaranteed ??1000 cash or a ??2000 prize. to claim yr prize call our customer service representative on 08714712394 between 10am-7pm + +"how are you +aiyo u so poor thing... then u dun wan 2 eat? u bathe already? + +december only! had your mobile 11mths+? you are entitled to update to the latest colour camera mobile for free! call the mobile update co free on 08002986906 + +"thanks for your ringtone order +dear dave this is your final notice to collect your 4* tenerife holiday or #5000 cash award! call 09061743806 from landline. tcs sae box326 cw25wx 150ppm + +have you seen who's back at holby?! + +so wats ur opinion abt him and how abt is character? + +siva is in hostel aha:-. + +"hi this is amy +"double mins and txts 4 6months free bluetooth on orange. available on sony +"free-message: jamster!get the crazy frog sound now! for poly text mad1 +"if you don't +i'm gonna say no. sorry. i would but as normal am starting to panic about time. sorry again! are you seeing on tuesday? + +"hi babe its jordan +okey dokey swashbuckling stuff what oh. + +"alright +i'm not sure if its still available though + +our brand new mobile music service is now live. the free music player will arrive shortly. just install on your phone to browse content from the top artists. + +"hello darling how are you today? i would love to have a chat +watever relation u built up in dis world only thing which remains atlast iz lonlines with lotz n lot memories! feeling.. + +true. its easier with her here. + +sms auction you have won a nokia 7250i. this is what you get when you win our free auction. to take part send nokia to 86021 now. hg/suite342/2lands row/w1jhl 16+ + +auntie huai juan never pick up her phone + +4mths half price orange line rental & latest camera phones 4 free. had your phone 11mths ? call mobilesdirect free on 08000938767 to update now! or2stoptxt + +you do your studies alone without anyones help. if you cant no need to study. + +hey... why dont we just go watch x men and have lunch... haha + +bloomberg -message center +447797706009 why wait? apply for your future http://careers. bloomberg.com + +"urgent! please call 0906346330. your abta complimentary 4* spanish holiday or ??10 +"urgent! you have won a 1 week free membership in our ??100 +you are a great role model. you are giving so much and i really wish each day for a miracle but god as a reason for everything and i must say i wish i knew why but i dont. i've looked up to you since i was young and i still do. have a great day. + +please call our customer service representative on freephone 0808 145 4742 between 9am-11pm as you have won a guaranteed ??1000 cash or ??5000 prize! + +oh god..taken the teeth?is it paining + +"sms. ac jsco: energy is high +"u can win ??100 of music gift vouchers every week starting now txt the word draw to 87066 tscs www.idew.com skillgame +i was up all night too worrying about this appt. it's a shame we missed a girls night out with quizzes popcorn and you doing my hair. + +"urgent! you have won a 1 week free membership in our ??100 +i don't know u and u don't know me. send chat to 86688 now and let's find each other! only 150p/msg rcvd. hg/suite342/2lands/row/w1j6hl ldn. 18 years or over. + +jamster! to get your free wallpaper text heart to 88888 now! t&c apply. 16 only. need help? call 08701213186. + +why de. you looking good only:-).. + +sms. ac sun0819 posts hello:\you seem cool + +december only! had your mobile 11mths+? you are entitled to update to the latest colour camera mobile for free! call the mobile update vco free on 08002986906 + +you have been specially selected to receive a 2000 pound award! call 08712402050 before the lines close. cost 10ppm. 16+. t&cs apply. ag promo + +todays vodafone numbers ending with 0089(my last four digits) are selected to received a ??350 award. if your number matches please call 09063442151 to claim your ??350 award + +"thanks for your ringtone order +pls call me da. what happen. + +network operator. the service is free. for t & c's visit 80488.biz + +"urgent! your mobile no was awarded a ??2 +hi baby im cruisin with my girl friend what r u up 2? give me a call in and hour at home if thats alright or fone me on this fone now love jenny xxx + +"sms services. for your inclusive text credits +hi.:)technical support.providing assistance to us customer through call and email:) + +your 2004 account for 07xxxxxxxxx shows 786 unredeemed points. to claim call 08719181259 identifier code: xxxxx expires 26.03.05 + +please give it 2 or i will pick it up on tuesday evening about 8 if that is ok. + +aiyah u did ok already lar. e nydc at wheellock? + +my drive can only be read. i need to write + +"the lay man! just to let you know you are missed and thought off. do have a great day. and if you can send me bimbo and ugo's numbers +romcapspam everyone around should be responding well to your presence since you are so warm and outgoing. you are bringing in a real breath of sunshine. + +our prashanthettan's mother passed away last night. pray for her and family. + +someonone you know is trying to contact you via our dating service! to find out who it could be call from your mobile or landline 09064015307 box334sk38ch + +"sppok up ur mob with a halloween collection of nokia logo&pic message plus a free eerie tone +"you are guaranteed the latest nokia phone +gr8 new service - live sex video chat on your mob - see the sexiest dirtiest girls live on ur phone - 4 details text horny to 89070 to cancel send stop to 89070 + +my friends use to call the same. + +-pls stop bootydelious (32/f) is inviting you to be her friend. reply yes-434 or no-434 see her: www.sms.ac/u/bootydelious stop? send stop frnd to 62468 + +"didn't try +double mins & double txt & 1/2 price linerental on latest orange bluetooth mobiles. call mobileupd8 for the very latest offers. 08000839402 or call2optout/lf56 + +okie + +camera - you are awarded a sipix digital camera! call 09061221066 fromm landline. delivery within 28 days. + +"dear friends +thanks for your subscription to ringtone uk your mobile will be charged ??5/month please confirm by replying yes or no. if you reply no you will not be charged + +those were my exact intentions + +i got lousy sleep. i kept waking up every 2 hours to see if my cat wanted to come in. i worry about him when its cold :( + +"urgent! please call 09066612661 from your landline +"sez +hi here. have birth at on the to at 8lb 7oz. mother and baby doing brilliantly. + +free entry into our ??250 weekly competition just text the word win to 80086 now. 18 t&c www.txttowin.co.uk + +let me know when you've got the money so carlos can make the call + +private! your 2003 account statement for 07808 xxxxxx shows 800 un-redeemed s. i. m. points. call 08719899217 identifier code: 41685 expires 07/11/04 + +"bangbabes ur order is on the way. u should receive a service msg 2 download ur content. if u do not +i will reach before ten morning + +cds 4u: congratulations ur awarded ??500 of cd gift vouchers or ??125 gift guaranteed & freeentry 2 ??100 wkly draw xt music to 87066 tncs www.ldew.com1win150ppmx3age16 + +private! your 2003 account statement for shows 800 un-redeemed s. i. m. points. call 08718738002 identifier code: 48922 expires 21/11/04 + +we currently have a message awaiting your collection. to collect your message just call 08718723815. + +then why you came to hostel. + +well done england! get the official poly ringtone or colour flag on yer mobile! text tone or flag to 84199 now! opt-out txt eng stop. box39822 w111wx ??1.50 + +ok lor then we go tog lor... + +"dear voucher holder +sunshine quiz wkly q! win a top sony dvd player if u know which country the algarve is in? txt ansr to 82277. ??1.50 sp:tyrone + +we have all rounder:)so not required:) + +hey i am really horny want to chat or see me naked text hot to 69698 text charged at 150pm to unsubscribe text stop 69698 + +thats cool. i want to please you... + +"someone u know has asked our dating service 2 contact you! cant guess who? call 09058095107 now all will be revealed. pobox 7 +87077: kick off a new season with 2wks free goals & news to ur mobile! txt ur club name to 87077 eg villa to 87077 + +"urgent! your mobile no 07xxxxxxxxx won a ??2 +freemsg: txt: call to no: 86888 & claim your reward of 3 hours talk time to use from your phone now! subscribe6gbp/mnth inc 3hrs 16 stop?txtstop + +"my friend +much better now thanks lol + +hey next sun 1030 there's a basic yoga course... at bugis... we can go for that... pilates intro next sat.... tell me what time you r free + +"sir +please sen :)my kind advice :-)please come here and try:-) + +x course it 2yrs. just so her messages on messenger lik you r sending me + +"new tones this week include: 1)mcfly-all ab.. +do you want a new video phone? 600 anytime any network mins 400 inclusive video calls and downloads 5 per week free deltomorrow call 08002888812 or reply now + +double mins & double txt & 1/2 price linerental on latest orange bluetooth mobiles. call mobileupd8 for the very latest offers. 08000839402 or call2optout/lf56 + +"urgent! you have won a 1 week free membership in our ??100 +"1000's flirting now! txt girl or bloke & ur name & age +"thanks for your ringtone order +"mon okie lor... haha +not..tel software name.. + +"dear +"text82228>> get more ringtones +"loan for any purpose ??500 - ??75 +"easy mate +"\hi babe uawake?feellikw shit.justfound out via aletter thatmum gotmarried 4thnov.behind ourbacks ?? fuckinnice!selfish i??l call u\""""" + +"\hello-/-:0quit edrunk sorry iff pthis makes no senrd-dnot no how ^ dancce 2 drum n basq!ihave fun 2nhite x ros xxxxxxx\""""" + +(bank of granite issues strong-buy) explosive pick for our members *****up over 300% *********** nasdaq symbol cdgt that is a $5.00 per.. + +"if you don't +get a free mobile video player free movie. to collect text go to 89105. its free! extra films can be ordered t's and c's apply. 18 yrs only + +you have an important customer service announcement. call freephone 0800 542 0825 now! + +"and that's fine +"january male sale! hot gay chat now cheaper +u are subscribed to the best mobile content service in the uk for ??3 per 10 days until you send stop to 82324. helpline 08706091795 + +"urgent. important information for 02 user. today is your lucky day! 2 find out why +call freephone 0800 542 0578 now! + +babe: u want me dont u baby! im nasty and have a thing 4 filthyguys. fancy a rude time with a sexy bitch. how about we go slo n hard! txt xxx slo(4msgs) + +this weekend is fine (an excuse not to do too much decorating) + +?? wait 4 me in sch i finish ard 5.. + +hey morning what you come to ask:-) pa... + +"smsservices. for yourinclusive text credits +the wine is flowing and i'm i have nevering.. + +ur cash-balance is currently 500 pounds - to maximize ur cash-in now send cash to 86688 only 150p/msg. cc: 08708800282 hg/suite342/2lands row/w1j6hl + +lol your right. what diet? everyday i cheat anyway. i'm meant to be a fatty :( + +new textbuddy chat 2 horny guys in ur area 4 just 25p free 2 receive search postcode or at gaytextbuddy.com. txt one name to 89693. 08715500022 rpl stop 2 cnl + +2marrow only. wed at <#> to 2 aha. + +2 laptop... i noe infra but too slow lar... i wan fast one + +have you not finished work yet or something? + +hey whats up? u sleeping all morning? + +for taking part in our mobile survey yesterday! you can now have 500 texts 2 use however you wish. 2 get txts just send txt to 80160 t&c www.txt43.com 1.50p + +ya that one is slow as poo + +"if you don't +"aight i've been set free +free for 1st week! no1 nokia tone 4 ur mob every week just txt nokia to 8007 get txting and tell ur mates www.getzed.co.uk pobox 36504 w45wq norm150p/tone 16+ + +"its so common hearin how r u? wat r u doing? how was ur day? so let me ask u something different. did u smile today? if not +carlos says he'll be at mu in <#> minutes + +"fantasy football is back on your tv. go to sky gamestar on sky active and play ??250k dream team. scoring starts on saturday +"enjoy the showers of possessiveness poured on u by ur loved ones +you have 1 new voicemail. please call 08719181503 + +i have to take exam with march 3 + +private! your 2003 account statement for shows 800 un-redeemed s. i. m. points. call 08718738002 identifier code: 48922 expires 21/11/04 + +camera - you are awarded a sipix digital camera! call 09061221066 fromm landline. delivery within 28 days. + +i see. when we finish we have loads of loans to pay + +all will come alive.better correct any good looking figure there itself.. + +"sorry +4mths half price orange line rental & latest camera phones 4 free. had your phone 11mths ? call mobilesdirect free on 08000938767 to update now! or2stoptxt + +dear u've been invited to xchat. this is our final attempt to contact u! txt chat to 86688 150p/msgrcvdhg/suite342/2lands/row/w1j6hl ldn 18 yrs + +hi dear call me its urgnt. i don't know whats your problem. you don't want to work or if you have any other problem at least tell me. wating for your reply. + +this message is free. welcome to the new & improved sex & dogging club! to unsubscribe from this service reply stop. msgs 18+only + +sms auction - a brand new nokia 7250 is up 4 auction today! auction is free 2 join & take part! txt nokia to 86021 now! hg/suite342/2lands row/w1j6hl + +wat makes some people dearer is not just de happiness dat u feel when u meet them but de pain u feel when u miss dem!!! + +"\are you comingdown later?\""""" + +free for 1st week! no1 nokia tone 4 ur mobile every week just txt nokia to 8077 get txting and tell ur mates. www.getzed.co.uk pobox 36504 w45wq 16+ norm150p/tone + +prabha..i'm soryda..realy..frm heart i'm sory + +"this is the 2nd time we have tried 2 contact u. u have won the ??750 pound prize. 2 claim is easy +wat r u doing? + +(bank of granite issues strong-buy) explosive pick for our members *****up over 300% *********** nasdaq symbol cdgt that is a $5.00 per.. + +"jay told me already +"twinks +get your garden ready for summer with a free selection of summer bulbs and seeds worth ??33:50 only with the scotsman this saturday. to stop go2 notxt.co.uk + +jos ask if u wana meet up? + +was the farm open? + +fyi i'm gonna call you sporadically starting at like <#> bc we are not not doin this shit + +show ur colours! euro 2004 2-4-1 offer! get an england flag & 3lions tone on ur phone! click on the following service message for info! + +dont you have message offer + +"ou are guaranteed the latest nokia phone +you'd like that wouldn't you? jerk! + +hope things went well at 'doctors' ;) reminds me i still need 2go.did u c d little thing i left in the lounge? + +he remains a bro amongst bros + +urgent! we are trying to contact u. todays draw shows that you have won a ??800 prize guaranteed. call 09050001808 from land line. claim m95. valid12hrs only + +"thanks for your ringtone order +this msg is for your mobile content order it has been resent as previous attempt failed due to network error queries to customersqueries.uk.com + +im just wondering what your doing right now? + +well done england! get the official poly ringtone or colour flag on yer mobile! text tone or flag to 84199 now! opt-out txt eng stop. box39822 w111wx ??1.50 + +congratulations ur awarded 500 of cd vouchers or 125gift guaranteed & free entry 2 100 wkly draw txt music to 87066 + +"urgent ur awarded a complimentary trip to eurodisinc trav +"it doesnt make sense to take it there unless its free. if you need to know more +"you are a ??1000 winner or guaranteed caller prize +alrite jod hows the revision goin? keris bin doin a smidgin. n e way u wanna cum over after college?xx + +"all the lastest from stereophonics +university of southern california. + +so that takes away some money worries + +great new offer - double mins & double txt on best orange tariffs and get latest camera phones 4 free! call mobileupd8 free on 08000839402 now! or 2stoptxt t&cs + +"urgent! your mobile no was awarded a ??2 +"you have won ?1 +"hey babe +when did dad get back. + +"it's that time of the week again +bloomberg -message center +447797706009 why wait? apply for your future http://careers. bloomberg.com + +the message sent is askin for <#> dollars. shoul i pay <#> or <#> ? + +big brother???s really scraped the barrel with this shower of social misfits + +"0a$networks allow companies to bill for sms +"kate jackson rec center before 7ish +hmv bonus special 500 pounds of genuine hmv vouchers to be won. just answer 4 easy questions. play now! send hmv to 86688 more info:www.100percent-real.com + +call from 08702490080 - tells u 2 call 09066358152 to claim ??5000 prize. u have 2 enter all ur mobile & personal details @ the prompts. careful! + +"congrats! 2 mobile 3g videophones r yours. call 09061744553 now! videochat wid ur mates +you have won a guaranteed 32000 award or maybe even ??1000 cash to claim ur award call free on 0800 ..... (18+). its a legitimat efreefone number wat do u think??? + +free for 1st week! no1 nokia tone 4 ur mob every week just txt nokia to 8007 get txting and tell ur mates www.getzed.co.uk pobox 36504 w45wq norm150p/tone 16+ + +remember on that day.. + +sexy singles are waiting for you! text your age followed by your gender as wither m or f e.g.23f. for gay men text your age followed by a g. e.g.23g. + +she told to hr that he want posting in chennai:)because i'm working here:) + +"xmas & new years eve tickets are now on sale from the club +"if you don't +please leave this topic..sorry for telling that.. + +you are a winner you have been specially selected to receive ??1000 cash or a ??2000 award. speak to a live operator to claim call 087147123779am-7pm. cost 10p + +todays vodafone numbers ending with 0089(my last four digits) are selected to received a ??350 award. if your number matches please call 09063442151 to claim your ??350 award + +"3 free tarot texts! find out about your love life now! try 3 for free! text chance to 85555 16 only! after 3 free +"dear voucher holder +"double mins and txts 4 6months free bluetooth on orange. available on sony +i told your number to gautham.. + +your credits have been topped up for http://www.bubbletext.com your renewal pin is tgxxrz + +dorothy.com (bank of granite issues strong-buy) explosive pick for our members *****up over 300% *********** nasdaq symbol cdgt that is a $5.00 per.. + +private! your 2003 account statement for 078 + +went to pay rent. so i had to go to the bank to authorise the payment. + +"final chance! claim ur ??150 worth of discount vouchers today! text yes to 85023 now! savamob +"k +free entry into our ??250 weekly comp just send the word win to 80086 now. 18 t&c www.txttowin.co.uk + +this message is brought to you by gmw ltd. and is not connected to the + +"wishing you and your family merry \x\"" mas and happy new year in advance..""" + +which is weird because i know i had it at one point + +"[??_] anyway +don't forget who owns you and who's private property you are ... and be my good boy always .. *passionate kiss* + +i'm at home. please call + +i have a date on sunday with will!! + +hi - this is your mailbox messaging sms alert. you have 4 messages. you have 21 matches. please call back on 09056242159 to retrieve your messages and matches + +"welcome to select +reply to win ??100 weekly! where will the 2006 fifa world cup be held? send stop to 87239 to end service + +thanks for the vote. now sing along with the stars with karaoke on your mobile. for a free link just reply with sing now. + +"today is \song dedicated day..\"" which song will u dedicate for me? send this to all ur valuable frnds but first rply me...""" + +"someone has contacted our dating service and entered your phone becausethey fancy you! to find out who it is call from a landline 09058098002. pobox1 +hurry home. soup is done! + +call 09090900040 & listen to extreme dirty live chat going on in the office right now total privacy no one knows your [sic] listening 60p min 24/7mp 0870753331018+ + +no just send to you. bec you in temple na. + +your weekly cool-mob tones are ready to download !this weeks new tones include: 1) crazy frog-axel f>>> 2) akon-lonely>>> 3) black eyed-dont p >>>more info in n + +"last chance! claim ur ??150 worth of discount vouchers today! text shop to 85023 now! savamob +"win the newest ??harry potter and the order of the phoenix (book 5) reply harry +good luck! draw takes place 28th feb 06. good luck! for removal send stop to 87239 customer services 08708034412 + +"shop till u drop +talk with yourself atleast once in a day...!!! otherwise you will miss your best friend in this world...!!! -shakespeare- shesil <#> + +"i wasn't well babe +show ur colours! euro 2004 2-4-1 offer! get an england flag & 3lions tone on ur phone! click on the following service message for info! + +"good! no +printer is cool. i mean groovy. wine is groovying + +dear 0776xxxxxxx u've been invited to xchat. this is our final attempt to contact u! txt chat to 86688 150p/msgrcvdhg/suite342/2lands/row/w1j6hl ldn 18yrs + +"hi ya babe x u 4goten bout me?' scammers getting smart..though this is a regular vodafone no +"urgent! call 09066350750 from your landline. your complimentary 4* ibiza holiday or 10 +do you want a new nokia 3510i colour phone deliveredtomorrow? with 300 free minutes to any mobile + 100 free texts + free camcorder reply or call 08000930705 + +hasn't that been the pattern recently crap weekends? + +freemsg>fav xmas tones!reply real + +"you have been specially selected to receive a \3000 award! call 08712402050 before the lines close. cost 10ppm. 16+. t&cs apply. ag promo""" + +important information 4 orange user . today is your lucky day!2find out why log onto http://www.urawinner.com there's a fantastic surprise awaiting you! + +please call 08712402902 immediately as there is an urgent message waiting for you. + +"hi frnd +wamma get laid?want real doggin locations sent direct to your mobile? join the uks largest dogging network. txt dogs to 69696 now!nyt. ec2a. 3lp ??1.50/msg. + +"free message activate your 500 free text messages by replying to this message with the word free for terms & conditions +"free message activate your 500 free text messages by replying to this message with the word free for terms & conditions +then she dun believe wat? + +not heard from u4 a while. call me now am here all night with just my knickers on. make me beg for it like u did last time 01223585236 xx luv nikiyu4.net + +"thank you +85233 free>ringtone!reply real + +yes. rent is very expensive so its the way we save. + +get down in gandhipuram and walk to cross cut road. right side <#> street road and turn at first right. + +ok which your another number + +monthly password for wap. mobsi.com is 391784. use your wap phone not pc. + +"u've been selected to stay in 1 of 250 top british hotels - for nothing! holiday valued at ??350! dial 08712300220 to claim - national rate call. bx526 +hi 07734396839 ibh customer loyalty offer: the new nokia6600 mobile from only ??10 at txtauction!txt word:start to no:81151 & get yours now!4t& + +private! your 2003 account statement for 07973788240 shows 800 un-redeemed s. i. m. points. call 08715203649 identifier code: 40533 expires 31/10/04 + +private! your 2003 account statement for 07808247860 shows 800 un-redeemed s. i. m. points. call 08719899229 identifier code: 40411 expires 06/11/04 + +for the first time in the history 'need' 'comfort' and 'luxury' are sold at same price in india..!! onion-rs. <#> petrol-rs. <#> beer-rs. <#> shesil <#> + +mystery solved! just opened my email and he's sent me another batch! isn't he a sweetie + +doc prescribed me morphine cause the other pain meds aren't enough. waiting for my mom to bring it. that med should kick in fast so i'm gonna try to be on later + +great news! call freefone 08006344447 to claim your guaranteed ??1000 cash or ??2000 gift. speak to a live operator now! + +private! your 2003 account statement for shows 800 un-redeemed s. i. m. points. call 08719899230 identifier code: 41685 expires 07/11/04 + +santa calling! would your little ones like a call from santa xmas eve? call 09077818151 to book you time. calls1.50ppm last 3mins 30s t&c www.santacalling.com + +you have won! as a valued vodafone customer our computer has picked you to win a ??150 prize. to collect is easy. just call 09061743386 + +"urgent! please call 09066612661 from your landline +congratulations ur awarded either ??500 of cd gift vouchers & free entry 2 our ??100 weekly draw txt music to 87066 tncs www.ldew.com 1 win150ppmx3age16 + +"sir +this message is from a great doctor in india:-): 1) do not drink appy fizz. it contains cancer causing age + +wake me up at <#> am morning:) + +"no dude +"latest nokia mobile or ipod mp3 player +??400 proze guaranteed! reply with: win to 83355 now! norcorp ltd.??1 +what about this one then. + +u wake up already? thanx 4 e tau sar piah it's quite nice. + +hi. customer loyalty offer:the new nokia6650 mobile from only ??10 at txtauction! txt word: start to no: 81151 & get yours now! 4t&ctxt tc 150p/mtmsg + +do you want a new nokia 3510i colour phone deliveredtomorrow? with 300 free minutes to any mobile + 100 free texts + free camcorder reply or call 08000930705. + +"sorry +yun ah.now ?_ wkg where?btw if ?_ go nus sc. ?? wana specialise in wad? + +i don't know u and u don't know me. send chat to 86688 now and let's find each other! only 150p/msg rcvd. hg/suite342/2lands/row/w1j6hl ldn. 18 years or over. + +k...k...yesterday i was in cbe . + +had your mobile 11mths ? update for free to oranges latest colour camera mobiles & unlimited weekend calls. call mobile upd8 on freefone 08000839402 or 2stoptxt + +how stupid to say that i challenge god.you dont think at all on what i write instead you respond immed. + +cheers for the message zogtorius. i??ve been staring at my phone for an age deciding whether to text or not. + +do you like shaking your booty on the dance floor? + +free for 1st week! no1 nokia tone 4 ur mob every week just txt nokia to 8007 get txting and tell ur mates www.getzed.co.uk pobox 36504 w45wq norm150p/tone 16+ + +private! your 2003 account statement for shows 800 un-redeemed s.i.m. points. call 08718738001 identifier code: 49557 expires 26/11/04 + +my love ... i hope your not doing anything drastic. don't you dare sell your pc or your phone ... + +"orange customer +"thanks for your ringtone order +jus finish my lunch on my way home lor... i tot u dun wan 2 stay in sch today... + +dont hesitate. you know this is the second time she has had weakness like that. so keep i notebook of what she eat and did the day before or if anything changed the day before so that we can be sure its nothing + +"thanks for your ringtone order +7 at esplanade.. do ?_ mind giving me a lift cos i got no car today.. + +you will be in the place of that man + +ok good then i later come find ?_... c lucky i told ?_ to go earlier... later pple take finish ?_ no more again... + +k fyi x has a ride early tomorrow morning but he's crashing at our place tonight + +married local women looking for discreet action now! 5 real matches instantly to your phone. text match to 69969 msg cost 150p 2 stop txt stop bcmsfwc1n3xx + +how was txting and driving + +"u can win ??100 of music gift vouchers every week starting now txt the word draw to 87066 tscs www.idew.com skillgame +"sunshine hols. to claim ur med holiday send a stamped self address envelope to drinks on us uk +private! your 2003 account statement for shows 800 un-redeemed s. i. m. points. call 08715203652 identifier code: 42810 expires 29/10/0 + +doing project w frens lor. + +"sorry +infact happy new year. how are you where are you when are we seeing + +watch lor. i saw a few swatch one i thk quite ok. ard 116 but i need 2nd opinion leh... + +hiya hows it going in sunny africa? hope u r avin a good time. give that big old silver back a big kiss from me. + +yes! the only place in town to meet exciting adult singles is now in the uk. txt chat to 86688 now! 150p/msg. + +take us out shopping and mark will distract isaiah.=d + +"xmas & new years eve tickets are now on sale from the club +it didnt work again oh. ok goodnight then. i.ll fix and have it ready by the time you wake up. you are very dearly missed have a good night sleep. + +am on the uworld site. am i buying the qbank only or am i buying it with the self assessment also? + +"tddnewsletter.co.uk (more games from thedailydraw) dear helen +congratulations ur awarded 500 of cd vouchers or 125gift guaranteed & free entry 2 100 wkly draw txt music to 87066 + +"u can win ??100 of music gift vouchers every week starting now txt the word draw to 87066 tscs www.ldew.com skillgame +are you plans with your family set in stone ? + +freemsg: txt: call to no: 86888 & claim your reward of 3 hours talk time to use from your phone now! subscribe6gbp/mnth inc 3hrs 16 stop?txtstop + +claire here am havin borin time & am now alone u wanna cum over 2nite? chat now 09099725823 hope 2 c u luv claire xx calls??1/minmoremobsemspobox45po139wa + +want 2 get laid tonight? want real dogging locations sent direct 2 ur mob? join the uk's largest dogging network bt txting gravel to 69888! nt. ec2a. 31p.msg + +money!!! you r a lucky winner ! 2 claim your prize text money 2 88600 over ??1million to give away ! ppt150x3+normal text rate box403 w1t1jy + +you know my old dom i told you about yesterday ? his name is roger? he got in touch with me last night and wants me to meet him today at 2 pm + +i am not sure about night menu. . . i know only about noon menu + +"congrats! 1 year special cinema pass for 2 is yours. call 09061209465 now! c suprman v +ah you see. you have to be in the lingo. i will let you know wot on earth it is when has finished making it! + +u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094599 + +ladies first and genus second k . + +now am free call me pa. + +"as a valued customer +free top ringtone -sub to weekly ringtone-get 1st week free-send subpoly to 81618-?3 per week-stop sms-08718727870 + +you are a winner u have been specially selected 2 receive ??1000 or a 4* holiday (flights inc) speak to a live operator 2 claim 0871277810910p/min (18+) + +the beauty of life is in next second.. which hides thousands of secrets. i wish every second will be wonderful in ur life...!! gud n8 + +mobile club: choose any of the top quality items for your mobile. 7cfca1a + +you are a winner you have been specially selected to receive ??1000 cash or a ??2000 award. speak to a live operator to claim call 087147123779am-7pm. cost 10p + +ur going 2 bahamas! callfreefone 08081560665 and speak to a live operator to claim either bahamas cruise of??2000 cash 18+only. to opt out txt x to 07786200117 + +7 lor... change 2 suntec... wat time u coming? + +free tones hope you enjoyed your new content. text stop to 61610 to unsubscribe. help:08712400602450p provided by tones2you.co.uk + +are your freezing ? are you home yet ? will you remember to kiss your mom in the morning? do you love me ? do you think of me ? are you missing me yet ? + +probably a couple hours tops + +"free nokia or motorola with upto 12mths 1/2price linerental +gud ni8 dear..slp well..take care..swt dreams..muah.. + +wife.how she knew the time of murder exactly + +how are u? i have missed u! i havent been up 2 much a bit bored with the holiday want 2 go bak 2 college! sad isnt it?xx + +"u were outbid by simonwatson5120 on the shinco dvd plyr. 2 bid again +summers finally here! fancy a chat or flirt with sexy singles in yr area? to get matched up just reply summer now. free 2 join. optout txt stop help08714742804 + +designation is software developer and may be she get chennai:) + +"under the sea +call 09095350301 and send our girls into erotic ecstacy. just 60p/min. to stop texts call 08712460324 (nat rate) + +marvel mobile play the official ultimate spider-man game (??4.50) on ur mobile right now. text spider to 83338 for the game & we ll send u a free 8ball wallpaper + +"mila +"themob>hit the link to get a premium pink panther game +one of best dialogue in cute reltnship..!! \wen i die + +"this is the 2nd attempt to contract u +wait <#> min.. + +hey tmr meet at bugis 930 ? + +mmm thats better now i got a roast down me! i??d b better if i had a few drinks down me 2! good indian? + +oh k. . i will come tomorrow + +please reserve ticket on saturday eve from chennai to thirunelvali and again from tirunelvali to chennai on sunday eve...i already see in net..no ticket available..i want to book ticket through tackle .. + +"ask g or iouri +2p per min to call germany 08448350055 from your bt line. just 2p per min. check planettalkinstant.com for info & t's & c's. text stop to opt out + +do you want 750 anytime any network mins 150 text and a new video phone for only five pounds per week call 08000776320 now or reply for delivery tomorrow + +santa calling! would your little ones like a call from santa xmas eve? call 09077818151 to book you time. calls1.50ppm last 3mins 30s t&c www.santacalling.com + +you won't believe it but it's true. it's incredible txts! reply g now to learn truly amazing things that will blow your mind. from o2fwd only 18p/txt + +?? bot notes oredi... cos i juz rem i got... + +you will be receiving this week's triple echo ringtone shortly. enjoy it! + +camera - you are awarded a sipix digital camera! call 09061221066 fromm landline. delivery within 28 days + +then just eat a shit and wait for ur monkey face bitch.......... u asshole.................. + +"solve d case : a man was found murdered on <decimal> . <#> afternoon. 1 +"hmm well +"alright +december only! had your mobile 11mths+? you are entitled to update to the latest colour camera mobile for free! call the mobile update co free on 08002986906 + +i tot it's my group mate... lucky i havent reply... wat time do ?_ need to leave... + +then i buy. + +yoyyooo u know how to change permissions for a drive in mac. my usb flash drive + +"xxxmobilemovieclub: to use your credit +wanna get laid 2nite? want real dogging locations sent direct to ur mobile? join the uk's largest dogging network. txt park to 69696 now! nyt. ec2a. 3lp ??1.50/msg + +"a boy loved a gal. he propsd bt she didnt mind. he gv lv lttrs +the 2 oz guy is being kinda flaky but one friend is interested in picking up $ <#> worth tonight if possible + +yes! the only place in town to meet exciting adult singles is now in the uk. txt chat to 86688 now! 150p/msg. + +married local women looking for discreet action now! 5 real matches instantly to your phone. text match to 69969 msg cost 150p 2 stop txt stop bcmsfwc1n3xx + +first has she gained more than <#> kg since she took in. second has she done the blood sugar tests. if she has and its ok and her blood pressure is within normal limits then no worries + +so its to be poking man everyday that they teach you in canada abi! how are you. just saying hi. + +hurt me... tease me... make me cry... but in the end of my life when i die plz keep one rose on my grave and say stupid i miss u.. have a nice day bslvyl + +ha ha - had popped down to the loo when you hello-ed me. hello! + +ok. every night take a warm bath drink a cup of milk and you'll see a work of magic. you still need to loose weight. just so that you know + +at what time should i come tomorrow + +i told that am coming on wednesday. + +yes :)it completely in out of form:)clark also utter waste. + +never y lei... i v lazy... got wat? dat day ?_ send me da url cant work one... + +how come? + +happy new year princess! + +ok... but bag again.. + +500 free text msgs. just text ok to 80488 and we'll credit your account + +free entry in 2 a wkly comp to win fa cup final tkts 21st may 2005. text fa to 87121 to receive entry question(std txt rate)t&c's apply 08452810075over18's + +i dont have any of your file in my bag..i was in work when you called me.i 'll tell you if i find anything in my room. + +hi 07734396839 ibh customer loyalty offer: the new nokia6600 mobile from only ??10 at txtauction!txt word:start to no:81151 & get yours now!4t& + +hey what are you doing. y no reply pa.. + +no * am working on the ringing u thing but have whole houseful of screaming brats so * am pulling my hair out! loving u + +no problem with the renewal. i.ll do it right away but i dont know his details. + +"upgrdcentre orange customer +save money on wedding lingerie at www.bridal.petticoatdreams.co.uk choose from a superb selection with national delivery. brought to you by weddingfriend + +aathi..where are you dear.. + +"six chances to win cash! from 100 to 20 +urgent! your mobile number has been awarded with a ??2000 prize guaranteed. call 09058094454 from land line. claim 3030. valid 12hrs only + +s s..first time..dhoni rocks... + +we currently have a message awaiting your collection. to collect your message just call 08718723815. + +do you want a new video handset? 750 anytime any network mins? half price line rental? camcorder? reply or call 08000930705 for delivery tomorrow + +many times we lose our best ones bcoz we are + +dear voucher holder have your next meal on us. use the following link on your pc 2 enjoy a 2 4 1 dining experiencehttp://www.vouch4me.com/etlp/dining.asp + +please call amanda with regard to renewing or upgrading your current t-mobile handset free of charge. offer ends today. tel 0845 021 3680 subject to t's and c's + +hmv bonus special 500 pounds of genuine hmv vouchers to be won. just answer 4 easy questions. play now! send hmv to 86688 more info:www.100percent-real.com + +how come it takes so little time for a child who is afraid of the dark to become a teenager who wants to stay out all night? + +is that seriously how you spell his name? + +camera - you are awarded a sipix digital camera! call 09061221066 fromm landline. delivery within 28 days. + +"your free ringtone is waiting to be collected. simply text the password \mix\"" to 85069 to verify. get usher and britney. fml mk17 92h. 450ppw 16""" + +"i'm not coming over +"final chance! claim ur ??150 worth of discount vouchers today! text yes to 85023 now! savamob +he telling not to tell any one. if so treat for me hi hi hi + +most of the tiime when i don't let you hug me it's so i don't break into tears. + +i dled 3d its very imp + +3. you have received your mobile content. enjoy + +sexy sexy cum and text me im wet and warm and ready for some porn! u up for some fun? this msg is free recd msgs 150p inc vat 2 cancel text stop + +are you unique enough? find out from 30th august. www.areyouunique.co.uk + +4mths half price orange line rental & latest camera phones 4 free. had your phone 11mths+? call mobilesdirect free on 08000938767 to update now! or2stoptxt t&cs + +ya very nice. . .be ready on thursday + +hows my favourite person today? r u workin hard? couldn't sleep again last nite nearly rang u at 4.30 + +good luck! draw takes place 28th feb 06. good luck! for removal send stop to 87239 customer services 08708034412 + +none of that's happening til you get here though + +hey happy birthday... + +"when you get free +sexy singles are waiting for you! text your age followed by your gender as wither m or f e.g.23f. for gay men text your age followed by a g. e.g.23g. + +winner!! as a valued network customer you have been selected to receivea ??900 prize reward! to claim call 09061701461. claim code kl341. valid 12 hours only. + +"arngd marriage is while u r walkin unfortuntly a snake bites u. bt love marriage is dancing in frnt of d snake & sayin bite me +"brainless baby doll..:-d;-) +"especially since i talk about boston all up in my personal statement +congratulations ur awarded either a yrs supply of cds from virgin records or a mystery gift guaranteed call 09061104283 ts&cs www.smsco.net ??1.50pm approx 3mins + +my sort code is and acc no is . the bank is natwest. can you reply to confirm i've sent this to the right person! + +ur ringtone service has changed! 25 free credits! go to club4mobiles.com to choose content now! stop? txt club stop to 87070. 150p/wk club4 po box1146 mk45 2wt + +free entry in 2 a wkly comp to win fa cup final tkts 21st may 2005. text fa to 87121 to receive entry question(std txt rate)t&c's apply 08452810075over18's + +you are a winner you have been specially selected to receive ??1000 cash or a ??2000 award. speak to a live operator to claim call 087123002209am-7pm. cost 10p + +customer service annoncement. you have a new years delivery waiting for you. please call 07046744435 now to arrange delivery + +monthly password for wap. mobsi.com is 391784. use your wap phone not pc. + +hi this is yijue... it's regarding the 3230 textbook it's intro to algorithms second edition... i'm selling it for $50... + +"urgent! please call 0906346330. your abta complimentary 4* spanish holiday or ??10 +santa calling! would your little ones like a call from santa xmas eve? call 09058094583 to book your time. + +"you are guaranteed the latest nokia phone +"hi +why do you ask princess? + +you have to pls make a note of all she.s exposed to. also find out from her school if anyone else was vomiting. is there a dog or cat in the house? let me know later. + +nothing will ever be easy. but don't be looking for a reason not to take a risk on life and love + +i am hot n horny and willing i live local to you - text a reply to hear strt back from me 150p per msg netcollex ltdhelpdesk: 02085076972 reply stop to end + +hi dis is yijue i would be happy to work wif ?_ all for gek1510... + +then we wait 4 u lor... no need 2 feel bad lar... + +please call our customer service representative on freephone 0808 145 4742 between 9am-11pm as you have won a guaranteed ??1000 cash or ??5000 prize! + +"had your mobile 10 mths? update to the latest camera/video phones for free. keep ur same number +dear :-/ why you mood off. i cant drive so i brother to drive + +did u find a sitter for kaitlyn? i was sick and slept all day yesterday. + +reckon need to be in town by eightish to walk from * carpark. + +dude sux for snake. he got old and raiden got buff + +many more happy returns of the day. i wish you happy birthday. + +74355 xmas iscoming & ur awarded either ??500 cd gift vouchers & free entry 2 r ??100 weekly draw txt music to 87066 tnc + +shall i come to get pickle + +"freemsg hey u +"you are a ??1000 winner or guaranteed caller prize +if he started searching he will get job in few days.he have great potential and talent. + +hello. we need some posh birds and chaps to user trial prods for champneys. can i put you down? i need your address and dob asap. ta r + +freemsg: hey - i'm buffy. 25 and love to satisfy men. home alone feeling randy. reply 2 c my pix! qlynnbv help08700621170150p a msg send stop to stop txts + +sounds like you have many talents! would you like to go on a dinner date next week? + +urgent! please call 09061743810 from landline. your abta complimentary 4* tenerife holiday or #5000 cash await collection sae t&cs box 326 cw25wx 150 ppm + +"themob> check out our newest selection of content +fine if that??s the way u feel. that??s the way its gota b + +if you have belive me. come to my home. + +theyre doing it to lots of places. only hospitals and medical places are safe. + +"goal! arsenal 4 (henry +same to u... + +"our mobile number has won ??5000 +welp apparently he retired + +urgent! your mobile number has been awarded with a ??2000 prize guaranteed. call 09058094454 from land line. claim 3030. valid 12hrs only + +free for 1st week! no1 nokia tone 4 ur mobile every week just txt nokia to 8077 get txting and tell ur mates. www.getzed.co.uk pobox 36504 w45wq 16+ norm150p/tone + +amazing : if you rearrange these letters it gives the same meaning... dormitory = dirty room astronomer = moon starer the eyes = they see election results = lies lets recount mother-in-law = woman hitler eleven plus two =twelve plus one its amazing... !:-) + +fffff. can you text kadeem or are you too far gone + +i love u 2 my little pocy bell i am sorry but i love u + +"for ur chance to win a ??250 wkly shopping spree txt: shop to 80878. t's&c's www.txt-2-shop.com custcare 08715705022 +ur going 2 bahamas! callfreefone 08081560665 and speak to a live operator to claim either bahamas cruise of??2000 cash 18+only. to opt out txt x to 07786200117 + +urgent! please call 09061213237 from a landline. ??5000 cash or a 4* holiday await collection. t &cs sae po box 177 m227xy. 16+ + +"500 new mobiles from 2004 +no i am not having not any movies in my laptop + +"free-message: jamster!get the crazy frog sound now! for poly text mad1 +no. thank you. you've been wonderful + +stop calling everyone saying i might have cancer. my throat hurts to talk. i can't be answering everyones calls. if i get one more call i'm not babysitting on monday + +"hi babe its chloe +she.s good. she was wondering if you wont say hi but she.s smiling now. so how are you coping with the long distance + +win a year supply of cds 4 a store of ur choice worth ??500 & enter our ??100 weekly draw txt music to 87066 ts&cs www.ldew.com.subs16+1win150ppmx3 + +"1000's flirting now! txt girl or bloke & ur name & age +good sleep is about rhythm. the person has to establish a rhythm that the body will learn and use. if you want to know more :-) + +is ur paper in e morn or aft tmr? + +your account has been refilled successfully by inr <decimal> . your keralacircle prepaid account balance is rs <decimal> . your transaction id is kr <#> . + +it vl bcum more difficult.. + +private! your 2004 account statement for 07742676969 shows 786 unredeemed bonus points. to claim call 08719180248 identifier code: 45239 expires + +cps is causing the outages to conserve energy. + +this pay is <decimal> lakhs:) + +"bangbabes ur order is on the way. u should receive a service msg 2 download ur content. if u do not +message from . i am at truro hospital on ext. you can phone me here. as i have a phone by my side + +"rock yr chik. get 100's of filthy films &xxx pics on yr phone now. rply filth to 69669. saristar ltd +asked 3mobile if 0870 chatlines inclu in free mins. india cust servs sed yes. l8er got mega bill. 3 dont giv a shit. bailiff due in days. i o ??250 3 want ??800 + +oh wow thats gay. will firmware update help + +"cool +"six chances to win cash! from 100 to 20 +"congrats! 2 mobile 3g videophones r yours. call 09063458130 now! videochat wid your mates +i know you are. can you pls open the back? + +and popping <#> ibuprofens was no help. + +when u wana see it then + +yeah i don't see why not + +"love isn't a decision +k.i did't see you.:)k:)where are you now? + +you are now unsubscribed all services. get tons of sexy babes or hunks straight to your phone! go to http://gotbabes.co.uk. no subscriptions. + +arr birthday today:) i wish him to get more oscar. + +"can you pls pls send me a mail on all you know about relatives coming to deliver here? all you know about costs +ok. + +"this is the 2nd time we have tried 2 contact u. u have won the 750 pound prize. 2 claim is easy +please call 08712402972 immediately as there is an urgent message waiting for you + +urgent ur ??500 guaranteed award is still unclaimed! call 09066368327 now closingdate04/09/02 claimcode m39m51 ??1.50pmmorefrommobile2bremoved-mobypobox734ls27yf + +"six chances to win cash! from 100 to 20 +my sister got placed in birla soft da:-) + +omg it could snow here tonite! + +cos i was out shopping wif darren jus now n i called him 2 ask wat present he wan lor. then he started guessing who i was wif n he finally guessed darren lor. + +new textbuddy chat 2 horny guys in ur area 4 just 25p free 2 receive search postcode or at gaytextbuddy.com. txt one name to 89693 + +"i'm eatin now lor +"yes..but they said its it. +sday only joined.so training we started today:) + +"urgent! your mobile no was awarded a ??2 +"final chance! claim ur ??150 worth of discount vouchers today! text yes to 85023 now! savamob +text banneduk to 89555 to see! cost 150p textoperator g696ga 18+ xxx + +"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 +i probably won't eat at all today. i think i'm gonna pop. how was your weekend? did u miss me? + +i dont know what to do to come out of this so only am ask questions like this dont mistake me. + +boltblue tones for 150p reply poly# or mono# eg poly3 1. cha cha slide 2. yeah 3. slow jamz 6. toxic 8. come with me or stop 4 more tones txt more + +do you know what mallika sherawat did yesterday? find out now @ <url> + +"yeah hopefully +sexy sexy cum and text me im wet and warm and ready for some porn! u up for some fun? this msg is free recd msgs 150p inc vat 2 cancel text stop + +"urgent -call 09066649731from landline. your complimentary 4* ibiza holiday or ??10 +"alright if you're sure +they have a thread on the wishlist section of the forums where ppl post nitro requests. start from the last page and collect from the bottom up. + +"congrats! 2 mobile 3g videophones r yours. call 09061744553 now! videochat wid ur mates +"dont search love +win a ??1000 cash prize or a prize worth ??5000 + +no calls..messages..missed calls + +"sorry +"think ur smart ? win ??200 this week in our weekly quiz +dear voucher holder have your next meal on us. use the following link on your pc 2 enjoy a 2 4 1 dining experiencehttp://www.vouch4me.com/etlp/dining.asp + +i doubt you could handle 5 times per night in any case... + +dorothy.com (bank of granite issues strong-buy) explosive pick for our members *****up over 300% *********** nasdaq symbol cdgt that is a $5.00 per.. + +hi happy birthday. hi hi hi hi hi hi hi + +just wait till end of march when el nino gets himself. oh. + +you have 1 new message. please call 08712400200. + +i can call in <#> min if thats ok + +please call our customer service representative on 0800 169 6031 between 10am-9pm as you have won a guaranteed ??1000 cash or ??5000 prize! + +"congratulations! thanks to a good friend u have won the ??2 +ok not a problem will get them a taxi. c ing tomorrow and tuesday. on tuesday think we r all going to the cinema. + +"for ur chance to win a ??250 wkly shopping spree txt: shop to 80878. t's&c's www.txt-2-shop.com custcare 08715705022 +hui xin is in da lib. + +"i love you !!! you know? can you feel it? does it make your belly warm? i wish it does +"3 free tarot texts! find out about your love life now! try 3 for free! text chance to 85555 16 only! after 3 free +so the sun is anti sleep medicine. + +\its ur luck to love someone. its ur fortune to love the one who loves u. but + +waiting 4 my tv show 2 start lor... u leh still busy doing ur report? + +valentines day special! win over ??1000 in our quiz and take your partner on the trip of a lifetime! send go to 83600 now. 150p/msg rcvd. custcare:08718720201. + +you have won a guaranteed 32000 award or maybe even ??1000 cash to claim ur award call free on 0800 ..... (18+). its a legitimat efreefone number wat do u think??? + +do you hide anythiing or keeping distance from me + +ugh my leg hurts. musta overdid it on mon. + +well welp is sort of a semiobscure internet thing + +they are just making it easy to pay back. i have <#> yrs to say but i can pay back earlier. you get? + +u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094594 + +ok... sweet dreams... + +okie... + +ok i msg u b4 i leave my house. + +"double mins and txts 4 6months free bluetooth on orange. available on sony +4mths half price orange line rental & latest camera phones 4 free. had your phone 11mths ? call mobilesdirect free on 08000938767 to update now! or2stoptxt + +private! your 2003 account statement for 07973788240 shows 800 un-redeemed s. i. m. points. call 08715203649 identifier code: 40533 expires 31/10/04 + +wat r u doing now? + +please call our customer service representative on 0800 169 6031 between 10am-9pm as you have won a guaranteed ??1000 cash or ??5000 prize! + +why are u up so early? + +"happy or sad +"xmas & new years eve tickets are now on sale from the club +she's borderline but yeah whatever. + +"accordingly. i repeat +someonone you know is trying to contact you via our dating service! to find out who it could be call from your mobile or landline 09064015307 box334sk38ch + +its like that hotel dusk game i think. you solve puzzles in a area thing + +oh. u must have taken your real valentine out shopping first. + +quite lor. but dun tell him wait he get complacent... + +* free* polyphonic ringtone text super to 87131 to get your free poly tone of the week now! 16 sn pobox202 nr31 7zs subscription 450pw + +you have 1 new voicemail. please call 08719181513. + +"u were outbid by simonwatson5120 on the shinco dvd plyr. 2 bid again +4mths half price orange line rental & latest camera phones 4 free. had your phone 11mths ? call mobilesdirect free on 08000938767 to update now! or2stoptxt + +private! your 2003 account statement for shows 800 un-redeemed s. i. m. points. call 08715203656 identifier code: 42049 expires 26/10/04 + +your brother is a genius + +oh howda gud gud.. mathe en samachara chikku:-) + +haven't eaten all day. i'm sitting here staring at this juicy pizza and i can't eat it. these meds are ruining my life. + +sms. ac sun0819 posts hello:\you seem cool + +"i guess you could be as good an excuse as any +i don't know u and u don't know me. send chat to 86688 now and let's find each other! only 150p/msg rcvd. hg/suite342/2lands/row/w1j6hl ldn. 18 years or over. + +u???ve bin awarded ??50 to play 4 instant cash. call 08715203028 to claim. every 9th player wins min ??50-??500. optout 08718727870 + +lol i know! hey someone did a great inpersonation of flea on the forums. i love it! + +"den only weekdays got special price... haiz... cant eat liao... cut nails oso muz wait until i finish drivin wat +kindly send some one to our flat before <decimal> today. + +i to am looking forward to all the sex cuddling.. only two more sleeps + +just taste fish curry :-p + +congratulations ur awarded 500 of cd vouchers or 125gift guaranteed & free entry 2 100 wkly draw txt music to 87066 tncs www.ldew.com1win150ppmx3age16 + +talk sexy!! make new friends or fall in love in the worlds most discreet text dating service. just text vip to 83110 and see who you could meet. + +"dear voucher holder +y bishan lei... i tot ?_ say lavender? + +"yo +kinda. first one gets in at twelve! aah. speak tomo + +love that holiday monday feeling even if i have to go to the dentists in an hour + +check out choose your babe videos @ sms.shsex.netun fgkslpopw fgkslpo + +hello peach! my cake tasts lush! + +rightio. 11.48 it is then. well arent we all up bright and early this morning. + +hope you are having a great day. + +"er yeah +"in the simpsons movie released in july 2007 name the band that died at the start of the film? a-green day +its not that time of the month nor mid of the time? + +ugh its been a long day. i'm exhausted. just want to cuddle up and take a nap + +no it was cancelled yeah baby! well that sounds important so i understand my darlin give me a ring later on this fone love kate x + +gent! we are trying to contact you. last weekends draw shows that you won a ??1000 prize guaranteed. call 09064012160. claim code k52. valid 12hrs only. 150ppm + +no 1 polyphonic tone 4 ur mob every week! just txt pt2 to 87575. 1st tone free ! so get txtin now and tell ur friends. 150p/tone. 16 reply hl 4info + +"i want some cock! my hubby's away +new car and house for my parents.:)i have only new job in hand:) + +im good! i have been thinking about you... + +"yo +"u r subscribed 2 textcomp 250 wkly comp. 1st wk?s free question follows +thanx a lot 4 ur help! + +congratulations ur awarded either ??500 of cd gift vouchers & free entry 2 our ??100 weekly draw txt music to 87066 tncs www.ldew.com1win150ppmx3age16 + +yeah jay's sort of a fucking retard + +"congrats 2 mobile 3g videophones r yours. call 09063458130 now! videochat wid ur mates +will ?_ b going to esplanade fr home? + +"you ve won! your 4* costa del sol holiday or ??5000 await collection. call 09050090044 now toclaim. sae +"free game. get rayman golf 4 free from the o2 games arcade. 1st get ur games settings. reply post +"the guy (kadeem) hasn't been selling since the break +"hi there +hey gals.. anyone of u going down to e driving centre tmr? + +ok ill send you with in <decimal> ok. + +u are subscribed to the best mobile content service in the uk for ??3 per ten days until you send stop to 83435. helpline 08706091795. + +you can donate ??2.50 to unicef's asian tsunami disaster support fund by texting donate to 864233. ??2.50 will be added to your next bill + +call freephone 0800 542 0578 now! + +"congrats 2 mobile 3g videophones r yours. call 09063458130 now! videochat wid ur mates +todays voda numbers ending 1225 are selected to receive a ??50award. if you have a match please call 08712300220 quoting claim code 3100 standard rates app + +i'm sorry. i've joined the league of people that dont keep in touch. you mean a great deal to me. you have been a friend at all times even at great personal cost. do have a great week.| + +how about getting in touch with folks waiting for company? just txt back your name and age to opt in! enjoy the community (150p/sms) + +urgent! we are trying to contact u. todays draw shows that you have won a ??2000 prize guaranteed. call 09066358361 from land line. claim y87. valid 12hrs only + +great new offer - double mins & double txt on best orange tariffs and get latest camera phones 4 free! call mobileupd8 free on 08000839402 now! or 2stoptxt t&cs + +free entry into our ??250 weekly comp just send the word win to 80086 now. 18 t&c www.txttowin.co.uk + +"free game. get rayman golf 4 free from the o2 games arcade. 1st get ur games settings. reply post +"as a valued customer +spoons it is then okay? + +todays voda numbers ending 5226 are selected to receive a ?350 award. if you hava a match please call 08712300220 quoting claim code 1131 standard rates app + +mmmm ... fuck ... not fair ! you know my weaknesses ! *grins* *pushes you to your knee's* *exposes my belly and pulls your head to it* don't forget ... i know yours too *wicked smile* + +"eerie nokia tones 4u +great new offer - double mins & double txt on best orange tariffs and get latest camera phones 4 free! call mobileupd8 free on 08000839402 now! or 2stoptxt t&cs + +left dessert. u wan me 2 go suntec look 4 u? + +"after my work ah... den 6 plus lor... u workin oso rite... den go orchard lor +you will go to walmart. i.ll stay. + +congrats! nokia 3650 video camera phone is your call 09066382422 calls cost 150ppm ave call 3mins vary from mobiles 16+ close 300603 post bcm4284 ldn wc1n3xx + +"when you just put in the + sign +"congrats! 2 mobile 3g videophones r yours. call 09061744553 now! videochat wid ur mates +free top ringtone -sub to weekly ringtone-get 1st week free-send subpoly to 81618-?3 per week-stop sms-08718727870 + +"feb <#> is \i love u\"" day. send dis to all ur \""valued frnds\"" evn me. if 3 comes back u'll gt married d person u luv! if u ignore dis u will lose ur luv 4 evr""" + +oh is it? send me the address + +private! your 2003 account statement for 07815296484 shows 800 un-redeemed s.i.m. points. call 08718738001 identifier code 41782 expires 18/11/04 + +want 2 get laid tonight? want real dogging locations sent direct 2 ur mob? join the uk's largest dogging network bt txting gravel to 69888! nt. ec2a. 31p.msg + +urgent! your mobile number has been awarded a 2000 prize guaranteed. call 09061790125 from landline. claim 3030. valid 12hrs only 150ppm + +die... now i have e toot fringe again... + +long after i quit. i get on only like 5 minutes a day as it is. + +you have won a guaranteed ??1000 cash or a ??2000 prize. to claim yr prize call our customer service representative on 08714712394 between 10am-7pm + +meeting u is my work. . . tel me when shall i do my work tomorrow + +i think that tantrum's finished so yeah i'll be by at some point + +"wow. i never realized that you were so embarassed by your accomodations. i thought you liked it +"i'm nt goin +free 1st week entry 2 textpod 4 a chance 2 win 40gb ipod or ??250 cash every wk. txt vpod to 81303 ts&cs www.textpod.net custcare 08712405020. + +"just sent again. do you scream and moan in bed +5p 4 alfie moon's children in need song on ur mob. tell ur m8s. txt tone charity to 8007 for nokias or poly charity for polys: zed 08701417012 profit 2 charity. + +v nice! off 2 sheffield tom 2 air my opinions on categories 2 b used 2 measure ethnicity in next census. busy transcribing. :-) + +hi its kate can u give me a ring asap xxx + +"yeah +this is ur face test ( 1 2 3 4 5 6 7 8 9 <#> ) select any number i will tell ur face astrology.... am waiting. quick reply... + +u don't remember that old commercial? + +"spjanuary male sale! hot gay chat now cheaper +1000's of girls many local 2 u who r virgins 2 this & r ready 2 4fil ur every sexual need. can u 4fil theirs? text cute to 69911(??1.50p. m) + +double mins & double txt & 1/2 price linerental on latest orange bluetooth mobiles. call mobileupd8 for the very latest offers. 08000839402 or call2optout/lf56 + +shall i start from hear. + +no we sell it all so we'll have tons if coins. then sell our coins to someone thru paypal. voila! money back in life pockets:) + +msgs r not time pass.they silently say that i am thinking of u right now and also making u think of me at least 4 a moment. gd nt.swt drms + +"mila +urgent! we are trying to contact u. todays draw shows that you have won a ??2000 prize guaranteed. call 09066358361 from land line. claim y87. valid 12hrs only + +i'll reach in ard 20 mins ok... + +i am sorry it hurt you. + +"yeah we wouldn't leave for an hour at least +88066 from 88066 lost 3pound help + +"\hi darlin did youphone me? im athome if youwanna chat.\""""" + +waiting in e car 4 my mum lor. u leh? reach home already? + +get the official england poly ringtone or colour flag on yer mobile for tonights game! text tone or flag to 84199. optout txt eng stop box39822 w111wx ??1.50 + +yo we are watching a movie on netflix + +wamma get laid?want real doggin locations sent direct to your mobile? join the uks largest dogging network. txt dogs to 69696 now!nyt. ec2a. 3lp ??1.50/msg. + +ok. she'll be ok. i guess + +"give her something to drink +he's an adult and would learn from the experience. there's no real danger. i just dont like peeps using drugs they dont need. but no comment + +yes:)from last week itself i'm taking live call. + +no need lar i go engin? cos my sis at arts today... + +rt-king pro video club>> need help? info.co.uk or call 08701237397 you must be 16+ club credits redeemable at www.ringtoneking.co.uk! enjoy! + +i'm also came to room. + +no message..no responce..what happend? + +wanna have a laugh? try chit-chat on your mobile now! logon by txting the word: chat and send it to no: 8883 cm po box 4217 london w1a 6zf 16+ 118p/msg rcvd + +100 dating service cal;l 09064012103 box334sk38ch + +how many licks does it take to get to the center of a tootsie pop? + +if you're thinking of lifting me one then no. + +"thanks for your ringtone order +your credits have been topped up for http://www.bubbletext.com your renewal pin is tgxxrz + +urgent! we are trying to contact u. todays draw shows that you have won a ??800 prize guaranteed. call 09050001295 from land line. claim a21. valid 12hrs only + +we tried to contact you re your reply to our offer of a video phone 750 anytime any network mins half price line rental camcorder reply or call 08000930705 + +i don't know u and u don't know me. send chat to 86688 now and let's find each other! only 150p/msg rcvd. hg/suite342/2lands/row/w1j6hl ldn. 18 years or over. + +"\hey babe! far 2 spun-out 2 spk at da mo... dead 2 da wrld. been sleeping on da sofa all day tx 4 fonin hon call 2mwen im bk frmcloud 9! j x\""""" + +i tot u reach liao. he said t-shirt. + +"today's offer! claim ur ??150 worth of discount vouchers! text yes to 85023 now! savamob +so there's a ring that comes with the guys costumes. it's there so they can gift their future yowifes. hint hint + +ok lor... + +more people are dogging in your area now. call 09090204448 and join like minded guys. why not arrange 1 yourself. there's 1 this evening. a??1.50 minapn ls278bb + +wanna have a laugh? try chit-chat on your mobile now! logon by txting the word: chat and send it to no: 8883 cm po box 4217 london w1a 6zf 16+ 118p/msg rcvd + +thnx dude. u guys out 2nite? + +themob>yo yo yo-here comes a new selection of hot downloads for our members to get for free! just click & open the next link sent to ur fone... + +refused a loan? secured or unsecured? can't get credit? call free now 0800 195 6669 or text back 'help' & we will! + +do well :)all will for little time. thing of good times ahead: + +you have won a nokia 7250i. this is what you get when you win our free auction. to take part send nokia to 86021 now. hg/suite342/2lands row/w1jhl 16+ + +do you want a new nokia 3510i colour phone delivered tomorrow? with 200 free minutes to any mobile + 100 free text + free camcorder reply or call 8000930705 + +hey do you want anything to buy:) + +private! your 2003 account statement for 07753741225 shows 800 un-redeemed s. i. m. points. call 08715203677 identifier code: 42478 expires 24/10/04 + +valentines day special! win over ??1000 in our quiz and take your partner on the trip of a lifetime! send go to 83600 now. 150p/msg rcvd. custcare:08718720201 + +"thanks for your ringtone order +i don't know jack shit about anything or i'd say/ask something helpful but if you want you can pretend that i did and just text me whatever in response to the hypotheticalhuagauahahuagahyuhagga + +sounds great! im going to sleep now. have a good night! + +"buzz! hey +"do you ever notice that when you're driving +i cant pick the phone right now. pls send a message + +"your free ringtone is waiting to be collected. simply text the password \mix\"" to 85069 to verify. get usher and britney. fml mk17 92h. 450ppw 16""" + +"so many people seems to be special at first sight +no got new job at bar in airport on satsgettin 4.47per hour but means no lie in! keep in touch + +eastenders tv quiz. what flower does dot compare herself to? d= violet e= tulip f= lily txt d e or f to 84025 now 4 chance 2 win ??100 cash wkent/150p16+ + +you have 1 new message. call 0207-083-6089 + +"urgent! your mobile no was awarded a ??2 +congratulations you've won. you're a winner in our august ??1000 prize draw. call 09066660100 now. prize code 2309. + +"congratulations - thanks to a good friend u have won the ??2 +when you are big..| god will bring success. + +"win the newest ???harry potter and the order of the phoenix (book 5) reply harry +oh ho. is this the first time u use these type of words + +the current leading bid is 151. to pause this auction send out. customer care: 08718726270 + +i got it before the new year cos yetunde said she wanted to surprise you with it but when i didnt see money i returned it mid january before the <#> day return period ended. + +done it but internet connection v slow and can???t send it. will try again later or first thing tomo. + +"cool +ur cash-balance is currently 500 pounds - to maximize ur cash-in now send go to 86688 only 150p/msg. cc 08718720201 hg/suite342/2lands row/w1j6hl + +i hate when she does this. she turns what should be a fun shopping trip into an annoying day of how everything would look in her house. + +freemsg hi baby wow just got a new cam moby. wanna c a hot pic? or fancy a chat?im w8in 4utxt / rply chat to 82242 hlp 08712317606 msg150p 2rcv + +"do you know why god created gap between your fingers..? so that +how are you babes. hope your doing ok. i had a shit nights sleep. i fell asleep at 5.i??m knackered and i??m dreading work tonight. what are thou upto tonight. x + +"mila +our records indicate u maybe entitled to 5000 pounds in compensation for the accident you had. to claim 4 free reply with claim to this msg. 2 stop txt stop + +"just looked it up and addie goes back monday +congratulations ur awarded 500 of cd vouchers or 125gift guaranteed & free entry 2 100 wkly draw txt music to 87066 + +i am in hospital da. . i will return home in evening + +"orange brings you ringtones from all time chart heroes +great news! call freefone 08006344447 to claim your guaranteed ??1000 cash or ??2000 gift. speak to a live operator now! + +text & meet someone sexy today. u can find a date or even flirt its up to u. join 4 just 10p. reply with name & age eg sam 25. 18 -msg recd pence + +yes i will be there. glad you made it. + +okmail: dear dave this is your final notice to collect your 4* tenerife holiday or #5000 cash award! call 09061743806 from landline. tcs sae box326 cw25wx 150ppm + +"sorry +free msg:we billed your mobile number by mistake from shortcode 83332.please call 08081263000 to have charges refunded.this call will be free from a bt landline + +lyricalladie(21/f) is inviting you to be her friend. reply yes-910 or no-910. see her: www.sms.ac/u/hmmross stop? send stop frnd to 62468 + +what's a feathery bowa? is that something guys have that i don't know about? + +congratulations ur awarded 500 of cd vouchers or 125gift guaranteed & free entry 2 100 wkly draw txt music to 87066 + +"free nokia or motorola with upto 12mths 1/2price linerental +you are awarded a sipix digital camera! call 09061221061 from landline. delivery within 28days. t cs box177. m221bp. 2yr warranty. 150ppm. 16 . p p??3.99 + +"you are guaranteed the latest nokia phone +pls what's the full name of joke's school cos fees in university of florida seem to actually be <#> k. pls holla back + +"sorry man +yeah do! don???t stand to close tho- you???ll catch something! + +hi if ur lookin 4 saucy daytime fun wiv busty married woman am free all next week chat now 2 sort time 09099726429 janinexx calls??1/minmobsmorelkpobox177hp51fl + +urgent! your mobile number has been awarded with a ??2000 bonus caller prize. call 09058095201 from land line. valid 12hrs only + +private! your 2004 account statement for 07742676969 shows 786 unredeemed bonus points. to claim call 08719180248 identifier code: 45239 expires + +omg if its not one thing its another. my cat has worms :/ when does this bad day end? + +guai... ?? shd haf seen him when he's naughty... ?? so free today? can go jogging... + +free entry in 2 a wkly comp to win fa cup final tkts 21st may 2005. text fa to 87121 to receive entry question(std txt rate)t&c's apply 08452810075over18's + +hello. we need some posh birds and chaps to user trial prods for champneys. can i put you down? i need your address and dob asap. ta r + +please call 08712404000 immediately as there is an urgent message waiting for you. + +dunno lei he neva say... + +buy space invaders 4 a chance 2 win orig arcade game console. press 0 for games arcade (std wap charge) see o2.co.uk/games 4 terms + settings. no purchase + +congratulations ur awarded either a yrs supply of cds from virgin records or a mystery gift guaranteed call 09061104283 ts&cs www.smsco.net ??1.50pm approx 3mins + +great princess! i love giving and receiving oral. doggy style is my fave position. how about you? i enjoy making love <#> times per night :) + +yes! the only place in town to meet exciting adult singles is now in the uk. txt chat to 86688 now! 150p/msg. + +update_now - 12mths half price orange line rental: 400mins...call mobileupd8 on 08000839402 or call2optout=j5q + +hope you are having a great new semester. do wish you the very best. you are made for greatness. + +want explicit sex in 30 secs? ring 02073162414 now! costs 20p/min gsex pobox 2667 wc1n 3xx + +i know! grumpy old people. my mom was like you better not be lying. then again i am always the one to play jokes... + +if anyone calls for a treadmill say you'll buy it. make sure its working. i found an ad on craigslist selling for $ <#> . + +send a logo 2 ur lover - 2 names joined by a heart. txt love name1 name2 mobno eg love adam eve 07123456789 to 87077 yahoo! pobox36504w45wq txtno 4 no ads 150p + +"congrats! 2 mobile 3g videophones r yours. call 09061744553 now! videochat wid ur mates +new textbuddy chat 2 horny guys in ur area 4 just 25p free 2 receive search postcode or at gaytextbuddy.com. txt one name to 89693 + +i dunno they close oredi not... ?? v ma fan... + +ha! i wouldn't say that i just didn't read anything into way u seemed. i don't like 2 be judgemental....i save that for fridays in the pub! + +"new tones this week include: 1)mcfly-all ab.. +and do you have any one that can teach me how to ship cars. + +life has never been this much fun and great until you came in. you made it truly special for me. i won't forget you! enjoy @ one gbp/sms + +"yeah +nope... c ?_ then... + +u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094565 + +no. 1 nokia tone 4 ur mob every week! just txt nok to 87021. 1st tone free ! so get txtin now and tell ur friends. 150p/tone. 16 reply hl 4info + +"\urgent! this is the 2nd attempt to contact u!u have won ??1000call 09071512432 b4 300603t&csbcm4235wc1n3xx.callcost150ppmmobilesvary. max??7. 50\""""" + +"oh yes +"today's offer! claim ur ??150 worth of discount vouchers! text yes to 85023 now! savamob +"* was a nice day and +"gr8 poly tones 4 all mobs direct 2u rply with poly title to 8007 eg poly breathe1 titles: crazyin +had your mobile 11mths ? update for free to oranges latest colour camera mobiles & unlimited weekend calls. call mobile upd8 on freefone 08000839402 or 2stoptx + +gud ni8 dear..slp well..take care..swt dreams..muah.. + +"mila +double mins & double txt & 1/2 price linerental on latest orange bluetooth mobiles. call mobileupd8 for the very latest offers. 08000839402 or call2optout/lf56 + +from next month get upto 50% more calls 4 ur standard network charge 2 activate call 9061100010 c wire3.net 1st4terms pobox84 m26 3uz cost ??1.50 min mobcudb more + +have you emigrated or something? ok maybe 5.30 was a bit hopeful... + +the world's most happiest frnds never have the same characters... dey just have the best understanding of their differences... + +hope this text meets you smiling. if not then let this text give you a reason to smile. have a beautiful day. + +we tried to call you re your reply to our sms for a video mobile 750 mins unlimited text + free camcorder reply of call 08000930705 now + +promotion number: 8714714 - ur awarded a city break and could win a ??200 summer shopping spree every wk. txt store to 88039 . skilgme. tscs087147403231winawk!age16 ??1.50perwksub + +"hello +free for 1st week! no1 nokia tone 4 ur mob every week just txt nokia to 87077 get txting and tell ur mates. zed pobox 36504 w45wq norm150p/tone 16+ + +"free nokia or motorola with upto 12mths 1/2price linerental +call from 08702490080 - tells u 2 call 09066358152 to claim ??5000 prize. u have 2 enter all ur mobile & personal details @ the prompts. careful! + +how long does it take to get it. + +"urgent! you have won a 1 week free membership in our ??100 +"win the newest ??harry potter and the order of the phoenix (book 5) reply harry +"you are being contacted by our dating service by someone you know! to find out who it is +i wish things were different. i wonder when i will be able to show you how much i value you. pls continue the brisk walks no drugs without askin me please and find things to laugh about. i love you dearly. + +hi 07734396839 ibh customer loyalty offer: the new nokia6600 mobile from only ??10 at txtauction!txt word:start to no:81151 & get yours now!4t& + +sunshine quiz wkly q! win a top sony dvd player if u know which country liverpool played in mid week? txt ansr to 82277. ??1.50 sp:tyrone + +"download as many ringtones as u like no restrictions +"hey chief +"this is the 2nd time we have tried to contact u. u have won the ??400 prize. 2 claim is easy +asked 3mobile if 0870 chatlines inclu in free mins. india cust servs sed yes. l8er got mega bill. 3 dont giv a shit. bailiff due in days. i o ??250 3 want ??800 + +"sorry +cool. we will have fun practicing making babies! + +hi if ur lookin 4 saucy daytime fun wiv busty married woman am free all next week chat now 2 sort time 09099726429 janinexx calls??1/minmobsmorelkpobox177hp51fl + +loans for any purpose even if you have bad credit! tenants welcome. call noworriesloans.com on 08717111821 + +500 free text msgs. just text ok to 80488 and we'll credit your account + +good luck! draw takes place 28th feb 06. good luck! for removal send stop to 87239 customer services 08708034412 + +this msg is for your mobile content order it has been resent as previous attempt failed due to network error queries to customersqueries.uk.com + +do you want a new video phone750 anytime any network mins 150 text for only five pounds per week call 08000776320 now or reply for delivery tomorrow + +free 1st week entry 2 textpod 4 a chance 2 win 40gb ipod or ??250 cash every wk. txt pod to 84128 ts&cs www.textpod.net custcare 08712405020. + +new textbuddy chat 2 horny guys in ur area 4 just 25p free 2 receive search postcode or at gaytextbuddy.com. txt one name to 89693. 08715500022 rpl stop 2 cnl + +"fuck babe ... i miss you already +lol. well quality aint bad at all so i aint complaining + +then u drive lor. + +"as a valued customer +i.ll hand her my phone to chat wit u + +ur cash-balance is currently 500 pounds - to maximize ur cash-in now send go to 86688 only 150p/meg. cc: 08718720201 hg/suite342/2lands row/w1j6hl + +you are awarded a sipix digital camera! call 09061221061 from landline. delivery within 28days. t cs box177. m221bp. 2yr warranty. 150ppm. 16 . p p??3.99 + +yeah that's the impression i got + +"your account has been credited with 500 free text messages. to activate +"as a valued customer +thank god they are in bed! + +just sent it. so what type of food do you like? + +"sms services. for your inclusive text credits +"xxxmobilemovieclub: to use your credit +dunno y u ask me. + +splashmobile: choose from 1000s of gr8 tones each wk! this is a subscrition service with weekly tones costing 300p. u have one credit - kick back and enjoy + +u're welcome... caught u using broken english again... + +what you need. you have a person to give na. + +are you ok. what happen to behave like this + +tone club: your subs has now expired 2 re-sub reply monoc 4 monos or polyc 4 polys 1 weekly @ 150p per week txt stop 2 stop this msg free stream 0871212025016 + +"dear voucher holder +"orange customer +u 447801259231 have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094597 + +r we still meeting 4 dinner tonight? + +dnt worry...use ice pieces in a cloth pack.also take 2 tablets. + +pls clarify back if an open return ticket that i have can be preponed for me to go back to kerala. + +you have won a guaranteed ??1000 cash or a ??2000 prize. to claim yr prize call our customer service representative on 08714712379 between 10am-7pm cost 10p + +i'm turning off my phone. my moms telling everyone i have cancer. and my sister won't stop calling. it hurts to talk. can't put up with it. see u when u get home. love u + +i dunno lei... like dun haf... + +"ou are guaranteed the latest nokia phone +we tried to call you re your reply to our sms for a video mobile 750 mins unlimited text + free camcorder reply of call 08000930705 now + +"congrats 2 mobile 3g videophones r yours. call 09063458130 now! videochat wid ur mates +todays vodafone numbers ending with 0089(my last four digits) are selected to received a ??350 award. if your number matches please call 09063442151 to claim your ??350 award + +does she usually take fifteen fucking minutes to respond to a yes or no question + +sad story of a man - last week was my b'day. my wife did'nt wish me. my parents forgot n so did my kids . i went to work. even my colleagues did not wish. + +88800 and 89034 are premium phone services call 08718711108 + +"fighting with the world is easy +aiyo a bit pai seh ?_ noe... scared he dun rem who i am then die... hee... but he become better lookin oredi leh... + +"got what it takes 2 take part in the wrc rally in oz? u can with lucozade energy! text rally le to 61200 (25p) +beautiful truth : expression of the face could be seen by everyone... but the depression of heart could be understood only by the loved ones.. gud ni8;-) + +"09066362231 urgent! your mobile no 07xxxxxxxxx won a ??2 +free msg:we billed your mobile number by mistake from shortcode 83332.please call 08081263000 to have charges refunded.this call will be free from a bt landline + +hi. customer loyalty offer:the new nokia6650 mobile from only ??10 at txtauction! txt word: start to no: 81151 & get yours now! 4t&ctxt tc 150p/mtmsg + +your weekly cool-mob tones are ready to download !this weeks new tones include: 1) crazy frog-axel f>>> 2) akon-lonely>>> 3) black eyed-dont p >>>more info in n + +"think i might have to give it a miss. am teaching til twelve +"want to funk up ur fone with a weekly new tone reply tones2u 2 this text. www.ringtones.co.uk +nutter. cutter. ctter. cttergg. cttargg. ctargg. ctagg. ie you + +"sorry my roommates took forever +"urgent ur awarded a complimentary trip to eurodisinc trav +thought we could go out for dinner. i'll treat you! seem ok? + +"this is the 2nd time we have tried 2 contact u. u have won the 750 pound prize. 2 claim is easy +"<#> %of pple marry with their lovers... becz they hav gud undrstndng dat avoids problems. i sent dis 2 u +"u can win ??100 of music gift vouchers every week starting now txt the word draw to 87066 tscs www.ldew.com skillgame +or i guess <#> min + +no problem. we will be spending a lot of quality time together... + +men like shorter ladies. gaze up into his eyes. + +okay same with me. well thanks for the clarification + +we tried to contact you re your response to our offer of a new nokia fone and camcorder hit reply or call 08000930705 for delivery + +talk sexy!! make new friends or fall in love in the worlds most discreet text dating service. just text vip to 83110 and see who you could meet. + +gokila is talking with you aha:) + +"although i told u dat i'm into baig face watches now but i really like e watch u gave cos it's fr u. thanx 4 everything dat u've done today +whos this am in class:-) + +"urgent! your mobile no 077xxx won a ??2 +you call him and tell now infront of them. call him now. + +your next amazing xxx picsfree1 video will be sent to you enjoy! if one vid is not enough for 2day text back the keyword picsfree1 to get the next video. + +"for ur chance to win a ??250 cash every wk txt: action to 80608. t's&c's www.movietrivia.tv custcare 08712405022 +kit strip - you have been billed 150p. netcollex ltd. po box 1013 ig11 oja + +detroit. the home of snow. enjoy it. + +want 2 get laid tonight? want real dogging locations sent direct 2 ur mob? join the uk's largest dogging network by txting moan to 69888nyt. ec2a. 31p.msg + +free for 1st week! no1 nokia tone 4 ur mob every week just txt nokia to 87077 get txting and tell ur mates. zed pobox 36504 w45wq norm150p/tone 16+ + +i think the other two still need to get cash but we can def be ready by 9 + +"want to funk up ur fone with a weekly new tone reply tones2u 2 this text. www.ringtones.co.uk +"six chances to win cash! from 100 to 20 +can ?_ send me a copy of da report? + +urgent! your mobile number has been awarded with a ??2000 prize guaranteed. call 09061790121 from land line. claim 3030. valid 12hrs only 150ppm + +thanks for your message. i really appreciate your sacrifice. i'm not sure of the process of direct pay but will find out on my way back from the test tomorrow. i'm in class now. do have a wonderful day. + +good. no swimsuit allowed :) + +sunshine quiz wkly q! win a top sony dvd player if u know which country the algarve is in? txt ansr to 82277. ??1.50 sp:tyrone + +"free entry to the gr8prizes wkly comp 4 a chance to win the latest nokia 8800 +oops i thk i dun haf enuff... i go check then tell ?_.. + +can ?_ all decide faster cos my sis going home liao.. + +want a new video phone? 750 anytime any network mins? half price line rental free text for 3 months? reply or call 08000930705 for free delivery + +good night. am going to sleep. + +"this is the 2nd time we have tried 2 contact u. u have won the ??750 pound prize. 2 claim is easy +hard live 121 chat just 60p/min. choose your girl and connect live. call 09094646899 now! cheap chat uk's biggest live service. vu bcm1896wc1n3xx + +can you use foreign stamps for whatever you send them off for? + +camera - you are awarded a sipix digital camera! call 09061221066 fromm landline. delivery within 28 days + +babe: u want me dont u baby! im nasty and have a thing 4 filthyguys. fancy a rude time with a sexy bitch. how about we go slo n hard! txt xxx slo(4msgs) + +splashmobile: choose from 1000s of gr8 tones each wk! this is a subscrition service with weekly tones costing 300p. u have one credit - kick back and enjoy + +hello. we need some posh birds and chaps to user trial prods for champneys. can i put you down? i need your address and dob asap. ta r + +jesus armand really is trying to tell everybody he can find + ++123 congratulations - in this week's competition draw u have won the ??1450 prize to claim just call 09050002311 b4280703. t&cs/stop sms 08718727868. over 18 only 150ppm + +eh u remember how 2 spell his name... yes i did. he v naughty make until i v wet. + +"that's fine +a little. meds say take once every 8 hours. it's only been 5 but pain is back. so i took another. hope i don't die + +"ya ok +"text82228>> get more ringtones +let's pool our money together and buy a bunch of lotto tickets. if we win i get <#> % u get <#> %. deal? + +"\alrite hunny!wot u up 2 2nite? didnt end up goin down town jus da pub instead! jus chillin at da mo in me bedroom!love jen xxx.\""""" + +customer place i will call you. + +nothing lor... a bit bored too... then y dun u go home early 2 sleep today... + +"sorry to trouble u again. can buy 4d for my dad again? 1405 +"this weeks savamob member offers are now accessible. just call 08709501522 for details! savamob +ur going 2 bahamas! callfreefone 08081560665 and speak to a live operator to claim either bahamas cruise of??2000 cash 18+only. to opt out txt x to 07786200117 + +umma. did she say anything + +ok. so april. cant wait + +"carlos is down but i have to pick it up from him +"g says you never answer your texts +let me know how it changes in the next 6hrs. it can even be appendix but you are out of that age range. however its not impossible. so just chill and let me know in 6hrs + +"for your chance to win a free bluetooth headset then simply reply back with \adp\""""" + +this message is free. welcome to the new & improved sex & dogging club! to unsubscribe from this service reply stop. msgs 18+only + +"sorry vikky +tbs/persolvo. been chasing us since sept for??38 definitely not paying now thanks to your information. we will ignore them. kath. manchester. + +tmr then ?_ brin lar... aiya later i come n c lar... mayb ?_ neva set properly ?_ got da help sheet wif ?_... + +we tried to contact you re your response to our offer of a new nokia fone and camcorder hit reply or call 08000930705 for delivery + +"sms. ac jsco: energy is high +not heard from u4 a while. call 4 rude chat private line 01223585334 to cum. wan 2c pics of me gettin shagged then text pix to 8552. 2end send stop 8552 sam xxx + +"almost there +as per your request 'maangalyam (alaipayuthe)' has been set as your callertune for all callers. press *9 to copy your friends callertune + +i have a rather prominent bite mark on my right cheek + +your next amazing xxx picsfree1 video will be sent to you enjoy! if one vid is not enough for 2day text back the keyword picsfree1 to get the next video. + +sms auction - a brand new nokia 7250 is up 4 auction today! auction is free 2 join & take part! txt nokia to 86021 now! hg/suite342/2lands row/w1j6hl + +private! your 2003 account statement for shows 800 un-redeemed s. i. m. points. call 08715203652 identifier code: 42810 expires 29/10/0 + +so lets make it saturday or monday as per convenience. + +not planned yet :)going to join company on jan 5 only.don know what will happen after that. + +"you know +"sms. ac jsco: energy is high +what do u want for xmas? how about 100 free text messages & a new video phone with half price line rental? call free now on 0800 0721072 to find out more! + +what???? hello wats talks email address? + +"\hi missed your call and my mumhas beendropping red wine all over theplace! what is your adress?\""""" + +hi its kate how is your evening? i hope i can see you tomorrow for a bit but i have to bloody babyjontet! txt back if u can. :) xxx + +block breaker now comes in deluxe format with new features and great graphics from t-mobile. buy for just ??5 by replying get bbdeluxe and take the challenge + +"fantasy football is back on your tv. go to sky gamestar on sky active and play ??250k dream team. scoring starts on saturday +ur tonexs subscription has been renewed and you have been charged ??4.50. you can choose 10 more polys this month. www.clubzed.co.uk *billing msg* + +but i'll b going 2 sch on mon. my sis need 2 take smth. + +urgent this is our 2nd attempt to contact u. your ??900 prize from yesterday is still awaiting collection. to claim call now 09061702893 + +25p 4 alfie moon's children in need song on ur mob. tell ur m8s. txt tone charity to 8007 for nokias or poly charity for polys: zed 08701417012 profit 2 charity. + +83039 62735=??450 uk break accommodationvouchers terms & conditions apply. 2 claim you mustprovide your claim number which is 15541 + +just woke up. yeesh its late. but i didn't fall asleep til <#> am :/ + +she's good. how are you. where r u working now + +summers finally here! fancy a chat or flirt with sexy singles in yr area? to get matched up just reply summer now. free 2 join. optout txt stop help08714742804 + +someone u know has asked our dating service 2 contact you! cant guess who? call 09058091854 now all will be revealed. po box385 m6 6wu + +"500 new mobiles from 2004 +do you want a new nokia 3510i colour phone deliveredtomorrow? with 300 free minutes to any mobile + 100 free texts + free camcorder reply or call 08000930705. + +you unbelievable faglord + +"spook up your mob with a halloween collection of a logo & pic message plus a free eerie tone +where are the garage keys? they aren't on the bookshelf + +"january male sale! hot gay chat now cheaper +aiyah then i wait lor. then u entertain me. hee... + +"good morning +important information 4 orange user 0789xxxxxxx. today is your lucky day!2find out why log onto http://www.urawinner.com there's a fantastic surprise awaiting you! + +"get 3 lions england tone +"hot live fantasies call now 08707509020 just 20p per min ntt ltd +ur going 2 bahamas! callfreefone 08081560665 and speak to a live operator to claim either bahamas cruise of??2000 cash 18+only. to opt out txt x to 07786200117 + +18 days to euro2004 kickoff! u will be kept informed of all the latest news and results daily. unsubscribe send get euro stop to 83222. + +ringtone club: gr8 new polys direct to your mobile every week ! + +"for ur chance to win a ??250 wkly shopping spree txt: shop to 80878. t's&c's www.txt-2-shop.com custcare 08715705022 +urgent! we are trying to contact u. todays draw shows that you have won a ??800 prize guaranteed. call 09050001808 from land line. claim m95. valid12hrs only + +msg me when rajini comes. + +i'm going for bath will msg you next <#> min.. + +had your mobile 11mths ? update for free to oranges latest colour camera mobiles & unlimited weekend calls. call mobile upd8 on freefone 08000839402 or 2stoptxt + +aww that's the first time u said u missed me without asking if i missed u first. you do love me! :) + +guess what! somebody you know secretly fancies you! wanna find out who it is? give us a call on 09065394973 from landline datebox1282essexcm61xn 150p/min 18 + +ok. no wahala. just remember that a friend in need ... + +"this is the 2nd time we have tried 2 contact u. u have won the 750 pound prize. 2 claim is easy +huh means computational science... y they like dat one push here n there... + +from www.applausestore.com monthlysubscription/msg max6/month t&csc web age16 2stop txt stop + +that's significant but dont worry. + +how are you enjoying this semester? take care brother. + +are you happy baby ? are you alright ? did you take that job ? i hope your fine. i send you a kiss to make you smile from across the sea ... *kiss* *kiss* + +if you text on your way to cup stop that should work. and that should be bus + +love it! daddy will make you scream with pleasure! i am going to slap your ass with my dick! + +free entry into our ??250 weekly comp just send the word win to 80086 now. 18 t&c www.txttowin.co.uk + +"auction round 4. the highest bid is now ??54. next maximum bid is ??71. to bid +urgent! your mobile number has been awarded with a ??2000 prize guaranteed. call 09061790121 from land line. claim 3030. valid 12hrs only 150ppm + +k.i will send in <#> min:) + +private! your 2003 account statement for shows 800 un-redeemed s.i.m. points. call 08715203685 identifier code:4xx26 expires 13/10/04 + +"watching cartoon +miserable. they don't tell u that the side effects of birth control are massive gut wrenching cramps for the first 2 months. i didn't sleep at all last night. + +* am on a train back from northampton so i'm afraid not! + +"'wnevr i wana fal in luv vth my books +g.w.r + +we tried to call you re your reply to our sms for a video mobile 750 mins unlimited text free camcorder reply or call now 08000930705 del thurs + +"moon has come to color your dreams +if you don't respond imma assume you're still asleep and imma start calling n shit + +how much for an eighth? + +babe !!! i miiiiiiissssssssss you ! i need you !!! i crave you !!! :-( ... geeee ... i'm so sad without you babe ... i love you ... + +excellent. i spent <#> years in the air force. iraq and afghanistan. i am stable and honest. do you like traveling? + +"xmas offer! latest motorola +"say this slowly.? god +you will recieve your tone within the next 24hrs. for terms and conditions please see channel u teletext pg 750 + +"you are guaranteed the latest nokia phone +money i have won wining number 946 wot do i do next + +i'm good. have you registered to vote? + +u r a winner u ave been specially selected 2 receive ??1000 cash or a 4* holiday (flights inc) speak to a live operator 2 claim 0871277810710p/min (18 ) + +"hi. wk been ok - on hols now! yes on for a bit of a run. forgot that i have hairdressers appointment at four so need to get home n shower beforehand. does that cause prob for u?" + +at home watching tv lor. + +i am going to bed now prin + +thanx 4 e brownie it's v nice... + +you have won a guaranteed ??200 award or even ??1000 cashto claim ur award call free on 08000407165 (18+) 2 stop getstop on 88222 php. rg21 4jx + +"fantasy football is back on your tv. go to sky gamestar on sky active and play ??250k dream team. scoring starts on saturday +am i that much dirty fellow? + +tells u 2 call 09066358152 to claim ??5000 prize. u have 2 enter all ur mobile & personal details @ the prompts. careful! + +"win: we have a winner! mr. t. foley won an ipod! more exciting prizes soon +dear how is chechi. did you talk to her + +rct' thnq adrian for u text. rgds vatian + +you lifted my hopes with the offer of money. i am in need. especially when the end of the month approaches and it hurts my studying. anyways have a gr8 weekend + +please call 08712402902 immediately as there is an urgent message waiting for you. + +ringtone club: gr8 new polys direct to your mobile every week ! + +oh :-)only 4 outside players allowed to play know + +"orange brings you ringtones from all time chart heroes +"congratulations - thanks to a good friend u have won the ??2 +"wan2 win a meet+greet with westlife 4 u or a m8? they are currently on what tour? 1)unbreakable +sat right? okay thanks... + +"5 free top polyphonic tones call 087018728737 +free for 1st week! no1 nokia tone 4 ur mob every week just txt nokia to 87077 get txting and tell ur mates. zed pobox 36504 w45wq norm150p/tone 16+ + +do we have any spare power supplies + +"wait +but you dint in touch with me. + +heehee that was so funny tho + +?? called dad oredi... + +"\can i please come up now imin town.dontmatter if urgoin outl8r u no thecd isv.important tome 4 2moro\""""" + +mmmmmmm *snuggles into you* ...*deep contented sigh* ... *whispers* ... i fucking love you so much i can barely stand it ... + +think + da. you wil do. + +we have new local dates in your area - lots of new people registered in your area. reply date to start now! 18 only www.flirtparty.us replys150 + +so do you have samus shoulders yet + +4mths half price orange line rental & latest camera phones 4 free. had your phone 11mths ? call mobilesdirect free on 08000938767 to update now! or2stoptxt + +dear 0776xxxxxxx u've been invited to xchat. this is our final attempt to contact u! txt chat to 86688 150p/msgrcvdhg/suite342/2lands/row/w1j6hl ldn 18yrs + +do you want a new video phone? 600 anytime any network mins 400 inclusive video calls and downloads 5 per week free deltomorrow call 08002888812 or reply now + +"hey ! i want you ! i crave you ! i miss you ! i need you ! i love you +"k i'm leaving soon ++123 congratulations - in this week's competition draw u have won the ??1450 prize to claim just call 09050002311 b4280703. t&cs/stop sms 08718727868. over 18 only 150ppm + +"sunshine hols. to claim ur med holiday send a stamped self address envelope to drinks on us uk +my love ! how come it took you so long to leave for zaher's? i got your words on ym and was happy to see them but was sad you had left. i miss you + +"ok omw now +the current leading bid is 151. to pause this auction send out. customer care: 08718726270 + +hahaha..use your brain dear + +u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094565 + +well you told others you'd marry them... + +"aight +"mila +do you want 750 anytime any network mins 150 text and a new video phone for only five pounds per week call 08000776320 now or reply for delivery tomorrow + +not course. only maths one day one chapter with in one month we can finish. + +ok then i will come to ur home after half an hour + +you are a very very very very bad girl. or lady. + +"lol +18 days to euro2004 kickoff! u will be kept informed of all the latest news and results daily. unsubscribe send get euro stop to 83222. + +ok u can take me shopping when u get paid =d + +gent! we are trying to contact you. last weekends draw shows that you won a ??1000 prize guaranteed. call 09064012160. claim code k52. valid 12hrs only. 150ppm + +cant think of anyone with * spare room off * top of my head + +winner!! as a valued network customer you have been selected to receivea ??900 prize reward! to claim call 09061701461. claim code kl341. valid 12 hours only. + +mm feeling sleepy. today itself i shall get that dear + +"hi hope u r both ok +get the official england poly ringtone or colour flag on yer mobile for tonights game! text tone or flag to 84199. optout txt eng stop box39822 w111wx ??1.50 + +if you ask her or she say any please message. + +4mths half price orange line rental & latest camera phones 4 free. had your phone 11mths+? call mobilesdirect free on 08000938767 to update now! or2stoptxt t&cs + +"we know someone who you know that fancies you. call 09058097218 to find out who. pobox 6 +buy space invaders 4 a chance 2 win orig arcade game console. press 0 for games arcade (std wap charge) see o2.co.uk/games 4 terms + settings. no purchase + +"xxxmobilemovieclub: to use your credit +ok no prob... i'll come after lunch then... + +"\hi its kate it was lovely to see you tonight and ill phone you tomorrow. i got to sing and a guy gave me his card! xxx\""""" + +camera - you are awarded a sipix digital camera! call 09061221066 fromm landline. delivery within 28 days. + +dear u've been invited to xchat. this is our final attempt to contact u! txt chat to 86688 150p/msgrcvdhg/suite342/2lands/row/w1j6hl ldn 18 yrs + +tell rob to mack his gf in the theater + +you were supposed to wake me up >:( + +cds 4u: congratulations ur awarded ??500 of cd gift vouchers or ??125 gift guaranteed & freeentry 2 ??100 wkly draw xt music to 87066 tncs www.ldew.com1win150ppmx3age16 + +how come it takes so little time for a child who is afraid of the dark to become a teenager who wants to stay out all night? + +no plm i will come da. on the way. + +dear u've been invited to xchat. this is our final attempt to contact u! txt chat to 86688 150p/msgrcvdhg/suite342/2lands/row/w1j6hl ldn 18 yrs + +howz that persons story + +actually getting ready to leave the house. + +what do u want for xmas? how about 100 free text messages & a new video phone with half price line rental? call free now on 0800 0721072 to find out more! + +anything lor. juz both of us lor. + +shuhui has bought ron's present it's a swatch watch... + +k..k..any special today? + +sms. ac sun0819 posts hello:\you seem cool + +k..k..i'm also fine:)when will you complete the course? + +s.s:)i thinl role is like sachin.just standing. others have to hit. + +you have won a nokia 7250i. this is what you get when you win our free auction. to take part send nokia to 86021 now. hg/suite342/2lands row/w1jhl 16+ + +good morning princess! how are you? + +i'm really not up to it still tonight babe + +oh oh... den muz change plan liao... go back have to yan jiu again... + +you are chosen to receive a ??350 award! pls call claim number 09066364311 to collect your award which you are selected to receive as a valued mobile customer. + +"i've got ten bucks +private! your 2004 account statement for 078498****7 shows 786 unredeemed bonus points. to claim call 08719180219 identifier code: 45239 expires 06.05.05 + +free camera phones with linerental from 4.49/month with 750 cross ntwk mins. 1/2 price txt bundle deals also avble. call 08001950382 or call2optout/j mf + +i want to tel u one thing u should not mistake me k this is the message that you sent:) + +"it's cool +urgent! your mobile number has been awarded with a ??2000 bonus caller prize. call 09058095201 from land line. valid 12hrs only + +you are chosen to receive a ??350 award! pls call claim number 09066364311 to collect your award which you are selected to receive as a valued mobile customer. + +someone u know has asked our dating service 2 contact you! cant guess who? call 09058091854 now all will be revealed. po box385 m6 6wu + +"hi +hi baby ive just got back from work and i was wanting to see u allday! i hope i didnt piss u off on the phone today. if u are up give me a call xxx + +got it! it looks scrumptious... daddy wants to eat you all night long! + +"i wake up long ago already... dunno +ur cash-balance is currently 500 pounds - to maximize ur cash-in now send cash to 86688 only 150p/msg. cc: 08708800282 hg/suite342/2lands row/w1j6hl + +k. i will sent it again + +"our dating service has been asked 2 contact u by someone shy! call 09058091870 now all will be revealed. pobox84 +wanna get laid 2nite? want real dogging locations sent direct to ur mobile? join the uk's largest dogging network. txt park to 69696 now! nyt. ec2a. 3lp ??1.50/msg + +"u can win ??100 of music gift vouchers every week starting now txt the word draw to 87066 tscs www.idew.com skillgame +"good afternoon +ok. me watching tv too. + +in life when you face choices just toss a coin not becoz its settle the question but while the coin in the air u will know what your heart is hoping for. gudni8 + +bought one ringtone and now getting texts costing 3 pound offering more tones etc + +thats cool. how was your day? + +merry christmas to u too annie! + +k:)i will give my kvb acc details:) + +i am not at all happy with what you saying or doing + +u coming back 4 dinner rite? dad ask me so i re confirm wif u... + +you won't believe it but it's true. it's incredible txts! reply g now to learn truly amazing things that will blow your mind. from o2fwd only 18p/txt + +not thought bout it... || drink in tap & spile at seven. || is that pub on gas st off broad st by canal. || ok? + +"sorry +t-mobile customer you may now claim your free camera phone upgrade & a pay & go sim card for your loyalty. call on 0845 021 3680.offer ends 28thfeb.t&c's apply + +private! your 2003 account statement for shows 800 un-redeemed s. i. m. points. call 08715203694 identifier code: 40533 expires 31/10/04 + +urgent please call 09066612661 from landline. ??5000 cash or a luxury 4* canary islands holiday await collection. t&cs sae award. 20m12aq. 150ppm. 16+ ??? + +yupz... i've oredi booked slots 4 my weekends liao... + +it does it on its own. most of the time it fixes my spelling. but sometimes it gets a completely diff word. go figure + +dont forget you can place as many free requests with 1stchoice.co.uk as you wish. for more information call 08707808226. + +you have won a nokia 7250i. this is what you get when you win our free auction. to take part send nokia to 86021 now. hg/suite342/2lands row/w1jhl 16+ + +ur cash-balance is currently 500 pounds - to maximize ur cash-in now send cash to 86688 only 150p/msg. cc: 08718720201 po box 114/14 tcr/w1 + +you can jot down things you want to remember later. + +like a personal sized or what + +nope... juz off from work... + +"you ve won! your 4* costa del sol holiday or ??5000 await collection. call 09050090044 now toclaim. sae +you are awarded a sipix digital camera! call 09061221061 from landline. delivery within 28days. t cs box177. m221bp. 2yr warranty. 150ppm. 16 . p p??3.99 + +hi harish's rent has been transfred to ur acnt. + +you have won a guaranteed ??1000 cash or a ??2000 prize.to claim yr prize call our customer service representative on + +"somewhr someone is surely made 4 u. and god has decided a perfect time to make u meet dat person. . . . till den +if i get there before you after your ten billion calls and texts so help me god + +for real when u getting on yo? i only need 2 more tickets and one more jacket and i'm done. i already used all my multis. + +i'm in a movie... collect car oredi... + +congratulations ur awarded either ??500 of cd gift vouchers & free entry 2 our ??100 weekly draw txt music to 87066 tncs www.ldew.com1win150ppmx3age16 + +please call our customer service representative on 0800 169 6031 between 10am-9pm as you have won a guaranteed ??1000 cash or ??5000 prize! + +guess who spent all last night phasing in and out of the fourth dimension + +cashbin.co.uk (get lots of cash this weekend!) www.cashbin.co.uk dear welcome to the weekend we have got our biggest and best ever cash give away!! these.. + +tiwary to rcb.battle between bang and kochi. + +"please protect yourself from e-threats. sib never asks for sensitive information like passwords +i'm sick !! i'm needy !! i want you !! *pouts* *stomps feet* where are you ?! *pouts* *stomps feet* i want my slave !! i want him now !! + +i am hot n horny and willing i live local to you - text a reply to hear strt back from me 150p per msg netcollex ltdhelpdesk: 02085076972 reply stop to end + +ur cash-balance is currently 500 pounds - to maximize ur cash-in now send cash to 86688 only 150p/msg. cc: 08718720201 po box 114/14 tcr/w1 + +hey... are you going to quit soon? xuhui and i working till end of the month + +i am on the way to tirupur. + +u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09065171142-stopsms-08718727870150ppm + +"thanx. yup we coming back on sun. finish dinner going back 2 hotel now. time flies +2/2 146tf150p + +sexy sexy cum and text me im wet and warm and ready for some porn! u up for some fun? this msg is free recd msgs 150p inc vat 2 cancel text stop + +"get 3 lions england tone +todays voda numbers ending 5226 are selected to receive a ?350 award. if you hava a match please call 08712300220 quoting claim code 1131 standard rates app + +you won't believe it but it's true. it's incredible txts! reply g now to learn truly amazing things that will blow your mind. from o2fwd only 18p/txt + +"if you don't +hi dear call me its urgnt. i don't know whats your problem. you don't want to work or if you have any other problem at least tell me. wating for your reply. + +"i haven't forgotten you +1 i don't have her number and 2 its gonna be a massive pain in the ass and i'd rather not get involved if that's possible + +back 2 work 2morro half term over! can u c me 2nite 4 some sexy passion b4 i have 2 go back? chat now 09099726481 luv dena calls ??1/minmobsmorelkpobox177hp51fl + +freemsg today's the day if you are ready! i'm horny & live in your town. i love sex fun & games! netcollex ltd 08700621170150p per msg reply stop to end + +"all the lastest from stereophonics +"rock yr chik. get 100's of filthy films &xxx pics on yr phone now. rply filth to 69669. saristar ltd +make sure alex knows his birthday is over in fifteen minutes as far as you're concerned + +";-( oh well +in e msg jus now. u said thanks for gift. + +"bears pic nick +"i'm not sure +"free msg: get gnarls barkleys \crazy\"" ringtone totally free just reply go to this message right now!""" + +urgent! we are trying to contact u. todays draw shows that you have won a ??800 prize guaranteed. call 09050001808 from land line. claim m95. valid12hrs only + +"text82228>> get more ringtones +"\for the most sparkling shopping breaks from 45 per person; call 0121 2025050 or visit www.shortbreaks.org.uk\""""" + +"you can stop further club tones by replying \stop mix\"" see my-tone.com/enjoy. html for terms. club tones cost gbp4.50/week. mfl" + +please call our customer service representative on freephone 0808 145 4742 between 9am-11pm as you have won a guaranteed ??1000 cash or ??5000 prize! + +romcapspam everyone around should be responding well to your presence since you are so warm and outgoing. you are bringing in a real breath of sunshine. + +am on a train back from northampton so i'm afraid not! i'm staying skyving off today ho ho! will be around wednesday though. do you fancy the comedy club this week by the way? + +where at were hungry too + +"u can win ??100 of music gift vouchers every week starting now txt the word draw to 87066 tscs www.idew.com skillgame +mobile club: choose any of the top quality items for your mobile. 7cfca1a + +send his number and give reply tomorrow morning for why you said that to him like that ok + +"urgh +you have 1 new message. please call 08718738034. + +hmv bonus special 500 pounds of genuine hmv vouchers to be won. just answer 4 easy questions. play now! send hmv to 86688 more info:www.100percent-real.com + +watching tv now. i got new job :) + +xclusive 2morow 28/5 soiree speciale zouk with nichols from paris.free roses 2 all ladies !!! info: 07946746291/07880867867 + +"accordingly. i repeat +lol well don't do it without me. we could have a big sale together. + +you are a winner u have been specially selected 2 receive ??1000 cash or a 4* holiday (flights inc) speak to a live operator 2 claim 0871277810810 + +we currently have a message awaiting your collection. to collect your message just call 08718723815. + +"\urgent! this is the 2nd attempt to contact u!u have won ??1000call 09071512432 b4 300603t&csbcm4235wc1n3xx.callcost150ppmmobilesvary. max??7. 50\""""" + +hey gals...u all wanna meet 4 dinner at n??te? + +"uncle g +are you going to wipro interview today? + +sorry! u can not unsubscribe yet. the mob offer package has a min term of 54 weeks> pls resubmit request after expiry. reply themob help 4 more info + +"congrats! 1 year special cinema pass for 2 is yours. call 09061209465 now! c suprman v +"freemsg you have been awarded a free mini digital camera +those cocksuckers. if it makes you feel better ipads are worthless garbage novelty items and you should feel bad for even wanting one + +"my life means a lot to me +desires- u going to doctor 4 liver. and get a bit stylish. get ur hair managed. thats it. + +private! your 2003 account statement for shows 800 un-redeemed s. i. m. points. call 08715203694 identifier code: 40533 expires 31/10/04 + +sms auction you have won a nokia 7250i. this is what you get when you win our free auction. to take part send nokia to 86021 now. hg/suite342/2lands row/w1jhl 16+ + +* free* polyphonic ringtone text super to 87131 to get your free poly tone of the week now! 16 sn pobox202 nr31 7zs subscription 450pw + +an excellent thought by a misundrstud frnd: i knw u hate me bt the day wen u'll knw the truth u'll hate urself:-( gn:-) + +bring home some wendy =d + +"4 tacos + 1 rajas burrito +"urgent urgent! we have 800 free flights to europe to give away +"free ringtone text first to 87131 for a poly or text get to 87131 for a true tone! help? 0845 2814032 16 after 1st free +"shop till u drop +"sorry +hai ana tomarrow am coming on morning. <decimal> ill be there in sathy then we ll go to rto office. reply me after came to home. + +"spjanuary male sale! hot gay chat now cheaper +pls help me tell ashley that i cant find her number oh + +well that must be a pain to catch + +no current and food here. i am alone also + +free 1st week entry 2 textpod 4 a chance 2 win 40gb ipod or ??250 cash every wk. txt vpod to 81303 ts&cs www.textpod.net custcare 08712405020. + +"urgent! your mobile no 077xxx won a ??2 +free camera phones with linerental from 4.49/month with 750 cross ntwk mins. 1/2 price txt bundle deals also avble. call 08001950382 or call2optout/j mf + +8007 free for 1st week! no1 nokia tone 4 ur mob every week just txt nokia to 8007 get txting and tell ur mates www.getzed.co.uk pobox 36504 w4 5wq norm 150p/tone 16+ + +hope you enjoyed your new content. text stop to 61610 to unsubscribe. help:08712400602450p provided by tones2you.co.uk + +hmm .. bits and pieces lol ... *sighs* ... + +this is the 2nd time we have tried to contact u. u have won the ??1450 prize to claim just call 09053750005 b4 310303. t&cs/stop sms 08718725756. 140ppm + +our records indicate u maybe entitled to 5000 pounds in compensation for the accident you had. to claim 4 free reply with claim to this msg. 2 stop txt stop + +collect your valentine's weekend to paris inc flight & hotel + ??200 prize guaranteed! text: paris to no: 69101. www.rtf.sphosting.com + +thanks 4 your continued support your question this week will enter u in2 our draw 4 ??100 cash. name the new us president? txt ans to 80082 + +well done england! get the official poly ringtone or colour flag on yer mobile! text tone or flag to 84199 now! opt-out txt eng stop. box39822 w111wx ??1.50 + +draw va?i dont think so:) + +argh why the fuck is nobody in town ;_; + +i am late. i will be there at + +sms auction - a brand new nokia 7250 is up 4 auction today! auction is free 2 join & take part! txt nokia to 86021 now! + +as a registered optin subscriber ur draw 4 ??100 gift voucher will be entered on receipt of a correct ans to 80062 whats no1 in the bbc charts + +hmm...my uncle just informed me that he's paying the school directly. so pls buy food. + +knock knock txt whose there to 80082 to enter r weekly draw 4 a ??250 gift voucher 4 a store of yr choice. t&cs www.tkls.com age16 to stoptxtstop??1.50/week + +you have won! as a valued vodafone customer our computer has picked you to win a ??150 prize. to collect is easy. just call 09061743386 + +boooo you always work. just quit. + +"urgent! your mobile no. was awarded ??2000 bonus caller prize on 5/9/03 this is our final try to contact u! call from landline 09064019788 box42wr29c +bloomberg -message center +447797706009 why wait? apply for your future http://careers. bloomberg.com + +* was thinking about chuckin ur red green n black trainners 2 save carryin them bac on train + +ringtoneking 84484 + +u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09065171142-stopsms-08718727870150ppm + +you won't believe it but it's true. it's incredible txts! reply g now to learn truly amazing things that will blow your mind. from o2fwd only 18p/txt + +free top ringtone -sub to weekly ringtone-get 1st week free-send subpoly to 81618-?3 per week-stop sms-08718727870 + +"england v macedonia - dont miss the goals/team news. txt ur national team to 87077 eg england to 87077 try:wales +"urgent! your mobile no *********** won a ??2 +what i meant to say is cant wait to see u again getting bored of this bridgwater banter + +do u konw waht is rael friendship im gving yuo an exmpel: jsut ese tihs msg.. evrey splleing of tihs msg is wrnog.. bt sitll yuo can raed it wihtuot ayn mitsake.. goodnight & have a nice sleep..sweet dreams.. + +"hello from orange. for 1 month's free access to games +life style garments account no please. + +romcapspam everyone around should be responding well to your presence since you are so warm and outgoing. you are bringing in a real breath of sunshine. + +"freemsg you have been awarded a free mini digital camera +"double mins & 1000 txts on orange tariffs. latest motorola +freemsg hi baby wow just got a new cam moby. wanna c a hot pic? or fancy a chat?im w8in 4utxt / rply chat to 82242 hlp 08712317606 msg150p 2rcv + +"k +wat time r ?_ going to xin's hostel? + +"hi ya babe x u 4goten bout me?' scammers getting smart..though this is a regular vodafone no +oh just getting even with u.... u? + +your weekly cool-mob tones are ready to download !this weeks new tones include: 1) crazy frog-axel f>>> 2) akon-lonely>>> 3) black eyed-dont p >>>more info in n + +"no +lol! u drunkard! just doing my hair at d moment. yeah still up 4 tonight. wats the plan? + +realy sorry-i don't recognise this number and am now confused :) who r u please?! + +"new mobiles from 2004 +"44 7732584351 +"sir +"complimentary 4 star ibiza holiday or ??10 +private! your 2003 account statement for 07808247860 shows 800 un-redeemed s. i. m. points. call 08719899229 identifier code: 40411 expires 06/11/04 + +"customer service announcement. we recently tried to make a delivery to you but were unable to do so +wot u wanna do then missy? + +3. you have received your mobile content. enjoy + +big brother alert! the computer has selected u for 10k cash or #150 voucher. call 09064018838. ntt po box cro1327 18+ bt landline cost 150ppm mobiles vary + +"my life means a lot to me +"upgrdcentre orange customer +mm not entirely sure i understood that text but hey. ho. which weekend? + +free for 1st week! no1 nokia tone 4 ur mobile every week just txt nokia to 8077 get txting and tell ur mates. www.getzed.co.uk pobox 36504 w45wq 16+ norm150p/tone + +moby pub quiz.win a ??100 high street prize if u know who the new duchess of cornwall will be? txt her first name to 82277.unsub stop ??1.50 008704050406 sp + +"mmmmm ... it was sooooo good to wake to your words this morning +can you pls send me that company name. in saibaba colany + +have you finished work yet? :) + +"thanks for your ringtone order +you are a winner you have been specially selected to receive ??1000 cash or a ??2000 award. speak to a live operator to claim call 087123002209am-7pm. cost 10p + +"welcome to select +interflora - ??it's not too late to order interflora flowers for christmas call 0800 505060 to place your order before midnight tomorrow. + +gr8 new service - live sex video chat on your mob - see the sexiest dirtiest girls live on ur phone - 4 details text horny to 89070 to cancel send stop to 89070 + +urgent! please call 09061213237 from a landline. ??5000 cash or a 4* holiday await collection. t &cs sae po box 177 m227xy. 16+ + +"you ve won! your 4* costa del sol holiday or ??5000 await collection. call 09050090044 now toclaim. sae +yeah confirmed for you staying at that weekend + +"gr8 poly tones 4 all mobs direct 2u rply with poly title to 8007 eg poly breathe1 titles: crazyin +free 1st week entry 2 textpod 4 a chance 2 win 40gb ipod or ??250 cash every wk. txt pod to 84128 ts&cs www.textpod.net custcare 08712405020. + +so how's the weather over there? + +you said not now. no problem. when you can. let me know. + +"xxxmobilemovieclub: to use your credit +great. p diddy is my neighbor and comes for toothpaste every morning + +actually i'm waiting for 2 weeks when they start putting ad. + +"3 free tarot texts! find out about your love life now! try 3 for free! text chance to 85555 16 only! after 3 free +ur ringtone service has changed! 25 free credits! go to club4mobiles.com to choose content now! stop? txt club stop to 87070. 150p/wk club4 po box1146 mk45 2wt + +"customer service announcement. we recently tried to make a delivery to you but were unable to do so +"cool +"pdate_now - double mins and 1000 txts on orange tariffs. latest motorola +u have won a nokia 6230 plus a free digital camera. this is what u get when u win our free auction. to take part send nokia to 83383 now. pobox114/14tcr/w1 16 + +stop knowing me so well! + +k i'll take care of it + +"aiyo... u always c our ex one... i dunno abt mei +k.k.how is your business now? + +how do you plan to manage that + +"free-message: jamster!get the crazy frog sound now! for poly text mad1 +hiya. how was last night? i've been naughty and bought myself clothes and very little ... ready for more shopping tho! what kind of time do you wanna meet? + +hi! you just spoke to maneesha v. we'd like to know if you were satisfied with the experience. reply toll free with yes or no. + +"this is the 2nd time we have tried 2 contact u. u have won the ??750 pound prize. 2 claim is easy +"free2day sexy st george's day pic of jordan!txt pic to 89080 dont miss out +thanks for the vote. now sing along with the stars with karaoke on your mobile. for a free link just reply with sing now. + +thx. all will be well in a few months + ++123 congratulations - in this week's competition draw u have won the ??1450 prize to claim just call 09050002311 b4280703. t&cs/stop sms 08718727868. over 18 only 150ppm + +nvm take ur time. + +you only hate me. you can call any but you didnt accept even a single call of mine. or even you messaged + +lol! nah wasn't too bad thanks. its good to b home but its been quite a reality check. hows ur day been? did u do anything with website? + +do have a nice day today. i love you so dearly. + +"hi +"your account has been credited with 500 free text messages. to activate +do u think that any girl will propose u today by seing ur bloody funky shit fucking face...............asssssholeeee................ + +"six chances to win cash! from 100 to 20 +private! your 2003 account statement for shows 800 un-redeemed s.i.m. points. call 08715203685 identifier code:4xx26 expires 13/10/04 + +oh my god. i'm almost home + +u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094599 + +do you work all this week ? + +"themob>hit the link to get a premium pink panther game +never blame a day in ur life. good days give u happiness. bad days give u experience. both are essential in life! all are gods blessings! good morning.: + +"we have sent jd for customer service cum accounts executive to ur mail id +he like not v shock leh. cos telling shuhui is like telling leona also. like dat almost all know liao. he got ask me abt ur reaction lor. + +meanwhile in the shit suite: xavier decided to give us <#> seconds of warning that samantha was coming over and is playing jay's guitar to impress her or some shit. also i don't think doug realizes i don't live here anymore + +i'm coming back on thursday. yay. is it gonna be ok to get the money. cheers. oh yeah and how are you. everything alright. hows school. or do you call it work now + +"urgent! please call 0906346330. your abta complimentary 4* spanish holiday or ??10 +we will meet soon princess! ttyl! + +dhoni have luck to win some big title.so we will win:) + +free entry in 2 a weekly comp for a chance to win an ipod. txt pod to 80182 to get entry (std txt rate) t&c's apply 08452810073 for details 18+ + +what do u want for xmas? how about 100 free text messages & a new video phone with half price line rental? call free now on 0800 0721072 to find out more! + +you have won a guaranteed ??1000 cash or a ??2000 prize.to claim yr prize call our customer service representative on + +88800 and 89034 are premium phone services call 08718711108 + +i think you should go the honesty road. call the bank tomorrow. its the tough decisions that make us great people. + +"huh... hyde park not in mel ah +dorothy.com (bank of granite issues strong-buy) explosive pick for our members *****up over 300% *********** nasdaq symbol cdgt that is a $5.00 per.. + +congrats! nokia 3650 video camera phone is your call 09066382422 calls cost 150ppm ave call 3mins vary from mobiles 16+ close 300603 post bcm4284 ldn wc1n3xx + +check wid corect speling i.e. sarcasm + +"hello. no news on job +from www.applausestore.com monthlysubscription/msg max6/month t&csc web age16 2stop txt stop + +hi msg me:)i'm in office.. + +mm you ask him to come its enough :-) + +my sister cleared two round in birla soft yesterday. + +freemsg: our records indicate you may be entitled to 3750 pounds for the accident you had. to claim for free reply with yes to this msg. to opt out text stop + +"good afternoon +"dear matthew please call 09063440451 from a landline +thanks for picking up the trash. + +"dear +block breaker now comes in deluxe format with new features and great graphics from t-mobile. buy for just ??5 by replying get bbdeluxe and take the challenge + +host-based idps for linux systems. + +"abeg +might ax well im there. + +t-mobile customer you may now claim your free camera phone upgrade & a pay & go sim card for your loyalty. call on 0845 021 3680.offer ends 28thfeb.t&c's apply + +kay... since we are out already + +please call 08712402779 immediately as there is an urgent message waiting for you + +thanx a lot... + +hello. we need some posh birds and chaps to user trial prods for champneys. can i put you down? i need your address and dob asap. ta r + +u wan 2 haf lunch i'm in da canteen now. + +"aiyo... her lesson so early... i'm still sleepin +http//tms. widelive.com/index. wml?id=820554ad0a1705572711&first=true??c c ringtone?? + +1st wk free! gr8 tones str8 2 u each wk. txt nokia on to 8007 for classic nokia tones or hit on to 8007 for polys. nokia/150p poly/200p 16+ + +"wan2 win a meet+greet with westlife 4 u or a m8? they are currently on what tour? 1)unbreakable +big brother alert! the computer has selected u for 10k cash or #150 voucher. call 09064018838. ntt po box cro1327 18+ bt landline cost 150ppm mobiles vary + +alright i have a new goal now + +"hey sexy buns ! have i told you ? i adore you +how i noe... she's in da car now... later then c lar... i'm wearing shorts... + +"wiskey brandy rum gin beer vodka scotch shampain wine \kudi\""yarasu dhina vaazhthukkal. ..""" + +lol no. u can trust me. + +"for ur chance to win ??250 cash every wk txt: play to 83370. t's&c's www.music-trivia.net custcare 08715705022 +"i am real +thats cool. i am a gentleman and will treat you with dignity and respect. + +going on nothing great.bye + +please call 08712402779 immediately as there is an urgent message waiting for you + +"well am officially in a philosophical hole +i emailed yifeng my part oredi.. can ?_ get it fr him.. + +ok i shall talk to him + +great! so what attracts you to the brothas? + +thts wat wright brother did to fly.. + +"if you don't +my house here e sky quite dark liao... if raining then got excuse not 2 run already rite... hee... + +want to send me a virtual hug?... i need one + +urgent! we are trying to contact u. todays draw shows that you have won a ??800 prize guaranteed. call 09050003091 from land line. claim c52. valid 12hrs only + +"dear voucher holder +"wan2 win a meet+greet with westlife 4 u or a m8? they are currently on what tour? 1)unbreakable +"urgent +good night my dear.. sleepwell&take care + +o. well uv causes mutations. sunscreen is like essential thesedays + +get ur 1st ringtone free now! reply to this msg with tone. gr8 top 20 tones to your phone every week just ??1.50 per wk 2 opt out send stop 08452810071 16 + +s.i'm watching it in live.. + +"free message activate your 500 free text messages by replying to this message with the word free for terms & conditions +i'm at bruce & fowler now but i'm in my mom's car so i can't park (long story) + +"spjanuary male sale! hot gay chat now cheaper +"new mobiles from 2004 +nope. i just forgot. will show next week + +kit strip - you have been billed 150p. netcollex ltd. po box 1013 ig11 oja + +love you aathi..love u lot.. + +"feb <#> is \i love u\"" day. send dis to all ur \""valued frnds\"" evn me. if 3 comes back u'll gt married d person u luv! if u ignore dis u will lose ur luv 4 evr""" + +please call 08712404000 immediately as there is an urgent message waiting for you. + +free camera phones with linerental from 4.49/month with 750 cross ntwk mins. 1/2 price txt bundle deals also avble. call 08001950382 or call2optout/j mf + +oh ok wait 4 me there... my lect havent finish + +get your garden ready for summer with a free selection of summer bulbs and seeds worth ??33:50 only with the scotsman this saturday. to stop go2 notxt.co.uk + +rct' thnq adrian for u text. rgds vatian + +wishing you a wonderful week. + +what you doing?how are you? + +i was slept that time.you there? + +hey you can pay. with salary de. only <#> . + +hope you??re not having too much fun without me!! see u tomorrow love jess x + +we tried to call you re your reply to our sms for a video mobile 750 mins unlimited text + free camcorder reply of call 08000930705 now + +lyricalladie(21/f) is inviting you to be her friend. reply yes-910 or no-910. see her: www.sms.ac/u/hmmross stop? send stop frnd to 62468 + +for taking part in our mobile survey yesterday! you can now have 500 texts 2 use however you wish. 2 get txts just send txt to 80160 t&c www.txt43.com 1.50p + +"your account has been credited with 500 free text messages. to activate +my slave! i want you to take 2 or 3 pictures of yourself today in bright light on your cell phone! bright light! + +r u saying i should re order the slippers cos i had to pay for returning it. + +yup ok thanx... + +how's ur paper? + +"i just lov this line: \hurt me with the truth i wil tolerat.bcs ur my someone..... but never comfort me with a lie\"" gud ni8 and sweet dreams""" + +"for ur chance to win a ??250 wkly shopping spree txt: shop to 80878. t's&c's www.txt-2-shop.com custcare 08715705022 +a pure hearted person can have a wonderful smile that makes even his/her enemies to feel guilty for being an enemy.. so catch the world with your smile..:) goodmorning & have a smiley sunday..:) + +"dear voucher holder +"january male sale! hot gay chat now cheaper +"welcome to select +"sorry +my birthday is on feb <#> da. . + +dating:i have had two of these. only started after i sent a text to talk sport radio last week. any connection do you think or coincidence? + +"k +sms auction - a brand new nokia 7250 is up 4 auction today! auction is free 2 join & take part! txt nokia to 86021 now! + +easy ah?sen got selected means its good.. + +private! your 2003 account statement for shows 800 un-redeemed s.i.m. points. call 08715203685 identifier code:4xx26 expires 13/10/04 + +ok....take care.umma to you too... + +wylie update: my weed dealer carlos went to freedom and had a class with lunsford + +"get 3 lions england tone +"thanks for your ringtone order +private! your 2003 account statement for 07973788240 shows 800 un-redeemed s. i. m. points. call 08715203649 identifier code: 40533 expires 31/10/04 + +message:some text missing* sender:name missing* *number missing *sent:date missing *missing u a lot thats y everything is missing sent via fullonsms.com + +"you have won ?1 +"aight +yes! the only place in town to meet exciting adult singles is now in the uk. txt chat to 86688 now! 150p/msg. + +someone u know has asked our dating service 2 contact you! cant guess who? call 09058091854 now all will be revealed. po box385 m6 6wu + +bloomberg -message center +447797706009 why wait? apply for your future http://careers. bloomberg.com + +cos darren say ?_ considering mah so i ask ?_... + +nokia phone is lovly.. + +sunshine quiz! win a super sony dvd recorder if you canname the capital of australia? text mquiz to 82277. b + +camera - you are awarded a sipix digital camera! call 09061221066 fromm landline. delivery within 28 days + +well done england! get the official poly ringtone or colour flag on yer mobile! text tone or flag to 84199 now! opt-out txt eng stop. box39822 w111wx ??1.50 + +"playin space poker +"your chance to be on a reality fantasy show call now = 08707509020 just 20p per min ntt ltd +congratulations ur awarded 500 of cd vouchers or 125gift guaranteed & free entry 2 100 wkly draw txt music to 87066 tncs www.ldew.com1win150ppmx3age16 + +shuhui say change 2 suntec steamboat? u noe where? where r u now? + +ill call you evening ill some ideas. + +"you are being contacted by our dating service by someone you know! to find out who it is +i think i am disturbing her da + +sex up ur mobile with a free sexy pic of jordan! just text babe to 88600. then every wk get a sexy celeb! pocketbabe.co.uk 4 more pics. 16 ??3/wk 087016248 + +which channel:-):-):):-). + +pandy joined 4w technologies today.he got job.. + +"hi +"in the simpsons movie released in july 2007 name the band that died at the start of the film? a-green day +awww dat is sweet! we can think of something to do he he! have a nice time tonight ill probably txt u later cos im lonely :( xxx. + +i cant pick the phone right now. pls send a message + +"freemsg you have been awarded a free mini digital camera +"depends on quality. if you want the type i sent boye +hey you told your name to gautham ah? + +22 days to kick off! for euro2004 u will be kept up to date with the latest news and results daily. to be removed send get txt stop to 83222 + +how i noe... did ?_ specify da domain as nusstu... ?? still in sch... + +hey gorgeous man. my work mobile number is. have a good one babe. squishy mwahs. + +delhi and chennai still silent. + +"well done! your 4* costa del sol holiday or ??5000 await collection. call 09050090044 now toclaim. sae +"urgent! your mobile no *********** won a ??2 +gain the rights of a wife.dont demand it.i am trying as husband too.lets see + +8007 free for 1st week! no1 nokia tone 4 ur mob every week just txt nokia to 8007 get txting and tell ur mates www.getzed.co.uk pobox 36504 w4 5wq norm 150p/tone 16+ + +lyricalladie(21/f) is inviting you to be her friend. reply yes-910 or no-910. see her: www.sms.ac/u/hmmross stop? send stop frnd to 62468 + +you won't believe it but it's true. it's incredible txts! reply g now to learn truly amazing things that will blow your mind. from o2fwd only 18p/txt + +on the road so cant txt + +usually the body takes care of it buy making sure it doesnt progress. can we pls continue this talk on saturday. + +hi darlin its kate are u up for doin somethin tonight? im going to a pub called the swan or something with my parents for one drink so phone me if u can + +can i get your opinion on something first? + +more people are dogging in your area now. call 09090204448 and join like minded guys. why not arrange 1 yourself. there's 1 this evening. a??1.50 minapn ls278bb + +more people are dogging in your area now. call 09090204448 and join like minded guys. why not arrange 1 yourself. there's 1 this evening. a??1.50 minapn ls278bb + +not heard from u4 a while. call 4 rude chat private line 01223585334 to cum. wan 2c pics of me gettin shagged then text pix to 8552. 2end send stop 8552 sam xxx + +okie.. thanx.. + +what * u wearing? + +as a registered subscriber yr draw 4 a ??100 gift voucher will b entered on receipt of a correct ans. when are the next olympics. txt ans to 80062 + +"twinks +hey... very inconvenient for your sis a not huh? + +so u wan 2 come for our dinner tonight a not? + +urgent! your mobile number has been awarded with a ??2000 prize guaranteed. call 09061790126 from land line. claim 3030. valid 12hrs only 150ppm + +"good afternoon +a ??400 xmas reward is waiting for you! our computer has randomly picked you from our loyal mobile customers to receive a ??400 reward. just call 09066380611 + +"you are being contacted by our dating service by someone you know! to find out who it is +as a registered optin subscriber ur draw 4 ??100 gift voucher will be entered on receipt of a correct ans to 80062 whats no1 in the bbc charts + +yar lor actually we quite fast... cos da ge slow wat... haha... + +yar he quite clever but aft many guesses lor. he got ask me 2 bring but i thk darren not so willing 2 go. aiya they thk leona still not attach wat. + +"09066362231 urgent! your mobile no 07xxxxxxxxx won a ??2 +"tunde +"u've been selected to stay in 1 of 250 top british hotels - for nothing! holiday valued at ??350! dial 08712300220 to claim - national rate call. bx526 +hmv bonus special 500 pounds of genuine hmv vouchers to be won. just answer 4 easy questions. play now! send hmv to 86688 more info:www.100percent-real.com + +need a coffee run tomo?can't believe it's that time of week already + +"you can stop further club tones by replying \stop mix\"" see my-tone.com/enjoy. html for terms. club tones cost gbp4.50/week. mfl" + +"doing nothing +free entry in 2 a weekly comp for a chance to win an ipod. txt pod to 80182 to get entry (std txt rate) t&c's apply 08452810073 for details 18+ + +but i dint slept in afternoon. + +ok lor. i'm in town now lei. + +free msg: ringtone!from: http://tms. widelive.com/index. wml?id=1b6a5ecef91ff9*37819&first=true18:0430-jul-05 + +"you are guaranteed the latest nokia phone +"get 3 lions england tone +what happen to her tell the truth + +no. i dont want to hear anything + +just buy a pizza. meat lovers or supreme. u get to pick. + +exactly. anyways how far. is jide her to study or just visiting + +then we gotta do it after that + +k and you're sure i don't have to have consent forms to do it :v + +message important information for o2 user. today is your lucky day! 2 find out why log onto http://www.urawinner.com there is a fantastic surprise awaiting you + +summers finally here! fancy a chat or flirt with sexy singles in yr area? to get matched up just reply summer now. free 2 join. optout txt stop help08714742804 + +i wish that i was with you. holding you tightly. making you see how important you are. how much you mean to me ... how much i need you ... in my life ... + +tbs/persolvo. been chasing us since sept for??38 definitely not paying now thanks to your information. we will ignore them. kath. manchester. + +what u mean u almost done? done wif sleeping? but i tot u going to take a nap.. yup i send her liao so i'm picking her up at ard 4 smth lor.. + +"call me when you/carlos is/are here +sounds better than my evening im just doing my costume. im not sure what time i finish tomorrow but i will txt you at the end. + +just finished. missing you plenty + +see you there! + +"freemsg you have been awarded a free mini digital camera +this is the 2nd time we have tried to contact u. u have won the ??1450 prize to claim just call 09053750005 b4 310303. t&cs/stop sms 08718725756. 140ppm + +private! your 2003 account statement for 07815296484 shows 800 un-redeemed s.i.m. points. call 08718738001 identifier code 41782 expires 18/11/04 + +ur cash-balance is currently 500 pounds - to maximize ur cash-in now send collect to 83600 only 150p/msg. cc: 08718720201 po box 114/14 tcr/w1 + +hi its lucy hubby at meetins all day fri & i will b alone at hotel u fancy cumin over? pls leave msg 2day 09099726395 lucy x calls??1/minmobsmorelkpobox177hp51fl + +hi 07734396839 ibh customer loyalty offer: the new nokia6600 mobile from only ??10 at txtauction!txt word:start to no:81151 & get yours now!4t& + +"it's wylie +"haha get used to driving to usf man ++123 congratulations - in this week's competition draw u have won the ??1450 prize to claim just call 09050002311 b4280703. t&cs/stop sms 08718727868. over 18 only 150ppm + +free entry in 2 a wkly comp to win fa cup final tkts 21st may 2005. text fa to 87121 to receive entry question(std txt rate)t&c's apply 08452810075over18's + +i am thinking of going down to reg for pract lessons.. flung my advance.. haha wat time u going? + +"your chance to be on a reality fantasy show call now = 08707509020 just 20p per min ntt ltd +you are chosen to receive a ??350 award! pls call claim number 09066364311 to collect your award which you are selected to receive as a valued mobile customer. + +i can make lasagna for you... vodka... + +urgent! please call 09061213237 from a landline. ??5000 cash or a 4* holiday await collection. t &cs sae po box 177 m227xy. 16+ + +this is hoping you enjoyed your game yesterday. sorry i've not been in touch but pls know that you are fondly bein thot off. have a great week. abiola + +"ooh +congratulations u can claim 2 vip row a tickets 2 c blu in concert in november or blu gift guaranteed call 09061104276 to claim ts&cs www.smsco.net cost??3.75max + +he remains a bro amongst bros + +how tall are you princess? + +this message is free. welcome to the new & improved sex & dogging club! to unsubscribe from this service reply stop. msgs 18+only + +yeah sure thing mate haunt got all my stuff sorted but im going sound anyway promoting hex for .by the way who is this? dont know number. joke + +"k +y ?_ wan to go there? c doctor? + +18 days to euro2004 kickoff! u will be kept informed of all the latest news and results daily. unsubscribe send get euro stop to 83222. + +"hmm ok +you have 1 new voicemail. please call 08719181503 + +send me your resume:-) + +ok. + +k still are you loving me. + +yo you guys ever figure out how much we need for alcohol? jay and i are trying to figure out how much we can safely spend on weed + +how come it takes so little time for a child who is afraid of the dark to become a teenager who wants to stay out all night? + +jade its paul. y didn??t u txt me? do u remember me from barmed? i want 2 talk 2 u! txt me + +you have 1 new voicemail. please call 08719181513. + +free entry in 2 a weekly comp for a chance to win an ipod. txt pod to 80182 to get entry (std txt rate) t&c's apply 08452810073 for details 18+ + +you have won! as a valued vodafone customer our computer has picked you to win a ??150 prize. to collect is easy. just call 09061743386 + +i want to lick your pussy now... + +"hey there babe +"cmon babe +i don't know u and u don't know me. send chat to 86688 now and let's find each other! only 150p/msg rcvd. hg/suite342/2lands/row/w1j6hl ldn. 18 years or over. + +nothing. can... + +yup i thk cine is better cos no need 2 go down 2 plaza mah. + +"win the newest ???harry potter and the order of the phoenix (book 5) reply harry +hi - this is your mailbox messaging sms alert. you have 4 messages. you have 21 matches. please call back on 09056242159 to retrieve your messages and matches + +panasonic & bluetoothhdset free. nokia free. motorola free & doublemins & doubletxt on orange contract. call mobileupd8 on 08000839402 or call 2optout + +"fantasy football is back on your tv. go to sky gamestar on sky active and play ??250k dream team. scoring starts on saturday +am not interested to do like that. + +"sorry +chk in ur belovd ms dict + +"hello darling how are you today? i would love to have a chat +how would my ip address test that considering my computer isn't a minecraft server + +"urgent! you have won a 1 week free membership in our ??100 +claire here am havin borin time & am now alone u wanna cum over 2nite? chat now 09099725823 hope 2 c u luv claire xx calls??1/minmoremobsemspobox45po139wa + +we tried to contact you re your reply to our offer of 750 mins 150 textand a new video phone call 08002988890 now or reply for free delivery tomorrow + +i dont know exactly could you ask chechi. + +was actually about to send you a reminder today. have a wonderful weekend + +onum ela pa. normal than. + +"sms. ac blind date 4u!: rodds1 is 21/m from aberdeen +please call our customer service representative on freephone 0808 145 4742 between 9am-11pm as you have won a guaranteed ??1000 cash or ??5000 prize! + +it's justbeen overa week since we broke up and already our brains are going to mush! + +"loan for any purpose ??500 - ??75 +"to review and keep the fantastic nokia n-gage game deck with club nokia +"wow. you're right! i didn't mean to do that. i guess once i gave up on boston men and changed my search location to nyc +call to the number which is available in appointment. and ask to connect the call to waheed fathima. + +ur cash-balance is currently 500 pounds - to maximize ur cash-in now send collect to 83600 only 150p/msg. cc: 08718720201 po box 114/14 tcr/w1 + +you have won a guaranteed ??1000 cash or a ??2000 prize. to claim yr prize call our customer service representative on 08714712394 between 10am-7pm + +splashmobile: choose from 1000s of gr8 tones each wk! this is a subscrition service with weekly tones costing 300p. u have one credit - kick back and enjoy + +urgent! we are trying to contact u. todays draw shows that you have won a ??2000 prize guaranteed. call 09066358361 from land line. claim y87. valid 12hrs only + +i can??t wait for cornwall. hope tonight isn??t too bad as well but it??s rock night shite. anyway i??m going for a kip now have a good night. speak to you soon. + +you have 1 new message. please call 08712400200. + +sms auction - a brand new nokia 7250 is up 4 auction today! auction is free 2 join & take part! txt nokia to 86021 now! hg/suite342/2lands row/w1j6hl + +i miss you so much i'm so desparate i have recorded the message you left for me the other day and listen to it just to hear the sound of your voice. i love you + +she's fine. good to hear from you. how are you my dear? happy new year oh. + +you will be receiving this week's triple echo ringtone shortly. enjoy it! + +"hi ya babe x u 4goten bout me?' scammers getting smart..though this is a regular vodafone no +i will come with karnan car. please wait till 6pm will directly goto doctor. + +i've reached already. + +"welcome to select +did u find out what time the bus is at coz i need to sort some stuff out. + +as one of our registered subscribers u can enter the draw 4 a 100 g.b. gift voucher by replying with enter. to unsubscribe text stop + +"you are being contacted by our dating service by someone you know! to find out who it is +"hi this is amy +no message..no responce..what happend? + +nothin comes to my mind. ?? help me buy hanger lor. ur laptop not heavy? + +no. 1 nokia tone 4 ur mob every week! just txt nok to 87021. 1st tone free ! so get txtin now and tell ur friends. 150p/tone. 16 reply hl 4info + +maybe you should find something else to do instead??? + +"honey ? sweetheart ? darling ? sexy buns ? sugar plum ? loverboy ? i miss you +wanna have a laugh? try chit-chat on your mobile now! logon by txting the word: chat and send it to no: 8883 cm po box 4217 london w1a 6zf 16+ 118p/msg rcvd + +urgent we are trying to contact you last weekends draw shows u have won a ??1000 prize guaranteed call 09064017295 claim code k52 valid 12hrs 150p pm + +do you want a new video phone? 600 anytime any network mins 400 inclusive video calls and downloads 5 per week free deltomorrow call 08002888812 or reply now + +our brand new mobile music service is now live. the free music player will arrive shortly. just install on your phone to browse content from the top artists. + +u are subscribed to the best mobile content service in the uk for ??3 per 10 days until you send stop to 82324. helpline 08706091795 + +no de.am seeing in online shop so that i asked. + +"the affidavit says <#> e twiggs st +todays voda numbers ending 5226 are selected to receive a ?350 award. if you hava a match please call 08712300220 quoting claim code 1131 standard rates app + +had your mobile 11mths ? update for free to oranges latest colour camera mobiles & unlimited weekend calls. call mobile upd8 on freefone 08000839402 or 2stoptxt + +i dont thnk its a wrong calling between us + +great! i shoot big loads so get ready! + +ya very nice. . .be ready on thursday + +how come it takes so little time for a child who is afraid of the dark to become a teenager who wants to stay out all night? + +ranjith cal drpd deeraj and deepak 5min hold + +hi there. we have now moved in2 our pub . would be great 2 c u if u cud come up. + +"for ur chance to win a ??250 wkly shopping spree txt: shop to 80878. t's&c's www.txt-2-shop.com custcare 08715705022 +i wont get concentration dear you know you are my mind and everything :-) + +unni thank you dear for the recharge..rakhesh + +dai what this da.. can i send my resume to this id. + +"someone u know has asked our dating service 2 contact you! cant guess who? call 09058095107 now all will be revealed. pobox 7 +mathews or tait or edwards or anderson + +hey company elama po mudyadhu. + +from someone not to smoke when every time i've smoked in the last two weeks is because of you calling or texting me that you wanted to smoke + +"romantic paris. 2 nights +ringtone club: gr8 new polys direct to your mobile every week ! + +lol ... i really need to remember to eat when i'm drinking but i do appreciate you keeping me company that night babe *smiles* + +hey so this sat are we going for the intro pilates only? or the kickboxing too? + +what do u want for xmas? how about 100 free text messages & a new video phone with half price line rental? call free now on 0800 0721072 to find out more! + +i meant as an apology from me for texting you to get me drugs at <#> at night + +"hi there +ok. but i finish at 6. + +"lol ... oh no babe +"sorry +but i'm on a diet. and i ate 1 too many slices of pizza yesterday. ugh i'm always on a diet. + +"lol .. *grins* .. i'm not babe +"come around <decimal> pm vikky..i'm otside nw +ok. + +"7 wonders in my world 7th you 6th ur style 5th ur smile 4th ur personality 3rd ur nature 2nd ur sms and 1st \ur lovely friendship\""... good morning dear""" + +please call 08712402902 immediately as there is an urgent message waiting for you. + +just sleeping..and surfing + +"\speak only when you feel your words are better than the silence...\"" gud mrng:-)""" + +also fuck you and your family for going to rhode island or wherever the fuck and leaving me all alone the week i have a new bong >:( + +it's really getting me down just hanging around. + +ok i am on the way to railway + +then its most likely called mittelschmertz. google it. if you dont have paracetamol dont worry it will go. + +"excellent +k...k...when will you give treat? + +\yeh i am def up4 something sat + +eastenders tv quiz. what flower does dot compare herself to? d= violet e= tulip f= lily txt d e or f to 84025 now 4 chance 2 win ??100 cash wkent/150p16+ + +"hello.how u doing?what u been up 2?when will u b moving out of the flat +"free2day sexy st george's day pic of jordan!txt pic to 89080 dont miss out +ya but it cant display internal subs so i gotta extract them + +to day class is there are no class. + +i could ask carlos if we could get more if anybody else can chip in + +winner!! as a valued network customer you have been selected to receivea ??900 prize reward! to claim call 09061701461. claim code kl341. valid 12 hours only. + +"yes +was doing my test earlier. i appreciate you. will call you tomorrow. + +urgent! we are trying to contact u. todays draw shows that you have won a ??2000 prize guaranteed. call 09058094507 from land line. claim 3030. valid 12hrs only + +want explicit sex in 30 secs? ring 02073162414 now! costs 20p/min gsex pobox 2667 wc1n 3xx + +"urgent! last weekend's draw shows that you have won ??1000 cash or a spanish holiday! call now 09050000332 to claim. t&c: rstm +"january male sale! hot gay chat now cheaper +tell your friends what you plan to do on valentines day @ <url> + +ringtone club: gr8 new polys direct to your mobile every week ! + +urgent! we are trying to contact you. last weekends draw shows that you have won a ??900 prize guaranteed. call 09061701851. claim code k61. valid 12hours only + +free for 1st week! no1 nokia tone 4 ur mobile every week just txt nokia to 8077 get txting and tell ur mates. www.getzed.co.uk pobox 36504 w45wq 16+ norm150p/tone + +important information 4 orange user 0789xxxxxxx. today is your lucky day!2find out why log onto http://www.urawinner.com there's a fantastic surprise awaiting you! + +"hey elaine +moby pub quiz.win a ??100 high street prize if u know who the new duchess of cornwall will be? txt her first name to 82277.unsub stop ??1.50 008704050406 sp + +i was just callin to say hi. take care bruv! + +yo im right by yo work + +"urgent! call 09061749602 from landline. your complimentary 4* tenerife holiday or ??10 +"six chances to win cash! from 100 to 20 +ur going 2 bahamas! callfreefone 08081560665 and speak to a live operator to claim either bahamas cruise of??2000 cash 18+only. to opt out txt x to 07786200117 + +"goodmorning +"congrats! 2 mobile 3g videophones r yours. call 09063458130 now! videochat wid your mates +jay's getting really impatient and belligerent + +long beach lor. expected... u having dinner now? + +"this is the 2nd time we have tried 2 contact u. u have won the 750 pound prize. 2 claim is easy +"you can stop further club tones by replying \stop mix\"" see my-tone.com/enjoy. html for terms. club tones cost gbp4.50/week. mfl" + +wat time ?_ wan today? + +and you! will expect you whenever you text! hope all goes well tomo + +hey! there's veggie pizza... :/ + +ps u no ur a grown up now right? + +not heard from u4 a while. call 4 rude chat private line 01223585334 to cum. wan 2c pics of me gettin shagged then text pix to 8552. 2end send stop 8552 sam xxx + +they finally came to fix the ceiling. + +urgent ur ??500 guaranteed award is still unclaimed! call 09066368327 now closingdate04/09/02 claimcode m39m51 ??1.50pmmorefrommobile2bremoved-mobypobox734ls27yf + +our records indicate u maybe entitled to 5000 pounds in compensation for the accident you had. to claim 4 free reply with claim to this msg. 2 stop txt stop + +got smaller capacity one? quite ex... + +private! your 2004 account statement for 07742676969 shows 786 unredeemed bonus points. to claim call 08719180248 identifier code: 45239 expires + +jamster! to get your free wallpaper text heart to 88888 now! t&c apply. 16 only. need help? call 08701213186. + +you will be receiving this week's triple echo ringtone shortly. enjoy it! + +as in different styles? + +urgent! we are trying to contact u. todays draw shows that you have won a ??2000 prize guaranteed. call 09058094507 from land line. claim 3030. valid 12hrs only + +"dear hero +ur awarded a city break and could win a ??200 summer shopping spree every wk. txt store to 88039 . skilgme. tscs087147403231winawk!age16 ??1.50perwksub + +thanx but my birthday is over already. + +winner!! as a valued network customer you have been selected to receivea ??900 prize reward! to claim call 09061701461. claim code kl341. valid 12 hours only. + +want the latest video handset? 750 anytime any network mins? half price line rental? reply or call 08000930705 for delivery tomorrow + +sending you greetings of joy and happiness. do have a gr8 evening + +where to get those? + +"had your contract mobile 11 mnths? latest motorola +"you've won tkts to the euro2004 cup final or ??800 cash +you have won! as a valued vodafone customer our computer has picked you to win a ??150 prize. to collect is easy. just call 09061743386 + +ok... take ur time n enjoy ur dinner... + +"yeah work is fine +filthy stories and girls waiting for your + +yeah imma come over cause jay wants to do some drugs + +wat happened to the cruise thing + +thank you. i like you as well... + +"double mins and txts 4 6months free bluetooth on orange. available on sony +rt-king pro video club>> need help? info.co.uk or call 08701237397 you must be 16+ club credits redeemable at www.ringtoneking.co.uk! enjoy! + +"auction round 4. the highest bid is now ??54. next maximum bid is ??71. to bid +hi its lucy hubby at meetins all day fri & i will b alone at hotel u fancy cumin over? pls leave msg 2day 09099726395 lucy x calls??1/minmobsmorelkpobox177hp51fl + +in meeting da. i will call you + +4mths half price orange line rental & latest camera phones 4 free. had your phone 11mths ? call mobilesdirect free on 08000938767 to update now! or2stoptxt + +"urgent!! your 4* costa del sol holiday or ??5000 await collection. call 09050090044 now toclaim. sae +winner!! as a valued network customer you have been selected to receivea ??900 prize reward! to claim call 09061701461. claim code kl341. valid 12 hours only. + +december only! had your mobile 11mths+? you are entitled to update to the latest colour camera mobile for free! call the mobile update co free on 08002986906 + +you didn't have to tell me that...now i'm thinking. plus he's going to stop all your runs + +"this is the 2nd attempt to contract u +you have won a guaranteed ??1000 cash or a ??2000 prize. to claim yr prize call our customer service representative on 08714712412 between 10am-7pm cost 10p + +themob>yo yo yo-here comes a new selection of hot downloads for our members to get for free! just click & open the next link sent to ur fone... + +also track down any lighters you can find + +me too baby! i promise to treat you well! i bet you will take good care of me... + +"hello. sort of out in town already. that . so dont rush home +yar i wanted 2 scold u yest but late already... i where got zhong se qing you? if u ask me b4 he ask me then i'll go out w u all lor. n u still can act so real. + +"ya ok +u???ve bin awarded ??50 to play 4 instant cash. call 08715203028 to claim. every 9th player wins min ??50-??500. optout 08718727870 + +"u can win ??100 of music gift vouchers every week starting now txt the word draw to 87066 tscs www.idew.com skillgame +"urgent -call 09066649731from landline. your complimentary 4* ibiza holiday or ??10 +great. i was getting worried about you. just know that a wonderful and caring person like you will have only the best in life. know that u r wonderful and god's love is yours. + +lol ok. i'll snatch her purse too. + +100 dating service cal;l 09064012103 box334sk38ch + +"say this slowly.? god +buy one egg for me da..please:) + +"congrats! 2 mobile 3g videophones r yours. call 09063458130 now! videochat wid your mates +you have 1 new message. please call 08712400200. + +you are now unsubscribed all services. get tons of sexy babes or hunks straight to your phone! go to http://gotbabes.co.uk. no subscriptions. + +"wan2 win a meet+greet with westlife 4 u or a m8? they are currently on what tour? 1)unbreakable +free 1st week entry 2 textpod 4 a chance 2 win 40gb ipod or ??250 cash every wk. txt pod to 84128 ts&cs www.textpod.net custcare 08712405020. + +"babe +"hey...great deal...farm tour 9am to 5pm $95/pax +send a logo 2 ur lover - 2 names joined by a heart. txt love name1 name2 mobno eg love adam eve 07123456789 to 87077 yahoo! pobox36504w45wq txtno 4 no ads 150p + +"urgent! your mobile no 07808726822 was awarded a ??2 +"goal! arsenal 4 (henry +private! your 2003 account statement for 07808247860 shows 800 un-redeemed s. i. m. points. call 08719899229 identifier code: 40411 expires 06/11/04 + +"for ur chance to win a ??250 cash every wk txt: action to 80608. t's&c's www.movietrivia.tv custcare 08712405022 +free for 1st week! no1 nokia tone 4 ur mobile every week just txt nokia to 8077 get txting and tell ur mates. www.getzed.co.uk pobox 36504 w45wq 16+ norm150p/tone + +you have won a guaranteed ??1000 cash or a ??2000 prize.to claim yr prize call our customer service representative on + +as a registered subscriber yr draw 4 a ??100 gift voucher will b entered on receipt of a correct ans. when are the next olympics. txt ans to 80062 + +"thanks for your ringtone order +"nothing +"customer service announcement. we recently tried to make a delivery to you but were unable to do so +its too late:)but its k.wish you the same. + +1's reach home call me. + +"urgent! your mobile no 07xxxxxxxxx won a ??2 +talk sexy!! make new friends or fall in love in the worlds most discreet text dating service. just text vip to 83110 and see who you could meet. + +anything lor is she coming? + +urgent! your mobile number has been awarded with a ??2000 prize guaranteed. call 09061790121 from land line. claim 3030. valid 12hrs only 150ppm + +urgent please call 09066612661 from landline. ??5000 cash or a luxury 4* canary islands holiday await collection. t&cs sae award. 20m12aq. 150ppm. 16+ ??? + +i'm e person who's doing e sms survey... + +"storming msg: wen u lift d phne +"it +you are being ripped off! get your mobile content from www.clubmoby.com call 08717509990 poly/true/pix/ringtones/games six downloads for only 3 + +?? mean it's confirmed... i tot they juz say oni... ok then... + +18 days to euro2004 kickoff! u will be kept informed of all the latest news and results daily. unsubscribe send get euro stop to 83222. + +2/2 146tf150p + +ceri u rebel! sweet dreamz me little buddy!! c ya 2moro! who needs blokes + +"for ur chance to win a ??250 wkly shopping spree txt: shop to 80878. t's&c's www.txt-2-shop.com custcare 08715705022 +"reminder from o2: to get 2.50 pounds free call credit and details of great offers pls reply 2 this text with your valid name +private! your 2004 account statement for 07742676969 shows 786 unredeemed bonus points. to claim call 08719180248 identifier code: 45239 expires + +i asked sen to come chennai and search for job. + +think you sent the text to the home phone. that cant display texts. if you still want to send it his number is + +the fact that you're cleaning shows you know why i'm upset. your priority is constantly \what i want to do + +the guy did some bitching but i acted like i'd be interested in buying something else next week and he gave it to us for free + +is there any movie theatre i can go to and watch unlimited movies and just pay once? + +"you ve won! your 4* costa del sol holiday or ??5000 await collection. call 09050090044 now toclaim. sae +"hello darling how are you today? i would love to have a chat +lil fever:) now fine:) + +did u receive my msg? + +"yeah there's quite a bit left +t-mobile customer you may now claim your free camera phone upgrade & a pay & go sim card for your loyalty. call on 0845 021 3680.offer ends 28thfeb.t&c's apply + +wow! the boys r back. take that 2007 uk tour. win vip tickets & pre-book with vip club. txt club to 81303. trackmarque ltd info. + +thts god's gift for birds as humans hav some natural gift frm god.. + +is there any training tomorrow? + +"urgent! your mobile no 07808726822 was awarded a ??2 +fancy a shag? i do.interested? sextextuk.com txt xxuk suzy to 69876. txts cost 1.50 per msg. tncs on website. x + +"says that he's quitting at least5times a day so i wudn't take much notice of that. nah +congratulations ur awarded either a yrs supply of cds from virgin records or a mystery gift guaranteed call 09061104283 ts&cs www.smsco.net ??1.50pm approx 3mins + +eh ur laptop got no stock lei... he say mon muz come again to take a look c got a not... + +oh gei. that happend to me in tron. maybe ill dl it in 3d when its out + +free for 1st week! no1 nokia tone 4 ur mob every week just txt nokia to 8007 get txting and tell ur mates www.getzed.co.uk pobox 36504 w45wq norm150p/tone 16+ + +i went to ur hon lab but no one is there. + +sexy sexy cum and text me im wet and warm and ready for some porn! u up for some fun? this msg is free recd msgs 150p inc vat 2 cancel text stop + +yetunde i'm in class can you not run water on it to make it ok. pls now. + +someonone you know is trying to contact you via our dating service! to find out who it could be call from your mobile or landline 09064015307 box334sk38ch + +"hello lover! how goes that new job? are you there now? are you happy? do you think of me? i wake +"just sent you an email ??? to an address with incomm in it +not heard from u4 a while. call 4 rude chat private line 01223585334 to cum. wan 2c pics of me gettin shagged then text pix to 8552. 2end send stop 8552 sam xxx + +"thank you +are you wet right now? + +you have an important customer service announcement. call freephone 0800 542 0825 now! + +"download as many ringtones as u like no restrictions +free unlimited hardcore porn direct 2 your mobile txt porn to 69200 & get free access for 24 hrs then chrgd per day txt stop 2exit. this msg is free + +"spook up your mob with a halloween collection of a logo & pic message plus a free eerie tone +squeeeeeze!! this is christmas hug.. if u lik my frndshp den hug me back.. if u get 3 u r cute:) 6 u r luvd:* 9 u r so lucky;) none? people hate u: + +"dear matthew please call 09063440451 from a landline +marvel mobile play the official ultimate spider-man game (??4.50) on ur mobile right now. text spider to 83338 for the game & we ll send u a free 8ball wallpaper + +5 nights...we nt staying at port step liao...too ex + +no no. i will check all rooms befor activities + +miss call miss call khelate kintu opponenter miss call dhorte lage. thats d rule. one with great phone receiving quality wins. + +"twinks +ur going 2 bahamas! callfreefone 08081560665 and speak to a live operator to claim either bahamas cruise of??2000 cash 18+only. to opt out txt x to 07786200117 + +"auction round 4. the highest bid is now ??54. next maximum bid is ??71. to bid +"freemsg hey u +is that what time you want me to come? + +get a brand new mobile phone by being an agent of the mob! plus loads more goodies! for more info just text mat to 87021. + +great. have a safe trip. dont panic surrender all. + +was it something u ate? + +get a brand new mobile phone by being an agent of the mob! plus loads more goodies! for more info just text mat to 87021. + +ok going to sleep. hope i can meet her. + +please call our customer service representative on freephone 0808 145 4742 between 9am-11pm as you have won a guaranteed ??1000 cash or ??5000 prize! + +only saturday and sunday holiday so its very difficult:) + +"hey doc pls i want to get nice t shirt for my hubby nice fiting ones my budget is <#> k help pls i will load d card abi hw +k k:) sms chat with me. + +do you want 750 anytime any network mins 150 text and a new video phone for only five pounds per week call 08000776320 now or reply for delivery tomorrow + +yes! the only place in town to meet exciting adult singles is now in the uk. txt chat to 86688 now! 150p/msg. + +we tried to contact you re your reply to our offer of 750 mins 150 textand a new video phone call 08002988890 now or reply for free delivery tomorrow + +wot about on wed nite i am 3 then but only til 9! + +im late tellmiss im on my way + +if u dun drive then how i go 2 sch. + +this msg is for your mobile content order it has been resent as previous attempt failed due to network error queries to customersqueries.uk.com + +babe: u want me dont u baby! im nasty and have a thing 4 filthyguys. fancy a rude time with a sexy bitch. how about we go slo n hard! txt xxx slo(4msgs) + +dont make ne plans for nxt wknd coz she wants us to come down then ok + +"i met you as a stranger and choose you as my friend. as long as the world stands +"hi chikku +otherwise had part time job na-tuition.. + +i will cme i want to go to hos 2morow. after that i wil cme. this what i got from her dear what to do. she didnt say any time + +"superb thought- \be grateful that u dont have everything u want. that means u still have an opportunity to be happier tomorrow than u are today.\"":-)""" + +urgent! we are trying to contact u. todays draw shows that you have won a ??800 prize guaranteed. call 09050001808 from land line. claim m95. valid12hrs only + +gr8 new service - live sex video chat on your mob - see the sexiest dirtiest girls live on ur phone - 4 details text horny to 89070 to cancel send stop to 89070 + +urgent! please call 09061743811 from landline. your abta complimentary 4* tenerife holiday or ??5000 cash await collection sae t&cs box 326 cw25wx 150ppm + +"sir +"i want some cock! my hubby's away +wat uniform? in where get? + +"latest news! police station toilet stolen +"congrats! 1 year special cinema pass for 2 is yours. call 09061209465 now! c suprman v +k i'll call you when i'm close + +white fudge oreos are in stores + +cos i want it to be your thing + +that seems unnecessarily affectionate + +lyricalladie(21/f) is inviting you to be her friend. reply yes-910 or no-910. see her: www.sms.ac/u/hmmross stop? send stop frnd to 62468 + +what class of <#> reunion? + +u 2. + +yar but they say got some error. + +i can ask around but there's not a lot in terms of mids up here + +hi 07734396839 ibh customer loyalty offer: the new nokia6600 mobile from only ??10 at txtauction!txt word:start to no:81151 & get yours now!4t& + +"smsservices. for yourinclusive text credits +natalja (25/f) is inviting you to be her friend. reply yes-440 or no-440 see her: www.sms.ac/u/nat27081980 stop? send stop frnd to 62468 + +"hellogorgeous +ok... c ya... + +"your chance to be on a reality fantasy show call now = 08707509020 just 20p per min ntt ltd +"thanks for your ringtone order +orh i tot u say she now still dun believe. + +but i juz remembered i gotta bathe my dog today.. + +"hi +show ur colours! euro 2004 2-4-1 offer! get an england flag & 3lions tone on ur phone! click on the following service message for info! + +i'm watching lotr w my sis dis aft. so u wan 2 meet me 4 dinner at nite a not? + +"do you realize that in about 40 years +what your plan for pongal? + +"k +moji i love you more than words. have a rich day + +"thanks for your ringtone order +ok. i am a gentleman and will treat you with dignity and respect. + +rt-king pro video club>> need help? info.co.uk or call 08701237397 you must be 16+ club credits redeemable at www.ringtoneking.co.uk! enjoy! + +"bears pic nick +december only! had your mobile 11mths+? you are entitled to update to the latest colour camera mobile for free! call the mobile update co free on 08002986906 + +you have won a guaranteed ??1000 cash or a ??2000 prize. to claim yr prize call our customer service representative on 08714712394 between 10am-7pm + +can you talk with me.. + +wow v v impressed. have funs shopping! + +you have 1 new message. please call 08718738034. + +horrible bf... i now v hungry... + +well if i'm that desperate i'll just call armand again + +"new theory: argument wins d situation +?? only send me the contents page... + +ok darlin i supose it was ok i just worry too much.i have to do some film stuff my mate and then have to babysit again! but you can call me there.xx + +i am literally in bed and have been up for like <#> hours + +u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094565 + +xmas prize draws! we are trying to contact u. todays draw shows that you have won a ??2000 prize guaranteed. call 09058094565 from land line. valid 12hrs only + +87077: kick off a new season with 2wks free goals & news to ur mobile! txt ur club name to 87077 eg villa to 87077 + +"all the lastest from stereophonics +hey mate. spoke to the mag people. we???re on. the is deliver by the end of the month. deliver on the 24th sept. talk later. + +ur cash-balance is currently 500 pounds - to maximize ur cash-in now send go to 86688 only 150p/msg. cc 08718720201 hg/suite342/2lands row/w1j6hl + +nice line said by a broken heart- plz don't cum 1 more times infront of me... other wise once again i ll trust u... good 9t:) + +"welcome to select +freemsg: txt: call to no: 86888 & claim your reward of 3 hours talk time to use from your phone now! subscribe6gbp/mnth inc 3hrs 16 stop?txtstop + +did you get any gift? this year i didnt get anything. so bad + +i donno if they are scorable + +"sweetheart +it is only yesterday true true. + +better. made up for friday and stuffed myself like a pig yesterday. now i feel bleh. but at least its not writhing pain kind of bleh. + +"smsservices. for yourinclusive text credits +"you are being contacted by our dating service by someone you know! to find out who it is +i will lick up every drop :) are you ready to use your mouth as well? + +"congratulations! thanks to a good friend u have won the ??2 +hi petey!noi??m ok just wanted 2 chat coz avent spoken 2 u 4 a long time-hope ur doin alrite.have good nit at js love ya am.x + +"hi +"5 free top polyphonic tones call 087018728737 +hi. customer loyalty offer:the new nokia6650 mobile from only ??10 at txtauction! txt word: start to no: 81151 & get yours now! 4t&ctxt tc 150p/mtmsg + +you have won! as a valued vodafone customer our computer has picked you to win a ??150 prize. to collect is easy. just call 09061743386 + +xmas iscoming & ur awarded either ??500 cd gift vouchers & free entry 2 r ??100 weekly draw txt music to 87066 tnc www.ldew.com1win150ppmx3age16subscription + +"\for the most sparkling shopping breaks from 45 per person; call 0121 2025050 or visit www.shortbreaks.org.uk\""""" + +free entry in 2 a weekly comp for a chance to win an ipod. txt pod to 80182 to get entry (std txt rate) t&c's apply 08452810073 for details 18+ + +raviyog peripherals bhayandar east + +december only! had your mobile 11mths+? you are entitled to update to the latest colour camera mobile for free! call the mobile update vco free on 08002986906 + +gonna let me know cos comes bak from holiday that day. is coming. don't4get2text me number. + +"<#> +send a logo 2 ur lover - 2 names joined by a heart. txt love name1 name2 mobno eg love adam eve 07123456789 to 87077 yahoo! pobox36504w45wq txtno 4 no ads 150p. + +i cant pick the phone right now. pls send a message + +"cool +please call 08712402779 immediately as there is an urgent message waiting for you + +sorry i missed your call. can you please call back. + +hmm...bad news...hype park plaza $700 studio taken...only left 2 bedrm-$900... + +s:-)if we have one good partnership going we will take lead:) + +urgent! we are trying to contact u. todays draw shows that you have won a ??800 prize guaranteed. call 09050003091 from land line. claim c52. valid 12hrs only + +u free on sat rite? u wan 2 watch infernal affairs wif me n darren n mayb xy? + +reply to win ??100 weekly! what professional sport does tiger woods play? send stop to 87239 to end service + +first answer my question. + +ok i juz receive.. + +sunshine quiz wkly q! win a top sony dvd player if u know which country the algarve is in? txt ansr to 82277. ??1.50 sp:tyrone + +"no! but we found a diff farm shop to buy some cheese. on way back now +sounds like a plan! cardiff is still here and still cold! i'm sitting on the radiator! + +yup no more already... thanx 4 printing n handing it up. + +moby pub quiz.win a ??100 high street prize if u know who the new duchess of cornwall will be? txt her first name to 82277.unsub stop ??1.50 008704050406 sp + +someone u know has asked our dating service 2 contact you! cant guess who? call 09058091854 now all will be revealed. po box385 m6 6wu + +life has never been this much fun and great until you came in. you made it truly special for me. i won't forget you! enjoy @ one gbp/sms + +wah... okie okie... muz make use of e unlimited... haha... + +what's your room number again? wanna make sure i'm knocking on the right door + +private! your 2003 account statement for shows 800 un-redeemed s. i. m. points. call 08715203656 identifier code: 42049 expires 26/10/04 + +had your mobile 11 months or more? u r entitled to update to the latest colour mobiles with camera for free! call the mobile update co free on 08002986030 + +ur tonexs subscription has been renewed and you have been charged ??4.50. you can choose 10 more polys this month. www.clubzed.co.uk *billing msg* + +urgent ur ??500 guaranteed award is still unclaimed! call 09066368327 now closingdate04/09/02 claimcode m39m51 ??1.50pmmorefrommobile2bremoved-mobypobox734ls27yf + +gsoh? good with spam the ladies?u could b a male gigolo? 2 join the uk's fastest growing mens club reply oncall. mjzgroup. 08714342399.2stop reply stop. msg@??1.50rcvd + +hi' test on <#> rd .... + +freemsg hi baby wow just got a new cam moby. wanna c a hot pic? or fancy a chat?im w8in 4utxt / rply chat to 82242 hlp 08712317606 msg150p 2rcv + +bored housewives! chat n date now! 0871750.77.11! bt-national rate 10p/min only from landlines! + +free for 1st week! no1 nokia tone 4 ur mob every week just txt nokia to 87077 get txting and tell ur mates. zed pobox 36504 w45wq norm150p/tone 16+ + +boo what time u get out? u were supposed to take me shopping today. :( + +"congrats! 1 year special cinema pass for 2 is yours. call 09061209465 now! c suprman v +"hi ya babe x u 4goten bout me?' scammers getting smart..though this is a regular vodafone no +alex says he's not ok with you not being ok with it + +i wish u were here. i feel so alone + +boltblue tones for 150p reply poly# or mono# eg poly3 1. cha cha slide 2. yeah 3. slow jamz 6. toxic 8. come with me or stop 4 more tones txt more + +free msg: ringtone!from: http://tms. widelive.com/index. wml?id=1b6a5ecef91ff9*37819&first=true18:0430-jul-05 + +"christmas is an occasion that is celebrated as a reflection of ur... values... +your b4u voucher w/c 27/03 is marsms. log onto www.b4utele.com for discount credit. to opt out reply stop. customer care call 08717168528 + +okay. i've seen it. so i should pick it on friday? + +you have won a nokia 7250i. this is what you get when you win our free auction. to take part send nokia to 86021 now. hg/suite342/2lands row/w1jhl 16+ + +good morning. at the repair shop--the only reason i'm up at this hour. + +win a ??1000 cash prize or a prize worth ??5000 + +"hey boys. want hot xxx pics sent direct 2 ur phone? txt porn to 69855 +i am taking half day leave bec i am not well + +"hi hope u get this txt~journey hasnt been gd +you have won! as a valued vodafone customer our computer has picked you to win a ??150 prize. to collect is easy. just call 09061743386 + +"call 09094100151 to use ur mins! calls cast 10p/min (mob vary). service provided by aom +get your garden ready for summer with a free selection of summer bulbs and seeds worth ??33:50 only with the scotsman this saturday. to stop go2 notxt.co.uk + +free entry into our ??250 weekly comp just send the word enter to 84128 now. 18 t&c www.textcomp.com cust care 08712405020. + +for real tho this sucks. i can't even cook my whole electricity is out. and i'm hungry. + +long time. you remember me today. + +sometimes heart remembrs someone very much... forgets someone soon... bcoz heart will not like everyone. but liked ones will be remembered everytime... bslvyl + +8007 25p 4 alfie moon's children in need song on ur mob. tell ur m8s. txt tone charity to 8007 for nokias or poly charity for polys :zed 08701417012 profit 2 charity + +you have an important customer service announcement. call freephone 0800 542 0825 now! + +you've already got a flaky parent. it'snot supposed to be the child's job to support the parent...not until they're the ride age anyway. i'm supposed to be there to support you. and now i've hurt you. unintentional. but hurt nonetheless. + +a ??400 xmas reward is waiting for you! our computer has randomly picked you from our loyal mobile customers to receive a ??400 reward. just call 09066380611 + +i am waiting machan. call me once you free. + +come to mahal bus stop.. <decimal> + +congratulations ur awarded 500 of cd vouchers or 125gift guaranteed & free entry 2 100 wkly draw txt music to 87066 tncs www.ldew.com1win150ppmx3age16 + +get your garden ready for summer with a free selection of summer bulbs and seeds worth ??33:50 only with the scotsman this saturday. to stop go2 notxt.co.uk + +eat at old airport road... but now 630 oredi... got a lot of pple... + +ok.. ?? finishing soon? + +pansy! you've been living in a jungle for two years! its my driving you should be more worried about! + +18 days to euro2004 kickoff! u will be kept informed of all the latest news and results daily. unsubscribe send get euro stop to 83222. + +"sorry about earlier. putting out fires.are you around to talk after 9? or do you actually have a life +"dunno +"look at amy ure a beautiful +call germany for only 1 pence per minute! call from a fixed line via access number 0844 861 85 85. no prepayment. direct access! www.telediscount.co.uk + +1st wk free! gr8 tones str8 2 u each wk. txt nokia on to 8007 for classic nokia tones or hit on to 8007 for polys. nokia/150p poly/200p 16+ + +* free* polyphonic ringtone text super to 87131 to get your free poly tone of the week now! 16 sn pobox202 nr31 7zs subscription 450pw + +"sad story of a man - last week was my b'day. my wife did'nt wish me. my parents forgot n so did my kids . i went to work. even my colleagues did not wish. as i entered my cabin my pa said +themob>yo yo yo-here comes a new selection of hot downloads for our members to get for free! just click & open the next link sent to ur fone... + +well done england! get the official poly ringtone or colour flag on yer mobile! text tone or flag to 84199 now! opt-out txt eng stop. box39822 w111wx ??1.50 + +you have won a guaranteed ??1000 cash or a ??2000 prize. to claim yr prize call our customer service representative on 08714712412 between 10am-7pm cost 10p + +"sir +urgent! we are trying to contact u. todays draw shows that you have won a ??800 prize guaranteed. call 09050003091 from land line. claim c52. valid12hrs only + +and miss vday the parachute and double coins??? u must not know me very well... + +yes! how is a pretty lady like you single? + +"urgent! you have won a 1 week free membership in our ??100 +do you want a new nokia 3510i colour phone delivered tomorrow? with 200 free minutes to any mobile + 100 free text + free camcorder reply or call 8000930705 + +well done england! get the official poly ringtone or colour flag on yer mobile! text tone or flag to 84199 now! opt-out txt eng stop. box39822 w111wx ??1.50 + +"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 +are you unique enough? find out from 30th august. www.areyouunique.co.uk + +2p per min to call germany 08448350055 from your bt line. just 2p per min. check planettalkinstant.com for info & t's & c's. text stop to opt out + +private! your 2003 account statement for 07973788240 shows 800 un-redeemed s. i. m. points. call 08715203649 identifier code: 40533 expires 31/10/04 + +money i have won wining number 946 wot do i do next + +i will take care of financial problem.i will help:) + +"do you realize that in about 40 years +"ela kano. +do you want 750 anytime any network mins 150 text and a new video phone for only five pounds per week call 08002888812 or reply for delivery tomorrow + +collect your valentine's weekend to paris inc flight & hotel + ??200 prize guaranteed! text: paris to no: 69101. www.rtf.sphosting.com + +"urgent! your mobile number *************** won a ??2000 bonus caller prize on 10/06/03! this is the 2nd attempt to reach you! call 09066368753 asap! box 97n7qp +reminder: you have not downloaded the content you have already paid for. goto http://doit. mymoby. tv/ to collect your content. + +friendship poem: dear o dear u r not near but i can hear dont get fear live with cheer no more tear u r always my dear. gud ni8 + +really do hope the work doesnt get stressful. have a gr8 day. + +"thanks for your ringtone order +u horrible gal... u knew dat i was going out wif him yest n u still come n ask me... + +free 1st week entry 2 textpod 4 a chance 2 win 40gb ipod or ??250 cash every wk. txt vpod to 81303 ts&cs www.textpod.net custcare 08712405020. + +i dont. can you send it to me. plus how's mode. + +urgent! we are trying to contact u. todays draw shows that you have won a ??800 prize guaranteed. call 09050003091 from land line. claim c52. valid 12hrs only + +ur tonexs subscription has been renewed and you have been charged ??4.50. you can choose 10 more polys this month. www.clubzed.co.uk *billing msg* + +good. do you think you could send me some pix? i would love to see your top and bottom... + +you are now unsubscribed all services. get tons of sexy babes or hunks straight to your phone! go to http://gotbabes.co.uk. no subscriptions. + +recpt 1/3. you have ordered a ringtone. your order is being processed... + +"freemsg hey u +"you are being contacted by our dating service by someone you know! to find out who it is +"sorry +"hi +"spjanuary male sale! hot gay chat now cheaper +i can take you at like noon + +"if you don't +can u get 2 phone now? i wanna chat 2 set up meet call me now on 09096102316 u can cum here 2moro luv jane xx calls??1/minmoremobsemspobox45po139wa + +"by the way +buy space invaders 4 a chance 2 win orig arcade game console. press 0 for games arcade (std wap charge) see o2.co.uk/games 4 terms + settings. no purchase + +you have won a guaranteed 32000 award or maybe even ??1000 cash to claim ur award call free on 0800 ..... (18+). its a legitimat efreefone number wat do u think??? + +was playng 9 doors game and gt racing on phone lol + +talk to g and x about that + +"i'm outside islands +"sorry +interflora - ??it's not too late to order interflora flowers for christmas call 0800 505060 to place your order before midnight tomorrow. + +"aight +how is it possible to teach you. and where. + +call 09095350301 and send our girls into erotic ecstacy. just 60p/min. to stop texts call 08712460324 (nat rate) + +no she didnt. i will search online and let you know. + +hard live 121 chat just 60p/min. choose your girl and connect live. call 09094646899 now! cheap chat uk's biggest live service. vu bcm1896wc1n3xx + +you have won! as a valued vodafone customer our computer has picked you to win a ??150 prize. to collect is easy. just call 09061743386 + +huh? 6 also cannot? then only how many mistakes? + +can you please send me my aunty's number + +"latest nokia mobile or ipod mp3 player +??400 proze guaranteed! reply with: win to 83355 now! norcorp ltd.??1 +please call our customer service representative on freephone 0808 145 4742 between 9am-11pm as you have won a guaranteed ??1000 cash or ??5000 prize! + +camera - you are awarded a sipix digital camera! call 09061221066 fromm landline. delivery within 28 days. + +g wants to know where the fuck you are + +"send ur birthdate with month and year +"\boo babe! u enjoyin yourjob? u seemed 2 b gettin on well hunny!hope ure ok?take care & i??llspeak 2u soonlots of loveme xxxx.\""""" + +"thanks for your ringtone order +havent stuck at orchard in my dad's car. going 4 dinner now. u leh? so r they free tonight? + +"congrats 2 mobile 3g videophones r yours. call 09063458130 now! videochat wid ur mates +"this is the 2nd time we have tried to contact u. u have won the ??400 prize. 2 claim is easy +dear dave this is your final notice to collect your 4* tenerife holiday or #5000 cash award! call 09061743806 from landline. tcs sae box326 cw25wx 150ppm + +how are you doing? hope you've settled in for the new school year. just wishin you a gr8 day + +i dont want to hear philosophy. just say what happen + +"if we hit it off +you have an important customer service announcement from premier. call freephone 0800 542 0578 now! + +its worse if if uses half way then stops. its better for him to complete it. + +well i might not come then... + +"today's offer! claim ur ??150 worth of discount vouchers! text yes to 85023 now! savamob +watching tv now. i got new job :) + +you have an important customer service announcement from premier. + +do you want a new video phone750 anytime any network mins 150 text for only five pounds per week call 08000776320 now or reply for delivery tomorrow + +"eerie nokia tones 4u +your board is working fine. the issue of overheating is also reslove. but still software inst is pending. i will come around 8'o clock. + +fwiw the reason i'm only around when it's time to smoke is that because of gas i can only afford to be around when someone tells me to be and that apparently only happens when somebody wants to light up + +in other news after hassling me to get him weed for a week andres has no money. haughaighgtujhyguj + +she left it very vague. she just said she would inform the person in accounting about the delayed rent and that i should discuss with the housing agency about my renting another place. but checking online now and all places around usc are <#> and up + +where are you lover ? i need you ... + +tbs/persolvo. been chasing us since sept for??38 definitely not paying now thanks to your information. we will ignore them. kath. manchester. + +you have 1 new voicemail. please call 08719181503 + +"what do you do +"final chance! claim ur ??150 worth of discount vouchers today! text yes to 85023 now! savamob +lol they were mad at first but then they woke up and gave in. + +"win the newest ???harry potter and the order of the phoenix (book 5) reply harry +no pic. please re-send. + +guess who am i?this is the first time i created a web page www.asjesus.com read all i wrote. i'm waiting for your opinions. i want to be your friend 1/1 + +guess who am i?this is the first time i created a web page www.asjesus.com read all i wrote. i'm waiting for your opinions. i want to be your friend 1/1 + +guess what! somebody you know secretly fancies you! wanna find out who it is? give us a call on 09065394973 from landline datebox1282essexcm61xn 150p/min 18 + +ok leave no need to ask + +pls give her prometazine syrup. 5mls then <#> mins later feed. + +december only! had your mobile 11mths+? you are entitled to update to the latest colour camera mobile for free! call the mobile update co free on 08002986906 + +"bears pic nick +omg joanna is freaking me out. she's looked thru all my friends to find photos of me. and then she's asking about stuff on my myspace which i haven't even logged on in like a year. :/ + +u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09065171142-stopsms-08 + +on ma way to school. can you pls send me ashley's number + +good. good job. i like entrepreneurs + +"just got part nottingham - 3 hrs 63miles. good thing i love my man so much +"k +do you want a new nokia 3510i colour phone deliveredtomorrow? with 300 free minutes to any mobile + 100 free texts + free camcorder reply or call 08000930705. + +hi i'm sue. i am 20 years old and work as a lapdancer. i love sex. text me live - i'm i my bedroom now. text sue to 89555. by textoperator g2 1da 150ppmsg 18+ + +aiyah ok wat as long as got improve can already wat... + +dear subscriber ur draw 4 ??100 gift voucher will b entered on receipt of a correct ans. when was elvis presleys birthday? txt answer to 80062 + +"you are being contacted by our dating service by someone you know! to find out who it is +hi dude hw r u da realy mising u today + +"fun fact: although you would think armand would eventually build up a tolerance or some shit considering how much he smokes +u studying in sch or going home? anyway i'll b going 2 sch later. + +now only i reached home. . . i am very tired now. . i will come tomorro + +they r giving a second chance to rahul dengra. + +going for dinner.msg you after. + +but my family not responding for anything. now am in room not went to home for diwali but no one called me and why not coming. it makes me feel like died. + +be sure to check your yahoo email. we sent photos yesterday + +we tried to contact you re your response to our offer of a new nokia fone and camcorder hit reply or call 08000930705 for delivery + +oops. 4 got that bit. + +"ola would get back to you maybe not today but i ve told him you can be his direct link in the us in getting cars he bids for online +"ou are guaranteed the latest nokia phone +kit strip - you have been billed 150p. netcollex ltd. po box 1013 ig11 oja + +soon you will have the real thing princess! do i make you wet? :) + +really... i tot ur paper ended long ago... but wat u copied jus now got use? u happy lar... i still haf 2 study :-( + +refused a loan? secured or unsecured? can't get credit? call free now 0800 195 6669 or text back 'help' & we will! + +"dear voucher holder +feel yourself that you are always happy.. slowly it becomes your habit & finally it becomes part of your life.. follow it.. happy morning & have a happy day:) + +we're finally ready fyi + +dear voucher holder 2 claim your 1st class airport lounge passes when using your holiday voucher call 08704439680. when booking quote 1st class x 2 + +free msg: single? find a partner in your area! 1000s of real people are waiting to chat now!send chat to 62220cncl send stopcs 08717890890??1.50 per msg + +"u can win ??100 of music gift vouchers every week starting now txt the word draw to 87066 tscs www.idew.com skillgame +"he will +no. 1 nokia tone 4 ur mob every week! just txt nok to 87021. 1st tone free ! so get txtin now and tell ur friends. 150p/tone. 16 reply hl 4info + +where are you ? what are you doing ? are yuou working on getting the pc to your mom's ? did you find a spot that it would work ? i need you + +"sounds gd... haha... can... wah +win urgent! your mobile number has been awarded with a ??2000 prize guaranteed call 09061790121 from land line. claim 3030 valid 12hrs only 150ppm + +please call 08712404000 immediately as there is an urgent message waiting for you. + +nope but i'm going home now then go pump petrol lor... like going 2 rain soon... + +slept? i thinkthis time ( <#> pm) is not dangerous + +money i have won wining number 946 wot do i do next + +"congrats! 2 mobile 3g videophones r yours. call 09061744553 now! videochat wid ur mates +wamma get laid?want real doggin locations sent direct to your mobile? join the uks largest dogging network. txt dogs to 69696 now!nyt. ec2a. 3lp ??1.50/msg. + +wat u doing there? + +yar lor... how u noe? u used dat route too? + +but i'm really really broke oh. no amount is too small even <#> + +hi did u decide wot 2 get 4 his bday if not ill prob jus get him a voucher frm virgin or sumfing + +"want to funk up ur fone with a weekly new tone reply tones2u 2 this text. www.ringtones.co.uk +k come to nordstrom when you're done + +"hot live fantasies call now 08707509020 just 20p per min ntt ltd +"thank you +"house-maid is the murderer +cheers lou! yeah was a goodnite shame u neva came! c ya gailxx + +enjoy the jamster videosound gold club with your credits for 2 new videosounds+2 logos+musicnews! get more fun from jamster.co.uk! 16+only help? call: 09701213186 + +"sir +u have won a nokia 6230 plus a free digital camera. this is what u get when u win our free auction. to take part send nokia to 83383 now. pobox114/14tcr/w1 16 + +free entry into our ??250 weekly comp just send the word enter to 84128 now. 18 t&c www.textcomp.com cust care 08712405020. + +small problem in auction:)punj now asking tiwary + +you won't believe it but it's true. it's incredible txts! reply g now to learn truly amazing things that will blow your mind. from o2fwd only 18p/txt + +so your telling me i coulda been your real valentine and i wasn't? u never pick me for nothing!! + +are you going to write ccna exam this week?? + +how come she can get it? should b quite diff to guess rite... + +get ur 1st ringtone free now! reply to this msg with tone. gr8 top 20 tones to your phone every week just ??1.50 per wk 2 opt out send stop 08452810071 16 + +have you started in skye + +bull. your plan was to go floating off to ikea with me without a care in the world. so i have to live with your mess another day. + +shopping lor. them raining mah hard 2 leave orchard. + +"in the simpsons movie released in july 2007 name the band that died at the start of the film? a-green day +i though we shd go out n have some fun so bar in town or something ??? sound ok? + +"bored of speed dating? try speedchat +500 free text msgs. just text ok to 80488 and we'll credit your account + +"also sir +"urgent! your mobile no. was awarded ??2000 bonus caller prize on 5/9/03 this is our final try to contact u! call from landline 09064019788 box42wr29c +well done england! get the official poly ringtone or colour flag on yer mobile! text tone or flag to 84199 now! opt-out txt eng stop. box39822 w111wx ??1.50 + +"dear voucher holder +urgent! we are trying to contact u. todays draw shows that you have won a ??800 prize guaranteed. call 09050001295 from land line. claim a21. valid 12hrs only + +stupid auto correct on my phone + +po de :-):):-):-):-). no need job aha. + +**free message**thanks for using the auction subscription service. 18 . 150p/msgrcvd 2 skip an auction txt out. 2 unsubscribe txt stop customercare 08718726270 + +ringtoneking 84484 + +get the official england poly ringtone or colour flag on yer mobile for tonights game! text tone or flag to 84199. optout txt eng stop box39822 w111wx ??1.50 + +"dear +hi 07734396839 ibh customer loyalty offer: the new nokia6600 mobile from only ??10 at txtauction!txt word:start to no:81151 & get yours now!4t& + +"your chance to be on a reality fantasy show call now = 08707509020 just 20p per min ntt ltd +huh so slow i tot u reach long ago liao... u 2 more days only i 4 more leh... + +i'll pick you up at about 5.15pm to go to taunton if you still want to come. + +double mins & double txt & 1/2 price linerental on latest orange bluetooth mobiles. call mobileupd8 for the very latest offers. 08000839402 or call2optout/lf56 + +"spook up your mob with a halloween collection of a logo & pic message plus a free eerie tone +get your garden ready for summer with a free selection of summer bulbs and seeds worth ??33:50 only with the scotsman this saturday. to stop go2 notxt.co.uk + +you have won a nokia 7250i. this is what you get when you win our free auction. to take part send nokia to 86021 now. hg/suite342/2lands row/w1jhl 16+ + +will do. was exhausted on train this morning. too much wine and pie. you sleep well too + +can. dunno wat to get 4 her... + +she doesnt need any test. + +i want to be there so i can kiss you and feel you next to me + +congratulations ur awarded either ??500 of cd gift vouchers & free entry 2 our ??100 weekly draw txt music to 87066 tncs www.ldew.com1win150ppmx3age16 + +for me the love should start with attraction.i should feel that i need her every time around me.she should be the first thing which comes in my thoughts.i would start the day and end it with her.she should be there every time i dream.love will be then when my every breath has her name.my life should happen around her.my life will be named to her.i would cry for her.will give all my happiness and take all her sorrows.i will be ready to fight with anyone for her.i will be in love when i will be doing the craziest things for her.love will be when i don't have to proove anyone that my girl is the most beautiful lady on the whole planet.i will always be singing praises for her.love will be when i start up making chicken curry and end up makiing sambar.life will be the most beautiful then.will get every morning and thank god for the day because she is with me.i would like to say a lot..will tell later.. + +"rock yr chik. get 100's of filthy films &xxx pics on yr phone now. rply filth to 69669. saristar ltd +"now u sound like manky scouse boy steve +kit strip - you have been billed 150p. netcollex ltd. po box 1013 ig11 oja + +"fuck babe +hi 07734396839 ibh customer loyalty offer: the new nokia6600 mobile from only ??10 at txtauction!txt word:start to no:81151 & get yours now!4t& + +"yeah +k..then come wenever u lik to come and also tel vikky to come by getting free time..:-) + +thats cool. i liked your photos. you are very sexy! + +call 09090900040 & listen to extreme dirty live chat going on in the office right now total privacy no one knows your [sic] listening 60p min 24/7mp 0870753331018+ + +for sale - arsenal dartboard. good condition but no doubles or trebles! + +u have a secret admirer. reveal who thinks u r so special. call 09065174042. to opt out reply reveal stop. 1.50 per msg recd. cust care 07821230901 + +freemsg: our records indicate you may be entitled to 3750 pounds for the accident you had. to claim for free reply with yes to this msg. to opt out text stop + +"i don +gud mrng dear hav a nice day + +we tried to contact you re your reply to our offer of a video phone 750 anytime any network mins half price line rental camcorder reply or call 08000930705 + +"hey +i need to come home and give you some good lovin... + +gud mrng dear have a nice day + +show ur colours! euro 2004 2-4-1 offer! get an england flag & 3lions tone on ur phone! click on the following service message for info! + +urgent! we are trying to contact u todays draw shows that you have won a ??800 prize guaranteed. call 09050000460 from land line. claim j89. po box245c2150pm + +burger king - wanna play footy at a top stadium? get 2 burger king before 1st sept and go large or super with coca-cola and walk out a winner + +"urgent! call 09066350750 from your landline. your complimentary 4* ibiza holiday or 10 +wat makes some people dearer is not just de happiness dat u feel when u meet them but de pain u feel when u miss dem!!! + +i like cheap! but i???m happy to splash out on the wine if it makes you feel better.. + +yep. i do like the pink furniture tho. + +"gr8 poly tones 4 all mobs direct 2u rply with poly title to 8007 eg poly breathe1 titles: crazyin +"life alle mone +want the latest video handset? 750 anytime any network mins? half price line rental? reply or call 08000930705 for delivery tomorrow + +yeah if we do have to get a random dude we need to change our info sheets to party <#> /7 never study just to be safe + +"u've been selected to stay in 1 of 250 top british hotels - for nothing! holiday valued at ??350! dial 08712300220 to claim - national rate call. bx526 +"hi +i'm aight. wat's happening on your side. + +"urgent! you have won a 1 week free membership in our ??100 +aight ill get on fb in a couple minutes + +"hi ya babe x u 4goten bout me?' scammers getting smart..though this is a regular vodafone no +is there coming friday is leave for pongal?do you get any news from your work place. + +"\me 2 babe i feel the same lets just 4get about it+both try +cheer up+not fit soo muchxxlove u locaxx\""""" + +"haha awesome +"free msg. sorry +"ou are guaranteed the latest nokia phone +do you like italian food? + +"waqt se pehle or naseeb se zyada kisi ko kuch nahi milta +no..its ful of song lyrics.. + +free entry into our ??250 weekly competition just text the word win to 80086 now. 18 t&c www.txttowin.co.uk + +so what u doing today? + +urgent! please call 09061743810 from landline. your abta complimentary 4* tenerife holiday or #5000 cash await collection sae t&cs box 326 cw25wx 150 ppm + +how come it takes so little time for a child who is afraid of the dark to become a teenager who wants to stay out all night? + +probably earlier than that if the station's where i think it is + +free entry in 2 a wkly comp to win fa cup final tkts 21st may 2005. text fa to 87121 to receive entry question(std txt rate)t&c's apply 08452810075over18's + +**free message**thanks for using the auction subscription service. 18 . 150p/msgrcvd 2 skip an auction txt out. 2 unsubscribe txt stop customercare 08718726270 + +hey anyway i have to :-) + +"and how you will do that +i got a call from a landline number. . . i am asked to come to anna nagar . . . i will go in the afternoon + +"i'd say that's a good sign but +urgent this is our 2nd attempt to contact u. your ??900 prize from yesterday is still awaiting collection. to claim call now 09061702893 + +and stop being an old man. you get to build snowman snow angels and snowball fights. + +"thanks for your ringtone order +"she said +"hi there +get the official england poly ringtone or colour flag on yer mobile for tonights game! text tone or flag to 84199. optout txt eng stop box39822 w111wx ??1.50 + +i don't run away frm u... i walk slowly & it kills me that u don't care enough to stop me... + +no 1 polyphonic tone 4 ur mob every week! just txt pt2 to 87575. 1st tone free ! so get txtin now and tell ur friends. 150p/tone. 16 reply hl 4info + +"thanks for your ringtone order +its ok..come to my home it vl nice to meet and v can chat.. + +what today-sunday..sunday is holiday..so no work.. + +wot u up 2? thout u were gonna call me!! txt bak luv k + +get the official england poly ringtone or colour flag on yer mobile for tonights game! text tone or flag to 84199. optout txt eng stop box39822 w111wx ??1.50 + +hey i'm bored... so i'm thinking of u... so wat r u doing? + +ur balance is now ??500. ur next question is: who sang 'uptown girl' in the 80's ? 2 answer txt ur answer to 83600. good luck! + +"reminder from o2: to get 2.50 pounds free call credit and details of great offers pls reply 2 this text with your valid name +are you driving or training? + +if i not meeting ?_ all rite then i'll go home lor. if ?_ dun feel like comin it's ok. + +from tomorrow onwards eve 6 to 3 work. + +"new mobiles from 2004 +how come guoyang go n tell her? then u told her? + +just sleeping..and surfing + +18 days to euro2004 kickoff! u will be kept informed of all the latest news and results daily. unsubscribe send get euro stop to 83222. + +"thanks for your ringtone order +you said to me before i went back to bed that you can't sleep for anything. + +"your chance to be on a reality fantasy show call now = 08707509020 just 20p per min ntt ltd +i accidentally deleted the message. resend please. + +your weekly cool-mob tones are ready to download !this weeks new tones include: 1) crazy frog-axel f>>> 2) akon-lonely>>> 3) black eyed-dont p >>>more info in n + +great! i hope you like your man well endowed. i am <#> inches... + +"hey boys. want hot xxx pics sent direct 2 ur phone? txt porn to 69855 +knock knock txt whose there to 80082 to enter r weekly draw 4 a ??250 gift voucher 4 a store of yr choice. t&cs www.tkls.com age16 to stoptxtstop??1.50/week + +me too. mark is taking forever to pick up my prescription and the pain is coming back. + +private! your 2003 account statement for 07808 xxxxxx shows 800 un-redeemed s. i. m. points. call 08719899217 identifier code: 41685 expires 07/11/04 + +a ??400 xmas reward is waiting for you! our computer has randomly picked you from our loyal mobile customers to receive a ??400 reward. just call 09066380611 + +life has never been this much fun and great until you came in. you made it truly special for me. i won't forget you! enjoy @ one gbp/sms + +cool. so how come you havent been wined and dined before? + +:-( sad puppy noise + +had your mobile 11 months or more? u r entitled to update to the latest colour mobiles with camera for free! call the mobile update co free on 08002986030 + +we tried to contact you re our offer of new video phone 750 anytime any network mins half price rental camcorder call 08000930705 or reply for delivery wed + +yes! the only place in town to meet exciting adult singles is now in the uk. txt chat to 86688 now! 150p/msg. + +then u better go sleep.. dun disturb u liao.. u wake up then msg me lor.. + +lol they don't know about my awesome phone. i could click delete right now if i want. + +"ya +u too... + +"hot live fantasies call now 08707509020 just 20p per min ntt ltd +i don't run away frm u... i walk slowly & it kills me that u don't care enough to stop me... + +"how long before you get reply +"i wonder how you got online +hi.what you think about match? + +urgent! we are trying to contact you. last weekends draw shows that you have won a ??900 prize guaranteed. call 09061701851. claim code k61. valid 12hours only + +me sef dey laugh you. meanwhile how's my darling anjie! + +who's there say hi to our drugdealer + +was just about to ask. will keep this one. maybe that's why you didn't get all the messages we sent you on glo + +i cant pick the phone right now. pls send a message + +no i don't have cancer. moms making a big deal out of a regular checkup aka pap smear + +2p per min to call germany 08448350055 from your bt line. just 2p per min. check planettalkinstant.com for info & t's & c's. text stop to opt out + +"reminder from o2: to get 2.50 pounds free call credit and details of great offers pls reply 2 this text with your valid name +themob>yo yo yo-here comes a new selection of hot downloads for our members to get for free! just click & open the next link sent to ur fone... + +private! your 2003 account statement for 07973788240 shows 800 un-redeemed s. i. m. points. call 08715203649 identifier code: 40533 expires 31/10/04 + +"wan2 win a meet+greet with westlife 4 u or a m8? they are currently on what tour? 1)unbreakable +we currently have a message awaiting your collection. to collect your message just call 08718723815. + +me n him so funny... + +bored housewives! chat n date now! 0871750.77.11! bt-national rate 10p/min only from landlines! + +filthy stories and girls waiting for your + +yup having my lunch buffet now.. u eat already? + +private! your 2003 account statement for 07808247860 shows 800 un-redeemed s. i. m. points. call 08719899229 identifier code: 40411 expires 06/11/04 + +and he's apparently bffs with carly quick now + +filthy stories and girls waiting for your + +"xmas offer! latest motorola +want explicit sex in 30 secs? ring 02073162414 now! costs 20p/min + +thesmszone.com lets you send free anonymous and masked messages..im sending this message from there..do you see the potential for abuse??? + +in da car park + +no way i'm going back there! + +u 447801259231 have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094597 + +i don know account details..i will ask my mom and send you.my mom is out of reach now. + +"sorry +there are some nice pubs near here or there is frankie n bennys near the warner cinema? + +"beautiful truth against gravity.. read carefully: \our heart feels light when someone is in it.. but it feels very heavy when someone leaves it..\"" goodmorning""" + +"urgent! your mobile no 077xxx won a ??2 +please call 08712402972 immediately as there is an urgent message waiting for you + +reply with your name and address and you will receive by post a weeks completely free accommodation at various global locations www.phb1.com ph:08700435505150p + +"yo +that depends. how would you like to be treated? :) + +"themob>hit the link to get a premium pink panther game +"as a valued customer +:( but your not here.... + +wewa is 130. iriver 255. all 128 mb. + +you still coming tonight? + +100 dating service cal;l 09064012103 box334sk38ch + +i've got it down to a tea. not sure which flavour + +o shore are you takin the bus + +"urgent! you have won a 1 week free membership in our ??100 +congratulations u can claim 2 vip row a tickets 2 c blu in concert in november or blu gift guaranteed call 09061104276 to claim ts&cs www.smsco.net cost??3.75max + +can come my room but cannot come my house cos my house still messy... haha... + +freemsg: hey - i'm buffy. 25 and love to satisfy men. home alone feeling randy. reply 2 c my pix! qlynnbv help08700621170150p a msg send stop to stop txts + +"u r subscribed 2 textcomp 250 wkly comp. 1st wk?s free question follows +there is a first time for everything :) + +u have a secret admirer. reveal who thinks u r so special. call 09065174042. to opt out reply reveal stop. 1.50 per msg recd. cust care 07821230901 + +its a laptop take it with you. + +"shop till u drop +do you want a new nokia 3510i colour phone delivered tomorrow? with 200 free minutes to any mobile + 100 free text + free camcorder reply or call 08000930705 + +i'm at home n ready... + +hmm yeah if your not too grooved out! and im looking forward to my pound special :) + +sure! i am driving but will reach my destination soon. + +please call amanda with regard to renewing or upgrading your current t-mobile handset free of charge. offer ends today. tel 0845 021 3680 subject to t's and c's + +we tried to contact you re our offer of new video phone 750 anytime any network mins half price rental camcorder call 08000930705 or reply for delivery wed + +oh thanks a lot..i already bought 2 eggs .. + +a ??400 xmas reward is waiting for you! our computer has randomly picked you from our loyal mobile customers to receive a ??400 reward. just call 09066380611 + +no my mum went 2 dentist. + +u sick still can go shopping? + +"double mins and txts 4 6months free bluetooth on orange. available on sony +"bangbabes ur order is on the way. u should receive a service msg 2 download ur content. if u do not +summers finally here! fancy a chat or flirt with sexy singles in yr area? to get matched up just reply summer now. free 2 join. optout txt stop help08714742804 + +talk sexy!! make new friends or fall in love in the worlds most discreet text dating service. just text vip to 83110 and see who you could meet. + +"sorry +we tried to contact you re our offer of new video phone 750 anytime any network mins half price rental camcorder call 08000930705 or reply for delivery wed + +i keep ten rs in my shelf:) buy two egg. + +can you just come in for a sec? there's somebody here i want you to see + +"today's offer! claim ur ??150 worth of discount vouchers! text yes to 85023 now! savamob +"sorry +hi darlin how was work did u get into trouble? ijust talked to your mum all morning! i had a really good time last night im goin out soon but call me if u can + +you are a winner u have been specially selected 2 receive ??1000 cash or a 4* holiday (flights inc) speak to a live operator 2 claim 0871277810810 + +understand. his loss is my gain :) so do you work? school? + +why you keeping me away like this + +"ou are guaranteed the latest nokia phone +yay! finally lol. i missed our cinema trip last week :-( + +please call 08712404000 immediately as there is an urgent message waiting for you. + +dear u've been invited to xchat. this is our final attempt to contact u! txt chat to 86688 150p/msgrcvdhg/suite342/2lands/row/w1j6hl ldn 18 yrs + +"k +sunshine quiz wkly q! win a top sony dvd player if u know which country liverpool played in mid week? txt ansr to 82277. ??1.50 sp:tyrone + +have a good evening! ttyl + +missed call alert. these numbers called but left no message. 07008009200 + +dai <#> naal eruku. + +i think its far more than that but find out. check google maps for a place from your dorm. + +"hello +"dear relieved of westonzoyland +i hope you know i'm still mad at you. + +thanks 4 your continued support your question this week will enter u in2 our draw 4 ??100 cash. name the new us president? txt ans to 80082 + +please call our customer service representative on freephone 0808 145 4742 between 9am-11pm as you have won a guaranteed ??1000 cash or ??5000 prize! + +customer loyalty offer:the new nokia6650 mobile from only ??10 at txtauction! txt word: start to no: 81151 & get yours now! 4t&ctxt tc 150p/mtmsg + +it so happens that there r 2waxsto do wat you want. she can come and ill get her medical insurance. and she'll be able to deliver and have basic care. i'm currently shopping for the right medical insurance for her. so just give me til friday morning. thats when i.ll see the major person that can guide me to the right insurance. + +"this is the 2nd time we have tried to contact u. u have won the ??400 prize. 2 claim is easy +no gifts!! you trying to get me to throw myself off a cliff or something? + +"did you hear about the new \divorce barbie\""? it comes with all of ken's stuff!""" + +call from 08702490080 - tells u 2 call 09066358152 to claim ??5000 prize. u have 2 enter all ur mobile & personal details @ the prompts. careful! + +sports fans - get the latest sports news str* 2 ur mobile 1 wk free plus a free tone txt sport on to 8007 www.getzed.co.uk 0870141701216+ norm 4txt/120p + +"tddnewsletter.co.uk (more games from thedailydraw) dear helen +"hey +network operator. the service is free. for t & c's visit 80488.biz + +you busy or can i come by at some point and figure out what we're doing tomorrow + +hmv bonus special 500 pounds of genuine hmv vouchers to be won. just answer 4 easy questions. play now! send hmv to 86688 more info:www.100percent-real.com + +ee msg na poortiyagi odalebeku: hanumanji 7 name 1-hanuman 2-bajarangabali 3-maruti 4-pavanaputra 5-sankatmochan 6-ramaduth 7-mahaveer ee 7 name <#> janarige ivatte kalisidare next saturday olage ondu good news keluviri...! maretare inde 1 dodda problum nalli siguviri idu matra <#> % true.. don't neglet. + +"you've won tkts to the euro2004 cup final or ??800 cash +yup ?_ not comin :-( + +ya even those cookies have jelly on them + +"as a valued customer +c movie is juz last minute decision mah. juz watch 2 lar but i tot ?_ not interested. + +i'm ok. will do my part tomorrow + +"7 wonders in my world 7th you 6th ur style 5th ur smile 4th ur personality 3rd ur nature 2nd ur sms and 1st \ur lovely friendship\""... good morning dear""" + +"\for the most sparkling shopping breaks from 45 per person; call 0121 2025050 or visit www.shortbreaks.org.uk\""""" + +i need details about that online job. + +hi - this is your mailbox messaging sms alert. you have 40 matches. please call back on 09056242159 to retrieve your messages and matches cc100p/min + +nope i waiting in sch 4 daddy... + +private! your 2003 account statement for 07753741225 shows 800 un-redeemed s. i. m. points. call 08715203677 identifier code: 42478 expires 24/10/04 + +you have 1 new message. please call 08712400200. + +"urgent. important information for 02 user. today is your lucky day! 2 find out why +u are subscribed to the best mobile content service in the uk for ??3 per 10 days until you send stop to 82324. helpline 08706091795 + +tells u 2 call 09066358152 to claim ??5000 prize. u have 2 enter all ur mobile & personal details @ the prompts. careful! + +sounds great! are you home now? + +"you are guaranteed the latest nokia phone +camera - you are awarded a sipix digital camera! call 09061221066 fromm landline. delivery within 28 days + +then she buying today? ?? no need to c meh... + +thanks love. but am i doing torch or bold. + +she's fine. sends her greetings + +meeting u is my work. . . tel me when shall i do my work tomorrow + +you have won a guaranteed ??1000 cash or a ??2000 prize. to claim yr prize call our customer service representative on 08714712394 between 10am-7pm + +"complimentary 4 star ibiza holiday or ??10 +"final chance! claim ur ??150 worth of discount vouchers today! text yes to 85023 now! savamob +reply to win ??100 weekly! where will the 2006 fifa world cup be held? send stop to 87239 to end service + +"hi this is amy +your 2004 account for 07xxxxxxxxx shows 786 unredeemed points. to claim call 08719181259 identifier code: xxxxx expires 26.03.05 + +"urgent! please call 09066612661 from your landline +"good afternoon +"ever green quote ever told by jerry in cartoon \a person who irritates u always is the one who loves u vry much but fails to express it...!..!! :-) :-) gud nyt""" + +"did you hear about the new \divorce barbie\""? it comes with all of ken's stuff!""" + +had your mobile 11 months or more? u r entitled to update to the latest colour mobiles with camera for free! call the mobile update co free on 08002986030 + +so what do you guys do. + +are you unique enough? find out from 30th august. www.areyouunique.co.uk + +it took mr owl 3 licks + +"that's cool he'll be here all night +get your garden ready for summer with a free selection of summer bulbs and seeds worth ??33:50 only with the scotsman this saturday. to stop go2 notxt.co.uk + +"urgent! please call 09066612661 from your landline +good luck! draw takes place 28th feb 06. good luck! for removal send stop to 87239 customer services 08708034412 + +sorry that was my uncle. i.ll keep in touch + +i'm in class. did you get my text. + +no. 1 nokia tone 4 ur mob every week! just txt nok to 87021. 1st tone free ! so get txtin now and tell ur friends. 150p/tone. 16 reply hl 4info + +allo! we have braved the buses and taken on the trains and triumphed. i mean we???re in b???ham. have a jolly good rest of week + +hey!!! i almost forgot ... happy b-day babe ! i love ya!! + +did u download the fring app? + +"hi babe its jordan +"this is the 2nd time we have tried 2 contact u. u have won the ??750 pound prize. 2 claim is easy +yeah no probs - last night is obviously catching up with you... speak soon + +"urgent -call 09066649731from landline. your complimentary 4* ibiza holiday or ??10 +when the first strike is a red one. the bird + antelope begin toplay in the fieldof selfindependence believe this + the flower of contention will grow.random! + +looks like u wil b getting a headstart im leaving here bout 2.30ish but if u r desperate for my company i could head in earlier-we were goin to meet in rummer. + +when you came to hostel. + +huh but i got lesson at 4 lei n i was thinkin of going to sch earlier n i tot of parkin at kent vale... + +free tones hope you enjoyed your new content. text stop to 61610 to unsubscribe. help:08712400602450p provided by tones2you.co.uk + +"january male sale! hot gay chat now cheaper +that's ok. i popped in to ask bout something and she said you'd been in. are you around tonght wen this girl comes? + +went fast asleep dear.take care. + +jamster! to get your free wallpaper text heart to 88888 now! t&c apply. 16 only. need help? call 08701213186. + +k. did you call me just now ah? + +get a brand new mobile phone by being an agent of the mob! plus loads more goodies! for more info just text mat to 87021. + +you can never do nothing + +please call our customer service representative on 0800 169 6031 between 10am-9pm as you have won a guaranteed ??1000 cash or ??5000 prize! + +free for 1st week! no1 nokia tone 4 ur mobile every week just txt nokia to 8077 get txting and tell ur mates. www.getzed.co.uk pobox 36504 w45wq 16+ norm150p/tone + +yo you around? a friend of mine's lookin to pick up later tonight + +"i want to show you the world +"this is the 2nd time we have tried 2 contact u. u have won the 750 pound prize. 2 claim is easy +urgent! your mobile number has been awarded with a ??2000 prize guaranteed. call 09058094454 from land line. claim 3030. valid 12hrs only + +8007 25p 4 alfie moon's children in need song on ur mob. tell ur m8s. txt tone charity to 8007 for nokias or poly charity for polys :zed 08701417012 profit 2 charity + +"urgent! your mobile no 07808726822 was awarded a ??2 +short but cute: \be a good person + +"dear matthew please call 09063440451 from a landline +"wishing you and your family merry \x\"" mas and happy new year in advance..""" + +1000's of girls many local 2 u who r virgins 2 this & r ready 2 4fil ur every sexual need. can u 4fil theirs? text cute to 69911(??1.50p. m) + +i am hot n horny and willing i live local to you - text a reply to hear strt back from me 150p per msg netcollex ltdhelpdesk: 02085076972 reply stop to end + +urgent this is our 2nd attempt to contact u. your ??900 prize from yesterday is still awaiting collection. to claim call now 09061702893 + +"someone u know has asked our dating service 2 contact you! cant guess who? call 09058095107 now all will be revealed. pobox 7 +"double mins & 1000 txts on orange tariffs. latest motorola +here got lots of hair dresser fr china. + +no prob. i will send to your email. + +i don't know u and u don't know me. send chat to 86688 now and let's find each other! only 150p/msg rcvd. hg/suite342/2lands/row/w1j6hl ldn. 18 years or over. + +would you like to see my xxx pics they are so hot they were nearly banned in the uk! + +"this is the 2nd time we have tried to contact u. u have won the ??400 prize. 2 claim is easy +"mila +is fujitsu s series lifebook good? + +"i'm a guy +asked 3mobile if 0870 chatlines inclu in free mins. india cust servs sed yes. l8er got mega bill. 3 dont giv a shit. bailiff due in days. i o ??250 3 want ??800 + +reply with your name and address and you will receive by post a weeks completely free accommodation at various global locations www.phb1.com ph:08700435505150p + +u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09065171142-stopsms-08 + +"i want some cock! my hubby's away +or ill be a little closer like at the bus stop on the same street + +"hey sweet +ya it came a while ago + +please tell me you have some of that special stock you were talking about + +i don't know u and u don't know me. send chat to 86688 now and let's find each other! only 150p/msg rcvd. hg/suite342/2lands/row/w1j6hl ldn. 18 years or over. + +"night sweet +india have to take lead:) + +where are you?when wil you reach here? + +"oh +she.s fine. i have had difficulties with her phone. it works with mine. can you pls send her another friend request. + +"u can win ??100 of music gift vouchers every week starting now txt the word draw to 87066 tscs www.idew.com skillgame +i wanna watch that movie + +"fantasy football is back on your tv. go to sky gamestar on sky active and play ??250k dream team. scoring starts on saturday +"you've won tkts to the euro2004 cup final or ??800 cash +"do you realize that in about 40 years +i like you peoples very much:) but am very shy pa. + +"urgent! last weekend's draw shows that you have won ??1000 cash or a spanish holiday! call now 09050000332 to claim. t&c: rstm +"hungry gay guys feeling hungry and up 4 it +5p 4 alfie moon's children in need song on ur mob. tell ur m8s. txt tone charity to 8007 for nokias or poly charity for polys: zed 08701417012 profit 2 charity. + +"thursday night? yeah +hmv bonus special 500 pounds of genuine hmv vouchers to be won. just answer 4 easy questions. play now! send hmv to 86688 more info:www.100percent-real.com + +private! your 2003 account statement for shows 800 un-redeemed s. i. m. points. call 08719899230 identifier code: 41685 expires 07/11/04 + +"u r subscribed 2 textcomp 250 wkly comp. 1st wk?s free question follows +"two fundamentals of cool life: \walk whoever is the king\""!... gud nyt""" + +let there be snow. let there be snow. this kind of weather brings ppl together so friendships can grow. + +network operator. the service is free. for t & c's visit 80488.biz + +i sent them. do you like? + +becoz its <#> jan whn al the post ofice is in holiday so she cn go fr the post ofice...got it duffer + +no problem baby. is this is a good time to talk? i called and left a message. + +"double mins & 1000 txts on orange tariffs. latest motorola +thanks for your subscription to ringtone uk your mobile will be charged ??5/month please confirm by replying yes or no. if you reply no you will not be charged + +"alright we're hooked up +hey i've booked the 2 lessons on sun liao... + +send a logo 2 ur lover - 2 names joined by a heart. txt love name1 name2 mobno eg love adam eve 07123456789 to 87077 yahoo! pobox36504w45wq txtno 4 no ads 150p + +"you might want to pull out more just in case and just plan on not spending it if you can +"love isn't a decision +"thank you +please call our customer service representative on freephone 0808 145 4742 between 9am-11pm as you have won a guaranteed ??1000 cash or ??5000 prize! + +"beautiful truth against gravity.. read carefully: \our heart feels light when someone is in it.. but it feels very heavy when someone leaves it..\"" good night""" + +"latest news! police station toilet stolen +burger king - wanna play footy at a top stadium? get 2 burger king before 1st sept and go large or super with coca-cola and walk out a winner + +u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09065171142-stopsms-08 + +bloomberg -message center +447797706009 why wait? apply for your future http://careers. bloomberg.com + +"u can win ??100 of music gift vouchers every week starting now txt the word draw to 87066 tscs www.idew.com skillgame +i wnt to buy a bmw car urgently..its vry urgent.but hv a shortage of <#> lacs.there is no source to arng dis amt. <#> lacs..thats my prob + +reason is if the team budget is available at last they buy the unsold players for at base rate.. + +you have an important customer service announcement from premier. + +well done england! get the official poly ringtone or colour flag on yer mobile! text tone or flag to 84199 now! opt-out txt eng stop. box39822 w111wx ??1.50 + +congratulations ur awarded 500 of cd vouchers or 125gift guaranteed & free entry 2 100 wkly draw txt music to 87066 tncs www.ldew.com1win150ppmx3age16 + +"orange brings you ringtones from all time chart heroes +please da call me any mistake from my side sorry da. pls da goto doctor. + +hey i am really horny want to chat or see me naked text hot to 69698 text charged at 150pm to unsubscribe text stop 69698 + +ringtone club: gr8 new polys direct to your mobile every week ! + +"how long has it been since you screamed +yup... + +you could have seen me..i did't recognise you face.:) + +"a bit of ur smile is my hppnss +"hi +eatin my lunch... + +free unlimited hardcore porn direct 2 your mobile txt porn to 69200 & get free access for 24 hrs then chrgd per day txt stop 2exit. this msg is free + +ok try to do week end course in coimbatore. + +i don't know u and u don't know me. send chat to 86688 now and let's find each other! only 150p/msg rcvd. hg/suite342/2lands/row/w1j6hl ldn. 18 years or over. + +ur cash-balance is currently 500 pounds - to maximize ur cash-in now send cash to 86688 only 150p/msg. cc: 08718720201 po box 114/14 tcr/w1 + +you have been specially selected to receive a 2000 pound award! call 08712402050 before the lines close. cost 10ppm. 16+. t&cs apply. ag promo + +"i'm gonna be home soon and i don't want to talk about this stuff anymore tonight +"romantic paris. 2 nights +yes. last practice + +you have won a guaranteed ??1000 cash or a ??2000 prize.to claim yr prize call our customer service representative on + +eastenders tv quiz. what flower does dot compare herself to? d= violet e= tulip f= lily txt d e or f to 84025 now 4 chance 2 win ??100 cash wkent/150p16+ + +have you always been saying welp? + +"oh... icic... k lor +maybe if you woke up before fucking 3 this wouldn't be a problem. + +congratulations ur awarded either a yrs supply of cds from virgin records or a mystery gift guaranteed call 09061104283 ts&cs www.smsco.net ??1.50pm approx 3mins + +so i could kiss and feel you next to me... + +do u ever get a song stuck in your head for no reason and it won't go away til u listen to it like 5 times? + +yes.he have good crickiting mind + +"you've won tkts to the euro2004 cup final or ??800 cash +dun b sad.. it's over.. dun thk abt it already. concentrate on ur other papers k. + +todays vodafone numbers ending with 4882 are selected to a receive a ??350 award. if your number matches call 09064019014 to receive your ??350 award. + +free for 1st week! no1 nokia tone 4 ur mob every week just txt nokia to 8007 get txting and tell ur mates www.getzed.co.uk pobox 36504 w45wq norm150p/tone 16+ + +i went to project centre + +freemsg>fav xmas tones!reply real + +hi its jess i dont know if you are at work but call me when u can im at home all eve. xxx + +he dint tell anything. he is angry on me that why you told to abi. + +"you are being contacted by our dating service by someone you know! to find out who it is +from 5 to 2 only my work timing. + +no:-)i got rumour that you going to buy apartment in chennai:-) + +"for ur chance to win a ??250 cash every wk txt: action to 80608. t's&c's www.movietrivia.tv custcare 08712405022 +yeah like if it goes like it did with my friends imma flip my shit in like half an hour + +"had the money issue weigh me down but thanks to you +hard live 121 chat just 60p/min. choose your girl and connect live. call 09094646899 now! cheap chat uk's biggest live service. vu bcm1896wc1n3xx + +hey ! don't forget ... you are mine ... for me ... my possession ... my property ... mmm ... *childish smile* ... + +had your mobile 10 mths? update to latest orange camera/video phones for free. save ??s with free texts/weekend calls. text yes for a callback orno to opt out + +buy space invaders 4 a chance 2 win orig arcade game console. press 0 for games arcade (std wap charge) see o2.co.uk/games 4 terms + settings. no purchase + +ringtone club: gr8 new polys direct to your mobile every week ! + +"urgent!! your 4* costa del sol holiday or ??5000 await collection. call 09050090044 now toclaim. sae +you'll not rcv any more msgs from the chat svc. for free hardcore services text go to: 69988 if u get nothing u must age verify with yr network & try again + +how are you with money...as in to you...money aint a thing....how are you sha! + +you are a winner u have been specially selected 2 receive ??1000 or a 4* holiday (flights inc) speak to a live operator 2 claim 0871277810910p/min (18+) + +no. its not specialisation. can work but its slave labor. will look for it this month sha cos no shakara 4 beggar. + +"congrats! 2 mobile 3g videophones r yours. call 09061744553 now! videochat wid ur mates +you please give us connection today itself before <decimal> or refund the bill + +urgent! we are trying to contact u todays draw shows that you have won a ??800 prize guaranteed. call 09050000460 from land line. claim j89. po box245c2150pm + +thanks and ! or bomb and date as my phone wanted to say! + +"ha ha nan yalrigu heltini..iyo kothi chikku +"this is the 2nd attempt to contract u +correct. so how was work today + +hard live 121 chat just 60p/min. choose your girl and connect live. call 09094646899 now! cheap chat uk's biggest live service. vu bcm1896wc1n3xx + +thanks for the vote. now sing along with the stars with karaoke on your mobile. for a free link just reply with sing now. + +"lets use it next week +you have won a nokia 7250i. this is what you get when you win our free auction. to take part send nokia to 86021 now. hg/suite342/2lands row/w1jhl 16+ + +"funny fact nobody teaches volcanoes 2 erupt +please don't text me anymore. i have nothing else to say. + +"thanx 4 the time we??ve spent 2geva +check out choose your babe videos @ sms.shsex.netun fgkslpopw fgkslpo + +had your mobile 10 mths? update to latest orange camera/video phones for free. save ??s with free texts/weekend calls. text yes for a callback orno to opt out + +oh... lk tt den we take e one tt ends at cine lor... dun wan yogasana oso can... + +"guy +i just really need shit before tomorrow and i know you won't be awake before like 6 + +free msg: single? find a partner in your area! 1000s of real people are waiting to chat now!send chat to 62220cncl send stopcs 08717890890??1.50 per msg + +haf u found him? i feel so stupid da v cam was working. + +freemsg: fancy a flirt? reply date now & join the uks fastest growing mobile dating service. msgs rcvd just 25p to optout txt stop to 83021. reply date now! + +are you this much buzy + +you have won a nokia 7250i. this is what you get when you win our free auction. to take part send nokia to 86021 now. hg/suite342/2lands row/w1jhl 16+ + +tell me again what your address is + +you have 1 new message. please call 08718738034. + +74355 xmas iscoming & ur awarded either ??500 cd gift vouchers & free entry 2 r ??100 weekly draw txt music to 87066 tnc + +"yeah +"as i entered my cabin my pa said +"hey boys. want hot xxx pics sent direct 2 ur phone? txt porn to 69855 +"tick +sms auction you have won a nokia 7250i. this is what you get when you win our free auction. to take part send nokia to 86021 now. hg/suite342/2lands row/w1jhl 16+ + +"i'm an actor. when i work +hmm. shall i bring a bottle of wine to keep us amused? just joking! i'll still bring a bottle. red or white? see you tomorrow + +i remain unconvinced that this isn't an elaborate test of my willpower + +can do lor... + +"urgent! your mobile no 07xxxxxxxxx won a ??2 +free for 1st week! no1 nokia tone 4 ur mob every week just txt nokia to 8007 get txting and tell ur mates www.getzed.co.uk pobox 36504 w45wq norm150p/tone 16+ + +"six chances to win cash! from 100 to 20 +santa calling! would your little ones like a call from santa xmas eve? call 09077818151 to book you time. calls1.50ppm last 3mins 30s t&c www.santacalling.com + +i dunno until when... lets go learn pilates... + +"urgent +wat r u doing? + +"faith makes things possible +u are subscribed to the best mobile content service in the uk for ??3 per 10 days until you send stop to 82324. helpline 08706091795 + +"sorry light turned green +hmv bonus special 500 pounds of genuine hmv vouchers to be won. just answer 4 easy questions. play now! send hmv to 86688 more info:www.100percent-real.com + +new textbuddy chat 2 horny guys in ur area 4 just 25p free 2 receive search postcode or at gaytextbuddy.com. txt one name to 89693 + +"you 07801543489 are guaranteed the latests nokia phone +old orchard near univ. how about you? + +splashmobile: choose from 1000s of gr8 tones each wk! this is a subscrition service with weekly tones costing 300p. u have one credit - kick back and enjoy + +i hope you that's the result of being consistently intelligent and kind. start asking him about practicum links and keep your ears open and all the best. ttyl + +last chance 2 claim ur ??150 worth of discount vouchers-text yes to 85023 now!savamob-member offers mobile t cs 08717898035. ??3.00 sub. 16 . remove txt x or stop + +keep yourself safe for me because i need you and i miss you already and i envy everyone that see's you in real life + +-pls stop bootydelious (32/f) is inviting you to be her friend. reply yes-434 or no-434 see her: www.sms.ac/u/bootydelious stop? send stop frnd to 62468 + +i've been searching for the right words to thank you for this breather. i promise i wont take your help for granted and will fulfil my promise. you have been wonderful and a blessing at all times. + +oh ok.. wat's ur email? + +"aight no rush +customer service annoncement. you have a new years delivery waiting for you. please call 07046744435 now to arrange delivery + +"yun ah.the ubi one say if ?_ wan call by tomorrow.call 67441233 look for irene.ere only got bus8 +"do you know why god created gap between your fingers..? so that +valentines day special! win over ??1000 in our quiz and take your partner on the trip of a lifetime! send go to 83600 now. 150p/msg rcvd. custcare:08718720201. + +did u got that persons story + +you are a winner you have been specially selected to receive ??1000 cash or a ??2000 award. speak to a live operator to claim call 087123002209am-7pm. cost 10p + +we tried to call you re your reply to our sms for a video mobile 750 mins unlimited text free camcorder reply or call now 08000930705 del thurs + +oh k:)after that placement there ah? + +"all the lastest from stereophonics +poor girl can't go one day lmao + +you have an important customer service announcement. call freephone 0800 542 0825 now! + +"friendship is not a game to play +"do you realize that in about 40 years +there the size of elephant tablets & u shove um up ur ass!! + +"today's offer! claim ur ??150 worth of discount vouchers! text yes to 85023 now! savamob +so what did the bank say about the money? + +ding me on ya break fassyole! blacko from londn + +"free entry to the gr8prizes wkly comp 4 a chance to win the latest nokia 8800 +haha... dont be angry with yourself... take it as a practice for the real thing. =) + +private! your 2003 account statement for 07815296484 shows 800 un-redeemed s.i.m. points. call 08718738001 identifier code 41782 expires 18/11/04 + +ur cash-balance is currently 500 pounds - to maximize ur cash-in now send go to 86688 only 150p/msg. cc 08718720201 hg/suite342/2lands row/w1j6hl + +call 09095350301 and send our girls into erotic ecstacy. just 60p/min. to stop texts call 08712460324 (nat rate) + +goldviking (29/m) is inviting you to be his friend. reply yes-762 or no-762 see him: www.sms.ac/u/goldviking stop? send stop frnd to 62468 + +urgent! we are trying to contact u. todays draw shows that you have won a ??800 prize guaranteed. call 09050003091 from land line. claim c52. valid 12hrs only + +loans for any purpose even if you have bad credit! tenants welcome. call noworriesloans.com on 08717111821 + +<#> great loxahatchee xmas tree burning update: you can totally see stars here + +ok.. + +"hello darling how are you today? i would love to have a chat +you are a winner u have been specially selected 2 receive ??1000 cash or a 4* holiday (flights inc) speak to a live operator 2 claim 0871277810810 + +"night night +free tones hope you enjoyed your new content. text stop to 61610 to unsubscribe. help:08712400602450p provided by tones2you.co.uk + +hi baby im sat on the bloody bus at the mo and i wont be home until about 7:30 wanna do somethin later? call me later ortxt back jess xx + +free entry in 2 a weekly comp for a chance to win an ipod. txt pod to 80182 to get entry (std txt rate) t&c's apply 08452810073 for details 18+ + +* free* polyphonic ringtone text super to 87131 to get your free poly tone of the week now! 16 sn pobox202 nr31 7zs subscription 450pw + +?? predict wat time ?_'ll finish buying? + +wow! the boys r back. take that 2007 uk tour. win vip tickets & pre-book with vip club. txt club to 81303. trackmarque ltd info. + +"new mobiles from 2004 +dad says hurry the hell up + +free for 1st week! no1 nokia tone 4 ur mob every week just txt nokia to 8007 get txting and tell ur mates www.getzed.co.uk pobox 36504 w45wq norm150p/tone 16+ + +i'm reaching home in 5 min. + +are you angry with me. what happen dear + +hope you enjoyed your new content. text stop to 61610 to unsubscribe. help:08712400602450p provided by tones2you.co.uk + +"aight +are there ta jobs available? let me know please cos i really need to start working + +08714712388 between 10am-7pm cost 10p + +wow didn't think it was that common. i take it all back ur not a freak! unless u chop it off:-) + +"urgent! your mobile number *************** won a ??2000 bonus caller prize on 10/06/03! this is the 2nd attempt to reach you! call 09066368753 asap! box 97n7qp +"only just got this message +reminder: you have not downloaded the content you have already paid for. goto http://doit. mymoby. tv/ to collect your content. + +"u've been selected to stay in 1 of 250 top british hotels - for nothing! holiday valued at ??350! dial 08712300220 to claim - national rate call. bx526 +its a great day. do have yourself a beautiful one. + +no..jst change tat only.. + +"loan for any purpose ??500 - ??75 +"your free ringtone is waiting to be collected. simply text the password \mix\"" to 85069 to verify. get usher and britney. fml mk17 92h. 450ppw 16""" + +haha... hope ?_ can hear the receipt sound... gd luck! + +"no i'm not. i can't give you everything you want and need. you actually could do better for yourself on yor own--you've got more money than i do. i can't get work +sen told that he is going to join his uncle finance in cbe + +you didnt complete your gist oh. + +have got * few things to do. may be in * pub later. + +call me when u're done... + +urgent we are trying to contact you last weekends draw shows u have won a ??1000 prize guaranteed call 09064017295 claim code k52 valid 12hrs 150p pm + +may b approve panalam...but it should have more posts.. + +"for ur chance to win a ??250 cash every wk txt: action to 80608. t's&c's www.movietrivia.tv custcare 08712405022 +yes when is the appt again? + +"urgent! your mobile number *************** won a ??2000 bonus caller prize on 10/06/03! this is the 2nd attempt to reach you! call 09066368753 asap! box 97n7qp +85233 free>ringtone!reply real + +cthen i thk shd b enuff.. still got conclusion n contents pg n references.. i'll b doing da contents pg n cover pg.. + +"hot live fantasies call now 08707509020 just 20p per min ntt ltd +85233 free>ringtone!reply real + +we tried to contact you re your reply to our offer of 750 mins 150 textand a new video phone call 08002988890 now or reply for free delivery tomorrow + +you are a winner you have been specially selected to receive ??1000 cash or a ??2000 award. speak to a live operator to claim call 087123002209am-7pm. cost 10p + +"sms. ac blind date 4u!: rodds1 is 21/m from aberdeen +i thought we were doing a king of the hill thing there. + +"someone u know has asked our dating service 2 contact you! cant guess who? call 09058095107 now all will be revealed. pobox 7 +i'm really sorry i won't b able 2 do this friday.hope u can find an alternative.hope yr term's going ok:-) + +how are you doing. how's the queen. are you going for the royal wedding + +someone has contacted our dating service and entered your phone because they fancy you! to find out who it is call from a landline 09111032124 . pobox12n146tf150p + +sleeping nt feeling well + +win urgent! your mobile number has been awarded with a ??2000 prize guaranteed call 09061790121 from land line. claim 3030 valid 12hrs only 150ppm + +here is your discount code rp176781. to stop further messages reply stop. www.regalportfolio.co.uk. customer services 08717205546 + +"themob> check out our newest selection of content +"sorry brah +ryder unsold.now gibbs. + +weightloss! no more girl friends. make loads of money on ebay or something. and give thanks to god. + +"wat time liao +"good afternoon +"urgent -call 09066649731from landline. your complimentary 4* ibiza holiday or ??10 +i anything lor... + +"hi +"good good +not to worry. i'm sure you'll get it. + +"neither [in sterm voice] - i'm studying. all fine with me! not sure the thing will be resolved +"you 07801543489 are guaranteed the latests nokia phone +ya had just now.onion roast. + +been up to ne thing interesting. did you have a good birthday? when are u wrking nxt? i started uni today. + +for sale - arsenal dartboard. good condition but no doubles or trebles! + +ur balance is now ??500. ur next question is: who sang 'uptown girl' in the 80's ? 2 answer txt ur answer to 83600. good luck! + +congrats! nokia 3650 video camera phone is your call 09066382422 calls cost 150ppm ave call 3mins vary from mobiles 16+ close 300603 post bcm4284 ldn wc1n3xx + +v skint too but fancied few bevies.waz gona go meet &othrs in spoon but jst bin watchng planet earth&sofa is v comfey; if i dont make it hav gd night + +fancy a shag? i do.interested? sextextuk.com txt xxuk suzy to 69876. txts cost 1.50 per msg. tncs on website. x + +i will see in half an hour + +maybe?! say hi to and find out if got his card. great escape or wetherspoons? + +free for 1st week! no1 nokia tone 4 ur mobile every week just txt nokia to 8077 get txting and tell ur mates. www.getzed.co.uk pobox 36504 w45wq 16+ norm150p/tone + +raji..pls do me a favour. pls convey my birthday wishes to nimya. pls. today is her birthday. + +do you want a new video handset? 750 any time any network mins? unlimited text? camcorder? reply or call now 08000930705 for del sat am + +"freemsg hey u +ok lor... or u wan me go look 4 u? + +ay wana meet on sat??_ wkg on sat? + +"free game. get rayman golf 4 free from the o2 games arcade. 1st get ur games settings. reply post +i'm stuck in da middle of da row on da right hand side of da lt... + +you intrepid duo you! have a great time and see you both soon. + +goldviking (29/m) is inviting you to be his friend. reply yes-762 or no-762 see him: www.sms.ac/u/goldviking stop? send stop frnd to 62468 + +"free msg: get gnarls barkleys \crazy\"" ringtone totally free just reply go to this message right now!""" + +"urgent ur awarded a complimentary trip to eurodisinc trav +lol i know! they're so dramatic. schools already closed for tomorrow. apparently we can't drive in the inch of snow were supposed to get. + +so li hai... me bored now da lecturer repeating last weeks stuff waste time... + +ball is moving a lot.will spin in last :)so very difficult to bat:) + +"congrats! 2 mobile 3g videophones r yours. call 09063458130 now! videochat wid your mates +"hi +new textbuddy chat 2 horny guys in ur area 4 just 25p free 2 receive search postcode or at gaytextbuddy.com. txt one name to 89693 + +from next month get upto 50% more calls 4 ur standard network charge 2 activate call 9061100010 c wire3.net 1st4terms pobox84 m26 3uz cost ??1.50 min mobcudb more + +"congrats! 2 mobile 3g videophones r yours. call 09061744553 now! videochat wid ur mates +k.:)you are the only girl waiting in reception ah? + +"well +geeeee ... i love you so much i can barely stand it + +yes da. any plm at ur office + +quite ok but a bit ex... u better go eat smth now else i'll feel guilty... + +urgent! your mobile number has been awarded a 2000 prize guaranteed. call 09061790125 from landline. claim 3030. valid 12hrs only 150ppm + ++449071512431 urgent! this is the 2nd attempt to contact u!u have won ??1250 call 09071512433 b4 050703 t&csbcm4235wc1n3xx. callcost 150ppm mobilesvary. max??7. 50 + +don't b floppy... b snappy & happy! only gay chat service with photo upload call 08718730666 (10p/min). 2 stop our texts call 08712460324 + +it is a good thing i'm now getting the connection to bw + +when you guys planning on coming over? + +i cant talk to you now.i will call when i can.dont keep calling. + +you have got tallent but you are wasting. + +"loan for any purpose ??500 - ??75 +so is th gower mate which is where i am!?! how r u man? all is good in wales ill b back ??morrow. c u this wk? who was the msg 4? ?? random! + +2/2 146tf150p + +okmail: dear dave this is your final notice to collect your 4* tenerife holiday or #5000 cash award! call 09061743806 from landline. tcs sae box326 cw25wx 150ppm + +"auction round 4. the highest bid is now ??54. next maximum bid is ??71. to bid +"5 free top polyphonic tones call 087018728737 +lol yes. but it will add some spice to your day. + +"urgent!! your 4* costa del sol holiday or ??5000 await collection. call 09050090044 now toclaim. sae +senthil group company apnt 5pm. + +please call amanda with regard to renewing or upgrading your current t-mobile handset free of charge. offer ends today. tel 0845 021 3680 subject to t's and c's + +no. 1 nokia tone 4 ur mob every week! just txt nok to 87021. 1st tone free ! so get txtin now and tell ur friends. 150p/tone. 16 reply hl 4info + +u???ve bin awarded ??50 to play 4 instant cash. call 08715203028 to claim. every 9th player wins min ??50-??500. optout 08718727870 + +camera - you are awarded a sipix digital camera! call 09061221066 fromm landline. delivery within 28 days. + +will you come online today night + +"sorry sir +panasonic & bluetoothhdset free. nokia free. motorola free & doublemins & doubletxt on orange contract. call mobileupd8 on 08000839402 or call 2optout + +u???ve bin awarded ??50 to play 4 instant cash. call 08715203028 to claim. every 9th player wins min ??50-??500. optout 08718727870 + +"this weeks savamob member offers are now accessible. just call 08709501522 for details! savamob +"\aww you must be nearly dead!well jez iscoming over todo some workand that whilltake forever!\""""" + +spending new years with my brother and his family. lets plan to meet next week. are you ready to be spoiled? :) + +"nimbomsons. yep phone knows that one. obviously +somebody should go to andros and steal ice + +sorry i'm not free... + +i don't know u and u don't know me. send chat to 86688 now and let's find each other! only 150p/msg rcvd. hg/suite342/2lands/row/w1j6hl ldn. 18 years or over. + +private! your 2003 account statement for shows 800 un-redeemed s. i. m. points. call 08718738002 identifier code: 48922 expires 21/11/04 + +"you have been selected to stay in 1 of 250 top british hotels - for nothing! holiday worth ??350! to claim +urgent! your mobile number has been awarded with a ??2000 bonus caller prize. call 09058095201 from land line. valid 12hrs only + +thanks for your subscription to ringtone uk your mobile will be charged ??5/month please confirm by replying yes or no. if you reply no you will not be charged + +"so many people seems to be special at first sight +hi mate its rv did u hav a nice hol just a message 3 say hello coz haven??t sent u 1 in ages started driving so stay off roads!rvx + +k..give back my thanks. + +"eerie nokia tones 4u +please call 08712402578 immediately as there is an urgent message waiting for you + +at bruce b downs & fletcher now + +she ran off with a younger man. we will make pretty babies together :) + +free entry in 2 a weekly comp for a chance to win an ipod. txt pod to 80182 to get entry (std txt rate) t&c's apply 08452810073 for details 18+ + +lol please do. actually send a pic of yourself right now. i wanna see. pose with a comb and hair dryer or something. + +i'm doing da intro covers energy trends n pros n cons... brief description of nuclear fusion n oso brief history of iter n jet got abt 7 n half pages.. + +no b4 thursday + +todays voda numbers ending with 7634 are selected to receive a ??350 reward. if you have a match please call 08712300220 quoting claim code 7684 standard rates apply. + +urgent! please call 09061743811 from landline. your abta complimentary 4* tenerife holiday or ??5000 cash await collection sae t&cs box 326 cw25wx 150ppm + +nope. meanwhile she talk say make i greet you. + +"you are being contacted by our dating service by someone you know! to find out who it is +"upgrdcentre orange customer +omg you can make a wedding chapel in frontierville? why do they get all the good stuff? + +"as a valued customer +thanks for your subscription to ringtone uk your mobile will be charged ??5/month please confirm by replying yes or no. if you reply no you will not be charged + +you have won a guaranteed ??1000 cash or a ??2000 prize. to claim yr prize call our customer service representative on 08714712379 between 10am-7pm cost 10p + +okie + +i'm home. doc gave me pain meds says everything is fine. + +"derp. which is worse +noooooooo please. last thing i need is stress. for once in your life be fair. + +85233 free>ringtone!reply real + +no one interested. may be some business plan. + +camera - you are awarded a sipix digital camera! call 09061221066 fromm landline. delivery within 28 days. + +not getting anywhere with this damn job hunting over here! + +good luck! draw takes place 28th feb 06. good luck! for removal send stop to 87239 customer services 08708034412 + +reply to win ??100 weekly! where will the 2006 fifa world cup be held? send stop to 87239 to end service + +want a new video phone? 750 anytime any network mins? half price line rental free text for 3 months? reply or call 08000930705 for free delivery + +my battery is low babe + +boy you best get yo ass out here quick + +"k so am i +"its good +22 days to kick off! for euro2004 u will be kept up to date with the latest news and results daily. to be removed send get txt stop to 83222 + +t-mobile customer you may now claim your free camera phone upgrade & a pay & go sim card for your loyalty. call on 0845 021 3680.offer ends 28thfeb.t&c's apply + +ok anyway no need to change with what you said + +private! your 2004 account statement for 07742676969 shows 786 unredeemed bonus points. to claim call 08719180248 identifier code: 45239 expires + +"call 09094100151 to use ur mins! calls cast 10p/min (mob vary). service provided by aom +no dear i do have free messages without any recharge. hi hi hi + +you have won! as a valued vodafone customer our computer has picked you to win a ??150 prize. to collect is easy. just call 09061743386 + +freemsg:feelin kinda lnly hope u like 2 keep me company! jst got a cam moby wanna c my pic?txt or reply date to 82242 msg150p 2rcv hlp 08712317606 stop to 82242 + +"hack chat. get backdoor entry into 121 chat rooms at a fraction of the cost. reply neo69 or call 09050280520 +"loan for any purpose ??500 - ??75 +aight sorry i take ten years to shower. what's the plan? + +urgent! we are trying to contact u. todays draw shows that you have won a ??800 prize guaranteed. call 09050001808 from land line. claim m95. valid12hrs only + +i'm at work. please call + +congratulations ur awarded either ??500 of cd gift vouchers & free entry 2 our ??100 weekly draw txt music to 87066 tncs www.ldew.com1win150ppmx3age16 + +"good evening sir +"dear matthew please call 09063440451 from a landline +ultimately tor motive tui achieve korli. + +do you want a new nokia 3510i colour phone delivered tomorrow? with 200 free minutes to any mobile + 100 free text + free camcorder reply or call 08000930705 + +"u can win ??100 of music gift vouchers every week starting now txt the word draw to 87066 tscs www.ldew.com skillgame +boltblue tones for 150p reply poly# or mono# eg poly3 1. cha cha slide 2. yeah 3. slow jamz 6. toxic 8. come with me or stop 4 more tones txt more + +your b4u voucher w/c 27/03 is marsms. log onto www.b4utele.com for discount credit. to opt out reply stop. customer care call 08717168528 + +"loan for any purpose ??500 - ??75 +u reach orchard already? u wan 2 go buy tickets first? + +ok i'm waliking ard now... do u wan me 2 buy anything go ur house? + +"twinks +knock knock txt whose there to 80082 to enter r weekly draw 4 a ??250 gift voucher 4 a store of yr choice. t&cs www.tkls.com age16 to stoptxtstop??1.50/week + +sms auction - a brand new nokia 7250 is up 4 auction today! auction is free 2 join & take part! txt nokia to 86021 now! + +private! your 2003 account statement for 07973788240 shows 800 un-redeemed s. i. m. points. call 08715203649 identifier code: 40533 expires 31/10/04 + +private! your 2003 account statement for 078 + +k i'll be there before 4. + +is it ok if i stay the night here? xavier has a sleeping bag and i'm getting tired + +"hot live fantasies call now 08707509020 just 20p per min ntt ltd +"so check your errors and if you had difficulties +"yetunde +* you gonna ring this weekend or wot? + +this pain couldn't have come at a worse time. + +"six chances to win cash! from 100 to 20 +mm umma ask vava also to come tell him can play later together + +"swhrt how u dey +you are a winner you have been specially selected to receive ??1000 cash or a ??2000 award. speak to a live operator to claim call 087123002209am-7pm. cost 10p + +want 2 get laid tonight? want real dogging locations sent direct 2 ur mob? join the uk's largest dogging network by txting moan to 69888nyt. ec2a. 31p.msg + +they released another italian one today and it has a cosign option + +i thk ?_ gotta go home by urself. cos i'll b going out shopping 4 my frens present. + +someone u know has asked our dating service 2 contact you! cant guess who? call 09058091854 now all will be revealed. po box385 m6 6wu + +mmm so yummy babe ... nice jolt to the suzy + +"u can win ??100 of music gift vouchers every week starting now txt the word draw to 87066 tscs www.idew.com skillgame +"sorry +update your face book status frequently :) + +every day i use to sleep after <#> so only. + +"had your contract mobile 11 mnths? latest motorola +sunshine quiz! win a super sony dvd recorder if you canname the capital of australia? text mquiz to 82277. b + +oh k. . i will come tomorrow + +i'm thinking that chennai forgot to come for auction.. + +dorothy.com (bank of granite issues strong-buy) explosive pick for our members *****up over 300% *********** nasdaq symbol cdgt that is a $5.00 per.. + +"your free ringtone is waiting to be collected. simply text the password \mix\"" to 85069 to verify. get usher and britney. fml mk17 92h. 450ppw 16""" + +"goal! arsenal 4 (henry +u have a secret admirer. reveal who thinks u r so special. call 09065174042. to opt out reply reveal stop. 1.50 per msg recd. cust care 07821230901 + +"loan for any purpose ??500 - ??75 +"spook up your mob with a halloween collection of a logo & pic message plus a free eerie tone +"i didnt get ur full msg..sometext is missing +sunshine quiz wkly q! win a top sony dvd player if u know which country liverpool played in mid week? txt ansr to 82277. ??1.50 sp:tyrone + +"im sorry bout last nite it wasn??t ur fault it was me +what time you think you'll have it? need to know when i should be near campus + +great escape. i fancy the bridge but needs her lager. see you tomo + +"your chance to be on a reality fantasy show call now = 08707509020 just 20p per min ntt ltd +alex knows a guy who sells mids but he's down in south tampa and i don't think i could set it up before like 8 + +freemsg>fav xmas tones!reply real + +"5 free top polyphonic tones call 087018728737 +send a logo 2 ur lover - 2 names joined by a heart. txt love name1 name2 mobno eg love adam eve 07123456789 to 87077 yahoo! pobox36504w45wq txtno 4 no ads 150p. + +free entry in 2 a wkly comp to win fa cup final tkts 21st may 2005. text fa to 87121 to receive entry question(std txt rate)t&c's apply 08452810075over18's + +the current leading bid is 151. to pause this auction send out. customer care: 08718726270 + +as a registered optin subscriber ur draw 4 ??100 gift voucher will be entered on receipt of a correct ans to 80062 whats no1 in the bbc charts + +block breaker now comes in deluxe format with new features and great graphics from t-mobile. buy for just ??5 by replying get bbdeluxe and take the challenge + +new textbuddy chat 2 horny guys in ur area 4 just 25p free 2 receive search postcode or at gaytextbuddy.com. txt one name to 89693. 08715500022 rpl stop 2 cnl + +can u get 2 phone now? i wanna chat 2 set up meet call me now on 09096102316 u can cum here 2moro luv jane xx calls??1/minmoremobsemspobox45po139wa + +ree entry in 2 a weekly comp for a chance to win an ipod. txt pod to 80182 to get entry (std txt rate) t&c's apply 08452810073 for details 18+ + +-pls stop bootydelious (32/f) is inviting you to be her friend. reply yes-434 or no-434 see her: www.sms.ac/u/bootydelious stop? send stop frnd to 62468 + +ok + +call me when u finish then i come n pick u. + +what i mean is do they come chase you out when its over or is it stated you can watch as many movies as you want. + +"no shit +you won't believe it but it's true. it's incredible txts! reply g now to learn truly amazing things that will blow your mind. from o2fwd only 18p/txt + +free msg: single? find a partner in your area! 1000s of real people are waiting to chat now!send chat to 62220cncl send stopcs 08717890890??1.50 per msg + +thanks 4 your continued support your question this week will enter u in2 our draw 4 ??100 cash. name the new us president? txt ans to 80082 + +themob>yo yo yo-here comes a new selection of hot downloads for our members to get for free! just click & open the next link sent to ur fone... + +hurt me... tease me... make me cry... but in the end of my life when i die plz keep one rose on my grave and say stupid i miss u.. have a nice day bslvyl + +dorothy.com (bank of granite issues strong-buy) explosive pick for our members *****up over 300% *********** nasdaq symbol cdgt that is a $5.00 per.. + +natalja (25/f) is inviting you to be her friend. reply yes-440 or no-440 see her: www.sms.ac/u/nat27081980 stop? send stop frnd to 62468 + +how do you guys go to see movies on your side. + +you are a winner u have been specially selected 2 receive ??1000 or a 4* holiday (flights inc) speak to a live operator 2 claim 0871277810910p/min (18+) + +freemsg: txt: call to no: 86888 & claim your reward of 3 hours talk time to use from your phone now! subscribe6gbp/mnth inc 3hrs 16 stop?txtstop + +filthy stories and girls waiting for your + +urgent! your mobile number has been awarded with a ??2000 prize guaranteed. call 09061790126 from land line. claim 3030. valid 12hrs only 150ppm + +"sppok up ur mob with a halloween collection of nokia logo&pic message plus a free eerie tone +xclusive 2morow 28/5 soiree speciale zouk with nichols from paris.free roses 2 all ladies !!! info: 07946746291/07880867867 + +4mths half price orange line rental & latest camera phones 4 free. had your phone 11mths+? call mobilesdirect free on 08000938767 to update now! or2stoptxt t&cs + +u can call me now... + +u have a secret admirer. reveal who thinks u r so special. call 09065174042. to opt out reply reveal stop. 1.50 per msg recd. cust care 07821230901 + +"urgent. important information for 02 user. today is your lucky day! 2 find out why +"did you hear about the new \divorce barbie\""? it comes with all of ken's stuff!""" + +u sure u can't take any sick time? + +"you can stop further club tones by replying \stop mix\"" see my-tone.com/enjoy. html for terms. club tones cost gbp4.50/week. mfl" + +"you've won tkts to the euro2004 cup final or ??800 cash +i dun believe u. i thk u told him. + +"hey babe! i saw you came online for a second and then you disappeared +8007 free for 1st week! no1 nokia tone 4 ur mob every week just txt nokia to 8007 get txting and tell ur mates www.getzed.co.uk pobox 36504 w4 5wq norm 150p/tone 16+ + +do you want a new video handset? 750 anytime any network mins? half price line rental? camcorder? reply or call 08000930705 for delivery tomorrow + +valentines day special! win over ??1000 in our quiz and take your partner on the trip of a lifetime! send go to 83600 now. 150p/msg rcvd. custcare:08718720201 + +you are chosen to receive a ??350 award! pls call claim number 09066364311 to collect your award which you are selected to receive as a valued mobile customer. + +so wat's da decision? + +"there'll be a minor shindig at my place later tonight +get ur 1st ringtone free now! reply to this msg with tone. gr8 top 20 tones to your phone every week just ??1.50 per wk 2 opt out send stop 08452810071 16 + +oh k k:)but he is not a big hitter.anyway good + +dear are you angry i was busy dear + +ur cash-balance is currently 500 pounds - to maximize ur cash-in now send go to 86688 only 150p/meg. cc: 08718720201 hg/suite342/2lands row/w1j6hl + +"sms services. for your inclusive text credits +lord of the rings:return of the king in store now!reply lotr by 2 june 4 chance 2 win lotr soundtrack cds stdtxtrate. reply stop to end txts + +where did u go? my phone is gonna die you have to stay in here + +you have 1 new message. please call 08718738034. + +you getting back any time soon? + +u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094599 + +todays voda numbers ending 1225 are selected to receive a ??50award. if you have a match please call 08712300220 quoting claim code 3100 standard rates app + +finished class where are you. + +o ic lol. should play 9 doors sometime yo + +free>ringtone! reply real or poly eg real1 1. pushbutton 2. dontcha 3. babygoodbye 4. golddigger 5. webeburnin 1st tone free and 6 more when u join for ??3/wk + +i'm meeting darren... + +"you've won tkts to the euro2004 cup final or ??800 cash +"thanks for your ringtone order +please call 08712404000 immediately as there is an urgent message waiting for you. + +s:)8 min to go for lunch:) + +"3 free tarot texts! find out about your love life now! try 3 for free! text chance to 85555 16 only! after 3 free +dear voucher holder 2 claim your 1st class airport lounge passes when using your holiday voucher call 08704439680. when booking quote 1st class x 2 + +you have won! as a valued vodafone customer our computer has picked you to win a ??150 prize. to collect is easy. just call 09061743386 + +i thk 530 lor. but dunno can get tickets a not. wat u doing now? + +congratulations ur awarded either ??500 of cd gift vouchers & free entry 2 our ??100 weekly draw txt music to 87066 tncs www.ldew.com 1 win150ppmx3age16 + +cud u tell ppl im gona b a bit l8 cos 2 buses hav gon past cos they were full & im still waitin 4 1. pete x + +freemsg hi baby wow just got a new cam moby. wanna c a hot pic? or fancy a chat?im w8in 4utxt / rply chat to 82242 hlp 08712317606 msg150p 2rcv + +k then 2marrow are you coming to class. + +"auction round 4. the highest bid is now ??54. next maximum bid is ??71. to bid +what's up my own oga. left my phone at home and just saw ur messages. hope you are good. have a great weekend. + +is ur lecture over? + +yes watching footie but worried we're going to blow it - phil neville? + +want the latest video handset? 750 anytime any network mins? half price line rental? reply or call 08000930705 for delivery tomorrow + +ur awarded a city break and could win a ??200 summer shopping spree every wk. txt store to 88039 . skilgme. tscs087147403231winawk!age16 ??1.50perwksub + +hey sexy buns! what of that day? no word from you this morning on ym ... :-( ... i think of you + +dear 0776xxxxxxx u've been invited to xchat. this is our final attempt to contact u! txt chat to 86688 150p/msgrcvdhg/suite342/2lands/row/w1j6hl ldn 18yrs + +well. balls. time to make calls + +hey you gave them your photo when you registered for driving ah? tmr wanna meet at yck? + +ok pa. nothing problem:-) + +urgent! we are trying to contact u. todays draw shows that you have won a ??800 prize guaranteed. call 09050001295 from land line. claim a21. valid 12hrs only + +want 2 get laid tonight? want real dogging locations sent direct 2 ur mob? join the uk's largest dogging network by txting moan to 69888nyt. ec2a. 31p.msg + +anytime lor... + +"3 free tarot texts! find out about your love life now! try 3 for free! text chance to 85555 16 only! after 3 free +"thanks +yes but can we meet in town cos will go to gep and then home. you could text at bus stop. and don't worry we'll have finished by march ??_ ish! + +want 2 get laid tonight? want real dogging locations sent direct 2 ur mob? join the uk's largest dogging network bt txting gravel to 69888! nt. ec2a. 31p.msg + +"this is one of the days you have a billion classes +romcapspam everyone around should be responding well to your presence since you are so warm and outgoing. you are bringing in a real breath of sunshine. + +dear voucher holder have your next meal on us. use the following link on your pc 2 enjoy a 2 4 1 dining experiencehttp://www.vouch4me.com/etlp/dining.asp + +congratulations ur awarded either a yrs supply of cds from virgin records or a mystery gift guaranteed call 09061104283 ts&cs www.smsco.net ??1.50pm approx 3mins + +"if you can make it any time tonight or whenever you can it's cool +am new 2 club & dont fink we met yet will b gr8 2 c u please leave msg 2day wiv ur area 09099726553 reply promised carlie x calls??1/minmobsmore lkpobox177hp51fl + +great new offer - double mins & double txt on best orange tariffs and get latest camera phones 4 free! call mobileupd8 free on 08000839402 now! or 2stoptxt t&cs + +but you were together so you should be thinkin about him + +dating:i have had two of these. only started after i sent a text to talk sport radio last week. any connection do you think or coincidence? + +"k +pls pls find out from aunt nike. + +splashmobile: choose from 1000s of gr8 tones each wk! this is a subscrition service with weekly tones costing 300p. u have one credit - kick back and enjoy + +also andros ice etc etc + +reply to win ??100 weekly! where will the 2006 fifa world cup be held? send stop to 87239 to end service + +"nah it's straight +100 dating service cal;l 09064012103 box334sk38ch + +"urgent. important information for 02 user. today is your lucky day! 2 find out why +dear reached railway. what happen to you + +in which place do you want da. + +hi princess! thank you for the pics. you are very pretty. how are you? + +we have pizza if u want + +package all your programs well + +"yes but i dont care! i need you bad +wot u up 2 u weirdo? + +dorothy.com (bank of granite issues strong-buy) explosive pick for our members *****up over 300% *********** nasdaq symbol cdgt that is a $5.00 per.. + +oic cos me n my sis got no lunch today my dad went out... so dunno whether 2 eat in sch or wat... + +i wud never mind if u dont miss me or if u dont need me.. but u wil really hurt me wen u need me & u dont tell me......... take care:-) + +free msg:we billed your mobile number by mistake from shortcode 83332.please call 08081263000 to have charges refunded.this call will be free from a bt landline + +"thanks for your ringtone order +you have 1 new message. call 0207-083-6089 + +cool. do you like swimming? i have a pool and jacuzzi at my house. + +are you the cutest girl in the world or what + +thank you. do you generally date the brothas? + +s'fine. anytime. all the best with it. + +"to review and keep the fantastic nokia n-gage game deck with club nokia +"for your chance to win a free bluetooth headset then simply reply back with \adp\""""" + +sunshine quiz wkly q! win a top sony dvd player if u know which country the algarve is in? txt ansr to 82277. ??1.50 sp:tyrone + +"you are guaranteed the latest nokia phone +free msg: ringtone!from: http://tms. widelive.com/index. wml?id=1b6a5ecef91ff9*37819&first=true18:0430-jul-05 + +what do u want for xmas? how about 100 free text messages & a new video phone with half price line rental? call free now on 0800 0721072 to find out more! + +urgent! we are trying to contact u. todays draw shows that you have won a ??800 prize guaranteed. call 09050001808 from land line. claim m95. valid12hrs only + +"hey boys. want hot xxx pics sent direct 2 ur phone? txt porn to 69855 +ya just telling abt tht incident.. + +"gr8 poly tones 4 all mobs direct 2u rply with poly title to 8007 eg poly breathe1 titles: crazyin +"download as many ringtones as u like no restrictions +"reminder from o2: to get 2.50 pounds free call credit and details of great offers pls reply 2 this text with your valid name +"as a sim subscriber +"\ah poor baby!hope urfeeling bettersn luv! probthat overdose of work hey go careful spk 2 u sn lots of lovejen xxx.\""""" + +santa calling! would your little ones like a call from santa xmas eve? call 09077818151 to book you time. calls1.50ppm last 3mins 30s t&c www.santacalling.com + +"wow ... i love you sooo much +free entry into our ??250 weekly comp just send the word win to 80086 now. 18 t&c www.txttowin.co.uk + +1000's of girls many local 2 u who r virgins 2 this & r ready 2 4fil ur every sexual need. can u 4fil theirs? text cute to 69911(??1.50p. m) + +"not yet chikku..going to room nw +"right on brah +"u r subscribed 2 textcomp 250 wkly comp. 1st wk?s free question follows +"urgent ur awarded a complimentary trip to eurodisinc trav +"your chance to be on a reality fantasy show call now = 08707509020 just 20p per min ntt ltd +monthly password for wap. mobsi.com is 391784. use your wap phone not pc. + +here is your discount code rp176781. to stop further messages reply stop. www.regalportfolio.co.uk. customer services 08717205546 + +in work now. going have in few min. + +am new 2 club & dont fink we met yet will b gr8 2 c u please leave msg 2day wiv ur area 09099726553 reply promised carlie x calls??1/minmobsmore lkpobox177hp51fl + +"there're some people by mu +"xxxmobilemovieclub: to use your credit +"reminder from o2: to get 2.50 pounds free call credit and details of great offers pls reply 2 this text with your valid name +never try alone to take the weight of a tear that comes out of ur heart and falls through ur eyes... always remember a stupid friend is here to share... bslvyl + +"for ur chance to win ??250 cash every wk txt: play to 83370. t's&c's www.music-trivia.net custcare 08715705022 +"think ur smart ? win ??200 this week in our weekly quiz +audrie lousy autocorrect + +1000's of girls many local 2 u who r virgins 2 this & r ready 2 4fil ur every sexual need. can u 4fil theirs? text cute to 69911(??1.50p. m) + +cashbin.co.uk (get lots of cash this weekend!) www.cashbin.co.uk dear welcome to the weekend we have got our biggest and best ever cash give away!! these.. + +"claim a 200 shopping spree +i'm so in love with you. i'm excited each day i spend with you. you make me so happy. + +ranjith cal drpd deeraj and deepak 5min hold + +thanx4 today cer it was nice 2 catch up but we ave 2 find more time more often oh well take care c u soon.c + +"congratulations! thanks to a good friend u have won the ??2 +"in the simpsons movie released in july 2007 name the band that died at the start of the film? a-green day +"open rebtel with firefox. when it loads just put plus sign in the user name place +check out choose your babe videos @ sms.shsex.netun fgkslpopw fgkslpo + +gent! we are trying to contact you. last weekends draw shows that you won a ??1000 prize guaranteed. call 09064012160. claim code k52. valid 12hrs only. 150ppm + +have a safe trip to nigeria. wish you happiness and very soon company to share moments with + +"i prefer my free days... tues +oh did you charge camera + +anything... + +"save yourself the stress. if the person has a dorm account +25p 4 alfie moon's children in need song on ur mob. tell ur m8s. txt tone charity to 8007 for nokias or poly charity for polys: zed 08701417012 profit 2 charity. + +i'm at home. please call + +networking job is there. + +hi. hope you had a good day. have a better night. + +sexy sexy cum and text me im wet and warm and ready for some porn! u up for some fun? this msg is free recd msgs 150p inc vat 2 cancel text stop + +okmail: dear dave this is your final notice to collect your 4* tenerife holiday or #5000 cash award! call 09061743806 from landline. tcs sae box326 cw25wx 150ppm + +88800 and 89034 are premium phone services call 08718711108 + +"lookatme!: thanks for your purchase of a video clip from lookatme! +great news! call freefone 08006344447 to claim your guaranteed ??1000 cash or ??2000 gift. speak to a live operator now! + +carlos says we can pick up from him later so yeah we're set + +"sms. ac blind date 4u!: rodds1 is 21/m from aberdeen +"urgent! your mobile no 07808726822 was awarded a ??2 +congratulations ur awarded either ??500 of cd gift vouchers & free entry 2 our ??100 weekly draw txt music to 87066 tncs www.ldew.com1win150ppmx3age16 + +"sure +only if you promise your getting out as soon as you can. and you'll text me in the morning to let me know you made it in ok. + +"haha yeah i see that now +urgent! we are trying to contact u. todays draw shows that you have won a ??800 prize guaranteed. call 09050001808 from land line. claim m95. valid12hrs only + +"mmmmmm ... i love you +"welcome to uk-mobile-date this msg is free giving you free calling to 08719839835. future mgs billed at 150p daily. to cancel send \go stop\"" to 89123""" + +juz now havent woke up so a bit blur blur... can? dad went out liao... i cant cum now oso... + +text pass to 69669 to collect your polyphonic ringtones. normal gprs charges apply only. enjoy your tones + +i'm coming home 4 dinner. + +someonone you know is trying to contact you via our dating service! to find out who it could be call from your mobile or landline 09064015307 box334sk38ch + +sms auction - a brand new nokia 7250 is up 4 auction today! auction is free 2 join & take part! txt nokia to 86021 now! hg/suite342/2lands row/w1j6hl + +dear subscriber ur draw 4 ??100 gift voucher will b entered on receipt of a correct ans. when was elvis presleys birthday? txt answer to 80062 + +alright. i'm out--have a good night! + +the current leading bid is 151. to pause this auction send out. customer care: 08718726270 + +"themob> check out our newest selection of content +i realise you are a busy guy and i'm trying not to be a bother. i have to get some exams outta the way and then try the cars. do have a gr8 day + +had your mobile 10 mths? update to latest orange camera/video phones for free. save ??s with free texts/weekend calls. text yes for a callback orno to opt out + +i need you to be in my strong arms... + +i tot u outside cos darren say u come shopping. of course we nice wat. we jus went sim lim look at mp3 player. + +that seems unnecessarily hostile + +good afternoon my boytoy. how goes that walking here and there day ? did you get that police abstract? are you still out and about? i wake and miss you babe + +do you want 750 anytime any network mins 150 text and a new video phone for only five pounds per week call 08000776320 now or reply for delivery tomorrow + +22 days to kick off! for euro2004 u will be kept up to date with the latest news and results daily. to be removed send get txt stop to 83222 + +07732584351 - rodger burns - msg = we tried to call you re your reply to our sms for a free nokia mobile + free camcorder. please call now 08000930705 for delivery tomorrow + +"sms. ac jsco: energy is high +i wish! i don't think its gonna snow that much. but it will be more than those flurries we usually get that melt before they hit the ground. eek! we haven't had snow since <#> before i was even born! + +"hungry gay guys feeling hungry and up 4 it +you are chosen to receive a ??350 award! pls call claim number 09066364311 to collect your award which you are selected to receive as a valued mobile customer. + +freemsg: fancy a flirt? reply date now & join the uks fastest growing mobile dating service. msgs rcvd just 25p to optout txt stop to 83021. reply date now! + +"nt only for driving even for many reasons she is called bbd..thts it chikku +no. she's currently in scotland for that. + +do i? i thought i put it back in the box + +ugh. gotta drive back to sd from la. my butt is sore. + +i'm wif him now buying tix lar... + +neva mind it's ok.. + +moby pub quiz.win a ??100 high street prize if u know who the new duchess of cornwall will be? txt her first name to 82277.unsub stop ??1.50 008704050406 sp arrow + +one of the joys in lifeis waking up each daywith thoughts that somewheresomeone cares enough tosend a warm morning greeting.. - + +dating:i have had two of these. only started after i sent a text to talk sport radio last week. any connection do you think or coincidence? + +"did you hear about the new \divorce barbie\""? it comes with all of ken's stuff!""" + +todays voda numbers ending 5226 are selected to receive a ?350 award. if you hava a match please call 08712300220 quoting claim code 1131 standard rates app + +i???m going to try for 2 months ha ha only joking + +pls go there today <#> . i dont want any excuses + +please call our customer service representative on freephone 0808 145 4742 between 9am-11pm as you have won a guaranteed ??1000 cash or ??5000 prize! + +ur cash-balance is currently 500 pounds - to maximize ur cash-in now send cash to 86688 only 150p/msg. cc: 08718720201 po box 114/14 tcr/w1 + +"download as many ringtones as u like no restrictions +hello! good week? fancy a drink or something later? + +thankyou so much for the call. i appreciate your care. + +"i guess that's why you re worried. you must know that there's a way the body repairs itself. and i'm quite sure you shouldn't worry. we'll take it slow. first the tests +"freemsg: claim ur 250 sms messages-text ok to 84025 now!use web2mobile 2 ur mates etc. join txt250.com for 1.50p/wk. t&c box139 +"lookatme!: thanks for your purchase of a video clip from lookatme! +lovely smell on this bus and it ain't tobacco... + +okie + +this message is brought to you by gmw ltd. and is not connected to the + +take some small dose tablet for fever + +sms auction - a brand new nokia 7250 is up 4 auction today! auction is free 2 join & take part! txt nokia to 86021 now! + +urgent! please call 09061213237 from landline. ??5000 cash or a luxury 4* canary islands holiday await collection. t&cs sae po box 177. m227xy. 150ppm. 16+ + +it to 80488. your 500 free text messages are valid until 31 december 2005. + +don know..wait i will check it. + +"hot live fantasies call now 08707509020 just 20p per min ntt ltd +a ??400 xmas reward is waiting for you! our computer has randomly picked you from our loyal mobile customers to receive a ??400 reward. just call 09066380611 + +u have won a nokia 6230 plus a free digital camera. this is what u get when u win our free auction. to take part send nokia to 83383 now. pobox114/14tcr/w1 16 + +easy ah?sen got selected means its good.. + +how. its a little difficult but its a simple way to enter this place + +yo come over carlos will be here soon + +dating:i have had two of these. only started after i sent a text to talk sport radio last week. any connection do you think or coincidence? + +moby pub quiz.win a ??100 high street prize if u know who the new duchess of cornwall will be? txt her first name to 82277.unsub stop ??1.50 008704050406 sp arrow + +i???ll have a look at the frying pan in case it???s cheap or a book perhaps. no that???s silly a frying pan isn???t likely to be a book + +bought one ringtone and now getting texts costing 3 pound offering more tones etc + +that sucks. so what do you got planned for your yo valentine? i am your yo valentine aren't i? + +bored housewives! chat n date now! 0871750.77.11! bt-national rate 10p/min only from landlines! + +"someone has contacted our dating service and entered your phone becausethey fancy you! to find out who it is call from a landline 09058098002. pobox1 +"you've won tkts to the euro2004 cup final or ??800 cash +dont pick up d call when something important is there to tell. hrishi + +"for ur chance to win ??250 cash every wk txt: play to 83370. t's&c's www.music-trivia.net custcare 08715705022 +you are a winner u have been specially selected 2 receive ??1000 cash or a 4* holiday (flights inc) speak to a live operator 2 claim 0871277810810 + +"shop till u drop +"what's up bruv +no. 1 nokia tone 4 ur mob every week! just txt nok to 87021. 1st tone free ! so get txtin now and tell ur friends. 150p/tone. 16 reply hl 4info + +santa calling! would your little ones like a call from santa xmas eve? call 09058094583 to book your time. + +"got ur mail dileep.thank you so muchand look forward to lots of support...very less contacts here +thesmszone.com lets you send free anonymous and masked messages..im sending this message from there..do you see the potential for abuse??? + +i'll be late... + +no chikku nt yet.. ya i'm free + +havent. + +i might go 2 sch. yar at e salon now v boring. + +"hi babe its jordan +"wiskey brandy rum gin beer vodka scotch shampain wine \kudi\""yarasu dhina vaazhthukkal. ..""" + +no. on the way home. so if not for the long dry spell the season would have been over + +ur tonexs subscription has been renewed and you have been charged ??4.50. you can choose 10 more polys this month. www.clubzed.co.uk *billing msg* + +haha... can... but i'm having dinner with my cousin... + +"double mins and txts 4 6months free bluetooth on orange. available on sony +nothing spl..wat abt u and whr ru? + +had your mobile 11mths ? update for free to oranges latest colour camera mobiles & unlimited weekend calls. call mobile upd8 on freefone 08000839402 or 2stoptxt + +i cant pick the phone right now. pls send a message + +get a brand new mobile phone by being an agent of the mob! plus loads more goodies! for more info just text mat to 87021. + +recpt 1/3. you have ordered a ringtone. your order is being processed... + +mom wants to know where you at + +simply sitting and watching match in office.. + +this message is brought to you by gmw ltd. and is not connected to the + +if you still havent collected the dough pls let me know so i can go to the place i sent it to get the control number + +i came hostel. i m going to sleep. plz call me up before class. hrishi. + +you have won a nokia 7250i. this is what you get when you win our free auction. to take part send nokia to 86021 now. hg/suite342/2lands row/w1jhl 16+ + +do not b late love mum + +"you ve won! your 4* costa del sol holiday or ??5000 await collection. call 09050090044 now toclaim. sae +no did you check? i got his detailed message now + +"nope. since ayo travelled +great new offer - double mins & double txt on best orange tariffs and get latest camera phones 4 free! call mobileupd8 free on 08000839402 now! or 2stoptxt t&cs + +sorry completely forgot * will pop em round this week if your still here? + +gd luck 4 ur exams :-) + +"want to funk up ur fone with a weekly new tone reply tones2u 2 this text. www.ringtones.co.uk +"sorry +"final chance! claim ur ??150 worth of discount vouchers today! text yes to 85023 now! savamob +jus finish watching tv... u? + +ill b down soon + +what to think no one saying clearly. ok leave no need to ask her. i will go if she come or not + +"hmph. go head +customer service annoncement. you have a new years delivery waiting for you. please call 07046744435 now to arrange delivery + +free for 1st week! no1 nokia tone 4 ur mob every week just txt nokia to 8007 get txting and tell ur mates www.getzed.co.uk pobox 36504 w45wq norm150p/tone 16+ + +lol ok your forgiven :) + +maybe i could get book out tomo then return it immediately ..? or something. + +"thats a bit weird +you stayin out of trouble stranger!!saw dave the other day he??s sorted now!still with me bloke when u gona get a girl mr!ur mum still thinks we will get 2getha! + +"fyi i'm taking a quick shower +todays voda numbers ending 7548 are selected to receive a $350 award. if you have a match please call 08712300220 quoting claim code 4041 standard rates app + +hey sathya till now we dint meet not even a single time then how can i saw the situation sathya. + +hi :)finally i completed the course:) + +hey mate! hows u honey?did u ave good holiday? gimmi de goss!x + +"urgent! your mobile no 077xxx won a ??2 +i don't know u and u don't know me. send chat to 86688 now and let's find each other! only 150p/msg rcvd. hg/suite342/2lands/row/w1j6hl ldn. 18 years or over. + +pass dis to all ur contacts n see wat u get! red;i'm in luv wid u. blue;u put a smile on my face. purple;u r realy hot. pink;u r so swt. orange;i thnk i lyk u. green;i realy wana go out wid u. yelow;i wnt u bck. black;i'm jealous of u. brown;i miss you nw plz giv me one color + +i ain't answerin no phone at what is actually a pretty reasonable hour but i'm sleepy + +lolnice. i went from a fish to ..water.? + +"spook up your mob with a halloween collection of a logo & pic message plus a free eerie tone +"new tones this week include: 1)mcfly-all ab.. +oooh bed ridden ey? what are you thinking of? + +lol ok ill try to send. be warned sprint is dead slow. you'll prolly get it tomorrow + +message:some text missing* sender:name missing* *number missing *sent:date missing *missing u a lot thats y everything is missing sent via fullonsms.com + +i want to sent <#> mesages today. thats y. sorry if i hurts + +good morning pookie pie! lol hope i didn't wake u up + +no i am not having not any movies in my laptop + +no 1 polyphonic tone 4 ur mob every week! just txt pt2 to 87575. 1st tone free ! so get txtin now and tell ur friends. 150p/tone. 16 reply hl 4info + +"you've won tkts to the euro2004 cup final or ??800 cash +how dare you change my ring + +i hope you arnt pissed off but id would really like to see you tomorrow. love me xxxxxxxxxxxxxx + +you are awarded a sipix digital camera! call 09061221061 from landline. delivery within 28days. t cs box177. m221bp. 2yr warranty. 150ppm. 16 . p p??3.99 + +nope thats fine. i might have a nap tho! + +free camera phones with linerental from 4.49/month with 750 cross ntwk mins. 1/2 price txt bundle deals also avble. call 08001950382 or call2optout/j mf + +"u can win ??100 of music gift vouchers every week starting now txt the word draw to 87066 tscs www.idew.com skillgame +don't b floppy... b snappy & happy! only gay chat service with photo upload call 08718730666 (10p/min). 2 stop our texts call 08712460324 + +"alright +?? log off 4 wat. it's sdryb8i + +our records indicate u maybe entitled to 5000 pounds in compensation for the accident you had. to claim 4 free reply with claim to this msg. 2 stop txt stop + +free for 1st week! no1 nokia tone 4 ur mob every week just txt nokia to 8007 get txting and tell ur mates www.getzed.co.uk pobox 36504 w45wq norm150p/tone 16+ + +ur ringtone service has changed! 25 free credits! go to club4mobiles.com to choose content now! stop? txt club stop to 87070. 150p/wk club4 po box1146 mk45 2wt + +"since when +yup... how ?_ noe leh... + +warner village 83118 c colin farrell in swat this wkend village & get 1 free med. popcorn!just show msg+ticket.valid 4-7/12. c t&c . reply sony 4 mre film offers + +"44 7732584351 +ummmmmaah many many happy returns of d day my dear sweet heart.. happy birthday dear + +why don't you go tell your friend you're not sure you want to live with him because he smokes too much then spend hours begging him to come smoke + +er yep sure. props? + +"this is the 2nd time we have tried 2 contact u. u have won the 750 pound prize. 2 claim is easy +"best line said in love: . \i will wait till the day i can forget u or the day u realize that u cannot forget me.\""... gn""" + +you have won a guaranteed ??200 award or even ??1000 cashto claim ur award call free on 08000407165 (18+) 2 stop getstop on 88222 php. rg21 4jx + +87077: kick off a new season with 2wks free goals & news to ur mobile! txt ur club name to 87077 eg villa to 87077 + +last chance 2 claim ur ??150 worth of discount vouchers-text yes to 85023 now!savamob-member offers mobile t cs 08717898035. ??3.00 sub. 16 . remove txt x or stop + +don't b floppy... b snappy & happy! only gay chat service with photo upload call 08718730666 (10p/min). 2 stop our texts call 08712460324 + +"urgent ur awarded a complimentary trip to eurodisinc trav +oh ic. i thought you meant mary jane. + +he also knows about lunch menu only da. . i know + +"ok. +"tell you what +not sure i have the stomach for it ... + +call 09090900040 & listen to extreme dirty live chat going on in the office right now total privacy no one knows your [sic] listening 60p min 24/7mp 0870753331018+ + +congrats! nokia 3650 video camera phone is your call 09066382422 calls cost 150ppm ave call 3mins vary from mobiles 16+ close 300603 post bcm4284 ldn wc1n3xx + +hope you are having a great day. + +yes princess! i want to catch you with my big strong hands... + +8007 25p 4 alfie moon's children in need song on ur mob. tell ur m8s. txt tone charity to 8007 for nokias or poly charity for polys :zed 08701417012 profit 2 charity + +"mila +"god asked +"congrats 2 mobile 3g videophones r yours. call 09063458130 now! videochat wid ur mates +"thanks for your ringtone order +reply to win ??100 weekly! where will the 2006 fifa world cup be held? send stop to 87239 to end service + +"urgent! you have won a 1 week free membership in our ??100 +you are chosen to receive a ??350 award! pls call claim number 09066364311 to collect your award which you are selected to receive as a valued mobile customer. + +"hey babe +enjoy the jamster videosound gold club with your credits for 2 new videosounds+2 logos+musicnews! get more fun from jamster.co.uk! 16+only help? call: 09701213186 + +"u were outbid by simonwatson5120 on the shinco dvd plyr. 2 bid again +"call 09094100151 to use ur mins! calls cast 10p/min (mob vary). service provided by aom +"pdate_now - double mins and 1000 txts on orange tariffs. latest motorola +urgent this is our 2nd attempt to contact u. your ??900 prize from yesterday is still awaiting collection. to claim call now 09061702893 + +"congrats! 2 mobile 3g videophones r yours. call 09061744553 now! videochat wid ur mates +its normally hot mail. com you see! + +on the way to office da.. + +"update_now - xmas offer! latest motorola +ok... + +"as a valued customer +free entry in 2 a wkly comp to win fa cup final tkts 21st may 2005. text fa to 87121 to receive entry question(std txt rate)t&c's apply 08452810075over18's + +i am at a party with alex nichols + +"don't think about \what u have got\"" think about \""how to use it that you have got\"" good ni8""" + +also remember the beads don't come off. ever. + +that's necessarily respectful + +but am going to college pa. what to do. are else ill come there it self. pa. + +"i'm tired of arguing with you about this week after week. do what you want and from now on +"do you realize that in about 40 years +marvel mobile play the official ultimate spider-man game (??4.50) on ur mobile right now. text spider to 83338 for the game & we ll send u a free 8ball wallpaper + +"yo +"it'll be tough +i've sent my wife your text. after we buy them she'll tell you what to do. so just relax. we should go get them this wkend. + +but pls dont play in others life. + +"bored of speed dating? try speedchat +i only haf msn. it's yijue.com + +can u look 4 me in da lib i got stuff havent finish yet. + +twenty past five he said will this train have been to durham already or not coz i am in a reserved seat + +"haha +money!!! you r a lucky winner ! 2 claim your prize text money 2 88600 over ??1million to give away ! ppt150x3+normal text rate box403 w1t1jy + +free top ringtone -sub to weekly ringtone-get 1st week free-send subpoly to 81618-?3 per week-stop sms-08718727870 + +i think if he rule tamilnadu..then its very tough for our people. + +your 2004 account for 07xxxxxxxxx shows 786 unredeemed points. to claim call 08719181259 identifier code: xxxxx expires 26.03.05 + +apart from the one i told you about yesterday? + +cause i'm not freaky lol + +sex up ur mobile with a free sexy pic of jordan! just text babe to 88600. then every wk get a sexy celeb! pocketbabe.co.uk 4 more pics. 16 ??3/wk 087016248 + +i bought the test yesterday. its something that lets you know the exact day u ovulate.when will get 2u in about 2 to 3wks. but pls pls dont fret. i know u r worried. pls relax. also is there anything in ur past history u need to tell me? + +"sweet +"ya tel +what can i do? might accidant tookplace between somewhere ghodbandar rd. traffic moves slovely. so plz slip & don't worry. + +xclusive 2morow 28/5 soiree speciale zouk with nichols from paris.free roses 2 all ladies !!! info: 07946746291/07880867867 + +guess he wants alone time. we could just show up and watch when they do.. + +"i think your mentor is +sounds like something that someone testing me would sayy + +"get 3 lions england tone +havent planning to buy later. i check already lido only got 530 show in e afternoon. u finish work already? + +please tell me not all of my car keys are in your purse + +you have won a guaranteed ??1000 cash or a ??2000 prize.to claim yr prize call our customer service representative on + +"do you realize that in about 40 years +natalja (25/f) is inviting you to be her friend. reply yes-440 or no-440 see her: www.sms.ac/u/nat27081980 stop? send stop frnd to 62468 + +**free message**thanks for using the auction subscription service. 18 . 150p/msgrcvd 2 skip an auction txt out. 2 unsubscribe txt stop customercare 08718726270 + +pls i wont belive god.not only jesus. + +boltblue tones for 150p reply poly# or mono# eg poly3 1. cha cha slide 2. yeah 3. slow jamz 6. toxic 8. come with me or stop 4 more tones txt more + +urgent! we are trying to contact u. todays draw shows that you have won a ??800 prize guaranteed. call 09050003091 from land line. claim c52. valid12hrs only + +we tried to contact you re your response to our offer of a new nokia fone and camcorder hit reply or call 08000930705 for delivery + +do you want a new nokia 3510i colour phone deliveredtomorrow? with 300 free minutes to any mobile + 100 free texts + free camcorder reply or call 08000930705 + +"your free ringtone is waiting to be collected. simply text the password \mix\"" to 85069 to verify. get usher and britney. fml mk17 92h. 450ppw 16""" + +hi 07734396839 ibh customer loyalty offer: the new nokia6600 mobile from only ??10 at txtauction!txt word:start to no:81151 & get yours now!4t& + +urgent! your mobile number has been awarded with a ??2000 prize guaranteed. call 09061790121 from land line. claim 3030. valid 12hrs only 150ppm + +ok lor... sony ericsson salesman... i ask shuhui then she say quite gd 2 use so i considering... + +"you have won ?1 +can u get 2 phone now? i wanna chat 2 set up meet call me now on 09096102316 u can cum here 2moro luv jane xx calls??1/minmoremobsemspobox45po139wa + +am i that much bad to avoid like this? + +call from 08702490080 - tells u 2 call 09066358152 to claim ??5000 prize. u have 2 enter all ur mobile & personal details @ the prompts. careful! + +"urgent ur awarded a complimentary trip to eurodisinc trav +shall i get my pouch? + +i dont understand your message. + +you have 1 new message. call 0207-083-6089 + +sms auction - a brand new nokia 7250 is up 4 auction today! auction is free 2 join & take part! txt nokia to 86021 now! hg/suite342/2lands row/w1j6hl + +"you 07801543489 are guaranteed the latests nokia phone +"by march ending +88066 from 88066 lost 3pound help + +"usf i guess +no need to ke qi... ?? too bored izzit y suddenly thk of this... + +save money on wedding lingerie at www.bridal.petticoatdreams.co.uk choose from a superb selection with national delivery. brought to you by weddingfriend + +neshanth..tel me who r u? + +how about getting in touch with folks waiting for company? just txt back your name and age to opt in! enjoy the community (150p/sms) + +wanna get laid 2nite? want real dogging locations sent direct to ur mobile? join the uk's largest dogging network. txt park to 69696 now! nyt. ec2a. 3lp ??1.50/msg + +do you know when dad will be back? + +really good:)dhanush rocks once again:) + +it certainly puts things into perspective when something like this happens + +k..k:)how about your training process? + +hello. we need some posh birds and chaps to user trial prods for champneys. can i put you down? i need your address and dob asap. ta r + +"what part of \don't initiate\"" don't you understand""" + +"princess +"want to funk up ur fone with a weekly new tone reply tones2u 2 this text. www.ringtones.co.uk +"urgent! your mobile no *********** won a ??2 +where are you ? you said you would be here when i woke ... :-( + +todays voda numbers ending with 7634 are selected to receive a ??350 reward. if you have a match please call 08712300220 quoting claim code 7684 standard rates apply. + +wanna get laid 2nite? want real dogging locations sent direct to ur mobile? join the uk's largest dogging network. txt park to 69696 now! nyt. ec2a. 3lp ??1.50/msg + +sunshine quiz wkly q! win a top sony dvd player if u know which country liverpool played in mid week? txt ansr to 82277. ??1.50 sp:tyrone + +you are awarded a sipix digital camera! call 09061221061 from landline. delivery within 28days. t cs box177. m221bp. 2yr warranty. 150ppm. 16 . p p??3.99 + +do you want a new video phone? 600 anytime any network mins 400 inclusive video calls and downloads 5 per week free deltomorrow call 08002888812 or reply now + +"had your contract mobile 11 mnths? latest motorola +urgent! we are trying to contact u. todays draw shows that you have won a ??800 prize guaranteed. call 09050003091 from land line. claim c52. valid12hrs only + +do you want a new video phone? 600 anytime any network mins 400 inclusive video calls and downloads 5 per week free deltomorrow call 08002888812 or reply now + +guess who am i?this is the first time i created a web page www.asjesus.com read all i wrote. i'm waiting for your opinions. i want to be your friend 1/1 + +ok no prob. take ur time. + +ur cash-balance is currently 500 pounds - to maximize ur cash-in now send cash to 86688 only 150p/msg. cc: 08708800282 hg/suite342/2lands row/w1j6hl + +"oh mr sheffield! you wanna play that game +"urgent! your mobile was awarded a ??1 +"ever green quote ever told by jerry in cartoon \a person who irritates u always is the one who loves u vry much but fails to express it...!..!! :-) :-) gud nyt""" + +lmao ok i wont be needing u to do my hair anymore. + +"loan for any purpose ??500 - ??75 +"it could work +happy new year my dear brother. i really do miss you. just got your number and decided to send you this text wishing you only happiness. abiola + +"actually nvm +from www.applausestore.com monthlysubscription/msg max6/month t&csc web age16 2stop txt stop + +text & meet someone sexy today. u can find a date or even flirt its up to u. join 4 just 10p. reply with name & age eg sam 25. 18 -msg recd pence + +"fighting with the world is easy +(bank of granite issues strong-buy) explosive pick for our members *****up over 300% *********** nasdaq symbol cdgt that is a $5.00 per.. + +"\cheers for callin babe.sozi culdnt talkbut i wannatell u details later wenwecan chat properly x\""""" + +sunshine quiz wkly q! win a top sony dvd player if u know which country the algarve is in? txt ansr to 82277. ??1.50 sp:tyrone + +"god picked up a flower and dippeditinadew +your b4u voucher w/c 27/03 is marsms. log onto www.b4utele.com for discount credit. to opt out reply stop. customer care call 08717168528 + +panasonic & bluetoothhdset free. nokia free. motorola free & doublemins & doubletxt on orange contract. call mobileupd8 on 08000839402 or call 2optout + +win a ??1000 cash prize or a prize worth ??5000 + +urgent! we are trying to contact u todays draw shows that you have won a ??800 prize guaranteed. call 09050000460 from land line. claim j89. po box245c2150pm + +todays voda numbers ending 7548 are selected to receive a $350 award. if you have a match please call 08712300220 quoting claim code 4041 standard rates app + +"as a sim subscriber +"urgent! call 09066612661 from landline. your complementary 4* tenerife holiday or ??10 +i dnt wnt to tlk wid u + +pls give her the food preferably pap very slowly with loads of sugar. you can take up to an hour to give it. and then some water. very very slowly. + +"\pete can you please ring meive hardly gotany credit\""""" + +great new offer - double mins & double txt on best orange tariffs and get latest camera phones 4 free! call mobileupd8 free on 08000839402 now! or 2stoptxt t&cs + +this msg is for your mobile content order it has been resent as previous attempt failed due to network error queries to customersqueries.uk.com + +genius what's up. how your brother. pls send his number to my skype. + +guess what! somebody you know secretly fancies you! wanna find out who it is? give us a call on 09065394514 from landline datebox1282essexcm61xn 150p/min 18 + +"3 free tarot texts! find out about your love life now! try 3 for free! text chance to 85555 16 only! after 3 free +todays vodafone numbers ending with 0089(my last four digits) are selected to received a ??350 award. if your number matches please call 09063442151 to claim your ??350 award + +you have won a guaranteed ??1000 cash or a ??2000 prize.to claim yr prize call our customer service representative on + +urgent! we are trying to contact you. last weekends draw shows that you have won a ??900 prize guaranteed. call 09061701939. claim code s89. valid 12hrs only + +"maybe westshore or hyde park village +aah bless! how's your arm? + +yes:)sura in sun tv.:)lol. + +txt: call to no: 86888 & claim your reward of 3 hours talk time to use from your phone now! subscribe6gbp/mnth inc 3hrs 16 stop?txtstop www.gamb.tv + +sir send to group mail check it. + +cds 4u: congratulations ur awarded ??500 of cd gift vouchers or ??125 gift guaranteed & freeentry 2 ??100 wkly draw xt music to 87066 tncs www.ldew.com1win150ppmx3age16 + +yeah right! i'll bring my tape measure fri! + +you have won! as a valued vodafone customer our computer has picked you to win a ??150 prize. to collect is easy. just call 09061743386 + +free for 1st week! no1 nokia tone 4 ur mob every week just txt nokia to 8007 get txting and tell ur mates www.getzed.co.uk pobox 36504 w45wq norm150p/tone 16+ + +your 2004 account for 07xxxxxxxxx shows 786 unredeemed points. to claim call 08719181259 identifier code: xxxxx expires 26.03.05 + +"as a sim subscriber +reply to win ??100 weekly! what professional sport does tiger woods play? send stop to 87239 to end service + +"hello +"for ur chance to win a ??250 cash every wk txt: action to 80608. t's&c's www.movietrivia.tv custcare 08712405022 +ho ho - big belly laugh! see ya tomo + +everybody had fun this evening. miss you. + +oh is it! which brand? + +"urgent! your mobile no 07xxxxxxxxx won a ??2 +"i av a new number +urgent! your mobile number has been awarded with a ??2000 bonus caller prize. call 09058095201 from land line. valid 12hrs only + +its just the effect of irritation. just ignore it + +rats. hey did u ever vote for the next themes? + +from next month get upto 50% more calls 4 ur standard network charge 2 activate call 9061100010 c wire3.net 1st4terms pobox84 m26 3uz cost ??1.50 min mobcudb more + +i surely dont forgot to come:)i will always be in touch in with you:-) + +you are a winner u have been specially selected 2 receive ??1000 cash or a 4* holiday (flights inc) speak to a live operator 2 claim 0871277810810 + +"hack chat. get backdoor entry into 121 chat rooms at a fraction of the cost. reply neo69 or call 09050280520 +you have 1 new voicemail. please call 08719181513. + +"if you don't +hey i am really horny want to chat or see me naked text hot to 69698 text charged at 150pm to unsubscribe text stop 69698 + +urgent! please call 09061213237 from a landline. ??5000 cash or a 4* holiday await collection. t &cs sae po box 177 m227xy. 16+ + +"he is impossible to argue with and he always treats me like his sub +private! your 2004 account statement for 07742676969 shows 786 unredeemed bonus points. to claim call 08719180248 identifier code: 45239 expires + +"when people see my msgs +married local women looking for discreet action now! 5 real matches instantly to your phone. text match to 69969 msg cost 150p 2 stop txt stop bcmsfwc1n3xx + +congratulations you've won. you're a winner in our august ??1000 prize draw. call 09066660100 now. prize code 2309. + +oh k.k..where did you take test? + +aslamalaikkum....insha allah tohar beeen muht albi mufti mahfuuz...meaning same here.... + +18 days to euro2004 kickoff! u will be kept informed of all the latest news and results daily. unsubscribe send get euro stop to 83222. + +yup i thk they r e teacher said that will make my face look longer. darren ask me not 2 cut too short. + +"for ur chance to win a ??250 wkly shopping spree txt: shop to 80878. t's&c's www.txt-2-shop.com custcare 08715705022 +yeh. indians was nice. tho it did kane me off a bit he he. we shud go out 4 a drink sometime soon. mite hav 2 go 2 da works 4 a laugh soon. love pete x x + +my tuition is at 330. hm we go for the 1120 to 1205 one? do you mind? + +today i'm not workin but not free oso... gee... thgt u workin at ur fren's shop ? + +todays voda numbers ending 7548 are selected to receive a $350 award. if you have a match please call 08712300220 quoting claim code 4041 standard rates app + +thanks. fills me with complete calm and reassurance! + +please call 08712402779 immediately as there is an urgent message waiting for you + +"england v macedonia - dont miss the goals/team news. txt ur national team to 87077 eg england to 87077 try:wales +"also north carolina and texas atm +wanna get laid 2nite? want real dogging locations sent direct to ur mobile? join the uk's largest dogging network. txt park to 69696 now! nyt. ec2a. 3lp ??1.50/msg + +win a year supply of cds 4 a store of ur choice worth ??500 & enter our ??100 weekly draw txt music to 87066 ts&cs www.ldew.com.subs16+1win150ppmx3 + +"sorry +"sms. ac blind date 4u!: rodds1 is 21/m from aberdeen +imagine life without me... see.. how fast u are searching me?don't worry.. l'm always there to disturb u.. goodnoon..:) + +any pain on urination any thing else? + +ujhhhhhhh computer shipped out with address to sandiago and parantella lane. wtf. poop. + +for fear of fainting with the of all that housework you just did? quick have a cuppa + +update_now - 12mths half price orange line rental: 400mins...call mobileupd8 on 08000839402 or call2optout=j5q + +"today's offer! claim ur ??150 worth of discount vouchers! text yes to 85023 now! savamob +"and stop wondering \wow is she ever going to stop tm'ing me ?!\"" because i will tm you whenever i want because you are mine ... *laughs*""" + +oh thats late! well have a good night and i will give u a call tomorrow. iam now going to go to sleep night night + +dear subscriber ur draw 4 ??100 gift voucher will b entered on receipt of a correct ans. when was elvis presleys birthday? txt answer to 80062 + +jordan got voted out last nite! + +so u gonna get deus ex? + +hi - this is your mailbox messaging sms alert. you have 40 matches. please call back on 09056242159 to retrieve your messages and matches cc100p/min + +"sir +"free message activate your 500 free text messages by replying to this message with the word free for terms & conditions +2/2 146tf150p + +get the official england poly ringtone or colour flag on yer mobile for tonights game! text tone or flag to 84199. optout txt eng stop box39822 w111wx ??1.50 + +"customer service announcement. we recently tried to make a delivery to you but were unable to do so +u should make a fb list + +congratulations ur awarded 500 of cd vouchers or 125gift guaranteed & free entry 2 100 wkly draw txt music to 87066 tncs www.ldew.com1win150ppmx3age16 + +december only! had your mobile 11mths+? you are entitled to update to the latest colour camera mobile for free! call the mobile update co free on 08002986906 + +"tonight? yeah +"update_now - xmas offer! latest motorola +match started.india <#> for 2 + +"urgent! you have won a 1 week free membership in our ??100 +"congrats! 2 mobile 3g videophones r yours. call 09063458130 now! videochat wid your mates +"urgent -call 09066649731from landline. your complimentary 4* ibiza holiday or ??10 +why she wants to talk to me + +"bears pic nick +you will be in the place of that man + +"dear voucher holder +83039 62735=??450 uk break accommodationvouchers terms & conditions apply. 2 claim you mustprovide your claim number which is 15541 + +"urgent!! your 4* costa del sol holiday or ??5000 await collection. call 09050090044 now toclaim. sae +"perhaps * is much easy give your account identification +im realy soz imat my mums 2nite what about 2moro + +urgent! please call 09061213237 from landline. ??5000 cash or a luxury 4* canary islands holiday await collection. t&cs sae po box 177. m227xy. 150ppm. 16+ + +"sir +"haven't found a way to get another app for your phone +change again... it's e one next to escalator... + +dunno lei ?_ all decide lor. how abt leona? oops i tot ben is going n i msg him. + +22 days to kick off! for euro2004 u will be kept up to date with the latest news and results daily. to be removed send get txt stop to 83222 + +save money on wedding lingerie at www.bridal.petticoatdreams.co.uk choose from a superb selection with national delivery. brought to you by weddingfriend + +sorry. you never hear unless you book it. one was kinda a joke--thet were really looking for skinny white girls. the other was one line--you can only do so much on camera with that. something like that they're casting on the look. + +you are awarded a sipix digital camera! call 09061221061 from landline. delivery within 28days. t cs box177. m221bp. 2yr warranty. 150ppm. 16 . p p??3.99 + +eastenders tv quiz. what flower does dot compare herself to? d= violet e= tulip f= lily txt d e or f to 84025 now 4 chance 2 win ??100 cash wkent/150p16+ + +i absolutely love south park! i only recently started watching the office. + +get the official england poly ringtone or colour flag on yer mobile for tonights game! text tone or flag to 84199. optout txt eng stop box39822 w111wx ??1.50 + +yo dude guess who just got arrested the other day + +all these nice new shirts and the only thing i can wear them to is nudist themed ;_; you in mu? + +"urgent!! your 4* costa del sol holiday or ??5000 await collection. call 09050090044 now toclaim. sae +at home by the way + +what do u want for xmas? how about 100 free text messages & a new video phone with half price line rental? call free now on 0800 0721072 to find out more! + +freemsg today's the day if you are ready! i'm horny & live in your town. i love sex fun & games! netcollex ltd 08700621170150p per msg reply stop to end + +"haha +urgent we are trying to contact you last weekends draw shows u have won a ??1000 prize guaranteed call 09064017295 claim code k52 valid 12hrs 150p pm + +hi its lucy hubby at meetins all day fri & i will b alone at hotel u fancy cumin over? pls leave msg 2day 09099726395 lucy x calls??1/minmobsmorelkpobox177hp51fl + +urgent! we are trying to contact u. todays draw shows that you have won a ??2000 prize guaranteed. call 09058094507 from land line. claim 3030. valid 12hrs only + +dear 0776xxxxxxx u've been invited to xchat. this is our final attempt to contact u! txt chat to 86688 150p/msgrcvdhg/suite342/2lands/row/w1j6hl ldn 18yrs + +"dear voucher holder +have you been practising your curtsey? + +nobody names their penis a girls name this story doesn't add up at all + +"hmmm ... and imagine after you've come home from that having to rub my feet +urgent! we are trying to contact u. todays draw shows that you have won a ??800 prize guaranteed. call 09050003091 from land line. claim c52. valid12hrs only + +hey. you got any mail? + +dorothy.com (bank of granite issues strong-buy) explosive pick for our members *****up over 300% *********** nasdaq symbol cdgt that is a $5.00 per.. + +your right! i'll make the appointment right now. + +unfortunately i've just found out that we have to pick my sister up from the airport that evening so don't think i'll be going out at all. we should try to go out one of th + +haven't heard anything and he's not answering my texts so i'm guessing he flaked. that said the jb is fantastic + +"watching cartoon +"i can probably come by +am new 2 club & dont fink we met yet will b gr8 2 c u please leave msg 2day wiv ur area 09099726553 reply promised carlie x calls??1/minmobsmore lkpobox177hp51fl + +sorry * was at the grocers. + +oh:)as usual vijay film or its different? + +mark works tomorrow. he gets out at 5. his work is by your house so he can meet u afterwards. + +sms. ac sun0819 posts hello:\you seem cool + +with my sis lor... we juz watched italian job. + +burger king - wanna play footy at a top stadium? get 2 burger king before 1st sept and go large or super with coca-cola and walk out a winner + +does not operate after <#> or what + +warner village 83118 c colin farrell in swat this wkend village & get 1 free med. popcorn!just show msg+ticket.valid 4-7/12. c t&c . reply sony 4 mre film offers + +who u talking about? + +k..i deleted my contact that why? + +"free msg: get gnarls barkleys \crazy\"" ringtone totally free just reply go to this message right now!""" + +joy's father is john. then john is the ____ of joy's father. if u ans ths you hav <#> iq. tis s ias question try to answer. + +"hm good morning +"urgent +hi neva worry bout da truth coz the truth will lead me 2 ur heart. it??s the least a unique person like u deserve. sleep tight or morning + +you are chosen to receive a ??350 award! pls call claim number 09066364311 to collect your award which you are selected to receive as a valued mobile customer. + +"accordingly. i repeat +"xxxmobilemovieclub: to use your credit +reverse is cheating. that is not mathematics. + +i had askd u a question some hours before. its answer + +?? no home work to do meh... + +"as a valued customer +from 88066 lost ??12 help + +you have 1 new voicemail. please call 08719181513. + +"haha... sounds crazy +83039 62735=??450 uk break accommodationvouchers terms & conditions apply. 2 claim you mustprovide your claim number which is 15541 + +yeah so basically any time next week you can get away from your mom & get up before 3 + +yes baby! i need to stretch open your pussy! + +"your chance to be on a reality fantasy show call now = 08707509020 just 20p per min ntt ltd +rt-king pro video club>> need help? info.co.uk or call 08701237397 you must be 16+ club credits redeemable at www.ringtoneking.co.uk! enjoy! + +congratulations ur awarded either ??500 of cd gift vouchers & free entry 2 our ??100 weekly draw txt music to 87066 tncs www.ldew.com 1 win150ppmx3age16 + +filthy stories and girls waiting for your + +ok i go change also... + +do you always celebrate ny's with your family ? + +500 free text msgs. just text ok to 80488 and we'll credit your account + +join the uk's horniest dogging service and u can have sex 2nite!. just sign up and follow the instructions. txt entry to 69888 now! nyt.ec2a.3lp.msg + +"i can't +you have won a guaranteed ??1000 cash or a ??2000 prize. to claim yr prize call our customer service representative on 08714712394 between 10am-7pm + +k.then any other special? + +"babe +just re read it and i have no shame but tell me how he takes it and if he runs i will blame u 4 ever!! not really 4 ever just a long time + +"as usual..iam fine +"hot live fantasies call now 08707509020 just 20p per min ntt ltd +ever thought about living a good life with a perfect partner? just txt back name and age to join the mobile community. (100p/sms) + +we tried to contact you re our offer of new video phone 750 anytime any network mins half price rental camcorder call 08000930705 or reply for delivery wed + +adult 18 content your video will be with you shortly + +"free entry to the gr8prizes wkly comp 4 a chance to win the latest nokia 8800 +want explicit sex in 30 secs? ring 02073162414 now! costs 20p/min + +some are lasting as much as 2 hours. you might get lucky. + +as one of our registered subscribers u can enter the draw 4 a 100 g.b. gift voucher by replying with enter. to unsubscribe text stop + +tell me pa. how is pain de. + +anyway seriously hit me up when you're back because otherwise i have to light up with armand and he always has shit and/or is vomiting + +ok lor but not too early. me still having project meeting now. + +"i want some cock! my hubby's away +"orange customer +"for ur chance to win a ??250 wkly shopping spree txt: shop to 80878. t's&c's www.txt-2-shop.com custcare 08715705022 +then. you are eldest know. + +urgent! please call 09061743811 from landline. your abta complimentary 4* tenerife holiday or ??5000 cash await collection sae t&cs box 326 cw25wx 150ppm + +"six chances to win cash! from 100 to 20 +thanks for the vote. now sing along with the stars with karaoke on your mobile. for a free link just reply with sing now. + +please call our customer service representative on 0800 169 6031 between 10am-9pm as you have won a guaranteed ??1000 cash or ??5000 prize! + +i want to see your pretty pussy... + +"honeybee said: *i'm d sweetest in d world* god laughed & said: *wait +were trying to find a chinese food place around here + +"loan for any purpose ??500 - ??75 +"house-maid is the murderer +"good stuff +do you want a new nokia 3510i colour phone delivered tomorrow? with 200 free minutes to any mobile + 100 free text + free camcorder reply or call 8000930705 + +aiyar sorry lor forgot 2 tell u... + +jamster! to get your free wallpaper text heart to 88888 now! t&c apply. 16 only. need help? call 08701213186. + +promotion number: 8714714 - ur awarded a city break and could win a ??200 summer shopping spree every wk. txt store to 88039 . skilgme. tscs087147403231winawk!age16 ??1.50perwksub + +"congratulations! thanks to a good friend u have won the ??2 +this message is brought to you by gmw ltd. and is not connected to the + +thesmszone.com lets you send free anonymous and masked messages..im sending this message from there..do you see the potential for abuse??? + +"eerie nokia tones 4u +yes! i am a one woman man! please tell me your likes and dislikes in bed... + +urgent! your mobile number has been awarded with a ??2000 prize guaranteed. call 09061790121 from land line. claim 3030. valid 12hrs only 150ppm + +ah poop. looks like ill prob have to send in my laptop to get fixed cuz it has a gpu problem + +k:)k:)what are detail you want to transfer?acc no enough? + +hey check it da. i have listed da. + +?? comin to fetch us oredi... + +then ?_ come n pick me at 530 ar? + +sorry da thangam.it's my mistake. + +it to 80488. your 500 free text messages are valid until 31 december 2005. + +seriously. tell her those exact words right now. + +"you are a ??1000 winner or guaranteed caller prize +"eerie nokia tones 4u +ok then i will come to ur home after half an hour + +your credits have been topped up for http://www.bubbletext.com your renewal pin is tgxxrz + +bought one ringtone and now getting texts costing 3 pound offering more tones etc + +"lookatme!: thanks for your purchase of a video clip from lookatme! +i send the print outs da. + +i can't describe how lucky you are that i'm actually awake by noon + +i am in office:)whats the matter..msg me now.i will call you at break:). + +you are a winner u have been specially selected 2 receive ??1000 cash or a 4* holiday (flights inc) speak to a live operator 2 claim 0871277810810 + +dude got a haircut. now its breezy up there + +you are a winner u have been specially selected 2 receive ??1000 cash or a 4* holiday (flights inc) speak to a live operator 2 claim 0871277810810 + +ur cash-balance is currently 500 pounds - to maximize ur cash-in now send collect to 83600 only 150p/msg. cc: 08718720201 po box 114/14 tcr/w1 + +free 1st week entry 2 textpod 4 a chance 2 win 40gb ipod or ??250 cash every wk. txt pod to 84128 ts&cs www.textpod.net custcare 08712405020. + +"freemsg hey u +may i call you later pls + +"sorry +u know we watchin at lido? + +our records indicate u maybe entitled to 5000 pounds in compensation for the accident you had. to claim 4 free reply with claim to this msg. 2 stop txt stop + +do you want a new video phone750 anytime any network mins 150 text for only five pounds per week call 08000776320 now or reply for delivery tomorrow + +y?where u at dogbreath? its just sounding like jan c that??s al!!!!!!!!! + +your 2004 account for 07xxxxxxxxx shows 786 unredeemed points. to claim call 08719181259 identifier code: xxxxx expires 26.03.05 + +god bless.get good sleep my dear...i will pray! + +rct' thnq adrian for u text. rgds vatian + +"i'll text carlos and let you know +you are a winner u have been specially selected 2 receive ??1000 cash or a 4* holiday (flights inc) speak to a live operator 2 claim 0871277810810 + +do you want a new nokia 3510i colour phone deliveredtomorrow? with 300 free minutes to any mobile + 100 free texts + free camcorder reply or call 08000930705 + ++449071512431 urgent! this is the 2nd attempt to contact u!u have won ??1250 call 09071512433 b4 050703 t&csbcm4235wc1n3xx. callcost 150ppm mobilesvary. max??7. 50 + +"download as many ringtones as u like no restrictions +"sunshine hols. to claim ur med holiday send a stamped self address envelope to drinks on us uk +u still going to the mall? + +i will once i get home + +"thanks for your ringtone order +lol for real. she told my dad i have cancer + +"for ur chance to win a ??250 cash every wk txt: action to 80608. t's&c's www.movietrivia.tv custcare 08712405022 +yes there were many sweets + +i'm still looking for a car to buy. and have not gone 4the driving test yet. + +you flippin your shit yet? + +"you have won ?1 +so now my dad is gonna call after he gets out of work and ask all these crazy questions. + +i'll be at mu in like <#> seconds + +i love you. you set my soul on fire. it is not just a spark. but it is a flame. a big rawring flame. xoxo + +"latest news! police station toilet stolen +if u laugh really loud.. if u talk spontaneously.. if u dont care what others feel.. u are probably with your dear & best friends.. goodevening dear..:) + +uhhhhrmm isnt having tb test bad when youre sick + +you have won a nokia 7250i. this is what you get when you win our free auction. to take part send nokia to 86021 now. hg/suite342/2lands row/w1jhl 16+ + +win urgent! your mobile number has been awarded with a ??2000 prize guaranteed call 09061790121 from land line. claim 3030 valid 12hrs only 150ppm + +"urgent!: your mobile no. was awarded a ??2 +save money on wedding lingerie at www.bridal.petticoatdreams.co.uk choose from a superb selection with national delivery. brought to you by weddingfriend + +"someone u know has asked our dating service 2 contact you! cant guess who? call 09058097189 now all will be revealed. pobox 6 +hey so whats the plan this sat? + +lol that would be awesome payback. + +hi its me you are probably having too much fun to get this message but i thought id txt u cos im bored! and james has been farting at me all night + +your opinion about me? 1. over 2. jada 3. kusruthi 4. lovable 5. silent 6. spl character 7. not matured 8. stylish 9. simple pls reply.. + +santa calling! would your little ones like a call from santa xmas eve? call 09058094583 to book your time. + +as a registered subscriber yr draw 4 a ??100 gift voucher will b entered on receipt of a correct ans. when are the next olympics. txt ans to 80062 + +i wait 4 ?_ inside da car park... + +"sorry +nooooooo i'm gonna be bored to death all day. cable and internet outage. + +hi mom we might be back later than <#> + +your next amazing xxx picsfree1 video will be sent to you enjoy! if one vid is not enough for 2day text back the keyword picsfree1 to get the next video. + +should i have picked up a receipt or something earlier + +double your mins & txts on orange or 1/2 price linerental - motorola and sonyericsson with b/tooth free-nokia free call mobileupd8 on 08000839402 or2optout/hv9d + +hello- thanx for taking that call. i got a job! starts on monday! + +tells u 2 call 09066358152 to claim ??5000 prize. u have 2 enter all ur mobile & personal details @ the prompts. careful! + +moji just informed me that you saved our lives. thanks. + +"all the lastest from stereophonics +"if you don't +"congrats! 1 year special cinema pass for 2 is yours. call 09061209465 now! c suprman v +good morning plz call me sir + +u say leh... of course nothing happen lar. not say v romantic jus a bit only lor. i thk e nite scenery not so nice leh. + +life has never been this much fun and great until you came in. you made it truly special for me. i won't forget you! enjoy @ one gbp/sms + +by monday next week. give me the full gist + +you can donate ??2.50 to unicef's asian tsunami disaster support fund by texting donate to 864233. ??2.50 will be added to your next bill + +sorry i missed your call let's talk when you have the time. i'm on 07090201529 + +good morning princess! have a great day! + +why i come in between you people + +"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 +want a new video phone? 750 anytime any network mins? half price line rental free text for 3 months? reply or call 08000930705 for free delivery + +private! your 2003 account statement for 078 + +prabha..i'm soryda..realy..frm heart i'm sory + +"\hello u.call wen u finish wrk.i fancy meetin up wiv u all tonite as i need a break from dabooks. did 4 hrs last nite+2 today of wrk!\""""" + +we not watching movie already. xy wants 2 shop so i'm shopping w her now. + +"latest nokia mobile or ipod mp3 player +??400 proze guaranteed! reply with: win to 83355 now! norcorp ltd.??1 +how about getting in touch with folks waiting for company? just txt back your name and age to opt in! enjoy the community (150p/sms) + +i had askd u a question some hours before. its answer + +you have an important customer service announcement from premier. call freephone 0800 542 0578 now! + +"house-maid is the murderer +"free2day sexy st george's day pic of jordan!txt pic to 89080 dont miss out +88800 and 89034 are premium phone services call 08718711108 + +had your mobile 10 mths? update to latest orange camera/video phones for free. save ??s with free texts/weekend calls. text yes for a callback orno to opt out + +"honey +baaaaaaaabe! wake up ! i miss you ! i crave you! i need you! + +goldviking (29/m) is inviting you to be his friend. reply yes-762 or no-762 see him: www.sms.ac/u/goldviking stop? send stop frnd to 62468 + +"new theory: argument wins d situation +call germany for only 1 pence per minute! call from a fixed line via access number 0844 861 85 85. no prepayment. direct access! www.telediscount.co.uk + +im gonna miss u so much + +already am squatting is the new way of walking + +sure but since my parents will be working on tuesday i don't really need a cover story + +"mah b +fuck cedar key and fuck her (come over anyway tho) + +uncle abbey! happy new year. abiola + +just haven't decided where yet eh ? + +ok ill tell the company + +u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094565 + +ok... + +"hottest pics straight to your phone!! see me getting wet and wanting +new textbuddy chat 2 horny guys in ur area 4 just 25p free 2 receive search postcode or at gaytextbuddy.com. txt one name to 89693. 08715500022 rpl stop 2 cnl + +urgent please call 09066612661 from landline. ??5000 cash or a luxury 4* canary islands holiday await collection. t&cs sae award. 20m12aq. 150ppm. 16+ ??? + +"romantic paris. 2 nights +freemsg hi baby wow just got a new cam moby. wanna c a hot pic? or fancy a chat?im w8in 4utxt / rply chat to 82242 hlp 08712317606 msg150p 2rcv + +december only! had your mobile 11mths+? you are entitled to update to the latest colour camera mobile for free! call the mobile update co free on 08002986906 + +"thank you so much. when we skyped wit kz and sura +is there coming friday is leave for pongal?do you get any news from your work place. + +ur cash-balance is currently 500 pounds - to maximize ur cash-in now send go to 86688 only 150p/meg. cc: 08718720201 hg/suite342/2lands row/w1j6hl + +"mum +well i will watch shrek in 3d!!b) + +i thank you so much for all you do with selflessness. i love you plenty. + +ok no problem... yup i'm going to sch at 4 if i rem correctly... + +"will u meet ur dream partner soon? is ur career off 2 a flyng start? 2 find out free +you want to go? + +"frnd s not juz a word.....not merely a relationship.....its a silent promise which says ... \ i will be with you \"" wherevr.. whenevr.. forevr... gudnyt dear..""" + +ree entry in 2 a weekly comp for a chance to win an ipod. txt pod to 80182 to get entry (std txt rate) t&c's apply 08452810073 for details 18+ + +2/2 146tf150p + +please call our customer service representative on freephone 0808 145 4742 between 9am-11pm as you have won a guaranteed ??1000 cash or ??5000 prize! + +"the word \checkmate\"" in chess comes from the persian phrase \""shah maat\"" which means; \""the king is dead..\"" goodmorning.. have a good day..:)""" + +"claim a 200 shopping spree +i need... coz i never go before + +recpt 1/3. you have ordered a ringtone. your order is being processed... + +yun buying... but school got offer 2000 plus only... + +sorry! u can not unsubscribe yet. the mob offer package has a min term of 54 weeks> pls resubmit request after expiry. reply themob help 4 more info + +we r outside already. + +hi if ur lookin 4 saucy daytime fun wiv busty married woman am free all next week chat now 2 sort time 09099726429 janinexx calls??1/minmobsmorelkpobox177hp51fl + +u guys never invite me anywhere :( + +"shop till u drop +great new offer - double mins & double txt on best orange tariffs and get latest camera phones 4 free! call mobileupd8 free on 08000839402 now! or 2stoptxt t&cs + +08714712388 between 10am-7pm cost 10p + +your credits have been topped up for http://www.bubbletext.com your renewal pin is tgxxrz + +do you want a new video phone750 anytime any network mins 150 text for only five pounds per week call 08000776320 now or reply for delivery tomorrow + +todays voda numbers ending 7548 are selected to receive a $350 award. if you have a match please call 08712300220 quoting claim code 4041 standard rates app + +not from this campus. are you in the library? + +sunshine quiz wkly q! win a top sony dvd player if u know which country the algarve is in? txt ansr to 82277. ??1.50 sp:tyrone + +urgent! we are trying to contact u todays draw shows that you have won a ??800 prize guaranteed. call 09050000460 from land line. claim j89. po box245c2150pm + +"win: we have a winner! mr. t. foley won an ipod! more exciting prizes soon +so are you guys asking that i get that slippers again or its gone with last year + +85233 free>ringtone!reply real + +how much u trying to get? + +december only! had your mobile 11mths+? you are entitled to update to the latest colour camera mobile for free! call the mobile update co free on 08002986906 + +important information 4 orange user . today is your lucky day!2find out why log onto http://www.urawinner.com there's a fantastic surprise awaiting you! + +what's ur pin? + +how's it going? got any exciting karaoke type activities planned? i'm debating whether to play football this eve. feeling lazy though. + +"i'll get there at 3 +play w computer? aiyah i tok 2 u lor? + +pls dont restrict her from eating anythin she likes for the next two days. + +"twinks +cramps stopped. going back to sleep + +why did i wake up on my own >:( + +want explicit sex in 30 secs? ring 02073162414 now! costs 20p/min + +urgent! we are trying to contact u todays draw shows that you have won a ??800 prize guaranteed. call 09050000460 from land line. claim j89. po box245c2150pm + +"haha good to hear +what you doing?how are you? + +"mum +free unlimited hardcore porn direct 2 your mobile txt porn to 69200 & get free access for 24 hrs then chrgd per day txt stop 2exit. this msg is free + +u 447801259231 have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094597 + +"well done! your 4* costa del sol holiday or ??5000 await collection. call 09050090044 now toclaim. sae +shall call now dear having food + +yo! howz u? girls never rang after india. l + +"do you ever notice that when you're driving +"wan2 win a meet+greet with westlife 4 u or a m8? they are currently on what tour? 1)unbreakable +"i'm there and i can see you +pls confirm the time to collect the cheque. + +"you have been selected to stay in 1 of 250 top british hotels - for nothing! holiday worth ??350! to claim +tells u 2 call 09066358152 to claim ??5000 prize. u have 2 enter all ur mobile & personal details @ the prompts. careful! + +can a not? + +88066 from 88066 lost 3pound help + +"free message activate your 500 free text messages by replying to this message with the word free for terms & conditions +sorry! u can not unsubscribe yet. the mob offer package has a min term of 54 weeks> pls resubmit request after expiry. reply themob help 4 more info + +lol you won't feel bad when i use her money to take you out to a steak dinner =d + +you have 1 new message. please call 08712400200. + +a ??400 xmas reward is waiting for you! our computer has randomly picked you from our loyal mobile customers to receive a ??400 reward. just call 09066380611 + +hey i will be really pretty late... you want to go for the lesson first? i will join you. i'm only reaching tp mrt + +you do what all you like + +you have won a guaranteed ??1000 cash or a ??2000 prize. to claim yr prize call our customer service representative on 08714712412 between 10am-7pm cost 10p + +well done england! get the official poly ringtone or colour flag on yer mobile! text tone or flag to 84199 now! opt-out txt eng stop. box39822 w111wx ??1.50 + +i sent your maga that money yesterday oh. + +i wont touch you with out your permission. + +k... must book a not huh? so going for yoga basic on sunday? + +or better still can you catch her and let ask her if she can sell <#> for me. + +"download as many ringtones as u like no restrictions +he says hi and to get your ass back to south tampa (preferably at a kegger) + +"sorry +22 days to kick off! for euro2004 u will be kept up to date with the latest news and results daily. to be removed send get txt stop to 83222 + +freemsg: hey - i'm buffy. 25 and love to satisfy men. home alone feeling randy. reply 2 c my pix! qlynnbv help08700621170150p a msg send stop to stop txts + +pls ask macho how much is budget for bb bold 2 is cos i saw a new one for <#> dollars. + +u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09065171142-stopsms-08718727870150ppm + +no:-)i got rumour that you going to buy apartment in chennai:-) + +"a boy loved a gal. he propsd bt she didnt mind. he gv lv lttrs +not heard from u4 a while. call 4 rude chat private line 01223585334 to cum. wan 2c pics of me gettin shagged then text pix to 8552. 2end send stop 8552 sam xxx + +i have many dependents + +no that just means you have a fat head + +"urgent! you have won a 1 week free membership in our ??100 +from next month get upto 50% more calls 4 ur standard network charge 2 activate call 9061100010 c wire3.net 1st4terms pobox84 m26 3uz cost ??1.50 min mobcudb more + +call 09090900040 & listen to extreme dirty live chat going on in the office right now total privacy no one knows your [sic] listening 60p min 24/7mp 0870753331018+ + +we're on the opposite side from where we dropped you off + +do ?_ all wan 2 meet up n combine all the parts? how's da rest of da project going? + +urgent we are trying to contact you last weekends draw shows u have won a ??1000 prize guaranteed call 09064017295 claim code k52 valid 12hrs 150p pm + +what today-sunday..sunday is holiday..so no work.. + +when are you going to ride your bike? + +tell where you reached + +free entry in 2 a weekly comp for a chance to win an ipod. txt pod to 80182 to get entry (std txt rate) t&c's apply 08452810073 for details 18+ + +"hot live fantasies call now 08707509020 just 20p per min ntt ltd +"i don't know +"for your chance to win a free bluetooth headset then simply reply back with \adp\""""" + +or ?_ go buy wif him then i meet ?_ later can? + +i don't want you to leave. but i'm barely doing what i can to stay sane. fighting with you constantly isn't helping. + +when should i come over? + +i jokin oni lar.. ?? busy then i wun disturb ?_. + +hard but true: how much you show & express your love to someone....that much it will hurt when they leave you or you get seperated...!?????_?????ud evening... + +still i have not checked it da. . . + +arun can u transfr me d amt + +what happened in interview? + +"night has ended for another day +"kind of. just missed train cos of asthma attack +doesn't g have class early tomorrow and thus shouldn't be trying to smoke at <#> + +doing my masters. when will you buy a bb cos i have for sale and how's bf + +25p 4 alfie moon's children in need song on ur mob. tell ur m8s. txt tone charity to 8007 for nokias or poly charity for polys: zed 08701417012 profit 2 charity. + +"awesome +anything lar... + +"someone has contacted our dating service and entered your phone becausethey fancy you! to find out who it is call from a landline 09058098002. pobox1 +want the latest video handset? 750 anytime any network mins? half price line rental? reply or call 08000930705 for delivery tomorrow + +camera - you are awarded a sipix digital camera! call 09061221066 fromm landline. delivery within 28 days. + +studying. but i.ll be free next weekend. + +i'm at work. please call + +yes:)here tv is always available in work place.. + +i'm not. she lip synced with shangela. + +"think ur smart ? win ??200 this week in our weekly quiz +you have an important customer service announcement from premier. call freephone 0800 542 0578 now! + +super msg da:)nalla timing. + +k.k.this month kotees birthday know? + +"sms. ac jsco: energy is high +"hot live fantasies call now 08707500020 just 20p per min ntt ltd +bought one ringtone and now getting texts costing 3 pound offering more tones etc + +santa calling! would your little ones like a call from santa xmas eve? call 09058094583 to book your time. + +you have 1 new message. please call 08718738034. + +2p per min to call germany 08448350055 from your bt line. just 2p per min. check planettalkinstant.com for info & t's & c's. text stop to opt out + +oh sorry please its over + +"<#> is fast approaching. so +eastenders tv quiz. what flower does dot compare herself to? d= violet e= tulip f= lily txt d e or f to 84025 now 4 chance 2 win ??100 cash wkent/150p16+ + +ok. very good. its all about making that money. + +"hello from orange. for 1 month's free access to games +"\wen u miss someone why to miss them just keep-in-touch\"" gdeve..""" + +i will send them to your email. do you mind <#> times per night? + +"loan for any purpose ??500 - ??75 +someone has contacted our dating service and entered your phone because they fancy you! to find out who it is call from a landline 09111032124 . pobox12n146tf150p + +please call 08712402902 immediately as there is an urgent message waiting for you. + ++123 congratulations - in this week's competition draw u have won the ??1450 prize to claim just call 09050002311 b4280703. t&cs/stop sms 08718727868. over 18 only 150ppm + +december only! had your mobile 11mths+? you are entitled to update to the latest colour camera mobile for free! call the mobile update vco free on 08002986906 + +"customer service announcement. we recently tried to make a delivery to you but were unable to do so +your weekly cool-mob tones are ready to download !this weeks new tones include: 1) crazy frog-axel f>>> 2) akon-lonely>>> 3) black eyed-dont p >>>more info in n + +interflora - ??it's not too late to order interflora flowers for christmas call 0800 505060 to place your order before midnight tomorrow. + +do you want a new nokia 3510i colour phone delivered tomorrow? with 200 free minutes to any mobile + 100 free text + free camcorder reply or call 8000930705 + +"wen ur lovable bcums angry wid u +dear 0776xxxxxxx u've been invited to xchat. this is our final attempt to contact u! txt chat to 86688 150p/msgrcvdhg/suite342/2lands/row/w1j6hl ldn 18yrs + +what is the plural of the noun research? + +a ??400 xmas reward is waiting for you! our computer has randomly picked you from our loyal mobile customers to receive a ??400 reward. just call 09066380611 + +hello. we need some posh birds and chaps to user trial prods for champneys. can i put you down? i need your address and dob asap. ta r + +win a year supply of cds 4 a store of ur choice worth ??500 & enter our ??100 weekly draw txt music to 87066 ts&cs www.ldew.com.subs16+1win150ppmx3 + +for taking part in our mobile survey yesterday! you can now have 500 texts 2 use however you wish. 2 get txts just send txt to 80160 t&c www.txt43.com 1.50p + +"no we put party 7 days a week and study lightly +you have an important customer service announcement from premier. + +i not at home now lei... + +don't b floppy... b snappy & happy! only gay chat service with photo upload call 08718730666 (10p/min). 2 stop our texts call 08712460324 + +but if she.s drinkin i'm ok. + +when are you guys leaving? + +free entry into our ??250 weekly comp just send the word enter to 88877 now. 18 t&c www.textcomp.com + +private! your 2003 account statement for 07753741225 shows 800 un-redeemed s. i. m. points. call 08715203677 identifier code: 42478 expires 24/10/04 + +what is your account number? + +are you willing to go for aptitude class. + +"oh... i was thkin of goin yogasana at 10 den no nd to go at 3 den can rush to parco 4 nb... okie lor +was actually sleeping and still might when u call back. so a text is gr8. you rock sis. will send u a text wen i wake. + +send a logo 2 ur lover - 2 names joined by a heart. txt love name1 name2 mobno eg love adam eve 07123456789 to 87077 yahoo! pobox36504w45wq txtno 4 no ads 150p. + +buy space invaders 4 a chance 2 win orig arcade game console. press 0 for games arcade (std wap charge) see o2.co.uk/games 4 terms + settings. no purchase + +"haha better late than ever +your b4u voucher w/c 27/03 is marsms. log onto www.b4utele.com for discount credit. to opt out reply stop. customer care call 08717168528 + +"hi babe its chloe +urgent! please call 09061743811 from landline. your abta complimentary 4* tenerife holiday or ??5000 cash await collection sae t&cs box 326 cw25wx 150ppm + +you have won a guaranteed ??200 award or even ??1000 cashto claim ur award call free on 08000407165 (18+) 2 stop getstop on 88222 php + +win a year supply of cds 4 a store of ur choice worth ??500 & enter our ??100 weekly draw txt music to 87066 ts&cs www.ldew.com.subs16+1win150ppmx3 + +new textbuddy chat 2 horny guys in ur area 4 just 25p free 2 receive search postcode or at gaytextbuddy.com. txt one name to 89693. 08715500022 rpl stop 2 cnl + +had your mobile 11mths ? update for free to oranges latest colour camera mobiles & unlimited weekend calls. call mobile upd8 on freefone 08000839402 or 2stoptx + +"thanks for your ringtone order +back 2 work 2morro half term over! can u c me 2nite 4 some sexy passion b4 i have 2 go back? chat now 09099726481 luv dena calls ??1/minmobsmorelkpobox177hp51fl + +and also i've sorta blown him off a couple times recently so id rather not text him out of the blue looking for weed + +k:)k.are you in college? + +urgent please call 09066612661 from landline. ??5000 cash or a luxury 4* canary islands holiday await collection. t&cs sae award. 20m12aq. 150ppm. 16+ ??? + +"freemsg why haven't you replied to my text? i'm randy +u 447801259231 have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094597 + +sunshine quiz! win a super sony dvd recorder if you canname the capital of australia? text mquiz to 82277. b + +5p 4 alfie moon's children in need song on ur mob. tell ur m8s. txt tone charity to 8007 for nokias or poly charity for polys: zed 08701417012 profit 2 charity. + +87077: kick off a new season with 2wks free goals & news to ur mobile! txt ur club name to 87077 eg villa to 87077 + +sent me de webadres for geting salary slip + +xmas iscoming & ur awarded either ??500 cd gift vouchers & free entry 2 r ??100 weekly draw txt music to 87066 tnc www.ldew.com1win150ppmx3age16subscription + +"yeah i am +how much r ?_ willing to pay? + +natalja (25/f) is inviting you to be her friend. reply yes-440 or no-440 see her: www.sms.ac/u/nat27081980 stop? send stop frnd to 62468 + +do you want a new nokia 3510i colour phone delivered tomorrow? with 200 free minutes to any mobile + 100 free text + free camcorder reply or call 08000930705 + +"yes obviously +i wont do anything de. + +"auction round 4. the highest bid is now ??54. next maximum bid is ??71. to bid +i cant wait to see you! how were the photos were useful? :) + +"well done! your 4* costa del sol holiday or ??5000 await collection. call 09050090044 now toclaim. sae +"trust me. even if isn't there +text banneduk to 89555 to see! cost 150p textoperator g696ga 18+ xxx + +i notice you like looking in the shit mirror youre turning into a right freak + +"in the simpsons movie released in july 2007 name the band that died at the start of the film? a-green day +we tried to contact you re your reply to our offer of a video handset? 750 anytime any networks mins? unlimited text? camcorder? reply or call 08000930705 now + +"for ur chance to win ??250 cash every wk txt: play to 83370. t's&c's www.music-trivia.net custcare 08715705022 +are we doing the norm tomorrow? i finish just a 4.15 cos of st tests. need to sort library stuff out at some point tomo - got letter from today - access til end march so i better get move on! + +all sounds good. fingers . makes it difficult to type + +sorry about that this is my mates phone and i didnt write it love kate + +you have won a guaranteed ??200 award or even ??1000 cashto claim ur award call free on 08000407165 (18+) 2 stop getstop on 88222 php. rg21 4jx + +"wan2 win a meet+greet with westlife 4 u or a m8? they are currently on what tour? 1)unbreakable +"had your contract mobile 11 mnths? latest motorola +promotion number: 8714714 - ur awarded a city break and could win a ??200 summer shopping spree every wk. txt store to 88039 . skilgme. tscs087147403231winawk!age16 ??1.50perwksub + +okay but i thought you were the expert + +"urgent! call 09066612661 from landline. your complementary 4* tenerife holiday or ??10 +"free-message: jamster!get the crazy frog sound now! for poly text mad1 +reminder: you have not downloaded the content you have already paid for. goto http://doit. mymoby. tv/ to collect your content. + +santa calling! would your little ones like a call from santa xmas eve? call 09058094583 to book your time. + +your dad is back in ph? + +"congrats 2 mobile 3g videophones r yours. call 09063458130 now! videochat wid ur mates +dun need to use dial up juz open da browser n surf... + +"hello +urgent! your mobile number has been awarded with a ??2000 prize guaranteed. call 09061790121 from land line. claim 3030. valid 12hrs only 150ppm + +december only! had your mobile 11mths+? you are entitled to update to the latest colour camera mobile for free! call the mobile update co free on 08002986906 + +shhhhh nobody is supposed to know! + +i think chennai well settled? + +"you are guaranteed the latest nokia phone +ya i knw u vl giv..its ok thanks kano..anyway enjoy wit ur family wit 1st salary..:-);-) + +email alertfrom: jeri stewartsize: 2kbsubject: low-cost prescripiton drvgsto listen to email call 123 + +r u in this continent? + +promotion number: 8714714 - ur awarded a city break and could win a ??200 summer shopping spree every wk. txt store to 88039 . skilgme. tscs087147403231winawk!age16 ??1.50perwksub + +"you 07801543489 are guaranteed the latests nokia phone +check audrey's status right now + +freemsg: hey - i'm buffy. 25 and love to satisfy men. home alone feeling randy. reply 2 c my pix! qlynnbv help08700621170150p a msg send stop to stop txts + +free camera phones with linerental from 4.49/month with 750 cross ntwk mins. 1/2 price txt bundle deals also avble. call 08001950382 or call2optout/j mf + +daddy will take good care of you :) + +urgent! we are trying to contact you. last weekends draw shows that you have won a ??900 prize guaranteed. call 09061701851. claim code k61. valid 12hours only + +gsoh? good with spam the ladies?u could b a male gigolo? 2 join the uk's fastest growing mens club reply oncall. mjzgroup. 08714342399.2stop reply stop. msg@??1.50rcvd + +"thank you. and by the way +"our dating service has been asked 2 contact u by someone shy! call 09058091870 now all will be revealed. pobox84 +talk sexy!! make new friends or fall in love in the worlds most discreet text dating service. just text vip to 83110 and see who you could meet. + +pls she needs to dat slowly or she will vomit more. + +i sent lanre fakeye's eckankar details to the mail box + +gent! we are trying to contact you. last weekends draw shows that you won a ??1000 prize guaranteed. call 09064012160. claim code k52. valid 12hrs only. 150ppm + +"someone u know has asked our dating service 2 contact you! cant guess who? call 09058097189 now all will be revealed. pobox 6 +you are chosen to receive a ??350 award! pls call claim number 09066364311 to collect your award which you are selected to receive as a valued mobile customer. + +really dun bluff me leh... u sleep early too. nite... + +"freemsg why haven't you replied to my text? i'm randy +let me know if you need anything else. salad or desert or something... how many beers shall i get? + +"new tones this week include: 1)mcfly-all ab.. +"goodmorning +"get 3 lions england tone +which is why i never wanted to tell you any of this. which is why i'm so short with you and on-edge as of late. + +freemsg today's the day if you are ready! i'm horny & live in your town. i love sex fun & games! netcollex ltd 08700621170150p per msg reply stop to end + +reply with your name and address and you will receive by post a weeks completely free accommodation at various global locations www.phb1.com ph:08700435505150p + +urgent! we are trying to contact you. last weekends draw shows that you have won a ??900 prize guaranteed. call 09061701939. claim code s89. valid 12hrs only + +"oh really? perform +urgent! your mobile number has been awarded with a ??2000 prize guaranteed. call 09061790121 from land line. claim 3030. valid 12hrs only 150ppm + +thank u! + +nope i'll come online now.. + +"you aren't coming home between class +u attend ur driving lesson how many times a wk n which day? + +as one of our registered subscribers u can enter the draw 4 a 100 g.b. gift voucher by replying with enter. to unsubscribe text stop + +want 2 get laid tonight? want real dogging locations sent direct 2 ur mob? join the uk's largest dogging network by txting moan to 69888nyt. ec2a. 31p.msg + +the greatest test of courage on earth is to bear defeat without losing heart....gn tc + +"okay. no no +ur cash-balance is currently 500 pounds - to maximize ur cash-in now send cash to 86688 only 150p/msg. cc: 08708800282 hg/suite342/2lands row/w1j6hl + +ok then i'll let him noe later n ask him call u tmr... + +moby pub quiz.win a ??100 high street prize if u know who the new duchess of cornwall will be? txt her first name to 82277.unsub stop ??1.50 008704050406 sp + +"do you ever notice that when you're driving +ok + +87077: kick off a new season with 2wks free goals & news to ur mobile! txt ur club name to 87077 eg villa to 87077 + +camera - you are awarded a sipix digital camera! call 09061221066 fromm landline. delivery within 28 days. + +so gd got free ice cream... i oso wan... + +nice talking to you! please dont forget my pix :) i want to see all of you... + +well then you have a great weekend! + +ok... + +"loan for any purpose ??500 - ??75 +how much it will cost approx . per month. + +"they said if its gonna snow +did u get that message + +"awesome +can you do online transaction? + +"final chance! claim ur ??150 worth of discount vouchers today! text yes to 85023 now! savamob +urgent! we are trying to contact u. todays draw shows that you have won a ??2000 prize guaranteed. call 09066358361 from land line. claim y87. valid 12hrs only + +your pussy is perfect! + +i want kfc its tuesday. only buy 2 meals only 2. no gravy. only 2 mark. 2! + +private! your 2004 account statement for 07742676969 shows 786 unredeemed bonus points. to claim call 08719180248 identifier code: 45239 expires + +25p 4 alfie moon's children in need song on ur mob. tell ur m8s. txt tone charity to 8007 for nokias or poly charity for polys: zed 08701417012 profit 2 charity. + +"this is the 2nd time we have tried to contact u. u have won the ??400 prize. 2 claim is easy +networking technical support associate. + +otherwise had part time job na-tuition.. + +urgent! please call 09061213237 from landline. ??5000 cash or a luxury 4* canary islands holiday await collection. t&cs sae po box 177. m227xy. 150ppm. 16+ + +"5 free top polyphonic tones call 087018728737 +no 1 polyphonic tone 4 ur mob every week! just txt pt2 to 87575. 1st tone free ! so get txtin now and tell ur friends. 150p/tone. 16 reply hl 4info + +private! your 2003 account statement for 07808 xxxxxx shows 800 un-redeemed s. i. m. points. call 08719899217 identifier code: 41685 expires 07/11/04 + +"as a valued customer +"free message activate your 500 free text messages by replying to this message with the word free for terms & conditions +"sorry +"free game. get rayman golf 4 free from the o2 games arcade. 1st get ur games settings. reply post +promotion number: 8714714 - ur awarded a city break and could win a ??200 summer shopping spree every wk. txt store to 88039 . skilgme. tscs087147403231winawk!age16 ??1.50perwksub + +do you want a new nokia 3510i colour phone deliveredtomorrow? with 300 free minutes to any mobile + 100 free texts + free camcorder reply or call 08000930705 + +do u konw waht is rael friendship im gving yuo an exmpel: jsut ese tihs msg.. evrey splleing of tihs msg is wrnog.. bt sitll yuo can raed it wihtuot ayn mitsake.. goodnight & have a nice sleep..sweet dreams.. + +i love your ass! do you enjoy doggy style? :) + +i'm in inside office..still filling forms.don know when they leave me. + +somebody set up a website where you can play hold em using eve online spacebucks + +"urgent! call 09066350750 from your landline. your complimentary 4* ibiza holiday or 10 +ok can... + +we tried to contact you re your reply to our offer of a video phone 750 anytime any network mins half price line rental camcorder reply or call 08000930705 + +"that's fine +"sunshine hols. to claim ur med holiday send a stamped self address envelope to drinks on us uk +hi! this is roger from cl. how are you? + +yeah but which is worse for i + +anything lor if they all go then i go lor... + +money!!! you r a lucky winner ! 2 claim your prize text money 2 88600 over ??1million to give away ! ppt150x3+normal text rate box403 w1t1jy + +"44 7732584351 +your unique user id is 1172. for removal send stop to 87239 customer services 08708034412 + +free msg: single? find a partner in your area! 1000s of real people are waiting to chat now!send chat to 62220cncl send stopcs 08717890890??1.50 per msg + +me too watching surya movie only. . .after 6 pm vijay movie pokkiri + +recpt 1/3. you have ordered a ringtone. your order is being processed... + +ok enjoy . r u there in home. + +waaaat?? lololo ok next time then! + +yes. that will be fine. love you. be safe. + +yeah that'd pretty much be the best case scenario + +ever thought about living a good life with a perfect partner? just txt back name and age to join the mobile community. (100p/sms) + +"\for the most sparkling shopping breaks from 45 per person; call 0121 2025050 or visit www.shortbreaks.org.uk\""""" + +i couldn't say no as he is a dying man and i feel sad for him so i will go and i just wanted you to know i would probably be gone late into your night + +urgent! please call 09061213237 from landline. ??5000 cash or a luxury 4* canary islands holiday await collection. t&cs sae po box 177. m227xy. 150ppm. 16+ + +adult 18 content your video will be with you shortly + +"free message activate your 500 free text messages by replying to this message with the word free for terms & conditions +you have won a nokia 7250i. this is what you get when you win our free auction. to take part send nokia to 86021 now. hg/suite342/2lands row/w1jhl 16+ + +whore you are unbelievable. + +"sure +"rock yr chik. get 100's of filthy films &xxx pics on yr phone now. rply filth to 69669. saristar ltd +moby pub quiz.win a ??100 high street prize if u know who the new duchess of cornwall will be? txt her first name to 82277.unsub stop ??1.50 008704050406 sp arrow + +dunno lei... i might b eatin wif my frens... if ?_ wan to eat then i wait 4 ?_ lar + +"alright we'll bring it to you +no da..today also i forgot.. + +"a boy was late 2 home. his father: \power of frndship\""""" + +you best watch what you say cause i get drunk as a motherfucker + +s da..al r above <#> + +today iz yellow rose day. if u love my frndship give me 1 misscall & send this to ur frndz & see how many miss calls u get. if u get 6missed u marry ur lover. + +are you sure you don't mean \get here + +sad story of a man - last week was my b'day. my wife did'nt wish me. my parents forgot n so did my kids . i went to work. even my colleagues did not wish. + +win a year supply of cds 4 a store of ur choice worth ??500 & enter our ??100 weekly draw txt music to 87066 ts&cs www.ldew.com.subs16+1win150ppmx3 + +ok + +"hot live fantasies call now 08707509020 just 20p per min ntt ltd +"freemsg why haven't you replied to my text? i'm randy +r ?_ comin back for dinner? + +december only! had your mobile 11mths+? you are entitled to update to the latest colour camera mobile for free! call the mobile update co free on 08002986906 + +you have won a guaranteed ??1000 cash or a ??2000 prize. to claim yr prize call our customer service representative on 08714712379 between 10am-7pm cost 10p + +he is world famamus.... + +urgent! your mobile number has been awarded with a ??2000 bonus caller prize. call 09058095201 from land line. valid 12hrs only + +warner village 83118 c colin farrell in swat this wkend village & get 1 free med. popcorn!just show msg+ticket.valid 4-7/12. c t&c . reply sony 4 mre film offers + +recpt 1/3. you have ordered a ringtone. your order is being processed... + +"urgent! your mobile number *************** won a ??2000 bonus caller prize on 10/06/03! this is the 2nd attempt to reach you! call 09066368753 asap! box 97n7qp +reply to win ??100 weekly! where will the 2006 fifa world cup be held? send stop to 87239 to end service + +haiyoh... maybe your hamster was jealous of million + +oh... okie lor...we go on sat... + +tells u 2 call 09066358152 to claim ??5000 prize. u have 2 enter all ur mobile & personal details @ the prompts. careful! + +how come i din c ?_... yup i cut my hair... + +"yeah why not +hello hun how ru? its here by the way. im good. been on 2 dates with that guy i met in walkabout so far. we have to meet up soon. hows everyone else? + +urgent! please call 09061743810 from landline. your abta complimentary 4* tenerife holiday or #5000 cash await collection sae t&cs box 326 cw25wx 150 ppm + +"had your mobile 10 mths? update to the latest camera/video phones for free. keep ur same number +"i'm in solihull +"i can't right this second +love has one law; make happy the person you love. in the same way friendship has one law; never make ur friend feel alone until you are alive.... gud night + +double your mins & txts on orange or 1/2 price linerental - motorola and sonyericsson with b/tooth free-nokia free call mobileupd8 on 08000839402 or2optout/hv9d + +oh god. i'm gonna google nearby cliffs now. + +ok im not sure what time i finish tomorrow but i wanna spend the evening with you cos that would be vewy vewy lubly! love me xxx + +freemsg>fav xmas tones!reply real + +should i head straight there or what + +please call 08712402779 immediately as there is an urgent message waiting for you + +you are a winner u have been specially selected 2 receive ??1000 or a 4* holiday (flights inc) speak to a live operator 2 claim 0871277810910p/min (18+) + +thanks for your subscription to ringtone uk your mobile will be charged ??5/month please confirm by replying yes or no. if you reply no you will not be charged + +no i'm in the same boat. still here at my moms. check me out on yo. i'm half naked. + +fine i miss you very much. + +from www.applausestore.com monthlysubscription/msg max6/month t&csc web age16 2stop txt stop + +ummma.will call after check in.our life will begin from qatar so pls pray very hard. + +text banneduk to 89555 to see! cost 150p textoperator g696ga 18+ xxx + +"hot live fantasies call now 08707500020 just 20p per min ntt ltd +dont kick coco when he's down + +erutupalam thandiyachu + +oops sorry. just to check that you don't mind picking me up tomo at half eight from station. would that be ok? + +"ah +"loan for any purpose ??500 - ??75 +hmv bonus special 500 pounds of genuine hmv vouchers to be won. just answer 4 easy questions. play now! send hmv to 86688 more info:www.100percent-real.com + +camera - you are awarded a sipix digital camera! call 09061221066 fromm landline. delivery within 28 days. + +this is wishing you a great day. moji told me about your offer and as always i was speechless. you offer so easily to go to great lengths on my behalf and its stunning. my exam is next friday. after that i will keep in touch more. sorry. + +sorry i now then c ur msg... yar lor so poor thing... but only 4 one night... tmr u'll have a brand new room 2 sleep in... + +todays voda numbers ending 5226 are selected to receive a ?350 award. if you hava a match please call 08712300220 quoting claim code 1131 standard rates app + +"miss ya +"sorry +tell my bad character which u dnt lik in me. i'll try to change in <#> . i ll add tat 2 my new year resolution. waiting for ur reply.be frank...good morning. + +do you want a new nokia 3510i colour phone delivered tomorrow? with 200 free minutes to any mobile + 100 free text + free camcorder reply or call 08000930705 + +hi! you just spoke to maneesha v. we'd like to know if you were satisfied with the experience. reply toll free with yes or no. + +"\gimme a few\"" was <#> minutes ago""" + +mum not going robinson already. + +huh but i cant go 2 ur house empty handed right? + +whats the staff name who is taking class for us? + +moby pub quiz.win a ??100 high street prize if u know who the new duchess of cornwall will be? txt her first name to 82277.unsub stop ??1.50 008704050406 sp + +"wa +k...k:)why cant you come here and search job:) + +if i start sending blackberry torch to nigeria will you find buyer for me?like 4a month. and tell dad not to buy bb from anyone oh. + +u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094599 + +* free* polyphonic ringtone text super to 87131 to get your free poly tone of the week now! 16 sn pobox202 nr31 7zs subscription 450pw + +"update_now - xmas offer! latest motorola +"just making dinner +thanx 4 puttin da fone down on me!! + +"urgent ur awarded a complimentary trip to eurodisinc trav +"reminder from o2: to get 2.50 pounds free call credit and details of great offers pls reply 2 this text with your valid name +cancel cheyyamo?and get some money back? + +u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09065171142-stopsms-08718727870150ppm + +"latest news! police station toilet stolen +tells u 2 call 09066358152 to claim ??5000 prize. u have 2 enter all ur mobile & personal details @ the prompts. careful! + +the monthly amount is not that terrible and you will not pay anything till 6months after finishing school. + +hope you are having a good week. just checking in + +"free message activate your 500 free text messages by replying to this message with the word free for terms & conditions +watching ajith film ah? + +what's up. do you want me to come online? + +yeah it's jus rite... + +"fantasy football is back on your tv. go to sky gamestar on sky active and play ??250k dream team. scoring starts on saturday +urgent! your mobile number has been awarded with a ??2000 bonus caller prize. call 09058095201 from land line. valid 12hrs only + +hiya stu wot u up 2.im in so much truble at home at moment evone hates me even u! wot the hell av i done now? y wont u just tell me text bck please luv dan + +"congratulations! thanks to a good friend u have won the ??2 +do you want a new nokia 3510i colour phone deliveredtomorrow? with 300 free minutes to any mobile + 100 free texts + free camcorder reply or call 08000930705 + ++449071512431 urgent! this is the 2nd attempt to contact u!u have won ??1250 call 09071512433 b4 050703 t&csbcm4235wc1n3xx. callcost 150ppm mobilesvary. max??7. 50 + +reply to win ??100 weekly! what professional sport does tiger woods play? send stop to 87239 to end service + +"accordingly. i repeat +"england v macedonia - dont miss the goals/team news. txt ur national team to 87077 eg england to 87077 try:wales +we live in the next <#> mins + +yes i think so. i am in office but my lap is in room i think thats on for the last few days. i didnt shut that down + +sorry da:)i was thought of calling you lot of times:)lil busy.i will call you at noon.. + +"want to funk up ur fone with a weekly new tone reply tones2u 2 this text. www.ringtones.co.uk +8007 25p 4 alfie moon's children in need song on ur mob. tell ur m8s. txt tone charity to 8007 for nokias or poly charity for polys :zed 08701417012 profit 2 charity + +can u get 2 phone now? i wanna chat 2 set up meet call me now on 09096102316 u can cum here 2moro luv jane xx calls??1/minmoremobsemspobox45po139wa + +yup... ok i go home look at the timings then i msg ?_ again... xuhui going to learn on 2nd may too but her lesson is at 8am + +can't take any major roles in community outreach. you rock mel + +i'm in town now so i'll jus take mrt down later. + +is ur paper today in e morn or aft? + +whatsup there. dont u want to sleep + +ok lar... joking wif u oni... + +well done and ! luv ya all + +you available now? i'm like right around hillsborough & <#> th + +collect your valentine's weekend to paris inc flight & hotel + ??200 prize guaranteed! text: paris to no: 69101. www.rtf.sphosting.com + +gudnite....tc...practice going on + +u are subscribed to the best mobile content service in the uk for ??3 per ten days until you send stop to 83435. helpline 08706091795. + +(that said can you text him one more time?) + +"no +"i'm not smoking while people use \wylie smokes too much\"" to justify ruining my shit""" + +the basket's gettin full so i might be by tonight + +free top ringtone -sub to weekly ringtone-get 1st week free-send subpoly to 81618-?3 per week-stop sms-08718727870 + +"xmas offer! latest motorola +todays vodafone numbers ending with 4882 are selected to a receive a ??350 award. if your number matches call 09064019014 to receive your ??350 award. + +"if you don't +i want to grasp your pretty booty :) + +"hello from orange. for 1 month's free access to games +"for ur chance to win a ??250 wkly shopping spree txt: shop to 80878. t's&c's www.txt-2-shop.com custcare 08715705022 +congratulations ur awarded either ??500 of cd gift vouchers & free entry 2 our ??100 weekly draw txt music to 87066 tncs www.ldew.com 1 win150ppmx3age16 + +"freemsg: claim ur 250 sms messages-text ok to 84025 now!use web2mobile 2 ur mates etc. join txt250.com for 1.50p/wk. t&c box139 +free for 1st week! no1 nokia tone 4 ur mobile every week just txt nokia to 8077 get txting and tell ur mates. www.getzed.co.uk pobox 36504 w45wq 16+ norm150p/tone + +as a registered optin subscriber ur draw 4 ??100 gift voucher will be entered on receipt of a correct ans to 80062 whats no1 in the bbc charts + +"machan you go to gym tomorrow +still otside le..u come 2morrow maga.. + +mobile club: choose any of the top quality items for your mobile. 7cfca1a + +great. never been better. each day gives even more reasons to thank god + +"i dun thk i'll quit yet... hmmm +guess who am i?this is the first time i created a web page www.asjesus.com read all i wrote. i'm waiting for your opinions. i want to be your friend 1/1 + +... are you in the pub? + +"latest news! police station toilet stolen +free unlimited hardcore porn direct 2 your mobile txt porn to 69200 & get free access for 24 hrs then chrgd per day txt stop 2exit. this msg is free + +huh y lei... + +"the gas station is like a block away from my house +thesmszone.com lets you send free anonymous and masked messages..im sending this message from there..do you see the potential for abuse??? + +roger that. we???re probably going to rem in about 20 + +missed call alert. these numbers called but left no message. 07008009200 + +"think ur smart ? win ??200 this week in our weekly quiz +no. 1 nokia tone 4 ur mob every week! just txt nok to 87021. 1st tone free ! so get txtin now and tell ur friends. 150p/tone. 16 reply hl 4info + +"you have been specially selected to receive a \3000 award! call 08712402050 before the lines close. cost 10ppm. 16+. t&cs apply. ag promo""" + +"good afternon +i plane to give on this month end. + +here is your discount code rp176781. to stop further messages reply stop. www.regalportfolio.co.uk. customer services 08717205546 + +"\urgent! this is the 2nd attempt to contact u!u have won ??1000call 09071512432 b4 300603t&csbcm4235wc1n3xx.callcost150ppmmobilesvary. max??7. 50\""""" + +"complimentary 4 star ibiza holiday or ??10 +y so late but i need to go n get da laptop... + +"aight that'll work +that means from february to april i'll be getting a place to stay down there so i don't have to hustle back and forth during audition season as i have since my sister moved away from harlem. + +you are awarded a sipix digital camera! call 09061221061 from landline. delivery within 28days. t cs box177. m221bp. 2yr warranty. 150ppm. 16 . p p??3.99 + +i want to send something that can sell fast. <#> k is not easy money. + +"latest news! police station toilet stolen +bloomberg -message center +447797706009 why wait? apply for your future http://careers. bloomberg.com + +im gonnamissu so much!!i would say il send u a postcard buttheres aboutas much chance of merememberin asthere is ofsi not breakin his contract!! luv yaxx + +hanging out with my brother and his family + +i will cal you sir. in meeting + +"urgent! your mobile was awarded a ??1 +new textbuddy chat 2 horny guys in ur area 4 just 25p free 2 receive search postcode or at gaytextbuddy.com. txt one name to 89693 + +ok.ok ok..then..whats ur todays plan + +hey they r not watching movie tonight so i'll prob b home early... + +die... i accidentally deleted e msg i suppose 2 put in e sim archive. haiz... i so sad... + +"yeah +get a free mobile video player free movie. to collect text go to 89105. its free! extra films can be ordered t's and c's apply. 18 yrs only + +s.i think he is waste for rr.. + +"hmm... dunno leh +guess who am i?this is the first time i created a web page www.asjesus.com read all i wrote. i'm waiting for your opinions. i want to be your friend 1/1 + +camera - you are awarded a sipix digital camera! call 09061221066 fromm landline. delivery within 28 days. + +u 447801259231 have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094597 + +<#> w jetton ave if you forgot + +then dun wear jeans lor... + +oh really?? did you make it on air? what's your talent? + +"ups which is 3days also +gam gone after outstanding innings. + +still in customer place + +painful words- \i thought being happy was the most toughest thing on earth... but + +"like i made him throw up when we were smoking in our friend's car one time +u have a secret admirer. reveal who thinks u r so special. call 09065174042. to opt out reply reveal stop. 1.50 per msg recd. cust care 07821230901 + +for taking part in our mobile survey yesterday! you can now have 500 texts 2 use however you wish. 2 get txts just send txt to 80160 t&c www.txt43.com 1.50p + +s:)s.nervous <#> :) + +"dont pack what you can buy at any store.like cereals. if you must pack food +"hi this is yijue +"hottest pics straight to your phone!! see me getting wet and wanting +free entry into our ??250 weekly comp just send the word enter to 88877 now. 18 t&c www.textcomp.com + +i am not having her number sir + +ha... then we must walk to everywhere... cannot take tram. my cousin said can walk to vic market from our hotel + +here is your discount code rp176781. to stop further messages reply stop. www.regalportfolio.co.uk. customer services 08717205546 + +"0a$networks allow companies to bill for sms +did u see what i posted on your facebook? + +"six chances to win cash! from 100 to 20 +"congrats 2 mobile 3g videophones r yours. call 09063458130 now! videochat wid ur mates +"for ur chance to win a ??250 wkly shopping spree txt: shop to 80878. t's&c's www.txt-2-shop.com custcare 08715705022 +"a gram usually runs like <#> +urgent! we are trying to contact u. todays draw shows that you have won a ??800 prize guaranteed. call 09050001295 from land line. claim a21. valid 12hrs only + +"haha awesome +ur tonexs subscription has been renewed and you have been charged ??4.50. you can choose 10 more polys this month. www.clubzed.co.uk *billing msg* + +do you want 750 anytime any network mins 150 text and a new video phone for only five pounds per week call 08002888812 or reply for delivery tomorrow + +ok... + +"hot live fantasies call now 08707509020 just 20p per min ntt ltd +i cant pick the phone right now. pls send a message + +18 days to euro2004 kickoff! u will be kept informed of all the latest news and results daily. unsubscribe send get euro stop to 83222. + +apo all other are mokka players only + +"sms. ac blind date 4u!: rodds1 is 21/m from aberdeen +urgent! we are trying to contact u. todays draw shows that you have won a ??800 prize guaranteed. call 09050003091 from land line. claim c52. valid 12hrs only + +the length is e same but e top shorter n i got a fringe now. i thk i'm not going liao. too lazy. dun wan 2 distract u also. + +you are a winner u have been specially selected 2 receive ??1000 or a 4* holiday (flights inc) speak to a live operator 2 claim 0871277810910p/min (18+) + +what year. and how many miles. + +that's y we haf to combine n c how lor... + +"whatever +wow! the boys r back. take that 2007 uk tour. win vip tickets & pre-book with vip club. txt club to 81303. trackmarque ltd info. + +"damn +"free entry to the gr8prizes wkly comp 4 a chance to win the latest nokia 8800 +free for 1st week! no1 nokia tone 4 ur mob every week just txt nokia to 87077 get txting and tell ur mates. zed pobox 36504 w45wq norm150p/tone 16+ + +"sunshine hols. to claim ur med holiday send a stamped self address envelope to drinks on us uk +i dnt wnt to tlk wid u + +u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094594 + +whatsup there. dont u want to sleep + +had your mobile 11mths ? update for free to oranges latest colour camera mobiles & unlimited weekend calls. call mobile upd8 on freefone 08000839402 or 2stoptx + +"welcome to uk-mobile-date this msg is free giving you free calling to 08719839835. future mgs billed at 150p daily. to cancel send \go stop\"" to 89123""" + +not heard from u4 a while. call me now am here all night with just my knickers on. make me beg for it like u did last time 01223585236 xx luv nikiyu4.net + +thats cool! i am a gentleman and will treat you with dignity and respect. + +"get 3 lions england tone +"spjanuary male sale! hot gay chat now cheaper +is avatar supposed to have subtoitles + +\hey sorry i didntgive ya a a bellearlier hunny + +free top ringtone -sub to weekly ringtone-get 1st week free-send subpoly to 81618-?3 per week-stop sms-08718727870 + +free entry in 2 a weekly comp for a chance to win an ipod. txt pod to 80182 to get entry (std txt rate) t&c's apply 08452810073 for details 18+ + +urgent! we are trying to contact u. todays draw shows that you have won a ??800 prize guaranteed. call 09050001295 from land line. claim a21. valid 12hrs only + +"yeah +ok. how many should i buy. + +"you 07801543489 are guaranteed the latests nokia phone +i'm going out to buy mum's present ar. + +"got what it takes 2 take part in the wrc rally in oz? u can with lucozade energy! text rally le to 61200 (25p) +"accordingly. i repeat +"romantic paris. 2 nights +i.ll get there tomorrow and send it to you + +i am hot n horny and willing i live local to you - text a reply to hear strt back from me 150p per msg netcollex ltdhelpdesk: 02085076972 reply stop to end + +"hello darling how are you today? i would love to have a chat +"vikky +"urgent +hi. customer loyalty offer:the new nokia6650 mobile from only ??10 at txtauction! txt word: start to no: 81151 & get yours now! 4t&ctxt tc 150p/mtmsg + +hey pple...$700 or $900 for 5 nights...excellent location wif breakfast hamper!!! + +private! your 2003 account statement for shows 800 un-redeemed s. i. m. points. call 08715203694 identifier code: 40533 expires 31/10/04 + +ok... help me ask if she's working tmr a not? + +freemsg: our records indicate you may be entitled to 3750 pounds for the accident you had. to claim for free reply with yes to this msg. to opt out text stop + +\cha quiteamuzing that??scool babe + +for sale - arsenal dartboard. good condition but no doubles or trebles! + +pick you up bout 7.30ish? what time are and that going? + +"to review and keep the fantastic nokia n-gage game deck with club nokia +you'll not rcv any more msgs from the chat svc. for free hardcore services text go to: 69988 if u get nothing u must age verify with yr network & try again + +thesmszone.com lets you send free anonymous and masked messages..im sending this message from there..do you see the potential for abuse??? + +do you want a new video phone? 600 anytime any network mins 400 inclusive video calls and downloads 5 per week free deltomorrow call 08002888812 or reply now + +badrith is only for chennai:)i will surely pick for us:)no competition for him. + +mum ask ?_ to buy food home... + +i keep ten rs in my shelf:) buy two egg. + +watching tv lor... y she so funny we bluff her 4 wat. izzit because she thk it's impossible between us? + +"urgent ur awarded a complimentary trip to eurodisinc trav +okmail: dear dave this is your final notice to collect your 4* tenerife holiday or #5000 cash award! call 09061743806 from landline. tcs sae box326 cw25wx 150ppm + +"do 1 thing! change that sentence into: \because i want 2 concentrate in my educational career im leaving here..\""""" + +they did't play one day last year know even though they have very good team.. like india. + +"today's offer! claim ur ??150 worth of discount vouchers! text yes to 85023 now! savamob +congratulations ur awarded either ??500 of cd gift vouchers & free entry 2 our ??100 weekly draw txt music to 87066 tncs www.ldew.com 1 win150ppmx3age16 + +dunno da next show aft 6 is 850. toa payoh got 650. + +i'm always looking for an excuse to be in the city. + +u r a winner u ave been specially selected 2 receive ??1000 cash or a 4* holiday (flights inc) speak to a live operator 2 claim 0871277810710p/min (18 ) + +are you unique enough? find out from 30th august. www.areyouunique.co.uk + +i'm really sorry i lit your hair on fire + +-pls stop bootydelious (32/f) is inviting you to be her friend. reply yes-434 or no-434 see her: www.sms.ac/u/bootydelious stop? send stop frnd to 62468 + +"sorry +your next amazing xxx picsfree1 video will be sent to you enjoy! if one vid is not enough for 2day text back the keyword picsfree1 to get the next video. + +"i've not called you in a while. this is hoping it was l8r malaria and that you know that we miss you guys. i miss bani big +ok. + +"thanks for your ringtone order +freemsg>fav xmas tones!reply real + +"congrats 2 mobile 3g videophones r yours. call 09063458130 now! videochat wid ur mates +then ?_ ask dad to pick ?_ up lar... ?? wan 2 stay until 6 meh... + +k:)k:)good:)study well. + +"i'm back +aight do you still want to get money + +do u hav any frnd by name ashwini in ur college? + +lol ... have you made plans for new years? + +"you 07801543489 are guaranteed the latests nokia phone +have a good evening! ttyl + +"i'm done. i'm sorry. i hope your next space gives you everything you want. remember all the furniture is yours. if i'm not around when you move it +i attended but nothing is there. + +"sms services. for your inclusive text credits +okie + +so that means you still think of teju + +"better than bb. if he wont use it +im fine babes aint been up 2 much tho! saw scary movie yest its quite funny! want 2mrw afternoon? at town or mall or sumthin?xx + ++123 congratulations - in this week's competition draw u have won the ??1450 prize to claim just call 09050002311 b4280703. t&cs/stop sms 08718727868. over 18 only 150ppm + +no need for the drug anymore. + +nan sonathaya soladha. why boss? + +i havent add ?_ yet right.. + +"hot live fantasies call now 08707509020 just 20p per min ntt ltd +you are now unsubscribed all services. get tons of sexy babes or hunks straight to your phone! go to http://gotbabes.co.uk. no subscriptions. + +hey i am really horny want to chat or see me naked text hot to 69698 text charged at 150pm to unsubscribe text stop 69698 + +is xy going 4 e lunch? + +r u &sam p in eachother. if we meet we can go 2 my house + +you have won a guaranteed ??1000 cash or a ??2000 prize. to claim yr prize call our customer service representative on 08714712379 between 10am-7pm cost 10p + +"babe +"urgent urgent! we have 800 free flights to europe to give away +uncle boye. i need movies oh. guide me. plus you know torrents are not particularly legal here. and the system is slowing down. what should i do. have a gr8 day. plus have you started cos i dont meet you online. how was the honey moon. + +private! your 2004 account statement for 07742676969 shows 786 unredeemed bonus points. to claim call 08719180248 identifier code: 45239 expires + +ur cash-balance is currently 500 pounds - to maximize ur cash-in now send go to 86688 only 150p/msg. cc 08718720201 hg/suite342/2lands row/w1j6hl + +thanx u darlin!im cool thanx. a few bday drinks 2 nite. 2morrow off! take care c u soon.xxx + +ur going 2 bahamas! callfreefone 08081560665 and speak to a live operator to claim either bahamas cruise of??2000 cash 18+only. to opt out txt x to 07786200117 + +"princess +sunshine quiz wkly q! win a top sony dvd player if u know which country liverpool played in mid week? txt ansr to 82277. ??1.50 sp:tyrone + +ard 6 like dat lor. + +"free msg. sorry +i was at bugis juz now wat... but now i'm walking home oredi... ?? so late then reply... i oso saw a top dat i like but din buy... where r ?_ now? + +december only! had your mobile 11mths+? you are entitled to update to the latest colour camera mobile for free! call the mobile update co free on 08002986906 + +"not much +feel like trying kadeem again? :v + +give one miss from that number please + +yup bathe liao... + +oh k :)why you got job then whats up? + +wif my family booking tour package. + +as a registered subscriber yr draw 4 a ??100 gift voucher will b entered on receipt of a correct ans. when are the next olympics. txt ans to 80062 + +do you want a new nokia 3510i colour phone deliveredtomorrow? with 300 free minutes to any mobile + 100 free texts + free camcorder reply or call 08000930705 + +"44 7732584351 +from 88066 lost ??12 help + +you're not sure that i'm not trying to make xavier smoke because i don't want to smoke after being told i smoke too much? + +is that on the telly? no its brdget jones! + +ur cash-balance is currently 500 pounds - to maximize ur cash-in now send go to 86688 only 150p/msg. cc 08718720201 hg/suite342/2lands row/w1j6hl + +sunshine quiz wkly q! win a top sony dvd player if u know which country the algarve is in? txt ansr to 82277. ??1.50 sp:tyrone + +"aight i'll grab something to eat too +congrats! nokia 3650 video camera phone is your call 09066382422 calls cost 150ppm ave call 3mins vary from mobiles 16+ close 300603 post bcm4284 ldn wc1n3xx + +i taught that ranjith sir called me. so only i sms like that. becaus hes verifying about project. prabu told today so only pa dont mistake me.. + +oh ho. is this the first time u use these type of words + +i thk 50 shd be ok he said plus minus 10.. did ?_ leave a line in between paragraphs? + +customer loyalty offer:the new nokia6650 mobile from only ??10 at txtauction! txt word: start to no: 81151 & get yours now! 4t&ctxt tc 150p/mtmsg + +hey! congrats 2u2. id luv 2 but ive had 2 go home! + +"u were outbid by simonwatson5120 on the shinco dvd plyr. 2 bid again +"came to look at the flat +i'll text now! all creepy like so he won't think that we forgot + +lol i would but despite these cramps i like being a girl. + +darren was saying dat if u meeting da ge den we dun meet 4 dinner. cos later u leave xy will feel awkward. den u meet him 4 lunch lor. + +"spook up your mob with a halloween collection of a logo & pic message plus a free eerie tone +"our dating service has been asked 2 contact u by someone shy! call 09058091870 now all will be revealed. pobox84 +free unlimited hardcore porn direct 2 your mobile txt porn to 69200 & get free access for 24 hrs then chrgd per day txt stop 2exit. this msg is free + +of course. i guess god's just got me on hold right now. + +todays vodafone numbers ending with 4882 are selected to a receive a ??350 award. if your number matches call 09064019014 to receive your ??350 award. + +"i know you are thinkin malaria. but relax +can you let me know details of fri when u find out cos i'm not in tom or fri. mentionned chinese. thanks + +eastenders tv quiz. what flower does dot compare herself to? d= violet e= tulip f= lily txt d e or f to 84025 now 4 chance 2 win ??100 cash wkent/150p16+ + +marvel mobile play the official ultimate spider-man game (??4.50) on ur mobile right now. text spider to 83338 for the game & we ll send u a free 8ball wallpaper + +are you available for soiree on june 3rd? + +tell her i said eat shit. + +"you ve won! your 4* costa del sol holiday or ??5000 await collection. call 09050090044 now toclaim. sae +freemsg:feelin kinda lnly hope u like 2 keep me company! jst got a cam moby wanna c my pic?txt or reply date to 82242 msg150p 2rcv hlp 08712317606 stop to 82242 + +yes! the only place in town to meet exciting adult singles is now in the uk. txt chat to 86688 now! 150p/msg. + +"1) go to write msg 2) put on dictionary mode 3)cover the screen with hand +"fantasy football is back on your tv. go to sky gamestar on sky active and play ??250k dream team. scoring starts on saturday +you sure your neighbors didnt pick it up + +eastenders tv quiz. what flower does dot compare herself to? d= violet e= tulip f= lily txt d e or f to 84025 now 4 chance 2 win ??100 cash wkent/150p16+ + +not directly behind... abt 4 rows behind ?_... + +sunshine quiz wkly q! win a top sony dvd player if u know which country liverpool played in mid week? txt ansr to 82277. ??1.50 sp:tyrone + +congratulations ur awarded 500 of cd vouchers or 125gift guaranteed & free entry 2 100 wkly draw txt music to 87066 tncs www.ldew.com1win150ppmx3age16 + +urgent! we are trying to contact u. todays draw shows that you have won a ??800 prize guaranteed. call 09050001808 from land line. claim m95. valid12hrs only + +u dun say so early hor... u c already then say... + +well she's in for a big surprise! + +**free message**thanks for using the auction subscription service. 18 . 150p/msgrcvd 2 skip an auction txt out. 2 unsubscribe txt stop customercare 08718726270 + +our brand new mobile music service is now live. the free music player will arrive shortly. just install on your phone to browse content from the top artists. + +"no my blankets are sufficient +"k +just nw i came to hme da.. + +"congratulations - thanks to a good friend u have won the ??2 +s:)no competition for him. + +not heard from u4 a while. call 4 rude chat private line 01223585334 to cum. wan 2c pics of me gettin shagged then text pix to 8552. 2end send stop 8552 sam xxx + +"hi +"dad wanted to talk about the apartment so i got a late start +anything lor... u decide... + +dear voucher holder have your next meal on us. use the following link on your pc 2 enjoy a 2 4 1 dining experiencehttp://www.vouch4me.com/etlp/dining.asp + +haha... they cant what... at the most tmr forfeit... haha so how? + +reminder: you have not downloaded the content you have already paid for. goto http://doit. mymoby. tv/ to collect your content. + +"spook up your mob with a halloween collection of a logo & pic message plus a free eerie tone +okay lor... will they still let us go a not ah? coz they will not know until later. we drop our cards into the box right? + +"probably +"congratulations! thanks to a good friend u have won the ??2 +a ??400 xmas reward is waiting for you! our computer has randomly picked you from our loyal mobile customers to receive a ??400 reward. just call 09066380611 + +todays voda numbers ending 5226 are selected to receive a ?350 award. if you hava a match please call 08712300220 quoting claim code 1131 standard rates app + +how much you got for cleaning + +no 1 polyphonic tone 4 ur mob every week! just txt pt2 to 87575. 1st tone free ! so get txtin now and tell ur friends. 150p/tone. 16 reply hl 4info + +i wanted to wish you a happy new year and i wanted to talk to you about some legal advice to do with when gary and i split but in person. i'll make a trip to ptbo for that. i hope everything is good with you babe and i love ya :) + +pls send me the correct name da. + +??_ and don???t worry we???ll have finished by march ??_ ish! + +please call 08712402578 immediately as there is an urgent message waiting for you + +ever thought about living a good life with a perfect partner? just txt back name and age to join the mobile community. (100p/sms) + +"hi +todays voda numbers ending with 7634 are selected to receive a ??350 reward. if you have a match please call 08712300220 quoting claim code 7684 standard rates apply. + +its a part of checking iq + +urgent! your mobile number has been awarded a 2000 prize guaranteed. call 09061790125 from landline. claim 3030. valid 12hrs only 150ppm + +"for ur chance to win ??250 cash every wk txt: play to 83370. t's&c's www.music-trivia.net custcare 08715705022 +"hello from orange. for 1 month's free access to games +"no worries +"xmas & new years eve tickets are now on sale from the club +we're done... + +adult 18 content your video will be with you shortly + +"had your contract mobile 11 mnths? latest motorola +"this is the 2nd time we have tried 2 contact u. u have won the ??750 pound prize. 2 claim is easy +"wishing you and your family merry \x\"" mas and happy new year in advance..""" + +gr8 new service - live sex video chat on your mob - see the sexiest dirtiest girls live on ur phone - 4 details text horny to 89070 to cancel send stop to 89070 + +freemsg:feelin kinda lnly hope u like 2 keep me company! jst got a cam moby wanna c my pic?txt or reply date to 82242 msg150p 2rcv hlp 08712317606 stop to 82242 + +well done england! get the official poly ringtone or colour flag on yer mobile! text tone or flag to 84199 now! opt-out txt eng stop. box39822 w111wx ??1.50 + +"urgent! call 09066350750 from your landline. your complimentary 4* ibiza holiday or 10 +you have won a nokia 7250i. this is what you get when you win our free auction. to take part send nokia to 86021 now. hg/suite342/2lands row/w1jhl 16+ + +"urgent urgent! we have 800 free flights to europe to give away +"same +yes! the only place in town to meet exciting adult singles is now in the uk. txt chat to 86688 now! 150p/msg. + +free>ringtone! reply real or poly eg real1 1. pushbutton 2. dontcha 3. babygoodbye 4. golddigger 5. webeburnin 1st tone free and 6 more when u join for ??3/wk + +private! your 2003 account statement for 07753741225 shows 800 un-redeemed s. i. m. points. call 08715203677 identifier code: 42478 expires 24/10/04 + +thanks for your subscription to ringtone uk your mobile will be charged ??5/month please confirm by replying yes or no. if you reply no you will not be charged + +you have 1 new message. please call 08718738034. + +"hot live fantasies call now 08707509020 just 20p per min ntt ltd +oh... kay... on sat right? + +hi. happy new year. i dont mean to intrude but can you pls let me know how much tuition you paid last semester and how much this semester is. thanks + +bloomberg -message center +447797706009 why wait? apply for your future http://careers. bloomberg.com + +great. hope you are using your connections from mode men also cos you can never know why old friends can lead you to today + +freemsg: our records indicate you may be entitled to 3750 pounds for the accident you had. to claim for free reply with yes to this msg. to opt out text stop + +"double mins & 1000 txts on orange tariffs. latest motorola +i don't know u and u don't know me. send chat to 86688 now and let's find each other! only 150p/msg rcvd. hg/suite342/2lands/row/w1j6hl ldn. 18 years or over. + +no. did you multimedia message them or e-mail? + +todays vodafone numbers ending with 4882 are selected to a receive a ??350 award. if your number matches call 09064019014 to receive your ??350 award. + +free entry in 2 a wkly comp to win fa cup final tkts 21st may 2005. text fa to 87121 to receive entry question(std txt rate)t&c's apply 08452810075over18's + +we tried to call you re your reply to our sms for a video mobile 750 mins unlimited text + free camcorder reply of call 08000930705 now + +"new tones this week include: 1)mcfly-all ab.. +email alertfrom: jeri stewartsize: 2kbsubject: low-cost prescripiton drvgsto listen to email call 123 + +"gr8 poly tones 4 all mobs direct 2u rply with poly title to 8007 eg poly breathe1 titles: crazyin +i'm not driving... raining! then i'll get caught at e mrt station lor. + +"how about clothes +refused a loan? secured or unsecured? can't get credit? call free now 0800 195 6669 or text back 'help' & we will! + +phony ??350 award - todays voda numbers ending xxxx are selected to receive a ??350 award. if you have a match please call 08712300220 quoting claim code 3100 standard rates app + +"i do know what u mean +yo do you know anyone <#> or otherwise able to buy liquor? our guy flaked and right now if we don't get a hold of somebody its just 4 loko all night + +5p 4 alfie moon's children in need song on ur mob. tell ur m8s. txt tone charity to 8007 for nokias or poly charity for polys: zed 08701417012 profit 2 charity. + +i also thk too fast... xy suggest one not me. u dun wan it's ok. going 2 rain leh where got gd. + +yup song bro. no creative. neva test quality. he said check review online. + +"not for possession +2p per min to call germany 08448350055 from your bt line. just 2p per min. check planettalkinstant.com for info & t's & c's. text stop to opt out + +email alertfrom: jeri stewartsize: 2kbsubject: low-cost prescripiton drvgsto listen to email call 123 + +you have been specially selected to receive a 2000 pound award! call 08712402050 before the lines close. cost 10ppm. 16+. t&cs apply. ag promo + +"i wonder if your phone battery went dead ? i had to tell you +are you this much buzy + +"that??s alrite girl +no. it's not pride. i'm almost <#> years old and shouldn't be takin money from my kid. you're not supposed to have to deal with this stuff. this is grownup stuff--why i don't tell you. + +"urgent! call 09066350750 from your landline. your complimentary 4* ibiza holiday or 10 +ok. c u then. + +new textbuddy chat 2 horny guys in ur area 4 just 25p free 2 receive search postcode or at gaytextbuddy.com. txt one name to 89693. 08715500022 rpl stop 2 cnl + +dont flatter yourself... tell that man of mine two pints of carlin in ten minutes please.... + +ok.ok ok..then..whats ur todays plan + +"urgent! last weekend's draw shows that you have won ??1000 cash or a spanish holiday! call now 09050000332 to claim. t&c: rstm +as a registered optin subscriber ur draw 4 ??100 gift voucher will be entered on receipt of a correct ans to 80062 whats no1 in the bbc charts + +win a ??1000 cash prize or a prize worth ??5000 + +my sis is catching e show in e afternoon so i'm not watching w her. so c u wan 2 watch today or tmr lor. + +where are you ? what do you do ? how can you stand to be away from me ? doesn't your heart ache without me ? don't you wonder of me ? don't you crave me ? + +"for ur chance to win a ??250 cash every wk txt: action to 80608. t's&c's www.movietrivia.tv custcare 08712405022 +"urgent! your mobile no 07xxxxxxxxx won a ??2 +"8 at the latest +no. 1 nokia tone 4 ur mob every week! just txt nok to 87021. 1st tone free ! so get txtin now and tell ur friends. 150p/tone. 16 reply hl 4info + +ok i found dis pierre cardin one which looks normal costs 20 its on sale. + +"for you information +now that you have started dont stop. just pray for more good ideas and anything i see that can help you guys i.ll forward you a link. + +actually i deleted my old website..now i m blogging at magicalsongs.blogspot.com + +try neva mate!! + +when is school starting. where will you stay. what's the weather like. and the food. do you have a social support system like friends in the school. all these things are important. + +dear voucher holder have your next meal on us. use the following link on your pc 2 enjoy a 2 4 1 dining experiencehttp://www.vouch4me.com/etlp/dining.asp + +"a famous quote : when you develop the ability to listen to 'anything' unconditionally without losing your temper or self confidence +ok k..sry i knw 2 siva..tats y i askd.. + +you are being ripped off! get your mobile content from www.clubmoby.com call 08717509990 poly/true/pix/ringtones/games six downloads for only 3 + +give me a sec to think think about it + +yavnt tried yet and never played original either + +monthly password for wap. mobsi.com is 391784. use your wap phone not pc. + +if he started searching he will get job in few days.he have great potential and talent. + +oops i was in the shower when u called. hey a parking garage collapsed at university hospital. see i'm not crazy. stuff like that does happen. + +double your mins & txts on orange or 1/2 price linerental - motorola and sonyericsson with b/tooth free-nokia free call mobileupd8 on 08000839402 or2optout/hv9d + +"u were outbid by simonwatson5120 on the shinco dvd plyr. 2 bid again +we tried to contact you re your reply to our offer of a video handset? 750 anytime networks mins? unlimited text? camcorder? reply or call 08000930705 now + +sary just need tim in the bollox &it hurt him a lot so he tol me! + +am up to my eyes in philosophy + +what number do u live at? is it 11? + +free entry in 2 a wkly comp to win fa cup final tkts 21st may 2005. text fa to 87121 to receive entry question(std txt rate)t&c's apply 08452810075over18's + +"you can stop further club tones by replying \stop mix\"" see my-tone.com/enjoy. html for terms. club tones cost gbp4.50/week. mfl" + +camera - you are awarded a sipix digital camera! call 09061221066 fromm landline. delivery within 28 days. + +"goal! arsenal 4 (henry +"haha... where got so fast lose weight +company is very good.environment is terrific and food is really nice:) + +"haven't seen my facebook +oh ok no prob.. + +"will u meet ur dream partner soon? is ur career off 2 a flyng start? 2 find out free +"sms services. for your inclusive text credits +urgent this is our 2nd attempt to contact u. your ??900 prize from yesterday is still awaiting collection. to claim call now 09061702893 + +08714712388 between 10am-7pm cost 10p + +i am not sure about night menu. . . i know only about noon menu + +update_now - 12mths half price orange line rental: 400mins...call mobileupd8 on 08000839402 or call2optout=j5q + +bored housewives! chat n date now! 0871750.77.11! bt-national rate 10p/min only from landlines! + +please call our customer service representative on freephone 0808 145 4742 between 9am-11pm as you have won a guaranteed ??1000 cash or ??5000 prize! + +"good evening sir +did you try making another butt. + +urgent! we are trying to contact you. last weekends draw shows that you have won a ??900 prize guaranteed. call 09061701939. claim code s89. valid 12hrs only + +"congrats! 2 mobile 3g videophones r yours. call 09061744553 now! videochat wid ur mates +"fantasy football is back on your tv. go to sky gamestar on sky active and play ??250k dream team. scoring starts on saturday +u have a secret admirer. reveal who thinks u r so special. call 09065174042. to opt out reply reveal stop. 1.50 per msg recd. cust care 07821230901 + +"don't worry +text her. if she doesnt reply let me know so i can have her log in + +bought one ringtone and now getting texts costing 3 pound offering more tones etc + +"nowadays people are notixiquating the laxinorficated opportunity for bambling of entropication.... have you ever oblisingately opted ur books for the masteriastering amplikater of fidalfication? it is very champlaxigating +"urgent ur awarded a complimentary trip to eurodisinc trav +double mins & double txt & 1/2 price linerental on latest orange bluetooth mobiles. call mobileupd8 for the very latest offers. 08000839402 or call2optout/lf56 + +great new offer - double mins & double txt on best orange tariffs and get latest camera phones 4 free! call mobileupd8 free on 08000839402 now! or 2stoptxt t&cs + +hi im having the most relaxing time ever! we have to get up at 7am every day! was the party good the other night? i get home tomorrow at 5ish. + +are you planning to come chennai? + +only once then after ill obey all yours. + +you have won a guaranteed ??200 award or even ??1000 cashto claim ur award call free on 08000407165 (18+) 2 stop getstop on 88222 php + +ok give me 5 minutes i think i see her. btw you're my alibi. you were cutting my hair the whole time. + +send a logo 2 ur lover - 2 names joined by a heart. txt love name1 name2 mobno eg love adam eve 07123456789 to 87077 yahoo! pobox36504w45wq txtno 4 no ads 150p + +"probably not +also that chat was awesome but don't make it regular unless you can see her in person + +free for 1st week! no1 nokia tone 4 ur mobile every week just txt nokia to 8077 get txting and tell ur mates. www.getzed.co.uk pobox 36504 w45wq 16+ norm150p/tone + +want the latest video handset? 750 anytime any network mins? half price line rental? reply or call 08000930705 for delivery tomorrow + +"oh +if you're not in my car in an hour and a half i'm going apeshit + +this message is free. welcome to the new & improved sex & dogging club! to unsubscribe from this service reply stop. msgs 18+only + +as if i wasn't having enough trouble sleeping. + +reply to win ??100 weekly! where will the 2006 fifa world cup be held? send stop to 87239 to end service + +8007 25p 4 alfie moon's children in need song on ur mob. tell ur m8s. txt tone charity to 8007 for nokias or poly charity for polys :zed 08701417012 profit 2 charity + +the greatest test of courage on earth is to bear defeat without losing heart....gn tc + +had your mobile 11 months or more? u r entitled to update to the latest colour mobiles with camera for free! call the mobile update co free on 08002986030 + +"k +freemsg: fancy a flirt? reply date now & join the uks fastest growing mobile dating service. msgs rcvd just 25p to optout txt stop to 83021. reply date now! + +"oh +don't look back at the building because you have no coat and i don't want you to get more sick. just hurry home and wear a coat to the gym!!! + +rofl betta invest in some anti aging products + +well i wasn't available as i washob nobbing with last night so they had to ask nickey platt instead of me!; + +"complimentary 4 star ibiza holiday or ??10 +not heard from u4 a while. call 4 rude chat private line 01223585334 to cum. wan 2c pics of me gettin shagged then text pix to 8552. 2end send stop 8552 sam xxx + +sex up ur mobile with a free sexy pic of jordan! just text babe to 88600. then every wk get a sexy celeb! pocketbabe.co.uk 4 more pics. 16 ??3/wk 087016248 + +have you laid your airtel line to rest? + +yeah i'll try to scrounge something up + +"you are a ??1000 winner or guaranteed caller prize +yes fine + +ok that's great thanx a lot. + +"that???s the thing with apes +"ur balance is now ??600. next question: complete the landmark +don't forget though that i love you .... and i walk beside you. watching over you and keeping your heart warm. + +hello. damn this christmas thing. i think i have decided to keep this mp3 that doesnt work. + +you won't believe it but it's true. it's incredible txts! reply g now to learn truly amazing things that will blow your mind. from o2fwd only 18p/txt + +would you like to see my xxx pics they are so hot they were nearly banned in the uk! + +yes... i trust u to buy new stuff asap so i can try it out + +freemsg>fav xmas tones!reply real + +free top ringtone -sub to weekly ringtone-get 1st week free-send subpoly to 81618-?3 per week-stop sms-08718727870 + +"congrats! 1 year special cinema pass for 2 is yours. call 09061209465 now! c suprman v +ur cash-balance is currently 500 pounds - to maximize ur cash-in now send go to 86688 only 150p/msg. cc: 08718720201 po box 114/14 tcr/w1 + +are you not around or just still asleep? :v + +asking do u knw them or nt? may be ur frnds or classmates? + +oh unintentionally not bad timing. great. fingers the trains play along! will give fifteen min warning. + +"dude u knw also telugu..thts gud..k +i accidentally brought em home in the box + +warner village 83118 c colin farrell in swat this wkend village & get 1 free med. popcorn!just show msg+ticket.valid 4-7/12. c t&c . reply sony 4 mre film offers + +im done. just studyn in library + +knock knock txt whose there to 80082 to enter r weekly draw 4 a ??250 gift voucher 4 a store of yr choice. t&cs www.tkls.com age16 to stoptxtstop??1.50/week + +ok no prob + +are you up for the challenge? i know i am :) + +please call 08712404000 immediately as there is an urgent message waiting for you. + +hi - this is your mailbox messaging sms alert. you have 40 matches. please call back on 09056242159 to retrieve your messages and matches cc100p/min + +"hey babe +then anything special? + +"had your contract mobile 11 mnths? latest motorola +natalja (25/f) is inviting you to be her friend. reply yes-440 or no-440 see her: www.sms.ac/u/nat27081980 stop? send stop frnd to 62468 + +ok c ?_ then. + +i felt so...not any conveying reason.. ese he... what about me? + +then cant get da laptop? my matric card wif ?_ lei... + +i liked your new house + +bring tat cd don forget + +will you be here for food + +"haha +i'm in office now . i will call you <#> min:) + +2p per min to call germany 08448350055 from your bt line. just 2p per min. check planettalkinstant.com for info & t's & c's. text stop to opt out + +"we know someone who you know that fancies you. call 09058097218 to find out who. pobox 6 +your b4u voucher w/c 27/03 is marsms. log onto www.b4utele.com for discount credit. to opt out reply stop. customer care call 08717168528 + +yup. wun believe wat? u really neva c e msg i sent shuhui? + +"call 09094100151 to use ur mins! calls cast 10p/min (mob vary). service provided by aom +call 09090900040 & listen to extreme dirty live chat going on in the office right now total privacy no one knows your [sic] listening 60p min 24/7mp 0870753331018+ + +o. guess they both got screwd + +k.k..how is your sister kids? + +"congrats! 1 year special cinema pass for 2 is yours. call 09061209465 now! c suprman v +"customer service announcement. we recently tried to make a delivery to you but were unable to do so +"win the newest ??harry potter and the order of the phoenix (book 5) reply harry +hard live 121 chat just 60p/min. choose your girl and connect live. call 09094646899 now! cheap chat uk's biggest live service. vu bcm1896wc1n3xx + +"jolly good! by the way +no 1 polyphonic tone 4 ur mob every week! just txt pt2 to 87575. 1st tone free ! so get txtin now and tell ur friends. 150p/tone. 16 reply hl 4info + +free msg: single? find a partner in your area! 1000s of real people are waiting to chat now!send chat to 62220cncl send stopcs 08717890890??1.50 per msg + +win a year supply of cds 4 a store of ur choice worth ??500 & enter our ??100 weekly draw txt music to 87066 ts&cs www.ldew.com.subs16+1win150ppmx3 + +http//tms. widelive.com/index. wml?id=820554ad0a1705572711&first=true??c c ringtone?? + +free 1st week entry 2 textpod 4 a chance 2 win 40gb ipod or ??250 cash every wk. txt vpod to 81303 ts&cs www.textpod.net custcare 08712405020. + +"this is the 2nd attempt to contract u +4mths half price orange line rental & latest camera phones 4 free. had your phone 11mths ? call mobilesdirect free on 08000938767 to update now! or2stoptxt + +hi. customer loyalty offer:the new nokia6650 mobile from only ??10 at txtauction! txt word: start to no: 81151 & get yours now! 4t&ctxt tc 150p/mtmsg + +"hmmm.. thk sure got time to hop ard... ya +"good afternoon +why nothing. ok anyway give me treat + +"\hi darlin i cantdo anythingtomorrow as myparents aretaking me outfor a meal. when are u free? katexxx\""""" + +sms auction - a brand new nokia 7250 is up 4 auction today! auction is free 2 join & take part! txt nokia to 86021 now! + +private! your 2003 account statement for shows 800 un-redeemed s. i. m. points. call 08715203652 identifier code: 42810 expires 29/10/0 + +dunno dat's wat he told me. ok lor... + +hey mr and i are going to the sea view and having a couple of gays i mean games! give me a bell when ya finish + +"k +"44 7732584351 +win a ??1000 cash prize or a prize worth ??5000 + +"you ve won! your 4* costa del sol holiday or ??5000 await collection. call 09050090044 now toclaim. sae +urgent! your mobile number has been awarded with a ??2000 prize guaranteed. call 09058094454 from land line. claim 3030. valid 12hrs only + +"just got some gas money +you have won a guaranteed 32000 award or maybe even ??1000 cash to claim ur award call free on 0800 ..... (18+). its a legitimat efreefone number wat do u think??? + +someonone you know is trying to contact you via our dating service! to find out who it could be call from your mobile or landline 09064015307 box334sk38ch + +ofcourse i also upload some songs + +"accordingly. i repeat +urgent! we are trying to contact u. todays draw shows that you have won a ??800 prize guaranteed. call 09050003091 from land line. claim c52. valid 12hrs only + +ur cash-balance is currently 500 pounds - to maximize ur cash-in now send go to 86688 only 150p/meg. cc: 08718720201 hg/suite342/2lands row/w1j6hl + ++449071512431 urgent! this is the 2nd attempt to contact u!u have won ??1250 call 09071512433 b4 050703 t&csbcm4235wc1n3xx. callcost 150ppm mobilesvary. max??7. 50 + +i am taking you for italian food. how about a pretty dress with no panties? :) + +meet you in corporation st outside gap ??_ you can see how my mind is working! + +hows the champ just leaving glasgow! + +want 2 get laid tonight? want real dogging locations sent direct 2 ur mob? join the uk's largest dogging network by txting moan to 69888nyt. ec2a. 31p.msg + +i (career tel) have added u as a contact on indyarocks.com to send free sms. to remove from phonebook - sms no to <#> + +"oops +tone club: your subs has now expired 2 re-sub reply monoc 4 monos or polyc 4 polys 1 weekly @ 150p per week txt stop 2 stop this msg free stream 0871212025016 + +"hot live fantasies call now 08707509020 just 20p per min ntt ltd +"0a$networks allow companies to bill for sms +private! your 2003 account statement for 07815296484 shows 800 un-redeemed s.i.m. points. call 08718738001 identifier code 41782 expires 18/11/04 + +"sppok up ur mob with a halloween collection of nokia logo&pic message plus a free eerie tone +just sleeping..and surfing + +1st wk free! gr8 tones str8 2 u each wk. txt nokia on to 8007 for classic nokia tones or hit on to 8007 for polys. nokia/150p poly/200p 16+ + +monthly password for wap. mobsi.com is 391784. use your wap phone not pc. + +freemsg today's the day if you are ready! i'm horny & live in your town. i love sex fun & games! netcollex ltd 08700621170150p per msg reply stop to end + +why tired what special there you had + +"for your chance to win a free bluetooth headset then simply reply back with \adp\""""" + +"em +"congrats! 1 year special cinema pass for 2 is yours. call 09061209465 now! c suprman v +"'an amazing quote'' - \sometimes in life its difficult to decide whats wrong!! a lie that brings a smile or the truth that brings a tear....\""""" + +saw guys and dolls last night with patrick swayze it was great + +loans for any purpose even if you have bad credit! tenants welcome. call noworriesloans.com on 08717111821 + +sunshine quiz wkly q! win a top sony dvd player if u know which country liverpool played in mid week? txt ansr to 82277. ??1.50 sp:tyrone + +urgent! your mobile number has been awarded with a ??2000 prize guaranteed. call 09058094454 from land line. claim 3030. valid 12hrs only + +"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 +dunno i juz askin cos i got a card got 20% off 4 a salon called hair sense so i tot it's da one ?_ cut ur hair. + +customer service annoncement. you have a new years delivery waiting for you. please call 07046744435 now to arrange delivery + +urgent! your mobile number has been awarded with a ??2000 prize guaranteed. call 09061790121 from land line. claim 3030. valid 12hrs only 150ppm + +sms auction - a brand new nokia 7250 is up 4 auction today! auction is free 2 join & take part! txt nokia to 86021 now! + +hi 07734396839 ibh customer loyalty offer: the new nokia6600 mobile from only ??10 at txtauction!txt word:start to no:81151 & get yours now!4t& + +ur ringtone service has changed! 25 free credits! go to club4mobiles.com to choose content now! stop? txt club stop to 87070. 150p/wk club4 po box1146 mk45 2wt + +win a year supply of cds 4 a store of ur choice worth ??500 & enter our ??100 weekly draw txt music to 87066 ts&cs www.ldew.com.subs16+1win150ppmx3 + +we tried to call you re your reply to our sms for a video mobile 750 mins unlimited text free camcorder reply or call now 08000930705 del thurs + +valentines day special! win over ??1000 in our quiz and take your partner on the trip of a lifetime! send go to 83600 now. 150p/msg rcvd. custcare:08718720201 + +"bored of speed dating? try speedchat +todays voda numbers ending 1225 are selected to receive a ??50award. if you have a match please call 08712300220 quoting claim code 3100 standard rates app + +please call 08712402972 immediately as there is an urgent message waiting for you + +urgent! we are trying to contact you. last weekends draw shows that you have won a ??900 prize guaranteed. call 09061701851. claim code k61. valid 12hours only + +loosu go to hospital. de dont let it careless. + +urgent! we are trying to contact u. todays draw shows that you have won a ??800 prize guaranteed. call 09050003091 from land line. claim c52. valid12hrs only + +free 1st week entry 2 textpod 4 a chance 2 win 40gb ipod or ??250 cash every wk. txt vpod to 81303 ts&cs www.textpod.net custcare 08712405020. + +no it's waiting in e car dat's bored wat. cos wait outside got nothing 2 do. at home can do my stuff or watch tv wat. + +thanx... + +lmao but its so fun... + +i said its okay. sorry + +private! your 2004 account statement for 07742676969 shows 786 unredeemed bonus points. to claim call 08719180248 identifier code: 45239 expires + +where @ + +babe ! what are you doing ? where are you ? who are you talking to ? do you think of me ? are you being a good boy? are you missing me? do you love me ? + +"mostly sports type..lyk footbl +for sale - arsenal dartboard. good condition but no doubles or trebles! + +great new offer - double mins & double txt on best orange tariffs and get latest camera phones 4 free! call mobileupd8 free on 08000839402 now! or 2stoptxt t&cs + +are you willing to go for apps class. + ++123 congratulations - in this week's competition draw u have won the ??1450 prize to claim just call 09050002311 b4280703. t&cs/stop sms 08718727868. over 18 only 150ppm + +from next month get upto 50% more calls 4 ur standard network charge 2 activate call 9061100010 c wire3.net 1st4terms pobox84 m26 3uz cost ??1.50 min mobcudb more + +"sorry +"\urgent! this is the 2nd attempt to contact u!u have won ??1000call 09071512432 b4 300603t&csbcm4235wc1n3xx.callcost150ppmmobilesvary. max??7. 50\""""" + +gettin rdy to ship comp + +"aight +sex up ur mobile with a free sexy pic of jordan! just text babe to 88600. then every wk get a sexy celeb! pocketbabe.co.uk 4 more pics. 16 ??3/wk 087016248 + +100 dating service cal;l 09064012103 box334sk38ch + +last chance 2 claim ur ??150 worth of discount vouchers-text yes to 85023 now!savamob-member offers mobile t cs 08717898035. ??3.00 sub. 16 . remove txt x or stop + +we tried to contact you re your reply to our offer of a video handset? 750 anytime any networks mins? unlimited text? camcorder? reply or call 08000930705 now + +i'm awake oh. what's up. + +not heard from u4 a while. call me now am here all night with just my knickers on. make me beg for it like u did last time 01223585236 xx luv nikiyu4.net + +"ok +december only! had your mobile 11mths+? you are entitled to update to the latest colour camera mobile for free! call the mobile update co free on 08002986906 + +for sale - arsenal dartboard. good condition but no doubles or trebles! + +sorry i din lock my keypad. + +"hot live fantasies call now 08707500020 just 20p per min ntt ltd +i am great princess! what are you thinking about me? :) + +lord of the rings:return of the king in store now!reply lotr by 2 june 4 chance 2 win lotr soundtrack cds stdtxtrate. reply stop to end txts + +now i'm going for lunch. + +please call our customer service representative on freephone 0808 145 4742 between 9am-11pm as you have won a guaranteed ??1000 cash or ??5000 prize! + +"today is sorry day.! if ever i was angry with you +urgent! we are trying to contact you. last weekends draw shows that you have won a ??900 prize guaranteed. call 09061701851. claim code k61. valid 12hours only + +as per your request 'melle melle (oru minnaminunginte nurungu vettam)' has been set as your callertune for all callers. press *9 to copy your friends callertune + +lol great now im getting hungry. + +wat would u like 4 ur birthday? + +"ok da +da is good good player.why he is unsold. + +december only! had your mobile 11mths+? you are entitled to update to the latest colour camera mobile for free! call the mobile update co free on 08002986906 + +we tried to contact you re your reply to our offer of a video handset? 750 anytime networks mins? unlimited text? camcorder? reply or call 08000930705 now + +wanna have a laugh? try chit-chat on your mobile now! logon by txting the word: chat and send it to no: 8883 cm po box 4217 london w1a 6zf 16+ 118p/msg rcvd + +yup i'm elaborating on the safety aspects and some other issues.. + +raji..pls do me a favour. pls convey my birthday wishes to nimya. pls. today is her birthday. + +"good morning +they just talking thats it de. they wont any other. + +i have a sore throat. it's scratches when i talk + +also where's the piece + +what's happening with you. have you gotten a job and have you begun registration for permanent residency + +u goin out 2nite? + +romcapspam everyone around should be responding well to your presence since you are so warm and outgoing. you are bringing in a real breath of sunshine. + +lord of the rings:return of the king in store now!reply lotr by 2 june 4 chance 2 win lotr soundtrack cds stdtxtrate. reply stop to end txts + +your credits have been topped up for http://www.bubbletext.com your renewal pin is tgxxrz + +someone has contacted our dating service and entered your phone because they fancy you! to find out who it is call from a landline 09111032124 . pobox12n146tf150p + +well i know z will take care of me. so no worries. + +i want to sent <#> mesages today. thats y. sorry if i hurts + +december only! had your mobile 11mths+? you are entitled to update to the latest colour camera mobile for free! call the mobile update vco free on 08002986906 + +but we havent got da topic yet rite? + +sitting in mu waiting for everyone to get out of my suite so i can take a shower + +ya srsly better than yi tho + +tone club: your subs has now expired 2 re-sub reply monoc 4 monos or polyc 4 polys 1 weekly @ 150p per week txt stop 2 stop this msg free stream 0871212025016 + +dear got train and seat mine lower seat + +"what i mean was i left too early to check +"sunshine hols. to claim ur med holiday send a stamped self address envelope to drinks on us uk +someone has contacted our dating service and entered your phone because they fancy you! to find out who it is call from a landline 09111032124 . pobox12n146tf150p + +gud ni8.swt drms.take care + +"you are being contacted by our dating service by someone you know! to find out who it is +u buy newspapers already? + +i will reach office around <decimal> . & my mobile have problem. you cann't get my voice. so call you asa i'll free + +"free game. get rayman golf 4 free from the o2 games arcade. 1st get ur games settings. reply post +short but cute: \be a good person + +went to ganesh dress shop + +do you want a new video handset? 750 any time any network mins? unlimited text? camcorder? reply or call now 08000930705 for del sat am + +bloomberg -message center +447797706009 why wait? apply for your future http://careers. bloomberg.com + +sexy singles are waiting for you! text your age followed by your gender as wither m or f e.g.23f. for gay men text your age followed by a g. e.g.23g. + +aft i finish my lunch then i go str down lor. ard 3 smth lor. u finish ur lunch already? + +hey cutie. how goes it? here in wales its kinda ok. there is like hills and shit but i still avent killed myself. + +yes! the only place in town to meet exciting adult singles is now in the uk. txt chat to 86688 now! 150p/msg. + +would you like to see my xxx pics they are so hot they were nearly banned in the uk! + +of course ! don't tease me ... you know i simply must see ! *grins* ... do keep me posted my prey ... *loving smile* *devouring kiss* + +"had your mobile 10 mths? update to the latest camera/video phones for free. keep ur same number +"shop till u drop +"rock yr chik. get 100's of filthy films &xxx pics on yr phone now. rply filth to 69669. saristar ltd +you have won a guaranteed 32000 award or maybe even ??1000 cash to claim ur award call free on 0800 ..... (18+). its a legitimat efreefone number wat do u think??? + +loans for any purpose even if you have bad credit! tenants welcome. call noworriesloans.com on 08717111821 + +"for ur chance to win a ??250 cash every wk txt: action to 80608. t's&c's www.movietrivia.tv custcare 08712405022 +"xmas & new years eve tickets are now on sale from the club +"0a$networks allow companies to bill for sms +"yup. anything lor +"you have been specially selected to receive a \3000 award! call 08712402050 before the lines close. cost 10ppm. 16+. t&cs apply. ag promo""" + +"freemsg: claim ur 250 sms messages-text ok to 84025 now!use web2mobile 2 ur mates etc. join txt250.com for 1.50p/wk. t&c box139 +moby pub quiz.win a ??100 high street prize if u know who the new duchess of cornwall will be? txt her first name to 82277.unsub stop ??1.50 008704050406 sp arrow + +do you want 750 anytime any network mins 150 text and a new video phone for only five pounds per week call 08000776320 now or reply for delivery tomorrow + +ree entry in 2 a weekly comp for a chance to win an ipod. txt pod to 80182 to get entry (std txt rate) t&c's apply 08452810073 for details 18+ + +sorry i missed your call let's talk when you have the time. i'm on 07090201529 + +ok... + +88800 and 89034 are premium phone services call 08718711108 + +"yo my trip got postponed +network operator. the service is free. for t & c's visit 80488.biz + +"your account has been credited with 500 free text messages. to activate +if you r @ home then come down within 5 min + +important information 4 orange user 0789xxxxxxx. today is your lucky day!2find out why log onto http://www.urawinner.com there's a fantastic surprise awaiting you! + +"urgent! your mobile no was awarded a ??2 +well done england! get the official poly ringtone or colour flag on yer mobile! text tone or flag to 84199 now! opt-out txt eng stop. box39822 w111wx ??1.50 + +you have won a guaranteed ??200 award or even ??1000 cashto claim ur award call free on 08000407165 (18+) 2 stop getstop on 88222 php. rg21 4jx + +good morning my dear........... have a great & successful day. + +hmv bonus special 500 pounds of genuine hmv vouchers to be won. just answer 4 easy questions. play now! send hmv to 86688 more info:www.100percent-real.com + +phony ??350 award - todays voda numbers ending xxxx are selected to receive a ??350 award. if you have a match please call 08712300220 quoting claim code 3100 standard rates app + +"freemsg: claim ur 250 sms messages-text ok to 84025 now!use web2mobile 2 ur mates etc. join txt250.com for 1.50p/wk. t&c box139 +unless it's a situation where you go gurl would be more appropriate + +"hi +hello. we need some posh birds and chaps to user trial prods for champneys. can i put you down? i need your address and dob asap. ta r + +"as a valued customer +"u can win ??100 of music gift vouchers every week starting now txt the word draw to 87066 tscs www.ldew.com skillgame +txt: call to no: 86888 & claim your reward of 3 hours talk time to use from your phone now! subscribe6gbp/mnth inc 3hrs 16 stop?txtstop www.gamb.tv + +block breaker now comes in deluxe format with new features and great graphics from t-mobile. buy for just ??5 by replying get bbdeluxe and take the challenge + +"\life is nothing wen v get everything\"". but \""life is everything wen v miss something \"". real value of people wil be realized only in their absence.... gud mrng""" + +hi da:)how is the todays class? + +no da. . vijay going to talk in jaya tv + +what time. i???m out until prob 3 or so + +todays voda numbers ending with 7634 are selected to receive a ??350 reward. if you have a match please call 08712300220 quoting claim code 7684 standard rates apply. + +sms auction you have won a nokia 7250i. this is what you get when you win our free auction. to take part send nokia to 86021 now. hg/suite342/2lands row/w1jhl 16+ + +"sms services. for your inclusive text credits +missed call alert. these numbers called but left no message. 07008009200 + +ok lor. msg me b4 u call. + +okie... + +"win: we have a winner! mr. t. foley won an ipod! more exciting prizes soon +want a new video phone? 750 anytime any network mins? half price line rental free text for 3 months? reply or call 08000930705 for free delivery + +"six chances to win cash! from 100 to 20 +how? izzit still raining? + +lyricalladie(21/f) is inviting you to be her friend. reply yes-910 or no-910. see her: www.sms.ac/u/hmmross stop? send stop frnd to 62468 + +"orange customer +congratulations you've won. you're a winner in our august ??1000 prize draw. call 09066660100 now. prize code 2309. + +yes. they replied my mail. i'm going to the management office later. plus will in to bank later also.or on wednesday. + +please call our customer service representative on freephone 0808 145 4742 between 9am-11pm as you have won a guaranteed ??1000 cash or ??5000 prize! + +interflora - ??it's not too late to order interflora flowers for christmas call 0800 505060 to place your order before midnight tomorrow. + +dating:i have had two of these. only started after i sent a text to talk sport radio last week. any connection do you think or coincidence? + +never blame a day in ur life. good days give u happiness. bad days give u experience. both are essential in life! all are gods blessings! good morning.: + +http//tms. widelive.com/index. wml?id=820554ad0a1705572711&first=true??c c ringtone?? + +please call 08712402578 immediately as there is an urgent message waiting for you + +prepare to be pounded every night... + +"you have been specially selected to receive a \3000 award! call 08712402050 before the lines close. cost 10ppm. 16+. t&cs apply. ag promo""" + +"orange brings you ringtones from all time chart heroes +"hack chat. get backdoor entry into 121 chat rooms at a fraction of the cost. reply neo69 or call 09050280520 +"congrats! 2 mobile 3g videophones r yours. call 09061744553 now! videochat wid ur mates +leave it. u will always be ignorant. + +free top ringtone -sub to weekly ringtone-get 1st week free-send subpoly to 81618-?3 per week-stop sms-08718727870 + +i can't believe how attached i am to seeing you every day. i know you will do the best you can to get to me babe. i will go to teach my class at your midnight + +ur cash-balance is currently 500 pounds - to maximize ur cash-in now send go to 86688 only 150p/msg. cc: 08718720201 po box 114/14 tcr/w1 + +prepare to be pleasured :) + +smile in pleasure smile in pain smile when trouble pours like rain smile when sum1 hurts u smile becoz someone still loves to see u smiling!! + +how's it feel? mr. your not my real valentine just my yo valentine even tho u hardly play!! + +i donno its in your genes or something + +this is the 2nd time we have tried to contact u. u have won the ??1450 prize to claim just call 09053750005 b4 310303. t&cs/stop sms 08718725756. 140ppm + +well done england! get the official poly ringtone or colour flag on yer mobile! text tone or flag to 84199 now! opt-out txt eng stop. box39822 w111wx ??1.50 + +a bloo bloo bloo i'll miss the first bowl + +hey tmr maybe can meet you at yck + +pls dont forget to study + +freemsg: fancy a flirt? reply date now & join the uks fastest growing mobile dating service. msgs rcvd just 25p to optout txt stop to 83021. reply date now! + +"our mobile number has won ??5000 +happy new year to u too! + +"hot live fantasies call now 08707500020 just 20p per min ntt ltd +"someone has contacted our dating service and entered your phone becausethey fancy you! to find out who it is call from a landline 09058098002. pobox1 +"hottest pics straight to your phone!! see me getting wet and wanting +aiyar u so poor thing... i give u my support k... jia you! i'll think of u... + +you have won a nokia 7250i. this is what you get when you win our free auction. to take part send nokia to 86021 now. hg/suite342/2lands row/w1jhl 16+ + +depends on individual lor e hair dresser say pretty but my parents say look gong. u kaypoh.. i also dunno wat she collecting. + +"your free ringtone is waiting to be collected. simply text the password \mix\"" to 85069 to verify. get usher and britney. fml mk17 92h. 450ppw 16""" + +bloomberg -message center +447797706009 why wait? apply for your future http://careers. bloomberg.com + +free msg: single? find a partner in your area! 1000s of real people are waiting to chat now!send chat to 62220cncl send stopcs 08717890890??1.50 per msg + +dear voucher holder 2 claim your 1st class airport lounge passes when using your holiday voucher call 08704439680. when booking quote 1st class x 2 + +sex up ur mobile with a free sexy pic of jordan! just text babe to 88600. then every wk get a sexy celeb! pocketbabe.co.uk 4 more pics. 16 ??3/wk 087016248 + +"no +private! your 2003 account statement for 07808 xxxxxx shows 800 un-redeemed s. i. m. points. call 08719899217 identifier code: 41685 expires 07/11/04 + +"aight yo +hi its in durban are you still on this number + +"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 +no da:)he is stupid da..always sending like this:)don believe any of those message.pandy is a mental:) + +we tried to contact you re your reply to our offer of a video phone 750 anytime any network mins half price line rental camcorder reply or call 08000930705 + +free entry into our ??250 weekly competition just text the word win to 80086 now. 18 t&c www.txttowin.co.uk + +"geeeee ... your internet is really bad today +"final chance! claim ur ??150 worth of discount vouchers today! text yes to 85023 now! savamob +what you did in leave. + +"new mobiles from 2004 +"urgent! call 09061749602 from landline. your complimentary 4* tenerife holiday or ??10 +"see +lmao. take a pic and send it to me. + +anyway i'm going shopping on my own now. cos my sis not done yet. dun disturb u liao. + +3. you have received your mobile content. enjoy + +urgent ur ??500 guaranteed award is still unclaimed! call 09066368327 now closingdate04/09/02 claimcode m39m51 ??1.50pmmorefrommobile2bremoved-mobypobox734ls27yf + +shall i come to get pickle + +"dear all +ok then no need to tell me anything i am going to sleep good night + +what should i eat fo lunch senor + +i think just yourself ??_thanks and see you tomo + +freemsg: txt: call to no: 86888 & claim your reward of 3 hours talk time to use from your phone now! subscribe6gbp/mnth inc 3hrs 16 stop?txtstop + +"hey +"sorry +you have an important customer service announcement. call freephone 0800 542 0825 now! + +u really pig leh sleep so much. my dad wake me up at 10 smth 2 eat lunch today. + +u 447801259231 have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094597 + +"aight will do +hey i am really horny want to chat or see me naked text hot to 69698 text charged at 150pm to unsubscribe text stop 69698 + +"aight +yes! the only place in town to meet exciting adult singles is now in the uk. txt chat to 86688 now! 150p/msg. + +"this is the 2nd time we have tried 2 contact u. u have won the 750 pound prize. 2 claim is easy +urgent! we are trying to contact u. todays draw shows that you have won a ??800 prize guaranteed. call 09050001295 from land line. claim a21. valid 12hrs only + +in the end she might still vomit but its okay. not everything will come out. + +last chance 2 claim ur ??150 worth of discount vouchers-text yes to 85023 now!savamob-member offers mobile t cs 08717898035. ??3.00 sub. 16 . remove txt x or stop + +email alertfrom: jeri stewartsize: 2kbsubject: low-cost prescripiton drvgsto listen to email call 123 + +someone u know has asked our dating service 2 contact you! cant guess who? call 09058091854 now all will be revealed. po box385 m6 6wu + +take care n get well soon + +urgent! please call 09061743810 from landline. your abta complimentary 4* tenerife holiday or #5000 cash await collection sae t&cs box 326 cw25wx 150 ppm + +this msg is for your mobile content order it has been resent as previous attempt failed due to network error queries to customersqueries.uk.com + +right it wasnt you who phoned it was someone with a number like yours! + +"hi this is amy +email alertfrom: jeri stewartsize: 2kbsubject: low-cost prescripiton drvgsto listen to email call 123 + +someone has contacted our dating service and entered your phone because they fancy you! to find out who it is call from a landline 09111032124 . pobox12n146tf150p + +holy living christ what is taking you so long + +"aight +private! your 2004 account statement for 078498****7 shows 786 unredeemed bonus points. to claim call 08719180219 identifier code: 45239 expires 06.05.05 + +xmas prize draws! we are trying to contact u. todays draw shows that you have won a ??2000 prize guaranteed. call 09058094565 from land line. valid 12hrs only + +5p 4 alfie moon's children in need song on ur mob. tell ur m8s. txt tone charity to 8007 for nokias or poly charity for polys: zed 08701417012 profit 2 charity. + +u have a secret admirer. reveal who thinks u r so special. call 09065174042. to opt out reply reveal stop. 1.50 per msg recd. cust care 07821230901 + +u come n search tat vid..not finishd.. + +we still on for tonight? + +so what about you. what do you remember + +and pls pls drink plenty plenty water + +love you aathi..love u lot.. + +"for ur chance to win a ??250 cash every wk txt: action to 80608. t's&c's www.movietrivia.tv custcare 08712405022 +a ??400 xmas reward is waiting for you! our computer has randomly picked you from our loyal mobile customers to receive a ??400 reward. just call 09066380611 + +"are you being good +you are awarded a sipix digital camera! call 09061221061 from landline. delivery within 28days. t cs box177. m221bp. 2yr warranty. 150ppm. 16 . p p??3.99 + +free for 1st week! no1 nokia tone 4 ur mobile every week just txt nokia to 8077 get txting and tell ur mates. www.getzed.co.uk pobox 36504 w45wq 16+ norm150p/tone + +no messages on her phone. i'm holding it now + +dude avatar 3d was imp. at one point i thought there were actually flies in the room and almost tried hittng one as a reflex + +"free message activate your 500 free text messages by replying to this message with the word free for terms & conditions +"my painful personal thought- \i always try to keep everybody happy all the time. but nobody recognises me when i am alone\""""" + +hiya comin 2 bristol 1 st week in april. les got off + rudi on new yrs eve but i was snoring.they were drunk! u bak at college yet? my work sends ink 2 bath. + +u 447801259231 have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094597 + +"congrats 2 mobile 3g videophones r yours. call 09063458130 now! videochat wid ur mates +when/where do i pick you up + +you are a winner you have been specially selected to receive ??1000 cash or a ??2000 award. speak to a live operator to claim call 087147123779am-7pm. cost 10p + +hey loverboy! i love you !! i had to tell ... i look at your picture and ache to feel you between my legs ... fuck i want you ... i need you ... i crave you . + +wow! the boys r back. take that 2007 uk tour. win vip tickets & pre-book with vip club. txt club to 81303. trackmarque ltd info. + +"hottest pics straight to your phone!! see me getting wet and wanting +miles and smiles r made frm same letters but do u know d difference..? smile on ur face keeps me happy even though i am miles away from u.. :-)keep smiling.. good nyt + +enjoy the jamster videosound gold club with your credits for 2 new videosounds+2 logos+musicnews! get more fun from jamster.co.uk! 16+only help? call: 09701213186 + +you have won! as a valued vodafone customer our computer has picked you to win a ??150 prize. to collect is easy. just call 09061743386 + +that's my honeymoon outfit. :) + +or i go home first lar ?_ wait 4 me lor.. i put down my stuff first.. + +babes i think i got ur brolly i left it in english wil bring it in 2mrw 4 u luv franxx + +ok then i come n pick u at engin? + +"win: we have a winner! mr. t. foley won an ipod! more exciting prizes soon +dear voucher holder 2 claim your 1st class airport lounge passes when using your holiday voucher call 08704439680. when booking quote 1st class x 2 + +"ur balance is now ??600. next question: complete the landmark +"auction round 4. the highest bid is now ??54. next maximum bid is ??71. to bid +not a drop in the tank + +you are a winner you have been specially selected to receive ??1000 cash or a ??2000 award. speak to a live operator to claim call 087147123779am-7pm. cost 10p + +"urgent! your mobile number *************** won a ??2000 bonus caller prize on 10/06/03! this is the 2nd attempt to reach you! call 09066368753 asap! box 97n7qp +* will have two more cartons off u and is very pleased with shelves + +refused a loan? secured or unsecured? can't get credit? call free now 0800 195 6669 or text back 'help' & we will! + +"\i;m reaching in another 2 stops.\""""" + +k actually can you guys meet me at the sunoco on howard? it should be right on the way + +i am at the gas station. go there. + +yo chad which gymnastics class do you wanna take? the site says christians class is full.. + +ma head dey swell oh. thanks for making my day + +married local women looking for discreet action now! 5 real matches instantly to your phone. text match to 69969 msg cost 150p 2 stop txt stop bcmsfwc1n3xx + +todays voda numbers ending 1225 are selected to receive a ??50award. if you have a match please call 08712300220 quoting claim code 3100 standard rates app + +"(no promises on when though +xmas iscoming & ur awarded either ??500 cd gift vouchers & free entry 2 r ??100 weekly draw txt music to 87066 tnc www.ldew.com1win150ppmx3age16subscription + +?? say until like dat i dun buy ericsson oso cannot oredi lar... + +"44 7732584351 +dai i downloaded but there is only exe file which i can only run that exe after installing. + +"orange brings you ringtones from all time chart heroes +yup ok... + +"our dating service has been asked 2 contact u by someone shy! call 09058091870 now all will be revealed. pobox84 +if you aren't here in the next <#> hours imma flip my shit + +"pity +free for 1st week! no1 nokia tone 4 ur mob every week just txt nokia to 8007 get txting and tell ur mates www.getzed.co.uk pobox 36504 w45wq norm150p/tone 16+ + +thanks for loving me so. you rock + +hey girl. how r u? hope u r well me an del r bak! again long time no c! give me a call sum time from lucyxx + +"the table's occupied +"spook up your mob with a halloween collection of a logo & pic message plus a free eerie tone +"u've been selected to stay in 1 of 250 top british hotels - for nothing! holiday valued at ??350! dial 08712300220 to claim - national rate call. bx526 +free>ringtone! reply real or poly eg real1 1. pushbutton 2. dontcha 3. babygoodbye 4. golddigger 5. webeburnin 1st tone free and 6 more when u join for ??3/wk + +hi its lucy hubby at meetins all day fri & i will b alone at hotel u fancy cumin over? pls leave msg 2day 09099726395 lucy x calls??1/minmobsmorelkpobox177hp51fl + +?? ready then call me... + +"i noe la... u wana pei bf oso rite... k lor +kallis is ready for bat in 2nd innings + +free for 1st week! no1 nokia tone 4 ur mob every week just txt nokia to 8007 get txting and tell ur mates www.getzed.co.uk pobox 36504 w45wq norm150p/tone 16+ + +"xmas & new years eve tickets are now on sale from the club +"congratulations! thanks to a good friend u have won the ??2 +"xmas offer! latest motorola +"had your mobile 10 mths? update to the latest camera/video phones for free. keep ur same number +u have won a nokia 6230 plus a free digital camera. this is what u get when u win our free auction. to take part send nokia to 83383 now. pobox114/14tcr/w1 16 + +i wan but too early lei... me outside now wun b home so early... neva mind then... + +great! how is the office today? + +carlos is taking his sweet time as usual so let me know when you and patty are done/want to smoke and i'll tell him to haul ass + +don't make life too stressfull.. always find time to laugh.. it may not add years to your life! but surely adds more life to ur years!! gud ni8..swt dreams.. + +someonone you know is trying to contact you via our dating service! to find out who it could be call from your mobile or landline 09064015307 box334sk38ch + +u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094594 + +ok lar i double check wif da hair dresser already he said wun cut v short. he said will cut until i look nice. + +dont know supports ass and srt i thnk. i think ps3 can play through usb too + +"ill call u 2mrw at ninish +someone u know has asked our dating service 2 contact you! cant guess who? call 09058091854 now all will be revealed. po box385 m6 6wu + +nothing just getting msgs by dis name wit different no's.. + +more people are dogging in your area now. call 09090204448 and join like minded guys. why not arrange 1 yourself. there's 1 this evening. a??1.50 minapn ls278bb + +"i'll see +"reminder from o2: to get 2.50 pounds free call credit and details of great offers pls reply 2 this text with your valid name +i'm okay. chasing the dream. what's good. what are you doing next. + +i'm always on yahoo messenger now. just send the message to me and i.ll get it you may have to send it in the mobile mode sha but i.ll get it. and will reply. + +oh...i asked for fun. haha...take care. ?_ + +"well +nt yet chikku..simple habba..hw abt u? + +wife.how she knew the time of murder exactly + +"want to funk up ur fone with a weekly new tone reply tones2u 2 this text. www.ringtones.co.uk +http//tms. widelive.com/index. wml?id=820554ad0a1705572711&first=true??c c ringtone?? + +"you are being contacted by our dating service by someone you know! to find out who it is +yup ok... + +ok lor. i ned 2 go toa payoh 4 a while 2 return smth u wan 2 send me there or wat? + +"free2day sexy st george's day pic of jordan!txt pic to 89080 dont miss out +wish u many many returns of the day.. happy birthday vikky.. + +private! your 2003 account statement for shows 800 un-redeemed s. i. m. points. call 08715203694 identifier code: 40533 expires 31/10/04 + +have you got xmas radio times. if not i will get it now + +one day a crab was running on the sea shore..the waves came n cleared the footprints of the crab.. crab asked: being my frnd y r u clearing my beautiful footprints? waves replied: a fox was following ur footprints to catch you! thats y i cleared it off:) frndsship never lets u dwn :-) gud nyt.. + +valentines day special! win over ??1000 in our quiz and take your partner on the trip of a lifetime! send go to 83600 now. 150p/msg rcvd. custcare:08718720201. + +i am on the way to ur home + +"win: we have a winner! mr. t. foley won an ipod! more exciting prizes soon +"in the simpsons movie released in july 2007 name the band that died at the start of the film? a-green day +gudnite....tc...practice going on + +"our mobile number has won ??5000 +camera - you are awarded a sipix digital camera! call 09061221066 fromm landline. delivery within 28 days. + +sunshine quiz! win a super sony dvd recorder if you canname the capital of australia? text mquiz to 82277. b + +please call amanda with regard to renewing or upgrading your current t-mobile handset free of charge. offer ends today. tel 0845 021 3680 subject to t's and c's + +do you want a new nokia 3510i colour phone deliveredtomorrow? with 300 free minutes to any mobile + 100 free texts + free camcorder reply or call 08000930705 + +"welcome to uk-mobile-date this msg is free giving you free calling to 08719839835. future mgs billed at 150p daily. to cancel send \go stop\"" to 89123""" + +i went to project centre + +"congrats! 1 year special cinema pass for 2 is yours. call 09061209465 now! c suprman v +e admin building there? i might b slightly earlier... i'll call u when i'm reaching... + +dont forget you can place as many free requests with 1stchoice.co.uk as you wish. for more information call 08707808226. + +u still painting ur wall? + +i cant pick the phone right now. pls send a message + +" +"as a valued customer +you have been specially selected to receive a 2000 pound award! call 08712402050 before the lines close. cost 10ppm. 16+. t&cs apply. ag promo + +ambrith..madurai..met u in arun dha marrge..remembr? + +"lookatme!: thanks for your purchase of a video clip from lookatme! +your b4u voucher w/c 27/03 is marsms. log onto www.b4utele.com for discount credit. to opt out reply stop. customer care call 08717168528 + +congratulations you've won. you're a winner in our august ??1000 prize draw. call 09066660100 now. prize code 2309. + +yes baby! we can study all the positions of the kama sutra ;) + +thanks for the temales it was wonderful. thank. have a great week. + +"sorry da thangam +"as a valued customer +call him and say you not coming today ok and tell them not to fool me like this ok + +how much are we getting? + +filthy stories and girls waiting for your + +oh all have to come ah? + +"gal n boy walking in d park. gal-can i hold ur hand? boy-y? do u think i would run away? gal-no +lol no. i just need to cash in my nitros. hurry come on before i crash out! + +but i have to. i like to have love and arrange. + +i just cooked a rather nice salmon a la you + +hmv bonus special 500 pounds of genuine hmv vouchers to be won. just answer 4 easy questions. play now! send hmv to 86688 more info:www.100percent-real.com + +do you think i can move <#> in a week + +its a valentine game. . . send dis msg to all ur friends. .. if 5 answers r d same then someone really loves u. ques- which colour suits me the best?rply me + +ur balance is now ??500. ur next question is: who sang 'uptown girl' in the 80's ? 2 answer txt ur answer to 83600. good luck! + +"wan2 win a meet+greet with westlife 4 u or a m8? they are currently on what tour? 1)unbreakable +get a free mobile video player free movie. to collect text go to 89105. its free! extra films can be ordered t's and c's apply. 18 yrs only + +u r too much close to my heart. if u go away i will be shattered. plz stay with me. + +this message is free. welcome to the new & improved sex & dogging club! to unsubscribe from this service reply stop. msgs 18+only + +"get 3 lions england tone +"pete +freemsg:feelin kinda lnly hope u like 2 keep me company! jst got a cam moby wanna c my pic?txt or reply date to 82242 msg150p 2rcv hlp 08712317606 stop to 82242 + +good evening! how are you? + +"win the newest ??harry potter and the order of the phoenix (book 5) reply harry +money!!! you r a lucky winner ! 2 claim your prize text money 2 88600 over ??1million to give away ! ppt150x3+normal text rate box403 w1t1jy + +ello babe u ok? + +do you want a new nokia 3510i colour phone delivered tomorrow? with 200 free minutes to any mobile + 100 free text + free camcorder reply or call 8000930705 + +free tones hope you enjoyed your new content. text stop to 61610 to unsubscribe. help:08712400602450p provided by tones2you.co.uk + +"england v macedonia - dont miss the goals/team news. txt ur national team to 87077 eg england to 87077 try:wales +private! your 2003 account statement for shows 800 un-redeemed s. i. m. points. call 08715203656 identifier code: 42049 expires 26/10/04 + +had your mobile 11 months or more? u r entitled to update to the latest colour mobiles with camera for free! call the mobile update co free on 08002986030 + +"bloody hell +get the official england poly ringtone or colour flag on yer mobile for tonights game! text tone or flag to 84199. optout txt eng stop box39822 w111wx ??1.50 + +that day you asked about anand number. why:-) + +actually i decided i was too hungry so i haven't left yet :v + +talk sexy!! make new friends or fall in love in the worlds most discreet text dating service. just text vip to 83110 and see who you could meet. + +winner!! as a valued network customer you have been selected to receivea ??900 prize reward! to claim call 09061701461. claim code kl341. valid 12 hours only. + +of cos can lar i'm not so ba dao ok... 1 pm lor... y u never ask where we go ah... i said u would ask on fri but he said u will ask today... + +i love ya too but try and budget your money better babe. gary would freak on me if he knew + +you have won a guaranteed ??200 award or even ??1000 cashto claim ur award call free on 08000407165 (18+) 2 stop getstop on 88222 php + +dear voucher holder have your next meal on us. use the following link on your pc 2 enjoy a 2 4 1 dining experiencehttp://www.vouch4me.com/etlp/dining.asp + +"got what it takes 2 take part in the wrc rally in oz? u can with lucozade energy! text rally le to 61200 (25p) +good morning my dear shijutta........... have a great & successful day. + +hope you enjoyed your new content. text stop to 61610 to unsubscribe. help:08712400602450p provided by tones2you.co.uk + +also tell him i said happy birthday + +valentines day special! win over ??1000 in our quiz and take your partner on the trip of a lifetime! send go to 83600 now. 150p/msg rcvd. custcare:08718720201 + +u gd lor go shopping i got stuff to do. u wan 2 watch infernal affairs a not? come lar... + +not yet. just i'd like to keep in touch and it will be the easiest way to do that from barcelona. by the way how ru and how is the house? + +"themob> check out our newest selection of content +do you want a new nokia 3510i colour phone delivered tomorrow? with 200 free minutes to any mobile + 100 free text + free camcorder reply or call 08000930705 + +sorry for the delay. yes masters + +okie but i scared u say i fat... then u dun wan me already... + +i'm hungry buy smth home... + +still chance there. if you search hard you will get it..let have a try :) + +ok... thanx... gd nite 2 ?_ too... + +"forgot you were working today! wanna chat +sweet heart how are you? + +sunshine quiz wkly q! win a top sony dvd player if u know which country liverpool played in mid week? txt ansr to 82277. ??1.50 sp:tyrone + +"as in missionary hook up +"i got arrested for possession at +i've been barred from all b and q stores for life!?this twat in orange dungerees came up to me and asked if i wanted decking? so i got the first punch in!! + +that was random saw my old roomate on campus. he graduated + +can i meet ?_ at 5.. as 4 where depends on where ?_ wan 2 in lor.. + +"haha awesome +"bears pic nick +and several to you sir. + +sex up ur mobile with a free sexy pic of jordan! just text babe to 88600. then every wk get a sexy celeb! pocketbabe.co.uk 4 more pics. 16 ??3/wk 087016248 + +private! your 2003 account statement for shows 800 un-redeemed s.i.m. points. call 08718738001 identifier code: 49557 expires 26/11/04 + +dear umma she called me now :-) + +re your call; you didn't see my facebook huh? + +"you ve won! your 4* costa del sol holiday or ??5000 await collection. call 09050090044 now toclaim. sae +congrats! nokia 3650 video camera phone is your call 09066382422 calls cost 150ppm ave call 3mins vary from mobiles 16+ close 300603 post bcm4284 ldn wc1n3xx + +"party's at my place at usf +"freemsg: claim ur 250 sms messages-text ok to 84025 now!use web2mobile 2 ur mates etc. join txt250.com for 1.50p/wk. t&c box139 +"thanks for your ringtone order +so ?_ pay first lar... then when is da stock comin... + +show ur colours! euro 2004 2-4-1 offer! get an england flag & 3lions tone on ur phone! click on the following service message for info! + +not yet chikku..wat abt u? + +"your free ringtone is waiting to be collected. simply text the password \mix\"" to 85069 to verify. get usher and britney. fml mk17 92h. 450ppw 16""" + +"it's ok +"will u meet ur dream partner soon? is ur career off 2 a flyng start? 2 find out free +congrats kano..whr s the treat maga? + +sexy singles are waiting for you! text your age followed by your gender as wither m or f e.g.23f. for gay men text your age followed by a g. e.g.23g. + +i know a few people i can hit up and fuck to the yes + +"i am in tirupur da +xmas prize draws! we are trying to contact u. todays draw shows that you have won a ??2000 prize guaranteed. call 09058094565 from land line. valid 12hrs only + +"sir +private! your 2003 account statement for shows 800 un-redeemed s. i. m. points. call 08715203652 identifier code: 42810 expires 29/10/0 + +i am in a marriage function + +can not use foreign stamps in this country. + +private! your 2003 account statement for 07808247860 shows 800 un-redeemed s. i. m. points. call 08719899229 identifier code: 40411 expires 06/11/04 + +\hey hey werethe monkeespeople say we monkeyaround! howdy gorgeous + +please call 08712402779 immediately as there is an urgent message waiting for you + +"loan for any purpose ??500 - ??75 +how come it takes so little time for a child who is afraid of the dark to become a teenager who wants to stay out all night? + +free tones hope you enjoyed your new content. text stop to 61610 to unsubscribe. help:08712400602450p provided by tones2you.co.uk + +hanks lotsly! + +"fighting with the world is easy +"get 3 lions england tone +anytime... + +"got what it takes 2 take part in the wrc rally in oz? u can with lucozade energy! text rally le to 61200 (25p) +"my friend just got here and says he's upping his order by a few grams (he's got $ <#> ) +"this is the 2nd time we have tried 2 contact u. u have won the 750 pound prize. 2 claim is easy +yunny i'm walking in citylink now ?_ faster come down... me very hungry... + +"rose for red +true lov n care wil nevr go unrecognized. though somone often makes mistakes when valuing it. but they will definitly undrstnd once when they start missing it. + +just come home. i don't want u to be miserable + +great new offer - double mins & double txt on best orange tariffs and get latest camera phones 4 free! call mobileupd8 free on 08000839402 now! or 2stoptxt t&cs + +ur going 2 bahamas! callfreefone 08081560665 and speak to a live operator to claim either bahamas cruise of??2000 cash 18+only. to opt out txt x to 07786200117 + +i am in tirupur. call you da. + +from 88066 lost ??12 help + +"get 3 lions england tone +i have had two more letters from . i will copy them for you cos one has a message for you. speak soon + +yup he msg me: is tat yijue? then i tot it's my group mate cos we meeting today mah... i'm askin if ?_ leaving earlier or wat mah cos mayb ?_ haf to walk v far... + +u are subscribed to the best mobile content service in the uk for ??3 per ten days until you send stop to 83435. helpline 08706091795. + +"for ur chance to win a ??250 cash every wk txt: action to 80608. t's&c's www.movietrivia.tv custcare 08712405022 +"no +u are subscribed to the best mobile content service in the uk for ??3 per 10 days until you send stop to 82324. helpline 08706091795 + +it shall be fine. i have avalarr now. will hollalater + +"bangbabes ur order is on the way. u should receive a service msg 2 download ur content. if u do not +the bus leaves at <#> + +oic... then better quickly go bathe n settle down... + +thanks 4 your continued support your question this week will enter u in2 our draw 4 ??100 cash. name the new us president? txt ans to 80082 + +"science tells that chocolate will melt under the sunlight. please don't walk under the sunlight. bcoz +still work going on:)it is very small house. + +yes. please leave at <#> . so that at <#> we can leave + +happy birthday... may all ur dreams come true... + +december only! had your mobile 11mths+? you are entitled to update to the latest colour camera mobile for free! call the mobile update co free on 08002986906 + +sunshine quiz wkly q! win a top sony dvd player if u know which country liverpool played in mid week? txt ansr to 82277. ??1.50 sp:tyrone + +all e best 4 ur exam later. + +"i've got <#> +"free entry to the gr8prizes wkly comp 4 a chance to win the latest nokia 8800 +and is there a way you can send shade's stuff to her. and she has been wonderful too. + +cbe is really good nowadays:)lot of shop and showrooms:)city is shaping good. + +going thru a very different feeling.wavering decisions and coping up with the same is the same individual.time will heal everything i believe. + +i am seeking a lady in the street and a freak in the sheets. is that you? + +then wat r u doing now? busy wif work? + +as in i want custom officer discount oh. + +how have your little darlings been so far this week? need a coffee run tomo?can't believe it's that time of week already ??_ + +i cant pick the phone right now. pls send a message + +"had your contract mobile 11 mnths? latest motorola +"england v macedonia - dont miss the goals/team news. txt ur national team to 87077 eg england to 87077 try:wales +urgent! we are trying to contact u. todays draw shows that you have won a ??800 prize guaranteed. call 09050001808 from land line. claim m95. valid12hrs only + +74355 xmas iscoming & ur awarded either ??500 cd gift vouchers & free entry 2 r ??100 weekly draw txt music to 87066 tnc + +"do you ever notice that when you're driving +"complimentary 4 star ibiza holiday or ??10 +beauty sleep can help ur pimples too. + +"some friends want me to drive em someplace +i don't know u and u don't know me. send chat to 86688 now and let's find each other! only 150p/msg rcvd. hg/suite342/2lands/row/w1j6hl ldn. 18 years or over. + +i am in escape theatre now. . going to watch kavalan in a few minutes + +for taking part in our mobile survey yesterday! you can now have 500 texts 2 use however you wish. 2 get txts just send txt to 80160 t&c www.txt43.com 1.50p + +oh great. i.ll disturb him more so that we can talk. + +sms auction you have won a nokia 7250i. this is what you get when you win our free auction. to take part send nokia to 86021 now. hg/suite342/2lands row/w1jhl 16+ + +"my parents +"chinatown got porridge +do you want bold 2 or bb torch + +u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094599 + +thank u. it better work out cause i will feel used otherwise + +i'll text you when i drop x off + +minimum walk is 3miles a day. + +88800 and 89034 are premium phone services call 08718711108 + +just do what ever is easier for you + +" +heart is empty without love.. mind is empty without wisdom.. eyes r empty without dreams & life is empty without frnds.. so alwys be in touch. good night & sweet dreams + +its hard to believe things like this. all can say lie but think twice before saying anything to me. + +private! your 2003 account statement for 07808 xxxxxx shows 800 un-redeemed s. i. m. points. call 08719899217 identifier code: 41685 expires 07/11/04 + +"hello +i'll meet you in the lobby + +hmv bonus special 500 pounds of genuine hmv vouchers to be won. just answer 4 easy questions. play now! send hmv to 86688 more info:www.100percent-real.com + +"pls send me a comprehensive mail about who i'm paying +"as a valued customer +fancy a shag? i do.interested? sextextuk.com txt xxuk suzy to 69876. txts cost 1.50 per msg. tncs on website. x + +i take it the post has come then! you must have 1000s of texts now! happy reading. my one from wiv hello caroline at the end is my favourite. bless him + +cashbin.co.uk (get lots of cash this weekend!) www.cashbin.co.uk dear welcome to the weekend we have got our biggest and best ever cash give away!! these.. + +"urgent ur awarded a complimentary trip to eurodisinc trav +"romantic paris. 2 nights +lyricalladie(21/f) is inviting you to be her friend. reply yes-910 or no-910. see her: www.sms.ac/u/hmmross stop? send stop frnd to 62468 + +"(i should add that i don't really care and if you can't i can at least get this dude to fuck off but hey +i dont thnk its a wrong calling between us + +"anyway i don't think i can secure anything up here +"themob> check out our newest selection of content +we took hooch for a walk toaday and i fell over! splat! grazed my knees and everything! should have stayed at home! see you tomorrow! + +bloomberg -message center +447797706009 why wait? apply for your future http://careers. bloomberg.com + +1st wk free! gr8 tones str8 2 u each wk. txt nokia on to 8007 for classic nokia tones or hit on to 8007 for polys. nokia/150p poly/200p 16+ + +"hi babe its chloe +you have an important customer service announcement from premier. call freephone 0800 542 0578 now! + +oh yeah clearly it's my fault + +hows the pain dear?y r u smiling? + +i'm done oredi... + +"we know taj mahal as symbol of love. but the other lesser known facts 1. mumtaz was shahjahan's 4th wife +congrats! nokia 3650 video camera phone is your call 09066382422 calls cost 150ppm ave call 3mins vary from mobiles 16+ close 300603 post bcm4284 ldn wc1n3xx + +you are a winner you have been specially selected to receive ??1000 cash or a ??2000 award. speak to a live operator to claim call 087147123779am-7pm. cost 10p + +xmas iscoming & ur awarded either ??500 cd gift vouchers & free entry 2 r ??100 weekly draw txt music to 87066 tnc www.ldew.com1win150ppmx3age16subscription + +no i'm not gonna be able to. || too late notice. || i'll be home in a few weeks anyway. || what are the plans + +convey my regards to him + +"free ringtone text first to 87131 for a poly or text get to 87131 for a true tone! help? 0845 2814032 16 after 1st free +"urgent! your mobile no was awarded a ??2 +we have new local dates in your area - lots of new people registered in your area. reply date to start now! 18 only www.flirtparty.us replys150 + +webpage s not available! + +i finished my lunch already. u wake up already? + +just got to <#> + +the whole car appreciated the last two! dad and are having a map reading semi argument but apart from that things are going ok. p. + +"lookatme!: thanks for your purchase of a video clip from lookatme! +you have an important customer service announcement. call freephone 0800 542 0825 now! + +guess what! somebody you know secretly fancies you! wanna find out who it is? give us a call on 09065394973 from landline datebox1282essexcm61xn 150p/min 18 + +we tried to contact you re your response to our offer of a new nokia fone and camcorder hit reply or call 08000930705 for delivery + +"i keep seeing weird shit and bein all \woah\"" then realising it's actually reasonable and i'm all \""oh\""""" + +i know complain num only..bettr directly go to bsnl offc nd apply for it.. + +as a registered optin subscriber ur draw 4 ??100 gift voucher will be entered on receipt of a correct ans to 80062 whats no1 in the bbc charts + +mobile club: choose any of the top quality items for your mobile. 7cfca1a + +wamma get laid?want real doggin locations sent direct to your mobile? join the uks largest dogging network. txt dogs to 69696 now!nyt. ec2a. 3lp ??1.50/msg. + +"and that is the problem. you walk around in \julianaland\"" oblivious to what is going on around you. i say the same things constantly and they go in one ear and out the other while you go off doing whatever you want to do. it's not that you don't know why i'm upset--it's that you don't listen when i tell you what is going to upset me. then you want to be surprised when i'm mad.""" + +todays voda numbers ending 1225 are selected to receive a ??50award. if you have a match please call 08712300220 quoting claim code 3100 standard rates app + +that one week leave i put know that time. why. + +ew are you one of them? + +ur cash-balance is currently 500 pounds - to maximize ur cash-in now send cash to 86688 only 150p/msg. cc: 08708800282 hg/suite342/2lands row/w1j6hl + +i think steyn surely get one wicket:) + +free msg:we billed your mobile number by mistake from shortcode 83332.please call 08081263000 to have charges refunded.this call will be free from a bt landline + +babe ? i lost you ... will you try rebooting ? + +"hi shanil +2mro i am not coming to gym machan. goodnight. + +"honeybee said: *i'm d sweetest in d world* god laughed & said: *wait +eat jap done oso aft ur lect wat... ?? got lect at 12 rite... + +i am in bus on the way to calicut + +gsoh? good with spam the ladies?u could b a male gigolo? 2 join the uk's fastest growing mens club reply oncall. mjzgroup. 08714342399.2stop reply stop. msg@??1.50rcvd + +where are you call me. + +warner village 83118 c colin farrell in swat this wkend village & get 1 free med. popcorn!just show msg+ticket.valid 4-7/12. c t&c . reply sony 4 mre film offers + +"our dating service has been asked 2 contact u by someone shy! call 09058091870 now all will be revealed. pobox84 +"\gran onlyfound out afew days ago.cusoon honi\""""" + +"mila +"urgent!: your mobile no. was awarded a ??2 +someone u know has asked our dating service 2 contact you! cant guess who? call 09058091854 now all will be revealed. po box385 m6 6wu + +k..k:)how much does it cost? + +says the <#> year old with a man and money. i'm down to my last <#> . still waiting for that check. + +you have won a nokia 7250i. this is what you get when you win our free auction. to take part send nokia to 86021 now. hg/suite342/2lands row/w1jhl 16+ + +ard 515 like dat. y? + +"bored of speed dating? try speedchat +private! your 2003 account statement for shows 800 un-redeemed s.i.m. points. call 08715203685 identifier code:4xx26 expires 13/10/04 + +free entry into our ??250 weekly competition just text the word win to 80086 now. 18 t&c www.txttowin.co.uk + +text & meet someone sexy today. u can find a date or even flirt its up to u. join 4 just 10p. reply with name & age eg sam 25. 18 -msg recd pence + +"urgent! your mobile no *********** won a ??2 +ree entry in 2 a weekly comp for a chance to win an ipod. txt pod to 80182 to get entry (std txt rate) t&c's apply 08452810073 for details 18+ + +blank is blank. but wat is blank? lol + +"call me +please call our customer service representative on 0800 169 6031 between 10am-9pm as you have won a guaranteed ??1000 cash or ??5000 prize! + +"sure +\keep ur problems in ur heart + +yes.mum lookin strong:) + +you are chosen to receive a ??350 award! pls call claim number 09066364311 to collect your award which you are selected to receive as a valued mobile customer. + +nope i'm not drivin... i neva develop da photos lei... + +"i can make it up there +you won't believe it but it's true. it's incredible txts! reply g now to learn truly amazing things that will blow your mind. from o2fwd only 18p/txt + +"urgent! call 09066612661 from landline. your complementary 4* tenerife holiday or ??10 +please call our customer service representative on freephone 0808 145 4742 between 9am-11pm as you have won a guaranteed ??1000 cash or ??5000 prize! + +was the actual exam harder than nbme + +you have won a guaranteed ??200 award or even ??1000 cashto claim ur award call free on 08000407165 (18+) 2 stop getstop on 88222 php. rg21 4jx + +last chance 2 claim ur ??150 worth of discount vouchers-text yes to 85023 now!savamob-member offers mobile t cs 08717898035. ??3.00 sub. 16 . remove txt x or stop + +"urgent! call 09061749602 from landline. your complimentary 4* tenerife holiday or ??10 +email alertfrom: jeri stewartsize: 2kbsubject: low-cost prescripiton drvgsto listen to email call 123 + +probably money worries. things are coming due and i have several outstanding invoices for work i did two and three months ago. + +had your mobile 11mths ? update for free to oranges latest colour camera mobiles & unlimited weekend calls. call mobile upd8 on freefone 08000839402 or 2stoptx + +"have a lovely night and when you wake up to see this message +ok lor ?_ reaching then message me. + +"hi babe its chloe +ur tonexs subscription has been renewed and you have been charged ??4.50. you can choose 10 more polys this month. www.clubzed.co.uk *billing msg* + +hi..i got the money da:) + +private! your 2003 account statement for shows 800 un-redeemed s.i.m. points. call 08715203685 identifier code:4xx26 expires 13/10/04 + +he says he'll give me a call when his friend's got the money but that he's definitely buying before the end of the week + +urgent! your mobile number has been awarded a 2000 prize guaranteed. call 09061790125 from landline. claim 3030. valid 12hrs only 150ppm + +hey you still want to go for yogasana? coz if we end at cine then can go bathe and hav the steam bath + +money!!! you r a lucky winner ! 2 claim your prize text money 2 88600 over ??1million to give away ! ppt150x3+normal text rate box403 w1t1jy + +private! your 2003 account statement for shows 800 un-redeemed s. i. m. points. call 08715203656 identifier code: 42049 expires 26/10/04 + +send me the new number + +huh so early.. then ?_ having dinner outside izzit? + +tell them no need to investigate about me anywhere. + +sorry da. i gone mad so many pending works what to do. + +thank you meet you monday + +man this bus is so so so slow. i think you're gonna get there before me + +not heard from u4 a while. call 4 rude chat private line 01223585334 to cum. wan 2c pics of me gettin shagged then text pix to 8552. 2end send stop 8552 sam xxx + +how long does applebees fucking take + +urgent! please call 09061213237 from landline. ??5000 cash or a luxury 4* canary islands holiday await collection. t&cs sae po box 177. m227xy. 150ppm. 16+ + +guess what! somebody you know secretly fancies you! wanna find out who it is? give us a call on 09065394514 from landline datebox1282essexcm61xn 150p/min 18 + +what happened to our yo date? + +for many things its an antibiotic and it can be used for chest abdomen and gynae infections even bone infections. + +a ??400 xmas reward is waiting for you! our computer has randomly picked you from our loyal mobile customers to receive a ??400 reward. just call 09066380611 + +k..k:)where are you?how did you performed? + +"hot live fantasies call now 08707509020 just 20p per min ntt ltd +in which place i can get rooms cheap:-) + +"haha awesome +"double mins and txts 4 6months free bluetooth on orange. available on sony +gent! we are trying to contact you. last weekends draw shows that you won a ??1000 prize guaranteed. call 09064012160. claim code k52. valid 12hrs only. 150ppm + +gsoh? good with spam the ladies?u could b a male gigolo? 2 join the uk's fastest growing mens club reply oncall. mjzgroup. 08714342399.2stop reply stop. msg@??1.50rcvd + +mm so you asked me not to call radio + +hey you around? i've got enough for a half + the ten i owe you + +send a logo 2 ur lover - 2 names joined by a heart. txt love name1 name2 mobno eg love adam eve 07123456789 to 87077 yahoo! pobox36504w45wq txtno 4 no ads 150p. + +"hi there +"good friends care for each other.. close friends understand each other... and true friends stay forever beyond words +"fantasy football is back on your tv. go to sky gamestar on sky active and play ??250k dream team. scoring starts on saturday +how are you doing? hope you've settled in for the new school year. just wishin you a gr8 day + +mode men or have you left. + +"did i forget to tell you ? i want you +gsoh? good with spam the ladies?u could b a male gigolo? 2 join the uk's fastest growing mens club reply oncall. mjzgroup. 08714342399.2stop reply stop. msg@??1.50rcvd + +we are supposed to meet to discuss abt our trip... thought xuhui told you? in the afternoon. thought we can go for lesson after that + +yeah sure i'll leave in a min + +she just broke down a list of reasons why nobody's in town and i can't tell if she's being sarcastic or just faggy + +"hi +i'm going 4 lunch now wif my family then aft dat i go str 2 orchard lor. + +you give us back my id proof and <#> rs. we wont allow you to work. we will come to your home within days + +goldviking (29/m) is inviting you to be his friend. reply yes-762 or no-762 see him: www.sms.ac/u/goldviking stop? send stop frnd to 62468 + +still in the area of the restaurant. ill try to come back soon + +"accordingly. i repeat +then why you not responding + +yup but not studying surfing lor. i'm in e lazy mode today. + +ur cash-balance is currently 500 pounds - to maximize ur cash-in now send go to 86688 only 150p/meg. cc: 08718720201 hg/suite342/2lands row/w1j6hl + +"wen ur lovable bcums angry wid u +i'm going 2 orchard now laready me reaching soon. u reaching? + +"get the door +"themob>hit the link to get a premium pink panther game +yes ammae....life takes lot of turns you can only sit and try to hold the steering... + +join the uk's horniest dogging service and u can have sex 2nite!. just sign up and follow the instructions. txt entry to 69888 now! nyt.ec2a.3lp.msg + +"gr8 poly tones 4 all mobs direct 2u rply with poly title to 8007 eg poly breathe1 titles: crazyin +74355 xmas iscoming & ur awarded either ??500 cd gift vouchers & free entry 2 r ??100 weekly draw txt music to 87066 tnc + +"dizzamn +"that's very rude +our records indicate u maybe entitled to 5000 pounds in compensation for the accident you had. to claim 4 free reply with claim to this msg. 2 stop txt stop + +important information 4 orange user 0789xxxxxxx. today is your lucky day!2find out why log onto http://www.urawinner.com there's a fantastic surprise awaiting you! + +happy new years melody! + +r u sure they'll understand that! wine * good idea just had a slurp! + +"win: we have a winner! mr. t. foley won an ipod! more exciting prizes soon +"hi +"you are being contacted by our dating service by someone you know! to find out who it is +block breaker now comes in deluxe format with new features and great graphics from t-mobile. buy for just ??5 by replying get bbdeluxe and take the challenge + +get your garden ready for summer with a free selection of summer bulbs and seeds worth ??33:50 only with the scotsman this saturday. to stop go2 notxt.co.uk + +you have won a guaranteed ??200 award or even ??1000 cashto claim ur award call free on 08000407165 (18+) 2 stop getstop on 88222 php + +oi when you gonna ring + +"double mins & 1000 txts on orange tariffs. latest motorola +"free msg: get gnarls barkleys \crazy\"" ringtone totally free just reply go to this message right now!""" + +ok... + +just getting back home + +"urgent +"free2day sexy st george's day pic of jordan!txt pic to 89080 dont miss out +"free ringtone text first to 87131 for a poly or text get to 87131 for a true tone! help? 0845 2814032 16 after 1st free +i don't know u and u don't know me. send chat to 86688 now and let's find each other! only 150p/msg rcvd. hg/suite342/2lands/row/w1j6hl ldn. 18 years or over. + +"urgent. important information for 02 user. today is your lucky day! 2 find out why +double eviction this week - spiral and michael and good riddance to them! + +someone u know has asked our dating service 2 contact you! cant guess who? call 09058091854 now all will be revealed. po box385 m6 6wu + +make that 3! 4 fucks sake?! x + +no da. i am happy that we sit together na + +you are now unsubscribed all services. get tons of sexy babes or hunks straight to your phone! go to http://gotbabes.co.uk. no subscriptions. + +aiyah sorry lor... i watch tv watch until i forgot 2 check my phone. + +yeah my usual guy's out of town but there're definitely people around i know + +"cmon babe +"the last thing i ever wanted to do was hurt you. and i didn't think it would have. you'd laugh +"2 celebrate my b??day +where is it. is there any opening for mca. + +well. im computerless. time to make some oreo truffles + +nope watching tv at home... not going out. v bored... + +hi its lucy hubby at meetins all day fri & i will b alone at hotel u fancy cumin over? pls leave msg 2day 09099726395 lucy x calls??1/minmobsmorelkpobox177hp51fl + +"will u meet ur dream partner soon? is ur career off 2 a flyng start? 2 find out free +splashmobile: choose from 1000s of gr8 tones each wk! this is a subscrition service with weekly tones costing 300p. u have one credit - kick back and enjoy + +"congrats! 1 year special cinema pass for 2 is yours. call 09061209465 now! c suprman v +do you want a new nokia 3510i colour phone deliveredtomorrow? with 300 free minutes to any mobile + 100 free texts + free camcorder reply or call 08000930705. + +please call our customer service representative on freephone 0808 145 4742 between 9am-11pm as you have won a guaranteed ??1000 cash or ??5000 prize! + +lord of the rings:return of the king in store now!reply lotr by 2 june 4 chance 2 win lotr soundtrack cds stdtxtrate. reply stop to end txts + +reply to win ??100 weekly! what professional sport does tiger woods play? send stop to 87239 to end service + +"freemsg you have been awarded a free mini digital camera +hello! how r u? im bored. inever thought id get bored with the tv but i am. tell me something exciting has happened there? anything! =/ + +how are you. wish you a great semester + +dont forget you can place as many free requests with 1stchoice.co.uk as you wish. for more information call 08707808226. + +what r u cooking me for dinner? + +"orange customer +please call our customer service representative on freephone 0808 145 4742 between 9am-11pm as you have won a guaranteed ??1000 cash or ??5000 prize! + +"someone has contacted our dating service and entered your phone becausethey fancy you! to find out who it is call from a landline 09058098002. pobox1 +you have an important customer service announcement. call freephone 0800 542 0825 now! + +free>ringtone! reply real or poly eg real1 1. pushbutton 2. dontcha 3. babygoodbye 4. golddigger 5. webeburnin 1st tone free and 6 more when u join for ??3/wk + +"thanks for your ringtone order +"your free ringtone is waiting to be collected. simply text the password \mix\"" to 85069 to verify. get usher and britney. fml mk17 92h. 450ppw 16""" + +"hungry gay guys feeling hungry and up 4 it +camera - you are awarded a sipix digital camera! call 09061221066 fromm landline. delivery within 28 days. + +"congrats! 2 mobile 3g videophones r yours. call 09061744553 now! videochat wid ur mates +important information 4 orange user 0789xxxxxxx. today is your lucky day!2find out why log onto http://www.urawinner.com there's a fantastic surprise awaiting you! + +yay can't wait to party together! + +ok... i din get ur msg... + +when can ?_ come out? + +"get 3 lions england tone +"you are being contacted by our dating service by someone you know! to find out who it is +yes..he is really great..bhaji told kallis best cricketer after sachin in world:).very tough to get out. + +jason says it's cool if we pick some up from his place in like an hour + +wanna get laid 2nite? want real dogging locations sent direct to ur mobile? join the uk's largest dogging network. txt park to 69696 now! nyt. ec2a. 3lp ??1.50/msg + +yo sorry was in the shower sup + +eh u send wrongly lar... + +"you are everywhere dirt +happy new year. hope you are having a good semester + +urgent! your mobile number has been awarded with a ??2000 prize guaranteed. call 09058094454 from land line. claim 3030. valid 12hrs only + +good night my dear.. sleepwell&take care + +todays vodafone numbers ending with 0089(my last four digits) are selected to received a ??350 award. if your number matches please call 09063442151 to claim your ??350 award + +"congratulations! thanks to a good friend u have won the ??2 +once free call me sir. + +"hey there! glad u r better now. i hear u treated urself to a digi cam +remember to ask alex about his pizza + +s but not able to sleep. + +what type of stuff do you sing? + +"set a place for me in your heart and not in your mind ++123 congratulations - in this week's competition draw u have won the ??1450 prize to claim just call 09050002311 b4280703. t&cs/stop sms 08718727868. over 18 only 150ppm + +but your brother transfered only <#> + <#> . pa. + +you are a winner u have been specially selected 2 receive ??1000 cash or a 4* holiday (flights inc) speak to a live operator 2 claim 0871277810810 + +life spend with someone for a lifetime may be meaningless but a few moments spent with someone who really love you means more than life itself.. + +phony ??350 award - todays voda numbers ending xxxx are selected to receive a ??350 award. if you have a match please call 08712300220 quoting claim code 3100 standard rates app + +sms. ac sun0819 posts hello:\you seem cool + +"spjanuary male sale! hot gay chat now cheaper +todays voda numbers ending 1225 are selected to receive a ??50award. if you have a match please call 08712300220 quoting claim code 3100 standard rates app + +free entry in 2 a weekly comp for a chance to win an ipod. txt pod to 80182 to get entry (std txt rate) t&c's apply 08452810073 for details 18+ + +kothi print out marandratha. + +"we know someone who you know that fancies you. call 09058097218 to find out who. pobox 6 +"this weeks savamob member offers are now accessible. just call 08709501522 for details! savamob +07732584351 - rodger burns - msg = we tried to call you re your reply to our sms for a free nokia mobile + free camcorder. please call now 08000930705 for delivery tomorrow + +your weekly cool-mob tones are ready to download !this weeks new tones include: 1) crazy frog-axel f>>> 2) akon-lonely>>> 3) black eyed-dont p >>>more info in n + +88066 from 88066 lost 3pound help + +"urgent! your mobile no 07808726822 was awarded a ??2 +do you mind if i ask what happened? you dont have to say if it is uncomfortable. + +"your free ringtone is waiting to be collected. simply text the password \mix\"" to 85069 to verify. get usher and britney. fml mk17 92h. 450ppw 16""" + +beerage? + +free entry in 2 a weekly comp for a chance to win an ipod. txt pod to 80182 to get entry (std txt rate) t&c's apply 08452810073 for details 18+ + +here got ur favorite oyster... n got my favorite sashimi... ok lar i dun say already... wait ur stomach start rumbling... + +no rushing. i'm not working. i'm in school so if we rush we go hungry. + +how many times i told in the stage all use to laugh. you not listen aha. + +(bank of granite issues strong-buy) explosive pick for our members *****up over 300% *********** nasdaq symbol cdgt that is a $5.00 per.. + +we tried to call you re your reply to our sms for a video mobile 750 mins unlimited text + free camcorder reply of call 08000930705 now + +shb b ok lor... thanx... + +"win: we have a winner! mr. t. foley won an ipod! more exciting prizes soon +dont worry. i guess he's busy. + +"i feel like a dick because i keep sleeping through your texts and facebook messages. sup +3. you have received your mobile content. enjoy + +yar... i tot u knew dis would happen long ago already. + +get ur 1st ringtone free now! reply to this msg with tone. gr8 top 20 tones to your phone every week just ??1.50 per wk 2 opt out send stop 08452810071 16 + +get your garden ready for summer with a free selection of summer bulbs and seeds worth ??33:50 only with the scotsman this saturday. to stop go2 notxt.co.uk + +just glad to be talking to you. + +i agree. so i can stop thinkin about ipad. can you please ask macho the same question. + +private! your 2003 account statement for shows 800 un-redeemed s.i.m. points. call 08718738001 identifier code: 49557 expires 26/11/04 + +xmas iscoming & ur awarded either ??500 cd gift vouchers & free entry 2 r ??100 weekly draw txt music to 87066 tnc www.ldew.com1win150ppmx3age16subscription + +"yo +u have a secret admirer. reveal who thinks u r so special. call 09065174042. to opt out reply reveal stop. 1.50 per msg recd. cust care 07821230901 + +thanks 4 your continued support your question this week will enter u in2 our draw 4 ??100 cash. name the new us president? txt ans to 80082 + +valentines day special! win over ??1000 in our quiz and take your partner on the trip of a lifetime! send go to 83600 now. 150p/msg rcvd. custcare:08718720201. + +bought one ringtone and now getting texts costing 3 pound offering more tones etc + +free for 1st week! no1 nokia tone 4 ur mob every week just txt nokia to 8007 get txting and tell ur mates www.getzed.co.uk pobox 36504 w45wq norm150p/tone 16+ + +i had a good time too. its nice to do something a bit different with my weekends for a change. see ya soon + +ever thought about living a good life with a perfect partner? just txt back name and age to join the mobile community. (100p/sms) + +we tried to contact you re your reply to our offer of a video handset? 750 anytime any networks mins? unlimited text? camcorder? reply or call 08000930705 now + +"xmas offer! latest motorola +"ou are guaranteed the latest nokia phone +"hurry up +urgent! we are trying to contact u. todays draw shows that you have won a ??800 prize guaranteed. call 09050001808 from land line. claim m95. valid12hrs only + +jokin only lar... :-) depends on which phone my father can get lor... + +u in town alone? + +todays voda numbers ending 7548 are selected to receive a $350 award. if you have a match please call 08712300220 quoting claim code 4041 standard rates app + +oh you got many responsibilities. + +private! your 2003 account statement for 07973788240 shows 800 un-redeemed s. i. m. points. call 08715203649 identifier code: 40533 expires 31/10/04 + +"sad story of a man - last week was my b'day. my wife did'nt wish me. my parents forgot n so did my kids . i went to work. even my colleagues did not wish. as i entered my cabin my pa said +u???ve bin awarded ??50 to play 4 instant cash. call 08715203028 to claim. every 9th player wins min ??50-??500. optout 08718727870 + +would you like to see my xxx pics they are so hot they were nearly banned in the uk! + +had your mobile 11 months or more? u r entitled to update to the latest colour mobiles with camera for free! call the mobile update co free on 08002986030 + +hi good mornin.. thanku wish u d same.. + +am new 2 club & dont fink we met yet will b gr8 2 c u please leave msg 2day wiv ur area 09099726553 reply promised carlie x calls??1/minmobsmore lkpobox177hp51fl + +"january male sale! hot gay chat now cheaper +so how's scotland. hope you are not over showing your jjc tendencies. take care. live the dream + +"nah +"had your contract mobile 11 mnths? latest motorola +urgent! we are trying to contact u. todays draw shows that you have won a ??800 prize guaranteed. call 09050001808 from land line. claim m95. valid12hrs only + +?? neva tell me how i noe... i'm not at home in da aft wat... + +yes! the only place in town to meet exciting adult singles is now in the uk. txt chat to 86688 now! 150p/msg. + +do you want a new nokia 3510i colour phone delivered tomorrow? with 200 free minutes to any mobile + 100 free text + free camcorder reply or call 8000930705 + +join the uk's horniest dogging service and u can have sex 2nite!. just sign up and follow the instructions. txt entry to 69888 now! nyt.ec2a.3lp.msg + +1st wk free! gr8 tones str8 2 u each wk. txt nokia on to 8007 for classic nokia tones or hit on to 8007 for polys. nokia/150p poly/200p 16+ + +"the sign of maturity is not when we start saying big things.. but actually it is +thanks for looking out for me. i really appreciate. + +i dont know why she.s not getting your messages + +yes i started to send requests to make it but pain came back so i'm back in bed. double coins at the factory too. i gotta cash in all my nitros. + +this msg is for your mobile content order it has been resent as previous attempt failed due to network error queries to customersqueries.uk.com + +"rock yr chik. get 100's of filthy films &xxx pics on yr phone now. rply filth to 69669. saristar ltd +todays voda numbers ending 7548 are selected to receive a $350 award. if you have a match please call 08712300220 quoting claim code 4041 standard rates app + +"tddnewsletter.co.uk (more games from thedailydraw) dear helen +valentines day special! win over ??1000 in our quiz and take your partner on the trip of a lifetime! send go to 83600 now. 150p/msg rcvd. custcare:08718720201. + +call 09090900040 & listen to extreme dirty live chat going on in the office right now total privacy no one knows your [sic] listening 60p min 24/7mp 0870753331018+ + +lol i have to take it. member how i said my aunt flow didn't visit for 6 months? it's cause i developed ovarian cysts. bc is the only way to shrink them. + +"mila +<#> in mca. but not conform. + +please call our customer service representative on freephone 0808 145 4742 between 9am-11pm as you have won a guaranteed ??1000 cash or ??5000 prize! + +i walked an hour 2 c u! doesn??t that show i care y wont u believe im serious? + +?? give me some time to walk there. + +wanna have a laugh? try chit-chat on your mobile now! logon by txting the word: chat and send it to no: 8883 cm po box 4217 london w1a 6zf 16+ 118p/msg rcvd + +i'm home. + +free entry into our ??250 weekly comp just send the word win to 80086 now. 18 t&c www.txttowin.co.uk + +u are subscribed to the best mobile content service in the uk for ??3 per ten days until you send stop to 83435. helpline 08706091795. + +"sorry +purity of friendship between two is not about smiling after reading the forwarded message..its about smiling just by seeing the name. gud evng + +please dont say like that. hi hi hi + +"sorry +please call 08712402578 immediately as there is an urgent message waiting for you + +"hi babe its jordan +"sorry chikku +<#> mins but i had to stop somewhere first. + +natalja (25/f) is inviting you to be her friend. reply yes-440 or no-440 see her: www.sms.ac/u/nat27081980 stop? send stop frnd to 62468 + +"good afternoon loverboy ! how goes you day ? any luck come your way? i think of you +do you want a new video phone750 anytime any network mins 150 text for only five pounds per week call 08000776320 now or reply for delivery tomorrow + +you bad girl. i can still remember them + +"urgent! last weekend's draw shows that you have won ??1000 cash or a spanish holiday! call now 09050000332 to claim. t&c: rstm +text banneduk to 89555 to see! cost 150p textoperator g696ga 18+ xxx + +no 1 polyphonic tone 4 ur mob every week! just txt pt2 to 87575. 1st tone free ! so get txtin now and tell ur friends. 150p/tone. 16 reply hl 4info + +as per your request 'melle melle (oru minnaminunginte nurungu vettam)' has been set as your callertune for all callers. press *9 to copy your friends callertune + +"free entry to the gr8prizes wkly comp 4 a chance to win the latest nokia 8800 +"haha +okay lor... wah... like that def they wont let us go... haha... what did they say in the terms and conditions? + +"free msg: get gnarls barkleys \crazy\"" ringtone totally free just reply go to this message right now!""" + +"erm... woodland avenue somewhere. do you get the parish magazine +"well done! your 4* costa del sol holiday or ??5000 await collection. call 09050090044 now toclaim. sae +"hot live fantasies call now 08707509020 just 20p per min ntt ltd ++123 congratulations - in this week's competition draw u have won the ??1450 prize to claim just call 09050002311 b4280703. t&cs/stop sms 08718727868. over 18 only 150ppm + +yeah he got in at 2 and was v apologetic. n had fallen out and she was actin like spoilt child and he got caught up in that. till 2! but we won't go there! not doing too badly cheers. you? + +k k pa had your lunch aha. + +xmas iscoming & ur awarded either ??500 cd gift vouchers & free entry 2 r ??100 weekly draw txt music to 87066 tnc www.ldew.com1win150ppmx3age16subscription + +save money on wedding lingerie at www.bridal.petticoatdreams.co.uk choose from a superb selection with national delivery. brought to you by weddingfriend + +great. so should i send you my account number. + +"this is the 2nd time we have tried to contact u. u have won the ??400 prize. 2 claim is easy +december only! had your mobile 11mths+? you are entitled to update to the latest colour camera mobile for free! call the mobile update vco free on 08002986906 + +"we know someone who you know that fancies you. call 09058097218 to find out who. pobox 6 +do you want 750 anytime any network mins 150 text and a new video phone for only five pounds per week call 08002888812 or reply for delivery tomorrow + +"that's what i love to hear :v see you sundayish +free for 1st week! no1 nokia tone 4 ur mobile every week just txt nokia to 8077 get txting and tell ur mates. www.getzed.co.uk pobox 36504 w45wq 16+ norm150p/tone + +"the guy at the car shop who was flirting with me got my phone number from the paperwork and called and texted me. i'm nervous because of course now he may have my address. should i call his boss and tell him +ok i vl..do u know i got adsense approved.. + +dude ive been seeing a lotta corvettes lately + +"you are being contacted by our dating service by someone you know! to find out who it is +"its ok chikku +"last chance! claim ur ??150 worth of discount vouchers today! text shop to 85023 now! savamob +can you plz tell me the ans. bslvyl sent via fullonsms.com + +have * good weekend. + +"yeah go on then +your opinion about me? 1. over 2. jada 3. kusruthi 4. lovable 5. silent 6. spl character 7. not matured 8. stylish 9. simple pls reply.. + +"i'm in a meeting +"thanks for your ringtone order +500 free text msgs. just text ok to 80488 and we'll credit your account + +"hottest pics straight to your phone!! see me getting wet and wanting +fine am simply sitting. + +well done england! get the official poly ringtone or colour flag on yer mobile! text tone or flag to 84199 now! opt-out txt eng stop. box39822 w111wx ??1.50 + +oh oh... wasted... den muz chiong on sat n sun liao... + +camera - you are awarded a sipix digital camera! call 09061221066 fromm landline. delivery within 28 days + +big brother alert! the computer has selected u for 10k cash or #150 voucher. call 09064018838. ntt po box cro1327 18+ bt landline cost 150ppm mobiles vary + +"congrats 2 mobile 3g videophones r yours. call 09063458130 now! videochat wid ur mates +"now +"nothing really +this message is brought to you by gmw ltd. and is not connected to the + +"hot live fantasies call now 08707509020 just 20p per min ntt ltd +hello boytoy ! geeee ... i'm missing you today. i like to send you a tm and remind you i'm thinking of you ... and you are loved ... *loving kiss* + +"urgent! your mobile no 07xxxxxxxxx won a ??2 +"eerie nokia tones 4u +we'll you pay over like <#> yrs so its not too difficult + +"uh +k:)k..its good:)when are you going? + +the search 4 happiness is 1 of d main sources of unhappiness! accept life the way it comes! u will find happiness in every moment u live. + +we tried to call you re your reply to our sms for a video mobile 750 mins unlimited text + free camcorder reply of call 08000930705 now + +i wil be there with in <#> minutes. got any space + +"cool +send a logo 2 ur lover - 2 names joined by a heart. txt love name1 name2 mobno eg love adam eve 07123456789 to 87077 yahoo! pobox36504w45wq txtno 4 no ads 150p. + +"arms fine +"received +are u awake? is there snow there? + +somewhere out there beneath the pale moon light someone think in of u some where out there where dreams come true... goodnite & sweet dreams + +"urgent! call 09066350750 from your landline. your complimentary 4* ibiza holiday or 10 +"urgent! your mobile no. was awarded ??2000 bonus caller prize on 5/9/03 this is our final try to contact u! call from landline 09064019788 box42wr29c +i really need 2 kiss u i miss u my baby from ur baby 4eva + +in xam hall boy asked girl tell me the starting term for dis answer i can den manage on my own after lot of hesitation n lookin around silently she said the! intha ponnungale ipaditan;) + +am okay. will soon be over. all the best + +call me when you get the chance plz <3 + +i am going to sleep. i am tired of travel. + +how much i gave to you. morning. + +dear subscriber ur draw 4 ??100 gift voucher will b entered on receipt of a correct ans. when was elvis presleys birthday? txt answer to 80062 + +wen did you get so spiritual and deep. that's great + +"hi babe its jordan +free>ringtone! reply real or poly eg real1 1. pushbutton 2. dontcha 3. babygoodbye 4. golddigger 5. webeburnin 1st tone free and 6 more when u join for ??3/wk + +as per your request 'melle melle (oru minnaminunginte nurungu vettam)' has been set as your callertune for all callers. press *9 to copy your friends callertune + +you have won a nokia 7250i. this is what you get when you win our free auction. to take part send nokia to 86021 now. hg/suite342/2lands row/w1jhl 16+ + +"i'm in a meeting +surly ill give it to you:-) while coming to review. + +natalja (25/f) is inviting you to be her friend. reply yes-440 or no-440 see her: www.sms.ac/u/nat27081980 stop? send stop frnd to 62468 + +"want to funk up ur fone with a weekly new tone reply tones2u 2 this text. www.ringtones.co.uk +you call times job today ok umma and ask them to speed up + +private! your 2003 account statement for shows 800 un-redeemed s. i. m. points. call 08715203652 identifier code: 42810 expires 29/10/0 + +sorry! u can not unsubscribe yet. the mob offer package has a min term of 54 weeks> pls resubmit request after expiry. reply themob help 4 more info + +indeed and by the way it was either or - not both ! + +ur going 2 bahamas! callfreefone 08081560665 and speak to a live operator to claim either bahamas cruise of??2000 cash 18+only. to opt out txt x to 07786200117 + +just seeing your missed call my dear brother. do have a gr8 day. + +t-mobile customer you may now claim your free camera phone upgrade & a pay & go sim card for your loyalty. call on 0845 021 3680.offer ends 28thfeb.t&c's apply + +private! your 2003 account statement for shows 800 un-redeemed s.i.m. points. call 08718738001 identifier code: 49557 expires 26/11/04 + +can you plz tell me the ans. bslvyl sent via fullonsms.com + +free entry into our ??250 weekly comp just send the word enter to 84128 now. 18 t&c www.textcomp.com cust care 08712405020. + +today am going to college so am not able to atten the class. + +okie... + +remind me how to get there and i shall do so + +"u can win ??100 of music gift vouchers every week starting now txt the word draw to 87066 tscs www.idew.com skillgame +"yeah i should be able to +"eerie nokia tones 4u +"yes +gibbs unsold.mike hussey + +"thank you +ahhh. work. i vaguely remember that! what does it feel like? lol + +i am in escape theatre now. . going to watch kavalan in a few minutes + +block breaker now comes in deluxe format with new features and great graphics from t-mobile. buy for just ??5 by replying get bbdeluxe and take the challenge + +howz that persons story + +please call 08712402972 immediately as there is an urgent message waiting for you + +"gr8 poly tones 4 all mobs direct 2u rply with poly title to 8007 eg poly breathe1 titles: crazyin +buzzzz! *grins* did i buzz your ass? buzz your chest ? buzz your cock ? where do you keep your phone ? is the vibrator on ? did you feel it shake ? + +"lemme know when i can swing by and pick up +"u've been selected to stay in 1 of 250 top british hotels - for nothing! holiday valued at ??350! dial 08712300220 to claim - national rate call. bx526 +"you have won ?1 +:-( that's not v romantic! + +"how is my boy? no sweet words left for me this morning ... *sighs* ... how goes you day +cds 4u: congratulations ur awarded ??500 of cd gift vouchers or ??125 gift guaranteed & freeentry 2 ??100 wkly draw xt music to 87066 tncs www.ldew.com1win150ppmx3age16 + +"free ringtone text first to 87131 for a poly or text get to 87131 for a true tone! help? 0845 2814032 16 after 1st free +dear u've been invited to xchat. this is our final attempt to contact u! txt chat to 86688 150p/msgrcvdhg/suite342/2lands/row/w1j6hl ldn 18 yrs + +want 2 get laid tonight? want real dogging locations sent direct 2 ur mob? join the uk's largest dogging network bt txting gravel to 69888! nt. ec2a. 31p.msg + +urgent! we are trying to contact u. todays draw shows that you have won a ??800 prize guaranteed. call 09050001808 from land line. claim m95. valid12hrs only + +valentines day special! win over ??1000 in our quiz and take your partner on the trip of a lifetime! send go to 83600 now. 150p/msg rcvd. custcare:08718720201 + +nope wif my sis lor... aft bathing my dog then i can bathe... looks like it's going 2 rain soon. + +well obviously not because all the people in my cool college life went home ;_; + +had your mobile 11 months or more? u r entitled to update to the latest colour mobiles with camera for free! call the mobile update co free on 08002986030 + ++123 congratulations - in this week's competition draw u have won the ??1450 prize to claim just call 09050002311 b4280703. t&cs/stop sms 08718727868. over 18 only 150ppm + +in that case i guess i'll see you at campus lodge + +nah dub but je still buff + +don know:)this week i'm going to tirunelvai da. + +rct' thnq adrian for u text. rgds vatian + +i dont have i shall buy one dear + +money!!! you r a lucky winner ! 2 claim your prize text money 2 88600 over ??1million to give away ! ppt150x3+normal text rate box403 w1t1jy + +i always chat with you. in fact i need money can you raise me? + +* will be september by then! + +its ok my arm is feeling weak cuz i got a shot so we can go another time + +free camera phones with linerental from 4.49/month with 750 cross ntwk mins. 1/2 price txt bundle deals also avble. call 08001950382 or call2optout/j mf + +east coast + +marvel mobile play the official ultimate spider-man game (??4.50) on ur mobile right now. text spider to 83338 for the game & we ll send u a free 8ball wallpaper + +his frens go then he in lor. not alone wif my mum n sis lor. + +thanks a lot for your wishes on my birthday. thanks you for making my birthday truly memorable. + +urgent! your mobile number has been awarded with a ??2000 prize guaranteed. call 09058094454 from land line. claim 3030. valid 12hrs only + +urgent! we are trying to contact you. last weekends draw shows that you have won a ??900 prize guaranteed. call 09061701939. claim code s89. valid 12hrs only + +gsoh? good with spam the ladies?u could b a male gigolo? 2 join the uk's fastest growing mens club reply oncall. mjzgroup. 08714342399.2stop reply stop. msg@??1.50rcvd + +hey... what time is your driving on fri? we go for evaluation on fri? + +my uncles in atlanta. wish you guys a great semester. + +ok thanx... take care then... + +"fuuuuck i need to stop sleepin +"09066362231 urgent! your mobile no 07xxxxxxxxx won a ??2 +pls speak with me. i wont ask anything other then you friendship. + +"coffee cake +jay says that you're a double-faggot + +hi my darlin im on my way to london and we have just been smashed into by another driver! and have a big dent! im really missing u what have u been up to? xxx + +tell them the drug dealer's getting impatient + +mobile club: choose any of the top quality items for your mobile. 7cfca1a + +win a ??1000 cash prize or a prize worth ??5000 + +horrible gal. me in sch doing some stuff. how come u got mc? + +urgent! your mobile number has been awarded with a ??2000 prize guaranteed. call 09061790126 from land line. claim 3030. valid 12hrs only 150ppm + +had your mobile 11 months or more? u r entitled to update to the latest colour mobiles with camera for free! call the mobile update co free on 08002986030 + +"sorry +how much would it cost to hire a hitman + +"single line with a big meaning::::: \miss anything 4 ur \""best life\"" but" + +urgent! your mobile number has been awarded a 2000 prize guaranteed. call 09061790125 from landline. claim 3030. valid 12hrs only 150ppm + +ur cash-balance is currently 500 pounds - to maximize ur cash-in now send go to 86688 only 150p/msg. cc 08718720201 hg/suite342/2lands row/w1j6hl + +you have an important customer service announcement. call freephone 0800 542 0825 now! + +"free nokia or motorola with upto 12mths 1/2price linerental +"\thinking of u ;) x\""""" + +u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094565 + +the xmas story is peace.. the xmas msg is love.. the xmas miracle is jesus.. hav a blessed month ahead & wish u merry xmas... + +dear i have reache room + +"urgent!: your mobile no. was awarded a ??2 +well i'm going to be an aunty! + +"motivate behind every darkness +"er +i'm in class. will holla later + +hi - this is your mailbox messaging sms alert. you have 40 matches. please call back on 09056242159 to retrieve your messages and matches cc100p/min + +private! your 2003 account statement for shows 800 un-redeemed s. i. m. points. call 08719899230 identifier code: 41685 expires 07/11/04 + +"hot live fantasies call now 08707509020 just 20p per min ntt ltd +"fantasy football is back on your tv. go to sky gamestar on sky active and play ??250k dream team. scoring starts on saturday +you will be receiving this week's triple echo ringtone shortly. enjoy it! + +hi darlin i hope you had a nice night i wish i had come cant wait to see you love fran ps i want dirty anal sex and i want a 10 man gang bang + +"congratulations - thanks to a good friend u have won the ??2 +promotion number: 8714714 - ur awarded a city break and could win a ??200 summer shopping spree every wk. txt store to 88039 . skilgme. tscs087147403231winawk!age16 ??1.50perwksub + +show ur colours! euro 2004 2-4-1 offer! get an england flag & 3lions tone on ur phone! click on the following service message for info! + +"thanks for your ringtone order +its a site to simulate the test. it just gives you very tough questions to test your readiness. + +"can you tell shola to please go to college of medicine and visit the academic department +urgent! we are trying to contact u. todays draw shows that you have won a ??800 prize guaranteed. call 09050003091 from land line. claim c52. valid12hrs only + +"wen ur lovable bcums angry wid u +erm. i thought the contract ran out the4th of october. + +"urgent urgent! we have 800 free flights to europe to give away +i have no idea where you are + +"sorry +it has issues right now. ill fix for her by tomorrow. + +"want to funk up ur fone with a weekly new tone reply tones2u 2 this text. www.ringtones.co.uk +"themob> check out our newest selection of content +every monday..nxt week vl be completing.. + +it to 80488. your 500 free text messages are valid until 31 december 2005. + +babe: u want me dont u baby! im nasty and have a thing 4 filthyguys. fancy a rude time with a sexy bitch. how about we go slo n hard! txt xxx slo(4msgs) + +hey i booked the kb on sat already... what other lessons are we going for ah? keep your sat night free we need to meet and confirm our lodging + +"piggy +the current leading bid is 151. to pause this auction send out. customer care: 08718726270 + +hi i'm sue. i am 20 years old and work as a lapdancer. i love sex. text me live - i'm i my bedroom now. text sue to 89555. by textoperator g2 1da 150ppmsg 18+ + +sac will score big hundred.he is set batsman:-) + +(bank of granite issues strong-buy) explosive pick for our members *****up over 300% *********** nasdaq symbol cdgt that is a $5.00 per.. + +these won't do. have to move on to morphine + +hey r ?_ still online? i've finished the formatting... + +is toshiba portege m100 gd? + +then ur sis how? + +txt: call to no: 86888 & claim your reward of 3 hours talk time to use from your phone now! subscribe6gbp/mnth inc 3hrs 16 stop?txtstop www.gamb.tv + +important information 4 orange user . today is your lucky day!2find out why log onto http://www.urawinner.com there's a fantastic surprise awaiting you! + +burger king - wanna play footy at a top stadium? get 2 burger king before 1st sept and go large or super with coca-cola and walk out a winner + +"upgrdcentre orange customer +freemsg:feelin kinda lnly hope u like 2 keep me company! jst got a cam moby wanna c my pic?txt or reply date to 82242 msg150p 2rcv hlp 08712317606 stop to 82242 + +save money on wedding lingerie at www.bridal.petticoatdreams.co.uk choose from a superb selection with national delivery. brought to you by weddingfriend + +"as a sim subscriber +"this is the 2nd attempt to contract u +"customer service announcement. we recently tried to make a delivery to you but were unable to do so +still i have not checked it da. . . + +ok. i.ll do you right later. + +"for ur chance to win a ??250 cash every wk txt: action to 80608. t's&c's www.movietrivia.tv custcare 08712405022 +should i tell my friend not to come round til like <#> ish? + +"bangbabes ur order is on the way. u should receive a service msg 2 download ur content. if u do not +are you still playing with gautham? + +december only! had your mobile 11mths+? you are entitled to update to the latest colour camera mobile for free! call the mobile update co free on 08002986906 + +you have won a guaranteed 32000 award or maybe even ??1000 cash to claim ur award call free on 0800 ..... (18+). its a legitimat efreefone number wat do u think??? + +"yep +it to 80488. your 500 free text messages are valid until 31 december 2005. + +"rose for red +height of confidence: all the aeronautics professors wer calld & they wer askd 2 sit in an aeroplane. aftr they sat they wer told dat the plane ws made by their students. dey all hurried out of d plane.. bt only 1 didnt move... he said:\if it is made by my students + +havent mus ask if u can 1st wat. of meet 4 lunch den u n him meet can already lor. or u wan 2 go ask da ge 1st then confirm w me asap? + +rt-king pro video club>> need help? info.co.uk or call 08701237397 you must be 16+ club credits redeemable at www.ringtoneking.co.uk! enjoy! + +urgent! please call 09061743810 from landline. your abta complimentary 4* tenerife holiday or #5000 cash await collection sae t&cs box 326 cw25wx 150 ppm + +do you want a new video handset? 750 anytime any network mins? half price line rental? camcorder? reply or call 08000930705 for delivery tomorrow + +hai dear friends... this is my new & present number..:) by rajitha raj (ranju) + +oh shut it. omg yesterday i had a dream that i had 2 kids both boys. i was so pissed. not only about the kids but them being boys. i even told mark in my dream that he was changing diapers cause i'm not getting owed in the face. + +customer loyalty offer:the new nokia6650 mobile from only ??10 at txtauction! txt word: start to no: 81151 & get yours now! 4t&ctxt tc 150p/mtmsg + +u have a secret admirer. reveal who thinks u r so special. call 09065174042. to opt out reply reveal stop. 1.50 per msg recd. cust care 07821230901 + +for my family happiness.. + +summers finally here! fancy a chat or flirt with sexy singles in yr area? to get matched up just reply summer now. free 2 join. optout txt stop help08714742804 + +at what time are you coming. + +"loan for any purpose ??500 - ??75 +"free ringtone text first to 87131 for a poly or text get to 87131 for a true tone! help? 0845 2814032 16 after 1st free +dunno leh cant remember mayb lor. so wat time r we meeting tmr? + +dear dave this is your final notice to collect your 4* tenerife holiday or #5000 cash award! call 09061743806 from landline. tcs sae box326 cw25wx 150ppm + +call 09095350301 and send our girls into erotic ecstacy. just 60p/min. to stop texts call 08712460324 (nat rate) + +please call our customer service representative on freephone 0808 145 4742 between 9am-11pm as you have won a guaranteed ??1000 cash or ??5000 prize! + +sunshine quiz wkly q! win a top sony dvd player if u know which country the algarve is in? txt ansr to 82277. ??1.50 sp:tyrone + +"1) go to write msg 2) put on dictionary mode 3)cover the screen with hand +free entry in 2 a weekly comp for a chance to win an ipod. txt pod to 80182 to get entry (std txt rate) t&c's apply 08452810073 for details 18+ + +you are being ripped off! get your mobile content from www.clubmoby.com call 08717509990 poly/true/pix/ringtones/games six downloads for only 3 + +dude im no longer a pisces. im an aquarius now. + +"sms. ac blind date 4u!: rodds1 is 21/m from aberdeen +me fine..absolutly fine + +hi its lucy hubby at meetins all day fri & i will b alone at hotel u fancy cumin over? pls leave msg 2day 09099726395 lucy x calls??1/minmobsmorelkpobox177hp51fl + +guessin you ain't gonna be here before 9? + +want 2 get laid tonight? want real dogging locations sent direct 2 ur mob? join the uk's largest dogging network bt txting gravel to 69888! nt. ec2a. 31p.msg + +free for 1st week! no1 nokia tone 4 ur mob every week just txt nokia to 8007 get txting and tell ur mates www.getzed.co.uk pobox 36504 w45wq norm150p/tone 16+ + +"wan2 win a meet+greet with westlife 4 u or a m8? they are currently on what tour? 1)unbreakable +"sms. ac blind date 4u!: rodds1 is 21/m from aberdeen +"yes +you are being ripped off! get your mobile content from www.clubmoby.com call 08717509990 poly/true/pix/ringtones/games six downloads for only 3 + +send a logo 2 ur lover - 2 names joined by a heart. txt love name1 name2 mobno eg love adam eve 07123456789 to 87077 yahoo! pobox36504w45wq txtno 4 no ads 150p + +as a registered subscriber yr draw 4 a ??100 gift voucher will b entered on receipt of a correct ans. when are the next olympics. txt ans to 80062 + +its <#> k here oh. should i send home for sale. + +the hair cream has not been shipped. + +how dare you stupid. i wont tell anything to you. hear after i wont talk to you:-. + +"\shit babe.. thasa bit messed up.yeh illspeak 2 u2moro wen im not asleep...\"""" illspeak 2 u2moro wen im not asleep...\""""" + +havent still waitin as usual... ?? come back sch oredi? + +get ready to put on your excellent sub face :) + +private! your 2003 account statement for shows 800 un-redeemed s. i. m. points. call 08718738002 identifier code: 48922 expires 21/11/04 + +just got outta class gonna go gym. + +fancy a shag? i do.interested? sextextuk.com txt xxuk suzy to 69876. txts cost 1.50 per msg. tncs on website. x + +haha... yup hopefully we will lose a few kg by mon. after hip hop can go orchard and weigh again + +"sorry +"eerie nokia tones 4u +reply with your name and address and you will receive by post a weeks completely free accommodation at various global locations www.phb1.com ph:08700435505150p + +"yalru lyfu astne chikku.. bt innu mundhe lyf ali halla ke bilo (marriage)program edhae +mm i had my food da from out + +"hi +private! your 2003 account statement for 078 + +ur ringtone service has changed! 25 free credits! go to club4mobiles.com to choose content now! stop? txt club stop to 87070. 150p/wk club4 po box1146 mk45 2wt + +wife.how she knew the time of murder exactly + +"its ok +freemsg today's the day if you are ready! i'm horny & live in your town. i love sex fun & games! netcollex ltd 08700621170150p per msg reply stop to end + +enjoy urself tmr... + +am new 2 club & dont fink we met yet will b gr8 2 c u please leave msg 2day wiv ur area 09099726553 reply promised carlie x calls??1/minmobsmore lkpobox177hp51fl + +congratulations ore mo owo re wa. enjoy it and i wish you many happy moments to and fro wherever you go + +2 and half years i missed your friendship:-) + +urgent! please call 09061743811 from landline. your abta complimentary 4* tenerife holiday or ??5000 cash await collection sae t&cs box 326 cw25wx 150ppm + +from 88066 lost ??12 help + +sorry i missed your call let's talk when you have the time. i'm on 07090201529 + +yes just finished watching days of our lives. i love it. + +hi chachi tried calling u now unable to reach u .. pl give me a missed cal once u c tiz msg kanagu + +good evening! this is roger. how are you? + +but really quite funny lor wat... then u shd haf run shorter distance wat... + +reply to win ??100 weekly! what professional sport does tiger woods play? send stop to 87239 to end service + +"got what it takes 2 take part in the wrc rally in oz? u can with lucozade energy! text rally le to 61200 (25p) +do you want 750 anytime any network mins 150 text and a new video phone for only five pounds per week call 08002888812 or reply for delivery tomorrow + +"congrats! 1 year special cinema pass for 2 is yours. call 09061209465 now! c suprman v +500 free text msgs. just text ok to 80488 and we'll credit your account + +babe: u want me dont u baby! im nasty and have a thing 4 filthyguys. fancy a rude time with a sexy bitch. how about we go slo n hard! txt xxx slo(4msgs) + +haha i think i did too + +"sorry +2/2 146tf150p + +so ?_'ll be submitting da project tmr rite? + +"freemsg: claim ur 250 sms messages-text ok to 84025 now!use web2mobile 2 ur mates etc. join txt250.com for 1.50p/wk. t&c box139 +"sorry +we have to pick rayan macleran there. + +"for ur chance to win a ??250 wkly shopping spree txt: shop to 80878. t's&c's www.txt-2-shop.com custcare 08715705022 +bloomberg -message center +447797706009 why wait? apply for your future http://careers. bloomberg.com + +"urgent! call 09066612661 from landline. your complementary 4* tenerife holiday or ??10 +yup n her fren lor. i'm meeting my fren at 730. + +free for 1st week! no1 nokia tone 4 ur mob every week just txt nokia to 8007 get txting and tell ur mates www.getzed.co.uk pobox 36504 w45wq norm150p/tone 16+ + +purity of friendship between two is not about smiling after reading the forwarded message..its about smiling just by seeing the name. gud evng + +congratulations ur awarded 500 of cd vouchers or 125gift guaranteed & free entry 2 100 wkly draw txt music to 87066 tncs www.ldew.com1win150ppmx3age16 + +"hack chat. get backdoor entry into 121 chat rooms at a fraction of the cost. reply neo69 or call 09050280520 +horrible u eat macs eat until u forgot abt me already rite... u take so long 2 reply. i thk it's more toot than b4 so b prepared. now wat shall i eat? + +good luck! draw takes place 28th feb 06. good luck! for removal send stop to 87239 customer services 08708034412 + +you have 1 new message. please call 08712400200. + +you are a winner u have been specially selected 2 receive ??1000 cash or a 4* holiday (flights inc) speak to a live operator 2 claim 0871277810810 + +4mths half price orange line rental & latest camera phones 4 free. had your phone 11mths+? call mobilesdirect free on 08000938767 to update now! or2stoptxt t&cs + +you made my day. do have a great day too. + +win a year supply of cds 4 a store of ur choice worth ??500 & enter our ??100 weekly draw txt music to 87066 ts&cs www.ldew.com.subs16+1win150ppmx3 + +neft transaction with reference number <#> for rs. <decimal> has been credited to the beneficiary account on <#> at <time> : <#> + +"you are being contacted by our dating service by someone you know! to find out who it is +refused a loan? secured or unsecured? can't get credit? call free now 0800 195 6669 or text back 'help' & we will! + +"i'm back & we're packing the car now +"sorry +captain is in our room:) + +"you can stop further club tones by replying \stop mix\"" see my-tone.com/enjoy. html for terms. club tones cost gbp4.50/week. mfl" + +winner!! as a valued network customer you have been selected to receivea ??900 prize reward! to claim call 09061701461. claim code kl341. valid 12 hours only. + +u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09065171142-stopsms-08718727870150ppm + +"urgent!: your mobile no. was awarded a ??2 +customer place i will call you + +its posible dnt live in <#> century cm frwd n thnk different + +i'm putting it on now. it should be ready for <time> + +"i know where the <#> is +ok thanx... + +am new 2 club & dont fink we met yet will b gr8 2 c u please leave msg 2day wiv ur area 09099726553 reply promised carlie x calls??1/minmobsmore lkpobox177hp51fl + +i will come to ur home now + +no but the bluray player can + +hmv bonus special 500 pounds of genuine hmv vouchers to be won. just answer 4 easy questions. play now! send hmv to 86688 more info:www.100percent-real.com + +k.:)do it at evening da:)urgent:) + +free top ringtone -sub to weekly ringtone-get 1st week free-send subpoly to 81618-?3 per week-stop sms-08718727870 + +at what time should i come tomorrow + +"velly good +alright tyler's got a minor crisis and has to be home sooner than he thought so be here asap + +sorry. || mail? || + +"hot live fantasies call now 08707509020 just 20p per min ntt ltd +just normal only here :) + +k..u also dont msg or reply to his msg.. + +where r e meeting tmr? + +"the house is on the water with a dock +as per your request 'maangalyam (alaipayuthe)' has been set as your callertune for all callers. press *9 to copy your friends callertune + +"congrats! 1 year special cinema pass for 2 is yours. call 09061209465 now! c suprman v +splashmobile: choose from 1000s of gr8 tones each wk! this is a subscrition service with weekly tones costing 300p. u have one credit - kick back and enjoy + +phony ??350 award - todays voda numbers ending xxxx are selected to receive a ??350 award. if you have a match please call 08712300220 quoting claim code 3100 standard rates app + +just send a text. we'll skype later. + +congrats! nokia 3650 video camera phone is your call 09066382422 calls cost 150ppm ave call 3mins vary from mobiles 16+ close 300603 post bcm4284 ldn wc1n3xx + +missed call alert. these numbers called but left no message. 07008009200 + +happy birthday... may u find ur prince charming soon n dun work too hard... + +wat ?_ doing now? + +sunshine quiz! win a super sony dvd recorder if you canname the capital of australia? text mquiz to 82277. b + +u should have made an appointment + +congratulations ur awarded either a yrs supply of cds from virgin records or a mystery gift guaranteed call 09061104283 ts&cs www.smsco.net ??1.50pm approx 3mins + +5p 4 alfie moon's children in need song on ur mob. tell ur m8s. txt tone charity to 8007 for nokias or poly charity for polys: zed 08701417012 profit 2 charity. + +if you are not coughing then its nothing + +get the official england poly ringtone or colour flag on yer mobile for tonights game! text tone or flag to 84199. optout txt eng stop box39822 w111wx ??1.50 + +dear good morning how you feeling dear + +i am going to film 2day da. at 6pm. sorry da. + +ill be at yours in about 3 mins but look out for me + +your gonna be the death if me. i'm gonna leave a note that says its all robs fault. avenge me. + +purity of friendship between two is not about smiling after reading the forwarded message..its about smiling just by seeing the name. gud evng musthu + +thinkin about someone is all good. no drugs for that + +wait 2 min..stand at bus stop + +"fantasy football is back on your tv. go to sky gamestar on sky active and play ??250k dream team. scoring starts on saturday +ur ringtone service has changed! 25 free credits! go to club4mobiles.com to choose content now! stop? txt club stop to 87070. 150p/wk club4 po box1146 mk45 2wt + +yup + +"think ur smart ? win ??200 this week in our weekly quiz +we walked from my moms. right on stagwood pass right on winterstone left on victors hill. address is <#> + +that's good. lets thank god. please complete the drug. have lots of water. and have a beautiful day. + +http//tms. widelive.com/index. wml?id=820554ad0a1705572711&first=true??c c ringtone?? + +thk some of em find wtc too far... weiyi not goin... e rest i dunno yet... r ur goin 4 dinner den i might b able to join... + +"great. i'm in church now +can you do a mag meeting this avo at some point? + +buy space invaders 4 a chance 2 win orig arcade game console. press 0 for games arcade (std wap charge) see o2.co.uk/games 4 terms + settings. no purchase + +haha... really oh no... how? then will they deduct your lesson tmr? + +"sorry man my account's dry or i would +not heard from u4 a while. call 4 rude chat private line 01223585334 to cum. wan 2c pics of me gettin shagged then text pix to 8552. 2end send stop 8552 sam xxx + +your credits have been topped up for http://www.bubbletext.com your renewal pin is tgxxrz + +"sms services. for your inclusive text credits +knock knock txt whose there to 80082 to enter r weekly draw 4 a ??250 gift voucher 4 a store of yr choice. t&cs www.tkls.com age16 to stoptxtstop??1.50/week + +adult 18 content your video will be with you shortly + +yup i'm still having coffee wif my frens... my fren drove she'll give me a lift... + +"as i entered my cabin my pa said +should i buy him a blackberry bold 2 or torch. should i buy him new or used. let me know. plus are you saying i should buy the <#> g wifi ipad. and what are you saying about the about the <#> g? + +he also knows about lunch menu only da. . i know + +"urgent! call 09066350750 from your landline. your complimentary 4* ibiza holiday or 10 +can u get 2 phone now? i wanna chat 2 set up meet call me now on 09096102316 u can cum here 2moro luv jane xx calls??1/minmoremobsemspobox45po139wa + +"eerie nokia tones 4u +<decimal> m but its not a common car here so its better to buy from china or asia. or if i find it less expensive. i.ll holla + +usually the person is unconscious that's in children but in adults they may just behave abnormally. i.ll call you now + +lol alright i was thinkin that too haha + +howz pain.it will come down today.do as i said ystrday.ice and medicine. + +as one of our registered subscribers u can enter the draw 4 a 100 g.b. gift voucher by replying with enter. to unsubscribe text stop + +er mw im filled tuth is aight + +"i get out of class in bsn in like <#> minutes +you will recieve your tone within the next 24hrs. for terms and conditions please see channel u teletext pg 750 + +"dear voucher holder +ur cash-balance is currently 500 pounds - to maximize ur cash-in now send go to 86688 only 150p/msg. cc: 08718720201 po box 114/14 tcr/w1 + +"orange customer +"someone u know has asked our dating service 2 contact you! cant guess who? call 09058097189 now all will be revealed. pobox 6 +you have 1 new voicemail. please call 08719181513. + +"oh +ur balance is now ??500. ur next question is: who sang 'uptown girl' in the 80's ? 2 answer txt ur answer to 83600. good luck! + +black shirt n blue jeans... i thk i c ?_... + +"a bit of ur smile is my hppnss +you will recieve your tone within the next 24hrs. for terms and conditions please see channel u teletext pg 750 + +"smsservices. for yourinclusive text credits +"aight we can pick some up +moby pub quiz.win a ??100 high street prize if u know who the new duchess of cornwall will be? txt her first name to 82277.unsub stop ??1.50 008704050406 sp arrow + +lmao!nice 1 + +"sorry im getting up now +haven't left yet so probably gonna be here til dinner + +as one of our registered subscribers u can enter the draw 4 a 100 g.b. gift voucher by replying with enter. to unsubscribe text stop + +"double mins and txts 4 6months free bluetooth on orange. available on sony +yeah whatever lol + +you have an important customer service announcement from premier. + +ok lor thanx... ?? in school? + +and whenever you and i see we can still hook up too. + +asked 3mobile if 0870 chatlines inclu in free mins. india cust servs sed yes. l8er got mega bill. 3 dont giv a shit. bailiff due in days. i o ??250 3 want ??800 + +"okey doke. i'm at home +"sms. ac jsco: energy is high +for taking part in our mobile survey yesterday! you can now have 500 texts 2 use however you wish. 2 get txts just send txt to 80160 t&c www.txt43.com 1.50p + +kent vale lor... ?? wait 4 me there ar? + +they released vday shirts and when u put it on it makes your bottom half naked instead of those white underwear. + +"free-message: jamster!get the crazy frog sound now! for poly text mad1 +you are right. meanwhile how's project twins comin up + +your unique user id is 1172. for removal send stop to 87239 customer services 08708034412 + +"a few people are at the game +whens your radio show? + +"see you then +1st wk free! gr8 tones str8 2 u each wk. txt nokia on to 8007 for classic nokia tones or hit on to 8007 for polys. nokia/150p poly/200p 16+ + +"dear voucher holder +8007 25p 4 alfie moon's children in need song on ur mob. tell ur m8s. txt tone charity to 8007 for nokias or poly charity for polys :zed 08701417012 profit 2 charity + +r ?_ going 4 today's meeting? + +no no:)this is kallis home ground.amla home town is durban:) + +call germany for only 1 pence per minute! call from a fixed line via access number 0844 861 85 85. no prepayment. direct access! www.telediscount.co.uk + +he's in lag. that's just the sad part but we keep in touch thanks to skype + +have a great trip to india. and bring the light to everyone not just with the project but with everyone that is lucky to see you smile. bye. abiola + +i not free today i haf 2 pick my parents up tonite... + +"come round +?? go home liao? ask dad to pick me up at 6... + +do ?_ noe if ben is going? + +"get 3 lions england tone +carry on not disturbing both of you + +26th of july + +you are chosen to receive a ??350 award! pls call claim number 09066364311 to collect your award which you are selected to receive as a valued mobile customer. + +xclusive 2morow 28/5 soiree speciale zouk with nichols from paris.free roses 2 all ladies !!! info: 07946746291/07880867867 + +"so you think i should actually talk to him? not call his boss in the morning? i went to this place last year and he told me where i could go and get my car fixed cheaper. he kept telling me today how much he hoped i would come back in +goodmorning today i am late for <decimal> min. + +"hi ya babe x u 4goten bout me?' scammers getting smart..though this is a regular vodafone no +hey. for me there is no leave on friday. wait i will ask my superior and tell you.. + +please call our customer service representative on freephone 0808 145 4742 between 9am-11pm as you have won a guaranteed ??1000 cash or ??5000 prize! + +collect your valentine's weekend to paris inc flight & hotel + ??200 prize guaranteed! text: paris to no: 69101. www.rtf.sphosting.com + +1. tension face 2. smiling face 3. waste face 4. innocent face 5.terror face 6.cruel face 7.romantic face 8.lovable face 9.decent face <#> .joker face. + +hi 07734396839 ibh customer loyalty offer: the new nokia6600 mobile from only ??10 at txtauction!txt word:start to no:81151 & get yours now!4t& + +i lost 4 pounds since my doc visit last week woot woot! now i'm gonna celebrate by stuffing my face! + +"january male sale! hot gay chat now cheaper +why you dint come with us. + +ur cash-balance is currently 500 pounds - to maximize ur cash-in now send go to 86688 only 150p/msg. cc: 08718720201 po box 114/14 tcr/w1 + +"got what it takes 2 take part in the wrc rally in oz? u can with lucozade energy! text rally le to 61200 (25p) +100 dating service cal;l 09064012103 box334sk38ch + +reminder: you have not downloaded the content you have already paid for. goto http://doit. mymoby. tv/ to collect your content. + +was gr8 to see that message. so when r u leaving? congrats dear. what school and wat r ur plans. + +o turns out i had stereo love on mi phone under the unknown album. + +"yep +"win the newest ??harry potter and the order of the phoenix (book 5) reply harry +how much she payed. suganya. + +how about getting in touch with folks waiting for company? just txt back your name and age to opt in! enjoy the community (150p/sms) + +yes i thought so. thanks. + +u repeat e instructions again. wat's e road name of ur house? + +ok i'm gonna head up to usf in like fifteen minutes + +great news! call freefone 08006344447 to claim your guaranteed ??1000 cash or ??2000 gift. speak to a live operator now! + +"free msg. sorry +update_now - 12mths half price orange line rental: 400mins...call mobileupd8 on 08000839402 or call2optout=j5q + +"free2day sexy st george's day pic of jordan!txt pic to 89080 dont miss out +its good to hear from you + +i not busy juz dun wan 2 go so early.. hee.. + +"this is the 2nd time we have tried 2 contact u. u have won the 750 pound prize. 2 claim is easy +then u go back urself lor... + +well there's not a lot of things happening in lindsay on new years *sighs* some bars in ptbo and the blue heron has something going + +hi. i'm sorry i missed your call. can you pls call back. + +that's a shame! maybe cld meet for few hrs tomo? + +"you ve won! your 4* costa del sol holiday or ??5000 await collection. call 09050090044 now toclaim. sae +you always make things bigger than they are + +08714712388 between 10am-7pm cost 10p + +u definitely need a module from e humanities dis sem izzit? u wan 2 take other modules 1st? + +urgent! we are trying to contact u. todays draw shows that you have won a ??2000 prize guaranteed. call 09066358361 from land line. claim y87. valid 12hrs only + +please call amanda with regard to renewing or upgrading your current t-mobile handset free of charge. offer ends today. tel 0845 021 3680 subject to t's and c's + +hi its lucy hubby at meetins all day fri & i will b alone at hotel u fancy cumin over? pls leave msg 2day 09099726395 lucy x calls??1/minmobsmorelkpobox177hp51fl + +"this is the 2nd time we have tried 2 contact u. u have won the 750 pound prize. 2 claim is easy +"good afternoon sexy buns! how goes the job search ? i wake and you are my first thought as always +you can donate ??2.50 to unicef's asian tsunami disaster support fund by texting donate to 864233. ??2.50 will be added to your next bill + +you have won a guaranteed ??1000 cash or a ??2000 prize. to claim yr prize call our customer service representative on 08714712394 between 10am-7pm + +if you r @ home then come down within 5 min + +83039 62735=??450 uk break accommodationvouchers terms & conditions apply. 2 claim you mustprovide your claim number which is 15541 + +when you and derek done with class? + +free entry in 2 a wkly comp to win fa cup final tkts 21st may 2005. text fa to 87121 to receive entry question(std txt rate)t&c's apply 08452810075over18's + +same as u... dun wan... y u dun like me already ah... wat u doing now? still eating? + +"claim a 200 shopping spree +"free ringtone text first to 87131 for a poly or text get to 87131 for a true tone! help? 0845 2814032 16 after 1st free +"today's offer! claim ur ??150 worth of discount vouchers! text yes to 85023 now! savamob +who were those people ? were you in a tour ? i thought you were doing that sofa thing you sent me ? your curious sugar + +freemsg: our records indicate you may be entitled to 3750 pounds for the accident you had. to claim for free reply with yes to this msg. to opt out text stop + +as a registered subscriber yr draw 4 a ??100 gift voucher will b entered on receipt of a correct ans. when are the next olympics. txt ans to 80062 + +"dear matthew please call 09063440451 from a landline +phony ??350 award - todays voda numbers ending xxxx are selected to receive a ??350 award. if you have a match please call 08712300220 quoting claim code 3100 standard rates app + +"update_now - xmas offer! latest motorola +"urgent! you have won a 1 week free membership in our ??100 +free tones hope you enjoyed your new content. text stop to 61610 to unsubscribe. help:08712400602450p provided by tones2you.co.uk + +there is os called ubandu which will run without installing in hard disk...you can use that os to copy the important files in system and give it to repair shop.. + +"\response\"" is one of d powerful weapon 2 occupy a place in others 'heart'... so" + +summers finally here! fancy a chat or flirt with sexy singles in yr area? to get matched up just reply summer now. free 2 join. optout txt stop help08714742804 + +eastenders tv quiz. what flower does dot compare herself to? d= violet e= tulip f= lily txt d e or f to 84025 now 4 chance 2 win ??100 cash wkent/150p16+ + +"u were outbid by simonwatson5120 on the shinco dvd plyr. 2 bid again +want 2 get laid tonight? want real dogging locations sent direct 2 ur mob? join the uk's largest dogging network bt txting gravel to 69888! nt. ec2a. 31p.msg + +k tell me anything about you. + +u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094565 + +do you want a new video handset? 750 any time any network mins? unlimited text? camcorder? reply or call now 08000930705 for del sat am + +dear got bus directly to calicut + +"cmon babe +no sir. that's why i had an 8-hr trip on the bus last week. have another audition next wednesday but i think i might drive this time. + +"your account has been credited with 500 free text messages. to activate +we have new local dates in your area - lots of new people registered in your area. reply date to start now! 18 only www.flirtparty.us replys150 + +no dear i was sleeping :-p + +"hot live fantasies call now 08707509020 just 20p per min ntt ltd +are you free now?can i call now? + +i'll be in sch fr 4-6... i dun haf da book in sch... it's at home... + +u don't know how stubborn i am. i didn't even want to go to the hospital. i kept telling mark i'm not a weak sucker. hospitals are for weak suckers. + +"cool +"you have been selected to stay in 1 of 250 top british hotels - for nothing! holiday worth ??350! to claim +"dear voucher holder +"thanks for your ringtone order +get a brand new mobile phone by being an agent of the mob! plus loads more goodies! for more info just text mat to 87021. + +hi if ur lookin 4 saucy daytime fun wiv busty married woman am free all next week chat now 2 sort time 09099726429 janinexx calls??1/minmobsmorelkpobox177hp51fl + +"got what it takes 2 take part in the wrc rally in oz? u can with lucozade energy! text rally le to 61200 (25p) +santa calling! would your little ones like a call from santa xmas eve? call 09058094583 to book your time. + +we tried to contact you re your reply to our offer of a video handset? 750 anytime any networks mins? unlimited text? camcorder? reply or call 08000930705 now + +from www.applausestore.com monthlysubscription/msg max6/month t&csc web age16 2stop txt stop + +"nah can't help you there +sunshine quiz! win a super sony dvd recorder if you canname the capital of australia? text mquiz to 82277. b + +din i tell u jus now 420 + +"thanks for your ringtone order +we have new local dates in your area - lots of new people registered in your area. reply date to start now! 18 only www.flirtparty.us replys150 + +sorry da..today i wont come to play..i have driving clas.. + +today is accept day..u accept me as? brother sister lover dear1 best1 clos1 lvblefrnd jstfrnd cutefrnd lifpartnr belovd swtheart bstfrnd no rply means enemy + +do u knw dis no. <#> ? + +hey darlin.. i can pick u up at college if u tell me wen & where 2 mt.. love pete xx + +"claim a 200 shopping spree +"k +"sppok up ur mob with a halloween collection of nokia logo&pic message plus a free eerie tone +yes :)it completely in out of form:)clark also utter waste. + +i jus reached home. i go bathe first. but my sis using net tell u when she finishes k... + +"final chance! claim ur ??150 worth of discount vouchers today! text yes to 85023 now! savamob +lol u still feeling sick? + +god's love has no limit. god's grace has no measure. god's power has no boundaries. may u have god's endless blessings always in ur life...!! gud ni8 + +"my fri ah... okie lor +i thought slide is enough. + +yes! the only place in town to meet exciting adult singles is now in the uk. txt chat to 86688 now! 150p/msg. + +tap & spile at seven. * is that pub on gas st off broad st by canal. ok? + +you have won a guaranteed ??1000 cash or a ??2000 prize. to claim yr prize call our customer service representative on 08714712412 between 10am-7pm cost 10p + +thanks 4 your continued support your question this week will enter u in2 our draw 4 ??100 cash. name the new us president? txt ans to 80082 + ++123 congratulations - in this week's competition draw u have won the ??1450 prize to claim just call 09050002311 b4280703. t&cs/stop sms 08718727868. over 18 only 150ppm + +"hi babe its chloe +"bored of speed dating? try speedchat +except theres a chick with huge boobs. + +is she replying. has boye changed his phone number + +wat time ?_ finish? + +\hey j! r u feeling any better + +text & meet someone sexy today. u can find a date or even flirt its up to u. join 4 just 10p. reply with name & age eg sam 25. 18 -msg recd pence + +text banneduk to 89555 to see! cost 150p textoperator g696ga 18+ xxx + +my trip was ok but quite tiring lor. uni starts today but it's ok 4 me cos i'm not taking any modules but jus concentrating on my final yr project. + +ur awarded a city break and could win a ??200 summer shopping spree every wk. txt store to 88039 . skilgme. tscs087147403231winawk!age16 ??1.50perwksub + +have you heard about that job? i'm going to that wildlife talk again tonight if u want2come. its that2worzels and a wizzle or whatever it is?! + +hey what how about your project. started aha da. + +i've been trying to reach him without success + +new textbuddy chat 2 horny guys in ur area 4 just 25p free 2 receive search postcode or at gaytextbuddy.com. txt one name to 89693. 08715500022 rpl stop 2 cnl + +hi my email address has changed now it is + +money!!! you r a lucky winner ! 2 claim your prize text money 2 88600 over ??1million to give away ! ppt150x3+normal text rate box403 w1t1jy + +fancy a shag? i do.interested? sextextuk.com txt xxuk suzy to 69876. txts cost 1.50 per msg. tncs on website. x + +"today's offer! claim ur ??150 worth of discount vouchers! text yes to 85023 now! savamob +ur cash-balance is currently 500 pounds - to maximize ur cash-in now send cash to 86688 only 150p/msg. cc: 08708800282 hg/suite342/2lands row/w1j6hl + +todays vodafone numbers ending with 4882 are selected to a receive a ??350 award. if your number matches call 09064019014 to receive your ??350 award. + +win urgent! your mobile number has been awarded with a ??2000 prize guaranteed call 09061790121 from land line. claim 3030 valid 12hrs only 150ppm + +tell your friends what you plan to do on valentines day @ <url> + +"urgent ur awarded a complimentary trip to eurodisinc trav +"hmmm.... mayb can try e shoppin area one +he's really into skateboarding now despite the fact that he gets thrown off of it and winds up with bandages and shit all over his arms every five minutes + +free msg:we billed your mobile number by mistake from shortcode 83332.please call 08081263000 to have charges refunded.this call will be free from a bt landline + +"ur balance is now ??600. next question: complete the landmark +ummmmmaah many many happy returns of d day my dear sweet heart.. happy birthday dear + +discussed with your mother ah? + +our brand new mobile music service is now live. the free music player will arrive shortly. just install on your phone to browse content from the top artists. + +"urgent!! your 4* costa del sol holiday or ??5000 await collection. call 09050090044 now toclaim. sae +"urgent! your mobile number *************** won a ??2000 bonus caller prize on 10/06/03! this is the 2nd attempt to reach you! call 09066368753 asap! box 97n7qp +"sir +howz that persons story + +"xmas & new years eve tickets are now on sale from the club +just forced myself to eat a slice. i'm really not hungry tho. this sucks. mark is getting worried. he knows i'm sick when i turn down pizza. lol + +?? thk of wat to eat tonight. + +hi - this is your mailbox messaging sms alert. you have 4 messages. you have 21 matches. please call back on 09056242159 to retrieve your messages and matches + +"hiya +for taking part in our mobile survey yesterday! you can now have 500 texts 2 use however you wish. 2 get txts just send txt to 80160 t&c www.txt43.com 1.50p + +love you aathi..love u lot.. + +u are subscribed to the best mobile content service in the uk for ??3 per 10 days until you send stop to 82324. helpline 08706091795 + +"whenevr ur sad +asked 3mobile if 0870 chatlines inclu in free mins. india cust servs sed yes. l8er got mega bill. 3 dont giv a shit. bailiff due in days. i o ??250 3 want ??800 + +87077: kick off a new season with 2wks free goals & news to ur mobile! txt ur club name to 87077 eg villa to 87077 + +i borrow ur bag ok. + +oh k...i'm watching here:) + +say thanks2. + +valentines day special! win over ??1000 in our quiz and take your partner on the trip of a lifetime! send go to 83600 now. 150p/msg rcvd. custcare:08718720201 + +"customer service announcement. we recently tried to make a delivery to you but were unable to do so +"she said +wish i were with you now! + +you will be receiving this week's triple echo ringtone shortly. enjoy it! + +i actually did for the first time in a while. i went to bed not too long after i spoke with you. woke up at 7. how was your night? + +s but mostly not like that. + +k..k.:)congratulation .. + +no 1 polyphonic tone 4 ur mob every week! just txt pt2 to 87575. 1st tone free ! so get txtin now and tell ur friends. 150p/tone. 16 reply hl 4info + +"urgent! you have won a 1 week free membership in our ??100 +"yeah i think my usual guy's still passed out from last night +what is your record for one night? :) + +"freemsg hey u +private! your 2003 account statement for shows 800 un-redeemed s.i.m. points. call 08718738001 identifier code: 49557 expires 26/11/04 + +can u get 2 phone now? i wanna chat 2 set up meet call me now on 09096102316 u can cum here 2moro luv jane xx calls??1/minmoremobsemspobox45po139wa + +you will recieve your tone within the next 24hrs. for terms and conditions please see channel u teletext pg 750 + +"pdate_now - double mins and 1000 txts on orange tariffs. latest motorola +pick ur fone up now u dumb? + +"loan for any purpose ??500 - ??75 +someone u know has asked our dating service 2 contact you! cant guess who? call 09058091854 now all will be revealed. po box385 m6 6wu + +"tee hee. off to lecture +"ya +leave it wif me lar... ?? wan to carry meh so heavy... is da num 98321561 familiar to ?_? + +cds 4u: congratulations ur awarded ??500 of cd gift vouchers or ??125 gift guaranteed & freeentry 2 ??100 wkly draw xt music to 87066 tncs www.ldew.com1win150ppmx3age16 + +"(and my man carlos is definitely coming by mu tonight +aiyar hard 2 type. u later free then tell me then i call n scold n tell u. + +yeah i can still give you a ride + +rt-king pro video club>> need help? info.co.uk or call 08701237397 you must be 16+ club credits redeemable at www.ringtoneking.co.uk! enjoy! + +do you want a new nokia 3510i colour phone delivered tomorrow? with 200 free minutes to any mobile + 100 free text + free camcorder reply or call 08000930705 + +yup. thk of u oso boring wat. + +what is important is that you prevent dehydration by giving her enough fluids + +same as kallis dismissial in 2nd test:-). + +"ur balance is now ??600. next question: complete the landmark +"this is the 2nd time we have tried 2 contact u. u have won the ??750 pound prize. 2 claim is easy +yes i posted a couple of pics on fb. there's still snow outside too. i'm just waking up :) + +"in the simpsons movie released in july 2007 name the band that died at the start of the film? a-green day +from www.applausestore.com monthlysubscription/msg max6/month t&csc web age16 2stop txt stop + +"u've been selected to stay in 1 of 250 top british hotels - for nothing! holiday valued at ??350! dial 08712300220 to claim - national rate call. bx526 +"hey... thk we juz go accordin to wat we discussed yest lor +"well done +k k :-):-) then watch some films. + +tell dear what happen to you. why you talking to me like an alian + +hi! you just spoke to maneesha v. we'd like to know if you were satisfied with the experience. reply toll free with yes or no. + +you have an important customer service announcement from premier. + +no. 1 nokia tone 4 ur mob every week! just txt nok to 87021. 1st tone free ! so get txtin now and tell ur friends. 150p/tone. 16 reply hl 4info + +that's the way you should stay oh. + +sorry me going home first... daddy come fetch ?_ later... + +"sms services. for your inclusive text credits +"looks like you found something to do other than smoke +"eerie nokia tones 4u +"good afternoon on this glorious anniversary day +december only! had your mobile 11mths+? you are entitled to update to the latest colour camera mobile for free! call the mobile update vco free on 08002986906 + +hi babe u r most likely to be in bed but im so sorry about tonight! i really wanna see u tomorrow so call me at 9. love me xxx + +not much no fights. it was a good nite!! + +cashbin.co.uk (get lots of cash this weekend!) www.cashbin.co.uk dear welcome to the weekend we have got our biggest and best ever cash give away!! these.. + +tone club: your subs has now expired 2 re-sub reply monoc 4 monos or polyc 4 polys 1 weekly @ 150p per week txt stop 2 stop this msg free stream 0871212025016 + +those ducking chinchillas + +you can donate ??2.50 to unicef's asian tsunami disaster support fund by texting donate to 864233. ??2.50 will be added to your next bill + +"we're all getting worried over here +esplanade lor. where else... + +"customer service announcement. we recently tried to make a delivery to you but were unable to do so +they will pick up and drop in car.so no problem.. + +i dont thnk its a wrong calling between us + +did u got that persons story + +yes we are chatting too. + +your daily text from me ??? a favour this time + +no need to say anything to me. i know i am an outsider + +"hack chat. get backdoor entry into 121 chat rooms at a fraction of the cost. reply neo69 or call 09050280520 +free 1st week entry 2 textpod 4 a chance 2 win 40gb ipod or ??250 cash every wk. txt pod to 84128 ts&cs www.textpod.net custcare 08712405020. + +had your mobile 11 months or more? u r entitled to update to the latest colour mobiles with camera for free! call the mobile update co free on 08002986030 + +message important information for o2 user. today is your lucky day! 2 find out why log onto http://www.urawinner.com there is a fantastic surprise awaiting you + +jus ans me lar. u'll noe later. + +u???ve bin awarded ??50 to play 4 instant cash. call 08715203028 to claim. every 9th player wins min ??50-??500. optout 08718727870 + +had your mobile 11mths ? update for free to oranges latest colour camera mobiles & unlimited weekend calls. call mobile upd8 on freefone 08000839402 or 2stoptx + +"congrats! 1 year special cinema pass for 2 is yours. call 09061209465 now! c suprman v +"congrats! 2 mobile 3g videophones r yours. call 09063458130 now! videochat wid your mates +ok i'm coming home now. + +so i'm doing a list of buyers. + +bored housewives! chat n date now! 0871750.77.11! bt-national rate 10p/min only from landlines! + +unlimited texts. limited minutes. + +"double mins and txts 4 6months free bluetooth on orange. available on sony +ur awarded a city break and could win a ??200 summer shopping spree every wk. txt store to 88039.skilgme.tscs087147403231winawk!age16+??1.50perwksub + +i'm glad. you are following your dreams. + +you are being ripped off! get your mobile content from www.clubmoby.com call 08717509990 poly/true/pix/ringtones/games six downloads for only 3 + +want explicit sex in 30 secs? ring 02073162414 now! costs 20p/min gsex pobox 2667 wc1n 3xx + +no go. no openings for that room 'til after thanksgiving without an upcharge. + +congrats ! treat pending.i am not on mail for 2 days.will mail once thru.respect mother at home.check mails. + +"we know someone who you know that fancies you. call 09058097218 to find out who. pobox 6 +you have won a guaranteed ??200 award or even ??1000 cashto claim ur award call free on 08000407165 (18+) 2 stop getstop on 88222 php. rg21 4jx + +3 pa but not selected. + +that's one of the issues but california is okay. no snow so its manageable + +now only i reached home. . . i am very tired now. . i will come tomorro + +yar lor... keep raining non stop... or u wan 2 go elsewhere? + +4mths half price orange line rental & latest camera phones 4 free. had your phone 11mths+? call mobilesdirect free on 08000938767 to update now! or2stoptxt t&cs + +we got a divorce. lol. she.s here + +"hi +free unlimited hardcore porn direct 2 your mobile txt porn to 69200 & get free access for 24 hrs then chrgd per day txt stop 2exit. this msg is free + +what time do u get out? + +ur cash-balance is currently 500 pounds - to maximize ur cash-in now send collect to 83600 only 150p/msg. cc: 08718720201 po box 114/14 tcr/w1 + +"until 545 lor... ya +does daddy have a bb now. + +get the official england poly ringtone or colour flag on yer mobile for tonights game! text tone or flag to 84199. optout txt eng stop box39822 w111wx ??1.50 + +"well +will purchase d stuff today and mail to you. do you have a po box number? + +you have 1 new voicemail. please call 08719181503 + +"thanks for your ringtone order +i want <#> rs da:)do you have it? + +you have won a guaranteed 32000 award or maybe even ??1000 cash to claim ur award call free on 0800 ..... (18+). its a legitimat efreefone number wat do u think??? + +i liked the new mobile + +you are being ripped off! get your mobile content from www.clubmoby.com call 08717509990 poly/true/pix/ringtones/games six downloads for only 3 + +convey my regards to him + +you have 1 new voicemail. please call 08719181513. + +he says hi and to get your ass back to south tampa (preferably at a kegger) + +private! your 2004 account statement for 07742676969 shows 786 unredeemed bonus points. to claim call 08719180248 identifier code: 45239 expires + +hey i am really horny want to chat or see me naked text hot to 69698 text charged at 150pm to unsubscribe text stop 69698 + +you are a winner you have been specially selected to receive ??1000 cash or a ??2000 award. speak to a live operator to claim call 087123002209am-7pm. cost 10p + +nice.nice.how is it working? + +"you ve won! your 4* costa del sol holiday or ??5000 await collection. call 09050090044 now toclaim. sae +just chill for another 6hrs. if you could sleep the pain is not a surgical emergency so see how it unfolds. okay + +ok cool. see ya then. + +urgent! we are trying to contact u todays draw shows that you have won a ??800 prize guaranteed. call 09050000460 from land line. claim j89. po box245c2150pm + +free>ringtone! reply real or poly eg real1 1. pushbutton 2. dontcha 3. babygoodbye 4. golddigger 5. webeburnin 1st tone free and 6 more when u join for ??3/wk + +life has never been this much fun and great until you came in. you made it truly special for me. i won't forget you! enjoy @ one gbp/sms + +do you want a new video handset? 750 anytime any network mins? half price line rental? camcorder? reply or call 08000930705 for delivery tomorrow + +r u over scratching it? + +"double mins and txts 4 6months free bluetooth on orange. available on sony +87077: kick off a new season with 2wks free goals & news to ur mobile! txt ur club name to 87077 eg villa to 87077 + +lol ... i knew that .... i saw him in the dollar store + +sian... aft meeting supervisor got work 2 do liao... u working now? + +sorry sent blank msg again. yup but trying 2 do some serious studying now. + +how about getting in touch with folks waiting for company? just txt back your name and age to opt in! enjoy the community (150p/sms) + +stupid.its not possible + +please call amanda with regard to renewing or upgrading your current t-mobile handset free of charge. offer ends today. tel 0845 021 3680 subject to t's and c's + +tomorrow i am not going to theatre. . . so i can come wherever u call me. . . tell me where and when to come tomorrow + +"dear matthew please call 09063440451 from a landline +"u can win ??100 of music gift vouchers every week starting now txt the word draw to 87066 tscs www.idew.com skillgame +what happen dear. why you silent. i am tensed + +did you stitch his trouser + +"urgent! please call 09066612661 from your landline +you will be in the place of that man + +he's just gonna worry for nothing. and he won't give you money its no use. + +sunshine quiz wkly q! win a top sony dvd player if u know which country liverpool played in mid week? txt ansr to 82277. ??1.50 sp:tyrone + +waiting for your call. + +great comedy..cant stop laughing da:) + +free entry in 2 a weekly comp for a chance to win an ipod. txt pod to 80182 to get entry (std txt rate) t&c's apply 08452810073 for details 18+ + +ok . . now i am in bus. . if i come soon i will come otherwise tomorrow + +you have 1 new message. call 0207-083-6089 + +"we know someone who you know that fancies you. call 09058097218 to find out who. pobox 6 +enjoy the jamster videosound gold club with your credits for 2 new videosounds+2 logos+musicnews! get more fun from jamster.co.uk! 16+only help? call: 09701213186 + +08714712388 between 10am-7pm cost 10p + +"please protect yourself from e-threats. sib never asks for sensitive information like passwords +got c... i lazy to type... i forgot ?_ in lect... i saw a pouch but like not v nice... + +"5 free top polyphonic tones call 087018728737 +nationwide auto centre (or something like that) on newport road. i liked them there + +"dear +i am not having her number sir + +s.this will increase the chance of winning. + +"final chance! claim ur ??150 worth of discount vouchers today! text yes to 85023 now! savamob +no you'll just get a headache trying to figure it out. u can trust me to do the math. i promise. o:-) + +"if you don't +double your mins & txts on orange or 1/2 price linerental - motorola and sonyericsson with b/tooth free-nokia free call mobileupd8 on 08000839402 or2optout/hv9d + +free msg: ringtone!from: http://tms. widelive.com/index. wml?id=1b6a5ecef91ff9*37819&first=true18:0430-jul-05 + +you are gorgeous! keep those pix cumming :) thank you! + +nvm it's ok... + +check mail.i have mailed varma and kept copy to you regarding membership.take care.insha allah. + +check out choose your babe videos @ sms.shsex.netun fgkslpopw fgkslpo + +\alright babe + +k sure am in my relatives home. sms me de. pls:-) + +yeah i imagine he would be really gentle. unlike the other docs who treat their patients like turkeys. + +free camera phones with linerental from 4.49/month with 750 cross ntwk mins. 1/2 price txt bundle deals also avble. call 08001950382 or call2optout/j mf + +mm that time you dont like fun + +also remember to get dobby's bowl from your car + +your opinion about me? 1. over 2. jada 3. kusruthi 4. lovable 5. silent 6. spl character 7. not matured 8. stylish 9. simple pls reply.. + +urgent! your mobile number has been awarded with a ??2000 prize guaranteed. call 09061790121 from land line. claim 3030. valid 12hrs only 150ppm + +"well done! your 4* costa del sol holiday or ??5000 await collection. call 09050090044 now toclaim. sae +todays vodafone numbers ending with 4882 are selected to a receive a ??350 award. if your number matches call 09064019014 to receive your ??350 award. + +i think u have the wrong number. + +?? come lt 25 n pass to me lar + +hahaha..use your brain dear + +what not under standing. + +hai priya are you right. what doctor said pa. where are you. + +ever thought about living a good life with a perfect partner? just txt back name and age to join the mobile community. (100p/sms) + +freemsg:feelin kinda lnly hope u like 2 keep me company! jst got a cam moby wanna c my pic?txt or reply date to 82242 msg150p 2rcv hlp 08712317606 stop to 82242 + +free for 1st week! no1 nokia tone 4 ur mob every week just txt nokia to 8007 get txting and tell ur mates www.getzed.co.uk pobox 36504 w45wq norm150p/tone 16+ + +"did you hear about the new \divorce barbie\""? it comes with all of ken's stuff!""" + +no objection. my bf not coming. + +did u fix the teeth?if not do it asap.ok take care. + +"urgent!! your 4* costa del sol holiday or ??5000 await collection. call 09050090044 now toclaim. sae +83039 62735=??450 uk break accommodationvouchers terms & conditions apply. 2 claim you mustprovide your claim number which is 15541 + +hey mr whats the name of that bill brison book the one about language and words + +can u get pic msgs to your phone? + +"happy new year to u and ur family...may this new year bring happiness +"this is the 2nd time we have tried 2 contact u. u have won the 750 pound prize. 2 claim is easy +lol enjoy role playing much? + +"sunshine hols. to claim ur med holiday send a stamped self address envelope to drinks on us uk +ok... but they said i've got wisdom teeth hidden inside n mayb need 2 remove. + +"this is the 2nd time we have tried 2 contact u. u have won the 750 pound prize. 2 claim is easy +glad it went well :) come over at 11 then we'll have plenty of time before claire goes to work. + +"i???ve got some salt +"sorry pa +"a swt thought: \nver get tired of doing little things 4 lovable persons..\"" coz..somtimes those little things occupy d biggest part in their hearts.. gud ni8""" + +so i asked how's anthony. dad. and your bf + +"\petey boy whereare you me and all your friendsare in thekingshead come down if you canlove nic\""""" + +hello which the site to download songs its urgent pls + +guess what! somebody you know secretly fancies you! wanna find out who it is? give us a call on 09065394973 from landline datebox1282essexcm61xn 150p/min 18 + +"sorry +"jane babes not goin 2 wrk +private! your 2004 account statement for 07742676969 shows 786 unredeemed bonus points. to claim call 08719180248 identifier code: 45239 expires + +"six chances to win cash! from 100 to 20 +want explicit sex in 30 secs? ring 02073162414 now! costs 20p/min gsex pobox 2667 wc1n 3xx + +"if you don't +i did. one slice and one breadstick. lol + +winner!! as a valued network customer you have been selected to receivea ??900 prize reward! to claim call 09061701461. claim code kl341. valid 12 hours only. + +sun ah... thk mayb can if dun have anythin on... thk have to book e lesson... e pilates is at orchard mrt u noe hor... + +tell me they're female :v how're you throwing in? we're deciding what all to get now + +"to review and keep the fantastic nokia n-gage game deck with club nokia +ok lor... but buy wat? + +k.k:)i'm going to tirunelvali this week to see my uncle ..i already spend the amount by taking dress .so only i want money.i will give it on feb 1 + +you won't believe it but it's true. it's incredible txts! reply g now to learn truly amazing things that will blow your mind. from o2fwd only 18p/txt + +"congratulations! thanks to a good friend u have won the ??2 +hi i'm sue. i am 20 years old and work as a lapdancer. i love sex. text me live - i'm i my bedroom now. text sue to 89555. by textoperator g2 1da 150ppmsg 18+ + +"ur balance is now ??600. next question: complete the landmark +"thanks for your ringtone order +dont talk to him ever ok its my word. + +"upgrdcentre orange customer +send a logo 2 ur lover - 2 names joined by a heart. txt love name1 name2 mobno eg love adam eve 07123456789 to 87077 yahoo! pobox36504w45wq txtno 4 no ads 150p. + +ron say fri leh. n he said ding tai feng cant make reservations. but he said wait lor. + +"in case you wake up wondering where i am +"complimentary 4 star ibiza holiday or ??10 +i got to video tape pple type in message lor. u so free wan 2 help me? hee... cos i noe u wan 2 watch infernal affairs so ask u along. asking shuhui oso. + +"shop till u drop +too late. i said i have the website. i didn't i have or dont have the slippers + +you will recieve your tone within the next 24hrs. for terms and conditions please see channel u teletext pg 750 + +well good morning mr . hows london treatin' ya treacle? + +then ?_ wait 4 me at bus stop aft ur lect lar. if i dun c ?_ then i go get my car then come back n pick ?_. + +"this is the 2nd time we have tried 2 contact u. u have won the 750 pound prize. 2 claim is easy +get ready for <#> inches of pleasure... + +"it's cool +no management puzzeles. + +"yeah +me hungry buy some food good lei... but mum n yun dun wan juz buy a little bit... + +ur awarded a city break and could win a ??200 summer shopping spree every wk. txt store to 88039 . skilgme. tscs087147403231winawk!age16 ??1.50perwksub + +"nothing +"sorry +phony ??350 award - todays voda numbers ending xxxx are selected to receive a ??350 award. if you have a match please call 08712300220 quoting claim code 3100 standard rates app + +private! your 2003 account statement for shows 800 un-redeemed s. i. m. points. call 08719899230 identifier code: 41685 expires 07/11/04 + +"congrats 2 mobile 3g videophones r yours. call 09063458130 now! videochat wid ur mates +"sppok up ur mob with a halloween collection of nokia logo&pic message plus a free eerie tone +"hi +bored housewives! chat n date now! 0871750.77.11! bt-national rate 10p/min only from landlines! + +call 09095350301 and send our girls into erotic ecstacy. just 60p/min. to stop texts call 08712460324 (nat rate) + +had your mobile 11mths ? update for free to oranges latest colour camera mobiles & unlimited weekend calls. call mobile upd8 on freefone 08000839402 or 2stoptx + +as a registered optin subscriber ur draw 4 ??100 gift voucher will be entered on receipt of a correct ans to 80062 whats no1 in the bbc charts + +"our mobile number has won ??5000 +dear voucher holder 2 claim your 1st class airport lounge passes when using your holiday voucher call 08704439680. when booking quote 1st class x 2 + +"all done +"poyyarikatur +how will i creep on you now? ;_; + +"that's good +i cant pick the phone right now. pls send a message + +want explicit sex in 30 secs? ring 02073162414 now! costs 20p/min gsex pobox 2667 wc1n 3xx + +did either of you have any idea's? do you know of anyplaces doing something? + +sexy sexy cum and text me im wet and warm and ready for some porn! u up for some fun? this msg is free recd msgs 150p inc vat 2 cancel text stop + +"free msg. sorry +"you are a ??1000 winner or guaranteed caller prize +yes.i'm in office da:) + +ard 530 like dat lor. we juz meet in mrt station then ?_ dun haf to come out. + +"nah i don't think he goes to usf +tone club: your subs has now expired 2 re-sub reply monoc 4 monos or polyc 4 polys 1 weekly @ 150p per week txt stop 2 stop this msg free stream 0871212025016 + +"don't worry though +"by the way diff --git a/notebooks/SMS_SPAM/LFs/sms/home/aziz/Documents/CS769/Example_runs/d.txt b/notebooks/SMS_SPAM/LFs/sms/home/aziz/Documents/CS769/Example_runs/d.txt new file mode 100644 index 0000000..6000590 --- /dev/null +++ b/notebooks/SMS_SPAM/LFs/sms/home/aziz/Documents/CS769/Example_runs/d.txt @@ -0,0 +1,801 @@ +"i can't keep going through this. it was never my intention to run you out +compliments to you. was away from the system. how your side. + +i love to cuddle! i want to hold you in my strong arms right now... + +lord of the rings:return of the king in store now!reply lotr by 2 june 4 chance 2 win lotr soundtrack cds stdtxtrate. reply stop to end txts + +why didn't u call on your lunch? + +u are subscribed to the best mobile content service in the uk for ??3 per ten days until you send stop to 83435. helpline 08706091795. + +great to hear you are settling well. so what's happenin wit ola? + +you have an important customer service announcement from premier. + +you're gonna have to be way more specific than that + +that sucks. i'll go over so u can do my hair. you'll do it free right? + +"thank you +don know..he is watching film in computer.. + +"tyler (getting an 8th) has to leave not long after 9 +what time u wrkin? + +"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 +what was she looking for? + +sorry i missed your call let's talk when you have the time. i'm on 07090201529 + +x2 <#> . are you going to get that + +yo theres no class tmrw right? + +booked ticket for pongal? + +congratulations ur awarded either ??500 of cd gift vouchers & free entry 2 our ??100 weekly draw txt music to 87066 tncs www.ldew.com1win150ppmx3age16 + +rofl. its true to its name + +kaiez... enjoy ur tuition... gee... thk e second option sounds beta... i'll go yan jiu den msg u... + +have you heard from this week? + +"sorry +"\hey das cool... iknow all 2 wellda peril of studentfinancial crisis!spk 2 u l8r.\""""" + +i meant middle left or right? + +please call our customer service representative on 0800 169 6031 between 10am-9pm as you have won a guaranteed ??1000 cash or ??5000 prize! + +18 days to euro2004 kickoff! u will be kept informed of all the latest news and results daily. unsubscribe send get euro stop to 83222. + +dont forget you can place as many free requests with 1stchoice.co.uk as you wish. for more information call 08707808226. + +18 days to euro2004 kickoff! u will be kept informed of all the latest news and results daily. unsubscribe send get euro stop to 83222. + +take something for pain. if it moves however to any side in the next 6hrs see a doctor. + +:-) yeah! lol. luckily i didn't have a starring role like you! + +yar lor wait 4 my mum 2 finish sch then have lunch lor... i whole morning stay at home clean my room now my room quite clean... hee... + +apps class varaya elaya. + +?? dun wan to watch infernal affair? + +"turns out my friends are staying for the whole show and won't be back til ~ <#> +"forgot it takes me 3 years to shower +i.ll give her once i have it. plus she said grinule greet you whenever we speak + +he said i look pretty wif long hair wat. but i thk he's cutting quite short 4 me leh. + +u r the most beautiful girl ive ever seen. u r my baby come and c me in the common room + +goldviking (29/m) is inviting you to be his friend. reply yes-762 or no-762 see him: www.sms.ac/u/goldviking stop? send stop frnd to 62468 + +"this is the 2nd time we have tried 2 contact u. u have won the 750 pound prize. 2 claim is easy +"today's offer! claim ur ??150 worth of discount vouchers! text yes to 85023 now! savamob +okay... we wait ah + +then get some cash together and i'll text jason + +hi babe im at home now wanna do something? xx + +in sch but neva mind u eat 1st lor.. + +"will u meet ur dream partner soon? is ur career off 2 a flyng start? 2 find out free +my exam is for february 4. wish you a great day. + +what is this 'hex' place you talk of? explain! + +do you want a new video phone750 anytime any network mins 150 text for only five pounds per week call 08000776320 now or reply for delivery tomorrow + +no no. i will check all rooms befor activities + +"that would be good ??_ i'll phone you tomo lunchtime +"total disappointment +guess who am i?this is the first time i created a web page www.asjesus.com read all i wrote. i'm waiting for your opinions. i want to be your friend 1/1 + +"storming msg: wen u lift d phne +call germany for only 1 pence per minute! call from a fixed line via access number 0844 861 85 85. no prepayment. direct access! www.telediscount.co.uk + +bbq this sat at mine from 6ish. ur welcome 2 come + +we are pleased to inform that your application for airtel broadband is processed successfully. your installation will happen within 3 days. + +i am back. good journey! let me know if you need any of the receipts. shall i tell you like the pendent? + +"final chance! claim ur ??150 worth of discount vouchers today! text yes to 85023 now! savamob +collect your valentine's weekend to paris inc flight & hotel + ??200 prize guaranteed! text: paris to no: 69101. www.rtf.sphosting.com + +"update_now - xmas offer! latest motorola +"ou are guaranteed the latest nokia phone +"congratulations! thanks to a good friend u have won the ??2 +full heat pa:-) i have applyed oil pa. + +buy space invaders 4 a chance 2 win orig arcade game console. press 0 for games arcade (std wap charge) see o2.co.uk/games 4 terms + settings. no purchase + +okmail: dear dave this is your final notice to collect your 4* tenerife holiday or #5000 cash award! call 09061743806 from landline. tcs sae box326 cw25wx 150ppm + +"orange brings you ringtones from all time chart heroes +hmv bonus special 500 pounds of genuine hmv vouchers to be won. just answer 4 easy questions. play now! send hmv to 86688 more info:www.100percent-real.com + +u 447801259231 have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094597 + +"no i'm good for the movie +yeah you should. i think you can use your gt atm now to register. not sure but if there's anyway i can help let me know. but when you do be sure you are ready. + +are you in town? this is v. important + +wow! the boys r back. take that 2007 uk tour. win vip tickets & pre-book with vip club. txt club to 81303. trackmarque ltd info. + +super da:)good replacement for murali + +"all the lastest from stereophonics +send a logo 2 ur lover - 2 names joined by a heart. txt love name1 name2 mobno eg love adam eve 07123456789 to 87077 yahoo! pobox36504w45wq txtno 4 no ads 150p. + +piss is talking is someone that realise u that point this at is it.(now read it backwards) + +you have 1 new message. please call 08712400200. + +"free ringtone text first to 87131 for a poly or text get to 87131 for a true tone! help? 0845 2814032 16 after 1st free +you will be receiving this week's triple echo ringtone shortly. enjoy it! + +private! your 2004 account statement for 078498****7 shows 786 unredeemed bonus points. to claim call 08719180219 identifier code: 45239 expires 06.05.05 + +must come later.. i normally bathe him in da afternoon mah.. + +"your free ringtone is waiting to be collected. simply text the password \mix\"" to 85069 to verify. get usher and britney. fml mk17 92h. 450ppw 16""" + +"loan for any purpose ??500 - ??75 +"mila +i pocked you up there before + +"naughty little thought: 'its better to flirt +reverse is cheating. that is not mathematics. + +todays voda numbers ending with 7634 are selected to receive a ??350 reward. if you have a match please call 08712300220 quoting claim code 7684 standard rates apply. + +"09066362231 urgent! your mobile no 07xxxxxxxxx won a ??2 +watching telugu movie..wat abt u? + +i'm very happy for you babe ! woo hoo party on dude! + +call freephone 0800 542 0578 now! + +yep get with the program. you're slacking. + +not heard from u4 a while. call 4 rude chat private line 01223585334 to cum. wan 2c pics of me gettin shagged then text pix to 8552. 2end send stop 8552 sam xxx + +zoe it just hit me 2 im fucking shitin myself il defo try my hardest 2 cum 2morow luv u millions lekdog + +"plz note: if anyone calling from a mobile co. & asks u to type # <#> or # <#> . do not do so. disconnect the call +we tried to contact you re your reply to our offer of a video handset? 750 anytime networks mins? unlimited text? camcorder? reply or call 08000930705 now + +have a good trip. watch out for . remember when you get back we must decide about easter. + +"urgent urgent! we have 800 free flights to europe to give away +todays vodafone numbers ending with 0089(my last four digits) are selected to received a ??350 award. if your number matches please call 09063442151 to claim your ??350 award + ++123 congratulations - in this week's competition draw u have won the ??1450 prize to claim just call 09050002311 b4280703. t&cs/stop sms 08718727868. over 18 only 150ppm + +8007 free for 1st week! no1 nokia tone 4 ur mob every week just txt nokia to 8007 get txting and tell ur mates www.getzed.co.uk pobox 36504 w4 5wq norm 150p/tone 16+ + +"sorry +fancy a shag? i do.interested? sextextuk.com txt xxuk suzy to 69876. txts cost 1.50 per msg. tncs on website. x + +"sorry +hi where you. you in home or calicut? + +yes but i don't care cause i know its there! + +tell them u have a headache and just want to use 1 hour of sick time. + +r u still working now? + +call germany for only 1 pence per minute! call from a fixed line via access number 0844 861 85 85. no prepayment. direct access! www.telediscount.co.uk + +"double mins & 1000 txts on orange tariffs. latest motorola +"freemsg: claim ur 250 sms messages-text ok to 84025 now!use web2mobile 2 ur mates etc. join txt250.com for 1.50p/wk. t&c box139 +k da:)how many page you want? + +lord of the rings:return of the king in store now!reply lotr by 2 june 4 chance 2 win lotr soundtrack cds stdtxtrate. reply stop to end txts + +can not use foreign stamps in this country. good lecture . + +"each moment in a day +ok lor. anyway i thk we cant get tickets now cos like quite late already. u wan 2 go look 4 ur frens a not? darren is wif them now... + +you are a winner u have been specially selected 2 receive ??1000 or a 4* holiday (flights inc) speak to a live operator 2 claim 0871277810910p/min (18+) + +your bill at 3 is ??33.65 so thats not bad! + +do you want a new nokia 3510i colour phone deliveredtomorrow? with 300 free minutes to any mobile + 100 free texts + free camcorder reply or call 08000930705. + +"1000's flirting now! txt girl or bloke & ur name & age +ur ringtone service has changed! 25 free credits! go to club4mobiles.com to choose content now! stop? txt club stop to 87070. 150p/wk club4 po box1146 mk45 2wt + +whom you waited for yesterday + +gent! we are trying to contact you. last weekends draw shows that you won a ??1000 prize guaranteed. call 09064012160. claim code k52. valid 12hrs only. 150ppm + +do you want a new video handset? 750 any time any network mins? unlimited text? camcorder? reply or call now 08000930705 for del sat am + +i am on the way to ur home + +"\the world suffers a lot... not because of the violence of bad people. but because of the silence of good people!\""" + +"\urgent! this is the 2nd attempt to contact u!u have won ??1000call 09071512432 b4 300603t&csbcm4235wc1n3xx.callcost150ppmmobilesvary. max??7. 50\""""" + +you can donate ??2.50 to unicef's asian tsunami disaster support fund by texting donate to 864233. ??2.50 will be added to your next bill + +"free message activate your 500 free text messages by replying to this message with the word free for terms & conditions +"500 new mobiles from 2004 +"as a valued customer +thanks honey. have a great day. + +"you ve won! your 4* costa del sol holiday or ??5000 await collection. call 09050090044 now toclaim. sae +why don't you wait 'til at least wednesday to see if you get your . + +we regret to inform u that the nhs has made a mistake.u were never actually born.please report 2 yor local hospital 2b terminated.we r sorry 4 the inconvenience + +they said ?_ dun haf passport or smth like dat.. or ?_ juz send to my email account.. + +what i told before i tell. stupid hear after i wont tell anything to you. you dad called to my brother and spoken. not with me. + +you'll not rcv any more msgs from the chat svc. for free hardcore services text go to: 69988 if u get nothing u must age verify with yr network & try again + +"urgent! last weekend's draw shows that you have won ??1000 cash or a spanish holiday! call now 09050000332 to claim. t&c: rstm +ard 530 lor. i ok then message ?_ lor. + +yesterday its with me only . now am going home. + +please call our customer service representative on 0800 169 6031 between 10am-9pm as you have won a guaranteed ??1000 cash or ??5000 prize! + +"you at mu? you should try to figure out how much money everyone has for gas and alcohol +well at this right i'm gonna have to get up and check today's steam sales/pee so text me when you want me to come get you + +"you are guaranteed the latest nokia phone +yo yo yo byatch whassup? + +hello. they are going to the village pub at 8 so either come here or there accordingly. ok? + +dont forget you can place as many free requests with 1stchoice.co.uk as you wish. for more information call 08707808226. + +"smsservices. for yourinclusive text credits +u have a secret admirer. reveal who thinks u r so special. call 09065174042. to opt out reply reveal stop. 1.50 per msg recd. cust care 07821230901 + +height of confidence: all the aeronautics professors wer calld & they wer askd 2 sit in an aeroplane. aftr they sat they wer told dat the plane ws made by their students. dey all hurried out of d plane.. bt only 1 didnt move... he said:\if it is made by my students + +babe: u want me dont u baby! im nasty and have a thing 4 filthyguys. fancy a rude time with a sexy bitch. how about we go slo n hard! txt xxx slo(4msgs) + +"free msg. sorry +sac needs to carry on:) + +"orange brings you ringtones from all time chart heroes +"probably gonna be here for a while +"spook up your mob with a halloween collection of a logo & pic message plus a free eerie tone +"aight fuck it +you have an important customer service announcement from premier. + +private! your 2003 account statement for shows 800 un-redeemed s. i. m. points. call 08715203656 identifier code: 42049 expires 26/10/04 + +"twinks +we can make a baby in yo tho + +hey i've booked the pilates and yoga lesson already... haha + +your b4u voucher w/c 27/03 is marsms. log onto www.b4utele.com for discount credit. to opt out reply stop. customer care call 08717168528 + +"cmon babe +urgent! we are trying to contact u. todays draw shows that you have won a ??2000 prize guaranteed. call 09058094507 from land line. claim 3030. valid 12hrs only + +no calls..messages..missed calls + +"sunshine hols. to claim ur med holiday send a stamped self address envelope to drinks on us uk +enjoy the jamster videosound gold club with your credits for 2 new videosounds+2 logos+musicnews! get more fun from jamster.co.uk! 16+only help? call: 09701213186 + +yup i shd haf ard 10 pages if i add figures... ?? all got how many pages? + +xmas prize draws! we are trying to contact u. todays draw shows that you have won a ??2000 prize guaranteed. call 09058094565 from land line. valid 12hrs only + +u can call now... + +yes i know the cheesy songs from frosty the snowman :) + +freemsg: our records indicate you may be entitled to 3750 pounds for the accident you had. to claim for free reply with yes to this msg. to opt out text stop + +congrats! nokia 3650 video camera phone is your call 09066382422 calls cost 150ppm ave call 3mins vary from mobiles 16+ close 300603 post bcm4284 ldn wc1n3xx + +i take it we didn't have the phone callon friday. can we assume we won't have it this year now? + +hi if ur lookin 4 saucy daytime fun wiv busty married woman am free all next week chat now 2 sort time 09099726429 janinexx calls??1/minmobsmorelkpobox177hp51fl + +my darling sister. how are you doing. when's school resuming. is there a minimum wait period before you reapply? do take care + +"ur balance is now ??600. next question: complete the landmark +not heard from u4 a while. call 4 rude chat private line 01223585334 to cum. wan 2c pics of me gettin shagged then text pix to 8552. 2end send stop 8552 sam xxx + +i didn't get the second half of that message + +oh and by the way you do have more food in your fridge! want to go out for a meal tonight? + +ooooooh i forgot to tell u i can get on yoville on my phone + +dear we are going to our rubber place + +then u ask darren go n pick u lor... but i oso sian tmr haf 2 meet lect... + +i just saw ron burgundy captaining a party boat so yeah + +friendship poem: dear o dear u r not near but i can hear dont get fear live with cheer no more tear u r always my dear. gud ni8 + +hi juan. im coming home on fri hey. of course i expect a welcome party and lots of presents. ill phone u when i get back. loads of love nicky x x x x x x x x x + +if india win or level series means this is record:) + +both :) i shoot big loads so get ready! + +"urgent! please call 09066612661 from your landline +kallis wont bat in 2nd innings. + +update_now - 12mths half price orange line rental: 400mins...call mobileupd8 on 08000839402 or call2optout=j5q + +at 4. let's go to bill millers + +i've reached home finally... + +when ?_ login dat time... dad fetching ?_ home now? + +r u here yet? i'm wearing blue shirt n black pants. + +"goodmorning +eh sorry leh... i din c ur msg. not sad already lar. me watching tv now. u still in office? + +lol where do u come up with these ideas? + +"k +i'm reading the text i just sent you. its meant to be a joke. so read it in that light + +well there's a pattern emerging of my friends telling me to drive up and come smoke with them and then telling me that i'm a weed fiend/make them smoke too much/impede their doing other things so you see how i'm hesitant + +that means get the door + +on a tuesday night r u 4 real + +"double mins and txts 4 6months free bluetooth on orange. available on sony +"customer service announcement. we recently tried to make a delivery to you but were unable to do so +babe: u want me dont u baby! im nasty and have a thing 4 filthyguys. fancy a rude time with a sexy bitch. how about we go slo n hard! txt xxx slo(4msgs) + +"think ur smart ? win ??200 this week in our weekly quiz +"got what it takes 2 take part in the wrc rally in oz? u can with lucozade energy! text rally le to 61200 (25p) +i'll probably be around mu a lot + +you know what hook up means right? + +"k give me a sec +it's ok lar. u sleep early too... nite... + +did you see that film:) + +eek that's a lot of time especially since american pie is like 8 minutes long. i can't stop singing it. + +"found it +will do. have a good day + +also maaaan are you missing out + +4mths half price orange line rental & latest camera phones 4 free. had your phone 11mths ? call mobilesdirect free on 08000938767 to update now! or2stoptxt + +i am 6 ft. we will be a good combination! + +"got fujitsu +**free message**thanks for using the auction subscription service. 18 . 150p/msgrcvd 2 skip an auction txt out. 2 unsubscribe txt stop customercare 08718726270 + +fuck babe ... what happened to you ? how come you never came back? + +boy; i love u grl: hogolo boy: gold chain kodstini grl: agalla boy: necklace madstini grl: agalla boy: hogli 1 mutai eerulli kodthini! grl: i love u kano;-) + +boltblue tones for 150p reply poly# or mono# eg poly3 1. cha cha slide 2. yeah 3. slow jamz 6. toxic 8. come with me or stop 4 more tones txt more + +i don't know u and u don't know me. send chat to 86688 now and let's find each other! only 150p/msg rcvd. hg/suite342/2lands/row/w1j6hl ldn. 18 years or over. + +"yeah there's barely enough room for the two of us +ur cash-balance is currently 500 pounds - to maximize ur cash-in now send collect to 83600 only 150p/msg. cc: 08718720201 po box 114/14 tcr/w1 + +thanks for yesterday sir. you have been wonderful. hope you enjoyed the burial. mojibiola + +i wnt to buy a bmw car urgently..its vry urgent.but hv a shortage of <#> lacs.there is no source to arng dis amt. <#> lacs..thats my prob + +how about getting in touch with folks waiting for company? just txt back your name and age to opt in! enjoy the community (150p/sms) + +"if you want to mapquest it or something look up \usf dogwood drive\""" + +we currently have a message awaiting your collection. to collect your message just call 08718723815. + +"my parents +"new tones this week include: 1)mcfly-all ab.. +well. you know what i mean. texting + +sindu got job in birla soft .. + +"you 07801543489 are guaranteed the latests nokia phone +kit strip - you have been billed 150p. netcollex ltd. po box 1013 ig11 oja + +ever thought about living a good life with a perfect partner? just txt back name and age to join the mobile community. (100p/sms) + +"0a$networks allow companies to bill for sms +urgent this is our 2nd attempt to contact u. your ??900 prize from yesterday is still awaiting collection. to claim call now 09061702893 + +i'm done. c ?_ there. + +may i call you later pls + +win a year supply of cds 4 a store of ur choice worth ??500 & enter our ??100 weekly draw txt music to 87066 ts&cs www.ldew.com.subs16+1win150ppmx3 + +wait . i will msg after <#> min. + +"freemsg why haven't you replied to my text? i'm randy +today is accept day..u accept me as? brother sister lover dear1 best1 clos1 lvblefrnd jstfrnd cutefrnd lifpartnr belovd swtheart bstfrnd no rply means enemy + +"i shall book chez jules for half eight +"i just got home babe +free for 1st week! no1 nokia tone 4 ur mob every week just txt nokia to 8007 get txting and tell ur mates www.getzed.co.uk pobox 36504 w45wq norm150p/tone 16+ + +u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094594 + +then mum's repent how? + +bishan lar nearer... no need buy so early cos if buy now i gotta park my car... + +"got what it takes 2 take part in the wrc rally in oz? u can with lucozade energy! text rally le to 61200 (25p) +hello my little party animal! i just thought i'd buzz you as you were with your friends ...*grins*... reminding you were loved and send a naughty adoring kiss + +"text82228>> get more ringtones +"hot live fantasies call now 08707509020 just 20p per min ntt ltd +later i guess. i needa do mcat study too. + +depends on where u going lor. + +now got tv 2 watch meh? u no work today? + +reply to win ??100 weekly! what professional sport does tiger woods play? send stop to 87239 to end service + +how are you. just checking up on you + +block breaker now comes in deluxe format with new features and great graphics from t-mobile. buy for just ??5 by replying get bbdeluxe and take the challenge + +"yeah sure +"u can win ??100 of music gift vouchers every week starting now txt the word draw to 87066 tscs www.ldew.com skillgame +"you've won tkts to the euro2004 cup final or ??800 cash +"say this slowly.? god +how are you? i miss you! + +"as usual..iam fine +ur cash-balance is currently 500 pounds - to maximize ur cash-in now send go to 86688 only 150p/meg. cc: 08718720201 hg/suite342/2lands row/w1j6hl + +ffffffffff. alright no way i can meet up with you sooner? + +ur going 2 bahamas! callfreefone 08081560665 and speak to a live operator to claim either bahamas cruise of??2000 cash 18+only. to opt out txt x to 07786200117 + +"urgent! call 09066612661 from landline. your complementary 4* tenerife holiday or ??10 +"why is that +"urgent! please call 0906346330. your abta complimentary 4* spanish holiday or ??10 +u have won a nokia 6230 plus a free digital camera. this is what u get when u win our free auction. to take part send nokia to 83383 now. pobox114/14tcr/w1 16 + +"y cant u try new invention to fly..i'm not joking. +why must we sit around and wait for summer days to celebrate. such a magical sight when the worlds dressed in white. oooooh let there be snow. + +u have won a nokia 6230 plus a free digital camera. this is what u get when u win our free auction. to take part send nokia to 83383 now. pobox114/14tcr/w1 16 + +urgent we are trying to contact you last weekends draw shows u have won a ??1000 prize guaranteed call 09064017295 claim code k52 valid 12hrs 150p pm + +"oh fine +"thanks for your ringtone order +"last chance! claim ur ??150 worth of discount vouchers today! text shop to 85023 now! savamob +you know there is. i shall speak to you in <#> minutes then + +"i am late +you will recieve your tone within the next 24hrs. for terms and conditions please see channel u teletext pg 750 + +very hurting n meaningful lines ever: \i compromised everything for my love + +free entry in 2 a weekly comp for a chance to win an ipod. txt pod to 80182 to get entry (std txt rate) t&c's apply 08452810073 for details 18+ + +do you want a new video handset? 750 anytime any network mins? half price line rental? camcorder? reply or call 08000930705 for delivery tomorrow + +"you've won tkts to the euro2004 cup final or ??800 cash +"mila +"dont search love +anyway holla at me whenever you're around because i need an excuse to go creep on people in sarasota + +there's no point hangin on to mr not right if he's not makin u happy + +xy trying smth now. u eat already? we havent... + +sunshine quiz wkly q! win a top sony dvd player if u know which country liverpool played in mid week? txt ansr to 82277. ??1.50 sp:tyrone + +she went to attend another two rounds today..but still did't reach home.. + +thanks chikku..:-) gud nyt:-* + +"how's my loverboy doing ? what does he do that keeps him from coming to his queen +here is my new address -apples&pairs&all that malarky + +ok. there may be a free gym about. + +yep then is fine 7.30 or 8.30 for ice age. + +hi if ur lookin 4 saucy daytime fun wiv busty married woman am free all next week chat now 2 sort time 09099726429 janinexx calls??1/minmobsmorelkpobox177hp51fl + +save money on wedding lingerie at www.bridal.petticoatdreams.co.uk choose from a superb selection with national delivery. brought to you by weddingfriend + +i am getting threats from your sales executive shifad as i raised complaint against him. its an official message. + +"well +are you this much buzy + +"sunshine hols. to claim ur med holiday send a stamped self address envelope to drinks on us uk +"last chance! claim ur ??150 worth of discount vouchers today! text shop to 85023 now! savamob +"congrats! 1 year special cinema pass for 2 is yours. call 09061209465 now! c suprman v +had your mobile 11 months or more? u r entitled to update to the latest colour mobiles with camera for free! call the mobile update co free on 08002986030 + +you're right i have now that i think about it + +do you want a new video handset? 750 any time any network mins? unlimited text? camcorder? reply or call now 08000930705 for del sat am + +ok but tell me half an hr b4 u come i need 2 prepare. + +we tried to contact you re your response to our offer of a new nokia fone and camcorder hit reply or call 08000930705 for delivery + +asked 3mobile if 0870 chatlines inclu in free mins. india cust servs sed yes. l8er got mega bill. 3 dont giv a shit. bailiff due in days. i o ??250 3 want ??800 + +ok + +i called but no one pick up e phone. i ask both of them already they said ok. + +private! your 2003 account statement for 078 + +free for 1st week! no1 nokia tone 4 ur mob every week just txt nokia to 8007 get txting and tell ur mates www.getzed.co.uk pobox 36504 w45wq norm150p/tone 16+ + +how is your schedule next week? i am out of town this weekend. + +reply with your name and address and you will receive by post a weeks completely free accommodation at various global locations www.phb1.com ph:08700435505150p + +congratulations you've won. you're a winner in our august ??1000 prize draw. call 09066660100 now. prize code 2309. + +private! your 2003 account statement for shows 800 un-redeemed s. i. m. points. call 08718738002 identifier code: 48922 expires 21/11/04 + +"hmmm... guess we can go 4 kb n power yoga... haha +got it. seventeen pounds for seven hundred ml ??? hope ok. + +i will be gentle baby! soon you will be taking all <#> inches deep inside your tight pussy... + +"wen ur lovable bcums angry wid u +you have an important customer service announcement from premier. call freephone 0800 542 0578 now! + +"thanks for your ringtone order +i forgot 2 ask ?_ all smth.. there's a card on da present lei... how? ?? all want 2 write smth or sign on it? + +hi babe its me thanks for coming even though it didnt go that well!i just wanted my bed! hope to see you soon love and kisses xxx + +misplaced your number and was sending texts to your old number. wondering why i've not heard from you this year. all the best in your mcat. got this number from my atlanta friends + +hi. customer loyalty offer:the new nokia6650 mobile from only ??10 at txtauction! txt word: start to no: 81151 & get yours now! 4t&ctxt tc 150p/mtmsg + +after the drug she will be able to eat. + +oh yah... we never cancel leh... haha + +you do got a shitload of diamonds though + +08714712388 between 10am-7pm cost 10p + +urgent! we are trying to contact u. todays draw shows that you have won a ??2000 prize guaranteed. call 09066358361 from land line. claim y87. valid 12hrs only + +todays vodafone numbers ending with 0089(my last four digits) are selected to received a ??350 award. if your number matches please call 09063442151 to claim your ??350 award + +"\cheers u tex mecause u werebored! yeah okden hunny r uin wk sat?sound??s likeyour havin gr8fun j! keep updat countinlots of loveme xxxxx.\""""" + +urgent! your mobile number has been awarded with a ??2000 prize guaranteed. call 09061790126 from land line. claim 3030. valid 12hrs only 150ppm + +from www.applausestore.com monthlysubscription/msg max6/month t&csc web age16 2stop txt stop + +"urgent!! your 4* costa del sol holiday or ??5000 await collection. call 09050090044 now toclaim. sae +"well done! your 4* costa del sol holiday or ??5000 await collection. call 09050090044 now toclaim. sae +what are your new years plans? + +urgent! please call 09061213237 from landline. ??5000 cash or a luxury 4* canary islands holiday await collection. t&cs sae po box 177. m227xy. 150ppm. 16+ + +u have a secret admirer. reveal who thinks u r so special. call 09065174042. to opt out reply reveal stop. 1.50 per msg recd. cust care 07821230901 + +lol i was gonna last month. i cashed some in but i left <#> just in case. i was collecting more during the week cause they announced it on the blog. + +"nah man +gud mrng dear hav a nice day + +"you ve won! your 4* costa del sol holiday or ??5000 await collection. call 09050090044 now toclaim. sae +i only work from mon to thurs but sat i cant leh... booked liao... which other day u free? + +"free2day sexy st george's day pic of jordan!txt pic to 89080 dont miss out +"night has ended for another day +do you want 750 anytime any network mins 150 text and a new video phone for only five pounds per week call 08002888812 or reply for delivery tomorrow + +yo guess what i just dropped + +want a new video phone? 750 anytime any network mins? half price line rental free text for 3 months? reply or call 08000930705 for free delivery + +now? i'm going out 4 dinner soon.. + +"what do u reckon as need 2 arrange transport if u can't do it +"im in inperialmusic listening2the weirdest track ever by??leafcutter john??-sounds like insects being molested&someone plumbing +id have to check but there's only like 1 bowls worth left + +you tell what happen dont behave like this to me. ok no need to say + +finish liao... u? + +dear we got <#> dollars hi hi + +well its not like you actually called someone a punto. that woulda been worse. + +"win the newest ???harry potter and the order of the phoenix (book 5) reply harry +i like dis sweater fr mango but no more my size already so irritating. + +"welcome to uk-mobile-date this msg is free giving you free calling to 08719839835. future mgs billed at 150p daily. to cancel send \go stop\"" to 89123""" + +ok... then r we meeting later? + +congratulations ur awarded either a yrs supply of cds from virgin records or a mystery gift guaranteed call 09061104283 ts&cs www.smsco.net ??1.50pm approx 3mins + +ringtoneking 84484 + +da my birthdate in certificate is in april but real date is today. but dont publish it. i shall give you a special treat if you keep the secret. any way thanks for the wishes + +u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094594 + +"win: we have a winner! mr. t. foley won an ipod! more exciting prizes soon +u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094565 + +i asked you to call him now ok + +you have won a guaranteed ??1000 cash or a ??2000 prize. to claim yr prize call our customer service representative on 08714712412 between 10am-7pm cost 10p + +lol grr my mom is taking forever with my prescription. pharmacy is like 2 minutes away. ugh. + +check out choose your babe videos @ sms.shsex.netun fgkslpopw fgkslpo + +shall i send that exe to your mail id. + +congrats! nokia 3650 video camera phone is your call 09066382422 calls cost 150ppm ave call 3mins vary from mobiles 16+ close 300603 post bcm4284 ldn wc1n3xx + +oh yeah! and my diet just flew out the window + +yup + +yes. nigh you cant aha. + +it only does simple arithmetic not percentages. + +"i had been hoping i would not have to send you this message. my rent is due and i dont have enough for it. my reserves are completely gone. its a loan i need and was hoping you could her. the balance is <#> . is there a way i could get that from you +your next amazing xxx picsfree1 video will be sent to you enjoy! if one vid is not enough for 2day text back the keyword picsfree1 to get the next video. + +"will u meet ur dream partner soon? is ur career off 2 a flyng start? 2 find out free +eastenders tv quiz. what flower does dot compare herself to? d= violet e= tulip f= lily txt d e or f to 84025 now 4 chance 2 win ??100 cash wkent/150p16+ + +lol wtf random. btw is that your lunch break + +get a free mobile video player free movie. to collect text go to 89105. its free! extra films can be ordered t's and c's apply. 18 yrs only + +"for your chance to win a free bluetooth headset then simply reply back with \adp\""""" + +"urgent. important information for 02 user. today is your lucky day! 2 find out why +"themob> check out our newest selection of content +k ill drink.pa then what doing. i need srs model pls send it to my mail id pa. + +aaooooright are you at work? + +ur cash-balance is currently 500 pounds - to maximize ur cash-in now send cash to 86688 only 150p/msg. cc: 08718720201 po box 114/14 tcr/w1 + +how are you holding up? + +are you at work right now ? + +"mila +i enjoy watching and playing football and basketball. anything outdoors. and you? + +you have won a nokia 7250i. this is what you get when you win our free auction. to take part send nokia to 86021 now. hg/suite342/2lands row/w1jhl 16+ + +thought praps you meant another one. goodo! i'll look tomorrow + +slaaaaave ! where are you ? must i summon you to me all the time now ? don't you wish to come to me on your own anymore? + +urgent! we are trying to contact you. last weekends draw shows that you have won a ??900 prize guaranteed. call 09061701851. claim code k61. valid 12hours only + +you got called a tool? + +"hungry gay guys feeling hungry and up 4 it +i wonder if you'll get this text? + +i've told him that i've returned it. that should i re order it. + +i've reached sch already... + +urgent! your mobile number has been awarded with a ??2000 prize guaranteed. call 09061790121 from land line. claim 3030. valid 12hrs only 150ppm + +i know you are serving. i mean what are you doing now. + +is xy in ur car when u picking me up? + +thats cool! sometimes slow and gentle. sonetimes rough and hard :) + +sorry i've not gone to that place. i.ll do so tomorrow. really sorry. + +"erm ??_ ill pick you up at about 6.45pm. that'll give enough time to get there +"tddnewsletter.co.uk (more games from thedailydraw) dear helen +....photoshop makes my computer shut down. + +haha but no money leh... later got to go for tuition... haha and looking for empty slots for driving lessons + +ree entry in 2 a weekly comp for a chance to win an ipod. txt pod to 80182 to get entry (std txt rate) t&c's apply 08452810073 for details 18+ + +nobody can decide where to eat and dad wants chinese + +"new mobiles from 2004 +"babe +probably gonna swing by in a wee bit + +"dear sir +wat so late still early mah. or we juz go 4 dinner lor. aiya i dunno... + +"someone u know has asked our dating service 2 contact you! cant guess who? call 09058097189 now all will be revealed. pobox 6 +dear 0776xxxxxxx u've been invited to xchat. this is our final attempt to contact u! txt chat to 86688 150p/msgrcvdhg/suite342/2lands/row/w1j6hl ldn 18yrs + +will be office around 4 pm. now i am going hospital. + +"dear +"welcome to uk-mobile-date this msg is free giving you free calling to 08719839835. future mgs billed at 150p daily. to cancel send \go stop\"" to 89123""" + +"i hope your alright babe? i worry that you might have felt a bit desparate when you learned the job was a fake ? i am here waiting when you come back +"spoke with uncle john today. he strongly feels that you need to sacrifice to keep me here. he's going to call you. when he does +free entry into our ??250 weekly competition just text the word win to 80086 now. 18 t&c www.txttowin.co.uk + +"as a valued customer +"alright +get ur 1st ringtone free now! reply to this msg with tone. gr8 top 20 tones to your phone every week just ??1.50 per wk 2 opt out send stop 08452810071 16 + +congratulations u can claim 2 vip row a tickets 2 c blu in concert in november or blu gift guaranteed call 09061104276 to claim ts&cs www.smsco.net cost??3.75max + +camera - you are awarded a sipix digital camera! call 09061221066 fromm landline. delivery within 28 days. + +even if he my friend he is a priest call him now + +s:-)kallis wont play in first two odi:-) + +taka lor. wat time u wan 2 come n look 4 us? + +sunshine quiz wkly q! win a top sony dvd player if u know which country liverpool played in mid week? txt ansr to 82277. ??1.50 sp:tyrone + +not heard from u4 a while. call 4 rude chat private line 01223585334 to cum. wan 2c pics of me gettin shagged then text pix to 8552. 2end send stop 8552 sam xxx + +he neva grumble but i sad lor... hee... buy tmr lor aft lunch. but we still meetin 4 lunch tmr a not. neva hear fr them lei. ?? got a lot of work ar? + +"camera quite good +do you want a new video phone? 600 anytime any network mins 400 inclusive video calls and downloads 5 per week free deltomorrow call 08002888812 or reply now + +send this to ur friends and receive something about ur voice..... how is my speaking expression? 1.childish 2.naughty 3.sentiment 4.rowdy 5.ful of attitude 6.romantic 7.shy 8.attractive 9.funny <#> .irritating <#> .lovable. reply me.. + +"sms. ac jsco: energy is high +u are subscribed to the best mobile content service in the uk for ??3 per ten days until you send stop to 83435. helpline 08706091795. + +"u r subscribed 2 textcomp 250 wkly comp. 1st wk?s free question follows +guess what! somebody you know secretly fancies you! wanna find out who it is? give us a call on 09065394973 from landline datebox1282essexcm61xn 150p/min 18 + +hmv bonus special 500 pounds of genuine hmv vouchers to be won. just answer 4 easy questions. play now! send hmv to 86688 more info:www.100percent-real.com + +huh so late... fr dinner? + +either way works for me. i am <#> years old. hope that doesnt bother you. + diff --git a/notebooks/SMS_SPAM/LFs/sms/home/aziz/Documents/CS769/Example_runs/generatedLFs.txt b/notebooks/SMS_SPAM/LFs/sms/home/aziz/Documents/CS769/Example_runs/generatedLFs.txt new file mode 100644 index 0000000..c2abcaa --- /dev/null +++ b/notebooks/SMS_SPAM/LFs/sms/home/aziz/Documents/CS769/Example_runs/generatedLFs.txt @@ -0,0 +1,25 @@ +0,free +0,ur +0,claim +1,come +1,ok +0,holiday +1,gt +0,stop +0,won +1,got +1,like +0,video +0,win +1,sorry +0,uk +0,holiday +0,holiday +0,text +0,urgent +0,holiday +0,holiday +0,contact +0,com +0,text +0,text diff --git a/notebooks/SMS_SPAM/LFs/sms/home/aziz/Documents/CS769/Example_runs/normal_U_processed.p b/notebooks/SMS_SPAM/LFs/sms/home/aziz/Documents/CS769/Example_runs/normal_U_processed.p new file mode 100644 index 0000000..37c89ef Binary files /dev/null and b/notebooks/SMS_SPAM/LFs/sms/home/aziz/Documents/CS769/Example_runs/normal_U_processed.p differ diff --git a/notebooks/SMS_SPAM/LFs/sms/home/aziz/Documents/CS769/Example_runs/normal_d_processed.p b/notebooks/SMS_SPAM/LFs/sms/home/aziz/Documents/CS769/Example_runs/normal_d_processed.p new file mode 100644 index 0000000..e71334c Binary files /dev/null and b/notebooks/SMS_SPAM/LFs/sms/home/aziz/Documents/CS769/Example_runs/normal_d_processed.p differ diff --git a/notebooks/SMS_SPAM/LFs/sms/home/aziz/Documents/CS769/Example_runs/normal_k.npy b/notebooks/SMS_SPAM/LFs/sms/home/aziz/Documents/CS769/Example_runs/normal_k.npy new file mode 100644 index 0000000..4409a86 Binary files /dev/null and b/notebooks/SMS_SPAM/LFs/sms/home/aziz/Documents/CS769/Example_runs/normal_k.npy differ diff --git a/notebooks/SMS_SPAM/LFs/sms/home/aziz/Documents/CS769/Example_runs/normal_reef.npy b/notebooks/SMS_SPAM/LFs/sms/home/aziz/Documents/CS769/Example_runs/normal_reef.npy new file mode 100644 index 0000000..f6bf212 Binary files /dev/null and b/notebooks/SMS_SPAM/LFs/sms/home/aziz/Documents/CS769/Example_runs/normal_reef.npy differ diff --git a/notebooks/SMS_SPAM/LFs/sms/home/aziz/Documents/CS769/Example_runs/normal_test_LFs.npy b/notebooks/SMS_SPAM/LFs/sms/home/aziz/Documents/CS769/Example_runs/normal_test_LFs.npy new file mode 100644 index 0000000..8f1c7de Binary files /dev/null and b/notebooks/SMS_SPAM/LFs/sms/home/aziz/Documents/CS769/Example_runs/normal_test_LFs.npy differ diff --git a/notebooks/SMS_SPAM/LFs/sms/home/aziz/Documents/CS769/Example_runs/normal_test_processed.p b/notebooks/SMS_SPAM/LFs/sms/home/aziz/Documents/CS769/Example_runs/normal_test_processed.p new file mode 100644 index 0000000..6b1914f Binary files /dev/null and b/notebooks/SMS_SPAM/LFs/sms/home/aziz/Documents/CS769/Example_runs/normal_test_processed.p differ diff --git a/notebooks/SMS_SPAM/LFs/sms/home/aziz/Documents/CS769/Example_runs/normal_train_LFs.npy b/notebooks/SMS_SPAM/LFs/sms/home/aziz/Documents/CS769/Example_runs/normal_train_LFs.npy new file mode 100644 index 0000000..9c8c528 Binary files /dev/null and b/notebooks/SMS_SPAM/LFs/sms/home/aziz/Documents/CS769/Example_runs/normal_train_LFs.npy differ diff --git a/notebooks/SMS_SPAM/LFs/sms/home/aziz/Documents/CS769/Example_runs/normal_val_LFs.npy b/notebooks/SMS_SPAM/LFs/sms/home/aziz/Documents/CS769/Example_runs/normal_val_LFs.npy new file mode 100644 index 0000000..3223bd1 Binary files /dev/null and b/notebooks/SMS_SPAM/LFs/sms/home/aziz/Documents/CS769/Example_runs/normal_val_LFs.npy differ diff --git a/notebooks/SMS_SPAM/LFs/sms/home/aziz/Documents/CS769/Example_runs/normal_validation_processed.p b/notebooks/SMS_SPAM/LFs/sms/home/aziz/Documents/CS769/Example_runs/normal_validation_processed.p new file mode 100644 index 0000000..2805e00 Binary files /dev/null and b/notebooks/SMS_SPAM/LFs/sms/home/aziz/Documents/CS769/Example_runs/normal_validation_processed.p differ diff --git a/notebooks/SMS_SPAM/LFs/sms/home/aziz/Documents/CS769/Example_runs/test.txt b/notebooks/SMS_SPAM/LFs/sms/home/aziz/Documents/CS769/Example_runs/test.txt new file mode 100644 index 0000000..4ded582 --- /dev/null +++ b/notebooks/SMS_SPAM/LFs/sms/home/aziz/Documents/CS769/Example_runs/test.txt @@ -0,0 +1,852 @@ +should i be stalking u? + +tbs/persolvo. been chasing us since sept for??38 definitely not paying now thanks to your information. we will ignore them. kath. manchester. + +"had your contract mobile 11 mnths? latest motorola +"ok. not much to do here though. h&m friday +"u wake up already? wat u doing? u picking us up later rite? i'm taking sq825 +and of course you should make a stink! + +dunno cos i was v late n when i reach they inside already... but we ate spageddies lor... it's e gals who r laughing at me lor... + +bloomberg -message center +447797706009 why wait? apply for your future http://careers. bloomberg.com + +have you had a good day? mine was really busy are you up to much tomorrow night? + +"urgent! your mobile no *********** won a ??2 +text pass to 69669 to collect your polyphonic ringtones. normal gprs charges apply only. enjoy your tones + +yes..he is really great..bhaji told kallis best cricketer after sachin in world:).very tough to get out. + +4mths half price orange line rental & latest camera phones 4 free. had your phone 11mths ? call mobilesdirect free on 08000938767 to update now! or2stoptxt + +excellent! wish we were together right now! + +a guy who gets used but is too dumb to realize it. + +private! your 2003 account statement for shows 800 un-redeemed s. i. m. points. call 08715203652 identifier code: 42810 expires 29/10/0 + +i would but i'm still cozy. and exhausted from last night.nobody went to school or work. everything is closed. + +todays voda numbers ending 5226 are selected to receive a ?350 award. if you hava a match please call 08712300220 quoting claim code 1131 standard rates app + +"congrats 2 mobile 3g videophones r yours. call 09063458130 now! videochat wid ur mates +"do 1 thing! change that sentence into: \because i want 2 concentrate in my educational career im leaving here..\""""" + +cab is available.they pick up and drop at door steps. + +sms. ac sun0819 posts hello:\you seem cool + +"i need an 8th but i'm off campus atm +no calls..messages..missed calls + +"free message activate your 500 free text messages by replying to this message with the word free for terms & conditions +do you want a new video handset? 750 any time any network mins? unlimited text? camcorder? reply or call now 08000930705 for del sat am + +sms auction you have won a nokia 7250i. this is what you get when you win our free auction. to take part send nokia to 86021 now. hg/suite342/2lands row/w1jhl 16+ + +lol! oops sorry! have fun. + +"fantasy football is back on your tv. go to sky gamestar on sky active and play ??250k dream team. scoring starts on saturday +"ditto. and you won't have to worry about me saying anything to you anymore. like i said last night +"update_now - xmas offer! latest motorola +good morning plz call me sir + +thanx 4 2day! u r a goodmate i think ur rite sary! asusual!1 u cheered me up! love u franyxxxxx + +claire here am havin borin time & am now alone u wanna cum over 2nite? chat now 09099725823 hope 2 c u luv claire xx calls??1/minmoremobsemspobox45po139wa + +"got what it takes 2 take part in the wrc rally in oz? u can with lucozade energy! text rally le to 61200 (25p) +please call our customer service representative on 0800 169 6031 between 10am-9pm as you have won a guaranteed ??1000 cash or ??5000 prize! + +dear 0776xxxxxxx u've been invited to xchat. this is our final attempt to contact u! txt chat to 86688 150p/msgrcvdhg/suite342/2lands/row/w1j6hl ldn 18yrs + +http//tms. widelive.com/index. wml?id=820554ad0a1705572711&first=true??c c ringtone?? + +reminder: you have not downloaded the content you have already paid for. goto http://doit. mymoby. tv/ to collect your content. + +or just do that 6times + +* thought i didn't see you. + +hey u still at the gym? + +"the sign of maturity is not when we start saying big things.. but actually it is +are you unique enough? find out from 30th august. www.areyouunique.co.uk + +boo. how's things? i'm back at home and a little bored already :-( + +i cant pick the phone right now. pls send a message + +"freemsg why haven't you replied to my text? i'm randy +please call 08712402578 immediately as there is an urgent message waiting for you + +you have won a guaranteed ??200 award or even ??1000 cashto claim ur award call free on 08000407165 (18+) 2 stop getstop on 88222 php + +"rock yr chik. get 100's of filthy films &xxx pics on yr phone now. rply filth to 69669. saristar ltd +"babe! how goes that day ? what are you up to ? i miss you already +this girl does not stay in bed. this girl doesn't need recovery time. id rather pass out while having fun then be cooped up in bed + +yes. it's all innocent fun. o:-) + +"okey dokey +"congrats! 1 year special cinema pass for 2 is yours. call 09061209465 now! c suprman v +"eerie nokia tones 4u +sunshine quiz wkly q! win a top sony dvd player if u know which country the algarve is in? txt ansr to 82277. ??1.50 sp:tyrone + +please call our customer service representative on 0800 169 6031 between 10am-9pm as you have won a guaranteed ??1000 cash or ??5000 prize! + +juz go google n search 4 qet... + +eastenders tv quiz. what flower does dot compare herself to? d= violet e= tulip f= lily txt d e or f to 84025 now 4 chance 2 win ??100 cash wkent/150p16+ + +1apple/day=no doctor. 1tulsi leaf/day=no cancer. 1lemon/day=no fat. 1cup milk/day=no bone problms 3 litres watr/day=no diseases snd ths 2 whom u care..:-) + +"freemsg you have been awarded a free mini digital camera +"can meh? thgt some will clash... really ah +-pls stop bootydelious (32/f) is inviting you to be her friend. reply yes-434 or no-434 see her: www.sms.ac/u/bootydelious stop? send stop frnd to 62468 + +tired. i haven't slept well the past few nights. + +"sorry +"for ur chance to win ??250 cash every wk txt: play to 83370. t's&c's www.music-trivia.net custcare 08715705022 +you'll never believe this but i have actually got off at taunton. wow + +"lol you forgot it eh ? yes +idea will soon get converted to live:) + +<#> am i think? should say on syllabus + +then ur physics get a-? + +after completed degree. there is no use in joining finance. + +yup... from what i remb... i think should be can book... + +okie ?_ wan meet at bishan? cos me at bishan now. i'm not driving today. + +"hey boys. want hot xxx pics sent direct 2 ur phone? txt porn to 69855 +join the uk's horniest dogging service and u can have sex 2nite!. just sign up and follow the instructions. txt entry to 69888 now! nyt.ec2a.3lp.msg + +oh yeah i forgot. u can only take 2 out shopping at once. + +"awesome +ard 4 lor... + +we tried to call you re your reply to our sms for a video mobile 750 mins unlimited text free camcorder reply or call now 08000930705 del thurs + +free for 1st week! no1 nokia tone 4 ur mob every week just txt nokia to 87077 get txting and tell ur mates. zed pobox 36504 w45wq norm150p/tone 16+ + +please call our customer service representative on 0800 169 6031 between 10am-9pm as you have won a guaranteed ??1000 cash or ??5000 prize! + +"win: we have a winner! mr. t. foley won an ipod! more exciting prizes soon +"do you know why god created gap between your fingers..? so that +"free2day sexy st george's day pic of jordan!txt pic to 89080 dont miss out +babe !!!! i love you !!!! *covers your face in kisses* + +"yo carlos +"as a sim subscriber +you are a winner u have been specially selected 2 receive ??1000 cash or a 4* holiday (flights inc) speak to a live operator 2 claim 0871277810810 + +k:)eng rocking in ashes:) + +(you didn't hear it from me) + +hey come online! use msn... we are all there + +hey are you angry with me. reply me dr. + +"england v macedonia - dont miss the goals/team news. txt ur national team to 87077 eg england to 87077 try:wales +"six chances to win cash! from 100 to 20 +"urgent!! your 4* costa del sol holiday or ??5000 await collection. call 09050090044 now toclaim. sae +just got up. have to be out of the room very soon. ??_. i hadn't put the clocks back til at 8 i shouted at everyone to get up and then realised it was 7. wahay. another hour in bed. + +i'm still pretty weak today .. bad day ? + +"ha. you don???t know either. i did a a clever but simple thing with pears the other day +yup but it's not giving me problems now so mayb i'll jus leave it... + +freemsg: fancy a flirt? reply date now & join the uks fastest growing mobile dating service. msgs rcvd just 25p to optout txt stop to 83021. reply date now! + +"09066362231 urgent! your mobile no 07xxxxxxxxx won a ??2 +the new deus ex game comin early next yr + +call freephone 0800 542 0578 now! + +freemsg: hey - i'm buffy. 25 and love to satisfy men. home alone feeling randy. reply 2 c my pix! qlynnbv help08700621170150p a msg send stop to stop txts + +tmr timin still da same wat cos i got lesson until 6... + +i don't know u and u don't know me. send chat to 86688 now and let's find each other! only 150p/msg rcvd. hg/suite342/2lands/row/w1j6hl ldn. 18 years or over. + +customer loyalty offer:the new nokia6650 mobile from only ??10 at txtauction! txt word: start to no: 81151 & get yours now! 4t&ctxt tc 150p/mtmsg + +"dear voucher holder +thanks for the vote. now sing along with the stars with karaoke on your mobile. for a free link just reply with sing now. + +no it will reach by 9 only. she telling she will be there. i dont know + +you are a winner u have been specially selected 2 receive ??1000 cash or a 4* holiday (flights inc) speak to a live operator 2 claim 0871277810810 + +you are awarded a sipix digital camera! call 09061221061 from landline. delivery within 28days. t cs box177. m221bp. 2yr warranty. 150ppm. 16 . p p??3.99 + +aiyar dun disturb u liao... thk u have lots 2 do aft ur cupboard come... + +are you still getting the goods. + +mobile club: choose any of the top quality items for your mobile. 7cfca1a + +"shop till u drop +"to review and keep the fantastic nokia n-gage game deck with club nokia +lol what happens in vegas stays in vegas + +hey hun-onbus goin 2 meet him. he wants 2go out 4a meal but i donyt feel like it cuz have 2 get last bus home!but hes sweet latelyxxx + +if you mean the website. yes. + +santa calling! would your little ones like a call from santa xmas eve? call 09077818151 to book you time. calls1.50ppm last 3mins 30s t&c www.santacalling.com + +yeah. i got a list with only u and joanna if i'm feeling really anti social + +this message is free. welcome to the new & improved sex & dogging club! to unsubscribe from this service reply stop. msgs 18+only + +(bank of granite issues strong-buy) explosive pick for our members *****up over 300% *********** nasdaq symbol cdgt that is a $5.00 per.. + +she.s find. i sent you an offline message to know how anjola's now. + +k go and sleep well. take rest:-). + +07732584351 - rodger burns - msg = we tried to call you re your reply to our sms for a free nokia mobile + free camcorder. please call now 08000930705 for delivery tomorrow + +buy space invaders 4 a chance 2 win orig arcade game console. press 0 for games arcade (std wap charge) see o2.co.uk/games 4 terms + settings. no purchase + +if you hear a loud scream in about <#> minutes its cause my gyno will be shoving things up me that don't belong :/ + +at the funeral home with audrey and dad + +had your mobile 11mths ? update for free to oranges latest colour camera mobiles & unlimited weekend calls. call mobile upd8 on freefone 08000839402 or 2stoptx + +speaking of does he have any cash yet? + +hi ....my engagement has been fixd on <#> th of next month. i know its really shocking bt....hmm njan vilikkam....t ws al of a sudn;-(. + +"you are being contacted by our dating service by someone you know! to find out who it is +me too! have a lovely night xxx + +we can go 4 e normal pilates after our intro... + +message important information for o2 user. today is your lucky day! 2 find out why log onto http://www.urawinner.com there is a fantastic surprise awaiting you + +"hot live fantasies call now 08707509020 just 20p per min ntt ltd +network operator. the service is free. for t & c's visit 80488.biz + +4mths half price orange line rental & latest camera phones 4 free. had your phone 11mths ? call mobilesdirect free on 08000938767 to update now! or2stoptxt + +22 days to kick off! for euro2004 u will be kept up to date with the latest news and results daily. to be removed send get txt stop to 83222 + +;-) ok. i feel like john lennon. + +free top ringtone -sub to weekly ringtone-get 1st week free-send subpoly to 81618-?3 per week-stop sms-08718727870 + +what time you thinkin of goin? + +"hungry gay guys feeling hungry and up 4 it +is there a reason we've not spoken this year? anyways have a great week and all the best in your exam + +valentines day special! win over ??1000 in our quiz and take your partner on the trip of a lifetime! send go to 83600 now. 150p/msg rcvd. custcare:08718720201. + +?? dun need to pick ur gf? + +you have 1 new voicemail. please call 08719181513. + +what happen dear tell me + +convey my regards to him + +"sorry i flaked last night +i like to talk pa but am not able to. i dont know y. + +"well the general price is <#> /oz +"urgent!! your 4* costa del sol holiday or ??5000 await collection. call 09050090044 now toclaim. sae +"beautiful tomorrow never comes.. when it comes +"500 new mobiles from 2004 +hi darlin ive just got back and i had a really nice night and thanks so much for the lift see u tomorrow xxx + +congrats! nokia 3650 video camera phone is your call 09066382422 calls cost 150ppm ave call 3mins vary from mobiles 16+ close 300603 post bcm4284 ldn wc1n3xx + +freemsg: fancy a flirt? reply date now & join the uks fastest growing mobile dating service. msgs rcvd just 25p to optout txt stop to 83021. reply date now! + +do u still have plumbers tape and a wrench we could borrow? + +"do you ever notice that when you're driving +get ur 1st ringtone free now! reply to this msg with tone. gr8 top 20 tones to your phone every week just ??1.50 per wk 2 opt out send stop 08452810071 16 + +"remember all those whom i hurt during days of satanic imposter in me.need to pay a price +?? collecting ur laptop then going to configure da settings izzit? + +private! your 2003 account statement for 07815296484 shows 800 un-redeemed s.i.m. points. call 08718738001 identifier code 41782 expires 18/11/04 + +hey leave it. not a big deal:-) take care. + +claire here am havin borin time & am now alone u wanna cum over 2nite? chat now 09099725823 hope 2 c u luv claire xx calls??1/minmoremobsemspobox45po139wa + +8007 free for 1st week! no1 nokia tone 4 ur mob every week just txt nokia to 8007 get txting and tell ur mates www.getzed.co.uk pobox 36504 w4 5wq norm 150p/tone 16+ + +"freemsg you have been awarded a free mini digital camera +serious? what like proper tongued her + +"i can. but it will tell quite long +"your free ringtone is waiting to be collected. simply text the password \mix\"" to 85069 to verify. get usher and britney. fml mk17 92h. 450ppw 16""" + +aiyah e rain like quite big leh. if drizzling i can at least run home. + +also are you bringing galileo or dobby + +que pases un buen tiempo or something like that + +no..few hours before.went to hair cut . + +really? i crashed out cuddled on my sofa. + +wherre's my boytoy ? :-( + +"urgent! your mobile no 07xxxxxxxxx won a ??2 +i want snow. it's just freezing and windy. + +promotion number: 8714714 - ur awarded a city break and could win a ??200 summer shopping spree every wk. txt store to 88039 . skilgme. tscs087147403231winawk!age16 ??1.50perwksub + +i like to think there's always the possibility of being in a pub later. + +"awesome +freemsg hi baby wow just got a new cam moby. wanna c a hot pic? or fancy a chat?im w8in 4utxt / rply chat to 82242 hlp 08712317606 msg150p 2rcv + +sos! any amount i can get pls. + +"i sent you the prices and do you mean the <#> g +4mths half price orange line rental & latest camera phones 4 free. had your phone 11mths+? call mobilesdirect free on 08000938767 to update now! or2stoptxt t&cs + +"to the wonderful okors +"do whatever you want. you know what the rules are. we had a talk earlier this week about what had to start happening +"the <#> g that i saw a few days ago +smith waste da.i wanna gayle. + +"yup +u 447801259231 have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094597 + +i just made some payments so dont have that much. sorry. would you want it fedex or the other way. + +missing you too.pray inshah allah + +08714712388 between 10am-7pm cost 10p + +as usual u can call me ard 10 smth. + +"this is the 2nd time we have tried to contact u. u have won the ??400 prize. 2 claim is easy +"urgent -call 09066649731from landline. your complimentary 4* ibiza holiday or ??10 +about <#> bucks. the banks fees are fixed. better to call the bank and find out. + +do u want 2 meet up 2morro + +tells u 2 call 09066358152 to claim ??5000 prize. u have 2 enter all ur mobile & personal details @ the prompts. careful! + +"dont give a monkeys wot they think and i certainly don't mind. any friend of mine&all that! just don't sleep wiv +"come to mu +rct' thnq adrian for u text. rgds vatian + +please attend the phone:) + +"your chance to be on a reality fantasy show call now = 08707509020 just 20p per min ntt ltd +83039 62735=??450 uk break accommodationvouchers terms & conditions apply. 2 claim you mustprovide your claim number which is 15541 + +hmm thinking lor... + +"and very importantly +congrats! nokia 3650 video camera phone is your call 09066382422 calls cost 150ppm ave call 3mins vary from mobiles 16+ close 300603 post bcm4284 ldn wc1n3xx + +"hottest pics straight to your phone!! see me getting wet and wanting +"by the way +his bday real is in april . + +do you know when the result. + +dear dave this is your final notice to collect your 4* tenerife holiday or #5000 cash award! call 09061743806 from landline. tcs sae box326 cw25wx 150ppm + +"hello my boytoy ... geeee i miss you already and i just woke up. i wish you were here in bed with me +i don't know u and u don't know me. send chat to 86688 now and let's find each other! only 150p/msg rcvd. hg/suite342/2lands/row/w1j6hl ldn. 18 years or over. + +"do you realize that in about 40 years +"hey boys. want hot xxx pics sent direct 2 ur phone? txt porn to 69855 +camera - you are awarded a sipix digital camera! call 09061221066 fromm landline. delivery within 28 days. + +my uncles in atlanta. wish you guys a great semester. + +missed call alert. these numbers called but left no message. 07008009200 + +hahaha..use your brain dear + +pleassssssseeeeee tel me v avent done sportsx + +"sure thing big man. i have hockey elections at 6 +urgent! please call 09061213237 from a landline. ??5000 cash or a 4* holiday await collection. t &cs sae po box 177 m227xy. 16+ + +"had your mobile 10 mths? update to the latest camera/video phones for free. keep ur same number +want a new video phone? 750 anytime any network mins? half price line rental free text for 3 months? reply or call 08000930705 for free delivery + +you should change your fb to jaykwon thuglyfe falconerf + +"true. it is passable. and if you get a high score and apply for phd +up to ?_... ?? wan come then come lor... but i din c any stripes skirt... + +"\urgent! this is the 2nd attempt to contact u!u have won ??1000call 09071512432 b4 300603t&csbcm4235wc1n3xx.callcost150ppmmobilesvary. max??7. 50\""""" + +i don't know u and u don't know me. send chat to 86688 now and let's find each other! only 150p/msg rcvd. hg/suite342/2lands/row/w1j6hl ldn. 18 years or over. + +"\urgent! this is the 2nd attempt to contact u!u have won ??1000call 09071512432 b4 300603t&csbcm4235wc1n3xx.callcost150ppmmobilesvary. max??7. 50\""""" + +it's ?? only $140 ard...?? rest all ard $180 at least...which is ?? price 4 ?? 2 bedrm ($900) + +we confirm eating at esplanade? + +i think i've fixed it can you send a test message? + +private! your 2003 account statement for shows 800 un-redeemed s.i.m. points. call 08718738001 identifier code: 49557 expires 26/11/04 + +good morning my dear........... have a great & successful day. + +"hello baby +if u sending her home first it's ok lor. i'm not ready yet. + +santa calling! would your little ones like a call from santa xmas eve? call 09077818151 to book you time. calls1.50ppm last 3mins 30s t&c www.santacalling.com + +had your mobile 10 mths? update to latest orange camera/video phones for free. save ??s with free texts/weekend calls. text yes for a callback orno to opt out + +"that day ?_ say ?_ cut ur hair at paragon +your next amazing xxx picsfree1 video will be sent to you enjoy! if one vid is not enough for 2day text back the keyword picsfree1 to get the next video. + +"someone u know has asked our dating service 2 contact you! cant guess who? call 09058097189 now all will be revealed. pobox 6 +urgent! your mobile number has been awarded with a ??2000 prize guaranteed. call 09061790121 from land line. claim 3030. valid 12hrs only 150ppm + +"sorry i missed you babe. i was up late and slept in. i hope you enjoy your driving lesson +book which lesson? then you msg me... i will call up after work or sth... i'm going to get specs. my membership is px3748 + +your weekly cool-mob tones are ready to download !this weeks new tones include: 1) crazy frog-axel f>>> 2) akon-lonely>>> 3) black eyed-dont p >>>more info in n + +"garbage bags +hi - this is your mailbox messaging sms alert. you have 4 messages. you have 21 matches. please call back on 09056242159 to retrieve your messages and matches + +gr8 new service - live sex video chat on your mob - see the sexiest dirtiest girls live on ur phone - 4 details text horny to 89070 to cancel send stop to 89070 + +u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094599 + +you are awarded a sipix digital camera! call 09061221061 from landline. delivery within 28days. t cs box177. m221bp. 2yr warranty. 150ppm. 16 . p p??3.99 + +i'm at work. please call + +"awesome +yup... i havent been there before... you want to go for the yoga? i can call up to book + +just now saw your message.it k da:) + +1000's of girls many local 2 u who r virgins 2 this & r ready 2 4fil ur every sexual need. can u 4fil theirs? text cute to 69911(??1.50p. m) + +ringtoneking 84484 + +txt: call to no: 86888 & claim your reward of 3 hours talk time to use from your phone now! subscribe6gbp/mnth inc 3hrs 16 stop?txtstop www.gamb.tv + +you got job in wipro:)you will get every thing in life in 2 or 3 years. + +i had it already..sabarish asked me to go.. + +todays voda numbers ending 7548 are selected to receive a $350 award. if you have a match please call 08712300220 quoting claim code 4041 standard rates app + +"free nokia or motorola with upto 12mths 1/2price linerental +reply to win ??100 weekly! what professional sport does tiger woods play? send stop to 87239 to end service + +"urgent! call 09066350750 from your landline. your complimentary 4* ibiza holiday or 10 +"spook up your mob with a halloween collection of a logo & pic message plus a free eerie tone +want explicit sex in 30 secs? ring 02073162414 now! costs 20p/min gsex pobox 2667 wc1n 3xx + +"well imma definitely need to restock before thanksgiving +omg how did u know what i ate? + +where wuld i be without my baby? the thought alone mite break me and i don??t wanna go crazy but everyboy needs his lady xxxxxxxx + +gent! we are trying to contact you. last weekends draw shows that you won a ??1000 prize guaranteed. call 09064012160. claim code k52. valid 12hrs only. 150ppm + +guess what! somebody you know secretly fancies you! wanna find out who it is? give us a call on 09065394514 from landline datebox1282essexcm61xn 150p/min 18 + +"awesome +you have won a guaranteed ??1000 cash or a ??2000 prize. to claim yr prize call our customer service representative on 08714712412 between 10am-7pm cost 10p + +"my sister in law +thanks honey but still haven't heard anything i will leave it a bit longer so not 2 crowd him and will try later - great advice thanks hope cardiff is still there! + +please call 08712402902 immediately as there is an urgent message waiting for you. + +lord of the rings:return of the king in store now!reply lotr by 2 june 4 chance 2 win lotr soundtrack cds stdtxtrate. reply stop to end txts + +"as a valued customer +"urgent! your mobile no 077xxx won a ??2 +"spook up your mob with a halloween collection of a logo & pic message plus a free eerie tone +message important information for o2 user. today is your lucky day! 2 find out why log onto http://www.urawinner.com there is a fantastic surprise awaiting you + +"mila +private! your 2003 account statement for shows 800 un-redeemed s.i.m. points. call 08715203685 identifier code:4xx26 expires 13/10/04 + +am also doing in cbe only. but have to pay. + +from next month get upto 50% more calls 4 ur standard network charge 2 activate call 9061100010 c wire3.net 1st4terms pobox84 m26 3uz cost ??1.50 min mobcudb more + +1 in cbe. 2 in chennai. + +carlos'll be here in a minute if you still need to buy + +"ur balance is now ??600. next question: complete the landmark +"welcome to select +"its ok. +wah lucky man... then can save money... hee... + +i have to take exam with in march 3 + +"u so lousy +lol or i could just starve and lose a pound by the end of the day. + +someone u know has asked our dating service 2 contact you! cant guess who? call 09058091854 now all will be revealed. po box385 m6 6wu + +"wan2 win a meet+greet with westlife 4 u or a m8? they are currently on what tour? 1)unbreakable +no. 1 nokia tone 4 ur mob every week! just txt nok to 87021. 1st tone free ! so get txtin now and tell ur friends. 150p/tone. 16 reply hl 4info + +"as usual..iam fine +sms auction you have won a nokia 7250i. this is what you get when you win our free auction. to take part send nokia to 86021 now. hg/suite342/2lands row/w1jhl 16+ + +you are a winner u have been specially selected 2 receive ??1000 cash or a 4* holiday (flights inc) speak to a live operator 2 claim 0871277810810 + +claire here am havin borin time & am now alone u wanna cum over 2nite? chat now 09099725823 hope 2 c u luv claire xx calls??1/minmoremobsemspobox45po139wa + +tbs/persolvo. been chasing us since sept for??38 definitely not paying now thanks to your information. we will ignore them. kath. manchester. + +"final chance! claim ur ??150 worth of discount vouchers today! text yes to 85023 now! savamob +tmrw. im finishing 9 doors + +moby pub quiz.win a ??100 high street prize if u know who the new duchess of cornwall will be? txt her first name to 82277.unsub stop ??1.50 008704050406 sp + +shall i bring us a bottle of wine to keep us amused? only joking! i???ll bring one anyway + +"its ok +"aight text me when you're back at mu and i'll swing by +congratulations u can claim 2 vip row a tickets 2 c blu in concert in november or blu gift guaranteed call 09061104276 to claim ts&cs www.smsco.net cost??3.75max + +it means u could not keep ur words. + +k do i need a login or anything + +come aftr <decimal> ..now i m cleaning the house + +get your garden ready for summer with a free selection of summer bulbs and seeds worth ??33:50 only with the scotsman this saturday. to stop go2 notxt.co.uk + +this message is brought to you by gmw ltd. and is not connected to the + +gsoh? good with spam the ladies?u could b a male gigolo? 2 join the uk's fastest growing mens club reply oncall. mjzgroup. 08714342399.2stop reply stop. msg@??1.50rcvd + +"\happy valentines day\"" i know its early but i have hundreds of handsomes and beauties to wish. so i thought to finish off aunties and uncles 1st...""" + +free for 1st week! no1 nokia tone 4 ur mobile every week just txt nokia to 8077 get txting and tell ur mates. www.getzed.co.uk pobox 36504 w45wq 16+ norm150p/tone + +you are now unsubscribed all services. get tons of sexy babes or hunks straight to your phone! go to http://gotbabes.co.uk. no subscriptions. + +not heard from u4 a while. call 4 rude chat private line 01223585334 to cum. wan 2c pics of me gettin shagged then text pix to 8552. 2end send stop 8552 sam xxx + +private! your 2003 account statement for 07753741225 shows 800 un-redeemed s. i. m. points. call 08715203677 identifier code: 42478 expires 24/10/04 + +"call 09094100151 to use ur mins! calls cast 10p/min (mob vary). service provided by aom +get a brand new mobile phone by being an agent of the mob! plus loads more goodies! for more info just text mat to 87021. + +"hiya +camera - you are awarded a sipix digital camera! call 09061221066 fromm landline. delivery within 28 days. + +"hmm ++123 congratulations - in this week's competition draw u have won the ??1450 prize to claim just call 09050002311 b4280703. t&cs/stop sms 08718727868. over 18 only 150ppm + +natalja (25/f) is inviting you to be her friend. reply yes-440 or no-440 see her: www.sms.ac/u/nat27081980 stop? send stop frnd to 62468 + +"gosh that +i am going to sao mu today. will be done only at 12 + +i uploaded mine to facebook + +double mins & double txt & 1/2 price linerental on latest orange bluetooth mobiles. call mobileupd8 for the very latest offers. 08000839402 or call2optout/lf56 + +"hi the way i was with u 2day +excellent! are you ready to moan and scream in ecstasy? + +urgent! your mobile number has been awarded with a ??2000 prize guaranteed. call 09061790121 from land line. claim 3030. valid 12hrs only 150ppm + +guess what! somebody you know secretly fancies you! wanna find out who it is? give us a call on 09065394514 from landline datebox1282essexcm61xn 150p/min 18 + +no plans yet. what are you doing ? + +"hot live fantasies call now 08707500020 just 20p per min ntt ltd +"sms services. for your inclusive text credits +"as i entered my cabin my pa said +i place all ur points on e cultures module already. + +cds 4u: congratulations ur awarded ??500 of cd gift vouchers or ??125 gift guaranteed & freeentry 2 ??100 wkly draw xt music to 87066 tncs www.ldew.com1win150ppmx3age16 + +"watching cartoon +morning only i can ok. + +"sunshine hols. to claim ur med holiday send a stamped self address envelope to drinks on us uk +i dont want to hear anything + +would u fuckin believe it they didnt know i had thurs pre booked off so they re cancelled me again! that needs to b sacked + +you are chosen to receive a ??350 award! pls call claim number 09066364311 to collect your award which you are selected to receive as a valued mobile customer. + +"freemsg why haven't you replied to my text? i'm randy +i fetch yun or u fetch? + +u have a secret admirer. reveal who thinks u r so special. call 09065174042. to opt out reply reveal stop. 1.50 per msg recd. cust care 07821230901 + +my stomach has been thru so much trauma i swear i just can't eat. i better lose weight. + +"sppok up ur mob with a halloween collection of nokia logo&pic message plus a free eerie tone +i will come tomorrow di + +free for 1st week! no1 nokia tone 4 ur mobile every week just txt nokia to 8077 get txting and tell ur mates. www.getzed.co.uk pobox 36504 w45wq 16+ norm150p/tone + +another month. i need chocolate weed and alcohol. + +no he didn't. spring is coming early yay! + +i anything lor. + +great news! call freefone 08006344447 to claim your guaranteed ??1000 cash or ??2000 gift. speak to a live operator now! + +i'm freezing and craving ice. fml + +i calls you later. afternoon onwords mtnl service get problem in south mumbai. i can hear you but you cann't listen me. + +"imagine you finally get to sink into that bath after i have put you through your paces +it just seems like weird timing that the night that all you and g want is for me to come smoke is the same day as when a shitstorm is attributed to me always coming over and making everyone smoke + +jamster! to get your free wallpaper text heart to 88888 now! t&c apply. 16 only. need help? call 08701213186. + +got but got 2 colours lor. one colour is quite light n e other is darker lor. actually i'm done she's styling my hair now. + +pathaya enketa maraikara pa' + +"this weeks savamob member offers are now accessible. just call 08709501522 for details! savamob +i don wake since. i checked that stuff and saw that its true no available spaces. pls call the embassy or send a mail to them. + +alright took the morphine. back in yo. + +no drama pls.i have had enough from you and family while i am struggling in the hot sun in a strange place.no reason why there should be an ego of not going 'if not invited' when actually its necessity to go.wait for very serious reppurcussions. + +"can you please ask macho what his price range is +where is that one day training:-) + +"aight +urgent! your mobile number has been awarded a 2000 prize guaranteed. call 09061790125 from landline. claim 3030. valid 12hrs only 150ppm + +u ned to convince him tht its not possible witot hurting his feeling its the main + +"urgent! call 09066350750 from your landline. your complimentary 4* ibiza holiday or 10 +recpt 1/3. you have ordered a ringtone. your order is being processed... + +that's y u haf 2 keep me busy... + +had your mobile 11mths ? update for free to oranges latest colour camera mobiles & unlimited weekend calls. call mobile upd8 on freefone 08000839402 or 2stoptxt + +armand says get your ass over to epsilon + +ok... + +please call 08712402972 immediately as there is an urgent message waiting for you + +i will reach ur home in <#> minutes + +am going to take bath ill place the key in window:-) + +"upgrdcentre orange customer +we tried to contact you re your response to our offer of a new nokia fone and camcorder hit reply or call 08000930705 for delivery + +december only! had your mobile 11mths+? you are entitled to update to the latest colour camera mobile for free! call the mobile update co free on 08002986906 + +"that's cool +thanks for ve lovely wisheds. you rock + +congrats! nokia 3650 video camera phone is your call 09066382422 calls cost 150ppm ave call 3mins vary from mobiles 16+ close 300603 post bcm4284 ldn wc1n3xx + +u meet other fren dun wan meet me ah... muz b a guy rite... + +you have won a guaranteed ??200 award or even ??1000 cashto claim ur award call free on 08000407165 (18+) 2 stop getstop on 88222 php. rg21 4jx + +"tddnewsletter.co.uk (more games from thedailydraw) dear helen +that's cause your old. i live to be high. + +we tried to contact you re your reply to our offer of 750 mins 150 textand a new video phone call 08002988890 now or reply for free delivery tomorrow + +we'll join the <#> bus + +"call me. i m unable to cal. lets meet bhaskar +"hiya +private! your 2003 account statement for 07808 xxxxxx shows 800 un-redeemed s. i. m. points. call 08719899217 identifier code: 41685 expires 07/11/04 + +sexy singles are waiting for you! text your age followed by your gender as wither m or f e.g.23f. for gay men text your age followed by a g. e.g.23g. + +urgent ur ??500 guaranteed award is still unclaimed! call 09066368327 now closingdate04/09/02 claimcode m39m51 ??1.50pmmorefrommobile2bremoved-mobypobox734ls27yf + +"customer service announcement. we recently tried to make a delivery to you but were unable to do so +cheers for the card ... is it that time of year already? + +i know but you need to get hotel now. i just got my invitation but i had to apologise. cali is to sweet for me to come to some english bloke's weddin + +"win: we have a winner! mr. t. foley won an ipod! more exciting prizes soon +interflora - ??it's not too late to order interflora flowers for christmas call 0800 505060 to place your order before midnight tomorrow. + +i will vote for wherever my heart guides me + +get the official england poly ringtone or colour flag on yer mobile for tonights game! text tone or flag to 84199. optout txt eng stop box39822 w111wx ??1.50 + +"for ur chance to win a ??250 cash every wk txt: action to 80608. t's&c's www.movietrivia.tv custcare 08712405022 +"gumby's has a special where a <#> \ cheese pizza is $2 so i know what we're doin tonight""" + +i hope your pee burns tonite. + +i didnt get anything da + +want explicit sex in 30 secs? ring 02073162414 now! costs 20p/min + +hey i will be late ah... meet you at 945+ + +no. 1 nokia tone 4 ur mob every week! just txt nok to 87021. 1st tone free ! so get txtin now and tell ur friends. 150p/tone. 16 reply hl 4info + +"welcome to uk-mobile-date this msg is free giving you free calling to 08719839835. future mgs billed at 150p daily. to cancel send \go stop\"" to 89123""" + +"hi ya babe x u 4goten bout me?' scammers getting smart..though this is a regular vodafone no +"complimentary 4 star ibiza holiday or ??10 +we tried to contact you re your reply to our offer of a video handset? 750 anytime any networks mins? unlimited text? camcorder? reply or call 08000930705 now + +ree entry in 2 a weekly comp for a chance to win an ipod. txt pod to 80182 to get entry (std txt rate) t&c's apply 08452810073 for details 18+ + +lol yeah at this point i guess not + +yes. i come to nyc for audiitions and am trying to relocate. + +mmm ... fuck .... merry christmas to me + +"dear voucher holder +i might come to kerala for 2 days.so you can be prepared to take a leave once i finalise .dont plan any travel during my visit.need to finish urgent works. + +heart is empty without love.. mind is empty without wisdom.. eyes r empty without dreams & life is empty without frnds.. so alwys be in touch. good night & sweet dreams + +t-mobile customer you may now claim your free camera phone upgrade & a pay & go sim card for your loyalty. call on 0845 021 3680.offer ends 28thfeb.t&c's apply + +18 days to euro2004 kickoff! u will be kept informed of all the latest news and results daily. unsubscribe send get euro stop to 83222. + +themob>yo yo yo-here comes a new selection of hot downloads for our members to get for free! just click & open the next link sent to ur fone... + +honestly i've just made a lovely cup of tea and promptly dropped my keys in it and then burnt my fingers getting them out! + +"hey boys. want hot xxx pics sent direct 2 ur phone? txt porn to 69855 +text & meet someone sexy today. u can find a date or even flirt its up to u. join 4 just 10p. reply with name & age eg sam 25. 18 -msg recd pence + +join the uk's horniest dogging service and u can have sex 2nite!. just sign up and follow the instructions. txt entry to 69888 now! nyt.ec2a.3lp.msg + +"welcome to select +"night has ended for another day +dip's cell dead. so i m coming with him. u better respond else we shall come back. + +"hot live fantasies call now 08707500020 just 20p per min ntt ltd +"this is the 2nd time we have tried 2 contact u. u have won the 750 pound prize. 2 claim is easy +"urgent urgent! we have 800 free flights to europe to give away +k. i will sent it again + +customer loyalty offer:the new nokia6650 mobile from only ??10 at txtauction! txt word: start to no: 81151 & get yours now! 4t&ctxt tc 150p/mtmsg + +no probably <#> %. + +fine. do you remember me. + +sunshine quiz wkly q! win a top sony dvd player if u know which country the algarve is in? txt ansr to 82277. ??1.50 sp:tyrone + +you still around? looking to pick up later + +"had your contract mobile 11 mnths? latest motorola +free top ringtone -sub to weekly ringtone-get 1st week free-send subpoly to 81618-?3 per week-stop sms-08718727870 + +"she is our sister.. she belongs 2 our family.. she is d hope of tomorrow.. pray 4 her +hope you are feeling great. pls fill me in. abiola + +freemsg:feelin kinda lnly hope u like 2 keep me company! jst got a cam moby wanna c my pic?txt or reply date to 82242 msg150p 2rcv hlp 08712317606 stop to 82242 + +"ya they are well and fine. +aiyo please ?_ got time meh. + +"congrats! 2 mobile 3g videophones r yours. call 09063458130 now! videochat wid your mates +1st wk free! gr8 tones str8 2 u each wk. txt nokia on to 8007 for classic nokia tones or hit on to 8007 for polys. nokia/150p poly/200p 16+ + +show ur colours! euro 2004 2-4-1 offer! get an england flag & 3lions tone on ur phone! click on the following service message for info! + +sent me ur email id soon + +"actually fuck that +freemsg: our records indicate you may be entitled to 3750 pounds for the accident you had. to claim for free reply with yes to this msg. to opt out text stop + +yay! you better not have told that to 5 other girls either. + +important information 4 orange user 0789xxxxxxx. today is your lucky day!2find out why log onto http://www.urawinner.com there's a fantastic surprise awaiting you! + +hi i'm sue. i am 20 years old and work as a lapdancer. i love sex. text me live - i'm i my bedroom now. text sue to 89555. by textoperator g2 1da 150ppmsg 18+ + +wa... u so efficient... gee... thanx... + +oi. ami parchi na re. kicchu kaaj korte iccha korche na. phone ta tul na. plz. plz. + +"japanese proverb: if one can do it +?? takin linear algebra today? + +adult 18 content your video will be with you shortly + +ok then u tell me wat time u coming later lor. + +then u going ikea str aft dat? + +s...i will take mokka players only:) + +"i don't have anybody's number +dear voucher holder 2 claim your 1st class airport lounge passes when using your holiday voucher call 08704439680. when booking quote 1st class x 2 + +todays voda numbers ending with 7634 are selected to receive a ??350 reward. if you have a match please call 08712300220 quoting claim code 7684 standard rates apply. + +ok i've sent u da latest version of da project. + +"once a fishrman woke early in d mrng. it was very dark. he waited a while & found a sack ful of stones. he strtd throwin thm in2 d sea 2 pass time. atlast he had jus 1stone +hey no i ad a crap nite was borin without ya 2 boggy with me u boring biatch! thanx but u wait til nxt time il ave ya + +"mila +i want to tell you how bad i feel that basically the only times i text you lately are when i need drugs + +"you are being contacted by our dating service by someone you know! to find out who it is +"sorry +guess what! somebody you know secretly fancies you! wanna find out who it is? give us a call on 09065394514 from landline datebox1282essexcm61xn 150p/min 18 + +i dont know oh. hopefully this month. + +"me also da +does cinema plus drink appeal tomo? * is a fr thriller by director i like on at mac at 8.30. + +get your garden ready for summer with a free selection of summer bulbs and seeds worth ??33:50 only with the scotsman this saturday. to stop go2 notxt.co.uk + +"ta-daaaaa! i am home babe +"free message activate your 500 free text messages by replying to this message with the word free for terms & conditions +"your free ringtone is waiting to be collected. simply text the password \mix\"" to 85069 to verify. get usher and britney. fml mk17 92h. 450ppw 16""" + +"u r subscribed 2 textcomp 250 wkly comp. 1st wk?s free question follows +83039 62735=??450 uk break accommodationvouchers terms & conditions apply. 2 claim you mustprovide your claim number which is 15541 + +"i???ll leave around four +"oh ! a half hour is much longer in syria than canada +ok lor... + +"shop till u drop diff --git a/notebooks/SMS_SPAM/LFs/sms/home/aziz/Documents/CS769/Example_runs/val.txt b/notebooks/SMS_SPAM/LFs/sms/home/aziz/Documents/CS769/Example_runs/val.txt new file mode 100644 index 0000000..c0532e7 --- /dev/null +++ b/notebooks/SMS_SPAM/LFs/sms/home/aziz/Documents/CS769/Example_runs/val.txt @@ -0,0 +1,807 @@ +reminder: you have not downloaded the content you have already paid for. goto http://doit. mymoby. tv/ to collect your content. + +dont put your phone on silent mode ok + +go where n buy? juz buy when we get there lar. + +free for 1st week! no1 nokia tone 4 ur mobile every week just txt nokia to 8077 get txting and tell ur mates. www.getzed.co.uk pobox 36504 w45wq 16+ norm150p/tone + +:-) :-) + +"i jus hope its true that missin me cos i'm really missin him! you haven't done anything to feel guilty about +"urgent! call 09061749602 from landline. your complimentary 4* tenerife holiday or ??10 +74355 xmas iscoming & ur awarded either ??500 cd gift vouchers & free entry 2 r ??100 weekly draw txt music to 87066 tnc + +he is a womdarfull actor + +send me yetty's number pls. + +"oh... haha... den we shld had went today too... gee +private! your 2003 account statement for shows 800 un-redeemed s. i. m. points. call 08718738002 identifier code: 48922 expires 21/11/04 + +ur awarded a city break and could win a ??200 summer shopping spree every wk. txt store to 88039 . skilgme. tscs087147403231winawk!age16 ??1.50perwksub + +"1000's flirting now! txt girl or bloke & ur name & age +this is the 2nd time we have tried to contact u. u have won the ??1450 prize to claim just call 09053750005 b4 310303. t&cs/stop sms 08718725756. 140ppm + +collect your valentine's weekend to paris inc flight & hotel + ??200 prize guaranteed! text: paris to no: 69101. www.rtf.sphosting.com + +i'm on the bus. love you + +yes its possible but dint try. pls dont tell to any one k + +"you ve won! your 4* costa del sol holiday or ??5000 await collection. call 09050090044 now toclaim. sae +wanna have a laugh? try chit-chat on your mobile now! logon by txting the word: chat and send it to no: 8883 cm po box 4217 london w1a 6zf 16+ 118p/msg rcvd + +"win: we have a winner! mr. t. foley won an ipod! more exciting prizes soon +ok... ur typical reply... + +todays vodafone numbers ending with 4882 are selected to a receive a ??350 award. if your number matches call 09064019014 to receive your ??350 award. + +you are a winner u have been specially selected 2 receive ??1000 or a 4* holiday (flights inc) speak to a live operator 2 claim 0871277810910p/min (18+) + +please call 08712402902 immediately as there is an urgent message waiting for you. + +huh i cant thk of more oredi how many pages do we have? + +"nope +"congrats 2 mobile 3g videophones r yours. call 09063458130 now! videochat wid ur mates +gr8 new service - live sex video chat on your mob - see the sexiest dirtiest girls live on ur phone - 4 details text horny to 89070 to cancel send stop to 89070 + +500 free text msgs. just text ok to 80488 and we'll credit your account + +you should get more chicken broth if you want ramen unless there's some i don't know about + +natalja (25/f) is inviting you to be her friend. reply yes-440 or no-440 see her: www.sms.ac/u/nat27081980 stop? send stop frnd to 62468 + +romcapspam everyone around should be responding well to your presence since you are so warm and outgoing. you are bringing in a real breath of sunshine. + +my planning usually stops at \find hella weed + +baaaaabe! i misss youuuuu ! where are you ? i have to go and teach my class at 5 ... + +i dont have that much image in class. + +o i played smash bros <#> religiously. + +"want to funk up ur fone with a weekly new tone reply tones2u 2 this text. www.ringtones.co.uk +private! your 2004 account statement for 078498****7 shows 786 unredeemed bonus points. to claim call 08719180219 identifier code: 45239 expires 06.05.05 + +y lei? + +you are chosen to receive a ??350 award! pls call claim number 09066364311 to collect your award which you are selected to receive as a valued mobile customer. + +"k i'll head out in a few mins +"sunshine hols. to claim ur med holiday send a stamped self address envelope to drinks on us uk +your unique user id is 1172. for removal send stop to 87239 customer services 08708034412 + +then any special there? + +buy space invaders 4 a chance 2 win orig arcade game console. press 0 for games arcade (std wap charge) see o2.co.uk/games 4 terms + settings. no purchase + +yunny... i'm goin to be late + +ok... + +congrats! nokia 3650 video camera phone is your call 09066382422 calls cost 150ppm ave call 3mins vary from mobiles 16+ close 300603 post bcm4284 ldn wc1n3xx + +hows the street where the end of library walk is? + +if we win its really no 1 side for long time. + +lol now i'm after that hot air balloon! + +"for ur chance to win a ??250 wkly shopping spree txt: shop to 80878. t's&c's www.txt-2-shop.com custcare 08715705022 +are you coming to day for class. + +i know that my friend already told that. + +you won't believe it but it's true. it's incredible txts! reply g now to learn truly amazing things that will blow your mind. from o2fwd only 18p/txt + +win a year supply of cds 4 a store of ur choice worth ??500 & enter our ??100 weekly draw txt music to 87066 ts&cs www.ldew.com.subs16+1win150ppmx3 + +send a logo 2 ur lover - 2 names joined by a heart. txt love name1 name2 mobno eg love adam eve 07123456789 to 87077 yahoo! pobox36504w45wq txtno 4 no ads 150p + +you have an important customer service announcement. call freephone 0800 542 0825 now! + +"you've won tkts to the euro2004 cup final or ??800 cash +wat time do u wan 2 meet me later? + +"storming msg: wen u lift d phne +money i have won wining number 946 wot do i do next + +"awesome +hey now am free you can call me. + +i am great! how are you? + +pls speak to that customer machan. + +"twinks +you have won a guaranteed ??200 award or even ??1000 cashto claim ur award call free on 08000407165 (18+) 2 stop getstop on 88222 php + +buy space invaders 4 a chance 2 win orig arcade game console. press 0 for games arcade (std wap charge) see o2.co.uk/games 4 terms + settings. no purchase + +if i die i want u to have all my stuffs. + +double your mins & txts on orange or 1/2 price linerental - motorola and sonyericsson with b/tooth free-nokia free call mobileupd8 on 08000839402 or2optout/hv9d + +thanks for your subscription to ringtone uk your mobile will be charged ??5/month please confirm by replying yes or no. if you reply no you will not be charged + +"i got like $ <#> +"under the sea +great new offer - double mins & double txt on best orange tariffs and get latest camera phones 4 free! call mobileupd8 free on 08000839402 now! or 2stoptxt t&cs + +ok i msg u b4 i leave my house. + +we tried to contact you re your reply to our offer of a video handset? 750 anytime networks mins? unlimited text? camcorder? reply or call 08000930705 now + +okmail: dear dave this is your final notice to collect your 4* tenerife holiday or #5000 cash award! call 09061743806 from landline. tcs sae box326 cw25wx 150ppm + +"come to me ++123 congratulations - in this week's competition draw u have won the ??1450 prize to claim just call 09050002311 b4280703. t&cs/stop sms 08718727868. over 18 only 150ppm + +you have won a nokia 7250i. this is what you get when you win our free auction. to take part send nokia to 86021 now. hg/suite342/2lands row/w1jhl 16+ + +"our dating service has been asked 2 contact u by someone shy! call 09058091870 now all will be revealed. pobox84 +macha dont feel upset.i can assume your mindset.believe me one evening with me and i have some wonderful plans for both of us.let life begin again.call me anytime + +"sorry battery died +if you were/are free i can give. otherwise nalla adi entey nattil kittum + +we don call like <#> times oh. no give us hypertension oh. + +"hello from orange. for 1 month's free access to games +sorry im stil fucked after last nite went tobed at 430 got up 4 work at 630 + +prakesh is there know. + +am i the only one who doesn't stalk profiles? + +oh for fuck's sake she's in like tallahassee + +email alertfrom: jeri stewartsize: 2kbsubject: low-cost prescripiton drvgsto listen to email call 123 + +aathi..where are you dear.. + +freemsg: hey - i'm buffy. 25 and love to satisfy men. home alone feeling randy. reply 2 c my pix! qlynnbv help08700621170150p a msg send stop to stop txts + +lemme know when you're here + +"hack chat. get backdoor entry into 121 chat rooms at a fraction of the cost. reply neo69 or call 09050280520 +there's someone here that has a year <#> toyota camry like mr olayiwola's own. mileage is <#> k.its clean but i need to know how much will it sell for. if i can raise the dough for it how soon after landing will it sell. holla back. + +"this is the 2nd time we have tried 2 contact u. u have won the 750 pound prize. 2 claim is easy +you won't believe it but it's true. it's incredible txts! reply g now to learn truly amazing things that will blow your mind. from o2fwd only 18p/txt + +3. you have received your mobile content. enjoy + +oh baby of the house. how come you dont have any new pictures on facebook + +"last chance! claim ur ??150 worth of discount vouchers today! text shop to 85023 now! savamob +"today's offer! claim ur ??150 worth of discount vouchers! text yes to 85023 now! savamob +where's mummy's boy ? is he being good or bad ? is he being positive or negative ? why is mummy being made to wait? hmmmm? + +text pass to 69669 to collect your polyphonic ringtones. normal gprs charges apply only. enjoy your tones + +"sorry +"you are guaranteed the latest nokia phone +alrite sam its nic just checkin that this is ur number-so is it?t.b* + +were gonna go get some tacos + +dear subscriber ur draw 4 ??100 gift voucher will b entered on receipt of a correct ans. when was elvis presleys birthday? txt answer to 80062 + +"okay +i love working from home :) + +"urgent! your mobile no was awarded a ??2 +sexy singles are waiting for you! text your age followed by your gender as wither m or f e.g.23f. for gay men text your age followed by a g. e.g.23g. + +"hi +u have won a nokia 6230 plus a free digital camera. this is what u get when u win our free auction. to take part send nokia to 83383 now. pobox114/14tcr/w1 16 + +had your mobile 11 months or more? u r entitled to update to the latest colour mobiles with camera for free! call the mobile update co free on 08002986030 + +"wn u r hurt by d prsn who s close 2 u +"we know someone who you know that fancies you. call 09058097218 to find out who. pobox 6 +"7 wonders in my world 7th you 6th ur style 5th ur smile 4th ur personality 3rd ur nature 2nd ur sms and 1st \ur lovely friendship\""... good morning dear""" + +"goal! arsenal 4 (henry +camera - you are awarded a sipix digital camera! call 09061221066 fromm landline. delivery within 28 days + +how r ?_ going to send it to me? + +hey are we going for the lo lesson or gym? + +wamma get laid?want real doggin locations sent direct to your mobile? join the uks largest dogging network. txt dogs to 69696 now!nyt. ec2a. 3lp ??1.50/msg. + +eastenders tv quiz. what flower does dot compare herself to? d= violet e= tulip f= lily txt d e or f to 84025 now 4 chance 2 win ??100 cash wkent/150p16+ + +"shop till u drop +"a boy was late 2 home. his father: \power of frndship\""""" + +you are being ripped off! get your mobile content from www.clubmoby.com call 08717509990 poly/true/pix/ringtones/games six downloads for only 3 + +"urgent urgent! we have 800 free flights to europe to give away +i am late. i will be there at + +s:)but he had some luck.2 catches put down:) + +"she said +hi 07734396839 ibh customer loyalty offer: the new nokia6600 mobile from only ??10 at txtauction!txt word:start to no:81151 & get yours now!4t& + +i want to be inside you every night... + +urgent! we are trying to contact you. last weekends draw shows that you have won a ??900 prize guaranteed. call 09061701851. claim code k61. valid 12hours only + +"not sure yet +come by our room at some point so we can iron out the plan for this weekend + +"your chance to be on a reality fantasy show call now = 08707509020 just 20p per min ntt ltd +"plz note: if anyone calling from a mobile co. & asks u to type # <#> or # <#> . do not do so. disconnect the call +call 09095350301 and send our girls into erotic ecstacy. just 60p/min. to stop texts call 08712460324 (nat rate) + +i can't make it tonight + +haf u eaten? wat time u wan me 2 come? + +are you staying in town ? + +u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09065171142-stopsms-08 + +"urgent! your mobile no *********** won a ??2 +gud mrng dear hav a nice day + +no..he joined today itself. + +glad to see your reply. + +sorry! u can not unsubscribe yet. the mob offer package has a min term of 54 weeks> pls resubmit request after expiry. reply themob help 4 more info + +a ??400 xmas reward is waiting for you! our computer has randomly picked you from our loyal mobile customers to receive a ??400 reward. just call 09066380611 + +i'm fine. hope you are good. do take care. + +urgent ur ??500 guaranteed award is still unclaimed! call 09066368327 now closingdate04/09/02 claimcode m39m51 ??1.50pmmorefrommobile2bremoved-mobypobox734ls27yf + +"said kiss +"urgent! please call 0906346330. your abta complimentary 4* spanish holiday or ??10 +"sir goodmorning +asked 3mobile if 0870 chatlines inclu in free mins. india cust servs sed yes. l8er got mega bill. 3 dont giv a shit. bailiff due in days. i o ??250 3 want ??800 + +ur awarded a city break and could win a ??200 summer shopping spree every wk. txt store to 88039 . skilgme. tscs087147403231winawk!age16 ??1.50perwksub + +hello darlin ive finished college now so txt me when u finish if u can love kate xxx + +http//tms. widelive.com/index. wml?id=820554ad0a1705572711&first=true??c c ringtone?? + +well boy am i glad g wasted all night at applebees for nothing + +ok.ok ok..then..whats ur todays plan + +no 1 polyphonic tone 4 ur mob every week! just txt pt2 to 87575. 1st tone free ! so get txtin now and tell ur friends. 150p/tone. 16 reply hl 4info + +loans for any purpose even if you have bad credit! tenants welcome. call noworriesloans.com on 08717111821 + +hcl chennai requires freshers for voice process.excellent english needed.salary upto <#> .call ms.suman <#> for telephonic interview -via indyarocks.com + +private! your 2003 account statement for shows 800 un-redeemed s.i.m. points. call 08718738001 identifier code: 49557 expires 26/11/04 + +u sleeping now.. or you going to take? haha.. i got spys wat.. me online checking n replying mails lor.. + +bloomberg -message center +447797706009 why wait? apply for your future http://careers. bloomberg.com + +win a year supply of cds 4 a store of ur choice worth ??500 & enter our ??100 weekly draw txt music to 87066 ts&cs www.ldew.com.subs16+1win150ppmx3 + +let me know how to contact you. i've you settled in a room. lets know you are ok. + +"aldrine +so why didnt you holla? + +ringtoneking 84484 + +and i don't plan on staying the night but i prolly won't be back til late + +crazy ar he's married. ?? like gd looking guys not me. my frens like say he's korean leona's fave but i dun thk he is. aft some thinking mayb most prob i'll go. + +urgent! we are trying to contact u. todays draw shows that you have won a ??800 prize guaranteed. call 09050003091 from land line. claim c52. valid12hrs only + +no. 1 nokia tone 4 ur mob every week! just txt nok to 87021. 1st tone free ! so get txtin now and tell ur friends. 150p/tone. 16 reply hl 4info + +good morning princess! how are you? + +sports fans - get the latest sports news str* 2 ur mobile 1 wk free plus a free tone txt sport on to 8007 www.getzed.co.uk 0870141701216+ norm 4txt/120p + +urgent! please call 09061213237 from a landline. ??5000 cash or a 4* holiday await collection. t &cs sae po box 177 m227xy. 16+ + +as one of our registered subscribers u can enter the draw 4 a 100 g.b. gift voucher by replying with enter. to unsubscribe text stop + +get the official england poly ringtone or colour flag on yer mobile for tonights game! text tone or flag to 84199. optout txt eng stop box39822 w111wx ??1.50 + +can u get 2 phone now? i wanna chat 2 set up meet call me now on 09096102316 u can cum here 2moro luv jane xx calls??1/minmoremobsemspobox45po139wa + +"last chance! claim ur ??150 worth of discount vouchers today! text shop to 85023 now! savamob +its sarcasm.. .nt scarcasim + +can... i'm free... + +"today's offer! claim ur ??150 worth of discount vouchers! text yes to 85023 now! savamob +dear i am not denying your words please + +"orange customer +"u can win ??100 of music gift vouchers every week starting now txt the word draw to 87066 tscs www.idew.com skillgame +camera - you are awarded a sipix digital camera! call 09061221066 fromm landline. delivery within 28 days + +ok i thk i got it. then u wan me 2 come now or wat? + +"last chance! claim ur ??150 worth of discount vouchers today! text shop to 85023 now! savamob +hi if ur lookin 4 saucy daytime fun wiv busty married woman am free all next week chat now 2 sort time 09099726429 janinexx calls??1/minmobsmorelkpobox177hp51fl + +nvm... i'm going to wear my sport shoes anyway... i'm going to be late leh. + +"1000's flirting now! txt girl or bloke & ur name & age +private! your 2003 account statement for 07753741225 shows 800 un-redeemed s. i. m. points. call 08715203677 identifier code: 42478 expires 24/10/04 + +pls send me your address sir. + +"not really dude +"text me when you get off +cashbin.co.uk (get lots of cash this weekend!) www.cashbin.co.uk dear welcome to the weekend we have got our biggest and best ever cash give away!! these.. + +yup it's at paragon... i havent decided whether 2 cut yet... hee... + +"urgent! call 09066350750 from your landline. your complimentary 4* ibiza holiday or 10 +you have been specially selected to receive a 2000 pound award! call 08712402050 before the lines close. cost 10ppm. 16+. t&cs apply. ag promo + +"customer place +"all the lastest from stereophonics +you have won a guaranteed ??1000 cash or a ??2000 prize.to claim yr prize call our customer service representative on + +urgent! we are trying to contact you. last weekends draw shows that you have won a ??900 prize guaranteed. call 09061701939. claim code s89. valid 12hrs only + +u r a winner u ave been specially selected 2 receive ??1000 cash or a 4* holiday (flights inc) speak to a live operator 2 claim 0871277810710p/min (18 ) + +k.k:)when are you going? + +"yeah probably +"tunji +i love to give massages. i use lots of baby oil... what is your fave position? + +"k will do +new textbuddy chat 2 horny guys in ur area 4 just 25p free 2 receive search postcode or at gaytextbuddy.com. txt one name to 89693 + +"you have been selected to stay in 1 of 250 top british hotels - for nothing! holiday worth ??350! to claim +s...from the training manual it show there is no tech process:)its all about password reset and troubleshooting:) + +"free msg: get gnarls barkleys \crazy\"" ringtone totally free just reply go to this message right now!""" + +thats cool princess! i will cover your face in hot sticky cum :) + +we tried to contact you re your reply to our offer of 750 mins 150 textand a new video phone call 08002988890 now or reply for free delivery tomorrow + +omg i want to scream. i weighed myself and i lost more weight! woohoo! + +so when do you wanna gym harri + +"urgent! last weekend's draw shows that you have won ??1000 cash or a spanish holiday! call now 09050000332 to claim. t&c: rstm +"i promise to take good care of you +yes:)here tv is always available in work place.. + +"yar lor he wan 2 go c horse racing today mah +knock knock txt whose there to 80082 to enter r weekly draw 4 a ??250 gift voucher 4 a store of yr choice. t&cs www.tkls.com age16 to stoptxtstop??1.50/week + +no. i.ll meet you in the library + +going to join tomorrow. + +ok ok take care. i can understand. + +do you still have the grinder? + +i can send you a pic if you like :) + +don't b floppy... b snappy & happy! only gay chat service with photo upload call 08718730666 (10p/min). 2 stop our texts call 08712460324 + +text banneduk to 89555 to see! cost 150p textoperator g696ga 18+ xxx + +no break time one... how... i come out n get my stuff fr ?_? + +free entry into our ??250 weekly comp just send the word win to 80086 now. 18 t&c www.txttowin.co.uk + +"smsservices. for yourinclusive text credits +it will stop on itself. i however suggest she stays with someone that will be able to give ors for every stool. + +gent! we are trying to contact you. last weekends draw shows that you won a ??1000 prize guaranteed. call 09064012160. claim code k52. valid 12hrs only. 150ppm + +you still around? i could use a half-8th + +wat's my dear doing? sleeping ah? + +i've not sent it. he can send me. + +busy here. trying to finish for new year. i am looking forward to finally meeting you... + +have a nice day my dear. + +okmail: dear dave this is your final notice to collect your 4* tenerife holiday or #5000 cash award! call 09061743806 from landline. tcs sae box326 cw25wx 150ppm + +3. you have received your mobile content. enjoy + +you have won a nokia 7250i. this is what you get when you win our free auction. to take part send nokia to 86021 now. hg/suite342/2lands row/w1jhl 16+ + +lol its ok i didn't remember til last nite + +"smsservices. for yourinclusive text credits +dear where you. call me + +r we going with the <#> bus? + +"for ur chance to win a ??250 cash every wk txt: action to 80608. t's&c's www.movietrivia.tv custcare 08712405022 +k...k:)why cant you come here and search job:) + +buy space invaders 4 a chance 2 win orig arcade game console. press 0 for games arcade (std wap charge) see o2.co.uk/games 4 terms + settings. no purchase + +"congratulations! thanks to a good friend u have won the ??2 +am watching house ??? very entertaining ??? am getting the whole hugh laurie thing ??? even with the stick ??? indeed especially with the stick. + +ok i will tell her to stay out. yeah its been tough but we are optimistic things will improve this month. + +this is a long fuckin showr + +"last chance! claim ur ??150 worth of discount vouchers today! text shop to 85023 now! savamob +"good morning +"you have been specially selected to receive a \3000 award! call 08712402050 before the lines close. cost 10ppm. 16+. t&cs apply. ag promo""" + +important information 4 orange user . today is your lucky day!2find out why log onto http://www.urawinner.com there's a fantastic surprise awaiting you! + +"u r subscribed 2 textcomp 250 wkly comp. 1st wk?s free question follows +jus came back fr lunch wif my sis only. u leh? + +you have an important customer service announcement. call freephone 0800 542 0825 now! + +"you are a ??1000 winner or guaranteed caller prize +"okies... i'll go yan jiu too... we can skip ard oso +we are both fine. thanks + +still chance there. if you search hard you will get it..let have a try :) + +there is no sense in my foot and penis. + +"yep +"when people see my msgs +for sale - arsenal dartboard. good condition but no doubles or trebles! + +you are chosen to receive a ??350 award! pls call claim number 09066364311 to collect your award which you are selected to receive as a valued mobile customer. + +ur cash-balance is currently 500 pounds - to maximize ur cash-in now send go to 86688 only 150p/msg. cc 08718720201 hg/suite342/2lands row/w1j6hl + +there generally isn't one. it's an uncountable noun - u in the dictionary. pieces of research? + +guess which pub im in? im as happy as a pig in clover or whatever the saying is! + +"night has ended for another day +sports fans - get the latest sports news str* 2 ur mobile 1 wk free plus a free tone txt sport on to 8007 www.getzed.co.uk 0870141701216+ norm 4txt/120p + +"09066362231 urgent! your mobile no 07xxxxxxxxx won a ??2 +"hi there +"haha just kidding +jamster! to get your free wallpaper text heart to 88888 now! t&c apply. 16 only. need help? call 08701213186. + +"u need my presnts always bcz u cant mis love. \jeevithathile irulinae neekunna prakasamanu sneham\"" prakasam ennal prabha 'that mns prabha is'love' got it. dont mis me....""" + +urgent ur ??500 guaranteed award is still unclaimed! call 09066368327 now closingdate04/09/02 claimcode m39m51 ??1.50pmmorefrommobile2bremoved-mobypobox734ls27yf + +"sunshine hols. to claim ur med holiday send a stamped self address envelope to drinks on us uk +"urgent! call 09061749602 from landline. your complimentary 4* tenerife holiday or ??10 +this is all just creepy and crazy to me. + +ur awarded a city break and could win a ??200 summer shopping spree every wk. txt store to 88039.skilgme.tscs087147403231winawk!age16+??1.50perwksub + +"men always needs a beautiful +cuz ibored. and don wanna study + +"aight +todays vodafone numbers ending with 4882 are selected to a receive a ??350 award. if your number matches call 09064019014 to receive your ??350 award. + +wanna get laid 2nite? want real dogging locations sent direct to ur mobile? join the uk's largest dogging network. txt park to 69696 now! nyt. ec2a. 3lp ??1.50/msg + +rct' thnq adrian for u text. rgds vatian + +you can donate ??2.50 to unicef's asian tsunami disaster support fund by texting donate to 864233. ??2.50 will be added to your next bill + +88800 and 89034 are premium phone services call 08718711108 + +i'm fine. hope you are also + +thesmszone.com lets you send free anonymous and masked messages..im sending this message from there..do you see the potential for abuse??? + +"claim a 200 shopping spree +yup i'm free... + +i knew it... u slept v late yest? wake up so late... + +"sun cant come to earth but send luv as rays. cloud cant come to river but send luv as rain. i cant come to meet u +"last chance! claim ur ??150 worth of discount vouchers today! text shop to 85023 now! savamob +"i.ll always be there +we tried to call you re your reply to our sms for a video mobile 750 mins unlimited text free camcorder reply or call now 08000930705 del thurs + +not heard from u4 a while. call me now am here all night with just my knickers on. make me beg for it like u did last time 01223585236 xx luv nikiyu4.net + +"i hav almost reached. call +aiya we discuss later lar... pick ?_ up at 4 is it? + +you have an important customer service announcement from premier. call freephone 0800 542 0578 now! + +and how's your husband. + +watching tv lor. nice one then i like lor. + +"urgent! your mobile no 07808726822 was awarded a ??2 +?? all write or wat.. + +u 447801259231 have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094597 + +22 days to kick off! for euro2004 u will be kept up to date with the latest news and results daily. to be removed send get txt stop to 83222 + +he fucking chickened out. he messaged me he would be late and woould buzz me and then i didn't hear a word from him + +just curious because my cuz asked what i was up to + +u still havent got urself a jacket ah? + +dear subscriber ur draw 4 ??100 gift voucher will b entered on receipt of a correct ans. when was elvis presleys birthday? txt answer to 80062 + +this is the 2nd time we have tried to contact u. u have won the ??1450 prize to claim just call 09053750005 b4 310303. t&cs/stop sms 08718725756. 140ppm + +update_now - 12mths half price orange line rental: 400mins...call mobileupd8 on 08000839402 or call2optout=j5q + +"congrats! 1 year special cinema pass for 2 is yours. call 09061209465 now! c suprman v +"ok thats cool. its +reply with your name and address and you will receive by post a weeks completely free accommodation at various global locations www.phb1.com ph:08700435505150p + +how are you. its been ages. how's abj + +"just dropped em off +more people are dogging in your area now. call 09090204448 and join like minded guys. why not arrange 1 yourself. there's 1 this evening. a??1.50 minapn ls278bb + +"awesome +"bill +"time n smile r the two crucial things in our life. sometimes time makes us to forget smile +i want to go to perumbavoor + +free msg:we billed your mobile number by mistake from shortcode 83332.please call 08081263000 to have charges refunded.this call will be free from a bt landline + +don't b floppy... b snappy & happy! only gay chat service with photo upload call 08718730666 (10p/min). 2 stop our texts call 08712460324 + +takin a shower now but yeah i'll leave when i'm done + +"we made it! eta at taunton is 12:30 as planned +"oh yeah +now press conference da:) + +"congratulations - thanks to a good friend u have won the ??2 +"1) go to write msg 2) put on dictionary mode 3)cover the screen with hand +thanks for being there for me just to talk to on saturday. you are very dear to me. i cherish having you as a brother and role model. + +hope ur head doesn't hurt 2 much ! am ploughing my way through a pile of ironing ! staying in with a chinky tonight come round if you like. + +annoying isn't it. + +wamma get laid?want real doggin locations sent direct to your mobile? join the uks largest dogging network. txt dogs to 69696 now!nyt. ec2a. 3lp ??1.50/msg. + +goldviking (29/m) is inviting you to be his friend. reply yes-762 or no-762 see him: www.sms.ac/u/goldviking stop? send stop frnd to 62468 + +"goodmorning +dunno lei... i thk mum lazy to go out... i neva ask her yet... + +private! your 2003 account statement for 07815296484 shows 800 un-redeemed s.i.m. points. call 08718738001 identifier code 41782 expires 18/11/04 + +"u can win ??100 of music gift vouchers every week starting now txt the word draw to 87066 tscs www.ldew.com skillgame +jay says he'll put in <#> + +can ?_ call me at 10:10 to make sure dat i've woken up... + +we tried to contact you re your reply to our offer of 750 mins 150 textand a new video phone call 08002988890 now or reply for free delivery tomorrow + +urgent! we are trying to contact u todays draw shows that you have won a ??800 prize guaranteed. call 09050000460 from land line. claim j89. po box245c2150pm + +oh ya... got hip hop open. haha i was thinking can go for jazz then zoom to cine... actually tonight i'm free leh... and there's a kb lesson tonight + +"nice. wait...should you be texting right now? i'm not gonna pay your ticket +can't. i feel nauseous. i'm so pissed. i didn't eat any sweets all week cause today i was planning to pig out. i was dieting all week. and now i'm not hungry :/ + +my uncles in atlanta. wish you guys a great semester. + +u are subscribed to the best mobile content service in the uk for ??3 per ten days until you send stop to 83435. helpline 08706091795. + +had your mobile 11 months or more? u r entitled to update to the latest colour mobiles with camera for free! call the mobile update co free on 08002986030 + +"i call you later +u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094599 + +5p 4 alfie moon's children in need song on ur mob. tell ur m8s. txt tone charity to 8007 for nokias or poly charity for polys: zed 08701417012 profit 2 charity. + +"that means you got an a in epi +nope... think i will go for it on monday... sorry i replied so late + +how did you find out in a way that didn't include all of these details + +already one guy loving you:-. + +"sorry +want the latest video handset? 750 anytime any network mins? half price line rental? reply or call 08000930705 for delivery tomorrow + +my new years eve was ok. i went to a party with my boyfriend. who is this si then hey + +free entry into our ??250 weekly comp just send the word enter to 88877 now. 18 t&c www.textcomp.com + +"sorry +this message is brought to you by gmw ltd. and is not connected to the + +you need to get up. now. + +"good afternoon sunshine! how dawns that day ? are we refreshed and happy to be alive? do we breathe in the air and smile ? i think of you +hmmm:)how many players selected? + +hmm ill have to think about it... ok you're forgiven! =d + +crucify is c not s. you should have told me earlier. + +get your garden ready for summer with a free selection of summer bulbs and seeds worth ??33:50 only with the scotsman this saturday. to stop go2 notxt.co.uk + +4mths half price orange line rental & latest camera phones 4 free. had your phone 11mths ? call mobilesdirect free on 08000938767 to update now! or2stoptxt + +be happy there. i will come after noon + +free msg: ringtone!from: http://tms. widelive.com/index. wml?id=1b6a5ecef91ff9*37819&first=true18:0430-jul-05 + +refused a loan? secured or unsecured? can't get credit? call free now 0800 195 6669 or text back 'help' & we will! + +i'm in chennai velachery:) + +"\none!nowhere ikno doesdiscount!shitinnit\""""" + +?? got wat to buy tell us then ?_ no need to come in again. + +how about getting in touch with folks waiting for company? just txt back your name and age to opt in! enjoy the community (150p/sms) + +"urgent!: your mobile no. was awarded a ??2 +had your mobile 10 mths? update to latest orange camera/video phones for free. save ??s with free texts/weekend calls. text yes for a callback orno to opt out + +private! your 2003 account statement for 078 + +i wont. so wat's wit the guys + +aathi..where are you dear.. + +lol that's different. i don't go trying to find every real life photo you ever took. + +you are a winner you have been specially selected to receive ??1000 cash or a ??2000 award. speak to a live operator to claim call 087123002209am-7pm. cost 10p + +yeah we do totes. when u wanna? + +update_now - 12mths half price orange line rental: 400mins...call mobileupd8 on 08000839402 or call2optout=j5q + +ur going 2 bahamas! callfreefone 08081560665 and speak to a live operator to claim either bahamas cruise of??2000 cash 18+only. to opt out txt x to 07786200117 + +all was well until slightly disastrous class this pm with my fav darlings! hope day off ok. coffee wld be good as can't stay late tomorrow. same time + place as always? + +we tried to contact you re your reply to our offer of a video handset? 750 anytime networks mins? unlimited text? camcorder? reply or call 08000930705 now + +"freemsg why haven't you replied to my text? i'm randy +"urgent! call 09061749602 from landline. your complimentary 4* tenerife holiday or ??10 +here is your discount code rp176781. to stop further messages reply stop. www.regalportfolio.co.uk. customer services 08717205546 + +private! your 2003 account statement for shows 800 un-redeemed s. i. m. points. call 08719899230 identifier code: 41685 expires 07/11/04 + +idk. i'm sitting here in a stop and shop parking lot right now bawling my eyes out because i feel like i'm a failure in everything. nobody wants me and now i feel like i'm failing you. + +my sister going to earn more than me da. + +hi - this is your mailbox messaging sms alert. you have 4 messages. you have 21 matches. please call back on 09056242159 to retrieve your messages and matches + +"god picked up a flower and dippeditinadew +i am back. bit long cos of accident on a30. had to divert via wadebridge.i had a brilliant weekend thanks. speak soon. lots of love + +as one of our registered subscribers u can enter the draw 4 a 100 g.b. gift voucher by replying with enter. to unsubscribe text stop + +teach me apps da. when you come to college. + +ok... + +1000's of girls many local 2 u who r virgins 2 this & r ready 2 4fil ur every sexual need. can u 4fil theirs? text cute to 69911(??1.50p. m) + +"sorry +still at west coast... haiz... ??'ll take forever to come back... + +"hey. what happened? u switch off ur cell d whole day. this isnt good. now if u do care +"i want some cock! my hubby's away +urgent please call 09066612661 from landline. ??5000 cash or a luxury 4* canary islands holiday await collection. t&cs sae award. 20m12aq. 150ppm. 16+ ??? + +"win the newest ??harry potter and the order of the phoenix (book 5) reply harry +4mths half price orange line rental & latest camera phones 4 free. had your phone 11mths ? call mobilesdirect free on 08000938767 to update now! or2stoptxt + +den wat will e schedule b lk on sun? + +are you there in room. + +yup next stop. + +i am in your office na. + +sorry dude. dont know how i forgot. even after dan reminded me. sorry. hope you guys had fun. + +ur going 2 bahamas! callfreefone 08081560665 and speak to a live operator to claim either bahamas cruise of??2000 cash 18+only. to opt out txt x to 07786200117 + +"helloooo... wake up..! \sweet\"" \""morning\"" \""welcomes\"" \""you\"" \""enjoy\"" \""this day\"" \""with full of joy\"".. \""gud mrng\"".""" + +this is the 2nd time we have tried to contact u. u have won the ??1450 prize to claim just call 09053750005 b4 310303. t&cs/stop sms 08718725756. 140ppm + +get a brand new mobile phone by being an agent of the mob! plus loads more goodies! for more info just text mat to 87021. + +shopping? eh ger i toking abt syd leh...haha + +"yup +"urgent! call 09066612661 from landline. your complementary 4* tenerife holiday or ??10 +you have won a nokia 7250i. this is what you get when you win our free auction. to take part send nokia to 86021 now. hg/suite342/2lands row/w1jhl 16+ + +"dear voucher holder +dear dave this is your final notice to collect your 4* tenerife holiday or #5000 cash award! call 09061743806 from landline. tcs sae box326 cw25wx 150ppm + +am not working but am up to eyes in philosophy so will text u later when a bit more free for chat... + +i cant keep talking to people if am not sure i can pay them if they agree to price. so pls tell me what you want to really buy and how much you are willing to pay + +private! your 2004 account statement for 07742676969 shows 786 unredeemed bonus points. to claim call 08719180248 identifier code: 45239 expires + +100 dating service cal;l 09064012103 box334sk38ch + +we have new local dates in your area - lots of new people registered in your area. reply date to start now! 18 only www.flirtparty.us replys150 + +"it's not that you make me cry. it's just that when all our stuff happens on top of everything else +december only! had your mobile 11mths+? you are entitled to update to the latest colour camera mobile for free! call the mobile update co free on 08002986906 + +tomarrow final hearing on my laptop case so i cant. + +"aight +sitting ard nothing to do lor. u leh busy w work? + +camera - you are awarded a sipix digital camera! call 09061221066 fromm landline. delivery within 28 days. + +how u doin baby girl ?? hope u are okay every time i call ure phone is off! i miss u get in touch + +hi - this is your mailbox messaging sms alert. you have 40 matches. please call back on 09056242159 to retrieve your messages and matches cc100p/min + +sorry de i went to shop. + +ok... u enjoy ur shows... + +reading gud habit.. nan bari hudgi yorge pataistha ertini kano:-) + +"he has lots of used ones babe +meet after lunch la... + +sorry! u can not unsubscribe yet. the mob offer package has a min term of 54 weeks> pls resubmit request after expiry. reply themob help 4 more info + +just trying to figure out when i'm suppose to see a couple different people this week. we said we'd get together but i didn't set dates + +you are a winner you have been specially selected to receive ??1000 cash or a ??2000 award. speak to a live operator to claim call 087147123779am-7pm. cost 10p + +"500 new mobiles from 2004 +urgent! please call 09061743810 from landline. your abta complimentary 4* tenerife holiday or #5000 cash await collection sae t&cs box 326 cw25wx 150 ppm + +was gr8 to see that message. so when r u leaving? congrats dear. what school and wat r ur plans. + +winner!! as a valued network customer you have been selected to receivea ??900 prize reward! to claim call 09061701461. claim code kl341. valid 12 hours only. + +network operator. the service is free. for t & c's visit 80488.biz + +winner!! as a valued network customer you have been selected to receivea ??900 prize reward! to claim call 09061701461. claim code kl341. valid 12 hours only. + +our brand new mobile music service is now live. the free music player will arrive shortly. just install on your phone to browse content from the top artists. + +si si. i think ill go make those oreo truffles. + +en chikku nange bakra msg kalstiya..then had tea/coffee? + diff --git a/notebooks/SMS_SPAM/data_pipeline/Cage/sms_json.json b/notebooks/SMS_SPAM/data_pipeline/Cage/sms_json.json new file mode 100644 index 0000000..5db4ee6 --- /dev/null +++ b/notebooks/SMS_SPAM/data_pipeline/Cage/sms_json.json @@ -0,0 +1 @@ +{"1": "SPAM", "0": "HAM"} \ No newline at end of file diff --git a/notebooks/SMS_SPAM/data_pipeline/Cage/sms_pickle_T.pkl b/notebooks/SMS_SPAM/data_pipeline/Cage/sms_pickle_T.pkl new file mode 100644 index 0000000..0b2e51d Binary files /dev/null and b/notebooks/SMS_SPAM/data_pipeline/Cage/sms_pickle_T.pkl differ diff --git a/notebooks/SMS_SPAM/data_pipeline/Cage/sms_pickle_U.pkl b/notebooks/SMS_SPAM/data_pipeline/Cage/sms_pickle_U.pkl new file mode 100644 index 0000000..2bc933d Binary files /dev/null and b/notebooks/SMS_SPAM/data_pipeline/Cage/sms_pickle_U.pkl differ diff --git a/notebooks/SMS_SPAM/data_pipeline/JL/sms_json.json b/notebooks/SMS_SPAM/data_pipeline/JL/sms_json.json new file mode 100644 index 0000000..5db4ee6 --- /dev/null +++ b/notebooks/SMS_SPAM/data_pipeline/JL/sms_json.json @@ -0,0 +1 @@ +{"1": "SPAM", "0": "HAM"} \ No newline at end of file diff --git a/notebooks/SMS_SPAM/data_pipeline/JL/sms_pickle_L.pkl b/notebooks/SMS_SPAM/data_pipeline/JL/sms_pickle_L.pkl new file mode 100644 index 0000000..7f18889 Binary files /dev/null and b/notebooks/SMS_SPAM/data_pipeline/JL/sms_pickle_L.pkl differ diff --git a/notebooks/SMS_SPAM/data_pipeline/JL/sms_pickle_T.pkl b/notebooks/SMS_SPAM/data_pipeline/JL/sms_pickle_T.pkl new file mode 100644 index 0000000..2cae724 Binary files /dev/null and b/notebooks/SMS_SPAM/data_pipeline/JL/sms_pickle_T.pkl differ diff --git a/notebooks/SMS_SPAM/data_pipeline/JL/sms_pickle_U.pkl b/notebooks/SMS_SPAM/data_pipeline/JL/sms_pickle_U.pkl new file mode 100644 index 0000000..4393afa Binary files /dev/null and b/notebooks/SMS_SPAM/data_pipeline/JL/sms_pickle_U.pkl differ diff --git a/notebooks/SMS_SPAM/data_pipeline/JL/sms_pickle_V.pkl b/notebooks/SMS_SPAM/data_pipeline/JL/sms_pickle_V.pkl new file mode 100644 index 0000000..c6dffb1 Binary files /dev/null and b/notebooks/SMS_SPAM/data_pipeline/JL/sms_pickle_V.pkl differ diff --git a/notebooks/SMS_SPAM/data_pipeline/JL/sup_subset_L.pkl b/notebooks/SMS_SPAM/data_pipeline/JL/sup_subset_L.pkl new file mode 100644 index 0000000..4f8f3e4 Binary files /dev/null and b/notebooks/SMS_SPAM/data_pipeline/JL/sup_subset_L.pkl differ diff --git a/notebooks/SMS_SPAM/data_pipeline/JL/sup_subset_U.pkl b/notebooks/SMS_SPAM/data_pipeline/JL/sup_subset_U.pkl new file mode 100644 index 0000000..9749251 Binary files /dev/null and b/notebooks/SMS_SPAM/data_pipeline/JL/sup_subset_U.pkl differ diff --git a/notebooks/SMS_SPAM/data_pipeline/JL/sup_subset_altered_L.pkl b/notebooks/SMS_SPAM/data_pipeline/JL/sup_subset_altered_L.pkl new file mode 100644 index 0000000..181667d Binary files /dev/null and b/notebooks/SMS_SPAM/data_pipeline/JL/sup_subset_altered_L.pkl differ diff --git a/notebooks/SMS_SPAM/data_pipeline/JL/sup_subset_labeled_L.pkl b/notebooks/SMS_SPAM/data_pipeline/JL/sup_subset_labeled_L.pkl new file mode 100644 index 0000000..591d8eb Binary files /dev/null and b/notebooks/SMS_SPAM/data_pipeline/JL/sup_subset_labeled_L.pkl differ diff --git a/notebooks/SMS_SPAM/con_scorer.py b/notebooks/SMS_SPAM/helper/con_scorer.py similarity index 87% rename from notebooks/SMS_SPAM/con_scorer.py rename to notebooks/SMS_SPAM/helper/con_scorer.py index e0798c9..21110e0 100644 --- a/notebooks/SMS_SPAM/con_scorer.py +++ b/notebooks/SMS_SPAM/helper/con_scorer.py @@ -8,7 +8,11 @@ import gensim.matutils as gm print("model loading") -model = KeyedVectors.load_word2vec_format('../../data/SMS_SPAM/glove_w2v.txt', binary=False) +model = None +try: + model = KeyedVectors.load_word2vec_format('data/SMS_SPAM/glove_w2v.txt', binary=False) +except: + model = KeyedVectors.load_word2vec_format('../../data/SMS_SPAM/glove_w2v.txt', binary=False) print("model loaded") def get_word_vectors(btw_words): diff --git a/notebooks/SMS_SPAM/helper/utils.py b/notebooks/SMS_SPAM/helper/utils.py new file mode 100644 index 0000000..6b8e34a --- /dev/null +++ b/notebooks/SMS_SPAM/helper/utils.py @@ -0,0 +1,108 @@ +import numpy as np +import tensorflow as tf +import tensorflow_hub as hub +import os,sys +import pickle +from tqdm import tqdm + +def sentences_to_elmo_sentence_embs(messages,batch_size=64): + sess_config = tf.compat.v1.ConfigProto() + sess_config.gpu_options.allow_growth = True + #message_lengths = [len(m.split()) for m in messages] + module_url = "https://tfhub.dev/google/elmo/2" + elmo = hub.Module(module_url,trainable=True) + print("module loaded") + tf.logging.set_verbosity(tf.logging.ERROR) + with tf.Session(config=sess_config) as session: + session.run([tf.global_variables_initializer(), tf.tables_initializer()]) + message_embeddings = [] + for i in tqdm(range(0,len(messages),batch_size)): + #print("Embedding sentences from {} to {}".format(i,min(i+batch_size,len(messages))-1)) + message_batch = messages[i:i+batch_size] + #length_batch = message_lengths[i:i+batch_size] + embeddings_batch = session.run(elmo(message_batch,signature="default",as_dict=True))["default"] + #embeddings_batch = get_embeddings_list(embeddings_batch, length_batch, ELMO_EMBED_SIZE) + message_embeddings.extend(embeddings_batch) + return np.array(message_embeddings) + + +def load_data_to_numpy(folder="../../data_/SMS_SPAM/"): + #SPAM = 1 + #HAM = 0 + #ABSTAIN = -1 + X = [] + Y = [] + raw = "SMSSpamCollection" + feat = "sms_embeddings.npy" + with open(folder+raw, 'r', encoding='latin1') as f: + for line in f: + yx = line.split("\t",1) + if yx[0]=="spam": + y=1 + else: + y=0 + x = yx[1] + X.append(x) + Y.append(y) + try: + X_feats = np.load(folder+feat) + except: + print("embeddings are absent in the input folder") + X_feats=sentences_to_elmo_sentence_embs(X) + X = np.array(X) + Y = np.array(Y) + return X, X_feats, Y + +def get_various_data(X, Y, X_feats, temp_len, validation_size = 100, test_size = 200, L_size = 100, U_size = None): + if U_size == None: + U_size = X.size - L_size - validation_size - test_size + index = np.arange(X.size) + index = np.random.permutation(index) + X = X[index] + Y = Y[index] + X_feats = X_feats[index] + + X_V = X[-validation_size:] + Y_V = Y[-validation_size:] + X_feats_V = X_feats[-validation_size:] + R_V = np.zeros((validation_size, temp_len)) + + X_T = X[-(validation_size+test_size):-validation_size] + Y_T = Y[-(validation_size+test_size):-validation_size] + X_feats_T = X_feats[-(validation_size+test_size):-validation_size] + R_T = np.zeros((test_size,temp_len)) + + X_L = X[-(validation_size+test_size+L_size):-(validation_size+test_size)] + Y_L = Y[-(validation_size+test_size+L_size):-(validation_size+test_size)] + X_feats_L = X_feats[-(validation_size+test_size+L_size):-(validation_size+test_size)] + R_L = np.zeros((L_size,temp_len)) + + # X_U = X[:-(validation_size+test_size+L_size)] + X_U = X[:U_size] + X_feats_U = X_feats[:U_size] + # Y_U = Y[:-(validation_size+test_size+L_size)] + R_U = np.zeros((U_size,temp_len)) + + return X_V,Y_V,X_feats_V,R_V, X_T,Y_T,X_feats_T,R_T, X_L,Y_L,X_feats_L,R_L, X_U,X_feats_U,R_U + +def get_test_U_data(X, Y, temp_len, test_size = 200, U_size = None): + if U_size == None: + U_size = X.size - test_size + index = np.arange(X.size) + index = np.random.permutation(index) + X = X[index] + Y = Y[index] + + X_T = X[-(test_size):] + Y_T = Y[-(test_size):] + R_T = np.zeros((test_size,temp_len)) + + # X_U = X[:-(validation_size+test_size+L_size)] + X_U = X[:U_size] + # Y_U = Y[:-(validation_size+test_size+L_size)] + R_U = np.zeros((U_size,temp_len)) + + return X_T,Y_T,R_T, X_U,R_U + + + diff --git a/notebooks/SMS_SPAM/inference_output/infer_f.p b/notebooks/SMS_SPAM/inference_output/infer_f.p new file mode 100644 index 0000000..2fc7b42 Binary files /dev/null and b/notebooks/SMS_SPAM/inference_output/infer_f.p differ diff --git a/notebooks/SMS_SPAM/inference_output/infer_w.p_test b/notebooks/SMS_SPAM/inference_output/infer_w.p_test new file mode 100644 index 0000000..f2058e2 Binary files /dev/null and b/notebooks/SMS_SPAM/inference_output/infer_w.p_test differ diff --git a/notebooks/SMS_SPAM/log/Cage/sms_log_1.txt b/notebooks/SMS_SPAM/log/Cage/sms_log_1.txt new file mode 100644 index 0000000..1b845fa --- /dev/null +++ b/notebooks/SMS_SPAM/log/Cage/sms_log_1.txt @@ -0,0 +1,1203 @@ +CAGE log: n_classes: 2 n_LFs: 16 n_epochs: 200 lr: 0.01 +Epoch: 0 test_accuracy_score: 0.795 +Epoch: 0 test_average_metric: binary test_f1_score: 0.4533333333333333 +Epoch: 1 test_accuracy_score: 0.7825 +Epoch: 1 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 2 test_accuracy_score: 0.7825 +Epoch: 2 test_average_metric: binary test_f1_score: 0.4387096774193548 +Epoch: 3 test_accuracy_score: 0.7825 +Epoch: 3 test_average_metric: binary test_f1_score: 0.4387096774193548 +Epoch: 4 test_accuracy_score: 0.7825 +Epoch: 4 test_average_metric: binary test_f1_score: 0.4387096774193548 +Epoch: 5 test_accuracy_score: 0.7825 +Epoch: 5 test_average_metric: binary test_f1_score: 0.4387096774193548 +Epoch: 6 test_accuracy_score: 0.7825 +Epoch: 6 test_average_metric: binary test_f1_score: 0.4387096774193548 +Epoch: 7 test_accuracy_score: 0.7825 +Epoch: 7 test_average_metric: binary test_f1_score: 0.4387096774193548 +Epoch: 8 test_accuracy_score: 0.785 +Epoch: 8 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 9 test_accuracy_score: 0.785 +Epoch: 9 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 10 test_accuracy_score: 0.785 +Epoch: 10 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 11 test_accuracy_score: 0.785 +Epoch: 11 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 12 test_accuracy_score: 0.785 +Epoch: 12 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 13 test_accuracy_score: 0.785 +Epoch: 13 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 14 test_accuracy_score: 0.785 +Epoch: 14 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 15 test_accuracy_score: 0.785 +Epoch: 15 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 16 test_accuracy_score: 0.785 +Epoch: 16 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 17 test_accuracy_score: 0.785 +Epoch: 17 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 18 test_accuracy_score: 0.785 +Epoch: 18 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 19 test_accuracy_score: 0.785 +Epoch: 19 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 20 test_accuracy_score: 0.785 +Epoch: 20 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 21 test_accuracy_score: 0.785 +Epoch: 21 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 22 test_accuracy_score: 0.785 +Epoch: 22 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 23 test_accuracy_score: 0.785 +Epoch: 23 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 24 test_accuracy_score: 0.785 +Epoch: 24 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 25 test_accuracy_score: 0.785 +Epoch: 25 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 26 test_accuracy_score: 0.785 +Epoch: 26 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 27 test_accuracy_score: 0.785 +Epoch: 27 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 28 test_accuracy_score: 0.785 +Epoch: 28 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 29 test_accuracy_score: 0.785 +Epoch: 29 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 30 test_accuracy_score: 0.785 +Epoch: 30 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 31 test_accuracy_score: 0.785 +Epoch: 31 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 32 test_accuracy_score: 0.785 +Epoch: 32 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 33 test_accuracy_score: 0.785 +Epoch: 33 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 34 test_accuracy_score: 0.785 +Epoch: 34 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 35 test_accuracy_score: 0.785 +Epoch: 35 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 36 test_accuracy_score: 0.785 +Epoch: 36 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 37 test_accuracy_score: 0.785 +Epoch: 37 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 38 test_accuracy_score: 0.785 +Epoch: 38 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 39 test_accuracy_score: 0.785 +Epoch: 39 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 40 test_accuracy_score: 0.785 +Epoch: 40 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 41 test_accuracy_score: 0.785 +Epoch: 41 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 42 test_accuracy_score: 0.785 +Epoch: 42 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 43 test_accuracy_score: 0.785 +Epoch: 43 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 44 test_accuracy_score: 0.785 +Epoch: 44 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 45 test_accuracy_score: 0.785 +Epoch: 45 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 46 test_accuracy_score: 0.785 +Epoch: 46 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 47 test_accuracy_score: 0.785 +Epoch: 47 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 48 test_accuracy_score: 0.785 +Epoch: 48 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 49 test_accuracy_score: 0.785 +Epoch: 49 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 50 test_accuracy_score: 0.785 +Epoch: 50 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 51 test_accuracy_score: 0.785 +Epoch: 51 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 52 test_accuracy_score: 0.785 +Epoch: 52 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 53 test_accuracy_score: 0.785 +Epoch: 53 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 54 test_accuracy_score: 0.785 +Epoch: 54 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 55 test_accuracy_score: 0.785 +Epoch: 55 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 56 test_accuracy_score: 0.785 +Epoch: 56 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 57 test_accuracy_score: 0.7875 +Epoch: 57 test_average_metric: binary test_f1_score: 0.45161290322580644 +Epoch: 58 test_accuracy_score: 0.7875 +Epoch: 58 test_average_metric: binary test_f1_score: 0.45161290322580644 +Epoch: 59 test_accuracy_score: 0.7875 +Epoch: 59 test_average_metric: binary test_f1_score: 0.45161290322580644 +Epoch: 60 test_accuracy_score: 0.7875 +Epoch: 60 test_average_metric: binary test_f1_score: 0.45161290322580644 +Epoch: 61 test_accuracy_score: 0.7875 +Epoch: 61 test_average_metric: binary test_f1_score: 0.45161290322580644 +Epoch: 62 test_accuracy_score: 0.7875 +Epoch: 62 test_average_metric: binary test_f1_score: 0.45161290322580644 +Epoch: 63 test_accuracy_score: 0.7875 +Epoch: 63 test_average_metric: binary test_f1_score: 0.45161290322580644 +Epoch: 64 test_accuracy_score: 0.79 +Epoch: 64 test_average_metric: binary test_f1_score: 0.45454545454545453 +Epoch: 65 test_accuracy_score: 0.79 +Epoch: 65 test_average_metric: binary test_f1_score: 0.45454545454545453 +Epoch: 66 test_accuracy_score: 0.79 +Epoch: 66 test_average_metric: binary test_f1_score: 0.45454545454545453 +Epoch: 67 test_accuracy_score: 0.79 +Epoch: 67 test_average_metric: binary test_f1_score: 0.45454545454545453 +Epoch: 68 test_accuracy_score: 0.79 +Epoch: 68 test_average_metric: binary test_f1_score: 0.45454545454545453 +Epoch: 69 test_accuracy_score: 0.79 +Epoch: 69 test_average_metric: binary test_f1_score: 0.45454545454545453 +Epoch: 70 test_accuracy_score: 0.79 +Epoch: 70 test_average_metric: binary test_f1_score: 0.45454545454545453 +Epoch: 71 test_accuracy_score: 0.79 +Epoch: 71 test_average_metric: binary test_f1_score: 0.45454545454545453 +Epoch: 72 test_accuracy_score: 0.79 +Epoch: 72 test_average_metric: binary test_f1_score: 0.45454545454545453 +Epoch: 73 test_accuracy_score: 0.79 +Epoch: 73 test_average_metric: binary test_f1_score: 0.45454545454545453 +Epoch: 74 test_accuracy_score: 0.78 +Epoch: 74 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 75 test_accuracy_score: 0.78 +Epoch: 75 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 76 test_accuracy_score: 0.78 +Epoch: 76 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 77 test_accuracy_score: 0.78 +Epoch: 77 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 78 test_accuracy_score: 0.78 +Epoch: 78 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 79 test_accuracy_score: 0.78 +Epoch: 79 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 80 test_accuracy_score: 0.78 +Epoch: 80 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 81 test_accuracy_score: 0.78 +Epoch: 81 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 82 test_accuracy_score: 0.78 +Epoch: 82 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 83 test_accuracy_score: 0.78 +Epoch: 83 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 84 test_accuracy_score: 0.78 +Epoch: 84 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 85 test_accuracy_score: 0.78 +Epoch: 85 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 86 test_accuracy_score: 0.78 +Epoch: 86 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 87 test_accuracy_score: 0.78 +Epoch: 87 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 88 test_accuracy_score: 0.78 +Epoch: 88 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 89 test_accuracy_score: 0.78 +Epoch: 89 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 90 test_accuracy_score: 0.78 +Epoch: 90 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 91 test_accuracy_score: 0.7825 +Epoch: 91 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 92 test_accuracy_score: 0.7825 +Epoch: 92 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 93 test_accuracy_score: 0.7825 +Epoch: 93 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 94 test_accuracy_score: 0.7825 +Epoch: 94 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 95 test_accuracy_score: 0.7825 +Epoch: 95 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 96 test_accuracy_score: 0.7825 +Epoch: 96 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 97 test_accuracy_score: 0.7825 +Epoch: 97 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 98 test_accuracy_score: 0.7825 +Epoch: 98 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 99 test_accuracy_score: 0.7825 +Epoch: 99 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 100 test_accuracy_score: 0.7825 +Epoch: 100 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 101 test_accuracy_score: 0.7825 +Epoch: 101 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 102 test_accuracy_score: 0.7825 +Epoch: 102 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 103 test_accuracy_score: 0.7825 +Epoch: 103 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 104 test_accuracy_score: 0.7825 +Epoch: 104 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 105 test_accuracy_score: 0.7825 +Epoch: 105 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 106 test_accuracy_score: 0.7825 +Epoch: 106 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 107 test_accuracy_score: 0.7825 +Epoch: 107 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 108 test_accuracy_score: 0.7825 +Epoch: 108 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 109 test_accuracy_score: 0.7825 +Epoch: 109 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 110 test_accuracy_score: 0.7825 +Epoch: 110 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 111 test_accuracy_score: 0.7825 +Epoch: 111 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 112 test_accuracy_score: 0.7825 +Epoch: 112 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 113 test_accuracy_score: 0.7825 +Epoch: 113 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 114 test_accuracy_score: 0.7825 +Epoch: 114 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 115 test_accuracy_score: 0.7825 +Epoch: 115 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 116 test_accuracy_score: 0.7825 +Epoch: 116 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 117 test_accuracy_score: 0.7825 +Epoch: 117 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 118 test_accuracy_score: 0.7875 +Epoch: 118 test_average_metric: binary test_f1_score: 0.47204968944099374 +Epoch: 119 test_accuracy_score: 0.7875 +Epoch: 119 test_average_metric: binary test_f1_score: 0.47204968944099374 +Epoch: 120 test_accuracy_score: 0.7875 +Epoch: 120 test_average_metric: binary test_f1_score: 0.47204968944099374 +Epoch: 121 test_accuracy_score: 0.79 +Epoch: 121 test_average_metric: binary test_f1_score: 0.475 +Epoch: 122 test_accuracy_score: 0.79 +Epoch: 122 test_average_metric: binary test_f1_score: 0.475 +Epoch: 123 test_accuracy_score: 0.79 +Epoch: 123 test_average_metric: binary test_f1_score: 0.475 +Epoch: 124 test_accuracy_score: 0.79 +Epoch: 124 test_average_metric: binary test_f1_score: 0.475 +Epoch: 125 test_accuracy_score: 0.79 +Epoch: 125 test_average_metric: binary test_f1_score: 0.475 +Epoch: 126 test_accuracy_score: 0.79 +Epoch: 126 test_average_metric: binary test_f1_score: 0.475 +Epoch: 127 test_accuracy_score: 0.79 +Epoch: 127 test_average_metric: binary test_f1_score: 0.475 +Epoch: 128 test_accuracy_score: 0.79 +Epoch: 128 test_average_metric: binary test_f1_score: 0.475 +Epoch: 129 test_accuracy_score: 0.79 +Epoch: 129 test_average_metric: binary test_f1_score: 0.475 +Epoch: 130 test_accuracy_score: 0.79 +Epoch: 130 test_average_metric: binary test_f1_score: 0.475 +Epoch: 131 test_accuracy_score: 0.79 +Epoch: 131 test_average_metric: binary test_f1_score: 0.475 +Epoch: 132 test_accuracy_score: 0.79 +Epoch: 132 test_average_metric: binary test_f1_score: 0.475 +Epoch: 133 test_accuracy_score: 0.79 +Epoch: 133 test_average_metric: binary test_f1_score: 0.475 +Epoch: 134 test_accuracy_score: 0.7925 +Epoch: 134 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 135 test_accuracy_score: 0.7925 +Epoch: 135 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 136 test_accuracy_score: 0.7925 +Epoch: 136 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 137 test_accuracy_score: 0.7925 +Epoch: 137 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 138 test_accuracy_score: 0.7925 +Epoch: 138 test_average_metric: binary test_f1_score: 0.47133757961783435 +Epoch: 139 test_accuracy_score: 0.7925 +Epoch: 139 test_average_metric: binary test_f1_score: 0.47133757961783435 +Epoch: 140 test_accuracy_score: 0.7925 +Epoch: 140 test_average_metric: binary test_f1_score: 0.47133757961783435 +Epoch: 141 test_accuracy_score: 0.7925 +Epoch: 141 test_average_metric: binary test_f1_score: 0.47133757961783435 +Epoch: 142 test_accuracy_score: 0.7925 +Epoch: 142 test_average_metric: binary test_f1_score: 0.47133757961783435 +Epoch: 143 test_accuracy_score: 0.7925 +Epoch: 143 test_average_metric: binary test_f1_score: 0.47133757961783435 +Epoch: 144 test_accuracy_score: 0.7925 +Epoch: 144 test_average_metric: binary test_f1_score: 0.47133757961783435 +Epoch: 145 test_accuracy_score: 0.7925 +Epoch: 145 test_average_metric: binary test_f1_score: 0.47133757961783435 +Epoch: 146 test_accuracy_score: 0.7925 +Epoch: 146 test_average_metric: binary test_f1_score: 0.47133757961783435 +Epoch: 147 test_accuracy_score: 0.7925 +Epoch: 147 test_average_metric: binary test_f1_score: 0.47133757961783435 +Epoch: 148 test_accuracy_score: 0.7925 +Epoch: 148 test_average_metric: binary test_f1_score: 0.47133757961783435 +Epoch: 149 test_accuracy_score: 0.795 +Epoch: 149 test_average_metric: binary test_f1_score: 0.4810126582278481 +Epoch: 150 test_accuracy_score: 0.795 +Epoch: 150 test_average_metric: binary test_f1_score: 0.4810126582278481 +Epoch: 151 test_accuracy_score: 0.795 +Epoch: 151 test_average_metric: binary test_f1_score: 0.4810126582278481 +Epoch: 152 test_accuracy_score: 0.795 +Epoch: 152 test_average_metric: binary test_f1_score: 0.4810126582278481 +Epoch: 153 test_accuracy_score: 0.795 +Epoch: 153 test_average_metric: binary test_f1_score: 0.4810126582278481 +Epoch: 154 test_accuracy_score: 0.795 +Epoch: 154 test_average_metric: binary test_f1_score: 0.4810126582278481 +Epoch: 155 test_accuracy_score: 0.795 +Epoch: 155 test_average_metric: binary test_f1_score: 0.4810126582278481 +Epoch: 156 test_accuracy_score: 0.795 +Epoch: 156 test_average_metric: binary test_f1_score: 0.4810126582278481 +Epoch: 157 test_accuracy_score: 0.795 +Epoch: 157 test_average_metric: binary test_f1_score: 0.4810126582278481 +Epoch: 158 test_accuracy_score: 0.795 +Epoch: 158 test_average_metric: binary test_f1_score: 0.4810126582278481 +Epoch: 159 test_accuracy_score: 0.795 +Epoch: 159 test_average_metric: binary test_f1_score: 0.4810126582278481 +Epoch: 160 test_accuracy_score: 0.795 +Epoch: 160 test_average_metric: binary test_f1_score: 0.4810126582278481 +Epoch: 161 test_accuracy_score: 0.795 +Epoch: 161 test_average_metric: binary test_f1_score: 0.4810126582278481 +Epoch: 162 test_accuracy_score: 0.795 +Epoch: 162 test_average_metric: binary test_f1_score: 0.4810126582278481 +Epoch: 163 test_accuracy_score: 0.7925 +Epoch: 163 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 164 test_accuracy_score: 0.7925 +Epoch: 164 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 165 test_accuracy_score: 0.7925 +Epoch: 165 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 166 test_accuracy_score: 0.7925 +Epoch: 166 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 167 test_accuracy_score: 0.7925 +Epoch: 167 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 168 test_accuracy_score: 0.7925 +Epoch: 168 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 169 test_accuracy_score: 0.7925 +Epoch: 169 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 170 test_accuracy_score: 0.7925 +Epoch: 170 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 171 test_accuracy_score: 0.7925 +Epoch: 171 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 172 test_accuracy_score: 0.7925 +Epoch: 172 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 173 test_accuracy_score: 0.7925 +Epoch: 173 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 174 test_accuracy_score: 0.7925 +Epoch: 174 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 175 test_accuracy_score: 0.7925 +Epoch: 175 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 176 test_accuracy_score: 0.7925 +Epoch: 176 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 177 test_accuracy_score: 0.7925 +Epoch: 177 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 178 test_accuracy_score: 0.7925 +Epoch: 178 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 179 test_accuracy_score: 0.7925 +Epoch: 179 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 180 test_accuracy_score: 0.7925 +Epoch: 180 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 181 test_accuracy_score: 0.7925 +Epoch: 181 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 182 test_accuracy_score: 0.7925 +Epoch: 182 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 183 test_accuracy_score: 0.7925 +Epoch: 183 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 184 test_accuracy_score: 0.7925 +Epoch: 184 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 185 test_accuracy_score: 0.7925 +Epoch: 185 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 186 test_accuracy_score: 0.79 +Epoch: 186 test_average_metric: binary test_f1_score: 0.475 +Epoch: 187 test_accuracy_score: 0.79 +Epoch: 187 test_average_metric: binary test_f1_score: 0.475 +Epoch: 188 test_accuracy_score: 0.79 +Epoch: 188 test_average_metric: binary test_f1_score: 0.475 +Epoch: 189 test_accuracy_score: 0.79 +Epoch: 189 test_average_metric: binary test_f1_score: 0.475 +Epoch: 190 test_accuracy_score: 0.79 +Epoch: 190 test_average_metric: binary test_f1_score: 0.475 +Epoch: 191 test_accuracy_score: 0.79 +Epoch: 191 test_average_metric: binary test_f1_score: 0.475 +Epoch: 192 test_accuracy_score: 0.79 +Epoch: 192 test_average_metric: binary test_f1_score: 0.475 +Epoch: 193 test_accuracy_score: 0.79 +Epoch: 193 test_average_metric: binary test_f1_score: 0.475 +Epoch: 194 test_accuracy_score: 0.79 +Epoch: 194 test_average_metric: binary test_f1_score: 0.475 +Epoch: 195 test_accuracy_score: 0.79 +Epoch: 195 test_average_metric: binary test_f1_score: 0.475 +Epoch: 196 test_accuracy_score: 0.79 +Epoch: 196 test_average_metric: binary test_f1_score: 0.475 +Epoch: 197 test_accuracy_score: 0.7975 +Epoch: 197 test_average_metric: binary test_f1_score: 0.5030674846625766 +Epoch: 198 test_accuracy_score: 0.7975 +Epoch: 198 test_average_metric: binary test_f1_score: 0.5030674846625766 +Epoch: 199 test_accuracy_score: 0.7975 +Epoch: 199 test_average_metric: binary test_f1_score: 0.5030674846625766 +CAGE log: n_classes: 2 n_LFs: 16 n_epochs: 200 lr: 0.01 +Epoch: 0 test_accuracy_score: 0.795 +Epoch: 0 test_average_metric: binary test_f1_score: 0.4533333333333333 +Epoch: 1 test_accuracy_score: 0.7825 +Epoch: 1 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 2 test_accuracy_score: 0.7825 +Epoch: 2 test_average_metric: binary test_f1_score: 0.4387096774193548 +Epoch: 3 test_accuracy_score: 0.7825 +Epoch: 3 test_average_metric: binary test_f1_score: 0.4387096774193548 +Epoch: 4 test_accuracy_score: 0.7825 +Epoch: 4 test_average_metric: binary test_f1_score: 0.4387096774193548 +Epoch: 5 test_accuracy_score: 0.7825 +Epoch: 5 test_average_metric: binary test_f1_score: 0.4387096774193548 +Epoch: 6 test_accuracy_score: 0.7825 +Epoch: 6 test_average_metric: binary test_f1_score: 0.4387096774193548 +Epoch: 7 test_accuracy_score: 0.7825 +Epoch: 7 test_average_metric: binary test_f1_score: 0.4387096774193548 +Epoch: 8 test_accuracy_score: 0.785 +Epoch: 8 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 9 test_accuracy_score: 0.785 +Epoch: 9 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 10 test_accuracy_score: 0.785 +Epoch: 10 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 11 test_accuracy_score: 0.785 +Epoch: 11 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 12 test_accuracy_score: 0.785 +Epoch: 12 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 13 test_accuracy_score: 0.785 +Epoch: 13 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 14 test_accuracy_score: 0.785 +Epoch: 14 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 15 test_accuracy_score: 0.785 +Epoch: 15 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 16 test_accuracy_score: 0.785 +Epoch: 16 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 17 test_accuracy_score: 0.785 +Epoch: 17 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 18 test_accuracy_score: 0.785 +Epoch: 18 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 19 test_accuracy_score: 0.785 +Epoch: 19 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 20 test_accuracy_score: 0.785 +Epoch: 20 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 21 test_accuracy_score: 0.785 +Epoch: 21 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 22 test_accuracy_score: 0.785 +Epoch: 22 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 23 test_accuracy_score: 0.785 +Epoch: 23 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 24 test_accuracy_score: 0.785 +Epoch: 24 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 25 test_accuracy_score: 0.785 +Epoch: 25 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 26 test_accuracy_score: 0.785 +Epoch: 26 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 27 test_accuracy_score: 0.785 +Epoch: 27 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 28 test_accuracy_score: 0.785 +Epoch: 28 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 29 test_accuracy_score: 0.785 +Epoch: 29 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 30 test_accuracy_score: 0.785 +Epoch: 30 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 31 test_accuracy_score: 0.785 +Epoch: 31 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 32 test_accuracy_score: 0.785 +Epoch: 32 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 33 test_accuracy_score: 0.785 +Epoch: 33 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 34 test_accuracy_score: 0.785 +Epoch: 34 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 35 test_accuracy_score: 0.785 +Epoch: 35 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 36 test_accuracy_score: 0.785 +Epoch: 36 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 37 test_accuracy_score: 0.785 +Epoch: 37 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 38 test_accuracy_score: 0.785 +Epoch: 38 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 39 test_accuracy_score: 0.785 +Epoch: 39 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 40 test_accuracy_score: 0.785 +Epoch: 40 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 41 test_accuracy_score: 0.785 +Epoch: 41 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 42 test_accuracy_score: 0.785 +Epoch: 42 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 43 test_accuracy_score: 0.785 +Epoch: 43 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 44 test_accuracy_score: 0.785 +Epoch: 44 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 45 test_accuracy_score: 0.785 +Epoch: 45 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 46 test_accuracy_score: 0.785 +Epoch: 46 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 47 test_accuracy_score: 0.785 +Epoch: 47 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 48 test_accuracy_score: 0.785 +Epoch: 48 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 49 test_accuracy_score: 0.785 +Epoch: 49 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 50 test_accuracy_score: 0.785 +Epoch: 50 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 51 test_accuracy_score: 0.785 +Epoch: 51 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 52 test_accuracy_score: 0.785 +Epoch: 52 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 53 test_accuracy_score: 0.785 +Epoch: 53 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 54 test_accuracy_score: 0.785 +Epoch: 54 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 55 test_accuracy_score: 0.785 +Epoch: 55 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 56 test_accuracy_score: 0.785 +Epoch: 56 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 57 test_accuracy_score: 0.7875 +Epoch: 57 test_average_metric: binary test_f1_score: 0.45161290322580644 +Epoch: 58 test_accuracy_score: 0.7875 +Epoch: 58 test_average_metric: binary test_f1_score: 0.45161290322580644 +Epoch: 59 test_accuracy_score: 0.7875 +Epoch: 59 test_average_metric: binary test_f1_score: 0.45161290322580644 +Epoch: 60 test_accuracy_score: 0.7875 +Epoch: 60 test_average_metric: binary test_f1_score: 0.45161290322580644 +Epoch: 61 test_accuracy_score: 0.7875 +Epoch: 61 test_average_metric: binary test_f1_score: 0.45161290322580644 +Epoch: 62 test_accuracy_score: 0.7875 +Epoch: 62 test_average_metric: binary test_f1_score: 0.45161290322580644 +Epoch: 63 test_accuracy_score: 0.7875 +Epoch: 63 test_average_metric: binary test_f1_score: 0.45161290322580644 +Epoch: 64 test_accuracy_score: 0.79 +Epoch: 64 test_average_metric: binary test_f1_score: 0.45454545454545453 +Epoch: 65 test_accuracy_score: 0.79 +Epoch: 65 test_average_metric: binary test_f1_score: 0.45454545454545453 +Epoch: 66 test_accuracy_score: 0.79 +Epoch: 66 test_average_metric: binary test_f1_score: 0.45454545454545453 +Epoch: 67 test_accuracy_score: 0.79 +Epoch: 67 test_average_metric: binary test_f1_score: 0.45454545454545453 +Epoch: 68 test_accuracy_score: 0.79 +Epoch: 68 test_average_metric: binary test_f1_score: 0.45454545454545453 +Epoch: 69 test_accuracy_score: 0.79 +Epoch: 69 test_average_metric: binary test_f1_score: 0.45454545454545453 +Epoch: 70 test_accuracy_score: 0.79 +Epoch: 70 test_average_metric: binary test_f1_score: 0.45454545454545453 +Epoch: 71 test_accuracy_score: 0.79 +Epoch: 71 test_average_metric: binary test_f1_score: 0.45454545454545453 +Epoch: 72 test_accuracy_score: 0.79 +Epoch: 72 test_average_metric: binary test_f1_score: 0.45454545454545453 +Epoch: 73 test_accuracy_score: 0.79 +Epoch: 73 test_average_metric: binary test_f1_score: 0.45454545454545453 +Epoch: 74 test_accuracy_score: 0.78 +Epoch: 74 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 75 test_accuracy_score: 0.78 +Epoch: 75 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 76 test_accuracy_score: 0.78 +Epoch: 76 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 77 test_accuracy_score: 0.78 +Epoch: 77 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 78 test_accuracy_score: 0.78 +Epoch: 78 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 79 test_accuracy_score: 0.78 +Epoch: 79 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 80 test_accuracy_score: 0.78 +Epoch: 80 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 81 test_accuracy_score: 0.78 +Epoch: 81 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 82 test_accuracy_score: 0.78 +Epoch: 82 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 83 test_accuracy_score: 0.78 +Epoch: 83 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 84 test_accuracy_score: 0.78 +Epoch: 84 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 85 test_accuracy_score: 0.78 +Epoch: 85 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 86 test_accuracy_score: 0.78 +Epoch: 86 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 87 test_accuracy_score: 0.78 +Epoch: 87 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 88 test_accuracy_score: 0.78 +Epoch: 88 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 89 test_accuracy_score: 0.78 +Epoch: 89 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 90 test_accuracy_score: 0.78 +Epoch: 90 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 91 test_accuracy_score: 0.7825 +Epoch: 91 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 92 test_accuracy_score: 0.7825 +Epoch: 92 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 93 test_accuracy_score: 0.7825 +Epoch: 93 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 94 test_accuracy_score: 0.7825 +Epoch: 94 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 95 test_accuracy_score: 0.7825 +Epoch: 95 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 96 test_accuracy_score: 0.7825 +Epoch: 96 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 97 test_accuracy_score: 0.7825 +Epoch: 97 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 98 test_accuracy_score: 0.7825 +Epoch: 98 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 99 test_accuracy_score: 0.7825 +Epoch: 99 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 100 test_accuracy_score: 0.7825 +Epoch: 100 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 101 test_accuracy_score: 0.7825 +Epoch: 101 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 102 test_accuracy_score: 0.7825 +Epoch: 102 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 103 test_accuracy_score: 0.7825 +Epoch: 103 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 104 test_accuracy_score: 0.7825 +Epoch: 104 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 105 test_accuracy_score: 0.7825 +Epoch: 105 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 106 test_accuracy_score: 0.7825 +Epoch: 106 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 107 test_accuracy_score: 0.7825 +Epoch: 107 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 108 test_accuracy_score: 0.7825 +Epoch: 108 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 109 test_accuracy_score: 0.7825 +Epoch: 109 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 110 test_accuracy_score: 0.7825 +Epoch: 110 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 111 test_accuracy_score: 0.7825 +Epoch: 111 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 112 test_accuracy_score: 0.7825 +Epoch: 112 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 113 test_accuracy_score: 0.7825 +Epoch: 113 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 114 test_accuracy_score: 0.7825 +Epoch: 114 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 115 test_accuracy_score: 0.7825 +Epoch: 115 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 116 test_accuracy_score: 0.7825 +Epoch: 116 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 117 test_accuracy_score: 0.7825 +Epoch: 117 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 118 test_accuracy_score: 0.7875 +Epoch: 118 test_average_metric: binary test_f1_score: 0.47204968944099374 +Epoch: 119 test_accuracy_score: 0.7875 +Epoch: 119 test_average_metric: binary test_f1_score: 0.47204968944099374 +Epoch: 120 test_accuracy_score: 0.7875 +Epoch: 120 test_average_metric: binary test_f1_score: 0.47204968944099374 +Epoch: 121 test_accuracy_score: 0.79 +Epoch: 121 test_average_metric: binary test_f1_score: 0.475 +Epoch: 122 test_accuracy_score: 0.79 +Epoch: 122 test_average_metric: binary test_f1_score: 0.475 +Epoch: 123 test_accuracy_score: 0.79 +Epoch: 123 test_average_metric: binary test_f1_score: 0.475 +Epoch: 124 test_accuracy_score: 0.79 +Epoch: 124 test_average_metric: binary test_f1_score: 0.475 +Epoch: 125 test_accuracy_score: 0.79 +Epoch: 125 test_average_metric: binary test_f1_score: 0.475 +Epoch: 126 test_accuracy_score: 0.79 +Epoch: 126 test_average_metric: binary test_f1_score: 0.475 +Epoch: 127 test_accuracy_score: 0.79 +Epoch: 127 test_average_metric: binary test_f1_score: 0.475 +Epoch: 128 test_accuracy_score: 0.79 +Epoch: 128 test_average_metric: binary test_f1_score: 0.475 +Epoch: 129 test_accuracy_score: 0.79 +Epoch: 129 test_average_metric: binary test_f1_score: 0.475 +Epoch: 130 test_accuracy_score: 0.79 +Epoch: 130 test_average_metric: binary test_f1_score: 0.475 +Epoch: 131 test_accuracy_score: 0.79 +Epoch: 131 test_average_metric: binary test_f1_score: 0.475 +Epoch: 132 test_accuracy_score: 0.79 +Epoch: 132 test_average_metric: binary test_f1_score: 0.475 +Epoch: 133 test_accuracy_score: 0.79 +Epoch: 133 test_average_metric: binary test_f1_score: 0.475 +Epoch: 134 test_accuracy_score: 0.7925 +Epoch: 134 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 135 test_accuracy_score: 0.7925 +Epoch: 135 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 136 test_accuracy_score: 0.7925 +Epoch: 136 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 137 test_accuracy_score: 0.7925 +Epoch: 137 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 138 test_accuracy_score: 0.7925 +Epoch: 138 test_average_metric: binary test_f1_score: 0.47133757961783435 +Epoch: 139 test_accuracy_score: 0.7925 +Epoch: 139 test_average_metric: binary test_f1_score: 0.47133757961783435 +Epoch: 140 test_accuracy_score: 0.7925 +Epoch: 140 test_average_metric: binary test_f1_score: 0.47133757961783435 +Epoch: 141 test_accuracy_score: 0.7925 +Epoch: 141 test_average_metric: binary test_f1_score: 0.47133757961783435 +Epoch: 142 test_accuracy_score: 0.7925 +Epoch: 142 test_average_metric: binary test_f1_score: 0.47133757961783435 +Epoch: 143 test_accuracy_score: 0.7925 +Epoch: 143 test_average_metric: binary test_f1_score: 0.47133757961783435 +Epoch: 144 test_accuracy_score: 0.7925 +Epoch: 144 test_average_metric: binary test_f1_score: 0.47133757961783435 +Epoch: 145 test_accuracy_score: 0.7925 +Epoch: 145 test_average_metric: binary test_f1_score: 0.47133757961783435 +Epoch: 146 test_accuracy_score: 0.7925 +Epoch: 146 test_average_metric: binary test_f1_score: 0.47133757961783435 +Epoch: 147 test_accuracy_score: 0.7925 +Epoch: 147 test_average_metric: binary test_f1_score: 0.47133757961783435 +Epoch: 148 test_accuracy_score: 0.7925 +Epoch: 148 test_average_metric: binary test_f1_score: 0.47133757961783435 +Epoch: 149 test_accuracy_score: 0.795 +Epoch: 149 test_average_metric: binary test_f1_score: 0.4810126582278481 +Epoch: 150 test_accuracy_score: 0.795 +Epoch: 150 test_average_metric: binary test_f1_score: 0.4810126582278481 +Epoch: 151 test_accuracy_score: 0.795 +Epoch: 151 test_average_metric: binary test_f1_score: 0.4810126582278481 +Epoch: 152 test_accuracy_score: 0.795 +Epoch: 152 test_average_metric: binary test_f1_score: 0.4810126582278481 +Epoch: 153 test_accuracy_score: 0.795 +Epoch: 153 test_average_metric: binary test_f1_score: 0.4810126582278481 +Epoch: 154 test_accuracy_score: 0.795 +Epoch: 154 test_average_metric: binary test_f1_score: 0.4810126582278481 +Epoch: 155 test_accuracy_score: 0.795 +Epoch: 155 test_average_metric: binary test_f1_score: 0.4810126582278481 +Epoch: 156 test_accuracy_score: 0.795 +Epoch: 156 test_average_metric: binary test_f1_score: 0.4810126582278481 +Epoch: 157 test_accuracy_score: 0.795 +Epoch: 157 test_average_metric: binary test_f1_score: 0.4810126582278481 +Epoch: 158 test_accuracy_score: 0.795 +Epoch: 158 test_average_metric: binary test_f1_score: 0.4810126582278481 +Epoch: 159 test_accuracy_score: 0.795 +Epoch: 159 test_average_metric: binary test_f1_score: 0.4810126582278481 +Epoch: 160 test_accuracy_score: 0.795 +Epoch: 160 test_average_metric: binary test_f1_score: 0.4810126582278481 +Epoch: 161 test_accuracy_score: 0.795 +Epoch: 161 test_average_metric: binary test_f1_score: 0.4810126582278481 +Epoch: 162 test_accuracy_score: 0.795 +Epoch: 162 test_average_metric: binary test_f1_score: 0.4810126582278481 +Epoch: 163 test_accuracy_score: 0.7925 +Epoch: 163 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 164 test_accuracy_score: 0.7925 +Epoch: 164 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 165 test_accuracy_score: 0.7925 +Epoch: 165 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 166 test_accuracy_score: 0.7925 +Epoch: 166 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 167 test_accuracy_score: 0.7925 +Epoch: 167 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 168 test_accuracy_score: 0.7925 +Epoch: 168 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 169 test_accuracy_score: 0.7925 +Epoch: 169 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 170 test_accuracy_score: 0.7925 +Epoch: 170 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 171 test_accuracy_score: 0.7925 +Epoch: 171 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 172 test_accuracy_score: 0.7925 +Epoch: 172 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 173 test_accuracy_score: 0.7925 +Epoch: 173 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 174 test_accuracy_score: 0.7925 +Epoch: 174 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 175 test_accuracy_score: 0.7925 +Epoch: 175 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 176 test_accuracy_score: 0.7925 +Epoch: 176 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 177 test_accuracy_score: 0.7925 +Epoch: 177 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 178 test_accuracy_score: 0.7925 +Epoch: 178 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 179 test_accuracy_score: 0.7925 +Epoch: 179 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 180 test_accuracy_score: 0.7925 +Epoch: 180 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 181 test_accuracy_score: 0.7925 +Epoch: 181 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 182 test_accuracy_score: 0.7925 +Epoch: 182 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 183 test_accuracy_score: 0.7925 +Epoch: 183 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 184 test_accuracy_score: 0.7925 +Epoch: 184 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 185 test_accuracy_score: 0.7925 +Epoch: 185 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 186 test_accuracy_score: 0.79 +Epoch: 186 test_average_metric: binary test_f1_score: 0.475 +Epoch: 187 test_accuracy_score: 0.79 +Epoch: 187 test_average_metric: binary test_f1_score: 0.475 +Epoch: 188 test_accuracy_score: 0.79 +Epoch: 188 test_average_metric: binary test_f1_score: 0.475 +Epoch: 189 test_accuracy_score: 0.79 +Epoch: 189 test_average_metric: binary test_f1_score: 0.475 +Epoch: 190 test_accuracy_score: 0.79 +Epoch: 190 test_average_metric: binary test_f1_score: 0.475 +Epoch: 191 test_accuracy_score: 0.79 +Epoch: 191 test_average_metric: binary test_f1_score: 0.475 +Epoch: 192 test_accuracy_score: 0.79 +Epoch: 192 test_average_metric: binary test_f1_score: 0.475 +Epoch: 193 test_accuracy_score: 0.79 +Epoch: 193 test_average_metric: binary test_f1_score: 0.475 +Epoch: 194 test_accuracy_score: 0.79 +Epoch: 194 test_average_metric: binary test_f1_score: 0.475 +Epoch: 195 test_accuracy_score: 0.79 +Epoch: 195 test_average_metric: binary test_f1_score: 0.475 +Epoch: 196 test_accuracy_score: 0.79 +Epoch: 196 test_average_metric: binary test_f1_score: 0.475 +Epoch: 197 test_accuracy_score: 0.7975 +Epoch: 197 test_average_metric: binary test_f1_score: 0.5030674846625766 +Epoch: 198 test_accuracy_score: 0.7975 +Epoch: 198 test_average_metric: binary test_f1_score: 0.5030674846625766 +Epoch: 199 test_accuracy_score: 0.7975 +Epoch: 199 test_average_metric: binary test_f1_score: 0.5030674846625766 +CAGE log: n_classes: 2 n_LFs: 16 n_epochs: 200 lr: 0.01 +Epoch: 0 test_accuracy_score: 0.795 +Epoch: 0 test_average_metric: binary test_f1_score: 0.4533333333333333 +Epoch: 1 test_accuracy_score: 0.7825 +Epoch: 1 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 2 test_accuracy_score: 0.7825 +Epoch: 2 test_average_metric: binary test_f1_score: 0.4387096774193548 +Epoch: 3 test_accuracy_score: 0.7825 +Epoch: 3 test_average_metric: binary test_f1_score: 0.4387096774193548 +Epoch: 4 test_accuracy_score: 0.7825 +Epoch: 4 test_average_metric: binary test_f1_score: 0.4387096774193548 +Epoch: 5 test_accuracy_score: 0.7825 +Epoch: 5 test_average_metric: binary test_f1_score: 0.4387096774193548 +Epoch: 6 test_accuracy_score: 0.7825 +Epoch: 6 test_average_metric: binary test_f1_score: 0.4387096774193548 +Epoch: 7 test_accuracy_score: 0.7825 +Epoch: 7 test_average_metric: binary test_f1_score: 0.4387096774193548 +Epoch: 8 test_accuracy_score: 0.785 +Epoch: 8 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 9 test_accuracy_score: 0.785 +Epoch: 9 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 10 test_accuracy_score: 0.785 +Epoch: 10 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 11 test_accuracy_score: 0.785 +Epoch: 11 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 12 test_accuracy_score: 0.785 +Epoch: 12 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 13 test_accuracy_score: 0.785 +Epoch: 13 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 14 test_accuracy_score: 0.785 +Epoch: 14 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 15 test_accuracy_score: 0.785 +Epoch: 15 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 16 test_accuracy_score: 0.785 +Epoch: 16 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 17 test_accuracy_score: 0.785 +Epoch: 17 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 18 test_accuracy_score: 0.785 +Epoch: 18 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 19 test_accuracy_score: 0.785 +Epoch: 19 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 20 test_accuracy_score: 0.785 +Epoch: 20 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 21 test_accuracy_score: 0.785 +Epoch: 21 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 22 test_accuracy_score: 0.785 +Epoch: 22 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 23 test_accuracy_score: 0.785 +Epoch: 23 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 24 test_accuracy_score: 0.785 +Epoch: 24 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 25 test_accuracy_score: 0.785 +Epoch: 25 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 26 test_accuracy_score: 0.785 +Epoch: 26 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 27 test_accuracy_score: 0.785 +Epoch: 27 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 28 test_accuracy_score: 0.785 +Epoch: 28 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 29 test_accuracy_score: 0.785 +Epoch: 29 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 30 test_accuracy_score: 0.785 +Epoch: 30 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 31 test_accuracy_score: 0.785 +Epoch: 31 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 32 test_accuracy_score: 0.785 +Epoch: 32 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 33 test_accuracy_score: 0.785 +Epoch: 33 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 34 test_accuracy_score: 0.785 +Epoch: 34 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 35 test_accuracy_score: 0.785 +Epoch: 35 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 36 test_accuracy_score: 0.785 +Epoch: 36 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 37 test_accuracy_score: 0.785 +Epoch: 37 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 38 test_accuracy_score: 0.785 +Epoch: 38 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 39 test_accuracy_score: 0.785 +Epoch: 39 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 40 test_accuracy_score: 0.785 +Epoch: 40 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 41 test_accuracy_score: 0.785 +Epoch: 41 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 42 test_accuracy_score: 0.785 +Epoch: 42 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 43 test_accuracy_score: 0.785 +Epoch: 43 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 44 test_accuracy_score: 0.785 +Epoch: 44 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 45 test_accuracy_score: 0.785 +Epoch: 45 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 46 test_accuracy_score: 0.785 +Epoch: 46 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 47 test_accuracy_score: 0.785 +Epoch: 47 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 48 test_accuracy_score: 0.785 +Epoch: 48 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 49 test_accuracy_score: 0.785 +Epoch: 49 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 50 test_accuracy_score: 0.785 +Epoch: 50 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 51 test_accuracy_score: 0.785 +Epoch: 51 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 52 test_accuracy_score: 0.785 +Epoch: 52 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 53 test_accuracy_score: 0.785 +Epoch: 53 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 54 test_accuracy_score: 0.785 +Epoch: 54 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 55 test_accuracy_score: 0.785 +Epoch: 55 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 56 test_accuracy_score: 0.785 +Epoch: 56 test_average_metric: binary test_f1_score: 0.4415584415584415 +Epoch: 57 test_accuracy_score: 0.7875 +Epoch: 57 test_average_metric: binary test_f1_score: 0.45161290322580644 +Epoch: 58 test_accuracy_score: 0.7875 +Epoch: 58 test_average_metric: binary test_f1_score: 0.45161290322580644 +Epoch: 59 test_accuracy_score: 0.7875 +Epoch: 59 test_average_metric: binary test_f1_score: 0.45161290322580644 +Epoch: 60 test_accuracy_score: 0.7875 +Epoch: 60 test_average_metric: binary test_f1_score: 0.45161290322580644 +Epoch: 61 test_accuracy_score: 0.7875 +Epoch: 61 test_average_metric: binary test_f1_score: 0.45161290322580644 +Epoch: 62 test_accuracy_score: 0.7875 +Epoch: 62 test_average_metric: binary test_f1_score: 0.45161290322580644 +Epoch: 63 test_accuracy_score: 0.7875 +Epoch: 63 test_average_metric: binary test_f1_score: 0.45161290322580644 +Epoch: 64 test_accuracy_score: 0.79 +Epoch: 64 test_average_metric: binary test_f1_score: 0.45454545454545453 +Epoch: 65 test_accuracy_score: 0.79 +Epoch: 65 test_average_metric: binary test_f1_score: 0.45454545454545453 +Epoch: 66 test_accuracy_score: 0.79 +Epoch: 66 test_average_metric: binary test_f1_score: 0.45454545454545453 +Epoch: 67 test_accuracy_score: 0.79 +Epoch: 67 test_average_metric: binary test_f1_score: 0.45454545454545453 +Epoch: 68 test_accuracy_score: 0.79 +Epoch: 68 test_average_metric: binary test_f1_score: 0.45454545454545453 +Epoch: 69 test_accuracy_score: 0.79 +Epoch: 69 test_average_metric: binary test_f1_score: 0.45454545454545453 +Epoch: 70 test_accuracy_score: 0.79 +Epoch: 70 test_average_metric: binary test_f1_score: 0.45454545454545453 +Epoch: 71 test_accuracy_score: 0.79 +Epoch: 71 test_average_metric: binary test_f1_score: 0.45454545454545453 +Epoch: 72 test_accuracy_score: 0.79 +Epoch: 72 test_average_metric: binary test_f1_score: 0.45454545454545453 +Epoch: 73 test_accuracy_score: 0.79 +Epoch: 73 test_average_metric: binary test_f1_score: 0.45454545454545453 +Epoch: 74 test_accuracy_score: 0.78 +Epoch: 74 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 75 test_accuracy_score: 0.78 +Epoch: 75 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 76 test_accuracy_score: 0.78 +Epoch: 76 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 77 test_accuracy_score: 0.78 +Epoch: 77 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 78 test_accuracy_score: 0.78 +Epoch: 78 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 79 test_accuracy_score: 0.78 +Epoch: 79 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 80 test_accuracy_score: 0.78 +Epoch: 80 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 81 test_accuracy_score: 0.78 +Epoch: 81 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 82 test_accuracy_score: 0.78 +Epoch: 82 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 83 test_accuracy_score: 0.78 +Epoch: 83 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 84 test_accuracy_score: 0.78 +Epoch: 84 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 85 test_accuracy_score: 0.78 +Epoch: 85 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 86 test_accuracy_score: 0.78 +Epoch: 86 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 87 test_accuracy_score: 0.78 +Epoch: 87 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 88 test_accuracy_score: 0.78 +Epoch: 88 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 89 test_accuracy_score: 0.78 +Epoch: 89 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 90 test_accuracy_score: 0.78 +Epoch: 90 test_average_metric: binary test_f1_score: 0.4634146341463415 +Epoch: 91 test_accuracy_score: 0.7825 +Epoch: 91 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 92 test_accuracy_score: 0.7825 +Epoch: 92 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 93 test_accuracy_score: 0.7825 +Epoch: 93 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 94 test_accuracy_score: 0.7825 +Epoch: 94 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 95 test_accuracy_score: 0.7825 +Epoch: 95 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 96 test_accuracy_score: 0.7825 +Epoch: 96 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 97 test_accuracy_score: 0.7825 +Epoch: 97 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 98 test_accuracy_score: 0.7825 +Epoch: 98 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 99 test_accuracy_score: 0.7825 +Epoch: 99 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 100 test_accuracy_score: 0.7825 +Epoch: 100 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 101 test_accuracy_score: 0.7825 +Epoch: 101 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 102 test_accuracy_score: 0.7825 +Epoch: 102 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 103 test_accuracy_score: 0.7825 +Epoch: 103 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 104 test_accuracy_score: 0.7825 +Epoch: 104 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 105 test_accuracy_score: 0.7825 +Epoch: 105 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 106 test_accuracy_score: 0.7825 +Epoch: 106 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 107 test_accuracy_score: 0.7825 +Epoch: 107 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 108 test_accuracy_score: 0.7825 +Epoch: 108 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 109 test_accuracy_score: 0.7825 +Epoch: 109 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 110 test_accuracy_score: 0.7825 +Epoch: 110 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 111 test_accuracy_score: 0.7825 +Epoch: 111 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 112 test_accuracy_score: 0.7825 +Epoch: 112 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 113 test_accuracy_score: 0.7825 +Epoch: 113 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 114 test_accuracy_score: 0.7825 +Epoch: 114 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 115 test_accuracy_score: 0.7825 +Epoch: 115 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 116 test_accuracy_score: 0.7825 +Epoch: 116 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 117 test_accuracy_score: 0.7825 +Epoch: 117 test_average_metric: binary test_f1_score: 0.4662576687116564 +Epoch: 118 test_accuracy_score: 0.7875 +Epoch: 118 test_average_metric: binary test_f1_score: 0.47204968944099374 +Epoch: 119 test_accuracy_score: 0.7875 +Epoch: 119 test_average_metric: binary test_f1_score: 0.47204968944099374 +Epoch: 120 test_accuracy_score: 0.7875 +Epoch: 120 test_average_metric: binary test_f1_score: 0.47204968944099374 +Epoch: 121 test_accuracy_score: 0.79 +Epoch: 121 test_average_metric: binary test_f1_score: 0.475 +Epoch: 122 test_accuracy_score: 0.79 +Epoch: 122 test_average_metric: binary test_f1_score: 0.475 +Epoch: 123 test_accuracy_score: 0.79 +Epoch: 123 test_average_metric: binary test_f1_score: 0.475 +Epoch: 124 test_accuracy_score: 0.79 +Epoch: 124 test_average_metric: binary test_f1_score: 0.475 +Epoch: 125 test_accuracy_score: 0.79 +Epoch: 125 test_average_metric: binary test_f1_score: 0.475 +Epoch: 126 test_accuracy_score: 0.79 +Epoch: 126 test_average_metric: binary test_f1_score: 0.475 +Epoch: 127 test_accuracy_score: 0.79 +Epoch: 127 test_average_metric: binary test_f1_score: 0.475 +Epoch: 128 test_accuracy_score: 0.79 +Epoch: 128 test_average_metric: binary test_f1_score: 0.475 +Epoch: 129 test_accuracy_score: 0.79 +Epoch: 129 test_average_metric: binary test_f1_score: 0.475 +Epoch: 130 test_accuracy_score: 0.79 +Epoch: 130 test_average_metric: binary test_f1_score: 0.475 +Epoch: 131 test_accuracy_score: 0.79 +Epoch: 131 test_average_metric: binary test_f1_score: 0.475 +Epoch: 132 test_accuracy_score: 0.79 +Epoch: 132 test_average_metric: binary test_f1_score: 0.475 +Epoch: 133 test_accuracy_score: 0.79 +Epoch: 133 test_average_metric: binary test_f1_score: 0.475 +Epoch: 134 test_accuracy_score: 0.7925 +Epoch: 134 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 135 test_accuracy_score: 0.7925 +Epoch: 135 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 136 test_accuracy_score: 0.7925 +Epoch: 136 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 137 test_accuracy_score: 0.7925 +Epoch: 137 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 138 test_accuracy_score: 0.7925 +Epoch: 138 test_average_metric: binary test_f1_score: 0.47133757961783435 +Epoch: 139 test_accuracy_score: 0.7925 +Epoch: 139 test_average_metric: binary test_f1_score: 0.47133757961783435 +Epoch: 140 test_accuracy_score: 0.7925 +Epoch: 140 test_average_metric: binary test_f1_score: 0.47133757961783435 +Epoch: 141 test_accuracy_score: 0.7925 +Epoch: 141 test_average_metric: binary test_f1_score: 0.47133757961783435 +Epoch: 142 test_accuracy_score: 0.7925 +Epoch: 142 test_average_metric: binary test_f1_score: 0.47133757961783435 +Epoch: 143 test_accuracy_score: 0.7925 +Epoch: 143 test_average_metric: binary test_f1_score: 0.47133757961783435 +Epoch: 144 test_accuracy_score: 0.7925 +Epoch: 144 test_average_metric: binary test_f1_score: 0.47133757961783435 +Epoch: 145 test_accuracy_score: 0.7925 +Epoch: 145 test_average_metric: binary test_f1_score: 0.47133757961783435 +Epoch: 146 test_accuracy_score: 0.7925 +Epoch: 146 test_average_metric: binary test_f1_score: 0.47133757961783435 +Epoch: 147 test_accuracy_score: 0.7925 +Epoch: 147 test_average_metric: binary test_f1_score: 0.47133757961783435 +Epoch: 148 test_accuracy_score: 0.7925 +Epoch: 148 test_average_metric: binary test_f1_score: 0.47133757961783435 +Epoch: 149 test_accuracy_score: 0.795 +Epoch: 149 test_average_metric: binary test_f1_score: 0.4810126582278481 +Epoch: 150 test_accuracy_score: 0.795 +Epoch: 150 test_average_metric: binary test_f1_score: 0.4810126582278481 +Epoch: 151 test_accuracy_score: 0.795 +Epoch: 151 test_average_metric: binary test_f1_score: 0.4810126582278481 +Epoch: 152 test_accuracy_score: 0.795 +Epoch: 152 test_average_metric: binary test_f1_score: 0.4810126582278481 +Epoch: 153 test_accuracy_score: 0.795 +Epoch: 153 test_average_metric: binary test_f1_score: 0.4810126582278481 +Epoch: 154 test_accuracy_score: 0.795 +Epoch: 154 test_average_metric: binary test_f1_score: 0.4810126582278481 +Epoch: 155 test_accuracy_score: 0.795 +Epoch: 155 test_average_metric: binary test_f1_score: 0.4810126582278481 +Epoch: 156 test_accuracy_score: 0.795 +Epoch: 156 test_average_metric: binary test_f1_score: 0.4810126582278481 +Epoch: 157 test_accuracy_score: 0.795 +Epoch: 157 test_average_metric: binary test_f1_score: 0.4810126582278481 +Epoch: 158 test_accuracy_score: 0.795 +Epoch: 158 test_average_metric: binary test_f1_score: 0.4810126582278481 +Epoch: 159 test_accuracy_score: 0.795 +Epoch: 159 test_average_metric: binary test_f1_score: 0.4810126582278481 +Epoch: 160 test_accuracy_score: 0.795 +Epoch: 160 test_average_metric: binary test_f1_score: 0.4810126582278481 +Epoch: 161 test_accuracy_score: 0.795 +Epoch: 161 test_average_metric: binary test_f1_score: 0.4810126582278481 +Epoch: 162 test_accuracy_score: 0.795 +Epoch: 162 test_average_metric: binary test_f1_score: 0.4810126582278481 +Epoch: 163 test_accuracy_score: 0.7925 +Epoch: 163 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 164 test_accuracy_score: 0.7925 +Epoch: 164 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 165 test_accuracy_score: 0.7925 +Epoch: 165 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 166 test_accuracy_score: 0.7925 +Epoch: 166 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 167 test_accuracy_score: 0.7925 +Epoch: 167 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 168 test_accuracy_score: 0.7925 +Epoch: 168 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 169 test_accuracy_score: 0.7925 +Epoch: 169 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 170 test_accuracy_score: 0.7925 +Epoch: 170 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 171 test_accuracy_score: 0.7925 +Epoch: 171 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 172 test_accuracy_score: 0.7925 +Epoch: 172 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 173 test_accuracy_score: 0.7925 +Epoch: 173 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 174 test_accuracy_score: 0.7925 +Epoch: 174 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 175 test_accuracy_score: 0.7925 +Epoch: 175 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 176 test_accuracy_score: 0.7925 +Epoch: 176 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 177 test_accuracy_score: 0.7925 +Epoch: 177 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 178 test_accuracy_score: 0.7925 +Epoch: 178 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 179 test_accuracy_score: 0.7925 +Epoch: 179 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 180 test_accuracy_score: 0.7925 +Epoch: 180 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 181 test_accuracy_score: 0.7925 +Epoch: 181 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 182 test_accuracy_score: 0.7925 +Epoch: 182 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 183 test_accuracy_score: 0.7925 +Epoch: 183 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 184 test_accuracy_score: 0.7925 +Epoch: 184 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 185 test_accuracy_score: 0.7925 +Epoch: 185 test_average_metric: binary test_f1_score: 0.47798742138364786 +Epoch: 186 test_accuracy_score: 0.79 +Epoch: 186 test_average_metric: binary test_f1_score: 0.475 +Epoch: 187 test_accuracy_score: 0.79 +Epoch: 187 test_average_metric: binary test_f1_score: 0.475 +Epoch: 188 test_accuracy_score: 0.79 +Epoch: 188 test_average_metric: binary test_f1_score: 0.475 +Epoch: 189 test_accuracy_score: 0.79 +Epoch: 189 test_average_metric: binary test_f1_score: 0.475 +Epoch: 190 test_accuracy_score: 0.79 +Epoch: 190 test_average_metric: binary test_f1_score: 0.475 +Epoch: 191 test_accuracy_score: 0.79 +Epoch: 191 test_average_metric: binary test_f1_score: 0.475 +Epoch: 192 test_accuracy_score: 0.79 +Epoch: 192 test_average_metric: binary test_f1_score: 0.475 +Epoch: 193 test_accuracy_score: 0.79 +Epoch: 193 test_average_metric: binary test_f1_score: 0.475 +Epoch: 194 test_accuracy_score: 0.79 +Epoch: 194 test_average_metric: binary test_f1_score: 0.475 +Epoch: 195 test_accuracy_score: 0.79 +Epoch: 195 test_average_metric: binary test_f1_score: 0.475 +Epoch: 196 test_accuracy_score: 0.79 +Epoch: 196 test_average_metric: binary test_f1_score: 0.475 +Epoch: 197 test_accuracy_score: 0.7975 +Epoch: 197 test_average_metric: binary test_f1_score: 0.5030674846625766 +Epoch: 198 test_accuracy_score: 0.7975 +Epoch: 198 test_average_metric: binary test_f1_score: 0.5030674846625766 +Epoch: 199 test_accuracy_score: 0.7975 +Epoch: 199 test_average_metric: binary test_f1_score: 0.5030674846625766 diff --git a/notebooks/SMS_SPAM/log/JL/jl_log_1.txt b/notebooks/SMS_SPAM/log/JL/jl_log_1.txt new file mode 100644 index 0000000..637fd98 --- /dev/null +++ b/notebooks/SMS_SPAM/log/JL/jl_log_1.txt @@ -0,0 +1,56 @@ +JL log: n_classes: 2 n_LFs: 16 n_features: 1024 n_hidden: 512 feature_model:nn lr_fm: 0.0005 lr_gm:0.01 use_accuracy_score: False n_epochs:100 start_len: 7 stop_len:10 +f1_score: Epoch: 0 gm_valid_score: 0.64 fm_valid_score: 0.33333333333333337 +f1_score: Epoch: 0 gm_test_score: 0.5365853658536585 fm_test_score: 0.2653061224489796 +f1_score: Epoch: 1 gm_valid_score: 0.64 fm_valid_score: 0.32075471698113206 +f1_score: Epoch: 2 gm_valid_score: 0.64 fm_valid_score: 0.4415584415584416 +f1_score: Epoch: 3 gm_valid_score: 0.64 fm_valid_score: 0.6415094339622641 +f1_score: Epoch: 4 gm_valid_score: 0.64 fm_valid_score: 0.4788732394366197 +f1_score: Epoch: 5 gm_valid_score: 0.64 fm_valid_score: 0.5074626865671642 +f1_score: Epoch: 5 gm_test_score: 0.5398773006134969 fm_test_score: 0.4474885844748858 +f1_score: Epoch: 6 gm_valid_score: 0.64 fm_valid_score: 0.4657534246575342 +f1_score: Epoch: 7 gm_valid_score: 0.64 fm_valid_score: 0.5964912280701754 +f1_score: Epoch: 8 gm_valid_score: 0.64 fm_valid_score: 0.6071428571428571 +f1_score: Epoch: 9 gm_valid_score: 0.64 fm_valid_score: 0.6666666666666666 +f1_score: Epoch: 10 gm_valid_score: 0.64 fm_valid_score: 0.4788732394366197 +f1_score: Epoch: 10 gm_test_score: 0.5508982035928145 fm_test_score: 0.39840637450199196 +f1_score: Epoch: 11 gm_valid_score: 0.64 fm_valid_score: 0.5925925925925927 +f1_score: Epoch: 12 gm_valid_score: 0.64 fm_valid_score: 0.4857142857142857 +f1_score: Epoch: 13 gm_valid_score: 0.64 fm_valid_score: 0.4473684210526315 +f1_score: Epoch: 14 gm_valid_score: 0.6037735849056604 fm_valid_score: 0.37777777777777777 +f1_score: Epoch: 15 gm_valid_score: 0.6037735849056604 fm_valid_score: 0.46376811594202905 +f1_score: Epoch: 15 gm_test_score: 0.5581395348837209 fm_test_score: 0.4137931034482759 +f1_score: Epoch: 16 gm_valid_score: 0.6037735849056604 fm_valid_score: 0.5074626865671642 +f1_score: Epoch: 17 gm_valid_score: 0.6037735849056604 fm_valid_score: 0.5074626865671642 +f1_score: Epoch: 18 gm_valid_score: 0.6037735849056604 fm_valid_score: 0.5074626865671642 +f1_score: Epoch: 19 gm_valid_score: 0.6037735849056604 fm_valid_score: 0.5483870967741935 +JL log: n_classes: 2 n_LFs: 16 n_features: 1024 n_hidden: 512 feature_model:nn lr_fm: 0.0005 lr_gm:0.01 use_accuracy_score: False n_epochs:100 start_len: 7 stop_len:10 +f1_score: Epoch: 0 gm_valid_score: 0.64 fm_valid_score: 0.3541666666666667 +f1_score: Epoch: 0 gm_test_score: 0.5365853658536585 fm_test_score: 0.2773333333333333 +f1_score: Epoch: 1 gm_valid_score: 0.64 fm_valid_score: 0.3090909090909091 +f1_score: Epoch: 2 gm_valid_score: 0.64 fm_valid_score: 0.425 +f1_score: Epoch: 3 gm_valid_score: 0.64 fm_valid_score: 0.34 +f1_score: Epoch: 4 gm_valid_score: 0.64 fm_valid_score: 0.3655913978494624 +f1_score: Epoch: 5 gm_valid_score: 0.64 fm_valid_score: 0.4415584415584416 +f1_score: Epoch: 5 gm_test_score: 0.5389221556886228 fm_test_score: 0.37362637362637363 +f1_score: Epoch: 6 gm_valid_score: 0.64 fm_valid_score: 0.40963855421686746 +f1_score: Epoch: 7 gm_valid_score: 0.64 fm_valid_score: 0.41463414634146345 +f1_score: Epoch: 8 gm_valid_score: 0.64 fm_valid_score: 0.4857142857142857 +f1_score: Epoch: 9 gm_valid_score: 0.64 fm_valid_score: 0.4415584415584416 +f1_score: Epoch: 10 gm_valid_score: 0.6037735849056604 fm_valid_score: 0.38202247191011235 +f1_score: Epoch: 10 gm_test_score: 0.5529411764705883 fm_test_score: 0.3132530120481928 +f1_score: Epoch: 11 gm_valid_score: 0.6037735849056604 fm_valid_score: 0.4788732394366197 +f1_score: Epoch: 12 gm_valid_score: 0.6037735849056604 fm_valid_score: 0.43589743589743585 +f1_score: Epoch: 13 gm_valid_score: 0.6037735849056604 fm_valid_score: 0.6808510638297872 +f1_score: Epoch: 14 gm_valid_score: 0.6037735849056604 fm_valid_score: 0.38202247191011235 +f1_score: Epoch: 15 gm_valid_score: 0.6037735849056604 fm_valid_score: 0.5396825396825397 +f1_score: Epoch: 15 gm_test_score: 0.56 fm_test_score: 0.4672897196261682 +f1_score: Epoch: 16 gm_valid_score: 0.6037735849056604 fm_valid_score: 0.37777777777777777 +f1_score: Epoch: 17 gm_valid_score: 0.6037735849056604 fm_valid_score: 0.5714285714285713 +f1_score: Epoch: 18 gm_valid_score: 0.6037735849056604 fm_valid_score: 0.4927536231884058 +f1_score: Epoch: 19 gm_valid_score: 0.6037735849056604 fm_valid_score: 0.38636363636363635 +f1_score: Epoch: 20 gm_valid_score: 0.6037735849056604 fm_valid_score: 0.4788732394366197 +f1_score: Epoch: 20 gm_test_score: 0.5536723163841807 fm_test_score: 0.42918454935622313 +f1_score: Epoch: 21 gm_valid_score: 0.6037735849056604 fm_valid_score: 0.5483870967741935 +f1_score: Epoch: 22 gm_valid_score: 0.6037735849056604 fm_valid_score: 0.37362637362637363 +f1_score: Epoch: 23 gm_valid_score: 0.6037735849056604 fm_valid_score: 0.4857142857142857 +f1_score: Epoch: 24 gm_valid_score: 0.6037735849056604 fm_valid_score: 0.4788732394366197 diff --git a/notebooks/SMS_SPAM/log/JL/sms_log_1.txt b/notebooks/SMS_SPAM/log/JL/sms_log_1.txt new file mode 100644 index 0000000..5ad9e7c --- /dev/null +++ b/notebooks/SMS_SPAM/log/JL/sms_log_1.txt @@ -0,0 +1,105 @@ +JL log: n_classes: 2 n_LFs: 16 n_features: 1024 n_hidden: 512 feature_model:nn lr_fm: 0.0005 lr_gm:0.01 use_accuracy_score: False n_epochs:100 start_len: 7 stop_len:10 +f1_score: Epoch: 0 gm_valid_score: 0.6666666666666667 fm_valid_score: 0.8421052631578947 +f1_score: Epoch: 0 gm_test_score: 0.5324675324675324 fm_test_score: 0.7384615384615384 +f1_score: Epoch: 1 gm_valid_score: 0.6666666666666667 fm_valid_score: 0.8947368421052632 +f1_score: Epoch: 2 gm_valid_score: 0.6666666666666667 fm_valid_score: 0.6666666666666666 +f1_score: Epoch: 3 gm_valid_score: 0.6666666666666667 fm_valid_score: 0.7391304347826086 +f1_score: Epoch: 4 gm_valid_score: 0.6818181818181819 fm_valid_score: 0.6799999999999999 +f1_score: Epoch: 5 gm_valid_score: 0.7111111111111111 fm_valid_score: 0.5230769230769231 +f1_score: Epoch: 5 gm_test_score: 0.5466666666666666 fm_test_score: 0.4533333333333334 +f1_score: Epoch: 6 gm_valid_score: 0.7111111111111111 fm_valid_score: 0.8095238095238095 +f1_score: Epoch: 7 gm_valid_score: 0.7272727272727272 fm_valid_score: 0.6938775510204082 +f1_score: Epoch: 8 gm_valid_score: 0.7272727272727272 fm_valid_score: 0.8292682926829268 +f1_score: Epoch: 9 gm_valid_score: 0.7272727272727272 fm_valid_score: 0.7083333333333333 +f1_score: Epoch: 10 gm_valid_score: 0.7272727272727272 fm_valid_score: 0.7555555555555554 +f1_score: Epoch: 10 gm_test_score: 0.5503355704697986 fm_test_score: 0.78125 +f1_score: Epoch: 11 gm_valid_score: 0.7272727272727272 fm_valid_score: 0.6415094339622641 +f1_score: Epoch: 12 gm_valid_score: 0.7272727272727272 fm_valid_score: 0.6538461538461539 +f1_score: Epoch: 13 gm_valid_score: 0.7111111111111111 fm_valid_score: 0.53125 +f1_score: Epoch: 14 gm_valid_score: 0.7111111111111111 fm_valid_score: 0.6538461538461539 +f1_score: Epoch: 15 gm_valid_score: 0.7111111111111111 fm_valid_score: 0.5151515151515151 +f1_score: Epoch: 15 gm_test_score: 0.5599999999999999 fm_test_score: 0.4727272727272727 +f1_score: Epoch: 16 gm_valid_score: 0.7111111111111111 fm_valid_score: 0.6538461538461539 +f1_score: Epoch: 17 gm_valid_score: 0.7111111111111111 fm_valid_score: 0.6415094339622641 +f1_score: Epoch: 18 gm_valid_score: 0.6808510638297872 fm_valid_score: 0.6938775510204082 +f1_score: Epoch: 19 gm_valid_score: 0.6808510638297872 fm_valid_score: 0.41975308641975306 +JL log: n_classes: 2 n_LFs: 16 n_features: 1024 n_hidden: 512 feature_model:lr lr_fm: 0.0005 lr_gm:0.01 use_accuracy_score: False n_epochs:100 start_len: 7 stop_len:10 +f1_score: Epoch: 0 gm_valid_score: 0.6521739130434783 fm_valid_score: 0.5483870967741935 +f1_score: Epoch: 0 gm_test_score: 0.5228758169934641 fm_test_score: 0.5053763440860216 +f1_score: Epoch: 1 gm_valid_score: 0.6530612244897959 fm_valid_score: 0.6799999999999999 +f1_score: Epoch: 2 gm_valid_score: 0.6808510638297872 fm_valid_score: 0.8717948717948718 +f1_score: Epoch: 3 gm_valid_score: 0.6521739130434783 fm_valid_score: 0.8947368421052632 +f1_score: Epoch: 4 gm_valid_score: 0.6956521739130435 fm_valid_score: 0.8947368421052632 +f1_score: Epoch: 5 gm_valid_score: 0.6818181818181819 fm_valid_score: 0.8947368421052632 +f1_score: Epoch: 5 gm_test_score: 0.5333333333333333 fm_test_score: 0.8620689655172413 +f1_score: Epoch: 6 gm_valid_score: 0.6818181818181819 fm_valid_score: 0.8947368421052632 +f1_score: Epoch: 7 gm_valid_score: 0.6976744186046512 fm_valid_score: 0.9714285714285714 +f1_score: Epoch: 8 gm_valid_score: 0.6976744186046512 fm_valid_score: 0.8947368421052632 +f1_score: Epoch: 9 gm_valid_score: 0.6976744186046512 fm_valid_score: 0.9714285714285714 +f1_score: Epoch: 10 gm_valid_score: 0.6976744186046512 fm_valid_score: 0.9714285714285714 +f1_score: Epoch: 10 gm_test_score: 0.54421768707483 fm_test_score: 0.8521739130434781 +f1_score: Epoch: 11 gm_valid_score: 0.7272727272727272 fm_valid_score: 0.9714285714285714 +f1_score: Epoch: 12 gm_valid_score: 0.7272727272727272 fm_valid_score: 0.9444444444444444 +f1_score: Epoch: 13 gm_valid_score: 0.7272727272727272 fm_valid_score: 0.9444444444444444 +f1_score: Epoch: 14 gm_valid_score: 0.6976744186046512 fm_valid_score: 0.9444444444444444 +f1_score: Epoch: 15 gm_valid_score: 0.6976744186046512 fm_valid_score: 0.9411764705882353 +f1_score: Epoch: 15 gm_test_score: 0.563758389261745 fm_test_score: 0.8695652173913043 +f1_score: Epoch: 16 gm_valid_score: 0.6818181818181819 fm_valid_score: 0.9444444444444444 +f1_score: Epoch: 17 gm_valid_score: 0.6818181818181819 fm_valid_score: 0.9714285714285714 +f1_score: Epoch: 18 gm_valid_score: 0.6818181818181819 fm_valid_score: 0.9444444444444444 +f1_score: Epoch: 19 gm_valid_score: 0.6818181818181819 fm_valid_score: 0.9444444444444444 +f1_score: Epoch: 20 gm_valid_score: 0.6818181818181819 fm_valid_score: 0.9714285714285714 +f1_score: Epoch: 20 gm_test_score: 0.563758389261745 fm_test_score: 0.8448275862068965 +JL log: n_classes: 2 n_LFs: 16 n_features: 1024 n_hidden: 512 feature_model:nn lr_fm: 0.0005 lr_gm:0.01 use_accuracy_score: False n_epochs:100 start_len: 7 stop_len:10 +f1_score: Epoch: 0 gm_valid_score: 0.6666666666666667 fm_valid_score: 0.7391304347826086 +f1_score: Epoch: 0 gm_test_score: 0.5194805194805195 fm_test_score: 0.5666666666666667 +f1_score: Epoch: 1 gm_valid_score: 0.6666666666666667 fm_valid_score: 0.85 +f1_score: Epoch: 2 gm_valid_score: 0.6666666666666667 fm_valid_score: 0.7555555555555554 +f1_score: Epoch: 3 gm_valid_score: 0.6818181818181819 fm_valid_score: 0.7555555555555554 +f1_score: Epoch: 4 gm_valid_score: 0.6818181818181819 fm_valid_score: 0.8421052631578947 +f1_score: Epoch: 5 gm_valid_score: 0.6818181818181819 fm_valid_score: 0.8648648648648648 +f1_score: Epoch: 5 gm_test_score: 0.5333333333333333 fm_test_score: 0.8392857142857143 +f1_score: Epoch: 6 gm_valid_score: 0.6976744186046512 fm_valid_score: 0.5862068965517241 +f1_score: Epoch: 7 gm_valid_score: 0.6976744186046512 fm_valid_score: 0.6181818181818182 +f1_score: Epoch: 8 gm_valid_score: 0.6976744186046512 fm_valid_score: 0.7083333333333333 +f1_score: Epoch: 9 gm_valid_score: 0.7272727272727272 fm_valid_score: 0.7234042553191489 +f1_score: Epoch: 10 gm_valid_score: 0.7272727272727272 fm_valid_score: 0.7391304347826086 +f1_score: Epoch: 10 gm_test_score: 0.5540540540540541 fm_test_score: 0.6944444444444445 +f1_score: Epoch: 11 gm_valid_score: 0.7272727272727272 fm_valid_score: 0.6181818181818182 +f1_score: Epoch: 12 gm_valid_score: 0.7272727272727272 fm_valid_score: 0.6799999999999999 +f1_score: Epoch: 13 gm_valid_score: 0.7272727272727272 fm_valid_score: 0.7234042553191489 +f1_score: Epoch: 14 gm_valid_score: 0.7111111111111111 fm_valid_score: 0.6071428571428571 +f1_score: Epoch: 15 gm_valid_score: 0.7111111111111111 fm_valid_score: 0.53125 +f1_score: Epoch: 15 gm_test_score: 0.5599999999999999 fm_test_score: 0.5157894736842106 +f1_score: Epoch: 16 gm_valid_score: 0.7111111111111111 fm_valid_score: 0.5 +f1_score: Epoch: 17 gm_valid_score: 0.7111111111111111 fm_valid_score: 0.5573770491803279 +f1_score: Epoch: 18 gm_valid_score: 0.7111111111111111 fm_valid_score: 0.6799999999999999 +f1_score: Epoch: 19 gm_valid_score: 0.7111111111111111 fm_valid_score: 0.6181818181818182 +f1_score: Epoch: 20 gm_valid_score: 0.6521739130434783 fm_valid_score: 0.5964912280701754 +f1_score: Epoch: 20 gm_test_score: 0.5605095541401275 fm_test_score: 0.620253164556962 +f1_score: Epoch: 21 gm_valid_score: 0.6521739130434783 fm_valid_score: 0.5 +JL log: n_classes: 2 n_LFs: 16 n_features: 1024 n_hidden: 512 feature_model:nn lr_fm: 0.0005 lr_gm:0.01 use_accuracy_score: False n_epochs:100 start_len: 7 stop_len:10 +f1_score: Epoch: 0 gm_valid_score: 0.6666666666666667 fm_valid_score: 0.6071428571428571 +f1_score: Epoch: 0 gm_test_score: 0.5324675324675324 fm_test_score: 0.5230769230769231 +f1_score: Epoch: 1 gm_valid_score: 0.6666666666666667 fm_valid_score: 0.8823529411764706 +f1_score: Epoch: 2 gm_valid_score: 0.6666666666666667 fm_valid_score: 0.6181818181818182 +f1_score: Epoch: 3 gm_valid_score: 0.6818181818181819 fm_valid_score: 0.8095238095238095 +f1_score: Epoch: 4 gm_valid_score: 0.6818181818181819 fm_valid_score: 0.7083333333333333 +f1_score: Epoch: 5 gm_valid_score: 0.6818181818181819 fm_valid_score: 0.744186046511628 +f1_score: Epoch: 5 gm_test_score: 0.5369127516778524 fm_test_score: 0.7669172932330828 +f1_score: Epoch: 6 gm_valid_score: 0.6976744186046512 fm_valid_score: 0.7555555555555554 +f1_score: Epoch: 7 gm_valid_score: 0.6976744186046512 fm_valid_score: 0.5666666666666667 +f1_score: Epoch: 8 gm_valid_score: 0.6976744186046512 fm_valid_score: 0.6938775510204082 +f1_score: Epoch: 9 gm_valid_score: 0.6976744186046512 fm_valid_score: 0.7391304347826086 +f1_score: Epoch: 10 gm_valid_score: 0.7272727272727272 fm_valid_score: 0.7083333333333333 +f1_score: Epoch: 10 gm_test_score: 0.5540540540540541 fm_test_score: 0.6802721088435374 +f1_score: Epoch: 11 gm_valid_score: 0.7272727272727272 fm_valid_score: 0.6071428571428571 +f1_score: Epoch: 12 gm_valid_score: 0.7272727272727272 fm_valid_score: 0.6415094339622641 +f1_score: Epoch: 13 gm_valid_score: 0.7111111111111111 fm_valid_score: 0.5151515151515151 +f1_score: Epoch: 14 gm_valid_score: 0.7111111111111111 fm_valid_score: 0.6415094339622641 +f1_score: Epoch: 15 gm_valid_score: 0.7111111111111111 fm_valid_score: 0.5964912280701754 +f1_score: Epoch: 15 gm_test_score: 0.5599999999999999 fm_test_score: 0.5714285714285715 +f1_score: Epoch: 16 gm_valid_score: 0.7111111111111111 fm_valid_score: 0.6799999999999999 +f1_score: Epoch: 17 gm_valid_score: 0.7111111111111111 fm_valid_score: 0.6799999999999999 +f1_score: Epoch: 18 gm_valid_score: 0.7111111111111111 fm_valid_score: 0.6538461538461539 +f1_score: Epoch: 19 gm_valid_score: 0.7111111111111111 fm_valid_score: 0.5396825396825397 diff --git a/notebooks/SMS_SPAM/log/hls/f_d_0.1_0.1_1.txt b/notebooks/SMS_SPAM/log/hls/f_d_0.1_0.1_1.txt new file mode 100644 index 0000000..0ebbc1d --- /dev/null +++ b/notebooks/SMS_SPAM/log/hls/f_d_0.1_0.1_1.txt @@ -0,0 +1,191 @@ +Loading from hoff ../../examples/SMS_SPAM/data_pipeline/sms_pickle_L.pkl +batch size 100 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 100 +len_r 100 +-------------------------- +Working with l +-------------------------- +Working with L +-------------------------- +Loading from hoff ../../examples/SMS_SPAM/data_pipeline/sms_pickle_U.pkl +batch size 5174 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 5174 +len_r 5174 +-------------------------- +Working with l +-------------------------- +Working with L +L is empty +-------------------------- +No valid label found for rule: 2 +No valid label found for rule: 4 +No valid label found for rule: 6 +Rule classes: [0, 0, 2, 1, 2, 1, 2, 0, 0, 0, 0, 1, 1, 1, 1, 0] +length of covered U: 2984 +Size of d before oversampling: 100 +Size of U (covered) : 2984 +Size of d after oversampling: 1000 +Size of d_U after combining: 3984 +Loading 100 elements from d +num instances in d: 1000 +Loading from hoff ../../examples/SMS_SPAM/data_pipeline/sms_pickle_V.pkl +batch size 100 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 100 +len_r 100 +-------------------------- +Working with l +-------------------------- +Working with L +-------------------------- +Setting value of d to 0 for test data +test_w len: 64 +test_w len: 64 +Number of features: 1024 +Number of classes: 2 +Print num of rules to train: 16 +Print num of rules: 16 + + + +Found prev best metric for run type f_d: 1.000 +best metrics dict: {'f1_score_1': 1.0, 'precision_1': 1.0, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([1., 1.]), 'precision': array([1., 1.]), 'recall': array([1., 1.]), 'support': array([11, 89]), 'avg_f1_score': 1.0, 'avg_precision': 1.0, 'avg_recall': 1.0, 'accuracy': 1.0, 'epoch': 2.0, 'f_d_global_step': 124} +Found prev best metric for run type f_d_U: 1.000 +best metrics dict: {'f1_score_1': 1.0, 'precision_1': 1.0, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([1., 1.]), 'precision': array([1., 1.]), 'recall': array([1., 1.]), 'support': array([11, 89]), 'avg_f1_score': 1.0, 'avg_precision': 1.0, 'avg_recall': 1.0, 'accuracy': 1.0, 'epoch': 3.0, 'f_d_global_step': 372} +[ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" +] +Run mode is f_d +training f on d +num_instances: 1000 +batch_size: 16 +total_batch: 62 +remaining: 8 +total_batch: 62 +Optimization started for f_d! +Batch size: 16! +Batches per epoch : 62! +Number of epochs: 4! + +========== epoch : 0 ============ + +cost: 0.22806530349677614 + +patience: 0 + + +metrics_dict: {'f1_score_1': 0.9888888888888888, 'precision_1': 0.978021978021978, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([0.900, 0.989]), 'precision': array([1.000, 0.978]), 'recall': array([0.818, 1.000]), 'support': array([11, 89]), 'avg_f1_score': 0.9444444444444444, 'avg_precision': 0.989010989010989, 'avg_recall': 0.9090909090909092, 'accuracy': 0.98, 'epoch': 1.0, 'f_d_global_step': 62} + +Reporting f_d metrics to tensorboard +Not saving metrics dict. Best metric value is 1.0 Current is: 0.98 + +Saved MRU checkpoint to path: ./checkpoint/hls-model-62 + +Saved new best checkpoint to path: ./checkpoint/f_d/best.ckpt-62 + + +========== epoch : 1 ============ + +cost: 0.02629058947481568 + +patience: 1 + + +metrics_dict: {'f1_score_1': 0.9888888888888888, 'precision_1': 0.978021978021978, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([0.900, 0.989]), 'precision': array([1.000, 0.978]), 'recall': array([0.818, 1.000]), 'support': array([11, 89]), 'avg_f1_score': 0.9444444444444444, 'avg_precision': 0.989010989010989, 'avg_recall': 0.9090909090909092, 'accuracy': 0.98, 'epoch': 2.0, 'f_d_global_step': 124} + +Reporting f_d metrics to tensorboard +Not saving metrics dict. Best metric value is 1.0 Current is: 0.98 + +Saved MRU checkpoint to path: ./checkpoint/hls-model-124 + +No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: ./checkpoint/f_d/best.ckpt-62 + + +========== epoch : 2 ============ + +cost: 0.0015708127307481202 + +patience: 2 + + +metrics_dict: {'f1_score_1': 0.9888888888888888, 'precision_1': 0.978021978021978, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([0.900, 0.989]), 'precision': array([1.000, 0.978]), 'recall': array([0.818, 1.000]), 'support': array([11, 89]), 'avg_f1_score': 0.9444444444444444, 'avg_precision': 0.989010989010989, 'avg_recall': 0.9090909090909092, 'accuracy': 0.98, 'epoch': 3.0, 'f_d_global_step': 186} + +Reporting f_d metrics to tensorboard +Not saving metrics dict. Best metric value is 1.0 Current is: 0.98 + +Saved MRU checkpoint to path: ./checkpoint/hls-model-186 + +No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: ./checkpoint/f_d/best.ckpt-62 + + +========== epoch : 3 ============ + +cost: 0.0005215905953997619 + +patience: 3 + + +metrics_dict: {'f1_score_1': 0.9888888888888888, 'precision_1': 0.978021978021978, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([0.900, 0.989]), 'precision': array([1.000, 0.978]), 'recall': array([0.818, 1.000]), 'support': array([11, 89]), 'avg_f1_score': 0.9444444444444444, 'avg_precision': 0.989010989010989, 'avg_recall': 0.9090909090909092, 'accuracy': 0.98, 'epoch': 4.0, 'f_d_global_step': 248} + +Reporting f_d metrics to tensorboard +Not saving metrics dict. Best metric value is 1.0 Current is: 0.98 + +Saved MRU checkpoint to path: ./checkpoint/hls-model-248 + +No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: ./checkpoint/f_d/best.ckpt-62 + +Optimization Finished for f_d! diff --git a/notebooks/SMS_SPAM/log/hls/gcross_snorkel_0.1_0.1_1.txt b/notebooks/SMS_SPAM/log/hls/gcross_snorkel_0.1_0.1_1.txt new file mode 100644 index 0000000..7ea6906 --- /dev/null +++ b/notebooks/SMS_SPAM/log/hls/gcross_snorkel_0.1_0.1_1.txt @@ -0,0 +1,156 @@ +Loading from hoff ../../examples/SMS_SPAM/data_pipeline/sms_pickle_L.pkl +batch size 100 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 100 +len_r 100 +-------------------------- +Working with l +-------------------------- +Working with L +-------------------------- +Loading from hoff ../../examples/SMS_SPAM/data_pipeline/sms_pickle_U.pkl +batch size 5174 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 5174 +len_r 5174 +-------------------------- +Working with l +-------------------------- +Working with L +L is empty +-------------------------- +No valid label found for rule: 2 +No valid label found for rule: 4 +No valid label found for rule: 6 +Rule classes: [0, 0, 2, 1, 2, 1, 2, 0, 0, 0, 0, 1, 1, 1, 1, 0] +length of covered U: 2984 +Size of d before oversampling: 100 +Size of U (covered) : 2984 +Size of d after oversampling: 1000 +Size of d_U after combining: 3984 +Loading 100 elements from d +num instances in d: 1000 +Loading from hoff ../../examples/SMS_SPAM/data_pipeline/sms_pickle_V.pkl +batch size 100 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 100 +len_r 100 +-------------------------- +Working with l +-------------------------- +Working with L +-------------------------- +Setting value of d to 0 for test data +test_w len: 64 +test_w len: 64 +Number of features: 1024 +Number of classes: 2 +Print num of rules to train: 16 +Print num of rules: 16 + + + +Found prev best metric for run type f_d: 1.000 +best metrics dict: {'f1_score_1': 1.0, 'precision_1': 1.0, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([1., 1.]), 'precision': array([1., 1.]), 'recall': array([1., 1.]), 'support': array([11, 89]), 'avg_f1_score': 1.0, 'avg_precision': 1.0, 'avg_recall': 1.0, 'accuracy': 1.0, 'epoch': 2.0, 'f_d_global_step': 124} +Found prev best metric for run type f_d_U: 1.000 +best metrics dict: {'f1_score_1': 1.0, 'precision_1': 1.0, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([1., 1.]), 'precision': array([1., 1.]), 'recall': array([1., 1.]), 'support': array([11, 89]), 'avg_f1_score': 1.0, 'avg_precision': 1.0, 'avg_recall': 1.0, 'accuracy': 1.0, 'epoch': 3.0, 'f_d_global_step': 372} +[ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" +] +Run mode is gcross_snorkel +gcross_snorkel +num_instances: 3984 +batch_size: 32 +total_batch: 124 +remaining: 16 +total_batch: 124 +LABEL MODEL NOT SAVED +Checkpoint file does not exist +Saved new best checkpoint to path: /tmp/best_ckpt_0.859894/foo-bar/best.ckpt-51 +Restoring best checkpoint from path: /tmp/best_ckpt_0.859894/foo-bar/best.ckpt-51 +Saved new best checkpoint to path: /tmp/best_ckpt_0.859894/foo-bar/best.ckpt-52 +Restoring best checkpoint from path: /tmp/best_ckpt_0.859894/foo-bar/best.ckpt-51 +Saved new best checkpoint to path: /tmp/best_ckpt_0.859894/foo-bar/best.ckpt-53 +Saved new best checkpoint to path: /tmp/best_ckpt_0.859894/foo-bar/best.ckpt-54 +Restoring best checkpoint from path: /tmp/best_ckpt_0.859894/foo-bar/best.ckpt-53 +Best ckpt path: /tmp/best_ckpt_0.010939/best.ckpt-13 +Best ckpt path: /tmp/best_ckpt_0.010939/best.ckpt-13 +Best ckpt path: /tmp/best_ckpt_0.010939/best.ckpt-16 +Best ckpt path: /tmp/best_ckpt_0.010939/best.ckpt-15 +Saved MRU checkpoint to path: /tmp/checkpoints/hls-model +Restoring checkpoint from path: /tmp/checkpoints/hls-model +Restoring checkpoint from path: /tmp/checkpoints/hls-model +Saved MRU checkpoint to path: /tmp/checkpoints_0.040903/hls-model-11 +Restoring checkpoint from path: /tmp/checkpoints_0.040903/hls-model-11 +Saved MRU checkpoint to path: /tmp/checkpoints_0.040903/hls-model-5 +Restoring checkpoint from path: /tmp/checkpoints_0.040903/hls-model-5 +Saved MRU checkpoint to path: /tmp/checkpoints_0.413632/hls-model-11 +Restoring checkpoint from path: /tmp/checkpoints_0.413632/hls-model-11 +Saved MRU checkpoint to path: /tmp/checkpoints_0.413632/hls-model-5 +Restoring checkpoint from path: /tmp/checkpoints_0.413632/hls-model-5 diff --git a/notebooks/SMS_SPAM/log/hls/implication_0.1_0.1_1.txt b/notebooks/SMS_SPAM/log/hls/implication_0.1_0.1_1.txt new file mode 100644 index 0000000..0dc6216 --- /dev/null +++ b/notebooks/SMS_SPAM/log/hls/implication_0.1_0.1_1.txt @@ -0,0 +1,378 @@ +Loading from hoff ../../examples/SMS_SPAM/data_pipeline/sms_pickle_L.pkl +batch size 100 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 100 +len_r 100 +-------------------------- +Working with l +-------------------------- +Working with L +-------------------------- +Loading from hoff ../../examples/SMS_SPAM/data_pipeline/sms_pickle_U.pkl +batch size 5174 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 5174 +len_r 5174 +-------------------------- +Working with l +-------------------------- +Working with L +L is empty +-------------------------- +No valid label found for rule: 2 +No valid label found for rule: 4 +No valid label found for rule: 6 +Rule classes: [0, 0, 2, 1, 2, 1, 2, 0, 0, 0, 0, 1, 1, 1, 1, 0] +length of covered U: 2984 +Size of d before oversampling: 100 +Size of U (covered) : 2984 +Size of d after oversampling: 1000 +Size of d_U after combining: 3984 +Loading 100 elements from d +num instances in d: 1000 +Loading from hoff ../../examples/SMS_SPAM/data_pipeline/sms_pickle_V.pkl +batch size 100 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 100 +len_r 100 +-------------------------- +Working with l +-------------------------- +Working with L +-------------------------- +Setting value of d to 0 for test data +test_w len: 64 +test_w len: 64 +Number of features: 1024 +Number of classes: 2 +Print num of rules to train: 16 +Print num of rules: 16 + + + +Found prev best metric for run type f_d: 1.000 +best metrics dict: {'f1_score_1': 1.0, 'precision_1': 1.0, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([1., 1.]), 'precision': array([1., 1.]), 'recall': array([1., 1.]), 'support': array([11, 89]), 'avg_f1_score': 1.0, 'avg_precision': 1.0, 'avg_recall': 1.0, 'accuracy': 1.0, 'epoch': 2.0, 'f_d_global_step': 124} +Found prev best metric for run type f_d_U: 1.000 +best metrics dict: {'f1_score_1': 1.0, 'precision_1': 1.0, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([1., 1.]), 'precision': array([1., 1.]), 'recall': array([1., 1.]), 'support': array([11, 89]), 'avg_f1_score': 1.0, 'avg_precision': 1.0, 'avg_recall': 1.0, 'accuracy': 1.0, 'epoch': 3.0, 'f_d_global_step': 372} +[ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" +] +Run mode is implication +implication training started +num_instances: 3984 +batch_size: 32 +total_batch: 124 +remaining: 16 +total_batch: 124 +Optimization started for f_d_U with implication loss! +Batch size: 32! +Batches per epoch : 124! +Number of epochs: 4! + +========== epoch : 0 ============ + +cost: 0.26255477961873824 + +patience: 0 + + +metrics_dict: {'f1_score_1': 1.0, 'precision_1': 1.0, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([1.000, 1.000]), 'precision': array([1.000, 1.000]), 'recall': array([1.000, 1.000]), 'support': array([11, 89]), 'avg_f1_score': 1.0, 'avg_precision': 1.0, 'avg_recall': 1.0, 'accuracy': 1.0, 'epoch': 1.0, 'f_d_global_step': 124} + +Reporting f_d metrics to tensorboard +Not saving metrics dict. Best metric value is 1.0 Current is: 1.0 + +Saved MRU checkpoint to path: ./checkpoint/hls-model-124 + +Saved new best checkpoint to path: ./checkpoint/f_d_U/best.ckpt-124 + + +========== epoch : 1 ============ + +cost: 0.13737973339495163 + +patience: 1 + + +metrics_dict: {'f1_score_1': 1.0, 'precision_1': 1.0, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([1.000, 1.000]), 'precision': array([1.000, 1.000]), 'recall': array([1.000, 1.000]), 'support': array([11, 89]), 'avg_f1_score': 1.0, 'avg_precision': 1.0, 'avg_recall': 1.0, 'accuracy': 1.0, 'epoch': 2.0, 'f_d_global_step': 248} + +Reporting f_d metrics to tensorboard +Not saving metrics dict. Best metric value is 1.0 Current is: 1.0 + +Saved MRU checkpoint to path: ./checkpoint/hls-model-249 + +No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: ./checkpoint/f_d_U/best.ckpt-124 + + +========== epoch : 2 ============ + +cost: 0.10762433038889282 + +patience: 2 + + +metrics_dict: {'f1_score_1': 1.0, 'precision_1': 1.0, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([1.000, 1.000]), 'precision': array([1.000, 1.000]), 'recall': array([1.000, 1.000]), 'support': array([11, 89]), 'avg_f1_score': 1.0, 'avg_precision': 1.0, 'avg_recall': 1.0, 'accuracy': 1.0, 'epoch': 3.0, 'f_d_global_step': 372} + +Reporting f_d metrics to tensorboard +Not saving metrics dict. Best metric value is 1.0 Current is: 1.0 + +Saved MRU checkpoint to path: ./checkpoint/hls-model-374 + +No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: ./checkpoint/f_d_U/best.ckpt-124 + + +========== epoch : 3 ============ + +cost: 0.08178236118739385 + +patience: 3 + + +metrics_dict: {'f1_score_1': 1.0, 'precision_1': 1.0, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([1.000, 1.000]), 'precision': array([1.000, 1.000]), 'recall': array([1.000, 1.000]), 'support': array([11, 89]), 'avg_f1_score': 1.0, 'avg_precision': 1.0, 'avg_recall': 1.0, 'accuracy': 1.0, 'epoch': 4.0, 'f_d_global_step': 496} + +Reporting f_d metrics to tensorboard +Not saving metrics dict. Best metric value is 1.0 Current is: 1.0 + +Saved MRU checkpoint to path: ./checkpoint/hls-model-499 + +No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: ./checkpoint/f_d_U/best.ckpt-124 + +Optimization Finished for f_d_U! +implication training ended +implication training started +num_instances: 3984 +batch_size: 32 +total_batch: 124 +remaining: 16 +total_batch: 124 +Optimization started for f_d_U with implication loss! +Batch size: 32! +Batches per epoch : 124! +Number of epochs: 4! + +========== epoch : 0 ============ + +cost: 0.06641002540850277 + +patience: 0 + + +metrics_dict: {'f1_score_1': 1.0, 'precision_1': 1.0, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([1.000, 1.000]), 'precision': array([1.000, 1.000]), 'recall': array([1.000, 1.000]), 'support': array([11, 89]), 'avg_f1_score': 1.0, 'avg_precision': 1.0, 'avg_recall': 1.0, 'accuracy': 1.0, 'epoch': 5.0, 'f_d_global_step': 620} + +Reporting f_d metrics to tensorboard +Not saving metrics dict. Best metric value is 1.0 Current is: 1.0 + +Saved MRU checkpoint to path: ./checkpoint/hls-model-124 + +No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: ./checkpoint/f_d_U/best.ckpt-124 + + +========== epoch : 1 ============ + +cost: 0.06447562962843692 + +patience: 1 + + +metrics_dict: {'f1_score_1': 1.0, 'precision_1': 1.0, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([1.000, 1.000]), 'precision': array([1.000, 1.000]), 'recall': array([1.000, 1.000]), 'support': array([11, 89]), 'avg_f1_score': 1.0, 'avg_precision': 1.0, 'avg_recall': 1.0, 'accuracy': 1.0, 'epoch': 6.0, 'f_d_global_step': 744} + +Reporting f_d metrics to tensorboard +Not saving metrics dict. Best metric value is 1.0 Current is: 1.0 + +Saved MRU checkpoint to path: ./checkpoint/hls-model-249 + +No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: ./checkpoint/f_d_U/best.ckpt-124 + + +========== epoch : 2 ============ + +cost: 0.045984012404299016 + +patience: 2 + + +metrics_dict: {'f1_score_1': 1.0, 'precision_1': 1.0, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([1.000, 1.000]), 'precision': array([1.000, 1.000]), 'recall': array([1.000, 1.000]), 'support': array([11, 89]), 'avg_f1_score': 1.0, 'avg_precision': 1.0, 'avg_recall': 1.0, 'accuracy': 1.0, 'epoch': 7.0, 'f_d_global_step': 868} + +Reporting f_d metrics to tensorboard +Not saving metrics dict. Best metric value is 1.0 Current is: 1.0 + +Saved MRU checkpoint to path: ./checkpoint/hls-model-374 + +No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: ./checkpoint/f_d_U/best.ckpt-124 + + +========== epoch : 3 ============ + +cost: 0.03032874549946074 + +patience: 3 + + +metrics_dict: {'f1_score_1': 1.0, 'precision_1': 1.0, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([1.000, 1.000]), 'precision': array([1.000, 1.000]), 'recall': array([1.000, 1.000]), 'support': array([11, 89]), 'avg_f1_score': 1.0, 'avg_precision': 1.0, 'avg_recall': 1.0, 'accuracy': 1.0, 'epoch': 8.0, 'f_d_global_step': 992} + +Reporting f_d metrics to tensorboard +Not saving metrics dict. Best metric value is 1.0 Current is: 1.0 + +Saved MRU checkpoint to path: ./checkpoint/hls-model-499 + +No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: ./checkpoint/f_d_U/best.ckpt-124 + +Optimization Finished for f_d_U! +implication training ended +implication training started +num_instances: 3984 +batch_size: 32 +total_batch: 124 +remaining: 16 +total_batch: 124 +Optimization started for f_d_U with implication loss! +Batch size: 32! +Batches per epoch : 124! +Number of epochs: 4! + +========== epoch : 0 ============ + +cost: 0.039481191758715145 + +patience: 0 + + +metrics_dict: {'f1_score_1': 1.0, 'precision_1': 1.0, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([1.000, 1.000]), 'precision': array([1.000, 1.000]), 'recall': array([1.000, 1.000]), 'support': array([11, 89]), 'avg_f1_score': 1.0, 'avg_precision': 1.0, 'avg_recall': 1.0, 'accuracy': 1.0, 'epoch': 9.0, 'f_d_global_step': 1116} + +Reporting f_d metrics to tensorboard +Not saving metrics dict. Best metric value is 1.0 Current is: 1.0 + +Saved MRU checkpoint to path: ./checkpoint/hls-model-124 + +No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: ./checkpoint/f_d_U/best.ckpt-124 + + +========== epoch : 1 ============ + +cost: 0.03554798693843505 + +patience: 1 + + +metrics_dict: {'f1_score_1': 1.0, 'precision_1': 1.0, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([1.000, 1.000]), 'precision': array([1.000, 1.000]), 'recall': array([1.000, 1.000]), 'support': array([11, 89]), 'avg_f1_score': 1.0, 'avg_precision': 1.0, 'avg_recall': 1.0, 'accuracy': 1.0, 'epoch': 10.0, 'f_d_global_step': 1240} + +Reporting f_d metrics to tensorboard +Not saving metrics dict. Best metric value is 1.0 Current is: 1.0 + +Saved MRU checkpoint to path: ./checkpoint/hls-model-249 + +No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: ./checkpoint/f_d_U/best.ckpt-124 + + +========== epoch : 2 ============ + +cost: 0.01500457524848425 + +patience: 2 + + +metrics_dict: {'f1_score_1': 1.0, 'precision_1': 1.0, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([1.000, 1.000]), 'precision': array([1.000, 1.000]), 'recall': array([1.000, 1.000]), 'support': array([11, 89]), 'avg_f1_score': 1.0, 'avg_precision': 1.0, 'avg_recall': 1.0, 'accuracy': 1.0, 'epoch': 11.0, 'f_d_global_step': 1364} + +Reporting f_d metrics to tensorboard +Not saving metrics dict. Best metric value is 1.0 Current is: 1.0 + +Saved MRU checkpoint to path: ./checkpoint/hls-model-374 + +No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: ./checkpoint/f_d_U/best.ckpt-124 + + +========== epoch : 3 ============ + +cost: 0.0057277635789080615 + +patience: 3 + + +metrics_dict: {'f1_score_1': 1.0, 'precision_1': 1.0, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([1.000, 1.000]), 'precision': array([1.000, 1.000]), 'recall': array([1.000, 1.000]), 'support': array([11, 89]), 'avg_f1_score': 1.0, 'avg_precision': 1.0, 'avg_recall': 1.0, 'accuracy': 1.0, 'epoch': 12.0, 'f_d_global_step': 1488} + +Reporting f_d metrics to tensorboard +Not saving metrics dict. Best metric value is 1.0 Current is: 1.0 + +Saved MRU checkpoint to path: ./checkpoint/hls-model-499 + +No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: ./checkpoint/f_d_U/best.ckpt-124 + +Optimization Finished for f_d_U! +implication training ended diff --git a/notebooks/SMS_SPAM/log/hls/label_snorkel_0.1_0.1_1.txt b/notebooks/SMS_SPAM/log/hls/label_snorkel_0.1_0.1_1.txt new file mode 100644 index 0000000..79016b6 --- /dev/null +++ b/notebooks/SMS_SPAM/log/hls/label_snorkel_0.1_0.1_1.txt @@ -0,0 +1,137 @@ +Loading from hoff ../../examples/SMS_SPAM/data_pipeline/sms_pickle_L.pkl +batch size 100 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 100 +len_r 100 +-------------------------- +Working with l +-------------------------- +Working with L +-------------------------- +Loading from hoff ../../examples/SMS_SPAM/data_pipeline/sms_pickle_U.pkl +batch size 5174 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 5174 +len_r 5174 +-------------------------- +Working with l +-------------------------- +Working with L +L is empty +-------------------------- +No valid label found for rule: 2 +No valid label found for rule: 4 +No valid label found for rule: 6 +Rule classes: [0, 0, 2, 1, 2, 1, 2, 0, 0, 0, 0, 1, 1, 1, 1, 0] +length of covered U: 2984 +Size of d before oversampling: 100 +Size of U (covered) : 2984 +Size of d after oversampling: 1000 +Size of d_U after combining: 3984 +Loading 100 elements from d +num instances in d: 1000 +Loading from hoff ../../examples/SMS_SPAM/data_pipeline/sms_pickle_V.pkl +batch size 100 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 100 +len_r 100 +-------------------------- +Working with l +-------------------------- +Working with L +-------------------------- +Setting value of d to 0 for test data +test_w len: 64 +test_w len: 64 +Number of features: 1024 +Number of classes: 2 +Print num of rules to train: 16 +Print num of rules: 16 + + + +Found prev best metric for run type f_d: 1.000 +best metrics dict: {'f1_score_1': 1.0, 'precision_1': 1.0, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([1., 1.]), 'precision': array([1., 1.]), 'recall': array([1., 1.]), 'support': array([11, 89]), 'avg_f1_score': 1.0, 'avg_precision': 1.0, 'avg_recall': 1.0, 'accuracy': 1.0, 'epoch': 2.0, 'f_d_global_step': 124} +Found prev best metric for run type f_d_U: 1.000 +best metrics dict: {'f1_score_1': 1.0, 'precision_1': 1.0, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([1., 1.]), 'precision': array([1., 1.]), 'recall': array([1., 1.]), 'support': array([11, 89]), 'avg_f1_score': 1.0, 'avg_precision': 1.0, 'avg_recall': 1.0, 'accuracy': 1.0, 'epoch': 3.0, 'f_d_global_step': 372} +[ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" +] +Run mode is label_snorkel +label_snorkel +num_instances: 3984 +batch_size: 32 +total_batch: 124 +remaining: 16 +total_batch: 124 +LABEL MODEL NOT SAVED diff --git a/notebooks/SMS_SPAM/log/hls/learn2reweight_0.1_0.1_1.txt b/notebooks/SMS_SPAM/log/hls/learn2reweight_0.1_0.1_1.txt new file mode 100644 index 0000000..1815587 --- /dev/null +++ b/notebooks/SMS_SPAM/log/hls/learn2reweight_0.1_0.1_1.txt @@ -0,0 +1,207 @@ +Loading from hoff ../../examples/SMS_SPAM/data_pipeline/sms_pickle_L.pkl +batch size 100 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 100 +len_r 100 +-------------------------- +Working with l +-------------------------- +Working with L +-------------------------- +Loading from hoff ../../examples/SMS_SPAM/data_pipeline/sms_pickle_U.pkl +batch size 5174 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 5174 +len_r 5174 +-------------------------- +Working with l +-------------------------- +Working with L +L is empty +-------------------------- +No valid label found for rule: 2 +No valid label found for rule: 4 +No valid label found for rule: 6 +Rule classes: [0, 0, 2, 1, 2, 1, 2, 0, 0, 0, 0, 1, 1, 1, 1, 0] +length of covered U: 2984 +Size of d before oversampling: 100 +Size of U (covered) : 2984 +Size of d after oversampling: 1000 +Size of d_U after combining: 3984 +Loading 100 elements from d +num instances in d: 1000 +Loading from hoff ../../examples/SMS_SPAM/data_pipeline/sms_pickle_V.pkl +batch size 100 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 100 +len_r 100 +-------------------------- +Working with l +-------------------------- +Working with L +-------------------------- +Setting value of d to 0 for test data +test_w len: 64 +test_w len: 64 +Number of features: 1024 +Number of classes: 2 +Print num of rules to train: 16 +Print num of rules: 16 + + + +Found prev best metric for run type f_d: 1.000 +best metrics dict: {'f1_score_1': 1.0, 'precision_1': 1.0, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([1., 1.]), 'precision': array([1., 1.]), 'recall': array([1., 1.]), 'support': array([11, 89]), 'avg_f1_score': 1.0, 'avg_precision': 1.0, 'avg_recall': 1.0, 'accuracy': 1.0, 'epoch': 2.0, 'f_d_global_step': 124} +Found prev best metric for run type f_d_U: 1.000 +best metrics dict: {'f1_score_1': 1.0, 'precision_1': 1.0, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([1., 1.]), 'precision': array([1., 1.]), 'recall': array([1., 1.]), 'support': array([11, 89]), 'avg_f1_score': 1.0, 'avg_precision': 1.0, 'avg_recall': 1.0, 'accuracy': 1.0, 'epoch': 3.0, 'f_d_global_step': 372} +[ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" +] +Run mode is learn2reweight +learn2reweight +num_instances: 3984 +batch_size: 32 +total_batch: 124 +remaining: 16 +total_batch: 124 +Optimization started for f_d_U with learn2reweight loss! +Batch size: 32! +Batches per epoch : 124! +Number of epochs: 4! + +========== epoch : 0 ============ + +cost: 0.3845435929815134 + +patience: 0 + + +metrics_dict: {'f1_score_1': 0.978021978021978, 'precision_1': 0.956989247311828, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([0.778, 0.978]), 'precision': array([1.000, 0.957]), 'recall': array([0.636, 1.000]), 'support': array([11, 89]), 'avg_f1_score': 0.8778998778998779, 'avg_precision': 0.978494623655914, 'avg_recall': 0.8181818181818181, 'accuracy': 0.96, 'epoch': 1.0, 'f_d_global_step': 124} + +Reporting f_d metrics to tensorboard +Not saving metrics dict. Best metric value is 1.0 Current is: 0.96 + +Saved MRU checkpoint to path: ./checkpoint/hls-model-124 + +Saved new best checkpoint to path: ./checkpoint/f_d_U/best.ckpt-124 + + +========== epoch : 1 ============ + +cost: 0.3214010832711093 + +patience: 1 + + +metrics_dict: {'f1_score_1': 0.9944134078212291, 'precision_1': 0.9888888888888889, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([0.952, 0.994]), 'precision': array([1.000, 0.989]), 'recall': array([0.909, 1.000]), 'support': array([11, 89]), 'avg_f1_score': 0.9733971801010908, 'avg_precision': 0.9944444444444445, 'avg_recall': 0.9545454545454546, 'accuracy': 0.99, 'epoch': 2.0, 'f_d_global_step': 248} + +Reporting f_d metrics to tensorboard +Not saving metrics dict. Best metric value is 1.0 Current is: 0.99 + +Saved MRU checkpoint to path: ./checkpoint/hls-model-249 + +Saved new best checkpoint to path: ./checkpoint/f_d_U/best.ckpt-248 + + +========== epoch : 2 ============ + +cost: 0.28816057606450013 + +patience: 2 + + +metrics_dict: {'f1_score_1': 0.9888888888888888, 'precision_1': 0.978021978021978, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([0.900, 0.989]), 'precision': array([1.000, 0.978]), 'recall': array([0.818, 1.000]), 'support': array([11, 89]), 'avg_f1_score': 0.9444444444444444, 'avg_precision': 0.989010989010989, 'avg_recall': 0.9090909090909092, 'accuracy': 0.98, 'epoch': 3.0, 'f_d_global_step': 372} + +Reporting f_d metrics to tensorboard +Not saving metrics dict. Best metric value is 1.0 Current is: 0.98 + +Saved MRU checkpoint to path: ./checkpoint/hls-model-374 + +No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: ./checkpoint/f_d_U/best.ckpt-248 + + +========== epoch : 3 ============ + +cost: 0.2823838670888256 + +patience: 3 + + +metrics_dict: {'f1_score_1': 1.0, 'precision_1': 1.0, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([1.000, 1.000]), 'precision': array([1.000, 1.000]), 'recall': array([1.000, 1.000]), 'support': array([11, 89]), 'avg_f1_score': 1.0, 'avg_precision': 1.0, 'avg_recall': 1.0, 'accuracy': 1.0, 'epoch': 4.0, 'f_d_global_step': 496} + +Reporting f_d metrics to tensorboard +Not saving metrics dict. Best metric value is 1.0 Current is: 1.0 + +Saved MRU checkpoint to path: ./checkpoint/hls-model-499 + +Saved new best checkpoint to path: ./checkpoint/f_d_U/best.ckpt-496 + +Optimization Finished for f_d_U! diff --git a/notebooks/SMS_SPAM/log/hls/pr_loss_0.1_0.1_1.txt b/notebooks/SMS_SPAM/log/hls/pr_loss_0.1_0.1_1.txt new file mode 100644 index 0000000..bba9006 --- /dev/null +++ b/notebooks/SMS_SPAM/log/hls/pr_loss_0.1_0.1_1.txt @@ -0,0 +1,378 @@ +Loading from hoff ../../examples/SMS_SPAM/data_pipeline/sms_pickle_L.pkl +batch size 100 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 100 +len_r 100 +-------------------------- +Working with l +-------------------------- +Working with L +-------------------------- +Loading from hoff ../../examples/SMS_SPAM/data_pipeline/sms_pickle_U.pkl +batch size 5174 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 5174 +len_r 5174 +-------------------------- +Working with l +-------------------------- +Working with L +L is empty +-------------------------- +No valid label found for rule: 2 +No valid label found for rule: 4 +No valid label found for rule: 6 +Rule classes: [0, 0, 2, 1, 2, 1, 2, 0, 0, 0, 0, 1, 1, 1, 1, 0] +length of covered U: 2984 +Size of d before oversampling: 100 +Size of U (covered) : 2984 +Size of d after oversampling: 1000 +Size of d_U after combining: 3984 +Loading 100 elements from d +num instances in d: 1000 +Loading from hoff ../../examples/SMS_SPAM/data_pipeline/sms_pickle_V.pkl +batch size 100 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 100 +len_r 100 +-------------------------- +Working with l +-------------------------- +Working with L +-------------------------- +Setting value of d to 0 for test data +test_w len: 64 +test_w len: 64 +Number of features: 1024 +Number of classes: 2 +Print num of rules to train: 16 +Print num of rules: 16 + + + +Found prev best metric for run type f_d: 1.000 +best metrics dict: {'f1_score_1': 1.0, 'precision_1': 1.0, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([1., 1.]), 'precision': array([1., 1.]), 'recall': array([1., 1.]), 'support': array([11, 89]), 'avg_f1_score': 1.0, 'avg_precision': 1.0, 'avg_recall': 1.0, 'accuracy': 1.0, 'epoch': 2.0, 'f_d_global_step': 124} +Found prev best metric for run type f_d_U: 1.000 +best metrics dict: {'f1_score_1': 1.0, 'precision_1': 1.0, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([1., 1.]), 'precision': array([1., 1.]), 'recall': array([1., 1.]), 'support': array([11, 89]), 'avg_f1_score': 1.0, 'avg_precision': 1.0, 'avg_recall': 1.0, 'accuracy': 1.0, 'epoch': 3.0, 'f_d_global_step': 372} +[ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" +] +Run mode is pr_loss +begin pr_loss training +num_instances: 3984 +batch_size: 32 +total_batch: 124 +remaining: 16 +total_batch: 124 +Optimization started for f_d_U with pr_loss loss! +Batch size: 32! +Batches per epoch : 124! +Number of epochs: 4! + +========== epoch : 0 ============ + +cost: 0.32952603787904794 + +patience: 0 + + +metrics_dict: {'f1_score_1': 1.0, 'precision_1': 1.0, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([1.000, 1.000]), 'precision': array([1.000, 1.000]), 'recall': array([1.000, 1.000]), 'support': array([11, 89]), 'avg_f1_score': 1.0, 'avg_precision': 1.0, 'avg_recall': 1.0, 'accuracy': 1.0, 'epoch': 1.0, 'f_d_global_step': 124} + +Reporting f_d metrics to tensorboard +Not saving metrics dict. Best metric value is 1.0 Current is: 1.0 + +Saved MRU checkpoint to path: ./checkpoint/hls-model-124 + +Saved new best checkpoint to path: ./checkpoint/f_d_U/best.ckpt-124 + + +========== epoch : 1 ============ + +cost: 0.18664686030317695 + +patience: 1 + + +metrics_dict: {'f1_score_1': 0.9944134078212291, 'precision_1': 0.9888888888888889, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([0.952, 0.994]), 'precision': array([1.000, 0.989]), 'recall': array([0.909, 1.000]), 'support': array([11, 89]), 'avg_f1_score': 0.9733971801010908, 'avg_precision': 0.9944444444444445, 'avg_recall': 0.9545454545454546, 'accuracy': 0.99, 'epoch': 2.0, 'f_d_global_step': 248} + +Reporting f_d metrics to tensorboard +Not saving metrics dict. Best metric value is 1.0 Current is: 0.99 + +Saved MRU checkpoint to path: ./checkpoint/hls-model-249 + +No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: ./checkpoint/f_d_U/best.ckpt-124 + + +========== epoch : 2 ============ + +cost: 0.1341905339936457 + +patience: 2 + + +metrics_dict: {'f1_score_1': 0.9944134078212291, 'precision_1': 0.9888888888888889, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([0.952, 0.994]), 'precision': array([1.000, 0.989]), 'recall': array([0.909, 1.000]), 'support': array([11, 89]), 'avg_f1_score': 0.9733971801010908, 'avg_precision': 0.9944444444444445, 'avg_recall': 0.9545454545454546, 'accuracy': 0.99, 'epoch': 3.0, 'f_d_global_step': 372} + +Reporting f_d metrics to tensorboard +Not saving metrics dict. Best metric value is 1.0 Current is: 0.99 + +Saved MRU checkpoint to path: ./checkpoint/hls-model-374 + +No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: ./checkpoint/f_d_U/best.ckpt-124 + + +========== epoch : 3 ============ + +cost: 0.11160019003305463 + +patience: 3 + + +metrics_dict: {'f1_score_1': 0.9943502824858756, 'precision_1': 1.0, 'recall_1': 0.9887640449438202, 'support_1': 89, 'f1_score': array([0.957, 0.994]), 'precision': array([0.917, 1.000]), 'recall': array([1.000, 0.989]), 'support': array([11, 89]), 'avg_f1_score': 0.9754360108081552, 'avg_precision': 0.9583333333333333, 'avg_recall': 0.9943820224719101, 'accuracy': 0.99, 'epoch': 4.0, 'f_d_global_step': 496} + +Reporting f_d metrics to tensorboard +Not saving metrics dict. Best metric value is 1.0 Current is: 0.99 + +Saved MRU checkpoint to path: ./checkpoint/hls-model-499 + +No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: ./checkpoint/f_d_U/best.ckpt-124 + +Optimization Finished for f_d_U! +pr_loss training end +begin pr_loss training +num_instances: 3984 +batch_size: 32 +total_batch: 124 +remaining: 16 +total_batch: 124 +Optimization started for f_d_U with pr_loss loss! +Batch size: 32! +Batches per epoch : 124! +Number of epochs: 4! + +========== epoch : 0 ============ + +cost: 0.09878913407033732 + +patience: 0 + + +metrics_dict: {'f1_score_1': 0.9828571428571428, 'precision_1': 1.0, 'recall_1': 0.9662921348314607, 'support_1': 89, 'f1_score': array([0.880, 0.983]), 'precision': array([0.786, 1.000]), 'recall': array([1.000, 0.966]), 'support': array([11, 89]), 'avg_f1_score': 0.9314285714285714, 'avg_precision': 0.8928571428571428, 'avg_recall': 0.9831460674157304, 'accuracy': 0.97, 'epoch': 5.0, 'f_d_global_step': 620} + +Reporting f_d metrics to tensorboard +Not saving metrics dict. Best metric value is 1.0 Current is: 0.97 + +Saved MRU checkpoint to path: ./checkpoint/hls-model-124 + +No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: ./checkpoint/f_d_U/best.ckpt-124 + + +========== epoch : 1 ============ + +cost: 0.0826650958343018 + +patience: 1 + + +metrics_dict: {'f1_score_1': 0.9886363636363636, 'precision_1': 1.0, 'recall_1': 0.9775280898876404, 'support_1': 89, 'f1_score': array([0.917, 0.989]), 'precision': array([0.846, 1.000]), 'recall': array([1.000, 0.978]), 'support': array([11, 89]), 'avg_f1_score': 0.9526515151515151, 'avg_precision': 0.9230769230769231, 'avg_recall': 0.9887640449438202, 'accuracy': 0.98, 'epoch': 6.0, 'f_d_global_step': 744} + +Reporting f_d metrics to tensorboard +Not saving metrics dict. Best metric value is 1.0 Current is: 0.98 + +Saved MRU checkpoint to path: ./checkpoint/hls-model-249 + +No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: ./checkpoint/f_d_U/best.ckpt-124 + + +========== epoch : 2 ============ + +cost: 0.09343985576302773 + +patience: 2 + + +metrics_dict: {'f1_score_1': 0.9886363636363636, 'precision_1': 1.0, 'recall_1': 0.9775280898876404, 'support_1': 89, 'f1_score': array([0.917, 0.989]), 'precision': array([0.846, 1.000]), 'recall': array([1.000, 0.978]), 'support': array([11, 89]), 'avg_f1_score': 0.9526515151515151, 'avg_precision': 0.9230769230769231, 'avg_recall': 0.9887640449438202, 'accuracy': 0.98, 'epoch': 7.0, 'f_d_global_step': 868} + +Reporting f_d metrics to tensorboard +Not saving metrics dict. Best metric value is 1.0 Current is: 0.98 + +Saved MRU checkpoint to path: ./checkpoint/hls-model-374 + +No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: ./checkpoint/f_d_U/best.ckpt-124 + + +========== epoch : 3 ============ + +cost: 0.05652236323353023 + +patience: 3 + + +metrics_dict: {'f1_score_1': 0.9146341463414633, 'precision_1': 1.0, 'recall_1': 0.8426966292134831, 'support_1': 89, 'f1_score': array([0.611, 0.915]), 'precision': array([0.440, 1.000]), 'recall': array([1.000, 0.843]), 'support': array([11, 89]), 'avg_f1_score': 0.7628726287262872, 'avg_precision': 0.72, 'avg_recall': 0.9213483146067416, 'accuracy': 0.86, 'epoch': 8.0, 'f_d_global_step': 992} + +Reporting f_d metrics to tensorboard +Not saving metrics dict. Best metric value is 1.0 Current is: 0.86 + +Saved MRU checkpoint to path: ./checkpoint/hls-model-499 + +No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: ./checkpoint/f_d_U/best.ckpt-124 + +Optimization Finished for f_d_U! +pr_loss training end +pr_loss training started +num_instances: 3984 +batch_size: 32 +total_batch: 124 +remaining: 16 +total_batch: 124 +Optimization started for f_d_U with pr_loss loss! +Batch size: 32! +Batches per epoch : 124! +Number of epochs: 4! + +========== epoch : 0 ============ + +cost: 0.06379583305228623 + +patience: 0 + + +metrics_dict: {'f1_score_1': 0.9832402234636872, 'precision_1': 0.9777777777777777, 'recall_1': 0.9887640449438202, 'support_1': 89, 'f1_score': array([0.857, 0.983]), 'precision': array([0.900, 0.978]), 'recall': array([0.818, 0.989]), 'support': array([11, 89]), 'avg_f1_score': 0.9201915403032722, 'avg_precision': 0.9388888888888889, 'avg_recall': 0.9034729315628192, 'accuracy': 0.97, 'epoch': 9.0, 'f_d_global_step': 1116} + +Reporting f_d metrics to tensorboard +Not saving metrics dict. Best metric value is 1.0 Current is: 0.97 + +Saved MRU checkpoint to path: ./checkpoint/hls-model-124 + +No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: ./checkpoint/f_d_U/best.ckpt-124 + + +========== epoch : 1 ============ + +cost: 0.0566180380917485 + +patience: 1 + + +metrics_dict: {'f1_score_1': 0.9404761904761905, 'precision_1': 1.0, 'recall_1': 0.8876404494382022, 'support_1': 89, 'f1_score': array([0.688, 0.940]), 'precision': array([0.524, 1.000]), 'recall': array([1.000, 0.888]), 'support': array([11, 89]), 'avg_f1_score': 0.8139880952380953, 'avg_precision': 0.7619047619047619, 'avg_recall': 0.9438202247191011, 'accuracy': 0.9, 'epoch': 10.0, 'f_d_global_step': 1240} + +Reporting f_d metrics to tensorboard +Not saving metrics dict. Best metric value is 1.0 Current is: 0.9 + +Saved MRU checkpoint to path: ./checkpoint/hls-model-249 + +No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: ./checkpoint/f_d_U/best.ckpt-124 + + +========== epoch : 2 ============ + +cost: 0.036173886142580984 + +patience: 2 + + +metrics_dict: {'f1_score_1': 0.927710843373494, 'precision_1': 1.0, 'recall_1': 0.8651685393258427, 'support_1': 89, 'f1_score': array([0.647, 0.928]), 'precision': array([0.478, 1.000]), 'recall': array([1.000, 0.865]), 'support': array([11, 89]), 'avg_f1_score': 0.7873848334514528, 'avg_precision': 0.7391304347826086, 'avg_recall': 0.9325842696629214, 'accuracy': 0.88, 'epoch': 11.0, 'f_d_global_step': 1364} + +Reporting f_d metrics to tensorboard +Not saving metrics dict. Best metric value is 1.0 Current is: 0.88 + +Saved MRU checkpoint to path: ./checkpoint/hls-model-374 + +No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: ./checkpoint/f_d_U/best.ckpt-124 + + +========== epoch : 3 ============ + +cost: 0.0457319649229307 + +patience: 3 + + +metrics_dict: {'f1_score_1': 0.8944099378881988, 'precision_1': 1.0, 'recall_1': 0.8089887640449438, 'support_1': 89, 'f1_score': array([0.564, 0.894]), 'precision': array([0.393, 1.000]), 'recall': array([1.000, 0.809]), 'support': array([11, 89]), 'avg_f1_score': 0.7292562509953815, 'avg_precision': 0.6964285714285714, 'avg_recall': 0.9044943820224719, 'accuracy': 0.83, 'epoch': 12.0, 'f_d_global_step': 1488} + +Reporting f_d metrics to tensorboard +Not saving metrics dict. Best metric value is 1.0 Current is: 0.83 + +Saved MRU checkpoint to path: ./checkpoint/hls-model-499 + +No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: ./checkpoint/f_d_U/best.ckpt-124 + +Optimization Finished for f_d_U! +pr_loss training ended diff --git a/notebooks/SMS_SPAM/log/hls/test_all_f_d_0.1_0.1_1.txt b/notebooks/SMS_SPAM/log/hls/test_all_f_d_0.1_0.1_1.txt new file mode 100644 index 0000000..d083d68 --- /dev/null +++ b/notebooks/SMS_SPAM/log/hls/test_all_f_d_0.1_0.1_1.txt @@ -0,0 +1,139 @@ +Loading from hoff ../../examples/SMS_SPAM/data_pipeline/sms_pickle_L.pkl +batch size 100 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 100 +len_r 100 +-------------------------- +Working with l +-------------------------- +Working with L +-------------------------- +Loading from hoff ../../examples/SMS_SPAM/data_pipeline/sms_pickle_U.pkl +batch size 5174 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 5174 +len_r 5174 +-------------------------- +Working with l +-------------------------- +Working with L +L is empty +-------------------------- +No valid label found for rule: 2 +No valid label found for rule: 4 +No valid label found for rule: 6 +Rule classes: [0, 0, 2, 1, 2, 1, 2, 0, 0, 0, 0, 1, 1, 1, 1, 0] +length of covered U: 2984 +Size of d before oversampling: 100 +Size of U (covered) : 2984 +Size of d after oversampling: 1000 +Size of d_U after combining: 3984 +Loading 100 elements from d +num instances in d: 1000 +Loading from hoff ../../examples/SMS_SPAM/data_pipeline/sms_pickle_V.pkl +batch size 100 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 100 +len_r 100 +-------------------------- +Working with l +-------------------------- +Working with L +-------------------------- +Setting value of d to 0 for test data +test_w len: 64 +test_w len: 64 +Number of features: 1024 +Number of classes: 2 +Print num of rules to train: 16 +Print num of rules: 16 + + + +Found prev best metric for run type f_d: 1.000 +best metrics dict: {'f1_score_1': 1.0, 'precision_1': 1.0, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([1., 1.]), 'precision': array([1., 1.]), 'recall': array([1., 1.]), 'support': array([11, 89]), 'avg_f1_score': 1.0, 'avg_precision': 1.0, 'avg_recall': 1.0, 'accuracy': 1.0, 'epoch': 2.0, 'f_d_global_step': 124} +Found prev best metric for run type f_d_U: 1.000 +best metrics dict: {'f1_score_1': 1.0, 'precision_1': 1.0, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([1., 1.]), 'precision': array([1., 1.]), 'recall': array([1., 1.]), 'support': array([11, 89]), 'avg_f1_score': 1.0, 'avg_precision': 1.0, 'avg_recall': 1.0, 'accuracy': 1.0, 'epoch': 3.0, 'f_d_global_step': 372} +[ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" +] +Restoring checkpoint from path: ./checkpoint/hls-model-248 +Run mode is test_all +Running all tests + +inference on f network ... + +test_f: precision: [1.000 0.978] +test_f: recall: [0.818 1.000] +test_f: f1_score: [0.900 0.989] +test_f: support: [11 89] +test_f: accuracy: 0.98 +test_f: avg_f1_score: 0.9444444444444444 +test_f: classifier_loss: 0.02147673 + +inference on w network... +we only test on instances covered by atleast one rule + +num_instances: 64 +batch_size: 1000 +total_batch: 0 +remaining: 64 +total_batch: 1 +old micro precision: 0.5925925925925926 +new micro precision: 0.6071428571428571 +old rule firings: 135 +new rule firings: 112 +old rule coverage: 64 +new rule coverage: 55 diff --git a/notebooks/SMS_SPAM/log/hls/test_all_implication_0.1_0.1_1.txt b/notebooks/SMS_SPAM/log/hls/test_all_implication_0.1_0.1_1.txt new file mode 100644 index 0000000..41255d6 --- /dev/null +++ b/notebooks/SMS_SPAM/log/hls/test_all_implication_0.1_0.1_1.txt @@ -0,0 +1,244 @@ +Loading from hoff ../../examples/SMS_SPAM/data_pipeline/sms_pickle_L.pkl +batch size 100 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 100 +len_r 100 +-------------------------- +Working with l +-------------------------- +Working with L +-------------------------- +Loading from hoff ../../examples/SMS_SPAM/data_pipeline/sms_pickle_U.pkl +batch size 5174 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 5174 +len_r 5174 +-------------------------- +Working with l +-------------------------- +Working with L +L is empty +-------------------------- +No valid label found for rule: 2 +No valid label found for rule: 4 +No valid label found for rule: 6 +Rule classes: [0, 0, 2, 1, 2, 1, 2, 0, 0, 0, 0, 1, 1, 1, 1, 0] +length of covered U: 2984 +Size of d before oversampling: 100 +Size of U (covered) : 2984 +Size of d after oversampling: 1000 +Size of d_U after combining: 3984 +Loading 100 elements from d +num instances in d: 1000 +Loading from hoff ../../examples/SMS_SPAM/data_pipeline/sms_pickle_V.pkl +batch size 100 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 100 +len_r 100 +-------------------------- +Working with l +-------------------------- +Working with L +-------------------------- +Setting value of d to 0 for test data +test_w len: 64 +test_w len: 64 +Number of features: 1024 +Number of classes: 2 +Print num of rules to train: 16 +Print num of rules: 16 + + + +Loading from hoff ../../examples/SMS_SPAM/data_pipeline/sms_pickle_L.pkl +batch size 100 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 100 +len_r 100 +-------------------------- +Working with l +-------------------------- +Working with L +-------------------------- +Loading from hoff ../../examples/SMS_SPAM/data_pipeline/sms_pickle_U.pkl +batch size 5174 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 5174 +len_r 5174 +-------------------------- +Working with l +-------------------------- +Working with L +L is empty +-------------------------- +No valid label found for rule: 2 +No valid label found for rule: 4 +No valid label found for rule: 6 +Rule classes: [0, 0, 2, 1, 2, 1, 2, 0, 0, 0, 0, 1, 1, 1, 1, 0] +length of covered U: 2984 +Size of d before oversampling: 100 +Size of U (covered) : 2984 +Size of d after oversampling: 1000 +Size of d_U after combining: 3984 +Loading 100 elements from d +num instances in d: 1000 +Loading from hoff ../../examples/SMS_SPAM/data_pipeline/sms_pickle_V.pkl +batch size 100 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 100 +len_r 100 +-------------------------- +Working with l +-------------------------- +Working with L +-------------------------- +Setting value of d to 0 for test data +test_w len: 64 +test_w len: 64 +Checkpoint file does not exist +Saved new best checkpoint to path: /tmp/best_ckpt_0.402139/foo-bar/best.ckpt-51 +Restoring best checkpoint from path: /tmp/best_ckpt_0.402139/foo-bar/best.ckpt-51 +Saved new best checkpoint to path: /tmp/best_ckpt_0.402139/foo-bar/best.ckpt-52 +Restoring best checkpoint from path: /tmp/best_ckpt_0.402139/foo-bar/best.ckpt-51 +Saved new best checkpoint to path: /tmp/best_ckpt_0.402139/foo-bar/best.ckpt-53 +Saved new best checkpoint to path: /tmp/best_ckpt_0.402139/foo-bar/best.ckpt-54 +Restoring best checkpoint from path: /tmp/best_ckpt_0.402139/foo-bar/best.ckpt-53 +Best ckpt path: /tmp/best_ckpt_0.747321/best.ckpt-13 +Best ckpt path: /tmp/best_ckpt_0.747321/best.ckpt-13 +Best ckpt path: /tmp/best_ckpt_0.747321/best.ckpt-16 +Best ckpt path: /tmp/best_ckpt_0.747321/best.ckpt-15 +Saved MRU checkpoint to path: /tmp/checkpoints/hls-model +Restoring checkpoint from path: /tmp/checkpoints/hls-model +Restoring checkpoint from path: /tmp/checkpoints/hls-model +Saved MRU checkpoint to path: /tmp/checkpoints_0.267684/hls-model-11 +Restoring checkpoint from path: /tmp/checkpoints_0.267684/hls-model-11 +Saved MRU checkpoint to path: /tmp/checkpoints_0.267684/hls-model-5 +Restoring checkpoint from path: /tmp/checkpoints_0.267684/hls-model-5 +Saved MRU checkpoint to path: /tmp/checkpoints_0.583068/hls-model-11 +Restoring checkpoint from path: /tmp/checkpoints_0.583068/hls-model-11 +Saved MRU checkpoint to path: /tmp/checkpoints_0.583068/hls-model-5 +Restoring checkpoint from path: /tmp/checkpoints_0.583068/hls-model-5 +Loading from hoff ../../examples/SMS_SPAM/data_pipeline/sms_pickle_L.pkl +batch size 100 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 100 +len_r 100 +-------------------------- +Working with l +-------------------------- +Working with L +-------------------------- +Loading from hoff ../../examples/SMS_SPAM/data_pipeline/sms_pickle_U.pkl +batch size 5174 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 5174 +len_r 5174 +-------------------------- +Working with l +-------------------------- +Working with L +L is empty +-------------------------- +No valid label found for rule: 2 +No valid label found for rule: 4 +No valid label found for rule: 6 +Rule classes: [0, 0, 2, 1, 2, 1, 2, 0, 0, 0, 0, 1, 1, 1, 1, 0] +length of covered U: 2984 +Size of d before oversampling: 100 +Size of U (covered) : 2984 +Size of d after oversampling: 1000 +Size of d_U after combining: 3984 +Loading 100 elements from d +num instances in d: 1000 +Loading from hoff ../../examples/SMS_SPAM/data_pipeline/sms_pickle_V.pkl +batch size 100 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 100 +len_r 100 +-------------------------- +Working with l +-------------------------- +Working with L +-------------------------- +Setting value of d to 0 for test data +test_w len: 64 +test_w len: 64 +Number of features: 1024 +Number of classes: 2 +Print num of rules to train: 16 +Print num of rules: 16 + + + diff --git a/notebooks/SMS_SPAM/log/hls/test_all_learn2reweight_0.1_0.1_1.txt b/notebooks/SMS_SPAM/log/hls/test_all_learn2reweight_0.1_0.1_1.txt new file mode 100644 index 0000000..02ba2b3 --- /dev/null +++ b/notebooks/SMS_SPAM/log/hls/test_all_learn2reweight_0.1_0.1_1.txt @@ -0,0 +1,76 @@ +Loading from hoff ../../examples/SMS_SPAM/data_pipeline/sms_pickle_L.pkl +batch size 100 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 100 +len_r 100 +-------------------------- +Working with l +-------------------------- +Working with L +-------------------------- +Loading from hoff ../../examples/SMS_SPAM/data_pipeline/sms_pickle_U.pkl +batch size 5174 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 5174 +len_r 5174 +-------------------------- +Working with l +-------------------------- +Working with L +L is empty +-------------------------- +No valid label found for rule: 2 +No valid label found for rule: 4 +No valid label found for rule: 6 +Rule classes: [0, 0, 2, 1, 2, 1, 2, 0, 0, 0, 0, 1, 1, 1, 1, 0] +length of covered U: 2984 +Size of d before oversampling: 100 +Size of U (covered) : 2984 +Size of d after oversampling: 1000 +Size of d_U after combining: 3984 +Loading 100 elements from d +num instances in d: 1000 +Loading from hoff ../../examples/SMS_SPAM/data_pipeline/sms_pickle_V.pkl +batch size 100 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 100 +len_r 100 +-------------------------- +Working with l +-------------------------- +Working with L +-------------------------- +Setting value of d to 0 for test data +test_w len: 64 +test_w len: 64 +Number of features: 1024 +Number of classes: 2 +Print num of rules to train: 16 +Print num of rules: 16 + + + diff --git a/notebooks/SMS_SPAM/log/hls/test_all_pr_loss_0.1_0.1_1.txt b/notebooks/SMS_SPAM/log/hls/test_all_pr_loss_0.1_0.1_1.txt new file mode 100644 index 0000000..77f5217 --- /dev/null +++ b/notebooks/SMS_SPAM/log/hls/test_all_pr_loss_0.1_0.1_1.txt @@ -0,0 +1,139 @@ +Loading from hoff ../../examples/SMS_SPAM/data_pipeline/sms_pickle_L.pkl +batch size 100 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 100 +len_r 100 +-------------------------- +Working with l +-------------------------- +Working with L +-------------------------- +Loading from hoff ../../examples/SMS_SPAM/data_pipeline/sms_pickle_U.pkl +batch size 5174 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 5174 +len_r 5174 +-------------------------- +Working with l +-------------------------- +Working with L +L is empty +-------------------------- +No valid label found for rule: 2 +No valid label found for rule: 4 +No valid label found for rule: 6 +Rule classes: [0, 0, 2, 1, 2, 1, 2, 0, 0, 0, 0, 1, 1, 1, 1, 0] +length of covered U: 2984 +Size of d before oversampling: 100 +Size of U (covered) : 2984 +Size of d after oversampling: 1000 +Size of d_U after combining: 3984 +Loading 100 elements from d +num instances in d: 1000 +Loading from hoff ../../examples/SMS_SPAM/data_pipeline/sms_pickle_V.pkl +batch size 100 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 100 +len_r 100 +-------------------------- +Working with l +-------------------------- +Working with L +-------------------------- +Setting value of d to 0 for test data +test_w len: 64 +test_w len: 64 +Number of features: 1024 +Number of classes: 2 +Print num of rules to train: 16 +Print num of rules: 16 + + + +Found prev best metric for run type f_d: 1.000 +best metrics dict: {'f1_score_1': 1.0, 'precision_1': 1.0, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([1., 1.]), 'precision': array([1., 1.]), 'recall': array([1., 1.]), 'support': array([11, 89]), 'avg_f1_score': 1.0, 'avg_precision': 1.0, 'avg_recall': 1.0, 'accuracy': 1.0, 'epoch': 2.0, 'f_d_global_step': 124} +Found prev best metric for run type f_d_U: 1.000 +best metrics dict: {'f1_score_1': 1.0, 'precision_1': 1.0, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([1., 1.]), 'precision': array([1., 1.]), 'recall': array([1., 1.]), 'support': array([11, 89]), 'avg_f1_score': 1.0, 'avg_precision': 1.0, 'avg_recall': 1.0, 'accuracy': 1.0, 'epoch': 3.0, 'f_d_global_step': 372} +[ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" +] +Restoring checkpoint from path: ./checkpoint/hls-model-499 +Run mode is test_all +Running all tests + +inference on f network ... + +test_f: precision: [1.000 1.000] +test_f: recall: [1.000 1.000] +test_f: f1_score: [1.000 1.000] +test_f: support: [11 89] +test_f: accuracy: 1.0 +test_f: avg_f1_score: 1.0 +test_f: classifier_loss: 0.0196906 + +inference on w network... +we only test on instances covered by atleast one rule + +num_instances: 64 +batch_size: 1000 +total_batch: 0 +remaining: 64 +total_batch: 1 +old micro precision: 0.5925925925925926 +new micro precision: 0.6608695652173913 +old rule firings: 135 +new rule firings: 115 +old rule coverage: 64 +new rule coverage: 52 diff --git a/notebooks/SMS_SPAM/met_pickl/metrics_train_f_on_d.p b/notebooks/SMS_SPAM/met_pickl/metrics_train_f_on_d.p new file mode 100644 index 0000000..bb947ca Binary files /dev/null and b/notebooks/SMS_SPAM/met_pickl/metrics_train_f_on_d.p differ diff --git a/notebooks/SMS_SPAM/met_pickl/metrics_train_f_on_d_U.p b/notebooks/SMS_SPAM/met_pickl/metrics_train_f_on_d_U.p new file mode 100644 index 0000000..a33b3f1 Binary files /dev/null and b/notebooks/SMS_SPAM/met_pickl/metrics_train_f_on_d_U.p differ diff --git a/notebooks/SMS_SPAM/params/Cage/sms_params.pkl b/notebooks/SMS_SPAM/params/Cage/sms_params.pkl new file mode 100644 index 0000000..a33ec69 Binary files /dev/null and b/notebooks/SMS_SPAM/params/Cage/sms_params.pkl differ diff --git a/notebooks/SMS_SPAM/params/JL/sms_params.pkl b/notebooks/SMS_SPAM/params/JL/sms_params.pkl new file mode 100644 index 0000000..c211755 Binary files /dev/null and b/notebooks/SMS_SPAM/params/JL/sms_params.pkl differ diff --git a/notebooks/SMS_SPAM/restart.sh b/notebooks/SMS_SPAM/restart.sh new file mode 100644 index 0000000..db24120 --- /dev/null +++ b/notebooks/SMS_SPAM/restart.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +#run(bash restart.sh) this file to remove any data files related to Cage and JL in data_pipeline, log, params folders +echo -n "remove any related data files(1 for cage, 2 for jl, 3 for both): " +read VAR + +if [ $VAR == 1 ] +then +rm data_pipeline/Cage/* +rm log/Cage/* +rm params/Cage/* +elif [ $VAR == 2 ] +then +rm data_pipeline/JL/* +rm log/JL/* +rm params/JL/* +else +rm data_pipeline/Cage/* +rm log/Cage/* +rm params/Cage/* +rm data_pipeline/JL/* +rm log/JL/* +rm params/JL/* +fi \ No newline at end of file diff --git a/notebooks/SMS_SPAM/sms_autogeneration.ipynb b/notebooks/SMS_SPAM/sms_autogeneration.ipynb new file mode 100644 index 0000000..76dab4c --- /dev/null +++ b/notebooks/SMS_SPAM/sms_autogeneration.ipynb @@ -0,0 +1,373 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "43beb104", + "metadata": {}, + "source": [ + "# **SMS SPAM DETECTION** " + ] + }, + { + "cell_type": "markdown", + "id": "82540d4e", + "metadata": {}, + "source": [ + "### Installation" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "f74d2ad4", + "metadata": {}, + "outputs": [], + "source": [ + "import sys\n", + "sys.path.append('../../')" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "17a305da", + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "# Importing the required libraries\n", + "import enum\n", + "from spear.labeling import labeling_function, LFgenerator, ABSTAIN, LFgenerator2\n", + "from spear.wisdom import Reweight" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c9157a98", + "metadata": {}, + "outputs": [], + "source": [ + "# Generating Labelling Functions using SNUBA\n", + "gen = LFgenerator('sms', 'dt', 1, 26, 'count')\n", + "gen" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f5315eb2", + "metadata": {}, + "outputs": [], + "source": [ + "gen" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9e9f5e7b", + "metadata": {}, + "outputs": [], + "source": [ + "data_dir = r'../../spear/labeling/lf_gen/Loaders/data/sms/'\n", + "save_dir = r'Example_runs1'\n", + "a = gen(data_dir, save_dir)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d54cfe18", + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "# The LFs are sotred in the returned variable\n", + "for (label, word) in a :\n", + " print(f'label : {label}, Labeling Word : {word}')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2c895da0", + "metadata": {}, + "outputs": [], + "source": [ + "# To dump all the information in pickle files, to be stored in the defined save directory\n", + "gen.dump(a)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "17c8d8f4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "dataset sms, model dt, filter 0, feats count numRules 50, MaxLFs 15" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Generating Labelling Functions using Classifier Weights\n", + "gen2 = LFgenerator2('sms', 'dt', 0, 'count', 50, 15)\n", + "gen2" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "5020c3f1", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "dataset is sms\n", + "Size of validation set 927\n", + "Size of train set 8335\n", + "Size of test set 500\n", + "val_primitive_matrix.shape (927, 137)\n", + " train_feats.shape (8335, 7284)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 8335/8335 [00:00<00:00, 32845.06it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "val_text 927\n", + "val_feats (927, 7284)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 927/927 [00:00<00:00, 31626.41it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(927, 15) val_L.shape\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 500/500 [00:00<00:00, 15941.74it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "label [1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "data_dir = r'../../spear/labeling/lf_gen/Loaders/data/sms/'\n", + "save_dir = r'Example_runs2'\n", + "b = gen2(data_dir, save_dir)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "9f9ded31", + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "label : 1, Labeling Word : ok\n", + "label : 1, Labeling Word : ll\n", + "label : 1, Labeling Word : going\n", + "label : 1, Labeling Word : come\n", + "label : 1, Labeling Word : sorry\n", + "label : 1, Labeling Word : yup\n", + "label : 0, Labeling Word : txt\n", + "label : 1, Labeling Word : late\n", + "label : 0, Labeling Word : urgent\n", + "label : 0, Labeling Word : mobile\n", + "label : 1, Labeling Word : good\n", + "label : 1, Labeling Word : dear\n", + "label : 1, Labeling Word : yeah\n", + "label : 1, Labeling Word : later\n", + "label : 0, Labeling Word : won\n" + ] + } + ], + "source": [ + "# The LFs are sotred in the returned variable\n", + "for (label, word) in b :\n", + " print(f'label : {label}, Labeling Word : {word}')" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "d55170a2", + "metadata": {}, + "outputs": [], + "source": [ + "# To dump all the information in pickle files, to be stored in the defined save directory\n", + "gen2.dump(b)" + ] + }, + { + "cell_type": "markdown", + "id": "64d5d402", + "metadata": {}, + "source": [ + "## Reweighing LFs : WISDOM" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "28fe3e08", + "metadata": {}, + "outputs": [], + "source": [ + "datapath = r'Example_runs1'\n", + "rwt = Reweight(datapath=datapath, num_classes=2)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "b4d67a58", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "datapath Example_runs1, number of classes 2" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "rwt" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "aa8bb763", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "cpu\n", + "dset is example_runs1\n", + "fname is Example_runs1/normal_d_processed.p\n", + "no of excludings are 4341\n", + "Length of U is 3994\n", + "LFs are tensor([0, 0, 0, ..., 0, 0, 0])\n", + "no of lfs are 25\n", + "num runs are 2\n", + "Early Stopping at 7 0.38450695386457223 0.9073462350344028\n", + "Validation score Early Stopping at 7 0.909400278940028 0.3747358964547738\n", + "Best Epoch LR 7\n", + "Best Epoch GM 7\n", + "Run \t 0 Epoch, GM, LR \t 0.38450695386457223 0.9073462350344028\n", + "Run \t 0 GM Val, LR Val \t 0.3747358964547738 0.909400278940028\n", + "num runs are 2\n", + "Early Stopping at 8 0.4344360738071842 0.90508846966264\n", + "Validation score Early Stopping at 8 0.9222389810625105 0.4290516206482592\n", + "Best Epoch LR 8\n", + "Best Epoch GM 8\n", + "Run \t 1 Epoch, GM, LR \t 0.4344360738071842 0.90508846966264\n", + "Run \t 1 GM Val, LR Val \t 0.4290516206482592 0.9222389810625105\n", + "===================================================\n", + "TEST Averaged scores LR 0.9062173523485214\n", + "TEST Precision averaged scores LR 0.9155625975732955\n", + "TEST Recall averaged scores LR 0.9053374743852459\n", + "===================================================\n", + "TEST Averaged scores GM 0.4094715138358782\n", + "TEST Precision averaged scores GM 0.49194492669767764\n", + "TEST Recall averaged scores GM 0.4947329661885246\n", + "===================================================\n", + "VALIDATION Averaged scores are GM,LR 0.4018937585515165 0.9158196300012692\n", + "TEST STD GM,LR 0.024964559971305977 0.001128882685881405\n", + "VALIDATION STD GM,LR 0.027157862096742702 0.006419351061241252\n", + "Sorted weights [ 0 22 20 19 18 16 15 14 11 12 8 7 5 2 24 17 23 21 1 10 4 13 6 9\n", + " 3]\n" + ] + } + ], + "source": [ + "rwt(num_runs=2, batch_size=32, lr_lr=0.0003, gm_lr=0.01)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "44493de8", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.0" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/SMS_SPAM/sms_cage.ipynb b/notebooks/SMS_SPAM/sms_cage.ipynb index a6b7d72..e17128c 100644 --- a/notebooks/SMS_SPAM/sms_cage.ipynb +++ b/notebooks/SMS_SPAM/sms_cage.ipynb @@ -1,98 +1,747 @@ { "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ***End to End tutorial for SMS_SPAM labeling using Cage:***\n", + "**The paper, documentation, colab notebook can be found here:** [Paper](https://ojs.aaai.org/index.php/AAAI/article/view/5742), [Documentation](https://spear-decile.readthedocs.io/en/latest/#cage), [Colab](https://colab.research.google.com/drive/1vec-Q-xO9wQtM3p_CZ7237gCq0xIR9b9?usp=sharing)" + ] + }, { "cell_type": "code", "execution_count": 1, "metadata": {}, + "outputs": [], + "source": [ + "#pip install" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "'''\n", + "User don't need to include this cell to use the package\n", + "'''\n", + "import sys\n", + "sys.path.append('../../')" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ***Defining an Enum to hold labels:***\n", + "### **Representation of class Labels**\n", + "\n", + "

All the class labels for which we define labeling functions are encoded in enum and utilized in our next tasks. Make sure not to define an Abstain(Labeling function(LF) not deciding anything) class inside this Enum, instead import the ABSTAIN object as used later in LF section.

\n", + "\n", + "

SPAM dataset contains 2 classes i.e HAM and SPAM. Note that the numbers we associate can be anything but it is suggested to use a continuous numbers from 0 to number_of_classes-1

\n", + "\n", + "

**Note that even though this example is a binary classification, this(SPEAR) library supports multi-class classification**

" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "import enum\n", + "\n", + "# enum to hold the class labels\n", + "class ClassLabels(enum.Enum):\n", + " SPAM = 1\n", + " HAM = 0\n", + "\n", + "THRESHOLD = 0.8" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ***Defining preprocessors, continuous_scorers, labeling functions:***\n", + "During labeling the unlabelled data we lookup for few keywords to assign a class SMS.\n", + "\n", + "Example : *If a message contains apply or buy in it then most probably the message is spam*" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "trigWord1 = {\"free\",\"credit\",\"cheap\",\"apply\",\"buy\",\"attention\",\"shop\",\"sex\",\"soon\",\"now\",\"spam\"}\n", + "trigWord2 = {\"gift\",\"click\",\"new\",\"online\",\"discount\",\"earn\",\"miss\",\"hesitate\",\"exclusive\",\"urgent\"}\n", + "trigWord3 = {\"cash\",\"refund\",\"insurance\",\"money\",\"guaranteed\",\"save\",\"win\",\"teen\",\"weight\",\"hair\"}\n", + "notFreeWords = {\"toll\",\"Toll\",\"freely\",\"call\",\"meet\",\"talk\",\"feedback\"}\n", + "notFreeSubstring = {\"not free\",\"you are\",\"when\",\"wen\"}\n", + "firstAndSecondPersonWords = {\"I\",\"i\",\"u\",\"you\",\"ur\",\"your\",\"our\",\"we\",\"us\",\"youre\"}\n", + "thirdPersonWords = {\"He\",\"he\",\"She\",\"she\",\"they\",\"They\",\"Them\",\"them\",\"their\",\"Their\"}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Declaration of a simple preprocessor function**\n", + "\n", + "\n", + "For most of the tasks in NLP, computer vivsion instead of using the raw datapoint we preprocess the datapoint and then label it. Preprocessor functions are used to preprocess an instance before labeling it. We use **`@preprocessor(name,resources)`** decorator to declare a function as preprocessor." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "from spear.labeling import preprocessor\n", + "\n", + "\n", + "@preprocessor(name = \"LOWER_CASE\")\n", + "def convert_to_lower(x):\n", + " return x.lower().strip()\n", + "\n", + "lower = convert_to_lower(\"RED\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Some Labeling function(LF) definitions**\n", + "Below are some examples on how to define LFs and continuous LFs(CLFs). To get the continuous score for a CLF, we need to define a function with continuous_scorer decorator(just like labeling_function decorator) and pass it to a CLF as displayed below. Also note how the continuous score can be used in CLF. Note that the word_similarity is the function with continuous_scorer decorator and is written in con_scorer file(this file is not a part of package) in same folder." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, "outputs": [ { - "ename": "ModuleNotFoundError", - "evalue": "No module named 'Cage'", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0msys\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdirname\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mabspath\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m''\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0;32mfrom\u001b[0m \u001b[0mCage\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mcore\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 6\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0mpkl_file_path\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m\"../data_pipeline/sms_pickle.pkl\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'Cage'" + "name": "stdout", + "output_type": "stream", + "text": [ + "model loading\n", + "model loaded\n" ] } ], "source": [ - "import sys\n", - "from os import path\n", - "sys.path.append(path.dirname(path.abspath('')))\n", + "from spear.labeling import labeling_function, ABSTAIN\n", + "\n", + "from helper.con_scorer import word_similarity\n", + "import re\n", + "\n", + "\n", + "@preprocessor()\n", + "def convert_to_lower(x):\n", + " return x.lower().strip()\n", + "\n", + "\n", + "@labeling_function(resources=dict(keywords=trigWord1),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def LF1(c,**kwargs): \n", + " if len(kwargs[\"keywords\"].intersection(c.split())) > 0:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(resources=dict(keywords=trigWord2),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def LF2(c,**kwargs):\n", + " if len(kwargs[\"keywords\"].intersection(c.split())) > 0:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(resources=dict(keywords=trigWord3),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def LF3(c,**kwargs):\n", + " if len(kwargs[\"keywords\"].intersection(c.split())) > 0:\n", + " return ClassLabels.SPAM \n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(resources=dict(keywords=notFreeWords),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def LF4(c,**kwargs):\n", + " if \"free\" in c.split() and len(kwargs[\"keywords\"].intersection(c.split()))>0:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(resources=dict(keywords=notFreeSubstring),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def LF5(c,**kwargs):\n", + " for pattern in kwargs[\"keywords\"]: \n", + " if \"free\" in c.split() and re.search(pattern,c, flags= re.I):\n", + " return ClassLabels.HAM\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(resources=dict(keywords=firstAndSecondPersonWords),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def LF6(c,**kwargs):\n", + " if \"free\" in c.split() and len(kwargs[\"keywords\"].intersection(c.split()))>0:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "\n", + "@labeling_function(resources=dict(keywords=thirdPersonWords),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def LF7(c,**kwargs):\n", + " if \"free\" in c.split() and len(kwargs[\"keywords\"].intersection(c.split()))>0:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(label=ClassLabels.SPAM)\n", + "def LF8(c,**kwargs):\n", + " if (sum(1 for ch in c if ch.isupper()) > 6):\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=trigWord1),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def CLF1(c,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=trigWord2),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def CLF2(c,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=trigWord3),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def CLF3(c,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=notFreeWords),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def CLF4(c,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=notFreeSubstring),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def CLF5(c,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=firstAndSecondPersonWords),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def CLF6(c,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=thirdPersonWords),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def CLF7(c,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=lambda x: 1-np.exp(float(-(sum(1 for ch in x if ch.isupper()))/2)),label=ClassLabels.SPAM)\n", + "def CLF8(c,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ***Accumulating all LFs into rules, an LFset(a class) object:***\n", + "### **Importing LFSet and passing LFs we defined, to that class**" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "from spear.labeling import LFSet\n", "\n", - "from Cage import core\n", + "LFS = [LF1,\n", + " LF2,\n", + " LF3,\n", + " LF4,\n", + " LF5,\n", + " LF6,\n", + " LF7,\n", + " LF8,\n", + " CLF1,\n", + " CLF2,\n", + " CLF3,\n", + " CLF4,\n", + " CLF5,\n", + " CLF6,\n", + " CLF7,\n", + " CLF8\n", + " ]\n", "\n", - "pkl_file_path = \"../data_pipeline/sms_pickle.pkl\"\n", - "json_file_path = \"../data_pipeline/sms_json.json\"\n", + "rules = LFSet(\"SPAM_LF\")\n", + "rules.add_lf_list(LFS)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ***Loading data:***\n", + "### **Load the data: X, Y**\n", + "

Note that the utils below is not a part of package but is used to load the necessary data. User have to use some means(which doesn't matter) to load his data(X, Y). X is the raw data that is to be passed to LFs and Y are true labels(if available). Note that feature matrix is not needed in Cage algorithm but it is needed in JL algorithm.

" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "from helper.utils import load_data_to_numpy, get_test_U_data\n", + "\n", + "X, _, Y = load_data_to_numpy()\n", "\n", - "cage = core.Cage(json_file_path, pkl_file_path)" + "test_size = 400\n", + "U_size = 4500\n", + "n_lfs = len(rules.get_lfs())\n", + "\n", + "X_T, Y_T, _, X_U, _= get_test_U_data(X, Y, n_lfs, test_size, U_size)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ***Labeling data:***\n", + "### **Paths**\n", + "* path_json: path to json file generated by PreLabels\n", + "* T_path_pkl: path to pkl file generated by PreLabels containing the test data with true labels\n", + "* U_path_pkl: path to pkl file generated by PreLabels containing the unlabelled data without true labels\n", + "* log_path: path to save the log which is generated during the algorithm\n", + "* params_path: path to save parameters of model\n", + "\n", + "

Make sure that the directory of the files(in above paths) exists. Note that any existing contents in pickle files will be erased.

" ] }, { "cell_type": "code", - "execution_count": 79, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ - "import pickle\n", - "import numpy as np\n", - "data = []\n", - "with open(pkl_file_path, 'rb') as file:\n", - " for i in range(9):\n", - " data.append(pickle.load(file))\n", - " #assert type(data[i]) == np.ndarray\n", - " data.append(pickle.load(file))" + "path_json = 'data_pipeline/Cage/sms_json.json'\n", + "T_path_pkl = 'data_pipeline/Cage/sms_pickle_T.pkl' #test data - have true labels\n", + "U_path_pkl = 'data_pipeline/Cage/sms_pickle_U.pkl' #unlabelled data - don't have true labels\n", + "\n", + "log_path_cage_1 = 'log/Cage/sms_log_1.txt' #cage is an algorithm, can be found below\n", + "params_path = 'params/Cage/sms_params.pkl' #file path to store parameters of Cage, used below" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Importing PreLabels class and using it to label data**\n", + "Json file should be generated only once as shown below.\n", + "

Note: We don't pass feature matrix as the CAGE algorithm don't need one. Also note that we don't pass gold_lables(or true labels) to the 2nd PreLabels class which generates labels to unlabelled data(U).

" ] }, { "cell_type": "code", - "execution_count": 80, + "execution_count": 11, "metadata": {}, "outputs": [ { - "data": { - "text/plain": [ - "2" - ] - }, - "execution_count": 80, - "metadata": {}, - "output_type": "execute_result" + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 400/400 [00:40<00:00, 9.99it/s]\n", + "100%|██████████| 4500/4500 [07:36<00:00, 9.85it/s]\n" + ] } ], "source": [ - "data[9]" + "from spear.labeling import PreLabels\n", + "\n", + "sms_noisy_labels = PreLabels(name=\"sms\",\n", + " data=X_T,\n", + " gold_labels=Y_T,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "sms_noisy_labels.generate_pickle(T_path_pkl)\n", + "sms_noisy_labels.generate_json(path_json) #generating json files once is enough\n", + "\n", + "sms_noisy_labels = PreLabels(name=\"sms\",\n", + " data=X_U,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2) #note that we don't pass gold_labels here, for the unlabelled data\n", + "sms_noisy_labels.generate_pickle(U_path_pkl)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ***Accessing labeled data:***\n", + "### **Importing and the use of get_data and get_classes**\n", + "

These functions can be used to extract data from pickle files and json file respectively. Note that these are the files generated using PreLabels.

\n", + "

For detailed contents of output, please refer documentation.

" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of elements in data list: 10\n", + "Shape of feature matrix: (0,)\n", + "Shape of labels matrix: (4500, 16)\n", + "Shape of continuous scores matrix : (4500, 16)\n", + "Total number of classes: 2\n", + "Classes dictionary in json file(modified to have integer keys): {1: 'SPAM', 0: 'HAM'}\n" + ] + } + ], + "source": [ + "from spear.utils import get_data, get_classes\n", + "\n", + "data_U = get_data(path = U_path_pkl, check_shapes=True)\n", + "#check_shapes being True(above), asserts for relative shapes of arrays in pickle file\n", + "print(\"Number of elements in data list: \", len(data_U))\n", + "print(\"Shape of feature matrix: \", data_U[0].shape)\n", + "print(\"Shape of labels matrix: \", data_U[1].shape)\n", + "print(\"Shape of continuous scores matrix : \", data_U[6].shape)\n", + "print(\"Total number of classes: \", data_U[9])\n", + "\n", + "classes = get_classes(path = path_json)\n", + "print(\"Classes dictionary in json file(modified to have integer keys): \", classes)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ***Cage Algorithm:***\n", + "### **Importing Cage class (the algorithm) and declaring an object of it**\n", + "Cage algorithm needs only the pickle file(with labels given by LFs using PreLabels class) with unlabelled data(the data without true/gold labels) and it will predict the labels of this data. An optinal test data(which has true/gold labels) can also passed to get a log information of accuracies. \n", + "

Note: Multiple calls to fit_* functions will train parameters continuously ie, parameters are not reinitialised in fit_* functions. So, to train large data, one can call fit_* functions repeatedly on smaller chunks. Also, in order to perform multiple runs over the algorithm, one need to reinitialise paramters(by creating an object of Cage) at the start of each run.

" + ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "from spear.cage import Cage\n", + "\n", + "cage = Cage(path_json = path_json, n_lfs = n_lfs)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **fit_and_predict_proba function of Cage class**\n", + "The output(probs) is a numpy matrix of shape (num_instances, num_classes) having the probability of a particular instance being that class. \n", + "

Here the order of classes along a row for any instance is the ascending order of values used in enum defined before to hold labels.

\n", + "

For more details about arguments, please refer documentation; same should be the case for any of the member functions used from here on.

" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 200/200 [00:15<00:00, 12.57it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "final_test_accuracy_score: 0.7975\n", + "test_average_metric: binary\tfinal_test_f1_score: 0.5030674846625766\n", + "probs shape: (4500, 2)\n", + "labels shape: (4500,)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "cage = Cage(path_json = path_json, n_lfs = n_lfs)\n", + "\n", + "probs = cage.fit_and_predict_proba(path_pkl = U_path_pkl, path_test = T_path_pkl, path_log = log_path_cage_1, \\\n", + " qt = 0.9, qc = 0.85, metric_avg = ['binary'], n_epochs = 200, lr = 0.01)\n", + "labels = np.argmax(probs, 1)\n", + "print(\"probs shape: \", probs.shape)\n", + "print(\"labels shape: \",labels.shape)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **fit_and_predict function of Cage class**\n", + "The output(probs) is a numpy matrix of shape (num_instances,) containing integers(because need_strings is False), having the classes of each instance." + ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 200/200 [00:25<00:00, 7.92it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "final_test_accuracy_score: 0.7975\n", + "test_average_metric: binary\tfinal_test_f1_score: 0.5030674846625766\n", + "labels shape: (4500,)\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "cage = Cage(path_json = path_json, n_lfs = n_lfs)\n", + "\n", + "labels = cage.fit_and_predict(path_pkl = U_path_pkl, path_test = T_path_pkl, path_log = log_path_cage_1, \\\n", + " qt = 0.9, qc = 0.85, metric_avg = ['binary'], n_epochs = 200, lr = 0.01, \\\n", + " need_strings = False)\n", + "\n", + "print(\"labels shape: \", labels.shape)\n", + "print(type(labels[0]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **fit_and_predict function of Cage class**\n", + "The output(probs) is a numpy matrix of shape (num_instances,) containing strings(because need_strings is True), having the classes of each instance." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 200/200 [00:21<00:00, 9.12it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "final_test_accuracy_score: 0.7975\n", + "test_average_metric: binary\tfinal_test_f1_score: 0.5030674846625766\n", + "labels_strings shape: (4500,)\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "cage = Cage(path_json = path_json, n_lfs = n_lfs)\n", + "\n", + "labels_strings = cage.fit_and_predict(path_pkl = U_path_pkl, path_test = T_path_pkl, path_log = log_path_cage_1, \\\n", + " qt = 0.9, qc = 0.85, metric_avg = ['binary'], n_epochs = 200, lr = 0.01, \\\n", + " need_strings = True)\n", + "\n", + "print(\"labels_strings shape: \", labels_strings.shape)\n", + "print(type(labels_strings[0]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Save parameters**\n", + "

Make sure that the directory of the save_path file exists. Note that any existing contents in pickle file will be erased.

" + ] + }, + { + "cell_type": "code", + "execution_count": 17, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "cage.save_params(save_path = params_path)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Load parameters**" + ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "cage_2 = Cage(path_json = path_json, n_lfs = n_lfs)\n", + "cage_2.load_params(load_path = params_path)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **predict_proba function of Cage class**\n", + "The output(probs_test) is a numpy matrix of shape (num_instances, num_classes) having the probability of a particular instance being that class.\n", + "

Here the order of classes along a row for any instance is the ascending order of values used in enum defined before to hold labels.

" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warning: Predict is used before training any paramters in Cage class. Hope you have loaded parameters.\n", + "probs_test shape: (400, 2)\n" + ] + } + ], + "source": [ + "probs_test = cage_2.predict_proba(path_test = T_path_pkl, qc = 0.85) \n", + "#NEED NOT use the same test data(above) used in Cage class before.\n", + "print(\"probs_test shape: \",probs_test.shape)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **predict function of Cage class**\n", + "The output(probs) is a numpy matrix of shape (num_instances,) containing integers(strings) if need_strings is Flase(True), having the classes of each instance. Just the use case with need_strings as False is displayed here." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warning: Predict is used before training any paramters in Cage class. Hope you have loaded parameters.\n", + "labels_test shape: (400,)\n", + "accuracy_score: 0.7975\n", + "f1_score: 0.5030674846625766\n" + ] + } + ], + "source": [ + "labels_test = cage_2.predict(path_test = T_path_pkl, qc = 0.85, need_strings = False)\n", + "print(\"labels_test shape: \", labels_test.shape)\n", + "\n", + "from sklearn.metrics import accuracy_score, f1_score\n", + "\n", + "#Y_T is true labels of test data, type is numpy array of shape (num_instances,)\n", + "print(\"accuracy_score: \", accuracy_score(Y_T, labels_test))\n", + "print(\"f1_score: \", f1_score(Y_T, labels_test, average = 'binary'))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Converting numpy array of integers to enums**\n", + "The below utility from spear can help convert return values of predict(obtained when need_strings is Flase) to a numpy array of enums." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "from spear.utils import get_enum\n", + "\n", + "labels_test_enum = get_enum(np_array = labels_test, enm = ClassLabels) \n", + "#the second argument is the Enum class defined at beginning\n", + "print(type(labels_test_enum[0]))" + ] } ], "metadata": { @@ -111,7 +760,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.5" + "version": "3.6.9" } }, "nbformat": 4, diff --git a/notebooks/SMS_SPAM/sms_hls.ipynb b/notebooks/SMS_SPAM/sms_hls.ipynb new file mode 100644 index 0000000..fe130d2 --- /dev/null +++ b/notebooks/SMS_SPAM/sms_hls.ipynb @@ -0,0 +1,640 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "27e4057f", + "metadata": {}, + "source": [ + "# ***End to End tutorial for SMS_SPAM labeling using High Level Supervision:***\n", + "**The paper and documentation can be found here:** [Paper](https://openreview.net/pdf/e4d3b0f4237ea03ce6b9b73bd796822f7f84a40c.pdf), [Documentation](https://spear-decile.readthedocs.io/en/latest)" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "54b88922", + "metadata": {}, + "outputs": [], + "source": [ + "'''\n", + "User don't need to include this cell to use the package\n", + "'''\n", + "import sys\n", + "sys.path.append('../../')" + ] + }, + { + "cell_type": "markdown", + "id": "d1cd22ce", + "metadata": {}, + "source": [ + "# ***Defining an Enum to hold labels:***\n", + "### **Representation of class Labels**\n", + "\n", + "

All the class labels for which we define labeling functions are encoded in enum and utilized in our next tasks. Make sure not to define an Abstain(Labeling function(LF) not deciding anything) class inside this Enum, instead import the ABSTAIN object as used later in LF section.

\n", + "\n", + "

SPAM dataset contains 2 classes i.e HAM and SPAM. Note that the numbers we associate can be anything but it is suggested to use a continuous numbers from 0 to number_of_classes-1

\n", + "\n", + "

**Note that even though this example is a binary classification, this(SPEAR) library supports multi-class classification**

" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "3d396484", + "metadata": {}, + "outputs": [], + "source": [ + "import enum\n", + "\n", + "# enum to hold the class labels\n", + "class ClassLabels(enum.Enum):\n", + " SPAM = 1\n", + " HAM = 0\n", + "\n", + "THRESHOLD = 0.8" + ] + }, + { + "cell_type": "markdown", + "id": "ed8759f9", + "metadata": {}, + "source": [ + "# ***Defining preprocessors, continuous_scorers, labeling functions:***\n", + "During labeling the unlabelled data we lookup for few keywords to assign a class SMS.\n", + "\n", + "Example : *If a message contains apply or buy in it then most probably the message is spam*" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "d93a5ac3", + "metadata": {}, + "outputs": [], + "source": [ + "trigWord1 = {\"free\",\"credit\",\"cheap\",\"apply\",\"buy\",\"attention\",\"shop\",\"sex\",\"soon\",\"now\",\"spam\"}\n", + "trigWord2 = {\"gift\",\"click\",\"new\",\"online\",\"discount\",\"earn\",\"miss\",\"hesitate\",\"exclusive\",\"urgent\"}\n", + "trigWord3 = {\"cash\",\"refund\",\"insurance\",\"money\",\"guaranteed\",\"save\",\"win\",\"teen\",\"weight\",\"hair\"}\n", + "notFreeWords = {\"toll\",\"Toll\",\"freely\",\"call\",\"meet\",\"talk\",\"feedback\"}\n", + "notFreeSubstring = {\"not free\",\"you are\",\"when\",\"wen\"}\n", + "firstAndSecondPersonWords = {\"I\",\"i\",\"u\",\"you\",\"ur\",\"your\",\"our\",\"we\",\"us\",\"youre\"}\n", + "thirdPersonWords = {\"He\",\"he\",\"She\",\"she\",\"they\",\"They\",\"Them\",\"them\",\"their\",\"Their\"}" + ] + }, + { + "cell_type": "markdown", + "id": "1e1ffb4b", + "metadata": {}, + "source": [ + "### **Declaration of a simple preprocessor function**\n", + "\n", + "\n", + "For most of the tasks in NLP, computer vivsion instead of using the raw datapoint we preprocess the datapoint and then label it. Preprocessor functions are used to preprocess an instance before labeling it. We use **`@preprocessor(name,resources)`** decorator to declare a function as preprocessor." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "102adabd", + "metadata": {}, + "outputs": [], + "source": [ + "from spear.labeling import preprocessor\n", + "\n", + "\n", + "@preprocessor(name = \"LOWER_CASE\")\n", + "def convert_to_lower(x):\n", + " return x.lower().strip()\n", + "\n", + "lower = convert_to_lower(\"RED\")" + ] + }, + { + "cell_type": "markdown", + "id": "3ddae1cb", + "metadata": {}, + "source": [ + "# ***High Level Supervision Algorithm:***" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "944fe4ad", + "metadata": {}, + "outputs": [], + "source": [ + "#my_data_feeders\n", + "import collections\n", + "\n", + "f_d = 'f_d'\n", + "f_d_U = 'f_d_U'\n", + "test_w = 'test_w'\n", + "\n", + "train_modes = [f_d, f_d_U]\n", + "\n", + "F_d_U_Data = collections.namedtuple('GMMDataF_d_U', 'x l m L d r')\n", + "F_d_Data = collections.namedtuple('GMMDataF_d', 'x labels')" + ] + }, + { + "cell_type": "markdown", + "id": "d2be11f7", + "metadata": {}, + "source": [ + "### **Importing the required functionalities**\n", + "\n", + "\n", + "Import the required libraries. Also, import the latest version of tensorflow." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "2758a604", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/compat/v2_compat.py:96: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "non-resource variables are not supported in the long term\n" + ] + } + ], + "source": [ + "from spear.Implyloss import *\n", + "import numpy as np\n", + "import sys, os, shutil\n", + "import tensorflow.compat.v1 as tf\n", + "tf.disable_v2_behavior()\n", + "# tf.reset_default_graph()" + ] + }, + { + "cell_type": "markdown", + "id": "7898a182", + "metadata": {}, + "source": [ + "### **Setting up the model's checkpoints**" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "016a1991", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Checkpoint file does not exist\n", + "INFO:tensorflow:best.ckpt-51 is not in all_model_checkpoint_paths. Manually adding it.\n", + "Saved new best checkpoint to path: /tmp/best_ckpt_0.266783/foo-bar/best.ckpt-51\n", + "Restoring best checkpoint from path: /tmp/best_ckpt_0.266783/foo-bar/best.ckpt-51\n", + "INFO:tensorflow:Restoring parameters from /tmp/best_ckpt_0.266783/foo-bar/best.ckpt-51\n", + "INFO:tensorflow:best.ckpt-52 is not in all_model_checkpoint_paths. Manually adding it.\n", + "Saved new best checkpoint to path: /tmp/best_ckpt_0.266783/foo-bar/best.ckpt-52\n", + "Restoring best checkpoint from path: /tmp/best_ckpt_0.266783/foo-bar/best.ckpt-51\n", + "INFO:tensorflow:Restoring parameters from /tmp/best_ckpt_0.266783/foo-bar/best.ckpt-51\n", + "INFO:tensorflow:best.ckpt-53 is not in all_model_checkpoint_paths. Manually adding it.\n", + "Saved new best checkpoint to path: /tmp/best_ckpt_0.266783/foo-bar/best.ckpt-53\n", + "INFO:tensorflow:best.ckpt-54 is not in all_model_checkpoint_paths. Manually adding it.\n", + "Saved new best checkpoint to path: /tmp/best_ckpt_0.266783/foo-bar/best.ckpt-54\n", + "Restoring best checkpoint from path: /tmp/best_ckpt_0.266783/foo-bar/best.ckpt-53\n", + "INFO:tensorflow:Restoring parameters from /tmp/best_ckpt_0.266783/foo-bar/best.ckpt-53\n", + "INFO:tensorflow:/tmp/best_ckpt_0.743327/best.ckpt-12 is not in all_model_checkpoint_paths. Manually adding it.\n", + "INFO:tensorflow:/tmp/best_ckpt_0.743327/best.ckpt-13 is not in all_model_checkpoint_paths. Manually adding it.\n", + "INFO:tensorflow:/tmp/best_ckpt_0.743327/best.ckpt-14 is not in all_model_checkpoint_paths. Manually adding it.\n", + "Best ckpt path: /tmp/best_ckpt_0.743327/best.ckpt-13\n", + "INFO:tensorflow:Restoring parameters from /tmp/best_ckpt_0.743327/best.ckpt-13\n", + "INFO:tensorflow:/tmp/best_ckpt_0.743327/best.ckpt-15 is not in all_model_checkpoint_paths. Manually adding it.\n", + "Best ckpt path: /tmp/best_ckpt_0.743327/best.ckpt-13\n", + "INFO:tensorflow:Restoring parameters from /tmp/best_ckpt_0.743327/best.ckpt-13\n", + "INFO:tensorflow:/tmp/best_ckpt_0.743327/best.ckpt-16 is not in all_model_checkpoint_paths. Manually adding it.\n", + "Best ckpt path: /tmp/best_ckpt_0.743327/best.ckpt-16\n", + "INFO:tensorflow:Restoring parameters from /tmp/best_ckpt_0.743327/best.ckpt-16\n", + "Best ckpt path: /tmp/best_ckpt_0.743327/best.ckpt-15\n", + "INFO:tensorflow:Restoring parameters from /tmp/best_ckpt_0.743327/best.ckpt-15\n", + "Saved MRU checkpoint to path: /tmp/checkpoints/hls-model\n", + "Restoring checkpoint from path: /tmp/checkpoints/hls-model\n", + "INFO:tensorflow:Restoring parameters from /tmp/checkpoints/hls-model\n", + "Restoring checkpoint from path: /tmp/checkpoints/hls-model\n", + "INFO:tensorflow:Restoring parameters from /tmp/checkpoints/hls-model\n", + "Saved MRU checkpoint to path: /tmp/checkpoints_0.064679/hls-model-11\n", + "Restoring checkpoint from path: /tmp/checkpoints_0.064679/hls-model-11\n", + "INFO:tensorflow:Restoring parameters from /tmp/checkpoints_0.064679/hls-model-11\n", + "WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/training/saver.py:968: remove_checkpoint (from tensorflow.python.training.checkpoint_management) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use standard file APIs to delete files with this prefix.\n", + "Saved MRU checkpoint to path: /tmp/checkpoints_0.064679/hls-model-5\n", + "Restoring checkpoint from path: /tmp/checkpoints_0.064679/hls-model-5\n", + "INFO:tensorflow:Restoring parameters from /tmp/checkpoints_0.064679/hls-model-5\n", + "Saved MRU checkpoint to path: /tmp/checkpoints_0.443770/hls-model-11\n", + "Restoring checkpoint from path: /tmp/checkpoints_0.443770/hls-model-11\n", + "INFO:tensorflow:Restoring parameters from /tmp/checkpoints_0.443770/hls-model-11\n", + "Saved MRU checkpoint to path: /tmp/checkpoints_0.443770/hls-model-5\n", + "Restoring checkpoint from path: /tmp/checkpoints_0.443770/hls-model-5\n", + "INFO:tensorflow:Restoring parameters from /tmp/checkpoints_0.443770/hls-model-5\n" + ] + } + ], + "source": [ + "# import tensorflow.compat.v1 as tf\n", + "# tf.disable_v2_behavior()\n", + "tf.reset_default_graph()\n", + "\n", + "\n", + "test_best_ckpt()\n", + "test_checkmate()\n", + "test_checkpoint()\n", + "test_mru_checkpoints(num_to_keep=1)\n", + "test_mru_checkpoints(num_to_keep=5)\n" + ] + }, + { + "cell_type": "markdown", + "id": "6ffb2908", + "metadata": {}, + "source": [ + "### **Initializing the Directories for storing relevant information**" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "a6f76abb", + "metadata": {}, + "outputs": [], + "source": [ + "checkpoint_dir = './checkpoint'\n", + "# data_dir = \"/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC\" # Directory containing data pickles\n", + "# data_dir = \"/home/parth/Desktop/SEM6/RnD/spear/examples/SMS_SPAM/data_pipeline/\"\n", + "data_dir = \"../../examples/SMS_SPAM/data_pipeline/\"\n", + "inference_output_dir = './inference_output/'\n", + "log_dir = './log/hls'\n", + "metric_pickle_dir = './met_pickl/'\n", + "tensorboard_dir = './tensorboard'" + ] + }, + { + "cell_type": "markdown", + "id": "712aec03", + "metadata": {}, + "source": [ + "### **Creating the directories if they don't exist**" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "6b9f760a", + "metadata": {}, + "outputs": [], + "source": [ + "if not os.path.exists(inference_output_dir):\n", + " os.makedirs(inference_output_dir)\n", + "\n", + "if not os.path.exists(log_dir):\n", + " os.makedirs(log_dir)\n", + "\n", + "if not os.path.exists(metric_pickle_dir):\n", + " os.makedirs(metric_pickle_dir)\n", + "\n", + "if not os.path.exists(tensorboard_dir):\n", + " os.makedirs(tensorboard_dir)" + ] + }, + { + "cell_type": "markdown", + "id": "8b133fa9", + "metadata": {}, + "source": [ + "### **Initializing the parameter values**" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "5fbdc2fc", + "metadata": {}, + "outputs": [], + "source": [ + "checkpoint_load_mode = 'mru' # Which kind of checkpoint to restore from. Possible options are mru: Most recently saved checkpoint. Use this to continue a run f_d, f_d_U: Use these to load the best checkpoint from these runs \n", + "# d_pickle = data_dir+\"d_processed.p\"\n", + "d_pickle = data_dir+\"sms_pickle_L.pkl\"\n", + "dropout_keep_prob = 0.8\n", + "early_stopping_p = 20 # early stopping patience (in epochs)\n", + "f_d_adam_lr = 0.0003 # default = 0.01\n", + "f_d_batch_size = 16\n", + "f_d_class_sampling = [10,10] # Comma-separated list of number of times each d instance should be sampled depending on its class for training f on d. Size of list must equal number of classes.\n", + "f_d_epochs = 4 # default = 2\n", + "f_d_metrics_pickle = metric_pickle_dir+\"metrics_train_f_on_d.p\"\n", + "f_d_primary_metric = 'accuracy' #'f1_score_1' # Metric for best checkpoint computation. The best metrics pickle will also be stored on this basis. Valid values are: accuracy: overall accuracy. f1_score_1: f1_score of class 1. avg_f1_score: average of all classes f1_score \n", + "f_d_U_adam_lr = 0.0003 # default = 0.01\n", + "f_d_U_batch_size = 32\n", + "f_d_U_epochs = 4 # default = 2 \n", + "f_d_U_metrics_pickle = metric_pickle_dir+\"metrics_train_f_on_d_U.p\"\n", + "f_infer_out_pickle = inference_output_dir+\"infer_f.p\" # output file name for any inference that was ran on f (classification) network\n", + "gamma = 0.1 # weighting factor for loss on U used in implication, pr_loss, snorkel, generalized cross entropy etc. \n", + "lamda = 0.1\n", + "min_rule_coverage = 0 # Minimum coverage of a rule in U in order to include it in co-training. Rules which have coverage less than this are assigned a constant weight of 1.0.\n", + "mode = \"implication\" # \"learn2reweight\" / \"implication\" / \"pr_loss\" / \"f_d\" \n", + "test_mode = \"\" # \"\" / test_f\" / \"test_w\" / \"test_all\"\n", + "num_classes = 2 # can be 0. Number of classes. If 0, this will be dynamically determined using max of labels in 'd'.\n", + "num_load_d = None # can be 0. Number of instances to load from d. If 0 load all.\n", + "num_load_U = None # can be 0. Number of instances to load from U. If 0 load all.\n", + "num_load_validation = None # can be 0. Number of instances to load from validation. If 0 load all.\n", + "q = \"1\"\n", + "rule_classes = None # Comma-separated list of the classes predicted by each rule if string is empty, rule classes are determined from data associated with rule firings.\n", + "shuffle_batches = True # Don't shuffle batches. Useful for debugging and stepping through batch by batch\n", + "test_w_batch_size = 1000\n", + "# U_pickle = data_dir+\"U_processed.p\"\n", + "U_pickle = data_dir+\"sms_pickle_U.pkl\"\n", + "use_joint_f_w = False # whether to utilize w network during inference\n", + "# validation_pickle = data_dir+\"validation_processed.p\"\n", + "validation_pickle = data_dir+\"sms_pickle_V.pkl\"\n", + "w_infer_out_pickle = inference_output_dir+\"infer_w.p\" # output file name for any inference that was ran on w (rule) network\n", + "json_file = data_dir+\"sms_json.json\"\n" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "29a0fb4a", + "metadata": {}, + "outputs": [], + "source": [ + "import shutil\n", + "output_dir = \"./\" + str(mode) + \"_\" + str(gamma) + \"_\" + str(lamda) + \"_\" + str(q)\n", + "if not os.path.exists(output_dir):\n", + " os.makedirs(output_dir)\n", + "\n", + "if test_mode==\"\":\n", + " if os.path.exists(checkpoint_dir):\n", + " shutil.rmtree(checkpoint_dir, ignore_errors=True) \n", + " os.makedirs(checkpoint_dir)\n", + "\n", + "# number of input dir - 1 (data_dir)\n", + "# number of output dir - 6 (checkpoint, inference_output, log_dir, metric_pickle, output, tensorboard)\n" + ] + }, + { + "cell_type": "markdown", + "id": "1769866e", + "metadata": {}, + "source": [ + "### **Creating a Data Feeder Object to process data**" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "41858faa", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`.\n", + "WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "\n", + "Future major versions of TensorFlow will allow gradients to flow\n", + "into the labels input on backprop by default.\n", + "\n", + "See `tf.nn.softmax_cross_entropy_with_logits_v2`.\n", + "\n", + "WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/spear/notebooks/SMS_SPAM/../../spear/Implyloss/model.py:641: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use `tf.cast` instead.\n", + "INFO:tensorflow:./checkpoint/f_d_U/best.ckpt-124 is not in all_model_checkpoint_paths. Manually adding it.\n" + ] + } + ], + "source": [ + "if(str(test_mode)==\"\"):\n", + " output_text_file=log_dir + \"/\" + str(mode) + \"_\" + str(gamma) + \"_\" + str(lamda) + \"_\" + str(q)+\".txt\"\n", + "else: \n", + " output_text_file=log_dir + \"/\" + str(test_mode) + \"_\" + str(mode) + \"_\" + str(gamma) + \"_\" + str(lamda) + \"_\" + str(q)+\".txt\"\n", + "sys.stdout = open(output_text_file,\"w\")\n", + "if(test_mode!=\"\"):\n", + " mode = test_mode\n", + "if mode not in ['learn2reweight', 'implication', 'f_d', 'pr_loss', 'gcross', 'label_snorkel', 'pure_snorkel', 'gcross_snorkel', 'test_f', 'test_w', 'test_all']:\n", + " raise ValueError('Invalid run mode ' + mode)\n", + "\n", + "data_feeder = DataFeeder(d_pickle, \n", + " U_pickle, \n", + " validation_pickle,\n", + " json_file,\n", + " shuffle_batches, \n", + " num_load_d, \n", + " num_load_U, \n", + " num_classes, \n", + " f_d_class_sampling, \n", + " min_rule_coverage, \n", + " rule_classes, \n", + " num_load_validation, \n", + " f_d_batch_size, \n", + " f_d_U_batch_size, \n", + " test_w_batch_size,\n", + " out_dir=output_dir)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "92840867", + "metadata": {}, + "outputs": [], + "source": [ + " num_features, num_classes, num_rules, num_rules_to_train = data_feeder.get_features_classes_rules()" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "5fd1f51a", + "metadata": {}, + "outputs": [], + "source": [ + "print(\"Number of features: \", num_features)\n", + "print(\"Number of classes: \",num_classes)\n", + "print(\"Print num of rules to train: \", num_rules_to_train)\n", + "print(\"Print num of rules: \", num_rules)\n", + "print(\"\\n\\n\")" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "e5ca4b7e", + "metadata": {}, + "outputs": [], + "source": [ + "rule_classes = data_feeder.rule_classes" + ] + }, + { + "cell_type": "markdown", + "id": "95e973e0", + "metadata": {}, + "source": [ + "### **Initializing the rule network and classification network of the algorithm**" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "d3dc90ae", + "metadata": {}, + "outputs": [], + "source": [ + "w_network = networks.w_network_fully_connected #rule network - CHANGE config in w_network_fully_connected of my_networks - DONE\n", + "f_network = networks.f_network_fully_connected #classification network - CHANGE config in f_network_fully_connected of my_networks - DONE\n", + " " + ] + }, + { + "cell_type": "markdown", + "id": "f4f8dff5", + "metadata": {}, + "source": [ + "### **Creating a High Level Supervision Network Object to be trained and tested**" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "1882b85c", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/legacy_tf_layers/core.py:171: UserWarning: `tf.layers.dense` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dense` instead.\n", + " warnings.warn('`tf.layers.dense` is deprecated and '\n", + "/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer_v1.py:1719: UserWarning: `layer.apply` is deprecated and will be removed in a future version. Please use `layer.__call__` method instead.\n", + " warnings.warn('`layer.apply` is deprecated and '\n" + ] + } + ], + "source": [ + "tf.reset_default_graph()\n", + "hls = HighLevelSupervisionNetwork(\n", + " num_features,\n", + " num_classes,\n", + " num_rules,\n", + " num_rules_to_train,\n", + " rule_classes,\n", + " w_network,\n", + " f_network,\n", + " f_d_epochs, \n", + " f_d_U_epochs, \n", + " f_d_adam_lr, \n", + " f_d_U_adam_lr, \n", + " dropout_keep_prob, \n", + " f_d_metrics_pickle, \n", + " f_d_U_metrics_pickle, \n", + " early_stopping_p, \n", + " f_d_primary_metric, \n", + " mode, \n", + " data_dir, \n", + " tensorboard_dir, \n", + " checkpoint_dir, \n", + " checkpoint_load_mode, \n", + " gamma, \n", + " lamda,\n", + " raw_d_x=data_feeder.raw_d.x, #instances from the \"d\" set\n", + " raw_d_L=data_feeder.raw_d.L) #labels from the \"d\" set\n", + "\n", + "float_formatter = lambda x: \"%.3f\" % x # Output 3 digits after decimal point in numpy arrays\n", + "np.set_printoptions(formatter={'float_kind':float_formatter})" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "e41b23e9", + "metadata": {}, + "outputs": [], + "source": [ + "print('Run mode is ' + mode)" + ] + }, + { + "cell_type": "markdown", + "id": "9fd904b0", + "metadata": {}, + "source": [ + "### **Train and Test on the hls object**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "89a2e277", + "metadata": {}, + "outputs": [], + "source": [ + "if mode == 'f_d':\n", + " print('training f on d')\n", + " hls.train.train_f_on_d(data_feeder, f_d_epochs)\n", + "elif mode[:4]!=\"test\":\n", + " print(mode+\" training started\")\n", + " hls.train.train_f_on_d_U(data_feeder, f_d_U_epochs, loss_type=mode)\n", + " print(mode+\" training ended\")\n", + "elif mode == 'test_f':\n", + " print('Running test_f')\n", + " hls.test.test_f(data_feeder, log_output=True, \n", + " save_filename=f_infer_out_pickle, \n", + " use_joint_f_w=use_joint_f_w)\n", + "elif mode == 'test_w': # use only if train_mode = implication or train_mode = pr_loss\n", + " print('Running test_w')\n", + " hls.test.test_w(data_feeder, log_output=True, save_filename=w_infer_out_pickle+\"_test\")\n", + "elif mode == 'test_all': # use only if train_mode = implication or train_mode = pr_loss\n", + " print('Running all tests')\n", + " print('\\ninference on f network ...\\n')\n", + " hls.test.test_f(data_feeder, log_output=True, \n", + " save_filename=f_infer_out_pickle,\n", + " use_joint_f_w=use_joint_f_w)\n", + " print('\\ninference on w network...')\n", + " print('we only test on instances covered by atleast one rule\\n')\n", + " hls.test.test_w(data_feeder, log_output=True, save_filename=w_infer_out_pickle+\"_test\")\n", + "else:\n", + " assert not \"Invalid mode string: %s\" % mode\n", + "\n", + "sys.stdout.close()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/SMS_SPAM/sms_implyloss.ipynb b/notebooks/SMS_SPAM/sms_implyloss.ipynb deleted file mode 100644 index fb69d4b..0000000 --- a/notebooks/SMS_SPAM/sms_implyloss.ipynb +++ /dev/null @@ -1,65 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 2, - "id": "34926459", - "metadata": {}, - "outputs": [], - "source": [ - "# run ./my_train_TREC.sh" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "2112bca9", - "metadata": {}, - "outputs": [], - "source": [ - "# the output will be stored in files named by the type of dataset, the type of algorithm/method and the model instance that is being used." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "5ab4a484", - "metadata": {}, - "outputs": [], - "source": [ - "# run ./my_test_TREC.sh" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "0661cf26", - "metadata": {}, - "outputs": [], - "source": [ - "# the output will be stored in files named by the type of dataset, the type of algorithm/method and the model instance that is being used." - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.5" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/notebooks/SMS_SPAM/sms_jl.ipynb b/notebooks/SMS_SPAM/sms_jl.ipynb new file mode 100644 index 0000000..0c7218c --- /dev/null +++ b/notebooks/SMS_SPAM/sms_jl.ipynb @@ -0,0 +1,920 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ***End to End tutorial for SMS_SPAM labeling using JL:***\n", + "**The paper, documentation, colab notebook can be found here:** [Paper](https://arxiv.org/abs/2008.09887), [Documentation](https://spear-decile.readthedocs.io/en/latest/#joint-learning-jl), [Colab](https://colab.research.google.com/drive/1HqkqQ8ytWjP9on3du-vVB07IQvo8Li3W?usp=sharing)" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "#pip install" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "'''\n", + "User don't need to include this cell to use the package\n", + "'''\n", + "import sys\n", + "sys.path.append('../../') " + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ***Defining an Enum to hold labels:***\n", + "### **Representation of class Labels**\n", + "\n", + "

All the class labels for which we define labeling functions are encoded in enum and utilized in our next tasks. Make sure not to define an Abstain(Labeling function(LF) not deciding anything) class inside this Enum, instead import the ABSTAIN object as used later in LF section.

\n", + "\n", + "

SPAM dataset contains 2 classes i.e HAM and SPAM. Note that the numbers we associate can be anything but it is suggested to use a continuous numbers from 0 to number_of_classes-1

\n", + "\n", + "

**Note that even though this example is a binary classification, this(SPEAR) library supports multi-class classification**

" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "import enum\n", + "\n", + "# enum to hold the class labels\n", + "class ClassLabels(enum.Enum):\n", + " SPAM = 1\n", + " HAM = 0\n", + "\n", + "THRESHOLD = 0.8" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ***Defining preprocessors, continuous_scorers, labeling functions:***\n", + "During labeling the unlabelled data we lookup for few keywords to assign a class SMS.\n", + "\n", + "Example : *If a message contains apply or buy in it then most probably the message is spam*" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "trigWord1 = {\"free\",\"credit\",\"cheap\",\"apply\",\"buy\",\"attention\",\"shop\",\"sex\",\"soon\",\"now\",\"spam\"}\n", + "trigWord2 = {\"gift\",\"click\",\"new\",\"online\",\"discount\",\"earn\",\"miss\",\"hesitate\",\"exclusive\",\"urgent\"}\n", + "trigWord3 = {\"cash\",\"refund\",\"insurance\",\"money\",\"guaranteed\",\"save\",\"win\",\"teen\",\"weight\",\"hair\"}\n", + "notFreeWords = {\"toll\",\"Toll\",\"freely\",\"call\",\"meet\",\"talk\",\"feedback\"}\n", + "notFreeSubstring = {\"not free\",\"you are\",\"when\",\"wen\"}\n", + "firstAndSecondPersonWords = {\"I\",\"i\",\"u\",\"you\",\"ur\",\"your\",\"our\",\"we\",\"us\",\"youre\"}\n", + "thirdPersonWords = {\"He\",\"he\",\"She\",\"she\",\"they\",\"They\",\"Them\",\"them\",\"their\",\"Their\"}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Declaration of a simple preprocessor function**\n", + "\n", + "\n", + "For most of the tasks in NLP, computer vivsion instead of using the raw datapoint we preprocess the datapoint and then label it. Preprocessor functions are used to preprocess an instance before labeling it. We use **`@preprocessor(name,resources)`** decorator to declare a function as preprocessor." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "from spear.labeling import preprocessor\n", + "\n", + "\n", + "@preprocessor(name = \"LOWER_CASE\")\n", + "def convert_to_lower(x):\n", + " return x.lower().strip()\n", + "\n", + "lower = convert_to_lower(\"RED\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Some Labeling function(LF) definitions**\n", + "Below are some examples on how to define LFs and continuous LFs(CLFs). To get the continuous score for a CLF, we need to define a function with continuous_scorer decorator(just like labeling_function decorator) and pass it to a CLF as displayed below. Also note how the continuous score can be used in CLF. Note that the word_similarity is the function with continuous_scorer decorator and is written in con_scorer file(this file is not a part of package) in same folder." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "model loading\n", + "model loaded\n" + ] + } + ], + "source": [ + "from spear.labeling import labeling_function, ABSTAIN\n", + "\n", + "from helper.con_scorer import word_similarity\n", + "import re\n", + "\n", + "\n", + "@preprocessor()\n", + "def convert_to_lower(x):\n", + " return x.lower().strip()\n", + "\n", + "\n", + "@labeling_function(resources=dict(keywords=trigWord1),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def LF1(c,**kwargs): \n", + " if len(kwargs[\"keywords\"].intersection(c.split())) > 0:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(resources=dict(keywords=trigWord2),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def LF2(c,**kwargs):\n", + " if len(kwargs[\"keywords\"].intersection(c.split())) > 0:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(resources=dict(keywords=trigWord3),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def LF3(c,**kwargs):\n", + " if len(kwargs[\"keywords\"].intersection(c.split())) > 0:\n", + " return ClassLabels.SPAM \n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(resources=dict(keywords=notFreeWords),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def LF4(c,**kwargs):\n", + " if \"free\" in c.split() and len(kwargs[\"keywords\"].intersection(c.split()))>0:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(resources=dict(keywords=notFreeSubstring),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def LF5(c,**kwargs):\n", + " for pattern in kwargs[\"keywords\"]: \n", + " if \"free\" in c.split() and re.search(pattern,c, flags= re.I):\n", + " return ClassLabels.HAM\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(resources=dict(keywords=firstAndSecondPersonWords),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def LF6(c,**kwargs):\n", + " if \"free\" in c.split() and len(kwargs[\"keywords\"].intersection(c.split()))>0:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "\n", + "@labeling_function(resources=dict(keywords=thirdPersonWords),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def LF7(c,**kwargs):\n", + " if \"free\" in c.split() and len(kwargs[\"keywords\"].intersection(c.split()))>0:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(label=ClassLabels.SPAM)\n", + "def LF8(c,**kwargs):\n", + " if (sum(1 for ch in c if ch.isupper()) > 6):\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=trigWord1),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def CLF1(c,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=trigWord2),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def CLF2(c,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=trigWord3),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def CLF3(c,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=notFreeWords),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def CLF4(c,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=notFreeSubstring),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def CLF5(c,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=firstAndSecondPersonWords),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def CLF6(c,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=thirdPersonWords),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def CLF7(c,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(cont_scorer=lambda x: 1-np.exp(float(-(sum(1 for ch in x if ch.isupper()))/2)),label=ClassLabels.SPAM)\n", + "def CLF8(c,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ***Accumulating all LFs into rules, an LFset(a class) object:***\n", + "### **Importing LFSet and passing LFs we defined, to that class**" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "from spear.labeling import LFSet\n", + "\n", + "LFS = [LF1,\n", + " LF2,\n", + " LF3,\n", + " LF4,\n", + " LF5,\n", + " LF6,\n", + " LF7,\n", + " LF8,\n", + " CLF1,\n", + " CLF2,\n", + " CLF3,\n", + " CLF4,\n", + " CLF5,\n", + " CLF6,\n", + " CLF7,\n", + " CLF8\n", + " ]\n", + "\n", + "rules = LFSet(\"SPAM_LF\")\n", + "rules.add_lf_list(LFS)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ***Loading data:***\n", + "### **Load the data: X, X_feats, Y**\n", + "

Note that the utils below is not a part of package but is used to load the necessary data. User have to use some means(which doesn't matter) to load his data(X, X_feats, Y). X is the raw data that is to be passed to LFs, X_feats is feature matrix, of type numpy array and shape (num_instances, num_features) and Y are true labels(if available). Note that we except user to provide feature matrix and feature matrix is not needed in Cage algorithm but it is needed in JL algorithm.

" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "from helper.utils import load_data_to_numpy, get_various_data\n", + "\n", + "X, X_feats, Y = load_data_to_numpy()\n", + "\n", + "validation_size = 100\n", + "test_size = 400\n", + "L_size = 100\n", + "U_size = 4500\n", + "n_lfs = len(rules.get_lfs())\n", + "\n", + "X_V, Y_V, X_feats_V,_, X_T, Y_T, X_feats_T,_, X_L, Y_L, X_feats_L,_, X_U, X_feats_U,_ = get_various_data(X, Y,\\\n", + " X_feats, n_lfs, validation_size, test_size, L_size, U_size)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ***Labeling data:***\n", + "### **Paths**\n", + "* path_json: path to json file generated by PreLabels\n", + "* V_path_pkl: path to pkl file generated by PreLabels containing the validation data with true labels\n", + "* L_path_pkl: path to pkl file generated by PreLabels containing the labeled data with true labels\n", + "* T_path_pkl: path to pkl file generated by PreLabels containing the test data with true labels\n", + "* U_path_pkl: path to pkl file generated by PreLabels containing the unlabelled data without true labels\n", + "* log_path: path to save the log which is generated during the algorithm\n", + "* params_path: path to save parameters of model\n", + "\n", + "

Difference between test and labeled data is that labeled data may be used in the algorithm(JL uses it while Cage doesn't) but test data isn't. Make sure that the directory of the files(in above paths) exists. Note that any existing contents in pickle files will be erased.

" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "path_json = 'data_pipeline/JL/sms_json.json'\n", + "V_path_pkl = 'data_pipeline/JL/sms_pickle_V.pkl' #validation data - have true labels\n", + "T_path_pkl = 'data_pipeline/JL/sms_pickle_T.pkl' #test data - have true labels\n", + "L_path_pkl = 'data_pipeline/JL/sms_pickle_L.pkl' #Labeled data - have true labels\n", + "U_path_pkl = 'data_pipeline/JL/sms_pickle_U.pkl' #unlabelled data - don't have true labels\n", + "\n", + "log_path_jl_1 = 'log/JL/sms_log_1.txt' #jl is an algorithm, can be found below\n", + "params_path = 'params/JL/sms_params.pkl' #file path to store parameters of JL, used below" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Importing PreLabels class and using it to label data**\n", + "Json file should be generated only once as shown below.\n", + "

Note: We don't pass gold_lables(or true labels) to the 4th PreLabels class which generates labels to unlabelled data(U).

" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 100/100 [00:08<00:00, 12.48it/s]\n", + "100%|██████████| 400/400 [00:37<00:00, 10.69it/s]\n", + "100%|██████████| 100/100 [00:11<00:00, 8.94it/s]\n", + "100%|██████████| 4500/4500 [07:36<00:00, 9.86it/s]\n" + ] + } + ], + "source": [ + "from spear.labeling import PreLabels\n", + "\n", + "sms_noisy_labels = PreLabels(name=\"sms\",\n", + " data=X_V,\n", + " gold_labels=Y_V,\n", + " data_feats=X_feats_V,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "sms_noisy_labels.generate_pickle(V_path_pkl)\n", + "sms_noisy_labels.generate_json(path_json) #generating json files once is enough\n", + "\n", + "sms_noisy_labels = PreLabels(name=\"sms\",\n", + " data=X_T,\n", + " gold_labels=Y_T,\n", + " data_feats=X_feats_T,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "sms_noisy_labels.generate_pickle(T_path_pkl)\n", + "\n", + "sms_noisy_labels = PreLabels(name=\"sms\",\n", + " data=X_L,\n", + " gold_labels=Y_L,\n", + " data_feats=X_feats_L,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "sms_noisy_labels.generate_pickle(L_path_pkl)\n", + "\n", + "sms_noisy_labels = PreLabels(name=\"sms\",\n", + " data=X_U,\n", + " rules=rules,\n", + " data_feats=X_feats_U,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2) #note that we don't pass gold_labels here, for the unlabelled data\n", + "sms_noisy_labels.generate_pickle(U_path_pkl)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ***Accessing labeled data:***\n", + "### **Importing and the use of get_data and get_classes**\n", + "

These functions can be used to extract data from pickle files and json file respectively. Note that these are the files generated using PreLabels.

\n", + "

For detailed contents of output, please refer documentation.

" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of elements in data list: 10\n", + "Shape of feature matrix: (4500, 1024)\n", + "Shape of labels matrix: (4500, 16)\n", + "Shape of continuous scores matrix : (4500, 16)\n", + "Total number of classes: 2\n", + "Classes dictionary in json file(modified to have integer keys): {1: 'SPAM', 0: 'HAM'}\n" + ] + } + ], + "source": [ + "from spear.utils import get_data, get_classes\n", + "\n", + "data_U = get_data(path = U_path_pkl, check_shapes=True)\n", + "#check_shapes being True(above), asserts for relative shapes of arrays in pickle file\n", + "print(\"Number of elements in data list: \", len(data_U))\n", + "print(\"Shape of feature matrix: \", data_U[0].shape)\n", + "print(\"Shape of labels matrix: \", data_U[1].shape)\n", + "print(\"Shape of continuous scores matrix : \", data_U[6].shape)\n", + "print(\"Total number of classes: \", data_U[9])\n", + "\n", + "classes = get_classes(path = path_json)\n", + "print(\"Classes dictionary in json file(modified to have integer keys): \", classes)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ***Joint Learning(JL) Algorithm:***\n", + "## **Importing JL class (the algorithm) and declaring an object of it**\n", + "JL algoritm needs the four types of data:(all this data should be labeled using LFs via PreLabels class)\n", + "* Unlabeled data(doesn't have true/gold labels)\n", + "* labeled data(have true/gold labels)\n", + "* validation data(have true/gold labels)\n", + "* test data(have true/gold labels)\n", + "\n", + "

All this data is compulsory for training(passed in fit_and_predict functions). Note that the amount of labeled or validation data can be small, for example they can be of the order of 100 each. Also refer subset selection to find the subset of the data, that is available with you, to label(using a trustable means/SMEs) and use it as 'labeled data' so that the data complements the LFs.

\n", + "

The member functions of JL can be choosen to return fm(feature model) or gm(graphical model) predictions. It is highly advised to use the predictions of fm.

\n", + "

Note: Multiple calls to fit_* functions will train parameters continuously ie, parameters are not reinitialised in fit_* functions. So, to train large data, one can call fit_* functions repeatedly on smaller chunks. Also, in order to perform multiple runs over the algorithm, one need to reinitialise paramters(by creating an object of JL) at the start of each run.

" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "from spear.jl import JL\n", + "\n", + "n_features = 1024\n", + "n_hidden = 512\n", + "feature_model = 'nn'\n", + "'''\n", + "'nn' is neural network. other alternative is 'lr'(logistic regression) which doesn't need n_hidden to be passed\n", + "during initialisation.\n", + "''' \n", + "\n", + "jl = JL(path_json = path_json, n_lfs = n_lfs, n_features = n_features, feature_model = feature_model, \\\n", + " n_hidden = n_hidden)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **fit_and_predict_proba function of JL class with two return values**\n", + "Here return_gm argument is True which returns predictions/probabilities from graphical model(Cage algorithm) along with feature model. Also note that here test data(path_T) is compulsory and metric_avg is just one value(instead of list as in Cage). The output(probs) is a numpy matrix of shape (num_instances, num_classes) having the probability of a particular instance being that class. \n", + "

Here the order of classes along a row for any instance is the ascending order of values used in enum defined before to hold labels.

\n", + "

For more details about arguments, please refer documentation; same should be the case for any of the member functions used from here on.

" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 19%|█▉ | 19/100 [01:09<04:56, 3.66s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "early stopping at epoch: 19\tbest_epoch: 8\n", + "score used: f1_score\n", + "best_gm_val_score:0.7272727272727272\tbest_fm_val_score:0.8292682926829268\n", + "best_gm_test_score:0.5540540540540541\tbest_fm_test_score:0.8264462809917356\n", + "best_gm_test_precision:0.4270833333333333\tbest_fm_test_precision:0.7246376811594203\n", + "best_gm_test_recall:0.7884615384615384\tbest_fm_test_recall:0.9615384615384616\n", + "probs_fm shape: (4500, 2)\n", + "probs_gm shape: (4500, 2)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "loss_func_mask = [1,1,1,1,1,1,1] \n", + "'''\n", + "One can keep 0s in places where he don't want the specific loss function to be part\n", + "the final loss function used in training. Refer documentation(spear.JL.core.JL) to understand\n", + "the which index of loss_func_mask refers to what loss function.\n", + "\n", + "Note: the loss_func_mask above may not be the optimal mask for sms dataset. We have to try\n", + " some other masks too, to find the best one that gives good accuracies.\n", + "'''\n", + "batch_size = 150\n", + "lr_fm = 0.0005\n", + "lr_gm = 0.01\n", + "use_accuracy_score = False\n", + "\n", + "jl = JL(path_json = path_json, n_lfs = n_lfs, n_features = n_features, feature_model = feature_model, \\\n", + " n_hidden = n_hidden)\n", + "\n", + "probs_fm, probs_gm = jl.fit_and_predict_proba(path_L = L_path_pkl, path_U = U_path_pkl, path_V = V_path_pkl, \\\n", + " path_T = T_path_pkl, loss_func_mask = loss_func_mask, batch_size = batch_size, lr_fm = lr_fm, lr_gm = \\\n", + " lr_gm, use_accuracy_score = use_accuracy_score, path_log = log_path_jl_1, return_gm = True, n_epochs = \\\n", + " 100, start_len = 7,stop_len = 10, is_qt = True, is_qc = True, qt = 0.9, qc = 0.85, metric_avg = 'binary')\n", + "\n", + "labels = np.argmax(probs_fm, 1)\n", + "print(\"probs_fm shape: \", probs_fm.shape)\n", + "print(\"probs_gm shape: \", probs_gm.shape)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **fit_and_predict_proba function of JL class with one return value**\n", + "Here return_gm argument is False which returns predictions only from feature model. Also note the feature_model used here is 'lr'(logistic regression). The output(probs) is a numpy matrix of shape (num_instances, num_classes) having the probability of a particular instance being that class.\n", + "

Here the order of classes along a row for any instance is the ascending order of values used in enum defined before to hold labels.

" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 20%|██ | 20/100 [00:39<02:36, 1.95s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "early stopping at epoch: 20\tbest_epoch: 20\n", + "score used: f1_score\n", + "best_gm_val_score:0.6818181818181819\tbest_fm_val_score:0.9714285714285714\n", + "best_gm_test_score:0.563758389261745\tbest_fm_test_score:0.8448275862068965\n", + "best_gm_test_precision:0.4329896907216495\tbest_fm_test_precision:0.765625\n", + "best_gm_test_recall:0.8076923076923077\tbest_fm_test_recall:0.9423076923076923\n", + "probs_fm shape: (4500, 2)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "feature_model = 'lr' #in this case, n_hidden need not be passed as an argument\n", + "\n", + "jl = JL(path_json = path_json, n_lfs = n_lfs, n_features = n_features, feature_model = feature_model)\n", + "\n", + "probs_fm = jl.fit_and_predict_proba(path_L = L_path_pkl, path_U = U_path_pkl, path_V = V_path_pkl, \\\n", + " path_T = T_path_pkl, loss_func_mask = loss_func_mask, batch_size = batch_size, lr_fm = lr_fm, lr_gm = \\\n", + " lr_gm, use_accuracy_score = use_accuracy_score, path_log = log_path_jl_1, return_gm = False, n_epochs = \\\n", + " 100, start_len = 7,stop_len = 10, is_qt = True, is_qc = True, qt = 0.9, qc = 0.85, metric_avg = 'binary')\n", + "\n", + "labels = np.argmax(probs_fm, 1)\n", + "print(\"probs_fm shape: \", probs_fm.shape)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **fit_and_predict function of JL class**\n", + "The return_gm argument is set to True. The output(probs) is a numpy matrix of shape (num_instances,) containing integers(because need_strings is False), having the classes of each instance." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 21%|██ | 21/100 [01:11<04:27, 3.38s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "early stopping at epoch: 21\tbest_epoch: 10\n", + "score used: f1_score\n", + "best_gm_val_score:0.7272727272727272\tbest_fm_val_score:0.7391304347826086\n", + "best_gm_test_score:0.5540540540540541\tbest_fm_test_score:0.6944444444444445\n", + "best_gm_test_precision:0.4270833333333333\tbest_fm_test_precision:0.5434782608695652\n", + "best_gm_test_recall:0.7884615384615384\tbest_fm_test_recall:0.9615384615384616\n", + "labels_fm shape: (4500,)\n", + "labels_gm shape: (4500,)\n", + "\n", + "\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "feature_model = 'nn' #resetting feature_model as 'nn'(neural network) for further trainings\n", + "\n", + "jl = JL(path_json = path_json, n_lfs = n_lfs, n_features = n_features, feature_model = feature_model, \\\n", + " n_hidden = n_hidden)\n", + "\n", + "labels_fm, labels_gm = jl.fit_and_predict(path_L = L_path_pkl, path_U = U_path_pkl, path_V = V_path_pkl, \\\n", + " path_T = T_path_pkl, loss_func_mask = loss_func_mask, batch_size = batch_size, lr_fm = lr_fm, lr_gm = \\\n", + " lr_gm, use_accuracy_score = use_accuracy_score, path_log = log_path_jl_1, return_gm = True, n_epochs = \\\n", + " 100, start_len = 7,stop_len = 10, is_qt = True, is_qc = True, qt = 0.9, qc = 0.85, metric_avg = 'binary', \\\n", + " need_strings = False)\n", + "\n", + "print(\"labels_fm shape: \", labels_fm.shape)\n", + "print(\"labels_gm shape: \", labels_gm.shape)\n", + "print(type(labels_fm[0]))\n", + "print(type(labels_gm[0]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **fit_and_predict function of JL class**\n", + "The return_gm argument is set to True. The output(probs) is a numpy matrix of shape (num_instances,) containing strings(because need_strings is True), having the classes of each instance." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 19%|█▉ | 19/100 [01:02<04:24, 3.27s/it]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "early stopping at epoch: 19\tbest_epoch: 9\n", + "score used: f1_score\n", + "best_gm_val_score:0.6976744186046512\tbest_fm_val_score:0.7391304347826086\n", + "best_gm_test_score:0.54421768707483\tbest_fm_test_score:0.7299270072992701\n", + "best_gm_test_precision:0.42105263157894735\tbest_fm_test_precision:0.5882352941176471\n", + "best_gm_test_recall:0.7692307692307693\tbest_fm_test_recall:0.9615384615384616\n", + "labels_fm shape: (4500,)\n", + "labels_gm shape: (4500,)\n", + "\n", + "\n" + ] + } + ], + "source": [ + "jl = JL(path_json = path_json, n_lfs = n_lfs, n_features = n_features, feature_model = feature_model, \\\n", + " n_hidden = n_hidden)\n", + "\n", + "labels_fm, labels_gm = jl.fit_and_predict(path_L = L_path_pkl, path_U = U_path_pkl, path_V = V_path_pkl, \\\n", + " path_T = T_path_pkl, loss_func_mask = loss_func_mask, batch_size = batch_size, lr_fm = lr_fm, lr_gm = \\\n", + " lr_gm, use_accuracy_score = use_accuracy_score, path_log = log_path_jl_1, return_gm = True, n_epochs = \\\n", + " 100, start_len = 7,stop_len = 10, is_qt = True, is_qc = True, qt = 0.9, qc = 0.85, metric_avg = 'binary', \\\n", + " need_strings = True)\n", + "\n", + "print(\"labels_fm shape: \", labels_fm.shape)\n", + "print(\"labels_gm shape: \", labels_gm.shape)\n", + "print(type(labels_fm[0]))\n", + "print(type(labels_gm[0]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Save parameters**\n", + "

Make sure that the directory of save_path file exists. Note that any existing contents in pickle file will be erased.

" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "jl.save_params(save_path = params_path)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Load parameters**" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "jl_2 = JL(path_json = path_json, n_lfs = n_lfs, n_features = n_features, feature_model = feature_model, \\\n", + " n_hidden = n_hidden)\n", + "jl_2.load_params(load_path = params_path)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **predict_fm/gm_proba functions of JL class**\n", + "The output(probs_test) is a numpy matrix of shape (num_instances, num_classes) having the probability of a particular instance being that class.\n", + "

Here the order of classes along a row for any instance is the ascending order of values used in enum defined before to hold labels.

\n", + "

Note that predict_fm_proba takes feature matrix(can also be obtained from pickle file using get_data()) as argument while predict_gm_proba takes pickle file(containing labels given by LFs) as argument.

" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warning: Predict is used before training any paramters in JL class. Hope you have loaded parameters.\n", + "Warning: Predict is used before training any paramters in JL class. Hope you have loaded parameters.\n", + "probs_fm_test shape: (400, 2)\n", + "probs_gm_test shape: (400, 2)\n" + ] + } + ], + "source": [ + "probs_fm_test = jl_2.predict_fm_proba(x_test = X_feats_T)\n", + "probs_gm_test = jl_2.predict_gm_proba(path_test = T_path_pkl, qc = 0.85)\n", + "\n", + "print(\"probs_fm_test shape: \", probs_fm_test.shape)\n", + "print(\"probs_gm_test shape: \", probs_gm_test.shape)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **predict_fm/gm functions of JL class**\n", + "The output(probs) is a numpy matrix of shape (num_instances,) containing integers(strings) if need_strings is Flase(True), having the classes of each instance. Just the use case with need_strings as False is displayed here. \n", + "

Note that predict_fm takes feature matrix(can also be obtained from pickle file using get_data()) as argument while predict_gm takes pickle file(containing labels given by LFs) as argument.

" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warning: Predict is used before training any paramters in JL class. Hope you have loaded parameters.\n", + "Warning: Predict is used before training any paramters in JL class. Hope you have loaded parameters.\n", + "labels_fm_test shape: (400,)\n", + "labels_gm_test shape: (400,)\n", + "accuracy_score of gm: 0.8325 | fm: 0.9075\n", + "f1_score of gm: 0.54421768707483 | fm: 0.7299270072992701\n" + ] + } + ], + "source": [ + "labels_fm_test = jl_2.predict_fm(x_test = X_feats_T, need_strings=False)\n", + "labels_gm_test = jl_2.predict_gm(path_test = T_path_pkl, qc = 0.85, need_strings=False)\n", + "\n", + "print(\"labels_fm_test shape: \", labels_fm_test.shape)\n", + "print(\"labels_gm_test shape: \", labels_gm_test.shape)\n", + "\n", + "from sklearn.metrics import accuracy_score, f1_score\n", + "\n", + "#Y_T is true labels of test data, type is numpy array of shape (num_instances,)\n", + "print(\"accuracy_score of gm: \", accuracy_score(Y_T, labels_gm_test), \"| fm: \", accuracy_score(Y_T, labels_fm_test))\n", + "print(\"f1_score of gm: \", f1_score(Y_T, labels_gm_test, average = 'binary'), \"| fm: \", f1_score(Y_T, labels_fm_test, average = 'binary'))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Converting numpy array of integers to enums**\n", + "The below utility from spear can help convert return values of predict_fm, predict_gm(obtained when need_strings is Flase) to a numpy array of enums." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "from spear.utils import get_enum\n", + "\n", + "probs_fm_test_enum = get_enum(np_array = labels_fm_test, enm = ClassLabels) \n", + "#the second argument is the Enum class defined at beginning\n", + "print(type(probs_fm_test_enum[0]))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.13" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/notebooks/SMS_SPAM/sms_labeling.ipynb b/notebooks/SMS_SPAM/sms_labeling.ipynb index c207284..a7f0fac 100644 --- a/notebooks/SMS_SPAM/sms_labeling.ipynb +++ b/notebooks/SMS_SPAM/sms_labeling.ipynb @@ -16,7 +16,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -35,7 +35,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -60,76 +60,65 @@ " \n", " \n", " SMS TEXT\n", - " CLASS\n", " \n", " \n", " \n", " \n", " 0\n", " Go until jurong point, crazy.. Available only ...\n", - " 0\n", " \n", " \n", " 1\n", " Ok lar... Joking wif u oni...\\n\n", - " 0\n", " \n", " \n", " 2\n", " Free entry in 2 a wkly comp to win FA Cup fina...\n", - " 1\n", " \n", " \n", " 3\n", " U dun say so early hor... U c already then say...\n", - " 0\n", " \n", " \n", " 4\n", " Nah I don't think he goes to usf, he lives aro...\n", - " 0\n", " \n", " \n", " 5\n", " FreeMsg Hey there darling it's been 3 week's n...\n", - " 1\n", " \n", " \n", " 6\n", " Even my brother is not like to speak with me. ...\n", - " 0\n", " \n", " \n", " 7\n", " As per your request 'Melle Melle (Oru Minnamin...\n", - " 0\n", " \n", " \n", " 8\n", " WINNER!! As a valued network customer you have...\n", - " 1\n", " \n", " \n", " 9\n", " Had your mobile 11 months or more? U R entitle...\n", - " 1\n", " \n", " \n", "\n", "" ], "text/plain": [ - " SMS TEXT CLASS\n", - "0 Go until jurong point, crazy.. Available only ... 0\n", - "1 Ok lar... Joking wif u oni...\\n 0\n", - "2 Free entry in 2 a wkly comp to win FA Cup fina... 1\n", - "3 U dun say so early hor... U c already then say... 0\n", - "4 Nah I don't think he goes to usf, he lives aro... 0\n", - "5 FreeMsg Hey there darling it's been 3 week's n... 1\n", - "6 Even my brother is not like to speak with me. ... 0\n", - "7 As per your request 'Melle Melle (Oru Minnamin... 0\n", - "8 WINNER!! As a valued network customer you have... 1\n", - "9 Had your mobile 11 months or more? U R entitle... 1" + " SMS TEXT\n", + "0 Go until jurong point, crazy.. Available only ...\n", + "1 Ok lar... Joking wif u oni...\\n\n", + "2 Free entry in 2 a wkly comp to win FA Cup fina...\n", + "3 U dun say so early hor... U c already then say...\n", + "4 Nah I don't think he goes to usf, he lives aro...\n", + "5 FreeMsg Hey there darling it's been 3 week's n...\n", + "6 Even my brother is not like to speak with me. ...\n", + "7 As per your request 'Melle Melle (Oru Minnamin...\n", + "8 WINNER!! As a valued network customer you have...\n", + "9 Had your mobile 11 months or more? U R entitle..." ] }, "metadata": {}, @@ -137,13 +126,13 @@ } ], "source": [ - "from utils import load_data_to_numpy\n", + "from helper.utils import load_data_to_numpy\n", "import numpy as np\n", "import pandas as pd\n", "\n", "X, X_feats, Y = load_data_to_numpy()\n", "\n", - "df = pd.DataFrame({'SMS TEXT':X, 'CLASS':Y})\n", + "df = pd.DataFrame({'SMS TEXT':X})\n", "result = df.head(10)\n", "display(result)" ] @@ -162,7 +151,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -187,7 +176,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -220,7 +209,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -263,7 +252,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -299,7 +288,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 7, "metadata": {}, "outputs": [ { @@ -338,22 +327,13 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 14, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "model loading\n", - "model loaded\n" - ] - } - ], + "outputs": [], "source": [ "from spear.labeling import labeling_function, ABSTAIN, preprocessor\n", "\n", - "from con_scorer import word_similarity\n", + "from helper.con_scorer import word_similarity\n", "import re\n", "\n", "\n", @@ -363,124 +343,124 @@ "\n", "\n", "@labeling_function(resources=dict(keywords=trigWord1),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", - "def LF1(c,**kwargs): \n", - " if len(kwargs[\"keywords\"].intersection(c.split())) > 0:\n", + "def LF1(x,**kwargs): \n", + " if len(kwargs[\"keywords\"].intersection(x.split())) > 0:\n", " return ClassLabels.SPAM\n", " else:\n", " return ABSTAIN\n", "\n", "@labeling_function(resources=dict(keywords=trigWord2),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", - "def LF2(c,**kwargs):\n", - " if len(kwargs[\"keywords\"].intersection(c.split())) > 0:\n", + "def LF2(x,**kwargs):\n", + " if len(kwargs[\"keywords\"].intersection(x.split())) > 0:\n", " return ClassLabels.SPAM\n", " else:\n", " return ABSTAIN\n", "\n", "@labeling_function(resources=dict(keywords=trigWord3),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", - "def LF3(c,**kwargs):\n", - " if len(kwargs[\"keywords\"].intersection(c.split())) > 0:\n", + "def LF3(x,**kwargs):\n", + " if len(kwargs[\"keywords\"].intersection(x.split())) > 0:\n", " return ClassLabels.SPAM \n", " else:\n", " return ABSTAIN\n", "\n", "@labeling_function(resources=dict(keywords=notFreeWords),pre=[convert_to_lower],label=ClassLabels.HAM)\n", - "def LF4(c,**kwargs):\n", - " if \"free\" in c.split() and len(kwargs[\"keywords\"].intersection(c.split()))>0:\n", + "def LF4(x,**kwargs):\n", + " if \"free\" in x.split() and len(kwargs[\"keywords\"].intersection(x.split()))>0:\n", " return ClassLabels.HAM\n", " else:\n", " return ABSTAIN\n", "\n", "@labeling_function(resources=dict(keywords=notFreeSubstring),pre=[convert_to_lower],label=ClassLabels.HAM)\n", - "def LF5(c,**kwargs):\n", + "def LF5(x,**kwargs):\n", " for pattern in kwargs[\"keywords\"]: \n", - " if \"free\" in c.split() and re.search(pattern,c, flags= re.I):\n", + " if \"free\" in x.split() and re.search(pattern,x, flags= re.I):\n", " return ClassLabels.HAM\n", " return ABSTAIN\n", "\n", "@labeling_function(resources=dict(keywords=firstAndSecondPersonWords),pre=[convert_to_lower],label=ClassLabels.HAM)\n", - "def LF6(c,**kwargs):\n", - " if \"free\" in c.split() and len(kwargs[\"keywords\"].intersection(c.split()))>0:\n", + "def LF6(x,**kwargs):\n", + " if \"free\" in x.split() and len(kwargs[\"keywords\"].intersection(x.split()))>0:\n", " return ClassLabels.HAM\n", " else:\n", " return ABSTAIN\n", "\n", "\n", "@labeling_function(resources=dict(keywords=thirdPersonWords),pre=[convert_to_lower],label=ClassLabels.HAM)\n", - "def LF7(c,**kwargs):\n", - " if \"free\" in c.split() and len(kwargs[\"keywords\"].intersection(c.split()))>0:\n", + "def LF7(x,**kwargs):\n", + " if \"free\" in x.split() and len(kwargs[\"keywords\"].intersection(x.split()))>0:\n", " return ClassLabels.HAM\n", " else:\n", " return ABSTAIN\n", "\n", "@labeling_function(label=ClassLabels.SPAM)\n", - "def LF8(c,**kwargs):\n", - " if (sum(1 for ch in c if ch.isupper()) > 6):\n", + "def LF8(x,**kwargs):\n", + " if (sum(1 for ch in x if ch.isupper()) > 6):\n", " return ClassLabels.SPAM\n", " else:\n", " return ABSTAIN\n", "\n", "# @labeling_function()\n", - "# def LF9(c,**kwargs):\n", + "# def LF9(x,**kwargs):\n", "# return ClassLabels.HAM.value\n", "\n", "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=trigWord1),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", - "def CLF1(c,**kwargs):\n", + "def CLF1(x,**kwargs):\n", " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", " return ClassLabels.SPAM\n", " else:\n", " return ABSTAIN\n", "\n", "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=trigWord2),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", - "def CLF2(c,**kwargs):\n", + "def CLF2(x,**kwargs):\n", " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", " return ClassLabels.SPAM\n", " else:\n", " return ABSTAIN\n", "\n", "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=trigWord3),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", - "def CLF3(c,**kwargs):\n", + "def CLF3(x,**kwargs):\n", " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", " return ClassLabels.SPAM\n", " else:\n", " return ABSTAIN\n", "\n", "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=notFreeWords),pre=[convert_to_lower],label=ClassLabels.HAM)\n", - "def CLF4(c,**kwargs):\n", + "def CLF4(x,**kwargs):\n", " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", " return ClassLabels.HAM\n", " else:\n", " return ABSTAIN\n", "\n", "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=notFreeSubstring),pre=[convert_to_lower],label=ClassLabels.HAM)\n", - "def CLF5(c,**kwargs):\n", + "def CLF5(x,**kwargs):\n", " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", " return ClassLabels.HAM\n", " else:\n", " return ABSTAIN\n", "\n", "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=firstAndSecondPersonWords),pre=[convert_to_lower],label=ClassLabels.HAM)\n", - "def CLF6(c,**kwargs):\n", + "def CLF6(x,**kwargs):\n", " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", " return ClassLabels.HAM\n", " else:\n", " return ABSTAIN\n", "\n", "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=thirdPersonWords),pre=[convert_to_lower],label=ClassLabels.HAM)\n", - "def CLF7(c,**kwargs):\n", + "def CLF7(x,**kwargs):\n", " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", " return ClassLabels.HAM\n", " else:\n", " return ABSTAIN\n", "\n", "@labeling_function(cont_scorer=lambda x: 1-np.exp(float(-(sum(1 for ch in x if ch.isupper()))/2)),label=ClassLabels.SPAM)\n", - "def CLF8(c,**kwargs):\n", + "def CLF8(x,**kwargs):\n", " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", " return ClassLabels.SPAM\n", " else:\n", " return ABSTAIN\n", "\n", "# @labeling_function()\n", - "# def CLF9(c,**kwargs):\n", + "# def CLF9(x,**kwargs):\n", "# return ClassLabels.HAM\n" ] }, @@ -495,7 +475,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 15, "metadata": {}, "outputs": [], "source": [ @@ -534,14 +514,14 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "100%|██████████| 5574/5574 [06:01<00:00, 15.44it/s]\n" + "100%|██████████| 5574/5574 [05:52<00:00, 15.83it/s]\n" ] } ], @@ -571,14 +551,14 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 17, "metadata": { "tags": [] }, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3MAAAJdCAYAAACYmC6IAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAABx2klEQVR4nO3debxdVX338c+XMAsyplTGRMUKyKBeon2wiCgQ1BKtIOBQUGzEgnWuaBEpVh+0zkrVtCCoVaCINdVQBAGnRzQRmUJAIiIEUSOTojIEfs8fZ994uNwk99x533zer9d53b3XXuvsdc6953f37+y1105VIUmSJElql3UmugOSJEmSpN6ZzEmSJElSC5nMSZIkSVILmcxJkiRJUguZzEmSJElSC5nMSZIkSVILmcxJkjRESSrJEye6H5LWXkk2SvI/Se5J8l9Jjk7y3a7t9yZ5/ET2UePHZE6rleRlSRY1geH2JBckedZE90uS+jUHMtck+UOSXyb5VJLNJ7pfkjRGx1GHAtsAW1XVYQM3VtUmVXXTGvo1o/lyat0R9kUTzGROq5TkzcBHgffRCRo7Av8GzBmn/SeJf6OSVinJW4D3A28DNgOeCewEXJRk/VHcjwc8knoyhsdROwE/qaoVI3weTQEeKGtQSTYDTgGOq6rzq+r3VfVgVf1PVb0tyQZJPprkF83jo0k2aNouSfLCrudaN8nyJE9r1p+Z5P8luTvJVUn266p7WZL3Jvke8Afg8Ule1Tzn75LclOS1A/r6j823Xb9I8pruYVBNPz+Y5JYkv0ry6SQbjfX7J2nsJXks8M/A66vqf5sYdTPwUmAG8NYkf0yyZVebpyb5TZL1mvVXN/HlriQXJtmpq24lOS7JjcCNg+z/BUl+nOS3SW5NcnLXtv5vvec2sen2JG/t2j6r+bb+t01s+vCov0GSJswIj6P2S7IsyVuS/LqJH69qtv0zcBJweHO275hB9t19HLRRkg8l+Xk6wzK/2xwHfbupfnfzPH+Z5IlJvtXU+02Sc8bjvdLImMxpVf4S2BD4yiq2/xOdb8D3AvYEZgEnNtu+BBzZVfcg4DdVdUWS7YCvA/8CbAm8Ffhykuld9V8JzAU2BX4O/Bp4IfBY4FXAR7oSw9nAm4HnAU8E9hvQz1OBJzX9fCKwHZ0gKKn9/g+dOHV+d2FV3QssAHYHvg+8pGvzy4DzqurBJHOAdwJ/A0wHvkMnfnV7EfAMYNdB9v974G+BzYEXAK9L8qIBdZ4D7AwcCLw9yfOa8o8BH6uqxwJPAM4dyguW1BojOY4C+HM6ow22A44BTkuyRVW9m86ZvnOa4ZSnr6EfHwSeTidebgn8I/AwsG+zffPmeb4PvAf4BrAFsD3wiSG/Wk0YkzmtylZ0ErBVncJ/OXBKVf26qpbT+Xb8lc22LwKHJNm4WX8ZfzpAegWwoKoWVNXDVXURsAh4ftdzn1lVi6tqRfMt1ter6qfV8S06geavmrovBT7b1P8DcHL/kyQJnaTwTVV1Z1X9jk4APGK4b4qkSWVrVh2nbm+2f5Hmy6UmJhzRlAEcC/zfqlrSPMf7gL26z8412++sqj8O3EFVXVZV1zSx7Go6ce7ZA6r9c/ON/DXAZ/nTF10PAk9MsnVV3VtVlw/j9UuavEZyHAWdGHFKcxy0ALgX+IteOtBcqvJq4A1VdVtVPVRV/6+q7l9FkwfpDOHctqruq6rvrqKeJhGTOa3KHcDWq7lOZFs6Z836/bwpo6qWAkuAv24SukP408HTTsBhzRDLu5PcDTwLeFzXc93avaMkBye5PMmdTf3n0zlI6+/HratoOx3YGPhR177+tymX1H6/YdVx6nHN9i8Df5nkcXS+iX6Yzhk46MSjj3XFhzuB0PkmvN8j4lG3JM9Icmk6w8jvoZMcbj2gWnf7lXGSzjftTwKuT7IwXUPTJU0Jwz6O6m8/IBH8A7BJj33Yms7ZwZ8Osf4/0omBP0yyOMmre9yfJoDJnFbl+8D9dIYYDeYXdA6E+u3YlPXrH2o5B7iuSfCgc2Dz+aravOvxmKo6tatt9S8048e/TGeYwDZVtTmd4VNpqtxOZyhAvx26ln8D/BHYrWtfm1VVr8FQ0uTUH6f+prswySbAwcA3q+ouOmfzD6czSuDsquqPMbcCrx0Qjzaqqv/X9XTFqn0RmA/sUFWbAZ/mT7GpX3dMWhknq+rGqjoS+DM6E7icl+QxQ33hkia9kR5HjYbfAPfRGco90KNiW1X9sqr+rqq2BV4L/Fu8FcukZzKnQVXVPXSuLTstyYuSbJxkveYs2QfoJGsnJpmeZOum7he6nuJsOteIvI4/nZWjqfPXSQ5KMi3Jhs2Fvt0JWbf1gQ2A5cCKJAc3z9vvXOBVSXZpzgK+q+s1PAz8O51r7P4MIMl2SQ4a7vsiafJo4tQ/A59IMruJUTPoxIVlwOebql+kc23boTwyHn0aeEeS3aAzYUGSR03zvRqbAndW1X1JZtFJFgd6VxM/d6Nzze85zb5ekWR6E6fubuo+3MO+JU1io3AcNRp9eBg4A/hwkm2b466/bL4oX04n5qy8H12Sw7qOx+6ik/AZlyY5kzmtUlV9iM7kIifS+dDfChwP/DedCUwWAVcD1wBXNGX9bW+n863U/6E5eGnKb6Vztu6dXc/5Nlbxt9hc5/YPdA7O7qJzsDS/a/sFwMeBS4GlQP91J/3jwd/eX57kt8DF9DjmXNLkVVUfoBNPPgj8FvgBnbjy3K7rQubTmYTkl1V1VVfbr9A5K3Z2Ex+upXNGb6j+Hjglye/oHIgNNonJt+jEoG8CH6yqbzTls4HFSe6lMxnKEYNdlyepvUZyHDWK3to8/0I6Q8nfD6zTzDPwXuB7zVDzZwJ7Az9o4tJ8OtfarfZ+dZp4+dNoE6n9kuxC54BsA++/ImmiNGcIfwasZyySJI0Vz8yp9ZK8OJ37tWxB5xun//HgSZIkSVOdyZymgtfSuRfdT4GH6FynJ0mSJE1pJnNqvaqa3cxSuWVVvbi5Xk+SJkxV3VxVcZSAAJoJem5IsjTJCYNs3zfJFUlWJDl0wLYdk3wjyZIk1zVDeCUJGEYyN4SAdGySa5JcmeS7SXZtymck+WNTfmWST4/GC5AkSZqskkwDTqMzuc6uwJH9x0ZdbgGO5pGzrfb7HPCvVbULMIvOSBRJAmBVNzIcVFdAOoDOtM8Lk8yvquu6qn2xqj7d1D8E+DCdWbsAflpVe42415IkSe0wC1jaPytgkrNp7sHaX6Gqbm62PWIa+CbpW7eqLmrq3TtOfZbUEj0lcwwtIP22q/5jWP0NV1dr6623rhkzZgy3uaRJ6kc/+tFvqmr6RPdjJIxP0tQzRrFpOzpT0vdbBjxjiG2fBNyd5HxgJp3b65xQVQ+tqoGxSZp6Vhebek3mhhSQkhxH574a6wP7d22ameTHdO4FdGJVfWd1O5sxYwaLFi3qsYuSJrskP5/oPoyU8UmaeiZhbFoX+CvgqXSGYp5DZzjm6d2VkswF5gLsuOOOxiZpilldbBqTCVCq6rSqegKdGzaf2BTfDuxYVU+lk+h9McljB+ns3CSLkixavnz5WHRPkiRpvNwG7NC1vn1TNhTLgCur6qZmMp3/Bp42sFJVzauqvqrqmz691YMeJPWo12Su14B0NvAigKq6v6ruaJZ/RGca+ScNbGBAkiRJU8hCYOckM5OsDxwBzO+h7eZJ+g+I9qfr0hZJ6jWZW2NASrJz1+oLgBub8unNBCokeTywM3DTcDsuSZI02TVn1I4HLgSWAOdW1eIkpzQTxZFk7yTLgMOAzyRZ3LR9CHgr8M0k1wAB/n0iXoekyamna+aqakWS/oA0DTijPyABi6pqPnB8kucBDwJ3AUc1zfcFTknyIPAwcGxV3dlrhx988EGWLVvGfffd12tTDbDhhhuy/fbbs9566010V6Qpwfg0fMYjTWVVtQBYMKDspK7lhXRGOw3W9iJgj5Hs39g0PMYltUGvE6AMJSC9YRXtvgx8udf9DbRs2TI23XRTZsyYQZKRPt1aq6q44447WLZsGTNnzpzo7khTgvFpeIxH0tgyNvXOuKS2GJMJUMbSfffdx1ZbbWUwGqEkbLXVVn5LJ40i49PwGI+ksWVs6p1xSW3RumQOMBiNEt9HafT5uRoe3zdpbPkZ653vmdqglcncZPDLX/6SI444gic84Qk8/elP5/nPfz4/+clPJrpb0loryewkNyRZmuSEQba/Ocl1Sa5O8s0kO3VteyjJlc1jqLPMTUrLli1jzpw57LzzzjzhCU/gDW94Aw888MCIn/fmm2/mKU95yij0UNLaarSOnb7zne+w2267sddee7FkyZKVsWnRokX8wz/8w2rbvu997xtW36XJqudr5iabGSd8fVSf7+ZTX7DGOlXFi1/8Yo466ijOPvtsAK666ip+9atf8aQnPepuCyOyYsUK1l239b8maUw1M+WeBhxA575MC5PMr6ruKbx/DPRV1R+SvA74AHB4s+2PVbXXqHfs5M1G+fnuWe3mquJv/uZveN3rXsdXv/pVHnroIebOncs//dM/8a//+q/D3u2KFSuG3VbS5LP7WbuP6vNdc9Q1a6wzmsdO//mf/8k73vEOXvGKV3DzzTevLO/r66Ovr2+1bd/3vvfxzne+s6f9SZOZWcIwXHrppay33noce+yxK8v23HNPqoq3ve1tXHDBBSThxBNP5PDDD+eII47gla98JS94QSdRPProo3nhC1/Ii1/8Yk444QQuu+wy7r//fo477jhe+9rXctlll/Gud72LLbbYguuvv56f/OQnvOhFL+LWW2/lvvvu4w1veANz584F4PTTT+f9738/m2++OXvuuScbbLABn/zkJ1m+fDnHHnsst9xyCwAf/ehH2Weffcb/zdKY6uXLjKF8UdFis4ClVXUTQJKzgTl03Y+pqi7tqn858Ipx7eE4uOSSS9hwww151ateBcC0adP4yEc+wsyZM/nWt77FZz/7WXbbbTcA9ttvPz74wQ+yyy678PrXv55rr72WBx98kJNPPpk5c+Zw5plncv7553Pvvffy0EMPcdZZZ63cz80338wrX/lKfv/73wPwyU9+kv/zf/4Pl112GSeddBKbbropS5cu5TnPeQ7/9m//RlVxzDHHsGjRIpLw6le/mje96U3j/wZp7dDLlyhr+IJEo6fXY6fLLruMk08+ma233pprr72Wpz/96XzhC1/g9NNP59xzz+XCCy/kggsu4L3vfe/K57vsssv44Ac/yNe+9jXuvfdeXv/616+MO+9+97tZuHAhf/zjH9lrr73YbbfdmDdvHi996UtZtmwZDz30EO9617s4/PDDB+u+ppBevswYyhcVE81kbhj6g8pA559/PldeeSVXXXUVv/nNb9h7773Zd999Ofzwwzn33HN5wQtewAMPPMA3v/lNPvWpT3H66aez2WabsXDhQu6//3722WcfDjzwQACuuOIKrr322pUzKJ1xxhlsueWW/PGPf2TvvffmJS95Cffffz/vec97uOKKK9h0003Zf//92XPPPQF4wxvewJve9Cae9axnccstt3DQQQexZMmS8XuTpPG1HXBr1/oy4BmrqX8McEHX+oZJFgErgFOr6r9HvYfjYPHixY+KTY997GPZcccdecELXsC5557LP//zP3P77bdz++2309fXxzvf+U72339/zjjjDO6++25mzZrF8573PKATh66++mq23HLLR3z7/Wd/9mdcdNFFbLjhhtx4440ceeSRLFq0CIAf/vCHXHfddey0007Mnj2b888/n5kzZ3Lbbbdx7bXXAnD33XePy/shafLo9dgJ4Mc//jGLFy9m2223ZZ999uF73/ser3nNa/jud7/LC1/4Qg499NBHxKZu73nPe9hss8245prOwfhdd93FS17yEj75yU9y5ZVXAvDlL3+Zbbfdlq9/vfPF6D33mNyrfbxmbhR997vf5cgjj2TatGlss802PPvZz2bhwoUcfPDBXHrppdx///1ccMEF7Lvvvmy00UZ84xvf4HOf+xx77bUXz3jGM7jjjju48cYbAZg1a9YjpsL9+Mc/zp577skzn/lMbr31Vm688UZ++MMf8uxnP5stt9yS9dZbj8MOO2xl/Ysvvpjjjz+evfbai0MOOYTf/va33HvvveP+nkiTTZJXAH1A97jDnaqqD3gZ8NEkT1hF27lJFiVZtHz58nHo7ejZb7/9OO+88wA499xzOfTQQwH4xje+wamnnspee+3Ffvvtx3333bfyjP4BBxzAlltu+ajnevDBB/m7v/s7dt99dw477DCuu+5Po1lnzZrF4x//eKZNm8aRRx7Jd7/7XR7/+Mdz00038frXv57//d//5bGPfew4vGJJbbCqYyfoxJPtt9+eddZZh7322muVidtgLr74Yo477riV61tsscWj6uy+++5cdNFFvP3tb+c73/kOm202ykPjpXFgMjcMu+22Gz/60Y+GXH/DDTdkv/3248ILL+Scc85ZeQq/qvjEJz7BlVdeyZVXXsnPfvazlWfmHvOYx6xsf9lll3HxxRfz/e9/n6uuuoqnPvWpa5wq9+GHH+byyy9f+dy33XYbm2yyyTBerdQKtwE7dK1v35Q9QpLnAf8EHFJV9/eXV9Vtzc+bgMuApw62k6qaV1V9VdU3ffr00ev9KNl1110fFZt++9vfcsstt7D33nuz1VZbcfXVVz8qDn35y19eGStuueUWdtllF+CRcajbRz7yEbbZZhuuuuoqFi1a9IgJVgbO/paELbbYgquuuor99tuPT3/607zmNa8ZzZctqQV6PXYC2GCDDVYuT5s2bdSv333Sk57EFVdcwe67786JJ57IKaecMqrPL40Hk7lh2H///bn//vuZN2/eyrKrr76azTffnHPOOYeHHnqI5cuX8+1vf5tZs2YBcPjhh/PZz36W73znO8yePRuAgw46iE996lM8+OCDAPzkJz9ZeQ1Kt3vuuYctttiCjTfemOuvv57LL78cgL333ptvfetb3HXXXaxYsYIvf/lP92Q/8MAD+cQnPrFyvX9IgTRFLQR2TjIzyfrAEcAjZqVM8lTgM3QSuV93lW+RZINmeWtgH7qutWuT5z73ufzhD3/gc5/7HAAPPfQQb3nLWzj66KPZeOONOfzww/nABz7APffcwx577AF04tAnPvEJqgroDGtak3vuuYfHPe5xrLPOOnz+85/noYceWrnthz/8IT/72c94+OGHOeecc3jWs57Fb37zGx5++GFe8pKX8C//8i9cccUVY/DqJU1mwzl2GokDDjiA0047beX6XXfdBcB666238rjrF7/4BRtvvDGveMUreNvb3mZsUiuZzA1DEr7yla9w8cUX84QnPIHddtuNd7zjHbzsZS9jjz32YM8992T//ffnAx/4AH/+538OdJKrb33rWzzvec9j/fXXB+A1r3kNu+66K0972tN4ylOewmtf+9pBv3WaPXs2K1asYJddduGEE07gmc98JgDbbbcd73znO5k1axb77LMPM2bMWDlE4OMf/ziLFi1ijz32YNddd+XTn/70OL070virqhXA8cCFwBLg3KpanOSUJIc01f4V2AT4rwG3INgFWJTkKuBSOtfMtTKZ649N//Vf/8XOO+/Mk570JDbccMOVU3EfeuihnH322bz0pS9d2eZd73oXDz74IHvssQe77bYb73rXu9a4n7//+7/nrLPOYs899+T6669/xBm8vffem+OPP55ddtmFmTNn8uIXv5jbbruN/fbbj7322otXvOIV/N//+39H/8VLmtSGc+w0EieeeCJ33XUXT3nKU9hzzz259NLOHFhz585ljz324OUvfznXXHMNs2bNYq+99uKf//mfOfHEE0e8X2m8pf/b2Mmor6+v+i+q77dkyZKVQ4AE9957L5tssgkrVqzgxS9+Ma9+9at58YtfPOT2vp/t1tbZLJP8qLlGrbWMT4/WPZPccKzt759GyQhmszQ2aSDfu6mnjbNZri42OZtly5188slcfPHF3HfffRx44IG86EUvmuguSZIkSerS6/0dh5pImsy13Ac/+MGJ7oIkAZ0ZM/fbb7+J7oYkSWsNr5mTJEmSpBZqZTI3ma/zaxPfR2n0+bkaHt83aWz5Geud75naoHXJ3IYbbsgdd9zhB2yEqoo77riDDTfccKK7Ik0ZxqfhMR5JY8vY1DvjktqiddfMbb/99ixbtozly5dPdFdab8MNN2T77bef6G5IU4bxafiMR9LYMTYNj3FJbdC6ZG699dZj5syZE90NSXoU45OkycjYJE1drRtmKUmSJEkymZMkSZKkVjKZkyRJkqQWMpmTJEkaQ0lmJ7khydIkJwyyfd8kVyRZkeTQQbY/NsmyJJ8cnx5LaguTOUmSpDGSZBpwGnAwsCtwZJJdB1S7BTga+OIqnuY9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9Xz1q1/lBz/4ARtvvDF33nknW265JZ/85Cf54Ac/SF9f33i/dEkt8uMf/5jFixez7bbbss8++/C9732PWbNmcfjhh3POOeew995789vf/paNNtqIj33sYyThmmuu4frrr+fAAw/kJz/5CdCJX1dffTVbbrklZ5555iPW3/nOd7L//vtzxhlncPfddzNr1iye97zn8bnPfY6bb76ZK6+8knXXXXdl/Prwhz/MpZdeytZbbz3B74404VZ1b95uxwCzAarq+0k2BLbmT/f3ldZ6f/zjH9lrr71Wrr/jHe/g8MMPBzpnqq+88kre9KY3cfTRR/O9732P++67j6c85SkrT8r88Ic/5LrrrmOnnXZi9uzZnH/++Rx66KGr3ec555zDRRddxPXXX88nPvEJXvayl/HAAw8M+v913rx5j/p/OJpM5kbRd7/7XY488kimTZvGNttsw7Of/WwWLlzIYx/7WGbNmvWIe0Z0r3/jG9/g6quv5rzzzgPgnnvu4cYbb+Tiiy/mVa961crhSFtuueX4vyhpEktyBvBC4NdV9ZSu8tfTmVn3IeDrVfWPTfk76BwcPQT8Q1Vd2JSvdka5tpo1axbbb7890Bnbf/PNN7PZZpvxuMc9jr333huAxz62cznOd7/73ZXfFD75yU9mp512WpnMHXDAAY+IP93r3/jGN5g/fz4f/OAHgc401bfccgsXX3wxxx577MphmMYv6VEWAjsnmUkniTsCeNmAOrfQmT38zCS7ABsCy8e1l9Ikt7phlocccggAu+++O/feey+bbropm266KRtssAF333030Plf+fjHPx6AI488ku9+97urTeYWLVrE1ltvzY477sh2223Hq1/9au68805uu+22Qf+/jvX/Q5O5Ydhtt91WJl5DNXAsbfd6VfGJT3yCgw466BF1LrzwwuF3Ulo7nAl8Evhcf0GS59CZRGDPqro/yZ815bvSOVjaDdgWuDhJ/0WupwEH0LlmZWGS+VXVPQlBK22wwQYrl6dNm8aKFSuG9Txril9f/vKX+Yu/+IvhdVJaS1XViiTHAxfS+SLpjKpanOQUYFFVzQfeAvx7kjfRmQzl6OY2UJKGoP//4DrrrPOI/4nrrLPOyv+JA28HsKbbA3zpS1/i+uuvZ8aMGQD89re/5ctf/jLPfOYzR7HnQ+etCYZh//335/7772fevHkry66++mo233xzzjnnHB566CGWL1/Ot7/9bWbNmrXG5zvooIP41Kc+xYMPPgjAT37yE37/+99zwAEH8NnPfpY//OEPACtPy2666ab87ne/G4NXJrVLVX0bGDhe4XXAqVV1f1OnfzjSHODsqrq/qn4GLKUzm9zKGeWq6gGgf0a5Kekv/uIvuP3221m4cCEAv/vd71ixYgV/9Vd/xX/+538CnRh0yy23DClBO+igg/jEJz5B//Hlj3/8Y6Bz9u4zn/nMyn+Wxi/p0apqQVU9qaqeUFXvbcpOahI5quq6qtqnqvasqr2q6hsT22Np6vnhD3/Iz372Mx5++GHOOeccnvWsZ62y7sMPP8y5557LNddcw80338zNN9/MV7/6Vb70pS+t8v/rqv4fjpbWn5mbiIkVkvCVr3yFN77xjbz//e9nww03ZMaMGXz0ox/l3nvvZc899yQJH/jAB/jzP/9zrr/++tU+32te8xpuvvlmnva0p1FVTJ8+nf/+7/9m9uzZXHnllfT19bH++uvz/Oc/n/e9730cffTRHHvssU6AIg3uScBfJXkvcB/w1qpaSGfmuMu76i1rymDNM8oNy2Sc1GH99dfnnHPO4fWvfz1//OMf2Wijjbj44ov5+7//e173utex++67s+6663LmmWc+4lvMVXnXu97FG9/4RvbYYw8efvhhZs6cyde+9jVe85rX8JOf/IQ99tiD9dZbj7/7u7/j+OOPZ+7cucyePZttt93WCVAkaYqZiMloBl4zN3v2bE49dehXS+y9994cf/zxKydAefGLXwx0js+PPfbYR8xR8Z3vfIftttvuETPK77vvvlx33XXccccdg/5/XdX/w5NOOom+vr6VQ0GHK5P5bH1fX18tWrToEWVLlixhl11G995yU43vkcbaSGezTPKjqhqVGXySzAC+1n/NXJJrgUuBfwD2Bs4BHg98Ari8qr7Q1DsduKB5mtlV9Zqm/JXAM6rq+EH21T3999N//vOfP2K7n72R8f2bOto6m+VoxqaJMtixU9s4m2V7tD1uX3bZZXzwgx/ka1+bPH9Dg72nq4tNDrOUNNUsA86vjh8CD9OZ/W1VM8cNZUY5oDP9d1X1VVXf9OnTx6TzkiRJQ2UyJ2mq+W/gOQDNBCfrA78B5gNHJNmgmT1uZ+CHdM0ol2R9OpOkzJ+IjkuSpPGz3377TaqzcsPRymvmqmqNM82srSbzsFlptCX5ErAfsHWSZcC7gTOAM5rhlg8ARzWzvy1Oci5wHbACOK6qHmqe51Ezyg23T8an4TF2SVI7+X9v9Aznf2HrkrkNN9yQO+64g6222so/nAGqijvuuIMNN9xworsijYuqOnIVm16xivrvBd47SPkCYMFI+2N8Gh5jlyS1k//3Rs9w/xe2LpnbfvvtWbZsGcuXe8/MwWy44YYrbxIsaXwZn4bP2CVJ7eP/vdE1nP+FrUvm1ltvPWbOnDnR3ZCkRzE+SVK79TKTprNo+n9vMnACFEmSJElqIZM5SZIkSWohkzlJkiRJaiGTOUmSJElqIZM5SZIkSWohkzlJkiRJaiGTOUmSJElqIZM5SZIkSWohkzlJkiRJaiGTOUmSJElqIZM5SZIkSWohkzlJkiRJaiGTOUmSpAmQZHaSG5IsTXLCINs/kuTK5vGTJHdPQDclTWLrTnQHJEmS1jZJpgGnAQcAy4CFSeZX1XX9darqTV31Xw88ddw7KmlS88ycJEnS+JsFLK2qm6rqAeBsYM5q6h8JfGlceiapNUzmJEmSxt92wK1d68uaskdJshMwE7hkHPolqUVM5iRJkia3I4DzquqhwTYmmZtkUZJFy5cvH+euSZpIJnOSJEnj7zZgh6717ZuywRzBaoZYVtW8quqrqr7p06ePYhclTXYmc5JaK8kZSX6d5NpBtr0lSSXZullPko83s8ZdneRpXXWPSnJj8zhqPF+DpLXWQmDnJDOTrE8nYZs/sFKSJwNbAN8f5/5JagGTOUltdiYwe2Bhkh2AA4FbuooPBnZuHnOBTzV1twTeDTyDzoQE706yxZj2WtJar6pWAMcDFwJLgHOranGSU5Ic0lX1CODsqqqJ6Kekyc1bE0hqrar6dpIZg2z6CPCPwFe7yuYAn2sOiC5PsnmSxwH7ARdV1Z0ASS6ikyA6a5ykMVVVC4AFA8pOGrB+8nj2SVK7eGZO0pSSZA5wW1VdNWDTqmaO62VGOScZkCRJk4bJnKQpI8nGwDuBk9ZUdzicZECSJE0mJnOSppIn0LkX01VJbqYzO9wVSf6cVc8c18uMcpIkSZPGiJK5JG9KsjjJtUm+lGTDZlamHzQzxp3TzNBEkg2a9aXN9hmj8gokqVFV11TVn1XVjKqaQWfI5NOq6pd0Zon722ZWy2cC91TV7XQmHzgwyRbNxCcHNmWSJEmT2rCTuSTbAf8A9FXVU4BpdGZcej/wkap6InAXcEzT5Bjgrqb8I009SRq2JF+iM133XyRZluSY1VRfANwELAX+Hfh7gGbik/fQmSZ8IXBK/2QokiRJk9lIZ7NcF9goyYPAxsDtwP7Ay5rtZwEn05kCfE6zDHAe8MkkcapdScNVVUeuYfuMruUCjltFvTOAM0a1c5IkSWNs2Gfmquo24IN07uN0O3AP8CPg7ubeKfDIWeFWzhjXbL8H2Grg8zpbnCRJkiSt2UiGWW5B52zbTGBb4DEMcvPeXjlbnCRJkiSt2UgmQHke8LOqWl5VDwLnA/sAmyfpH77ZPSvcyhnjmu2bAXeMYP+SJEmStNYaSTJ3C/DMJBsnCfBc4DrgUuDQps5RwFeb5fnNOs32S7xeTpIkSZKGZyTXzP2AzkQmVwDXNM81D3g78OYkS+lcE3d60+R0YKum/M3ACSPotyRJkiSt1UY0m2VVvRt494Dim4BZg9S9DzhsJPuTJEmSJHWM6KbhkiRJkqSJYTInSZIkSS1kMidJkiRJLWQyJ0mSJEktZDInSZIkSS1kMidJkiRJLWQyJ0mSJEktZDInSZIkSS1kMidJkiRJLWQyJ0mSNAGSzE5yQ5KlSU5YRZ2XJrkuyeIkXxzvPkqa3Nad6A5IkiStbZJMA04DDgCWAQuTzK+q67rq7Ay8A9inqu5K8mcT01tJk5Vn5iRJksbfLGBpVd1UVQ8AZwNzBtT5O+C0qroLoKp+Pc59lDTJmcxJkiSNv+2AW7vWlzVl3Z4EPCnJ95JcnmT2YE+UZG6SRUkWLV++fIy6K2kyMpmTJEmanNYFdgb2A44E/j3J5gMrVdW8quqrqr7p06ePbw8lTSiTOUmtleSMJL9Ocm1X2b8muT7J1Um+0n3gk+QdzUQDNyQ5qKt8jZMQSNIouw3YoWt9+6as2zJgflU9WFU/A35CJ7mTJMBkTlK7nQkMHHZ0EfCUqtqDzoHPOwCS7AocAezWtPm3JNO6JiE4GNgVOLKpK0ljaSGwc5KZSdanE5/mD6jz33TOypFkazrDLm8axz5KmuSczVJSa1XVt5PMGFD2ja7Vy4FDm+U5wNlVdT/wsyRL6UxAAM0kBABJ+ichuA5JGiNVtSLJ8cCFwDTgjKpanOQUYFFVzW+2HZjkOuAh4G1VdcfE9VrScH3o8Bf2VP8t53xtSPVM5iRNZa8GzmmWt6OT3PXrnmxg4CQEzxjsyZLMBeYC7LjjjqPaUUlrn6paACwYUHZS13IBb24ekvQoDrOUNCUl+SdgBfCfo/WcTjIgSZImE8/MSZpykhwNvBB4bvPNNqx+soE1TUIgSZI06XhmTtKU0tyH6R+BQ6rqD12b5gNHJNkgyUw6M8L9kKFNQiBJkjTpeGZOUmsl+RKdmd62TrIMeDed2Ss3AC5KAnB5VR3bTCxwLp2JTVYAx1XVQ83zPGoSgnF/MZIkjbOxmpRD48dkTlJrVdWRgxSfvpr67wXeO0j5oyYhkKS1XS8H+h7kSxPDYZaSJEmS1EImc5IkSZLUQiZzkiRJktRCJnOSJEmS1EImc5IkSZLUQiZzkiRJktRCJnOSJEmS1EImc5IkSZLUQt40XJIkaYryxt/S1OaZOUmSJElqIZM5SZIkSWohh1lKkiRpynBoqdYmnpmTJEmSpBYymZMkSZKkFjKZkyRJkqQWMpmTJEmaAElmJ7khydIkJwyy/egky5Nc2TxeMxH9lDR5OQGKJEnSOEsyDTgNOABYBixMMr+qrhtQ9ZyqOn7cOyipFUZ0Zi7J5knOS3J9kiVJ/jLJlkkuSnJj83OLpm6SfLz59unqJE8bnZcgSZLUOrOApVV1U1U9AJwNzJngPklqmZEOs/wY8L9V9WRgT2AJcALwzaraGfhmsw5wMLBz85gLfGqE+5YkSWqr7YBbu9aXNWUDvaT5Evy8JDuMT9cktcWwk7kkmwH7AqcDVNUDVXU3nW+VzmqqnQW8qFmeA3yuOi4HNk/yuOHuX5KSnJHk10mu7SrreXRAkqOa+jcmOWoiXoskDeJ/gBlVtQdwEX86vnqEJHOTLEqyaPny5ePaQUkTayRn5mYCy4HPJvlxkv9I8hhgm6q6vanzS2CbZnlI30AZkCT14Exg9oCynkYHJNkSeDfwDDrDnt7dnwBK0hi6Deg+07Z9U7ZSVd1RVfc3q/8BPH2wJ6qqeVXVV1V906dPH5POSpqcRpLMrQs8DfhUVT0V+D1/OmgCoKoKqF6e1IAkaaiq6tvAnQOKex0dcBBwUVXdWVV30fn2e2CCKEmjbSGwc5KZSdYHjgDmd1cYMILpEDqXs0jSSiNJ5pYBy6rqB836eXSSu1/1B5/m56+b7Wv8BkqSRkGvowOGet2KJI2aqloBHA9cSCdJO7eqFic5JckhTbV/SLI4yVXAPwBHT0xvJU1Ww741QVX9MsmtSf6iqm4Angtc1zyOAk5tfn61aTIfOD7J2XSGM93TdcAlSaOuqipJT6MDVifJXDpDNNlxxx1H62klraWqagGwYEDZSV3L7wDeMd79ktQeI73P3OuB/2yGB9wEvIrO2b5zkxwD/Bx4aVN3AfB8YCnwh6auJI22XyV5XFXdPsTRAbcB+w0ov2ywJ66qecA8gL6+vlFLEiVJGq4PHf7CIdd9yzlfG8OeaCKMKJmrqiuBvkE2PXeQugUcN5L9SdIQzKeH0QFJLgTe1zXpyYH4TbgkSWqBkZ6Zk6QJk+RLdM6qbZ1kGZ1ZKU+lh9EBVXVnkvfQmYwA4JSqGjipiiRJ0qRjMieptarqyFVs6ml0QFWdAZwxil2TJEkacyOZzVKSJEmSNEFM5iRJkiSphUzmJEmSJKmFTOYkSZIkqYVM5iRJkiSphUzmJEmSJKmFTOYkSZIkqYVM5iRJkiSphUzmJEmSJKmFTOYkSZIkqYVM5iRJkiSphUzmJEmSJKmFTOYkSZIkqYVM5iRJkiSphdad6A5IkiRJa7MPHf7CIdd9yzlfG8OeqG08MydJkiRJLWQyJ0mSJEktZDInSZI0AZLMTnJDkqVJTlhNvZckqSR949k/SZOfyZwkSdI4SzINOA04GNgVODLJroPU2xR4A/CD8e2hpDYwmZMkSRp/s4ClVXVTVT0AnA3MGaTee4D3A/eNZ+cktYPJnKQpKcmbkixOcm2SLyXZMMnMJD9ohjSdk2T9pu4GzfrSZvuMCe6+pKlvO+DWrvVlTdlKSZ4G7FBVX1/dEyWZm2RRkkXLly8f/Z5KmrRM5iRNOUm2A/4B6KuqpwDTgCPofLv9kap6InAXcEzT5Bjgrqb8I009SZowSdYBPgy8ZU11q2peVfVVVd/06dPHvnOSJg2TOUlT1brARknWBTYGbgf2B85rtp8FvKhZntOs02x/bpKMX1clrYVuA3boWt++Keu3KfAU4LIkNwPPBOY7CYqkbt40XNKUU1W3JfkgcAvwR+AbwI+Au6tqRVOte0jTyuFOVbUiyT3AVsBvxrXjktYmC4Gdk8ykk8QdAbysf2NV3QNs3b+e5DLgrVW1aJz7OSy93AQbvBG2NFyemZM05STZgs7ZtpnAtsBjgNmj8LxelyJpVDRfLB0PXAgsAc6tqsVJTklyyMT2TlJbeGZO0lT0POBnVbUcIMn5wD7A5knWbQ6iuoc09Q93WtYMy9wMuGPgk1bVPGAeQF9fX435q5A0pVXVAmDBgLKTVlF3v/Hok6R28cycpKnoFuCZSTZurn17LnAdcClwaFPnKOCrzfL8Zp1m+yVVZbImSZImNZM5SVNOVf2AzkQmVwDX0Il184C3A29OspTONXGnN01OB7Zqyt8MnDDunZYkSeqRwywlTUlV9W7g3QOKb6Jzo96Bde8DDhuPfkmSJI0Wz8xJkiRJUguZzEmSJElSC5nMSZIkSVILec2cRt2SJ+/SU/1drl8yRj2RJEmSpi7PzEmSJElSC5nMSZIkSVILmcxJkiRJUguZzEmSJElSC404mUsyLcmPk3ytWZ+Z5AdJliY5J8n6TfkGzfrSZvuMke5bkiRJktZWo3Fm7g1A93SE7wc+UlVPBO4CjmnKjwHuaso/0tSTJEmSJA3DiJK5JNsDLwD+o1kPsD9wXlPlLOBFzfKcZp1m+3Ob+pIkSZKkHo30PnMfBf4R2LRZ3wq4u6pWNOvLgO2a5e2AWwGqakWSe5r6vxlhHyRJkiSNow8d/sKe6r/lnK+NUU/WbsNO5pK8EPh1Vf0oyX6j1aEkc4G5ADvuuONoPa0kSVoLnHbsJUOue9yn9x/DnkjS2BvJMMt9gEOS3AycTWd45ceAzZP0J4nbA7c1y7cBOwA02zcD7hj4pFU1r6r6qqpv+vTpI+ieJEmSJE1dw07mquodVbV9Vc0AjgAuqaqXA5cChzbVjgK+2izPb9Zptl9SVTXc/UuSJEnS2mws7jP3duDNSZbSuSbu9Kb8dGCrpvzNwAljsG9JkiRJWiuMdAIUAKrqMuCyZvkmYNYgde4DDhuN/UmSJEnS2m4szsxJkiRpDZLMTnJDkqVJHjViKcmxSa5JcmWS7ybZdSL6KWnyMpmTJEkaZ0mmAacBBwO7AkcOkqx9sap2r6q9gA8AHx7fXkqa7EzmJEmSxt8sYGlV3VRVD9CZGXxOd4Wq+m3X6mMAJ46T9Agmc5KmpCSbJzkvyfVJliT5yyRbJrkoyY3Nzy2aukny8Wao09VJnjbR/Zc05W0H3Nq1vqwpe4QkxyX5KZ0zc/8wTn2T1BImc5Kmqo8B/1tVTwb2BJbQmUX3m1W1M/BN/jSr7sHAzs1jLvCp8e+uJD1aVZ1WVU+gM1v4iYPVSTI3yaIki5YvXz6+HZQ0oUzmJE05STYD9qW5NUpVPVBVd9MZwnRWU+0s4EXN8hzgc9VxObB5kseNa6clrW1uA3boWt++KVuVs/lTzHqEqppXVX1V1Td9+vTR66GkSW9Ubk0gSZPMTGA58NkkewI/At4AbFNVtzd1fgls0yyvarjT7V1lJJlL58wdO+6445h1XmPntGMvGXLd4z69/xj2RGIhsHOSmXSSuCOAl3VXSLJzVd3YrL4AuBFJ6uKZOUlT0brA04BPVdVTgd/zpyGVAFRV0eNkAn77LWm0VNUK4HjgQjrDwM+tqsVJTklySFPt+CSLk1wJvBk4amJ6K2my8sycpKloGbCsqn7QrJ9HJ5n7VZLHVdXtzTDKXzfbex3uJEkjVlULgAUDyk7qWn7DuHdKUqt4Zk7SlFNVvwRuTfIXTdFzgeuA+fzpm+2jgK82y/OBv21mtXwmcE/XcExJkqRJyTNzkqaq1wP/mWR94CbgVXS+wDo3yTHAz4GXNnUXAM8HlgJ/aOpKkiRNaiZzkqakqroS6Btk03MHqVvAcWPdJ0mSpNHkMEtJkiRJaiGTOUmSJElqIZM5SZIkSWohkzlJkiRJaiGTOUmSJElqIZM5SZIkSWohkzlJkiRJaiGTOUmSJElqIZM5SZIkSWqhdSe6A71Y8uRdhlx3l+uXjGFPJEmSJGlieWZOkiRJklrIZE6SJEmSWshkTpIkSZJayGROkiRJklrIZE6SJEmSWshkTpIkSZJayGROkiRJklrIZE6SJEmSWshkTpIkaQIkmZ3khiRLk5wwyPY3J7kuydVJvplkp4nop6TJy2RO0pSUZFqSHyf5WrM+M8kPmoOmc5Ks35Rv0KwvbbbPmNCOS1orJJkGnAYcDOwKHJlk1wHVfgz0VdUewHnAB8a3l5ImO5M5SVPVG4AlXevvBz5SVU8E7gKOacqPAe5qyj/S1JOksTYLWFpVN1XVA8DZwJzuClV1aVX9oVm9HNh+nPsoaZIzmZM05STZHngB8B/NeoD96XyzDXAW8KJmeU6zTrP9uU19SRpL2wG3dq0va8pW5RjggsE2JJmbZFGSRcuXLx/FLkqa7EzmJE1FHwX+EXi4Wd8KuLuqVjTr3QdNKw+omu33NPUlaVJI8gqgD/jXwbZX1byq6quqvunTp49v5yRNKJM5SVNKkhcCv66qH43Bc/vtt6TRchuwQ9f69k3ZIyR5HvBPwCFVdf849U1SS6w70R2QNHxLnrzLkOvucv2SNVeaGvYBDknyfGBD4LHAx4DNk6zbnH3rPmjqP6BalmRdYDPgjsGeuKrmAfMA+vr6akxfhaSpbiGwc5KZdOLQEcDLuiskeSrwGWB2Vf16/LsoabLzzJykKaWq3lFV21fVDDoHR5dU1cuBS4FDm2pHAV9tluc36zTbL6kqEzVJY6r5Yul44EI6kzWdW1WLk5yS5JCm2r8CmwD/leTKJPMnqLuSJinPzElaW7wdODvJv9CZ7vv0pvx04PNJlgJ30kkAJWnMVdUCYMGAspO6lp837p2S1Comc5KmrKq6DLisWb6JzlTgA+vcBxw2rh2TJEkaBcMeZplkhySXJrkuyeIkb2jKt0xyUZIbm59bNOVJ8vHmxrxXJ3naaL0ISZIkSVrbjOSauRXAW6pqV+CZwHFJdgVOAL5ZVTsD32zWAQ4Gdm4ec4FPjWDfkiRJkrRWG3YyV1W3V9UVzfLv6Fy8ux2PvAHvwBvzfq46Lqczs9zjhrt/SZIkSVqbjcpslklmAE8FfgBsU1W3N5t+CWzTLK+8MW+j+6a9kiRJkqQejDiZS7IJ8GXgjVX12+5tzfTePU3x7U15JUmSJGnNRpTMJVmPTiL3n1V1flP8q/7hk83P/ptc9t+Yt1/3TXtXqqp5VdVXVX3Tp08fSfckSZIkacoayWyWoXN/piVV9eGuTd034B14Y96/bWa1fCZwT9dwTEmSJElSD0Zyn7l9gFcC1yS5sil7J3AqcG6SY4CfAy9tti0Ang8sBf4AvGoE+5YkSZKktdqwk7mq+i6QVWx+7iD1CzhuuPuTJEmSJP3JqMxmKUmSJEkaXyMZZimNuiVP3qWn+rtcv2SMeiJJa7fTjr2kp/rHfXr/MeqJJGlVPDMnSZIkSS1kMidJkiRJLeQwS0mSJEnj6kOHv3DIdd9yztfGsCftZjKnKcPr7SRJkrQ2WWuSOQ/0JUmSJE0la00yJ0ljqZeZ/5z1T5KkiTHVhnc6AYokSZIktZDJnCRJkiS1kMmcJEnSBEgyO8kNSZYmOWGQ7fsmuSLJiiSHTkQfJU1uJnOSppwkOyS5NMl1SRYneUNTvmWSi5Lc2PzcoilPko83B1RXJ3naxL4CSVNdkmnAacDBwK7AkUl2HVDtFuBo4Ivj2ztJbWEyJ2kqWgG8pap2BZ4JHNccJJ0AfLOqdga+2axD52Bq5+YxF/jU+HdZ0lpmFrC0qm6qqgeAs4E53RWq6uaquhp4eCI6KGnyM5mTNOVU1e1VdUWz/DtgCbAdnQOls5pqZwEvapbnAJ+rjsuBzZM8bnx7LWktsx1wa9f6sqZMkobMWxNImtKSzACeCvwA2Kaqbm82/RLYplle1UHV7Ugad97qozdJ5tIZVcCOO+44wb2RNJ5M5qawXm6U7k3SNRUl2QT4MvDGqvptkpXbqqqSVI/P5wGTpNFyG7BD1/r2TVnPqmoeMA+gr6+vp7gmqd1M5iRNSUnWo5PI/WdVnd8U/yrJ46rq9mYY5a+b8iEdVHnAtHbzbJFG2UJg5yQz6cSbI4CXTWyXJLWN18xJmnLSOQV3OrCkqj7ctWk+cFSzfBTw1a7yv21mtXwmcE/XcExJGnVVtQI4HriQznW951bV4iSnJDkEIMneSZYBhwGfSbJ44nosaTLyzJykqWgf4JXANUmubMreCZwKnJvkGODnwEubbQuA5wNLgT8ArxrX3kpaK1XVAjrxp7vspK7lhXRGCkjSoEzmJE05VfVdIKvY/NxB6hdw3Jh2SpIkaZSZzEmSNIl5rZ4kaVW8Zk6SJEmSWshkTpIkSZJayGGWUsP78kmSJKlNTOaGoJeDfPBAX5IkSdLYc5ilJEmSJLWQZ+YkqcWc6bAdJur31Mt+R3vfkjRWPnT4C4dc9y3nfG0MezLxTOYkaYKZkEmSpOFwmKUkSZIktZDJnCRJkiS1kMMsx4FT3kuSJEkabZ6ZkyRJkqQWMpmTJEmSpBYymZMkSZKkFjKZkyRJkqQWMpmTJEmSpBYymZMkSZKkFjKZkyRJkqQW8j5zkqRxddqxl/RU/7hP7z9GPZEkqd1M5qRRMJIbw3tTeUmSJA3HuCdzSWYDHwOmAf9RVaeOdx8kaSBjk6Txtqa4k2QD4HPA04E7gMOr6ubx7qekjg8d/sIh133LOV8bw578ybgmc0mmAacBBwDLgIVJ5lfVdePZjzbxrI009tbW2NTLcEeHOkqja4hx5xjgrqp6YpIjgPcDh49/byVNVuN9Zm4WsLSqbgJIcjYwB5jSB0ySJj1jU48mKhH0ejtNIUOJO3OAk5vl84BPJklV1Xh2VNLklfGMB0kOBWZX1Wua9VcCz6iq47vqzAXmNqt/AdwwhKfeGvjNMLs1lm03A+6ZgP2OZfuxaru692os9ztZ266pfdvfr52qavow9zHqhhKbmvJe45N/P1Oj7VjF8pG2n6xtJ+P/vkkXm4Z4THRtU2dZs/7Tps5vBjzXVDl2moqxaSz3PRXfr4mKTWO975G2XXVsqqpxewCH0hkT3r/+SuCTo/C8iyZjW2DeZOvzZH2/VvdeTdY+T+TvaSq+XxP5mGqxaU3tp+LfTxtj+WR+zZPx/ZpqsWkocQe4Fti+a/2nwNajtP9J97uYirHJ92vytJ2K71dVjft95m4Dduha374pm6r+Z6I70CK+V73x/Rpdxiatju9Xb3y/hmYocWdlnSTr0jmzcMe49G5i+LfTG9+v3kzJ92u8k7mFwM5JZiZZHzgCmD/OfRg3VTUl/2jGgu9Vb3y/Rp2xSavk+9Ub368hG0rcmQ8c1SwfClxSzVf5U5F/O73x/erNVH2/xnUClKpakeR44EI60/CeUVWLR+Gp59m2Ffu2bTv2PZGveUJMwdg0kfu2bTv2bdsJtqq4k+QUOsOu5gOnA59PshS4k07CN1ra+LtoY9uJ3Ldt27HvEfV7XCdAkSRJkiSNjvEeZilJkiRJGgUmc5IkSZLUQiZzkiRJktRCJnOSJEmS1EJTKplLstrZYJJMS/LaJO9Jss+AbSeuoe3GSf4xyduSbJjk6CTzk3wgySbD6OtPhlhvj67l9ZKc2Oz3fUk2HkL745Ns3Sw/Mcm3k9yd5AdJdl9D2/OTvGKYr+/xSc5I8i9JNkny70muTfJfSWb0+nzNc540xHoHJTlm4H6SvHoN7ZLkpUkOa5afm+TjSf4+Sc+flSSXDLHe1gPWX9Hsd26SrKHti5Ns2SxPT/K5JNckOSfJ9mto++GBn4NeJNkyyUlJXtO8X/+U5GtJ/jXJFsN93qloLGNTU6d18WkqxabmedcYn9am2NTUn5D4ZGzqzVjGp7UtNjVtJlV8GsvY1NRpXXyaarGpdbNZ9r/5g20CrqqqVf4SkvwHsDHwQ+CVwLeq6s3Ntiuq6mmraXsucCuwEfAXwBLgHOAQ4M+r6pWrafs7oP+N7v8D2xj4A1BV9djVtF3ZryQfArYCPgu8CNiqqv52VW2bNourardm+evAf1TVV5LsB7y3qlb5B5nkNuD7wP7AxcCXgK9X1QOr22fT9ttN/c2AVzR9Phc4EHh5Ve2/pucY5Dlvqaod11DnfcCzgCuAvwY+WlWfaLat6Xf8b8CfAesDvwU2oHOPnxcAv6qqN6ym7dUDi4AnATcAVNUej2r0p7bdv+MTgb8Cvgi8EFhWVW9aTdvrqmrXZvkc4HLgv4Dn0XmfD1hN2+XAz4HpdP6Wv1RVP15V/UHaLwCuAR4L7NIsnwscAOxZVXOG+lxTwUTFpqZO6+LTVIpNzfOuNj6tbbGpaTMh8cnY9GgeO41PbGraTKr4NJaxqanTuvg05WJTVbXqATwE3AT8rOvRv/7AGtpe3bW8Lp37OpxP5w/vx2toe2XzM8Av+VMinO7nXUXbjwOfA7bpKvvZEF/vj7v7AKw31P029W7oWl64qvdjdftu/uheCSwAltMJLgf20O9bVrVtkHa/XcXjd8CKIbzea4B1m+XNmz5/ZE377W/b/FwPuANYv+tvZU3v1XzgC8CTgZ2AGXT+ge0E7NTDe3UF8JiuflzTw+/3R4P9zQ7h9/sk4F3AYuB64N3Ak4bwXnd/Jm7rZd9T8cEExaZBfhetiE+0LDY124cdn1jLYtMgv+Nxi08YmwZ7Tzx2Gvp+hx2buvdNS46dGEFs6m/f/GxNfGKKxaY2DrO8CdivqmZ2PR5fVTOBX62h7fr9C1W1oqrm0vmQXwIM6XR4dd7xBc3P/vVaQ5t/AD4GfCnJPzSnnVfbpstmzenglwAbVNWDQ91v47wkZyZ5PPCVJG9MslOSVwG3rKFt/2v8bVV9vqqeT+cD9wPghDW0fTjJk5LsDWycpA86Qxbo3Bx1Ve4Gdq6qxw54bArcvsZX2wlIK5p+303nW6bHJvkvun7/q9Df7kE6AfyBZn0F8PDqGlbVIcCX6fyT27OqbgYerKqfV9XP17DfjZI8NcnTgWlV9fuufjy0hraXJTklyUbN8osBkjwHuGcNbft/vz+pqvdU55vIlwIb0gnma7JOMyxgB2CTNMMzkmzFmt/rqWhCY1PTtk3xqW2xCUYWn9a22AQTF5+MTY/msdMQ98vIYhNMTHy6m4mJTdDO+DS1YtOasr3J9gCOo/MLH2zb69fQ9gvA7EHKX0Pnj2d1bf8D2GSQ8icA3x1i39cB/gH4DvCLIbb57IDHNk35nwPfHOJzHE0niPyGzrc01wHvAzZbQ7tvj+D39Fw6p8mX0Dl9/2VgKfBrYM5q2v0LMGsV294/hP1+DXj2Kp734TW0vWAVv+M/B344xNf9GODDwFfpnOYfSpvLgEu7Ho9ryrcCFq2h7XrAyXT+wdxCJ3D+js5Qgx3X0PbHw/39Nu2PpHMQ8CvgJXSGk1wE3AbMHclzt/ExUbGpqdfK+NSm2NS0HXZ8WttiU1NvQuKTsWnQ98Rjpxr72NS0bdWx00hiU1OvdfFpqsWm1l0zNxklSfXwRiZ5HPDUqhrK2Y8pI52LVe+qqqF8ozvcfWwEUFV/HGTbdlV12zCe8zF0Tt//uoc2ewJ/WVWf7nV/Xc8xjc43in8YYv3N6HzDdscQ629SVfcOt39dfUxVrUiyLrAXnaEDQzmLqnFgfFozY1PP++0pNjVtxjU+GZsmP2PT0Ix1fBqL2NS0bUV8mgqxqXXDLJsLNfuXV3mB4ni2XVMwGti2qm4fajAaSZ9H2n6021bVb9YUjJIc37W8Wy/7bBzTH5AGtl9TQFrVvqvq92sKRgPbVtVVQw1Gq9nvQ2sKRt1tge2HGowaRw+236FKcnzTxxXNa15RVYvW1oOlifqsran9ZI1Pk6ntUGJTU38k8Wmtik0D2zOO8cnY9GiT6fPWbyrGprHY9zgcOw07Nq1u35M5Pk252DTcU3oT9QCuGGzZtpNr38Ntu7a93ra2HY32U+3R1t+FbW07Fm3b3O+p+Gjj76KNbSdq32vb610b267u0bozc1qrrPE+RmPY3rbj215qmzZ+VtsaIyay31Lb+Dmf+m0fYd3ReqJx9GdJ3kznTehfXqmqPmzbSbHv4bbdPJ1ZhdahM5vS3wxod/5q9jnS9rYdetvRaD/V+Dmf+m3b+Flta4yYyH5PRW38vLWx7UTt28/51G+7Sq2bACXJu1ezuarqFNtO/L6H2zbJZ9fQ7tWr2T6i9rYdetvRaD/V+DlfK9q27rPa1hgxkf2eilr6eWtd24nat5/zqd92tWqUxmtOhgfwRttO/n0Pty3wkhG+3mG3t+34tp9qDz/na0Xb1n1W2xojJrLfU/HR0s9b69pO1L79nE/9tq07M7c6SW6pqh1tO7n3Pdy2a9vrbWvb0Wg/1bT1d2Fb245F24nct7Hp0dr4u2hj24na99r2etfGtusMp9Ek1saLGL1QdXz2OdL2th3f9lNNW38XtrXtWLSdyH0bmx6tjb+LNradqH2vba93rWs71ZK5kZxmXNvaTuS+h9t2bXu9bW07Gu2nmrb+Lmxr27FoO5H7NjY9Wht/F21sO1H7Xtte71rXtnWzWSb5HYO/4AAb2XZy7Hu4bZNcs5p226xunyNtb9uhtx2N9lONn/O1om3rPqttjRET2e+pqKWft9a1nah9+zmf+m1X+7xT6Zo5tV+Snen8Qd86YNMOwC+raulYtbft0NuORnupbdr4WW1rjJjIfktt4+d86rddreHOnOLDx1g8gK8Buw9SvjvwP2PZ3rbj91778NHGRxs/q22NERPZbx8+2vbwcz71267uMdWumVP7bVNV1wwsbMpmjHF72w697Wi0l9qmjZ/VtsaIiey31DZ+zqd+21UymdNks/lqtq1xrPoI29t26G1Ho73UNpuvZttk/axOVNuJ3PdI2kpttPlqtvk5nxptV8lkTpPNoiR/N7AwyWuAH41xe9sOve1otJfapo2f1bbGiInst9Q2fs6nfttVcgIUTSpJtgG+AjzAn/6w+4D1gRdX1S/Hqr1th952NNpLbdPGz2pbY8RE9ltqGz/nU7/t6pjMaVJK8hzgKc3q4qq6ZLza23b83mupjdr4WW1rjJjIfktt4+d86rcd9PlM5iRJkiSpfbxmTpIkSZJayGROkiRJklrIZE6SJEmSWshkTpIkSZJayGROkiRJklro/wM4squlehsengAAAABJRU5ErkJggg==\n", + "image/png": "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HH744Tz00EM8++yzfOhDH2LKlCkAXHTRRZx99tlsttlm7Lbbbqy//vqcf/75LFu2jBNPPJEHH3wQgHPPPZe999677z8s9ap6T2Z05mRFRY0DFmfmAwARcRkwgZrnMWXmjTX1bwaO6dMe9oEbbriBYcOG8d73vheAIUOG8PWvf50xY8bw29/+lu9973vsvPPOAOy7776cc8457Ljjjpx88sncfffdvPDCC5xxxhlMmDCBSy65hKuuuoqnnnqKVatWcemll64+zpIlSzj22GP55z//CcD555/P//t//4/Zs2dz2mmnsfHGG7N48WLe9ra38a1vfYvM5Pjjj2fu3LlEBO973/v4yEc+0vcfkAaHek6idHCCRD2n3t9Os2fP5owzzmD48OHcfffdvPnNb+aHP/whF110EZdffjnXXHMNV199NV/84hdX72/27Nmcc845/PKXv+Spp57i5JNPXh13Tj/9dObMmcMzzzzD7rvvzs4778z06dN517veRXNzM6tWreKzn/0sEydObKv7GkDqOZnRmRMVjWYy1wUtQaW1q666innz5nHnnXfy6KOPsscee7DPPvswceJELr/8ct7xjnfw/PPPc/311/Ptb3+biy66iE033ZQ5c+bw3HPPsffee3PQQQcBcPvtt3P33Xevnj3p4osvZosttuCZZ55hjz324J3vfCfPPfccn//857n99tvZeOON2W+//dhtt90A+NCHPsRHPvIR3vKWt/Dggw9y8MEHs2jRor77kKS+tS3wUM16M7DnWuofD1xdsz4sIuYCK4GzMvPnPd7DPrBgwYKXxaZNNtmEUaNG8Y53vIPLL7+cz33uczz88MM8/PDDNDU18elPf5r99tuPiy++mMcff5xx48ZxwAEHAEUcuuuuu9hiiy3WOPv9yle+kmuvvZZhw4Zx//33c/TRRzN37lwAbr31VhYuXMj222/P+PHjueqqqxgzZgxLly7l7rvvBuDxxx/vk89DUv9R728ngDvuuIMFCxawzTbbsPfee/OHP/yBE044gZtuuolDDz2UI488co3YVOvzn/88m266KfPnFz/GV6xYwTvf+U7OP/985s2bB8CVV17JNttsw69+VZwYfeIJk3tVj/fM9aCbbrqJo48+miFDhrDVVlvx1re+lTlz5nDIIYdw44038txzz3H11Vezzz77sMEGG/Cb3/yG73//++y+++7sueeeLF++nPvvvx+AcePGrTEN7je/+U1222039tprLx566CHuv/9+br31Vt761reyxRZbsO6663LUUUetrn/dddcxdepUdt99dw477DCefPJJnnrqqT7/TKT+JiKOAZqA2nGH22dmE/Bu4NyIeE07badExNyImLts2bI+6G3P2XfffbniiisAuPzyyznyyCMB+M1vfsNZZ53F7rvvzr777suzzz67+or+gQceyBZbbPGyfb3wwgu8//3vZ5ddduGoo45i4cKXRrOOGzeOV7/61QwZMoSjjz6am266iVe/+tU88MADnHzyyfz6179mk0026YN3LKkK2vvtBEU8GTlyJOussw677757u4lbW6677jpOOumk1eubb775y+rssssuXHvttXzqU5/i97//PZtu2sND46U+YDLXBTvvvDO33XZbp+sPGzaMfffdl2uuuYYZM2asvoSfmZx33nnMmzePefPm8ec//3n1lblXvOIVq9vPnj2b6667jj/+8Y/ceeedvPGNb+xwmtwXX3yRm2++efW+ly5dykYbbdSFdytVwlJgu5r1kWXZGiLiAOAzwGGZ+VxLeWYuLf/7ADAbeGNbB8nM6ZnZlJlNI0aM6Lne95CddtrpZbHpySef5MEHH2SPPfZgyy235K677npZHLryyitXx4oHH3yQHXfcEVgzDtX6+te/zlZbbcWdd97J3Llz15hgpfXMbxHB5ptvzp133sm+++7LhRdeyAknnNCTb1tSBdT72wlg/fXXX708ZMiQHr9/d4cdduD2229nl1124dRTT+XMM8/s0f1LfcFkrgv2228/nnvuOaZPn7667K677mKzzTZjxowZrFq1imXLlvG73/2OcePGATBx4kS+973v8fvf/57x48cDcPDBB/Ptb3+bF154AYD77rtv9T0otZ544gk233xzNtxwQ+655x5uvvlmAPbYYw9++9vfsmLFClauXMmVV770TPaDDjqI8847b/V6y5ACaYCaA4yNiDERsR4wCVhjVsqIeCPwHYpE7pGa8s0jYv1yeTiwNzX32lXJ/vvvz9NPP833v/99AFatWsXHPvYxjjvuODbccEMmTpzIl7/8ZZ544gl23XVXoIhD5513HpkJFMOaOvLEE0+w9dZbs8466/CDH/yAVatWrd5266238uc//5kXX3yRGTNm8Ja3vIVHH32UF198kXe+85184Qtf4Pbbb++Fdy+pP+vKb6fuOPDAA7ngggtWr69YsQKAddddd/Xvrr/+9a9suOGGHHPMMXziE58wNqmSTOa6ICL42c9+xnXXXcdrXvMadt55Z0455RTe/e53s+uuu7Lbbrux33778eUvf5lXvepVQJFc/fa3v+WAAw5gvfXWA+CEE05gp5124k1vehNveMMb+MAHPtDmWafx48ezcuVKdtxxR6ZNm8Zee+0FwLbbbsunP/1pxo0bx957783o0aNXDxH45je/ydy5c9l1113ZaaeduPDCC/vo05H6XmauBKYC1wCLgMszc0FEnBkRh5XVvgJsBPy01SMIdgTmRsSdwI0U98xVMplriU0//elPGTt2LDvssAPDhg1bPRX3kUceyWWXXca73vWu1W0++9nP8sILL7Drrruy884789nPfrbD4/znf/4nl156Kbvtthv33HPPGlfw9thjD6ZOncqOO+7ImDFjOOKII1i6dCn77rsvu+++O8cccwz//d//3fNvXlK/1pXfTt1x6qmnsmLFCt7whjew2267ceONxRxYU6ZMYdddd+U973kP8+fPZ9y4cey+++587nOf49RTT+32caW+Fi1nY/ujpqambLmpvsWiRYtWDwESPPXUU2y00UasXLmSI444gve9730cccQRnW7v51ltVZ3NMiJuK+9Rqyzj08vVziTXFYP981MP6cZslsYmtcXPb2Cp4myWa4tNzmZZcWeccQbXXXcdzz77LAcddBCHH354o7skSZIkqUa9z3fsbCJpMldx55xzTqO7IElAMWPmvvvu2+huSJI0aHjPnCRJkiRVUCWTuf58n1+V+DlKPc/vVdf4uUm9y+9Y1/i5qb+rXDI3bNgwli9f7permzKT5cuXM2zYsEZ3RRowjE9dYzySepexqWuMTaqCyt0zN3LkSJqbm1m2bFmju1J5w4YNY+TIkY3uhjRgGJ+6zngk9R5jU9cZm9TfVS6ZW3fddRkzZkyjuyFJL2N8ktQfGZukgatywywlSZIkSSZzkiRJklRJJnOSJEmSVEEmc5IkSb0oIsZHxL0RsTgiprWxfZ+IuD0iVkbEkW1s3yQimiPi/L7psaSqMJmTJEnqJRExBLgAOATYCTg6InZqVe1B4Djgx+3s5vPA73qrj5Kqy2ROkiSp94wDFmfmA5n5PHAZMKG2QmYuycy7gBdb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Bi7uiT75HewaPzcNRm09K7PV9nafj9mFY3Wnq2rFz1P9ReWuzEmSJA0Ql7D2R6HUPh9zCsXzMSVptUpemau16PU79uj+drxnUafq/e1vf+PDH/4wc+bMYbPNNmOrrbbi3HPPZYcddujR/rTlkksu4aCDDmKbbbbp9WNJ6roLTryhR/d30oX7dVhno4024qmnnurR4/akc889lylTprDhhhs2uitSw2Xm7yJi9FqqrH4+JnBzRGzWMsFTd4771YmHdqf5y3xsxi87rDNkyBB22WWX1euTJk1i2rRpPdqPtuy+++68/vWv57LLLuv1Y0mNUPlkrhEykyOOOILJkyevDg533nknf//73ztM5lauXMnQoUPbXe+MSy65hDe84Q0mc5L6VE/Er3PPPZdjjjnGZE7qnPaeg9mtZK4RNthgA+bNm9enx1y0aBGrVq3i97//Pf/85z95xSte0afHl/qCyVwX3Hjjjay77rqceOKJq8t22203MpNPfOITXH311UQEp556KhMnTmT27Nl89rOfZfPNN+eee+5h+vTpa6wvWrSIadOmMXv2bJ577jlOOukkPvCBDwBw9tln88Mf/pB11lmHQw45hKamJubOnct73vMeNthgA/74xz+ywQYbNOqjUIPVe2W6s1eeVX2zZ8/mjDPOYPjw4dx99928+c1v5oc//CERwZw5c/jQhz7EP//5T9Zff32uv/561l13XT74wQ8yd+5chg4dyte+9jXe9ra3cckll3DVVVfx1FNPsWrVKt773veusT5r1ixOPvlk7r77bl544QXOOOMMJkyYwKpVq/jUpz7Fr3/9a9ZZZx3e//73k5n89a9/5W1vexvDhw/nxhtvbPTHpAGonivinbnaXQURMYViGCajRo1qcG/qM3r0aI4++miuvvpqhg4dyvTp0znllFNYvHgxn/jEJzjxxBOZPXs2p512GhtvvDGLFy/mbW97G9/61rdYZ5213y30k5/8hGOPPZZFixbxi1/8gne/+90AbcbADTfc8GUx6+STT67rvdRzxbMzVzOlzjCZ64KWH0atXXXVVcybN48777yTRx99lD322IN99tkHgNtvv527776bMWPGMHv27DXWp0+fzqabbsqcOXN47rnn2HvvvTnooIO45557+MUvfsEtt9zChhtuyGOPPcYWW2zB+eefzznnnENTU1Nfv3VJFXLHHXewYMECttlmG/bee2/+8Ic/MG7cOCZOnMiMGTPYY489ePLJJ9lggw34xje+QUQwf/587rnnHg466CDuu+8+oIhfd911F1tssQWXXHLJGuuf/vSn2W+//bj44ot5/PHHGTduHAcccADf//73WbJkCfPmzWPo0KGr49fXvvY1brzxRoYPH97gT0eqhPaej7mGjp6B2R8888wz7L777qvXTznlFCZOnAgUCei8efP4yEc+wnHHHccf/vAHnn32Wd7whjesPnF+6623snDhQrbffnvGjx/PVVddxZFHHrnWY86YMYNrr72We+65h/POO493v/vdPP/8823GwOnTp78sZklV0GEy195MSxFxMsXMcKuAX2XmJ8vyU4Djy/L/ysxryvLxFDMyDQG+m5lnMcDcdNNNHH300QwZMoStttqKt771rcyZM4dNNtmEcePGrfEsktr13/zmN9x1111cccUVADzxxBPcf//9XHfddbz3ve9dPRxpiy226Ps3Jamyxo0bx8iRI4HivpElS5aw6aabsvXWW7PHHnsAsMkmmwBF/Go5C/3617+e7bfffnUyd+CBB64Rf2rXf/Ob3zBz5kzOOeccoJgC/cEHH+S6667jxBNPXD0M0/gldUmbz8dscJ+6ZG3DLA877DAAdtllF5566ik23nhjNt54Y9Zff30ef/xxoIhnr371qwE4+uijuemmm9aazM2dO5fhw4czatQott12W973vvfx2GOPsXTp0jZjoDFLnVHv/aZ9cQW2M1fmLgHOB77fUhARb6O4KXe3zHwuIl5Zlu8ETAJ2BrYBrouIlpvILgAOpBjvPSciZmbmwp56I31p5513Xp14dVbrcdq165nJeeedx8EHH7xGnWuuuabrnZQ06K2//vqrl4cMGcLKlSu7tJ+O4teVV17J6173uq51UhrEymdl7gsMj4hm4HRgXYDMvJDi+Zhvp3g+5tPAexvT097VEqvWWWedNeLWOuusszputX4UQEePBvjJT37CPffcw+jRowF48sknufLKK9lrr716sOdS43X4aILM/B3Q+lrzB4GzMvO5ss4jZfkE4LLMfC4z/0wRfMaVr8WZ+UBmPg9cVtatpP3224/nnnuO6dOnry6766672GyzzZgxYwarVq1i2bJl/O53v2PcuHEd7u/ggw/m29/+Ni+88AIA9913H//85z858MAD+d73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\n", "text/plain": [ "
" ] @@ -625,9 +605,9 @@ " 0.098134\n", " 0.086114\n", " 0.061356\n", - " 294\n", " 253\n", - " 0.537477\n", + " 294\n", + " 0.462523\n", " \n", " \n", " LF2\n", @@ -635,9 +615,9 @@ " 0.048260\n", " 0.048260\n", " 0.024220\n", - " 152\n", " 117\n", - " 0.565056\n", + " 152\n", + " 0.434944\n", " \n", " \n", " LF3\n", @@ -645,9 +625,9 @@ " 0.036598\n", " 0.036598\n", " 0.016505\n", - " 80\n", " 124\n", - " 0.392157\n", + " 80\n", + " 0.607843\n", " \n", " \n", " LF4\n", @@ -655,9 +635,9 @@ " 0.012379\n", " 0.012379\n", " 0.012379\n", - " 55\n", " 14\n", - " 0.797101\n", + " 55\n", + " 0.202899\n", " \n", " \n", " LF5\n", @@ -665,9 +645,9 @@ " 0.003409\n", " 0.003409\n", " 0.003409\n", - " 10\n", " 9\n", - " 0.526316\n", + " 10\n", + " 0.473684\n", " \n", " \n", " LF6\n", @@ -675,9 +655,9 @@ " 0.027808\n", " 0.027808\n", " 0.027808\n", - " 117\n", " 38\n", - " 0.754839\n", + " 117\n", + " 0.245161\n", " \n", " \n", " LF7\n", @@ -685,9 +665,9 @@ " 0.001435\n", " 0.001435\n", " 0.001435\n", - " 0\n", " 8\n", - " 0.000000\n", + " 0\n", + " 1.000000\n", " \n", " \n", " LF8\n", @@ -695,9 +675,9 @@ " 0.186042\n", " 0.186042\n", " 0.094546\n", - " 435\n", " 602\n", - " 0.419479\n", + " 435\n", + " 0.580521\n", " \n", " \n", " CLF1\n", @@ -705,9 +685,9 @@ " 0.065124\n", " 0.064406\n", " 0.047542\n", - " 175\n", " 188\n", - " 0.482094\n", + " 175\n", + " 0.517906\n", " \n", " \n", " CLF2\n", @@ -715,9 +695,9 @@ " 0.049695\n", " 0.049157\n", " 0.024937\n", - " 158\n", " 119\n", - " 0.570397\n", + " 158\n", + " 0.429603\n", " \n", " \n", " CLF3\n", @@ -725,9 +705,9 @@ " 0.044313\n", " 0.044133\n", " 0.019555\n", - " 82\n", " 165\n", - " 0.331984\n", + " 82\n", + " 0.668016\n", " \n", " \n", " CLF4\n", @@ -735,9 +715,9 @@ " 0.024399\n", " 0.016326\n", " 0.010944\n", - " 18\n", " 118\n", - " 0.132353\n", + " 18\n", + " 0.867647\n", " \n", " \n", " CLF5\n", @@ -745,9 +725,9 @@ " 0.055974\n", " 0.033010\n", " 0.021708\n", - " 18\n", " 294\n", - " 0.057692\n", + " 18\n", + " 0.942308\n", " \n", " \n", " CLF6\n", @@ -755,9 +735,9 @@ " 0.336024\n", " 0.192321\n", " 0.153032\n", - " 233\n", " 1640\n", - " 0.124399\n", + " 233\n", + " 0.875601\n", " \n", " \n", " CLF7\n", @@ -765,9 +745,9 @@ " 0.036957\n", " 0.036957\n", " 0.010585\n", - " 2\n", " 204\n", - " 0.009709\n", + " 2\n", + " 0.990291\n", " \n", " \n", " CLF8\n", @@ -775,9 +755,9 @@ " 0.294582\n", " 0.251525\n", " 0.149085\n", - " 966\n", " 676\n", - " 0.588307\n", + " 966\n", + " 0.411693\n", " \n", " \n", "\n", @@ -785,40 +765,40 @@ ], "text/plain": [ " Polarity Coverage Overlaps Conflicts Correct Incorrect \\\n", - "LF1 [-1.0, 0.0] 0.098134 0.086114 0.061356 294 253 \n", - "LF2 [-1.0, 0.0] 0.048260 0.048260 0.024220 152 117 \n", - "LF3 [-1.0, 0.0] 0.036598 0.036598 0.016505 80 124 \n", - "LF4 [-1.0, 1.0] 0.012379 0.012379 0.012379 55 14 \n", - "LF5 [-1.0, 1.0] 0.003409 0.003409 0.003409 10 9 \n", - "LF6 [-1.0, 1.0] 0.027808 0.027808 0.027808 117 38 \n", - "LF7 [-1.0, 1.0] 0.001435 0.001435 0.001435 0 8 \n", - "LF8 [-1.0, 0.0] 0.186042 0.186042 0.094546 435 602 \n", - "CLF1 [-1.0, 0.0] 0.065124 0.064406 0.047542 175 188 \n", - "CLF2 [-1.0, 0.0] 0.049695 0.049157 0.024937 158 119 \n", - "CLF3 [-1.0, 0.0] 0.044313 0.044133 0.019555 82 165 \n", - "CLF4 [-1.0, 1.0] 0.024399 0.016326 0.010944 18 118 \n", - "CLF5 [-1.0, 1.0] 0.055974 0.033010 0.021708 18 294 \n", - "CLF6 [-1.0, 1.0] 0.336024 0.192321 0.153032 233 1640 \n", - "CLF7 [-1.0, 1.0] 0.036957 0.036957 0.010585 2 204 \n", - "CLF8 [-1.0, 0.0] 0.294582 0.251525 0.149085 966 676 \n", + "LF1 [-1.0, 0.0] 0.098134 0.086114 0.061356 253 294 \n", + "LF2 [-1.0, 0.0] 0.048260 0.048260 0.024220 117 152 \n", + "LF3 [-1.0, 0.0] 0.036598 0.036598 0.016505 124 80 \n", + "LF4 [-1.0, 1.0] 0.012379 0.012379 0.012379 14 55 \n", + "LF5 [-1.0, 1.0] 0.003409 0.003409 0.003409 9 10 \n", + "LF6 [-1.0, 1.0] 0.027808 0.027808 0.027808 38 117 \n", + "LF7 [-1.0, 1.0] 0.001435 0.001435 0.001435 8 0 \n", + "LF8 [-1.0, 0.0] 0.186042 0.186042 0.094546 602 435 \n", + "CLF1 [-1.0, 0.0] 0.065124 0.064406 0.047542 188 175 \n", + "CLF2 [-1.0, 0.0] 0.049695 0.049157 0.024937 119 158 \n", + "CLF3 [-1.0, 0.0] 0.044313 0.044133 0.019555 165 82 \n", + "CLF4 [-1.0, 1.0] 0.024399 0.016326 0.010944 118 18 \n", + "CLF5 [-1.0, 1.0] 0.055974 0.033010 0.021708 294 18 \n", + "CLF6 [-1.0, 1.0] 0.336024 0.192321 0.153032 1640 233 \n", + "CLF7 [-1.0, 1.0] 0.036957 0.036957 0.010585 204 2 \n", + "CLF8 [-1.0, 0.0] 0.294582 0.251525 0.149085 676 966 \n", "\n", " Emp. Acc. \n", - "LF1 0.537477 \n", - "LF2 0.565056 \n", - "LF3 0.392157 \n", - "LF4 0.797101 \n", - "LF5 0.526316 \n", - "LF6 0.754839 \n", - "LF7 0.000000 \n", - "LF8 0.419479 \n", - "CLF1 0.482094 \n", - "CLF2 0.570397 \n", - "CLF3 0.331984 \n", - "CLF4 0.132353 \n", - "CLF5 0.057692 \n", - "CLF6 0.124399 \n", - "CLF7 0.009709 \n", - "CLF8 0.588307 " + "LF1 0.462523 \n", + "LF2 0.434944 \n", + "LF3 0.607843 \n", + "LF4 0.202899 \n", + "LF5 0.473684 \n", + "LF6 0.245161 \n", + "LF7 1.000000 \n", + "LF8 0.580521 \n", + "CLF1 0.517906 \n", + "CLF2 0.429603 \n", + "CLF3 0.668016 \n", + "CLF4 0.867647 \n", + "CLF5 0.942308 \n", + "CLF6 0.875601 \n", + "CLF7 0.990291 \n", + "CLF8 0.411693 " ] }, "metadata": {}, @@ -836,7 +816,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -868,7 +848,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.9" + "version": "3.8.0" }, "metadata": { "interpreter": { diff --git a/notebooks/SMS_SPAM/subset_selection.ipynb b/notebooks/SMS_SPAM/subset_selection.ipynb new file mode 100644 index 0000000..67e3247 --- /dev/null +++ b/notebooks/SMS_SPAM/subset_selection.ipynb @@ -0,0 +1,378 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "12fde778", + "metadata": {}, + "source": [ + "# ***Subset selection:***\n", + "**The paper, documentation, colab notebook can be found here:** [Paper](https://arxiv.org/abs/2008.09887), [Documentation](https://spear-decile.readthedocs.io/en/latest/#subset-selection), [Colab](https://colab.research.google.com/drive/1HqkqQ8ytWjP9on3du-vVB07IQvo8Li3W?ts=60ce20fe)(Subset selection section can be found quite below in colab notebook)\n", + "\n", + "For subset selection, we use FacilityLocation from the [submodlib](https://github.com/decile-team/submodlib) library which is also provided by [DECILE](https://decile.org/) for submodular optimization.\n", + "\n", + "

This notebook aims at demonstrating the use cases for the functions in spear library for subset selection. Subset selection is selecting a small subset of unlabeled data(or the data labeled by LFs, in case of supervised subset selection) so that it can be labeled and use that small labeled data(the L dataset) for effective training of JL algorithm(Cage algorithm doesn't need labeled data). Finding the best subset makes best use of the labeling efforts. Note that for this notebook demo, we need data generated from the first half(labeling part) of sms_jl.ipynb.

" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "f499ea92", + "metadata": {}, + "outputs": [], + "source": [ + "'''\n", + "User don't need to include this cell to use the package\n", + "'''\n", + "import sys\n", + "sys.path.append('../../')" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "f7c3d7f5", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np" + ] + }, + { + "cell_type": "markdown", + "id": "c9d757bf", + "metadata": {}, + "source": [ + "### **Random subset selection**\n", + "Here we select a random subset of instances to label. We need number of instances available and number of instances we intend to label to get a sorted numpy array of indices" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "356ba6f4", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "indices selected by rand_subset: [ 0 3 4 10 12]\n", + "return type of rand_subset: \n" + ] + } + ], + "source": [ + "from spear.jl import rand_subset\n", + "\n", + "indices = rand_subset(n_all = 20, n_instances = 5) #select 5 instances from a total of 20 instances\n", + "print(\"indices selected by rand_subset: \", indices)\n", + "print(\"return type of rand_subset: \", type(indices))" + ] + }, + { + "cell_type": "markdown", + "id": "60cecb70", + "metadata": {}, + "source": [ + "### **Unsupervised subset selection**\n", + "Here we select a unsupervised subset(for more on this, please refer [here](https://arxiv.org/abs/2008.09887) ) of instances to label. We need feature matrix(of shape (num_instaces, num_features)) and number of instances we intend to label and we get a sorted numpy array of indices. For any other arguments to unsup_subset(or to sup_subset_indices or sup_subset_save_files) please refer documentation.\n", + "

For this let's first get some data(feature matrix), say from sms_pickle_U.pkl(in data_pipeline folder). For more on this pickle file, please refer the other notebook named sms_jl.ipynb

" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "449ec58b", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "x_U shape: (4500, 1024)\n", + "x_U type: \n" + ] + } + ], + "source": [ + "from spear.utils import get_data, get_classes\n", + "\n", + "U_path_pkl = 'data_pipeline/JL/sms_pickle_U.pkl' #unlabelled data - don't have true labels\n", + "data_U = get_data(U_path_pkl, check_shapes=True)\n", + "x_U = data_U[0] #the feature matrix\n", + "print(\"x_U shape: \", x_U.shape)\n", + "print(\"x_U type: \", type(x_U))" + ] + }, + { + "cell_type": "markdown", + "id": "f55c16aa", + "metadata": {}, + "source": [ + "Now that we have feature matrix, let's select the indices to label from it. After labeling(through a trustable means/SMEs) those instances, whose indices(index with respect to feature matrix) are given by the following function, one can pass them as gold_labels to the PreLabels class in the process for labeling the subset-selected data and forming a pickle file." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "6972ed8c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "first 10 indices given by unsup_subset: [ 455 659 806 985 1036 1438 2092 2197 2277 2283]\n", + "return type of unsup_subset: \n" + ] + } + ], + "source": [ + "from spear.jl import unsup_subset\n", + "\n", + "indices = unsup_subset(x_train = x_U, n_unsup = 20)\n", + "print(\"first 10 indices given by unsup_subset: \", indices[:10])\n", + "print(\"return type of unsup_subset: \", type(indices))" + ] + }, + { + "cell_type": "markdown", + "id": "59b7f408", + "metadata": {}, + "source": [ + "### **Supervised subset selection**\n", + "Here we select a supervised subset(for more on this, please refer [here](https://arxiv.org/abs/2008.09887) ) of instances to label. We need \n", + "* path to json file having information about classes\n", + "* path to pickle file generated by feature matrix after labeling using LFs\n", + "* number of instances we intend to label\n", + "\n", + "

we get a sorted numpy array of indices.

\n", + "

For this let's use sms_json.json, sms_pickle_U.pkl(in data_pipeline folder). For more on this json/pickle file, please refer the other notebook named sms_cage_jl.ipynb

" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "8659db63", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "first 10 indices given by sup_subset: [1632 1848 3284 4403 4404 4405 4406 4407 4408 4409]\n", + "return type of sup_subset: \n" + ] + } + ], + "source": [ + "from spear.jl import sup_subset_indices\n", + "\n", + "U_path_pkl = 'data_pipeline/JL/sms_pickle_U.pkl' #unlabelled data - don't have true labels\n", + "path_json = 'data_pipeline/JL/sms_json.json'\n", + "indices = sup_subset_indices(path_json = path_json, path_pkl = U_path_pkl, n_sup = 100, qc = 0.85)\n", + "\n", + "print(\"first 10 indices given by sup_subset: \", indices[:10])\n", + "print(\"return type of sup_subset: \", type(indices))" + ] + }, + { + "cell_type": "markdown", + "id": "095e8d97", + "metadata": {}, + "source": [ + "Instead of just getting indices to already labeled data(stored in pickle format, using LFs), we also provide the following utility to split the input pickle file and save two pickle files on the basis of subset selection. Make sure that the directory of the files(path_save_L and path_save_U) exists. Note that any existing contents in these pickle files will be erased. You can still get the return value of subset-selected indices." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "2dd0353c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "first 10 indices given by sup_subset: [1632 1848 3284 4403 4404 4405 4406 4407 4408 4409]\n", + "return type of sup_subset: \n" + ] + } + ], + "source": [ + "from spear.jl import sup_subset_save_files\n", + "\n", + "U_path_pkl = 'data_pipeline/JL/sms_pickle_U.pkl' #unlabelled data - don't have true labels\n", + "path_json = 'data_pipeline/JL/sms_json.json'\n", + "path_save_L = 'data_pipeline/JL/sup_subset_L.pkl'\n", + "path_save_U = 'data_pipeline/JL/sup_subset_U.pkl'\n", + "\n", + "indices = sup_subset_save_files(path_json = path_json, path_pkl = U_path_pkl, path_save_L = path_save_L, \\\n", + " path_save_U = path_save_U, n_sup = 100, qc = 0.85)\n", + "\n", + "print(\"first 10 indices given by sup_subset: \", indices[:10])\n", + "print(\"return type of sup_subset: \", type(indices))" + ] + }, + { + "cell_type": "markdown", + "id": "1dd3800e", + "metadata": {}, + "source": [ + "### **Inserting true labels into pickle files**\n", + "Now after doing supervised subset selection, say we get two pickle files path_save_L and path_save_U. Now say you labeled the instances of path_save_L and want to insert them into pickle file. So here, instead of going over the process of generating pickle through PreLabels again, you can use the following function to create a new pickle file, which now contain true labels, using path_save_L pickle file. There is no return value to this function.\n", + "

Make sure that path_save file, the pickle file path that is to be formed with the data in path_save_L file and true labels, is in an existing directory. Note that any existing contents in this pickle file(path_save) will be erased.

\n", + "

Note that one can pass same file to path, path_save and path arguments, in which case the true labels numpy array is just replaced with what user provides in labels argument.

" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "d68700e1", + "metadata": {}, + "outputs": [], + "source": [ + "from spear.jl import insert_true_labels\n", + "\n", + "path_save_L = 'data_pipeline/JL/sup_subset_L.pkl'\n", + "path_save_labeled = 'data_pipeline/JL/sup_subset_labeled_L.pkl'\n", + "labels = np.random.randint(0,2,[100, 1])\n", + "'''\n", + "Above is just a random association of labels used for demo. In real time user has to label the instances in\n", + "path_save_L with a trustable means/SMEs and use it here.\n", + "\n", + "Note that the shape of labels is (num_instances, 1) and just for reference, feature_matrix(the first element\n", + "in pickle file) in path_save_L has shape (num_instances, num_features).\n", + "'''\n", + "insert_true_labels(path = path_save_L, path_save = path_save_labeled, labels = labels)" + ] + }, + { + "cell_type": "markdown", + "id": "ccbd2f3f", + "metadata": {}, + "source": [ + "A similar function as insert_true_labels called replace_in_pkl is also made available to make changes to pickle file. replace_in_pkl usage is demonstrated below. Make sure that path_save, the pickle file path that is to be formed with the data in path file and a new numpy array, is in an existing directory. Note that any existing contents in this pickle file(path_save) will be erased. There is no return value for this function too.\n", + "

Note that one can pass same file to path, path_save and path arguments, in which case the intended numpy array is just replaced with what user provides in np_array argument.

\n", + "

It is highly advised to use insert_true_labels function for the purpose of inserting the labels since it does some other necessary changes.

" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "1fc5e52e", + "metadata": {}, + "outputs": [], + "source": [ + "from spear.jl import replace_in_pkl\n", + "\n", + "path_labeled = 'data_pipeline/JL/sup_subset_labeled_L.pkl' # this is the previously used path, path_save_labeled\n", + "path_save_altered = 'data_pipeline/JL/sup_subset_altered_L.pkl'\n", + "np_array = np.random.randint(0,2,[100, 1]) #we are just replacing the labels we inserted before\n", + "index = 3 \n", + "'''\n", + "index refers to the element we intend to replace. Refer documentaion(specifically \n", + "spear.utils.data_editor.get_data) to understand which numpy array an index value\n", + "maps to(order the contents of pickle file from 0 to 8). Index should be in range [0,8].\n", + "'''\n", + "\n", + "replace_in_pkl(path = path_labeled, path_save = path_save_altered, np_array = np_array, index = index)" + ] + }, + { + "cell_type": "markdown", + "id": "bfee87f1", + "metadata": {}, + "source": [ + "### **Demonstrating the use of labeled subset-selected data**\n", + "Now that we have our subset(labeled) in path_save_labeled, lets see a use case by calling a member function of JL class using path_save_labeled as our path to L data." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "c82c3681", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 24%|██▍ | 24/100 [00:56<02:58, 2.34s/it]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "early stopping at epoch: 24\tbest_epoch: 13\n", + "score used: f1_score\n", + "best_gm_val_score:0.6037735849056604\tbest_fm_val_score:0.6808510638297872\n", + "best_gm_test_score:0.5581395348837209\tbest_fm_test_score:0.5818181818181818\n", + "best_gm_test_precision:0.4\tbest_fm_test_precision:0.4247787610619469\n", + "best_gm_test_recall:0.9230769230769231\tbest_fm_test_recall:0.9230769230769231\n", + "probs_fm shape: (4400, 2)\n", + "probs_gm shape: (4400, 2)\n" + ] + } + ], + "source": [ + "from spear.jl import JL\n", + "\n", + "n_lfs = 16\n", + "n_features = 1024\n", + "n_hidden = 512\n", + "feature_model = 'nn'\n", + "path_json = 'data_pipeline/JL/sms_json.json'\n", + "\n", + "jl = JL(path_json = path_json, n_lfs = n_lfs, n_features = n_features, feature_model = feature_model, \\\n", + " n_hidden = n_hidden)\n", + "\n", + "L_path_pkl = path_save_labeled #Labeled data - have true labels\n", + "'''\n", + "Note that I saved random labels, in file path_save_labeled, as true labels which are \n", + "supposed to be labeled by a trustable means/SMEs. Hence the accuracies below can be small.\n", + "'''\n", + "U_path_pkl = path_save_U #unlabelled data - don't have true labels\n", + "V_path_pkl = 'data_pipeline/JL/sms_pickle_V.pkl' #validation data - have true labels\n", + "T_path_pkl = 'data_pipeline/JL/sms_pickle_T.pkl' #test data - have true labels\n", + "log_path_jl_1 = 'log/JL/jl_log_1.txt'\n", + "loss_func_mask = [1,1,1,1,1,1,1] \n", + "batch_size = 150\n", + "lr_fm = 0.0005\n", + "lr_gm = 0.01\n", + "use_accuracy_score = False\n", + "\n", + "probs_fm, probs_gm = jl.fit_and_predict_proba(path_L = L_path_pkl, path_U = U_path_pkl, path_V = V_path_pkl, \\\n", + " path_T = T_path_pkl, loss_func_mask = loss_func_mask, batch_size = batch_size, lr_fm = lr_fm, lr_gm = \\\n", + " lr_gm, use_accuracy_score = use_accuracy_score, path_log = log_path_jl_1, return_gm = True, n_epochs = \\\n", + " 100, start_len = 7,stop_len = 10, is_qt = True, is_qc = True, qt = 0.9, qc = 0.85, metric_avg = 'binary')\n", + "\n", + "labels = np.argmax(probs_fm, 1)\n", + "print(\"probs_fm shape: \", probs_fm.shape)\n", + "print(\"probs_gm shape: \", probs_gm.shape)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.9" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/SMS_SPAM/yt_plots.txt b/notebooks/SMS_SPAM/yt_plots.txt new file mode 100644 index 0000000..18d30ef --- /dev/null +++ b/notebooks/SMS_SPAM/yt_plots.txt @@ -0,0 +1,1591 @@ +pls http://www10.vakinha.com.br/VaquinhaE.aspx?e=313327 help me get vip gun cross fire al +if your like drones, plz subscribe to Kamal Tayara. He takes videos with his drone that are absolutely beautiful. +go here to check the views :3 +Came here to check the views, goodbye. +i am 2,126,492,636 viewer :D +https://www.facebook.com/teeLaLaLa +imagine if this guy put adsense on with all these views... u could pay ur morgage +Follow me on Twitter @mscalifornia95 +Can we reach 3 billion views by December 2014?  +Follow 4 Follow @ VaahidMustafic Like 4 Like  +On 0:02 u can see the camera man on his glasses.... +2 billion views wow not even baby by justin beibs has that much he doesn't deserve a capitalized name +Hey guys please check out my new Google+ page it has many funny pictures, FunnyTortsPics https://plus.google.com/112720997191206369631/post + Once you have started reading do not stop. If you do not subscribe to me within one day you and you're entire family will die so if you want to stay alive subscribe right now. +Plizz withing my channel  +It's so hard, sad :( iThat little child Actor HWANG MINOO dancing very active child is suffering from brain tumor, only 6 month left for him .Hard to believe .. Keep praying everyone for our future superstar. #StrongLittlePsY #Fighting SHARE EVERYONE PRAYING FOR HIM http://ygunited.com/2014/11/08/little-psy-from-the-has-brain-tumor-6-months-left-to-live/  +i think about 100 millions of the views come from people who only wanted to check the views +What free gift cards? Go here http://www.swagbucks.com/p/register?rb=13017194 +https://www.facebook.com/SchoolGeniusNITS/photos/ms.c.eJw9kVkOxDAMQm808h5z~;4sNjqP~_tHqBEuM69AQUp1Ih~_fPHgk5zLLsVdQv0ZUf0MB~;LnUJ~;ufTH4YoKfRxYts2zvrrp6qGtw67y~;L551h~;f7~_vlcZzRG8vGCTlPSD9ONGeWhj8~_GIbu~;S3lzMvY~;IQ2~;TwSfzz9WHn7JUSvHufpglQRZczl05fNPhaGeVb3x8yDmC6X~_~;jTcjnMho~;vfXWCjZyvWObihrnGx2ocjnG2PG1EvHXzyjD~_o3h~_RY6f57sPrnD2xV~;~_BzszZ~;8~-.bps.a.390875584405933/391725794320912/?type=1&theater  +What my gangnam style +Loool nice song funny how no one understands (me) and we love it +and u should.d check my channel and tell me what I should do next! +If I get 100 subscribers, I will summon Freddy Mercury's ghost to whipe from the face of earth One Direction and Miley Cirus. +Does anyone here use gift cards like Amazon, itunes, psn, google play, itunes, or any other gift cards? Then you'll be happy to know you can get free gift card codes for free from an amazing site. Here is a $50 itunes gift card code XXBB5TCZHM39HVZD +Please friend read my book and repass: http://www.4shared.com/web/preview/pdf/CjFofTxeba? +We pray for you Little Psy ♡ +Will this song ever reach 7 Billion Views? +hey again if you guys wouldnt mind chacking out my rap give it like and il giver 3 of your vids a like +get GWAR to play 2015 superbowl http://www.change.org/petitions/the-national-football-league-allow-gwar-to-perform-the-2015-super-bowl-halftime-show#share  +Fantastic! +Have you tried a new social network TSU? This new social network has a special thing.You can share the posts as well as on fb and twitter and even to'll get paid You can registr here: https://www.tsu.co/WORLDWIDE_LIFE +Hi there~I'm group leader of Angel, a rookie Korean pop group. We have four members, Chanicka, Julie, Stephanie, and myself, Leah. Please feel free to check out our channel and leave some feedback on our cover videos (: criticism is welcome as we know we're not top notch singers so please come leave some constructive feedback on our videos; we appreciate any chance to improve before auditioning for a Korean management company. We plan on auditioning for JYP, BigHit, Jellyfish, YG or SM. Thank you for taking time out of your day to read this ! +What Can i say....This Song He Just Change The World Completely... So good job PSY... (and your girls are awesome :))) ) +SUBSCRIBE TO ME AND I'LL SUBSCRIBE TO YOU! (Must like - cZFcxsn0jnQ)  +http://flipagram.com/f/LUkA1QMrhF +Subscribe ME! +NEW GOAL! 3,000,000! Let's go for it! +if i reach 100 subscribers i will go round in public pouring a bucket of ice water over people and then running away acting like it wasn't me! like so people can see!! +just came to check the view count +CHECK MY CHANNEL OUT PLEASE. I DO SINGING COVERS +just came here to check the views :P +Check out my dubstep song "Fireball", made with Fruity Loops. I really took time in it. /watch?v=telOA6RIO8o +http://www.gofundme.com/gvr7xg +If i reach 100 subscribers i will tazz my self and my friend +subscribe to me for call of duty vids and give aways Goal-100 subs +Please do buy these new Christmas shirts! You can buy at any time before December 4th and they are sold worldwide! Don't miss out: http://teespring.com/treechristmas +Check out pivot animations in my channel +Hey guys! Im a 12 yr old music producer. I make chiptunes and 8bit music. It would be wonderful if you checked out some of my 8bit remixes! I even have a gangnamstyle 8bit remix if you would like to check that out ;) Thanks!! +Check my channel please! And listen to the best music ever :P +Subscribe to my channel  +LoL +Subscribe to me and I'll subscribe back!!! +Why does a song like this have more views than Michael Jackson SMH +If you pause at 1:39 at the last millisecond you can see that that chick is about to laugh. Takes a few tries. +if you like roblox minecraft world of warcraft gta5 mario suscribe to my channel +GANGMAN STY- *D-D-D-D-D-D--DROP THE BASS!!* +WORLD RECORD YOUTUBE VIDEO VIEWS !!!!!! XD +I hav absolutely no idea what he's saying. Is it even a language? +please like : http://www.bubblews.com/news/9277547-peace-and-brotherhood +http://hackfbaccountlive.com/?ref=5242575 +https://www.facebook.com/tofikmiedzynB/photos/a.1496273723978022.1073741828.1496241863981208/1498561870415874/?type=1&theater  +Subscribe to me plz plz plz plz plz plZ  +People, here is a new network like FB...you register also free, the difference is only that you get paid for sharing, commenting and liking posts and so one...don't waste your time on fb for sharing and not being paid!! Register here to make also money with your everyday posts!! https://www.tsu.co/slema13 Wellcome to everyone! ;) +WAT DA FUCK THIS THE MOST VIEWED VIDEO IN YOUTUBE! +Discover a beautiful song of A young Moroccan http://www.linkbucks.com/AcN2g +How can this music video get 2 billion views while im the only one watching here on earth?????? lol +subscribe to me :)  +Sub my channel! +https://twitter.com/GBphotographyGB +Why does this video have so many views? Because asian things are awesome and non-asian countries are jelly so they try to learn from asia by looking at this video d: +Pls follow this channel!! http://www.twitch.tv/sevadus +everyone please come check our newest song in memories of Martin Luther King Jr. +PSY is a good guy +https://www.facebook.com/eeccon/posts/733949243353321?comment_id=734237113324534&offset=0&total_comments=74 please like frigea marius gabriel comment :D +PLEASE SUBSCRIBE ME!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +subscribe to itz recaps and above diddle +https://www.facebook.com/nicushorbboy add mee <3 <3 +http://www.ermail.pl/dolacz/V3VeYGIN CLICK http://www.ermail.pl/dolacz/V3VeYGIN http://www.ermail.pl/dolacz/V3VeYGIN http://www.ermail.pl/dolacz/V3VeYGIN http://www.ermail.pl/dolacz/V3VeYGIN http://www.ermail.pl/dolacz/V3VeYGIN http://www.ermail.pl/dolacz/V3VeYGIN +MANY MEMORIES........... +There is one video on my channel about my brother... +Hey, check out my new website!! This site is about kids stuff. kidsmediausa . com +Please give us a chance and check out the new music video on our channel! You won't be disappointed. +CHECK MY CHANNEL FOR MY NEW SONG 'STATIC'!! YOU'LL LOVE IT!! +We are an EDM apparel company dedicated to bringing you music inspired designs. Our clothing is perfect for any rave or music festival. We have NEON crop tops, tank tops, t-shirts, v-necks and accessories! follow us on Facebook or on instagraml for free giveaways news and more!! visit our site at OnCueApparel +Subscribe to me for free Android games, apps..  +----->>>> https://www.facebook.com/video.php?v=10200253113705769&set=vb.201470069872822&type=3&permPage=1 <-------- +Sub to my channel visuelgamingzNL I sub back + I hate this song!  +Please help me go to college guys! Thanks from the bottom of my heart. https://www.indiegogo.com/projects/i-want-to-go-to-college--19/x/9082175 +plz check out fablife / welcome to fablife for diys and challenges so plz subscribe thx! +Add me here...https://www.facebook.com/TLouXmusic +https://www.surveymonkey.com/s/CVHMKLT +Huh, anyway check out this you[tube] channel: kobyoshi02 +http://www.guardalo.org/best-of-funny-cats-gatti-pazzi-e-divertenti-2013-5287/100000415527985/  +subscribe my chanel +https://www.facebook.com/pages/Brew-Crew-2014/134470083389909 Like this facebook-page! Chance to win an Iphone 5S! +Show your AUBURN PRIDE HERE: http://www.teespring.com/tigermeathoodie +Free my apps get 1m crdits ! Just click on the link and download a app and done!! · Link: https://m.freemyapps.com/share/url/5af506e1 +I remember when everyone was obsessed with Gangnam Style 😗 +This video will get to 2 billion just because of people checking if it has hit 2 billion yet. +how is this shit still relevant  + Hey everyone!! I have just started my first YT channel i would be grateful if some of you peoples could check out my first clip in BF4! and give me some advice on how my video was and how i could improve it. ALSO be sure to go check out the about to see what Im all about. Thanks for your time :) . and to haters... You Hate, I WIN +The Funny Thing Is That this song was made in 2009 but it took 2 years to get to america. +Why dafuq is a Korean song so big in the USA. Does that mean we support Koreans? Last time I checked they wanted to bomb us.  +People Who Say That "This Song Is Too Old Now, There's No Point Of Listening To It" Suck. Just Stfu And Enjoy The Music. So, Your Mom Is Old Too But You Still Listen To Her Right?.... +Follow me on twitter & IG : __killuminati94 +how does this video have 2,127,322,484 views if there are only 7 million people on earth? +Just coming to check if people are still viewing this video. And apparently, they still do. +I wanted to know the name of the guy that dances at 00:58, anybody knows ? +hi guys please my android photo editor download. thanks https://play.google.com/store/apps/details?id=com.butalabs.photo.editor +Can anyone sub to my channel? :D +Hahah, juyk! I allways laugh at the part 1:57.. LOL! +Don't mind me, I'm just checking what the views are up to : ) +subscribe to my channel people :D +watch?v=vtaRGgvGtWQ Check this out . +https://www.indiegogo.com/projects/cleaning-the-pan--2 please halp me with my project +The girl in the train who was dancing, her outfit was so fucking sexy, but the huge turn-off was she lacked eyebrows D: +sub me if you dont like the song +This video is so cool, again and again! +This has had over 2 billion views. Holy shit. +Great music anyway +DISLIKE.. Now one knows REAL music - ex. Enimen  +▬▬▬▬▬▬▬▬▬▬ஜ۩۞۩ஜ▬▬▬▬▬▬▬▬ DAMN THIS COMMENT IS FANCY ▬▬▬▬▬▬▬▬▬▬ஜ۩۞۩ஜ▬▬▬▬▬▬▬▬ +Hello! Do you like gaming, art videos, scientific experiments, tutorials, lyrics videos, and much, much more of that? If you do please check out our channel and subscribe to it, we've just started, but soon we hope we will be able to cover all of our expectations... You can also check out what we've got so far! +CHECK OUT MY CHANNEL +COME AND CHECK OUT MY NEW YOUTUBE CHHANEL, GOING TO BE POSTING DAILY! +https://www.change.org/p/facebook-twitter-youtube-do-not-censor-julien-blanc  +http://woobox.com/33gxrf/brt0u5 FREE CS GO!!!! +5 milions comentars and 2 bilion views +http://www.twitch.tv/tareko100 Follow him on twitch and enter the keyword !5800 and you'll have a chance of winning a really nice and expensive gun for csgo that you can sell on the steam market +look at my channel i make minecraft pe lets play  +Come and watch my video it is called the odowd crowd zombie movie part 1  +need money?Enjoy https://www.tsu.co/emerson_zanol +The first comment is chuck norrus ovbiously :D +I'm watching this in 2014 +so crazy, over 2 billion views, not US, not Uk, its Korea republic, its asia +Admit it you just came here to check the number of viewers  +How can this have 2 billion views when there's only me on the planet? LOL +What is he saying?!?!?!?!?!?!?!?$?  +if you like raw talent, raw lyrics, straight real hip hop Everyone check my newest sound Dizzy X - Got the Juice (Prod by. Drugs the Model Citizen) COMMENT TELL ME WHAT YOU THINK DONT BE LAZY!!!! - 1/7 Prophetz +Still the best. :D +Ching Ching ling long ding ring yaaaaaa Ganga sty FUCK YOU. +Haha its so funny to see the salt of westerners that top views of youtube goes to video they dont even understand, keep the salt up! +Remove This video its wank +We get it, you came here for the views...  +Oppa! Yeah! Best Song! +i turned it on mute as soon is i came on i just wanted to check the views... +this comment is wrong +#2012bitches +1 million dislikes!EPIC FAIL(ready for you fanboys) +If I get 300 subscribers by tomorrow I'll do a epic Hunger Games Video!  +Dear person reading this, You are beautiful and loving Have a great day +Dance dance,,,,,Psy http://www.reverbnation.com/msmarilynmiles +Song name?? +WHY DOES THIS HAVE 2 BILLION VIEWS THIS SONG IS SO ANNOYING +I think this is now a place to promote channels in the comment section lol. +Like if you came here too see how many views this song has. + Follow me on Instagram. _chris_cz  +Please subscribe to me +thumbs up if u checked this video to see hw views it got +SUB 4 SUB PLEASE LIKE THIS COMMENT I WANT A SUCCESFULL YOUTUBE SO PPLEASE LIKE THIS COMMENT AND SUBSCRIBE IT ONLY TAKES 10 SECONDS PLEASE IF YOU SUBSCRIBE ILL SUBSCRIBE BACK THANKS +2 billion....Coming soon +just checking the views +2,000,000,000 out of 7,000,000,000 people in the would saw this video just in 2 years and yeat i only get 2 words out of the hole song +Im a RAPPER/SONGWRITER, check my video PLEASE..also subscribe for more thanks :) tell me what you think. +Hey subscribe to me +psy=korean +I dont even watch it anymore i just come here to check on 2 Billion or not +Why the fuck this keeps updated? Comments :"5 minutes ago" Song: "2 years and 4 months ago" +guys please subscribe me to help my channel grow please guys +Please check out my vidios +Incmedia.org where the truth meets you. +check out "starlitnightsky" channel to see epic videos +Hey I think I know what where dealing with here!!!! I have some theories of how this could've gotten 2billion hits!! 1. This was mabey made in korea and its realy popular there so they were stuck watching this over and over again. 2. Over 2billion people have access to the Internet, including youtube, and the numbers are rising, by 2017 half of the populatoin will be connected. 3. Hackers In Korea may have loved it so much they rised it to 2billion hits to make it more popular. 4. The song was featured in a just dance game, on multiple mp3s, and been seen on concerts and even on new years eve event in 2012, so just by seeing those you mabey adding more hits to this video. 5. You are complaining to much on how the heck this has 2b hits. +im sorry for the spam but My name is Jenny. I go to high school where everyone dresses fashionable but for me I don't because i need money to buy cute clothes. I have low self esteem . I live with my dad. my mom passed away when i was 6 so i don't really have a mother figure. I have 2 brothers who is older than me. Since they are boys they get the attention while i just be alone. I really want to wear pretty clothes like the girls in my school and get a boyfriend. i just can't be my self. im very quite and shy at school because i don't have the confidence in myself to talk to someone. i did have one friend name Caroline but she moved away so now im alone. if you could donate some money to me it would be great. i don't care about expensive brand ill just shop at walmart because they have pretty clothes. also i wanna get my nails done at a salon . i see alot of girls have these french tips. i never had my nail did at a salon before i will really appreciate if i can and get my hair curled too. http://www.gofundme.com/dressprettyonce thanks omg please. +This song never gets old love it. +It's been back for quite a while now. +Justin bieber = gay  +My videos are half way decent, check them out if you want. +You know a song sucks dick when you need to use google translate to know what the fuck its saying! +Enough with the whole "how does this have two billion views if there's only 7 million on the planet" we get it. You're joking. It's not funny anymore. +If the shitty Chinese Government didn't block YouTube over there, there'd be close to 3 billion views right now.  +PSY - GANGNAM STYLE (강남스타일) M/V: http://youtu.be/9bZkp7q19f0 +2 billion views, only 2 million shares +2 Billion Views For This Piece Of Shit... ~ A R E ~ Y O U ~ K I D D I N G ~ M E ~ +EHI GUYS CAN YOU SUBSCRIBE IN MY CHANNEL? I AM A NEW YOUTUBER AND I PLAY MINECRAFT THANKS GUYS!... SUBSCRIBE! +Hello all 29.24% earth population of the world, hope your having a great day :) +I am so awesome and smart!!! Sucscribe to me! +Hi guys my name is Dylan and I do IRL football videos I have 1030 subscribers and I think you guys would like my content so come check it out and if you do subscribe! +More... http://www.sunfrogshirts.com/Sunglass-World.html?24398 +I'm here to check the views.. holy shit +follower please https://www.facebook.com/lists/161620527267482 +Suscribe my channel please +SUPER!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +PSY GOT LOTS OF MONEY FROM YOUTUBE THAT HE GOT FROM 2 BILLION VIEWS THIS IS THE MOST VIEWS IN THE WORLD :D +https://www.tsu.co/KodysMan plz ^^ +Check my channel, please! +http://hackfbaccountlive.com/?ref=4436607 psy news offıcal  +Lol this youtuber (officialpsy) is getting so much money lol +OMG 2/7 People watched this video because there are 7 billion people in the world and 2 billion watched this +Behold the most viewed youtube video in the history of ever +Hey guys can you check my YouTube channel I know you hate comments like this one but I promise if you check my videos it will be entertaining I do Shotgun Montages,Ninja Defuse Montages and Trolling please guys can you check them out and thanks have a good day!!!!!!! +OPPA GANGNAM STYLE!!! +Subscribe to me i subscribe back!!!! Plus i have a nice ass lol +This is getting old......... +I found out this song now +It's so funny it's awesomeness lol aaaaaaa sexy lada😂 +....subscribe...... ......to my........ .....channel....... +Wow this video is the most viewed youtube video.. second that comes Justin bieber- baby SMH WHAT HAS THE WORLD COME TO +Go to my channel if u want to see a fly getting burned alive +Can somebody wake me up when we get to 3 billion views. +they said this video are not deserve 2billion views , while they keep visiting it to watch the viewer .  +Plz subscribe to my channel and I will subscribe back xx +Please help me go here http://www.gofundme.com/littlebrother +this has so many views +Still a very fun music video to watch!  +I don't now why I'm watching this in 2014 +Most viewed video on youtube...daaaaaaaaaaannng those views can almost dominate the entire...china... +https://www.facebook.com/FUDAIRYQUEEN?pnref=story +Hello! I'm kind of new to Youtube, And soon i'm soon going to be making Launchpad Video's! :D I would really appreciate if i got some subs before i started so that people can spot me easily! I dont really care about hate comments so dont bother -_- +OPPA <3 +2:05. Hahahahah  +The most watched video on YouTube is Psy’s “Gangnam Style”, with 2.1 billion views. PSY - GANGNAM STYLE (강남스타일) M/V +YOUTUBE MONEY !!!!!!!!!!!!!!!!!!!!!!! +For Christmas Song visit my channel! ;) +subscribe like comment +C'mon 3 billion views!!!!!!!! + Something to dance to, even if your sad JUST dance!! PSY - GANGNAM STYLE (강남스타일) M/V: http://youtu.be/9bZkp7q19f0 +http://www.twitch.tv/zxlightsoutxz +The population of world is more than 7 billion +Hey guys can you check my channel out plz. I do mine craft videos. Let's shoot for 20 subs +https://www.tsu.co/Aseris get money here ! +why are they 5million comments when there is only 279.898 youtube Users. 5million fake account or PSY hacked youtube +YouTube/codytolleson for awesome videos I'll subscribe back  +How stupid humanity is +Hey, join me on tsū, a publishing platform where I share my content now: http://tsu.co/MarkusMairhofer +969,210 dislikes like dislike themselves +❤️ ❤️ ❤️ ❤️ ❤️❤️❤️❤️ +Wow 23 min ago +You should check my channel for Funny VIDEOS!! +WHATS UP EVERYONE!? :-) I Trying To Showcase My Talent To The World! I Have Over 3000 SUBSCRIBERS! I PROMISE! I Dont Suck! Please Spread My Covers Around, SUBSCRIBE & Share! Thanks so much for all your support! Lucas Trigo -Stay Awesome!  +i hate this music. fucking singer and every koean chainise ana US sucks me dick. +http://tankionline.com#friend=cd92db3f4 great game check it out! +The Guy in the yellow suit kinda looks like Jae-suk  +1 millioon dislikesssssssssssssssssssssssssssssssss............. +Lol...I dunno how this joke gets a lot of likes, but whatever. xD +I still to this day wonder why this video is so popular ?? illuminati confirmed ?? +how can there be 2.124.821.694 views, when im the only person alive after the zombie apocalypse - greetings, spoderman :) +Look at the pictures, if not difficult http://image2you.ru/48051/1340524/ http://image2you.ru/48051/1340523/ http://image2you.ru/48051/1340522/ http://image2you.ru/48051/1340521/ http://image2you.ru/48051/1340520/ http://image2you.ru/48051/1340519/ http://image2you.ru/48051/1340518/ http://image2you.ru/48051/1340517/ http://image2you.ru/48051/1340504/ http://image2you.ru/48051/1340503/ http://image2you.ru/48051/1340502/ http://image2you.ru/48051/1340500/ http://image2you.ru/48051/1340499/ http://image2you.ru/48051/1340494/ http://image2you.ru/48051/1340493/ http://image2you.ru/48051/1340492/ http://image2you.ru/48051/1340491/ http://image2you.ru/48051/1340490/ http://image2you.ru/48051/1340489/ http://image2you.ru/48051/1340488/ +Dumb Guy: Why is there 2 billion views when there are 7 million people on earth??? Also, I know what 1+1 equals! 1+1=1! I am a smartie pants +Mix - PSY - GANGNAM STYLE (강남스타일) M/V: PSY - GANGNAM STYLE (강남스타일) M/V +2 BILLION!!! +Limit sun exposure while driving. Eliminate the hassle of having to swing the car visor between the windshield and window. https://www.kickstarter.com/projects/733634264/visortwin +when is this gonna hit 2 billion? +This is a weird video. +Search "Chubbz Dinero - Ready Or Not " Thanks  +check men out i put allot of effort into my music but unfortunatly not many watch it +http://binbox.io/1FIRo#123 +www.marketglory.com/strategygame/lordviperas +How did THIS Video in all of YouTube get this many views and likes? Why Gangnam style? I don't have a problem with it, i just don't understand the phenomena behind it, it's just like any other random music video out there.  +Im just to check how much views it has +Hey guys! Check this out: Kollektivet - Don't be slappin' my penis! I think that they deserve much more credit than they receive. +now its 1,884,034,783 views! pls. comment the view count the next hour :P +Suscribe My Channel Please XD lol +8 million likes xD even the subscribers not 8 million xD +You gotta say its funny. well not 2 billion worth funny but still. It clicked and everything went uphill. At least you don't have JB's shit on #1. +I'm only checking the views +How are there 2 billion views and theres only 2 million people in the world!?!?!?!! MULTIPLE ACCOUNTS!!!1111 +Check out my Music Videos! and PLEASE SUBSCRIBE!!!! Fuego - U LA LA Remix hyperurl.co/k6a5xt +Made in china.... +Check me out! I'm kyle. I rap so yeah  +http://www.gcmforex.com/partners/aw.aspx?Task=JoinT2&AffiliateID=9107 +OMG over 2 billion views! +please like :D https://premium.easypromosapp.com/voteme/19924/616375350 +Wow. Comments section on this still active. Not bad. Also 5277478 comments. (Now 79) +9 year olds be like, 'How does this have 2 billion views when there are only 3 people in the world' +THIS HAS MORE VIEWS THAN QUEEN AND MICHAEL JACKSON, 2 BILLION views omg +Is this the video that started the whole "got my dick stuck in an elevator" excuse thing?  +why I dont see any comments but mine?:/ +Hey everyone, I am a new channel and will post videos of book reviews and music on the flute. Please subscribe if you would enjoy that. Thanks! +If I knew Korean, this would be even funnier. At least a bit at the end was in English, but was spoken quite rapidly. +Screw this Chinese crap i dont even understand what he is saying. Why isn't he speaking English like everyone should? +Check me out I'm all about gaming  +Stupid people... this video doesnt have 2 billion visits. Have 2 thousands millions +OMG this oldspice spraytan party commercial omg....i'm sitting here "NO this isn't a real thing is it? OMG"  +me shaking my sexy ass on my channel enjoy ^_^  +hi guys check my youtube channel +LOL this shit never gets old +i check back often to help reach 2x10^9 views and I avoid watching Baby +Hey guys check out my new channel and our first vid THIS IS US THE MONKEYS!!! I'm the monkey in the white shirt,please leave a like comment and please subscribe!!!! +http://ubuntuone.com/40beUutVu2ZKxK4uTgPZ8K +https://www.facebook.com/pages/Mathster-WP/1495323920744243?ref=hl +marketglory . com/strategygame/andrijamatf earn real money from game +The funny thing is, 1,700,000,000 of the views are spam bots. I mean c'mon 2 BILLION views? BS! +most viewed video in the world +http://www.twitch.tv/jaroadc come follow and watch my stream! +Like getting Gift cards..but hate spending the cash.... Try Juno Wallet !!! At Juno Wallet you can earn money for gift cards such as ; Nike, Gamestop, Amazon , Ebay Etc & its easy Earn money by doing simple task like watching videos..downloading apps & you can even earn money by inviting your friends to join...its free for signup Sign up today & use promo code BD3721315 +this jap is such a piece of shit. he is such a worthless fish head. i dont know how any one likes this dumb untanlted gook. this isnt even fucken music. this is so fucking sad that this is even such thing. people are so fucked up. +With the korean girl more slut and bitch : Hyuna :'33 +The little PSY is suffering Brain Tumor and only has 6 more months to live. Please pray to him and the best lucks. +FOLLOW MY COMPANY ON TWITTER thanks. https://twitter.com/TheWaxedHatCo +reminds me of this song https://soundcloud.com/popaegis/wrenn-almond-eyes +2 Billions in 2014 +Check out my Music Videos! Fuego - U LA LA Remix hyperurl.co/k6a5xt +😫😓😏😪😔😖😌😭😎😚😘😙😗😋😝😜😛😍😒😞😷😶😵😳😲😱😟😰😩😨😧😦😥😤😣😮😴😢😡😠😬😕😑😐😯😉😈😇😆😅😄😃😂😁😀😊☺ every single types of face on earth +Hey come check us out were new on youtube let us know what you think and don't forget to subscribe thanks. +For all of the little kidz out there there is Like 7 to 8 Billon people on earth NOT 7 to 8 MILLON.Get you facts straight before posting comments. +Get free gift cards and pay pal money! +2.126.521.750 views!!!!!!!!!!!!!!!!! +This song is great there are 2,127,315,950 views wow +the most viewed youtube video of all time? +everyones back lool this is almost 3 years old and people are still hear! xD +http://www.amazon.co.uk/gp/offer-listing/B00ECVF93G/sr=8-2/qid=1415297812/ref=olp_tab_refurbished?ie=UTF8&condition=refurbished&qid=1415297812&sr=8-2  +http://hackfbaccountlive.com/?ref=4604617 +2 billion for this shit? +It is 0 zero +The most liked video on YouTube... +This is the best, funny and viral video of history (youtube) THE TRUE +http://thepiratebay.se/torrent/6381501/Timothy_Sykes_Collection +Ahhh, 2 years ago.... +https://soundcloud.com/jackal-and-james/wrap-up-the-night +To everyone joking about how he hacked to get 2 billion views because there's a certain amount of people or whatever, He actually did buy views. +Check my channel +The first billion viewed this because they thought it was really cool, the other billion and a half came to see how stupid the first billion were... +The projects After Effects, Music, Foto, Web sites and another you can find and buy here http://audiojungle.net/user/EugeneKalinin/portfolio?ref=EugeneKalinin +just for test I have to say murdev.com +Please check out my vidios guys +please throw a sub on my channel +This is the only video on youtube that get so much views just because we want to see how much views it has. 1.000.000 every day, I mean, Most people think a video is popular when it actually gets 1.000.000 views. +P E A C E & L O V E ! ! +http://www.bing.com/explore/rewards?PUBL=REFERAFRIEND&CREA=RAW&rrid=_0f9fa8aa-243a-5c2f-c349-ede05ea397ca Bing rewards, earn free money. AND NO U CANT GET UR VIRUS IN BLUE! +I am now going to voyage to the first comment... Tell my family I loved them. 😢 +Hi everyone! Do you like music? Then why not check out my music channel. The LEXIS band will be uploading their own songs and covers soon so don't miss out. Please SUBSCRIBE too as it does help us out a lot. Just takes one click. -> +prehistoric song..has been +sub my channel for no reason -_- +http://www.ebay.com/itm/131338190916?ssPageName=STRK:MESELX:IT&_trksid=p3984.m1555.l2649  +http://www.avaaz.org/po/petition/Youtube_Corporation_Fox_Broadcasting_Company_Anular_os_strikes_no_Canal_Nostalgia/?cXPZpgb  +PSY - GANGNAM STYLE (강남스타일) M/V: http://youtu.be/9bZkp7q19f0 +gofundme.com/grwmps +I made a gaming channel (Unique right?) :L Angry Minecraft! +You think you're smart? Headbutt your face. +Still watching this 2 years later?  +Subscribe and like to me for more how to videos on minecraft! +2,124923004 wiews... wow +please subscribe i am a new youtuber and need help please subscribe and i will subscribe back :D hoppa HOPPA GaNgAm StYlE +Check my first video out +http://www.ebay.com/itm/171183229277?ssPageName=STRK:MESELX:IT&_trksid=p3984.m1555.l2649  +''Little Psy, only 5 months left.. Tumor in the head :( WE WILL MISS U <3 +Anybody who subscribes to me will get 10 subscribers +I think he was drunk during this :) x) +Katycat! https://m.facebook.com/profile.php?id=1461302180794905 +ROAAAAARRRRRR 🐯🐯🐯 +And after the video ends, a 13 ft. boa constrictor squeezes her to death. +<script>document.write('<a target="_self" href=" http://rover.ebay.com/rover/1/710-53481-19255-0/1?icep_ff3=1&pub=5575096797&toolid=10001&campid=5337555197&customid=bogdan+grigore&ipn=psmain&icep_vectorid=229508&kwid=902099&mtid=824&kw=lg">check this out new arive on ebay</a><img style="text-decoration:none;border:0;padding:0;margin:0;" src=" http://rover.ebay.com/roverimp/1/710-53481-19255-0/1?ff3=1&pub=5575096797&toolid=10001&campid=5337555197&customid=bogdan+grigore&mpt='+Math.floor(Math.random()*999999999)+'">');</script><noscript><a target="_self" href=" http://rover.ebay.com/rover/1/710-53481-19255-0/1?icep_ff3=1&pub=5575096797&toolid=10001&campid=5337555197&customid=bogdan+grigore&ipn=psmain&icep_vectorid=229508&kwid=902099&mtid=824&kw=lg">check this out new arive on ebay</a><img style="text-decoration:none;border:0;padding:0;margin:0;" src=" http://rover.ebay.com/roverimp/1/710-53481-19255-0/1?ff3=1&pub=5575096797&toolid=10001&campid=5337555197&customid=bogdan+grigore&mpt=[CACHEBUSTER] "></noscript> +"eye of the tiger" "i am the champion" seems like katy perry is using titles of old rock songs for lyrics.. +why the elephant have a broken horn +nice ..very nice +subscribe please  +I make guitar covers, please have a look at my channel +I can't comprehend why this video has nearly 700,000,000 views. Some people found 'Gangnam Style' funny so that explains its high view count but this is just an awful pop song. I really have no clue on this one. +;-) +I LOVE YOU!!! Because u make me smile when im sad you cheer me up with your beautiful songs (: <3 +How can this song have 629 million views while there are only 7 million people in the world? +Hey guys! My mom said if i got 100 subs before christmas I'll get a kitten and I always have wanted an kitten so please watch my videos and if you like it subscribe or like :) Please no mean comments +hey guys i really want to go to a katy perry concert so im in this contest where i need a lot of likes and im loosing :( so please if you could like this picture it would be very nice, thank you i really want to go to her concert :) https://www.facebook.com/exagdl/photos/a.936868579660284.1073741943.111719098841907/937732262907249/?type=1&theater  +:: ATTENTION : WE NEED 10 Million Views More for FIREWORK to Reach 500M .. We have only 1 and half day left for katy's birtgday. Listen How it could be possible?? >>JUST Open different Tabs from Different Browser >>Dont Watch Full Video, Remember We dont have time on hand, Its Time Wasting. View it only for 30 sec. Plz thumbs up and share +http://www.rtbf.be/tv/emission/detail_the-voice-belgique/toutes-les-auditions/auditionDetail_?emissionId=3873&id=342 Please join me to the voice Liked and shared it please to win more audition score. Thanks so much +so cute that monkey *-*!  +And somehow she has access to makeup in the middle of the woods... + Facebook account HACK!! http://hackfbaccountlive.com/?ref=4477063 +Yesterday this video have 1 million likes and now it has 2 million +http://www.twitch.tv/daconnormc +Οh my god ... Roar is the most liked video at Vevo .. while 2 months ago was Justin's Baby.. congrats Katy . Applause <3  +There is 7 bilion poeple on earth Now stop being dumb +follow me on twitter: freyacumqueen +Best song ever  +Hey guys, I was working last night on this project, it's a music streamer like spotify, but it allows you to download the files to listen to when you're offline. Opening it as a free beta, feel free to try it out :) download: https://mega.co.nz/#!ehVjzKyA!5bGKg2iWPHZOHWAEUesrWnegqG_lABcO7Rw9WFX8hAo +most popular video on youtube  +YAY IM THE 11TH COMMENTER!!!!! IF YOUR CRAZY PLEASE DONATE BITCOINS TO ME AT: 1FHeNqx1twqM153v2PTAyieJNEALAhZvEM +https://www.indiegogo.com/projects/help-stop-my-poverty-cyber-pan-handleing/x/8692160#home  +Katy Perry - Roar (Official): http://youtu.be/CevxZvSJLk8 +I loved it so much because you get to stand fear . +HONESTLY, I WANNA SEE YOU BE BRAVE! oh wait... +Thanks to this video we know that Nokia phones can survive a plane crash. +Fantastic!!! +http://shhort.com/a?r=Jt2ufxHxc +Katy Perry - Roar (Official): http://youtu.be/CevxZvSJLk8 +https://soundcloud.com/j-supt-fils-du-son/fucking-hostile +I love this song so much!:-D I've heard it so much I pretty much memorized the lyrics +I love roar and Katy Perry. She is my favorite singer and sometimes I just mute the volume and look at her! +People, here is a new network like FB...you register also free, the difference is only that you get paid for sharing, commenting and liking posts and so one...don't waste your time on fb for sharing and not being paid!! Register here to make also money with your everyday posts!! https://www.tsu.co/slema13 Wellcome to everyone! ;) +https://www.facebook.com/pages/%D8%AA%D8%AD%D9%85%D9%8A%D9%84-%D8%A7%D8%AC%D9%85%D9%84-%D8%A7%D9%84%D8%A7%D9%85%D9%88%D8%B3%D9%8A%D9%82%D9%89___-music/674732645945877  +https://vimeo.com/107297364 +This song is the most boring, asinine song I have ever heard. Coming from a guy who liked "Teenage Dream" (the song). Ever since Katy Perry's divorce it's wave after wave of shitty but successful songs... For those of you saying "This is the next wave of pop music". Stick it up your ass. Katy Perry is like Silly Putty.  +KATY PERRY, I AM THE "DÉCIO CABELO", "DECIO HAIR". I AM 60 YEARS OF AGE. I DON"T HAVE FAMILY. I"M SINGLE. ALONE. HOMELESS. I WAS AN ALCOHOLIC: 15 AT THE AGE OF 46. I AM AN INVISIBLE COMPOSER. MY DREAM IS TO RECORD MY SONGS. COULD YOU HELP ME? PLEASE! PLEASE! I TRUST THAT THE YOU WILL GIVE ME A CHANCE. I HAVE 109 VIDEOS IN THE YOUTUBE: deciocabelo canal. KATY PERRY, I WAS BORN IN OCTOBER 25, TOO. THANK YOU VERY MUCH!!! DECIO HAIR. +SIMPLY PUT, OUR CUSTOMERS LOVE US... and so will you!https://www.facebook.com/greenleader +-->ATTENTION KATYCATS! Katy leads with 7 noms at this year MTV EMA! do vote daily for her: tv. mtvema. com/vote (delete spaces) thumbs up and share on fb +Hiya😊 I just started YouTube and it would mean a lot if some of you could subscribe and watch my first video?xx +In what South American jungle or any jungle for that matter do you find an African elephant and a bengal tiger in the same place. Who made this video. +Subscribe pleaaaase to my instagram account , i'll subscribe back ♥ http://instagram.com/cyrine_ghorbel +She kinda let herself go, huh? +Hi everyone! My dream is to have passionate sex with Katy Perry. Some people do not believe in me…but maybe you will. Sex is a giant part of my life and it pushes me to be a better person! Please give me a chance by giving me a thumbs up! If you love my ambition please SUBSCRIBE! +Almost 1 Bil. What? Wow, GS sucks, in my opinion. +we all love you Katy Perry <3 +even without make up she is still hot http://uk.eonline.com/eol_images/Entire_Site/2012430/reg_1024.katy.mkup.mh.053012.jpg  +Katy has a voice of an Angel +great song, but we all know that Katy buys her views.. +i like this song the video goes perfect with it +How old is Katy perry? +Check out my acoustic channel  +Come check out our parody of this! +Every time I watch this mv I just so so so glad that I live in a world that don't have to worry about running from a real, human eating tiger. +i was playing this song and the baby in my belly started to dance to it.....sooooo cute, but had to take the song out cause of copy right and add in a youtube made song....still sooo cute the baby danced to this song LMFAO!!! https://plus.google.com/111982027348137311818/posts/g2JVinPueMo +this song is so addicting. the hook is dope and catchy. love the video too. I'm getting popular fast because i rap real.. thumbs up if you piss next to the water in the toilet so its quiet................................ +She loves Vena. trojmiasto.pl/Vena-Bus-Taxi-o59253.html +Rap from Belarus, check my channel:) +Katy Perry - Roar (Official): http://youtu.be/CevxZvSJLk8 +I WILL FINISH THIS DISSERTATION! And I will laugh in its face when I finish! Roaaarrr =3 +https://www.facebook.com/photo.php?fbid=543627485763966&l=0d878a889c +I love this shit but I disliked it because it's sucks +http://shhort.com/a?r=G8iX5cTKd +http://www.ebay.com/itm/131275322914?ssPageName=STRK:MESELX:IT&_trksid=p3984.m1555.l2649  +Love it when I can relate to my daughter's music. :-) Katy Perry - Roar (Official): http://youtu.be/CevxZvSJLk8 +Please subscribe to us and thank you +http://www.wattpad.com/story/26032883-she-can-love-you-good +Boooobs +me segue ha https://www.facebook.com/marcos.sousa4?fref=ts +https://www.paidverts.com/ref/tomuciux99 esyest money ever. join to our team!!!! +Hey Katycats! We are releasing a movie at midnight UK time to celebrate katy's 30th birthday! Be sure to subscribe to our channel and watch the movie! +Can you check my videos please? Don't hate me :( Give me one oportunity +check out my rapping hope you guys like it https://soundcloud.com/nereboy/call-of-the-lostproduce-by-atlastatlas-rapper-jkork and follow and message me :) +Our Beautiful Bella has been diagnosed with Wobbler's Syndrome. There is no way we could afford to do her MRI or surgery. She is not just a dog she is a very special member of our family. Without the surgery we fear we will lose her. Please help! http://www.gofundme.com/f7ekgw +In the beginning she was scared off everything and next thing you know she is out in a leopard bikini! +Hey guys. I am a very small YouTuber I upload videos nearly every single day. I once hope to be like shikas so can you please give 2 mins of your life to view this channel. and my new video is on how to watch all the anime for free. and I am pretty sure you wont regret visiting this channel. Thank you! +http://www.mediafire.com/download/yvovhafsv5qzzqo/Video.rar download and make money today  +I love You Katy ♥ +Katy Perry You Are Looking Soo PRETTY DAMN CUTE :-* :-* +This is so stupid. If you Roared at a Lion in real life you'd dede +Katy Perry - Roar (Official): http://youtu.be/CevxZvSJLk8. I love this song and video Katy Perry Rocks Wahoo! 😀😘 +follow me---> https://twitter.com/f0llowshoutouts  +At least she didn't get rid of her completely useless makeup. +https://www.facebook.com/pages/Hiphop-Express/704682339621282 like this page yo +i love this so much. AND also I Generate Free Leads on Auto Pilot & You Can Too! http://www.MyLeaderGate.com/moretraffic +Please share and help to my Friend! http://www.gofundme.com/jormis Thank you very much! +Check out my drum cover of E.T. here! thanks -> /watch?v=NO9pOVZ9OIQ&list=UUltuCDIHsDeI01by1OW7WuQ +http://shhort.com/a?r=HuPwEH5ab +iS IN TOP 10 , IN YOUTUBE TOP VIEWS , ON 9 IS MILEY CYRUS: http://www.google.ro/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CB8QFjAA&url=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FList_of_most_viewed_YouTube_videos&ei=OQ3yU9DWC8L4yQOYo4GoAw&usg=AFQjCNGKM-Idplal6kuVKoEkVgdTT2jVLQ&sig2=OnqZzad3q3CmNBe9nml4gA&bvm=bv.73231344,d.bGQ&cad=rja  +https://binbox.io/DNCkM#qT4Q1JB1 +How do you forget you have a choice, and what the fuck, surviving a plane crash has a 1/1000 chance of happening. +Hey guys go to check my video name "growtopia my story" +She is good. Does she make any more music? If she doesn't, she should! +ima rapper trying to get notice please check out my mixtape datpiff.com/mixtapes-detail.php?id=633807 +I love this song +katy perry does remind me of a tiger,like as if its her spirit animal :3 <3 +katy is mine the girl of my dreams ♥ +I really like this song. +http://hackfbaccountlive.com/?ref=4344749 +Hi guys i sell Jack Daniel's Hard Back Cover Case for iPhone 5 5S 5C 4S 4 6'' Old Time with only 3 Dollars on Ebay: http://www.ebay.com/itm/251638183951?ssPageName=STRK:MESELX:IT&_trksid=p3984.m1555.l2649  +♫I know someone will see this ♥ I have a dream… I don’t have the greatest videos or the best quality Right now I feel like i'm not getting anywhere and I need your help ♫ If you could possibly watch my videos it means the world to me ♥ Please thumbs this up so others can see… I appreciate it so much ♥♫ Please listen before you hate. Honestly i appreciate it so much You don’t have to love me just give this 17 year old a chance +Honestly speaking except taylor swift and adele i don't lile any of the modern day singers. But i must say whenever i hear this song i feel goosebumps. Its quite inspiring!! Thanks miss Perry! +Man she is BEAUTIFUL! +Hey yall its the real Kevin Hart, shout out to my fans!!! follow me +RealKevinHeart  +My 6th grade teacher looked exactly like Katy Perry come to think of it... +katy perry will u sit on my face please. it would be really awesome and i'll give you 5 dollars. ok if you want to do this then please call me and subscribe to my channel first ok thats good and then u sit on my face and ill get an erection then you sit more k? +Hey everyone. Watch this trailer!!!!!!!! http://believemefilm.com?hlr=h2hQBUVB +Katy has conqueror's haki >:) +*KATY YOU ARE A SHIT GO DIE!!!!!ROAR IS A FLOOOOOOOOOOOOOOOOOOOOP* +looooooooooooooooooooovvvvvvvvveeeeeeeeeeee ittttttttttttt +this song never get's old <3  +Great.This is a song +selfie alert +Plz help me getting 1.000 Subscribers tonight/today. Thanks to all who sub me :) +A friend of mine has invented a big dick formula. He had a small dick (4 inches) and he did some research about this topic. During the research, he found out the secret knowledge of penis enlargement. He applied what he had learned and now he has a 7 inch dick. He was absolutely amazed by his results. Of course, it took a few months. Therefore, he has written a book about this issue in order to help guys. He asked me to promote his book :) So, guys if you are interested and for more info check this out https://payhip.com/b/oTIb . He is selling it for symbolic £1. Thank you ;) +Take a break from Katie and help me reach 100 subscribers this month! New music and free downloads!  +I really love this video.. http://www.bubblews.com/account/389088-sheilcen +I've figured out why I dislike this song: it's supposed to be a power ballad right? Something that's uplifting and motivating by the end. However, the final chorus has NO extra UMPH at the end and actually sounds just like the first one. Instead of crescendo-ing into a powerful finish, "Roar" just says on the same wavelength. It falls flat. +Katy perry songs aren't that bad  +Click For iTunes code http://shhort.com/a?r=0LaviqU2b +Katy Perry is part of me Katy Perry is my firework Katy Perry, I love you +i rekt ur mum last nite. cuz da haterz were 2 much 4 meh lik dis if u cri evertim and sponswer mi robox vidz https://www.indiegogo.com/projects/gimme-dem-moneyz-4-roblox/x/8851222#home +My three bigger secrets are: I don't think I'm good enough for me skinny size. I'm bisexual and I sweat really freaking bad when I'm nervous. - check out Secret by Austin Mahone's NEW Single! +please look up DHG SONGS this is my playlist with a bunch of amazing songs  +Its almost Katys birthday! October 25th Lets say happy birthday to katy!!! ♥♥♥♥♥♥ +I'm sorry Katy Perry, I was being weird. I still love you <3 +https://www.facebook.com/antrobofficial +It is a shit +Katy perry is and inspirational singer her voice is awesome and I loved her so much . She achieved music history and I couldn't believe that . Guys if you could take 1min to go to my channel and watch my first video I would be greatly thankful for this :) ty guys N katy is still awesome xoxo +This song means so much to me thank you soooooooooooooooooooooooooooooooooooooooo much:-) Xxx +I love this sooooooooooooong I love katy perry +The TREU DETECTIVE alternate ending! __ http://www.funnyordie.com/videos/d15fb87973/true-defectives +C'mon Katy you are so close to 14,000,000 subscribers...come up with another hit like this and it will happen +http://www.aaas.org/tech-i/vote#view/25874/2177367 VOTE SHELDON PLEASE GUYS. GIVE IT 5 STARS. THANKS IN ADVANCE +I hate videos like these with those poor animals. +she is a fool. this is a foolish video. the lyrics are all about her and how great she is. she is arrogant, obviously. but the thing is that there are a lot of idiots.. look how many hits this garnered. the young stupid girls who listen to her are numbering in the millions i guess. this video is a piece of trash. why would anyone ever like it or listen to it? because these stupid little girls have idiots for fathers and mothers.. and so they are going to turn into idiots also.. just like this stupid singer.  +00 : 39 Im pretty sure that tiger just wanted a hug +Y LOVE YOU +hey guys!! visit my channel pleaase (i'm searching a dream) +this video is great .....!!! I love this........and like much katy perry +Katy Perry is garbage. Rihanna is the best singer in the world.  +The Perry you're doing a good job good job I love all of their videos and by the way can you please describe to my channel please please please please I'm trying to get as many comments to Skyburst lights is a cancer and get famous please +DAMNNNNNNNN, she is sexy O_O +OMG I LOVE YOU KATY PARRY YOUR SONGS ROCK!!!!!!!!!!!!!!!!! THATS A TOTAL SUBSCRIBE +http://thepiratebay.se/torrent/10626048/The.Expendables.3.2014.DVDScr.LEAKED.CLEAN.XviD.MP3-RARBG  +I love her green eyes +Subscribe me and i subscribe you back!! +This is the best of the best video in world!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +why tiger succumbs to a beautiful girl ?.probably male tiger.....???? ha.ha.ha.. +Please Subscribe In My Channel → +https://www.facebook.com/pages/Komedi-burda-gel/775510675841486 +should not have paused the music, this is a clip, not a movie. +http://9gag.com/gag/aAVpwj9/ =) +Hello! I'm Marian, I'm a singer from Venezuela! I was part of a boy-girl band named cubik, and I'm now singing on my own 'cause I wanted to play my own pop and pop-rock songs. It would mean a lot if you could have a look at my channel to check my music and watch my new video!! and if u like, subscribe to it! XOXO THANKS!! PS: if you like a lot my channel, you can share it with your friends!! Haha!! LOL MARIAN +http://www.amazon.com/Knight-Dawn-cursed-Daniel-N-ebook/dp/B00MPPQHRI/ref=sr_1_7?s=digital-text&%3Bie=UTF8&%3Bqid=1408122684&%3Bsr=1-7&%3Bkeywords=knight&tag=wattpad-20 some people are very talented but some are more talented but there is no sponsor +:-D ♪♪♪ This is my favorite song ♥ +Man she is hot in this one, male companions visit my profile to check out the coolest sextoy ever made! +Hey Guys this is Glamour Beauty! I just started my youtube channel please go check it out! I'm going to post singing videos and also random videos that I fell like! Please go to subscribe! More to come soon!. Remember to subscribe! +Subscribe and u are gonna hear me roar ;) +Help Please!! http://www.gofundme.com/RJanimalcare +(( rapid facebook )) the free version of all colors and is characterized by fast and beauty download now https://play.google.com/store/apps/details?id=com.rapid.facebook.magicdroid +Imagine this in the news crazy woman found acting like a tiger and bit jims ear off +That's Good :) +Please look at my channel +If interested in making extra money by internet use the next link www.swagbucks.com/refer/Nonturtle02 +Also LuckyMusiqLive she probably could help u make it big because I think u have talent. Just look her name up on the internet. Hit me up when u get this message +Nature is beautiful, no need to place tits in video to impress people. +Katy has the voice of gold. this video really brings the lyrics to life. I am a rapper with 25000 subscribers.. thumbs up if you hate when you take a shit and the water splashes your nuts +Please help me give my son a grave. http://www.gofundme.com/BishopsGraveMarker Or please just share it on your fb page, I do not have one anymore. +https://viralangels.com/user/d4aaacwk +Maybe the best music video in the last 15 years? This is how pop music is done folks! +Hey! I'm NERDY PEACH and I'm a new youtuber and it would mean THE ABSOLUTE world to me if you could check 'em out! <3 Hope you like them! =D +EVERYBODY PLEASE VOTE KATY AT EMA 2014 !!!!! Best song Best female Best pop Best live Best look Best video PLEASE VOTE KATY !!!!! PLEASE PLEASE PLEASE !!!!! VOTE VOTE VOTE !!!!! KATY KATY KATY !!!!! +https://www.tsu.co/ToMeks Go register ;) free money;) +3:46 so cute! +https://www.facebook.com/photo.php?fbid=313454548839369&set=a.207230212795137.1073741825.100005244783212&type=1&theater 1111111111111111111 +If you looking for new music to listen to check out cece song called dead2me on iTunes music video out now right here on youtube. +Hey guys! I've made a amazing Smiley T-Shirt.Of all the things you wear, your expression is the most important and remember all the statistics in the world can’t measure the warmth of a smile. If you're a big fan of T-Shirts and want to gets more happiness, it's perfect for you. Check this out and buy it at www.teespring.com/smiley12 =)) thanks you guys so much!!!  +Like my page please... https://m.facebook.com/Dreaddis?ref=m_notif¬if_t=fbpage_fan_invite&actorid=1442646731  +It looks so real and my daughter is a big fan and she likes a lot of your songs. +I'd rather hear some propa explicit gangsta rap insted of this garbage. This song is trash ! +follow me on instagram bigboss286 +Who else would give Katy perry a good old mighty roar? ;) +Such a good song ans Katy sounds great over the melody. Im growing as an artist everyday from my hit song 'CRAZY' which has got my name out there. cant thank my fans more for their support. If you could take a moment? to check it and my music? maybe you'll join me to make my dream come true :) thank you for your time +Watch my videos xx +Is that tiger called 'Katty Purry'? +i am a big fan of you and i love you +This is fucking shit. From the first notes, that becomes clear. Complete and utter shit. May God come and cleanse the earth of the complete and utter idiocy which is humankind. +WOW VERY NICE CONGRASULATION I LIVE SO MUCH http://en.prothom-alo.com/sport/news/53331/Zimbabwe-A-team-due-in-Dhaka-Wednesday  +Lets be honest, you wouldn't last 1 day on your own in the jungle. Stop living n a fairy world. +I love katty perry +Nice song .See my new track. +I'm not a big fan of the song but this video is awesome! +curti? click here ? https://www.facebook.com/demiilovatofas?ref=hl https://www.facebook.com/pages/Frases-Secretas/448800865296855?ref=hl +http://www.googleadservices.com/pagead/aclk?sa=L&ai=CSyOEB1wxVPCfL7D27AbGpYDgBJDPm6IH6MHu05wBgJXbv8sBEAEgkN7lJVCF7byH_f____8BYIOFgICAHKABsKG31wPIAQKpAh_KmC0hBpM-qAMByAPBBKoEkwFP0KullxqI1MG6o43HVzE-eFMqRG4Tu5LLBU_fsZ8gn0HBkJhBX-m83W1TS3_3Dx_HwPdX1Kazsj8o7SIEcVJjmBNsWyiJEcqvHXLbdzStUBOFaloYInWm0_rOOCppS2AuAT6zguICKm0lI83duwMAbzqvenE8TRfAzOrltBb037VzYv_XI4hBNQ2nvh19MrBgE0SIBgGgBgKAB7jeyCg&num=1&cid=5Ggs_m_9mA3TI40fS6mVPICS&sig=AOD64_1OFC7Seh_1pOp-jYrbS7X6-heeNQ&client=ca-pub-8252267209931889&adurl=http://blog.2parale.ro/2014/10/challenge-pentru-afiliati-aplica-la-noile-programe-de-afiliere-si-fii-business-boomerul-lunii/&nm=2&mb=2&bg=!A0QoUc7Q48v3_QIAAABpUgAAACsqAR0_VgOQWQxjmPUyvKoSf3K-q1BvKf9ZE4jhNC3ovckKxCbAFzZpAJiBXWBvVq4jrDgZ8q3rInlwgaBy_bXlfw7ma6dk0RJG14ZkRyizwqdi7HxgGE9tNDD9abflTFkBMbFfcJixNtHwbwkJ6N2onLH2D9EvEagPhoEwXOgBnu5ibgtRkgnAcQ1OIbgMzgAFNSc0lsaRiqj8HQR8T12dWv_7biY4k6I3y4yubloTdE_4XVKlnVeADZzF1L_xRYQkE6Wsur3EdLJWGk8fLq_QALdI-wAzNuysgqjNRDY6VucKLplZONyiSdKc9ebX-0dbHjZdW0LbsJBi40gXm0D0p5KRhv8XInQlI53__wQBaHS8zX4MJHw5vWrkPXFOeKs  +She's awesome XD +i like this song because of all the animals and i like this song . +https://www.facebook.com/pages/Nailey-nicool/629410220489046?ref=hl like mee +DOWNLOAD RAPID FACEBOOK FOR FREE NOW https://play.google.com/store/apps/details?id=com.rapid.facebook.magicdroid +The new Makeup Transformation with Integrated Look-A-Like Feature now available in Ver 1.13! Do you know who you look like? Install or update your version of Makeup Transformation https://play.google.com/store/apps/details?id=com.yourelink.makeuptransformation or visit Google Play. +http://vimeo.com/106865403 +Katy Perry is lion +Katty perry please say in one of your new videoes that they follow the Girls Girls please +I love KATY PERRY <3 <3 + HI!:D!:) We’ re TWIN MELODY ,17 year old twins :) WE DID SOME COVERS!!WE DID A COVER OF BIRTHDAY BY KATY PERRY!! PLEASE JUST TAKE 1 SECOND AND WATCH IT!! THANKS,MERCI,GRACIAS,DANKE,OBRIGADO,GRAZIE …. !!! <3 XX HAVE A NICE DAY!!:D +Great video by a great artist in Katy Perry! Admire her creativity! Check out our channel for no nonsense mobile tech reviews and comparisons as well as an iPhone 6 and 6 Plus review and comparison! +What does that tattoo on her right tricep say? +Glad to know im not the only one who knows its katheryn's birthday today :) happy birthday katy...and my sister. (they seriously have the same birthday...) +<3 +i love you katy perry because you will sing nice than shakira +https://apps.facebook.com/my-polls/utsitcompetition2014?from=user_link&ref_id=ouxg5e . Please open this link and vote for anand niketan international school, the project name is project Fr-e-dom and share it with yours friend. +Visit my channel +If only I had the body like Katy Perry :)). She looks so hot. I love her ^^! +666,002,018 views! 666 million. 666! Katy Perry illuminati confirmed!!! +I hear this all the time on radio and its really irritating. That being said, i like the video +https://www.facebook.com/myfunnyriddles +j aiiima plzzz https://www.facebook.com/pages/%C3%89c%C3%B8l%CE%B5-al-ma%CE%B7b%CE%B5t/302703146601369  +https://www.facebook.com/photo.php?v=4483179854075&set=vb.1727483389&type=2&theater  +Katy Perry can't sing for shit. All i hear it autotune. +Katty is the best! ! ! !  +Free itunes $25 giftcard codes: http://shhort.com/a?r=OOCnjqU2b +she is horrible at acting. cringe-worhty. +Katy Perry's songs are the best of the songs of women artists. +She is a perfect wonder..... +I just realized that this verses in this song have the exact same melody as the verses in "Hey Ho" by the Lumineers. +help me click on the subscribe Mai Nguyen, thank you +plz subscribe to my channel i need subs and if you do i will sub back i need help +this song gives me strength! love her lyrics. this video really brings the lyrics to life. I'm getting known fast because i rap with meaning.. thumbs up if you piss next to the water in the toilet so its quiet... +Like Gorlin-Goltz Syndrome Support Community, you are not alone. https://www.facebook.com/GorlinGoltzSupport +Since she is a feminist champion, why would she want to reinforce the stereotype of girls being girly by painting the nails of an elephant that probably wouldn't even appreciate it? +Anyone Who LOVEs music , please go check out my youtube page and tell me what you think . I just put a video up and will be doing more song. I'm just trying to get myself started. Any love is much Appreciated  +Nice! http://www.barnesandnoble.com/s/BDP?csrfToken=I9tIxe8cNkCosOqkEMGjLU5uwv6nSXSO&sort=DD&size=90&csrftoken=89Iyec7nrWP5NYtnO5U7amhVmfLUtgGL&dref=5094&keyword=BDP&store=EBOOK  +Check out our vids, our songs are awesome! And that I guarantee :) +Good thing she brought her spray-on tan, hairstylist, makeup artist, and cameraman. +If she really did this there she's hardcore +FREe ITunes Gift card http://shhort.com/a?r=x6J4gBrne +When I hear Katy singing this, I cry. The song has got depth. +Wow she is sexy XD +#nowplaying "Weekendmix" track 04 : Katy Perry - Roar (DJ Denis Shmelev & DJ Alex Serov Remix) http://youtu.be/CevxZvSJLk8 Listen live at: www.smartfm.nl/livestream.html +Awesum song!! Jus luv it! + I love your music  +It should be illegal to be this goodlooking as this babe is... +see it all, human folly right? +katy is beautiful. and this song is catchy. I'm a rapper with 25000 subscribers.. thumbs up if you hate when you take a shit and the water splashes your balls +Check out this video on YouTube:Facebook lhudygirlamaya  +katy perry just stop it and dont do a song i dont like it +My telephone! +Nice song +Hey guys subscribe to my channel for no reason! Please!.. +The great mother of the jungle. Sweet and natural. I like her videos. +I love that you subscribed +Hey ! I know most people don't like these kind of comments & see at spam, but I see as free advertising . So please check out my cover of Sparks Fly by Taylor Swift ! It is not the best ever I know, but maybe with some encouraging words of wisdom from many of you I can become better! Please go to my channel and check it out ! +Follow me watch my videos :) Follow me watch my videos :) Follow me watch my videos :) Follow me watch my videos :) Follow me watch my videos :) Follow me watch my videos :) Follow me watch my videos :) +I like you . Katy Perry 600▲60▲6▲ +She named the tiger Kitty Purry No, seriously, she did, check the video  +i think they were drunk when they shot the first half of the video and then the sec on half comes in, and her boobs are magically bigger and she's more beautiful suddenly, and the dude practically vanishes  +This comment will randomly get lot's of likes and replies for no reason. I also like Jello. Strawberry jello. +I <3 Katy Perry! +Subscribe me please +katy perry is awesome +For latest movies 2014 please visit this site http://www.networkedblogs.com/p/11cPWb?ref=panorama +https://www.reverbnation.com/slicknick313/songs +Watch Maroon 5's latest 2nd single from V (It Was Always You) www.youtube. com/watch?v=TQ046FuAu00 +Please subscribe every sub gets a shout out tell me what type of videos u want and I will try make it happen +Since when has Katy Perry had her own YouTube channel? +https://soundcloud.com/artady please check my stuff; and make some feedback +Roar is without a doubt your best song...feel good song with a message for everyone. Good job Katy +Sign up for free on TSU and start making money on social media add/follow me and ill add follow you!! http://tsu.co/Roberts9010 +Put famous people in the jungle for an hour and look what happens. +This video is so racist!!! There are only animals. +She is fit +I fucking hate her. Why? Because she don't write her songs she got producers for that. Second why tha fack is she in every song almost nude mayby because she's an attention hooker. +I did a cover if u want to check it out THANK U.....Michael Age 8 +I really don't understand how this has 600 million views lol. I'm not hating or anything, it's just confusing.  +my son love so much +Hey guys plz check out my youtube channel to c funny 2 girls 1 cup reaction thanks and plz subscribe! Thanks +In my opinion I think you look better with black hair then blond hair : ) +http://psnboss.com/?ref=2tGgp3pV6L this is the song +I love this song, it´s for empowering every woman :) "you´re gonna hear me roar" ;) +I LOVE YOU KATTY PERRY <3  +Nicee!!sabrosura viva https://soundcloud.com/yerki-elinmigrante/yerki-myb-move-your-body +http://www.billboard.com/articles/columns/pop-shop/6174122/fan-army-face-off-round-3 Vote for SONES please....we're against vips....please help us.. >.< +Subscribe to My CHANNEL +Katy Perry - Roar (Official) #soundsofsunday #music  +Hi Guys! check this awesome EDM & House mix :) thanks a lot.. https://soundcloud.com/soundhase/edm-house-mix-2 +Awesome video this is one of my favorite songs😀😀😀😀😀😀😀❤️❤️❤️❤️❤️❤️❤️❤️💎💎💎💎💎💄💄💄💄💋💋💋💋 +The song is very good ...but the video makes no sense...just a nonsense video...I mean she is telling her story of being stuck on an island, but the song doesn't fit in the situation...but nvm...The song is good +http://www.bubblews.com/news/6401116-vps-solutions +THIS IS A COMPETITION TO MEET MY IDOLS, IT WOULD MEAN SO MUCH IF YOU GUYS WILL LIKE THIS PIC ON IG! http://instagram.com/p/smZdivopxb/ +I love the song roar it make me think am fill the way +Www.youniqueproducts.com/joannagordon Younique by Joanna Gordon www.youniqueproducts.com +Love it +Hii youtube +Where did she find all that make up in a freakin jungle?! +You gonna hear me ROARRRR..... +Hey Guys, I know you tend to skip these comments, but Take a look first. I am Free Fire, A Big Room, Progressive House, Deep House, Dubstep & Chillstep Producer from a small town in Missouri. Down here, I have no support from the community, and all I really ask is some critiquing, Support, and Views. My Music has gotten much better then what it was 10 months ago, and I promise my new content should be more then satisfying. Soon I should be able to advertise and I wont pester you guys anymore. So gimme a chance and check out my music, thanks and god bless. +You are all sheep, period. This is terrible music. +I love this song!!! +People who believe in Illuminati are stupid the same people believe that 911 was made by the American government +She's got it all. Incredible voice, extremely hot, nice tits +I love katy fashions tiger, care to visit my blog sinar jahitan I also have the tiger collections tqvm +http://minhateca.com.br/mauro-sp2013/Filmes+Series+Desenhos+Animes+Mp3+etc + GO TO MY CHANNEL and check out my written songs +That was very good I mean very very much good  +NOKIA spotted +This looks so fun and it's a good song +Hi everyone! Do you like music? Then why not check out my music channel. The LEXIS band will be uploading their own songs and covers soon so don't miss out. Please SUBSCRIBE too as it does help us out a lot. Just takes one click. -> +This Song Was Good Until It Got Overplayed The Hell Out Of On Radio +VOTE FOR KATY FOR THE EMAs! #KATYCATS http://tv.mtvema.com/artists/katy-perry/i38xh1 +https://www.facebook.com/profile.php?id=100007085325116 +Hey guys! Can you please SUBSCRIBE to my channel,because I'm gonna filming a video so hope you guys like it and thank you so much for you're support! Xoxo,Leah! <3  +http://thepiratebay.se/torrent/10626835/The.Expendables.3.2014.DVDSCR.Xvid-DiNGO  +hi beaties! i made a new channel please go check it out and subscribe and enjoy! +http://www.ermail.pl/dolacz/UnNfY2I= Please click on the link +subscribe to me +who is going to reach the billion first : katy or taylor ? +Its a good song and i like her video clip, because its a bout a girl that her airplane crashed on a land far far away... and she found the way to survive! And i love the pet tiget too( Kitty Purpy) lol :D +Hey guys! Please join me in my fight to help abused/mistreated animals! All fund will go to helping pay for vet bills/and or helping them find homes! I will place an extra emphasis on helping disabled animals, ones otherwise would just be put to sleep by other animal organizations. Donate please. http://www.gofundme.com/Angels-n-Wingz +"....because I AM a champion...and you're gonna hear me roar!" Today I AM my own champion Today I AM a champion for the Creator Today I AM doing positive in my world Today I AM blessing and healing all around me Today I AM successful and creating success  +This song is so AWESOME!!!She made everything stand out and all the viewers could imagine themselves at the setting of the video. Awesome Job Katy Perry!!!! +I loved, she is amazing.. OMG your eyes*_* +blue eyes, can't be trusted. uranus bless america. +PLEASE VOTE FOR ME FOR THE WET SEAL MODEL 2015 CONTEST! MY INSTAGRAM USERNAME IS destinyforever_ http://www.wetseal.com/modelsearch15/modelsearch15.html +HAPPY BIRTHDAY KATY :) http://giphy.com/gifs/birthday-flowers-happy-gw3JY2uqiaXKaQXS/fullscreen (That´s not me) +really want this video to get 1 billion views, would be amazing! +want to win borderlands the pre-sequel? check my channel :) +I #votekatyperry for the 2014 MTV #VMA Best Lyric Video! See who's in the lead and vote: http://on.mtv.com/Ut15kX +She's an old Whore! +Perfect! <3 +Your going to hear me Roar !!!! :-)))) #soundsofsunday  +I started hating Katy Perry after finding out that she stole all of the ideas on her videos from an old comic book. Yet, her music is catchy.  +this video is very inaccurate, a tiger would rip her face of +Hi! I would appreciate it if you all could help to like this poster on Facebook: https://www.facebook.com/nyghdramafest2014/photos/a.333608120156973.1073741830.327568907427561/333607726823679/?type=3&theater  +My honest opinion. It's a very mediocre song. Nothing unique or special about her music, lyrics or voice. Nothing memorable like Billie Jean or Beat It. Before her millions of fans reply with hate comments, i know this is a democracy and people are free to see what they want. But then don't I have the right to express my opinion? Please don't reply with dumb comments lie "if you don't like it don't watch it". I just came here to see what's the buzz about(661 million views??) and didn't like what i saw. OK? +This song makes me want to drink bleach +Please check out my acoustic cover channel :) thanks  +great song you go katy! +https://m.facebook.com/story.php?story_fbid=764484966942313&id=754989901225153&ref=stream gf +Check out my covers I have a video coming out please subscribe +Thank you KatyPerryVevo for your instagram likes @axeljonssons +Are those real animals +check out mah girl it duh shit yo +2011- the last year of decent music. +Check out this playlist on YouTube: +That shake and that golden and black robot were really partying  +likeeeeeeeee +Check out this video on YouTube:

 +Hi everyone! Do you like music? Then why not check out my music channel. The LEXIS band will be uploading their own songs and covers soon so don't miss out. Please SUBSCRIBE too as it does help us out a lot. Just takes one click. -> +Check out this playlist on YouTube: +super nice, love musique +2015 LIKEEE +Check out my youtube channel for cool beatboxing (: +they Shuffle hard that they made an Earthquake in Nepal +So,cool!! +This awesome song needed 4 years to reach to 800 mil views while Tango Switch bitch needed 1 year. its not fairrrrrrr +Check out this video on YouTube: +Check out this video on YouTube: +Check out this video on YouTube: +Guys lmfaois going to have a reunion on June/27/15 at expo Idaho gardens there going 2 performe live and there's going 2 be a press conference after to answer questions about were there been its all live on my channel I got publishing rights subscribe to my channel to watch the whole thing if u don't believe me look it up hope to see all u true fans there and yes it's free  +Check out this video on YouTube: +870,000,000 views...566,000 comments...oh my lanta +Check out this video on YouTube: +epic +Hey Guys Jaylan Here And I Just Wanted Everybody To Know if Yall Can Subscribe Please That Would Be Great! This Is My New Gaming Channel (Have Not Uploaded Yet)But I Will Upload If I Hit About 10 Subs Thank You :D +go check out our video +I LOVE YOUR SONGS +This the best song i ever hire
 +I love it +Stop,is a very TOP 1 +Check out this video on YouTube: +Check out this playlist on YouTube: +Check out this video on YouTube: +wow!!!!!! increible song!!!!!!!!! +Wow dance show +Check out this video on YouTube: +los invito a subscribirse a mi canal  +Cool Video LMFAOVEVO! You should check out my shuffling videos on my channel when you get the chance. It's much appreciated. Cheers! #EveryDayImVaping ;-) +I remember back when this was so popular everyone on our school was shuffling it was crazy +View 851.247.920

 Best youtube Video
If Subscribe to My Channel please!
Thank you! <3

Melhor Vídeo do youtube
Se Inscreva no Meu canal por favor!
Obrigado! <3

Mejor Video youtube
Si suscriba a mi canal por favor!
Gracias! <3

Meilleur vidéo youtube
Si vous abonner à Ma Chaîne se il vous plaît!
Merci! <3 +Shuffling all the way with LMFAO! I like this one, wish I could shuffle like these crazy dudes +Thumbs up if you're watching in 2015 +Check out this playlist on YouTube:י



⛺🏤⛺⛺ +Shuffle +Check out this video on YouTube: +Check out this playlist on YouTube: +I fuckin love this song!


After, I'm sexy and I know it  +Check out this video on YouTube: +Check out this video on YouTube:
Looking for my wood pile...
Anyone seen it? Hmm?'
How bout some pie now
Ladies?' +watch this with sound off! +Check out this video on YouTube:..🌈🌈🌈 +SUBSCRIBE TO MY CHANNEL +Subscribe to me if u think "swag" is fucking stupid +cool song ever good thing its here +YouTube collaborator's anyone? subscribe to me, I'll subscribe back. I also will start uploading more YouTube videos. #LMFAO +Check out this video on YouTube: +Check out this video on YouTube: +Check out this video on YouTube: +Check out this video on YouTube: +Check out this video on YouTube: +not 2 million view anymore :)) +never gets old +Check out this video on YouTube:الإعلانات





لل +Check out this playlist on YouTube: +man check out the raps on my channel im better rapper than these nigger fools +Check out this video on YouTube: +Check out: My Hood Doh, by Flixter Nossnevs +subscribe to my chanell +Check out this playlist on YouTube: +i love this song so much!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +Subscribe I'll subscribe back +i'm watching this on summer 2015 +Check out this video on YouTube: +What's with the guys jacket? 1 sleeve and a sleeveless arm +LMFAO!!!!!!!! +LMFAO is CRAZY DOPE!!! CHeck out my music on my channel if you have a minute, it would mean a lot. Much love!! +:) +Love this soooooooooooooooooooooooooooooooooooooooooooooooooo much +I am going to blow my mind +Gooooood +Check out this playlist on YouTube:a +Check out this playlist on YouTube: +very good song:) +I lovee it ♥ +3m subscribers but look at the views its 700 million wtf :P +Check out this video on YouTube: +Check out this video on YouTube:jjiwajwkajajqjaubkm +Party Rock
 +This is so cool,why haven't I heard this before? +You are the music hero😍😎 +mindblowing dance.,.,.superbbb song +just :( superr!!! +Who df is Lauren Bennett.. +Who knows the name of that girl?.. and that one.. and that one... +ALL SCHOOL DROP OUTS I KNEW AS FRIENDS BEFORE THEY DECIDED TO DROP SCHOOL THINK THERE IS NO NEED FOR AN ID CARD OR A CERTIFICATION TO PROVE YOU ARE AN EDUCATED CLEAN IN CRIMINAL RECORD TALENTED PERSON TO WORK IN ANY ENTERTAINMENT FIELD WORLDWIDE. THEY THINK THEY COULD BE RICH ENTERTAINERS BY CONSOLIDATING WITH ACTORS / ACTRESSES AS WELL AS SINGERS FOR A SHARE OF PROFIT(S). +like this comment if you're watching this video when big bang happened
i do +if watching in 2015 subscribe to +SuperMarioLogan  +like this comment if your watching in 2015 or 2016 +Good +Why sooooo many downs? +🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨
NOW THAT I HAVE YOUR ATTENTION!!! 🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨SUBSCRIBE TO MY CHANNEL!!!
🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨
GRACIAS!💋
🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨 +this song is fu cking awesom!!!!!!! +Lets party +subscribe to my channel yo - DJ Feelz +More views than nikki minaj Anaconda +Check out this video on YouTube: + are  there  people who like  this shit? hahahahah :P
this isn't even real music.......... it's computer-based music.....
well done music industry..... +Nezo and Ed
Like&share this page on facebook please  +Good times.  +old and good song +XD I WAS GOING CRAZY FUCKIN CRAZY WATCHIN THIS BRAH +LIKE AND SUBSCRIBE +Check out this video on YouTube: +lol so funny love it +2:19 best part +Check out this video on YouTube: +Every day I'm Shuffling ! +Check out this video on YouTube: +Check the shit out on my channel


SUBSCRIBE YOU WILL LIKE IT +Check out this video on YouTube:it is a old track but it still bad +Awesome +Come subscribe +Almost 1 billion views, nice. +wait I SAW A KID NOT KIDDING +everyday I'm shufflin +Check out this playlist on YouTube:

 +Omg +omg +Check out this video on YouTube: +Check out this playlist on YouTube:hbbhhhgh +Who else saw jesses dancing sorry if I spelled it wrong peace✌ +everyday I'm shufflin +hi everyone this is cool check out sexy and i know it +Check out this video on YouTube:hjalp +good party +I miss this song. 😢 +:3 +my favorite song +Check out this playlist on YouTube: +I could finally do the spongebob but I started yesterday XD +Who's watching in 2015 Subscribe for me ! +shuffle!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +Check out this video on YouTube: +Check out this video on YouTube: +In my head this is like 2 years ago.. Time FLIES +Party rock! XD +share your thoughts +Take a look at this video on YouTub
You +I miss when people dressed like this. +This Will Always Be My Favorite Song
But My Favorite Part Is 3:40-4:11 In The Video  +cooooooooooooolllllllllll +Check out this video on YouTube: +awesome +subscribe +Check out this video on YouTube:fb i +HOW MANY THUMBS UP FOR LOUIS SAVING THE DAY!?!? +Check out this playlist on YouTube:👿👳👳👳👳👳 +1000000000 views. +Check out this video on YouTube: +Please subscribe to my channel!Thanks! +Check out this video on YouTube: +this is increidebl +JUST DANCE 3 😂😂😂 +Wow I love it  +everyday i'm subscribe +Check out this video on YouTube: +Check out this video on YouTube: +Like this comment, guys i just started up a new channel if i can get 200 subscribers by tonight ill do a $20 paypal giveaway like this comment so your friends can see it or others and they can also be entered GO !!! +i want to be that robot guy... +Anyone else think this video theme is a bit of an insult to 28 days later?  +subscribers please` +OOOOO SHUFFLLLLLLLLLLLLLLLLLLLLLLINNNNN +Party rock anthem is love,party rock anthem is life +SERIOUSLY HOW DID THEY COME UP WITH THAT BEAT IT IS INSANELY GOOD HOLY FUCK +Dance :) +cool +2015!! LLIKEE!! +LMFAO - Party Rock Anthem ft. Lauren Bennett, GoonRock. +Check out this video on YouTube: +Check out this video on YouTube: +Check out this video on YouTube: +Please become my first subscriber.  Thank you. +Laughing My Fucking Ass Off!!! +i like this steps... +give it a like +Dear friends please subscribe to my channel I will be very glad to see You virucide ;-) +Check out this video on YouTube: +love this song +Check out our app to solve all your party/drunk problems! 
https://play.google.com/store/apps/details?id=vn.ibit.AppLocker&hl=en +PLEASE DON'T LIKE THIS COMMENT IF YOU ARE WATCHING IN 2015!!!!!!!!!!! +The best song ever! +The best Song i saw ❤️❤️❤️❤️❤️❤️❤️❤️😍😍😍😍😍😍😍😘😘😘😘😘😘😘😘 +Party rock +I learned the shuffle because of them +Tuto to subscribe to my channel because you should sign up for 17 l please thank you I'd do anything for you to sign up a lot of good video I usually do! +every bady yust have a good time +Best for partying  +Take a look at this video on YouTube: +Love your song makes me happy +why does the world not shuffle??? +Why did they stop their career in music? This music rocks ! +Why do I feel like as if Gangnam style copied their song from this?! +5th most viewed video.. i guess +Like this comment if you are watching on a phone +At 500 subscribers i'm sky diving help me reach my goal <3
Trust me, i'm a doctor.  :) +Check out this video on YouTube: +This is my favorite song ever love this Party Rock It Everybody!!!! +Love this song makes me wanna dance!  +I love this song so much +THUMBS UP FOR ROBO GUY BABY +Very Nice ! +EVERYONE PLEASE SUBSCRIBE TO MY CHANNEL OR CAN YOU ALL JUST GO LOOK AT MY VIDEOS  +like this comment please +still.. this reminds me of 1 years back when i was do shuffle everyday +when i see this back in 2015 i ask myself how people got to like this song. seems like Gangnam style copied this style though, might just be me but yea +Like this comment if you still jam out to this song after 4 years  +LIKKEE +Check out this video on YouTube: +this video has 800+m views
and the channel got 3m subscribers +hi guys please check out my vids , i will promos to subscribe to you to +Check out this video on YouTube: +Omg can this be the first video on YouTube to hit 1 billion views like this comment of you agree. +Check out this video on YouTube: +Party rock due and duel +Check out this video on YouTube: +subscribe me plzzzzzzz plzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz +fucking love it omg :v +Like this comment for no reason +Need money ? check my channel and subscribe,soon will post how to get it ) +This song is just really fun  +Check out this playlist on YouTube: +I like so much this music, good  +Subscribe +░░░░░░░/\░░░░░▄▐
░░░░░░/     \░░░▄██▄
░░░░░/  (o)   \░░░░░▀█▄
░░░░/             \░░░░░░▀█▄
░░░/__   \   ░▄▄▄▄▄▀▀
░░░░▄▄▄██▀▀▀▀
░░░█▀▄▄▄█░▀▀       YOU HAVE BEEN SPOOKED BY THE SPOOKINATI
░░░▌░▄▄▄▐▌▀▀▀
▄░▐░░░▄▄░█░▀▀    SHARE THIS TO 666 PEOPLE TO BE UNSPOOKED 
▀█▌░░░▄░▀█▀░▀ 
░░░░░░░▄▄▐▌▄▄
░░░░░░░▀███▀█░▄
░░░░░░▐▌▀▄▀▄▀▐▄
░░░░░░▐▀░░░░░░▐▌
░░░░░░█░░░░░░░░█
░░░░░▐▌░░░░░░░░░█
░░░░░█░░░░░░░░░░▐▌ +Check out this video on YouTube: I  +No one makes me wanna party like LMFAO does... I just wanna rage every time one of these songs comes on. The only other band that does that is "On the Rocks Inc." those kids know how to party +you cant stop the shuffle +Subscribe My Channel +Abomination! Subscribe if you agree :| party here in my channel. cool lights. +Like this comment for no reason +Hey guys subscribe to my chanel and i will subscribe back and like all your vids :)

 +Wow;) +Check out this video on YouTube: +2015
I like video +Check out this video on YouTube: +Very Nice !!!
Yeah Fucking. +Ahhh back when my life didn't suck... +Its funny that Mahogany is there lmao, I actually didn't know that her brother and uncle are part of LMFAO +Check out my music niggas +SUBSCRIBE MY CHANNEL PLEASE LOL PRO PLAYS) +Yeah! Let's start the party! +Can i get views and subscribers for no reason? 😅 +Check out this funny video "Cereal Box Knocks out Baby" on my channel. +Check out this video on YouTube: +Check out this video on YouTube: +I love this song so much +Best Music Ever!!! +Super awesome video
 +Check out this video on YouTube: +Check out this playlist on YouTube: +This song is just insane.
Do you dance listening to this song?( i do, lol) +Remeber when this song was good +like if ur watchin in 90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000                                                                                              1 +Way was their a guy warring a robot head. +Dang Dat little kid gat moves +Check out this video on YouTube: +I came here because of Vanoss. +I know it old song but (like) if you watching in 2015 +Check out this video on YouTube:opponents mm



--•[••••=====++¥¥£££
 +Check out this video on YouTube: +Check out this video on YouTube: +This Song is AWESOME!!!! +Check out this video on YouTube: +HOW DO YOU PUT A PICTURE FOR YOUR IMAGE THINGIE?!?! +subscribe to +SuperMarioLogan  if you thot the robot dudes r epic and awsome +Support the fight for your 4th amendment right to privacy in your home and business. Stop the NSA spying on Americans with the un Patriot Act Renewal. Rand Paul has spent 10.5 hours on the Senate floor in a Protest and Filibuster fighting for our  Constitution that this Nation is founded on. Join the fight at Rand Paul dot com. Spread The Word. We Have Someone That Cares About Our Nation.  Email your Senators, Congress men and women, tell them to support Rand. Tell the news to support Rand too. Senator Rand Paul was up until 1:00 am this morning fighting for our Constitution. +Check out this video on YouTube: +like the songs +Love this song makes me wanna dance!  +The best song ever! +I hate it when Laura Bennett comes in +Check out this video on YouTube: +Love this song makes me wanna dance!  +Ummm... I just hit 1k subscribers. I make Minecraft videos. Help me out by checking me out? +Memories +WELL THIS DUDES FADED THE FUCK OUT! +I remember when this used to be so popular all around at the time.
I still love it. +sorry to all my haters












for party rock en +Check out this video on YouTube:



 +Check out this playlist on YouTube:

 +White people are going extinct for more information subscribe to my channel or search for videos on "white genocide" thank you +EVERYONE PLEASE GO SUBSCRIBE TO MY CHANNEL OR JUST LOON AT MY VIDEOS +Check out this video on YouTube: +Very good! Like! :D +😼👍😏 Like This Comment 😏👍😼 +Check out this video on YouTube: +SUBSCRIBE me. if you do that leave your name so i can subs back  +Check out this playlist on YouTube:a +Check out Melbourne shuffle, everybody! +Check out this video on YouTube: +Check out my dance videos!! You won't be disappointed!! #KingLoTheDancer +Looooooooove this song!!!!!!!!!:)))))) +Love these guys, love the song! +Check out this video on YouTu +LMFAO best songs ever! +Check out this video on YouTube: +Check out this video on YouTube: +love lmfao party rockin keep it going +Check out this video on YouTube: +Awsome
 +cool cool cool cool cool cool cool +Remeber the good ol' days when songs weren't about butts.  +hey guys im 17 years old remixer and producer and i want you guys to help me checking my videos i am sure you will love those music if you love them then subscribe so you will know more about me:) +Party time! +Man this song really does get in your bones - one minute I'm nearly dosing off to sleep - the next I'm shuffling like crazy with hot feet XD +This was such an epic track. And the video is awesome! +Check out this video on YouTube: +Check out this video on YouTube: +https://m.freemyapps.com/share/url/505b0232 +Subscribe if you are watching in 2015 +i was born in the wrong generation +Hey ! Subscribe  to me for the peace in the world ! ♥ +Check out this video on YouTube: +Check out this video on YouTube: +pleas subscribe on me for ps4 games video 
______________________________
if you have som tips so contact me on kik or skype
______________________________
Kik: pander26
Skype: sander.nicolaysen2
______________________
pleas subscribe on me and Kashoo Gaming +SUBSCRIBE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +that time in 2011 where this shirt was cool +music yeah +I'm A SUBSCRIBER +LMFAO IS THE BEST +wowwwwwwwwwwwwwwwwwwwwwwwwwwwwww +Check out this playlist on YouTube: +I shuffled while listening to this song. THE ILLNESS IS SPREADING!! +HAHAA THIS DANCE IS TIGHTTTT

I know y'all "…ain't got time for MY demo man"  but check out some of my stuff

Slappers on slappers on bangers! Click that link below to peep game! ENJOY. 

https://soundcloud.com/rocc-steady/wave-emoji-prod-by-nippylongbottom-cyber-punk +Beautiful song +Check out this playlist on YouTube: +Check out this video on YouTube: +LMFAO! +Check out this video on YouTube:
Gotta dance and just have a blast every time I hear this song !!!! Just ❥love❥ it!
 +I like it
 +Best song ever!!!! +Like this in 2015! :D +Check out this playlist on YouTube:🍴🍴🏄🏄🏄🍴🏄🏄🏄🏄🏊🏊🏊🏊🍴🍴🍴🍴🍴🏂🏂🏂🏂🏂🏆🍸🍸🍸🍸🏆🍻🍗🍵🍟🍟🍟🍟🍴🍕🍕🍕🍕🍕🍕🍕🍕🍕🍕🍕🍕☕️🎣🎣☕️🍕🍕🎣🎣🎣🎣🎣🎣🎣🎣🎣🎣☕️🎣🍕🍔🍔🎣🎣☕️🎣🍹🍹🏂🏂🍹🎿🏆 +
Please help me get 100 subscribers by the end of the night. Thx +I just wanna see how many people like this comment. I'll give it a month or so :) +We can have a party next share +Check out this playlist on YouTube: +want a sub? tell me about your channel and i will subscribe (with a couple exceptions) +And i´m Shufflin still today :D +Thumbs up if FE-FE-FE-FE-FEGELEIN brought u here +Loves it +Likeeee +Party Rock....lol...who wants to shuffle!!! +http://www.gofundme.com/Helpmypitbull Can you please donate to help my pitbull PLEASE!!! I just need 50 dollars to take it to the vet!!! +Check out this video on YouTube: +Like this comment for no reason. +Check out this video on YouTube:  +Ah. Good old times (: +wierd but funny +Thumbs up if you watched it in 2011 +Help me get 10000000 subscribers by tomorrow!










(Joking don't get butt hurt)  +Subscribe to my channel ! +Hello from Russia comes to the channel subscribe +NICE GIRL :D +Let get this video to one billion views +Check out this video on YouTube:lo +Its 2015 and still shuffling to this song🎶🎵🎧 +Nice +BEST PARTY SONG LITERALLY PARTY ROCK IS IN THE HOUSEE TONIGHT!!!! +Check out this video on YouTube: +Lol check out my chanell and subscribe please i want 5000 subs thats it im nearly their now +Check out this video on YouTube:
 +like this comment if ur watching this on 2015  +Hey plz check out my music video. Thanks!! :-) +Its funny because I listen to rock and death metal. But i like this. +Yo like what up this song is fricking beast anywon herd the see mee rollin or I woke up in a new Buggti check out nuketown rap I was shooting in it see my nice quick scoping things training for faze adoult freind sang I was at my freinds house doing it we just had the rap going and we were doing fun things  +NICE :3 +2015 <3 +Check out this video on YouTube: +I like this song
 +Good video +Check out this video on YouTube: +OH SHIT THIS WAS UPLOADED ON MY BIRTHDAY, finally my birthday isnt a curse, because on this day maylaysia airlines went missing, so i thought my birthday was a curse xD +Do not like this comment if you are not watching in 2004 +Check out this playlist on YouTube: I tried +Men stop being naive idiots believing in love and believing that women actually respect you.  Want a more fulfilling drama fee life? Check out MGTOW. There are many channels here on YouTube that you can chose from which will give you all the information needed. (Caution: Not for men who enjoy being disposable providers of utility) +LIKE AND SUBSCRIB IF YOU WATCH IN 2015 ;) +the views...... They're over 90,000!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +https://m.freemyapps.com/share/url/10b35481 +EVERYONE PLEASE SUBSCRIBE TO MY CHANNEL OR CAN YOU ALL JUST GO LOOK AT MY VIDEOS  +Check out my YouTube channel I can rap +this very good so I dance with some companions front of the whole school +5 years...  +Check out this playlist on YouTube: +Check out this playlist on YouTube: +Damn, this was everywhere +IIIIIIIIIII LOVE THIS SHAKE IT SONG OH SORRY EVERY SHAKE IT SONG I LIKE WATCH SUBSCRIBE AND NEVER UNLIKE BROOOOO!!!!!!!!!!! SHAKE IT UP +Check out this playlist on YouTube:pl +Check out this video on YouTube +Best song ever +Subscribe to my channel
Tweet & Follow me on twitter //therealterrell_
And I will follow you back 👀 +SUP GUS THIS IS A VIDEO FOR PEOPLE WHO LOVES PARTY ROCK SO THANKS FOR WATCHING AND PLEASE SUBSCRIBE:)!! +4 fucking years are fucking past so fucking fast fuck..... +Check out this video on YouTube: +I like how the robot shuffles he shuffles good +Party in da 🏠 tonight 👐👐👐👐👐👐 +check it out free stuff for watching videos and filling surveys

http://www.prizerebel.com/index.php?r=1446084 +Nice +this song is awesome. these guys are the best. love this video too its hilarious lol. im getting popular fast because i rap with meaning. thumbs up if you piss next to the water in the toilet so it doesnt make noise +CUTE  :) +Check out this video on YouTube:Qq +Hey guys, I'm a human.


But I don't want to be a human, I want to be a sexy fucking giraffe.


I already have the money for the surgery to elongate my spinal core, the surgery to change my skin pigment, and everything else! Like this post so others can root me on in my dream!!!!


Im fucking with you, I make music, check out my first song! #giraffebruuh +Check out this video on YouTube: +Youtube comments in a nut shell:

.First
.301 club
.Skip to 3:57 and close your eyes
.Advertisements
.like this comment for no reason
.Christianity arguements
.Other religious arguements
.Console wars
.#PCMASTERACE
.Trolls
."How is there 1 million views on the this video if theres online 10 people on earth/
.Complaints
.Pewdiepie fangirls
.Minecraft scrubs
./r/MontageParodies


AND ANY OTHER SHIT!! +Cool +Check out this video on YouTube: +awesome +please suscribe i am bored of 5 subscribers try to get it to 20! +Check out this video on YouTube: +Check out this video on YouTube: +Hey I'm a British youtuber!!
I upload Weekly!!
It would mean the world if you could subscribe!!
Thanks,Joyce!!
 +Best song ever made i swear :D i still hear even doe it old!! who else? +Check out this video on YouTube: +LMFAO - Party Rock Anthem ft. Lauren Bennett, Goo…: https://youtu.be/KQ6zr6kCPj8
BOX MAN GOT SOME MOVES! :D HE MAKES MEH SMILE +Omg it's going to have 1bi views! +Love this video and the song of course +Thumbs up if shrek is gay 👍 +Best song for ever💜💜😢
 +Never get old  +I like This Comment and do not kill :P +Check out this playlist on YouTube:m +Check out this video on YouTube:
 +okay, this should cover me for some time... Thumbs up if you're watching while youtube still exists. +lets get it to 1 BILLION +tension⤴︎⤴︎ +PARTY ROCK (8) ~ +Check out this video on YouTube: +Strong messages in every song I've heard. +Check out this video on YouTube: +great l subscribe +Check out this video on YouTube: +Check out this video on YouTube: +Wow justin Bieber is Better thats why when he buys medication he always shares with his half wited money alfred but sadly enough he is an attention hog with swamp ass and an eating disorder filled with sassy mice, and flaming hot cheetos that he can eat with the power of the samurman. +Check out this video on YouTube: +Hey check out my channel!!!! Please +i want to smack this year boy in to forever +super rihanna + subscribe to my feed +I love you!❤✨ +Hi everyone. We are a duo and we are starting to record freestyles and put them on youtube. If any of you could check it out and like/comment it would mean so much to us because we love doing this. We may not have the best recording equipment but if you listen to our lyrics and rhymes I think you'll like it. If you do then please subscribe and share because we love making these videos and we want you to like them as much as possible so feel free to comment and give us pointers! Thank you! +i love song :) +SUBSCRIBE TO MY CHANNEL X PLEASE!. SPARE +check out my new EM cover video trailer +I lovet +Rihana, Love Me. :( +Check out Berzerk video on my channel ! :D +She looks like Megan Fox 😂 xD!! +GUYS SHARE THIS VIDEO!!!!! HE must have 1.000.000.000 views Share on Facebook, groups, pages!! +im M.E.S an aspiring young rapper with high hopes. i know you will not click this link and check out my channel. you just dont want to. well its your choice. in fact you know what DONT CLICK +Almost a billion +Great song +You guys should check out this EXTRAORDINARY website called MONEYGQ.COM . You can make money online and start working from home today as I am! I am making over $3,000+ per month at MONEYGQ.COM ! Visit MONEYGQ.COM and check it out! Memory Ferirama Besloor Shame Eggmode Wazzasoft Sasaroo Reiltas Moderock Plifal Shorogyt Value Scale Qerrassa Qiameth Mogotrevo Hoppler Parede Yboiveth Drirathiel +I shared my first song "I Want You", and I hope you'll like it. Take a listen!✌️😊 https://youtu.be/-YfUY4gKr1c +https://www.facebook.com/groups/100877300245414/ +This past Christmas my dad passed away, to help me cope I picked up a pen and some paper and started to write. Little did I know nearly 9 months ago that it would bring me where i'm at today. Over 7k subscribers and 500k video views. I just wrote and released a song yesterday about a friend of mine who has tried to commit suicide several times, I can't promise you professionally produced music, but I can promise REAL lyrics. Just click on my picture. Thanks, and thumbs up so others may see? +EMINEM the best EVER. +LOVE TROP FORT VOTRE clip +Feels and emotions in this song...God damn +2015 but Im still listening to this! +The perfect example of abuse from husbands and the thing is I'm a feminist so I definitely agree with this song and well...if I see this someone's going to die! Just sayin. +Charlie from LOST +No-I hate The Way U LIe!! +Go check out eminem survival. +Check out this playlist on YouTube: +love the you lie the good +Every weekend a new lyric video of Eminem here VIEW LIKE SUBSCRIBE +Also check out D.j.j where do i go now and road to recovery +check out my Eminem & Kid Cudi M a s h up /watch?v=XYTcq5NzMuA +Look and shares my video please :D +Hey! I'm a 16 Year old rapper from Texas I don't rap "PMW" but I promise my music will NOT disappoint.. Search therealchrisking1 to find me and listen to my track "Memory Lane" I just released my 3RD mix-tape "Crown Me" and so far I've had nothing but good reviews about it. I'm not asking you to like or subscribe but just 1 view will help me catch my dream. and if you could leave a comment letting me know what you think it would be MUCH appreciated also. Thank you. +plese subscribe to me +check out my channel for rap and hip hop music +Eminem is idol for very people in España and Mexico or Latinoamerica +LOVE THIS SONG!!! +I love this-the talents of eminem and Skylar,works well together +SUBSCRIBE TO ME! I MAKE MUSIC! +RIHANNA - POUR IT UP (VINCENT T. REMIX) RIHANNA - POUR IT UP (VINCENT T. REMIX) RIHANNA - POUR IT UP (VINCENT T. REMIX) RIHANNA - POUR IT UP (VINCENT T. REMIX) RIHANNA - POUR IT UP (VINCENT T. REMIX) RIHANNA - POUR IT UP (VINCENT T. REMIX) RIHANNA - POUR IT UP (VINCENT T. REMIX) RIHANNA - POUR IT UP (VINCENT T. REMIX) RIHANNA - POUR IT UP (VINCENT T. REMIX) CLICK! SUBSCRIBE! +share and like this page to win a hand signed Rihanna photo!!! fb - Fans of Rihanna +Check out this playlist on YouTube: +Charlie, heroin will do that to you. +LOVE IT!!!!!!! +:D subscribe to me for daily vines +Check out this video on YouTube: +Wow this video almost has a billion views! Didn't know it was so popular  +Check out this video on YouTube


 +Share Eminem's Artist of the Year video so he can win. We could see a performance and acceptance speech. Like this comment so everyone can see. 2014 = Year of Eminem +#Awesome #Share #RT Eminem - Love The Way You Lie ft. Rihanna http://ow.ly/2zME8f +Check out this video on YouTube: +You guys should check out this EXTRAORDINARY website called ZONEPA.COM . You can make money online and start working from home today as I am! I am making over $3,000+ per month at ZONEPA.COM ! Visit Zonepa.com and check it out! Why does the view disclose the macho lift? Why does the letter frame the thundering cause? Why does the talk prevent the conscious memory? +Check out this video on YouTube: +Awesome song!,congratulations!!! +Do you need more instagram followers or photo likes? Check out IGBlast.com and get em in minutes! +I guss this song is one of my worst fears in life, to be with someone who abusive towered me and live with him....  +Subscribe To Mê Please Guys +Check out my channel for some lyricism..... +2008-2010 were the years for pop +Hey guys please just spent one minute for me:) im a singer from srilanka and im 18 year's old! SooO I LIKE TO BE GREAT SINGER will be a one day so i hope it would be happen in really my life. Just view my videos and rate it and let me know how is my voice please help us guys closer to living my dream:)! I really know you'd helped me who read this comment he/she can just understand my feeling ! Thanks guys lv u really much more! SUBSCRIBE IT MY CHANNEL AND ONECE AGAIN THANK U ! +Eminem and Rihanna sing the song very well. +I love your songs eminem your the rap god +could you guys please check out my channel for hiphop beats? +Eminem - Love the way you lie ♥ ♥ ♥ +YO GUYS SORRY IF THIS ANNOYS YOU!!! BUT CHECK OUT MY CHANNEL, AND LATEST VIDEO. A LIKE AND SUBSCRIBE WOULD BE NICE TOO!!!!!!! +adam b beats check out my page 2013 +check out my page ADAM B BEATS 2013 +:D +First they were fighting... Then they were making out... +CHECK OUT MY COVER OF LOVE THE WAY YOU LIE PLEASE!! +Almost to a billion :) +Check out this video on YouTube: +I lover this song +best song ever (y) +This song is about Rape and Cheating     









Basically..... +Hi loving it +eminem - RIHANNA +Omg! This guy sounds like an american professor green +Check out this video on YouTube: +Lol thats the guy from animal planet and lost. And the girl is megan fox i think hahah  +I agree they are just damn spammers. They suck. Im trying to do the same and get known. I know the feeling. I will help you out and leave likes and comments on your page. I hope you could do the same and maybe subscribe to me that would be awesome thanks +Hi I am from bangladesh 💜 +I'm subscribing to you just because your comment was that great. +eminem new song check out my videos +I like the Mmph version better +I hate rap and I like this song +I  love you Eminem +Hello to everyone! Please check out my video: /watch?v=2b4WyWpHi8c It takes just 2 minutes, hope I don't ask too much. If you can't help me just Like & Share the video please, so more people will see it. Thumbs UP, it would mean so much to me, maybe will make my dream come true. Thanks to everyone, GOD BLESS YOU ALL! +Don't love someone soo much, love the way u lie.. +Eminem rocks! + Hey youtubers... {**}I really appreciate all of you who took the time, to read this, I am just a 19 year old boy who wants to be a successful musician in the music world. {**}I dont have any money to advertise my channel, {**}If you could just visit my channel, comment on my video or subscribe, that would be great.... {**}It will only be few seconds of your life..... {**}Thank u to all the people who just gave me a chance l really appreciate it +this song is better then monster by eminem +like please +You guys should check out this EXTRAORDINARY website called FIREPA.COM . You can make money online and start working from home today as I am! I am making over $3,000+ per month at FIREPA.COM ! Visit FIREPA.COM and check it out! Lake . Busyglide . Sasaroo . Sore . Chillpal . Axiomatic . Naperone . Mere . Undesirable . Agreeable . Encouraging . Imperfect . Roasted . Insidious . Modgone . Quickest . Trelod . Keen . Fresh . Economic . Bocilile +all u should go check out j rants vi about eminem +that is megan fox +Was that Meghan fox?? +Hey everyone, I'm Dakoda Bigelow. I'm a 17 year old singer, rapper and producer. I've gained over 490,000 views so far but I really need more views, likes and subscribers in order to make it. Check out my brand new music video for my song So Gone! Also check out my new song called Deaf. A few moments of your time would be greatly appreciated and you won't regret it :) Please thumbs this up so more people can see it! Thanks for the support. +Eminem is my insperasen and fav +beautiful song! +*for 90's rap fans* check out my Big Pun - 'Beware' cover! Likes n comments very much appreciated! +Subscribe me Secret videos :D +❤❤❤❤❤❤❤ +Who is still watching in 2015 +Really good song .
you know love song song. +This song/video is such a trigger but it's just so good... +hey guys i know you wanna skip over this but please take a chance and check out my music I'm a young up and coming rapper with a big dream and i appreciate constructive critisism. so please have a look thank you for your time +Still listening,still same pleasure +So freaking sad... +Hello. I only made ONE Eminem song on my channel. Could you guys just put A LIKE on it please? Don't need to subscribe. Thanks. +Media is Evil! Please see and share: W W W. THE FARRELL REPORT. NET Top Ex UK Police Intelligence Analyst turned Whistleblower Tony Farrell exposes a horrific monstrous cover-up perpetrated by criminals operating crimes from inside Mainstream Entertainment and Media Law firms. Beware protect your children!! These devils brutally target innocent people. These are the real criminals linked to London's 7/7 attacks 2005. MUST SEE AND MAKE VIRAL!!! Also see UK Column video on 31st January 2013. +is that megan fox x:D? +do you guys know, there's a part two of this song! :D +Hey Go To My Channel Check Out My Dongs Thanks YouTuber's +You guys should check out this EXTRAORDINARY website called MONEYGQ.COM . You can make money online and start working from home today as I am! I am making over $3,000+ per month at MONEYGQ.COM ! Visit MONEYGQ.COM and check it out! When does the flimsy slip facilitate the manager? How does the noise set goals the anxious regret? How does the actually loss retrieve the smile? +Check out this video on YouTube: +Like & Subscribe /watch?v=5tu9gN1l310 +Is that girl is Megan fox  +amazing song +Sick Music for sick females +You guys should check out this EXTRAORDINARY website called ZONEPA.COM . You can make money online and start working from home today as I am! I am making over $3,000+ per month at ZONEPA.COM ! Visit Zonepa.com and check it out! How does the war illustrate the exclusive space? The mountain refers the helpless death. The tax reviews the special music. ++447935454150 lovely girl talk to me xxx +We need to get this to 1 Billion Views!! +Fuck you Eminem +Charlie got off the island and dated Megan Fox? b-but what about claire? +Check Out The New Hot Video By Dante B Called Riled Up +wtf. subscribe my channel thanx ;) +Please check out my New Song (MUSIC VIDEO) AD - Dont Play +awesome +Go check out my rapping video called Four Wheels please ❤️ +this is the 4th most watched video on youtube. and hes the 21 most subscribed channel on youtube, just recentley surpassing justing bieber and is less then 1,00 subs away from beating taylor swift +Please check out my New Song (Music Video) AD - Don't Play +I could hear this for years ;3 +YO GUYS IM 14 YEAR OLD RAPPER JUST STARTED RAPPING SO PLEASE CHECK OUT MY SITE AND LEAVE FEEDBACK AND SUBSCRIBE ALSO LIKE THIS COMMENT SO MORE CAN SEE AND MAKE MY CHANNEL BIG ASWELL + I can't believe this I just now watched a brand new adult video clip with rihanna She has been screwing a black Basketball player Check out her video right here if you wish: crazy-celeb-news.eu.pn +No long paragraph just check out my song called "Fire". +Hello Brazil 😻✌💓😻👏 +Holy crap. 800,000,000 views?! +charlieee :DDDD (Those who saw Lost only will understand) +Looooved  +You guys should check out this EXTRAORDINARY website called MONEYGQ.COM . You can make money online and start working from home today as I am! I am making over $3,000+ per month at MONEYGQ.COM ! Visit MONEYGQ.COM and check it out! The cook officiates the tax. The walk judges the amount. Why does the ink train the valuable increase? +check out fantasy music right here -------> the1fantasy good music man. +hey guy if you can please SUBSCRIBE to my channel im a young dedicated rapper i post videos everyday to improve i write/perform/record/mix/edit/post everyday i do a verse everyday (16 bars)to improve i'm doing it for 365 days a whole year to improve right now i'm on day 46 if you guys can please like this comment so everyone can see it and follow me on my journey/watch me improve everyday SUBSCRIBE PLEASE I'm lyrical and i keep it real help me reach my dream,help me build a fan base,THANKS(: +Check Out LEANDRUS - PLAYTIME It's awesoooome !! +if eminem gets 1 penny per view he would have 600 million dollars +Check out this playlist on YouTube:chcfcvzfzfbvzdr +:) +Tell us the title so i can like and subscribe your music fgw please +Come check out our music channel! go check out the song "Love Me" by J.E.M.INI! If you do you are a very amazing person, thank you to all who check it out, if you don't check it out you're still an amazing person just for reading this post +Alright ladies, if you like this song, then check out John Rage.  He's a smoking hot rapper coming into the game.  He's not better than Eminem lyrically, but he's hotter. Hear some of his songs on my channel. +Check out this video on YouTube:

Love this song... It's all good will never go back that but I'll always remember the passion but never want to go back to being dysfunctional insanity....... Goal is to live happy not live insane.  +Check out this video on YouTube:

Eminem is amazing.  +I wish that guy wasn't so protective geeze +You guys should check out this EXTRAORDINARY website called ZONEPA.COM . You can make money online and start working from home today as I am! I am making over $3,000+ per month at ZONEPA.COM ! Visit Zonepa.com and check it out! Why does the answer rehabilitate the blushing limit? The push depreciateds the steel. How does the beautiful selection edit the range? +Made five years ago and people still don't understand the message this song is conveying. For those of you who don't, understand that domestic violence is no game, women like the fictional one in this video do exist. Living their lives with a man who abuses her, but still chooses to stay for not the love, but for the sexual feeling he gives her. This is quite sad, actually.  +▬▬▬▬▬▬▬▬▬▬ஜ۩۞۩ஜ▬▬▬▬▬▬▬▬ CHECK OUT MY CHANNEL ▬▬▬▬▬▬▬▬▬▬ஜ۩۞۩ஜ▬▬▬▬▬▬▬▬ +Usually guys I would vote people like this down but actually check out his channel, it reminds me of a smaller version of 8 mile. Give this guy a chance since everyone has to start somewhere! +Not bad +hay my is honesty wright i am 12year old i love your song thank you for makeing this song i love this song so much sometime harts can get breaken people kill they self or go cazzy i love you so much thanks 😱👏keep on go make sure you doing your dream is comeing rule good luck +CHECK OUT THESE LYRICS /watch?v=yUTTX04oyqQ +everyone come and check out the new GTA 5 Gameplay right Here : /watch?v=6_H0m5sAYho +yo I know nobody will probably even read this.. But I’m gonna type it any way because i hope at least one person will i'm a rapper with a dream. I know there's like 200k of those in this world but please check out my music and subscribe? if you want.? thanks, I would love nothing more than to have a decent following on youtube.. if anyone? reading this could press the "THUMBS UP" other people will see it just a simple button press? could make my dream come true =) Thank You +Love Song +Every collaboration between them, we know it will be number 1  +Fuck Eminem. Bieber is the best <3 +Check out this playlist on YouTube: +Rihanna is absolutely gorgeous in this video. +who the fuck cheats on megan fox +hello friends. i am a young 15 year old rapper trying to make something out of nothing..Please can you take a second of your life and check out my videos and help me reach my Dreams! GoD Bless YOU +e.e....everyone could check out my channel.. dundundunnn +Hey everyone check out my channel leave a like and subscribe please and if there is a song you want me to do post the name in the comments and I will get on to it(: Thanks +I love eminem <3 +Check out this video on YouTube: +2010? The time past so fast .. +What the hell this song is already five years old?? I remember when it first came out, this was my jam +That guy charley of lost TV show +Check out this video on YouTube: +1,000,000 VIEWS NEAR +Love this song +WE GO FOR 1,000,000,000 FOR EMINEM +I love this song, can't believe it was 5 years ago, it doesn't get old though +What nicei⛺♥♥♥♥ +My friends wife earns 4000DOLLARS a month ,you can do it do if you want to be a wwhore ,you can not get these type of wages for working from home on a PC taking surveys ...dont believe that shit,just because yahoo and other are taking their money does not mean they are LEGIT ..Please like this so the MSG gets thru to vulnerable people Like eminem used to be +/watch?v=aImbWbfQbzg watch and subscrible +Hi guys ! ! Check Out My Remixes ! ! Thanx You're Great ! ! SWAG ! ! +Megan Fox is gorg in this!! Eminem is truly the rap god :) +Anybody else here in 2015? +You guys should check out this EXTRAORDINARY website called MONEYGQ.COM . You can make money online and start working from home today as I am! I am making over $3,000+ per month at MONEYGQ.COM ! Visit MONEYGQ.COM and check it out! The metal drews the reflective effect. Why does the expansion intervene the hilarious bit? The sneeze witnesss the smoke. +is it bad that my realtionship is just like this lol +Check Out The New Hot Video By Dante B Called Riled Up +EMINEM FANS!!! - Check Out The New Song "FEELIN' GOOD" By J-D-P Just Click The "GHOSTPOET100" Link Above This Post Thank You All... +subscribed :) btw you have a good style keep it up brother :)) +Check out my videos guy! :) Hope you guys had a good laugh :D +super +Getting too 1billion views, holy moly.!!! +i love Rihanna 😍😍😍😍[♧from Thailand♧] +check out you tube keithlinscotts one word keithlinscotts you tube .com +Hello I'am from Palastine +SnEakiESTG Good Music. Hood Muzik Subscribe 2 My Channel. Thanks For The Support. SnEakiESTG SnEakiESTG Good Music. Hood Muzik Subscribe 2 My Channel. Thanks For The Support. SnEakiESTG +Me and my big sister like you +You guys should check out this EXTRAORDINARY website called ZONEPA.COM . You can make money online and start working from home today as I am! I am making over $3,000+ per month at ZONEPA.COM ! Visit Zonepa.com and check it out! How does the mammoth waste achieve the shock? How does the limit reduce the delicate minute? How does the meaty scale adapt the oil? +Who is watching in 2015 like +watch?v=ARkglzjQuP0 Like this comment and share this video so Em can win!!! #YTMA +This song is like an oreo, the black part is good but the white part is better +Hey, it's Charlie from Lost +I love music +yo I know nobody will probably even read this.. but, Imma type it any way because i hope at least one person will i'm a rapper with a dream. I know there's like 200k of those in this world but please check out my music and subscribe? if you want.? thanks, I would love nothing more than to have a decent following on youtube.. if anyone? reading this could press the "THUMBS UP" other people will see it just a simple button press? could make my dream come true =) Thank You +watch youtube video "EMINEM -YTMA artist of the year" plz share to vote!!! +share and like this page to win a hand signed Rihanna photo!!! fb - Fans of Rihanna +OMG that looks just like a piece of the mirror of harry potter and the deathly hallows.
Either that house. (sirius black) +i hate rap +Thumbs up if you listen this in 2015. +Check out this video on YouTube: #Eminem #Lovethewayyoulie #RapGod #King  +Check out this video on YouTube: +EVERYONE GO AND SHARE youtu be/ARkglzjQuP0 ON FB,TWITTER,G+ TO VOTE FOR EMINEM TO BECOME ARTIST OF THE YEAR ON FIRST EVER YOUTUBE MUSIC AWARDS !!! AND GET THIS METHOD TO CHEAT AT INTERNET ROULETTE OUT OF EMINEMS VIDEO ! SHADY ARTIST OF THE YEAR ! +2010:( +like this comment then type 1337 +Best. Song. EVER 🙌 +COME SUBSCRIBE TO MY CHANNEL! ;-) PLEASE!! +Check out this playlist on YouTube: +You guys should check out this EXTRAORDINARY website called MONEYGQ.COM . You can make money online and start working from home today as I am! I am making over $3,000+ per month at MONEYGQ.COM ! Visit MONEYGQ.COM and check it out! Why does the innocent woman prioritize the desire? The flight searchs the sad polish. When does the tax zip the omniscient record? +LADIES!!! ----->> If you have a broken heart or you just want to understand guys better you should check out this underground book called The Power of the Pussy on AMAZON. Best book ever for us girls! Oh...and just a warning it's for 18 and over...lol +Check Out The New Hot Video By Dante B Called Riled Up +Hi Guys im an Upcoming Rapper if you could check out my channel and tell me what you think maybe subscribe or like i would really appreciate it all HATERS are welcome to :) thanks +so many comments. +subscribe to my channel who can +Charlie from Lost! +Eminem best rapper all the time +Okay trust me I'm doing a favor. You NEED to check out this guy named Columbus Nelson on YouTube. +sorry but eminmem is a worthless wife beating bastard +You guys should check out this EXTRAORDINARY website called ZONEPA.COM . You can make money online and start working from home today as I am! I am making over $3,000+ per month at ZONEPA.COM ! Visit Zonepa.com and check it out! How does the burst render the symptomatic bite? The knowledge briefs the narrow thought. How does the eager sky transmit the crush? +Every single one of his songs brings me back to place I can never go back to and it hurts so bad inside + Eminem is the king of rap Micheal Jackson is the king of pop If you also wanna go hard and wanna be the person of first class fame just check out Authenticviews*com and be famous just within days !! yO ~ + HI IM 14 YEAR RAPPER SUPPORT ME GUY AND CHECK OUT MY CHANNEL AND CHECK OUT MY SONG YOU MIGHT LIKE IT ALSO FOLLOW ME IN TWITTER @McAshim for follow back. +CHECK OUT THIS DOPE CHANNEL! phenomenallyricshere CHECK OUT THIS DOPE CHANNEL! phenomenallyricshere CHECK OUT THIS DOPE CHANNEL! phenomenallyricshere CHECK OUT THIS DOPE CHANNEL! phenomenallyricshere CHECK OUT THIS DOPE CHANNEL! phenomenallyricshere CHECK OUT THIS DOPE CHANNEL! phenomenallyricshere CHECK OUT THIS DOPE CHANNEL! phenomenallyricshere CHECK OUT THIS DOPE CHANNEL! phenomenallyricshere CHECK OUT THIS DOPE CHANNEL! phenomenallyricshere +I love this song sooooooooooooooo much +Almost 1 billion +is that megan fox? +Check Out The New Hot Video By Dante B Called Riled Up +Love you +Check out my channel to see Rihanna short mix by me :) +Lemme Top Comments Please!! +Eminem is the greatest artist to ever touch the mic. +Dress like Rihanna at kpopcity.net - The largest discount fashion store in the world! Check out our "Hollywood Collection" to dress like all your favourite stars! Dress like Rihanna at kpopcity.net - The largest discount fashion store in the world! Check out our "Hollywood Collection" to dress like all your favourite stars! +You guys should check out this EXTRAORDINARY website called MONEYGQ.COM . You can make money online and start working from home today as I am! I am making over $3,000+ per month at MONEYGQ.COM ! Visit MONEYGQ.COM and check it out! Lake . Ignorant . Wavefire . Reiltas . Astauand . Skizzle . Jovaphile . Swooflia . Grynn . Excellent . Slimy . Gabby . Nalpure . Lucky . Glozzom . Depressed . Better . Deep . Sinpad . Stereotyped . Toximble +Never gets old best song ever ❤ +CHECK OUT MY YOUTUBE VIDEOS FOR FUNNY AND COOL RAP +I love this song up to the moon >3 you are Rocks! +tryna work with some rappers check out the ones i already have on my channel +awesome song ever +CHECK OUT MY MUSIC VIDEO ON MY CHANEL!!! +i love this song +You guys should check out this EXTRAORDINARY website called ZONEPA.COM . You can make money online and start working from home today as I am! I am making over $3,000+ per month at ZONEPA.COM ! Visit Zonepa.com and check it out! The loud authority improves the canvas. When does the mother repair the uppity learning? The substantial cook derives the harbor. +So he's admitting he killed his girlfriend??? +Help me get 50 subs please  +You exactly who u want to be,watching your favourite rappers on tv +Hello I'm from Bulgaria +fav. +Check Out The New Hot Video By Dante B Called Riled Up +hahahahah ♥♥♥♥ :D like vines ? Subscribe to me for daily vines +This video is kinda close to 1 million views
 +You guys should check out this EXTRAORDINARY website called ZONEPA.COM . You can make money online and start working from home today as I am! I am making over $3,000+ per month at ZONEPA.COM ! Visit Zonepa.com and check it out! The jelly activates the reflective distribution. The normal top synthesizes the opinion. The victorious plant entertains the language. +Eminem et Rihana trop belle chanson + Subscribe and like my video please +Is that Charlie from lost? +Love +subscribe me if u love eminem +I love this song +Is that Megan Fox? + Check out my SEXY VIDEO :* +love the way you lie featuring rhianna, hes an awesome rapper!!! shes an awesome singer!!! +Hay dakota u earned a subscribee +Check out this video on YouTube: +▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌ FACEBOOK PASSWORD HACK 2013! facebook-pass-hack2013.blogspot.com ONLY 100% WORKING SOFTWARE FOR HACKING ANY FACEBOOK PASSWORD! It's FREE for download and breaks any password in 10-15 minutes! 100% virus free! For details and FREE DOWNLOAD please visit facebook-pass-hack2013.blogspot.com ▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌ +CHECK OUT THIS NEW VIDEO I MADE CALLED "WE LOVE MIND MASTER IT", THANK U SO MUCH +if you need youtube subscriber mail hermann buchmair on fb +This guy win dollars sleeping... m m m he loves the planet its full of RETARDS +some classsic :)))) +I like this song very much +Rihanna looks so beautiful with red hair ;) +I personally have never been in a abusive relationship. I probably never will. I don't hit women. Mom has my dad used to hit my mom before he left. I can relate I'm writing about one at the moment subscribe to hear it. EVERY fan counts. +hey its M.E.S here I'm a young up and coming rapper and i wanna get my music heard i know spam wont get me fame. but at the moment i got no way of getting a little attention so please do me a favour and check out my channel and drop a sub if you enjoy yourself. im just getting started so i really appreciate those who take time to leave constructive criticism i already got 200 subscribers and 4000 views on my first vid ive been told i have potential +this song is NICE +Aye homies check out our remix to 50 Cent Your Life Is On The Line we just started our youtube channel and we are all ways working hard, give us some feed back on our latest song on what you guys think if you like show support. +eminem is a ginius stop! +This video deserves 1B views!!! +song is bad +He gets more views but has less subscribers lol +hey guys if you guys can please SUBSCRIBE to my channel ,i'm a young rapper really dedicated i post a video everyday ,i post a verse (16 bars)(part of a song)everyday to improve i'm doing this for 365 days ,right now i'm on day 41 i'm doing it for a whole year without missing one day if you guys can please SUBSCRIBE and follow me on my journey to my dream watch me improve, it really means a lot to me thank you (:, i won't let you down i promise(: i'm lyrical i keep it real! +check out eminem latest track survival if u didnt +CHECK OUT MY CHANNEL BOYS AND GIRLS ;) +Check out our cover of this song! +thumbs up if you think this should have 1 billion views +she is megan fox?because she is very similar +amazing song +i been working so hard for the past 60 days to improve i been writing/recording/mixing/performing 16 bars everyday im doing it for a whole year(365 days) today i'm on day 60 today i work so hard now i'm doing 2 verses everyday to improve i'm going all the way to 365 PLEASE SUBSCRIBE to my channel help me build a fan base ,watch me improve,help me get closer to my dream i'm lyrical and i keep it real i won't leave you down i promise(: PLEASE SUBSCRIBE please like this commment so people can see +dude check out psy +This great Warning will happen soon. ,0 +LneaDw26bFst76VHKJL8PxaEy6VMNlvmriUDTSFK6vY,Ali Paša,2013-09-26T22:28:17.047000,Croatia <3,0 +LneaDw26bFvkAHxpKEnM25FYWkyXthsUpri6JuQsZnU,G Belrus,2013-09-26T22:26:12.832000,Nice one,0 +LneaDw26bFtvZQt6JUEhasIEFRJG1exI_dVqdnQVPho,exode. comeback.,2013-09-26T22:23:00.710000,600m views.,0 +LneaDw26bFunOarAg71AwGU6TJO6aZDKFIUn_TZ1_HY,Muhammad Shaeel Abbas,2013-09-26T22:15:45.476000,Fuck off!,0 +LneaDw26bFt-oToUFj0z3vffLFNaxyKwZSIVQhiMx-E,Notorious Niko,2013-09-26T22:00:43.613000,"Hey guys im a 17yr old rapper trying to get exposure... I live in belgium where NO ONE speaks english so i have to resort to this gay SPAM... Check out my 2 latest tracks as they are probably my best.. Audio isnt the best but im gonna invest in some real equipment for my next track.. Please Thumbs this up so others can see.. or hey dont just check me out yourself and leave a response and a like :D Thanks in advance, you guys will be part of making my dream come TRUE -Notorious Niko +hey its M.E.S here I'm a young up and coming rapper and i wanna get my music heard i know spam wont get me fame. but at the moment i got no way of getting a little attention so please do me a favour and check out my channel and drop a sub if you enjoy yourself. im just getting started so i really appreciate those who take time to leave constructive criticism i already got 200 subscribers and 4000 views on my first vid ive been told i have potential +hey guys look im aware im spamming and it pisses people off but please take a moment to check out my music. im a young rapper and i love to do it and i just wanna share my music with more people just click my picture and then see if you like my stuff +You guys should check out this EXTRAORDINARY website called MONEYGQ.COM . You can make money online and start working from home today as I am! I am making over $3,000+ per month at MONEYGQ.COM ! Visit MONEYGQ.COM and check it out! Wazzasoft Industry Sertave Wind Tendency Order Humor Unelind Operation Feandra Chorenn Oleald Claster Nation Industry Roll Fuffapster Competition Ociramma Quality +Eminem THE BEST ! +Im gonna share a little ryhme canibus blows eminem away a quadrillion times especially about the categories of intelligent things in his mind. That he learned and rapped about and forgot before eminem spit his first ryme.luv ya linz 4e +Terrance. .thank you for serving our country. How do i "like you" or "subscribe"? +❤️❤️❤️ +goot +Rihanna is so beautiful and amazing ♥♥♥♥♥love her so much♥♥♥♥ forever RiRi fan ♥ ♥ ♥ ♥ ♥ ♥  +Aslamu Lykum... From Pakistan +Is that Charlie from lost?
 +Subscribe to me for clean Eminem! +SubScribe me pls EMİNEM FANS +WATCH MY VIDEOS AND SUBSCRIBE +You guys should check out this EXTRAORDINARY website called MONEYGQ.COM . You can make money online and start working from home today as I am! I am making over $3,000+ per month at MONEYGQ.COM ! Visit MONEYGQ.COM and check it out! Lake . Magnificent . Noodile . Unequaled . Moderock . Gogopo . Lulerain . Olielle . Zesty . Laughable . Accidental . Pepelexa . Delightful . Wiry . Toogit . Uncovered . Chesture . Woozy . Adhoc . Weak . Shallow +Finally someone shares the same opinion as me. I've tried really hard to like Gangnam style but I just can't, I don't even get the dance either. A song like this should be more popular than Gangnam Style, at least it makes sense. +Maybe no one will probably read this. But just in case you do Can You Put A "Thumbs Up "So Others Can See. I Just started rapping seriously (Type in Lunden- 1990 Video) just a simple button? can help my dreams come true. people will ignore this but if you don't can you listen and subscribe Thank you all God Bless. +check out our bands page on youtube killtheclockhd - check out some of our original songs including "your disguise" +This song is true because it is insane because boys will do this to a girl and it is not true that people say that a guy will never do it to a girl but boys YOU LIERS NOW STOP TREATING US GIRLS THIS WAY YOU ALL SUCK! +thumb up if you watching in 2015 and  you like it +i like the lyrics but not to music video +LOVE THE WAY YOU LIE .." +BR +Check out my channel please. +Love the video  +#1 song in world even in 2015 +Hey if you guys wouldnt mind...could you check out my boys and my music...we just made a real lyrical song...search DNA Andrew Guasch...I appreciate it. Leave some real feedback and keep Hip-Hop alive +I KNOW YOU MAY NOT WANT TO READ THIS BUT please do I'm 87 Cypher an 11 year old rapper I have skill people said .my stuff isn't as good as my new stuff but its good please check out my current songs comment and like thank you for reading rap is my life +Love😘❤💖 +this fucking song like a'n oreo the only white part is the good 1 +Check out Em's dope new song monster here: /watch?v=w6gkM-XNY2M MMLP2 FTW :) +You guys should check out this EXTRAORDINARY website called MONEYGQ.COM . You can make money online and start working from home today as I am! I am making over $3,000+ per month at MONEYGQ.COM ! Visit MONEYGQ.COM and check it out! Lake . Victorious . Luxuriant . Alcoholic . Responsible . Unbiased . Yoffa . Ociramma . Ociramma . Handsome . Arrowgance . Mizuxe . Boaconic . Sophisticated . Ill-fated . Spourmo . Chubby . Hioffpo . Probable . Singlewave +Take a look at this video on YouTube: +if u love rihanna subscribe me +good music +Love your songs
Supper cool
 +Check Out The New Hot Video By Dante B Called Riled Up +Hey? Everyone Please take a moment to read this. I work my ass off hoping to make it into the music industry but its hard to? get people to hear you when you don’t have money for advertisements and exposure I am a Young Artist who has dreams and goals like everybody else Please take 30 seconds and visit my channel You don’t have to like? me, just give me a chance to prove my talent Also, please take just 1 second of your life and Thumb this comment up it would be Super Helpful. +Best song +HUH HYUCK HYUCK IM SPECIAL WHO'S WATCHING THIS IN 2015 IM FROM AUSTRALIA OR SOMETHING GIVE ME ATTENTION PLEASE IM JUST A RAPPER WITH A DREAM IM GONNA SHARE THIS ON GOOGLE PLUS BECAUSE IM SO COOL. +it is wonderful +2015 and more.... +The boyfriend was Charlie from the TV show LOST  +no where near one of eminems actual best songs, real fans know what im talking about: Untitled, cold wind blows, welcome 2 hell, elevator, business, wtp, almost famous, 25 to life, rock bottom, no apologies, same song and dance, without me, way i am, toy soldiers, mosh and insane < songs off the top of my head that's better +Check out this video on YouTube: +I know that maybe no one will read this but PLEASE TYPE IN "deazy99" I'm a rapper with a dream. I know you must see like millions of those on here everyday but please check out my music and subscribe if you'd like thank you, i would love nothing more than to have a decent following on youtube from people if anyone reading this could give it a "THUMBS UP" because what some might see as just a simple button press could make my dream come true..thank you again for your time & may god bless you +Charlie from LOST? +Check out this video on YouTube: +┏━━━┓┏┓╋┏┓┏━━━┓┏━━━┓┏┓╋╋┏┓ ┃┏━┓┃┃┃╋┃┃┃┏━┓┃┗┓┏┓┃┃┗┓┏┛┃ ┃┗━━┓┃┗━┛┃┃┃╋┃┃╋┃┃┃┃┗┓┗┛┏ ┗━━┓┃┃┏━┓┃┃┗━┛┃╋┃┃┃┃╋┗┓┏┛ ┃┗━┛┃┃┃╋┃┃┃┏━┓┃┏┛┗┛┃╋╋┃┃ ┗━━━┛┗┛╋┗┛┗┛╋┗┛┗━━━┛╋╋┗┛ CHECK MY VIDEOS AND SUBSCRIBE AND LIKE PLZZ +hey guys i know its annoying getting spammed sorry bout that but please take a moment to check out my channel IM A RAPPER with DECENT skills. i want to share my music with more people so take a listen THUMBS UP SO MORE CAN SEE THIS +MEGAN FOX AND EMINEM TOGETHER IN A VIDEO  DOESNT GET BETTER THAN THAT +Check out this video on YouTube: http://www.youtube.com/user/jlimvuth ... Eminem ft Rihanna - Love the way you lie +He is good boy!!!
I am krean I like to eminem~!~ +How is this the most watched Eminem video, it beats not afraid?  +Cool +Hi I'm lil m !!! Check out love the way you lie!!!! My live performance and many others,,, videos and my own lyrics!!!!! Thanks +Check out this video on YouTube: +Eminem rap can be easy for a boy but I can do that +Fruits and vegetables give you longer lasting energy for weight loss. Check out youtube.com/user/36loseweight. +this is the 2nd most best song when im gone by m&m +I always end up coming back to this song
 +Rihanna and Eminem together are unstoppable. +Hello. İ am from Azerbaijan
 +You can not hate eminem and nirvana...trust me +Hey guys I'm 87 cypher im 11 years old and Rap is my life I recently made my second album desire ep . please take a moment to check out my album on YouTube thank you very much for reading every like comment and subscription counts +Come and check out my music!Im spamming on loads of videos but its just to try and get my music across to new people +I like it +I love the way you lie +••••►►My name is George and let me tell u EMINEM is my idol my inspiration, I've listen to him growing up, I never thou I would love rap this much But I thank him for helping me find my dream. So I rap now and make YouTube videos and yesterday I covered the song Mockingbird it's in my channel I worked really hard on it and it's one of my favorite songs of Him. So please go check it out and subscribe it would mean the world to me n sorry for the spam ◄◄••­•• don't hate I'm not Eminem +CHECK OUT THE NEW REMIX !!!
CLICK CLICK !! +You guys should check out this EXTRAORDINARY website called FIREPA.COM . You can make money online and start working from home today as I am! I am making over $3,000+ per month at FIREPA.COM ! Visit FIREPA.COM and check it out! Lake . Chillpal . Sturdy . Astauand . Johackle . Chorenn . Ethosien . Changeable . Public . Noxu . Ploosnar . Looplab . Hoppler . Delicious . False . Scitenoa . Locobot . Heartbreaking . Thirsty . Reminiscent +Love the way you lie II is nicer in my opinion. :D +I know that maybe no one will read this but PLEASE TYPE IN "deazy99" I'm a rapper with a dream. I know you must see like millions of those on here everyday but please check out my music and subscribe if you'd like thank you, i would love nothing more than to have a decent following on youtube from people if anyone reading this could give it a "THUMBS UP" because what some might see as just a simple button press could make my dream come true..thank you again for your time & may god bless you +Check out my remix to Tyga's - Molly ft. Whiz Khalifa Peace and love +Hey guys im a 17yr old rapper trying to get exposure... I live in belgium where NO ONE speaks english so i have to resort to this gay SPAM... Check out my 2 latest tracks as they are probably my best.. Audio isnt the best but im gonna invest in some real equipment for my next track.. Please Thumbs this up so others can see.. or hey dont just check me out yourself and leave a response and a like :D Thanks in advance, you guys will be part of making my dream come TRUE -Notorious Niko +check out my playlist +Check out this video on YouTube: +My favorite song 💗💗💗💗 +857.482.940 views AWESOME !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +please read this please! i am a country singer who is trying to become someone. so if you would like my videos please. just type... boys round here by country girl (only on computer) wasting all these tears e.t. please subscribe and like +best rap ever +5 years and i still dont get the music video help someone? +Simply rap god +EMINEM<3 
the best rapper ever<3 +love +I know that maybe no one will read this but PLEASE TYPE IN "deazy99" I'm a rapper with a dream. I know you must see like millions of those on here everyday but please check out my music and subscribe if you'd like thank you, i would love nothing more than to have a decent following on youtube from people if anyone reading this could give it a "THUMBS UP" because what some might see as just a simple button press could make my dream come true..thank you again for your time & may god bless you +ayyy can u guys please check out my rap video im 16 n im juss tryna get some love please chrck it out an thank u +Hey guys ready for more 87 Cyphers back check out my video on YouTube. NEW ALBUM IS OUT CHECK IT OUT. MORE MUSIC TOMORROW THANKS FOR READING +Amazing +Check out this video on YouTube: +adam b beats check out my page +DO YOU KNOW HOW SEAN KINGSTON GOT FAMOUS WHY DON'T YOU LOOK IT UP KID BEFORE YOUR SO HARD ON YOURSELF!! IF YOU HIT ME UP WITH A MESSAGE IN MY INBOX AND SUBSCRIBE I WILL CHECK OUT YOUR CHANNEL....SOUNDS FAIR TO ME. +still listening in 2015 +so spousal abusue cool that's great +like this comment then type 1337 +COFFEE ! LOVERS ! PLEASE ! READ ! Check out a song I wrote and sing on You Tube called COFFEE LOVA.Type COFFEE LOVA like I spell it while your already on You Tube hit enter.Then look for video titled COFFEE LOVA hit enter and BLAST ! OFF ! +For all you ladies out there...... Check out this link! You'll find the hottest hairstyles and the latest trends for women! Go to this site and you'll upgrade your hairstyles and fashion senses to a higher level! Don't get left behind! ---> goo.gl\BxrOSR +youtube.com/watch?v=2ASFn9ShgHk&feature=youtu.be please check out my song. looking for feedback, and supporters. +I cried this song bringing back some hard memories +Fire.. +hey its M.E.S here I'm a young up and coming rapper and i wanna get my music heard i know spam wont get me fame. but at the moment i got no way of getting a little attention so please do me a favour and check out my channel and drop a sub if you enjoy yourself. im just getting started so i really appreciate those who take time to leave constructive criticism i already got 200 subscribers and 4000 views on my first vid ive been told i have potential +You guys should check out this EXTRAORDINARY website called MONEYGQ.COM . You can make money online and start working from home today as I am! I am making over $3,000+ per month at MONEYGQ.COM ! Visit MONEYGQ.COM and check it out! Why does the wood photograph the husky breath? When does the act retain the delightful system? The rhythm fabricates the scintillating harbor. +do you want to make some easy money? check out my page tvcmcadavid.weebly . com dont miss out on this opportunity +hey its M.E.S here I'm a young up and coming rapper and i wanna get my music heard i know spam wont get me fame. but at the moment i got no way of getting a little attention so please do me a favour and check out my channel and drop a sub if you enjoy yourself. im just getting started so i really appreciate those who take time to leave constructive criticism i already got 200 subscribers and 4000 views on my first vid ive been told i have potential +Just gonna stand there and hear me cry .. +If you are a person that loves real music you should listen to "Cruz Supat"
He is awesome as fuck!!! Just as eminem used to be. +You guys should check out this EXTRAORDINARY website called MONEYGQ.COM . You can make money online and start working from home today as I am! I am making over $3,000+ per month at MONEYGQ.COM ! Visit MONEYGQ.COM and check it out! Lake . Waratel . Misty . Exciting . Swoquix . Acaer . Chillpal . Tupacase . Arrowgance . Lively . Hard . Idiotic . Bored . Cool . Ablaze . Crabby . Aloidia . Cheilith . Feandra . Useless . Ploosnar +I love it and my mom to +sorry for the spam yall I know it’s annoying. But if you can spare a min please check out the new track on my channel i'm a upcoming uk rapper.please come check out my songs u might like em. If not no worries I’m sorry for wastin your time. Even thumbs up to get more noticed will really help. peace yall +Check out this video on YouTube: +3 yrs ago I had a health scare but thankfully I’m okay. I realized I wasn’t living life to the fullest. Now I’m on a mission to do EVERYTHING I’ve always wanted to do. If you found out you were going to die tomorrow would you be happy with what you’ve accomplished or would you regret not doing certain things? Sorry for spamming I’m just trying to motivate people to do the things they’ve always wanted to. If you’re bored come see what I’ve done so far! Almost 1000 subscribers and I just started! +Check out this playlist on YouTube:  +*****PLEASE READ***** Hey everyone! I'm a 19 year old student who loves to sing. I record and upload covers on my channel. I would love if you could check them out. Just give me a chance. You don't have to thumbs up or subscribe (But you can if you like what your hear) Just listen. I'd really appreciate. ~THANK YOU for your time. ~ +my sister just received over 6,500 new #active youtube views Right now. The only thing she used was pimpmyviews. com +Check out this video on YouTube: +if u love rihanna subscribe me +Check out my channel for funny skits! Thanks! +HEY GUYS!!! ❤❤❤❤❤❤❤ BEFORE YOU IGNORE ME, PLEASE, GIVE ME A CHANCE! My name is Yuliya, I make COVERS. I started getting serious with Youtube September of 2013 because that’s Great challenge to myself. MY DREAM was to become a singer. Youtube helps me keep up! If you can please give me a chance and THUMBS THIS COMMENT UP so more people can see it. I swear I'll appreciate it. SUBSCRIBE PLEASE!!! ❤❤❤ LOVE YOU!!! ❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤ XOXO ❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤❤ +subscribe to my channel /watch?v=NxK32i0HkDs +Like eminen +Share this video.. This song can beat PSY - Gangnam Style! +PLEASE CHECK OUT MY VIDEO CALLED "WE LOVE MIND MASTER IT" THANKS +I don't understand this song, I have had the passion for women feel like im losing my mind but i don't understand the ideas of loving the the way someone lies..... +I like the music...but is anyone listening to the lyrics? + Check out my SEXY VIDEO :* +Check out my channel im 15 year old rapper! +one of the BEST SONGS in music history +CHECK OUT Eminem - Rap God LYRIC VIDEO +Haha, I can't believe how many kids listen to Eminem. You kids know that he does drugs and ends high in jail. I wonder why he never ended OD.  +Love the way you lie - Driveshaft +Anyone else notice that Megan Fox is in this video? +#2015 FUCK YEAH +is that Megan fox +subcribe to us an we will subscribe back +Check out this video on YouTube:but I'm not Rhinnah +Listen...Check out Andrew Guasch - Crazy, Sick Flow...I'm dope....that's all there is too it. If you like it Subscribe, if not, Ill be with Aftermath of TDE Soon enough. One Love, Peace. +best song +hot,hot +Check out our Channel for nice Beats!! +Check out my mummy chanel! +The rap: cool Rihanna: STTUUPID +I hope everyone is in good spirits I'm a hard working student who's also a passionate singer I look foward to the day when I can make my own music to share But for now I've just been doing covers. Check out my channel, I've done Covers of Miley Cyrus, Imagine Dragons, Lana Del Rey, Drake, Macklemore, Pink and countless others. Subscribe only if you want to. My goal isn't to become famous but to inspire FYI this isn't spamming, everyone has a right to freedom of speech. Thanks +Lil m !!!!! Check hi out!!!!! Does live the way you lie and many more ! Check it out!!! And subscribe +Please check out my youtube channel! Just uploaded my first youtube video please check it out, you will not regret it! diff --git a/notebooks/TREC/.ipynb_checkpoints/TREC-checkpoint.ipynb b/notebooks/TREC/.ipynb_checkpoints/TREC-checkpoint.ipynb new file mode 100644 index 0000000..c87c4cd --- /dev/null +++ b/notebooks/TREC/.ipynb_checkpoints/TREC-checkpoint.ipynb @@ -0,0 +1,614 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [], + "source": [ + "import sys\n", + "sys.path.append('../..')" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": {}, + "outputs": [], + "source": [ + "import re\n", + "import enum\n", + "import numpy as np\n", + "import pandas as pd\n", + "\n", + "from spear.labeling import labeling_function, LFSet, ABSTAIN, preprocessor\n", + "from examples.TREC.preprocessor import convert_to_lower" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [], + "source": [ + "label_map = {\"DESC\": \"DESCRIPTION\",\n", + " \"ENTY\": \"ENTITY\",\n", + " \"HUM\": \"HUMAN\",\n", + " \"ABBR\": \"ABBREVIATION\",\n", + " \"LOC\": \"LOCATION\",\n", + " \"NUM\": \"NUMERIC\"}\n", + "\n", + "class ClassLabels(enum.Enum):\n", + " DESCRIPTION = 0\n", + " ENTITY = 1\n", + " HUMAN = 2\n", + " ABBREVIATION = 3\n", + " LOCATION = 4\n", + " NUMERIC = 5" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": {}, + "outputs": [], + "source": [ + "def load_rules(file_name='rules.txt'):\n", + " rules = LFSet(\"TREC_LFS\")\n", + " \n", + " with open(file_name, 'r', encoding='latin1') as f:\n", + " i = 0\n", + " for line in f:\n", + " list_in = line.strip().split(\"\\t\")\n", + " label = ClassLabels[label_map[list_in[0]]]\n", + " pattern = list_in[1]\n", + " rule_name = \"rule\"+str(i)\n", + " \n", + " @labeling_function(name=rule_name,resources=dict(pattern=pattern,output=label),pre=[convert_to_lower],label=label)\n", + " def f(x,**kwargs):\n", + " result = re.findall(kwargs[\"pattern\"], x)\n", + " if result:\n", + " return kwargs[\"output\"]\n", + " else:\n", + " return ABSTAIN\n", + "\n", + " rules.add_lf(f)\n", + " i = i+1\n", + " return rules\n", + "\n", + "rules = load_rules()" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": {}, + "outputs": [], + "source": [ + "LABEL_DICT = {\"DESCRIPTION\": 0, \"ENTITY\": 1, \"HUMAN\": 2, \"ABBREVIATION\": 3, \"LOCATION\": 4, \"NUMERIC\": 5}\n", + "\n", + "def load_data(mode):\n", + " label_map = {\"DESC\": 0, \"ENTY\": 1, \"HUM\": 2, \"ABBR\": 3, \"LOC\": 4,\"NUM\": 5}\n", + " data = []\n", + "\n", + " with open(mode + '.txt', 'r', encoding='latin1') as f:\n", + " for line in f:\n", + " label = LABEL_DICT[label_map[line.split()[0].split(\":\")[0]]]\n", + " if mode == \"test\":\n", + " sentence = (\" \".join(line.split()[1:]))\n", + " else:\n", + " sentence = (\" \".join(line.split(\":\")[1:])).lower().strip()\n", + " data.append((sentence, label))\n", + " return data" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": {}, + "outputs": [], + "source": [ + "from spear.labeling import preprocessor\n", + "\n", + "@preprocessor()\n", + "def convert_to_lower(x):\n", + " return x.lower().strip()" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": {}, + "outputs": [], + "source": [ + "from spear.labeling import PreLabels\n", + "from notebooks.TREC.utils import load_data_to_numpy\n", + "\n", + "X_V, X_feats_V, Y_V = load_data_to_numpy(file_name='valid.txt')\n", + "X_T, X_feats_T, Y_T = load_data_to_numpy(file_name='test.txt')\n", + "X, X_feats, Y = load_data_to_numpy(file_name='train.txt')" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "X_L, X_feats_L, Y_L, X_U, X_feats_U, Y_U = X[:100] , X_feats[:100], Y[:100], X[100:], X_feats[100:], Y[100:]" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "((100,), (5352,), (500,), (500,))" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X_L.shape, X_U.shape, X_V.shape, X_T.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(1024,)" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X_feats_U" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "# X, X_feats, Y = load_data_to_numpy()\n", + "# Y = np.array([ClassLabels[x].value for x in Y])\n", + "\n", + "# trec_noisy_labels = PreLabels(name=\"trec\",\n", + "# data=X,\n", + "# gold_labels=Y,\n", + "# data_feats=X_feats,\n", + "# rules=rules,\n", + "# labels_enum=ClassLabels,\n", + "# num_classes=6)\n", + "# L,S = trec_noisy_labels.get_labels()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "# from helper.utils import load_data_to_numpy, get_various_data\n", + "\n", + "# X_V = \n", + "\n", + "# X, X_feats, Y = load_data_to_numpy()\n", + "\n", + "# validation_size = 152\n", + "# test_size = 500\n", + "# L_size = 100\n", + "# U_size = 4700\n", + "# n_lfs = len(rules.get_lfs())\n", + "\n", + "# X_V, Y_V, X_feats_V,_, X_T, Y_T, X_feats_T,_, X_L, Y_L, X_feats_L,_, X_U, X_feats_U,_ = get_various_data(X, Y,\\\n", + "# X_feats, n_lfs, validation_size, test_size, L_size, U_size)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "path_json = 'data_pipeline/trec_json.json'\n", + "V_path_pkl = 'data_pipeline/trec_pickle_V.pkl' #validation data - have true labels\n", + "T_path_pkl = 'data_pipeline/trec_pickle_T.pkl' #test data - have true labels\n", + "L_path_pkl = 'data_pipeline/trec_pickle_L.pkl' #Labeled data - have true labels\n", + "U_path_pkl = 'data_pipeline/trec_pickle_U.pkl' #unlabelled data - don't have true labels\n", + "\n", + "log_path_cage_1 = 'log/trec_cage_log_1.txt' #cage is an algorithm, can be found below\n", + "log_path_jl_1 = 'log/trec_jl_log_1.txt' #jl is an algorithm, can be found below" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|███████████████████████████████████████| 500/500 [00:00<00:00, 3859.61it/s]\n", + "100%|███████████████████████████████████████| 500/500 [00:00<00:00, 5185.13it/s]\n", + "100%|███████████████████████████████████████| 100/100 [00:00<00:00, 4647.22it/s]\n", + "100%|█████████████████████████████████████| 5352/5352 [00:01<00:00, 4263.78it/s]\n" + ] + } + ], + "source": [ + "from spear.labeling import PreLabels\n", + "\n", + "trec_noisy_labels = PreLabels(name=\"trec\",\n", + " data=X_V,\n", + " gold_labels=Y_V,\n", + " data_feats=X_feats_V,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=6)\n", + "trec_noisy_labels.generate_pickle(V_path_pkl)\n", + "trec_noisy_labels.generate_json(path_json) #generating json files once is enough\n", + "\n", + "trec_noisy_labels = PreLabels(name=\"trec\",\n", + " data=X_T,\n", + " gold_labels=Y_T,\n", + " data_feats=X_feats_T,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=6)\n", + "trec_noisy_labels.generate_pickle(T_path_pkl)\n", + "\n", + "trec_noisy_labels = PreLabels(name=\"trec\",\n", + " data=X_L,\n", + " gold_labels=Y_L,\n", + " data_feats=X_feats_L,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=6)\n", + "trec_noisy_labels.generate_pickle(L_path_pkl)\n", + "\n", + "trec_noisy_labels = PreLabels(name=\"trec\",\n", + " data=X_U,\n", + " rules=rules,\n", + " data_feats=X_feats_U,\n", + " labels_enum=ClassLabels,\n", + " num_classes=6)\n", + "trec_noisy_labels.generate_pickle(U_path_pkl)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of elements in data list: 10\n", + "Shape of feature matrix: (5352, 1024)\n", + "Shape of labels matrix: (5352, 68)\n", + "Shape of continuous scores matrix : (5352, 68)\n", + "Total number of classes: 6\n", + "Classes dictionary in json file(modified to have integer keys): {0: 'DESCRIPTION', 1: 'ENTITY', 2: 'HUMAN', 3: 'ABBREVIATION', 4: 'LOCATION', 5: 'NUMERIC'}\n" + ] + } + ], + "source": [ + "from spear.utils import get_data, get_classes\n", + "\n", + "data_U = get_data(path = U_path_pkl, check_shapes=True)\n", + "#check_shapes being True(above), asserts for relative shapes of arrays in pickle file\n", + "print(\"Number of elements in data list: \", len(data_U))\n", + "print(\"Shape of feature matrix: \", data_U[0].shape)\n", + "print(\"Shape of labels matrix: \", data_U[1].shape)\n", + "print(\"Shape of continuous scores matrix : \", data_U[6].shape)\n", + "print(\"Total number of classes: \", data_U[9])\n", + "\n", + "classes = get_classes(path = path_json)\n", + "print(\"Classes dictionary in json file(modified to have integer keys): \", classes)" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'data_pipeline/trec_json.json'" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "path_json" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "# from spear.JL import JL\n", + "\n", + "# n_features = 1024\n", + "# n_hidden = 512\n", + "# feature_model = 'lr'\n", + "\n", + "# jl = JL(path_json = path_json, n_lfs = n_lfs, n_features = n_features, n_hidden = n_hidden, \\\n", + "# feature_model = feature_model)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "scrolled": true, + "tags": [] + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 0%| | 0/100 [00:00**YOUTUBE SPAM COMMENT DETECTION** " + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import pickle\n", + "import os\n", + "import pandas as pd\n", + "from sklearn.metrics import accuracy_score, f1_score, precision_score, recall_score\n", + "\n", + "DISPLAY_ALL_TEXT = False\n", + "\n", + "pd.set_option(\"display.max_colwidth\", 0 if DISPLAY_ALL_TEXT else 50)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Load YouTube Dataset" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "from utils import load_spam_dataset\n", + "\n", + "X = load_spam_dataset(load_train_labels=True)\n", + "Y = X.label.values\n", + "X = X.text\n", + "# We pull out the label vectors for ease of use later\n", + "# Y_dev = df_dev.label.values\n", + "# Y_valid = df_valid.label.values\n", + "# Y_test = df_test.label.values" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.feature_extraction.text import CountVectorizer\n", + "vectorizer = CountVectorizer(ngram_range=(1, 2))\n", + "X_feats = vectorizer.fit_transform(X.tolist()).toarray()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "### **Representation of class Labels**\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(0 pls http://www10.vakinha.com.br/VaquinhaE.aspx...\n", + " 1 if your like drones, plz subscribe to Kamal Ta...\n", + " 2 go here to check the views :3\n", + " 3 Came here to check the views, goodbye.\n", + " 4 i am 2,126,492,636 viewer :D\n", + " ... \n", + " 443 Check out my mummy chanel!\n", + " 444 The rap: cool Rihanna: STTUUPID\n", + " 445 I hope everyone is in good spirits I'm a h...\n", + " 446 Lil m !!!!! Check hi out!!!!! Does live the wa...\n", + " 447 Please check out my youtube channel! Just uplo...\n", + " Name: text, Length: 1586, dtype: object,\n", + " array([1, 1, 0, ..., 1, 1, 1]))" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X, Y" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "During labeling the unlabelled data we lookup for few keywords to assign a class YOUTUBE.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "# For clarity, we define constants to represent the class labels for spam, ham, and abstaining.\n", + "import enum\n", + "\n", + "# enum to hold the class labels\n", + "ABSTAIN = -1\n", + "\n", + "\n", + "class ClassLabels(enum.Enum):\n", + " SPAM = 1\n", + " HAM = 0\n", + "\n", + "\n", + "THRESHOLD = 0.8" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Declaration of Labeling Functions**" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "from spear.labeling import labeling_function, ABSTAIN, preprocessor, continuous_scorer\n", + "import re\n", + "\n", + "@preprocessor()\n", + "def convert_to_lower(x):\n", + " return x.lower().strip()\n", + "\n", + "\n", + "@labeling_function(label=ClassLabels.SPAM, pre=[convert_to_lower])\n", + "def check(x):\n", + " return ClassLabels.SPAM if \"check\" in x.text.lower() else ABSTAIN\n", + "\n", + "\n", + "@labeling_function(label=ClassLabels.SPAM, pre=[convert_to_lower])\n", + "def check_out(x):\n", + " return ClassLabels.SPAM if \"check out\" in x.text.lower() else ABSTAIN\n", + "\n", + "\n", + "keyword_my ={'my'}\n", + "keyword_subscribe={'subscribe'}\n", + "keyword_link={'http'}\n", + "keyword_please={'please', 'plz'}\n", + "keyword_song = {'song'}\n", + "\n", + "\n", + "@labeling_function(label=ClassLabels.SPAM, pre=[convert_to_lower])\n", + "def regex_check_out(x):\n", + " return ClassLabels.SPAM if re.search(r\"check.*out\", x, flags=re.I) else ABSTAIN\n", + "\n", + "\n", + "\n", + "\n", + "@labeling_function(resources=dict(keywords=keyword_my),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def keyword_my(x,**kwargs): \n", + " if len(kwargs[\"keywords\"].intersection(x.split())) > 0:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "\n", + "@labeling_function(resources=dict(keywords=keyword_subscribe),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def keyword_subscribe(x,**kwargs): \n", + " if len(kwargs[\"keywords\"].intersection(x.split())) > 0:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + " \n", + "@labeling_function(resources=dict(keywords=keyword_link),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def keyword_link(x,**kwargs): \n", + " for pattern in kwargs[\"keywords\"]: \n", + " if re.search(pattern,x, flags= re.I):\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + " \n", + "@labeling_function(resources=dict(keywords=keyword_please),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def keyword_please(x,**kwargs): \n", + " if len(kwargs[\"keywords\"].intersection(x.split())) > 0:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(resources=dict(keywords=keyword_song),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def keyword_song(x,**kwargs): \n", + " if len(kwargs[\"keywords\"].intersection(x.split())) > 0:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "\n", + "@labeling_function(label=ClassLabels.HAM)\n", + "def short_comment(x):\n", + " \"\"\"Ham comments are often short, such as 'cool video!'\"\"\"\n", + " return ClassLabels.HAM if len(x.split()) < 5 else ABSTAIN\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "from textblob import TextBlob\n", + "\n", + "# @preprocessor()\n", + "# def textblob_sentiment(x):\n", + "# scores = TextBlob(x)\n", + "# x.polarity = scores.sentiment.polarity\n", + "# x.subjectivity = scores.sentiment.subjectivity\n", + "# return x\n", + "\n", + "@continuous_scorer()\n", + "def textblob_sentiment(sentence,**kwargs):\n", + " scores = TextBlob(sentence)\n", + " return scores.polarity\n", + "# similarity = 0.0\n", + "# words = sentence.split()\n", + "# words = preprocess(words)\n", + "# word_vectors = get_word_vectors(words)\n", + "# for w in kwargs['keywords']:\n", + "# similarity = min(max(similarity,get_similarity(word_vectors,w)),1.0)\n", + "\n", + "# return similarity" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "@labeling_function(cont_scorer=textblob_sentiment, pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def textblob_polarity(x,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= 0.9:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "from snorkel.preprocess.nlp import SpacyPreprocessor\n", + "spacy = SpacyPreprocessor(text_field=\"text\", doc_field=\"doc\", memoize=True)\n", + "\n", + "@labeling_function(pre=[spacy], label=ClassLabels.HAM)\n", + "def has_person(x):\n", + " \"\"\"Ham comments mention specific people and are short.\"\"\"\n", + " if len(x.doc) < 20 and any([ent.label_ == \"PERSON\" for ent in x.doc.ents]):\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "\n", + "\n", + "from snorkel.labeling.lf.nlp import nlp_labeling_function\n", + "\n", + "\n", + "@nlp_labeling_function()\n", + "def has_person_nlp(x):\n", + " \"\"\"Ham comments mention specific people and are short.\"\"\"\n", + " if len(x.doc) < 20 and any([ent.label_ == \"PERSON\" for ent in x.doc.ents]):\n", + " return HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Loading all 8 LFs" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **LFSet**\n", + "\n", + "Place holder for declared labeling functions. " + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [], + "source": [ + "from spear.labeling import LFSet\n", + "\n", + "LFS = [\n", + " keyword_my,\n", + " keyword_subscribe,\n", + " keyword_link,\n", + " keyword_please,\n", + " keyword_song,\n", + " regex_check_out,\n", + " short_comment,\n", + " has_person_nlp,\n", + " textblob_polarity,\n", + " textblob_subjectivity,\n", + "]\n", + "\n", + "\n", + "rules = LFSet(\"SPAM_LF\")\n", + "rules.add_lf_list(LFS)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Label the dataset with defined labeling functions**\n", + "\n", + "We can label the dataset using PreLabels by providing as set of labeling funtions. We can also provide the golden labels of the dataset if we already have some labeled data to evaluate our lf's.We provide both the soft labels and hard labels given an instance, although these labels can be very noisy we provide few frameworks to effectively use these rules to label unlabelled data." + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1586/1586 [00:00<00:00, 4232.36it/s]\n" + ] + } + ], + "source": [ + "from spear.labeling import PreLabels\n", + "import numpy as np\n", + "\n", + "R = np.zeros((X.shape[0],len(rules.get_lfs())))\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"youtube\",\n", + " data=X,\n", + " data_feats = X_feats,\n", + " gold_labels=Y,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "L,S = yt_noisy_labels.get_labels()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Analyse and refining labeling functions**\n", + "\n", + "Once we are done with labeling the dataset with given lf's, we can analyse the labeling functions we declared by calculating coverage, overlap, conflicts, empirical accuracy for of each lf which helps us to re-iterate on the process by refining new lf's." + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [], + "source": [ + "from spear.labeling import LFAnalysis\n", + "analyse = yt_noisy_labels.analyse_lfs(plot=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PolarityCoverageOverlapsConflictsCorrectIncorrectEmp. Acc.
keyword_my[-1.0, 0.0]0.1910470.1551070.028373263400.867987
keyword_subscribe[-1.0, 0.0]0.0863810.0655740.01387113701.000000
keyword_link[-1.0, 0.0]0.1191680.0794450.049811178110.941799
keyword_please[-1.0, 0.0]0.0920550.0825980.00945814420.986301
keyword_song[-1.0, 1.0]0.0838590.0365700.02396096370.721805
regex_check_out[-1.0, 0.0]0.2339220.0983610.01387137101.000000
short_comment[-1.0, 1.0]0.2257250.0863810.0662042381200.664804
textblob_polarity[-1.0, 1.0]0.0334170.0239600.0031534670.867925
\n", + "
" + ], + "text/plain": [ + " Polarity Coverage Overlaps Conflicts Correct \\\n", + "keyword_my [-1.0, 0.0] 0.191047 0.155107 0.028373 263 \n", + "keyword_subscribe [-1.0, 0.0] 0.086381 0.065574 0.013871 137 \n", + "keyword_link [-1.0, 0.0] 0.119168 0.079445 0.049811 178 \n", + "keyword_please [-1.0, 0.0] 0.092055 0.082598 0.009458 144 \n", + "keyword_song [-1.0, 1.0] 0.083859 0.036570 0.023960 96 \n", + "regex_check_out [-1.0, 0.0] 0.233922 0.098361 0.013871 371 \n", + "short_comment [-1.0, 1.0] 0.225725 0.086381 0.066204 238 \n", + "textblob_polarity [-1.0, 1.0] 0.033417 0.023960 0.003153 46 \n", + "\n", + " Incorrect Emp. Acc. \n", + "keyword_my 40 0.867987 \n", + "keyword_subscribe 0 1.000000 \n", + "keyword_link 11 0.941799 \n", + "keyword_please 2 0.986301 \n", + "keyword_song 37 0.721805 \n", + "regex_check_out 0 1.000000 \n", + "short_comment 120 0.664804 \n", + "textblob_polarity 7 0.867925 " + ] + }, + "execution_count": 55, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "analyse" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": {}, + "outputs": [ + { + "ename": "TypeError", + "evalue": "__init__() missing 1 required positional argument: 'L'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m/tmp/ipykernel_2700021/2605209364.py\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mLFAnalysis\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mL\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlabel_overlap\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m: __init__() missing 1 required positional argument: 'L'" + ] + } + ], + "source": [ + "LFAnalysis(L).label_overlap()" + ] + }, + { + "cell_type": "code", + "execution_count": 129, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "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A17X3O5Jzef3Yd8Mxu8/f1f6ZjD+rqh+apHAAQagJvFz1AAyDdg8IsZExMrAwcCUXmw7IiI6n6+yGw33zkn9mXG8bwbj5zYY33Mz+Lmpv6tNAidJjcorZ0cBVwKzgEsyc2ZEnBQR+wJExI4RMRc4EPhBRMwst30B+AxwbUTcCQTw3+14H5IkSb1Ri3vguhp93C+bur85J7+jR/X+9re/ccwxxzBt2jRGjBjB+uuvz+mnn86rX/3qpvZHUs9k5lRgapeyExpeT6MYWtndtlcD21XaQalqJ67V5P09udwqc+fO5cgjj+Tuu+9m0aJF7LPPPvzXf/0XK6+88go1PWfOHPbZZx/uuuuuFdqPurft+ds2dX93HnJnj+o169jpt7/9LUcccQTDhg3joosu4sADD+Suu+5i+vTpXHDBBXz3u99d6rZf//rX+fznP9+r9qT+zCtwPZSZ7L///uy666786U9/4o9//CPf+MY3+Pvf/970thYuXNj0fUqStKIyk3e9613st99+3H///dx3330sWLCA//zP/1yh/fq9NzA189jpxz/+MccffzwzZsxg1VVXXVze0dGxzOQNigROGkhqeQWuHa6//nqGDRvGEUccsbhs++23JzM59thjueKKK4gIvvCFL3DQQQdx8MEH84EPfIB3vKO4unfooYeyzz77sP/++3Pcccdxww038Oyzz3LkkUfy0Y9+lBtuuIEvfvGLrL322txzzz3cd9997Lfffjz00EM888wzfOITn2DixIkAnHPOOZxyyimMGDGC7bffnlVWWYXvfe97zJs3jyOOOIIHH3wQgNNPP52dd9659R9WzTT7im6nnl7Z1QDR7CshS+x7+VdFpFa47rrrGD58OIcddhgAQ4YM4bTTTmPMmDH8+te/5oc//CFbb701ALvuuiunnnoqW265JUcffTR33XUXzz//PCeeeCLjx4/nvPPO4/LLL2fBggW88MILnH/++YvbmTNnDh/4wAf417/+BcD3vvc9/uM//oMbbriBE044gTXWWIPZs2fz1re+le9///tkJocffjjTp08nIvjQhz7EJz/5ydZ/QFpCb4+dbrjhBk488UTWW2897rrrLl7/+tfzox/9iHPOOYdLLrmEK6+8kiuuuIKvfe1ri/d3ww03cOqpp/KLX/yCBQsWcPTRRy/+PfjSl77EtGnTePrpp9lhhx3YeuutmTRpEu95z3uYO3cuL7zwAl/84hc56KCD2vHxqA+afSW5U0+vKPcXJnA91BlIurr88suZMWMGt99+O48++ig77rgju+yyCwcddBCXXHIJ73jHO3juuee49tprOeusszjnnHNYa621mDZtGs8++yw777wze+65JwC33nord9111+Jpa88991zWWWcdnn76aXbccUfe/e538+yzz/KVr3yFW2+9lTXWWIPddtuN7bffHoBPfOITfPKTn+RNb3oTDz74IHvttRezZs1q3YckSRrQZs6c+ZLvwjXXXJNNNtmEd7zjHVxyySV8+ctf5pFHHuGRRx6ho6ODz3/+8+y2226ce+65PPHEE4wdO5a3ve1tQPG9d8cdd7DOOuswZ86cxft8+ctfztVXX83w4cO5//77mTBhAtOnTwfglltu4e6772bTTTdl3LhxXH755YwZM4aHH3548fDLJ554oiWfh5att8dOALfddhszZ85kww03ZOedd+Z3v/sdH/7wh7nxxhvZZ599OOCAA5b4XWn0la98hbXWWos77ywOxh9//HHe/e53873vfY8ZM2YAcNlll7Hhhhvyy18WJ2+ffNITZKofh1CuoBtvvJEJEyYwZMgQ1l9/fd7ylrcwbdo09t57b66//nqeffZZrrjiCnbZZRdWXXVVrrrqKi644AJ22GEH3vCGNzB//nzuv/9+AMaOHbvEM0e++93vsv3227PTTjvx0EMPcf/993PLLbfwlre8hXXWWYdhw4Zx4IEHLq5/zTXXcNRRR7HDDjuw77778tRTT7FgwYKWfyaSpMFn11135dJLLwXgkksu4YADDgDgqquu4uSTT2aHHXZg11135Zlnnlk8UmSPPfZgnXXWecm+nn/+eT7ykY+w7bbbcuCBB3L33S9OEjt27Fhe+cpXMmTIECZMmMCNN97IK1/5Sh544AGOPvpofvWrX7Hmmmu24B2rr5Z27ATF/++oUaNYaaWV2GGHHZaarHXnmmuu4cgjj1y8vPbaa7+kzrbbbsvVV1/N5z73OX7729+y1loVjp6QKuIVuB7aeuutF38x9cTw4cPZddddufLKK5k8eTIHH3wwUIwHP+OMM9hrr72WqH/DDTfwspe9bInla665hj/84Q+sttpqi7/0lmXRokXcdNNNDB8+vBfvTJKkntlqq61e8l341FNP8eCDD7Ljjjuy7rrrcscddzB58mTOPvtsoPjeu+yyy3jNa16zxHY333zzEt97jU477TTWX399br/9dhYtWrTE91rXKd4jgrXXXpvbb7+dK6+8krPPPptLLrmEc889txlvWSugt8dOAKusssri10OGDGn6/ZGvfvWrufXWW5k6dSpf+MIX2H333TnhhBOWv6HUj3gFrod22203nn32WSZNmrS47I477mDEiBFMnjyZF154gXnz5vGb3/yGsWPHAnDQQQfxwx/+kN/+9reMGzcOgL322ouzzjqL559/HoD77rtv8Rj/Rk8++SRrr702q622Gvfccw833XQTADvuuCO//vWvefzxx1m4cCGXXXbZ4m323HNPzjjjjMXLncMFJElqht13351///vfXHDBBQC88MILfPrTn+bQQw9ltdVW46CDDuKb3/wmTz75JNttV0zyutdee3HGGWeQmUAxRG55nnzySTbYYANWWmklLrzwQl544YXF62655Rb+/Oc/s2jRIiZPnsyb3vQmHn30URYtWsS73/1uvvrVr3LrrbdW8O7VW305dloRe+yxB2eeeebi5ccffxyAYcOGLT7u+utf/8pqq63G+9//fo499lh/V1RLtbwC147JISKCn/70pxxzzDGccsopDB8+nNGjR3P66aezYMECtt9+eyKCb37zm7ziFa8AioTqAx/4AOPHj188vfKHP/xh5syZw+te9zoyk5EjR/Kzn/3sJe2NGzeOs88+my233JLXvOY17LTTTgBstNFGfP7zn2fs2LGss846bLHFFosv/3/3u9/lyCOPZLvttmPhwoXssssui8+ASpIGoBZPcNP5Xfjxj3+cr3zlKyxatIi3v/3ti2f5O+CAA/jEJz7BF7/4xcXbfPGLX+SYY45hu+22Y9GiRYwZM4Zf/OIXy2zn4x//OO9+97u54IILGDdu3BJX6nbccUeOOuqoxZOY7L///tx5550cdthhLFq0CIBvfOMbFbz7emvHJA29PXa65557Vqi9L3zhCxx55JFss802DBkyhC996Uu8613vYuLEiWy33Xa87nWv44Mf/CDHHnssK620EsOGDeOss85q0ruVWic6z4j1Fx0dHdl5o3KnWbNmseWWW7apR/3PggULWH311Vm4cCH7778/H/rQh9h///17vL2f55KchbI1IuKPmdnR7n6siO7i02LOQqkWGOzxu3HGwb7o7vMb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+Sxrk8BJ0nKcB4zrUnY1sE1mbgfcBxwPEBFbAQcDW5fbfD8ihrSuq5IGsfN4aaxqtDewefkzETirBX2SVCO1uAeuq1lbbNnU/W15z6we1fvb3/7GMcccw7Rp0xgxYgTrr78+p59+Oq9+9aub2p/unHfeeey5555suOGGlbcl1VFm/iYiRncpu6ph8SbggPL1eODizHwW+HNEzAbGAn9Y0X6cecR1K7qLJRx59m7LrbP66quzYMGCprbbTKeffjoTJ05ktdVWa3dXpLbrLlZ1MR64IDMTuCkiRkTEBpn5SGt6KPXOtw7ap6n7+/TkXyy3zpAhQ9h2220XLx988MEcd9xxTe1Hd3bYYQe22GILLr744srbWpZaJnDtkJnsv//+HHLIIYv/026//Xb+/ve/LzeBW7hwIUOHDl3qck+cd955bLPNNiZwUt99CJhcvt6IIqHrNLcsUxfNiF+nn34673//+03gpJ7ZCHioYbkzPpnASaVVV12VGTNmtLTNWbNm8cILL/Db3/6Wf/3rX7zsZS9rafuNTOB66Prrr2fYsGEcccQRi8u23357MpNjjz2WK664gojgC1/4AgcddBA33HADX/ziF1l77bW55557mDRp0hLLs2bN4rjjjuOGG27g2Wef5cgjj+SjH/0oAKeccgo/+tGPWGmlldh7773p6Ohg+vTpvO9972PVVVflD3/4A6uuumq7PooBp9lXdDv19MquqhcR/wksBH7ch20nUgxjYpNNNmlyz5rrhhtu4MQTT2S99dbjrrvu4vWvfz0/+tGPiAimTZvGJz7xCf71r3+xyiqrcO211zJs2DA+9rGPMX36dIYOHcq3v/1t3vrWt3Leeedx+eWXs2DBAl544QUOO+ywJZanTp3K0UcfzV133cXzzz/PiSeeyPjx43nhhRf43Oc+x69+9StWWmklPvKRj5CZ/PWvf+Wtb30r6623Htdff327PyYtR7OvIjfqyRVl9UwdYlOzr8x06skVGlXrb3+6v91d6Nbo0aOZMGECV1xxBUOHDmXSpEkcf/zxzJ49m2OPPZYjjjiCG264gRNOOIE11liD2bNn89a3vpXvf//7rLTSsu8su+iii/jABz7ArFmz+PnPf8573/tegG6/X1dbbbWXfB8effTRTXufJnA91Hkw1NXll1/OjBkzuP3223n00UfZcccd2WWXXQC49dZbueuuuxgzZgw33HDDEsuTJk1irbXWYtq0aTz77LPsvPPO7Lnnntxzzz38/Oc/5+abb2a11VbjscceY5111uF73/sep556Kh0dHa1+61KtRcShwD7A7uWQJICHgY0bqo0qy14iMycBkwA6Ojqyuzr9yW233cbMmTPZcMMN2Xnnnfnd737H2LFjOeigg5g8eTI77rgjTz31FKuuuirf+c53iAjuvPNO7rnnHvbcc0/uu+8+oIhfd9xxB+ussw7nnXfeEsuf//zn2W233Tj33HN54oknGDt2LG9729u44IILmDNnDjNmzGDo0KGL49e3v/1trr/+etZbb702fzpSLfQoPtUtNknN9PTTT7PDDjssXj7++OM56KCDgOKExowZM/jkJz/JoYceyu9+9zueeeYZttlmm8UXYm655RbuvvtuNt10U8aNG8fll1/OAQcc0F1Ti02ePJmrr76ae+65hzPOOIP3vve9PPfcc91+v06aNOkl34fNZAK3gm688UYmTJjAkCFDWH/99XnLW97CtGnTWHPNNRk7duwSz3RoXL7qqqu44447uPTSSwF48sknuf/++7nmmms47LDDFg81WmeddVr/pqQBIiLGAZ8F3pKZ/25YNQX4SUR8G9iQYrKAW9rQxaYbO3Yso0aNAoqx+nPmzGGttdZigw02YMcddwRgzTXXBIr41XlGcIsttmDTTTddnMDtscceS8SfxuWrrrqKKVOmcOqppwLFlNIPPvgg11xzDUccccTiIZbGL6lPpgBHRcTFwBuAJ73/TVrSsoZQ7rvvvgBsu+22LFiwgDXWWIM11liDVVZZhSeeeAIovitf+cpXAjBhwgRuvPHGZSZw06dPZ7311mOTTTZho4024kMf+hCPPfYYDz/8cLffr1V/H5rA9dDWW2+9ONnqqa5jYxuXM5MzzjiDvfZacvbyK6+8su+dlAaxiLgI2BVYLyLmAl+imHVyFeDqcpremzLziMycGRGXAHdTDK08MjNfaE/Pm2uVVVZZ/HrIkCEsXLiwT/tZXvy67LLLeM1rXtO3TkqD2FJi1TCAzDwbmAq8HZgN/Bs4rD09VW9UNVwUHDLaW53fgyuttNIS34krrbTS4u/ErlP3L28q/4suuoh77rmH0aNHA/DUU09x2WWXsdNOOzWx5z3nYwR6aLfdduPZZ59l0qRJi8vuuOMORowYweTJk3nhhReYN28ev/nNbxg7duxy97fXXntx1lln8fzzzwNw33338a9//Ys99tiDH/7wh/z738XFgs5LrmussQb//Oc/K3hn0sCQmRMyc4PMHJaZozLznMzcLDM3zswdyp8jGup/LTNflZmvycwr2tn3qr3mNa/hkUceYdq0aQD885//ZOHChbz5zW/mxz8ubgu87777ePDBB3uUlO21116cccYZdI5Ive2224DiKt0PfvCDxV+Qxi/ppZYSq84ukzeycGQZn7bNzOnt7rM00Nxyyy38+c9/ZtGiRUyePJk3velNS627aNEiLrnkEu68807mzJnDnDlz+PnPf85FF1201O/XpX0fNkstr8C1Y3KIiOCnP/0pxxxzDKeccgrDhw9n9OjRnH766SxYsIDtt9+eiOCb3/wmr3jFK7jnnnuWub8Pf/jDzJkzh9e97nVkJiNHjuRnP/sZ48aNY8aMGXR0dLDyyivz9re/na9//esceuihHHHEEU5iIvVz/XGShpVXXpnJkydz9NFH8/TTT7PqqqtyzTXX8PGPf5yPfexjbLvttgwdOpTzzjtvibOVS/PFL36RY445hu22245FixYxZswYfvGLX/DhD3+Y++67j+22245hw4bxkY98hKOOOoqJEycybtw4NtxwQycxkaQB5n1fP61p+3rFqzbvUb2u98CNGzeOk08+ucft7Ljjjhx11FGLJzHZf//9geL4/Igjjlhizonf/va3bLTRRkvMBL/LLrtw9913M3/+/G6/X5f2fXjCCSfQ0dGxeJhnX8WL9/T3Dx0dHTl9+pInm2bNmsWWW1YzU+BA4WfUd85C2RoR8cfMrPUsPMan5vPz638G2yyUAzU29QeDaRbKwTSEctasWay9cjXXgHqawK2IG264gVNPPZVf/KL/fK7dfRcuKzY5hFKSJEmSaqKWQyglSZIkqbd23XVXdt1113Z3Y4XU5gpcfxvq2Z/42Ujt5d9g3/i5SVI9Gb+bpy+fZa8SuIgYHhG3RMTtETEzIr5clp8XEX+OiBnlzw5leUTEdyNidkTcERGv63UPgeHDhzN//nx/WbqRmcyfP5/hw4e3uyvSoGR86htjlyTV0/Dhw/nXM8/6vdcEff0u7O0QymeB3TJzQUQMA26MiM7pt4/NzK4PStub4gG5m1M8jPKs8t9eGTVqFHPnzmXevHm93XRQGD58+OIH90pq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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PolarityCoverageOverlapsConflictsCorrectIncorrectEmp. Acc.
keyword_my[-1.0, 0.0]0.1910470.1551070.028373263400.867987
keyword_subscribe[-1.0, 0.0]0.0863810.0655740.01387113701.000000
keyword_link[-1.0, 0.0]0.1191680.0794450.049811178110.941799
keyword_please[-1.0, 0.0]0.0920550.0825980.00945814420.986301
keyword_song[-1.0, 1.0]0.0838590.0365700.02396096370.721805
regex_check_out[-1.0, 0.0]0.2339220.0983610.01387137101.000000
short_comment[-1.0, 1.0]0.2257250.0863810.0662042381200.664804
textblob_polarity[-1.0, 1.0]0.0334170.0239600.0031534670.867925
\n", + "
" + ], + "text/plain": [ + " Polarity Coverage Overlaps Conflicts Correct \\\n", + "keyword_my [-1.0, 0.0] 0.191047 0.155107 0.028373 263 \n", + "keyword_subscribe [-1.0, 0.0] 0.086381 0.065574 0.013871 137 \n", + "keyword_link [-1.0, 0.0] 0.119168 0.079445 0.049811 178 \n", + "keyword_please [-1.0, 0.0] 0.092055 0.082598 0.009458 144 \n", + "keyword_song [-1.0, 1.0] 0.083859 0.036570 0.023960 96 \n", + "regex_check_out [-1.0, 0.0] 0.233922 0.098361 0.013871 371 \n", + "short_comment [-1.0, 1.0] 0.225725 0.086381 0.066204 238 \n", + "textblob_polarity [-1.0, 1.0] 0.033417 0.023960 0.003153 46 \n", + "\n", + " Incorrect Emp. Acc. \n", + "keyword_my 40 0.867987 \n", + "keyword_subscribe 0 1.000000 \n", + "keyword_link 11 0.941799 \n", + "keyword_please 2 0.986301 \n", + "keyword_song 37 0.721805 \n", + "regex_check_out 0 1.000000 \n", + "short_comment 120 0.664804 \n", + "textblob_polarity 7 0.867925 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from spear.labeling import LFAnalysis\n", + "\n", + "analyse = yt_noisy_labels.analyse_lfs(plot=True)\n", + "\n", + "result = analyse.head(16)\n", + "display(result)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create different splits of data here" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "from utils import get_various_data\n", + "\n", + "validation_size = 100\n", + "test_size = 100\n", + "L_size = 100\n", + "n_lfs = len(rules.get_lfs())\n", + "X = np.asarray(X)\n", + "Y = np.asarray(Y)\n", + "X_V, Y_V, X_feats_V,_, X_T, Y_T, X_feats_T,_, X_L, Y_L, X_feats_L,_, X_U, X_feats_U,_ = get_various_data(X, Y,\\\n", + " X_feats, n_lfs, validation_size, test_size, L_size)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "path_json = 'data_pipeline/JL/yt_json.json'\n", + "V_path_pkl = 'data_pipeline/JL/yt_pickle_V.pkl' #validation data - have true labels\n", + "T_path_pkl = 'data_pipeline/JL/yt_pickle_T.pkl' #test data - have true labels\n", + "L_path_pkl = 'data_pipeline/JL/yt_pickle_L.pkl' #Labeled data - have true labels\n", + "U_path_pkl = 'data_pipeline/JL/yt_pickle_U.pkl' #unlabelled data - don't have true labels\n", + "\n", + "log_path_jl_1 = 'log/JL/yt_log_1.txt' #jl is an algorithm, can be found below\n", + "params_path = 'params/JL/yt_params.pkl' #file path to store parameters of JL, used below" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "55" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(np.where(Y_L==0)[0])" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 100/100 [00:00<00:00, 2726.69it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 100/100 [00:00<00:00, 4193.38it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 100/100 [00:00<00:00, 3814.81it/s]\n", + "100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1286/1286 [00:00<00:00, 4105.34it/s]\n" + ] + } + ], + "source": [ + "from spear.labeling import PreLabels\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"yt\",\n", + " data=X_V,\n", + " gold_labels=Y_V,\n", + " data_feats=X_feats_V,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "yt_noisy_labels.generate_pickle(V_path_pkl)\n", + "yt_noisy_labels.generate_json(path_json) #generating json files once is enough\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"yt\",\n", + " data=X_T,\n", + " gold_labels=Y_T,\n", + " data_feats=X_feats_T,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "yt_noisy_labels.generate_pickle(T_path_pkl)\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"yt\",\n", + " data=X_L,\n", + " gold_labels=Y_L,\n", + " data_feats=X_feats_L,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "yt_noisy_labels.generate_pickle(L_path_pkl)\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"yt\",\n", + " data=X_U,\n", + " rules=rules,\n", + " data_feats=X_feats_U,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2) #note that we don't pass gold_labels here, for the unlabelled data\n", + "yt_noisy_labels.generate_pickle(U_path_pkl)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of elements in data list: 10\n", + "Shape of feature matrix: (1286, 16634)\n", + "Shape of labels matrix: (1286, 8)\n", + "Shape of continuous scores matrix : (1286, 8)\n", + "Total number of classes: 2\n", + "Classes dictionary in json file(modified to have integer keys): {1: 'SPAM', 0: 'HAM'}\n" + ] + } + ], + "source": [ + "from spear.utils import get_data, get_classes\n", + "\n", + "data_U = get_data(path = U_path_pkl, check_shapes=True)\n", + "#check_shapes being True(above), asserts for relative shapes of arrays in pickle file\n", + "print(\"Number of elements in data list: \", len(data_U))\n", + "print(\"Shape of feature matrix: \", data_U[0].shape)\n", + "print(\"Shape of labels matrix: \", data_U[1].shape)\n", + "print(\"Shape of continuous scores matrix : \", data_U[6].shape)\n", + "print(\"Total number of classes: \", data_U[9])\n", + "\n", + "classes = get_classes(path = path_json)\n", + "print(\"Classes dictionary in json file(modified to have integer keys): \", classes)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## SPEAR - with all 9 LFs" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "from spear.jl import JL\n", + "\n", + "n_features = 16634\n", + "n_hidden = 512\n", + "feature_model = 'lr'\n", + "'''\n", + "'nn' is neural network. other alternative is 'lr'(logistic regression) which doesn't need n_hidden to be passed\n", + "during initialisation.\n", + "''' \n", + "\n", + "jl = JL(path_json = path_json, n_lfs = n_lfs, n_features = n_features, feature_model = feature_model)" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 38%|███████████████████████████████████████████████████▎ | 38/100 [02:27<04:00, 3.87s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "early stopping at epoch: 38\tbest_epoch: 27\n", + "score used: f1_score\n", + "best_gm_val_score:0.8193496587715776\tbest_fm_val_score:0.9188311688311688\n", + "best_gm_test_score:0.8076728413807066\tbest_fm_test_score:0.8696741854636592\n", + "best_gm_test_precision:0.8454861111111112\tbest_fm_test_precision:0.8846469622331692\n", + "best_gm_test_recall:0.8195503813729426\tbest_fm_test_recall:0.8761541549578482\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "ename": "ValueError", + "evalue": "Expected value argument (Tensor of shape (1386,)) to be within the support (Interval(lower_bound=0.0, upper_bound=1.0)) of the distribution Beta(), but found invalid values:\ntensor([0.1000, 0.6000, 0.8000, ..., 0.2000, 0.4161, 0.0000], device='cuda:0')", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m/tmp/ipykernel_2700021/2244590139.py\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 16\u001b[0m n_hidden = n_hidden)\n\u001b[1;32m 17\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 18\u001b[0;31m probs_fm, probs_gm = jl.fit_and_predict_proba(path_L = L_path_pkl, path_U = U_path_pkl, path_V = V_path_pkl, \\\n\u001b[0m\u001b[1;32m 19\u001b[0m \u001b[0mpath_T\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mT_path_pkl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mloss_func_mask\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mloss_func_mask\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbatch_size\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mbatch_size\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlr_fm\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlr_fm\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlr_gm\u001b[0m \u001b[0;34m=\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 20\u001b[0m \u001b[0mlr_gm\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0muse_accuracy_score\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0muse_accuracy_score\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpath_log\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlog_path_jl_1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mreturn_gm\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mn_epochs\u001b[0m \u001b[0;34m=\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.8/site-packages/spear/jl/core.py\u001b[0m in \u001b[0;36mfit_and_predict_proba\u001b[0;34m(self, path_L, path_U, path_V, path_T, loss_func_mask, batch_size, lr_fm, lr_gm, use_accuracy_score, path_log, return_gm, n_epochs, start_len, stop_len, is_qt, is_qc, qt, qc, metric_avg)\u001b[0m\n\u001b[1;32m 572\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 573\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mreturn_gm\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 574\u001b[0;31m \t\t\treturn fm_predictions, (probability(self.theta_optimal, self.pi_optimal, torch.tensor(data_U[2], device = self.device).long(), torch.tensor(data_U[6], device = self.device).double(), \\\n\u001b[0m\u001b[1;32m 575\u001b[0m \t\t\t\tself.k, self.n_classes, self.continuous_mask, qc_, self.device)).cpu().detach().numpy()\n\u001b[1;32m 576\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.8/site-packages/spear/utils/utils_cage.py\u001b[0m in \u001b[0;36mprobability\u001b[0;34m(theta, pi, m, s, k, n_classes, continuous_mask, qc, device)\u001b[0m\n\u001b[1;32m 112\u001b[0m \u001b[0mp_s\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mones\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mn_classes\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdevice\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdevice\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdouble\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 113\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0my\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mn_classes\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 114\u001b[0;31m \u001b[0mp_s\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mprobability_s_given_y_l\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpi\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0my\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mm\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mk\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcontinuous_mask\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mqc\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 115\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mp_l_y\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mp_s\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 116\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.8/site-packages/spear/utils/utils_cage.py\u001b[0m in \u001b[0;36mprobability_s_given_y_l\u001b[0;34m(pi, s, y, m, k, continuous_mask, qc)\u001b[0m\n\u001b[1;32m 86\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mk\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 87\u001b[0m \u001b[0mtemp\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mBeta\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mr\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mparams\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparams\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mr\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 88\u001b[0;31m \u001b[0mprobability\u001b[0m \u001b[0;34m*=\u001b[0m \u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexp\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtemp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlog_prob\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdouble\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mm\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdouble\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mcontinuous_mask\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 89\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mm\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdouble\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mcontinuous_mask\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 90\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mprobability\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.8/site-packages/torch/distributions/beta.py\u001b[0m in \u001b[0;36mlog_prob\u001b[0;34m(self, value)\u001b[0m\n\u001b[1;32m 60\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mlog_prob\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 61\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_validate_args\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 62\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_validate_sample\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 63\u001b[0m \u001b[0mheads_tails\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstack\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1.0\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 64\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_dirichlet\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlog_prob\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mheads_tails\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.8/site-packages/torch/distributions/distribution.py\u001b[0m in \u001b[0;36m_validate_sample\u001b[0;34m(self, value)\u001b[0m\n\u001b[1;32m 286\u001b[0m \u001b[0mvalid\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msupport\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcheck\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 287\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mvalid\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mall\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 288\u001b[0;31m raise ValueError(\n\u001b[0m\u001b[1;32m 289\u001b[0m \u001b[0;34m\"Expected value argument \"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 290\u001b[0m \u001b[0;34mf\"({type(value).__name__} of shape {tuple(value.shape)}) \"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mValueError\u001b[0m: Expected value argument (Tensor of shape (1386,)) to be within the support (Interval(lower_bound=0.0, upper_bound=1.0)) of the distribution Beta(), but found invalid values:\ntensor([0.1000, 0.6000, 0.8000, ..., 0.2000, 0.4161, 0.0000], device='cuda:0')" + ] + } + ], + "source": [ + "loss_func_mask = [1,0,1,1,1,1,1] \n", + "'''\n", + "One can keep 0s in places where he don't want the specific loss function to be part\n", + "the final loss function used in training. Refer documentation(spear.JL.core.JL) to understand\n", + "the which index of loss_func_mask refers to what loss function.\n", + "\n", + "Note: the loss_func_mask above may not be the optimal mask for sms dataset. We have to try\n", + " some other masks too, to find the best one that gives good accuracies.\n", + "'''\n", + "batch_size = 32\n", + "lr_fm = 0.0003\n", + "lr_gm = 0.01\n", + "use_accuracy_score = False\n", + "\n", + "jl = JL(path_json = path_json, n_lfs = n_lfs, n_features = n_features, feature_model = feature_model, \\\n", + " n_hidden = n_hidden)\n", + "\n", + "probs_fm, probs_gm = jl.fit_and_predict_proba(path_L = L_path_pkl, path_U = U_path_pkl, path_V = V_path_pkl, \\\n", + " path_T = T_path_pkl, loss_func_mask = loss_func_mask, batch_size = batch_size, lr_fm = lr_fm, lr_gm = \\\n", + " lr_gm, use_accuracy_score = use_accuracy_score, path_log = log_path_jl_1, return_gm = True, n_epochs = \\\n", + " 100, start_len = 7,stop_len = 10, is_qt = True, is_qc = True, qt = 0.9, qc = 0.85, metric_avg = 'macro')\n", + "\n", + "labels = np.argmax(probs_fm, 1)\n", + "print(\"probs_fm shape: \", probs_fm.shape)\n", + "print(\"probs_gm shape: \", probs_gm.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "labels_fm_test shape: (100,)\n", + "labels_gm_test shape: (100,)\n", + "accuracy_score of gm: 0.81 | fm: 0.87\n", + "f1_score of gm: [0.82882883 0.78651685] | fm: [0.87619048 0.86315789]\n", + "Macro f1_score: 0.8696741854636592\n", + "Precision score of gm: [0.71875 0.97222222] | fm: [0.79310345 0.97619048]\n", + "Recall score of gm: [0.9787234 0.66037736] | fm: [0.9787234 0.77358491]\n" + ] + } + ], + "source": [ + "labels_fm_test = jl.predict_fm(x_test = X_feats_T, need_strings=False)\n", + "labels_gm_test = jl.predict_gm(path_test = T_path_pkl, qc = 0.85, need_strings=False)\n", + "\n", + "print(\"labels_fm_test shape: \", labels_fm_test.shape)\n", + "print(\"labels_gm_test shape: \", labels_gm_test.shape)\n", + "\n", + "#Y_T is true labels of test data, type is numpy array of shape (num_instances,)\n", + "print(\"accuracy_score of gm: \", accuracy_score(Y_T, labels_gm_test), \"| fm: \", accuracy_score(Y_T, labels_fm_test))\n", + "print(\"f1_score of gm: \", f1_score(Y_T, labels_gm_test, average = None), \"| fm: \", f1_score(Y_T, labels_fm_test, average = None))\n", + "print(\"Macro f1_score: \", f1_score(Y_T, labels_fm_test, average = 'macro'))\n", + "print(\"Precision score of gm: \", precision_score(Y_T, labels_gm_test, average = None), \"| fm: \", precision_score(Y_T, labels_fm_test, average = None))\n", + "print(\"Recall score of gm: \", recall_score(Y_T, labels_gm_test, average = None), \"| fm: \", recall_score(Y_T, labels_fm_test, average = None))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## CAGE Algorithm - With All 9 LFs" + ] + }, + { + "cell_type": "code", + "execution_count": 101, + "metadata": {}, + "outputs": [], + "source": [ + "log_path_cage = 'params/cage/yt_log_1.txt' #jl is an algorithm, can be found below\n", + "params_path = 'params/cage/yt_params.pkl' #file path to store parameters of JL, used below\n", + "\n", + "from spear.cage import Cage\n", + "\n", + "cage = Cage(path_json = path_json, n_lfs = n_lfs)" + ] + }, + { + "cell_type": "code", + "execution_count": 102, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 200/200 [00:11<00:00, 18.16it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "final_test_accuracy_score: 0.89\n", + "test_average_metric: macro\tfinal_test_f1_score: 0.8894583458948848\n", + "probs shape: (1286, 2)\n", + "labels shape: (1286,)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "probs = cage.fit_and_predict_proba(path_pkl = U_path_pkl, path_test = T_path_pkl, path_log = log_path_cage, \\\n", + " qt = 0.9, qc = 0.85, metric_avg = ['macro'], n_epochs = 100, lr = 0.01)\n", + "labels = np.argmax(probs, 1)\n", + "print(\"probs shape: \", probs.shape)\n", + "print(\"labels shape: \",labels.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 104, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "labels_test shape: (100,)\n", + "accuracy_score: 0.89\n", + "Binary f1_score: 0.8971962616822429\n", + "Macro f1_score: 0.8894583458948848\n", + "Micro f1_score: 0.89\n", + "Class Wise f1_score: [0.88172043 0.89719626]\n", + "Class Wise Precision score: [0.82 0.96]\n", + "Class Wise Recall score: [0.95348837 0.84210526]\n" + ] + } + ], + "source": [ + "labels_test = cage.predict(path_test = T_path_pkl, qc = 0.85, need_strings = False)\n", + "print(\"labels_test shape: \", labels_test.shape)\n", + "\n", + "from sklearn.metrics import accuracy_score, f1_score, precision_score, recall_score\n", + "\n", + "#Y_T is true labels of test data, type is numpy array of shape (num_instances,)\n", + "print(\"accuracy_score: \", accuracy_score(Y_T, labels_test))\n", + "print(\"Binary f1_score: \", f1_score(Y_T, labels_test, average = 'binary'))\n", + "print(\"Macro f1_score: \", f1_score(Y_T, labels_test, average = 'macro'))\n", + "print(\"Micro f1_score: \", f1_score(Y_T, labels_test, average = 'micro'))\n", + "print(\"Class Wise f1_score: \", f1_score(Y_T, labels_test, average = None))\n", + "print(\"Class Wise Precision score: \", precision_score(Y_T, labels_test, average = None))\n", + "print(\"Class Wise Recall score: \", recall_score(Y_T, labels_test, average = None))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "heading_collapsed": true + }, + "source": [ + "## Loading 6 LFs " + ] + }, + { + "cell_type": "code", + "execution_count": 160, + "metadata": { + "hidden": true, + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1586/1586 [00:00<00:00, 3826.09it/s]\n" + ] + }, + { + "data": { + "image/png": "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fbn11luZPn06Z599Nj/84Q+X+NhvfetbfPnLX+7R/qQ68whcN2Ume++9N2PHjuVvf/sb119/Pd/+9rd56KGH+nxfCxYs6PPnlCRpeWUm73vf+9hrr724++67ueuuu5g/fz7/8R//sVzP69+9FVNfvnf6+c9/zpe+9CVmzJjBqquuumj56NGjl9q8QdHASSuSRh6Bq8IVV1zBkCFDOPTQQxct22abbchMjjrqKC6++GIigq985Svst99+7L///nz4wx/mPe8pju4ddNBB7LHHHuy9994cffTRXHnllTz33HMcdthhfOITn+DKK6/kq1/9KmuttRZ33HEHd911F3vttRf33Xcfzz77LJ/+9KeZOHEiAKeffjrHH388w4YNY5tttmGVVVbhRz/6EXPnzuXQQw/l3nvvBeCkk05i++23b/8PawXW10d/u6O7R4hVI319VKRb+1z2kRNpef3hD39g6NChHHzwwQAMGjSIE088kVGjRvHHP/6Rn/70p2yxxRYAjB07lhNOOIHNNtuMI444gltvvZUXXniBY489lvHjx3PmmWdy0UUXMX/+fF588UXOOuusRfuZPXs2H/7wh3nqqacA+NGPfsS///u/c+WVV3LMMcew+uqrM2vWLN71rnfx4x//mMzkkEMOYfr06UQEH/3oR/nMZz7T/h+QFtPT905XXnklxx57LOuuuy633norb3nLW/jZz37G6aefzvnnn88ll1zCxRdfzDe/+c1Fz3fllVdywgkn8Jvf/Ib58+dzxBFHLHodfO1rX2PatGk888wzbLvttmyxxRZMmjSJD3zgA8yZM4cXX3yRr371q+y3335V/HgGjL4++tsd3T1C3FQ2cN3UESSdXXTRRcyYMYObbrqJhx9+mO22244ddtiB/fbbj/PPP5/3vOc9PP/881x++eWceuqpnH766ay55ppMmzaN5557ju23355ddtkFgBtuuIFbb7110bS1Z5xxBmuvvTbPPPMM2223He9///t57rnn+PrXv84NN9zA6quvzo477sg222wDwKc//Wk+85nP8Pa3v517772XXXfdlZkzZ7bvhyRJWqHddtttL/tbuMYaa7Dxxhvznve8h/PPP5///M//5IEHHuCBBx5g9OjRfPnLX2bHHXfkjDPO4LHHHmPMmDG8+93vBoq/ezfffDNrr702s2fPXvScr3rVq7j00ksZOnQod999NxMmTGD69OkAXHfdddx+++1ssskmjBs3josuuohRo0Zx//33Lxp++dhjj7Xl56Gl6+l7J4Abb7yR2267jQ022IDtt9+eP//5z3zsYx/j6quvZo899mCfffZZ7LXS6utf/zprrrkmt9xSvHl/9NFHef/738+PfvQjZsyYAcCFF17IBhtswG9/W3wg+/jjfvil5nEI5XK6+uqrmTBhAoMGDWK99dbjne98J9OmTWO33Xbjiiuu4LnnnuPiiy9mhx12YNVVV+X3v/89Z599Nttuuy1vfetbmTdvHnfffTcAY8aMWeyaIz/84Q/ZZptteNvb3sZ9993H3XffzXXXXcc73/lO1l57bYYMGcK+++67aPvLLruMww8/nG233ZY999yTJ554gvnz57f9ZyJJGnjGjh3LBRdcAMD555/PPvvsA8Dvf/97vvOd77DtttsyduxYnn322UUjRXbeeWfWXnvtlz3XCy+8wMc//nG22mor9t13X26//fZF68aMGcNrXvMaBg0axIQJE7j66qt5zWtewz333MMRRxzB7373O9ZYY402fMfqrSW9d4Li/3fEiBGstNJKbLvttkts1rpy2WWXcdhhhy26v9Zaa71sm6222opLL72UL37xi1x11VWsuWYFIyak5eQRuG7aYostFv1h6o6hQ4cyduxYLrnkEiZPnsz+++8PFOPBTz75ZHbdddfFtr/yyit5xStesdj9yy67jL/+9a+sttpqi/7oLc3ChQu55pprGDp0aA++M0mSumfzzTd/2d/CJ554gnvvvZftttuOddZZh5tvvpnJkydz2mmnAcXfvQsvvJA3vOENiz3u2muvXezvXqsTTzyR9dZbj5tuuomFCxcu9net8xTvEcFaa63FTTfdxCWXXMJpp53G+eefzxlnnNEX37KWQ0/fOwGsssoqi24PGjSoz8+PfP3rX88NN9zA1KlT+cpXvsJOO+3EMccc06f7kPqbR+C6accdd+S5555j0qRJi5bdfPPNDBs2jMmTJ/Piiy8yd+5c/vSnPzFmzBgA9ttvP376059y1VVXMW7cOAB23XVXTj31VF544QUA7rrrrkVj/Fs9/vjjrLXWWqy22mrccccdXHPNNQBst912/PGPf+TRRx9lwYIFXHjhhYses8suu3DyyScvut8xXECSpL6w00478fTTT3P22WcD8OKLL/K5z32Ogw46iNVWW4399tuP7373uzz++ONsvfXWQPF37+STTyYzgWKI3LI8/vjjrL/++qy00kqcc845vPjii4vWXXfddfz9739n4cKFTJ48mbe//e08/PDDLFy4kPe///184xvf4IYbbuiH71491Zv3Tstj55135pRTTll0/9FHHwVgyJAhi953/fOf/2S11VbjQx/6EEcddZSvFTVSI4/AVTGpQ0Twy1/+kiOPPJLjjz+eoUOHMnLkSE466STmz5/PNttsQ0Tw3e9+l1e/+tVA0VB9+MMfZvz48YumV/7Yxz7G7NmzefOb30xmMnz4cH71q1+9bH/jxo3jtNNOY7PNNuMNb3gDb3vb2wDYcMMN+fKXv8yYMWNYe+21eeMb37jo8P8Pf/hDDjvsMLbeemsWLFjADjvssOgTUEnSCqjNk9d0/C381Kc+xde//nUWLlzI7rvvvmiWv3322YdPf/rTfPWrX130mK9+9asceeSRbL311ixcuJBRo0bxm9/8Zqn7+dSnPsX73/9+zj77bMaNG7fYkbrtttuOww8/fNEkJnvvvTe33HILBx98MAsXLgTg29/+dj98981WxaQOPX3vdMcddyzX/r7yla9w2GGHseWWWzJo0CC+9rWv8b73vY+JEyey9dZb8+Y3v5mPfOQjHHXUUay00koMGTKEU089tY++W6l9ouMTsboYPXp0dpyo3GHmzJlsttlmFVVUP/Pnz+eVr3wlCxYsYO+99+ajH/0oe++9d7cf78+z95yFsvci4vrMHF11Hcujq3zqkrNQqp8M9PxunXGwN7r6+a2o2TTQXyvLy59f33EWyt5ZWjY5hLKBjj32WLbddlu23HJLRo0axV577VV1SVIlImJcRNwZEbMi4ugu1u8QETdExIKI2KfTugMj4u7y68D2VS1JktR7jRxCOdCdcMIJVZcgVS4iBgGnADsDc4BpETElM29v2exe4CDg850euzbwNWA0kMD15WMfbUftknpn7NixjB07tuoyJKlSjTkCV7ehnk3lz1ErkDHArMy8JzOfB84DxrdukJmzM/NmYGGnx+4KXJqZj5RN26XAuHYULS0vc7x3BuLPbSB+z33Bn5vqrhEN3NChQ5k3b56/UMspM5k3b56XGdCKYkPgvpb7c8pl/f1YqTL+Peydgfj3z9dK7wzE14qapxFDKEeMGMGcOXOYO3du1aU0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4LzMfA74e0TMAsYAf13eOk459A/L+xSLOey0HZe5zStf+Urmz5/fp/vtSyeddBITJ05ktdVWq7oUqXJdZVUn44GzMzOBayJiWESsn5kPtKdCqWe+t98effp8n5v8m2VuM2jQILbaaqtF9/fff3+OPvroPq2jK9tuuy1vfOMbOe+88/p9X0tjAyc1UGay9957c+CBBy4KkZtuuomHHnpomQ3cggULGDx48BLvd8eZZ57JlltuWasGrhs+Ckwub29I0dB1mFMuUyd98Xo56aST+NCHPmQDJ3XPhsB9Lfc78skGTiqtuuqqzJgxo637nDlzJi+++CJXXXUVTz31FK94xSvauv9WjW3g+vqoR3d19+iI1J+uuOIKhgwZwqGHHrpo2TbbbENmctRRR3HxxRcTEXzlK19hv/3248orr+SrX/0qa621FnfccQeTJk1a7P7MmTM5+uijufLKK3nuuec47LDD+MQnPgHA8ccfz89+9jNWWmkldtttN0aPHs306dP54Ac/yKqrrspf//pXVl111ap+FN0SEf8BLAB+3ovHTqQYxsTGG2/cx5X1rSuvvJJjjz2Wddddl1tvvZW3vOUt/OxnPyMimDZtGp/+9Kd56qmnWGWVVbj88ssZMmQIn/zkJ5k+fTqDBw/m+9//Pu9617s488wzueiii5g/fz4vvvgiBx988GL3p06dyhFHHMGtt97KCy+8wLHHHsv48eN58cUX+eIXv8jvfvc7VlppJT7+8Y+Tmfzzn//kXe96F+uuuy5XXHFF1T+mFVJfH/ntru4cIVb/aFI2dVdfH8npju4c7VFzjBw5kgkTJnDxxRczePBgJk2axJe+9CVmzZrFUUcdxaGHHsqVV17JMcccw+qrr86sWbN417vexY9//GNWWmnpZ5ade+65fPjDH2bmzJn8+te/5oADDgDo8u/raqut9rK/h0cccUSffZ+NbeCkgazjzXlnF110ETNmzOCmm27i4YcfZrvttmOHHXYA4IYbbuDWW29l1KhRXHnllYvdnzRpEmuuuSbTpk3jueeeY/vtt2eXXXbhjjvu4Ne//jXXXnstq622Go888ghrr702P/rRjzjhhBMYPXp0u7/1HouIg4A9gJ3KIUkA9wMbtWw2olz2Mpk5CZgEMHr06Oxqmzq58cYbue2229hggw3Yfvvt+fOf/8yYMWPYb7/9mDx5Mttt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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PolarityCoverageOverlapsConflictsCorrectIncorrectEmp. Acc.
keyword_my[-1.0, 0.0]0.1910470.1046660.013241263400.867987
keyword_subscribe[-1.0, 0.0]0.0863810.0636820.01198013701.000000
keyword_link[-1.0, 0.0]0.1191680.0731400.046658178110.941799
keyword_please[-1.0, 0.0]0.0920550.0794450.00441414420.986301
short_comment[-1.0, 1.0]0.2257250.0819670.0655742381200.664804
textblob_polarity[-1.0, 1.0]0.0334170.0189160.0025224670.867925
\n", + "
" + ], + "text/plain": [ + " Polarity Coverage Overlaps Conflicts Correct \\\n", + "keyword_my [-1.0, 0.0] 0.191047 0.104666 0.013241 263 \n", + "keyword_subscribe [-1.0, 0.0] 0.086381 0.063682 0.011980 137 \n", + "keyword_link [-1.0, 0.0] 0.119168 0.073140 0.046658 178 \n", + "keyword_please [-1.0, 0.0] 0.092055 0.079445 0.004414 144 \n", + "short_comment [-1.0, 1.0] 0.225725 0.081967 0.065574 238 \n", + "textblob_polarity [-1.0, 1.0] 0.033417 0.018916 0.002522 46 \n", + "\n", + " Incorrect Emp. Acc. \n", + "keyword_my 40 0.867987 \n", + "keyword_subscribe 0 1.000000 \n", + "keyword_link 11 0.941799 \n", + "keyword_please 2 0.986301 \n", + "short_comment 120 0.664804 \n", + "textblob_polarity 7 0.867925 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from spear.labeling import LFSet, LFAnalysis, PreLabels\n", + "import numpy as np\n", + "\n", + "LFS = [\n", + " keyword_my,\n", + " keyword_subscribe,\n", + " keyword_link,\n", + " keyword_please,\n", + "# keyword_song,\n", + "# regex_check_out,\n", + " short_comment,\n", + "# has_person_nlp,\n", + " textblob_polarity,\n", + "# textblob_subjectivity,\n", + "]\n", + "\n", + "\n", + "rules = LFSet(\"SPAM_LF\")\n", + "rules.add_lf_list(LFS)\n", + "\n", + "R = np.zeros((X.shape[0],len(rules.get_lfs())))\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"youtube\",\n", + " data=X,\n", + " data_feats = X_feats,\n", + " gold_labels=Y,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "L,S = yt_noisy_labels.get_labels()\n", + "\n", + "analyse = yt_noisy_labels.analyse_lfs(plot=True)\n", + "\n", + "result = analyse.head(16)\n", + "display(result)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "hidden": true + }, + "source": [ + "### Create different splits of data here" + ] + }, + { + "cell_type": "code", + "execution_count": 161, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "from utils import get_various_data\n", + "\n", + "validation_size = 100\n", + "test_size = 100\n", + "L_size = 100\n", + "n_lfs = len(rules.get_lfs())\n", + "X = np.asarray(X)\n", + "Y = np.asarray(Y)\n", + "X_V, Y_V, X_feats_V,_, X_T, Y_T, X_feats_T,_, X_L, Y_L, X_feats_L,_, X_U, X_feats_U,_ = get_various_data(X, Y,\\\n", + " X_feats, n_lfs, validation_size, test_size, L_size)" + ] + }, + { + "cell_type": "code", + "execution_count": 162, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "path_json = 'data_pipeline/JL/yt_json.json'\n", + "V_path_pkl = 'data_pipeline/JL/yt_pickle_V.pkl' #validation data - have true labels\n", + "T_path_pkl = 'data_pipeline/JL/yt_pickle_T_6_lfs.pkl' #test data - have true labels\n", + "L_path_pkl = 'data_pipeline/JL/yt_pickle_L.pkl' #Labeled data - have true labels\n", + "U_path_pkl = 'data_pipeline/JL/yt_pickle_U_6_lfs.pkl' #unlabelled data - don't have true labels\n", + "\n", + "log_path_jl_1 = 'log/JL/yt_log_1.txt' #jl is an algorithm, can be found below\n", + "params_path = 'params/JL/yt_params.pkl' #file path to store parameters of JL, used below" + ] + }, + { + "cell_type": "code", + "execution_count": 169, + "metadata": { + "hidden": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 100/100 [00:00<00:00, 2340.36it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 100/100 [00:00<00:00, 4656.72it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 100/100 [00:00<00:00, 4217.03it/s]\n", + "100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1286/1286 [00:00<00:00, 4489.39it/s]\n" + ] + } + ], + "source": [ + "from spear.labeling import PreLabels\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"yt\",\n", + " data=X_V,\n", + " gold_labels=Y_V,\n", + " data_feats=X_feats_V,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "yt_noisy_labels.generate_pickle(V_path_pkl)\n", + "yt_noisy_labels.generate_json(path_json) #generating json files once is enough\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"yt\",\n", + " data=X_T,\n", + " gold_labels=Y_T,\n", + " data_feats=X_feats_T,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "yt_noisy_labels.generate_pickle(T_path_pkl)\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"yt\",\n", + " data=X_L,\n", + " gold_labels=Y_L,\n", + " data_feats=X_feats_L,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "yt_noisy_labels.generate_pickle(L_path_pkl)\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"yt\",\n", + " data=X_U,\n", + " rules=rules,\n", + " data_feats=X_feats_U,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2) #note that we don't pass gold_labels here, for the unlabelled data\n", + "yt_noisy_labels.generate_pickle(U_path_pkl)" + ] + }, + { + "cell_type": "code", + "execution_count": 170, + "metadata": { + "hidden": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of elements in data list: 10\n", + "Shape of feature matrix: (1286, 16634)\n", + "Shape of labels matrix: (1286, 6)\n", + "Shape of continuous scores matrix : (1286, 6)\n", + "Total number of classes: 2\n", + "Classes dictionary in json file(modified to have integer keys): {1: 'SPAM', 0: 'HAM'}\n" + ] + } + ], + "source": [ + "from spear.utils import get_data, get_classes\n", + "\n", + "data_U = get_data(path = U_path_pkl, check_shapes=True)\n", + "#check_shapes being True(above), asserts for relative shapes of arrays in pickle file\n", + "print(\"Number of elements in data list: \", len(data_U))\n", + "print(\"Shape of feature matrix: \", data_U[0].shape)\n", + "print(\"Shape of labels matrix: \", data_U[1].shape)\n", + "print(\"Shape of continuous scores matrix : \", data_U[6].shape)\n", + "print(\"Total number of classes: \", data_U[9])\n", + "\n", + "classes = get_classes(path = path_json)\n", + "print(\"Classes dictionary in json file(modified to have integer keys): \", classes)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "heading_collapsed": true + }, + "source": [ + "## JL with 6 LFS" + ] + }, + { + "cell_type": "code", + "execution_count": 171, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "from spear.jl import JL\n", + "\n", + "n_features = 16634\n", + "n_hidden = 512\n", + "feature_model = 'lr'\n", + "'''\n", + "'nn' is neural network. other alternative is 'lr'(logistic regression) which doesn't need n_hidden to be passed\n", + "during initialisation.\n", + "''' \n", + "\n", + "jl = JL(path_json = path_json, n_lfs = n_lfs, n_features = n_features, feature_model = feature_model)" + ] + }, + { + "cell_type": "code", + "execution_count": 172, + "metadata": { + "hidden": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 21%|████████████████████████████▎ | 21/100 [00:48<03:03, 2.33s/it]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "early stopping at epoch: 21\tbest_epoch: 10\n", + "score used: f1_score\n", + "best_gm_val_score:0.6715927750410509\tbest_fm_val_score:0.8973727422003284\n", + "best_gm_test_score:0.6189887756152817\tbest_fm_test_score:0.9073215940685819\n", + "best_gm_test_precision:0.6884920634920635\tbest_fm_test_precision:0.9223259762308998\n", + "best_gm_test_recall:0.6535353535353535\tbest_fm_test_recall:0.9020202020202019\n" + ] + }, + { + "ename": "ValueError", + "evalue": "Expected value argument (Tensor of shape (1286,)) to be within the support (Interval(lower_bound=0.0, upper_bound=1.0)) of the distribution Beta(), but found invalid values:\ntensor([0.0000, 0.6500, 0.3548, ..., 0.0000, 0.0000, 0.0000], device='cuda:0')", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m/tmp/ipykernel_2357964/2244590139.py\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 16\u001b[0m n_hidden = n_hidden)\n\u001b[1;32m 17\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 18\u001b[0;31m probs_fm, probs_gm = jl.fit_and_predict_proba(path_L = L_path_pkl, path_U = U_path_pkl, path_V = V_path_pkl, \\\n\u001b[0m\u001b[1;32m 19\u001b[0m \u001b[0mpath_T\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mT_path_pkl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mloss_func_mask\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mloss_func_mask\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbatch_size\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mbatch_size\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlr_fm\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlr_fm\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlr_gm\u001b[0m \u001b[0;34m=\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 20\u001b[0m \u001b[0mlr_gm\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0muse_accuracy_score\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0muse_accuracy_score\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpath_log\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlog_path_jl_1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mreturn_gm\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mn_epochs\u001b[0m \u001b[0;34m=\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.8/site-packages/spear/jl/core.py\u001b[0m in \u001b[0;36mfit_and_predict_proba\u001b[0;34m(self, path_L, path_U, path_V, path_T, loss_func_mask, batch_size, lr_fm, lr_gm, use_accuracy_score, path_log, return_gm, n_epochs, start_len, stop_len, is_qt, is_qc, qt, qc, metric_avg)\u001b[0m\n\u001b[1;32m 572\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 573\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mreturn_gm\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 574\u001b[0;31m \t\t\treturn fm_predictions, (probability(self.theta_optimal, self.pi_optimal, torch.tensor(data_U[2], device = self.device).long(), torch.tensor(data_U[6], device = self.device).double(), \\\n\u001b[0m\u001b[1;32m 575\u001b[0m \t\t\t\tself.k, self.n_classes, self.continuous_mask, qc_, self.device)).cpu().detach().numpy()\n\u001b[1;32m 576\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.8/site-packages/spear/utils/utils_cage.py\u001b[0m in \u001b[0;36mprobability\u001b[0;34m(theta, pi, m, s, k, n_classes, continuous_mask, qc, device)\u001b[0m\n\u001b[1;32m 112\u001b[0m \u001b[0mp_s\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mones\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mn_classes\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdevice\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdevice\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdouble\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 113\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0my\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mn_classes\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 114\u001b[0;31m \u001b[0mp_s\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mprobability_s_given_y_l\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpi\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0my\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mm\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mk\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcontinuous_mask\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mqc\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 115\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mp_l_y\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mp_s\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 116\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.8/site-packages/spear/utils/utils_cage.py\u001b[0m in \u001b[0;36mprobability_s_given_y_l\u001b[0;34m(pi, s, y, m, k, continuous_mask, qc)\u001b[0m\n\u001b[1;32m 86\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mk\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 87\u001b[0m \u001b[0mtemp\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mBeta\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mr\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mparams\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparams\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mr\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 88\u001b[0;31m \u001b[0mprobability\u001b[0m \u001b[0;34m*=\u001b[0m \u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexp\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtemp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlog_prob\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdouble\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mm\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdouble\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mcontinuous_mask\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 89\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mm\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdouble\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mcontinuous_mask\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 90\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mprobability\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.8/site-packages/torch/distributions/beta.py\u001b[0m in \u001b[0;36mlog_prob\u001b[0;34m(self, value)\u001b[0m\n\u001b[1;32m 60\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mlog_prob\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 61\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_validate_args\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 62\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_validate_sample\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 63\u001b[0m \u001b[0mheads_tails\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstack\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1.0\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 64\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_dirichlet\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlog_prob\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mheads_tails\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.8/site-packages/torch/distributions/distribution.py\u001b[0m in \u001b[0;36m_validate_sample\u001b[0;34m(self, value)\u001b[0m\n\u001b[1;32m 286\u001b[0m \u001b[0mvalid\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msupport\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcheck\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 287\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mvalid\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mall\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 288\u001b[0;31m raise ValueError(\n\u001b[0m\u001b[1;32m 289\u001b[0m \u001b[0;34m\"Expected value argument \"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 290\u001b[0m \u001b[0;34mf\"({type(value).__name__} of shape {tuple(value.shape)}) \"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mValueError\u001b[0m: Expected value argument (Tensor of shape (1286,)) to be within the support (Interval(lower_bound=0.0, upper_bound=1.0)) of the distribution Beta(), but found invalid values:\ntensor([0.0000, 0.6500, 0.3548, ..., 0.0000, 0.0000, 0.0000], device='cuda:0')" + ] + } + ], + "source": [ + "loss_func_mask = [1,0,1,1,1,1,1] \n", + "'''\n", + "One can keep 0s in places where he don't want the specific loss function to be part\n", + "the final loss function used in training. Refer documentation(spear.JL.core.JL) to understand\n", + "the which index of loss_func_mask refers to what loss function.\n", + "\n", + "Note: the loss_func_mask above may not be the optimal mask for sms dataset. We have to try\n", + " some other masks too, to find the best one that gives good accuracies.\n", + "'''\n", + "batch_size = 32\n", + "lr_fm = 0.0003\n", + "lr_gm = 0.01\n", + "use_accuracy_score = False\n", + "\n", + "jl = JL(path_json = path_json, n_lfs = n_lfs, n_features = n_features, feature_model = feature_model, \\\n", + " n_hidden = n_hidden)\n", + "\n", + "probs_fm, probs_gm = jl.fit_and_predict_proba(path_L = L_path_pkl, path_U = U_path_pkl, path_V = V_path_pkl, \\\n", + " path_T = T_path_pkl, loss_func_mask = loss_func_mask, batch_size = batch_size, lr_fm = lr_fm, lr_gm = \\\n", + " lr_gm, use_accuracy_score = use_accuracy_score, path_log = log_path_jl_1, return_gm = True, n_epochs = \\\n", + " 100, start_len = 7,stop_len = 10, is_qt = True, is_qc = True, qt = 0.9, qc = 0.85, metric_avg = 'macro')\n", + "\n", + "labels = np.argmax(probs_fm, 1)\n", + "print(\"probs_fm shape: \", probs_fm.shape)\n", + "print(\"probs_gm shape: \", probs_gm.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 173, + "metadata": { + "hidden": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "labels_fm_test shape: (100,)\n", + "labels_gm_test shape: (100,)\n", + "accuracy_score of gm: 0.63 | fm: 0.91\n", + "f1_score of gm: [0.68376068 0.55421687] | fm: [0.89156627 0.92307692]\n", + "Macro f1_score: 0.9073215940685819\n", + "Precision score of gm: [0.55555556 0.82142857] | fm: [0.97368421 0.87096774]\n", + "Recall score of gm: [0.88888889 0.41818182] | fm: [0.82222222 0.98181818]\n" + ] + } + ], + "source": [ + "labels_fm_test = jl.predict_fm(x_test = X_feats_T, need_strings=False)\n", + "labels_gm_test = jl.predict_gm(path_test = T_path_pkl, qc = 0.85, need_strings=False)\n", + "\n", + "print(\"labels_fm_test shape: \", labels_fm_test.shape)\n", + "print(\"labels_gm_test shape: \", labels_gm_test.shape)\n", + "\n", + "#Y_T is true labels of test data, type is numpy array of shape (num_instances,)\n", + "print(\"accuracy_score of gm: \", accuracy_score(Y_T, labels_gm_test), \"| fm: \", accuracy_score(Y_T, labels_fm_test))\n", + "print(\"f1_score of gm: \", f1_score(Y_T, labels_gm_test, average = None), \"| fm: \", f1_score(Y_T, labels_fm_test, average = None))\n", + "print(\"Macro f1_score: \", f1_score(Y_T, labels_fm_test, average = 'macro'))\n", + "print(\"Precision score of gm: \", precision_score(Y_T, labels_gm_test, average = None), \"| fm: \", precision_score(Y_T, labels_fm_test, average = None))\n", + "print(\"Recall score of gm: \", recall_score(Y_T, labels_gm_test, average = None), \"| fm: \", recall_score(Y_T, labels_fm_test, average = None))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "heading_collapsed": true + }, + "source": [ + "## CAGE with 6 LFs" + ] + }, + { + "cell_type": "code", + "execution_count": 122, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "log_path_cage = 'params/cage/yt_log_2.txt' #jl is an algorithm, can be found below\n", + "params_path = 'params/cage/yt_params.pkl' #file path to store parameters of JL, used below" + ] + }, + { + "cell_type": "code", + "execution_count": 123, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "# from spear.cage import Cage\n", + "\n", + "cage2 = Cage(path_json = path_json, n_lfs = n_lfs)" + ] + }, + { + "cell_type": "code", + "execution_count": 124, + "metadata": { + "hidden": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 100/100 [00:04<00:00, 22.57it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "final_test_accuracy_score: 0.69\n", + "test_average_metric: macro\tfinal_test_f1_score: 0.6807743795695603\n", + "probs shape: (1286, 2)\n", + "labels shape: (1286,)\n" + ] + } + ], + "source": [ + "probs = cage2.fit_and_predict_proba(path_pkl = U_path_pkl, path_test = T_path_pkl, path_log = log_path_cage, \\\n", + " qt = 0.9, qc = 0.85, metric_avg = ['macro'], n_epochs = 100, lr = 0.01)\n", + "labels = np.argmax(probs, 1)\n", + "print(\"probs shape: \", probs.shape)\n", + "print(\"labels shape: \",labels.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 125, + "metadata": { + "hidden": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "labels_test shape: (100,)\n", + "accuracy_score: 0.69\n", + "Macro f1_score: 0.6807743795695603\n", + "Micro f1_score: 0.69\n", + "Class Wise f1_score: [0.73504274 0.62650602]\n", + "Class Wise Precision score: [0.59722222 0.92857143]\n", + "Class Wise Recall score: [0.95555556 0.47272727]\n" + ] + } + ], + "source": [ + "labels_test = cage2.predict(path_test = T_path_pkl, qc = 0.85, need_strings = False)\n", + "print(\"labels_test shape: \", labels_test.shape)\n", + "\n", + "from sklearn.metrics import accuracy_score, f1_score, precision_score, recall_score\n", + "\n", + "#Y_T is true labels of test data, type is numpy array of shape (num_instances,)\n", + "print(\"accuracy_score: \", accuracy_score(Y_T, labels_test))\n", + "# print(\"Binary f1_score: \", f1_score(Y_T, labels_test, average = 'binary'))\n", + "print(\"Macro f1_score: \", f1_score(Y_T, labels_test, average = 'macro'))\n", + "print(\"Micro f1_score: \", f1_score(Y_T, labels_test, average = 'micro'))\n", + "print(\"Class Wise f1_score: \", f1_score(Y_T, labels_test, average = None))\n", + "print(\"Class Wise Precision score: \", precision_score(Y_T, labels_test, average = None))\n", + "print(\"Class Wise Recall score: \", recall_score(Y_T, labels_test, average = None))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "heading_collapsed": true + }, + "source": [ + "## Loading 4 LFs" + ] + }, + { + "cell_type": "code", + "execution_count": 174, + "metadata": { + "hidden": true, + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1586/1586 [00:00<00:00, 4321.48it/s]\n" + ] + }, + { + "data": { + "image/png": "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LXXdtKO+3tXt3fShF4xpvd/+9re8+c1vZu7cuWy44YZsttlmnHDCCTzucY/raj0aR8du0OXt3bXcVRYsWMARRxzBNddcw+LFi3nhC1/If/7nf7Lmmmuu0kvfdNNNvPCFL+Sqq65ape1I6r0dT9+xq9u78lVXjmm9bv2/9qMf/YjDDz+cNdZYgzPOOIMDDjiAq666innz5vG5z32OT3ziE6M+94Mf/CDvfOc7V+j1pMlsQm4jkORRwOeBQ6pq8fDlVTW7qmZU1YypU6dOREnSpFNV7Lfffuy+++788pe/5Gc/+xn/8R//we9+97uuv9aiRYu6vk31RlXx4he/mBe96EXccMMN/OIXv+Duu+/m3/7t31Zpu/6OSFpV3fx/7Ytf/CJHH300l112Geuss87S+TNmzFhm8wadBk7qJ2M5AncrsNWQ6S2beWOSZH3g68C/VdVPV6w8jaTbR4fG01iPPAm+//3vs8Yaa3D44YcvnbfzzjtTVbzjHe/gG9/4Bkl417vexYEHHshBBx3EK17xCl7wgs73+NWvfjUvfOEL2W+//TjqqKO48MILue+++zjiiCN4/etfz4UXXsi73/1uNtpoI6677jp+8Ytf8KIXvYhbbrmFe++9lze96U0cdthhAJxyyikcd9xxbLjhhuy8886stdZafPKTn2ThwoUcfvjh3HzzzQCccMIJPP3pT5/4b5aW+t73vsfaa6/NIYccAsCUKVM4/vjjmT59Oj/4wQ/47Gc/yw477ADA7rvvzkc+8hGe8IQn8MY3vpGrrrqK+++/n2OPPZZ9992X0047jfPOO4+7776bBx54gNNPP33p69x000284hWv4J577gHgk5/8JH//93/PhRdeyDHHHMN6663H/Pnzefazn82nPvUpqopDDz2UefPmkYTXvOY1vOUtb5n4b9B46PZR1vE2hqO40nhY0f/XLrzwQo499lg23XRTrrrqKp7ylKfwhS98gVNOOYWzzz6bCy64gG984xt84AMfWLq9Cy+8kI985CN87Wtf4+677+aNb3zj0tx5z3vew9y5c/nrX//KLrvswg477MDs2bP5x3/8RxYsWMADDzzAu9/9bg480DH22qbbR5TH01iPVq+IsTRwc4Ftk0yn07gdBLx0LBtPsibwZeBzVXXOSlcpDYAl/1kNd95553HZZZdx+eWX84c//IFdd92V3XbbjQMPPJCzzz6bF7zgBfztb3/ju9/9LieffDKnnHIKG2ywAXPnzuW+++7j6U9/Os973vMAuPTSS7nqqquWDo186qmnsvHGG/PXv/6VXXfdlZe85CXcd999vO997+PSSy9lvfXWY4899mDnnXcG4E1vehNvectbeMYznsHNN9/MXnvtxbXXXjtx3yQ9xNVXX/2Q35v111+frbfemhe84AWcffbZ/Pu//zu33XYbt912GzNmzOCd73wne+yxB6eeeip//OMfmTlzJs95znOAzu/IFVdcwcYbb8xNN920dJuPeMQj+Pa3v83aa6/NDTfcwMEHH8y8efMAuOSSS7jmmmvYZpttmDVrFueddx7Tp0/n1ltvXXr65R//+McJ+X5ImjxW9P81gJ///OdcffXVbL755jz96U/nxz/+Ma997Wu56KKLeOELX8j+++//oGwa6n3vex8bbLABV17ZecN855138pKXvIRPfvKTXHbZZQCce+65bL755nz9650Pw++6yw841D7LPYWyqhYBRwIXANcCZ1fV1Unem2QfgCS7JlkAHAB8JsnVzdP/EdgNeHWSy5qvXcZjR6R+ddFFF3HwwQczZcoUNttsM571rGcxd+5c9t57b77//e9z33338Y1vfIPddtuNddZZh29961t87nOfY5ddduGpT30qt99+OzfccAMAM2fOfNB9bT7xiU+w884787SnPY1bbrmFG264gUsuuYRnPetZbLzxxqyxxhoccMABS9f/zne+w5FHHskuu+zCPvvsw5/+9CfuvvvuCf+eaGx23313zjmn89nZ2Wefzf77d+7y8q1vfYsPfehD7LLLLuy+++7ce++9S4+qPve5z2XjjTd+yLbuv/9+Xve617HjjjtywAEHcM01S8exYubMmTz60Y9mypQpHHzwwVx00UU8+tGP5sYbb+SNb3wj3/zmN1l//fUnYI8ltcFo/69BJ0+23HJLVlttNXbZZZdRm7WRfOc73+GII45YOr3RRhs9ZJ0dd9yRb3/72/zrv/4rP/rRj9hgg5YdUZcY4428q+p84Pxh844Z8ngunVMrhz/vC8AXVrFGaSDssMMOS99sj8Xaa6/N7rvvzgUXXMBZZ53FQQcdBHSuOTjxxBPZa6+9HrT+hRdeyMMe9rAHTX/nO9/hJz/5Ceuuu+7SN/LLsnjxYn7605+y9tprr8CeaTxtv/32D/m9+dOf/sTNN9/MrrvuyiabbMIVV1zBWWedxac//Wmg8zty7rnnst122z3oeRdffPGDfkeGOv7449lss824/PLLWbx48YN+B4YPuZ2EjTbaiMsvv5wLLriAT3/605x99tmceuqp3dhlSS2xov+vAay11lpLH0+ZMqXr1+M+7nGP49JLL+X888/nXe96F3vuuSfHHHPM8p8oTSITMoiJpOXbY489uO+++5g9e/bSeVdccQUbbrghZ511Fg888AALFy7khz/8ITNnzgTgwAMP5LOf/Sw/+tGPmDVrFgB77bUXJ598Mvfffz8Av/jFL5ZetzTUXXfdxUYbbcS6667Lddddx09/2rlEddddd+UHP/gBd955J4sWLeLcc89d+pznPe95nHjiiUunl5ySot7Zc889+ctf/sLnPvc5AB544AHe9ra38epXv5p1112XAw88kA9/+MPcdddd7LTTTkDnd+TEE0+kqoDOKUvLc9ddd/GoRz2K1VZbjc9//vM88MADS5ddcskl/OpXv2Lx4sWcddZZPOMZz+APf/gDixcv5iUveQnvf//7ufTSS8dh7yVNZivz/9qqeO5zn8tJJ520dPrOO+8EYI011lj6f+JvfvMb1l13XV7+8pfzjne8w2xSK43pCJw0aHox+EoSvvzlL/PmN7+Z4447jrXXXptp06ZxwgkncPfdd7PzzjuThA9/+MM88pGPBDoN1Ste8Qr23XffpUPGv/a1r+Wmm27iyU9+MlXF1KlT+cpXvvKQ15s1axaf/vSnecITnsB2223H0572NAC22GIL3vnOdzJz5kw23nhjHv/4xy89xeQTn/gERxxxBDvttBOLFi1it912W3pUR40JHjBiye/NG97wBt73vvexePFinv/85y8ddW3//ffnTW96E+9+97uXPufd7343b37zm9lpp51YvHgx06dP52tf+9oyX+cNb3gDL3nJS/jc5z7HrFmzHnSkbtddd+XII49cOojJfvvtx5VXXskhhxzC4sWdgYf/4z/+Yxz2XtJYjcdACsuzov+vXXfddav0eu9617s44ogjeOITn8iUKVN4z3vew4tf/GIOO+wwdtppJ5785Cfzyle+kne84x2sttpqrLHGGpx88sld2ltp4mTJJ7CTxYwZM2rJhfEamaNQdt+1117LE57whF6XMWncfffdPPzhD2fRokXst99+vOY1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1dU6RrLLLrvw+Mc/njPPPHPcX2tZbOCkFqoq9ttvP171qlctDZHLL7+c3/3ud8tt4BYtWsTqq68+6vRYnHbaaTzxiU+0gZPUVd3IpxNOOIGXv/zlk7aBG4MtgFuGTC9o5tnASY111lmHyy67bEJf89prr+WBBx7gRz/6Effccw8Pe9jDJvT1h1qhVExyKvBC4PdV9cRm3lnAds0qGwJ/rKpdmk+XrgWub5b9tKoO70bRg67bR3zG01iPJmnFfP/732eNNdbg8MP/709q5513pqp4xzvewTe+8Q2S8K53vYsDDzyQCy+8kHe/+91stNFGXHfddcyePftB09deey1HHXUUF154Iffddx9HHHEEr3/96wE47rjj+MIXvsBqq63G3nvvzYwZM5g3bx4ve9nLWGeddfjJT37COuus06tvhSaRbh8NGm9jOdqk0V144YUce+yxbLrpplx11VU85SlP4Qtf+AJJmDt3Lm9605u45557WGuttfjud7/LGmuswT/90z8xb948Vl99dT72sY/x7Gc/m9NOO43zzjuPu+++mwceeIBDDjnkQdPnn38+b3zjG7nqqqu4//77OfbYY9l333154IEH+Nd//Ve++c1vstpqq/G6172OquI3v/kNz372s9l00035/ve/3+tv07hJchidUyzZeuutV3o73T56Mp7GcmRGg23atGkcfPDBfOMb32D11Vdn9uzZHH300cyfP593vOMdHH744Vx44YUcc8wxrLfeesyfP59nP/vZfOpTn2K11ZZ9ZdkZZ5zBK17xCq699lq++tWv8tKXvhRgxLxbd911H5JPb3zjG7u2nyt6BO404JPA55bMqKoDlzxO8lHgriHr/7KqdlmF+iSNYMmbpeHOO+88LrvsMi6//HL+8Ic/sOuuu7LbbrsBcOmll3LVVVcxffp0LrzwwgdNz549mw022IC5c+dy33338fSnP53nPe95XHfddXz1q1/l4osvZt111+WOO+5g44035pOf/CQf+chHmDFjxkTvuqRJ5Oc//zlXX301m2++OU9/+tP58Y9/zMyZMznwwAM566yz2HXXXfnTn/7EOuusw8c//nGScOWVV3LdddfxvOc9j1/84hdAJ5+uuOIKNt54Y0477bQHTb/zne9kjz324NRTT+WPf/wjM2fO5DnPeQ6f+9znuOmmm7jssstYffXVl+bTxz72Mb7//e+z6aab9vi7s9JuBbYaMr1lM+9Bqmo2MBtgxowZNTGlSZPDX//6V3bZZZel00cffTQHHthpSbbeemsuu+wy3vKWt/DqV7+aH//4x9x777088YlPXPrB9yWXXMI111zDNttsw6xZszjvvPPYf//9l/maZ511Ft/+9re57rrrOPHEE3npS1/K3/72txHzbvbs2Q/Jp25aoQZuWedtpzOEyj8CfqQp9chFF13EwQcfzJQpU9hss8141rOexdy5c1l//fWZOXPmg+4xMnT6W9/6FldccQXnnHMOAHfddRc33HAD3/nOdzjkkEOWnoq08cYbT/xOSZq0Zs6cyZZbbgl0rg256aab2GCDDXjUox7FrrvuCsD6668PdPJpySfQj3/849lmm22WNnDPfe5zH5QvQ6e/9a1vMWfOHD7ykY8AnSHMb775Zr7zne9w+OGHLz3Fso/yaQ5wZJIzgacCd3n9m/RgyzqFcp999gFgxx135O6772a99dZjvfXWY6211uKPf/wj0MmuRz/60QAcfPDBXHTRRcts4ObNm8emm27K1ltvzRZbbMFrXvMa7rjjDm699dYR826886mb18A9E/hdVd0wZN70JD8H/gS8q6p+1MXXkwbWDjvssLTZGqvh52oPna4qTjzxRPbaa68HrXPBBResfJGS+t5aa6219PGUKVNYtGjRSm1nefl07rnnst122w1/WislOQPYHdg0yQLgPcAaAFX1aeB84PnAfOAvwCG9qVRtNBGnxD7jiHfw2zUn7zAaS3JptdVWe1BGrbbaakszavjQ/csbyv+MM87guuuuY9q0aQD86U9/4txzz+VpT3taFysfu27eRuBg4Iwh07cBW1fVk4C3Al9Ksv5IT0xyWJJ5SeYtXLiwiyVJ/WmPPfbgvvvuY/bs2UvnXXHFFWy44YacddZZPPDAAyxcuJAf/vCHzJw5c7nb22uvvTj55JO5//77AfjFL37BPffcw3Of+1w++9nP8pe//AVg6SkA6623Hn/+85/HYc8ktd12223Hbbfdxty5cwH485//zKJFi3jmM5/JF7/4RaCTMTfffPOYmrK99tqLE088kc6gjJ3TNqFzlO4zn/nM0jdkbcmnqjq4qh5VVWtU1ZZVdUpVfbpp3qiOI6rqMVW1Y1XN63XNUr+55JJL+NWvfsXixYs566yzeMYznjHquosXL+bs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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PolarityCoverageOverlapsConflictsCorrectIncorrectEmp. Acc.
keyword_subscribe[-1.0, 0.0]0.0863810.0346780.00063113701.000000
keyword_link[-1.0, 0.0]0.1191680.0189160.000631178110.941799
keyword_please[-1.0, 0.0]0.0920550.0472890.00000014420.986301
textblob_polarity[-1.0, 1.0]0.0334170.0012610.0012614670.867925
\n", + "
" + ], + "text/plain": [ + " Polarity Coverage Overlaps Conflicts Correct \\\n", + "keyword_subscribe [-1.0, 0.0] 0.086381 0.034678 0.000631 137 \n", + "keyword_link [-1.0, 0.0] 0.119168 0.018916 0.000631 178 \n", + "keyword_please [-1.0, 0.0] 0.092055 0.047289 0.000000 144 \n", + "textblob_polarity [-1.0, 1.0] 0.033417 0.001261 0.001261 46 \n", + "\n", + " Incorrect Emp. Acc. \n", + "keyword_subscribe 0 1.000000 \n", + "keyword_link 11 0.941799 \n", + "keyword_please 2 0.986301 \n", + "textblob_polarity 7 0.867925 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from spear.labeling import LFSet, LFAnalysis, PreLabels\n", + "import numpy as np\n", + "\n", + "LFS = [\n", + "# keyword_my,\n", + " keyword_subscribe,\n", + " keyword_link,\n", + " keyword_please,\n", + "# keyword_song,\n", + "# regex_check_out,\n", + "# short_comment,\n", + "# has_person_nlp,\n", + " textblob_polarity,\n", + "# textblob_subjectivity,\n", + "]\n", + "\n", + "\n", + "rules = LFSet(\"SPAM_LF\")\n", + "rules.add_lf_list(LFS)\n", + "\n", + "R = np.zeros((X.shape[0],len(rules.get_lfs())))\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"youtube\",\n", + " data=X,\n", + " data_feats = X_feats,\n", + " gold_labels=Y,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "L,S = yt_noisy_labels.get_labels()\n", + "\n", + "analyse = yt_noisy_labels.analyse_lfs(plot=True)\n", + "\n", + "result = analyse.head(16)\n", + "display(result)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "hidden": true + }, + "source": [ + "### Create different splits of data here" + ] + }, + { + "cell_type": "code", + "execution_count": 175, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "from utils import get_various_data\n", + "\n", + "validation_size = 100\n", + "test_size = 100\n", + "L_size = 100\n", + "n_lfs = len(rules.get_lfs())\n", + "X = np.asarray(X)\n", + "Y = np.asarray(Y)\n", + "X_V, Y_V, X_feats_V,_, X_T, Y_T, X_feats_T,_, X_L, Y_L, X_feats_L,_, X_U, X_feats_U,_ = get_various_data(X, Y,\\\n", + " X_feats, n_lfs, validation_size, test_size, L_size)" + ] + }, + { + "cell_type": "code", + "execution_count": 176, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "path_json = 'data_pipeline/JL/yt_json.json'\n", + "V_path_pkl = 'data_pipeline/JL/yt_pickle_V.pkl' #validation data - have true labels\n", + "T_path_pkl = 'data_pipeline/JL/yt_pickle_T_4_lfs.pkl' #test data - have true labels\n", + "L_path_pkl = 'data_pipeline/JL/yt_pickle_L.pkl' #Labeled data - have true labels\n", + "U_path_pkl = 'data_pipeline/JL/yt_pickle_U_4_lfs.pkl' #unlabelled data - don't have true labels\n", + "\n", + "log_path_jl_1 = 'log/JL/yt_log_1.txt' #jl is an algorithm, can be found below\n", + "params_path = 'params/JL/yt_params.pkl' #file path to store parameters of JL, used below" + ] + }, + { + "cell_type": "code", + "execution_count": 177, + "metadata": { + "hidden": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 100/100 [00:00<00:00, 3125.30it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 100/100 [00:00<00:00, 4128.70it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 100/100 [00:00<00:00, 4457.80it/s]\n", + "100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1286/1286 [00:00<00:00, 4258.50it/s]\n" + ] + } + ], + "source": [ + "from spear.labeling import PreLabels\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"yt\",\n", + " data=X_V,\n", + " gold_labels=Y_V,\n", + " data_feats=X_feats_V,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "yt_noisy_labels.generate_pickle(V_path_pkl)\n", + "yt_noisy_labels.generate_json(path_json) #generating json files once is enough\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"yt\",\n", + " data=X_T,\n", + " gold_labels=Y_T,\n", + " data_feats=X_feats_T,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "yt_noisy_labels.generate_pickle(T_path_pkl)\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"yt\",\n", + " data=X_L,\n", + " gold_labels=Y_L,\n", + " data_feats=X_feats_L,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "yt_noisy_labels.generate_pickle(L_path_pkl)\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"yt\",\n", + " data=X_U,\n", + " rules=rules,\n", + " data_feats=X_feats_U,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2) #note that we don't pass gold_labels here, for the unlabelled data\n", + "yt_noisy_labels.generate_pickle(U_path_pkl)" + ] + }, + { + "cell_type": "code", + "execution_count": 178, + "metadata": { + "hidden": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of elements in data list: 10\n", + "Shape of feature matrix: (1286, 16634)\n", + "Shape of labels matrix: (1286, 4)\n", + "Shape of continuous scores matrix : (1286, 4)\n", + "Total number of classes: 2\n", + "Classes dictionary in json file(modified to have integer keys): {1: 'SPAM', 0: 'HAM'}\n" + ] + } + ], + "source": [ + "from spear.utils import get_data, get_classes\n", + "\n", + "data_U = get_data(path = U_path_pkl, check_shapes=True)\n", + "#check_shapes being True(above), asserts for relative shapes of arrays in pickle file\n", + "print(\"Number of elements in data list: \", len(data_U))\n", + "print(\"Shape of feature matrix: \", data_U[0].shape)\n", + "print(\"Shape of labels matrix: \", data_U[1].shape)\n", + "print(\"Shape of continuous scores matrix : \", data_U[6].shape)\n", + "print(\"Total number of classes: \", data_U[9])\n", + "\n", + "classes = get_classes(path = path_json)\n", + "print(\"Classes dictionary in json file(modified to have integer keys): \", classes)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "heading_collapsed": true + }, + "source": [ + "## JL with 4 LFs" + ] + }, + { + "cell_type": "code", + "execution_count": 179, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "from spear.jl import JL\n", + "\n", + "n_features = 16634\n", + "n_hidden = 512\n", + "feature_model = 'lr'\n", + "'''\n", + "'nn' is neural network. other alternative is 'lr'(logistic regression) which doesn't need n_hidden to be passed\n", + "during initialisation.\n", + "''' \n", + "\n", + "jl = JL(path_json = path_json, n_lfs = n_lfs, n_features = n_features, feature_model = feature_model)" + ] + }, + { + "cell_type": "code", + "execution_count": 180, + "metadata": { + "hidden": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 81%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████▎ | 81/100 [01:27<00:20, 1.09s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "early stopping at epoch: 81\tbest_epoch: 80\n", + "score used: f1_score\n", + "best_gm_val_score:0.5847828526540231\tbest_fm_val_score:0.8139727159983464\n", + "best_gm_test_score:0.6783898744683059\tbest_fm_test_score:0.7549019607843137\n", + "best_gm_test_precision:0.7780665280665281\tbest_fm_test_precision:0.8571428571428572\n", + "best_gm_test_recall:0.7161616161616161\tbest_fm_test_recall:0.7555555555555555\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "ename": "ValueError", + "evalue": "Expected value argument (Tensor of shape (1286,)) to be within the support (Interval(lower_bound=0.0, upper_bound=1.0)) of the distribution Beta(), but found invalid values:\ntensor([0.5000, 0.0000, 0.5000, ..., 0.0000, 0.5755, 0.0000], device='cuda:0')", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m/tmp/ipykernel_2357964/2244590139.py\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 16\u001b[0m n_hidden = n_hidden)\n\u001b[1;32m 17\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 18\u001b[0;31m probs_fm, probs_gm = jl.fit_and_predict_proba(path_L = L_path_pkl, path_U = U_path_pkl, path_V = V_path_pkl, \\\n\u001b[0m\u001b[1;32m 19\u001b[0m \u001b[0mpath_T\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mT_path_pkl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mloss_func_mask\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mloss_func_mask\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbatch_size\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mbatch_size\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlr_fm\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlr_fm\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlr_gm\u001b[0m \u001b[0;34m=\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 20\u001b[0m \u001b[0mlr_gm\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0muse_accuracy_score\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0muse_accuracy_score\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpath_log\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlog_path_jl_1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mreturn_gm\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mn_epochs\u001b[0m \u001b[0;34m=\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.8/site-packages/spear/jl/core.py\u001b[0m in \u001b[0;36mfit_and_predict_proba\u001b[0;34m(self, path_L, path_U, path_V, path_T, loss_func_mask, batch_size, lr_fm, lr_gm, use_accuracy_score, path_log, return_gm, n_epochs, start_len, stop_len, is_qt, is_qc, qt, qc, metric_avg)\u001b[0m\n\u001b[1;32m 572\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 573\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mreturn_gm\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 574\u001b[0;31m \t\t\treturn fm_predictions, (probability(self.theta_optimal, self.pi_optimal, torch.tensor(data_U[2], device = self.device).long(), torch.tensor(data_U[6], device = self.device).double(), \\\n\u001b[0m\u001b[1;32m 575\u001b[0m \t\t\t\tself.k, self.n_classes, self.continuous_mask, qc_, self.device)).cpu().detach().numpy()\n\u001b[1;32m 576\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.8/site-packages/spear/utils/utils_cage.py\u001b[0m in \u001b[0;36mprobability\u001b[0;34m(theta, pi, m, s, k, n_classes, continuous_mask, qc, device)\u001b[0m\n\u001b[1;32m 112\u001b[0m \u001b[0mp_s\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mones\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mn_classes\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdevice\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdevice\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdouble\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 113\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0my\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mn_classes\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 114\u001b[0;31m \u001b[0mp_s\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mprobability_s_given_y_l\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpi\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0my\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mm\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mk\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcontinuous_mask\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mqc\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 115\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mp_l_y\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mp_s\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 116\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.8/site-packages/spear/utils/utils_cage.py\u001b[0m in \u001b[0;36mprobability_s_given_y_l\u001b[0;34m(pi, s, y, m, k, continuous_mask, qc)\u001b[0m\n\u001b[1;32m 86\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mk\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 87\u001b[0m \u001b[0mtemp\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mBeta\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mr\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mparams\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparams\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mr\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 88\u001b[0;31m \u001b[0mprobability\u001b[0m \u001b[0;34m*=\u001b[0m \u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexp\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtemp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlog_prob\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdouble\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mm\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdouble\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mcontinuous_mask\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 89\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mm\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdouble\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mcontinuous_mask\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 90\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mprobability\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.8/site-packages/torch/distributions/beta.py\u001b[0m in \u001b[0;36mlog_prob\u001b[0;34m(self, value)\u001b[0m\n\u001b[1;32m 60\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mlog_prob\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 61\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_validate_args\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 62\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_validate_sample\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 63\u001b[0m \u001b[0mheads_tails\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstack\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1.0\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 64\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_dirichlet\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlog_prob\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mheads_tails\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.8/site-packages/torch/distributions/distribution.py\u001b[0m in \u001b[0;36m_validate_sample\u001b[0;34m(self, value)\u001b[0m\n\u001b[1;32m 286\u001b[0m \u001b[0mvalid\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msupport\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcheck\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 287\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mvalid\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mall\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 288\u001b[0;31m raise ValueError(\n\u001b[0m\u001b[1;32m 289\u001b[0m \u001b[0;34m\"Expected value argument \"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 290\u001b[0m \u001b[0;34mf\"({type(value).__name__} of shape {tuple(value.shape)}) \"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mValueError\u001b[0m: Expected value argument (Tensor of shape (1286,)) to be within the support (Interval(lower_bound=0.0, upper_bound=1.0)) of the distribution Beta(), but found invalid values:\ntensor([0.5000, 0.0000, 0.5000, ..., 0.0000, 0.5755, 0.0000], device='cuda:0')" + ] + } + ], + "source": [ + "loss_func_mask = [1,0,1,1,1,1,1] \n", + "'''\n", + "One can keep 0s in places where he don't want the specific loss function to be part\n", + "the final loss function used in training. Refer documentation(spear.JL.core.JL) to understand\n", + "the which index of loss_func_mask refers to what loss function.\n", + "\n", + "Note: the loss_func_mask above may not be the optimal mask for sms dataset. We have to try\n", + " some other masks too, to find the best one that gives good accuracies.\n", + "'''\n", + "batch_size = 32\n", + "lr_fm = 0.0003\n", + "lr_gm = 0.01\n", + "use_accuracy_score = False\n", + "\n", + "jl = JL(path_json = path_json, n_lfs = n_lfs, n_features = n_features, feature_model = feature_model, \\\n", + " n_hidden = n_hidden)\n", + "\n", + "probs_fm, probs_gm = jl.fit_and_predict_proba(path_L = L_path_pkl, path_U = U_path_pkl, path_V = V_path_pkl, \\\n", + " path_T = T_path_pkl, loss_func_mask = loss_func_mask, batch_size = batch_size, lr_fm = lr_fm, lr_gm = \\\n", + " lr_gm, use_accuracy_score = use_accuracy_score, path_log = log_path_jl_1, return_gm = True, n_epochs = \\\n", + " 100, start_len = 7,stop_len = 10, is_qt = True, is_qc = True, qt = 0.9, qc = 0.85, metric_avg = 'macro')\n", + "\n", + "labels = np.argmax(probs_fm, 1)\n", + "print(\"probs_fm shape: \", probs_fm.shape)\n", + "print(\"probs_gm shape: \", probs_gm.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 181, + "metadata": { + "hidden": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "labels_fm_test shape: (100,)\n", + "labels_gm_test shape: (100,)\n", + "accuracy_score of gm: 0.69 | fm: 0.78\n", + "f1_score of gm: [0.7394958 0.61728395] | fm: [0.67647059 0.83333333]\n", + "Macro f1_score: 0.7549019607843137\n", + "Precision score of gm: [0.59459459 0.96153846] | fm: [1. 0.71428571]\n", + "Recall score of gm: [0.97777778 0.45454545] | fm: [0.51111111 1. ]\n" + ] + } + ], + "source": [ + "labels_fm_test = jl.predict_fm(x_test = X_feats_T, need_strings=False)\n", + "labels_gm_test = jl.predict_gm(path_test = T_path_pkl, qc = 0.85, need_strings=False)\n", + "\n", + "print(\"labels_fm_test shape: \", labels_fm_test.shape)\n", + "print(\"labels_gm_test shape: \", labels_gm_test.shape)\n", + "\n", + "#Y_T is true labels of test data, type is numpy array of shape (num_instances,)\n", + "print(\"accuracy_score of gm: \", accuracy_score(Y_T, labels_gm_test), \"| fm: \", accuracy_score(Y_T, labels_fm_test))\n", + "print(\"f1_score of gm: \", f1_score(Y_T, labels_gm_test, average = None), \"| fm: \", f1_score(Y_T, labels_fm_test, average = None))\n", + "print(\"Macro f1_score: \", f1_score(Y_T, labels_fm_test, average = 'macro'))\n", + "print(\"Precision score of gm: \", precision_score(Y_T, labels_gm_test, average = None), \"| fm: \", precision_score(Y_T, labels_fm_test, average = None))\n", + "print(\"Recall score of gm: \", recall_score(Y_T, labels_gm_test, average = None), \"| fm: \", recall_score(Y_T, labels_fm_test, average = None))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "heading_collapsed": true + }, + "source": [ + "## CAGE with 4 LFs" + ] + }, + { + "cell_type": "code", + "execution_count": 114, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "log_path_cage = 'params/cage/yt_log_4_lfs.txt' #jl is an algorithm, can be found below\n", + "params_path = 'params/cage/yt_params.pkl' #file path to store parameters of JL, used below" + ] + }, + { + "cell_type": "code", + "execution_count": 115, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "cage3 = Cage(path_json = path_json, n_lfs = n_lfs)" + ] + }, + { + "cell_type": "code", + "execution_count": 116, + "metadata": { + "hidden": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 100/100 [00:03<00:00, 30.14it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "final_test_accuracy_score: 0.71\n", + "test_average_metric: macro\tfinal_test_f1_score: 0.69662098545873\n", + "probs shape: (1286, 2)\n", + "labels shape: (1286,)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "probs = cage3.fit_and_predict_proba(path_pkl = U_path_pkl, path_test = T_path_pkl, path_log = log_path_cage, \\\n", + " qt = 0.9, qc = 0.85, metric_avg = ['macro'], n_epochs = 100, lr = 0.01)\n", + "labels = np.argmax(probs, 1)\n", + "print(\"probs shape: \", probs.shape)\n", + "print(\"labels shape: \",labels.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "metadata": { + "hidden": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "labels_test shape: (100,)\n", + "accuracy_score: 0.55\n", + "Binary f1_score: 0.41558441558441556\n", + "Macro f1_score: 0.5248653785239151\n", + "Micro f1_score: 0.55\n", + "Class Wise f1_score: [0.63414634 0.41558442]\n", + "Class Wise Precision score: [0.53424658 0.59259259]\n", + "Class Wise Recall score: [0.78 0.32]\n" + ] + } + ], + "source": [ + "labels_test = cage3.predict(path_test = T_path_pkl, qc = 0.85, need_strings = False)\n", + "print(\"labels_test shape: \", labels_test.shape)\n", + "\n", + "\n", + "#Y_T is true labels of test data, type is numpy array of shape (num_instances,)\n", + "print(\"accuracy_score: \", accuracy_score(Y_T, labels_test))\n", + "print(\"Binary f1_score: \", f1_score(Y_T, labels_test, average = 'binary'))\n", + "print(\"Macro f1_score: \", f1_score(Y_T, labels_test, average = 'macro'))\n", + "print(\"Micro f1_score: \", f1_score(Y_T, labels_test, average = 'micro'))\n", + "print(\"Class Wise f1_score: \", f1_score(Y_T, labels_test, average = None))\n", + "print(\"Class Wise Precision score: \", precision_score(Y_T, labels_test, average = None))\n", + "print(\"Class Wise Recall score: \", recall_score(Y_T, labels_test, average = None))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.10" + }, + "metadata": { + "interpreter": { + "hash": "31f2aee4e71d21fbe5cf8b01ff0e069b9275f58929596ceb00d14d90e3e16cd6" + } + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/notebooks/YOUTUBE/.ipynb_checkpoints/youtube-labelling-subset-selection-checkpoint.ipynb b/notebooks/YOUTUBE/.ipynb_checkpoints/youtube-labelling-subset-selection-checkpoint.ipynb new file mode 100644 index 0000000..ec7c9a2 --- /dev/null +++ b/notebooks/YOUTUBE/.ipynb_checkpoints/youtube-labelling-subset-selection-checkpoint.ipynb @@ -0,0 +1,2303 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## **YOUTUBE SPAM COMMENT DETECTION** " + ] + }, + { + "cell_type": "code", + "execution_count": 176, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "os.environ[\"CUDA_DEVICE_ORDER\"]=\"PCI_BUS_ID\" # see issue #152\n", + "os.environ[\"CUDA_VISIBLE_DEVICES\"]=\"1\"" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import pickle\n", + "import os\n", + "import pandas as pd\n", + "from sklearn.metrics import accuracy_score, f1_score, precision_score, recall_score\n", + "from sklearn.feature_extraction.text import CountVectorizer\n", + "from utils import load_spam_dataset\n", + "from spear.labeling import labeling_function, ABSTAIN, preprocessor, continuous_scorer\n", + "\n", + "DISPLAY_ALL_TEXT = False\n", + "\n", + "pd.set_option(\"display.max_colwidth\", 0 if DISPLAY_ALL_TEXT else 50)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Load YouTube Dataset" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "X = load_spam_dataset(load_train_labels=True)\n", + "Y = X.label.values\n", + "X = X.text\n", + "# We pull out the label vectors for ease of use later\n", + "# Y_dev = df_dev.label.values\n", + "# Y_valid = df_valid.label.values\n", + "# Y_test = df_test.label.values" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "vectorizer = CountVectorizer(ngram_range=(1, 2))\n", + "X_feats = vectorizer.fit_transform(X.tolist()).toarray()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "### **Representation of class Labels**\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(0 pls http://www10.vakinha.com.br/VaquinhaE.aspx...\n", + " 1 if your like drones, plz subscribe to Kamal Ta...\n", + " 2 go here to check the views :3\n", + " 3 Came here to check the views, goodbye.\n", + " 4 i am 2,126,492,636 viewer :D\n", + " ... \n", + " 443 Check out my mummy chanel!\n", + " 444 The rap: cool Rihanna: STTUUPID\n", + " 445 I hope everyone is in good spirits I'm a h...\n", + " 446 Lil m !!!!! Check hi out!!!!! Does live the wa...\n", + " 447 Please check out my youtube channel! Just uplo...\n", + " Name: text, Length: 1586, dtype: object,\n", + " array([1, 1, 0, ..., 1, 1, 1]))" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X, Y" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "During labeling the unlabelled data we lookup for few keywords to assign a class SMS.\n", + "\n", + "Example : *If a message contains apply or buy in it then most probably the message is spam*" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "# For clarity, we define constants to represent the class labels for spam, ham, and abstaining.\n", + "import enum\n", + "\n", + "# enum to hold the class labels\n", + "ABSTAIN = -1\n", + "\n", + "\n", + "class ClassLabels(enum.Enum):\n", + " SPAM = 1\n", + " HAM = 0\n", + "\n", + "\n", + "THRESHOLD = 0.8" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Declaration of Labeling Functions**" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "from spear.labeling import labeling_function, ABSTAIN, preprocessor, continuous_scorer\n", + "import re\n", + "\n", + "@preprocessor()\n", + "def convert_to_lower(x):\n", + " return x.lower().strip()\n", + "\n", + "\n", + "@labeling_function(label=ClassLabels.SPAM, pre=[convert_to_lower])\n", + "def check(x):\n", + " return ClassLabels.SPAM if \"check\" in x.text.lower() else ABSTAIN\n", + "\n", + "\n", + "@labeling_function(label=ClassLabels.SPAM, pre=[convert_to_lower])\n", + "def check_out(x):\n", + " return ClassLabels.SPAM if \"check out\" in x.text.lower() else ABSTAIN\n", + "\n", + "\n", + "keyword_my ={'my'}\n", + "keyword_subscribe={'subscribe'}\n", + "keyword_link={'http'}\n", + "keyword_please={'please', 'plz'}\n", + "keyword_song = {'song'}\n", + "\n", + "\n", + "@labeling_function(label=ClassLabels.SPAM, pre=[convert_to_lower])\n", + "def regex_check_out(x):\n", + " return ClassLabels.SPAM if re.search(r\"check.*out\", x, flags=re.I) else ABSTAIN\n", + "\n", + "\n", + "\n", + "\n", + "@labeling_function(resources=dict(keywords=keyword_my),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def keyword_my(x,**kwargs): \n", + " if len(kwargs[\"keywords\"].intersection(x.split())) > 0:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "\n", + "@labeling_function(resources=dict(keywords=keyword_subscribe),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def keyword_subscribe(x,**kwargs): \n", + " if len(kwargs[\"keywords\"].intersection(x.split())) > 0:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + " \n", + "@labeling_function(resources=dict(keywords=keyword_link),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def keyword_link(x,**kwargs): \n", + " for pattern in kwargs[\"keywords\"]: \n", + " if re.search(pattern,x, flags= re.I):\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + " \n", + "@labeling_function(resources=dict(keywords=keyword_please),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def keyword_please(x,**kwargs): \n", + " if len(kwargs[\"keywords\"].intersection(x.split())) > 0:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(resources=dict(keywords=keyword_song),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def keyword_song(x,**kwargs): \n", + " if len(kwargs[\"keywords\"].intersection(x.split())) > 0:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "\n", + "@labeling_function(label=ClassLabels.HAM)\n", + "def short_comment(x):\n", + " \"\"\"Ham comments are often short, such as 'cool video!'\"\"\"\n", + " return ClassLabels.HAM if len(x.split()) < 5 else ABSTAIN\n" + ] + }, + { + "cell_type": "code", + "execution_count": 134, + "metadata": {}, + "outputs": [], + "source": [ + "from textblob import TextBlob\n", + "\n", + "# @preprocessor()\n", + "# def textblob_sentiment(x):\n", + "# scores = TextBlob(x)\n", + "# x.polarity = scores.sentiment.polarity\n", + "# x.subjectivity = scores.sentiment.subjectivity\n", + "# return x\n", + "\n", + "@continuous_scorer()\n", + "def textblob_sentiment(sentence,**kwargs):\n", + " scores = TextBlob(sentence)\n", + " return scores\n", + "# similarity = 0.0\n", + "# words = sentence.split()\n", + "# words = preprocess(words)\n", + "# word_vectors = get_word_vectors(words)\n", + "# for w in kwargs['keywords']:\n", + "# similarity = min(max(similarity,get_similarity(word_vectors,w)),1.0)\n", + "\n", + "# return similarity" + ] + }, + { + "cell_type": "code", + "execution_count": 135, + "metadata": {}, + "outputs": [], + "source": [ + "@labeling_function(cont_scorer=textblob_sentiment, pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def textblob_polarity(x,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= 0.9:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(pre=[textblob_sentiment], label=ClassLabels.HAM)\n", + "def textblob_polarity(x):\n", + " return ClassLabels.HAM if x.polarity > 0.9 else ABSTAIN\n", + "\n", + "@labeling_function(pre=[textblob_sentiment], label=ClassLabels.HAM)\n", + "def textblob_subjectivity(x):\n", + " return ClassLabels.HAM if x.subjectivity >= 0.5 else ABSTAIN\n" + ] + }, + { + "cell_type": "code", + "execution_count": 136, + "metadata": {}, + "outputs": [], + "source": [ + "# from snorkel.preprocess.nlp import SpacyPreprocessor\n", + "# spacy = SpacyPreprocessor(text_field=\"text\", doc_field=\"doc\", memoize=True)\n", + "\n", + "# @labeling_function(pre=[spacy], label=ClassLabels.HAM)\n", + "# def has_person(x):\n", + "# \"\"\"Ham comments mention specific people and are short.\"\"\"\n", + "# if len(x.doc) < 20 and any([ent.label_ == \"PERSON\" for ent in x.doc.ents]):\n", + "# return ClassLabels.HAM\n", + "# else:\n", + "# return ABSTAIN\n", + "\n", + "\n", + "\n", + "# from snorkel.labeling.lf.nlp import nlp_labeling_function\n", + "\n", + "\n", + "# @nlp_labeling_function()\n", + "# def has_person_nlp(x):\n", + "# \"\"\"Ham comments mention specific people and are short.\"\"\"\n", + "# if len(x.doc) < 20 and any([ent.label_ == \"PERSON\" for ent in x.doc.ents]):\n", + "# return HAM\n", + "# else:\n", + "# return ABSTAIN\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Loading all 8 LFs" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **LFSet**\n", + "\n", + "Place holder for declared labeling functions. " + ] + }, + { + "cell_type": "code", + "execution_count": 138, + "metadata": {}, + "outputs": [], + "source": [ + "from spear.labeling import LFSet\n", + "\n", + "LFS = [\n", + " keyword_my,\n", + " keyword_subscribe,\n", + " keyword_link,\n", + " keyword_please,\n", + " keyword_song,\n", + " regex_check_out,\n", + " short_comment,\n", + "# has_person_nlp,\n", + " textblob_polarity,\n", + " textblob_subjectivity,\n", + "]\n", + "\n", + "\n", + "rules = LFSet(\"SPAM_LF\")\n", + "rules.add_lf_list(LFS)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Label the dataset with defined labeling functions**\n", + "\n", + "We can label the dataset using PreLabels by providing as set of labeling funtions. We can also provide the golden labels of the dataset if we already have some labeled data to evaluate our lf's.We provide both the soft labels and hard labels given an instance, although these labels can be very noisy we provide few frameworks to effectively use these rules to label unlabelled data." + ] + }, + { + "cell_type": "code", + "execution_count": 139, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1586/1586 [00:00<00:00, 2360.65it/s]\n" + ] + } + ], + "source": [ + "from spear.labeling import PreLabels\n", + "import numpy as np\n", + "\n", + "R = np.zeros((X.shape[0],len(rules.get_lfs())))\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"youtube\",\n", + " data=X,\n", + " data_feats = X_feats,\n", + " gold_labels=Y,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "L,S = yt_noisy_labels.get_labels()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Analyse and refining labeling functions**\n", + "\n", + "Once we are done with labeling the dataset with given lf's, we can analyse the labeling functions we declared by calculating coverage, overlap, conflicts, empirical accuracy for of each lf which helps us to re-iterate on the process by refining new lf's." + ] + }, + { + "cell_type": "code", + "execution_count": 140, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "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2267MW/ePJ7//OezdOlSVqxYwdvf/nYOP/zw8fjxqEeNx8mQwUzghmkgkAz2ta99jcsuu4zLL7+c3//+9+y111489alP5fDDD+ess87iWc96Fvfddx/nn38+n/rUpzjllFPYdNNNWbhwIffeey977703BxxwAACXXnopV1111cpZj0499VS22GIL/vKXv7DXXnvx3Oc+l3vvvZd3vetdXHrppWy88cbsu+++7LnnngC89rWv5V/+5V94ylOewk033cSBBx7I4sWLu/dDktR1V1999UNi0yabbMKOO+7Is571LM466yze+c53cuutt3Lrrbcya9Ys3vrWt7Lvvvty6qmn8oc//IHZs2ez3377Aa04dMUVV7DFFls86Cz33/zN33DuuecydepUrr/+eo488kgWLVoEwCWXXMI111zDTjvtxJw5c/ja177GjBkzuOWWW7jqqqsA+MMf/tCVn4ekiWOkx04AP/vZz7j66qvZdttt2XvvvfnhD3/Iy1/+ci666CKe/exnc9hhhz0oNrV717vexaabbsqVV7YOiO+44w6e+9zn8olPfILLLrsMgLPPPpttt92Wb3+7dQLzzjtN7tV7hnUPXJI5Sa5LsiTJ8UOsPybJlUkuS3JRkl2b8ulJ/tKUX5bk053+AOPtoosu4sgjj2TKlClsvfXWPO1pT2PhwoUcdNBBXHDBBdx777185zvf4alPfSobbrgh3/3ud/nc5z7HzJkzedKTnsRtt93G9ddfD8Ds2bMfNGXtxz72Mfbcc0+e/OQnc/PNN3P99ddzySWX8LSnPY0tttiC9dZbj+c973krtz/vvPM47rjjmDlzJgcffDB33XUXd999d9d/JpImhn322YevfvWrAJx11lkcdthhAHz3u9/lve99LzNnzmSfffbhnnvuWXnlfv/992eLLbZ4SF33338/r3jFK9h999153vOexzXXXLNy3ezZs3nEIx7BlClTOPLII7nooot4xCMewQ033MBrXvMa/vd//5dNNtmkC59YUi9Y1bETtOLJ9ttvzzrrrMPMmTNXmawN5bzzzuPYY49dubz55ps/ZJvdd9+dc889lze/+c384Ac/YNNNO3y1V+qCNV6BSzIFOBnYH1gKLEwyv6quadvsS1X16Wb7g4EPAXOadb+oqpkd7fU42G233VYeCA3H1KlT2WeffTjnnHM488wzOeKII4DWePCPf/zjHHjggQ/a/sILL+RhD3vYg5bPO+88fvzjH7PRRhutPMhanQceeICLL76YqVOnjuCTSeplu+6660Ni01133cVNN93EXnvtxZZbbskVV1zBmWeeyac/3TqHVlWcffbZPOYxj3nQfj/5yU8eFIfaffjDH2brrbfm8ssv54EHHnhQnBk8Y1sSNt98cy6//HLOOeccPv3pT3PWWWdx6qmnduIjS+oRIz12Athggw1Wvp8yZUrH78d99KMfzaWXXsqCBQt429vexjOe8QxOOOGENe8oTSDDuQI3G1hSVTdU1X3AGcAh7RtU1V1tiw8DqnNdnBj23Xdf7r33XubNm7ey7IorrmCzzTbjzDPPZMWKFSxbtoz/+7//Y/bs2QAcfvjhfPazn+UHP/gBc+a08tkDDzyQT33qU9x///0A/PznP195T0m7O++8k80335yNNtqIa6+9losvvhiAvfbai+9///vccccdLF++nLPPPnvlPgcccAAf//jHVy4PDBeQ1L+e8Yxn8Oc//5nPfe5zAKxYsYI3vOENHH300Wy00UYcfvjhvP/97+fOO+9kjz32AFpx6OMf/zhVrVD9s5/9bI3t3HnnnWyzzTass846fP7zn2fFihUr111yySX88pe/5IEHHuDMM8/kKU95Cr///e954IEHeO5zn8u///u/c+mll47Bp5c0kY3m2Glt7L///px88skrl++44w4A1ltvvZXHXb/+9a/ZaKONeNGLXsSb3vQmY5N60nASuO2Am9uWlzZlD5Lk2CS/AN4PtM/nOiPJz5J8P8k/DNVAkrlJFiVZtGzZshF0v3uS8PWvf53zzjuPRz7ykey222685S1v4QUveAF77LEHe+65J/vuuy/vf//7+du//VuglVB9//vfZ7/99mP99dcH4OUvfzm77rorT3jCE3jc4x7HK1/5yiHPLs2ZM4fly5ezyy67cPzxx/PkJz8ZgO222463vvWtzJ49m7333pvp06evvPz/sY99jEWLFrHHHnuw6667rjzbLql/DcSmr3zlK+y88848+tGPZurUqSunzT7ssMM444wzeP7zn79yn7e//e3cf//97LHHHuy22268/e1vX2M7r371qzn99NPZc889ufbaax90pW6vvfbiuOOOY5dddmHGjBkceuih3HLLLeyzzz7MnDmTF73oRfzHf/xH5z+8pAltNMdOa+Ntb3sbd9xxB4973OPYc889ueCCCwCYO3cue+yxBy984Qu58sormT17NjNnzuSd73wnb3vb29a6XanbMnAGdpUbJIcBc6rq5c3yi4EnVdVxq9j+BcCBVXVUkg2Ah1fVbUmeCHwD2G3QFbsHmTVrVg3cGD9g8eLF7LLLLiP4WP3t7rvv5uEPfzjLly/n0EMP5aUvfSmHHnrosPf356kB3ZyFMslPq2r1cz1PcManh2qfAW40JvvPT6vQxVkojU0aij8/rUq3ZqFcXWwazhW4W4Ad2pa3b8pW5QzgOQBVdW9V3da8/ynwC6CzD02bhE488URmzpzJ4x73OGbMmMFznvOc8e6SJEmSpC4YzmMEFgI7J5lBK3E7AnhB+wZJdq6q65vFZwHXN+XTgNurakWSRwA7Azd0qvOT1Qc+8IHx7oIkAa2ZLvfZZ5/x7oYkSZPGGhO4qlqe5DjgHGAKcGpVXZ3kJGBRVc0HjkuyH3A/cAdwVLP7U4GTktwPPAAcU1W3j8UHkSRJkqR+N6wHeVfVAmDBoLIT2t6/dhX7nQ2cPdS6kaqqh0xVrZFb0z2PkkbO+DQ6xiNpbBmbRsfYpIluWA/yHm9Tp07ltttu8xdqLVUVt912m8+JkzrI+DQ6xiNpbBmbRsfYpF4wrCtw42377bdn6dKlTNRHDPSSqVOnsv322493N6S+YXwaPeORNHaMTaNnbNJE1xMJ3HrrrceMGTPGuxuS9BDGJ0kTkbFJ6l89MYRSkiRJkmQCJ0mSJEk9wwROkiSpw5LMSXJdkiVJjh9i/VOTXJpkeZLDhli/SZKlST7RnR5L6hUmcJIkSR2UZApwMnAQsCtwZJJdB212E3A08KVVVPMu4P/Gqo+SepcJnCRJUmfNBpZU1Q1VdR9wBnBI+wZVdWNVXQE8MHjnJE8Etga+243OSuotJnCSJEmdtR1wc9vy0qZsjZKsA3wQeOMY9EtSHzCBkyRJmjheDSyoqqWr2yjJ3CSLkizyWW/S5NITz4GTJEnqIbcAO7Qtb9+UDcffAf+Q5NXAw4H1k9xdVQ+aCKWq5gHzAGbNmlVr32VJvcIETpIkqbMWAjsnmUErcTsCeMFwdqyqFw68T3I0MGtw8iZpcnMIpSRJUgdV1XLgOOAcYDFwVlVdneSkJAcDJNkryVLgecBnklw9fj2W1Eu8AidJktRhVbUAWDCo7IS29wtpDa1cXR2nAaeNQfck9TCvwEmSJElSjzCBk9SzksxJcl2SJUkeco9IktcnuSbJFUnOT7JT27qjklzfvI7qbs8lSZJGxwROUk9KMgU4GTgI2BU4Msmugzb7Ga0JAPYAvgq8v9l3C+AdwJNoPXD3HUk271bfJUmSRssETlKvmg0sqaobquo+4AzgkPYNquqCqvpzs3gxf73f5EDg3Kq6varuAM4F5nSp35IkSaNmAiepV20H3Ny2vLQpW5WXAd8Z6b4+LFeSJE0kJnCS+l6SFwGzgP8c6b5VNa+qZlXVrGnTpnW+c5IkSSNgAiepV90C7NC2vH1T9iBJ9gP+DTi4qu4dyb6SJEkTjQmcpF61ENg5yYwk6wNHAPPbN0jyeOAztJK337WtOgc4IMnmzeQlBzRlkiRJE5oP8pbUk6pqeZLjaCVeU4BTq+rqJCcBi6pqPq0hkw8HvpIE4KaqOriqbk/yLlpJIMBJVXX7OHwMSZKkETGBk9SzqmoBsGBQ2Qlt7/dbzb6nAqeOXe8kSZI6b1hDKIfxsNxjklyZ5LIkF7U/iynJW5r9rktyYCc7L0mSJEmTyRoTuGE+LPdLVbV7Vc2k9aDcDzX77krrvpTdaD1j6ZNNfZIkSZKkERrOFbjhPCz3rrbFhwHVvD8EOKOq7q2qXwJLmvokSZIkSSM0nHvghnrg7ZMGb5TkWOD1wPrAvm37Xjxo34c8LDfJXGAuwI477jicfkuSJEnSpNOxxwhU1clV9UjgzcDbRrivD8qVJEmSpDUYTgI30gfengE8Z5T7SpIkSZJWYTgJ3HAelrtz2+KzgOub9/OBI5JskGQGsDNwydp3W5IkSZImnzXeAzfMh+Uel2Q/4H7gDuCoZt+rk5wFXAMsB46tqhVj9FkkSZIkqa8N60Hew3hY7mtXs++7gXePtoOSJEmSpJaOTWIiSZIkSRpbJnCSJEmS1CNM4CRJkiSpR5jASZIkdViSOUmuS7IkyfFDrH9qkkuTLE9yWFv5zCQ/TnJ1kiuSHN7dnkua6EzgJEmSOijJFOBk4CBgV+DIJLsO2uwm4GjgS4PK/wz8c1XtBswBPpJkszHtsKSeMqxZKCVJkjRss4ElVXUDQJIzgENoPVYJgKq6sVn3QPuOVfXztve/TvI7YBrwhzHvtaSe4BU4SZKkztoOuLlteWlTNiJJZgPrA7/oUL8k9QETOEmSpAkmyTbA54GXVNUDQ6yfm2RRkkXLli3rfgcljRsTOEmSpM66BdihbXn7pmxYkmwCfBv4t6q6eKhtqmpeVc2qqlnTpk1bq85K6i0mcJIkSZ21ENg5yYwk6wNHAPOHs2Oz/deBz1XVV8ewj5J6lAmcJElSB1XVcuA44BxgMXBWVV2d5KQkBwMk2SvJUuB5wGeSXN3s/nzgqcDRSS5rXjO7/ykkTVTOQilJktRhVbUAWDCo7IS29wtpDa0cvN8XgC+MeQcl9SyvwEmSJElSjzCBkyRJkqQe4RBKSeqEEzftYF13dq4uSZLUV7wCJ0mSJEk9wgROkiRJknqECZwkSZIk9QgTOEmSJEnqESZwkiRJktQjTOAkSZIkqUeYwEmSJElSjzCBkyRJkqQeYQInSZIkST1iWAlckjlJrkuyJMnxQ6x/fZJrklyR5PwkO7WtW5HksuY1v5OdlyRJkqTJZN01bZBkCnAysD+wFFiYZH5VXdO22c+AWVX15ySvAt4PHN6s+0tVzexstyVJkiRp8hnOFbjZwJKquqGq7gPOAA5p36CqLqiqPzeLFwPbd7abkiRJkqThJHDbATe3LS9tylblZcB32panJlmU5OIkzxlqhyRzm20WLVu2bBhdkiRJkqTJZ41DKEciyYuAWcDT2op3qqpbkjwC+F6SK6vqF+37VdU8YB7ArFmzqpN9kiRJkqR+MZwrcLcAO7Qtb9+UPUiS/YB/Aw6uqnsHyqvqlubfG4ALgcevRX8lSZIkadIaTgK3ENg5yYwk6wNHAA+aTTLJ44HP0EreftdWvnmSDZr3WwF7A+2Tn0iSJEmShmmNQyiranmS44BzgCnAqVV1dZKTgEVVNR/4T+DhwFeSANxUVQcDuwCfSfIArWTxvYNmr5QkSZIkDdOw7oGrqgXAgkFlJ7S9328V+/0I2H1tOihJkiRJahnWg7wlSZIkSePPBE5Sz0oyJ8l1SZYkOX6I9U9NcmmS5UkOG7RuRZLLmtf8wftK0tpYy/h0VJLrm9dR3eu1pF7Q0ccISFK3JJkCnAzsT+v5lAuTzB90n+1NwNHAG4eo4i9VNXOs+ylp8lmb+JRkC+AdtB7LVMBPm33v6EbfJU18XoGT1KtmA0uq6oaqug84AzikfYOqurGqrgAeGI8OSpq01iY+HQicW1W3N0nbucCcbnRaUm8wgZPUq7YDbm5bXtqUDdfUJIuSXJzkOavaKMncZrtFy5YtG2VXJU0yaxOfhrWvsUmavBxCqZ42/fhvd7S+G9/7rI7Wpwltp6q6JckjgO8lubKqfjF4o6qaB8wDmDVrVnW7k5I0FGOTNHl5BU5Sr7oF2KFtefumbFiq6pbm3xuAC4HHd7Jzkia1tYlPaxXbJPU/EzhJvWohsHOSGUnWB44AhjWbZJLNk2zQvN8K2Bu4ZvV7SdKwjTo+AecABzRxanPggKZMkgATOEk9qqqWA8fROrBZDJxVVVcnOSnJwQBJ9kqyFHge8JkkVze77wIsSnI5cAHw3kGzw0nSqK1NfKqq24F30UoCFwInNWWSBHgPnKQeVlULgAWDyk5oe7+Q1vCjwfv9CNh9zDsoadIabXxq1p0KnDqmHZTUs0zgpGFywhRJkiSNN4dQSpIkSVKP8AqcJElSn9r99M6OFr/yqCs7Wp+kkfMKnCRJkiT1CBM4SZIkSeoRJnCSJEmS1CNM4CRJkiSpR5jASZIkSVKPMIGTJEmSpB5hAidJkiRJPcIETpIkSZJ6hAmcJEmSJPUIEzhJkiRJ6hEmcJIkSZLUI4aVwCWZk+S6JEuSHD/E+tcnuSbJFUnOT7JT27qjklzfvI7qZOclSZIkaTJZYwKXZApwMnAQsCtwZJJdB232M2BWVe0BfBV4f7PvFsA7gCcBs4F3JNm8c92XJEmSpMljOFfgZgNLquqGqroPOAM4pH2Dqrqgqv7cLF4MbN+8PxA4t6pur6o7gHOBOZ3puiRJkiRNLusOY5vtgJvblpfSuqK2Ki8DvrOafbcbvEOSucBcgB133HEYXZIkSQCcuGmH67uzs/VJkjqqo5OYJHkRMAv4z5HsV1XzqmpWVc2aNm1aJ7skSZIkSX1jOFfgbgF2aFvevil7kCT7Af8GPK2q7m3bd59B+144mo5KktRTvDImSRoDw7kCtxDYOcmMJOsDRwDz2zdI8njgM8DBVfW7tlXnAAck2byZvOSApkySJEmSNEJrvAJXVcuTHEcr8ZoCnFpVVyc5CVhUVfNpDZl8OPCVJAA3VdXBVXV7knfRSgIBTqqq28fkk0iSJElSnxvOEEqqagGwYFDZCW3v91vNvqcCp462g5IkSb0myRzgo7ROfv93Vb130PoNgM8BTwRuAw6vqhuTrAf8N/AEWsdpn6uq/+hq5yVNaMNK4CaK6cd/u6P13fjeZ3W0PkmSpLZn6O5PawbuhUnmV9U1bZu9DLijqh6V5AjgfcDhwPOADapq9yQbAdck+XJV3djdTyFpouroLJSSJEla8zN0m+XTm/dfBZ6R1n0oBTwsybrAhsB9wF3d6bakXmACJ0mS1FnDeQ7uym2qajlwJ7AlrWTuT8CtwE3AB4aaPyDJ3CSLkixatmxZ5z+BpAnLBE6SJGnimA2sALYFZgBvSPKIwRv5DF1p8jKBkyRJ6qzhPEN35TbNcMlNaU1m8gLgf6vq/ubRTD8EZo15jyX1DBM4SZKkzlrjM3Sb5aOa94cB36uqojVscl+AJA8Dngxc25VeS+oJPTULpSRJ0kQ3zGfongJ8PskS4HZaSR60Zq/8bJKrgQCfraoruv8pJq7dT9+9o/VdedSVHa1PGmsmcJIkSR02jGfo3kPrkQGD97t7qHJJGmACJ0mSJE0SXsHsfd4DJ0mSJEk9wgROkiRJknqECZwkSZIk9QgTOEmSJEnqESZwkiRJktQjTOAkSZIkqUeYwEmSJElSjzCBkyRJkqQeYQInSZIkST3CBE6SJEmSeoQJnKSelWROkuuSLEly/BDrn5rk0iTLkxw2aN1RSa5vXkd1r9eSJEmjZwInqSclmQKcDBwE7AocmWTXQZvdBBwNfGnQvlsA7wCeBMwG3pFk87HusyRJ0toygZPUq2YDS6rqhqq6DzgDOKR9g6q6saquAB4YtO+BwLlVdXtV3QGcC8zpRqclSZLWhgmcpF61HXBz2/LSpmys95UkSRo3JnCStBpJ5iZZlGTRsmXLxrs7kiRpklt3OBslmQN8FJgC/HdVvXfQ+qcCHwH2AI6oqq+2rVsBXNks3lRVB3eg35J0C7BD2/L2Tdlw991n0L4XDrVhVc0D5gHMmjWrRtpJSZImq91P372j9V151JVr3mgSWOMVuLWZKKDxl6qa2bxM3iR1ykJg5yQzkqwPHAHMH+a+5wAHJNm8mbzkgKZMkiRpQhvOEMq1mShAksZEVS0HjqOVeC0Gzqqqq5OclORggCR7JVkKPA/4TJKrm31vB95FKwlcCJzUlEmSJE1owxlCOdTN/k8aQRtTkywClgPvrapvDN4gyVxgLsCOO+44gqolTWZVtQBYMKjshLb3C2kNjxxq31OBU8e0g73uxE07XN+dna1PkqRJqBuTmOxUVbOAFwAfSfLIwRtU1byqmlVVs6ZNm9aFLkmSJElS7xlOArc2EwVQVbc0/95Aa5KAx4+gf5IkSZKkxnASuFFPFNBMELBB834rYG/gmtF2VpIkqRckmZPkuiRLkhw/xPoNkpzZrP9Jkult6/ZI8uMkVye5MsnUrnZe0oS2xgRubSYKAHYBFiW5HLiA1j1wJnCSJKlvDXMG75cBd1TVo4APA+9r9l0X+AJwTFXtRuuRJ/d3qeuSesCwngM32okCqupHQGcfACFJkjSxrZzBGyDJwAze7SexDwFObN5/FfhEktB6rMkVVXU5QFXd1q1OS+oN3ZjERJIkaTIZagbv7Va1TTPa6U5gS+DRQCU5J8mlSf51qAaSzE2yKMmiZcuWdfwDSJq4TOAkSZImjnWBpwAvbP49NMkzBm/kDN7S5DWsIZSSJI0Znzen/jOcGbwHtlna3Pe2KXAbrat1/1dVvwdIsgB4AnD+WHdaUm/wCpwkSVJnDWcG7/nAUc37w4DvVVXRmjRu9yQbNYnd03AGb0ltvAInSZLUQVW1PMnADN5TgFMHZvAGFlXVfOAU4PNJlgC300ryqKo7knyIVhJYwIKq+va4fBBJE5IJnCRJUocNYwbve2g9fmmofb9A61ECkvQQDqGUJEmSpB5hAidJkiRJPcIETpIkSZJ6hAmcJEmSJPUIEzhJkiRJ6hEmcJIkSZLUI0zgJEmSJKlHmMBJkiRJUo/wQd7jbPrx3+5ofTe+91kdrU/SBHPiph2u787O1idJksaUV+AkSZIkqUeYwEmSJElSjzCBkyRJkqQeYQInSZIkST3CBE6SJEmSeoQJnCRJkiT1CB8jIEmSpLW2++m7d7S+K4+6sqP1Sf3CK3CSJEmS1COGlcAlmZPkuiRLkhw/xPqnJrk0yfIkhw1ad1SS65vXUZ3quCRJkiRNNmtM4JJMAU4GDgJ2BY5MsuugzW4Cjga+NGjfLYB3AE8CZgPvSLL52ndbkiRJkiaf4VyBmw0sqaobquo+4AzgkPYNqurGqroCeGDQvgcC51bV7VV1B3AuMKcD/ZYkSZKkSWc4Cdx2wM1ty0ubsuFYm30lSZIkSW0mxCQmSeYmWZRk0bJly8a7O5IkSZI0IQ0ngbsF2KFtefumbDiGtW9VzauqWVU1a9q0acOsWpIkaWIaxgRwGyQ5s1n/kyTTB63fMcndSd7YtU5L6gnDSeAWAjsnmZFkfeAIYP4w6z8HOCDJ5s3kJQc0ZZIkSX1pmBPAvQy4o6oeBXwYeN+g9R8CvjPWfZXUe9b4IO+qWp7kOFqJ1xTg1Kq6OslJwKKqmp9kL+DrwObAPyZ5Z1XtVlW3J3kXrSQQ4KSqun2MPoskSdJEsHICOIAkAxPAXdO2zSHAic37rwKfSJKqqiTPAX4J/KlrPdaQfDi5JqI1JnAAVbUAWDCo7IS29wtpDY8cat9TgVPXoo+SJHXGiZt2uL47O1uf+sVQk7g9aVXbNCfL7wS2THIP8GZgf2CVwyeTzAXmAuy4446d67mkCW9YCZz6w/Tjv93R+m5877M6Wp8kSeJE4MNVdXeSVW5UVfOAeQCzZs2q7nRN0kRgAidJktRZw5nEbWCbpUnWBTYFbqN1pe6wJO8HNgMeSHJPVX1izHstqSeYwEmSJHXWygngaCVqRwAvGLTNfOAo4MfAYcD3qqqAfxjYIMmJwN0mb5LamcBJkiR10HAmgANOAT6fZAlwO60kT5LWyARuFbxfTJIkjdYwJoC7B3jeGuo4cUw6J6mnmcBpTJgAS5IkSZ03nAd5S9KElGROkuuSLEly/BDrN0hyZrP+J0mmN+XTk/wlyWXN69Nd77wkSdIoeAVOUk9KMgU4mdazkpYCC5PMr6r2B+W+DLijqh6V5AjgfcDhzbpfVNXMbvZZkiRpbXkFTlKvmg0sqaobquo+4AzgkEHbHAKc3rz/KvCMrO7BSpIkSROcCZykXrUdcHPb8tKmbMhtqmo5cCewZbNuRpKfJfl+kn9gFZLMTbIoyaJly5Z1rveSJEmjYAInaTK6Fdixqh4PvB74UpJNhtqwquZV1ayqmjVt2rSudlKSJGkwEzhJveoWYIe25e2bsiG3SbIusClwW1XdW1W3AVTVT4FfAI8e8x5LkiStJRM4Sb1qIbBzkhlJ1qf1ENz5g7aZDxzVvD8M+F5VVZJpzSQoJHkEsDNwQ5f6LUmSNGrOQimpJ1XV8iTHAecAU4BTq+rqJCcBi6pqPnAK8PkkS4DbaSV5AE8FTkpyP/AAcExV3d79TyFJkjQyJnCSelZVLQAWDCo7oe39PcDzhtjvbODsMe+gJElShzmEUpIkSZJ6hAmcJEmSJPUIEzhJkiRJ6hEmcJIkSZLUI0zgJEmSJKlHmMBJkiRJUo8wgZMkSZKkHmECJ0mSJEk9wgROkiRJknrEusPZKMkc4KPAFOC/q+q9g9ZvAHwOeCJwG3B4Vd2YZDqwGLiu2fTiqjqmQ32XJEmSet7up+/e0fquPOrKjtaniWWNCVySKcDJwP7AUmBhkvlVdU3bZi8D7qiqRyU5AngfcHiz7hdVNbOz3ZYkSZKkyWc4QyhnA0uq6oaqug84Azhk0DaHAKc3778KPCNJOtdNSZKk3pFkTpLrkixJcvwQ6zdIcmaz/ifNqCWS7J/kp0mubP7dt+udlzShDSeB2w64uW15aVM25DZVtRy4E9iyWTcjyc+SfD/JP6xlfyVJkia0ttFLBwG7Akcm2XXQZitHLwEfpjV6CeD3wD9W1e7AUcDnu9NrSb1irCcxuRXYsaoeD7we+FKSTQZvlGRukkVJFi1btmyMuyRJkjSmRj16qap+VlW/bsqvBjZs5hqQJGB4CdwtwA5ty9s3ZUNuk2RdYFPgtqq6t6puA6iqnwK/AB49uIGqmldVs6pq1rRp00b+KSRJkiaOtR29NOC5wKVVde8Y9VNSDxpOArcQ2DnJjCTrA0cA8wdtM5/WZX6Aw4DvVVUlmdYMIyDJI4CdgRs603VJkqT+lGQ3WsMqX7mK9Y5ekiapNc5CWVXLkxwHnEPrMQKnVtXVSU4CFlXVfOAU4PNJlgC300ryAJ4KnJTkfuAB4Jiqun0sPogkSRpjJ27a4fru7Gx9E8dIRi8tbR+9BJBke+DrwD9X1S+GaqCq5gHzAGbNmlUd7b2kCW1Yz4GrqgXAgkFlJ7S9vwd43hD7nQ2cvZZ9lCRJ6iUrRy/RStSOAF4waJuB0Us/5sGjlzYDvg0cX1U/7F6XJfWKsZ7ERJIkaVJp7mkbGL20GDhrYPRSkoObzU4BtmxGL70eGHjUwHHAo4ATklzWvP6myx9B0gQ2rCtwkiRJGr61GL3078C/j3kHJfUsr8BJkiRJUo8wgZMkSZKkHuEQSmmCmX78tzta343vfVZH65MkSdL48QqcJEmSJPUIEzhJkiRJ6hEmcJIkSZLUI0zgJEmSJKlHmMBJkiRJUo8wgZMkSZKkHmECJ0mSJEk9wgROkiRJknqECZwkSZIk9QgTOEmSJEnqESZwkiRJktQjTOAkSZIkqUeYwEmSJElSjzCBkyRJkqQeYQInSZIkST1i3fHugCRJkiSN1u6n797R+q486sqO1tdpXoGTJEmSpB5hAidJkiRJPcIETpIkSZJ6xLASuCRzklyXZEmS44dYv0GSM5v1P0kyvW3dW5ry65Ic2MG+S5rkjE2SJirjk6SxssYELskU4GTgIGBX4Mgkuw7a7GXAHVX1KODDwPuafXcFjgB2A+YAn2zqk6S1YmySNFEZnySNpeFcgZsNLKmqG6rqPuAM4JBB2xwCnN68/yrwjCRpys+oqnur6pfAkqY+SVpbxiZJE5XxSdKYGU4Ctx1wc9vy0qZsyG2qajlwJ7DlMPeVpNEwNkmaqIxPksbMhHgOXJK5wNxm8e4k161llVsBv19ju+9by1a621Y/fqZutuVnGv+2dupIT7qsw/FpWD9H3pm1aKKv2+rHz9TNtvxMQzM2tQwvzh/dve9HB9ryM9nWeLXTibZWGZuGk8DdAuzQtrx9UzbUNkuTrAtsCtw2zH2pqnnAvGH0ZViSLKqqWZ2qbyK01Y+fqZtt+Zl6p60RGPPYBJ2NT/36f+Z3vjfa8jN1lcdOE6AtP5NtjVc7Y93WcIZQLgR2TjIjyfq0bqydP2ib+cBRzfvDgO9VVTXlRzQzLc0AdgYu6UzXJU1yxiZJE5XxSdKYWeMVuKpanuQ44BxgCnBqVV2d5CRgUVXNB04BPp9kCXA7rUBFs91ZwDXAcuDYqloxRp9F0iRibJI0URmfJI2lYd0DV1ULgAWDyk5oe38P8LxV7Ptu4N1r0cfR6NiQggnUVj9+pm625WfqnbaGzdg06drqx8/Uzbb8TF1kfJoQbfmZbGu82hnTttK6Wi9JkiRJmuiGcw+cJEmSJGkCMIGTJEmSpB5hAidJkiRJPcIETpIkSZJ6hAmcJEmSJPUIEzhJkiRJ6hEmcJIkSZLUI0zgJEmSJKlHmMBJkiRJUo8wgZMkSZKkHmECJ0mSJEk9wgROkiRJknqECZwkSZIk9QgTOEmSJEnqESZwkiRJktQjTOAkSZIkqUeYwEmSJElSjzCBkyRJkqQeYQInSZIkST3CBE6SJEmSeoQJnCRJkiT1CBM4SZIkSeoRJnCSJEmS1CNM4CRJkiSpR5jASZIkSVKPMIGTJEmSpB5hAidJkiRJPcIETpIkSZJ6hAmcJEmSJPUIEziNSJIXJFmU5O4ktyb5TpKnjHOfbkyy33j2QVL39PLvfJLTkvz7ePdDUmc08egvzXHRwOsT49iffZJUkjePVx809kzgNGxJXg98BHgPsDWwI/BJ4JAR1rPucMokabwZryQNwz9W1cPbXseNY1+OAm4H/nkc+6AxZgKnYUmyKXAScGxVfa2q/lRV91fV/1TVm5JskOQjSX7dvD6SZINm332SLE3y5iS/AT6b5MQkX03yhSR3AUcn2TTJKc2VvVuS/HuSKW19eEWSxUn+mOSaJE9I8nlaieT/NGe9/nU8fj6Sui/J0UkuSvKBJHck+WWSg9rWb5Hks01MuiPJN9rWvSLJkiS3J5mfZNu2dZXk2CTXA9evIoatk+T4JL9IcluSs5Js0VbHU5L8KMkfktzc9HUu8ELgX5t49T9d+UFJGhfN7/0Pk3y4iQU3JPn7pvzmJL9LclTb9qcl+XSSc5tjne8n2WkE7T0MOAw4Ftg5yaxB6x9yHNWU75Dka0mWNfFs3K4ganhM4DRcfwdMBb6+ivX/BjwZmAnsCcwG3ta2/m+BLYCdgLlN2SHAV4HNgC8CpwHLgUcBjwcOAF4OkOR5wIm0zihtAhwM3FZVLwZu4q9nv96/lp9TUm95EnAdsBXwfuCUJGnWfR7YCNgN+BvgwwBJ9gX+A3g+sA3wK+CMQfU+p6l712Z5cAx7TbPN04BtgTuAk5v6dwK+A3wcmEYrLl5WVfNoxbr3N/HqHzvyE5A0kT0JuALYEvgSrVizF61jnRcBn0jy8LbtXwi8i1ZMu4xWzBiufwLuBr4CnEPrahyw6uOo5kT5t2jFwenAdjw0HmqCSVWNdx/UA5K8EPhgVf3tKtb/AnhNVS1olg8EPlNV05PsA3wX2KSq7mnWnwjsW1VPbZa3ppWIbVZVf2nKjgTmVtXTk5wDLKiqjw7R9o3Ay6vqvA5+ZEkT1MDvPLA98LaqelRTvhHwJ1pJWYBbgC2r6o5B+59C6wTQvzbLD6eVgO1cVTcmKeAZVfW9Zv0+PDSGLQaOq6rzm+VtaMWwDYE3AbOr6tAh+n4asLSq3jZ4naTe08SjrWidgB7wpqr6ryRHA/9WVTs32+5OK5n726r6bVN2G614c1kTH6ZW1RHNuocDdwLTq+rmYfTlPOCqqnpdcwz1MWDbqrp/VcdRSf4OmA9sU1XLH1qrJiLH8Wu4bgO2SrLuKn7Bt6V19mbAr5qyAcsGDnzatAejnYD1gFv/evKcddq22QH4xSj7Lql//WbgTVX9uYkfD6d1tez2wclbY1vg0rb97m4OorYDbmyKBx8sDY5hOwFfT/JAW9kKWvcHG6+kyeU5qzmJ/Nu2938BGEje2srar8CtjD1NbLqdVsxabQKXZAfg6cBbmqJvAvOAZwHfYNVxaQfgVyZvvcUhlBquHwP30hoyNJRf0zqgGbBjUzZgqEu97WU3N/VvVVWbNa9Nqmq3tvWPXEXbXkaWNNjNwBZJNhti3YPiVXPfyJa0rtgNGBxXBi/fDBzUFq82q6qpVXULxitJo7fDwJvmCtwWPPh4alVeTOu4/n+ae3VvoHXry8AwylXFpZuBHePkTD3FBE7DUlV3AicAJyd5TpKNkqyX5KAk7we+DLwtybQkWzXbfmEE9d9Ka4jSB5Ns0kwQ8MgkT2s2+W/gjUmemJZHtd3Y+1vgEZ36rJJ6XxNTvgN8MsnmTbx6arP6y8BLksxMa7Kl9wA/qaobR9DEp4F3D8ShJvYNzMj7RWC/JM9Psm6SLZPMbNYZryStzjObSZDWp3Uv3MXDGT5JK1F7J617bgdez23q25JVH0ddAtwKvDfJw5JMTbJ3xz+VOsoETsNWVR8EXk9rcpJltM7aHEfr0vy/A4toje2+ktbwpJE+6+ifgfWBa2jdj/JVWveyUFVfAd5N6wbgPzZtDsz49h+0ksc/JHnjqD6cpH70YuB+4Frgd8DrAJqhTm8HzqZ14PJI4IgR1v1RWveNfDfJH4GLaU1WQFXdBDwTeAOt6bwvozW5E8ApwK5NvPrG6D6WpAlmYCbsgdeqJnwbji8B76AVO55Ia6ITAJJc3cxJ8CBJnkxrVMHJVfWbttd8YAlw5KqOo6pqBfCPtCZVuQlYChze1PsPSe5ei8+iMeIkJpIkSdI4c5IjDZdX4CRJkiSpR5jASZIkSVKPcAilJEmSJPUIr8BJkiRJUo+YcM982GqrrWr69Onj3Q1JHfbTn/7091U1bbz7sTaMT1L/MTZJmohWF5smXAI3ffp0Fi1aNN7dkNRhSX41xvXvAHwO2JrWw5LnVdVHk5wIvILWoy8A3lpVC5p93gK8DFgB/L+qOmd1bRifpP4z1rGpG4xNUv9ZXWyacAmcJI3ScuANVXVpko2BnyY5t1n34ar6QPvGSXal9eyv3YBtgfOSPLp5Jo4kSdKE5D1wkvpCVd1aVZc27/8ILAa2W80uhwBnVNW9VfVLWg87nT32PZUkSRo9EzhJfSfJdODxwE+aouOSXJHk1CSbN2XbATe37baUIRK+JHOTLEqyaNmyZYNXS5IkdZVDKKURuv/++1m6dCn33HPPeHdlQpo6dSrbb78966233ri0n+ThwNnA66rqriSfAt5F6764dwEfBF463Pqqah4wD2DWrFkPee6K34fRG+/viiRp5Py711mj+VtoAieN0NKlS9l4442ZPn06Sca7OxNKVXHbbbexdOlSZsyY0fX2k6xHK3n7YlV9renTb9vW/xfwrWbxFmCHtt23b8pGxO/D6Iz3d0WSNDr+3euc0f4tdAilNEL33HMPW265pUFrCEnYcsstx+WsXFr/IacAi6vqQ23l27RtdihwVfN+PnBEkg2SzAB2Bi4Zabt+H0ZnPL8rkqTR8+9e54z2b6FX4KRRMGit2jj+bPYGXgxcmeSypuytwJFJZtIaQnkj8EqAqro6yVnANbRmsDx2tDNQ+n0YHX9umoySnAo8G/hdVT1uiPUBPgo8E/gzcPTABE3SRGH87pzR/CxN4CT1haq6CBgqCi5YzT7vBt49Zp2SpIc6DfgEredWDuUgWiMCdgaeBHyq+VeSABM4aa0tfuwuHa1vl2sXD2u73/zmN7zuda9j4cKFbLbZZmy99dZ85CMf4dGPfnRH+zOU0047jQMOOIBtt912zNvqNScf872O1nfsp/dd4zYPf/jDufvuuzvabid95CMfYe7cuWy00Ubj3RVp3FXV/zUz5a7KIcDnqqqAi5NslmSbqrq1Oz2URuaDhz+7o/W94cxvrXGbKVOmsPvuu69cPuKIIzj++OM72o+hzJw5k8c+9rGcccYZY97W6pjAST2oqjj00EM56qijVgaRyy+/nN/+9rdrTOCWL1/Ouuuuu8rl4TjttNN43OMeZwI3CXTi+/KRj3yEF73oRSZw0vCs6hEnJnBSY8MNN+Syyy7rapuLFy9mxYoV/OAHP+BPf/oTD3vYw7rafjsTOPW08br6Nd4uuOAC1ltvPY455piVZXvuuSdVxZve9Ca+853vkIS3ve1tHH744Vx44YW8/e1vZ/PNN+faa69l3rx5D1pevHgxxx9/PBdeeCH33nsvxx57LK985SsBeN/73scXvvAF1llnHQ466CBmzZrFokWLeOELX8iGG27Ij3/8YzbccMPx+lGozYUXXsiJJ57IVlttxVVXXcUTn/hEvvCFL5CEhQsX8trXvpY//elPbLDBBpx//vmst956vOpVr2LRokWsu+66fOhDH+LpT386p512Gl/72te4++67WbFiBS95yUsetLxgwQJe85rXcNVVV3H//fdz4okncsghh7BixQre/OY387//+7+ss846vOIVr6Cq+PWvf83Tn/50ttpqKy644ILx/jGpB4zHlexek2QuMBdgxx13HOfetIzHlRiN3Nr+Pz3l2Dfxm/UnZgoxffp0jjzySL7zne+w7rrrMm/ePN7ylrewZMkS3vSmN3HMMcdw4YUXcsIJJ7DxxhuzZMkSnv70p/PJT36SddZZ/dyOX/7yl3nxi1/M4sWL+eY3v8kLXvACgCH/vm600UYP+Xv4mte8pmOfc2L+9CWt1sDB+WBf+9rXuOyyy7j88sv5/e9/z1577cVTn/pUAC699FKuuuoqZsyYwYUXXvig5Xnz5rHpppuycOFC7r33Xvbee28OOOAArr32Wr75zW/yk5/8hI022ojbb7+dLbbYgk984hN84AMfYNasWd3+6FqDn/3sZ1x99dVsu+227L333vzwhz9k9uzZHH744Zx55pnstdde3HXXXWy44YZ89KMfJQlXXnkl1157LQcccAA///nPgdb35YorrmCLLbbgtNNOe9DyW9/6Vvbdd19OPfVU/vCHPzB79mz2228/Pve5z3HjjTdy2WWXse666678vnzoQx/iggsuYKutthrnn47UE4b1iJM1PaNS6md/+ctfmDlz5srlt7zlLRx++OFA64TGZZddxr/8y79w9NFH88Mf/pB77rmHxz3ucStPfF9yySVcc8017LTTTsyZM4evfe1rHHbYYatt88wzz+Tcc8/l2muv5eMf/zgveMELuO+++4b8+zpv3ryH/D3sJBM4qY9cdNFFHHnkkUyZMoWtt96apz3taSxcuJBNNtmE2bNnP+gZI+3L3/3ud7niiiv46le/CsCdd97J9ddfz3nnncdLXvKSlUPftthii+5/KI3I7Nmz2X777YHWWP0bb7yRTTfdlG222Ya99toLgE022QRofV8Gzgg+9rGPZaeddlqZwO2///4P+v9uX/7ud7/L/Pnz+cAHPgC0ppS+6aabOO+88zjmmGNWDrH0+yKNynzguCRn0Jq85E7vf5MebHVDKA8++GAAdt99d+6++2423nhjNt54YzbYYAP+8Ic/AK2/lY94xCMAOPLII7noootWm8AtWrSIrbbaih133JHtttuOl770pdx+++3ccsstQ/59Heu/hyZwUg/abbfdViZbwzV4rHb7clXx8Y9/nAMPPPBB25xzzjmj76TGxQYbbLDy/ZQpU1i+fPmo6lnT9+Xss8/mMY95zOg6KU1iSb4M7ANslWQp8A5gPYCq+jStmXOfCSyh9RiBl4xPTwUOC+1FA38H11lnnQf9TVxnnXVW/k0cPHX/mqby//KXv8y1117L9OnTAbjrrrs4++yzefKTn9zBng+fD/KWetC+++7Lvffey7x581aWXXHFFWy22WaceeaZrFixgmXLlvF///d/zJ49e431HXjggXzqU5/i/vvvB+DnP/85f/rTn9h///357Gc/y5///GeAlUMANt54Y/74xz+OwSfTWHjMYx7DrbfeysKFCwH44x//yPLly/mHf/gHvvjFLwKt//ObbrppWEnZgQceyMc//nFak+S1hm1C6yrdZz7zmZV/IP2+SA9VVUdW1TZVtV5VbV9Vp1TVp5vkjWo5tqoeWVW7V9Wi8e6z1G8uueQSfvnLX/LAAw9w5pln8pSnPGWV2z7wwAOcddZZXHnlldx4443ceOONfPOb3+TLX/7yKv++rurvYad4BU5aS+Mx8UkSvv71r/O6172O973vfUydOpXp06fzkY98hLvvvps999yTJLz//e/nb//2b7n22mtXW9/LX/5ybrzxRp7whCdQVUybNo1vfOMbzJkzh8suu4xZs2ax/vrr88xnPpP3vOc9HH300RxzzDFOYjKEiThZwvrrr8+ZZ57Ja17zGv7yl7+w4YYbct555/HqV7+aV73qVey+++6su+66nHbaaQ86W7kqb3/723nd617HHnvswQMPPMCMGTP41re+xctf/nJ+/vOfs8cee7Deeuvxile8guOOO465c+cyZ84ctt12WycxkaQ+Mx5XFQffAzdnzhze+973Dnv/vfbai+OOO27lJCaHHnoo0DoeOuaYYx50j/8PfvADtttuuwfNvP3Upz6Va665httuu23Iv6+r+nt4wgknMGvWrJXDPEcrA2dQJ4pZs2bVokWebNLwjMcslIsXL2aXXTrbbr8Z6meU5KdV1dOzngwVn/w+rB1/fhpKN2eh7NfYNB76cbihn+mhnnLsm9hpu78mM3/7yJ3XtktddeGFF/KBD3yAb31r/P8vBoz0uMkhlJIkSZLUIxxCKUmSJGlS2Geffdhn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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PolarityCoverageOverlapsConflictsCorrectIncorrectEmp. Acc.
keyword_my[-1.0, 0.0]0.1910470.1727620.095208263400.867987
keyword_subscribe[-1.0, 0.0]0.0863810.0762930.04665813701.000000
keyword_link[-1.0, 0.0]0.1191680.0958390.077554178110.941799
keyword_please[-1.0, 0.0]0.0920550.0882720.04035314420.986301
keyword_song[-1.0, 1.0]0.0838590.0598990.02396096370.721805
regex_check_out[-1.0, 0.0]0.2339220.1261030.07629337101.000000
short_comment[-1.0, 1.0]0.2257250.1273640.0662042381200.664804
textblob_polarity[-1.0, 1.0]0.0353090.0290040.0050444790.839286
textblob_subjectivity[-1.0, 1.0]0.3575030.2282470.1525853252420.573192
\n", + "
" + ], + "text/plain": [ + " Polarity Coverage Overlaps Conflicts Correct \\\n", + "keyword_my [-1.0, 0.0] 0.191047 0.172762 0.095208 263 \n", + "keyword_subscribe [-1.0, 0.0] 0.086381 0.076293 0.046658 137 \n", + "keyword_link [-1.0, 0.0] 0.119168 0.095839 0.077554 178 \n", + "keyword_please [-1.0, 0.0] 0.092055 0.088272 0.040353 144 \n", + "keyword_song [-1.0, 1.0] 0.083859 0.059899 0.023960 96 \n", + "regex_check_out [-1.0, 0.0] 0.233922 0.126103 0.076293 371 \n", + "short_comment [-1.0, 1.0] 0.225725 0.127364 0.066204 238 \n", + "textblob_polarity [-1.0, 1.0] 0.035309 0.029004 0.005044 47 \n", + "textblob_subjectivity [-1.0, 1.0] 0.357503 0.228247 0.152585 325 \n", + "\n", + " Incorrect Emp. Acc. \n", + "keyword_my 40 0.867987 \n", + "keyword_subscribe 0 1.000000 \n", + "keyword_link 11 0.941799 \n", + "keyword_please 2 0.986301 \n", + "keyword_song 37 0.721805 \n", + "regex_check_out 0 1.000000 \n", + "short_comment 120 0.664804 \n", + "textblob_polarity 9 0.839286 \n", + "textblob_subjectivity 242 0.573192 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from spear.labeling import LFAnalysis\n", + "\n", + "analyse = yt_noisy_labels.analyse_lfs(plot=True)\n", + "\n", + "result = analyse.head(16)\n", + "display(result)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create different splits of data here" + ] + }, + { + "cell_type": "code", + "execution_count": 142, + "metadata": {}, + "outputs": [], + "source": [ + "from utils import get_test_U_V_data\n", + "import numpy as np\n", + "\n", + "test_size = 100\n", + "# U_size = 1486\n", + "n_lfs = len(rules.get_lfs())\n", + "X = np.asarray(X)\n", + "Y = np.asarray(Y)\n", + "X_T, Y_T, _, X_U, _, X_feats_T, Y_U, X_feats_U, X_V, Y_V, X_feats_V = get_test_U_V_data\\\n", + " (X, X_feats, Y, n_lfs, test_size, validation_size=100)\n", + "\n", + "# from utils import get_various_data\n", + "\n", + "# validation_size = 100\n", + "# test_size = 100\n", + "# L_size = 100\n", + "# n_lfs = len(rules.get_lfs())\n", + "# X = np.asarray(X)\n", + "# Y = np.asarray(Y)\n", + "# X_V, Y_V, X_feats_V,_, X_T, Y_T, X_feats_T,_, X_L, Y_L, X_feats_L,_, X_U, X_feats_U,_ = get_various_data(X, Y,\\\n", + "# X_feats, n_lfs, validation_size, test_size, L_size)" + ] + }, + { + "cell_type": "code", + "execution_count": 143, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "47" + ] + }, + "execution_count": 143, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "np.sum(Y_T==0)" + ] + }, + { + "cell_type": "code", + "execution_count": 144, + "metadata": {}, + "outputs": [], + "source": [ + "path_json = 'data_pipeline/JL/yt_json.json'\n", + "V_path_pkl = 'data_pipeline/JL/yt_pickle_V.pkl' #validation data - have true labels\n", + "T_path_pkl = 'data_pipeline/JL/yt_pickle_T.pkl' #test data - have true labels\n", + "L_path_pkl = 'data_pipeline/JL/yt_pickle_L.pkl' #Labeled data - have true labels\n", + "U_path_pkl = 'data_pipeline/JL/yt_pickle_U.pkl' #unlabelled data - don't have true labels\n", + "\n", + "log_path_jl_1 = 'log/JL/yt_log_1.txt' #jl is an algorithm, can be found below\n", + "params_path = 'params/JL/yt_params.pkl' #file path to store parameters of JL, used below" + ] + }, + { + "cell_type": "code", + "execution_count": 145, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "((100,), (100,), (1386, 16634))" + ] + }, + "execution_count": 145, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X_V.shape, Y_V.shape, X_feats_U.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 146, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([0, 0, 0, ..., 0, 0, 0])" + ] + }, + "execution_count": 146, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X_feats_U[0]" + ] + }, + { + "cell_type": "code", + "execution_count": 147, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 100/100 [00:00<00:00, 359.79it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 100/100 [00:00<00:00, 2429.55it/s]\n", + "100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1386/1386 [00:00<00:00, 2416.62it/s]\n" + ] + } + ], + "source": [ + "from spear.labeling import PreLabels\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"yt\",\n", + " data=X_V,\n", + " gold_labels=Y_V,\n", + " data_feats=X_feats_V,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "yt_noisy_labels.generate_pickle(V_path_pkl)\n", + "yt_noisy_labels.generate_json(path_json) #generating json files once is enough\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"yt\",\n", + " data=X_T,\n", + " gold_labels=Y_T,\n", + " data_feats=X_feats_T,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "yt_noisy_labels.generate_pickle(T_path_pkl)\n", + "\n", + "# yt_noisy_labels = PreLabels(name=\"yt\",\n", + "# data=X_L,\n", + "# gold_labels=Y_L,\n", + "# data_feats=X_feats_L,\n", + "# rules=rules,\n", + "# labels_enum=ClassLabels,\n", + "# num_classes=2)\n", + "# yt_noisy_labels.generate_pickle(L_path_pkl)\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"yt\",\n", + " data=X_U,\n", + " rules=rules,\n", + " data_feats=X_feats_U,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2) #note that we don't pass gold_labels here, for the unlabelled data\n", + "yt_noisy_labels.generate_pickle(U_path_pkl)" + ] + }, + { + "cell_type": "code", + "execution_count": 148, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of elements in data list: 10\n", + "Shape of feature matrix: (1386, 16634)\n", + "Shape of labels matrix: (1386, 9)\n", + "Shape of continuous scores matrix : (1386, 9)\n", + "Total number of classes: 2\n", + "Classes dictionary in json file(modified to have integer keys): {1: 'SPAM', 0: 'HAM'}\n" + ] + } + ], + "source": [ + "from spear.utils import get_data, get_classes\n", + "\n", + "data_U = get_data(path = U_path_pkl, check_shapes=True)\n", + "#check_shapes being True(above), asserts for relative shapes of arrays in pickle file\n", + "print(\"Number of elements in data list: \", len(data_U))\n", + "print(\"Shape of feature matrix: \", data_U[0].shape)\n", + "print(\"Shape of labels matrix: \", data_U[1].shape)\n", + "print(\"Shape of continuous scores matrix : \", data_U[6].shape)\n", + "print(\"Total number of classes: \", data_U[9])\n", + "\n", + "classes = get_classes(path = path_json)\n", + "print(\"Classes dictionary in json file(modified to have integer keys): \", classes)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "heading_collapsed": true + }, + "source": [ + "## SPEAR - with all 9 LFs" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "from spear.jl import JL\n", + "\n", + "n_features = 16634\n", + "n_hidden = 512\n", + "feature_model = 'lr'\n", + "'''\n", + "'nn' is neural network. other alternative is 'lr'(logistic regression) which doesn't need n_hidden to be passed\n", + "during initialisation.\n", + "''' \n", + "\n", + "jl = JL(path_json = path_json, n_lfs = n_lfs, n_features = n_features, feature_model = feature_model)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "loss_func_mask = [1,0,1,1,1,1,1] \n", + "'''\n", + "One can keep 0s in places where he don't want the specific loss function to be part\n", + "the final loss function used in training. Refer documentation(spear.JL.core.JL) to understand\n", + "the which index of loss_func_mask refers to what loss function.\n", + "\n", + "Note: the loss_func_mask above may not be the optimal mask for sms dataset. We have to try\n", + " some other masks too, to find the best one that gives good accuracies.\n", + "'''\n", + "batch_size = 32\n", + "lr_fm = 0.0003\n", + "lr_gm = 0.01\n", + "use_accuracy_score = False\n", + "\n", + "jl = JL(path_json = path_json, n_lfs = n_lfs, n_features = n_features, feature_model = feature_model, \\\n", + " n_hidden = n_hidden)\n", + "\n", + "probs_fm, probs_gm = jl.fit_and_predict_proba(path_L = L_path_pkl, path_U = U_path_pkl, path_V = V_path_pkl, \\\n", + " path_T = T_path_pkl, loss_func_mask = loss_func_mask, batch_size = batch_size, lr_fm = lr_fm, lr_gm = \\\n", + " lr_gm, use_accuracy_score = use_accuracy_score, path_log = log_path_jl_1, return_gm = True, n_epochs = \\\n", + " 100, start_len = 7,stop_len = 10, is_qt = True, is_qc = True, qt = 0.9, qc = 0.85, metric_avg = 'macro')\n", + "\n", + "labels = np.argmax(probs_fm, 1)\n", + "print(\"probs_fm shape: \", probs_fm.shape)\n", + "print(\"probs_gm shape: \", probs_gm.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "labels_fm_test = jl.predict_fm(x_test = X_feats_T, need_strings=False)\n", + "labels_gm_test = jl.predict_gm(path_test = T_path_pkl, qc = 0.85, need_strings=False)\n", + "\n", + "print(\"labels_fm_test shape: \", labels_fm_test.shape)\n", + "print(\"labels_gm_test shape: \", labels_gm_test.shape)\n", + "\n", + "#Y_T is true labels of test data, type is numpy array of shape (num_instances,)\n", + "print(\"accuracy_score of gm: \", accuracy_score(Y_T, labels_gm_test), \"| fm: \", accuracy_score(Y_T, labels_fm_test))\n", + "print(\"f1_score of gm: \", f1_score(Y_T, labels_gm_test, average = None), \"| fm: \", f1_score(Y_T, labels_fm_test, average = None))\n", + "print(\"Macro f1_score: \", f1_score(Y_T, labels_fm_test, average = 'macro'))\n", + "print(\"Precision score of gm: \", precision_score(Y_T, labels_gm_test, average = None), \"| fm: \", precision_score(Y_T, labels_fm_test, average = None))\n", + "print(\"Recall score of gm: \", recall_score(Y_T, labels_gm_test, average = None), \"| fm: \", recall_score(Y_T, labels_fm_test, average = None))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## CAGE Algorithm - With All 9 LFs" + ] + }, + { + "cell_type": "code", + "execution_count": 149, + "metadata": {}, + "outputs": [], + "source": [ + "log_path_cage = 'params/cage/yt_log_1.txt' #jl is an algorithm, can be found below\n", + "params_path = 'params/cage/yt_params.pkl' #file path to store parameters of JL, used below\n", + "\n", + "from spear.cage import Cage\n", + "\n", + "cage = Cage(path_json = path_json, n_lfs = n_lfs)" + ] + }, + { + "cell_type": "code", + "execution_count": 150, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 100/100 [00:06<00:00, 16.36it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "final_test_accuracy_score: 0.74\n", + "test_average_metric: macro\tfinal_test_f1_score: 0.7291666666666667\n", + "probs shape: (1386, 2)\n", + "labels shape: (1386,)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "probs = cage.fit_and_predict_proba(path_pkl = U_path_pkl, path_test = T_path_pkl, path_log = log_path_cage, \\\n", + " qt = 0.9, qc = 0.85, metric_avg = ['macro'], n_epochs = 100, lr = 0.01)\n", + "labels = np.argmax(probs, 1)\n", + "print(\"probs shape: \", probs.shape)\n", + "print(\"labels shape: \",labels.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 151, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "labels_test shape: (100,)\n", + "accuracy_score: 0.74\n", + "Binary f1_score: 0.6749999999999999\n", + "Macro f1_score: 0.7291666666666667\n", + "Micro f1_score: 0.74\n", + "Class Wise f1_score: [0.78333333 0.675 ]\n", + "Class Wise Precision score: [0.64383562 1. ]\n", + "Class Wise Recall score: [1. 0.50943396]\n" + ] + } + ], + "source": [ + "labels_test = cage.predict(path_test = T_path_pkl, qc = 0.85, need_strings = False)\n", + "print(\"labels_test shape: \", labels_test.shape)\n", + "\n", + "\n", + "#Y_T is true labels of test data, type is numpy array of shape (num_instances,)\n", + "print(\"accuracy_score: \", accuracy_score(Y_T, labels_test))\n", + "print(\"Binary f1_score: \", f1_score(Y_T, labels_test, average = 'binary'))\n", + "print(\"Macro f1_score: \", f1_score(Y_T, labels_test, average = 'macro'))\n", + "print(\"Micro f1_score: \", f1_score(Y_T, labels_test, average = 'micro'))\n", + "print(\"Class Wise f1_score: \", f1_score(Y_T, labels_test, average = None))\n", + "print(\"Class Wise Precision score: \", precision_score(Y_T, labels_test, average = None))\n", + "print(\"Class Wise Recall score: \", recall_score(Y_T, labels_test, average = None))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Checking here : How many instances have equal class probs from CAGE model" + ] + }, + { + "cell_type": "code", + "execution_count": 152, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "235\n" + ] + } + ], + "source": [ + "j=0\n", + "for i in range(data_U[2].shape[0]):\n", + " if np.all(data_U[2][i] == 0):\n", + " j+=1\n", + "print(j)" + ] + }, + { + "cell_type": "code", + "execution_count": 153, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "#Row: 235\n" + ] + } + ], + "source": [ + "j = 0 \n", + "for i in range(probs.shape[0]):\n", + " if np.all(probs[i]==probs[i][0]):\n", + " j+=1\n", + "# print(labels[i])\n", + "print('#Row: ', j)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Finding high confident instances by the CAGE model" + ] + }, + { + "cell_type": "code", + "execution_count": 168, + "metadata": {}, + "outputs": [], + "source": [ + "top_num_instances = 100\n", + "high_probs = np.abs(probs[:,0] - probs[:,1])\n", + "hiprob_ind = np.argsort(high_probs)[-top_num_instances:]" + ] + }, + { + "cell_type": "code", + "execution_count": 169, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "95" + ] + }, + "execution_count": 169, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(np.where(Y_U[hiprob_ind]==0)[0])" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "metadata": {}, + "outputs": [], + "source": [ + "def printGreedyRounded(greedyList):\n", + " print([(elem[0], round(elem[1],3)) for elem in greedyList])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Conditional Gain followed by Mutual Information\n", + "- Budget is set in line 8\n", + "- nus and eta are set as 1\n", + "- TODO: Convert into an active learning setup" + ] + }, + { + "cell_type": "code", + "execution_count": 312, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[||||| ]28% [Iteration 27 of 100]0]" + ] + } + ], + "source": [ + "from submodlib import FacilityLocationConditionalGainFunction, FacilityLocationMutualInformationFunction, \\\n", + "FacilityLocationVariantMutualInformationFunction\n", + "\n", + "nus = [1]#[0, 0.3, 0.6, 1, 1.4, 1.8, 2.2, 2.6, 3, 10, 50, 100]\n", + "eta = 1\n", + "row = 0\n", + "index = 1\n", + "groundData = np.delete(probs, hiprob_ind, axis=0)\n", + "budget = 100\n", + "groundxs = [x[0] for x in groundData]\n", + "groundys = [x[1] for x in groundData]\n", + "for nu in nus:\n", + " singleQueryData = probs[hiprob_ind]\n", + " ## Conditional Gain Function\n", + " obj = FacilityLocationConditionalGainFunction(n=probs.shape[0], \n", + " num_privates=100, \n", + " data=probs,\n", + " privateData=singleQueryData,\n", + " metric=\"euclidean\", \n", + " privacyHardness=nu)\n", + " greedyList = obj.maximize(budget=budget,optimizer='NaiveGreedy', stopIfZeroGain=False, \n", + " stopIfNegativeGain=False, verbose=False)\n", + " \n", + " \n", + " cg_indices = [x[0] for x in greedyList]\n", + " \n", + " ## Mutual Information \n", + "# groundData = np.delete(groundData, cg_indices, axis=0)\n", + " singleQueryData = probs[hiprob_ind]\n", + "# obj = FacilityLocationMutualInformationFunction(n=probs.shape[0], num_queries=10, data=probs, \n", + "# queryData=singleQueryData, metric=\"euclidean\", \n", + "# magnificationEta=eta)\n", + " \n", + " obj = FacilityLocationVariantMutualInformationFunction(n=probs.shape[0], num_queries=100, data=probs, \n", + " queryData=singleQueryData, metric=\"euclidean\", \n", + " queryDiversityEta=eta)\n", + " greedyList = obj.maximize(budget=budget,optimizer='NaiveGreedy', stopIfZeroGain=False, \n", + " stopIfNegativeGain=False, verbose=False)\n", + " \n", + " mi_indices = [x[0] for x in greedyList]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Finding unique instances from CG and MI" + ] + }, + { + "cell_type": "code", + "execution_count": 313, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "ation 28 of 100]\r", + "[|||||| ]30% [Iteration 30 of 100]\r", + "[|||||| ]31% [Iteration 31 of 100]\r", + "[|||||| ]32% [Iteration 32 of 100]\r", + "[|||||| ]33% [Iteration 33 of 100]\r", + "[|||||| ]34% [Iteration 34 of 100]\r", + "[||||||| ]35% [Iteration 35 of 100]\r", + "[||||||| ]36% [Iteration 36 of 100]\r", + "[||||||| ]37% [Iteration 37 of 100]\r", + "[||||||| ]38% [Iteration 38 of 100]\r", + "[||||||| ]39% [Iteration 39 of 100]\r", + "[|||||||| ]40% [Iteration 40 of 100]\r", + "[|||||||| ]41% [Iteration 41 of 100]\r", + "[|||||||| ]42% [Iteration 42 of 100]\r", + "[|||||||| ]43% [Iteration 43 of 100]\r", + "[|||||||| ]44% [Iteration 44 of 100]\r", + "[||||||||| ]45% [Iteration 45 of 100]\r", + "[||||||||| ]46% [Iteration 46 of 100]\r", + "[||||||||| ]47% [Iteration 47 of 100]\r", + "[||||||||| ]48% [Iteration 48 of 100]\r", + "[||||||||| ]49% [Iteration 49 of 100]\r", + "[|||||||||| ]50% [Iteration 50 of 100]\r", + "[|||||||||| ]51% [Iteration 51 of 100]\r", + "[|||||||||| ]52% [Iteration 52 of 100]\r", + "[|||||||||| ]53% [Iteration 53 of 100]\r", + "[|||||||||| ]54% [Iteration 54 of 100]\r", + "[||||||||||| ]55% [Iteration 55 of 100]\r", + "[||||||||||| ]56% [Iteration 56 of 100]\r", + "[||||||||||| ]56% [Iteration 57 of 100]\r", + "[||||||||||| ]57% [Iteration 58 of 100]\r", + "[||||||||||| ]59% [Iteration 59 of 100]\r", + "[|||||||||||| ]60% [Iteration 60 of 100]\r", + "[|||||||||||| ]61% [Iteration 61 of 100]\r", + "[|||||||||||| ]62% [Iteration 62 of 100]\r", + "[|||||||||||| ]63% [Iteration 63 of 100]\r", + "[|||||||||||| ]64% [Iteration 64 of 100]\r", + "[||||||||||||| ]65% [Iteration 65 of 100]\r", + "[||||||||||||| ]66% [Iteration 66 of 100]\r", + "[||||||||||||| ]67% [Iteration 67 of 100]\r", + "[||||||||||||| ]68% [Iteration 68 of 100]\r", + "[||||||||||||| ]69% [Iteration 69 of 100]\r", + "[|||||||||||||| ]70% [Iteration 70 of 100]\r", + "[|||||||||||||| ]71% [Iteration 71 of 100]\r", + "[|||||||||||||| ]72% [Iteration 72 of 100]\r", + "[|||||||||||||| ]73% [Iteration 73 of 100]\r", + "[|||||||||||||| ]74% [Iteration 74 of 100]\r", + "[||||||||||||||| ]75% [Iteration 75 of 100]\r", + "[||||||||||||||| ]76% [Iteration 76 of 100]\r", + "[||||||||||||||| ]77% [Iteration 77 of 100]\r", + "[||||||||||||||| ]78% [Iteration 78 of 100]\r", + "[||||||||||||||| ]79% [Iteration 79 of 100]\r", + "[|||||||||||||||| ]80% [Iteration 80 of 100]\r", + "[|||||||||||||||| ]81% [Iteration 81 of 100]\r", + "[|||||||||||||||| ]82% [Iteration 82 of 100]\r", + "[|||||||||||||||| ]83% [Iteration 83 of 100]\r", + "[|||||||||||||||| ]84% [Iteration 84 of 100]\r", + "[||||||||||||||||| ]85% [Iteration 85 of 100]\r", + "[||||||||||||||||| ]86% [Iteration 86 of 100]\r", + "[||||||||||||||||| ]87% [Iteration 87 of 100]\r", + "[||||||||||||||||| ]88% [Iteration 88 of 100]\r", + "[||||||||||||||||| ]89% [Iteration 89 of 100]\r", + "[|||||||||||||||||| ]90% [Iteration 90 of 100]\r", + "[|||||||||||||||||| ]91% [Iteration 91 of 100]\r", + "[|||||||||||||||||| ]92% [Iteration 92 of 100]\r", + "[|||||||||||||||||| ]93% [Iteration 93 of 100]\r", + "[|||||||||||||||||| ]94% [Iteration 94 of 100]\r", + "[||||||||||||||||||| ]95% [Iteration 95 of 100]\r", + "[||||||||||||||||||| ]96% [Iteration 96 of 100]\r", + "[||||||||||||||||||| ]97% [Iteration 97 of 100]\r", + "[||||||||||||||||||| ]98% [Iteration 98 of 100]\r", + "[||||||||||||||||||| ]99% [Iteration 99 of 100]\r", + "[||||||||||||||||||||]100% [Iteration 100 of 100]" + ] + } + ], + "source": [ + "indices = cg_indices\n", + "# indices = np.asarray(list(set(cg_indices).union(set(mi_indices))))" + ] + }, + { + "cell_type": "code", + "execution_count": 314, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(100, 100, 100)" + ] + }, + "execution_count": 314, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(indices), len(cg_indices), len(mi_indices)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "heading_collapsed": true + }, + "source": [ + "### Randomly selecting indices" + ] + }, + { + "cell_type": "code", + "execution_count": 229, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "np.random.seed(42)\n", + "\n", + "rand_ind = np.random.choice(range(probs.shape[0]), size=100, replace=False)\n", + "indices = rand_ind" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Creating pickle files for L subset & U set " + ] + }, + { + "cell_type": "code", + "execution_count": 315, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "26" + ] + }, + "execution_count": 315, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(np.where(Y_U[indices]==0)[0])" + ] + }, + { + "cell_type": "code", + "execution_count": 290, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "14" + ] + }, + "execution_count": 290, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(np.where(Y_U[cg_indices]==0)[0])" + ] + }, + { + "cell_type": "code", + "execution_count": 291, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "46" + ] + }, + "execution_count": 291, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(np.where(Y_U[rand_ind]==0)[0])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Writing subset pickle files" + ] + }, + { + "cell_type": "code", + "execution_count": 319, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "inside\n" + ] + } + ], + "source": [ + "from spear.utils import get_data, get_classes\n", + "\n", + "U_path_pkl = 'data_pipeline/JL/yt_pickle_U.pkl' #unlabelled data - don't have true labels\n", + "data_U = get_data(U_path_pkl, check_shapes=True)\n", + "\n", + "path_save_L = 'data_pipeline/JL/subset_L.pkl'\n", + "path_save_U = 'data_pipeline/JL/subset_U.pkl'\n", + "\n", + "false_mask = np.ones(data_U[0].shape[0], dtype = bool)\n", + "false_mask[indices] = False\n", + "\n", + "save_file_L = open(path_save_L, 'wb')\n", + "save_file_U = open(path_save_U, 'wb')\n", + "\n", + "for i in range(10):\n", + " if i < 7:\n", + " if data_U[i].shape[0] == 0:\n", + " if i == 3:\n", + " print('inside')\n", + " x = np.random.randint(0,2,[len(indices), 1])\n", + " pickle.dump(x, save_file_L)\n", + " pickle.dump(data_U[i], save_file_U)\n", + " else:\n", + " pickle.dump(data_U[i], save_file_L)\n", + " pickle.dump(data_U[i], save_file_U)\n", + " \n", + " else:\n", + " pickle.dump(data_U[i][indices], save_file_L)\n", + " pickle.dump(data_U[i][false_mask], save_file_U)\n", + " \n", + " \n", + " elif i >= 7:\n", + " pickle.dump(data_U[i], save_file_L)\n", + " pickle.dump(data_U[i], save_file_U)" + ] + }, + { + "cell_type": "code", + "execution_count": 320, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(1286, 9)" + ] + }, + "execution_count": 320, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "## Just checking whether pickles are properly generatred\n", + "path_save_L = 'data_pipeline/JL/subset_U.pkl'\n", + "data_L = get_data(path_save_L, check_shapes=True)\n", + "data_L[1].shape" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Inserting true labels from Y_U" + ] + }, + { + "cell_type": "code", + "execution_count": 321, + "metadata": {}, + "outputs": [], + "source": [ + "from spear.jl import insert_true_labels\n", + "\n", + "path_save_L = 'data_pipeline/JL/subset_L.pkl'\n", + "path_save_labeled = 'data_pipeline/JL/sup_subset_labeled_L.pkl'\n", + "labels = np.asarray([Y_U[i] for i in indices])\n", + "\n", + "\n", + "labels = np.reshape(labels, (len(labels),1))\n", + "\n", + "insert_true_labels(path = path_save_L, path_save = path_save_labeled, labels = labels)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Applying SPEAR here" + ] + }, + { + "cell_type": "code", + "execution_count": 322, + "metadata": {}, + "outputs": [], + "source": [ + "from spear.jl import JL\n", + "\n", + "n_features = 16634\n", + "n_hidden = 512\n", + "feature_model = 'lr'\n", + "'''\n", + "'nn' is neural network. other alternative is 'lr'(logistic regression) which doesn't need n_hidden to be passed\n", + "during initialisation.\n", + "''' \n", + "\n", + "jl = JL(path_json = path_json, n_lfs = n_lfs, n_features = n_features, feature_model = feature_model)" + ] + }, + { + "cell_type": "code", + "execution_count": 323, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 0%| | 0/100 [00:04\u001b[0;34m\u001b[0m\n\u001b[1;32m 19\u001b[0m n_hidden = n_hidden)\n\u001b[1;32m 20\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 21\u001b[0;31m probs_fm, probs_gm = jl.fit_and_predict_proba(path_L = L_path_pkl, path_U = U_path_pkl, path_V = V_path_pkl, \\\n\u001b[0m\u001b[1;32m 22\u001b[0m \u001b[0mpath_T\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mT_path_pkl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mloss_func_mask\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mloss_func_mask\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbatch_size\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mbatch_size\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlr_fm\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlr_fm\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlr_gm\u001b[0m \u001b[0;34m=\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 23\u001b[0m \u001b[0mlr_gm\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0muse_accuracy_score\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0muse_accuracy_score\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpath_log\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlog_path_jl_1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mreturn_gm\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mn_epochs\u001b[0m \u001b[0;34m=\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.8/site-packages/spear/jl/core.py\u001b[0m in \u001b[0;36mfit_and_predict_proba\u001b[0;34m(self, path_L, path_U, path_V, path_T, loss_func_mask, batch_size, lr_fm, lr_gm, use_accuracy_score, path_log, return_gm, n_epochs, start_len, stop_len, is_qt, is_qc, qt, qc, metric_avg)\u001b[0m\n\u001b[1;32m 369\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 370\u001b[0m \u001b[0;32mif\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mloss_func_mask\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 371\u001b[0;31m \u001b[0my_pred_unsupervised\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpredict_gm_labels\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtheta\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpi\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msample\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0munsupervised_indices\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msample\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m3\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0munsupervised_indices\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mk\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mn_classes\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcontinuous_mask\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mqc_\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdevice\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 372\u001b[0m \u001b[0mloss_3\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msupervised_criterion\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfeature_model\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msample\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0munsupervised_indices\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtensor\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0my_pred_unsupervised\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdevice\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdevice\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 373\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.8/site-packages/spear/utils/utils_cage.py\u001b[0m in \u001b[0;36mpredict_gm_labels\u001b[0;34m(theta, pi, m, s, k, n_classes, continuous_mask, qc, device)\u001b[0m\n\u001b[1;32m 186\u001b[0m \u001b[0mnumpy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mndarray\u001b[0m \u001b[0mof\u001b[0m \u001b[0mshape\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mn_instances\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mthe\u001b[0m \u001b[0mpredicted\u001b[0m \u001b[0;32mclass\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0man\u001b[0m \u001b[0minstance\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 187\u001b[0m \t'''\n\u001b[0;32m--> 188\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0margmax\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mprobability\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtheta\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpi\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mm\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mk\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mn_classes\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcontinuous_mask\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mqc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdevice\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcpu\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdetach\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnumpy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m~/.local/lib/python3.8/site-packages/spear/utils/utils_cage.py\u001b[0m in \u001b[0;36mprobability\u001b[0;34m(theta, pi, m, s, k, n_classes, continuous_mask, qc, device)\u001b[0m\n\u001b[1;32m 109\u001b[0m \u001b[0ma\u001b[0m \u001b[0mtensor\u001b[0m \u001b[0mof\u001b[0m \u001b[0mshape\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mn_instances\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mn_classes\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mthe\u001b[0m \u001b[0mprobability\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0man\u001b[0m \u001b[0minstance\u001b[0m \u001b[0mbeing\u001b[0m \u001b[0ma\u001b[0m \u001b[0mparticular\u001b[0m \u001b[0;32mclass\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 110\u001b[0m \t'''\n\u001b[0;32m--> 111\u001b[0;31m \u001b[0mp_l_y\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mprobability_l_y\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtheta\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mm\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mk\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mn_classes\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdevice\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 112\u001b[0m \u001b[0mp_s\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mones\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mn_classes\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdevice\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdevice\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdouble\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 113\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0my\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mn_classes\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.8/site-packages/spear/utils/utils_cage.py\u001b[0m in \u001b[0;36mprobability_l_y\u001b[0;34m(theta, m, k, n_classes, device)\u001b[0m\n\u001b[1;32m 59\u001b[0m \u001b[0mz\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcalculate_normalizer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtheta\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mk\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mn_classes\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdevice\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 60\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0my\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mn_classes\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 61\u001b[0;31m \u001b[0mprobability\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexp\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mphi\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtheta\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0my\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mm\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdevice\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msum\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m/\u001b[0m \u001b[0mz\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 62\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 63\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mprobability\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdouble\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mIndexError\u001b[0m: Dimension out of range (expected to be in range of [-1, 0], but got 1)" + ] + } + ], + "source": [ + "loss_func_mask = [1,0,1,1,1,1,1] \n", + "'''\n", + "One can keep 0s in places where he don't want the specific loss function to be part\n", + "the final loss function used in training. Refer documentation(spear.JL.core.JL) to understand\n", + "the which index of loss_func_mask refers to what loss function.\n", + "\n", + "Note: the loss_func_mask above may not be the optimal mask for sms dataset. We have to try\n", + " some other masks too, to find the best one that gives good accuracies.\n", + "'''\n", + "L_path_pkl = path_save_L\n", + "U_path_pkl = path_save_U\n", + "\n", + "batch_size = 32\n", + "lr_fm = 0.0003\n", + "lr_gm = 0.001\n", + "use_accuracy_score = False\n", + "\n", + "jl = JL(path_json = path_json, n_lfs = n_lfs, n_features = n_features, feature_model = feature_model, \\\n", + " n_hidden = n_hidden)\n", + "\n", + "probs_fm, probs_gm = jl.fit_and_predict_proba(path_L = L_path_pkl, path_U = U_path_pkl, path_V = V_path_pkl, \\\n", + " path_T = T_path_pkl, loss_func_mask = loss_func_mask, batch_size = batch_size, lr_fm = lr_fm, lr_gm = \\\n", + " lr_gm, use_accuracy_score = use_accuracy_score, path_log = log_path_jl_1, return_gm = True, n_epochs = \\\n", + " 100, start_len = 7,stop_len = 10, is_qt = True, is_qc = True, qt = 0.9, qc = 0.85, metric_avg = 'macro')\n", + "\n", + "labels = np.argmax(probs_fm, 1)\n", + "print(\"probs_fm shape: \", probs_fm.shape)\n", + "print(\"probs_gm shape: \", probs_gm.shape)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "heading_collapsed": true + }, + "source": [ + "## Both CG + MI" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "labels_fm_test = jl.predict_fm(x_test = X_feats_T, need_strings=False)\n", + "labels_gm_test = jl.predict_gm(path_test = T_path_pkl, qc = 0.85, need_strings=False)\n", + "\n", + "print(\"labels_fm_test shape: \", labels_fm_test.shape)\n", + "print(\"labels_gm_test shape: \", labels_gm_test.shape)\n", + "\n", + "#Y_T is true labels of test data, type is numpy array of shape (num_instances,)\n", + "print(\"accuracy_score of gm: \", accuracy_score(Y_T, labels_gm_test), \"| fm: \", accuracy_score(Y_T, labels_fm_test))\n", + "print(\"f1_score of gm: \", f1_score(Y_T, labels_gm_test, average = None), \"| fm: \", f1_score(Y_T, labels_fm_test, average = None))\n", + "print(\"Macro f1_score: \", f1_score(Y_T, labels_gm_test, average = 'macro'))\n", + "print(\"Precision score of gm: \", precision_score(Y_T, labels_gm_test, average = None), \"| fm: \", precision_score(Y_T, labels_fm_test, average = None))\n", + "print(\"Recall score of gm: \", recall_score(Y_T, labels_gm_test, average = None), \"| fm: \", recall_score(Y_T, labels_fm_test, average = None))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "heading_collapsed": true + }, + "source": [ + "## With MI only - |L| - 100" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "\n", + "labels_fm_test = jl.predict_fm(x_test = X_feats_T, need_strings=False)\n", + "labels_gm_test = jl.predict_gm(path_test = T_path_pkl, qc = 0.85, need_strings=False)\n", + "\n", + "print(\"labels_fm_test shape: \", labels_fm_test.shape)\n", + "print(\"labels_gm_test shape: \", labels_gm_test.shape)\n", + "\n", + "#Y_T is true labels of test data, type is numpy array of shape (num_instances,)\n", + "print(\"accuracy_score of gm: \", accuracy_score(Y_T, labels_gm_test), \"| fm: \", accuracy_score(Y_T, labels_fm_test))\n", + "print(\"f1_score of gm: \", f1_score(Y_T, labels_gm_test, average = None), \"| fm: \", f1_score(Y_T, labels_fm_test, average = None))\n", + "print(\"Macro f1_score: \", f1_score(Y_T, labels_gm_test, average = 'macro'))\n", + "print(\"Precision score of gm: \", precision_score(Y_T, labels_gm_test, average = None), \"| fm: \", precision_score(Y_T, labels_fm_test, average = None))\n", + "print(\"Recall score of gm: \", recall_score(Y_T, labels_gm_test, average = None), \"| fm: \", recall_score(Y_T, labels_fm_test, average = None))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## With CG" + ] + }, + { + "cell_type": "code", + "execution_count": 311, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "labels_fm_test shape: (100,)\n", + "labels_gm_test shape: (100,)\n", + "accuracy_score of gm: 0.77 | fm: 0.78\n", + "f1_score of gm: [0.8034188 0.72289157] | fm: [0.80701754 0.74418605]\n", + "Macro f1_score LR: 0.7756017951856384\n", + "Macro f1_score GM: 0.7631551848419318\n", + "Precision score of gm: [0.67142857 1. ] | fm: [0.68656716 0.96969697]\n", + "Recall score of gm: [1. 0.56603774] | fm: [0.9787234 0.60377358]\n" + ] + } + ], + "source": [ + "\n", + "labels_fm_test = jl.predict_fm(x_test = X_feats_T, need_strings=False)\n", + "labels_gm_test = jl.predict_gm(path_test = T_path_pkl, qc = 0.85, need_strings=False)\n", + "\n", + "print(\"labels_fm_test shape: \", labels_fm_test.shape)\n", + "print(\"labels_gm_test shape: \", labels_gm_test.shape)\n", + "\n", + "#Y_T is true labels of test data, type is numpy array of shape (num_instances,)\n", + "print(\"accuracy_score of gm: \", accuracy_score(Y_T, labels_gm_test), \"| fm: \", accuracy_score(Y_T, labels_fm_test))\n", + "print(\"f1_score of gm: \", f1_score(Y_T, labels_gm_test, average = None), \"| fm: \", f1_score(Y_T, labels_fm_test, average = None))\n", + "print(\"Macro f1_score LR: \", f1_score(Y_T, labels_fm_test, average = 'macro'))\n", + "print(\"Macro f1_score GM: \", f1_score(Y_T, labels_gm_test, average = 'macro'))\n", + "print(\"Precision score of gm: \", precision_score(Y_T, labels_gm_test, average = None), \"| fm: \", precision_score(Y_T, labels_fm_test, average = None))\n", + "print(\"Recall score of gm: \", recall_score(Y_T, labels_gm_test, average = None), \"| fm: \", recall_score(Y_T, labels_fm_test, average = None))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Loading 6 LFs " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "from spear.labeling import LFSet, LFAnalysis, PreLabels\n", + "import numpy as np\n", + "\n", + "LFS = [\n", + " keyword_my,\n", + " keyword_subscribe,\n", + " keyword_link,\n", + " keyword_please,\n", + "# keyword_song,\n", + "# regex_check_out,\n", + " short_comment,\n", + "# has_person_nlp,\n", + " textblob_polarity,\n", + "# textblob_subjectivity,\n", + "]\n", + "\n", + "\n", + "rules = LFSet(\"SPAM_LF\")\n", + "rules.add_lf_list(LFS)\n", + "\n", + "R = np.zeros((X.shape[0],len(rules.get_lfs())))\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"youtube\",\n", + " data=X,\n", + " data_feats = X_feats,\n", + " gold_labels=Y,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "L,S = yt_noisy_labels.get_labels()\n", + "\n", + "analyse = yt_noisy_labels.analyse_lfs(plot=True)\n", + "\n", + "result = analyse.head(16)\n", + "display(result)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create different splits of data here" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from utils import get_various_data\n", + "\n", + "validation_size = 100\n", + "test_size = 100\n", + "L_size = 100\n", + "n_lfs = len(rules.get_lfs())\n", + "X = np.asarray(X)\n", + "Y = np.asarray(Y)\n", + "X_V, Y_V, X_feats_V,_, X_T, Y_T, X_feats_T,_, X_L, Y_L, X_feats_L,_, X_U, X_feats_U,_ = get_various_data(X, Y,\\\n", + " X_feats, n_lfs, validation_size, test_size, L_size)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "path_json = 'data_pipeline/JL/yt_json.json'\n", + "V_path_pkl = 'data_pipeline/JL/yt_pickle_V.pkl' #validation data - have true labels\n", + "T_path_pkl = 'data_pipeline/JL/yt_pickle_T_6_lfs.pkl' #test data - have true labels\n", + "L_path_pkl = 'data_pipeline/JL/yt_pickle_L.pkl' #Labeled data - have true labels\n", + "U_path_pkl = 'data_pipeline/JL/yt_pickle_U_6_lfs.pkl' #unlabelled data - don't have true labels\n", + "\n", + "log_path_jl_1 = 'log/JL/yt_log_1.txt' #jl is an algorithm, can be found below\n", + "params_path = 'params/JL/yt_params.pkl' #file path to store parameters of JL, used below" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from spear.labeling import PreLabels\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"yt\",\n", + " data=X_V,\n", + " gold_labels=Y_V,\n", + " data_feats=X_feats_V,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "yt_noisy_labels.generate_pickle(V_path_pkl)\n", + "yt_noisy_labels.generate_json(path_json) #generating json files once is enough\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"yt\",\n", + " data=X_T,\n", + " gold_labels=Y_T,\n", + " data_feats=X_feats_T,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "yt_noisy_labels.generate_pickle(T_path_pkl)\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"yt\",\n", + " data=X_L,\n", + " gold_labels=Y_L,\n", + " data_feats=X_feats_L,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "yt_noisy_labels.generate_pickle(L_path_pkl)\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"yt\",\n", + " data=X_U,\n", + " rules=rules,\n", + " data_feats=X_feats_U,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2) #note that we don't pass gold_labels here, for the unlabelled data\n", + "yt_noisy_labels.generate_pickle(U_path_pkl)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from spear.utils import get_data, get_classes\n", + "\n", + "data_U = get_data(path = U_path_pkl, check_shapes=True)\n", + "#check_shapes being True(above), asserts for relative shapes of arrays in pickle file\n", + "print(\"Number of elements in data list: \", len(data_U))\n", + "print(\"Shape of feature matrix: \", data_U[0].shape)\n", + "print(\"Shape of labels matrix: \", data_U[1].shape)\n", + "print(\"Shape of continuous scores matrix : \", data_U[6].shape)\n", + "print(\"Total number of classes: \", data_U[9])\n", + "\n", + "classes = get_classes(path = path_json)\n", + "print(\"Classes dictionary in json file(modified to have integer keys): \", classes)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "heading_collapsed": true + }, + "source": [ + "## JL with 6 LFS" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "from spear.jl import JL\n", + "\n", + "n_features = 16634\n", + "n_hidden = 512\n", + "feature_model = 'lr'\n", + "'''\n", + "'nn' is neural network. other alternative is 'lr'(logistic regression) which doesn't need n_hidden to be passed\n", + "during initialisation.\n", + "''' \n", + "\n", + "jl = JL(path_json = path_json, n_lfs = n_lfs, n_features = n_features, feature_model = feature_model)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "loss_func_mask = [1,0,1,1,1,1,1] \n", + "'''\n", + "One can keep 0s in places where he don't want the specific loss function to be part\n", + "the final loss function used in training. Refer documentation(spear.JL.core.JL) to understand\n", + "the which index of loss_func_mask refers to what loss function.\n", + "\n", + "Note: the loss_func_mask above may not be the optimal mask for sms dataset. We have to try\n", + " some other masks too, to find the best one that gives good accuracies.\n", + "'''\n", + "batch_size = 32\n", + "lr_fm = 0.0003\n", + "lr_gm = 0.01\n", + "use_accuracy_score = False\n", + "\n", + "jl = JL(path_json = path_json, n_lfs = n_lfs, n_features = n_features, feature_model = feature_model, \\\n", + " n_hidden = n_hidden)\n", + "\n", + "probs_fm, probs_gm = jl.fit_and_predict_proba(path_L = L_path_pkl, path_U = U_path_pkl, path_V = V_path_pkl, \\\n", + " path_T = T_path_pkl, loss_func_mask = loss_func_mask, batch_size = batch_size, lr_fm = lr_fm, lr_gm = \\\n", + " lr_gm, use_accuracy_score = use_accuracy_score, path_log = log_path_jl_1, return_gm = True, n_epochs = \\\n", + " 100, start_len = 7,stop_len = 10, is_qt = True, is_qc = True, qt = 0.9, qc = 0.85, metric_avg = 'macro')\n", + "\n", + "labels = np.argmax(probs_fm, 1)\n", + "print(\"probs_fm shape: \", probs_fm.shape)\n", + "print(\"probs_gm shape: \", probs_gm.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "labels_fm_test = jl.predict_fm(x_test = X_feats_T, need_strings=False)\n", + "labels_gm_test = jl.predict_gm(path_test = T_path_pkl, qc = 0.85, need_strings=False)\n", + "\n", + "print(\"labels_fm_test shape: \", labels_fm_test.shape)\n", + "print(\"labels_gm_test shape: \", labels_gm_test.shape)\n", + "\n", + "#Y_T is true labels of test data, type is numpy array of shape (num_instances,)\n", + "print(\"accuracy_score of gm: \", accuracy_score(Y_T, labels_gm_test), \"| fm: \", accuracy_score(Y_T, labels_fm_test))\n", + "print(\"f1_score of gm: \", f1_score(Y_T, labels_gm_test, average = None), \"| fm: \", f1_score(Y_T, labels_fm_test, average = None))\n", + "print(\"Macro f1_score: \", f1_score(Y_T, labels_fm_test, average = 'macro'))\n", + "print(\"Precision score of gm: \", precision_score(Y_T, labels_gm_test, average = None), \"| fm: \", precision_score(Y_T, labels_fm_test, average = None))\n", + "print(\"Recall score of gm: \", recall_score(Y_T, labels_gm_test, average = None), \"| fm: \", recall_score(Y_T, labels_fm_test, average = None))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "heading_collapsed": true + }, + "source": [ + "## CAGE with 6 LFs" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "log_path_cage = 'params/cage/yt_log_2.txt' #jl is an algorithm, can be found below\n", + "params_path = 'params/cage/yt_params.pkl' #file path to store parameters of JL, used below" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "# from spear.cage import Cage\n", + "\n", + "cage2 = Cage(path_json = path_json, n_lfs = n_lfs)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "probs = cage2.fit_and_predict_proba(path_pkl = U_path_pkl, path_test = T_path_pkl, path_log = log_path_cage, \\\n", + " qt = 0.9, qc = 0.85, metric_avg = ['macro'], n_epochs = 100, lr = 0.01)\n", + "labels = np.argmax(probs, 1)\n", + "print(\"probs shape: \", probs.shape)\n", + "print(\"labels shape: \",labels.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "labels_test = cage2.predict(path_test = T_path_pkl, qc = 0.85, need_strings = False)\n", + "print(\"labels_test shape: \", labels_test.shape)\n", + "\n", + "from sklearn.metrics import accuracy_score, f1_score, precision_score, recall_score\n", + "\n", + "#Y_T is true labels of test data, type is numpy array of shape (num_instances,)\n", + "print(\"accuracy_score: \", accuracy_score(Y_T, labels_test))\n", + "# print(\"Binary f1_score: \", f1_score(Y_T, labels_test, average = 'binary'))\n", + "print(\"Macro f1_score: \", f1_score(Y_T, labels_test, average = 'macro'))\n", + "print(\"Micro f1_score: \", f1_score(Y_T, labels_test, average = 'micro'))\n", + "print(\"Class Wise f1_score: \", f1_score(Y_T, labels_test, average = None))\n", + "print(\"Class Wise Precision score: \", precision_score(Y_T, labels_test, average = None))\n", + "print(\"Class Wise Recall score: \", recall_score(Y_T, labels_test, average = None))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "heading_collapsed": true + }, + "source": [ + "## Loading 4 LFs" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "hidden": true, + "scrolled": true + }, + "outputs": [], + "source": [ + "from spear.labeling import LFSet, LFAnalysis, PreLabels\n", + "import numpy as np\n", + "\n", + "LFS = [\n", + "# keyword_my,\n", + " keyword_subscribe,\n", + " keyword_link,\n", + " keyword_please,\n", + "# keyword_song,\n", + "# regex_check_out,\n", + "# short_comment,\n", + "# has_person_nlp,\n", + " textblob_polarity,\n", + "# textblob_subjectivity,\n", + "]\n", + "\n", + "\n", + "rules = LFSet(\"SPAM_LF\")\n", + "rules.add_lf_list(LFS)\n", + "\n", + "R = np.zeros((X.shape[0],len(rules.get_lfs())))\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"youtube\",\n", + " data=X,\n", + " data_feats = X_feats,\n", + " gold_labels=Y,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "L,S = yt_noisy_labels.get_labels()\n", + "\n", + "analyse = yt_noisy_labels.analyse_lfs(plot=True)\n", + "\n", + "result = analyse.head(16)\n", + "display(result)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "hidden": true + }, + "source": [ + "### Create different splits of data here" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "from utils import get_various_data\n", + "\n", + "validation_size = 100\n", + "test_size = 100\n", + "L_size = 100\n", + "n_lfs = len(rules.get_lfs())\n", + "X = np.asarray(X)\n", + "Y = np.asarray(Y)\n", + "X_V, Y_V, X_feats_V,_, X_T, Y_T, X_feats_T,_, X_L, Y_L, X_feats_L,_, X_U, X_feats_U,_ = get_various_data(X, Y,\\\n", + " X_feats, n_lfs, validation_size, test_size, L_size)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "path_json = 'data_pipeline/JL/yt_json.json'\n", + "V_path_pkl = 'data_pipeline/JL/yt_pickle_V.pkl' #validation data - have true labels\n", + "T_path_pkl = 'data_pipeline/JL/yt_pickle_T_4_lfs.pkl' #test data - have true labels\n", + "L_path_pkl = 'data_pipeline/JL/yt_pickle_L.pkl' #Labeled data - have true labels\n", + "U_path_pkl = 'data_pipeline/JL/yt_pickle_U_4_lfs.pkl' #unlabelled data - don't have true labels\n", + "\n", + "log_path_jl_1 = 'log/JL/yt_log_1.txt' #jl is an algorithm, can be found below\n", + "params_path = 'params/JL/yt_params.pkl' #file path to store parameters of JL, used below" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "from spear.labeling import PreLabels\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"yt\",\n", + " data=X_V,\n", + " gold_labels=Y_V,\n", + " data_feats=X_feats_V,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "yt_noisy_labels.generate_pickle(V_path_pkl)\n", + "yt_noisy_labels.generate_json(path_json) #generating json files once is enough\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"yt\",\n", + " data=X_T,\n", + " gold_labels=Y_T,\n", + " data_feats=X_feats_T,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "yt_noisy_labels.generate_pickle(T_path_pkl)\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"yt\",\n", + " data=X_L,\n", + " gold_labels=Y_L,\n", + " data_feats=X_feats_L,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "yt_noisy_labels.generate_pickle(L_path_pkl)\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"yt\",\n", + " data=X_U,\n", + " rules=rules,\n", + " data_feats=X_feats_U,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2) #note that we don't pass gold_labels here, for the unlabelled data\n", + "yt_noisy_labels.generate_pickle(U_path_pkl)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "from spear.utils import get_data, get_classes\n", + "\n", + "data_U = get_data(path = U_path_pkl, check_shapes=True)\n", + "#check_shapes being True(above), asserts for relative shapes of arrays in pickle file\n", + "print(\"Number of elements in data list: \", len(data_U))\n", + "print(\"Shape of feature matrix: \", data_U[0].shape)\n", + "print(\"Shape of labels matrix: \", data_U[1].shape)\n", + "print(\"Shape of continuous scores matrix : \", data_U[6].shape)\n", + "print(\"Total number of classes: \", data_U[9])\n", + "\n", + "classes = get_classes(path = path_json)\n", + "print(\"Classes dictionary in json file(modified to have integer keys): \", classes)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "heading_collapsed": true + }, + "source": [ + "## JL with 4 LFs" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "from spear.jl import JL\n", + "\n", + "n_features = 16634\n", + "n_hidden = 512\n", + "feature_model = 'lr'\n", + "'''\n", + "'nn' is neural network. other alternative is 'lr'(logistic regression) which doesn't need n_hidden to be passed\n", + "during initialisation.\n", + "''' \n", + "\n", + "jl = JL(path_json = path_json, n_lfs = n_lfs, n_features = n_features, feature_model = feature_model)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "loss_func_mask = [1,0,1,1,1,1,1] \n", + "'''\n", + "One can keep 0s in places where he don't want the specific loss function to be part\n", + "the final loss function used in training. Refer documentation(spear.JL.core.JL) to understand\n", + "the which index of loss_func_mask refers to what loss function.\n", + "\n", + "Note: the loss_func_mask above may not be the optimal mask for sms dataset. We have to try\n", + " some other masks too, to find the best one that gives good accuracies.\n", + "'''\n", + "batch_size = 32\n", + "lr_fm = 0.0003\n", + "lr_gm = 0.01\n", + "use_accuracy_score = False\n", + "\n", + "jl = JL(path_json = path_json, n_lfs = n_lfs, n_features = n_features, feature_model = feature_model, \\\n", + " n_hidden = n_hidden)\n", + "\n", + "probs_fm, probs_gm = jl.fit_and_predict_proba(path_L = L_path_pkl, path_U = U_path_pkl, path_V = V_path_pkl, \\\n", + " path_T = T_path_pkl, loss_func_mask = loss_func_mask, batch_size = batch_size, lr_fm = lr_fm, lr_gm = \\\n", + " lr_gm, use_accuracy_score = use_accuracy_score, path_log = log_path_jl_1, return_gm = True, n_epochs = \\\n", + " 100, start_len = 7,stop_len = 10, is_qt = True, is_qc = True, qt = 0.9, qc = 0.85, metric_avg = 'macro')\n", + "\n", + "labels = np.argmax(probs_fm, 1)\n", + "print(\"probs_fm shape: \", probs_fm.shape)\n", + "print(\"probs_gm shape: \", probs_gm.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "labels_fm_test = jl.predict_fm(x_test = X_feats_T, need_strings=False)\n", + "labels_gm_test = jl.predict_gm(path_test = T_path_pkl, qc = 0.85, need_strings=False)\n", + "\n", + "print(\"labels_fm_test shape: \", labels_fm_test.shape)\n", + "print(\"labels_gm_test shape: \", labels_gm_test.shape)\n", + "\n", + "#Y_T is true labels of test data, type is numpy array of shape (num_instances,)\n", + "print(\"accuracy_score of gm: \", accuracy_score(Y_T, labels_gm_test), \"| fm: \", accuracy_score(Y_T, labels_fm_test))\n", + "print(\"f1_score of gm: \", f1_score(Y_T, labels_gm_test, average = None), \"| fm: \", f1_score(Y_T, labels_fm_test, average = None))\n", + "print(\"Macro f1_score: \", f1_score(Y_T, labels_fm_test, average = 'macro'))\n", + "print(\"Precision score of gm: \", precision_score(Y_T, labels_gm_test, average = None), \"| fm: \", precision_score(Y_T, labels_fm_test, average = None))\n", + "print(\"Recall score of gm: \", recall_score(Y_T, labels_gm_test, average = None), \"| fm: \", recall_score(Y_T, labels_fm_test, average = None))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## CAGE with 4 LFs" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "log_path_cage = 'params/cage/yt_log_4_lfs.txt' #jl is an algorithm, can be found below\n", + "params_path = 'params/cage/yt_params.pkl' #file path to store parameters of JL, used below" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "cage3 = Cage(path_json = path_json, n_lfs = n_lfs)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "probs = cage3.fit_and_predict_proba(path_pkl = U_path_pkl, path_test = T_path_pkl, path_log = log_path_cage, \\\n", + " qt = 0.9, qc = 0.85, metric_avg = ['macro'], n_epochs = 100, lr = 0.01)\n", + "labels = np.argmax(probs, 1)\n", + "print(\"probs shape: \", probs.shape)\n", + "print(\"labels shape: \",labels.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "labels_test = cage3.predict(path_test = T_path_pkl, qc = 0.85, need_strings = False)\n", + "print(\"labels_test shape: \", labels_test.shape)\n", + "\n", + "\n", + "#Y_T is true labels of test data, type is numpy array of shape (num_instances,)\n", + "print(\"accuracy_score: \", accuracy_score(Y_T, labels_test))\n", + "print(\"Binary f1_score: \", f1_score(Y_T, labels_test, average = 'binary'))\n", + "print(\"Macro f1_score: \", f1_score(Y_T, labels_test, average = 'macro'))\n", + "print(\"Micro f1_score: \", f1_score(Y_T, labels_test, average = 'micro'))\n", + "print(\"Class Wise f1_score: \", f1_score(Y_T, labels_test, average = None))\n", + "print(\"Class Wise Precision score: \", precision_score(Y_T, labels_test, average = None))\n", + "print(\"Class Wise Recall score: \", recall_score(Y_T, labels_test, average = None))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.10" + }, + "metadata": { + "interpreter": { + "hash": "31f2aee4e71d21fbe5cf8b01ff0e069b9275f58929596ceb00d14d90e3e16cd6" + } + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/notebooks/YOUTUBE/download_data.sh b/notebooks/YOUTUBE/download_data.sh new file mode 100644 index 0000000..84a5281 --- /dev/null +++ b/notebooks/YOUTUBE/download_data.sh @@ -0,0 +1,32 @@ +#!/bin/bash +set -euxo pipefail + +# Check that we are running from the right directory. +if [ ! "${PWD##*/}" = "YOUTUBE" ]; then + echo "Script must be run from YOUTUBE directory" >&2 + exit 1 +fi + +FILES=( "Youtube01-Psy.csv" "Youtube02-KatyPerry.csv" "Youtube03-LMFAO.csv" "Youtube04-Eminem.csv" "Youtube05-Shakira.csv" ) +DATA_URL="https://archive.ics.uci.edu/ml/machine-learning-databases/00380/YouTube-Spam-Collection-v1.zip" +RELOAD=false + +# Check if at least any file is missing. If so, reload all data. +for filename in "${FILES[@]}" +do + if [ ! -e "data/$filename" ]; then + RELOAD=true + fi +done + +if [ "$RELOAD" = true ]; then + if [ -d "data/" ]; then rm -Rf "data/"; fi + mkdir -p data + wget $DATA_URL -O data.zip + mv data.zip data/ + cd data + unzip data.zip + rm data.zip + rm -rf __MACOSX + cd .. +fi diff --git a/notebooks/YOUTUBE/utils.py b/notebooks/YOUTUBE/utils.py new file mode 100644 index 0000000..2440365 --- /dev/null +++ b/notebooks/YOUTUBE/utils.py @@ -0,0 +1,212 @@ +import glob +import os +import subprocess +from collections import OrderedDict + +import numpy as np +import pandas as pd +import torch +import torch.nn as nn +#import tensorflow as tf +from sklearn.model_selection import train_test_split + +from snorkel.classification.data import DictDataset, DictDataLoader + + +def load_spam_dataset(load_train_labels: bool = False, split_dev: bool = True): + if os.path.basename(os.getcwd()) == "snorkel-tutorials": + os.chdir("spam") + try: + subprocess.run(["bash", "download_data.sh"], check=True, stderr=subprocess.PIPE) + except subprocess.CalledProcessError as e: + print(e.stderr.decode()) + raise e + filenames = sorted(glob.glob("data/Youtube*.csv")) + + dfs = [] + for i, filename in enumerate(filenames, start=1): + df = pd.read_csv(filename) + # Lowercase column names + df.columns = map(str.lower, df.columns) + # Remove comment_id field + df = df.drop("comment_id", axis=1) + # Add field indicating source video + df["video"] = [i] * len(df) + # Rename fields + df = df.rename(columns={"class": "label", "content": "text"}) + # Shuffle order + df = df.sample(frac=1, random_state=123).reset_index(drop=True) + dfs.append(df) + +# return X + df_train = pd.concat(dfs[:4]) + +# if split_dev: +# df_dev = df_train.sample(100, random_state=123) + + if not load_train_labels: + df_train["label"] = np.ones(len(df_train["label"])) * -1 + return df_train +# df_valid_test = dfs[4] +# df_valid, df_test = train_test_split( +# df_valid_test, test_size=250, random_state=123, stratify=df_valid_test.label +# ) + +# if split_dev: +# return df_train, df_dev, df_valid, df_test +# else: +# return df_train, df_valid, df_test + + +def get_keras_logreg(input_dim, output_dim=2): + model = tf.keras.Sequential() + if output_dim == 1: + loss = "binary_crossentropy" + activation = tf.nn.sigmoid + else: + loss = "categorical_crossentropy" + activation = tf.nn.softmax + dense = tf.keras.layers.Dense( + units=output_dim, + input_dim=input_dim, + activation=activation, + kernel_regularizer=tf.keras.regularizers.l2(0.001), + ) + model.add(dense) + opt = tf.keras.optimizers.Adam(lr=0.01) + model.compile(optimizer=opt, loss=loss, metrics=["accuracy"]) + return model + + +def get_keras_lstm(num_buckets, embed_dim=16, rnn_state_size=64): + lstm_model = tf.keras.Sequential() + lstm_model.add(tf.keras.layers.Embedding(num_buckets, embed_dim)) + lstm_model.add(tf.keras.layers.LSTM(rnn_state_size, activation=tf.nn.relu)) + lstm_model.add(tf.keras.layers.Dense(1, activation=tf.nn.sigmoid)) + lstm_model.compile("Adagrad", "binary_crossentropy", metrics=["accuracy"]) + return lstm_model + + +def get_keras_early_stopping(patience=10): + return tf.keras.callbacks.EarlyStopping( + monitor="val_acc", patience=10, verbose=1, restore_best_weights=True + ) + + +def map_pad_or_truncate(string, max_length=30, num_buckets=30000): + """Tokenize text, pad or truncate to get max_length, and hash tokens.""" + ids = tf.keras.preprocessing.text.hashing_trick( + string, n=num_buckets, hash_function="md5" + ) + return ids[:max_length] + [0] * (max_length - len(ids)) + + +def featurize_df_tokens(df): + return np.array(list(map(map_pad_or_truncate, df.text))) + + +def preview_tfs(df, tfs): + transformed_examples = [] + for f in tfs: + for i, row in df.sample(frac=1, random_state=2).iterrows(): + transformed_or_none = f(row) + # If TF returned a transformed example, record it in dict and move to next TF. + if transformed_or_none is not None: + transformed_examples.append( + OrderedDict( + { + "TF Name": f.name, + "Original Text": row.text, + "Transformed Text": transformed_or_none.text, + } + ) + ) + break + return pd.DataFrame(transformed_examples) + + +def df_to_features(vectorizer, df, split): + """Convert pandas DataFrame containing spam data to bag-of-words PyTorch features.""" + words = [row.text for i, row in df.iterrows()] + + if split == "train": + feats = vectorizer.fit_transform(words) + else: + feats = vectorizer.transform(words) + X = feats.todense() + Y = df["label"].values + return X, Y + + +def create_dict_dataloader(X, Y, split, **kwargs): + """Create a DictDataLoader for bag-of-words features.""" + ds = DictDataset.from_tensors(torch.FloatTensor(X), torch.LongTensor(Y), split) + return DictDataLoader(ds, **kwargs) + + +def get_pytorch_mlp(hidden_dim, num_layers): + layers = [] + for _ in range(num_layers): + layers.extend([nn.Linear(hidden_dim, hidden_dim), nn.ReLU()]) + return nn.Sequential(*layers) + + +def get_various_data(X, Y, X_feats, temp_len, validation_size = 100, test_size = 200, L_size = 100, U_size = None): + if U_size == None: + U_size = X.size - L_size - validation_size - test_size + index = np.arange(X.size) + index = np.random.RandomState(seed=42).permutation(index) + X = X[index] + Y = Y[index] + X_feats = X_feats[index] + + X_V = X[-validation_size:] + Y_V = Y[-validation_size:] + X_feats_V = X_feats[-validation_size:] + R_V = np.zeros((validation_size, temp_len)) + + X_T = X[-(validation_size+test_size):-validation_size] + Y_T = Y[-(validation_size+test_size):-validation_size] + X_feats_T = X_feats[-(validation_size+test_size):-validation_size] + R_T = np.zeros((test_size,temp_len)) + + X_L = X[-(validation_size+test_size+L_size):-(validation_size+test_size)] + Y_L = Y[-(validation_size+test_size+L_size):-(validation_size+test_size)] + X_feats_L = X_feats[-(validation_size+test_size+L_size):-(validation_size+test_size)] + R_L = np.zeros((L_size,temp_len)) + + # X_U = X[:-(validation_size+test_size+L_size)] + X_U = X[:U_size] + X_feats_U = X_feats[:U_size] + # Y_U = Y[:-(validation_size+test_size+L_size)] + R_U = np.zeros((U_size,temp_len)) + + return X_V, Y_V, X_feats_V, R_V, X_T,Y_T,X_feats_T,R_T, X_L,Y_L,X_feats_L,R_L, X_U,X_feats_U,R_U + + +def get_test_U_V_data(X, X_feats, Y, temp_len, test_size = 100, validation_size = 100, U_size = None): + if U_size == None: + U_size = X.size - test_size - validation_size + index = np.arange(X.size) + index = np.random.RandomState(seed=42).permutation(index) + X = X[index] + Y = Y[index] + X_feats = X_feats[index] + + X_V = X[-validation_size:] + Y_V = Y[-validation_size:] + X_feats_V = X_feats[-validation_size:] + + X_T = X[-(validation_size+test_size):-validation_size] + Y_T = Y[-(validation_size+test_size):-validation_size] + X_feats_T = X_feats[-(validation_size+test_size):-validation_size] + R_T = np.zeros((test_size,temp_len)) + + + # X_U = X[:-(validation_size+test_size+L_size)] + X_U = X[:U_size] + X_feats_U = X_feats[:U_size] + Y_U = Y[:U_size] + R_U = np.zeros((U_size,temp_len)) + + return X_T,Y_T,R_T, X_U,R_U, X_feats_T, Y_U, X_feats_U, X_V, Y_V, X_feats_V \ No newline at end of file diff --git a/notebooks/YOUTUBE/youtube-labelling.ipynb b/notebooks/YOUTUBE/youtube-labelling.ipynb new file mode 100644 index 0000000..789c9e6 --- /dev/null +++ b/notebooks/YOUTUBE/youtube-labelling.ipynb @@ -0,0 +1,2234 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## **YOUTUBE SPAM COMMENT DETECTION** " + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import pickle\n", + "import os\n", + "import pandas as pd\n", + "from sklearn.metrics import accuracy_score, f1_score, precision_score, recall_score\n", + "\n", + "DISPLAY_ALL_TEXT = False\n", + "\n", + "pd.set_option(\"display.max_colwidth\", 0 if DISPLAY_ALL_TEXT else 50)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Load YouTube Dataset" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "from utils import load_spam_dataset\n", + "\n", + "X = load_spam_dataset(load_train_labels=True)\n", + "Y = X.label.values\n", + "X = X.text\n", + "# We pull out the label vectors for ease of use later\n", + "# Y_dev = df_dev.label.values\n", + "# Y_valid = df_valid.label.values\n", + "# Y_test = df_test.label.values" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.feature_extraction.text import CountVectorizer\n", + "vectorizer = CountVectorizer(ngram_range=(1, 2))\n", + "X_feats = vectorizer.fit_transform(X.tolist()).toarray()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "### **Representation of class Labels**\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(0 pls http://www10.vakinha.com.br/VaquinhaE.aspx...\n", + " 1 if your like drones, plz subscribe to Kamal Ta...\n", + " 2 go here to check the views :3\n", + " 3 Came here to check the views, goodbye.\n", + " 4 i am 2,126,492,636 viewer :D\n", + " ... \n", + " 443 Check out my mummy chanel!\n", + " 444 The rap: cool Rihanna: STTUUPID\n", + " 445 I hope everyone is in good spirits I'm a h...\n", + " 446 Lil m !!!!! Check hi out!!!!! Does live the wa...\n", + " 447 Please check out my youtube channel! Just uplo...\n", + " Name: text, Length: 1586, dtype: object,\n", + " array([1, 1, 0, ..., 1, 1, 1]))" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X, Y" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "During labeling the unlabelled data we lookup for few keywords to assign a class YOUTUBE.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "# For clarity, we define constants to represent the class labels for spam, ham, and abstaining.\n", + "import enum\n", + "\n", + "# enum to hold the class labels\n", + "ABSTAIN = -1\n", + "\n", + "\n", + "class ClassLabels(enum.Enum):\n", + " SPAM = 1\n", + " HAM = 0\n", + "\n", + "\n", + "THRESHOLD = 0.8" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Declaration of Labeling Functions**" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "from spear.labeling import labeling_function, ABSTAIN, preprocessor, continuous_scorer\n", + "import re\n", + "\n", + "@preprocessor()\n", + "def convert_to_lower(x):\n", + " return x.lower().strip()\n", + "\n", + "\n", + "@labeling_function(label=ClassLabels.SPAM, pre=[convert_to_lower])\n", + "def check(x):\n", + " return ClassLabels.SPAM if \"check\" in x.text.lower() else ABSTAIN\n", + "\n", + "\n", + "@labeling_function(label=ClassLabels.SPAM, pre=[convert_to_lower])\n", + "def check_out(x):\n", + " return ClassLabels.SPAM if \"check out\" in x.text.lower() else ABSTAIN\n", + "\n", + "\n", + "keyword_my ={'my'}\n", + "keyword_subscribe={'subscribe'}\n", + "keyword_link={'http'}\n", + "keyword_please={'please', 'plz'}\n", + "keyword_song = {'song'}\n", + "\n", + "\n", + "@labeling_function(label=ClassLabels.SPAM, pre=[convert_to_lower])\n", + "def regex_check_out(x):\n", + " return ClassLabels.SPAM if re.search(r\"check.*out\", x, flags=re.I) else ABSTAIN\n", + "\n", + "\n", + "\n", + "\n", + "@labeling_function(resources=dict(keywords=keyword_my),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def keyword_my(x,**kwargs): \n", + " if len(kwargs[\"keywords\"].intersection(x.split())) > 0:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "\n", + "@labeling_function(resources=dict(keywords=keyword_subscribe),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def keyword_subscribe(x,**kwargs): \n", + " if len(kwargs[\"keywords\"].intersection(x.split())) > 0:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + " \n", + "@labeling_function(resources=dict(keywords=keyword_link),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def keyword_link(x,**kwargs): \n", + " for pattern in kwargs[\"keywords\"]: \n", + " if re.search(pattern,x, flags= re.I):\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + " \n", + "@labeling_function(resources=dict(keywords=keyword_please),pre=[convert_to_lower],label=ClassLabels.SPAM)\n", + "def keyword_please(x,**kwargs): \n", + " if len(kwargs[\"keywords\"].intersection(x.split())) > 0:\n", + " return ClassLabels.SPAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "@labeling_function(resources=dict(keywords=keyword_song),pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def keyword_song(x,**kwargs): \n", + " if len(kwargs[\"keywords\"].intersection(x.split())) > 0:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n", + "\n", + "\n", + "@labeling_function(label=ClassLabels.HAM)\n", + "def short_comment(x):\n", + " \"\"\"Ham comments are often short, such as 'cool video!'\"\"\"\n", + " return ClassLabels.HAM if len(x.split()) < 5 else ABSTAIN\n" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "from textblob import TextBlob\n", + "\n", + "@continuous_scorer()\n", + "def textblob_sentiment(sentence,**kwargs):\n", + " scores = TextBlob(sentence)\n", + " return scores.polarity\n" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "@labeling_function(cont_scorer=textblob_sentiment, pre=[convert_to_lower],label=ClassLabels.HAM)\n", + "def textblob_polarity(x,**kwargs):\n", + " if kwargs[\"continuous_score\"] >= 0.9:\n", + " return ClassLabels.HAM\n", + " else:\n", + " return ABSTAIN\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Loading all 8 LFs" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **LFSet**\n", + "\n", + "Place holder for declared labeling functions. " + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "from spear.labeling import LFSet\n", + "\n", + "LFS = [\n", + " keyword_my,\n", + " keyword_subscribe,\n", + " keyword_link,\n", + " keyword_please,\n", + " keyword_song,\n", + " regex_check_out,\n", + " short_comment,\n", + " textblob_polarity\n", + "]\n", + "\n", + "\n", + "rules = LFSet(\"SPAM_LF\")\n", + "rules.add_lf_list(LFS)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Label the dataset with defined labeling functions**\n", + "\n", + "We can label the dataset using PreLabels by providing as set of labeling funtions. We can also provide the golden labels of the dataset if we already have some labeled data to evaluate our lf's.We provide both the soft labels and hard labels given an instance, although these labels can be very noisy we provide few frameworks to effectively use these rules to label unlabelled data." + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1586/1586 [00:00<00:00, 4303.91it/s]\n" + ] + } + ], + "source": [ + "from spear.labeling import PreLabels\n", + "import numpy as np\n", + "\n", + "R = np.zeros((X.shape[0],len(rules.get_lfs())))\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"youtube\",\n", + " data=X,\n", + " data_feats = X_feats,\n", + " gold_labels=Y,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "L,S = yt_noisy_labels.get_labels()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### **Analyse and refining labeling functions**\n", + "\n", + "Once we are done with labeling the dataset with given lf's, we can analyse the labeling functions we declared by calculating coverage, overlap, conflicts, empirical accuracy for of each lf which helps us to re-iterate on the process by refining new lf's." + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [], + "source": [ + "from spear.labeling import LFAnalysis\n", + "analyse = yt_noisy_labels.analyse_lfs(plot=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PolarityCoverageOverlapsConflictsCorrectIncorrectEmp. Acc.
keyword_my[-1.0, 0.0]0.1910470.1551070.028373263400.867987
keyword_subscribe[-1.0, 0.0]0.0863810.0655740.01387113701.000000
keyword_link[-1.0, 0.0]0.1191680.0794450.049811178110.941799
keyword_please[-1.0, 0.0]0.0920550.0825980.00945814420.986301
keyword_song[-1.0, 1.0]0.0838590.0365700.02396096370.721805
regex_check_out[-1.0, 0.0]0.2339220.0983610.01387137101.000000
short_comment[-1.0, 1.0]0.2257250.0863810.0662042381200.664804
textblob_polarity[-1.0, 1.0]0.0334170.0239600.0031534670.867925
\n", + "
" + ], + "text/plain": [ + " Polarity Coverage Overlaps Conflicts Correct \\\n", + "keyword_my [-1.0, 0.0] 0.191047 0.155107 0.028373 263 \n", + "keyword_subscribe [-1.0, 0.0] 0.086381 0.065574 0.013871 137 \n", + "keyword_link [-1.0, 0.0] 0.119168 0.079445 0.049811 178 \n", + "keyword_please [-1.0, 0.0] 0.092055 0.082598 0.009458 144 \n", + "keyword_song [-1.0, 1.0] 0.083859 0.036570 0.023960 96 \n", + "regex_check_out [-1.0, 0.0] 0.233922 0.098361 0.013871 371 \n", + "short_comment [-1.0, 1.0] 0.225725 0.086381 0.066204 238 \n", + "textblob_polarity [-1.0, 1.0] 0.033417 0.023960 0.003153 46 \n", + "\n", + " Incorrect Emp. Acc. \n", + "keyword_my 40 0.867987 \n", + "keyword_subscribe 0 1.000000 \n", + "keyword_link 11 0.941799 \n", + "keyword_please 2 0.986301 \n", + "keyword_song 37 0.721805 \n", + "regex_check_out 0 1.000000 \n", + "short_comment 120 0.664804 \n", + "textblob_polarity 7 0.867925 " + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "analyse" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "ename": "TypeError", + "evalue": "__init__() missing 1 required positional argument: 'L'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m/tmp/ipykernel_386172/2605209364.py\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mLFAnalysis\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mL\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlabel_overlap\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m: __init__() missing 1 required positional argument: 'L'" + ] + } + ], + "source": [ + "LFAnalysis(L).label_overlap()" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "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A17X3O5Jzef3Yd8Mxu8/f1f6ZjD+rqh+apHAAQagJvFz1AAyDdg8IsZExMrAwcCUXmw7IiI6n6+yGw33zkn9mXG8bwbj5zYY33Mz+Lmpv6tNAidJjcorZ0cBVwKzgEsyc2ZEnBQR+wJExI4RMRc4EPhBRMwst30B+AxwbUTcCQTw3+14H5IkSb1Ri3vguhp93C+bur85J7+jR/X+9re/ccwxxzBt2jRGjBjB+uuvz+mnn86rX/3qpvZHUs9k5lRgapeyExpeT6MYWtndtlcD21XaQalqJ67V5P09udwqc+fO5cgjj+Tuu+9m0aJF7LPPPvzXf/0XK6+88go1PWfOHPbZZx/uuuuuFdqPurft+ds2dX93HnJnj+o169jpt7/9LUcccQTDhg3joosu4sADD+Suu+5i+vTpXHDBBXz3u99d6rZf//rX+fznP9+r9qT+zCtwPZSZ7L///uy666786U9/4o9//CPf+MY3+Pvf/970thYuXNj0fUqStKIyk3e9613st99+3H///dx3330sWLCA//zP/1yh/fq9NzA189jpxz/+MccffzwzZsxg1VVXXVze0dGxzOQNigROGkhqeQWuHa6//nqGDRvGEUccsbhs++23JzM59thjueKKK4gIvvCFL3DQQQdx8MEH84EPfIB3vKO4unfooYeyzz77sP/++3Pcccdxww038Oyzz3LkkUfy0Y9+lBtuuIEvfvGLrL322txzzz3cd9997Lfffjz00EM888wzfOITn2DixIkAnHPOOZxyyimMGDGC7bffnlVWWYXvfe97zJs3jyOOOIIHH3wQgNNPP52dd9659R9WzTT7im6nnl7Z1QDR7CshS+x7+VdFpFa47rrrGD58OIcddhgAQ4YM4bTTTmPMmDH8+te/5oc//CFbb701ALvuuiunnnoqW265JUcffTR33XUXzz//PCeeeCLjx4/nvPPO4/LLL2fBggW88MILnH/++YvbmTNnDh/4wAf417/+BcD3vvc9/uM//oMbbriBE044gTXWWIPZs2fz1re+le9///tkJocffjjTp08nIvjQhz7EJz/5ydZ/QFpCb4+dbrjhBk488UTWW2897rrrLl7/+tfzox/9iHPOOYdLLrmEK6+8kiuuuIKvfe1ri/d3ww03cOqpp/KLX/yCBQsWcPTRRy/+PfjSl77EtGnTePrpp9lhhx3YeuutmTRpEu95z3uYO3cuL7zwAl/84hc56KCD2vHxqA+afSW5U0+vKPcXJnA91BlIurr88suZMWMGt99+O48++ig77rgju+yyCwcddBCXXHIJ73jHO3juuee49tprOeusszjnnHNYa621mDZtGs8++yw777wze+65JwC33nord9111+Jpa88991zWWWcdnn76aXbccUfe/e538+yzz/KVr3yFW2+9lTXWWIPddtuN7bffHoBPfOITfPKTn+RNb3oTDz74IHvttRezZs1q3YckSRrQZs6c+ZLvwjXXXJNNNtmEd7zjHVxyySV8+ctf5pFHHuGRRx6ho6ODz3/+8+y2226ce+65PPHEE4wdO5a3ve1tQPG9d8cdd7DOOuswZ86cxft8+ctfztVXX83w4cO5//77mTBhAtOnTwfglltu4e6772bTTTdl3LhxXH755YwZM4aHH3548fDLJ554oiWfh5att8dOALfddhszZ85kww03ZOedd+Z3v/sdH/7wh7nxxhvZZ599OOCAA5b4XWn0la98hbXWWos77ywOxh9//HHe/e53873vfY8ZM2YAcNlll7Hhhhvyy18WJ2+ffNITZKofh1CuoBtvvJEJEyYwZMgQ1l9/fd7ylrcwbdo09t57b66//nqeffZZrrjiCnbZZRdWXXVVrrrqKi644AJ22GEH3vCGNzB//nzuv/9+AMaOHbvEM0e++93vsv3227PTTjvx0EMPcf/993PLLbfwlre8hXXWWYdhw4Zx4IEHLq5/zTXXcNRRR7HDDjuw77778tRTT7FgwYKWfyaSpMFn11135dJLLwXgkksu4YADDgDgqquu4uSTT2aHHXZg11135Zlnnlk8UmSPPfZgnXXWecm+nn/+eT7ykY+w7bbbcuCBB3L33S9OEjt27Fhe+cpXMmTIECZMmMCNN97IK1/5Sh544AGOPvpofvWrX7Hmmmu24B2rr5Z27ATF/++oUaNYaaWV2GGHHZaarHXnmmuu4cgjj1y8vPbaa7+kzrbbbsvVV1/N5z73OX7729+y1loVjp6QKuIVuB7aeuutF38x9cTw4cPZddddufLKK5k8eTIHH3wwUIwHP+OMM9hrr72WqH/DDTfwspe9bInla665hj/84Q+sttpqi7/0lmXRokXcdNNNDB8+vBfvTJKkntlqq61e8l341FNP8eCDD7Ljjjuy7rrrcscddzB58mTOPvtsoPjeu+yyy3jNa16zxHY333zzEt97jU477TTWX399br/9dhYtWrTE91rXKd4jgrXXXpvbb7+dK6+8krPPPptLLrmEc889txlvWSugt8dOAKusssri10OGDGn6/ZGvfvWrufXWW5k6dSpf+MIX2H333TnhhBOWv6HUj3gFrod22203nn32WSZNmrS47I477mDEiBFMnjyZF154gXnz5vGb3/yGsWPHAnDQQQfxwx/+kN/+9reMGzcOgL322ouzzjqL559/HoD77rtv8Rj/Rk8++SRrr702q622Gvfccw833XQTADvuuCO//vWvefzxx1m4cCGXXXbZ4m323HNPzjjjjMXLncMFJElqht13351///vfXHDBBQC88MILfPrTn+bQQw9ltdVW46CDDuKb3/wmTz75JNttV0zyutdee3HGGWeQmUAxRG55nnzySTbYYANWWmklLrzwQl544YXF62655Rb+/Oc/s2jRIiZPnsyb3vQmHn30URYtWsS73/1uvvrVr3LrrbdW8O7VW305dloRe+yxB2eeeebi5ccffxyAYcOGLT7u+utf/8pqq63G+9//fo499lh/V1RLtbwC147JISKCn/70pxxzzDGccsopDB8+nNGjR3P66aezYMECtt9+eyKCb37zm7ziFa8AioTqAx/4AOPHj188vfKHP/xh5syZw+te9zoyk5EjR/Kzn/3sJe2NGzeOs88+my233JLXvOY17LTTTgBstNFGfP7zn2fs2LGss846bLHFFosv/3/3u9/lyCOPZLvttmPhwoXssssui8+ASpIGoBZPcNP5Xfjxj3+cr3zlKyxatIi3v/3ti2f5O+CAA/jEJz7BF7/4xcXbfPGLX+SYY45hu+22Y9GiRYwZM4Zf/OIXy2zn4x//OO9+97u54IILGDdu3BJX6nbccUeOOuqoxZOY7L///tx5550cdthhLFq0CIBvfOMbFbz7emvHJA29PXa65557Vqi9L3zhCxx55JFss802DBkyhC996Uu8613vYuLEiWy33Xa87nWv44Mf/CDHHnssK620EsOGDeOss85q0ruVWic6z4j1Fx0dHdl5o3KnWbNmseWWW7apR/3PggULWH311Vm4cCH7778/H/rQh9h///17vL2f55KchbI1IuKPmdnR7n6siO7i02LOQqkWGOzxu3HGwb7o7vMb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+Sxrk8BJ0nKcB4zrUnY1sE1mbgfcBxwPEBFbAQcDW5fbfD8ihrSuq5IGsfN4aaxqtDewefkzETirBX2SVCO1uAeuq1lbbNnU/W15z6we1fvb3/7GMcccw7Rp0xgxYgTrr78+p59+Oq9+9aub2p/unHfeeey5555suOGGlbcl1VFm/iYiRncpu6ph8SbggPL1eODizHwW+HNEzAbGAn9Y0X6cecR1K7qLJRx59m7LrbP66quzYMGCprbbTKeffjoTJ05ktdVWa3dXpLbrLlZ1MR64IDMTuCkiRkTEBpn5SGt6KPXOtw7ap6n7+/TkXyy3zpAhQ9h2220XLx988MEcd9xxTe1Hd3bYYQe22GILLr744srbWpZaJnDtkJnsv//+HHLIIYv/026//Xb+/ve/LzeBW7hwIUOHDl3qck+cd955bLPNNiZwUt99CJhcvt6IIqHrNLcsUxfNiF+nn34673//+03gpJ7ZCHioYbkzPpnASaVVV12VGTNmtLTNWbNm8cILL/Db3/6Wf/3rX7zsZS9rafuNTOB66Prrr2fYsGEcccQRi8u23357MpNjjz2WK664gojgC1/4AgcddBA33HADX/ziF1l77bW55557mDRp0hLLs2bN4rjjjuOGG27g2Wef5cgjj+SjH/0oAKeccgo/+tGPWGmlldh7773p6Ohg+vTpvO9972PVVVflD3/4A6uuumq7PooBp9lXdDv19MquqhcR/wksBH7ch20nUgxjYpNNNmlyz5rrhhtu4MQTT2S99dbjrrvu4vWvfz0/+tGPiAimTZvGJz7xCf71r3+xyiqrcO211zJs2DA+9rGPMX36dIYOHcq3v/1t3vrWt3Leeedx+eWXs2DBAl544QUOO+ywJZanTp3K0UcfzV133cXzzz/PiSeeyPjx43nhhRf43Oc+x69+9StWWmklPvKRj5CZ/PWvf+Wtb30r6623Htdff327PyYtR7OvIjfqyRVl9UwdYlOzr8x06skVGlXrb3+6v91d6Nbo0aOZMGECV1xxBUOHDmXSpEkcf/zxzJ49m2OPPZYjjjiCG264gRNOOIE11liD2bNn89a3vpXvf//7rLTSsu8su+iii/jABz7ArFmz+PnPf8573/tegG6/X1dbbbWXfB8effTRTXufJnA91Hkw1NXll1/OjBkzuP3223n00UfZcccd2WWXXQC49dZbueuuuxgzZgw33HDDEsuTJk1irbXWYtq0aTz77LPsvPPO7Lnnntxzzz38/Oc/5+abb2a11VbjscceY5111uF73/sep556Kh0dHa1+61KtRcShwD7A7uWQJICHgY0bqo0qy14iMycBkwA6Ojqyuzr9yW233cbMmTPZcMMN2Xnnnfnd737H2LFjOeigg5g8eTI77rgjTz31FKuuuirf+c53iAjuvPNO7rnnHvbcc0/uu+8+oIhfd9xxB+ussw7nnXfeEsuf//zn2W233Tj33HN54oknGDt2LG9729u44IILmDNnDjNmzGDo0KGL49e3v/1trr/+etZbb702fzpSLfQoPtUtNknN9PTTT7PDDjssXj7++OM56KCDgOKExowZM/jkJz/JoYceyu9+9zueeeYZttlmm8UXYm655RbuvvtuNt10U8aNG8fll1/OAQcc0F1Ti02ePJmrr76ae+65hzPOOIP3vve9PPfcc91+v06aNOkl34fNZAK3gm688UYmTJjAkCFDWH/99XnLW97CtGnTWHPNNRk7duwSz3RoXL7qqqu44447uPTSSwF48sknuf/++7nmmms47LDDFg81WmeddVr/pqQBIiLGAZ8F3pKZ/25YNQX4SUR8G9iQYrKAW9rQxaYbO3Yso0aNAoqx+nPmzGGttdZigw02YMcddwRgzTXXBIr41XlGcIsttmDTTTddnMDtscceS8SfxuWrrrqKKVOmcOqppwLFlNIPPvgg11xzDUccccTiIZbGL6lPpgBHRcTFwBuAJ73/TVrSsoZQ7rvvvgBsu+22LFiwgDXWWIM11liDVVZZhSeeeAIovitf+cpXAjBhwgRuvPHGZSZw06dPZ7311mOTTTZho4024kMf+hCPPfYYDz/8cLffr1V/H5rA9dDWW2+9ONnqqa5jYxuXM5MzzjiDvfZacvbyK6+8su+dlAaxiLgI2BVYLyLmAl+imHVyFeDqcpremzLziMycGRGXAHdTDK08MjNfaE/Pm2uVVVZZ/HrIkCEsXLiwT/tZXvy67LLLeM1rXtO3TkqD2FJi1TCAzDwbmAq8HZgN/Bs4rD09VW9UNVwUHDLaW53fgyuttNIS34krrbTS4u/ErlP3L28q/4suuoh77rmH0aNHA/DUU09x2WWXsdNOOzWx5z3nYwR6aLfdduPZZ59l0qRJi8vuuOMORowYweTJk3nhhReYN28ev/nNbxg7duxy97fXXntx1lln8fzzzwNw33338a9//Ys99tiDH/7wh/z738XFgs5LrmussQb//Oc/K3hn0sCQmRMyc4PMHJaZozLznMzcLDM3zswdyp8jGup/LTNflZmvycwr2tn3qr3mNa/hkUceYdq0aQD885//ZOHChbz5zW/mxz8ubgu87777ePDBB3uUlO21116cccYZdI5Ive2224DiKt0PfvCDxV+Qxi/ppZYSq84ukzeycGQZn7bNzOnt7rM00Nxyyy38+c9/ZtGiRUyePJk3velNS627aNEiLrnkEu68807mzJnDnDlz+PnPf85FF1201O/XpX0fNkstr8C1Y3KIiOCnP/0pxxxzDKeccgrDhw9n9OjRnH766SxYsIDtt9+eiOCb3/wmr3jFK7jnnnuWub8Pf/jDzJkzh9e97nVkJiNHjuRnP/sZ48aNY8aMGXR0dLDyyivz9re/na9//esceuihHHHEEU5iIvVz/XGShpVXXpnJkydz9NFH8/TTT7PqqqtyzTXX8PGPf5yPfexjbLvttgwdOpTzzjtvibOVS/PFL36RY445hu22245FixYxZswYfvGLX/DhD3+Y++67j+22245hw4bxkY98hKOOOoqJEycybtw4NtxwQycxkaQB5n1fP61p+3rFqzbvUb2u98CNGzeOk08+ucft7Ljjjhx11FGLJzHZf//9geL4/Igjjlhizonf/va3bLTRRkvMBL/LLrtw9913M3/+/G6/X5f2fXjCCSfQ0dGxeJhnX8WL9/T3Dx0dHTl9+pInm2bNmsWWW1YzU+BA4WfUd85C2RoR8cfMrPUsPMan5vPz638G2yyUAzU29QeDaRbKwTSEctasWay9cjXXgHqawK2IG264gVNPPZVf/KL/fK7dfRcuKzY5hFKSJEmSaqKWQyglSZIkqbd23XVXdt1113Z3Y4XU5gpcfxvq2Z/42Ujt5d9g3/i5SVI9Gb+bpy+fZa8SuIgYHhG3RMTtETEzIr5clp8XEX+OiBnlzw5leUTEdyNidkTcERGv63UPgeHDhzN//nx/WbqRmcyfP5/hw4e3uyvSoGR86htjlyTV0/Dhw/nXM8/6vdcEff0u7O0QymeB3TJzQUQMA26MiM7pt4/NzK4PStub4gG5m1M8jPKs8t9eGTVqFHPnzmXevHm93XRQGD58+OIH90pq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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PolarityCoverageOverlapsConflictsCorrectIncorrectEmp. Acc.
keyword_my[-1.0, 0.0]0.1910470.1551070.028373263400.867987
keyword_subscribe[-1.0, 0.0]0.0863810.0655740.01387113701.000000
keyword_link[-1.0, 0.0]0.1191680.0794450.049811178110.941799
keyword_please[-1.0, 0.0]0.0920550.0825980.00945814420.986301
keyword_song[-1.0, 1.0]0.0838590.0365700.02396096370.721805
regex_check_out[-1.0, 0.0]0.2339220.0983610.01387137101.000000
short_comment[-1.0, 1.0]0.2257250.0863810.0662042381200.664804
textblob_polarity[-1.0, 1.0]0.0334170.0239600.0031534670.867925
\n", + "
" + ], + "text/plain": [ + " Polarity Coverage Overlaps Conflicts Correct \\\n", + "keyword_my [-1.0, 0.0] 0.191047 0.155107 0.028373 263 \n", + "keyword_subscribe [-1.0, 0.0] 0.086381 0.065574 0.013871 137 \n", + "keyword_link [-1.0, 0.0] 0.119168 0.079445 0.049811 178 \n", + "keyword_please [-1.0, 0.0] 0.092055 0.082598 0.009458 144 \n", + "keyword_song [-1.0, 1.0] 0.083859 0.036570 0.023960 96 \n", + "regex_check_out [-1.0, 0.0] 0.233922 0.098361 0.013871 371 \n", + "short_comment [-1.0, 1.0] 0.225725 0.086381 0.066204 238 \n", + "textblob_polarity [-1.0, 1.0] 0.033417 0.023960 0.003153 46 \n", + "\n", + " Incorrect Emp. Acc. \n", + "keyword_my 40 0.867987 \n", + "keyword_subscribe 0 1.000000 \n", + "keyword_link 11 0.941799 \n", + "keyword_please 2 0.986301 \n", + "keyword_song 37 0.721805 \n", + "regex_check_out 0 1.000000 \n", + "short_comment 120 0.664804 \n", + "textblob_polarity 7 0.867925 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from spear.labeling import LFAnalysis\n", + "\n", + "analyse = yt_noisy_labels.analyse_lfs(plot=True)\n", + "\n", + "result = analyse.head(16)\n", + "display(result)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create different splits of data here" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "from utils import get_various_data\n", + "\n", + "validation_size = 100\n", + "test_size = 100\n", + "L_size = 100\n", + "n_lfs = len(rules.get_lfs())\n", + "X = np.asarray(X)\n", + "Y = np.asarray(Y)\n", + "X_V, Y_V, X_feats_V,_, X_T, Y_T, X_feats_T,_, X_L, Y_L, X_feats_L,_, X_U, X_feats_U,_ = get_various_data(X, Y,\\\n", + " X_feats, n_lfs, validation_size, test_size, L_size)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "path_json = 'data_pipeline/JL/yt_json.json'\n", + "V_path_pkl = 'data_pipeline/JL/yt_pickle_V.pkl' #validation data - have true labels\n", + "T_path_pkl = 'data_pipeline/JL/yt_pickle_T.pkl' #test data - have true labels\n", + "L_path_pkl = 'data_pipeline/JL/yt_pickle_L.pkl' #Labeled data - have true labels\n", + "U_path_pkl = 'data_pipeline/JL/yt_pickle_U.pkl' #unlabelled data - don't have true labels\n", + "\n", + "log_path_jl_1 = 'log/JL/yt_log_1.txt' #jl is an algorithm, can be found below\n", + "params_path = 'params/JL/yt_params.pkl' #file path to store parameters of JL, used below" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "55" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(np.where(Y_L==0)[0])" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 100/100 [00:00<00:00, 2726.69it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 100/100 [00:00<00:00, 4193.38it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 100/100 [00:00<00:00, 3814.81it/s]\n", + "100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1286/1286 [00:00<00:00, 4105.34it/s]\n" + ] + } + ], + "source": [ + "from spear.labeling import PreLabels\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"yt\",\n", + " data=X_V,\n", + " gold_labels=Y_V,\n", + " data_feats=X_feats_V,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "yt_noisy_labels.generate_pickle(V_path_pkl)\n", + "yt_noisy_labels.generate_json(path_json) #generating json files once is enough\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"yt\",\n", + " data=X_T,\n", + " gold_labels=Y_T,\n", + " data_feats=X_feats_T,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "yt_noisy_labels.generate_pickle(T_path_pkl)\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"yt\",\n", + " data=X_L,\n", + " gold_labels=Y_L,\n", + " data_feats=X_feats_L,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "yt_noisy_labels.generate_pickle(L_path_pkl)\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"yt\",\n", + " data=X_U,\n", + " rules=rules,\n", + " data_feats=X_feats_U,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2) #note that we don't pass gold_labels here, for the unlabelled data\n", + "yt_noisy_labels.generate_pickle(U_path_pkl)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of elements in data list: 10\n", + "Shape of feature matrix: (1286, 16634)\n", + "Shape of labels matrix: (1286, 8)\n", + "Shape of continuous scores matrix : (1286, 8)\n", + "Total number of classes: 2\n", + "Classes dictionary in json file(modified to have integer keys): {1: 'SPAM', 0: 'HAM'}\n" + ] + } + ], + "source": [ + "from spear.utils import get_data, get_classes\n", + "\n", + "data_U = get_data(path = U_path_pkl, check_shapes=True)\n", + "#check_shapes being True(above), asserts for relative shapes of arrays in pickle file\n", + "print(\"Number of elements in data list: \", len(data_U))\n", + "print(\"Shape of feature matrix: \", data_U[0].shape)\n", + "print(\"Shape of labels matrix: \", data_U[1].shape)\n", + "print(\"Shape of continuous scores matrix : \", data_U[6].shape)\n", + "print(\"Total number of classes: \", data_U[9])\n", + "\n", + "classes = get_classes(path = path_json)\n", + "print(\"Classes dictionary in json file(modified to have integer keys): \", classes)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## SPEAR - with all 9 LFs" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "from spear.jl import JL\n", + "\n", + "n_features = 16634\n", + "n_hidden = 512\n", + "feature_model = 'lr'\n", + "'''\n", + "'nn' is neural network. other alternative is 'lr'(logistic regression) which doesn't need n_hidden to be passed\n", + "during initialisation.\n", + "''' \n", + "\n", + "jl = JL(path_json = path_json, n_lfs = n_lfs, n_features = n_features, feature_model = feature_model)" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 38%|███████████████████████████████████████████████████▎ | 38/100 [02:27<04:00, 3.87s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "early stopping at epoch: 38\tbest_epoch: 27\n", + "score used: f1_score\n", + "best_gm_val_score:0.8193496587715776\tbest_fm_val_score:0.9188311688311688\n", + "best_gm_test_score:0.8076728413807066\tbest_fm_test_score:0.8696741854636592\n", + "best_gm_test_precision:0.8454861111111112\tbest_fm_test_precision:0.8846469622331692\n", + "best_gm_test_recall:0.8195503813729426\tbest_fm_test_recall:0.8761541549578482\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "ename": "ValueError", + "evalue": "Expected value argument (Tensor of shape (1386,)) to be within the support (Interval(lower_bound=0.0, upper_bound=1.0)) of the distribution Beta(), but found invalid values:\ntensor([0.1000, 0.6000, 0.8000, ..., 0.2000, 0.4161, 0.0000], device='cuda:0')", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m/tmp/ipykernel_2700021/2244590139.py\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 16\u001b[0m n_hidden = n_hidden)\n\u001b[1;32m 17\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 18\u001b[0;31m probs_fm, probs_gm = jl.fit_and_predict_proba(path_L = L_path_pkl, path_U = U_path_pkl, path_V = V_path_pkl, \\\n\u001b[0m\u001b[1;32m 19\u001b[0m \u001b[0mpath_T\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mT_path_pkl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mloss_func_mask\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mloss_func_mask\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbatch_size\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mbatch_size\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlr_fm\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlr_fm\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlr_gm\u001b[0m \u001b[0;34m=\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 20\u001b[0m \u001b[0mlr_gm\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0muse_accuracy_score\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0muse_accuracy_score\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpath_log\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlog_path_jl_1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mreturn_gm\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mn_epochs\u001b[0m \u001b[0;34m=\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.8/site-packages/spear/jl/core.py\u001b[0m in \u001b[0;36mfit_and_predict_proba\u001b[0;34m(self, path_L, path_U, path_V, path_T, loss_func_mask, batch_size, lr_fm, lr_gm, use_accuracy_score, path_log, return_gm, n_epochs, start_len, stop_len, is_qt, is_qc, qt, qc, metric_avg)\u001b[0m\n\u001b[1;32m 572\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 573\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mreturn_gm\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 574\u001b[0;31m \t\t\treturn fm_predictions, (probability(self.theta_optimal, self.pi_optimal, torch.tensor(data_U[2], device = self.device).long(), torch.tensor(data_U[6], device = self.device).double(), \\\n\u001b[0m\u001b[1;32m 575\u001b[0m \t\t\t\tself.k, self.n_classes, self.continuous_mask, qc_, self.device)).cpu().detach().numpy()\n\u001b[1;32m 576\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.8/site-packages/spear/utils/utils_cage.py\u001b[0m in \u001b[0;36mprobability\u001b[0;34m(theta, pi, m, s, k, n_classes, continuous_mask, qc, device)\u001b[0m\n\u001b[1;32m 112\u001b[0m \u001b[0mp_s\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mones\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mn_classes\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdevice\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdevice\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdouble\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 113\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0my\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mn_classes\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 114\u001b[0;31m \u001b[0mp_s\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mprobability_s_given_y_l\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpi\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0my\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mm\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mk\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcontinuous_mask\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mqc\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 115\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mp_l_y\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mp_s\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 116\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.8/site-packages/spear/utils/utils_cage.py\u001b[0m in \u001b[0;36mprobability_s_given_y_l\u001b[0;34m(pi, s, y, m, k, continuous_mask, qc)\u001b[0m\n\u001b[1;32m 86\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mk\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 87\u001b[0m \u001b[0mtemp\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mBeta\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mr\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mparams\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparams\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mr\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 88\u001b[0;31m \u001b[0mprobability\u001b[0m \u001b[0;34m*=\u001b[0m \u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexp\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtemp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlog_prob\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdouble\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mm\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdouble\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mcontinuous_mask\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 89\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mm\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdouble\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mcontinuous_mask\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 90\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mprobability\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.8/site-packages/torch/distributions/beta.py\u001b[0m in \u001b[0;36mlog_prob\u001b[0;34m(self, value)\u001b[0m\n\u001b[1;32m 60\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mlog_prob\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 61\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_validate_args\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 62\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_validate_sample\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 63\u001b[0m \u001b[0mheads_tails\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstack\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1.0\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 64\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_dirichlet\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlog_prob\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mheads_tails\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.8/site-packages/torch/distributions/distribution.py\u001b[0m in \u001b[0;36m_validate_sample\u001b[0;34m(self, value)\u001b[0m\n\u001b[1;32m 286\u001b[0m \u001b[0mvalid\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msupport\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcheck\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 287\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mvalid\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mall\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 288\u001b[0;31m raise ValueError(\n\u001b[0m\u001b[1;32m 289\u001b[0m \u001b[0;34m\"Expected value argument \"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 290\u001b[0m \u001b[0;34mf\"({type(value).__name__} of shape {tuple(value.shape)}) \"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mValueError\u001b[0m: Expected value argument (Tensor of shape (1386,)) to be within the support (Interval(lower_bound=0.0, upper_bound=1.0)) of the distribution Beta(), but found invalid values:\ntensor([0.1000, 0.6000, 0.8000, ..., 0.2000, 0.4161, 0.0000], device='cuda:0')" + ] + } + ], + "source": [ + "loss_func_mask = [1,0,1,1,1,1,1] \n", + "'''\n", + "One can keep 0s in places where he don't want the specific loss function to be part\n", + "the final loss function used in training. Refer documentation(spear.JL.core.JL) to understand\n", + "the which index of loss_func_mask refers to what loss function.\n", + "\n", + "Note: the loss_func_mask above may not be the optimal mask for sms dataset. We have to try\n", + " some other masks too, to find the best one that gives good accuracies.\n", + "'''\n", + "batch_size = 32\n", + "lr_fm = 0.0003\n", + "lr_gm = 0.01\n", + "use_accuracy_score = False\n", + "\n", + "jl = JL(path_json = path_json, n_lfs = n_lfs, n_features = n_features, feature_model = feature_model, \\\n", + " n_hidden = n_hidden)\n", + "\n", + "probs_fm, probs_gm = jl.fit_and_predict_proba(path_L = L_path_pkl, path_U = U_path_pkl, path_V = V_path_pkl, \\\n", + " path_T = T_path_pkl, loss_func_mask = loss_func_mask, batch_size = batch_size, lr_fm = lr_fm, lr_gm = \\\n", + " lr_gm, use_accuracy_score = use_accuracy_score, path_log = log_path_jl_1, return_gm = True, n_epochs = \\\n", + " 100, start_len = 7,stop_len = 10, is_qt = True, is_qc = True, qt = 0.9, qc = 0.85, metric_avg = 'macro')\n", + "\n", + "labels = np.argmax(probs_fm, 1)\n", + "print(\"probs_fm shape: \", probs_fm.shape)\n", + "print(\"probs_gm shape: \", probs_gm.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "labels_fm_test shape: (100,)\n", + "labels_gm_test shape: (100,)\n", + "accuracy_score of gm: 0.81 | fm: 0.87\n", + "f1_score of gm: [0.82882883 0.78651685] | fm: [0.87619048 0.86315789]\n", + "Macro f1_score: 0.8696741854636592\n", + "Precision score of gm: [0.71875 0.97222222] | fm: [0.79310345 0.97619048]\n", + "Recall score of gm: [0.9787234 0.66037736] | fm: [0.9787234 0.77358491]\n" + ] + } + ], + "source": [ + "labels_fm_test = jl.predict_fm(x_test = X_feats_T, need_strings=False)\n", + "labels_gm_test = jl.predict_gm(path_test = T_path_pkl, qc = 0.85, need_strings=False)\n", + "\n", + "print(\"labels_fm_test shape: \", labels_fm_test.shape)\n", + "print(\"labels_gm_test shape: \", labels_gm_test.shape)\n", + "\n", + "#Y_T is true labels of test data, type is numpy array of shape (num_instances,)\n", + "print(\"accuracy_score of gm: \", accuracy_score(Y_T, labels_gm_test), \"| fm: \", accuracy_score(Y_T, labels_fm_test))\n", + "print(\"f1_score of gm: \", f1_score(Y_T, labels_gm_test, average = None), \"| fm: \", f1_score(Y_T, labels_fm_test, average = None))\n", + "print(\"Macro f1_score: \", f1_score(Y_T, labels_fm_test, average = 'macro'))\n", + "print(\"Precision score of gm: \", precision_score(Y_T, labels_gm_test, average = None), \"| fm: \", precision_score(Y_T, labels_fm_test, average = None))\n", + "print(\"Recall score of gm: \", recall_score(Y_T, labels_gm_test, average = None), \"| fm: \", recall_score(Y_T, labels_fm_test, average = None))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## CAGE Algorithm - With All 9 LFs" + ] + }, + { + "cell_type": "code", + "execution_count": 101, + "metadata": {}, + "outputs": [], + "source": [ + "log_path_cage = 'params/cage/yt_log_1.txt' #jl is an algorithm, can be found below\n", + "params_path = 'params/cage/yt_params.pkl' #file path to store parameters of JL, used below\n", + "\n", + "from spear.cage import Cage\n", + "\n", + "cage = Cage(path_json = path_json, n_lfs = n_lfs)" + ] + }, + { + "cell_type": "code", + "execution_count": 102, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 200/200 [00:11<00:00, 18.16it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "final_test_accuracy_score: 0.89\n", + "test_average_metric: macro\tfinal_test_f1_score: 0.8894583458948848\n", + "probs shape: (1286, 2)\n", + "labels shape: (1286,)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "probs = cage.fit_and_predict_proba(path_pkl = U_path_pkl, path_test = T_path_pkl, path_log = log_path_cage, \\\n", + " qt = 0.9, qc = 0.85, metric_avg = ['macro'], n_epochs = 100, lr = 0.01)\n", + "labels = np.argmax(probs, 1)\n", + "print(\"probs shape: \", probs.shape)\n", + "print(\"labels shape: \",labels.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 104, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "labels_test shape: (100,)\n", + "accuracy_score: 0.89\n", + "Binary f1_score: 0.8971962616822429\n", + "Macro f1_score: 0.8894583458948848\n", + "Micro f1_score: 0.89\n", + "Class Wise f1_score: [0.88172043 0.89719626]\n", + "Class Wise Precision score: [0.82 0.96]\n", + "Class Wise Recall score: [0.95348837 0.84210526]\n" + ] + } + ], + "source": [ + "labels_test = cage.predict(path_test = T_path_pkl, qc = 0.85, need_strings = False)\n", + "print(\"labels_test shape: \", labels_test.shape)\n", + "\n", + "from sklearn.metrics import accuracy_score, f1_score, precision_score, recall_score\n", + "\n", + "#Y_T is true labels of test data, type is numpy array of shape (num_instances,)\n", + "print(\"accuracy_score: \", accuracy_score(Y_T, labels_test))\n", + "print(\"Binary f1_score: \", f1_score(Y_T, labels_test, average = 'binary'))\n", + "print(\"Macro f1_score: \", f1_score(Y_T, labels_test, average = 'macro'))\n", + "print(\"Micro f1_score: \", f1_score(Y_T, labels_test, average = 'micro'))\n", + "print(\"Class Wise f1_score: \", f1_score(Y_T, labels_test, average = None))\n", + "print(\"Class Wise Precision score: \", precision_score(Y_T, labels_test, average = None))\n", + "print(\"Class Wise Recall score: \", recall_score(Y_T, labels_test, average = None))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "heading_collapsed": true + }, + "source": [ + "## Loading 6 LFs " + ] + }, + { + "cell_type": "code", + "execution_count": 160, + "metadata": { + "hidden": true, + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1586/1586 [00:00<00:00, 3826.09it/s]\n" + ] + }, + { + "data": { + "image/png": "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fbn11luZPn06Z599Nj/84Q+X+NhvfetbfPnLX+7R/qQ68whcN2Ume++9N2PHjuVvf/sb119/Pd/+9rd56KGH+nxfCxYs6PPnlCRpeWUm73vf+9hrr724++67ueuuu5g/fz7/8R//sVzP69+9FVNfvnf6+c9/zpe+9CVmzJjBqquuumj56NGjl9q8QdHASSuSRh6Bq8IVV1zBkCFDOPTQQxct22abbchMjjrqKC6++GIigq985Svst99+7L///nz4wx/mPe8pju4ddNBB7LHHHuy9994cffTRXHnllTz33HMcdthhfOITn+DKK6/kq1/9KmuttRZ33HEHd911F3vttRf33Xcfzz77LJ/+9KeZOHEiAKeffjrHH388w4YNY5tttmGVVVbhRz/6EXPnzuXQQw/l3nvvBeCkk05i++23b/8PawXW10d/u6O7R4hVI319VKRb+1z2kRNpef3hD39g6NChHHzwwQAMGjSIE088kVGjRvHHP/6Rn/70p2yxxRYAjB07lhNOOIHNNtuMI444gltvvZUXXniBY489lvHjx3PmmWdy0UUXMX/+fF588UXOOuusRfuZPXs2H/7wh3nqqacA+NGPfsS///u/c+WVV3LMMcew+uqrM2vWLN71rnfx4x//mMzkkEMOYfr06UQEH/3oR/nMZz7T/h+QFtPT905XXnklxx57LOuuuy633norb3nLW/jZz37G6aefzvnnn88ll1zCxRdfzDe/+c1Fz3fllVdywgkn8Jvf/Ib58+dzxBFHLHodfO1rX2PatGk888wzbLvttmyxxRZMmjSJD3zgA8yZM4cXX3yRr371q+y3335V/HgGjL4++tsd3T1C3FQ2cN3UESSdXXTRRcyYMYObbrqJhx9+mO22244ddtiB/fbbj/PPP5/3vOc9PP/881x++eWceuqpnH766ay55ppMmzaN5557ju23355ddtkFgBtuuIFbb7110bS1Z5xxBmuvvTbPPPMM2223He9///t57rnn+PrXv84NN9zA6quvzo477sg222wDwKc//Wk+85nP8Pa3v517772XXXfdlZkzZ7bvhyRJWqHddtttL/tbuMYaa7Dxxhvznve8h/PPP5///M//5IEHHuCBBx5g9OjRfPnLX2bHHXfkjDPO4LHHHmPMmDG8+93vBoq/ezfffDNrr702s2fPXvScr3rVq7j00ksZOnQod999NxMmTGD69OkAXHfdddx+++1ssskmjBs3josuuohRo0Zx//33Lxp++dhjj7Xl56Gl6+l7J4Abb7yR2267jQ022IDtt9+eP//5z3zsYx/j6quvZo899mCfffZZ7LXS6utf/zprrrkmt9xSvHl/9NFHef/738+PfvQjZsyYAcCFF17IBhtswG9/W3wg+/jjfvil5nEI5XK6+uqrmTBhAoMGDWK99dbjne98J9OmTWO33Xbjiiuu4LnnnuPiiy9mhx12YNVVV+X3v/89Z599Nttuuy1vfetbmTdvHnfffTcAY8aMWeyaIz/84Q/ZZptteNvb3sZ9993H3XffzXXXXcc73/lO1l57bYYMGcK+++67aPvLLruMww8/nG233ZY999yTJ554gvnz57f9ZyJJGnjGjh3LBRdcAMD555/PPvvsA8Dvf/97vvOd77DtttsyduxYnn322UUjRXbeeWfWXnvtlz3XCy+8wMc//nG22mor9t13X26//fZF68aMGcNrXvMaBg0axIQJE7j66qt5zWtewz333MMRRxzB7373O9ZYY402fMfqrSW9d4Li/3fEiBGstNJKbLvttkts1rpy2WWXcdhhhy26v9Zaa71sm6222opLL72UL37xi1x11VWsuWYFIyak5eQRuG7aYostFv1h6o6hQ4cyduxYLrnkEiZPnsz+++8PFOPBTz75ZHbdddfFtr/yyit5xStesdj9yy67jL/+9a+sttpqi/7oLc3ChQu55pprGDp0aA++M0mSumfzzTd/2d/CJ554gnvvvZftttuOddZZh5tvvpnJkydz2mmnAcXfvQsvvJA3vOENiz3u2muvXezvXqsTTzyR9dZbj5tuuomFCxcu9net8xTvEcFaa63FTTfdxCWXXMJpp53G+eefzxlnnNEX37KWQ0/fOwGsssoqi24PGjSoz8+PfP3rX88NN9zA1KlT+cpXvsJOO+3EMccc06f7kPqbR+C6accdd+S5555j0qRJi5bdfPPNDBs2jMmTJ/Piiy8yd+5c/vSnPzFmzBgA9ttvP376059y1VVXMW7cOAB23XVXTj31VF544QUA7rrrrkVj/Fs9/vjjrLXWWqy22mrccccdXHPNNQBst912/PGPf+TRRx9lwYIFXHjhhYses8suu3DyyScvut8xXECSpL6w00478fTTT3P22WcD8OKLL/K5z32Ogw46iNVWW4399tuP7373uzz++ONsvfXWQPF37+STTyYzgWKI3LI8/vjjrL/++qy00kqcc845vPjii4vWXXfddfz9739n4cKFTJ48mbe//e08/PDDLFy4kPe///184xvf4IYbbuiH71491Zv3Tstj55135pRTTll0/9FHHwVgyJAhi953/fOf/2S11VbjQx/6EEcddZSvFTVSI4/AVTGpQ0Twy1/+kiOPPJLjjz+eoUOHMnLkSE466STmz5/PNttsQ0Tw3e9+l1e/+tVA0VB9+MMfZvz48YumV/7Yxz7G7NmzefOb30xmMnz4cH71q1+9bH/jxo3jtNNOY7PNNuMNb3gDb3vb2wDYcMMN+fKXv8yYMWNYe+21eeMb37jo8P8Pf/hDDjvsMLbeemsWLFjADjvssOgTUEnSCqjNk9d0/C381Kc+xde//nUWLlzI7rvvvmiWv3322YdPf/rTfPWrX130mK9+9asceeSRbL311ixcuJBRo0bxm9/8Zqn7+dSnPsX73/9+zj77bMaNG7fYkbrtttuOww8/fNEkJnvvvTe33HILBx98MAsXLgTg29/+dj98981WxaQOPX3vdMcddyzX/r7yla9w2GGHseWWWzJo0CC+9rWv8b73vY+JEyey9dZb8+Y3v5mPfOQjHHXUUay00koMGTKEU089tY++W6l9ouMTsboYPXp0dpyo3GHmzJlsttlmFVVUP/Pnz+eVr3wlCxYsYO+99+ajH/0oe++9d7cf78+z95yFsvci4vrMHF11Hcujq3zqkrNQqp8M9PxunXGwN7r6+a2o2TTQXyvLy59f33EWyt5ZWjY5hLKBjj32WLbddlu23HJLRo0axV577VV1SVIlImJcRNwZEbMi4ugu1u8QETdExIKI2KfTugMj4u7y68D2VS1JktR7jRxCOdCdcMIJVZcgVS4iBgGnADsDc4BpETElM29v2exe4CDg850euzbwNWA0kMD15WMfbUftknpn7NixjB07tuoyJKlSjTkCV7ehnk3lz1ErkDHArMy8JzOfB84DxrdukJmzM/NmYGGnx+4KXJqZj5RN26XAuHYULS0vc7x3BuLPbSB+z33Bn5vqrhEN3NChQ5k3b56/UMspM5k3b56XGdCKYkPgvpb7c8pl/f1YqTL+Peydgfj3z9dK7wzE14qapxFDKEeMGMGcOXOYO3du1aU0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4LzMfA74e0TMAsYAf13eOk459A/L+xSLOey0HZe5zStf+Urmz5/fp/vtSyeddBITJ05ktdVWq7oUqXJdZVUn44GzMzOBayJiWESsn5kPtKdCqWe+t98effp8n5v8m2VuM2jQILbaaqtF9/fff3+OPvroPq2jK9tuuy1vfOMbOe+88/p9X0tjAyc1UGay9957c+CBBy4KkZtuuomHHnpomQ3cggULGDx48BLvd8eZZ57JlltuWasGrhs+Ckwub29I0dB1mFMuUyd98Xo56aST+NCHPmQDJ3XPhsB9Lfc78skGTiqtuuqqzJgxo637nDlzJi+++CJXXXUVTz31FK94xSvauv9WjW3g+vqoR3d19+iI1J+uuOIKhgwZwqGHHrpo2TbbbENmctRRR3HxxRcTEXzlK19hv/3248orr+SrX/0qa621FnfccQeTJk1a7P7MmTM5+uijufLKK3nuuec47LDD+MQnPgHA8ccfz89+9jNWWmkldtttN0aPHs306dP54Ac/yKqrrspf//pXVl111ap+FN0SEf8BLAB+3ovHTqQYxsTGG2/cx5X1rSuvvJJjjz2Wddddl1tvvZW3vOUt/OxnPyMimDZtGp/+9Kd56qmnWGWVVbj88ssZMmQIn/zkJ5k+fTqDBw/m+9//Pu9617s488wzueiii5g/fz4vvvgiBx988GL3p06dyhFHHMGtt97KCy+8wLHHHsv48eN58cUX+eIXv8jvfvc7VlppJT7+8Y+Tmfzzn//kXe96F+uuuy5XXHFF1T+mFVJfH/ntru4cIVb/aFI2dVdfH8npju4c7VFzjBw5kgkTJnDxxRczePBgJk2axJe+9CVmzZrFUUcdxaGHHsqVV17JMcccw+qrr86sWbN417vexY9//GNWWmnpZ5ade+65fPjDH2bmzJn8+te/5oADDgDo8u/raqut9rK/h0cccUSffZ+NbeCkgazjzXlnF110ETNmzOCmm27i4YcfZrvttmOHHXYA4IYbbuDWW29l1KhRXHnllYvdnzRpEmuuuSbTpk3jueeeY/vtt2eXXXbhjjvu4Ne//jXXXnstq622Go888ghrr702P/rRjzjhhBMYPXp0u7/1HouIg4A9gJ3KIUkA9wMbtWw2olz2Mpk5CZgEMHr06Oxqmzq58cYbue2229hggw3Yfvvt+fOf/8yYMWPYb7/9mDx5Mttt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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PolarityCoverageOverlapsConflictsCorrectIncorrectEmp. Acc.
keyword_my[-1.0, 0.0]0.1910470.1046660.013241263400.867987
keyword_subscribe[-1.0, 0.0]0.0863810.0636820.01198013701.000000
keyword_link[-1.0, 0.0]0.1191680.0731400.046658178110.941799
keyword_please[-1.0, 0.0]0.0920550.0794450.00441414420.986301
short_comment[-1.0, 1.0]0.2257250.0819670.0655742381200.664804
textblob_polarity[-1.0, 1.0]0.0334170.0189160.0025224670.867925
\n", + "
" + ], + "text/plain": [ + " Polarity Coverage Overlaps Conflicts Correct \\\n", + "keyword_my [-1.0, 0.0] 0.191047 0.104666 0.013241 263 \n", + "keyword_subscribe [-1.0, 0.0] 0.086381 0.063682 0.011980 137 \n", + "keyword_link [-1.0, 0.0] 0.119168 0.073140 0.046658 178 \n", + "keyword_please [-1.0, 0.0] 0.092055 0.079445 0.004414 144 \n", + "short_comment [-1.0, 1.0] 0.225725 0.081967 0.065574 238 \n", + "textblob_polarity [-1.0, 1.0] 0.033417 0.018916 0.002522 46 \n", + "\n", + " Incorrect Emp. Acc. \n", + "keyword_my 40 0.867987 \n", + "keyword_subscribe 0 1.000000 \n", + "keyword_link 11 0.941799 \n", + "keyword_please 2 0.986301 \n", + "short_comment 120 0.664804 \n", + "textblob_polarity 7 0.867925 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from spear.labeling import LFSet, LFAnalysis, PreLabels\n", + "import numpy as np\n", + "\n", + "LFS = [\n", + " keyword_my,\n", + " keyword_subscribe,\n", + " keyword_link,\n", + " keyword_please,\n", + "# keyword_song,\n", + "# regex_check_out,\n", + " short_comment,\n", + "# has_person_nlp,\n", + " textblob_polarity,\n", + "# textblob_subjectivity,\n", + "]\n", + "\n", + "\n", + "rules = LFSet(\"SPAM_LF\")\n", + "rules.add_lf_list(LFS)\n", + "\n", + "R = np.zeros((X.shape[0],len(rules.get_lfs())))\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"youtube\",\n", + " data=X,\n", + " data_feats = X_feats,\n", + " gold_labels=Y,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "L,S = yt_noisy_labels.get_labels()\n", + "\n", + "analyse = yt_noisy_labels.analyse_lfs(plot=True)\n", + "\n", + "result = analyse.head(16)\n", + "display(result)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "hidden": true + }, + "source": [ + "### Create different splits of data here" + ] + }, + { + "cell_type": "code", + "execution_count": 161, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "from utils import get_various_data\n", + "\n", + "validation_size = 100\n", + "test_size = 100\n", + "L_size = 100\n", + "n_lfs = len(rules.get_lfs())\n", + "X = np.asarray(X)\n", + "Y = np.asarray(Y)\n", + "X_V, Y_V, X_feats_V,_, X_T, Y_T, X_feats_T,_, X_L, Y_L, X_feats_L,_, X_U, X_feats_U,_ = get_various_data(X, Y,\\\n", + " X_feats, n_lfs, validation_size, test_size, L_size)" + ] + }, + { + "cell_type": "code", + "execution_count": 162, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "path_json = 'data_pipeline/JL/yt_json.json'\n", + "V_path_pkl = 'data_pipeline/JL/yt_pickle_V.pkl' #validation data - have true labels\n", + "T_path_pkl = 'data_pipeline/JL/yt_pickle_T_6_lfs.pkl' #test data - have true labels\n", + "L_path_pkl = 'data_pipeline/JL/yt_pickle_L.pkl' #Labeled data - have true labels\n", + "U_path_pkl = 'data_pipeline/JL/yt_pickle_U_6_lfs.pkl' #unlabelled data - don't have true labels\n", + "\n", + "log_path_jl_1 = 'log/JL/yt_log_1.txt' #jl is an algorithm, can be found below\n", + "params_path = 'params/JL/yt_params.pkl' #file path to store parameters of JL, used below" + ] + }, + { + "cell_type": "code", + "execution_count": 169, + "metadata": { + "hidden": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 100/100 [00:00<00:00, 2340.36it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 100/100 [00:00<00:00, 4656.72it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 100/100 [00:00<00:00, 4217.03it/s]\n", + "100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1286/1286 [00:00<00:00, 4489.39it/s]\n" + ] + } + ], + "source": [ + "from spear.labeling import PreLabels\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"yt\",\n", + " data=X_V,\n", + " gold_labels=Y_V,\n", + " data_feats=X_feats_V,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "yt_noisy_labels.generate_pickle(V_path_pkl)\n", + "yt_noisy_labels.generate_json(path_json) #generating json files once is enough\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"yt\",\n", + " data=X_T,\n", + " gold_labels=Y_T,\n", + " data_feats=X_feats_T,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "yt_noisy_labels.generate_pickle(T_path_pkl)\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"yt\",\n", + " data=X_L,\n", + " gold_labels=Y_L,\n", + " data_feats=X_feats_L,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "yt_noisy_labels.generate_pickle(L_path_pkl)\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"yt\",\n", + " data=X_U,\n", + " rules=rules,\n", + " data_feats=X_feats_U,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2) #note that we don't pass gold_labels here, for the unlabelled data\n", + "yt_noisy_labels.generate_pickle(U_path_pkl)" + ] + }, + { + "cell_type": "code", + "execution_count": 170, + "metadata": { + "hidden": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of elements in data list: 10\n", + "Shape of feature matrix: (1286, 16634)\n", + "Shape of labels matrix: (1286, 6)\n", + "Shape of continuous scores matrix : (1286, 6)\n", + "Total number of classes: 2\n", + "Classes dictionary in json file(modified to have integer keys): {1: 'SPAM', 0: 'HAM'}\n" + ] + } + ], + "source": [ + "from spear.utils import get_data, get_classes\n", + "\n", + "data_U = get_data(path = U_path_pkl, check_shapes=True)\n", + "#check_shapes being True(above), asserts for relative shapes of arrays in pickle file\n", + "print(\"Number of elements in data list: \", len(data_U))\n", + "print(\"Shape of feature matrix: \", data_U[0].shape)\n", + "print(\"Shape of labels matrix: \", data_U[1].shape)\n", + "print(\"Shape of continuous scores matrix : \", data_U[6].shape)\n", + "print(\"Total number of classes: \", data_U[9])\n", + "\n", + "classes = get_classes(path = path_json)\n", + "print(\"Classes dictionary in json file(modified to have integer keys): \", classes)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "heading_collapsed": true + }, + "source": [ + "## JL with 6 LFS" + ] + }, + { + "cell_type": "code", + "execution_count": 171, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "from spear.jl import JL\n", + "\n", + "n_features = 16634\n", + "n_hidden = 512\n", + "feature_model = 'lr'\n", + "'''\n", + "'nn' is neural network. other alternative is 'lr'(logistic regression) which doesn't need n_hidden to be passed\n", + "during initialisation.\n", + "''' \n", + "\n", + "jl = JL(path_json = path_json, n_lfs = n_lfs, n_features = n_features, feature_model = feature_model)" + ] + }, + { + "cell_type": "code", + "execution_count": 172, + "metadata": { + "hidden": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 21%|████████████████████████████▎ | 21/100 [00:48<03:03, 2.33s/it]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "early stopping at epoch: 21\tbest_epoch: 10\n", + "score used: f1_score\n", + "best_gm_val_score:0.6715927750410509\tbest_fm_val_score:0.8973727422003284\n", + "best_gm_test_score:0.6189887756152817\tbest_fm_test_score:0.9073215940685819\n", + "best_gm_test_precision:0.6884920634920635\tbest_fm_test_precision:0.9223259762308998\n", + "best_gm_test_recall:0.6535353535353535\tbest_fm_test_recall:0.9020202020202019\n" + ] + }, + { + "ename": "ValueError", + "evalue": "Expected value argument (Tensor of shape (1286,)) to be within the support (Interval(lower_bound=0.0, upper_bound=1.0)) of the distribution Beta(), but found invalid values:\ntensor([0.0000, 0.6500, 0.3548, ..., 0.0000, 0.0000, 0.0000], device='cuda:0')", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m/tmp/ipykernel_2357964/2244590139.py\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 16\u001b[0m n_hidden = n_hidden)\n\u001b[1;32m 17\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 18\u001b[0;31m probs_fm, probs_gm = jl.fit_and_predict_proba(path_L = L_path_pkl, path_U = U_path_pkl, path_V = V_path_pkl, \\\n\u001b[0m\u001b[1;32m 19\u001b[0m \u001b[0mpath_T\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mT_path_pkl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mloss_func_mask\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mloss_func_mask\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbatch_size\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mbatch_size\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlr_fm\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlr_fm\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlr_gm\u001b[0m \u001b[0;34m=\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 20\u001b[0m \u001b[0mlr_gm\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0muse_accuracy_score\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0muse_accuracy_score\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpath_log\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlog_path_jl_1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mreturn_gm\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mn_epochs\u001b[0m \u001b[0;34m=\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.8/site-packages/spear/jl/core.py\u001b[0m in \u001b[0;36mfit_and_predict_proba\u001b[0;34m(self, path_L, path_U, path_V, path_T, loss_func_mask, batch_size, lr_fm, lr_gm, use_accuracy_score, path_log, return_gm, n_epochs, start_len, stop_len, is_qt, is_qc, qt, qc, metric_avg)\u001b[0m\n\u001b[1;32m 572\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 573\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mreturn_gm\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 574\u001b[0;31m \t\t\treturn fm_predictions, (probability(self.theta_optimal, self.pi_optimal, torch.tensor(data_U[2], device = self.device).long(), torch.tensor(data_U[6], device = self.device).double(), \\\n\u001b[0m\u001b[1;32m 575\u001b[0m \t\t\t\tself.k, self.n_classes, self.continuous_mask, qc_, self.device)).cpu().detach().numpy()\n\u001b[1;32m 576\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.8/site-packages/spear/utils/utils_cage.py\u001b[0m in \u001b[0;36mprobability\u001b[0;34m(theta, pi, m, s, k, n_classes, continuous_mask, qc, device)\u001b[0m\n\u001b[1;32m 112\u001b[0m \u001b[0mp_s\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mones\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mn_classes\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdevice\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdevice\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdouble\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 113\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0my\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mn_classes\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 114\u001b[0;31m \u001b[0mp_s\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mprobability_s_given_y_l\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpi\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0my\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mm\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mk\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcontinuous_mask\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mqc\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 115\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mp_l_y\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mp_s\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 116\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.8/site-packages/spear/utils/utils_cage.py\u001b[0m in \u001b[0;36mprobability_s_given_y_l\u001b[0;34m(pi, s, y, m, k, continuous_mask, qc)\u001b[0m\n\u001b[1;32m 86\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mk\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 87\u001b[0m \u001b[0mtemp\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mBeta\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mr\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mparams\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparams\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mr\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 88\u001b[0;31m \u001b[0mprobability\u001b[0m \u001b[0;34m*=\u001b[0m \u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexp\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtemp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlog_prob\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdouble\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mm\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdouble\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mcontinuous_mask\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 89\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mm\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdouble\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mcontinuous_mask\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 90\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mprobability\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.8/site-packages/torch/distributions/beta.py\u001b[0m in \u001b[0;36mlog_prob\u001b[0;34m(self, value)\u001b[0m\n\u001b[1;32m 60\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mlog_prob\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 61\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_validate_args\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 62\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_validate_sample\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 63\u001b[0m \u001b[0mheads_tails\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstack\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1.0\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 64\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_dirichlet\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlog_prob\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mheads_tails\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.8/site-packages/torch/distributions/distribution.py\u001b[0m in \u001b[0;36m_validate_sample\u001b[0;34m(self, value)\u001b[0m\n\u001b[1;32m 286\u001b[0m \u001b[0mvalid\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msupport\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcheck\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 287\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mvalid\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mall\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 288\u001b[0;31m raise ValueError(\n\u001b[0m\u001b[1;32m 289\u001b[0m \u001b[0;34m\"Expected value argument \"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 290\u001b[0m \u001b[0;34mf\"({type(value).__name__} of shape {tuple(value.shape)}) \"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mValueError\u001b[0m: Expected value argument (Tensor of shape (1286,)) to be within the support (Interval(lower_bound=0.0, upper_bound=1.0)) of the distribution Beta(), but found invalid values:\ntensor([0.0000, 0.6500, 0.3548, ..., 0.0000, 0.0000, 0.0000], device='cuda:0')" + ] + } + ], + "source": [ + "loss_func_mask = [1,0,1,1,1,1,1] \n", + "'''\n", + "One can keep 0s in places where he don't want the specific loss function to be part\n", + "the final loss function used in training. Refer documentation(spear.JL.core.JL) to understand\n", + "the which index of loss_func_mask refers to what loss function.\n", + "\n", + "Note: the loss_func_mask above may not be the optimal mask for sms dataset. We have to try\n", + " some other masks too, to find the best one that gives good accuracies.\n", + "'''\n", + "batch_size = 32\n", + "lr_fm = 0.0003\n", + "lr_gm = 0.01\n", + "use_accuracy_score = False\n", + "\n", + "jl = JL(path_json = path_json, n_lfs = n_lfs, n_features = n_features, feature_model = feature_model, \\\n", + " n_hidden = n_hidden)\n", + "\n", + "probs_fm, probs_gm = jl.fit_and_predict_proba(path_L = L_path_pkl, path_U = U_path_pkl, path_V = V_path_pkl, \\\n", + " path_T = T_path_pkl, loss_func_mask = loss_func_mask, batch_size = batch_size, lr_fm = lr_fm, lr_gm = \\\n", + " lr_gm, use_accuracy_score = use_accuracy_score, path_log = log_path_jl_1, return_gm = True, n_epochs = \\\n", + " 100, start_len = 7,stop_len = 10, is_qt = True, is_qc = True, qt = 0.9, qc = 0.85, metric_avg = 'macro')\n", + "\n", + "labels = np.argmax(probs_fm, 1)\n", + "print(\"probs_fm shape: \", probs_fm.shape)\n", + "print(\"probs_gm shape: \", probs_gm.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 173, + "metadata": { + "hidden": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "labels_fm_test shape: (100,)\n", + "labels_gm_test shape: (100,)\n", + "accuracy_score of gm: 0.63 | fm: 0.91\n", + "f1_score of gm: [0.68376068 0.55421687] | fm: [0.89156627 0.92307692]\n", + "Macro f1_score: 0.9073215940685819\n", + "Precision score of gm: [0.55555556 0.82142857] | fm: [0.97368421 0.87096774]\n", + "Recall score of gm: [0.88888889 0.41818182] | fm: [0.82222222 0.98181818]\n" + ] + } + ], + "source": [ + "labels_fm_test = jl.predict_fm(x_test = X_feats_T, need_strings=False)\n", + "labels_gm_test = jl.predict_gm(path_test = T_path_pkl, qc = 0.85, need_strings=False)\n", + "\n", + "print(\"labels_fm_test shape: \", labels_fm_test.shape)\n", + "print(\"labels_gm_test shape: \", labels_gm_test.shape)\n", + "\n", + "#Y_T is true labels of test data, type is numpy array of shape (num_instances,)\n", + "print(\"accuracy_score of gm: \", accuracy_score(Y_T, labels_gm_test), \"| fm: \", accuracy_score(Y_T, labels_fm_test))\n", + "print(\"f1_score of gm: \", f1_score(Y_T, labels_gm_test, average = None), \"| fm: \", f1_score(Y_T, labels_fm_test, average = None))\n", + "print(\"Macro f1_score: \", f1_score(Y_T, labels_fm_test, average = 'macro'))\n", + "print(\"Precision score of gm: \", precision_score(Y_T, labels_gm_test, average = None), \"| fm: \", precision_score(Y_T, labels_fm_test, average = None))\n", + "print(\"Recall score of gm: \", recall_score(Y_T, labels_gm_test, average = None), \"| fm: \", recall_score(Y_T, labels_fm_test, average = None))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "heading_collapsed": true + }, + "source": [ + "## CAGE with 6 LFs" + ] + }, + { + "cell_type": "code", + "execution_count": 122, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "log_path_cage = 'params/cage/yt_log_2.txt' #jl is an algorithm, can be found below\n", + "params_path = 'params/cage/yt_params.pkl' #file path to store parameters of JL, used below" + ] + }, + { + "cell_type": "code", + "execution_count": 123, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "# from spear.cage import Cage\n", + "\n", + "cage2 = Cage(path_json = path_json, n_lfs = n_lfs)" + ] + }, + { + "cell_type": "code", + "execution_count": 124, + "metadata": { + "hidden": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 100/100 [00:04<00:00, 22.57it/s]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "final_test_accuracy_score: 0.69\n", + "test_average_metric: macro\tfinal_test_f1_score: 0.6807743795695603\n", + "probs shape: (1286, 2)\n", + "labels shape: (1286,)\n" + ] + } + ], + "source": [ + "probs = cage2.fit_and_predict_proba(path_pkl = U_path_pkl, path_test = T_path_pkl, path_log = log_path_cage, \\\n", + " qt = 0.9, qc = 0.85, metric_avg = ['macro'], n_epochs = 100, lr = 0.01)\n", + "labels = np.argmax(probs, 1)\n", + "print(\"probs shape: \", probs.shape)\n", + "print(\"labels shape: \",labels.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 125, + "metadata": { + "hidden": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "labels_test shape: (100,)\n", + "accuracy_score: 0.69\n", + "Macro f1_score: 0.6807743795695603\n", + "Micro f1_score: 0.69\n", + "Class Wise f1_score: [0.73504274 0.62650602]\n", + "Class Wise Precision score: [0.59722222 0.92857143]\n", + "Class Wise Recall score: [0.95555556 0.47272727]\n" + ] + } + ], + "source": [ + "labels_test = cage2.predict(path_test = T_path_pkl, qc = 0.85, need_strings = False)\n", + "print(\"labels_test shape: \", labels_test.shape)\n", + "\n", + "from sklearn.metrics import accuracy_score, f1_score, precision_score, recall_score\n", + "\n", + "#Y_T is true labels of test data, type is numpy array of shape (num_instances,)\n", + "print(\"accuracy_score: \", accuracy_score(Y_T, labels_test))\n", + "# print(\"Binary f1_score: \", f1_score(Y_T, labels_test, average = 'binary'))\n", + "print(\"Macro f1_score: \", f1_score(Y_T, labels_test, average = 'macro'))\n", + "print(\"Micro f1_score: \", f1_score(Y_T, labels_test, average = 'micro'))\n", + "print(\"Class Wise f1_score: \", f1_score(Y_T, labels_test, average = None))\n", + "print(\"Class Wise Precision score: \", precision_score(Y_T, labels_test, average = None))\n", + "print(\"Class Wise Recall score: \", recall_score(Y_T, labels_test, average = None))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "heading_collapsed": true + }, + "source": [ + "## Loading 4 LFs" + ] + }, + { + "cell_type": "code", + "execution_count": 174, + "metadata": { + "hidden": true, + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1586/1586 [00:00<00:00, 4321.48it/s]\n" + ] + }, + { + "data": { + "image/png": "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LXXdtKO+3tXt3fShF4xpvd/+9re8+c1vZu7cuWy44YZsttlmnHDCCTzucY/raj0aR8du0OXt3bXcVRYsWMARRxzBNddcw+LFi3nhC1/If/7nf7Lmmmuu0kvfdNNNvPCFL+Sqq65ape1I6r0dT9+xq9u78lVXjmm9bv2/9qMf/YjDDz+cNdZYgzPOOIMDDjiAq666innz5vG5z32OT3ziE6M+94Mf/CDvfOc7V+j1pMlsQm4jkORRwOeBQ6pq8fDlVTW7qmZU1YypU6dOREnSpFNV7Lfffuy+++788pe/5Gc/+xn/8R//we9+97uuv9aiRYu6vk31RlXx4he/mBe96EXccMMN/OIXv+Duu+/m3/7t31Zpu/6OSFpV3fx/7Ytf/CJHH300l112Geuss87S+TNmzFhm8wadBk7qJ2M5AncrsNWQ6S2beWOSZH3g68C/VdVPV6w8jaTbR4fG01iPPAm+//3vs8Yaa3D44YcvnbfzzjtTVbzjHe/gG9/4Bkl417vexYEHHshBBx3EK17xCl7wgs73+NWvfjUvfOEL2W+//TjqqKO48MILue+++zjiiCN4/etfz4UXXsi73/1uNtpoI6677jp+8Ytf8KIXvYhbbrmFe++9lze96U0cdthhAJxyyikcd9xxbLjhhuy8886stdZafPKTn2ThwoUcfvjh3HzzzQCccMIJPP3pT5/4b5aW+t73vsfaa6/NIYccAsCUKVM4/vjjmT59Oj/4wQ/47Gc/yw477ADA7rvvzkc+8hGe8IQn8MY3vpGrrrqK+++/n2OPPZZ9992X0047jfPOO4+7776bBx54gNNPP33p69x000284hWv4J577gHgk5/8JH//93/PhRdeyDHHHMN6663H/Pnzefazn82nPvUpqopDDz2UefPmkYTXvOY1vOUtb5n4b9B46PZR1vE2hqO40nhY0f/XLrzwQo499lg23XRTrrrqKp7ylKfwhS98gVNOOYWzzz6bCy64gG984xt84AMfWLq9Cy+8kI985CN87Wtf4+677+aNb3zj0tx5z3vew9y5c/nrX//KLrvswg477MDs2bP5x3/8RxYsWMADDzzAu9/9bg480DH22qbbR5TH01iPVq+IsTRwc4Ftk0yn07gdBLx0LBtPsibwZeBzVXXOSlcpDYAl/1kNd95553HZZZdx+eWX84c//IFdd92V3XbbjQMPPJCzzz6bF7zgBfztb3/ju9/9LieffDKnnHIKG2ywAXPnzuW+++7j6U9/Os973vMAuPTSS7nqqquWDo186qmnsvHGG/PXv/6VXXfdlZe85CXcd999vO997+PSSy9lvfXWY4899mDnnXcG4E1vehNvectbeMYznsHNN9/MXnvtxbXXXjtx3yQ9xNVXX/2Q35v111+frbfemhe84AWcffbZ/Pu//zu33XYbt912GzNmzOCd73wne+yxB6eeeip//OMfmTlzJs95znOAzu/IFVdcwcYbb8xNN920dJuPeMQj+Pa3v83aa6/NDTfcwMEHH8y8efMAuOSSS7jmmmvYZpttmDVrFueddx7Tp0/n1ltvXXr65R//+McJ+X5ImjxW9P81gJ///OdcffXVbL755jz96U/nxz/+Ma997Wu56KKLeOELX8j+++//oGwa6n3vex8bbLABV17ZecN855138pKXvIRPfvKTXHbZZQCce+65bL755nz9650Pw++6yw841D7LPYWyqhYBRwIXANcCZ1fV1Unem2QfgCS7JlkAHAB8JsnVzdP/EdgNeHWSy5qvXcZjR6R+ddFFF3HwwQczZcoUNttsM571rGcxd+5c9t57b77//e9z33338Y1vfIPddtuNddZZh29961t87nOfY5ddduGpT30qt99+OzfccAMAM2fOfNB9bT7xiU+w884787SnPY1bbrmFG264gUsuuYRnPetZbLzxxqyxxhoccMABS9f/zne+w5FHHskuu+zCPvvsw5/+9CfuvvvuCf+eaGx23313zjmn89nZ2Wefzf77d+7y8q1vfYsPfehD7LLLLuy+++7ce++9S4+qPve5z2XjjTd+yLbuv/9+Xve617HjjjtywAEHcM01S8exYubMmTz60Y9mypQpHHzwwVx00UU8+tGP5sYbb+SNb3wj3/zmN1l//fUnYI8ltcFo/69BJ0+23HJLVlttNXbZZZdRm7WRfOc73+GII45YOr3RRhs9ZJ0dd9yRb3/72/zrv/4rP/rRj9hgg5YdUZcY4428q+p84Pxh844Z8ngunVMrhz/vC8AXVrFGaSDssMMOS99sj8Xaa6/N7rvvzgUXXMBZZ53FQQcdBHSuOTjxxBPZa6+9HrT+hRdeyMMe9rAHTX/nO9/hJz/5Ceuuu+7SN/LLsnjxYn7605+y9tprr8CeaTxtv/32D/m9+dOf/sTNN9/MrrvuyiabbMIVV1zBWWedxac//Wmg8zty7rnnst122z3oeRdffPGDfkeGOv7449lss824/PLLWbx48YN+B4YPuZ2EjTbaiMsvv5wLLriAT3/605x99tmceuqp3dhlSS2xov+vAay11lpLH0+ZMqXr1+M+7nGP49JLL+X888/nXe96F3vuuSfHHHPM8p8oTSITMoiJpOXbY489uO+++5g9e/bSeVdccQUbbrghZ511Fg888AALFy7khz/8ITNnzgTgwAMP5LOf/Sw/+tGPmDVrFgB77bUXJ598Mvfffz8Av/jFL5ZetzTUXXfdxUYbbcS6667Lddddx09/2rlEddddd+UHP/gBd955J4sWLeLcc89d+pznPe95nHjiiUunl5ySot7Zc889+ctf/sLnPvc5AB544AHe9ra38epXv5p1112XAw88kA9/+MPcdddd7LTTTkDnd+TEE0+kqoDOKUvLc9ddd/GoRz2K1VZbjc9//vM88MADS5ddcskl/OpXv2Lx4sWcddZZPOMZz+APf/gDixcv5iUveQnvf//7ufTSS8dh7yVNZivz/9qqeO5zn8tJJ520dPrOO+8EYI011lj6f+JvfvMb1l13XV7+8pfzjne8w2xSK43pCJw0aHox+EoSvvzlL/PmN7+Z4447jrXXXptp06ZxwgkncPfdd7PzzjuThA9/+MM88pGPBDoN1Ste8Qr23XffpUPGv/a1r+Wmm27iyU9+MlXF1KlT+cpXvvKQ15s1axaf/vSnecITnsB2223H0572NAC22GIL3vnOdzJz5kw23nhjHv/4xy89xeQTn/gERxxxBDvttBOLFi1it912W3pUR40JHjBiye/NG97wBt73vvexePFinv/85y8ddW3//ffnTW96E+9+97uXPufd7343b37zm9lpp51YvHgx06dP52tf+9oyX+cNb3gDL3nJS/jc5z7HrFmzHnSkbtddd+XII49cOojJfvvtx5VXXskhhxzC4sWdgYf/4z/+Yxz2XtJYjcdACsuzov+vXXfddav0eu9617s44ogjeOITn8iUKVN4z3vew4tf/GIOO+wwdtppJ5785Cfzyle+kne84x2sttpqrLHGGpx88sld2ltp4mTJJ7CTxYwZM2rJhfEamaNQdt+1117LE57whF6XMWncfffdPPzhD2fRokXst99+vOY1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1dU6RrLLLrvw+Mc/njPPPHPcX2tZbOCkFqoq9ttvP171qlctDZHLL7+c3/3ud8tt4BYtWsTqq68+6vRYnHbaaTzxiU+0gZPUVd3IpxNOOIGXv/zlk7aBG4MtgFuGTC9o5tnASY111lmHyy67bEJf89prr+WBBx7gRz/6Effccw8Pe9jDJvT1h1qhVExyKvBC4PdV9cRm3lnAds0qGwJ/rKpdmk+XrgWub5b9tKoO70bRg67bR3zG01iPJmnFfP/732eNNdbg8MP/709q5513pqp4xzvewTe+8Q2S8K53vYsDDzyQCy+8kHe/+91stNFGXHfddcyePftB09deey1HHXUUF154Iffddx9HHHEEr3/96wE47rjj+MIXvsBqq63G3nvvzYwZM5g3bx4ve9nLWGeddfjJT37COuus06tvhSaRbh8NGm9jOdqk0V144YUce+yxbLrpplx11VU85SlP4Qtf+AJJmDt3Lm9605u45557WGuttfjud7/LGmuswT/90z8xb948Vl99dT72sY/x7Gc/m9NOO43zzjuPu+++mwceeIBDDjnkQdPnn38+b3zjG7nqqqu4//77OfbYY9l333154IEH+Nd//Ve++c1vstpqq/G6172OquI3v/kNz372s9l00035/ve/3+tv07hJchidUyzZeuutV3o73T56Mp7GcmRGg23atGkcfPDBfOMb32D11Vdn9uzZHH300cyfP593vOMdHH744Vx44YUcc8wxrLfeesyfP59nP/vZfOpTn2K11ZZ9ZdkZZ5zBK17xCq699lq++tWv8tKXvhRgxLxbd911H5JPb3zjG7u2nyt6BO404JPA55bMqKoDlzxO8lHgriHr/7KqdlmF+iSNYMmbpeHOO+88LrvsMi6//HL+8Ic/sOuuu7LbbrsBcOmll3LVVVcxffp0LrzwwgdNz549mw022IC5c+dy33338fSnP53nPe95XHfddXz1q1/l4osvZt111+WOO+5g44035pOf/CQf+chHmDFjxkTvuqRJ5Oc//zlXX301m2++OU9/+tP58Y9/zMyZMznwwAM566yz2HXXXfnTn/7EOuusw8c//nGScOWVV3LdddfxvOc9j1/84hdAJ5+uuOIKNt54Y0477bQHTb/zne9kjz324NRTT+WPf/wjM2fO5DnPeQ6f+9znuOmmm7jssstYffXVl+bTxz72Mb7//e+z6aab9vi7s9JuBbYaMr1lM+9Bqmo2MBtgxowZNTGlSZPDX//6V3bZZZel00cffTQHHthpSbbeemsuu+wy3vKWt/DqV7+aH//4x9x777088YlPXPrB9yWXXMI111zDNttsw6xZszjvvPPYf//9l/maZ511Ft/+9re57rrrOPHEE3npS1/K3/72txHzbvbs2Q/Jp25aoQZuWedtpzOEyj8CfqQp9chFF13EwQcfzJQpU9hss8141rOexdy5c1l//fWZOXPmg+4xMnT6W9/6FldccQXnnHMOAHfddRc33HAD3/nOdzjkkEOWnoq08cYbT/xOSZq0Zs6cyZZbbgl0rg256aab2GCDDXjUox7FrrvuCsD6668PdPJpySfQj3/849lmm22WNnDPfe5zH5QvQ6e/9a1vMWfOHD7ykY8AnSHMb775Zr7zne9w+OGHLz3Fso/yaQ5wZJIzgacCd3n9m/RgyzqFcp999gFgxx135O6772a99dZjvfXWY6211uKPf/wj0MmuRz/60QAcfPDBXHTRRcts4ObNm8emm27K1ltvzRZbbMFrXvMa7rjjDm699dYR826886mb18A9E/hdVd0wZN70JD8H/gS8q6p+1MXXkwbWDjvssLTZGqvh52oPna4qTjzxRPbaa68HrXPBBResfJGS+t5aa6219PGUKVNYtGjRSm1nefl07rnnst122w1/WislOQPYHdg0yQLgPcAaAFX1aeB84PnAfOAvwCG9qVRtNBGnxD7jiHfw2zUn7zAaS3JptdVWe1BGrbbaakszavjQ/csbyv+MM87guuuuY9q0aQD86U9/4txzz+VpT3taFysfu27eRuBg4Iwh07cBW1fVk4C3Al9Ksv5IT0xyWJJ5SeYtXLiwiyVJ/WmPPfbgvvvuY/bs2UvnXXHFFWy44YacddZZPPDAAyxcuJAf/vCHzJw5c7nb22uvvTj55JO5//77AfjFL37BPffcw3Of+1w++9nP8pe//AVg6SkA6623Hn/+85/HYc8ktd12223Hbbfdxty5cwH485//zKJFi3jmM5/JF7/4RaCTMTfffPOYmrK99tqLE088kc6gjJ3TNqFzlO4zn/nM0jdkbcmnqjq4qh5VVWtU1ZZVdUpVfbpp3qiOI6rqMVW1Y1XN63XNUr+55JJL+NWvfsXixYs566yzeMYznjHquosXL+bs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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PolarityCoverageOverlapsConflictsCorrectIncorrectEmp. Acc.
keyword_subscribe[-1.0, 0.0]0.0863810.0346780.00063113701.000000
keyword_link[-1.0, 0.0]0.1191680.0189160.000631178110.941799
keyword_please[-1.0, 0.0]0.0920550.0472890.00000014420.986301
textblob_polarity[-1.0, 1.0]0.0334170.0012610.0012614670.867925
\n", + "
" + ], + "text/plain": [ + " Polarity Coverage Overlaps Conflicts Correct \\\n", + "keyword_subscribe [-1.0, 0.0] 0.086381 0.034678 0.000631 137 \n", + "keyword_link [-1.0, 0.0] 0.119168 0.018916 0.000631 178 \n", + "keyword_please [-1.0, 0.0] 0.092055 0.047289 0.000000 144 \n", + "textblob_polarity [-1.0, 1.0] 0.033417 0.001261 0.001261 46 \n", + "\n", + " Incorrect Emp. Acc. \n", + "keyword_subscribe 0 1.000000 \n", + "keyword_link 11 0.941799 \n", + "keyword_please 2 0.986301 \n", + "textblob_polarity 7 0.867925 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from spear.labeling import LFSet, LFAnalysis, PreLabels\n", + "import numpy as np\n", + "\n", + "LFS = [\n", + "# keyword_my,\n", + " keyword_subscribe,\n", + " keyword_link,\n", + " keyword_please,\n", + "# keyword_song,\n", + "# regex_check_out,\n", + "# short_comment,\n", + "# has_person_nlp,\n", + " textblob_polarity,\n", + "# textblob_subjectivity,\n", + "]\n", + "\n", + "\n", + "rules = LFSet(\"SPAM_LF\")\n", + "rules.add_lf_list(LFS)\n", + "\n", + "R = np.zeros((X.shape[0],len(rules.get_lfs())))\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"youtube\",\n", + " data=X,\n", + " data_feats = X_feats,\n", + " gold_labels=Y,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "L,S = yt_noisy_labels.get_labels()\n", + "\n", + "analyse = yt_noisy_labels.analyse_lfs(plot=True)\n", + "\n", + "result = analyse.head(16)\n", + "display(result)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "hidden": true + }, + "source": [ + "### Create different splits of data here" + ] + }, + { + "cell_type": "code", + "execution_count": 175, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "from utils import get_various_data\n", + "\n", + "validation_size = 100\n", + "test_size = 100\n", + "L_size = 100\n", + "n_lfs = len(rules.get_lfs())\n", + "X = np.asarray(X)\n", + "Y = np.asarray(Y)\n", + "X_V, Y_V, X_feats_V,_, X_T, Y_T, X_feats_T,_, X_L, Y_L, X_feats_L,_, X_U, X_feats_U,_ = get_various_data(X, Y,\\\n", + " X_feats, n_lfs, validation_size, test_size, L_size)" + ] + }, + { + "cell_type": "code", + "execution_count": 176, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "path_json = 'data_pipeline/JL/yt_json.json'\n", + "V_path_pkl = 'data_pipeline/JL/yt_pickle_V.pkl' #validation data - have true labels\n", + "T_path_pkl = 'data_pipeline/JL/yt_pickle_T_4_lfs.pkl' #test data - have true labels\n", + "L_path_pkl = 'data_pipeline/JL/yt_pickle_L.pkl' #Labeled data - have true labels\n", + "U_path_pkl = 'data_pipeline/JL/yt_pickle_U_4_lfs.pkl' #unlabelled data - don't have true labels\n", + "\n", + "log_path_jl_1 = 'log/JL/yt_log_1.txt' #jl is an algorithm, can be found below\n", + "params_path = 'params/JL/yt_params.pkl' #file path to store parameters of JL, used below" + ] + }, + { + "cell_type": "code", + "execution_count": 177, + "metadata": { + "hidden": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 100/100 [00:00<00:00, 3125.30it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 100/100 [00:00<00:00, 4128.70it/s]\n", + "100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 100/100 [00:00<00:00, 4457.80it/s]\n", + "100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1286/1286 [00:00<00:00, 4258.50it/s]\n" + ] + } + ], + "source": [ + "from spear.labeling import PreLabels\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"yt\",\n", + " data=X_V,\n", + " gold_labels=Y_V,\n", + " data_feats=X_feats_V,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "yt_noisy_labels.generate_pickle(V_path_pkl)\n", + "yt_noisy_labels.generate_json(path_json) #generating json files once is enough\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"yt\",\n", + " data=X_T,\n", + " gold_labels=Y_T,\n", + " data_feats=X_feats_T,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "yt_noisy_labels.generate_pickle(T_path_pkl)\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"yt\",\n", + " data=X_L,\n", + " gold_labels=Y_L,\n", + " data_feats=X_feats_L,\n", + " rules=rules,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2)\n", + "yt_noisy_labels.generate_pickle(L_path_pkl)\n", + "\n", + "yt_noisy_labels = PreLabels(name=\"yt\",\n", + " data=X_U,\n", + " rules=rules,\n", + " data_feats=X_feats_U,\n", + " labels_enum=ClassLabels,\n", + " num_classes=2) #note that we don't pass gold_labels here, for the unlabelled data\n", + "yt_noisy_labels.generate_pickle(U_path_pkl)" + ] + }, + { + "cell_type": "code", + "execution_count": 178, + "metadata": { + "hidden": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of elements in data list: 10\n", + "Shape of feature matrix: (1286, 16634)\n", + "Shape of labels matrix: (1286, 4)\n", + "Shape of continuous scores matrix : (1286, 4)\n", + "Total number of classes: 2\n", + "Classes dictionary in json file(modified to have integer keys): {1: 'SPAM', 0: 'HAM'}\n" + ] + } + ], + "source": [ + "from spear.utils import get_data, get_classes\n", + "\n", + "data_U = get_data(path = U_path_pkl, check_shapes=True)\n", + "#check_shapes being True(above), asserts for relative shapes of arrays in pickle file\n", + "print(\"Number of elements in data list: \", len(data_U))\n", + "print(\"Shape of feature matrix: \", data_U[0].shape)\n", + "print(\"Shape of labels matrix: \", data_U[1].shape)\n", + "print(\"Shape of continuous scores matrix : \", data_U[6].shape)\n", + "print(\"Total number of classes: \", data_U[9])\n", + "\n", + "classes = get_classes(path = path_json)\n", + "print(\"Classes dictionary in json file(modified to have integer keys): \", classes)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "heading_collapsed": true + }, + "source": [ + "## JL with 4 LFs" + ] + }, + { + "cell_type": "code", + "execution_count": 179, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "from spear.jl import JL\n", + "\n", + "n_features = 16634\n", + "n_hidden = 512\n", + "feature_model = 'lr'\n", + "'''\n", + "'nn' is neural network. other alternative is 'lr'(logistic regression) which doesn't need n_hidden to be passed\n", + "during initialisation.\n", + "''' \n", + "\n", + "jl = JL(path_json = path_json, n_lfs = n_lfs, n_features = n_features, feature_model = feature_model)" + ] + }, + { + "cell_type": "code", + "execution_count": 180, + "metadata": { + "hidden": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 81%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████▎ | 81/100 [01:27<00:20, 1.09s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "early stopping at epoch: 81\tbest_epoch: 80\n", + "score used: f1_score\n", + "best_gm_val_score:0.5847828526540231\tbest_fm_val_score:0.8139727159983464\n", + "best_gm_test_score:0.6783898744683059\tbest_fm_test_score:0.7549019607843137\n", + "best_gm_test_precision:0.7780665280665281\tbest_fm_test_precision:0.8571428571428572\n", + "best_gm_test_recall:0.7161616161616161\tbest_fm_test_recall:0.7555555555555555\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "ename": "ValueError", + "evalue": "Expected value argument (Tensor of shape (1286,)) to be within the support (Interval(lower_bound=0.0, upper_bound=1.0)) of the distribution Beta(), but found invalid values:\ntensor([0.5000, 0.0000, 0.5000, ..., 0.0000, 0.5755, 0.0000], device='cuda:0')", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m/tmp/ipykernel_2357964/2244590139.py\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 16\u001b[0m n_hidden = n_hidden)\n\u001b[1;32m 17\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 18\u001b[0;31m probs_fm, probs_gm = jl.fit_and_predict_proba(path_L = L_path_pkl, path_U = U_path_pkl, path_V = V_path_pkl, \\\n\u001b[0m\u001b[1;32m 19\u001b[0m \u001b[0mpath_T\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mT_path_pkl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mloss_func_mask\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mloss_func_mask\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbatch_size\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mbatch_size\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlr_fm\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlr_fm\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlr_gm\u001b[0m \u001b[0;34m=\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 20\u001b[0m \u001b[0mlr_gm\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0muse_accuracy_score\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0muse_accuracy_score\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpath_log\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlog_path_jl_1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mreturn_gm\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mn_epochs\u001b[0m \u001b[0;34m=\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.8/site-packages/spear/jl/core.py\u001b[0m in \u001b[0;36mfit_and_predict_proba\u001b[0;34m(self, path_L, path_U, path_V, path_T, loss_func_mask, batch_size, lr_fm, lr_gm, use_accuracy_score, path_log, return_gm, n_epochs, start_len, stop_len, is_qt, is_qc, qt, qc, metric_avg)\u001b[0m\n\u001b[1;32m 572\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 573\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mreturn_gm\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 574\u001b[0;31m \t\t\treturn fm_predictions, (probability(self.theta_optimal, self.pi_optimal, torch.tensor(data_U[2], device = self.device).long(), torch.tensor(data_U[6], device = self.device).double(), \\\n\u001b[0m\u001b[1;32m 575\u001b[0m \t\t\t\tself.k, self.n_classes, self.continuous_mask, qc_, self.device)).cpu().detach().numpy()\n\u001b[1;32m 576\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.8/site-packages/spear/utils/utils_cage.py\u001b[0m in \u001b[0;36mprobability\u001b[0;34m(theta, pi, m, s, k, n_classes, continuous_mask, qc, device)\u001b[0m\n\u001b[1;32m 112\u001b[0m \u001b[0mp_s\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mones\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mn_classes\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdevice\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdevice\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdouble\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 113\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0my\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mn_classes\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 114\u001b[0;31m \u001b[0mp_s\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mprobability_s_given_y_l\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpi\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0my\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mm\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mk\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcontinuous_mask\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mqc\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 115\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mp_l_y\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mp_s\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 116\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.8/site-packages/spear/utils/utils_cage.py\u001b[0m in \u001b[0;36mprobability_s_given_y_l\u001b[0;34m(pi, s, y, m, k, continuous_mask, qc)\u001b[0m\n\u001b[1;32m 86\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mk\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 87\u001b[0m \u001b[0mtemp\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mBeta\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mr\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mparams\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparams\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mr\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 88\u001b[0;31m \u001b[0mprobability\u001b[0m \u001b[0;34m*=\u001b[0m \u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexp\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtemp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlog_prob\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdouble\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mm\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdouble\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0mcontinuous_mask\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 89\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mm\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdouble\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mcontinuous_mask\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 90\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mprobability\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.8/site-packages/torch/distributions/beta.py\u001b[0m in \u001b[0;36mlog_prob\u001b[0;34m(self, value)\u001b[0m\n\u001b[1;32m 60\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mlog_prob\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 61\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_validate_args\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 62\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_validate_sample\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 63\u001b[0m \u001b[0mheads_tails\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstack\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1.0\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 64\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_dirichlet\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlog_prob\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mheads_tails\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.8/site-packages/torch/distributions/distribution.py\u001b[0m in \u001b[0;36m_validate_sample\u001b[0;34m(self, value)\u001b[0m\n\u001b[1;32m 286\u001b[0m \u001b[0mvalid\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msupport\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcheck\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 287\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mvalid\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mall\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 288\u001b[0;31m raise ValueError(\n\u001b[0m\u001b[1;32m 289\u001b[0m \u001b[0;34m\"Expected value argument \"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 290\u001b[0m \u001b[0;34mf\"({type(value).__name__} of shape {tuple(value.shape)}) \"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mValueError\u001b[0m: Expected value argument (Tensor of shape (1286,)) to be within the support (Interval(lower_bound=0.0, upper_bound=1.0)) of the distribution Beta(), but found invalid values:\ntensor([0.5000, 0.0000, 0.5000, ..., 0.0000, 0.5755, 0.0000], device='cuda:0')" + ] + } + ], + "source": [ + "loss_func_mask = [1,0,1,1,1,1,1] \n", + "'''\n", + "One can keep 0s in places where he don't want the specific loss function to be part\n", + "the final loss function used in training. Refer documentation(spear.JL.core.JL) to understand\n", + "the which index of loss_func_mask refers to what loss function.\n", + "\n", + "Note: the loss_func_mask above may not be the optimal mask for sms dataset. We have to try\n", + " some other masks too, to find the best one that gives good accuracies.\n", + "'''\n", + "batch_size = 32\n", + "lr_fm = 0.0003\n", + "lr_gm = 0.01\n", + "use_accuracy_score = False\n", + "\n", + "jl = JL(path_json = path_json, n_lfs = n_lfs, n_features = n_features, feature_model = feature_model, \\\n", + " n_hidden = n_hidden)\n", + "\n", + "probs_fm, probs_gm = jl.fit_and_predict_proba(path_L = L_path_pkl, path_U = U_path_pkl, path_V = V_path_pkl, \\\n", + " path_T = T_path_pkl, loss_func_mask = loss_func_mask, batch_size = batch_size, lr_fm = lr_fm, lr_gm = \\\n", + " lr_gm, use_accuracy_score = use_accuracy_score, path_log = log_path_jl_1, return_gm = True, n_epochs = \\\n", + " 100, start_len = 7,stop_len = 10, is_qt = True, is_qc = True, qt = 0.9, qc = 0.85, metric_avg = 'macro')\n", + "\n", + "labels = np.argmax(probs_fm, 1)\n", + "print(\"probs_fm shape: \", probs_fm.shape)\n", + "print(\"probs_gm shape: \", probs_gm.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 181, + "metadata": { + "hidden": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "labels_fm_test shape: (100,)\n", + "labels_gm_test shape: (100,)\n", + "accuracy_score of gm: 0.69 | fm: 0.78\n", + "f1_score of gm: [0.7394958 0.61728395] | fm: [0.67647059 0.83333333]\n", + "Macro f1_score: 0.7549019607843137\n", + "Precision score of gm: [0.59459459 0.96153846] | fm: [1. 0.71428571]\n", + "Recall score of gm: [0.97777778 0.45454545] | fm: [0.51111111 1. ]\n" + ] + } + ], + "source": [ + "labels_fm_test = jl.predict_fm(x_test = X_feats_T, need_strings=False)\n", + "labels_gm_test = jl.predict_gm(path_test = T_path_pkl, qc = 0.85, need_strings=False)\n", + "\n", + "print(\"labels_fm_test shape: \", labels_fm_test.shape)\n", + "print(\"labels_gm_test shape: \", labels_gm_test.shape)\n", + "\n", + "#Y_T is true labels of test data, type is numpy array of shape (num_instances,)\n", + "print(\"accuracy_score of gm: \", accuracy_score(Y_T, labels_gm_test), \"| fm: \", accuracy_score(Y_T, labels_fm_test))\n", + "print(\"f1_score of gm: \", f1_score(Y_T, labels_gm_test, average = None), \"| fm: \", f1_score(Y_T, labels_fm_test, average = None))\n", + "print(\"Macro f1_score: \", f1_score(Y_T, labels_fm_test, average = 'macro'))\n", + "print(\"Precision score of gm: \", precision_score(Y_T, labels_gm_test, average = None), \"| fm: \", precision_score(Y_T, labels_fm_test, average = None))\n", + "print(\"Recall score of gm: \", recall_score(Y_T, labels_gm_test, average = None), \"| fm: \", recall_score(Y_T, labels_fm_test, average = None))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "heading_collapsed": true + }, + "source": [ + "## CAGE with 4 LFs" + ] + }, + { + "cell_type": "code", + "execution_count": 114, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "log_path_cage = 'params/cage/yt_log_4_lfs.txt' #jl is an algorithm, can be found below\n", + "params_path = 'params/cage/yt_params.pkl' #file path to store parameters of JL, used below" + ] + }, + { + "cell_type": "code", + "execution_count": 115, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [ + "cage3 = Cage(path_json = path_json, n_lfs = n_lfs)" + ] + }, + { + "cell_type": "code", + "execution_count": 116, + "metadata": { + "hidden": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 100/100 [00:03<00:00, 30.14it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "final_test_accuracy_score: 0.71\n", + "test_average_metric: macro\tfinal_test_f1_score: 0.69662098545873\n", + "probs shape: (1286, 2)\n", + "labels shape: (1286,)\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "probs = cage3.fit_and_predict_proba(path_pkl = U_path_pkl, path_test = T_path_pkl, path_log = log_path_cage, \\\n", + " qt = 0.9, qc = 0.85, metric_avg = ['macro'], n_epochs = 100, lr = 0.01)\n", + "labels = np.argmax(probs, 1)\n", + "print(\"probs shape: \", probs.shape)\n", + "print(\"labels shape: \",labels.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "metadata": { + "hidden": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "labels_test shape: (100,)\n", + "accuracy_score: 0.55\n", + "Binary f1_score: 0.41558441558441556\n", + "Macro f1_score: 0.5248653785239151\n", + "Micro f1_score: 0.55\n", + "Class Wise f1_score: [0.63414634 0.41558442]\n", + "Class Wise Precision score: [0.53424658 0.59259259]\n", + "Class Wise Recall score: [0.78 0.32]\n" + ] + } + ], + "source": [ + "labels_test = cage3.predict(path_test = T_path_pkl, qc = 0.85, need_strings = False)\n", + "print(\"labels_test shape: \", labels_test.shape)\n", + "\n", + "\n", + "#Y_T is true labels of test data, type is numpy array of shape (num_instances,)\n", + "print(\"accuracy_score: \", accuracy_score(Y_T, labels_test))\n", + "print(\"Binary f1_score: \", f1_score(Y_T, labels_test, average = 'binary'))\n", + "print(\"Macro f1_score: \", f1_score(Y_T, labels_test, average = 'macro'))\n", + "print(\"Micro f1_score: \", f1_score(Y_T, labels_test, average = 'micro'))\n", + "print(\"Class Wise f1_score: \", f1_score(Y_T, labels_test, average = None))\n", + "print(\"Class Wise Precision score: \", precision_score(Y_T, labels_test, average = None))\n", + "print(\"Class Wise Recall score: \", recall_score(Y_T, labels_test, average = None))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "hidden": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.10" + }, + "metadata": { + "interpreter": { + "hash": "31f2aee4e71d21fbe5cf8b01ff0e069b9275f58929596ceb00d14d90e3e16cd6" + } + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/requirements/requirements.txt b/requirements/requirements.txt index f1326a8..065ff70 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -1,5 +1,11 @@ -torch==1.8.0 -apricot_select==0.6.1 -numpy==1.13.3 -apricot==0.2 -scikit_learn==0.24.2 +tqdm>=4.59.0 +torch>=1.8.0 +scikit_learn>=0.24.2 +matplotlib>=3.3.4 +pandas>=1.1.5 +numpy>=1.19.5 +scipy>=1.5.4 +tensorflow>=2.2.0 +json>=2.0.9 +sklearn>=0.22 +snorkel>=0.9.7 diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..7f5709b --- /dev/null +++ b/setup.py @@ -0,0 +1,28 @@ +from setuptools import setup +import setuptools + +setup( + name='decile-spear', + version='1.0.5', + author='Ayush Maheshwari, Guttu Sai Abhishek', + author_email='ayush.hakmn@gmail.com', + url='https://github.com/decile-team/spear', + license='LICENSE.txt', + packages=setuptools.find_packages(), + description='SPEAR is a library for data programming with semi-supervision that provides facility to programmatically label and build training data', + long_description='README.md', + long_description_content_type="text/markdown", + package_dir={"": "."}, + # packages=setuptools.find_packages(where="spear"), + python_requires=">=3.6", + install_requires=[ + "tqdm>=4.59.0", + "torch>=1.8.0", + "scikit_learn>=0.24.2", + "matplotlib>=3.3.4", + "pandas>=1.1.5", + "numpy>=1.19.5", + "scipy>=1.5.4", + "tensorflow>=2.2.0" + ], +) diff --git a/spear/Implyloss/.ipynb_checkpoints/hls_notebook-checkpoint.ipynb b/spear/Implyloss/.ipynb_checkpoints/hls_notebook-checkpoint.ipynb new file mode 100644 index 0000000..6f2d57c --- /dev/null +++ b/spear/Implyloss/.ipynb_checkpoints/hls_notebook-checkpoint.ipynb @@ -0,0 +1,79 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "id": "e30bbed2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2021-06-14 21:42:16.052950: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory\n", + "2021-06-14 21:42:16.052969: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.\n", + "WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/compat/v2_compat.py:96: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "non-resource variables are not supported in the long term\n", + "/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/legacy_tf_layers/core.py:171: UserWarning: `tf.layers.dense` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dense` instead.\n", + " warnings.warn('`tf.layers.dense` is deprecated and '\n", + "/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer_v1.py:1719: UserWarning: `layer.apply` is deprecated and will be removed in a future version. Please use `layer.__call__` method instead.\n", + " warnings.warn('`layer.apply` is deprecated and '\n", + "WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`.\n", + "WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "\n", + "Future major versions of TensorFlow will allow gradients to flow\n", + "into the labels input on backprop by default.\n", + "\n", + "See `tf.nn.softmax_cross_entropy_with_logits_v2`.\n", + "\n", + "WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/spear/spear/Implyloss/my_model.py:623: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use `tf.cast` instead.\n", + "WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/spear/spear/Implyloss/my_model.py:414: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use `tf.cast` instead.\n", + "2021-06-14 21:42:17.979688: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA\n", + "To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", + "2021-06-14 21:42:17.980362: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set\n", + "2021-06-14 21:42:17.980518: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory\n", + "2021-06-14 21:42:17.980527: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed call to cuInit: UNKNOWN ERROR (303)\n", + "2021-06-14 21:42:17.980559: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (parth-G3-3590): /proc/driver/nvidia/version does not exist\n", + "2021-06-14 21:42:18.128749: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:196] None of the MLIR optimization passes are enabled (registered 0 passes)\n", + "2021-06-14 21:42:18.137369: I tensorflow/core/platform/profile_utils/cpu_utils.cc:112] CPU Frequency: 2599990000 Hz\n", + "WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/training/saver.py:968: remove_checkpoint (from tensorflow.python.training.checkpoint_management) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use standard file APIs to delete files with this prefix.\n" + ] + } + ], + "source": [ + "!python3 my_main.py" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.5" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/spear/Implyloss/.ipynb_checkpoints/trec_implyloss-checkpoint.ipynb b/spear/Implyloss/.ipynb_checkpoints/trec_implyloss-checkpoint.ipynb deleted file mode 100644 index 363fcab..0000000 --- a/spear/Implyloss/.ipynb_checkpoints/trec_implyloss-checkpoint.ipynb +++ /dev/null @@ -1,6 +0,0 @@ -{ - "cells": [], - "metadata": {}, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/spear/Implyloss/__init__.py b/spear/Implyloss/__init__.py new file mode 100644 index 0000000..e667cdc --- /dev/null +++ b/spear/Implyloss/__init__.py @@ -0,0 +1,25 @@ +# from .my_checkmate import * +# from .my_checkpoints import * +# from .my_data_feeders import * +# from .my_data_feeder_utils import * +# from .my_data_types import * +# from .my_gen_cross_entropy_utils import * +# from .my_model import * +# from .my_networks import * +# from .my_pr_utils import * +# from .my_test import * +# from .my_train import * +# from .my_utils import * + +from .checkmate import * +from .checkpoints import * +from .data_feeders import * +from .data_feeder_utils import * +from .data_types import * +from .gen_cross_entropy_utils import * +from .model import * +from .networks import * +from .pr_utils import * +from .test import * +from .train import * +from .utils import * \ No newline at end of file diff --git a/spear/Implyloss/checkmate/my_checkmate.py b/spear/Implyloss/checkmate.py similarity index 98% rename from spear/Implyloss/checkmate/my_checkmate.py rename to spear/Implyloss/checkmate.py index 13d0a18..ef53cbb 100644 --- a/spear/Implyloss/checkmate/my_checkmate.py +++ b/spear/Implyloss/checkmate.py @@ -2,7 +2,9 @@ import glob import json import numpy as np -import tensorflow as tf +# import tensorflow as tf +import tensorflow.compat.v1 as tf +tf.disable_v2_behavior() class BestCheckpointSaver(object): diff --git a/spear/Implyloss/checkpoint/checkpoint b/spear/Implyloss/checkpoint/checkpoint new file mode 100644 index 0000000..4b726ad --- /dev/null +++ b/spear/Implyloss/checkpoint/checkpoint @@ -0,0 +1,2 @@ +model_checkpoint_path: "hls-model-499" +all_model_checkpoint_paths: "hls-model-499" diff --git a/spear/Implyloss/checkpoint/f_d_U/best.ckpt-372.data-00000-of-00001 b/spear/Implyloss/checkpoint/f_d_U/best.ckpt-372.data-00000-of-00001 new file mode 100644 index 0000000..69eabbf Binary files /dev/null and b/spear/Implyloss/checkpoint/f_d_U/best.ckpt-372.data-00000-of-00001 differ diff --git a/spear/Implyloss/checkpoint/f_d_U/best.ckpt-372.index b/spear/Implyloss/checkpoint/f_d_U/best.ckpt-372.index new file mode 100644 index 0000000..af18eda Binary files /dev/null and b/spear/Implyloss/checkpoint/f_d_U/best.ckpt-372.index differ diff --git a/spear/Implyloss/checkpoint/f_d_U/best.ckpt-372.meta b/spear/Implyloss/checkpoint/f_d_U/best.ckpt-372.meta new file mode 100644 index 0000000..99052d9 Binary files /dev/null and b/spear/Implyloss/checkpoint/f_d_U/best.ckpt-372.meta differ diff --git a/spear/Implyloss/checkpoint/f_d_U/best_checkpoints b/spear/Implyloss/checkpoint/f_d_U/best_checkpoints new file mode 100644 index 0000000..18d0e6b --- /dev/null +++ b/spear/Implyloss/checkpoint/f_d_U/best_checkpoints @@ -0,0 +1,3 @@ +{ + "best.ckpt-372": 1.0 +} \ No newline at end of file diff --git a/spear/Implyloss/checkpoint/f_d_U/checkpoint b/spear/Implyloss/checkpoint/f_d_U/checkpoint new file mode 100644 index 0000000..c37307a --- /dev/null +++ b/spear/Implyloss/checkpoint/f_d_U/checkpoint @@ -0,0 +1,2 @@ +model_checkpoint_path: "best.ckpt-372" +all_model_checkpoint_paths: "best.ckpt-372" diff --git a/spear/Implyloss/checkpoint/hls-model-499.data-00000-of-00001 b/spear/Implyloss/checkpoint/hls-model-499.data-00000-of-00001 new file mode 100644 index 0000000..ed5ccd7 Binary files /dev/null and b/spear/Implyloss/checkpoint/hls-model-499.data-00000-of-00001 differ diff --git a/spear/Implyloss/checkpoint/hls-model-499.index b/spear/Implyloss/checkpoint/hls-model-499.index new file mode 100644 index 0000000..c645436 Binary files /dev/null and b/spear/Implyloss/checkpoint/hls-model-499.index differ diff --git a/spear/Implyloss/checkpoint/hls-model-499.meta b/spear/Implyloss/checkpoint/hls-model-499.meta new file mode 100644 index 0000000..62eeb58 Binary files /dev/null and b/spear/Implyloss/checkpoint/hls-model-499.meta differ diff --git a/spear/Implyloss/my_checkpoints.py b/spear/Implyloss/checkpoints.py old mode 100755 new mode 100644 similarity index 94% rename from spear/Implyloss/my_checkpoints.py rename to spear/Implyloss/checkpoints.py index 263ce4b..ca1d281 --- a/spear/Implyloss/my_checkpoints.py +++ b/spear/Implyloss/checkpoints.py @@ -4,9 +4,15 @@ import numpy as np import os -from my_checkmate import BestCheckpointSaver, get_best_checkpoint -from my_data_types import train_modes -from my_config import flags as config +# from .my_checkmate import BestCheckpointSaver, get_best_checkpoint +# from .my_data_types import train_modes +from .checkmate import BestCheckpointSaver, get_best_checkpoint +from .data_types import train_modes +checkpoint_dir = "./checkpoint" +if not os.path.exists(checkpoint_dir): + os.makedirs(checkpoint_dir) + +num_checkpoints = 1 # Number of checkpoints to keep around # Keeps only the most recently saved checkpoint # @@ -34,6 +40,7 @@ def __init__(self, path, session, variables): self.sess = session # max_to_keep self.saver = tf.train.Saver(variables, max_to_keep=1) + # self.saver = tf.train.Saver() def save(self, global_step=None): ''' @@ -190,6 +197,7 @@ def __init__(self, path, prefix, session, num_checkpoints, variables, global_ste self.sess = session # max_to_keep is None. Number of checkpoints is handled separately by BestCheckpointSaver self.saver = tf.train.Saver(variables, max_to_keep=None, save_relative_paths=True) + # self.saver = tf.train.Saver() self.best_ckpt_saver = BestCheckpointSaver( save_dir=self.ckpt_path, num_to_keep=num_checkpoints, @@ -326,6 +334,7 @@ def test_checkmate(): sess.run(tf.global_variables_initializer()) saver = tf.train.Saver(tf.trainable_variables(), max_to_keep=None) + # saver = tf.train.Saver() best_checkpoint_dir = '/tmp/best_ckpt_%.6f' % np.random.rand() best_ckpt_saver = BestCheckpointSaver( save_dir=best_checkpoint_dir, @@ -439,13 +448,7 @@ def init_saver(self, sess, mode, global_steps): Output: ''' - ckpt_dir = config.checkpoint_dir + ckpt_dir = checkpoint_dir self.best_savers[mode] = BestCheckpoint(ckpt_dir, mode, sess, - config.num_checkpoints, tf.global_variables(), global_steps[mode]) - -if __name__ == '__main__': - test_best_ckpt() - test_checkmate() - test_checkpoint() - test_mru_checkpoints(num_to_keep=1) - test_mru_checkpoints(num_to_keep=5) + num_checkpoints, tf.global_variables(), global_steps[mode]) + diff --git a/spear/Implyloss/d_processed.p b/spear/Implyloss/d_processed.p deleted file mode 100755 index a8b1acb..0000000 Binary files a/spear/Implyloss/d_processed.p and /dev/null differ diff --git a/spear/Implyloss/my_data_feeder_utils.py b/spear/Implyloss/data_feeder_utils.py old mode 100755 new mode 100644 similarity index 66% rename from spear/Implyloss/my_data_feeder_utils.py rename to spear/Implyloss/data_feeder_utils.py index df67a23..b3fdee2 --- a/spear/Implyloss/my_data_feeder_utils.py +++ b/spear/Implyloss/data_feeder_utils.py @@ -1,15 +1,38 @@ import pickle import numpy as np +import json #from .config import flags as config -from my_data_types import * +# from .my_data_types import * +from .data_types import * #reduce_x_features = config.w_network == 'textcnn' reduce_x_features = False seq_len = 25 +def change_values(l,user_class_to_num_map): + ''' + Func Desc: + Replace the class labels in l by sequential labels - 0,1,2,.. + + Input: + l - the class label matrix + user_class_to_num_map - dictionary storing mapping from original class labels to sequential labels -def load_data(fname, num_load=None): + Output: + l - with sequential labels + ''' + A = l.shape + d0 = A[0] + d1 = A[1] + for i in range(d0): + for j in range(d1): + # print(l[i][j]) + l[i][j] = user_class_to_num_map[l[i][j]] + # print("Hi") + return l + +def load_data(fname, jname, num_load=None): ''' Func Desc: load the data from the given file @@ -24,20 +47,108 @@ def load_data(fname, num_load=None): print('Loading from hoff ', fname) with open(fname, 'rb') as f: x = pickle.load(f) - l = pickle.load(f).astype(np.int32) + l = pickle.load(f)#.astype(np.int32) m = pickle.load(f).astype(np.int32) L = pickle.load(f).astype(np.int32) d = pickle.load(f).astype(np.int32) r = pickle.load(f).astype(np.int32) + a1 = pickle.load(f) + a2 = pickle.load(f) + a3 = pickle.load(f) + num_classes_pickle = pickle.load(f)#.astype(np.int32) + + # len_x = len(x) + # assert len(l) == len_x + # assert len(m) == len_x + # assert len(L) == len_x + # assert len(d) == len_x + # assert len(r) == len_x + + # L = np.reshape(L, (L.shape[0], 1)) + # d = np.reshape(d, (d.shape[0], 1)) + + print("batch size", x.shape[0]) + print("num features", x.shape[1]) + print("num classes", num_classes_pickle) + print("num rules", m.shape[1]) + + with open(jname, 'rb') as j: + enum_map_pickle = json.load(j) # {1->Red, 3->Green, 5->Blue} + + # print(type(enum_map_pickle)) + + user_class_to_num_map =dict() + val = 0 + for user_class in enum_map_pickle: + print(user_class," -> ",val) + user_class_to_num_map[int(user_class)] = val + # user_class_to_num_map.add(user_class,val) + val = val+1 + print("None"," -> ",num_classes_pickle) + user_class_to_num_map[None] = num_classes_pickle + + print("----------------------------") + print(user_class_to_num_map) + print("----------------------------") len_x = len(x) + print("len_x", len_x) + # print(r) + # print(m.shape) + if(r.shape[0]==0): + r = np.zeros((m.shape)) + print("len_r", len(r)) + print("--------------------------") + + print("Working with l") + # print(l.shape) + # print(l) + # print("Part l1") + if(l.shape[0]==0): + # if l is None: + print("l is empty") + l=np.empty(len_x) + l.fill(None) + # print(l.shape) + # print(l) + # print("Part l2") + l = change_values(l,user_class_to_num_map) + # print(l.shape) + # print(l) + # print("Part l3") + # l = user_class_to_num_map[l] + # l = np.vectorize(user_class_to_num_map.get)(l) + + print("--------------------------") + + print("Working with L") + # print(L.shape) + # print(L) + # print("Part L1") + if(L.shape[0]==0): + # if L is None: + print("L is empty") + # L=np.empty(len_x) + # L.fill(None) + # L = np.reshape(L, (L.shape[0], 1)) + L = np.full((len_x,1),None) + # print(L.shape) + # print(L) + # print("Part L2") + L = change_values(L,user_class_to_num_map) + # print(L.shape) + # print(L) + # print("Part L3") + # L = user_class_to_num_map[L] + + print("--------------------------") + assert len(l) == len_x assert len(m) == len_x assert len(L) == len_x assert len(d) == len_x assert len(r) == len_x - - L = np.reshape(L, (L.shape[0], 1)) + d = np.reshape(d, (d.shape[0], 1)) if reduce_x_features: @@ -67,6 +178,8 @@ def get_rule_classes(l, num_classes): Output: rule_classes ([num_rules,1]) - the list of valid classes labelled by rules (say class 2 by r0, class 1 by r1, class 4 by r2 => [2,1,4]) ''' + # print("rule_class l", l) + # print(num_classes) num_rules = l.shape[1] rule_classes = [] for rule in range(num_rules): @@ -76,6 +189,9 @@ def get_rule_classes(l, num_classes): if lbl != num_classes: assert lbl < num_classes if rule_class != num_classes: + # print("rule", rule) + # print("labels", labels) + # print("rule_class", rule_class) #print('rule is: ', rule, 'Rule class is: ', rule_class, 'newly found label is: ', lbl, 'num_classes is: ', num_classes) assert(lbl == rule_class) else: diff --git a/spear/Implyloss/my_data_feeders.py b/spear/Implyloss/data_feeders.py old mode 100755 new mode 100644 similarity index 92% rename from spear/Implyloss/my_data_feeders.py rename to spear/Implyloss/data_feeders.py index 431d7b4..285080f --- a/spear/Implyloss/my_data_feeders.py +++ b/spear/Implyloss/data_feeders.py @@ -6,13 +6,18 @@ import inspect import time -from my_data_types import * -import my_data_feeder_utils as utils +from spear.Implyloss import * + +# from .my_data_types import * +# from .my_data_feeder_utils import * +from .data_types import * +from .data_feeder_utils import * class DataFeeder(): - def __init__(self, d_pickle, U_pickle, validation_pickle, - out_dir='./', - config=None): + def __init__(self, d_pickle, U_pickle, validation_pickle, map_json, + shuffle_batches, num_load_d, num_load_U, num_classes, + f_d_class_sampling, min_rule_coverage, rule_classes, num_load_validation, + f_d_batch_size, f_d_U_batch_size, test_w_batch_size, out_dir='./'): ''' Func Desc: Initialize the object with the given parameter files @@ -23,25 +28,24 @@ def __init__(self, d_pickle, U_pickle, validation_pickle, U_pickle - unlabelled data file validation_pickle - validation data file out_dir (Default = './') - output directory - config (Default = None) - config file Output: Void ''' self.f_d_U_start = 0 - self.shuffle_batches=config.shuffle_batches + self.shuffle_batches=shuffle_batches self.out_dir = out_dir + + self.raw_d = load_data(d_pickle, map_json, num_load_d) + self.raw_U = load_data(U_pickle, map_json, num_load_U) - self.raw_d = utils.load_data(d_pickle, config.num_load_d) - self.raw_U = utils.load_data(U_pickle, config.num_load_U) - - if config.num_classes is not None: - self.num_classes = config.num_classes + if num_classes is not None: + self.num_classes = num_classes assert self.num_classes >= np.max(self.raw_d.L) + 1 else: self.num_classes = np.max(self.raw_d.L) + 1 - self.f_d_class_sampling = config.f_d_class_sampling + self.f_d_class_sampling = f_d_class_sampling if self.f_d_class_sampling: assert len(self.f_d_class_sampling) == self.num_classes else: @@ -54,7 +58,7 @@ def __init__(self, d_pickle, U_pickle, validation_pickle, self.num_rules = self.raw_d.l.shape[1] # If min coverage threshold is specified for rules then apply it - self.min_rule_coverage = config.min_rule_coverage + self.min_rule_coverage = min_rule_coverage self.num_rules_to_train = self.num_rules if self.min_rule_coverage > 0: self.satisfying_rules, self.not_satisfying_rules, \ @@ -76,9 +80,9 @@ def __init__(self, d_pickle, U_pickle, validation_pickle, self.rule_map_old_to_new) # Determine rule classes from the truncated rule list - self.rule_classes = config.rule_classes + self.rule_classes = rule_classes if not self.rule_classes: - self.rule_classes = utils.get_rule_classes(self.raw_d.l, self.num_classes) + self.rule_classes = get_rule_classes(self.raw_d.l, self.num_classes) print('Rule classes: ', self.rule_classes) @@ -91,8 +95,8 @@ def __init__(self, d_pickle, U_pickle, validation_pickle, self.f_d = self.convert_raw_d_to_f_d(self.raw_d, num_load=0) - raw_test_data = utils.load_data(validation_pickle, - config.num_load_validation) + raw_test_data = load_data(validation_pickle, map_json, + num_load_validation) self.test_f_x, self.test_f_labels, self.test_f_labels_one_hot, \ self.test_f_l, self.test_f_m, self.test_f_d, self.test_f_r = \ @@ -116,9 +120,9 @@ def __init__(self, d_pickle, U_pickle, validation_pickle, print('test_w len: ', self.data_lens[test_w]) self.batch_size = { - f_d: config.f_d_batch_size , - f_d_U: config.f_d_U_batch_size, - test_w: config.test_w_batch_size, + f_d: f_d_batch_size , + f_d_U: f_d_U_batch_size, + test_w: test_w_batch_size, } self.data_store = { @@ -232,7 +236,7 @@ def combine_f_d_U(self, raw_d, raw_U, d_class_sampling): # # Note that we cannot oversample U according to their true labels since these should not be available # during training. - raw_d = utils.oversample_d(raw_d, d_class_sampling) + raw_d = oversample_d(raw_d, d_class_sampling) print('Size of d after oversampling: ', len(raw_d.x)) new_d_d = np.ones_like(raw_d.d) @@ -276,7 +280,7 @@ def convert_raw_d_to_f_d(self, raw_d, num_load=30): x = raw_d.x[0:num_load] label = np.squeeze(raw_d.L[0:num_load]) - x, label = utils.oversample_f_d(x, label, self.f_d_class_sampling) + x, label = oversample_f_d(x, label, self.f_d_class_sampling) print('num instances in d: ', len(x)) return F_d_Data(x, label) diff --git a/spear/Implyloss/my_data_types.py b/spear/Implyloss/data_types.py old mode 100755 new mode 100644 similarity index 100% rename from spear/Implyloss/my_data_types.py rename to spear/Implyloss/data_types.py diff --git a/spear/Implyloss/my_gen_cross_entropy_utils.py b/spear/Implyloss/gen_cross_entropy_utils.py old mode 100755 new mode 100644 similarity index 90% rename from spear/Implyloss/my_gen_cross_entropy_utils.py rename to spear/Implyloss/gen_cross_entropy_utils.py index c229ff6..e40d271 --- a/spear/Implyloss/my_gen_cross_entropy_utils.py +++ b/spear/Implyloss/gen_cross_entropy_utils.py @@ -1,4 +1,6 @@ -import tensorflow as tf +# import tensorflow as tf +import tensorflow.compat.v1 as tf +tf.disable_v2_behavior() # implementation of generalizer cross entropy loss # eq6 of paper https://arxiv.org/pdf/1805.07836.pdf @@ -28,7 +30,7 @@ def generalized_cross_entropy(logits, one_hot_labels,q=0.6): loss = tf.reduce_mean(loss) else: exp_logits = tf.exp(logits) - normalizer = tf.reduce_sum(exp_logits,axis=-1,keep_dims=True) + normalizer = tf.reduce_sum(exp_logits,axis=-1)#,keep_dims=True) normalizer_q = tf.pow(normalizer,q) exp_logits_q = tf.exp(logits*q) f_j_q = exp_logits_q / normalizer_q diff --git a/spear/Implyloss/hls_notebook.ipynb b/spear/Implyloss/hls_notebook.ipynb new file mode 100644 index 0000000..6f2d57c --- /dev/null +++ b/spear/Implyloss/hls_notebook.ipynb @@ -0,0 +1,79 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "id": "e30bbed2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2021-06-14 21:42:16.052950: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory\n", + "2021-06-14 21:42:16.052969: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.\n", + "WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/compat/v2_compat.py:96: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "non-resource variables are not supported in the long term\n", + "/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/legacy_tf_layers/core.py:171: UserWarning: `tf.layers.dense` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dense` instead.\n", + " warnings.warn('`tf.layers.dense` is deprecated and '\n", + "/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer_v1.py:1719: UserWarning: `layer.apply` is deprecated and will be removed in a future version. Please use `layer.__call__` method instead.\n", + " warnings.warn('`layer.apply` is deprecated and '\n", + "WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`.\n", + "WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "\n", + "Future major versions of TensorFlow will allow gradients to flow\n", + "into the labels input on backprop by default.\n", + "\n", + "See `tf.nn.softmax_cross_entropy_with_logits_v2`.\n", + "\n", + "WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/spear/spear/Implyloss/my_model.py:623: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use `tf.cast` instead.\n", + "WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/spear/spear/Implyloss/my_model.py:414: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use `tf.cast` instead.\n", + "2021-06-14 21:42:17.979688: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA\n", + "To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", + "2021-06-14 21:42:17.980362: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set\n", + "2021-06-14 21:42:17.980518: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory\n", + "2021-06-14 21:42:17.980527: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed call to cuInit: UNKNOWN ERROR (303)\n", + "2021-06-14 21:42:17.980559: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (parth-G3-3590): /proc/driver/nvidia/version does not exist\n", + "2021-06-14 21:42:18.128749: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:196] None of the MLIR optimization passes are enabled (registered 0 passes)\n", + "2021-06-14 21:42:18.137369: I tensorflow/core/platform/profile_utils/cpu_utils.cc:112] CPU Frequency: 2599990000 Hz\n", + "WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/training/saver.py:968: remove_checkpoint (from tensorflow.python.training.checkpoint_management) is deprecated and will be removed in a future version.\n", + "Instructions for updating:\n", + "Use standard file APIs to delete files with this prefix.\n" + ] + } + ], + "source": [ + "!python3 my_main.py" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.5" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/spear/Implyloss/inference_output/infer_f.p b/spear/Implyloss/inference_output/infer_f.p new file mode 100644 index 0000000..ed772bd Binary files /dev/null and b/spear/Implyloss/inference_output/infer_f.p differ diff --git a/spear/Implyloss/inference_output/infer_w.p_test b/spear/Implyloss/inference_output/infer_w.p_test new file mode 100644 index 0000000..aae0873 Binary files /dev/null and b/spear/Implyloss/inference_output/infer_w.p_test differ diff --git a/spear/Implyloss/logs/implication_0.1_0.1_1.txt b/spear/Implyloss/logs/implication_0.1_0.1_1.txt new file mode 100644 index 0000000..bcf5eb2 --- /dev/null +++ b/spear/Implyloss/logs/implication_0.1_0.1_1.txt @@ -0,0 +1,221 @@ +Loading from hoff /home/parth/Desktop/SEM6/RnD/spear/examples/SMS_SPAM/data_pipeline/sms_pickle_L.pkl +batch size 100 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 100 +len_r 100 +-------------------------- +Working with l +-------------------------- +Working with L +-------------------------- +Loading from hoff /home/parth/Desktop/SEM6/RnD/spear/examples/SMS_SPAM/data_pipeline/sms_pickle_U.pkl +batch size 5174 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 5174 +len_r 5174 +-------------------------- +Working with l +-------------------------- +Working with L +L is empty +-------------------------- +No valid label found for rule: 2 +No valid label found for rule: 4 +No valid label found for rule: 6 +Rule classes: [0, 0, 2, 1, 2, 1, 2, 0, 0, 0, 0, 1, 1, 1, 1, 0] +length of covered U: 2984 +Size of d before oversampling: 100 +Size of U (covered) : 2984 +Size of d after oversampling: 1000 +Size of d_U after combining: 3984 +Loading 100 elements from d +num instances in d: 1000 +Loading from hoff /home/parth/Desktop/SEM6/RnD/spear/examples/SMS_SPAM/data_pipeline/sms_pickle_V.pkl +batch size 100 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 100 +len_r 100 +-------------------------- +Working with l +-------------------------- +Working with L +-------------------------- +Setting value of d to 0 for test data +test_w len: 64 +test_w len: 64 +Number of features: 1024 +Number of classes: 2 +Print num of rules to train: 16 +Print num of rules: 16 + + + +Found prev best metric for run type f_d: 0.644 +best metrics dict: {'f1_score_1': 0.711111111111111, 'precision_1': 0.6530612244897959, 'recall_1': 0.7804878048780488, 'support_1': 123, 'f1_score': array([0.66666667, 0.71111111, 0.51162791, 0.64242424, 0.81203008, + 0.58415842]), 'precision': array([0.71428571, 0.65306122, 0.53398058, 0.96363636, 0.91525424, + 0.45736434]), 'recall': array([0.625 , 0.7804878 , 0.49107143, 0.48181818, 0.72972973, + 0.80821918]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6546697363680531, 'avg_precision': 0.7062637438849254, 'avg_recall': 0.6527210538465968, 'accuracy': 0.644, 'epoch': 2.0, 'f_d_global_step': 84} +Found prev best metric for run type f_d_U: 1.000 +best metrics dict: {'f1_score_1': 1.0, 'precision_1': 1.0, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([1., 1.]), 'precision': array([1., 1.]), 'recall': array([1., 1.]), 'support': array([11, 89]), 'avg_f1_score': 1.0, 'avg_precision': 1.0, 'avg_recall': 1.0, 'accuracy': 1.0, 'epoch': 2.0, 'f_d_global_step': 248} +[ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" +] +Run mode is implication +begin Implication loss training +num_instances: 3984 +batch_size: 32 +total_batch: 124 +remaining: 16 +total_batch: 124 +Optimization started for f_d_U with implication loss! +Batch size: 32! +Batches per epoch : 124! +Number of epochs: 4! + +========== epoch : 0 ============ + +cost: 0.28364652827862774 + +patience: 0 + + +metrics_dict: {'f1_score_1': 1.0, 'precision_1': 1.0, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([1.000, 1.000]), 'precision': array([1.000, 1.000]), 'recall': array([1.000, 1.000]), 'support': array([11, 89]), 'avg_f1_score': 1.0, 'avg_precision': 1.0, 'avg_recall': 1.0, 'accuracy': 1.0, 'epoch': 1.0, 'f_d_global_step': 124} + +Reporting f_d metrics to tensorboard +Not saving metrics dict. Best metric value is 1.0 Current is: 1.0 + +Saved MRU checkpoint to path: ./checkpoint/hls-model-124 + +Saved new best checkpoint to path: ./checkpoint/f_d_U/best.ckpt-124 + + +========== epoch : 1 ============ + +cost: 0.13752945927121954 + +patience: 1 + + +metrics_dict: {'f1_score_1': 1.0, 'precision_1': 1.0, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([1.000, 1.000]), 'precision': array([1.000, 1.000]), 'recall': array([1.000, 1.000]), 'support': array([11, 89]), 'avg_f1_score': 1.0, 'avg_precision': 1.0, 'avg_recall': 1.0, 'accuracy': 1.0, 'epoch': 2.0, 'f_d_global_step': 248} + +Reporting f_d metrics to tensorboard +Not saving metrics dict. Best metric value is 1.0 Current is: 1.0 + +Saved MRU checkpoint to path: ./checkpoint/hls-model-249 + +No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: ./checkpoint/f_d_U/best.ckpt-124 + + +========== epoch : 2 ============ + +cost: 0.10789846440386629 + +patience: 2 + + +metrics_dict: {'f1_score_1': 1.0, 'precision_1': 1.0, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([1.000, 1.000]), 'precision': array([1.000, 1.000]), 'recall': array([1.000, 1.000]), 'support': array([11, 89]), 'avg_f1_score': 1.0, 'avg_precision': 1.0, 'avg_recall': 1.0, 'accuracy': 1.0, 'epoch': 3.0, 'f_d_global_step': 372} + +Reporting f_d metrics to tensorboard +Not saving metrics dict. Best metric value is 1.0 Current is: 1.0 + +Saved MRU checkpoint to path: ./checkpoint/hls-model-374 + +No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: ./checkpoint/f_d_U/best.ckpt-124 + + +========== epoch : 3 ============ + +cost: 0.07886604856203998 + +patience: 3 + + +metrics_dict: {'f1_score_1': 1.0, 'precision_1': 1.0, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([1.000, 1.000]), 'precision': array([1.000, 1.000]), 'recall': array([1.000, 1.000]), 'support': array([11, 89]), 'avg_f1_score': 1.0, 'avg_precision': 1.0, 'avg_recall': 1.0, 'accuracy': 1.0, 'epoch': 4.0, 'f_d_global_step': 496} + +Reporting f_d metrics to tensorboard +Not saving metrics dict. Best metric value is 1.0 Current is: 1.0 + +Saved MRU checkpoint to path: ./checkpoint/hls-model-499 + +No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: ./checkpoint/f_d_U/best.ckpt-124 + +Optimization Finished for f_d_U! + Implication loss training end diff --git a/spear/Implyloss/logs/learn2reweight_0.1_0.1_1.txt b/spear/Implyloss/logs/learn2reweight_0.1_0.1_1.txt new file mode 100644 index 0000000..c73b80d --- /dev/null +++ b/spear/Implyloss/logs/learn2reweight_0.1_0.1_1.txt @@ -0,0 +1,210 @@ +Loading from hoff /home/parth/Desktop/SEM6/RnD/spear/examples/SMS_SPAM/data_pipeline/sms_pickle_L.pkl +batch size 100 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 100 +len_r 100 +-------------------------- +Working with l +-------------------------- +Working with L +-------------------------- +Loading from hoff /home/parth/Desktop/SEM6/RnD/spear/examples/SMS_SPAM/data_pipeline/sms_pickle_U.pkl +batch size 5174 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 5174 +len_r 5174 +-------------------------- +Working with l +-------------------------- +Working with L +L is empty +-------------------------- +No valid label found for rule: 2 +No valid label found for rule: 4 +No valid label found for rule: 6 +Rule classes: [0, 0, 2, 1, 2, 1, 2, 0, 0, 0, 0, 1, 1, 1, 1, 0] +length of covered U: 2984 +Size of d before oversampling: 100 +Size of U (covered) : 2984 +Size of d after oversampling: 1000 +Size of d_U after combining: 3984 +Loading 100 elements from d +num instances in d: 1000 +Loading from hoff /home/parth/Desktop/SEM6/RnD/spear/examples/SMS_SPAM/data_pipeline/sms_pickle_V.pkl +batch size 100 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 100 +len_r 100 +-------------------------- +Working with l +-------------------------- +Working with L +-------------------------- +Setting value of d to 0 for test data +test_w len: 64 +test_w len: 64 +Number of features: 1024 +Number of classes: 2 +Print num of rules to train: 16 +Print num of rules: 16 + + + +Found prev best metric for run type f_d: 0.644 +best metrics dict: {'f1_score_1': 0.711111111111111, 'precision_1': 0.6530612244897959, 'recall_1': 0.7804878048780488, 'support_1': 123, 'f1_score': array([0.66666667, 0.71111111, 0.51162791, 0.64242424, 0.81203008, + 0.58415842]), 'precision': array([0.71428571, 0.65306122, 0.53398058, 0.96363636, 0.91525424, + 0.45736434]), 'recall': array([0.625 , 0.7804878 , 0.49107143, 0.48181818, 0.72972973, + 0.80821918]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6546697363680531, 'avg_precision': 0.7062637438849254, 'avg_recall': 0.6527210538465968, 'accuracy': 0.644, 'epoch': 2.0, 'f_d_global_step': 84} +Found prev best metric for run type f_d_U: 1.000 +best metrics dict: {'f1_score_1': 1.0, 'precision_1': 1.0, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([1., 1.]), 'precision': array([1., 1.]), 'recall': array([1., 1.]), 'support': array([11, 89]), 'avg_f1_score': 1.0, 'avg_precision': 1.0, 'avg_recall': 1.0, 'accuracy': 1.0, 'epoch': 2.0, 'f_d_global_step': 248} +[ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" +] +Run mode is learn2reweight +learn2reweight +num_instances: 3984 +batch_size: 32 +total_batch: 124 +remaining: 16 +total_batch: 124 +Optimization started for f_d_U with learn2reweight loss! +Batch size: 32! +Batches per epoch : 124! +Number of epochs: 4! + +========== epoch : 0 ============ + +cost: 0.4143982459941217 + +patience: 0 + + +metrics_dict: {'f1_score_1': 0.978021978021978, 'precision_1': 0.956989247311828, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([0.778, 0.978]), 'precision': array([1.000, 0.957]), 'recall': array([0.636, 1.000]), 'support': array([11, 89]), 'avg_f1_score': 0.8778998778998779, 'avg_precision': 0.978494623655914, 'avg_recall': 0.8181818181818181, 'accuracy': 0.96, 'epoch': 1.0, 'f_d_global_step': 124} + +Reporting f_d metrics to tensorboard +Not saving metrics dict. Best metric value is 1.0 Current is: 0.96 + +Saved MRU checkpoint to path: ./checkpoint/hls-model-124 + +Saved new best checkpoint to path: ./checkpoint/f_d_U/best.ckpt-124 + + +========== epoch : 1 ============ + +cost: 0.2641634323273696 + +patience: 1 + + +metrics_dict: {'f1_score_1': 0.9888888888888888, 'precision_1': 0.978021978021978, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([0.900, 0.989]), 'precision': array([1.000, 0.978]), 'recall': array([0.818, 1.000]), 'support': array([11, 89]), 'avg_f1_score': 0.9444444444444444, 'avg_precision': 0.989010989010989, 'avg_recall': 0.9090909090909092, 'accuracy': 0.98, 'epoch': 2.0, 'f_d_global_step': 248} + +Reporting f_d metrics to tensorboard +Not saving metrics dict. Best metric value is 1.0 Current is: 0.98 + +Saved MRU checkpoint to path: ./checkpoint/hls-model-249 + +Saved new best checkpoint to path: ./checkpoint/f_d_U/best.ckpt-248 + + +========== epoch : 2 ============ + +cost: 0.3129617791442621 + +patience: 2 + + +metrics_dict: {'f1_score_1': 1.0, 'precision_1': 1.0, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([1.000, 1.000]), 'precision': array([1.000, 1.000]), 'recall': array([1.000, 1.000]), 'support': array([11, 89]), 'avg_f1_score': 1.0, 'avg_precision': 1.0, 'avg_recall': 1.0, 'accuracy': 1.0, 'epoch': 3.0, 'f_d_global_step': 372} + +Reporting f_d metrics to tensorboard +Not saving metrics dict. Best metric value is 1.0 Current is: 1.0 + +Saved MRU checkpoint to path: ./checkpoint/hls-model-374 + +Saved new best checkpoint to path: ./checkpoint/f_d_U/best.ckpt-372 + + +========== epoch : 3 ============ + +cost: 0.2627490848272799 + +patience: 3 + + +metrics_dict: {'f1_score_1': 0.9888888888888888, 'precision_1': 0.978021978021978, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([0.900, 0.989]), 'precision': array([1.000, 0.978]), 'recall': array([0.818, 1.000]), 'support': array([11, 89]), 'avg_f1_score': 0.9444444444444444, 'avg_precision': 0.989010989010989, 'avg_recall': 0.9090909090909092, 'accuracy': 0.98, 'epoch': 4.0, 'f_d_global_step': 496} + +Reporting f_d metrics to tensorboard +Not saving metrics dict. Best metric value is 1.0 Current is: 0.98 + +Saved MRU checkpoint to path: ./checkpoint/hls-model-499 + +No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: ./checkpoint/f_d_U/best.ckpt-372 + +Optimization Finished for f_d_U! diff --git a/spear/Implyloss/logs/my_TREC/f_d_0.1_0.1_1.txt b/spear/Implyloss/logs/my_TREC/f_d_0.1_0.1_1.txt deleted file mode 100644 index 5faed82..0000000 --- a/spear/Implyloss/logs/my_TREC/f_d_0.1_0.1_1.txt +++ /dev/null @@ -1,267 +0,0 @@ -Hello 2 1 -2021-06-05 19:47:03.826545: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory -2021-06-05 19:47:03.826628: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/compat/v2_compat.py:96: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version. -Instructions for updating: -non-resource variables are not supported in the long term -Started Reading Flags - -checkpoint_load_mode = mru -d_pickle_name = d_processed.p -data_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC -dropout_keep_prob = 0.8 -early_stopping_p = 20 -f_d_adam_lr = 0.0003 -f_d_batch_size = 16 -f_d_class_sampling_str = 10,10,10,10,10,10 -f_d_epochs = 7 -f_d_metrics_pickle_name = metrics_train_f_on_d.p -f_d_primary_metric = accuracy -f_d_U_adam_lr = 0.0003 -f_d_U_batch_size = 32 -f_d_U_epochs = 7 -f_d_U_metrics_pickle_name = metrics_train_f_on_d_U.p -f_infer_out_pickle_name = infer_f.p -f_layers_str = 512,512 -gamma = 0.1 -lamda = 0.1 -min_rule_coverage = 0 -network_dropout = True -num_checkpoints = 1 -num_classes = 0 -num_load_d = 0 -num_load_U = 0 -num_load_validation = 0 -output_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_1 -rule_classes_str = -run_mode = f_d -shuffle_batches = True -test_w_batch_size = 1000 -U_pickle_name = U_processed.p -use_joint_f_w = False -validation_pickle_name = validation_processed.p -w_infer_out_pickle_name = infer_w.p -w_layers_str = 512,512 - -Hi1 -Ended Reading Flags -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_1/d_processed.p -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/U_processed.p -Rule classes: [2, 1, 1, 4, 3, 2, 1, 3, 5, 4, 3, 2, 4, 1, 2, 5, 4, 1, 2, 4, 3, 1, 3, 2, 1, 1, 4, 4, 5, 1, 3, 5, 2, 1, 5, 1, 5, 5, 0, 5, 5, 1, 4, 2, 3, 2, 1, 3, 5, 1, 1, 3, 2, 1, 1, 5, 2, 3, 2, 5, 3, 3, 4, 5, 5, 4, 2, 0] -length of covered U: 4637 -Size of d before oversampling: 68 -Size of U (covered) : 4637 -Size of d after oversampling: 680 -Size of d_U after combining: 5317 -Loading 68 elements from d -num instances in d: 680 -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/validation_processed.p -Setting value of d to 0 for test data -test_w len: 476 -test_w len: 476 -Number of features: 1024 -Number of classes: 6 -Print num of rules to train: 68 -Print num of rules: 68 - - - -Found prev best metric for run type f_d: 0.616 -best metrics dict: {'f1_score_1': 0.6373626373626374, 'precision_1': 0.58, 'recall_1': 0.7073170731707317, 'support_1': 123, 'f1_score': array([0.46153846, 0.63736264, 0.48908297, 0.7106599 , 0.62903226, - 0.64634146]), 'precision': array([0.6 , 0.58 , 0.47863248, 0.8045977 , 0.78 , - 0.58241758]), 'recall': array([0.375 , 0.70731707, 0.5 , 0.63636364, 0.52702703, - 0.7260274 ]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.5956696147149535, 'avg_precision': 0.6376079603665811, 'avg_recall': 0.5786225223036116, 'accuracy': 0.616, 'epoch': 3.0, 'f_d_global_step': 126} -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_1/metrics_train_f_on_d_U.p' -Did not find prev best metric for run type f_d_U. Setting to zero. -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/legacy_tf_layers/core.py:171: UserWarning: `tf.layers.dense` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dense` instead. - warnings.warn('`tf.layers.dense` is deprecated and ' -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer_v1.py:1719: UserWarning: `layer.apply` is deprecated and will be removed in a future version. Please use `layer.__call__` method instead. - warnings.warn('`layer.apply` is deprecated and ' -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version. -Instructions for updating: -Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version. -Instructions for updating: - -Future major versions of TensorFlow will allow gradients to flow -into the labels input on backprop by default. - -See `tf.nn.softmax_cross_entropy_with_logits_v2`. - -WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/spear/spear/Implyloss/my_model.py:615: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. -Instructions for updating: -Use `tf.cast` instead. -[ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" -] -2021-06-05 19:47:08.818404: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA -To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. -2021-06-05 19:47:08.818929: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set -2021-06-05 19:47:08.819120: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory -2021-06-05 19:47:08.819151: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed call to cuInit: UNKNOWN ERROR (303) -2021-06-05 19:47:08.819174: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (parth-G3-3590): /proc/driver/nvidia/version does not exist -2021-06-05 19:47:09.037633: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:196] None of the MLIR optimization passes are enabled (registered 0 passes) -2021-06-05 19:47:09.054024: I tensorflow/core/platform/profile_utils/cpu_utils.cc:112] CPU Frequency: 2599990000 Hz -Restoring checkpoint from path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_1/checkpoints/hls-model-2100 -Run mode is f_d -training f on d -num_instances: 680 -batch_size: 16 -total_batch: 42 -remaining: 8 -total_batch: 42 -Optimization started for f_d! -Batch size: 16! -Batches per epoch : 42! -Number of epochs: 7! - -========== epoch : 0 ============ - -cost: 2.525409235247589e-05 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.6323024054982819, 'precision_1': 0.5476190476190477, 'recall_1': 0.7479674796747967, 'support_1': 123, 'f1_score': array([0.571, 0.632, 0.450, 0.683, 0.617, 0.658]), 'precision': array([0.667, 0.548, 0.462, 0.764, 0.804, 0.612]), 'recall': array([0.500, 0.748, 0.438, 0.618, 0.500, 0.712]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6019306435875985, 'avg_precision': 0.6427845568364409, 'avg_recall': 0.5859963441633171, 'accuracy': 0.604, 'epoch': 51.0, 'f_d_global_step': 2142} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.616 Current is: 0.604 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_1/checkpoints/hls-model-2142 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_1/checkpoints/f_d/best.ckpt-126 - - -========== epoch : 1 ============ - -cost: 2.11414836442037e-05 - -patience: 1 - - -metrics_dict: {'f1_score_1': 0.6219081272084805, 'precision_1': 0.55, 'recall_1': 0.7154471544715447, 'support_1': 123, 'f1_score': array([0.615, 0.622, 0.450, 0.667, 0.634, 0.658]), 'precision': array([0.800, 0.550, 0.437, 0.765, 0.796, 0.622]), 'recall': array([0.500, 0.715, 0.464, 0.591, 0.527, 0.699]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6077311195114433, 'avg_precision': 0.6615917098546736, 'avg_recall': 0.5827165206132797, 'accuracy': 0.598, 'epoch': 52.0, 'f_d_global_step': 2184} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.616 Current is: 0.598 - -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/training/saver.py:968: remove_checkpoint (from tensorflow.python.training.checkpoint_management) is deprecated and will be removed in a future version. -Instructions for updating: -Use standard file APIs to delete files with this prefix. -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_1/checkpoints/hls-model-2184 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_1/checkpoints/f_d/best.ckpt-126 - - -========== epoch : 2 ============ - -cost: 1.985432492715301e-05 - -patience: 2 - - -metrics_dict: {'f1_score_1': 0.6142857142857143, 'precision_1': 0.5477707006369427, 'recall_1': 0.6991869918699187, 'support_1': 123, 'f1_score': array([0.615, 0.614, 0.441, 0.660, 0.624, 0.645]), 'precision': array([0.800, 0.548, 0.419, 0.762, 0.765, 0.620]), 'recall': array([0.500, 0.699, 0.464, 0.582, 0.527, 0.671]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.5998131587183796, 'avg_precision': 0.6523315580268809, 'avg_recall': 0.5739251319521952, 'accuracy': 0.588, 'epoch': 53.0, 'f_d_global_step': 2226} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.616 Current is: 0.588 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_1/checkpoints/hls-model-2226 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_1/checkpoints/f_d/best.ckpt-126 - - -========== epoch : 3 ============ - -cost: 2.364970456862162e-05 - -patience: 3 - - -metrics_dict: {'f1_score_1': 0.6120996441281139, 'precision_1': 0.5443037974683544, 'recall_1': 0.6991869918699187, 'support_1': 123, 'f1_score': array([0.615, 0.612, 0.443, 0.690, 0.634, 0.667]), 'precision': array([0.800, 0.544, 0.432, 0.767, 0.796, 0.637]), 'recall': array([0.500, 0.699, 0.455, 0.627, 0.527, 0.699]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6102959214187292, 'avg_precision': 0.6627653702187448, 'avg_recall': 0.5845790043355196, 'accuracy': 0.6, 'epoch': 54.0, 'f_d_global_step': 2268} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.616 Current is: 0.6 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_1/checkpoints/hls-model-2268 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_1/checkpoints/f_d/best.ckpt-126 - - -========== epoch : 4 ============ - -cost: 1.8784171007133575e-05 - -patience: 4 - - -metrics_dict: {'f1_score_1': 0.6142857142857143, 'precision_1': 0.5477707006369427, 'recall_1': 0.6991869918699187, 'support_1': 123, 'f1_score': array([0.615, 0.614, 0.440, 0.690, 0.634, 0.658]), 'precision': array([0.800, 0.548, 0.425, 0.767, 0.796, 0.633]), 'recall': array([0.500, 0.699, 0.455, 0.627, 0.527, 0.685]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6085610967316072, 'avg_precision': 0.6613778545092686, 'avg_recall': 0.5822958993126885, 'accuracy': 0.598, 'epoch': 55.0, 'f_d_global_step': 2310} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.616 Current is: 0.598 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_1/checkpoints/hls-model-2310 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_1/checkpoints/f_d/best.ckpt-126 - - -========== epoch : 5 ============ - -cost: 1.8635077042615323e-05 - -patience: 5 - - -metrics_dict: {'f1_score_1': 0.6192170818505338, 'precision_1': 0.5506329113924051, 'recall_1': 0.7073170731707317, 'support_1': 123, 'f1_score': array([0.615, 0.619, 0.447, 0.690, 0.645, 0.662]), 'precision': array([0.800, 0.551, 0.440, 0.767, 0.800, 0.630]), 'recall': array([0.500, 0.707, 0.455, 0.627, 0.541, 0.699]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.613244845158004, 'avg_precision': 0.6644307300170825, 'avg_recall': 0.5881862701379073, 'accuracy': 0.604, 'epoch': 56.0, 'f_d_global_step': 2352} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.616 Current is: 0.604 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_1/checkpoints/hls-model-2352 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_1/checkpoints/f_d/best.ckpt-126 - - -========== epoch : 6 ============ - -cost: 1.9291962557655915e-05 - -patience: 6 - - -metrics_dict: {'f1_score_1': 0.6115107913669064, 'precision_1': 0.5483870967741935, 'recall_1': 0.6910569105691057, 'support_1': 123, 'f1_score': array([0.615, 0.612, 0.442, 0.690, 0.634, 0.658]), 'precision': array([0.800, 0.548, 0.429, 0.767, 0.796, 0.622]), 'recall': array([0.500, 0.691, 0.455, 0.627, 0.527, 0.699]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6084441176504017, 'avg_precision': 0.6602491298119038, 'avg_recall': 0.583223990785384, 'accuracy': 0.598, 'epoch': 57.0, 'f_d_global_step': 2394} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.616 Current is: 0.598 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_1/checkpoints/hls-model-2394 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_1/checkpoints/f_d/best.ckpt-126 - -Optimization Finished for f_d! diff --git a/spear/Implyloss/logs/my_TREC/f_d_0.1_0.1_2.txt b/spear/Implyloss/logs/my_TREC/f_d_0.1_0.1_2.txt deleted file mode 100644 index 0f8151e..0000000 --- a/spear/Implyloss/logs/my_TREC/f_d_0.1_0.1_2.txt +++ /dev/null @@ -1,267 +0,0 @@ -Hello 2 1 -2021-06-05 19:47:03.826620: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory -2021-06-05 19:47:03.826719: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/compat/v2_compat.py:96: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version. -Instructions for updating: -non-resource variables are not supported in the long term -Started Reading Flags - -checkpoint_load_mode = mru -d_pickle_name = d_processed.p -data_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC -dropout_keep_prob = 0.8 -early_stopping_p = 20 -f_d_adam_lr = 0.0003 -f_d_batch_size = 16 -f_d_class_sampling_str = 10,10,10,10,10,10 -f_d_epochs = 7 -f_d_metrics_pickle_name = metrics_train_f_on_d.p -f_d_primary_metric = accuracy -f_d_U_adam_lr = 0.0003 -f_d_U_batch_size = 32 -f_d_U_epochs = 7 -f_d_U_metrics_pickle_name = metrics_train_f_on_d_U.p -f_infer_out_pickle_name = infer_f.p -f_layers_str = 512,512 -gamma = 0.1 -lamda = 0.1 -min_rule_coverage = 0 -network_dropout = True -num_checkpoints = 1 -num_classes = 0 -num_load_d = 0 -num_load_U = 0 -num_load_validation = 0 -output_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_2 -rule_classes_str = -run_mode = f_d -shuffle_batches = True -test_w_batch_size = 1000 -U_pickle_name = U_processed.p -use_joint_f_w = False -validation_pickle_name = validation_processed.p -w_infer_out_pickle_name = infer_w.p -w_layers_str = 512,512 - -Hi1 -Ended Reading Flags -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_2/d_processed.p -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/U_processed.p -Rule classes: [2, 1, 1, 4, 3, 2, 1, 3, 5, 4, 3, 2, 4, 1, 2, 5, 4, 1, 2, 4, 3, 1, 3, 2, 1, 1, 4, 4, 5, 1, 3, 5, 2, 1, 5, 1, 5, 5, 0, 5, 5, 1, 4, 2, 3, 2, 1, 3, 5, 1, 1, 3, 2, 1, 1, 5, 2, 3, 2, 5, 3, 3, 4, 5, 5, 4, 2, 0] -length of covered U: 4637 -Size of d before oversampling: 68 -Size of U (covered) : 4637 -Size of d after oversampling: 680 -Size of d_U after combining: 5317 -Loading 68 elements from d -num instances in d: 680 -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/validation_processed.p -Setting value of d to 0 for test data -test_w len: 476 -test_w len: 476 -Number of features: 1024 -Number of classes: 6 -Print num of rules to train: 68 -Print num of rules: 68 - - - -Found prev best metric for run type f_d: 0.632 -best metrics dict: {'f1_score_1': 0.6408450704225351, 'precision_1': 0.5652173913043478, 'recall_1': 0.7398373983739838, 'support_1': 123, 'f1_score': array([0.5 , 0.64084507, 0.47115385, 0.74038462, 0.66666667, - 0.66666667]), 'precision': array([0.75 , 0.56521739, 0.51041667, 0.78571429, 0.80769231, - 0.60674157]), 'recall': array([0.375 , 0.7398374 , 0.4375 , 0.7 , 0.56756757, - 0.73972603]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6142861442157216, 'avg_precision': 0.6709637040685527, 'avg_recall': 0.5932718322231352, 'accuracy': 0.632, 'epoch': 5.0, 'f_d_global_step': 210} -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_2/metrics_train_f_on_d_U.p' -Did not find prev best metric for run type f_d_U. Setting to zero. -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/legacy_tf_layers/core.py:171: UserWarning: `tf.layers.dense` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dense` instead. - warnings.warn('`tf.layers.dense` is deprecated and ' -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer_v1.py:1719: UserWarning: `layer.apply` is deprecated and will be removed in a future version. Please use `layer.__call__` method instead. - warnings.warn('`layer.apply` is deprecated and ' -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version. -Instructions for updating: -Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version. -Instructions for updating: - -Future major versions of TensorFlow will allow gradients to flow -into the labels input on backprop by default. - -See `tf.nn.softmax_cross_entropy_with_logits_v2`. - -WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/spear/spear/Implyloss/my_model.py:615: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. -Instructions for updating: -Use `tf.cast` instead. -[ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" -] -2021-06-05 19:47:08.825368: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA -To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. -2021-06-05 19:47:08.825980: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set -2021-06-05 19:47:08.826259: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory -2021-06-05 19:47:08.826301: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed call to cuInit: UNKNOWN ERROR (303) -2021-06-05 19:47:08.826342: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (parth-G3-3590): /proc/driver/nvidia/version does not exist -2021-06-05 19:47:09.055688: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:196] None of the MLIR optimization passes are enabled (registered 0 passes) -2021-06-05 19:47:09.067606: I tensorflow/core/platform/profile_utils/cpu_utils.cc:112] CPU Frequency: 2599990000 Hz -Restoring checkpoint from path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_2/checkpoints/hls-model-2184 -Run mode is f_d -training f on d -num_instances: 680 -batch_size: 16 -total_batch: 42 -remaining: 8 -total_batch: 42 -Optimization started for f_d! -Batch size: 16! -Batches per epoch : 42! -Number of epochs: 7! - -========== epoch : 0 ============ - -cost: 2.6549687758926578e-05 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.6258992805755396, 'precision_1': 0.5612903225806452, 'recall_1': 0.7073170731707317, 'support_1': 123, 'f1_score': array([0.615, 0.626, 0.451, 0.696, 0.661, 0.658]), 'precision': array([0.800, 0.561, 0.447, 0.755, 0.792, 0.633]), 'recall': array([0.500, 0.707, 0.455, 0.645, 0.568, 0.685]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.618000303439629, 'avg_precision': 0.6648903525271983, 'avg_recall': 0.5934379726498838, 'accuracy': 0.61, 'epoch': 53.0, 'f_d_global_step': 2226} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.632 Current is: 0.61 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_2/checkpoints/hls-model-2226 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_2/checkpoints/f_d/best.ckpt-210 - - -========== epoch : 1 ============ - -cost: 2.372948629921926e-05 - -patience: 1 - - -metrics_dict: {'f1_score_1': 0.6277372262773723, 'precision_1': 0.5695364238410596, 'recall_1': 0.6991869918699187, 'support_1': 123, 'f1_score': array([0.615, 0.628, 0.459, 0.690, 0.661, 0.658]), 'precision': array([0.800, 0.570, 0.445, 0.753, 0.792, 0.633]), 'recall': array([0.500, 0.699, 0.473, 0.636, 0.568, 0.685]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6184939221044984, 'avg_precision': 0.6654944949563862, 'avg_recall': 0.5935439980607872, 'accuracy': 0.61, 'epoch': 54.0, 'f_d_global_step': 2268} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.632 Current is: 0.61 - -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/training/saver.py:968: remove_checkpoint (from tensorflow.python.training.checkpoint_management) is deprecated and will be removed in a future version. -Instructions for updating: -Use standard file APIs to delete files with this prefix. -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_2/checkpoints/hls-model-2268 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_2/checkpoints/f_d/best.ckpt-210 - - -========== epoch : 2 ============ - -cost: 3.0148377607561305e-05 - -patience: 2 - - -metrics_dict: {'f1_score_1': 0.6300366300366301, 'precision_1': 0.5733333333333334, 'recall_1': 0.6991869918699187, 'support_1': 123, 'f1_score': array([0.615, 0.630, 0.464, 0.690, 0.651, 0.658]), 'precision': array([0.800, 0.573, 0.446, 0.753, 0.788, 0.633]), 'recall': array([0.500, 0.699, 0.482, 0.636, 0.554, 0.685]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.617880686462586, 'avg_precision': 0.6656125713297473, 'avg_recall': 0.5927798410466302, 'accuracy': 0.61, 'epoch': 55.0, 'f_d_global_step': 2310} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.632 Current is: 0.61 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_2/checkpoints/hls-model-2310 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_2/checkpoints/f_d/best.ckpt-210 - - -========== epoch : 3 ============ - -cost: 2.0901473016281317e-05 - -patience: 3 - - -metrics_dict: {'f1_score_1': 0.6300366300366301, 'precision_1': 0.5733333333333334, 'recall_1': 0.6991869918699187, 'support_1': 123, 'f1_score': array([0.615, 0.630, 0.464, 0.690, 0.651, 0.658]), 'precision': array([0.800, 0.573, 0.446, 0.753, 0.788, 0.633]), 'recall': array([0.500, 0.699, 0.482, 0.636, 0.554, 0.685]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.617880686462586, 'avg_precision': 0.6656125713297473, 'avg_recall': 0.5927798410466302, 'accuracy': 0.61, 'epoch': 56.0, 'f_d_global_step': 2352} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.632 Current is: 0.61 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_2/checkpoints/hls-model-2352 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_2/checkpoints/f_d/best.ckpt-210 - - -========== epoch : 4 ============ - -cost: 2.0091833968243528e-05 - -patience: 4 - - -metrics_dict: {'f1_score_1': 0.6327272727272726, 'precision_1': 0.5723684210526315, 'recall_1': 0.7073170731707317, 'support_1': 123, 'f1_score': array([0.615, 0.633, 0.459, 0.690, 0.651, 0.658]), 'precision': array([0.800, 0.572, 0.445, 0.753, 0.788, 0.633]), 'recall': array([0.500, 0.707, 0.473, 0.636, 0.554, 0.685]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6175549845059827, 'avg_precision': 0.6653012792037915, 'avg_recall': 0.5926467593586705, 'accuracy': 0.61, 'epoch': 57.0, 'f_d_global_step': 2394} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.632 Current is: 0.61 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_2/checkpoints/hls-model-2394 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_2/checkpoints/f_d/best.ckpt-210 - - -========== epoch : 5 ============ - -cost: 2.173373959955088e-05 - -patience: 5 - - -metrics_dict: {'f1_score_1': 0.635036496350365, 'precision_1': 0.5761589403973509, 'recall_1': 0.7073170731707317, 'support_1': 123, 'f1_score': array([0.615, 0.635, 0.466, 0.690, 0.651, 0.658]), 'precision': array([0.800, 0.576, 0.450, 0.753, 0.788, 0.633]), 'recall': array([0.500, 0.707, 0.482, 0.636, 0.554, 0.685]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6190469855273066, 'avg_precision': 0.6667033405511605, 'avg_recall': 0.5941348545967657, 'accuracy': 0.612, 'epoch': 58.0, 'f_d_global_step': 2436} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.632 Current is: 0.612 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_2/checkpoints/hls-model-2436 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_2/checkpoints/f_d/best.ckpt-210 - - -========== epoch : 6 ============ - -cost: 1.6792104913422786e-05 - -patience: 6 - - -metrics_dict: {'f1_score_1': 0.6300366300366301, 'precision_1': 0.5733333333333334, 'recall_1': 0.6991869918699187, 'support_1': 123, 'f1_score': array([0.615, 0.630, 0.464, 0.690, 0.651, 0.658]), 'precision': array([0.800, 0.573, 0.446, 0.753, 0.788, 0.633]), 'recall': array([0.500, 0.699, 0.482, 0.636, 0.554, 0.685]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.617880686462586, 'avg_precision': 0.6656125713297473, 'avg_recall': 0.5927798410466302, 'accuracy': 0.61, 'epoch': 59.0, 'f_d_global_step': 2478} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.632 Current is: 0.61 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_2/checkpoints/hls-model-2478 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_2/checkpoints/f_d/best.ckpt-210 - -Optimization Finished for f_d! diff --git a/spear/Implyloss/logs/my_TREC/f_d_0.1_0.1_3.txt b/spear/Implyloss/logs/my_TREC/f_d_0.1_0.1_3.txt deleted file mode 100644 index 2cc7f7a..0000000 --- a/spear/Implyloss/logs/my_TREC/f_d_0.1_0.1_3.txt +++ /dev/null @@ -1,267 +0,0 @@ -Hello 2 1 -2021-06-05 19:47:03.826556: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory -2021-06-05 19:47:03.826662: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/compat/v2_compat.py:96: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version. -Instructions for updating: -non-resource variables are not supported in the long term -Started Reading Flags - -checkpoint_load_mode = mru -d_pickle_name = d_processed.p -data_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC -dropout_keep_prob = 0.8 -early_stopping_p = 20 -f_d_adam_lr = 0.0003 -f_d_batch_size = 16 -f_d_class_sampling_str = 10,10,10,10,10,10 -f_d_epochs = 7 -f_d_metrics_pickle_name = metrics_train_f_on_d.p -f_d_primary_metric = accuracy -f_d_U_adam_lr = 0.0003 -f_d_U_batch_size = 32 -f_d_U_epochs = 7 -f_d_U_metrics_pickle_name = metrics_train_f_on_d_U.p -f_infer_out_pickle_name = infer_f.p -f_layers_str = 512,512 -gamma = 0.1 -lamda = 0.1 -min_rule_coverage = 0 -network_dropout = True -num_checkpoints = 1 -num_classes = 0 -num_load_d = 0 -num_load_U = 0 -num_load_validation = 0 -output_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_3 -rule_classes_str = -run_mode = f_d -shuffle_batches = True -test_w_batch_size = 1000 -U_pickle_name = U_processed.p -use_joint_f_w = False -validation_pickle_name = validation_processed.p -w_infer_out_pickle_name = infer_w.p -w_layers_str = 512,512 - -Hi1 -Ended Reading Flags -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_3/d_processed.p -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/U_processed.p -Rule classes: [2, 1, 1, 4, 3, 2, 1, 3, 5, 4, 3, 2, 4, 1, 2, 5, 4, 1, 2, 4, 3, 1, 3, 2, 1, 1, 4, 4, 5, 1, 3, 5, 2, 1, 5, 1, 5, 5, 0, 5, 5, 1, 4, 2, 3, 2, 1, 3, 5, 1, 1, 3, 2, 1, 1, 5, 2, 3, 2, 5, 3, 3, 4, 5, 5, 4, 2, 0] -length of covered U: 4637 -Size of d before oversampling: 68 -Size of U (covered) : 4637 -Size of d after oversampling: 680 -Size of d_U after combining: 5317 -Loading 68 elements from d -num instances in d: 680 -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/validation_processed.p -Setting value of d to 0 for test data -test_w len: 476 -test_w len: 476 -Number of features: 1024 -Number of classes: 6 -Print num of rules to train: 68 -Print num of rules: 68 - - - -Found prev best metric for run type f_d: 0.634 -best metrics dict: {'f1_score_1': 0.6520146520146521, 'precision_1': 0.5933333333333334, 'recall_1': 0.7235772357723578, 'support_1': 123, 'f1_score': array([0.61538462, 0.65201465, 0.49339207, 0.71921182, 0.68253968, - 0.65822785]), 'precision': array([0.8 , 0.59333333, 0.48695652, 0.78494624, 0.82692308, - 0.61176471]), 'recall': array([0.5 , 0.72357724, 0.5 , 0.66363636, 0.58108108, - 0.71232877]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6367951151974828, 'avg_precision': 0.6839873124061722, 'avg_recall': 0.6134372412688484, 'accuracy': 0.634, 'epoch': 20.0, 'f_d_global_step': 840} -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_3/metrics_train_f_on_d_U.p' -Did not find prev best metric for run type f_d_U. Setting to zero. -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/legacy_tf_layers/core.py:171: UserWarning: `tf.layers.dense` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dense` instead. - warnings.warn('`tf.layers.dense` is deprecated and ' -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer_v1.py:1719: UserWarning: `layer.apply` is deprecated and will be removed in a future version. Please use `layer.__call__` method instead. - warnings.warn('`layer.apply` is deprecated and ' -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version. -Instructions for updating: -Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version. -Instructions for updating: - -Future major versions of TensorFlow will allow gradients to flow -into the labels input on backprop by default. - -See `tf.nn.softmax_cross_entropy_with_logits_v2`. - -WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/spear/spear/Implyloss/my_model.py:615: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. -Instructions for updating: -Use `tf.cast` instead. -[ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" -] -2021-06-05 19:47:08.807378: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA -To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. -2021-06-05 19:47:08.809051: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set -2021-06-05 19:47:08.810203: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory -2021-06-05 19:47:08.810236: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed call to cuInit: UNKNOWN ERROR (303) -2021-06-05 19:47:08.810267: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (parth-G3-3590): /proc/driver/nvidia/version does not exist -2021-06-05 19:47:08.963001: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:196] None of the MLIR optimization passes are enabled (registered 0 passes) -2021-06-05 19:47:08.970167: I tensorflow/core/platform/profile_utils/cpu_utils.cc:112] CPU Frequency: 2599990000 Hz -Restoring checkpoint from path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_3/checkpoints/hls-model-2814 -Run mode is f_d -training f on d -num_instances: 680 -batch_size: 16 -total_batch: 42 -remaining: 8 -total_batch: 42 -Optimization started for f_d! -Batch size: 16! -Batches per epoch : 42! -Number of epochs: 7! - -========== epoch : 0 ============ - -cost: 1.3425980563668068e-05 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.6346863468634686, 'precision_1': 0.581081081081081, 'recall_1': 0.6991869918699187, 'support_1': 123, 'f1_score': array([0.615, 0.635, 0.471, 0.718, 0.667, 0.654]), 'precision': array([0.800, 0.581, 0.469, 0.771, 0.808, 0.605]), 'recall': array([0.500, 0.699, 0.473, 0.673, 0.568, 0.712]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6267305653803458, 'avg_precision': 0.6722140722616644, 'avg_recall': 0.6041708141670554, 'accuracy': 0.622, 'epoch': 68.0, 'f_d_global_step': 2856} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.634 Current is: 0.622 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_3/checkpoints/hls-model-2856 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_3/checkpoints/f_d/best.ckpt-840 - - -========== epoch : 1 ============ - -cost: 9.922954155800176e-06 - -patience: 1 - - -metrics_dict: {'f1_score_1': 0.6327272727272726, 'precision_1': 0.5723684210526315, 'recall_1': 0.7073170731707317, 'support_1': 123, 'f1_score': array([0.615, 0.633, 0.466, 0.718, 0.672, 0.658]), 'precision': array([0.800, 0.572, 0.468, 0.771, 0.824, 0.612]), 'recall': array([0.500, 0.707, 0.464, 0.673, 0.568, 0.712]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6271923418598976, 'avg_precision': 0.6744940567502488, 'avg_recall': 0.6040377324790956, 'accuracy': 0.622, 'epoch': 69.0, 'f_d_global_step': 2898} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.634 Current is: 0.622 - -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/training/saver.py:968: remove_checkpoint (from tensorflow.python.training.checkpoint_management) is deprecated and will be removed in a future version. -Instructions for updating: -Use standard file APIs to delete files with this prefix. -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_3/checkpoints/hls-model-2898 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_3/checkpoints/f_d/best.ckpt-840 - - -========== epoch : 2 ============ - -cost: 9.276216035557028e-06 - -patience: 2 - - -metrics_dict: {'f1_score_1': 0.6402877697841727, 'precision_1': 0.5741935483870968, 'recall_1': 0.7235772357723578, 'support_1': 123, 'f1_score': array([0.615, 0.640, 0.473, 0.718, 0.672, 0.658]), 'precision': array([0.800, 0.574, 0.481, 0.771, 0.824, 0.612]), 'recall': array([0.500, 0.724, 0.464, 0.673, 0.568, 0.712]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6295123513231791, 'avg_precision': 0.676967080141495, 'avg_recall': 0.6067477595793668, 'accuracy': 0.626, 'epoch': 70.0, 'f_d_global_step': 2940} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.634 Current is: 0.626 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_3/checkpoints/hls-model-2940 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_3/checkpoints/f_d/best.ckpt-840 - - -========== epoch : 3 ============ - -cost: 8.77108460816176e-06 - -patience: 3 - - -metrics_dict: {'f1_score_1': 0.6451612903225806, 'precision_1': 0.5769230769230769, 'recall_1': 0.7317073170731707, 'support_1': 123, 'f1_score': array([0.615, 0.645, 0.475, 0.718, 0.672, 0.658]), 'precision': array([0.800, 0.577, 0.486, 0.771, 0.824, 0.612]), 'recall': array([0.500, 0.732, 0.464, 0.673, 0.568, 0.712]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6306843667498446, 'avg_precision': 0.678171972719114, 'avg_recall': 0.6081027731295022, 'accuracy': 0.628, 'epoch': 71.0, 'f_d_global_step': 2982} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.634 Current is: 0.628 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_3/checkpoints/hls-model-2982 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_3/checkpoints/f_d/best.ckpt-840 - - -========== epoch : 4 ============ - -cost: 9.395232820809597e-06 - -patience: 4 - - -metrics_dict: {'f1_score_1': 0.6451612903225806, 'precision_1': 0.5769230769230769, 'recall_1': 0.7317073170731707, 'support_1': 123, 'f1_score': array([0.615, 0.645, 0.477, 0.722, 0.672, 0.662]), 'precision': array([0.800, 0.577, 0.491, 0.779, 0.824, 0.609]), 'recall': array([0.500, 0.732, 0.464, 0.673, 0.568, 0.726]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6323435575671462, 'avg_precision': 0.6798602161905891, 'avg_recall': 0.6103858781523331, 'accuracy': 0.63, 'epoch': 72.0, 'f_d_global_step': 3024} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.634 Current is: 0.63 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_3/checkpoints/hls-model-3024 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_3/checkpoints/f_d/best.ckpt-840 - - -========== epoch : 5 ============ - -cost: 8.487414509956926e-06 - -patience: 5 - - -metrics_dict: {'f1_score_1': 0.6451612903225806, 'precision_1': 0.5769230769230769, 'recall_1': 0.7317073170731707, 'support_1': 123, 'f1_score': array([0.615, 0.645, 0.473, 0.725, 0.672, 0.654]), 'precision': array([0.800, 0.577, 0.481, 0.787, 0.824, 0.605]), 'recall': array([0.500, 0.732, 0.464, 0.673, 0.568, 0.712]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6308085708045609, 'avg_precision': 0.6789698625855256, 'avg_recall': 0.6081027731295022, 'accuracy': 0.628, 'epoch': 73.0, 'f_d_global_step': 3066} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.634 Current is: 0.628 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_3/checkpoints/hls-model-3066 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_3/checkpoints/f_d/best.ckpt-840 - - -========== epoch : 6 ============ - -cost: 9.455396710087544e-06 - -patience: 6 - - -metrics_dict: {'f1_score_1': 0.6327272727272726, 'precision_1': 0.5723684210526315, 'recall_1': 0.7073170731707317, 'support_1': 123, 'f1_score': array([0.615, 0.633, 0.466, 0.725, 0.672, 0.650]), 'precision': array([0.800, 0.572, 0.468, 0.787, 0.824, 0.598]), 'recall': array([0.500, 0.707, 0.464, 0.673, 0.568, 0.712]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.626994966199134, 'avg_precision': 0.6748835822107141, 'avg_recall': 0.6040377324790956, 'accuracy': 0.622, 'epoch': 74.0, 'f_d_global_step': 3108} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.634 Current is: 0.622 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_3/checkpoints/hls-model-3108 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_3/checkpoints/f_d/best.ckpt-840 - -Optimization Finished for f_d! diff --git a/spear/Implyloss/logs/my_TREC/f_d_0.1_0.1_4.txt b/spear/Implyloss/logs/my_TREC/f_d_0.1_0.1_4.txt deleted file mode 100644 index e30fd85..0000000 --- a/spear/Implyloss/logs/my_TREC/f_d_0.1_0.1_4.txt +++ /dev/null @@ -1,267 +0,0 @@ -Hello 2 1 -2021-06-05 19:47:03.826528: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory -2021-06-05 19:47:03.826629: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/compat/v2_compat.py:96: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version. -Instructions for updating: -non-resource variables are not supported in the long term -Started Reading Flags - -checkpoint_load_mode = mru -d_pickle_name = d_processed.p -data_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC -dropout_keep_prob = 0.8 -early_stopping_p = 20 -f_d_adam_lr = 0.0003 -f_d_batch_size = 16 -f_d_class_sampling_str = 10,10,10,10,10,10 -f_d_epochs = 7 -f_d_metrics_pickle_name = metrics_train_f_on_d.p -f_d_primary_metric = accuracy -f_d_U_adam_lr = 0.0003 -f_d_U_batch_size = 32 -f_d_U_epochs = 7 -f_d_U_metrics_pickle_name = metrics_train_f_on_d_U.p -f_infer_out_pickle_name = infer_f.p -f_layers_str = 512,512 -gamma = 0.1 -lamda = 0.1 -min_rule_coverage = 0 -network_dropout = True -num_checkpoints = 1 -num_classes = 0 -num_load_d = 0 -num_load_U = 0 -num_load_validation = 0 -output_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_4 -rule_classes_str = -run_mode = f_d -shuffle_batches = True -test_w_batch_size = 1000 -U_pickle_name = U_processed.p -use_joint_f_w = False -validation_pickle_name = validation_processed.p -w_infer_out_pickle_name = infer_w.p -w_layers_str = 512,512 - -Hi1 -Ended Reading Flags -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_4/d_processed.p -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/U_processed.p -Rule classes: [2, 1, 1, 4, 3, 2, 1, 3, 5, 4, 3, 2, 4, 1, 2, 5, 4, 1, 2, 4, 3, 1, 3, 2, 1, 1, 4, 4, 5, 1, 3, 5, 2, 1, 5, 1, 5, 5, 0, 5, 5, 1, 4, 2, 3, 2, 1, 3, 5, 1, 1, 3, 2, 1, 1, 5, 2, 3, 2, 5, 3, 3, 4, 5, 5, 4, 2, 0] -length of covered U: 4637 -Size of d before oversampling: 68 -Size of U (covered) : 4637 -Size of d after oversampling: 680 -Size of d_U after combining: 5317 -Loading 68 elements from d -num instances in d: 680 -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/validation_processed.p -Setting value of d to 0 for test data -test_w len: 476 -test_w len: 476 -Number of features: 1024 -Number of classes: 6 -Print num of rules to train: 68 -Print num of rules: 68 - - - -Found prev best metric for run type f_d: 0.634 -best metrics dict: {'f1_score_1': 0.6549295774647887, 'precision_1': 0.577639751552795, 'recall_1': 0.7560975609756098, 'support_1': 123, 'f1_score': array([0.61538462, 0.65492958, 0.47887324, 0.72195122, 0.65625 , - 0.67515924]), 'precision': array([0.8 , 0.57763975, 0.5049505 , 0.77894737, 0.77777778, - 0.63095238]), 'recall': array([0.5 , 0.75609756, 0.45535714, 0.67272727, 0.56756757, - 0.7260274 ]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6337579812445014, 'avg_precision': 0.6783779622922518, 'avg_recall': 0.6129628235646445, 'accuracy': 0.634, 'epoch': 19.0, 'f_d_global_step': 798} -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_4/metrics_train_f_on_d_U.p' -Did not find prev best metric for run type f_d_U. Setting to zero. -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/legacy_tf_layers/core.py:171: UserWarning: `tf.layers.dense` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dense` instead. - warnings.warn('`tf.layers.dense` is deprecated and ' -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer_v1.py:1719: UserWarning: `layer.apply` is deprecated and will be removed in a future version. Please use `layer.__call__` method instead. - warnings.warn('`layer.apply` is deprecated and ' -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version. -Instructions for updating: -Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version. -Instructions for updating: - -Future major versions of TensorFlow will allow gradients to flow -into the labels input on backprop by default. - -See `tf.nn.softmax_cross_entropy_with_logits_v2`. - -WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/spear/spear/Implyloss/my_model.py:615: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. -Instructions for updating: -Use `tf.cast` instead. -[ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" -] -2021-06-05 19:47:08.816010: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA -To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. -2021-06-05 19:47:08.816576: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set -2021-06-05 19:47:08.816771: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory -2021-06-05 19:47:08.816800: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed call to cuInit: UNKNOWN ERROR (303) -2021-06-05 19:47:08.816827: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (parth-G3-3590): /proc/driver/nvidia/version does not exist -2021-06-05 19:47:08.976434: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:196] None of the MLIR optimization passes are enabled (registered 0 passes) -2021-06-05 19:47:08.983588: I tensorflow/core/platform/profile_utils/cpu_utils.cc:112] CPU Frequency: 2599990000 Hz -Restoring checkpoint from path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_4/checkpoints/hls-model-2352 -Run mode is f_d -training f on d -num_instances: 680 -batch_size: 16 -total_batch: 42 -remaining: 8 -total_batch: 42 -Optimization started for f_d! -Batch size: 16! -Batches per epoch : 42! -Number of epochs: 7! - -========== epoch : 0 ============ - -cost: 2.224798416656475e-05 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.6379928315412187, 'precision_1': 0.5705128205128205, 'recall_1': 0.7235772357723578, 'support_1': 123, 'f1_score': array([0.615, 0.638, 0.455, 0.709, 0.661, 0.662]), 'precision': array([0.800, 0.571, 0.455, 0.774, 0.792, 0.630]), 'recall': array([0.500, 0.724, 0.455, 0.655, 0.568, 0.699]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6236415301444359, 'avg_precision': 0.6703576619292283, 'avg_recall': 0.5999462562881374, 'accuracy': 0.618, 'epoch': 57.0, 'f_d_global_step': 2394} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.634 Current is: 0.618 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_4/checkpoints/hls-model-2394 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_4/checkpoints/f_d/best.ckpt-798 - - -========== epoch : 1 ============ - -cost: 2.1537253473979948e-05 - -patience: 1 - - -metrics_dict: {'f1_score_1': 0.6304347826086957, 'precision_1': 0.5686274509803921, 'recall_1': 0.7073170731707317, 'support_1': 123, 'f1_score': array([0.615, 0.630, 0.456, 0.706, 0.656, 0.662]), 'precision': array([0.800, 0.569, 0.448, 0.780, 0.778, 0.630]), 'recall': array([0.500, 0.707, 0.464, 0.645, 0.568, 0.699]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6211691788166182, 'avg_precision': 0.6674217501127576, 'avg_recall': 0.5972091729108101, 'accuracy': 0.614, 'epoch': 58.0, 'f_d_global_step': 2436} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.634 Current is: 0.614 - -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/training/saver.py:968: remove_checkpoint (from tensorflow.python.training.checkpoint_management) is deprecated and will be removed in a future version. -Instructions for updating: -Use standard file APIs to delete files with this prefix. -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_4/checkpoints/hls-model-2436 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_4/checkpoints/f_d/best.ckpt-798 - - -========== epoch : 2 ============ - -cost: 2.4512656312124038e-05 - -patience: 2 - - -metrics_dict: {'f1_score_1': 0.6277372262773723, 'precision_1': 0.5695364238410596, 'recall_1': 0.6991869918699187, 'support_1': 123, 'f1_score': array([0.571, 0.628, 0.456, 0.706, 0.656, 0.671]), 'precision': array([0.667, 0.570, 0.448, 0.780, 0.778, 0.634]), 'recall': array([0.500, 0.699, 0.464, 0.645, 0.568, 0.712]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6148319253683605, 'avg_precision': 0.6461038086729441, 'avg_recall': 0.5981372643835057, 'accuracy': 0.614, 'epoch': 59.0, 'f_d_global_step': 2478} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.634 Current is: 0.614 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_4/checkpoints/hls-model-2478 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_4/checkpoints/f_d/best.ckpt-798 - - -========== epoch : 3 ============ - -cost: 2.0515965940960867e-05 - -patience: 3 - - -metrics_dict: {'f1_score_1': 0.6379928315412187, 'precision_1': 0.5705128205128205, 'recall_1': 0.7235772357723578, 'support_1': 123, 'f1_score': array([0.571, 0.638, 0.450, 0.709, 0.661, 0.658]), 'precision': array([0.667, 0.571, 0.455, 0.774, 0.792, 0.622]), 'recall': array([0.500, 0.724, 0.446, 0.655, 0.568, 0.699]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6147855497158748, 'avg_precision': 0.6467204233021522, 'avg_recall': 0.5984581610500421, 'accuracy': 0.616, 'epoch': 60.0, 'f_d_global_step': 2520} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.634 Current is: 0.616 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_4/checkpoints/hls-model-2520 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_4/checkpoints/f_d/best.ckpt-798 - - -========== epoch : 4 ============ - -cost: 1.8722679518153505e-05 - -patience: 4 - - -metrics_dict: {'f1_score_1': 0.6357142857142857, 'precision_1': 0.5668789808917197, 'recall_1': 0.7235772357723578, 'support_1': 123, 'f1_score': array([0.571, 0.636, 0.455, 0.709, 0.661, 0.654]), 'precision': array([0.667, 0.567, 0.463, 0.774, 0.792, 0.614]), 'recall': array([0.500, 0.724, 0.446, 0.655, 0.568, 0.699]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6143852323800736, 'avg_precision': 0.6462688034037377, 'avg_recall': 0.5984581610500421, 'accuracy': 0.616, 'epoch': 61.0, 'f_d_global_step': 2562} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.634 Current is: 0.616 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_4/checkpoints/hls-model-2562 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_4/checkpoints/f_d/best.ckpt-798 - - -========== epoch : 5 ============ - -cost: 1.5851467835437648e-05 - -patience: 5 - - -metrics_dict: {'f1_score_1': 0.6405693950177935, 'precision_1': 0.569620253164557, 'recall_1': 0.7317073170731707, 'support_1': 123, 'f1_score': array([0.571, 0.641, 0.457, 0.703, 0.656, 0.654]), 'precision': array([0.667, 0.570, 0.467, 0.772, 0.778, 0.614]), 'recall': array([0.500, 0.732, 0.446, 0.645, 0.568, 0.699]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6136142369814053, 'avg_precision': 0.6445918964992089, 'avg_recall': 0.5982980230850261, 'accuracy': 0.616, 'epoch': 62.0, 'f_d_global_step': 2604} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.634 Current is: 0.616 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_4/checkpoints/hls-model-2604 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_4/checkpoints/f_d/best.ckpt-798 - - -========== epoch : 6 ============ - -cost: 1.9545702939250905e-05 - -patience: 6 - - -metrics_dict: {'f1_score_1': 0.6402877697841727, 'precision_1': 0.5741935483870968, 'recall_1': 0.7235772357723578, 'support_1': 123, 'f1_score': array([0.571, 0.640, 0.452, 0.709, 0.661, 0.662]), 'precision': array([0.667, 0.574, 0.459, 0.774, 0.792, 0.619]), 'recall': array([0.500, 0.724, 0.446, 0.655, 0.568, 0.712]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6162337233178551, 'avg_precision': 0.6475449681679056, 'avg_recall': 0.6007412660728731, 'accuracy': 0.618, 'epoch': 63.0, 'f_d_global_step': 2646} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.634 Current is: 0.618 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_4/checkpoints/hls-model-2646 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_4/checkpoints/f_d/best.ckpt-798 - -Optimization Finished for f_d! diff --git a/spear/Implyloss/logs/my_TREC/f_d_0.1_0.1_5.txt b/spear/Implyloss/logs/my_TREC/f_d_0.1_0.1_5.txt deleted file mode 100644 index 104e81e..0000000 --- a/spear/Implyloss/logs/my_TREC/f_d_0.1_0.1_5.txt +++ /dev/null @@ -1,267 +0,0 @@ -Hello 2 1 -2021-06-05 19:47:03.826519: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory -2021-06-05 19:47:03.826627: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/compat/v2_compat.py:96: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version. -Instructions for updating: -non-resource variables are not supported in the long term -Started Reading Flags - -checkpoint_load_mode = mru -d_pickle_name = d_processed.p -data_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC -dropout_keep_prob = 0.8 -early_stopping_p = 20 -f_d_adam_lr = 0.0003 -f_d_batch_size = 16 -f_d_class_sampling_str = 10,10,10,10,10,10 -f_d_epochs = 7 -f_d_metrics_pickle_name = metrics_train_f_on_d.p -f_d_primary_metric = accuracy -f_d_U_adam_lr = 0.0003 -f_d_U_batch_size = 32 -f_d_U_epochs = 7 -f_d_U_metrics_pickle_name = metrics_train_f_on_d_U.p -f_infer_out_pickle_name = infer_f.p -f_layers_str = 512,512 -gamma = 0.1 -lamda = 0.1 -min_rule_coverage = 0 -network_dropout = True -num_checkpoints = 1 -num_classes = 0 -num_load_d = 0 -num_load_U = 0 -num_load_validation = 0 -output_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_5 -rule_classes_str = -run_mode = f_d -shuffle_batches = True -test_w_batch_size = 1000 -U_pickle_name = U_processed.p -use_joint_f_w = False -validation_pickle_name = validation_processed.p -w_infer_out_pickle_name = infer_w.p -w_layers_str = 512,512 - -Hi1 -Ended Reading Flags -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_5/d_processed.p -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/U_processed.p -Rule classes: [2, 1, 1, 4, 3, 2, 1, 3, 5, 4, 3, 2, 4, 1, 2, 5, 4, 1, 2, 4, 3, 1, 3, 2, 1, 1, 4, 4, 5, 1, 3, 5, 2, 1, 5, 1, 5, 5, 0, 5, 5, 1, 4, 2, 3, 2, 1, 3, 5, 1, 1, 3, 2, 1, 1, 5, 2, 3, 2, 5, 3, 3, 4, 5, 5, 4, 2, 0] -length of covered U: 4637 -Size of d before oversampling: 68 -Size of U (covered) : 4637 -Size of d after oversampling: 680 -Size of d_U after combining: 5317 -Loading 68 elements from d -num instances in d: 680 -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/validation_processed.p -Setting value of d to 0 for test data -test_w len: 476 -test_w len: 476 -Number of features: 1024 -Number of classes: 6 -Print num of rules to train: 68 -Print num of rules: 68 - - - -Found prev best metric for run type f_d: 0.636 -best metrics dict: {'f1_score_1': 0.6575342465753424, 'precision_1': 0.5680473372781065, 'recall_1': 0.7804878048780488, 'support_1': 123, 'f1_score': array([0.61538462, 0.65753425, 0.492891 , 0.73076923, 0.65079365, - 0.65333333]), 'precision': array([0.8 , 0.56804734, 0.52525253, 0.7755102 , 0.78846154, - 0.63636364]), 'recall': array([0.5 , 0.7804878 , 0.46428571, 0.69090909, 0.55405405, - 0.67123288]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6334510120194727, 'avg_precision': 0.6822725402395733, 'avg_recall': 0.6101615901398728, 'accuracy': 0.636, 'epoch': 31.0, 'f_d_global_step': 1302} -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_5/metrics_train_f_on_d_U.p' -Did not find prev best metric for run type f_d_U. Setting to zero. -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/legacy_tf_layers/core.py:171: UserWarning: `tf.layers.dense` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dense` instead. - warnings.warn('`tf.layers.dense` is deprecated and ' -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer_v1.py:1719: UserWarning: `layer.apply` is deprecated and will be removed in a future version. Please use `layer.__call__` method instead. - warnings.warn('`layer.apply` is deprecated and ' -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version. -Instructions for updating: -Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version. -Instructions for updating: - -Future major versions of TensorFlow will allow gradients to flow -into the labels input on backprop by default. - -See `tf.nn.softmax_cross_entropy_with_logits_v2`. - -WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/spear/spear/Implyloss/my_model.py:615: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. -Instructions for updating: -Use `tf.cast` instead. -[ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" -] -2021-06-05 19:47:08.808220: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA -To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. -2021-06-05 19:47:08.809051: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set -2021-06-05 19:47:08.810201: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory -2021-06-05 19:47:08.810237: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed call to cuInit: UNKNOWN ERROR (303) -2021-06-05 19:47:08.810262: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (parth-G3-3590): /proc/driver/nvidia/version does not exist -2021-06-05 19:47:08.956785: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:196] None of the MLIR optimization passes are enabled (registered 0 passes) -2021-06-05 19:47:08.989073: I tensorflow/core/platform/profile_utils/cpu_utils.cc:112] CPU Frequency: 2599990000 Hz -Restoring checkpoint from path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_5/checkpoints/hls-model-2436 -Run mode is f_d -training f on d -num_instances: 680 -batch_size: 16 -total_batch: 42 -remaining: 8 -total_batch: 42 -Optimization started for f_d! -Batch size: 16! -Batches per epoch : 42! -Number of epochs: 7! - -========== epoch : 0 ============ - -cost: 2.1158287360040483e-05 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.6460481099656358, 'precision_1': 0.5595238095238095, 'recall_1': 0.7642276422764228, 'support_1': 123, 'f1_score': array([0.571, 0.646, 0.488, 0.746, 0.661, 0.649]), 'precision': array([0.667, 0.560, 0.538, 0.788, 0.792, 0.617]), 'recall': array([0.500, 0.764, 0.446, 0.709, 0.568, 0.685]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6270768358136453, 'avg_precision': 0.660240075579563, 'avg_recall': 0.6120410328687976, 'accuracy': 0.636, 'epoch': 59.0, 'f_d_global_step': 2478} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.636 Current is: 0.636 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_5/checkpoints/hls-model-2478 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_5/checkpoints/f_d/best.ckpt-1302 - - -========== epoch : 1 ============ - -cost: 1.8359101312896767e-05 - -patience: 1 - - -metrics_dict: {'f1_score_1': 0.6482758620689655, 'precision_1': 0.562874251497006, 'recall_1': 0.7642276422764228, 'support_1': 123, 'f1_score': array([0.571, 0.648, 0.481, 0.740, 0.661, 0.641]), 'precision': array([0.667, 0.563, 0.521, 0.786, 0.792, 0.613]), 'recall': array([0.500, 0.764, 0.446, 0.700, 0.568, 0.671]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6237997463838371, 'avg_precision': 0.6568402278999952, 'avg_recall': 0.608242776330815, 'accuracy': 0.632, 'epoch': 60.0, 'f_d_global_step': 2520} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.636 Current is: 0.632 - -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/training/saver.py:968: remove_checkpoint (from tensorflow.python.training.checkpoint_management) is deprecated and will be removed in a future version. -Instructions for updating: -Use standard file APIs to delete files with this prefix. -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_5/checkpoints/hls-model-2520 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_5/checkpoints/f_d/best.ckpt-1302 - - -========== epoch : 2 ============ - -cost: 1.8495058200295757e-05 - -patience: 2 - - -metrics_dict: {'f1_score_1': 0.6506849315068493, 'precision_1': 0.5621301775147929, 'recall_1': 0.7723577235772358, 'support_1': 123, 'f1_score': array([0.571, 0.651, 0.476, 0.734, 0.661, 0.653]), 'precision': array([0.667, 0.562, 0.510, 0.784, 0.792, 0.636]), 'recall': array([0.500, 0.772, 0.446, 0.691, 0.568, 0.671]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6245590253670148, 'avg_precision': 0.6585537578342672, 'avg_recall': 0.6080826383657991, 'accuracy': 0.632, 'epoch': 61.0, 'f_d_global_step': 2562} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.636 Current is: 0.632 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_5/checkpoints/hls-model-2562 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_5/checkpoints/f_d/best.ckpt-1302 - - -========== epoch : 3 ============ - -cost: 1.4935808275411195e-05 - -patience: 3 - - -metrics_dict: {'f1_score_1': 0.6506849315068493, 'precision_1': 0.5621301775147929, 'recall_1': 0.7723577235772358, 'support_1': 123, 'f1_score': array([0.571, 0.651, 0.477, 0.723, 0.656, 0.653]), 'precision': array([0.667, 0.562, 0.500, 0.793, 0.778, 0.636]), 'recall': array([0.500, 0.772, 0.455, 0.664, 0.568, 0.671]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.621850771252528, 'avg_precision': 0.6560694198654063, 'avg_recall': 0.6050252790584397, 'accuracy': 0.628, 'epoch': 62.0, 'f_d_global_step': 2604} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.636 Current is: 0.628 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_5/checkpoints/hls-model-2604 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_5/checkpoints/f_d/best.ckpt-1302 - - -========== epoch : 4 ============ - -cost: 1.6963969864307382e-05 - -patience: 4 - - -metrics_dict: {'f1_score_1': 0.6458333333333333, 'precision_1': 0.5636363636363636, 'recall_1': 0.7560975609756098, 'support_1': 123, 'f1_score': array([0.615, 0.646, 0.475, 0.710, 0.656, 0.645]), 'precision': array([0.800, 0.564, 0.486, 0.789, 0.778, 0.620]), 'recall': array([0.500, 0.756, 0.464, 0.645, 0.568, 0.671]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6245151059286784, 'avg_precision': 0.6727562505452012, 'avg_recall': 0.600773044165961, 'accuracy': 0.622, 'epoch': 63.0, 'f_d_global_step': 2646} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.636 Current is: 0.622 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_5/checkpoints/hls-model-2646 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_5/checkpoints/f_d/best.ckpt-1302 - - -========== epoch : 5 ============ - -cost: 1.6382005025575157e-05 - -patience: 5 - - -metrics_dict: {'f1_score_1': 0.647887323943662, 'precision_1': 0.5714285714285714, 'recall_1': 0.7479674796747967, 'support_1': 123, 'f1_score': array([0.615, 0.648, 0.477, 0.704, 0.656, 0.636]), 'precision': array([0.800, 0.571, 0.482, 0.787, 0.778, 0.605]), 'recall': array([0.500, 0.748, 0.473, 0.636, 0.568, 0.671]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6228134401848483, 'avg_precision': 0.6704132760936755, 'avg_recall': 0.5993909743387692, 'accuracy': 0.62, 'epoch': 64.0, 'f_d_global_step': 2688} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.636 Current is: 0.62 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_5/checkpoints/hls-model-2688 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_5/checkpoints/f_d/best.ckpt-1302 - - -========== epoch : 6 ============ - -cost: 1.3410906322384279e-05 - -patience: 6 - - -metrics_dict: {'f1_score_1': 0.6413793103448275, 'precision_1': 0.5568862275449101, 'recall_1': 0.7560975609756098, 'support_1': 123, 'f1_score': array([0.615, 0.641, 0.468, 0.697, 0.656, 0.641]), 'precision': array([0.800, 0.557, 0.481, 0.784, 0.778, 0.613]), 'recall': array([0.500, 0.756, 0.455, 0.627, 0.568, 0.671]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.619732734462169, 'avg_precision': 0.6687311649808825, 'avg_recall': 0.5962546458975627, 'accuracy': 0.616, 'epoch': 65.0, 'f_d_global_step': 2730} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.636 Current is: 0.616 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_5/checkpoints/hls-model-2730 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_5/checkpoints/f_d/best.ckpt-1302 - -Optimization Finished for f_d! diff --git a/spear/Implyloss/logs/my_TREC/f_d_0.1_0.1_6.txt b/spear/Implyloss/logs/my_TREC/f_d_0.1_0.1_6.txt deleted file mode 100644 index 3be835f..0000000 --- a/spear/Implyloss/logs/my_TREC/f_d_0.1_0.1_6.txt +++ /dev/null @@ -1,267 +0,0 @@ -Hello 2 1 -2021-06-05 19:47:03.826536: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory -2021-06-05 19:47:03.826637: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/compat/v2_compat.py:96: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version. -Instructions for updating: -non-resource variables are not supported in the long term -Started Reading Flags - -checkpoint_load_mode = mru -d_pickle_name = d_processed.p -data_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC -dropout_keep_prob = 0.8 -early_stopping_p = 20 -f_d_adam_lr = 0.0003 -f_d_batch_size = 16 -f_d_class_sampling_str = 10,10,10,10,10,10 -f_d_epochs = 7 -f_d_metrics_pickle_name = metrics_train_f_on_d.p -f_d_primary_metric = accuracy -f_d_U_adam_lr = 0.0003 -f_d_U_batch_size = 32 -f_d_U_epochs = 7 -f_d_U_metrics_pickle_name = metrics_train_f_on_d_U.p -f_infer_out_pickle_name = infer_f.p -f_layers_str = 512,512 -gamma = 0.1 -lamda = 0.1 -min_rule_coverage = 0 -network_dropout = True -num_checkpoints = 1 -num_classes = 0 -num_load_d = 0 -num_load_U = 0 -num_load_validation = 0 -output_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_6 -rule_classes_str = -run_mode = f_d -shuffle_batches = True -test_w_batch_size = 1000 -U_pickle_name = U_processed.p -use_joint_f_w = False -validation_pickle_name = validation_processed.p -w_infer_out_pickle_name = infer_w.p -w_layers_str = 512,512 - -Hi1 -Ended Reading Flags -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_6/d_processed.p -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/U_processed.p -Rule classes: [2, 1, 1, 4, 3, 2, 1, 3, 5, 4, 3, 2, 4, 1, 2, 5, 4, 1, 2, 4, 3, 1, 3, 2, 1, 1, 4, 4, 5, 1, 3, 5, 2, 1, 5, 1, 5, 5, 0, 5, 5, 1, 4, 2, 3, 2, 1, 3, 5, 1, 1, 3, 2, 1, 1, 5, 2, 3, 2, 5, 3, 3, 4, 5, 5, 4, 2, 0] -length of covered U: 4637 -Size of d before oversampling: 68 -Size of U (covered) : 4637 -Size of d after oversampling: 680 -Size of d_U after combining: 5317 -Loading 68 elements from d -num instances in d: 680 -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/validation_processed.p -Setting value of d to 0 for test data -test_w len: 476 -test_w len: 476 -Number of features: 1024 -Number of classes: 6 -Print num of rules to train: 68 -Print num of rules: 68 - - - -Found prev best metric for run type f_d: 0.626 -best metrics dict: {'f1_score_1': 0.6544117647058824, 'precision_1': 0.5973154362416108, 'recall_1': 0.7235772357723578, 'support_1': 123, 'f1_score': array([0.61538462, 0.65441176, 0.48717949, 0.71356784, 0.64516129, - 0.65822785]), 'precision': array([0.8 , 0.59731544, 0.46721311, 0.79775281, 0.8 , - 0.61176471]), 'recall': array([0.5 , 0.72357724, 0.50892857, 0.64545455, 0.54054054, - 0.71232877]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6289888074816352, 'avg_precision': 0.679007677644471, 'avg_recall': 0.6051382767198837, 'accuracy': 0.626, 'epoch': 9.0, 'f_d_global_step': 378} -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_6/metrics_train_f_on_d_U.p' -Did not find prev best metric for run type f_d_U. Setting to zero. -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/legacy_tf_layers/core.py:171: UserWarning: `tf.layers.dense` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dense` instead. - warnings.warn('`tf.layers.dense` is deprecated and ' -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer_v1.py:1719: UserWarning: `layer.apply` is deprecated and will be removed in a future version. Please use `layer.__call__` method instead. - warnings.warn('`layer.apply` is deprecated and ' -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version. -Instructions for updating: -Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version. -Instructions for updating: - -Future major versions of TensorFlow will allow gradients to flow -into the labels input on backprop by default. - -See `tf.nn.softmax_cross_entropy_with_logits_v2`. - -WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/spear/spear/Implyloss/my_model.py:615: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. -Instructions for updating: -Use `tf.cast` instead. -[ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" -] -2021-06-05 19:47:08.837672: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA -To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. -2021-06-05 19:47:08.838499: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set -2021-06-05 19:47:08.838728: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory -2021-06-05 19:47:08.838767: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed call to cuInit: UNKNOWN ERROR (303) -2021-06-05 19:47:08.838809: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (parth-G3-3590): /proc/driver/nvidia/version does not exist -2021-06-05 19:47:08.985351: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:196] None of the MLIR optimization passes are enabled (registered 0 passes) -2021-06-05 19:47:08.992464: I tensorflow/core/platform/profile_utils/cpu_utils.cc:112] CPU Frequency: 2599990000 Hz -Restoring checkpoint from path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_6/checkpoints/hls-model-1932 -Run mode is f_d -training f on d -num_instances: 680 -batch_size: 16 -total_batch: 42 -remaining: 8 -total_batch: 42 -Optimization started for f_d! -Batch size: 16! -Batches per epoch : 42! -Number of epochs: 7! - -========== epoch : 0 ============ - -cost: 2.643918200885223e-05 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.647887323943662, 'precision_1': 0.5714285714285714, 'recall_1': 0.7479674796747967, 'support_1': 123, 'f1_score': array([0.615, 0.648, 0.470, 0.694, 0.634, 0.662]), 'precision': array([0.800, 0.571, 0.458, 0.791, 0.796, 0.630]), 'recall': array([0.500, 0.748, 0.482, 0.618, 0.527, 0.699]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6205331185901778, 'avg_precision': 0.6742168935779688, 'avg_recall': 0.5956582198354667, 'accuracy': 0.616, 'epoch': 47.0, 'f_d_global_step': 1974} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.626 Current is: 0.616 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_6/checkpoints/hls-model-1974 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_6/checkpoints/f_d/best.ckpt-378 - - -========== epoch : 1 ============ - -cost: 2.6323401611772987e-05 - -patience: 1 - - -metrics_dict: {'f1_score_1': 0.6428571428571428, 'precision_1': 0.5732484076433121, 'recall_1': 0.7317073170731707, 'support_1': 123, 'f1_score': array([0.615, 0.643, 0.464, 0.701, 0.645, 0.667]), 'precision': array([0.800, 0.573, 0.446, 0.793, 0.800, 0.637]), 'recall': array([0.500, 0.732, 0.482, 0.627, 0.541, 0.699]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6223494404581541, 'avg_precision': 0.6750221412757852, 'avg_recall': 0.5967155965025995, 'accuracy': 0.616, 'epoch': 48.0, 'f_d_global_step': 2016} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.626 Current is: 0.616 - -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/training/saver.py:968: remove_checkpoint (from tensorflow.python.training.checkpoint_management) is deprecated and will be removed in a future version. -Instructions for updating: -Use standard file APIs to delete files with this prefix. -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_6/checkpoints/hls-model-2016 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_6/checkpoints/f_d/best.ckpt-378 - - -========== epoch : 2 ============ - -cost: 2.35790848169667e-05 - -patience: 2 - - -metrics_dict: {'f1_score_1': 0.6428571428571428, 'precision_1': 0.5732484076433121, 'recall_1': 0.7317073170731707, 'support_1': 123, 'f1_score': array([0.615, 0.643, 0.464, 0.701, 0.645, 0.667]), 'precision': array([0.800, 0.573, 0.446, 0.793, 0.800, 0.637]), 'recall': array([0.500, 0.732, 0.482, 0.627, 0.541, 0.699]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6223494404581541, 'avg_precision': 0.6750221412757852, 'avg_recall': 0.5967155965025995, 'accuracy': 0.616, 'epoch': 49.0, 'f_d_global_step': 2058} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.626 Current is: 0.616 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_6/checkpoints/hls-model-2058 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_6/checkpoints/f_d/best.ckpt-378 - - -========== epoch : 3 ============ - -cost: 2.270088387896457e-05 - -patience: 3 - - -metrics_dict: {'f1_score_1': 0.6549295774647887, 'precision_1': 0.577639751552795, 'recall_1': 0.7560975609756098, 'support_1': 123, 'f1_score': array([0.615, 0.655, 0.470, 0.701, 0.645, 0.671]), 'precision': array([0.800, 0.578, 0.458, 0.793, 0.800, 0.646]), 'recall': array([0.500, 0.756, 0.482, 0.627, 0.541, 0.699]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6261001577259057, 'avg_precision': 0.6789899897876482, 'avg_recall': 0.600780637153006, 'accuracy': 0.622, 'epoch': 50.0, 'f_d_global_step': 2100} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.626 Current is: 0.622 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_6/checkpoints/hls-model-2100 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_6/checkpoints/f_d/best.ckpt-378 - - -========== epoch : 4 ============ - -cost: 1.937443710717378e-05 - -patience: 4 - - -metrics_dict: {'f1_score_1': 0.64, 'precision_1': 0.5789473684210527, 'recall_1': 0.7154471544715447, 'support_1': 123, 'f1_score': array([0.615, 0.640, 0.460, 0.701, 0.645, 0.671]), 'precision': array([0.800, 0.579, 0.433, 0.793, 0.800, 0.646]), 'recall': array([0.500, 0.715, 0.491, 0.627, 0.541, 0.699]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.622059532920741, 'avg_precision': 0.6751152171819687, 'avg_recall': 0.5954936646404237, 'accuracy': 0.614, 'epoch': 51.0, 'f_d_global_step': 2142} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.626 Current is: 0.614 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_6/checkpoints/hls-model-2142 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_6/checkpoints/f_d/best.ckpt-378 - - -========== epoch : 5 ============ - -cost: 1.8716228320651385e-05 - -patience: 5 - - -metrics_dict: {'f1_score_1': 0.6476868327402135, 'precision_1': 0.5759493670886076, 'recall_1': 0.7398373983739838, 'support_1': 123, 'f1_score': array([0.615, 0.648, 0.466, 0.701, 0.645, 0.667]), 'precision': array([0.800, 0.576, 0.450, 0.793, 0.800, 0.637]), 'recall': array([0.500, 0.740, 0.482, 0.627, 0.541, 0.699]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6234873767844307, 'avg_precision': 0.6760921358940783, 'avg_recall': 0.5980706100527351, 'accuracy': 0.618, 'epoch': 52.0, 'f_d_global_step': 2184} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.626 Current is: 0.618 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_6/checkpoints/hls-model-2184 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_6/checkpoints/f_d/best.ckpt-378 - - -========== epoch : 6 ============ - -cost: 1.691575978059388e-05 - -patience: 6 - - -metrics_dict: {'f1_score_1': 0.6501766784452296, 'precision_1': 0.575, 'recall_1': 0.7479674796747967, 'support_1': 123, 'f1_score': array([0.615, 0.650, 0.470, 0.701, 0.645, 0.667]), 'precision': array([0.800, 0.575, 0.458, 0.793, 0.800, 0.637]), 'recall': array([0.500, 0.748, 0.482, 0.627, 0.541, 0.699]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6245770137372657, 'avg_precision': 0.6772050944866551, 'avg_recall': 0.5994256236028705, 'accuracy': 0.62, 'epoch': 53.0, 'f_d_global_step': 2226} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.626 Current is: 0.62 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_6/checkpoints/hls-model-2226 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_6/checkpoints/f_d/best.ckpt-378 - -Optimization Finished for f_d! diff --git a/spear/Implyloss/logs/my_TREC/implication_0.1_0.1_1.txt b/spear/Implyloss/logs/my_TREC/implication_0.1_0.1_1.txt deleted file mode 100644 index 64f7c17..0000000 --- a/spear/Implyloss/logs/my_TREC/implication_0.1_0.1_1.txt +++ /dev/null @@ -1,346 +0,0 @@ -Hello 2 1 -2021-04-17 22:04:15.981492: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory -2021-04-17 22:04:15.981565: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/compat/v2_compat.py:96: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version. -Instructions for updating: -non-resource variables are not supported in the long term -Started Reading Flags - -checkpoint_load_mode = mru -d_pickle_name = d_processed.p -data_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC -dropout_keep_prob = 0.8 -early_stopping_p = 5 -f_d_adam_lr = 0.0003 -f_d_batch_size = 16 -f_d_class_sampling_str = 10,10,10,10,10,10 -f_d_epochs = 10 -f_d_metrics_pickle_name = metrics_train_f_on_d.p -f_d_primary_metric = accuracy -f_d_U_adam_lr = 0.0003 -f_d_U_batch_size = 32 -f_d_U_epochs = 10 -f_d_U_metrics_pickle_name = metrics_train_f_on_d_U.p -f_infer_out_pickle_name = infer_f.p -f_layers_str = 512,512 -gamma = 0.1 -lamda = 0.1 -min_rule_coverage = 0 -network_dropout = True -num_checkpoints = 1 -num_classes = 0 -num_load_d = 0 -num_load_U = 0 -num_load_validation = 0 -output_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_1 -rule_classes_str = -run_mode = implication -shuffle_batches = True -test_w_batch_size = 1000 -U_pickle_name = U_processed.p -use_joint_f_w = False -validation_pickle_name = validation_processed.p -w_infer_out_pickle_name = infer_w.p -w_layers_str = 512,512 - -Hi1 -Ended Reading Flags -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_1/d_processed.p -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/U_processed.p -Rule classes: [2, 1, 1, 4, 3, 2, 1, 3, 5, 4, 3, 2, 4, 1, 2, 5, 4, 1, 2, 4, 3, 1, 3, 2, 1, 1, 4, 4, 5, 1, 3, 5, 2, 1, 5, 1, 5, 5, 0, 5, 5, 1, 4, 2, 3, 2, 1, 3, 5, 1, 1, 3, 2, 1, 1, 5, 2, 3, 2, 5, 3, 3, 4, 5, 5, 4, 2, 0] -length of covered U: 4637 -Size of d before oversampling: 68 -Size of U (covered) : 4637 -Size of d after oversampling: 680 -Size of d_U after combining: 5317 -Loading 68 elements from d -num instances in d: 680 -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/validation_processed.p -Setting value of d to 0 for test data -test_w len: 476 -test_w len: 476 -Number of features: 1024 -Number of classes: 6 -Print num of rules to train: 68 -Print num of rules: 68 - - - -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_1/metrics_train_f_on_d.p' -Did not find prev best metric for run type f_d. Setting to zero. -Found prev best metric for run type f_d_U: 0.722 -best metrics dict: {'f1_score_1': 0.7345454545454546, 'precision_1': 0.6644736842105263, 'recall_1': 0.8211382113821138, 'support_1': 123, 'f1_score': array([0.88888889, 0.73454545, 0.50961538, 0.76328502, 0.84931507, - 0.79452055]), 'precision': array([0.8 , 0.66447368, 0.55208333, 0.81443299, 0.86111111, - 0.79452055]), 'recall': array([1. , 0.82113821, 0.47321429, 0.71818182, 0.83783784, - 0.79452055]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7566950614404456, 'avg_precision': 0.7477702777151497, 'avg_recall': 0.7741487835102102, 'accuracy': 0.722, 'epoch': 13.0, 'f_d_global_step': 2158} -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/legacy_tf_layers/core.py:171: UserWarning: `tf.layers.dense` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dense` instead. - warnings.warn('`tf.layers.dense` is deprecated and ' -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer_v1.py:1719: UserWarning: `layer.apply` is deprecated and will be removed in a future version. Please use `layer.__call__` method instead. - warnings.warn('`layer.apply` is deprecated and ' -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version. -Instructions for updating: -Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version. -Instructions for updating: - -Future major versions of TensorFlow will allow gradients to flow -into the labels input on backprop by default. - -See `tf.nn.softmax_cross_entropy_with_logits_v2`. - -WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/Data_Pgm_Subset_Slc/Implyloss/my_model.py:615: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. -Instructions for updating: -Use `tf.cast` instead. -[ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" -] -2021-04-17 22:04:18.800329: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA -To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. -2021-04-17 22:04:18.801019: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set -2021-04-17 22:04:18.801174: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory -2021-04-17 22:04:18.801190: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed call to cuInit: UNKNOWN ERROR (303) -2021-04-17 22:04:18.801210: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (parth-G3-3590): /proc/driver/nvidia/version does not exist -2021-04-17 22:04:19.073400: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:196] None of the MLIR optimization passes are enabled (registered 0 passes) -2021-04-17 22:04:19.102311: I tensorflow/core/platform/profile_utils/cpu_utils.cc:112] CPU Frequency: 2599990000 Hz -Restoring checkpoint from path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_1/checkpoints/hls-model-834 -Run mode is implication -begin Implication loss training -num_instances: 5317 -batch_size: 32 -total_batch: 166 -remaining: 5 -total_batch: 166 -Optimization started for f_d_U with implication loss! -Batch size: 32! -Batches per epoch : 166! -Number of epochs: 10! - -========== epoch : 0 ============ - -cost: 0.0034696158829390974 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.6880000000000001, 'precision_1': 0.6771653543307087, 'recall_1': 0.6991869918699187, 'support_1': 123, 'f1_score': array([0.762, 0.688, 0.539, 0.642, 0.811, 0.720]), 'precision': array([0.615, 0.677, 0.504, 0.964, 0.811, 0.618]), 'recall': array([1.000, 0.699, 0.580, 0.482, 0.811, 0.863]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6937598170461241, 'avg_precision': 0.6980866953297128, 'avg_recall': 0.7391978043310319, 'accuracy': 0.67, 'epoch': 21.0, 'f_d_global_step': 3486} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.722 Current is: 0.67 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_1/checkpoints/hls-model-166 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_1/checkpoints/f_d_U/best.ckpt-2158 - - -========== epoch : 1 ============ - -cost: 0.0031427692197527357 - -patience: 1 - - -metrics_dict: {'f1_score_1': 0.701195219123506, 'precision_1': 0.6875, 'recall_1': 0.7154471544715447, 'support_1': 123, 'f1_score': array([0.762, 0.701, 0.526, 0.651, 0.829, 0.746]), 'precision': array([0.615, 0.688, 0.508, 0.877, 0.808, 0.656]), 'recall': array([1.000, 0.715, 0.545, 0.518, 0.851, 0.863]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7024833533368207, 'avg_precision': 0.6920138888888889, 'avg_recall': 0.7487728132962848, 'accuracy': 0.68, 'epoch': 22.0, 'f_d_global_step': 3652} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.722 Current is: 0.68 - -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/training/saver.py:968: remove_checkpoint (from tensorflow.python.training.checkpoint_management) is deprecated and will be removed in a future version. -Instructions for updating: -Use standard file APIs to delete files with this prefix. -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_1/checkpoints/hls-model-333 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_1/checkpoints/f_d_U/best.ckpt-2158 - - -========== epoch : 2 ============ - -cost: 0.003030535875436944 - -patience: 2 - - -metrics_dict: {'f1_score_1': 0.701195219123506, 'precision_1': 0.6875, 'recall_1': 0.7154471544715447, 'support_1': 123, 'f1_score': array([0.762, 0.701, 0.562, 0.638, 0.819, 0.754]), 'precision': array([0.615, 0.688, 0.511, 0.981, 0.813, 0.670]), 'recall': array([1.000, 0.715, 0.625, 0.473, 0.824, 0.863]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7061114585168252, 'avg_precision': 0.7130852825427638, 'avg_recall': 0.7500854083588798, 'accuracy': 0.684, 'epoch': 23.0, 'f_d_global_step': 3818} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.722 Current is: 0.684 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_1/checkpoints/hls-model-500 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_1/checkpoints/f_d_U/best.ckpt-2158 - - -========== epoch : 3 ============ - -cost: 0.0024376361022897457 - -patience: 3 - - -metrics_dict: {'f1_score_1': 0.7078189300411523, 'precision_1': 0.7166666666666667, 'recall_1': 0.6991869918699187, 'support_1': 123, 'f1_score': array([0.700, 0.708, 0.561, 0.708, 0.847, 0.813]), 'precision': array([0.583, 0.717, 0.515, 0.829, 0.871, 0.768]), 'recall': array([0.875, 0.699, 0.616, 0.618, 0.824, 0.863]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7228755535265429, 'avg_precision': 0.713985820028776, 'avg_recall': 0.7492963769296046, 'accuracy': 0.708, 'epoch': 24.0, 'f_d_global_step': 3984} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.722 Current is: 0.708 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_1/checkpoints/hls-model-667 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_1/checkpoints/f_d_U/best.ckpt-2158 - - -========== epoch : 4 ============ - -cost: 0.0023562519629498945 - -patience: 4 - - -metrics_dict: {'f1_score_1': 0.7091633466135459, 'precision_1': 0.6953125, 'recall_1': 0.7235772357723578, 'support_1': 123, 'f1_score': array([0.762, 0.709, 0.573, 0.762, 0.861, 0.778]), 'precision': array([0.615, 0.695, 0.604, 0.837, 0.844, 0.708]), 'recall': array([1.000, 0.724, 0.545, 0.700, 0.878, 0.863]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7408198715482287, 'avg_precision': 0.7172725076430866, 'avg_recall': 0.784935361653955, 'accuracy': 0.726, 'epoch': 25.0, 'f_d_global_step': 4150} - -Reporting f_d metrics to tensorboard - -dumped metrics dict to file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_1/metrics_train_f_on_d_U.p - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_1/checkpoints/hls-model-834 - -Saved new best checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_1/checkpoints/f_d_U/best.ckpt-4150 - - -========== epoch : 5 ============ - -cost: 0.00217884711421667 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.7120000000000001, 'precision_1': 0.7007874015748031, 'recall_1': 0.7235772357723578, 'support_1': 123, 'f1_score': array([0.737, 0.712, 0.576, 0.686, 0.832, 0.768]), 'precision': array([0.636, 0.701, 0.534, 0.923, 0.827, 0.692]), 'recall': array([0.875, 0.724, 0.625, 0.545, 0.838, 0.863]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.718532587707957, 'avg_precision': 0.7189255775046482, 'avg_recall': 0.7449805529491463, 'accuracy': 0.702, 'epoch': 26.0, 'f_d_global_step': 4316} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.726 Current is: 0.702 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_1/checkpoints/hls-model-1001 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_1/checkpoints/f_d_U/best.ckpt-4150 - - -========== epoch : 6 ============ - -cost: 0.0031053300700417613 - -patience: 1 - - -metrics_dict: {'f1_score_1': 0.7083333333333334, 'precision_1': 0.7264957264957265, 'recall_1': 0.6910569105691057, 'support_1': 123, 'f1_score': array([0.737, 0.708, 0.583, 0.716, 0.851, 0.808]), 'precision': array([0.636, 0.726, 0.533, 0.850, 0.851, 0.759]), 'recall': array([0.875, 0.691, 0.643, 0.618, 0.851, 0.863]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7338340871235608, 'avg_precision': 0.7260966986870602, 'avg_recall': 0.7569101535982591, 'accuracy': 0.716, 'epoch': 27.0, 'f_d_global_step': 4482} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.726 Current is: 0.716 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_1/checkpoints/hls-model-1168 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_1/checkpoints/f_d_U/best.ckpt-4150 - - -========== epoch : 7 ============ - -cost: 0.0021500629250588085 - -patience: 2 - - -metrics_dict: {'f1_score_1': 0.7083333333333334, 'precision_1': 0.7264957264957265, 'recall_1': 0.6910569105691057, 'support_1': 123, 'f1_score': array([0.737, 0.708, 0.587, 0.682, 0.851, 0.797]), 'precision': array([0.636, 0.726, 0.517, 0.909, 0.851, 0.741]), 'recall': array([0.875, 0.691, 0.679, 0.545, 0.851, 0.863]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7271143188448318, 'avg_precision': 0.7302474827684913, 'avg_recall': 0.750741322429428, 'accuracy': 0.708, 'epoch': 28.0, 'f_d_global_step': 4648} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.726 Current is: 0.708 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_1/checkpoints/hls-model-1335 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_1/checkpoints/f_d_U/best.ckpt-4150 - - -========== epoch : 8 ============ - -cost: 0.0025326204541445815 - -patience: 3 - - -metrics_dict: {'f1_score_1': 0.7171314741035857, 'precision_1': 0.703125, 'recall_1': 0.7317073170731707, 'support_1': 123, 'f1_score': array([0.667, 0.717, 0.565, 0.685, 0.834, 0.764]), 'precision': array([0.600, 0.703, 0.536, 0.897, 0.818, 0.685]), 'recall': array([0.750, 0.732, 0.598, 0.555, 0.851, 0.863]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7054442821346923, 'avg_precision': 0.706524708401147, 'avg_recall': 0.7248053512190666, 'accuracy': 0.7, 'epoch': 29.0, 'f_d_global_step': 4814} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.726 Current is: 0.7 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_1/checkpoints/hls-model-1502 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_1/checkpoints/f_d_U/best.ckpt-4150 - - -========== epoch : 9 ============ - -cost: 0.0013843963561808194 - -patience: 4 - - -metrics_dict: {'f1_score_1': 0.7073170731707317, 'precision_1': 0.7073170731707317, 'recall_1': 0.7073170731707317, 'support_1': 123, 'f1_score': array([0.737, 0.707, 0.575, 0.686, 0.837, 0.787]), 'precision': array([0.636, 0.707, 0.526, 0.923, 0.810, 0.724]), 'recall': array([0.875, 0.707, 0.634, 0.545, 0.865, 0.863]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7214789261271365, 'avg_precision': 0.7211580119750302, 'avg_recall': 0.7482631255914751, 'accuracy': 0.704, 'epoch': 30.0, 'f_d_global_step': 4980} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.726 Current is: 0.704 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_1/checkpoints/hls-model-1669 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_1/checkpoints/f_d_U/best.ckpt-4150 - -Optimization Finished for f_d_U! - Implication loss training end diff --git a/spear/Implyloss/logs/my_TREC/implication_0.1_0.1_10.txt b/spear/Implyloss/logs/my_TREC/implication_0.1_0.1_10.txt deleted file mode 100644 index 990442a..0000000 --- a/spear/Implyloss/logs/my_TREC/implication_0.1_0.1_10.txt +++ /dev/null @@ -1,448 +0,0 @@ -Hello 2 1 -2021-04-17 21:38:29.715830: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory -2021-04-17 21:38:29.715910: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/compat/v2_compat.py:96: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version. -Instructions for updating: -non-resource variables are not supported in the long term -Started Reading Flags - -checkpoint_load_mode = mru -d_pickle_name = d_processed.p -data_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC -dropout_keep_prob = 0.8 -early_stopping_p = 5 -f_d_adam_lr = 0.0003 -f_d_batch_size = 16 -f_d_class_sampling_str = 10,10,10,10,10,10 -f_d_epochs = 100 -f_d_metrics_pickle_name = metrics_train_f_on_d.p -f_d_primary_metric = accuracy -f_d_U_adam_lr = 0.0003 -f_d_U_batch_size = 32 -f_d_U_epochs = 100 -f_d_U_metrics_pickle_name = metrics_train_f_on_d_U.p -f_infer_out_pickle_name = infer_f.p -f_layers_str = 512,512 -gamma = 0.1 -lamda = 0.1 -min_rule_coverage = 0 -network_dropout = True -num_checkpoints = 1 -num_classes = 0 -num_load_d = 0 -num_load_U = 0 -num_load_validation = 0 -output_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_10 -rule_classes_str = -run_mode = implication -shuffle_batches = True -test_w_batch_size = 1000 -U_pickle_name = U_processed.p -use_joint_f_w = False -validation_pickle_name = validation_processed.p -w_infer_out_pickle_name = infer_w.p -w_layers_str = 512,512 - -Hi1 -Ended Reading Flags -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_10/d_processed.p -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/U_processed.p -Rule classes: [2, 1, 1, 4, 3, 2, 1, 3, 5, 4, 3, 2, 4, 1, 2, 5, 4, 1, 2, 4, 3, 1, 3, 2, 1, 1, 4, 4, 5, 1, 3, 5, 2, 1, 5, 1, 5, 5, 0, 5, 5, 1, 4, 2, 3, 2, 1, 3, 5, 1, 1, 3, 2, 1, 1, 5, 2, 3, 2, 5, 3, 3, 4, 5, 5, 4, 2, 0] -length of covered U: 4637 -Size of d before oversampling: 68 -Size of U (covered) : 4637 -Size of d after oversampling: 680 -Size of d_U after combining: 5317 -Loading 68 elements from d -num instances in d: 680 -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/validation_processed.p -Setting value of d to 0 for test data -test_w len: 476 -test_w len: 476 -Number of features: 1024 -Number of classes: 6 -Print num of rules to train: 68 -Print num of rules: 68 - - - -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_10/metrics_train_f_on_d.p' -Did not find prev best metric for run type f_d. Setting to zero. -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_10/metrics_train_f_on_d_U.p' -Did not find prev best metric for run type f_d_U. Setting to zero. -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/legacy_tf_layers/core.py:171: UserWarning: `tf.layers.dense` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dense` instead. - warnings.warn('`tf.layers.dense` is deprecated and ' -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer_v1.py:1719: UserWarning: `layer.apply` is deprecated and will be removed in a future version. Please use `layer.__call__` method instead. - warnings.warn('`layer.apply` is deprecated and ' -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version. -Instructions for updating: -Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version. -Instructions for updating: - -Future major versions of TensorFlow will allow gradients to flow -into the labels input on backprop by default. - -See `tf.nn.softmax_cross_entropy_with_logits_v2`. - -WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/Data_Pgm_Subset_Slc/Implyloss/my_model.py:615: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. -Instructions for updating: -Use `tf.cast` instead. -[ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" -] -2021-04-17 21:38:34.300208: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA -To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. -2021-04-17 21:38:34.300878: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set -2021-04-17 21:38:34.301206: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory -2021-04-17 21:38:34.301229: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed call to cuInit: UNKNOWN ERROR (303) -2021-04-17 21:38:34.301258: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (parth-G3-3590): /proc/driver/nvidia/version does not exist -2021-04-17 21:38:34.661148: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:196] None of the MLIR optimization passes are enabled (registered 0 passes) -2021-04-17 21:38:34.688628: I tensorflow/core/platform/profile_utils/cpu_utils.cc:112] CPU Frequency: 2599990000 Hz -Run mode is implication -begin Implication loss training -num_instances: 5317 -batch_size: 32 -total_batch: 166 -remaining: 5 -total_batch: 166 -Optimization started for f_d_U with implication loss! -Batch size: 32! -Batches per epoch : 166! -Number of epochs: 100! - -========== epoch : 0 ============ - -cost: 0.33620632424142716 - -patience: 0 - -/home/parth/.local/lib/python3.8/site-packages/sklearn/metrics/classification.py:1436: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. - precision = _prf_divide(tp_sum, pred_sum, - -metrics_dict: {'f1_score_1': 0.6621160409556314, 'precision_1': 0.5705882352941176, 'recall_1': 0.7886178861788617, 'support_1': 123, 'f1_score': array([0.000, 0.662, 0.504, 0.692, 0.713, 0.728]), 'precision': array([0.000, 0.571, 0.484, 0.853, 0.836, 0.705]), 'recall': array([0.000, 0.789, 0.527, 0.582, 0.622, 0.753]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.5499894254811207, 'avg_precision': 0.5748366612493904, 'avg_recall': 0.5453780102397711, 'accuracy': 0.642, 'epoch': 1.0, 'f_d_global_step': 166} - -Reporting f_d metrics to tensorboard - -dumped metrics dict to file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_10/metrics_train_f_on_d_U.p - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_10/checkpoints/hls-model-166 - -Saved new best checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_10/checkpoints/f_d_U/best.ckpt-166 - - -========== epoch : 1 ============ - -cost: 0.09007853769742133 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.6799999999999999, 'precision_1': 0.576271186440678, 'recall_1': 0.8292682926829268, 'support_1': 123, 'f1_score': array([0.364, 0.680, 0.487, 0.751, 0.741, 0.737]), 'precision': array([0.667, 0.576, 0.597, 0.811, 0.820, 0.678]), 'recall': array([0.250, 0.829, 0.411, 0.700, 0.676, 0.808]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6266448505574521, 'avg_precision': 0.6914499694978643, 'avg_recall': 0.6123129053591799, 'accuracy': 0.672, 'epoch': 2.0, 'f_d_global_step': 332} - -Reporting f_d metrics to tensorboard - -dumped metrics dict to file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_10/metrics_train_f_on_d_U.p - -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/training/saver.py:968: remove_checkpoint (from tensorflow.python.training.checkpoint_management) is deprecated and will be removed in a future version. -Instructions for updating: -Use standard file APIs to delete files with this prefix. -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_10/checkpoints/hls-model-333 - -Saved new best checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_10/checkpoints/f_d_U/best.ckpt-332 - - -========== epoch : 2 ============ - -cost: 0.05403778158655638 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.6936026936026937, 'precision_1': 0.5919540229885057, 'recall_1': 0.8373983739837398, 'support_1': 123, 'f1_score': array([0.615, 0.694, 0.468, 0.740, 0.769, 0.760]), 'precision': array([0.800, 0.592, 0.516, 0.866, 0.797, 0.740]), 'recall': array([0.500, 0.837, 0.429, 0.645, 0.743, 0.781]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6743490157463735, 'avg_precision': 0.718549650553043, 'avg_recall': 0.6559149181768626, 'accuracy': 0.676, 'epoch': 3.0, 'f_d_global_step': 498} - -Reporting f_d metrics to tensorboard - -dumped metrics dict to file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_10/metrics_train_f_on_d_U.p - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_10/checkpoints/hls-model-500 - -Saved new best checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_10/checkpoints/f_d_U/best.ckpt-498 - - -========== epoch : 3 ============ - -cost: 0.043564738293391615 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.7228070175438596, 'precision_1': 0.6358024691358025, 'recall_1': 0.8373983739837398, 'support_1': 123, 'f1_score': array([0.875, 0.723, 0.516, 0.738, 0.800, 0.776]), 'precision': array([0.875, 0.636, 0.513, 0.896, 0.885, 0.747]), 'recall': array([0.875, 0.837, 0.518, 0.627, 0.730, 0.808]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7379410461686003, 'avg_precision': 0.7587103410333672, 'avg_recall': 0.7325795253209219, 'accuracy': 0.7, 'epoch': 4.0, 'f_d_global_step': 664} - -Reporting f_d metrics to tensorboard - -dumped metrics dict to file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_10/metrics_train_f_on_d_U.p - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_10/checkpoints/hls-model-667 - -Saved new best checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_10/checkpoints/f_d_U/best.ckpt-664 - - -========== epoch : 4 ============ - -cost: 0.028156728417463944 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.7214285714285714, 'precision_1': 0.643312101910828, 'recall_1': 0.8211382113821138, 'support_1': 123, 'f1_score': array([0.750, 0.721, 0.527, 0.740, 0.821, 0.752]), 'precision': array([0.750, 0.643, 0.527, 0.944, 0.917, 0.674]), 'recall': array([0.750, 0.821, 0.527, 0.609, 0.743, 0.849]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7184927418883674, 'avg_precision': 0.7423899163620761, 'avg_recall': 0.7165955244158552, 'accuracy': 0.7, 'epoch': 5.0, 'f_d_global_step': 830} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.7 Current is: 0.7 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_10/checkpoints/hls-model-834 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_10/checkpoints/f_d_U/best.ckpt-664 - - -========== epoch : 5 ============ - -cost: 0.028970754827745814 - -patience: 1 - - -metrics_dict: {'f1_score_1': 0.7224334600760456, 'precision_1': 0.6785714285714286, 'recall_1': 0.7723577235772358, 'support_1': 123, 'f1_score': array([0.889, 0.722, 0.509, 0.772, 0.829, 0.776]), 'precision': array([0.800, 0.679, 0.540, 0.848, 0.879, 0.696]), 'recall': array([1.000, 0.772, 0.482, 0.709, 0.784, 0.877]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7495604238801437, 'avg_precision': 0.740139594704812, 'avg_recall': 0.7706812670603181, 'accuracy': 0.714, 'epoch': 6.0, 'f_d_global_step': 996} - -Reporting f_d metrics to tensorboard - -dumped metrics dict to file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_10/metrics_train_f_on_d_U.p - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_10/checkpoints/hls-model-1001 - -Saved new best checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_10/checkpoints/f_d_U/best.ckpt-996 - - -========== epoch : 6 ============ - -cost: 0.02080901696961037 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.7351778656126482, 'precision_1': 0.7153846153846154, 'recall_1': 0.7560975609756098, 'support_1': 123, 'f1_score': array([0.824, 0.735, 0.542, 0.768, 0.824, 0.706]), 'precision': array([0.778, 0.715, 0.569, 0.864, 0.947, 0.579]), 'recall': array([0.875, 0.756, 0.518, 0.691, 0.730, 0.904]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.733124992279614, 'avg_precision': 0.7419569995421389, 'avg_recall': 0.7456171855854449, 'accuracy': 0.708, 'epoch': 7.0, 'f_d_global_step': 1162} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.714 Current is: 0.708 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_10/checkpoints/hls-model-1168 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_10/checkpoints/f_d_U/best.ckpt-996 - - -========== epoch : 7 ============ - -cost: 0.02254260764430109 - -patience: 1 - - -metrics_dict: {'f1_score_1': 0.7471698113207547, 'precision_1': 0.6971830985915493, 'recall_1': 0.8048780487804879, 'support_1': 123, 'f1_score': array([0.875, 0.747, 0.566, 0.722, 0.838, 0.792]), 'precision': array([0.875, 0.697, 0.523, 0.929, 0.919, 0.733]), 'recall': array([0.875, 0.805, 0.616, 0.591, 0.770, 0.863]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7567756547235178, 'avg_precision': 0.7792324630224686, 'avg_recall': 0.7533570895269025, 'accuracy': 0.72, 'epoch': 8.0, 'f_d_global_step': 1328} - -Reporting f_d metrics to tensorboard - -dumped metrics dict to file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_10/metrics_train_f_on_d_U.p - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_10/checkpoints/hls-model-1335 - -Saved new best checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_10/checkpoints/f_d_U/best.ckpt-1328 - - -========== epoch : 8 ============ - -cost: 0.01443623904758048 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.7166666666666667, 'precision_1': 0.7350427350427351, 'recall_1': 0.6991869918699187, 'support_1': 123, 'f1_score': array([0.706, 0.717, 0.568, 0.724, 0.837, 0.736]), 'precision': array([0.667, 0.735, 0.527, 0.893, 0.881, 0.634]), 'recall': array([0.750, 0.699, 0.616, 0.609, 0.797, 0.877]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7145476991720381, 'avg_precision': 0.7226701122594417, 'avg_recall': 0.7247264925994462, 'accuracy': 0.702, 'epoch': 9.0, 'f_d_global_step': 1494} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.72 Current is: 0.702 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_10/checkpoints/hls-model-1502 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_10/checkpoints/f_d_U/best.ckpt-1328 - - -========== epoch : 9 ============ - -cost: 0.01576748096226492 - -patience: 1 - - -metrics_dict: {'f1_score_1': 0.7509578544061303, 'precision_1': 0.7101449275362319, 'recall_1': 0.7967479674796748, 'support_1': 123, 'f1_score': array([0.824, 0.751, 0.559, 0.758, 0.847, 0.805]), 'precision': array([0.778, 0.710, 0.532, 0.900, 0.921, 0.744]), 'recall': array([0.875, 0.797, 0.589, 0.655, 0.784, 0.877]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7572418019865467, 'avg_precision': 0.7641669561627812, 'avg_recall': 0.762679208143625, 'accuracy': 0.73, 'epoch': 10.0, 'f_d_global_step': 1660} - -Reporting f_d metrics to tensorboard - -dumped metrics dict to file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_10/metrics_train_f_on_d_U.p - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_10/checkpoints/hls-model-1669 - -Saved new best checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_10/checkpoints/f_d_U/best.ckpt-1660 - - -========== epoch : 10 ============ - -cost: 0.0174705804055334 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.7230769230769232, 'precision_1': 0.6861313868613139, 'recall_1': 0.7642276422764228, 'support_1': 123, 'f1_score': array([0.762, 0.723, 0.566, 0.710, 0.754, 0.819]), 'precision': array([0.615, 0.686, 0.600, 0.890, 0.653, 0.803]), 'recall': array([1.000, 0.764, 0.536, 0.591, 0.892, 0.836]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7224132658477305, 'avg_precision': 0.7080039811053435, 'avg_recall': 0.7697265581913092, 'accuracy': 0.708, 'epoch': 11.0, 'f_d_global_step': 1826} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.73 Current is: 0.708 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_10/checkpoints/hls-model-1836 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_10/checkpoints/f_d_U/best.ckpt-1660 - - -========== epoch : 11 ============ - -cost: 0.012719249102011387 - -patience: 1 - - -metrics_dict: {'f1_score_1': 0.7208480565371024, 'precision_1': 0.6375, 'recall_1': 0.8292682926829268, 'support_1': 123, 'f1_score': array([0.824, 0.721, 0.430, 0.736, 0.821, 0.687]), 'precision': array([0.778, 0.637, 0.617, 0.931, 0.805, 0.549]), 'recall': array([0.875, 0.829, 0.330, 0.609, 0.838, 0.918]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7032075504774499, 'avg_precision': 0.719479188843943, 'avg_recall': 0.7332270669411497, 'accuracy': 0.684, 'epoch': 12.0, 'f_d_global_step': 1992} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.73 Current is: 0.684 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_10/checkpoints/hls-model-2003 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_10/checkpoints/f_d_U/best.ckpt-1660 - - -========== epoch : 12 ============ - -cost: 0.005480544021031756 - -patience: 2 - - -metrics_dict: {'f1_score_1': 0.7398373983739838, 'precision_1': 0.7398373983739838, 'recall_1': 0.7398373983739838, 'support_1': 123, 'f1_score': array([0.778, 0.740, 0.605, 0.738, 0.821, 0.787]), 'precision': array([0.700, 0.740, 0.571, 0.896, 0.805, 0.724]), 'recall': array([0.875, 0.740, 0.643, 0.627, 0.838, 0.863]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7448861933961864, 'avg_precision': 0.73945043368929, 'avg_recall': 0.7643031341619714, 'accuracy': 0.728, 'epoch': 13.0, 'f_d_global_step': 2158} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.73 Current is: 0.728 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_10/checkpoints/hls-model-2170 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_10/checkpoints/f_d_U/best.ckpt-1660 - - -========== epoch : 13 ============ - -cost: 0.021041941106536306 - -patience: 3 - - -metrics_dict: {'f1_score_1': 0.7125506072874495, 'precision_1': 0.7096774193548387, 'recall_1': 0.7154471544715447, 'support_1': 123, 'f1_score': array([0.778, 0.713, 0.561, 0.671, 0.821, 0.795]), 'precision': array([0.700, 0.710, 0.504, 0.950, 0.805, 0.727]), 'recall': array([0.875, 0.715, 0.634, 0.518, 0.838, 0.877]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7230674252290809, 'avg_precision': 0.7326151751855252, 'avg_recall': 0.7428512851144825, 'accuracy': 0.698, 'epoch': 14.0, 'f_d_global_step': 2324} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.73 Current is: 0.698 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_10/checkpoints/hls-model-2337 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_10/checkpoints/f_d_U/best.ckpt-1660 - - -========== epoch : 14 ============ - -cost: 0.004533340382240347 - -patience: 4 - - -metrics_dict: {'f1_score_1': 0.6753246753246753, 'precision_1': 0.7222222222222222, 'recall_1': 0.6341463414634146, 'support_1': 123, 'f1_score': array([0.778, 0.675, 0.569, 0.671, 0.813, 0.813]), 'precision': array([0.700, 0.722, 0.473, 0.950, 0.803, 0.792]), 'recall': array([0.875, 0.634, 0.714, 0.518, 0.824, 0.836]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.719958728809472, 'avg_precision': 0.740072395740412, 'avg_recall': 0.7335924394352394, 'accuracy': 0.688, 'epoch': 15.0, 'f_d_global_step': 2490} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.73 Current is: 0.688 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_10/checkpoints/hls-model-2504 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_10/checkpoints/f_d_U/best.ckpt-1660 - - -========== epoch : 15 ============ - -cost: 0.0037118709622584287 - -patience: 5 - - -metrics_dict: {'f1_score_1': 0.7200000000000001, 'precision_1': 0.7086614173228346, 'recall_1': 0.7317073170731707, 'support_1': 123, 'f1_score': array([0.778, 0.720, 0.563, 0.663, 0.813, 0.800]), 'precision': array([0.700, 0.709, 0.490, 0.949, 0.803, 0.779]), 'recall': array([0.875, 0.732, 0.661, 0.509, 0.824, 0.822]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7227617745312979, 'avg_precision': 0.738288757171571, 'avg_recall': 0.7371257740703113, 'accuracy': 0.696, 'epoch': 16.0, 'f_d_global_step': 2656} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.73 Current is: 0.696 -bye! stopping early!...... -Optimization Finished for f_d_U! - Implication loss training end diff --git a/spear/Implyloss/logs/my_TREC/implication_0.1_0.1_2.txt b/spear/Implyloss/logs/my_TREC/implication_0.1_0.1_2.txt deleted file mode 100644 index 0beddd4..0000000 --- a/spear/Implyloss/logs/my_TREC/implication_0.1_0.1_2.txt +++ /dev/null @@ -1,273 +0,0 @@ -Hello 2 1 -2021-04-17 22:04:15.958355: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory -2021-04-17 22:04:15.958409: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/compat/v2_compat.py:96: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version. -Instructions for updating: -non-resource variables are not supported in the long term -Started Reading Flags - -checkpoint_load_mode = mru -d_pickle_name = d_processed.p -data_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC -dropout_keep_prob = 0.8 -early_stopping_p = 5 -f_d_adam_lr = 0.0003 -f_d_batch_size = 16 -f_d_class_sampling_str = 10,10,10,10,10,10 -f_d_epochs = 10 -f_d_metrics_pickle_name = metrics_train_f_on_d.p -f_d_primary_metric = accuracy -f_d_U_adam_lr = 0.0003 -f_d_U_batch_size = 32 -f_d_U_epochs = 10 -f_d_U_metrics_pickle_name = metrics_train_f_on_d_U.p -f_infer_out_pickle_name = infer_f.p -f_layers_str = 512,512 -gamma = 0.1 -lamda = 0.1 -min_rule_coverage = 0 -network_dropout = True -num_checkpoints = 1 -num_classes = 0 -num_load_d = 0 -num_load_U = 0 -num_load_validation = 0 -output_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_2 -rule_classes_str = -run_mode = implication -shuffle_batches = True -test_w_batch_size = 1000 -U_pickle_name = U_processed.p -use_joint_f_w = False -validation_pickle_name = validation_processed.p -w_infer_out_pickle_name = infer_w.p -w_layers_str = 512,512 - -Hi1 -Ended Reading Flags -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_2/d_processed.p -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/U_processed.p -Rule classes: [2, 1, 1, 4, 3, 2, 1, 3, 5, 4, 3, 2, 4, 1, 2, 5, 4, 1, 2, 4, 3, 1, 3, 2, 1, 1, 4, 4, 5, 1, 3, 5, 2, 1, 5, 1, 5, 5, 0, 5, 5, 1, 4, 2, 3, 2, 1, 3, 5, 1, 1, 3, 2, 1, 1, 5, 2, 3, 2, 5, 3, 3, 4, 5, 5, 4, 2, 0] -length of covered U: 4637 -Size of d before oversampling: 68 -Size of U (covered) : 4637 -Size of d after oversampling: 680 -Size of d_U after combining: 5317 -Loading 68 elements from d -num instances in d: 680 -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/validation_processed.p -Setting value of d to 0 for test data -test_w len: 476 -test_w len: 476 -Number of features: 1024 -Number of classes: 6 -Print num of rules to train: 68 -Print num of rules: 68 - - - -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_2/metrics_train_f_on_d.p' -Did not find prev best metric for run type f_d. Setting to zero. -Found prev best metric for run type f_d_U: 0.732 -best metrics dict: {'f1_score_1': 0.744, 'precision_1': 0.7322834645669292, 'recall_1': 0.7560975609756098, 'support_1': 123, 'f1_score': array([0.77777778, 0.744 , 0.57641921, 0.7638191 , 0.85106383, - 0.78527607]), 'precision': array([0.7 , 0.73228346, 0.56410256, 0.85393258, 0.89552239, - 0.71111111]), 'recall': array([0.875 , 0.75609756, 0.58928571, 0.69090909, 0.81081081, - 0.87671233]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7497259984393049, 'avg_precision': 0.7428253520183281, 'avg_recall': 0.7664692509580582, 'accuracy': 0.732, 'epoch': 8.0, 'f_d_global_step': 1328} -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/legacy_tf_layers/core.py:171: UserWarning: `tf.layers.dense` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dense` instead. - warnings.warn('`tf.layers.dense` is deprecated and ' -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer_v1.py:1719: UserWarning: `layer.apply` is deprecated and will be removed in a future version. Please use `layer.__call__` method instead. - warnings.warn('`layer.apply` is deprecated and ' -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version. -Instructions for updating: -Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version. -Instructions for updating: - -Future major versions of TensorFlow will allow gradients to flow -into the labels input on backprop by default. - -See `tf.nn.softmax_cross_entropy_with_logits_v2`. - -WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/Data_Pgm_Subset_Slc/Implyloss/my_model.py:615: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. -Instructions for updating: -Use `tf.cast` instead. -[ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" -] -2021-04-17 22:04:18.726553: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA -To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. -2021-04-17 22:04:18.727217: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set -2021-04-17 22:04:18.727389: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory -2021-04-17 22:04:18.727409: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed call to cuInit: UNKNOWN ERROR (303) -2021-04-17 22:04:18.727443: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (parth-G3-3590): /proc/driver/nvidia/version does not exist -2021-04-17 22:04:18.974369: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:196] None of the MLIR optimization passes are enabled (registered 0 passes) -2021-04-17 22:04:19.016351: I tensorflow/core/platform/profile_utils/cpu_utils.cc:112] CPU Frequency: 2599990000 Hz -Restoring checkpoint from path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_2/checkpoints/hls-model-2170 -Run mode is implication -begin Implication loss training -num_instances: 5317 -batch_size: 32 -total_batch: 166 -remaining: 5 -total_batch: 166 -Optimization started for f_d_U with implication loss! -Batch size: 32! -Batches per epoch : 166! -Number of epochs: 10! - -========== epoch : 0 ============ - -cost: 0.007765517095563208 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.7074235807860263, 'precision_1': 0.7641509433962265, 'recall_1': 0.6585365853658537, 'support_1': 123, 'f1_score': array([0.824, 0.707, 0.590, 0.705, 0.844, 0.751]), 'precision': array([0.778, 0.764, 0.545, 0.838, 0.849, 0.650]), 'recall': array([0.875, 0.659, 0.643, 0.609, 0.838, 0.890]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7368937644238146, 'avg_precision': 0.73736638918695, 'avg_recall': 0.7522889056759755, 'accuracy': 0.708, 'epoch': 14.0, 'f_d_global_step': 2324} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.732 Current is: 0.708 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_2/checkpoints/hls-model-166 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_2/checkpoints/f_d_U/best.ckpt-1328 - - -========== epoch : 1 ============ - -cost: 0.019230422273196098 - -patience: 1 - - -metrics_dict: {'f1_score_1': 0.7228915662650603, 'precision_1': 0.7142857142857143, 'recall_1': 0.7317073170731707, 'support_1': 123, 'f1_score': array([0.778, 0.723, 0.592, 0.663, 0.836, 0.784]), 'precision': array([0.700, 0.714, 0.510, 0.919, 0.847, 0.773]), 'recall': array([0.875, 0.732, 0.705, 0.518, 0.824, 0.795]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7291034272471122, 'avg_precision': 0.743978921317631, 'avg_recall': 0.7415151917302768, 'accuracy': 0.704, 'epoch': 15.0, 'f_d_global_step': 2490} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.732 Current is: 0.704 - -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/training/saver.py:968: remove_checkpoint (from tensorflow.python.training.checkpoint_management) is deprecated and will be removed in a future version. -Instructions for updating: -Use standard file APIs to delete files with this prefix. -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_2/checkpoints/hls-model-333 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_2/checkpoints/f_d_U/best.ckpt-1328 - - -========== epoch : 2 ============ - -cost: 0.02439473361765379 - -patience: 2 - - -metrics_dict: {'f1_score_1': 0.6938775510204082, 'precision_1': 0.5964912280701754, 'recall_1': 0.8292682926829268, 'support_1': 123, 'f1_score': array([0.400, 0.694, 0.484, 0.663, 0.820, 0.764]), 'precision': array([1.000, 0.596, 0.486, 0.949, 0.877, 0.685]), 'recall': array([0.250, 0.829, 0.482, 0.509, 0.770, 0.863]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6374474376292348, 'avg_precision': 0.7656393237580454, 'avg_recall': 0.6172976713028501, 'accuracy': 0.668, 'epoch': 16.0, 'f_d_global_step': 2656} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.732 Current is: 0.668 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_2/checkpoints/hls-model-500 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_2/checkpoints/f_d_U/best.ckpt-1328 - - -========== epoch : 3 ============ - -cost: 0.004985036755711174 - -patience: 3 - - -metrics_dict: {'f1_score_1': 0.7490039840637451, 'precision_1': 0.734375, 'recall_1': 0.7642276422764228, 'support_1': 123, 'f1_score': array([0.778, 0.749, 0.582, 0.656, 0.813, 0.790]), 'precision': array([0.700, 0.734, 0.538, 0.843, 0.803, 0.738]), 'recall': array([0.875, 0.764, 0.634, 0.536, 0.824, 0.849]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7279077968404364, 'avg_precision': 0.7259729579630895, 'avg_recall': 0.7471932071476842, 'accuracy': 0.708, 'epoch': 17.0, 'f_d_global_step': 2822} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.732 Current is: 0.708 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_2/checkpoints/hls-model-667 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_2/checkpoints/f_d_U/best.ckpt-1328 - - -========== epoch : 4 ============ - -cost: 0.0035475617177030206 - -patience: 4 - - -metrics_dict: {'f1_score_1': 0.7407407407407408, 'precision_1': 0.75, 'recall_1': 0.7317073170731707, 'support_1': 123, 'f1_score': array([0.778, 0.741, 0.583, 0.678, 0.813, 0.768]), 'precision': array([0.700, 0.750, 0.547, 0.871, 0.778, 0.692]), 'recall': array([0.875, 0.732, 0.625, 0.555, 0.851, 0.863]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7268042563938185, 'avg_precision': 0.7230648402523402, 'avg_recall': 0.7501029702666856, 'accuracy': 0.708, 'epoch': 18.0, 'f_d_global_step': 2988} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.732 Current is: 0.708 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_2/checkpoints/hls-model-834 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_2/checkpoints/f_d_U/best.ckpt-1328 - - -========== epoch : 5 ============ - -cost: 0.002818064732531616 - -patience: 5 - - -metrics_dict: {'f1_score_1': 0.7341772151898733, 'precision_1': 0.7631578947368421, 'recall_1': 0.7073170731707317, 'support_1': 123, 'f1_score': array([0.824, 0.734, 0.591, 0.674, 0.811, 0.773]), 'precision': array([0.778, 0.763, 0.524, 0.882, 0.811, 0.700]), 'recall': array([0.875, 0.707, 0.679, 0.545, 0.811, 0.863]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7345200941369092, 'avg_precision': 0.743039559256064, 'avg_recall': 0.7466945927729424, 'accuracy': 0.706, 'epoch': 19.0, 'f_d_global_step': 3154} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.732 Current is: 0.706 -bye! stopping early!...... -Optimization Finished for f_d_U! - Implication loss training end diff --git a/spear/Implyloss/logs/my_TREC/implication_0.1_0.1_3.txt b/spear/Implyloss/logs/my_TREC/implication_0.1_0.1_3.txt deleted file mode 100644 index d43a956..0000000 --- a/spear/Implyloss/logs/my_TREC/implication_0.1_0.1_3.txt +++ /dev/null @@ -1,273 +0,0 @@ -Hello 2 1 -2021-04-17 22:04:15.981492: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory -2021-04-17 22:04:15.981565: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/compat/v2_compat.py:96: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version. -Instructions for updating: -non-resource variables are not supported in the long term -Started Reading Flags - -checkpoint_load_mode = mru -d_pickle_name = d_processed.p -data_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC -dropout_keep_prob = 0.8 -early_stopping_p = 5 -f_d_adam_lr = 0.0003 -f_d_batch_size = 16 -f_d_class_sampling_str = 10,10,10,10,10,10 -f_d_epochs = 10 -f_d_metrics_pickle_name = metrics_train_f_on_d.p -f_d_primary_metric = accuracy -f_d_U_adam_lr = 0.0003 -f_d_U_batch_size = 32 -f_d_U_epochs = 10 -f_d_U_metrics_pickle_name = metrics_train_f_on_d_U.p -f_infer_out_pickle_name = infer_f.p -f_layers_str = 512,512 -gamma = 0.1 -lamda = 0.1 -min_rule_coverage = 0 -network_dropout = True -num_checkpoints = 1 -num_classes = 0 -num_load_d = 0 -num_load_U = 0 -num_load_validation = 0 -output_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_3 -rule_classes_str = -run_mode = implication -shuffle_batches = True -test_w_batch_size = 1000 -U_pickle_name = U_processed.p -use_joint_f_w = False -validation_pickle_name = validation_processed.p -w_infer_out_pickle_name = infer_w.p -w_layers_str = 512,512 - -Hi1 -Ended Reading Flags -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_3/d_processed.p -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/U_processed.p -Rule classes: [2, 1, 1, 4, 3, 2, 1, 3, 5, 4, 3, 2, 4, 1, 2, 5, 4, 1, 2, 4, 3, 1, 3, 2, 1, 1, 4, 4, 5, 1, 3, 5, 2, 1, 5, 1, 5, 5, 0, 5, 5, 1, 4, 2, 3, 2, 1, 3, 5, 1, 1, 3, 2, 1, 1, 5, 2, 3, 2, 5, 3, 3, 4, 5, 5, 4, 2, 0] -length of covered U: 4637 -Size of d before oversampling: 68 -Size of U (covered) : 4637 -Size of d after oversampling: 680 -Size of d_U after combining: 5317 -Loading 68 elements from d -num instances in d: 680 -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/validation_processed.p -Setting value of d to 0 for test data -test_w len: 476 -test_w len: 476 -Number of features: 1024 -Number of classes: 6 -Print num of rules to train: 68 -Print num of rules: 68 - - - -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_3/metrics_train_f_on_d.p' -Did not find prev best metric for run type f_d. Setting to zero. -Found prev best metric for run type f_d_U: 0.718 -best metrics dict: {'f1_score_1': 0.734375, 'precision_1': 0.706766917293233, 'recall_1': 0.7642276422764228, 'support_1': 123, 'f1_score': array([0.8 , 0.734375 , 0.56198347, 0.75376884, 0.80882353, - 0.80263158]), 'precision': array([0.85714286, 0.70676692, 0.52307692, 0.84269663, 0.88709677, - 0.7721519 ]), 'recall': array([0.75 , 0.76422764, 0.60714286, 0.68181818, 0.74324324, - 0.83561644]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.743597070609103, 'avg_precision': 0.7648219999423703, 'avg_recall': 0.7303413938061448, 'accuracy': 0.718, 'epoch': 7.0, 'f_d_global_step': 1162} -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/legacy_tf_layers/core.py:171: UserWarning: `tf.layers.dense` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dense` instead. - warnings.warn('`tf.layers.dense` is deprecated and ' -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer_v1.py:1719: UserWarning: `layer.apply` is deprecated and will be removed in a future version. Please use `layer.__call__` method instead. - warnings.warn('`layer.apply` is deprecated and ' -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version. -Instructions for updating: -Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version. -Instructions for updating: - -Future major versions of TensorFlow will allow gradients to flow -into the labels input on backprop by default. - -See `tf.nn.softmax_cross_entropy_with_logits_v2`. - -WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/Data_Pgm_Subset_Slc/Implyloss/my_model.py:615: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. -Instructions for updating: -Use `tf.cast` instead. -[ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" -] -2021-04-17 22:04:18.739454: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA -To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. -2021-04-17 22:04:18.740058: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set -2021-04-17 22:04:18.740236: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory -2021-04-17 22:04:18.740256: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed call to cuInit: UNKNOWN ERROR (303) -2021-04-17 22:04:18.740275: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (parth-G3-3590): /proc/driver/nvidia/version does not exist -2021-04-17 22:04:18.999494: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:196] None of the MLIR optimization passes are enabled (registered 0 passes) -2021-04-17 22:04:19.020073: I tensorflow/core/platform/profile_utils/cpu_utils.cc:112] CPU Frequency: 2599990000 Hz -Restoring checkpoint from path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_3/checkpoints/hls-model-2003 -Run mode is implication -begin Implication loss training -num_instances: 5317 -batch_size: 32 -total_batch: 166 -remaining: 5 -total_batch: 166 -Optimization started for f_d_U with implication loss! -Batch size: 32! -Batches per epoch : 166! -Number of epochs: 10! - -========== epoch : 0 ============ - -cost: 0.00517653285465077 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.7401574803149606, 'precision_1': 0.7175572519083969, 'recall_1': 0.7642276422764228, 'support_1': 123, 'f1_score': array([0.842, 0.740, 0.547, 0.689, 0.816, 0.759]), 'precision': array([0.727, 0.718, 0.525, 0.886, 0.822, 0.677]), 'recall': array([1.000, 0.764, 0.571, 0.564, 0.811, 0.863]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7322538090934749, 'avg_precision': 0.7257452653146207, 'avg_recall': 0.7621861811303843, 'accuracy': 0.702, 'epoch': 13.0, 'f_d_global_step': 2158} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.718 Current is: 0.702 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_3/checkpoints/hls-model-166 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_3/checkpoints/f_d_U/best.ckpt-1162 - - -========== epoch : 1 ============ - -cost: 0.004403483415028103 - -patience: 1 - - -metrics_dict: {'f1_score_1': 0.7280334728033473, 'precision_1': 0.75, 'recall_1': 0.7073170731707317, 'support_1': 123, 'f1_score': array([0.842, 0.728, 0.576, 0.674, 0.800, 0.759]), 'precision': array([0.727, 0.750, 0.534, 0.882, 0.765, 0.677]), 'recall': array([1.000, 0.707, 0.625, 0.545, 0.838, 0.863]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7299106451921901, 'avg_precision': 0.7228047111819179, 'avg_recall': 0.7631038591822086, 'accuracy': 0.7, 'epoch': 14.0, 'f_d_global_step': 2324} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.718 Current is: 0.7 - -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/training/saver.py:968: remove_checkpoint (from tensorflow.python.training.checkpoint_management) is deprecated and will be removed in a future version. -Instructions for updating: -Use standard file APIs to delete files with this prefix. -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_3/checkpoints/hls-model-333 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_3/checkpoints/f_d_U/best.ckpt-1162 - - -========== epoch : 2 ============ - -cost: 0.004313493992336285 - -patience: 2 - - -metrics_dict: {'f1_score_1': 0.7130434782608696, 'precision_1': 0.7663551401869159, 'recall_1': 0.6666666666666666, 'support_1': 123, 'f1_score': array([0.706, 0.713, 0.587, 0.700, 0.824, 0.808]), 'precision': array([0.667, 0.766, 0.503, 0.900, 0.824, 0.759]), 'recall': array([0.750, 0.667, 0.705, 0.573, 0.824, 0.863]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7230505096690362, 'avg_precision': 0.7365944981886693, 'avg_recall': 0.730348184200924, 'accuracy': 0.708, 'epoch': 15.0, 'f_d_global_step': 2490} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.718 Current is: 0.708 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_3/checkpoints/hls-model-500 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_3/checkpoints/f_d_U/best.ckpt-1162 - - -========== epoch : 3 ============ - -cost: 0.01647110813609102 - -patience: 3 - - -metrics_dict: {'f1_score_1': 0.70042194092827, 'precision_1': 0.7280701754385965, 'recall_1': 0.6747967479674797, 'support_1': 123, 'f1_score': array([0.727, 0.700, 0.600, 0.655, 0.785, 0.777]), 'precision': array([0.571, 0.728, 0.543, 0.918, 0.719, 0.726]), 'recall': array([1.000, 0.675, 0.670, 0.509, 0.865, 0.836]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7075019276248025, 'avg_precision': 0.7010502324013267, 'avg_recall': 0.7590019695703792, 'accuracy': 0.694, 'epoch': 16.0, 'f_d_global_step': 2656} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.718 Current is: 0.694 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_3/checkpoints/hls-model-667 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_3/checkpoints/f_d_U/best.ckpt-1162 - - -========== epoch : 4 ============ - -cost: 0.009586729051474082 - -patience: 4 - - -metrics_dict: {'f1_score_1': 0.7372881355932204, 'precision_1': 0.7699115044247787, 'recall_1': 0.7073170731707317, 'support_1': 123, 'f1_score': array([0.706, 0.737, 0.609, 0.700, 0.808, 0.814]), 'precision': array([0.667, 0.770, 0.526, 0.900, 0.768, 0.819]), 'recall': array([0.750, 0.707, 0.723, 0.573, 0.851, 0.808]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7289464093443264, 'avg_precision': 0.7417148874061242, 'avg_recall': 0.7354715268409722, 'accuracy': 0.718, 'epoch': 17.0, 'f_d_global_step': 2822} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.718 Current is: 0.718 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_3/checkpoints/hls-model-834 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_3/checkpoints/f_d_U/best.ckpt-1162 - - -========== epoch : 5 ============ - -cost: 0.024251953503032803 - -patience: 5 - - -metrics_dict: {'f1_score_1': 0.6568047337278107, 'precision_1': 0.5162790697674419, 'recall_1': 0.9024390243902439, 'support_1': 123, 'f1_score': array([0.500, 0.657, 0.172, 0.772, 0.800, 0.695]), 'precision': array([0.750, 0.516, 0.688, 0.874, 0.885, 0.564]), 'recall': array([0.375, 0.902, 0.098, 0.691, 0.730, 0.904]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.5991650299823312, 'avg_precision': 0.7127817923166925, 'avg_recall': 0.6167336199640744, 'accuracy': 0.642, 'epoch': 18.0, 'f_d_global_step': 2988} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.718 Current is: 0.642 -bye! stopping early!...... -Optimization Finished for f_d_U! - Implication loss training end diff --git a/spear/Implyloss/logs/my_TREC/implication_0.1_0.1_4.txt b/spear/Implyloss/logs/my_TREC/implication_0.1_0.1_4.txt deleted file mode 100644 index d4f172e..0000000 --- a/spear/Implyloss/logs/my_TREC/implication_0.1_0.1_4.txt +++ /dev/null @@ -1,273 +0,0 @@ -Hello 2 1 -2021-04-17 22:04:15.956771: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory -2021-04-17 22:04:15.956840: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/compat/v2_compat.py:96: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version. -Instructions for updating: -non-resource variables are not supported in the long term -Started Reading Flags - -checkpoint_load_mode = mru -d_pickle_name = d_processed.p -data_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC -dropout_keep_prob = 0.8 -early_stopping_p = 5 -f_d_adam_lr = 0.0003 -f_d_batch_size = 16 -f_d_class_sampling_str = 10,10,10,10,10,10 -f_d_epochs = 10 -f_d_metrics_pickle_name = metrics_train_f_on_d.p -f_d_primary_metric = accuracy -f_d_U_adam_lr = 0.0003 -f_d_U_batch_size = 32 -f_d_U_epochs = 10 -f_d_U_metrics_pickle_name = metrics_train_f_on_d_U.p -f_infer_out_pickle_name = infer_f.p -f_layers_str = 512,512 -gamma = 0.1 -lamda = 0.1 -min_rule_coverage = 0 -network_dropout = True -num_checkpoints = 1 -num_classes = 0 -num_load_d = 0 -num_load_U = 0 -num_load_validation = 0 -output_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_4 -rule_classes_str = -run_mode = implication -shuffle_batches = True -test_w_batch_size = 1000 -U_pickle_name = U_processed.p -use_joint_f_w = False -validation_pickle_name = validation_processed.p -w_infer_out_pickle_name = infer_w.p -w_layers_str = 512,512 - -Hi1 -Ended Reading Flags -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_4/d_processed.p -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/U_processed.p -Rule classes: [2, 1, 1, 4, 3, 2, 1, 3, 5, 4, 3, 2, 4, 1, 2, 5, 4, 1, 2, 4, 3, 1, 3, 2, 1, 1, 4, 4, 5, 1, 3, 5, 2, 1, 5, 1, 5, 5, 0, 5, 5, 1, 4, 2, 3, 2, 1, 3, 5, 1, 1, 3, 2, 1, 1, 5, 2, 3, 2, 5, 3, 3, 4, 5, 5, 4, 2, 0] -length of covered U: 4637 -Size of d before oversampling: 68 -Size of U (covered) : 4637 -Size of d after oversampling: 680 -Size of d_U after combining: 5317 -Loading 68 elements from d -num instances in d: 680 -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/validation_processed.p -Setting value of d to 0 for test data -test_w len: 476 -test_w len: 476 -Number of features: 1024 -Number of classes: 6 -Print num of rules to train: 68 -Print num of rules: 68 - - - -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_4/metrics_train_f_on_d.p' -Did not find prev best metric for run type f_d. Setting to zero. -Found prev best metric for run type f_d_U: 0.736 -best metrics dict: {'f1_score_1': 0.7272727272727273, 'precision_1': 0.7394957983193278, 'recall_1': 0.7154471544715447, 'support_1': 123, 'f1_score': array([0.77777778, 0.72727273, 0.59836066, 0.76142132, 0.85714286, - 0.81578947]), 'precision': array([0.7 , 0.7394958 , 0.5530303 , 0.86206897, 0.8630137 , - 0.78481013]), 'recall': array([0.875 , 0.71544715, 0.65178571, 0.68181818, 0.85135135, - 0.84931507]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7562941352353719, 'avg_precision': 0.7504031486798812, 'avg_recall': 0.7707862450699904, 'accuracy': 0.736, 'epoch': 10.0, 'f_d_global_step': 1660} -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/legacy_tf_layers/core.py:171: UserWarning: `tf.layers.dense` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dense` instead. - warnings.warn('`tf.layers.dense` is deprecated and ' -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer_v1.py:1719: UserWarning: `layer.apply` is deprecated and will be removed in a future version. Please use `layer.__call__` method instead. - warnings.warn('`layer.apply` is deprecated and ' -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version. -Instructions for updating: -Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version. -Instructions for updating: - -Future major versions of TensorFlow will allow gradients to flow -into the labels input on backprop by default. - -See `tf.nn.softmax_cross_entropy_with_logits_v2`. - -WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/Data_Pgm_Subset_Slc/Implyloss/my_model.py:615: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. -Instructions for updating: -Use `tf.cast` instead. -[ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" -] -2021-04-17 22:04:18.753593: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA -To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. -2021-04-17 22:04:18.754314: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set -2021-04-17 22:04:18.754456: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory -2021-04-17 22:04:18.754474: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed call to cuInit: UNKNOWN ERROR (303) -2021-04-17 22:04:18.754493: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (parth-G3-3590): /proc/driver/nvidia/version does not exist -2021-04-17 22:04:19.037230: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:196] None of the MLIR optimization passes are enabled (registered 0 passes) -2021-04-17 22:04:19.071265: I tensorflow/core/platform/profile_utils/cpu_utils.cc:112] CPU Frequency: 2599990000 Hz -Restoring checkpoint from path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_4/checkpoints/hls-model-2504 -Run mode is implication -begin Implication loss training -num_instances: 5317 -batch_size: 32 -total_batch: 166 -remaining: 5 -total_batch: 166 -Optimization started for f_d_U with implication loss! -Batch size: 32! -Batches per epoch : 166! -Number of epochs: 10! - -========== epoch : 0 ============ - -cost: 0.00334085284561823 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.7000000000000001, 'precision_1': 0.717948717948718, 'recall_1': 0.6829268292682927, 'support_1': 123, 'f1_score': array([0.778, 0.700, 0.573, 0.710, 0.784, 0.767]), 'precision': array([0.700, 0.718, 0.549, 0.890, 0.759, 0.667]), 'recall': array([0.875, 0.683, 0.598, 0.591, 0.811, 0.904]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7187609083406441, 'avg_precision': 0.7139500570457371, 'avg_recall': 0.7436617676239293, 'accuracy': 0.698, 'epoch': 16.0, 'f_d_global_step': 2656} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.736 Current is: 0.698 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_4/checkpoints/hls-model-166 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_4/checkpoints/f_d_U/best.ckpt-1660 - - -========== epoch : 1 ============ - -cost: 0.003266142726488396 - -patience: 1 - - -metrics_dict: {'f1_score_1': 0.7165354330708661, 'precision_1': 0.6946564885496184, 'recall_1': 0.7398373983739838, 'support_1': 123, 'f1_score': array([0.778, 0.717, 0.555, 0.678, 0.819, 0.787]), 'precision': array([0.700, 0.695, 0.511, 0.922, 0.813, 0.724]), 'recall': array([0.875, 0.740, 0.607, 0.536, 0.824, 0.863]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7223113529189874, 'avg_precision': 0.7275468247343594, 'avg_recall': 0.7409469858058232, 'accuracy': 0.698, 'epoch': 17.0, 'f_d_global_step': 2822} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.736 Current is: 0.698 - -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/training/saver.py:968: remove_checkpoint (from tensorflow.python.training.checkpoint_management) is deprecated and will be removed in a future version. -Instructions for updating: -Use standard file APIs to delete files with this prefix. -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_4/checkpoints/hls-model-333 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_4/checkpoints/f_d_U/best.ckpt-1660 - - -========== epoch : 2 ============ - -cost: 0.003008834535996839 - -patience: 2 - - -metrics_dict: {'f1_score_1': 0.7213114754098361, 'precision_1': 0.7272727272727273, 'recall_1': 0.7154471544715447, 'support_1': 123, 'f1_score': array([0.778, 0.721, 0.584, 0.773, 0.813, 0.795]), 'precision': array([0.700, 0.727, 0.562, 0.893, 0.803, 0.727]), 'recall': array([0.875, 0.715, 0.607, 0.682, 0.824, 0.877]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7440567509724486, 'avg_precision': 0.7353362745707243, 'avg_recall': 0.7634074744206719, 'accuracy': 0.726, 'epoch': 18.0, 'f_d_global_step': 2988} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.736 Current is: 0.726 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_4/checkpoints/hls-model-500 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_4/checkpoints/f_d_U/best.ckpt-1660 - - -========== epoch : 3 ============ - -cost: 0.0026581840797341508 - -patience: 3 - - -metrics_dict: {'f1_score_1': 0.7338709677419354, 'precision_1': 0.728, 'recall_1': 0.7398373983739838, 'support_1': 123, 'f1_score': array([0.778, 0.734, 0.588, 0.773, 0.808, 0.795]), 'precision': array([0.700, 0.728, 0.578, 0.893, 0.792, 0.727]), 'recall': array([0.875, 0.740, 0.598, 0.682, 0.824, 0.877]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7459236659703595, 'avg_precision': 0.7363206448723689, 'avg_recall': 0.765984419832983, 'accuracy': 0.73, 'epoch': 19.0, 'f_d_global_step': 3154} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.736 Current is: 0.73 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_4/checkpoints/hls-model-667 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_4/checkpoints/f_d_U/best.ckpt-1660 - - -========== epoch : 4 ============ - -cost: 0.0026458822369504666 - -patience: 4 - - -metrics_dict: {'f1_score_1': 0.7171314741035857, 'precision_1': 0.703125, 'recall_1': 0.7317073170731707, 'support_1': 123, 'f1_score': array([0.778, 0.717, 0.557, 0.686, 0.816, 0.776]), 'precision': array([0.700, 0.703, 0.515, 0.923, 0.822, 0.696]), 'recall': array([0.875, 0.732, 0.607, 0.545, 0.811, 0.877]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7216807821909662, 'avg_precision': 0.7264872367267765, 'avg_recall': 0.741137976541418, 'accuracy': 0.698, 'epoch': 20.0, 'f_d_global_step': 3320} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.736 Current is: 0.698 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_4/checkpoints/hls-model-834 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_4/checkpoints/f_d_U/best.ckpt-1660 - - -========== epoch : 5 ============ - -cost: 0.001903470900778444 - -patience: 5 - - -metrics_dict: {'f1_score_1': 0.7118644067796611, 'precision_1': 0.7433628318584071, 'recall_1': 0.6829268292682927, 'support_1': 123, 'f1_score': array([0.778, 0.712, 0.584, 0.717, 0.813, 0.790]), 'precision': array([0.700, 0.743, 0.529, 0.892, 0.803, 0.719]), 'recall': array([0.875, 0.683, 0.652, 0.600, 0.824, 0.877]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7324150465047871, 'avg_precision': 0.7309954889232584, 'avg_recall': 0.7517915327742425, 'accuracy': 0.71, 'epoch': 21.0, 'f_d_global_step': 3486} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.736 Current is: 0.71 -bye! stopping early!...... -Optimization Finished for f_d_U! - Implication loss training end diff --git a/spear/Implyloss/logs/my_TREC/implication_0.1_0.1_5.txt b/spear/Implyloss/logs/my_TREC/implication_0.1_0.1_5.txt deleted file mode 100644 index 1167daf..0000000 --- a/spear/Implyloss/logs/my_TREC/implication_0.1_0.1_5.txt +++ /dev/null @@ -1,273 +0,0 @@ -Hello 2 1 -2021-04-17 22:04:15.981492: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory -2021-04-17 22:04:15.981566: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/compat/v2_compat.py:96: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version. -Instructions for updating: -non-resource variables are not supported in the long term -Started Reading Flags - -checkpoint_load_mode = mru -d_pickle_name = d_processed.p -data_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC -dropout_keep_prob = 0.8 -early_stopping_p = 5 -f_d_adam_lr = 0.0003 -f_d_batch_size = 16 -f_d_class_sampling_str = 10,10,10,10,10,10 -f_d_epochs = 10 -f_d_metrics_pickle_name = metrics_train_f_on_d.p -f_d_primary_metric = accuracy -f_d_U_adam_lr = 0.0003 -f_d_U_batch_size = 32 -f_d_U_epochs = 10 -f_d_U_metrics_pickle_name = metrics_train_f_on_d_U.p -f_infer_out_pickle_name = infer_f.p -f_layers_str = 512,512 -gamma = 0.1 -lamda = 0.1 -min_rule_coverage = 0 -network_dropout = True -num_checkpoints = 1 -num_classes = 0 -num_load_d = 0 -num_load_U = 0 -num_load_validation = 0 -output_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_5 -rule_classes_str = -run_mode = implication -shuffle_batches = True -test_w_batch_size = 1000 -U_pickle_name = U_processed.p -use_joint_f_w = False -validation_pickle_name = validation_processed.p -w_infer_out_pickle_name = infer_w.p -w_layers_str = 512,512 - -Hi1 -Ended Reading Flags -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_5/d_processed.p -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/U_processed.p -Rule classes: [2, 1, 1, 4, 3, 2, 1, 3, 5, 4, 3, 2, 4, 1, 2, 5, 4, 1, 2, 4, 3, 1, 3, 2, 1, 1, 4, 4, 5, 1, 3, 5, 2, 1, 5, 1, 5, 5, 0, 5, 5, 1, 4, 2, 3, 2, 1, 3, 5, 1, 1, 3, 2, 1, 1, 5, 2, 3, 2, 5, 3, 3, 4, 5, 5, 4, 2, 0] -length of covered U: 4637 -Size of d before oversampling: 68 -Size of U (covered) : 4637 -Size of d after oversampling: 680 -Size of d_U after combining: 5317 -Loading 68 elements from d -num instances in d: 680 -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/validation_processed.p -Setting value of d to 0 for test data -test_w len: 476 -test_w len: 476 -Number of features: 1024 -Number of classes: 6 -Print num of rules to train: 68 -Print num of rules: 68 - - - -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_5/metrics_train_f_on_d.p' -Did not find prev best metric for run type f_d. Setting to zero. -Found prev best metric for run type f_d_U: 0.728 -best metrics dict: {'f1_score_1': 0.7318840579710145, 'precision_1': 0.6601307189542484, 'recall_1': 0.8211382113821138, 'support_1': 123, 'f1_score': array([0.875 , 0.73188406, 0.52727273, 0.78787879, 0.85517241, - 0.8 ]), 'precision': array([0.875 , 0.66013072, 0.53703704, 0.88636364, 0.87323944, - 0.80555556]), 'recall': array([0.875 , 0.82113821, 0.51785714, 0.70909091, 0.83783784, - 0.79452055]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7628679978192722, 'avg_precision': 0.7728877307550325, 'avg_recall': 0.7592407748522015, 'accuracy': 0.728, 'epoch': 5.0, 'f_d_global_step': 830} -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/legacy_tf_layers/core.py:171: UserWarning: `tf.layers.dense` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dense` instead. - warnings.warn('`tf.layers.dense` is deprecated and ' -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer_v1.py:1719: UserWarning: `layer.apply` is deprecated and will be removed in a future version. Please use `layer.__call__` method instead. - warnings.warn('`layer.apply` is deprecated and ' -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version. -Instructions for updating: -Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version. -Instructions for updating: - -Future major versions of TensorFlow will allow gradients to flow -into the labels input on backprop by default. - -See `tf.nn.softmax_cross_entropy_with_logits_v2`. - -WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/Data_Pgm_Subset_Slc/Implyloss/my_model.py:615: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. -Instructions for updating: -Use `tf.cast` instead. -[ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" -] -2021-04-17 22:04:18.734726: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA -To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. -2021-04-17 22:04:18.735379: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set -2021-04-17 22:04:18.735555: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory -2021-04-17 22:04:18.735572: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed call to cuInit: UNKNOWN ERROR (303) -2021-04-17 22:04:18.735591: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (parth-G3-3590): /proc/driver/nvidia/version does not exist -2021-04-17 22:04:18.987927: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:196] None of the MLIR optimization passes are enabled (registered 0 passes) -2021-04-17 22:04:19.007761: I tensorflow/core/platform/profile_utils/cpu_utils.cc:112] CPU Frequency: 2599990000 Hz -Restoring checkpoint from path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_5/checkpoints/hls-model-1669 -Run mode is implication -begin Implication loss training -num_instances: 5317 -batch_size: 32 -total_batch: 166 -remaining: 5 -total_batch: 166 -Optimization started for f_d_U with implication loss! -Batch size: 32! -Batches per epoch : 166! -Number of epochs: 10! - -========== epoch : 0 ============ - -cost: 0.02524343659997502 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.7073170731707317, 'precision_1': 0.7073170731707317, 'recall_1': 0.7073170731707317, 'support_1': 123, 'f1_score': array([0.842, 0.707, 0.585, 0.710, 0.816, 0.756]), 'precision': array([0.727, 0.707, 0.556, 0.890, 0.795, 0.681]), 'recall': array([1.000, 0.707, 0.616, 0.591, 0.838, 0.849]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.736072941226919, 'avg_precision': 0.726273808073545, 'avg_recall': 0.7669084164970399, 'accuracy': 0.706, 'epoch': 11.0, 'f_d_global_step': 1826} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.728 Current is: 0.706 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_5/checkpoints/hls-model-166 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_5/checkpoints/f_d_U/best.ckpt-830 - - -========== epoch : 1 ============ - -cost: 0.008808724664247041 - -patience: 1 - - -metrics_dict: {'f1_score_1': 0.6866952789699571, 'precision_1': 0.7272727272727273, 'recall_1': 0.6504065040650406, 'support_1': 123, 'f1_score': array([0.778, 0.687, 0.580, 0.678, 0.824, 0.770]), 'precision': array([0.700, 0.727, 0.517, 0.871, 0.797, 0.705]), 'recall': array([0.875, 0.650, 0.661, 0.555, 0.851, 0.849]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7193931230927818, 'avg_precision': 0.7196996041932749, 'avg_recall': 0.7402221106948805, 'accuracy': 0.694, 'epoch': 12.0, 'f_d_global_step': 1992} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.728 Current is: 0.694 - -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/training/saver.py:968: remove_checkpoint (from tensorflow.python.training.checkpoint_management) is deprecated and will be removed in a future version. -Instructions for updating: -Use standard file APIs to delete files with this prefix. -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_5/checkpoints/hls-model-333 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_5/checkpoints/f_d_U/best.ckpt-830 - - -========== epoch : 2 ============ - -cost: 0.006279135781966602 - -patience: 2 - - -metrics_dict: {'f1_score_1': 0.7364620938628158, 'precision_1': 0.6623376623376623, 'recall_1': 0.8292682926829268, 'support_1': 123, 'f1_score': array([0.824, 0.736, 0.548, 0.760, 0.851, 0.787]), 'precision': array([0.778, 0.662, 0.594, 0.844, 0.851, 0.766]), 'recall': array([0.875, 0.829, 0.509, 0.691, 0.851, 0.808]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7510144077870771, 'avg_precision': 0.7493158336908338, 'avg_recall': 0.760612747409022, 'accuracy': 0.728, 'epoch': 13.0, 'f_d_global_step': 2158} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.728 Current is: 0.728 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_5/checkpoints/hls-model-500 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_5/checkpoints/f_d_U/best.ckpt-830 - - -========== epoch : 3 ============ - -cost: 0.03277909476171947 - -patience: 3 - - -metrics_dict: {'f1_score_1': 0.7432950191570882, 'precision_1': 0.7028985507246377, 'recall_1': 0.7886178861788617, 'support_1': 123, 'f1_score': array([0.842, 0.743, 0.508, 0.779, 0.824, 0.721]), 'precision': array([0.727, 0.703, 0.667, 0.827, 0.824, 0.600]), 'recall': array([1.000, 0.789, 0.411, 0.736, 0.824, 0.904]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7363615881188293, 'avg_precision': 0.7246154802055423, 'avg_recall': 0.7773549536037007, 'accuracy': 0.718, 'epoch': 14.0, 'f_d_global_step': 2324} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.728 Current is: 0.718 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_5/checkpoints/hls-model-667 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_5/checkpoints/f_d_U/best.ckpt-830 - - -========== epoch : 4 ============ - -cost: 0.011959247920721415 - -patience: 4 - - -metrics_dict: {'f1_score_1': 0.7063492063492064, 'precision_1': 0.689922480620155, 'recall_1': 0.7235772357723578, 'support_1': 123, 'f1_score': array([0.842, 0.706, 0.565, 0.678, 0.853, 0.756]), 'precision': array([0.727, 0.690, 0.515, 0.922, 0.884, 0.681]), 'recall': array([1.000, 0.724, 0.625, 0.536, 0.824, 0.849]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.733395988700342, 'avg_precision': 0.7365254570964996, 'avg_recall': 0.7597633774922449, 'accuracy': 0.698, 'epoch': 15.0, 'f_d_global_step': 2490} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.728 Current is: 0.698 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_5/checkpoints/hls-model-834 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_5/checkpoints/f_d_U/best.ckpt-830 - - -========== epoch : 5 ============ - -cost: 0.006271934705133194 - -patience: 5 - - -metrics_dict: {'f1_score_1': 0.6572769953051643, 'precision_1': 0.7777777777777778, 'recall_1': 0.5691056910569106, 'support_1': 123, 'f1_score': array([0.750, 0.657, 0.555, 0.654, 0.791, 0.768]), 'precision': array([0.750, 0.778, 0.444, 0.694, 0.846, 0.923]), 'recall': array([0.750, 0.569, 0.741, 0.618, 0.743, 0.658]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.695945667019072, 'avg_precision': 0.7391227275681057, 'avg_recall': 0.6798560712714572, 'accuracy': 0.66, 'epoch': 16.0, 'f_d_global_step': 2656} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.728 Current is: 0.66 -bye! stopping early!...... -Optimization Finished for f_d_U! - Implication loss training end diff --git a/spear/Implyloss/logs/my_TREC/implication_0.1_0.1_6.txt b/spear/Implyloss/logs/my_TREC/implication_0.1_0.1_6.txt deleted file mode 100644 index 3ad8389..0000000 --- a/spear/Implyloss/logs/my_TREC/implication_0.1_0.1_6.txt +++ /dev/null @@ -1,465 +0,0 @@ -Hello 2 1 -2021-04-17 21:38:29.715862: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory -2021-04-17 21:38:29.715907: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/compat/v2_compat.py:96: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version. -Instructions for updating: -non-resource variables are not supported in the long term -Started Reading Flags - -checkpoint_load_mode = mru -d_pickle_name = d_processed.p -data_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC -dropout_keep_prob = 0.8 -early_stopping_p = 5 -f_d_adam_lr = 0.0003 -f_d_batch_size = 16 -f_d_class_sampling_str = 10,10,10,10,10,10 -f_d_epochs = 100 -f_d_metrics_pickle_name = metrics_train_f_on_d.p -f_d_primary_metric = accuracy -f_d_U_adam_lr = 0.0003 -f_d_U_batch_size = 32 -f_d_U_epochs = 100 -f_d_U_metrics_pickle_name = metrics_train_f_on_d_U.p -f_infer_out_pickle_name = infer_f.p -f_layers_str = 512,512 -gamma = 0.1 -lamda = 0.1 -min_rule_coverage = 0 -network_dropout = True -num_checkpoints = 1 -num_classes = 0 -num_load_d = 0 -num_load_U = 0 -num_load_validation = 0 -output_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_6 -rule_classes_str = -run_mode = implication -shuffle_batches = True -test_w_batch_size = 1000 -U_pickle_name = U_processed.p -use_joint_f_w = False -validation_pickle_name = validation_processed.p -w_infer_out_pickle_name = infer_w.p -w_layers_str = 512,512 - -Hi1 -Ended Reading Flags -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_6/d_processed.p -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/U_processed.p -Rule classes: [2, 1, 1, 4, 3, 2, 1, 3, 5, 4, 3, 2, 4, 1, 2, 5, 4, 1, 2, 4, 3, 1, 3, 2, 1, 1, 4, 4, 5, 1, 3, 5, 2, 1, 5, 1, 5, 5, 0, 5, 5, 1, 4, 2, 3, 2, 1, 3, 5, 1, 1, 3, 2, 1, 1, 5, 2, 3, 2, 5, 3, 3, 4, 5, 5, 4, 2, 0] -length of covered U: 4637 -Size of d before oversampling: 68 -Size of U (covered) : 4637 -Size of d after oversampling: 680 -Size of d_U after combining: 5317 -Loading 68 elements from d -num instances in d: 680 -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/validation_processed.p -Setting value of d to 0 for test data -test_w len: 476 -test_w len: 476 -Number of features: 1024 -Number of classes: 6 -Print num of rules to train: 68 -Print num of rules: 68 - - - -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_6/metrics_train_f_on_d.p' -Did not find prev best metric for run type f_d. Setting to zero. -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_6/metrics_train_f_on_d_U.p' -Did not find prev best metric for run type f_d_U. Setting to zero. -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/legacy_tf_layers/core.py:171: UserWarning: `tf.layers.dense` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dense` instead. - warnings.warn('`tf.layers.dense` is deprecated and ' -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer_v1.py:1719: UserWarning: `layer.apply` is deprecated and will be removed in a future version. Please use `layer.__call__` method instead. - warnings.warn('`layer.apply` is deprecated and ' -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version. -Instructions for updating: -Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version. -Instructions for updating: - -Future major versions of TensorFlow will allow gradients to flow -into the labels input on backprop by default. - -See `tf.nn.softmax_cross_entropy_with_logits_v2`. - -WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/Data_Pgm_Subset_Slc/Implyloss/my_model.py:615: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. -Instructions for updating: -Use `tf.cast` instead. -[ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" -] -2021-04-17 21:38:34.369629: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA -To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. -2021-04-17 21:38:34.370249: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set -2021-04-17 21:38:34.370474: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory -2021-04-17 21:38:34.370499: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed call to cuInit: UNKNOWN ERROR (303) -2021-04-17 21:38:34.370534: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (parth-G3-3590): /proc/driver/nvidia/version does not exist -2021-04-17 21:38:34.752000: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:196] None of the MLIR optimization passes are enabled (registered 0 passes) -2021-04-17 21:38:34.791250: I tensorflow/core/platform/profile_utils/cpu_utils.cc:112] CPU Frequency: 2599990000 Hz -Run mode is implication -begin Implication loss training -num_instances: 5317 -batch_size: 32 -total_batch: 166 -remaining: 5 -total_batch: 166 -Optimization started for f_d_U with implication loss! -Batch size: 32! -Batches per epoch : 166! -Number of epochs: 100! - -========== epoch : 0 ============ - -cost: 0.3308204812367998 - -patience: 0 - -/home/parth/.local/lib/python3.8/site-packages/sklearn/metrics/classification.py:1436: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. - precision = _prf_divide(tp_sum, pred_sum, - -metrics_dict: {'f1_score_1': 0.5431034482758621, 'precision_1': 0.5779816513761468, 'recall_1': 0.5121951219512195, 'support_1': 123, 'f1_score': array([0.000, 0.543, 0.519, 0.724, 0.694, 0.709]), 'precision': array([0.000, 0.578, 0.496, 0.662, 0.860, 0.659]), 'recall': array([0.000, 0.512, 0.545, 0.800, 0.581, 0.767]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.531490227737911, 'avg_precision': 0.5423990459126418, 'avg_recall': 0.534173724641065, 'accuracy': 0.622, 'epoch': 1.0, 'f_d_global_step': 166} - -Reporting f_d metrics to tensorboard - -dumped metrics dict to file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_6/metrics_train_f_on_d_U.p - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_6/checkpoints/hls-model-166 - -Saved new best checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_6/checkpoints/f_d_U/best.ckpt-166 - - -========== epoch : 1 ============ - -cost: 0.09172370696036392 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.6757679180887374, 'precision_1': 0.5823529411764706, 'recall_1': 0.8048780487804879, 'support_1': 123, 'f1_score': array([0.364, 0.676, 0.502, 0.746, 0.741, 0.726]), 'precision': array([0.667, 0.582, 0.560, 0.824, 0.820, 0.679]), 'recall': array([0.250, 0.805, 0.455, 0.682, 0.676, 0.781]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6258318971751634, 'avg_precision': 0.6886464253629153, 'avg_recall': 0.6080918278232845, 'accuracy': 0.668, 'epoch': 2.0, 'f_d_global_step': 332} - -Reporting f_d metrics to tensorboard - -dumped metrics dict to file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_6/metrics_train_f_on_d_U.p - -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/training/saver.py:968: remove_checkpoint (from tensorflow.python.training.checkpoint_management) is deprecated and will be removed in a future version. -Instructions for updating: -Use standard file APIs to delete files with this prefix. -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_6/checkpoints/hls-model-333 - -Saved new best checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_6/checkpoints/f_d_U/best.ckpt-332 - - -========== epoch : 2 ============ - -cost: 0.052837422412135696 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.6996197718631179, 'precision_1': 0.6571428571428571, 'recall_1': 0.7479674796747967, 'support_1': 123, 'f1_score': array([0.500, 0.700, 0.545, 0.755, 0.769, 0.714]), 'precision': array([0.750, 0.657, 0.529, 0.860, 0.893, 0.632]), 'recall': array([0.375, 0.748, 0.562, 0.673, 0.676, 0.822]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6639488069417456, 'avg_precision': 0.7202426380588954, 'avg_recall': 0.6426313727161538, 'accuracy': 0.684, 'epoch': 3.0, 'f_d_global_step': 498} - -Reporting f_d metrics to tensorboard - -dumped metrics dict to file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_6/metrics_train_f_on_d_U.p - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_6/checkpoints/hls-model-500 - -Saved new best checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_6/checkpoints/f_d_U/best.ckpt-498 - - -========== epoch : 3 ============ - -cost: 0.031230590458403897 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.6901960784313725, 'precision_1': 0.6666666666666666, 'recall_1': 0.7154471544715447, 'support_1': 123, 'f1_score': array([0.714, 0.690, 0.520, 0.779, 0.769, 0.720]), 'precision': array([0.833, 0.667, 0.576, 0.827, 0.893, 0.586]), 'recall': array([0.625, 0.715, 0.473, 0.736, 0.676, 0.932]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6986238797513308, 'avg_precision': 0.7302802680292507, 'avg_recall': 0.6928679335900352, 'accuracy': 0.69, 'epoch': 4.0, 'f_d_global_step': 664} - -Reporting f_d metrics to tensorboard - -dumped metrics dict to file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_6/metrics_train_f_on_d_U.p - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_6/checkpoints/hls-model-667 - -Saved new best checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_6/checkpoints/f_d_U/best.ckpt-664 - - -========== epoch : 4 ============ - -cost: 0.03719395493523285 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.7348484848484849, 'precision_1': 0.6879432624113475, 'recall_1': 0.7886178861788617, 'support_1': 123, 'f1_score': array([0.750, 0.735, 0.529, 0.791, 0.800, 0.758]), 'precision': array([0.750, 0.688, 0.587, 0.810, 0.848, 0.693]), 'recall': array([0.750, 0.789, 0.482, 0.773, 0.757, 0.836]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7271203165213752, 'avg_precision': 0.7293483767234924, 'avg_recall': 0.7309768685269855, 'accuracy': 0.718, 'epoch': 5.0, 'f_d_global_step': 830} - -Reporting f_d metrics to tensorboard - -dumped metrics dict to file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_6/metrics_train_f_on_d_U.p - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_6/checkpoints/hls-model-834 - -Saved new best checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_6/checkpoints/f_d_U/best.ckpt-830 - - -========== epoch : 5 ============ - -cost: 0.023407755924545852 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.7196969696969698, 'precision_1': 0.6737588652482269, 'recall_1': 0.7723577235772358, 'support_1': 123, 'f1_score': array([0.824, 0.720, 0.541, 0.746, 0.817, 0.748]), 'precision': array([0.778, 0.674, 0.530, 0.920, 0.853, 0.678]), 'recall': array([0.875, 0.772, 0.554, 0.627, 0.784, 0.836]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7326707849473738, 'avg_precision': 0.7386950211981501, 'avg_recall': 0.7412670169268901, 'accuracy': 0.704, 'epoch': 6.0, 'f_d_global_step': 996} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.718 Current is: 0.704 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_6/checkpoints/hls-model-1001 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_6/checkpoints/f_d_U/best.ckpt-830 - - -========== epoch : 6 ============ - -cost: 0.02794159887900651 - -patience: 1 - - -metrics_dict: {'f1_score_1': 0.7313432835820896, 'precision_1': 0.6758620689655173, 'recall_1': 0.7967479674796748, 'support_1': 123, 'f1_score': array([0.824, 0.731, 0.535, 0.773, 0.828, 0.797]), 'precision': array([0.778, 0.676, 0.526, 0.893, 0.845, 0.787]), 'recall': array([0.875, 0.797, 0.545, 0.682, 0.811, 0.808]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7480066325212583, 'avg_precision': 0.7506826912946387, 'avg_recall': 0.7528731658889528, 'accuracy': 0.72, 'epoch': 7.0, 'f_d_global_step': 1162} - -Reporting f_d metrics to tensorboard - -dumped metrics dict to file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_6/metrics_train_f_on_d_U.p - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_6/checkpoints/hls-model-1168 - -Saved new best checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_6/checkpoints/f_d_U/best.ckpt-1162 - - -========== epoch : 7 ============ - -cost: 0.014335366263663038 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.7272727272727273, 'precision_1': 0.7394957983193278, 'recall_1': 0.7154471544715447, 'support_1': 123, 'f1_score': array([0.714, 0.727, 0.591, 0.742, 0.825, 0.770]), 'precision': array([0.833, 0.739, 0.528, 0.908, 0.855, 0.705]), 'recall': array([0.625, 0.715, 0.670, 0.627, 0.797, 0.849]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7282343778517205, 'avg_precision': 0.7614184668154739, 'avg_recall': 0.7139958507795963, 'accuracy': 0.716, 'epoch': 8.0, 'f_d_global_step': 1328} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.72 Current is: 0.716 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_6/checkpoints/hls-model-1335 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_6/checkpoints/f_d_U/best.ckpt-1162 - - -========== epoch : 8 ============ - -cost: 0.01714594886867549 - -patience: 1 - - -metrics_dict: {'f1_score_1': 0.7185185185185183, 'precision_1': 0.6598639455782312, 'recall_1': 0.7886178861788617, 'support_1': 123, 'f1_score': array([0.800, 0.719, 0.539, 0.730, 0.845, 0.776]), 'precision': array([0.857, 0.660, 0.525, 0.956, 0.882, 0.696]), 'recall': array([0.750, 0.789, 0.554, 0.591, 0.811, 0.877]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7348023383742666, 'avg_precision': 0.7627196665942231, 'avg_recall': 0.7284369242062191, 'accuracy': 0.708, 'epoch': 9.0, 'f_d_global_step': 1494} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.72 Current is: 0.708 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_6/checkpoints/hls-model-1502 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_6/checkpoints/f_d_U/best.ckpt-1162 - - -========== epoch : 9 ============ - -cost: 0.00847990456467338 - -patience: 2 - - -metrics_dict: {'f1_score_1': 0.6986899563318778, 'precision_1': 0.7547169811320755, 'recall_1': 0.6504065040650406, 'support_1': 123, 'f1_score': array([0.800, 0.699, 0.571, 0.674, 0.826, 0.805]), 'precision': array([0.857, 0.755, 0.469, 0.935, 0.891, 0.744]), 'recall': array([0.750, 0.650, 0.732, 0.527, 0.770, 0.877]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7292759225790387, 'avg_precision': 0.7751210307209551, 'avg_recall': 0.7178007812530032, 'accuracy': 0.694, 'epoch': 10.0, 'f_d_global_step': 1660} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.72 Current is: 0.694 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_6/checkpoints/hls-model-1669 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_6/checkpoints/f_d_U/best.ckpt-1162 - - -========== epoch : 10 ============ - -cost: 0.023178188595394823 - -patience: 3 - - -metrics_dict: {'f1_score_1': 0.725, 'precision_1': 0.7435897435897436, 'recall_1': 0.7073170731707317, 'support_1': 123, 'f1_score': array([0.762, 0.725, 0.597, 0.762, 0.834, 0.787]), 'precision': array([0.615, 0.744, 0.580, 0.837, 0.818, 0.744]), 'recall': array([1.000, 0.707, 0.616, 0.700, 0.851, 0.836]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7447029095362309, 'avg_precision': 0.7229745117821346, 'avg_recall': 0.7850593819082793, 'accuracy': 0.73, 'epoch': 11.0, 'f_d_global_step': 1826} - -Reporting f_d metrics to tensorboard - -dumped metrics dict to file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_6/metrics_train_f_on_d_U.p - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_6/checkpoints/hls-model-1836 - -Saved new best checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_6/checkpoints/f_d_U/best.ckpt-1826 - - -========== epoch : 11 ============ - -cost: 0.013254968543447198 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.713235294117647, 'precision_1': 0.6510067114093959, 'recall_1': 0.7886178861788617, 'support_1': 123, 'f1_score': array([0.667, 0.713, 0.525, 0.738, 0.855, 0.770]), 'precision': array([1.000, 0.651, 0.500, 0.896, 0.873, 0.760]), 'recall': array([0.500, 0.789, 0.554, 0.627, 0.838, 0.781]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7114560480166249, 'avg_precision': 0.780058340688835, 'avg_recall': 0.6813536329448459, 'accuracy': 0.702, 'epoch': 12.0, 'f_d_global_step': 1992} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.73 Current is: 0.702 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_6/checkpoints/hls-model-2003 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_6/checkpoints/f_d_U/best.ckpt-1826 - - -========== epoch : 12 ============ - -cost: 0.00870761581365996 - -patience: 1 - - -metrics_dict: {'f1_score_1': 0.7335907335907336, 'precision_1': 0.6985294117647058, 'recall_1': 0.7723577235772358, 'support_1': 123, 'f1_score': array([0.800, 0.734, 0.545, 0.745, 0.838, 0.795]), 'precision': array([0.667, 0.699, 0.529, 0.849, 0.838, 0.795]), 'recall': array([1.000, 0.772, 0.562, 0.664, 0.838, 0.795]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7427169373353326, 'avg_precision': 0.7293005730371038, 'avg_recall': 0.7718087454994405, 'accuracy': 0.718, 'epoch': 13.0, 'f_d_global_step': 2158} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.73 Current is: 0.718 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_6/checkpoints/hls-model-2170 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_6/checkpoints/f_d_U/best.ckpt-1826 - - -========== epoch : 13 ============ - -cost: 0.02379263880777807 - -patience: 2 - - -metrics_dict: {'f1_score_1': 0.7153284671532848, 'precision_1': 0.6490066225165563, 'recall_1': 0.7967479674796748, 'support_1': 123, 'f1_score': array([0.769, 0.715, 0.527, 0.600, 0.733, 0.713]), 'precision': array([1.000, 0.649, 0.460, 0.960, 0.957, 0.622]), 'recall': array([0.625, 0.797, 0.616, 0.436, 0.595, 0.836]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6763434032278263, 'avg_precision': 0.7746628902064713, 'avg_recall': 0.6507323442275833, 'accuracy': 0.65, 'epoch': 14.0, 'f_d_global_step': 2324} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.73 Current is: 0.65 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_6/checkpoints/hls-model-2337 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_6/checkpoints/f_d_U/best.ckpt-1826 - - -========== epoch : 14 ============ - -cost: 0.007381037327317005 - -patience: 3 - - -metrics_dict: {'f1_score_1': 0.7287449392712552, 'precision_1': 0.7258064516129032, 'recall_1': 0.7317073170731707, 'support_1': 123, 'f1_score': array([0.750, 0.729, 0.583, 0.726, 0.821, 0.800]), 'precision': array([0.750, 0.726, 0.533, 0.942, 0.805, 0.736]), 'recall': array([0.750, 0.732, 0.643, 0.591, 0.838, 0.877]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7348649878181025, 'avg_precision': 0.7486659599260558, 'avg_recall': 0.7383372862407276, 'accuracy': 0.718, 'epoch': 15.0, 'f_d_global_step': 2490} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.73 Current is: 0.718 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_6/checkpoints/hls-model-2504 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_6/checkpoints/f_d_U/best.ckpt-1826 - - -========== epoch : 15 ============ - -cost: 0.004138067222323892 - -patience: 4 - - -metrics_dict: {'f1_score_1': 0.7250996015936255, 'precision_1': 0.7109375, 'recall_1': 0.7398373983739838, 'support_1': 123, 'f1_score': array([0.778, 0.725, 0.575, 0.671, 0.803, 0.818]), 'precision': array([0.700, 0.711, 0.526, 0.921, 0.759, 0.778]), 'recall': array([0.875, 0.740, 0.634, 0.527, 0.851, 0.863]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7281709974821386, 'avg_precision': 0.732385378152823, 'avg_recall': 0.7484006245094618, 'accuracy': 0.706, 'epoch': 16.0, 'f_d_global_step': 2656} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.73 Current is: 0.706 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_6/checkpoints/hls-model-2671 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_6/checkpoints/f_d_U/best.ckpt-1826 - - -========== epoch : 16 ============ - -cost: 0.0038144967197859575 - -patience: 5 - - -metrics_dict: {'f1_score_1': 0.7226890756302521, 'precision_1': 0.7478260869565218, 'recall_1': 0.6991869918699187, 'support_1': 123, 'f1_score': array([0.750, 0.723, 0.582, 0.685, 0.805, 0.824]), 'precision': array([0.750, 0.748, 0.510, 0.897, 0.775, 0.787]), 'recall': array([0.750, 0.699, 0.679, 0.555, 0.838, 0.863]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7281970049906555, 'avg_precision': 0.7445753374299823, 'avg_recall': 0.7305259019091296, 'accuracy': 0.708, 'epoch': 17.0, 'f_d_global_step': 2822} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.73 Current is: 0.708 -bye! stopping early!...... -Optimization Finished for f_d_U! - Implication loss training end diff --git a/spear/Implyloss/logs/my_TREC/implication_0.1_0.1_7.txt b/spear/Implyloss/logs/my_TREC/implication_0.1_0.1_7.txt deleted file mode 100644 index 7a09c46..0000000 --- a/spear/Implyloss/logs/my_TREC/implication_0.1_0.1_7.txt +++ /dev/null @@ -1,378 +0,0 @@ -Hello 2 1 -2021-04-17 21:38:29.715866: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory -2021-04-17 21:38:29.715907: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/compat/v2_compat.py:96: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version. -Instructions for updating: -non-resource variables are not supported in the long term -Started Reading Flags - -checkpoint_load_mode = mru -d_pickle_name = d_processed.p -data_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC -dropout_keep_prob = 0.8 -early_stopping_p = 5 -f_d_adam_lr = 0.0003 -f_d_batch_size = 16 -f_d_class_sampling_str = 10,10,10,10,10,10 -f_d_epochs = 100 -f_d_metrics_pickle_name = metrics_train_f_on_d.p -f_d_primary_metric = accuracy -f_d_U_adam_lr = 0.0003 -f_d_U_batch_size = 32 -f_d_U_epochs = 100 -f_d_U_metrics_pickle_name = metrics_train_f_on_d_U.p -f_infer_out_pickle_name = infer_f.p -f_layers_str = 512,512 -gamma = 0.1 -lamda = 0.1 -min_rule_coverage = 0 -network_dropout = True -num_checkpoints = 1 -num_classes = 0 -num_load_d = 0 -num_load_U = 0 -num_load_validation = 0 -output_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_7 -rule_classes_str = -run_mode = implication -shuffle_batches = True -test_w_batch_size = 1000 -U_pickle_name = U_processed.p -use_joint_f_w = False -validation_pickle_name = validation_processed.p -w_infer_out_pickle_name = infer_w.p -w_layers_str = 512,512 - -Hi1 -Ended Reading Flags -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_7/d_processed.p -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/U_processed.p -Rule classes: [2, 1, 1, 4, 3, 2, 1, 3, 5, 4, 3, 2, 4, 1, 2, 5, 4, 1, 2, 4, 3, 1, 3, 2, 1, 1, 4, 4, 5, 1, 3, 5, 2, 1, 5, 1, 5, 5, 0, 5, 5, 1, 4, 2, 3, 2, 1, 3, 5, 1, 1, 3, 2, 1, 1, 5, 2, 3, 2, 5, 3, 3, 4, 5, 5, 4, 2, 0] -length of covered U: 4637 -Size of d before oversampling: 68 -Size of U (covered) : 4637 -Size of d after oversampling: 680 -Size of d_U after combining: 5317 -Loading 68 elements from d -num instances in d: 680 -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/validation_processed.p -Setting value of d to 0 for test data -test_w len: 476 -test_w len: 476 -Number of features: 1024 -Number of classes: 6 -Print num of rules to train: 68 -Print num of rules: 68 - - - -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_7/metrics_train_f_on_d.p' -Did not find prev best metric for run type f_d. Setting to zero. -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_7/metrics_train_f_on_d_U.p' -Did not find prev best metric for run type f_d_U. Setting to zero. -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/legacy_tf_layers/core.py:171: UserWarning: `tf.layers.dense` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dense` instead. - warnings.warn('`tf.layers.dense` is deprecated and ' -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer_v1.py:1719: UserWarning: `layer.apply` is deprecated and will be removed in a future version. Please use `layer.__call__` method instead. - warnings.warn('`layer.apply` is deprecated and ' -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version. -Instructions for updating: -Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version. -Instructions for updating: - -Future major versions of TensorFlow will allow gradients to flow -into the labels input on backprop by default. - -See `tf.nn.softmax_cross_entropy_with_logits_v2`. - -WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/Data_Pgm_Subset_Slc/Implyloss/my_model.py:615: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. -Instructions for updating: -Use `tf.cast` instead. -[ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" -] -2021-04-17 21:38:34.356926: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA -To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. -2021-04-17 21:38:34.357497: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set -2021-04-17 21:38:34.357754: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory -2021-04-17 21:38:34.357810: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed call to cuInit: UNKNOWN ERROR (303) -2021-04-17 21:38:34.357869: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (parth-G3-3590): /proc/driver/nvidia/version does not exist -2021-04-17 21:38:34.726639: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:196] None of the MLIR optimization passes are enabled (registered 0 passes) -2021-04-17 21:38:34.767626: I tensorflow/core/platform/profile_utils/cpu_utils.cc:112] CPU Frequency: 2599990000 Hz -Run mode is implication -begin Implication loss training -num_instances: 5317 -batch_size: 32 -total_batch: 166 -remaining: 5 -total_batch: 166 -Optimization started for f_d_U with implication loss! -Batch size: 32! -Batches per epoch : 166! -Number of epochs: 100! - -========== epoch : 0 ============ - -cost: 0.3321279812918371 - -patience: 0 - -/home/parth/.local/lib/python3.8/site-packages/sklearn/metrics/classification.py:1436: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. - precision = _prf_divide(tp_sum, pred_sum, - -metrics_dict: {'f1_score_1': 0.6360655737704919, 'precision_1': 0.532967032967033, 'recall_1': 0.7886178861788617, 'support_1': 123, 'f1_score': array([0.000, 0.636, 0.383, 0.745, 0.682, 0.687]), 'precision': array([0.000, 0.533, 0.474, 0.809, 0.776, 0.622]), 'recall': array([0.000, 0.789, 0.321, 0.691, 0.608, 0.767]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.5221795137709655, 'avg_precision': 0.5355410288298268, 'avg_recall': 0.5293644907159775, 'accuracy': 0.62, 'epoch': 1.0, 'f_d_global_step': 166} - -Reporting f_d metrics to tensorboard - -dumped metrics dict to file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_7/metrics_train_f_on_d_U.p - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_7/checkpoints/hls-model-166 - -Saved new best checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_7/checkpoints/f_d_U/best.ckpt-166 - - -========== epoch : 1 ============ - -cost: 0.09426537894430652 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.6861313868613139, 'precision_1': 0.6225165562913907, 'recall_1': 0.7642276422764228, 'support_1': 123, 'f1_score': array([0.500, 0.686, 0.512, 0.764, 0.750, 0.769]), 'precision': array([0.750, 0.623, 0.534, 0.764, 0.823, 0.786]), 'recall': array([0.375, 0.764, 0.491, 0.764, 0.689, 0.753]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6634377377841985, 'avg_precision': 0.7130714055546005, 'avg_recall': 0.6394248802012751, 'accuracy': 0.684, 'epoch': 2.0, 'f_d_global_step': 332} - -Reporting f_d metrics to tensorboard - -dumped metrics dict to file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_7/metrics_train_f_on_d_U.p - -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/training/saver.py:968: remove_checkpoint (from tensorflow.python.training.checkpoint_management) is deprecated and will be removed in a future version. -Instructions for updating: -Use standard file APIs to delete files with this prefix. -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_7/checkpoints/hls-model-333 - -Saved new best checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_7/checkpoints/f_d_U/best.ckpt-332 - - -========== epoch : 2 ============ - -cost: 0.04543826576737484 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.6999999999999998, 'precision_1': 0.5932203389830508, 'recall_1': 0.8536585365853658, 'support_1': 123, 'f1_score': array([0.500, 0.700, 0.509, 0.761, 0.791, 0.781]), 'precision': array([0.750, 0.593, 0.509, 0.862, 0.846, 0.909]), 'recall': array([0.375, 0.854, 0.509, 0.682, 0.743, 0.685]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6738277996167241, 'avg_precision': 0.7449104385289363, 'avg_recall': 0.6412633399874462, 'accuracy': 0.69, 'epoch': 3.0, 'f_d_global_step': 498} - -Reporting f_d metrics to tensorboard - -dumped metrics dict to file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_7/metrics_train_f_on_d_U.p - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_7/checkpoints/hls-model-500 - -Saved new best checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_7/checkpoints/f_d_U/best.ckpt-498 - - -========== epoch : 3 ============ - -cost: 0.0417349353290292 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.7247386759581881, 'precision_1': 0.6341463414634146, 'recall_1': 0.8455284552845529, 'support_1': 123, 'f1_score': array([0.714, 0.725, 0.505, 0.755, 0.815, 0.800]), 'precision': array([0.833, 0.634, 0.519, 0.860, 0.902, 0.779]), 'recall': array([0.625, 0.846, 0.491, 0.673, 0.743, 0.822]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7189214003063911, 'avg_precision': 0.7546121398478657, 'avg_recall': 0.6999147013409459, 'accuracy': 0.706, 'epoch': 4.0, 'f_d_global_step': 664} - -Reporting f_d metrics to tensorboard - -dumped metrics dict to file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_7/metrics_train_f_on_d_U.p - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_7/checkpoints/hls-model-667 - -Saved new best checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_7/checkpoints/f_d_U/best.ckpt-664 - - -========== epoch : 4 ============ - -cost: 0.03322339397876141 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.7191011235955055, 'precision_1': 0.6666666666666666, 'recall_1': 0.7804878048780488, 'support_1': 123, 'f1_score': array([0.714, 0.719, 0.537, 0.716, 0.845, 0.706]), 'precision': array([0.833, 0.667, 0.521, 0.955, 0.882, 0.619]), 'recall': array([0.625, 0.780, 0.554, 0.573, 0.811, 0.822]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7061742068438726, 'avg_precision': 0.746077250019033, 'avg_recall': 0.6940858542011231, 'accuracy': 0.692, 'epoch': 5.0, 'f_d_global_step': 830} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.706 Current is: 0.692 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_7/checkpoints/hls-model-834 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_7/checkpoints/f_d_U/best.ckpt-664 - - -========== epoch : 5 ============ - -cost: 0.026204972035610615 - -patience: 1 - - -metrics_dict: {'f1_score_1': 0.7364620938628158, 'precision_1': 0.6623376623376623, 'recall_1': 0.8292682926829268, 'support_1': 123, 'f1_score': array([0.824, 0.736, 0.510, 0.786, 0.841, 0.758]), 'precision': array([0.778, 0.662, 0.565, 0.895, 0.859, 0.693]), 'recall': array([0.875, 0.829, 0.464, 0.700, 0.824, 0.836]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.742442166401757, 'avg_precision': 0.7421697360647289, 'avg_recall': 0.7547491282748551, 'accuracy': 0.72, 'epoch': 6.0, 'f_d_global_step': 996} - -Reporting f_d metrics to tensorboard - -dumped metrics dict to file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_7/metrics_train_f_on_d_U.p - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_7/checkpoints/hls-model-1001 - -Saved new best checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_7/checkpoints/f_d_U/best.ckpt-996 - - -========== epoch : 6 ============ - -cost: 0.024982051679819636 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.7547169811320754, 'precision_1': 0.704225352112676, 'recall_1': 0.8130081300813008, 'support_1': 123, 'f1_score': array([0.824, 0.755, 0.565, 0.686, 0.839, 0.774]), 'precision': array([0.778, 0.704, 0.515, 0.952, 0.870, 0.732]), 'recall': array([0.875, 0.813, 0.625, 0.536, 0.811, 0.822]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.740360570184147, 'avg_precision': 0.7582657416556127, 'avg_recall': 0.7470167309124878, 'accuracy': 0.712, 'epoch': 7.0, 'f_d_global_step': 1162} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.72 Current is: 0.712 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_7/checkpoints/hls-model-1168 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_7/checkpoints/f_d_U/best.ckpt-996 - - -========== epoch : 7 ============ - -cost: 0.016246841597498445 - -patience: 1 - - -metrics_dict: {'f1_score_1': 0.7155172413793104, 'precision_1': 0.7614678899082569, 'recall_1': 0.6747967479674797, 'support_1': 123, 'f1_score': array([0.824, 0.716, 0.583, 0.686, 0.836, 0.800]), 'precision': array([0.778, 0.761, 0.488, 0.952, 0.847, 0.756]), 'recall': array([0.875, 0.675, 0.723, 0.536, 0.824, 0.849]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7405739026796213, 'avg_precision': 0.7636883602230982, 'avg_recall': 0.7471690104771461, 'accuracy': 0.706, 'epoch': 8.0, 'f_d_global_step': 1328} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.72 Current is: 0.706 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_7/checkpoints/hls-model-1335 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_7/checkpoints/f_d_U/best.ckpt-996 - - -========== epoch : 8 ============ - -cost: 0.016883479531469372 - -patience: 2 - - -metrics_dict: {'f1_score_1': 0.7142857142857143, 'precision_1': 0.6976744186046512, 'recall_1': 0.7317073170731707, 'support_1': 123, 'f1_score': array([0.750, 0.714, 0.521, 0.718, 0.815, 0.663]), 'precision': array([0.750, 0.698, 0.533, 0.915, 0.946, 0.519]), 'recall': array([0.750, 0.732, 0.509, 0.591, 0.716, 0.918]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6969694426180612, 'avg_precision': 0.7269476788524623, 'avg_recall': 0.7025949024675219, 'accuracy': 0.676, 'epoch': 9.0, 'f_d_global_step': 1494} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.72 Current is: 0.676 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_7/checkpoints/hls-model-1502 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_7/checkpoints/f_d_U/best.ckpt-996 - - -========== epoch : 9 ============ - -cost: 0.03479356638451124 - -patience: 3 - - -metrics_dict: {'f1_score_1': 0.7222222222222223, 'precision_1': 0.7054263565891473, 'recall_1': 0.7398373983739838, 'support_1': 123, 'f1_score': array([0.842, 0.722, 0.568, 0.674, 0.832, 0.797]), 'precision': array([0.727, 0.705, 0.514, 0.935, 0.827, 0.741]), 'recall': array([1.000, 0.740, 0.634, 0.527, 0.838, 0.863]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7394048682603884, 'avg_precision': 0.7417531409512845, 'avg_recall': 0.7669817055905429, 'accuracy': 0.706, 'epoch': 10.0, 'f_d_global_step': 1660} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.72 Current is: 0.706 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_7/checkpoints/hls-model-1669 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_7/checkpoints/f_d_U/best.ckpt-996 - - -========== epoch : 10 ============ - -cost: 0.008470246815222598 - -patience: 4 - - -metrics_dict: {'f1_score_1': 0.7318840579710145, 'precision_1': 0.6601307189542484, 'recall_1': 0.8211382113821138, 'support_1': 123, 'f1_score': array([0.824, 0.732, 0.532, 0.642, 0.819, 0.795]), 'precision': array([0.778, 0.660, 0.504, 0.964, 0.813, 0.747]), 'recall': array([0.875, 0.821, 0.562, 0.482, 0.824, 0.849]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7238578371601226, 'avg_precision': 0.7443110242514921, 'avg_recall': 0.7356826310029617, 'accuracy': 0.694, 'epoch': 11.0, 'f_d_global_step': 1826} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.72 Current is: 0.694 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_7/checkpoints/hls-model-1836 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_7/checkpoints/f_d_U/best.ckpt-996 - - -========== epoch : 11 ============ - -cost: 0.027931373781183242 - -patience: 5 - - -metrics_dict: {'f1_score_1': 0.7228915662650603, 'precision_1': 0.7142857142857143, 'recall_1': 0.7317073170731707, 'support_1': 123, 'f1_score': array([0.762, 0.723, 0.547, 0.712, 0.841, 0.753]), 'precision': array([0.615, 0.714, 0.504, 0.940, 0.906, 0.660]), 'recall': array([1.000, 0.732, 0.598, 0.573, 0.784, 0.877]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7228533995125338, 'avg_precision': 0.7232953416770411, 'avg_recall': 0.760524164677606, 'accuracy': 0.7, 'epoch': 12.0, 'f_d_global_step': 1992} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.72 Current is: 0.7 -bye! stopping early!...... -Optimization Finished for f_d_U! - Implication loss training end diff --git a/spear/Implyloss/logs/my_TREC/implication_0.1_0.1_8.txt b/spear/Implyloss/logs/my_TREC/implication_0.1_0.1_8.txt deleted file mode 100644 index 61b7637..0000000 --- a/spear/Implyloss/logs/my_TREC/implication_0.1_0.1_8.txt +++ /dev/null @@ -1,343 +0,0 @@ -Hello 2 1 -2021-04-17 21:38:29.715870: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory -2021-04-17 21:38:29.715913: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/compat/v2_compat.py:96: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version. -Instructions for updating: -non-resource variables are not supported in the long term -Started Reading Flags - -checkpoint_load_mode = mru -d_pickle_name = d_processed.p -data_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC -dropout_keep_prob = 0.8 -early_stopping_p = 5 -f_d_adam_lr = 0.0003 -f_d_batch_size = 16 -f_d_class_sampling_str = 10,10,10,10,10,10 -f_d_epochs = 100 -f_d_metrics_pickle_name = metrics_train_f_on_d.p -f_d_primary_metric = accuracy -f_d_U_adam_lr = 0.0003 -f_d_U_batch_size = 32 -f_d_U_epochs = 100 -f_d_U_metrics_pickle_name = metrics_train_f_on_d_U.p -f_infer_out_pickle_name = infer_f.p -f_layers_str = 512,512 -gamma = 0.1 -lamda = 0.1 -min_rule_coverage = 0 -network_dropout = True -num_checkpoints = 1 -num_classes = 0 -num_load_d = 0 -num_load_U = 0 -num_load_validation = 0 -output_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_8 -rule_classes_str = -run_mode = implication -shuffle_batches = True -test_w_batch_size = 1000 -U_pickle_name = U_processed.p -use_joint_f_w = False -validation_pickle_name = validation_processed.p -w_infer_out_pickle_name = infer_w.p -w_layers_str = 512,512 - -Hi1 -Ended Reading Flags -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_8/d_processed.p -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/U_processed.p -Rule classes: [2, 1, 1, 4, 3, 2, 1, 3, 5, 4, 3, 2, 4, 1, 2, 5, 4, 1, 2, 4, 3, 1, 3, 2, 1, 1, 4, 4, 5, 1, 3, 5, 2, 1, 5, 1, 5, 5, 0, 5, 5, 1, 4, 2, 3, 2, 1, 3, 5, 1, 1, 3, 2, 1, 1, 5, 2, 3, 2, 5, 3, 3, 4, 5, 5, 4, 2, 0] -length of covered U: 4637 -Size of d before oversampling: 68 -Size of U (covered) : 4637 -Size of d after oversampling: 680 -Size of d_U after combining: 5317 -Loading 68 elements from d -num instances in d: 680 -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/validation_processed.p -Setting value of d to 0 for test data -test_w len: 476 -test_w len: 476 -Number of features: 1024 -Number of classes: 6 -Print num of rules to train: 68 -Print num of rules: 68 - - - -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_8/metrics_train_f_on_d.p' -Did not find prev best metric for run type f_d. Setting to zero. -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_8/metrics_train_f_on_d_U.p' -Did not find prev best metric for run type f_d_U. Setting to zero. -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/legacy_tf_layers/core.py:171: UserWarning: `tf.layers.dense` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dense` instead. - warnings.warn('`tf.layers.dense` is deprecated and ' -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer_v1.py:1719: UserWarning: `layer.apply` is deprecated and will be removed in a future version. Please use `layer.__call__` method instead. - warnings.warn('`layer.apply` is deprecated and ' -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version. -Instructions for updating: -Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version. -Instructions for updating: - -Future major versions of TensorFlow will allow gradients to flow -into the labels input on backprop by default. - -See `tf.nn.softmax_cross_entropy_with_logits_v2`. - -WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/Data_Pgm_Subset_Slc/Implyloss/my_model.py:615: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. -Instructions for updating: -Use `tf.cast` instead. -[ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" -] -2021-04-17 21:38:34.335043: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA -To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. -2021-04-17 21:38:34.335640: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set -2021-04-17 21:38:34.335864: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory -2021-04-17 21:38:34.335923: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed call to cuInit: UNKNOWN ERROR (303) -2021-04-17 21:38:34.335979: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (parth-G3-3590): /proc/driver/nvidia/version does not exist -2021-04-17 21:38:34.696571: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:196] None of the MLIR optimization passes are enabled (registered 0 passes) -2021-04-17 21:38:34.723526: I tensorflow/core/platform/profile_utils/cpu_utils.cc:112] CPU Frequency: 2599990000 Hz -Run mode is implication -begin Implication loss training -num_instances: 5317 -batch_size: 32 -total_batch: 166 -remaining: 5 -total_batch: 166 -Optimization started for f_d_U with implication loss! -Batch size: 32! -Batches per epoch : 166! -Number of epochs: 100! - -========== epoch : 0 ============ - -cost: 0.3368500845215047 - -patience: 0 - -/home/parth/.local/lib/python3.8/site-packages/sklearn/metrics/classification.py:1436: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. - precision = _prf_divide(tp_sum, pred_sum, - -metrics_dict: {'f1_score_1': 0.6291390728476822, 'precision_1': 0.5307262569832403, 'recall_1': 0.7723577235772358, 'support_1': 123, 'f1_score': array([0.000, 0.629, 0.393, 0.759, 0.691, 0.710]), 'precision': array([0.000, 0.531, 0.507, 0.774, 0.758, 0.671]), 'recall': array([0.000, 0.772, 0.321, 0.745, 0.635, 0.753]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.5304491408334725, 'avg_precision': 0.5400249399351417, 'avg_recall': 0.537966772188289, 'accuracy': 0.63, 'epoch': 1.0, 'f_d_global_step': 166} - -Reporting f_d metrics to tensorboard - -dumped metrics dict to file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_8/metrics_train_f_on_d_U.p - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_8/checkpoints/hls-model-166 - -Saved new best checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_8/checkpoints/f_d_U/best.ckpt-166 - - -========== epoch : 1 ============ - -cost: 0.11166804215971789 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.6528189910979227, 'precision_1': 0.514018691588785, 'recall_1': 0.8943089430894309, 'support_1': 123, 'f1_score': array([0.364, 0.653, 0.340, 0.769, 0.748, 0.740]), 'precision': array([0.667, 0.514, 0.574, 0.783, 0.860, 0.740]), 'recall': array([0.250, 0.894, 0.241, 0.755, 0.662, 0.740]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6020690242021557, 'avg_precision': 0.6895912435817735, 'avg_recall': 0.590302335960956, 'accuracy': 0.65, 'epoch': 2.0, 'f_d_global_step': 332} - -Reporting f_d metrics to tensorboard - -dumped metrics dict to file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_8/metrics_train_f_on_d_U.p - -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/training/saver.py:968: remove_checkpoint (from tensorflow.python.training.checkpoint_management) is deprecated and will be removed in a future version. -Instructions for updating: -Use standard file APIs to delete files with this prefix. -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_8/checkpoints/hls-model-333 - -Saved new best checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_8/checkpoints/f_d_U/best.ckpt-332 - - -========== epoch : 2 ============ - -cost: 0.053148054545857484 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.7117437722419929, 'precision_1': 0.6329113924050633, 'recall_1': 0.8130081300813008, 'support_1': 123, 'f1_score': array([0.500, 0.712, 0.520, 0.747, 0.752, 0.722]), 'precision': array([0.750, 0.633, 0.523, 0.887, 0.922, 0.635]), 'recall': array([0.375, 0.813, 0.518, 0.645, 0.635, 0.836]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.658864176102699, 'avg_precision': 0.724986534840872, 'avg_recall': 0.6370118986473815, 'accuracy': 0.68, 'epoch': 3.0, 'f_d_global_step': 498} - -Reporting f_d metrics to tensorboard - -dumped metrics dict to file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_8/metrics_train_f_on_d_U.p - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_8/checkpoints/hls-model-500 - -Saved new best checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_8/checkpoints/f_d_U/best.ckpt-498 - - -========== epoch : 3 ============ - -cost: 0.0388598477577297 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.7333333333333334, 'precision_1': 0.673469387755102, 'recall_1': 0.8048780487804879, 'support_1': 123, 'f1_score': array([0.800, 0.733, 0.564, 0.738, 0.816, 0.814]), 'precision': array([0.857, 0.673, 0.527, 0.896, 0.822, 0.851]), 'recall': array([0.750, 0.805, 0.607, 0.627, 0.811, 0.781]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.744371474227815, 'avg_precision': 0.7710853334705811, 'avg_recall': 0.7301543936358504, 'accuracy': 0.718, 'epoch': 4.0, 'f_d_global_step': 664} - -Reporting f_d metrics to tensorboard - -dumped metrics dict to file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_8/metrics_train_f_on_d_U.p - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_8/checkpoints/hls-model-667 - -Saved new best checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_8/checkpoints/f_d_U/best.ckpt-664 - - -========== epoch : 4 ============ - -cost: 0.03912510398736068 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.7384615384615385, 'precision_1': 0.7007299270072993, 'recall_1': 0.7804878048780488, 'support_1': 123, 'f1_score': array([0.875, 0.738, 0.580, 0.725, 0.811, 0.806]), 'precision': array([0.875, 0.701, 0.517, 0.917, 0.841, 0.817]), 'recall': array([0.875, 0.780, 0.661, 0.600, 0.784, 0.795]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7559787978905627, 'avg_precision': 0.7778933716253524, 'avg_recall': 0.7490844037202207, 'accuracy': 0.718, 'epoch': 5.0, 'f_d_global_step': 830} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.718 Current is: 0.718 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_8/checkpoints/hls-model-834 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_8/checkpoints/f_d_U/best.ckpt-664 - - -========== epoch : 5 ============ - -cost: 0.027487508974708495 - -patience: 1 - - -metrics_dict: {'f1_score_1': 0.7291666666666666, 'precision_1': 0.6363636363636364, 'recall_1': 0.8536585365853658, 'support_1': 123, 'f1_score': array([0.824, 0.729, 0.495, 0.708, 0.824, 0.761]), 'precision': array([0.778, 0.636, 0.520, 0.926, 0.824, 0.720]), 'recall': array([0.875, 0.854, 0.473, 0.573, 0.824, 0.808]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7235838327799011, 'avg_precision': 0.73400939416004, 'avg_recall': 0.7345239329055734, 'accuracy': 0.696, 'epoch': 6.0, 'f_d_global_step': 996} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.718 Current is: 0.696 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_8/checkpoints/hls-model-1001 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_8/checkpoints/f_d_U/best.ckpt-664 - - -========== epoch : 6 ============ - -cost: 0.02464223753424931 - -patience: 2 - - -metrics_dict: {'f1_score_1': 0.7301587301587301, 'precision_1': 0.7131782945736435, 'recall_1': 0.7479674796747967, 'support_1': 123, 'f1_score': array([0.875, 0.730, 0.577, 0.700, 0.820, 0.763]), 'precision': array([0.875, 0.713, 0.518, 0.900, 0.877, 0.701]), 'recall': array([0.875, 0.748, 0.652, 0.573, 0.770, 0.836]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7441462856441744, 'avg_precision': 0.7639968822063296, 'avg_recall': 0.7422278625523697, 'accuracy': 0.706, 'epoch': 7.0, 'f_d_global_step': 1162} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.718 Current is: 0.706 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_8/checkpoints/hls-model-1168 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_8/checkpoints/f_d_U/best.ckpt-664 - - -========== epoch : 7 ============ - -cost: 0.018142193027404534 - -patience: 3 - - -metrics_dict: {'f1_score_1': 0.6923076923076923, 'precision_1': 0.7297297297297297, 'recall_1': 0.6585365853658537, 'support_1': 123, 'f1_score': array([0.778, 0.692, 0.592, 0.707, 0.764, 0.746]), 'precision': array([0.700, 0.730, 0.570, 0.901, 0.692, 0.656]), 'recall': array([0.875, 0.659, 0.616, 0.582, 0.851, 0.863]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7131234937421542, 'avg_precision': 0.7083239677709908, 'avg_recall': 0.7409652076228254, 'accuracy': 0.694, 'epoch': 8.0, 'f_d_global_step': 1328} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.718 Current is: 0.694 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_8/checkpoints/hls-model-1335 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_8/checkpoints/f_d_U/best.ckpt-664 - - -========== epoch : 8 ============ - -cost: 0.02582894397995235 - -patience: 4 - - -metrics_dict: {'f1_score_1': 0.6782608695652174, 'precision_1': 0.7289719626168224, 'recall_1': 0.6341463414634146, 'support_1': 123, 'f1_score': array([0.800, 0.678, 0.569, 0.727, 0.845, 0.703]), 'precision': array([0.667, 0.729, 0.535, 0.883, 0.882, 0.587]), 'recall': array([1.000, 0.634, 0.607, 0.618, 0.811, 0.877]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7204897299289375, 'avg_precision': 0.7139495812909562, 'avg_recall': 0.7578323593943374, 'accuracy': 0.692, 'epoch': 9.0, 'f_d_global_step': 1494} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.718 Current is: 0.692 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_8/checkpoints/hls-model-1502 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_8/checkpoints/f_d_U/best.ckpt-664 - - -========== epoch : 9 ============ - -cost: 0.00936152627751237 - -patience: 5 - - -metrics_dict: {'f1_score_1': 0.7234042553191488, 'precision_1': 0.7589285714285714, 'recall_1': 0.6910569105691057, 'support_1': 123, 'f1_score': array([0.889, 0.723, 0.590, 0.735, 0.839, 0.762]), 'precision': array([0.800, 0.759, 0.532, 0.907, 0.870, 0.674]), 'recall': array([1.000, 0.691, 0.661, 0.618, 0.811, 0.877]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7563558857786203, 'avg_precision': 0.7568697944553805, 'avg_recall': 0.7762460256738573, 'accuracy': 0.718, 'epoch': 10.0, 'f_d_global_step': 1660} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.718 Current is: 0.718 -bye! stopping early!...... -Optimization Finished for f_d_U! - Implication loss training end diff --git a/spear/Implyloss/logs/my_TREC/implication_0.1_0.1_9.txt b/spear/Implyloss/logs/my_TREC/implication_0.1_0.1_9.txt deleted file mode 100644 index 8c39404..0000000 --- a/spear/Implyloss/logs/my_TREC/implication_0.1_0.1_9.txt +++ /dev/null @@ -1,360 +0,0 @@ -Hello 2 1 -2021-04-17 21:38:29.715858: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory -2021-04-17 21:38:29.715906: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/compat/v2_compat.py:96: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version. -Instructions for updating: -non-resource variables are not supported in the long term -Started Reading Flags - -checkpoint_load_mode = mru -d_pickle_name = d_processed.p -data_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC -dropout_keep_prob = 0.8 -early_stopping_p = 5 -f_d_adam_lr = 0.0003 -f_d_batch_size = 16 -f_d_class_sampling_str = 10,10,10,10,10,10 -f_d_epochs = 100 -f_d_metrics_pickle_name = metrics_train_f_on_d.p -f_d_primary_metric = accuracy -f_d_U_adam_lr = 0.0003 -f_d_U_batch_size = 32 -f_d_U_epochs = 100 -f_d_U_metrics_pickle_name = metrics_train_f_on_d_U.p -f_infer_out_pickle_name = infer_f.p -f_layers_str = 512,512 -gamma = 0.1 -lamda = 0.1 -min_rule_coverage = 0 -network_dropout = True -num_checkpoints = 1 -num_classes = 0 -num_load_d = 0 -num_load_U = 0 -num_load_validation = 0 -output_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_9 -rule_classes_str = -run_mode = implication -shuffle_batches = True -test_w_batch_size = 1000 -U_pickle_name = U_processed.p -use_joint_f_w = False -validation_pickle_name = validation_processed.p -w_infer_out_pickle_name = infer_w.p -w_layers_str = 512,512 - -Hi1 -Ended Reading Flags -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_9/d_processed.p -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/U_processed.p -Rule classes: [2, 1, 1, 4, 3, 2, 1, 3, 5, 4, 3, 2, 4, 1, 2, 5, 4, 1, 2, 4, 3, 1, 3, 2, 1, 1, 4, 4, 5, 1, 3, 5, 2, 1, 5, 1, 5, 5, 0, 5, 5, 1, 4, 2, 3, 2, 1, 3, 5, 1, 1, 3, 2, 1, 1, 5, 2, 3, 2, 5, 3, 3, 4, 5, 5, 4, 2, 0] -length of covered U: 4637 -Size of d before oversampling: 68 -Size of U (covered) : 4637 -Size of d after oversampling: 680 -Size of d_U after combining: 5317 -Loading 68 elements from d -num instances in d: 680 -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/validation_processed.p -Setting value of d to 0 for test data -test_w len: 476 -test_w len: 476 -Number of features: 1024 -Number of classes: 6 -Print num of rules to train: 68 -Print num of rules: 68 - - - -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_9/metrics_train_f_on_d.p' -Did not find prev best metric for run type f_d. Setting to zero. -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_9/metrics_train_f_on_d_U.p' -Did not find prev best metric for run type f_d_U. Setting to zero. -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/legacy_tf_layers/core.py:171: UserWarning: `tf.layers.dense` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dense` instead. - warnings.warn('`tf.layers.dense` is deprecated and ' -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer_v1.py:1719: UserWarning: `layer.apply` is deprecated and will be removed in a future version. Please use `layer.__call__` method instead. - warnings.warn('`layer.apply` is deprecated and ' -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version. -Instructions for updating: -Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version. -Instructions for updating: - -Future major versions of TensorFlow will allow gradients to flow -into the labels input on backprop by default. - -See `tf.nn.softmax_cross_entropy_with_logits_v2`. - -WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/Data_Pgm_Subset_Slc/Implyloss/my_model.py:615: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. -Instructions for updating: -Use `tf.cast` instead. -[ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" -] -2021-04-17 21:38:34.362588: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA -To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. -2021-04-17 21:38:34.363223: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set -2021-04-17 21:38:34.363468: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory -2021-04-17 21:38:34.363517: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed call to cuInit: UNKNOWN ERROR (303) -2021-04-17 21:38:34.363568: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (parth-G3-3590): /proc/driver/nvidia/version does not exist -2021-04-17 21:38:34.734050: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:196] None of the MLIR optimization passes are enabled (registered 0 passes) -2021-04-17 21:38:34.775660: I tensorflow/core/platform/profile_utils/cpu_utils.cc:112] CPU Frequency: 2599990000 Hz -Run mode is implication -begin Implication loss training -num_instances: 5317 -batch_size: 32 -total_batch: 166 -remaining: 5 -total_batch: 166 -Optimization started for f_d_U with implication loss! -Batch size: 32! -Batches per epoch : 166! -Number of epochs: 100! - -========== epoch : 0 ============ - -cost: 0.34366358803158775 - -patience: 0 - -/home/parth/.local/lib/python3.8/site-packages/sklearn/metrics/classification.py:1436: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. - precision = _prf_divide(tp_sum, pred_sum, - -metrics_dict: {'f1_score_1': 0.6027397260273973, 'precision_1': 0.5207100591715976, 'recall_1': 0.7154471544715447, 'support_1': 123, 'f1_score': array([0.000, 0.603, 0.431, 0.745, 0.561, 0.683]), 'precision': array([0.000, 0.521, 0.506, 0.711, 0.909, 0.606]), 'recall': array([0.000, 0.715, 0.375, 0.782, 0.405, 0.781]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.5035800159126161, 'avg_precision': 0.542158640837391, 'avg_recall': 0.5097487765838918, 'accuracy': 0.606, 'epoch': 1.0, 'f_d_global_step': 166} - -Reporting f_d metrics to tensorboard - -dumped metrics dict to file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_9/metrics_train_f_on_d_U.p - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_9/checkpoints/hls-model-166 - -Saved new best checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_9/checkpoints/f_d_U/best.ckpt-166 - - -========== epoch : 1 ============ - -cost: 0.10342736175025713 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.677115987460815, 'precision_1': 0.5510204081632653, 'recall_1': 0.8780487804878049, 'support_1': 123, 'f1_score': array([0.364, 0.677, 0.462, 0.713, 0.754, 0.732]), 'precision': array([0.667, 0.551, 0.529, 0.859, 0.875, 0.700]), 'recall': array([0.250, 0.878, 0.411, 0.609, 0.662, 0.767]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6169503606616559, 'avg_precision': 0.6967328443313665, 'avg_recall': 0.5961899041877324, 'accuracy': 0.656, 'epoch': 2.0, 'f_d_global_step': 332} - -Reporting f_d metrics to tensorboard - -dumped metrics dict to file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_9/metrics_train_f_on_d_U.p - -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/training/saver.py:968: remove_checkpoint (from tensorflow.python.training.checkpoint_management) is deprecated and will be removed in a future version. -Instructions for updating: -Use standard file APIs to delete files with this prefix. -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_9/checkpoints/hls-model-333 - -Saved new best checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_9/checkpoints/f_d_U/best.ckpt-332 - - -========== epoch : 2 ============ - -cost: 0.06187329491942626 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.7086092715231789, 'precision_1': 0.5977653631284916, 'recall_1': 0.8699186991869918, 'support_1': 123, 'f1_score': array([0.571, 0.709, 0.476, 0.768, 0.750, 0.756]), 'precision': array([0.667, 0.598, 0.584, 0.802, 0.889, 0.711]), 'recall': array([0.500, 0.870, 0.402, 0.736, 0.649, 0.808]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6717351812334708, 'avg_precision': 0.7084266791022348, 'avg_recall': 0.6608226460945305, 'accuracy': 0.688, 'epoch': 3.0, 'f_d_global_step': 498} - -Reporting f_d metrics to tensorboard - -dumped metrics dict to file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_9/metrics_train_f_on_d_U.p - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_9/checkpoints/hls-model-500 - -Saved new best checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_9/checkpoints/f_d_U/best.ckpt-498 - - -========== epoch : 3 ============ - -cost: 0.03761377438611114 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.711111111111111, 'precision_1': 0.6530612244897959, 'recall_1': 0.7804878048780488, 'support_1': 123, 'f1_score': array([0.875, 0.711, 0.529, 0.679, 0.822, 0.759]), 'precision': array([0.875, 0.653, 0.492, 0.983, 0.833, 0.706]), 'recall': array([0.875, 0.780, 0.571, 0.518, 0.811, 0.822]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7291699397704173, 'avg_precision': 0.7570572039602755, 'avg_recall': 0.7296378022530713, 'accuracy': 0.688, 'epoch': 4.0, 'f_d_global_step': 664} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.688 Current is: 0.688 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_9/checkpoints/hls-model-667 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_9/checkpoints/f_d_U/best.ckpt-498 - - -========== epoch : 4 ============ - -cost: 0.03284799190959051 - -patience: 1 - - -metrics_dict: {'f1_score_1': 0.746268656716418, 'precision_1': 0.6896551724137931, 'recall_1': 0.8130081300813008, 'support_1': 123, 'f1_score': array([0.875, 0.746, 0.550, 0.765, 0.797, 0.800]), 'precision': array([0.875, 0.690, 0.538, 0.830, 0.898, 0.779]), 'recall': array([0.875, 0.813, 0.562, 0.709, 0.716, 0.822]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7555308934806201, 'avg_precision': 0.7684049681474044, 'avg_recall': 0.749622177267934, 'accuracy': 0.722, 'epoch': 5.0, 'f_d_global_step': 830} - -Reporting f_d metrics to tensorboard - -dumped metrics dict to file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_9/metrics_train_f_on_d_U.p - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_9/checkpoints/hls-model-834 - -Saved new best checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_9/checkpoints/f_d_U/best.ckpt-830 - - -========== epoch : 5 ============ - -cost: 0.024306380487655845 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.7272727272727273, 'precision_1': 0.7076923076923077, 'recall_1': 0.7479674796747967, 'support_1': 123, 'f1_score': array([0.875, 0.727, 0.561, 0.754, 0.812, 0.783]), 'precision': array([0.875, 0.708, 0.515, 0.889, 0.915, 0.716]), 'recall': array([0.875, 0.748, 0.616, 0.655, 0.730, 0.863]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7519689682399416, 'avg_precision': 0.7696116496521253, 'avg_recall': 0.7477212985252578, 'accuracy': 0.714, 'epoch': 6.0, 'f_d_global_step': 996} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.722 Current is: 0.714 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_9/checkpoints/hls-model-1001 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_9/checkpoints/f_d_U/best.ckpt-830 - - -========== epoch : 6 ============ - -cost: 0.022068092988029753 - -patience: 1 - - -metrics_dict: {'f1_score_1': 0.7419354838709679, 'precision_1': 0.736, 'recall_1': 0.7479674796747967, 'support_1': 123, 'f1_score': array([0.875, 0.742, 0.586, 0.697, 0.826, 0.805]), 'precision': array([0.875, 0.736, 0.506, 0.912, 0.891, 0.765]), 'recall': array([0.875, 0.748, 0.696, 0.564, 0.770, 0.849]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7552187707473653, 'avg_precision': 0.7808858851902153, 'avg_recall': 0.7504362922505253, 'accuracy': 0.716, 'epoch': 7.0, 'f_d_global_step': 1162} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.722 Current is: 0.716 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_9/checkpoints/hls-model-1168 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_9/checkpoints/f_d_U/best.ckpt-830 - - -========== epoch : 7 ============ - -cost: 0.01867475391594211 - -patience: 2 - - -metrics_dict: {'f1_score_1': 0.7309236947791166, 'precision_1': 0.7222222222222222, 'recall_1': 0.7398373983739838, 'support_1': 123, 'f1_score': array([0.875, 0.731, 0.577, 0.710, 0.830, 0.789]), 'precision': array([0.875, 0.722, 0.518, 0.890, 0.836, 0.759]), 'recall': array([0.875, 0.740, 0.652, 0.591, 0.824, 0.822]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7521311607090317, 'avg_precision': 0.7667456311370788, 'avg_recall': 0.7506290560187151, 'accuracy': 0.714, 'epoch': 8.0, 'f_d_global_step': 1328} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.722 Current is: 0.714 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_9/checkpoints/hls-model-1335 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_9/checkpoints/f_d_U/best.ckpt-830 - - -========== epoch : 8 ============ - -cost: 0.026676705202491175 - -patience: 3 - - -metrics_dict: {'f1_score_1': 0.7426470588235294, 'precision_1': 0.6778523489932886, 'recall_1': 0.8211382113821138, 'support_1': 123, 'f1_score': array([0.824, 0.743, 0.536, 0.747, 0.836, 0.773]), 'precision': array([0.778, 0.678, 0.546, 0.944, 0.847, 0.700]), 'recall': array([0.875, 0.821, 0.527, 0.618, 0.824, 0.863]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7430692379216848, 'avg_precision': 0.7489321816223383, 'avg_recall': 0.7547406278006847, 'accuracy': 0.718, 'epoch': 9.0, 'f_d_global_step': 1494} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.722 Current is: 0.718 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_9/checkpoints/hls-model-1502 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_9/checkpoints/f_d_U/best.ckpt-830 - - -========== epoch : 9 ============ - -cost: 0.013066822823897253 - -patience: 4 - - -metrics_dict: {'f1_score_1': 0.7402135231316725, 'precision_1': 0.6582278481012658, 'recall_1': 0.8455284552845529, 'support_1': 123, 'f1_score': array([0.875, 0.740, 0.540, 0.754, 0.840, 0.774]), 'precision': array([0.875, 0.658, 0.563, 0.945, 0.829, 0.732]), 'recall': array([0.875, 0.846, 0.518, 0.627, 0.851, 0.822]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7538400526492396, 'avg_precision': 0.767032468194008, 'avg_recall': 0.7564879141641588, 'accuracy': 0.722, 'epoch': 10.0, 'f_d_global_step': 1660} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.722 Current is: 0.722 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_9/checkpoints/hls-model-1669 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_9/checkpoints/f_d_U/best.ckpt-830 - - -========== epoch : 10 ============ - -cost: 0.00886032269132907 - -patience: 5 - - -metrics_dict: {'f1_score_1': 0.744, 'precision_1': 0.7322834645669292, 'recall_1': 0.7560975609756098, 'support_1': 123, 'f1_score': array([0.824, 0.744, 0.596, 0.700, 0.802, 0.822]), 'precision': array([0.778, 0.732, 0.549, 0.900, 0.739, 0.822]), 'recall': array([0.875, 0.756, 0.652, 0.573, 0.878, 0.822]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7479724538555487, 'avg_precision': 0.753247932441896, 'avg_recall': 0.7593177890976922, 'accuracy': 0.722, 'epoch': 11.0, 'f_d_global_step': 1826} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.722 Current is: 0.722 -bye! stopping early!...... -Optimization Finished for f_d_U! - Implication loss training end diff --git a/spear/Implyloss/logs/my_TREC/learn2reweight_0.1_0.01_1.txt b/spear/Implyloss/logs/my_TREC/learn2reweight_0.1_0.01_1.txt deleted file mode 100644 index eeaefdb..0000000 --- a/spear/Implyloss/logs/my_TREC/learn2reweight_0.1_0.01_1.txt +++ /dev/null @@ -1,287 +0,0 @@ -Hello 2 1 -2021-04-18 09:53:58.314475: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory -2021-04-18 09:53:58.314535: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/compat/v2_compat.py:96: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version. -Instructions for updating: -non-resource variables are not supported in the long term -Started Reading Flags - -checkpoint_load_mode = mru -d_pickle_name = d_processed.p -data_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC -dropout_keep_prob = 0.8 -early_stopping_p = 20 -f_d_adam_lr = 0.0003 -f_d_batch_size = 16 -f_d_class_sampling_str = 10,10,10,10,10,10 -f_d_epochs = 7 -f_d_metrics_pickle_name = metrics_train_f_on_d.p -f_d_primary_metric = accuracy -f_d_U_adam_lr = 0.0003 -f_d_U_batch_size = 32 -f_d_U_epochs = 7 -f_d_U_metrics_pickle_name = metrics_train_f_on_d_U.p -f_infer_out_pickle_name = infer_f.p -f_layers_str = 512,512 -gamma = 0.1 -lamda = 0.01 -min_rule_coverage = 0 -network_dropout = True -num_checkpoints = 1 -num_classes = 0 -num_load_d = 0 -num_load_U = 0 -num_load_validation = 0 -output_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_1 -rule_classes_str = -run_mode = learn2reweight -shuffle_batches = True -test_w_batch_size = 1000 -U_pickle_name = U_processed.p -use_joint_f_w = False -validation_pickle_name = validation_processed.p -w_infer_out_pickle_name = infer_w.p -w_layers_str = 512,512 - -Hi1 -Ended Reading Flags -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_1/d_processed.p -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/U_processed.p -Rule classes: [2, 1, 1, 4, 3, 2, 1, 3, 5, 4, 3, 2, 4, 1, 2, 5, 4, 1, 2, 4, 3, 1, 3, 2, 1, 1, 4, 4, 5, 1, 3, 5, 2, 1, 5, 1, 5, 5, 0, 5, 5, 1, 4, 2, 3, 2, 1, 3, 5, 1, 1, 3, 2, 1, 1, 5, 2, 3, 2, 5, 3, 3, 4, 5, 5, 4, 2, 0] -length of covered U: 4637 -Size of d before oversampling: 68 -Size of U (covered) : 4637 -Size of d after oversampling: 680 -Size of d_U after combining: 5317 -Loading 68 elements from d -num instances in d: 680 -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/validation_processed.p -Setting value of d to 0 for test data -test_w len: 476 -test_w len: 476 -Number of features: 1024 -Number of classes: 6 -Print num of rules to train: 68 -Print num of rules: 68 - - - -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_1/metrics_train_f_on_d.p' -Did not find prev best metric for run type f_d. Setting to zero. -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_1/metrics_train_f_on_d_U.p' -Did not find prev best metric for run type f_d_U. Setting to zero. -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/legacy_tf_layers/core.py:171: UserWarning: `tf.layers.dense` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dense` instead. - warnings.warn('`tf.layers.dense` is deprecated and ' -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer_v1.py:1719: UserWarning: `layer.apply` is deprecated and will be removed in a future version. Please use `layer.__call__` method instead. - warnings.warn('`layer.apply` is deprecated and ' -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version. -Instructions for updating: -Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version. -Instructions for updating: - -Future major versions of TensorFlow will allow gradients to flow -into the labels input on backprop by default. - -See `tf.nn.softmax_cross_entropy_with_logits_v2`. - -WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/Data_Pgm_Subset_Slc/Implyloss/my_model.py:615: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. -Instructions for updating: -Use `tf.cast` instead. -WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/Data_Pgm_Subset_Slc/Implyloss/my_model.py:406: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. -Instructions for updating: -Use `tf.cast` instead. -[ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" -] -2021-04-18 09:54:03.195213: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA -To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. -2021-04-18 09:54:03.195989: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set -2021-04-18 09:54:03.196165: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory -2021-04-18 09:54:03.196183: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed call to cuInit: UNKNOWN ERROR (303) -2021-04-18 09:54:03.196206: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (parth-G3-3590): /proc/driver/nvidia/version does not exist -2021-04-18 09:54:03.460393: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:196] None of the MLIR optimization passes are enabled (registered 0 passes) -2021-04-18 09:54:03.479398: I tensorflow/core/platform/profile_utils/cpu_utils.cc:112] CPU Frequency: 2599990000 Hz -Run mode is learn2reweight -learn2reweight -num_instances: 5317 -batch_size: 32 -total_batch: 166 -remaining: 5 -total_batch: 166 -Optimization started for f_d_U with learn2reweight loss! -Batch size: 32! -Batches per epoch : 166! -Number of epochs: 7! - -========== epoch : 0 ============ - -cost: 1.3065746706652346 - -patience: 0 - -/home/parth/.local/lib/python3.8/site-packages/sklearn/metrics/classification.py:1436: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. - precision = _prf_divide(tp_sum, pred_sum, - -metrics_dict: {'f1_score_1': 0.5191740412979351, 'precision_1': 0.4074074074074074, 'recall_1': 0.7154471544715447, 'support_1': 123, 'f1_score': array([0.000, 0.519, 0.177, 0.608, 0.475, 0.449]), 'precision': array([0.000, 0.407, 0.304, 1.000, 0.889, 0.325]), 'recall': array([0.000, 0.715, 0.125, 0.436, 0.324, 0.726]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.37139737250092836, 'avg_precision': 0.48763291610273024, 'avg_recall': 0.3878604187366299, 'accuracy': 0.454, 'epoch': 1.0, 'f_d_global_step': 166} - -Reporting f_d metrics to tensorboard - -dumped metrics dict to file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_1/metrics_train_f_on_d_U.p - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_1/checkpoints/hls-model-166 - -Saved new best checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_1/checkpoints/f_d_U/best.ckpt-166 - - -========== epoch : 1 ============ - -cost: 0.7566057808068863 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.5494505494505495, 'precision_1': 0.4149377593360996, 'recall_1': 0.8130081300813008, 'support_1': 123, 'f1_score': array([0.000, 0.549, 0.200, 0.624, 0.621, 0.628]), 'precision': array([0.000, 0.415, 0.293, 0.883, 0.857, 0.545]), 'recall': array([0.000, 0.813, 0.152, 0.482, 0.486, 0.740]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.4369294321886425, 'avg_precision': 0.49899532392378293, 'avg_recall': 0.4454707566781573, 'accuracy': 0.52, 'epoch': 2.0, 'f_d_global_step': 332} - -Reporting f_d metrics to tensorboard - -dumped metrics dict to file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_1/metrics_train_f_on_d_U.p - -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/training/saver.py:968: remove_checkpoint (from tensorflow.python.training.checkpoint_management) is deprecated and will be removed in a future version. -Instructions for updating: -Use standard file APIs to delete files with this prefix. -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_1/checkpoints/hls-model-333 - -Saved new best checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_1/checkpoints/f_d_U/best.ckpt-332 - - -========== epoch : 2 ============ - -cost: 0.6483252392296328 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.5126353790613719, 'precision_1': 0.461038961038961, 'recall_1': 0.5772357723577236, 'support_1': 123, 'f1_score': array([0.000, 0.513, 0.332, 0.618, 0.642, 0.573]), 'precision': array([0.000, 0.461, 0.395, 0.809, 0.600, 0.473]), 'recall': array([0.000, 0.577, 0.286, 0.500, 0.689, 0.726]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.4461169219505128, 'avg_precision': 0.4563564174266788, 'avg_recall': 0.46302777408691204, 'accuracy': 0.524, 'epoch': 3.0, 'f_d_global_step': 498} - -Reporting f_d metrics to tensorboard - -dumped metrics dict to file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_1/metrics_train_f_on_d_U.p - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_1/checkpoints/hls-model-500 - -Saved new best checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_1/checkpoints/f_d_U/best.ckpt-498 - - -========== epoch : 3 ============ - -cost: 0.5569613618574226 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.5373134328358209, 'precision_1': 0.42452830188679247, 'recall_1': 0.7317073170731707, 'support_1': 123, 'f1_score': array([0.000, 0.537, 0.293, 0.608, 0.587, 0.616]), 'precision': array([0.000, 0.425, 0.323, 0.852, 0.914, 0.535]), 'recall': array([0.000, 0.732, 0.268, 0.473, 0.432, 0.726]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.44026975453970124, 'avg_precision': 0.5082012021801291, 'avg_recall': 0.43845859372504875, 'accuracy': 0.514, 'epoch': 4.0, 'f_d_global_step': 664} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.524 Current is: 0.514 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_1/checkpoints/hls-model-667 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_1/checkpoints/f_d_U/best.ckpt-498 - - -========== epoch : 4 ============ - -cost: 0.5389695806675646 - -patience: 1 - - -metrics_dict: {'f1_score_1': 0.5352112676056338, 'precision_1': 0.40948275862068967, 'recall_1': 0.7723577235772358, 'support_1': 123, 'f1_score': array([0.000, 0.535, 0.147, 0.636, 0.533, 0.599]), 'precision': array([0.000, 0.409, 0.289, 0.729, 0.903, 0.491]), 'recall': array([0.000, 0.772, 0.098, 0.564, 0.378, 0.767]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.40833986413108203, 'avg_precision': 0.47047034736069165, 'avg_recall': 0.42995167316291605, 'accuracy': 0.504, 'epoch': 5.0, 'f_d_global_step': 830} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.524 Current is: 0.504 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_1/checkpoints/hls-model-834 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_1/checkpoints/f_d_U/best.ckpt-498 - - -========== epoch : 5 ============ - -cost: 0.578636566378984 - -patience: 2 - - -metrics_dict: {'f1_score_1': 0.5404040404040404, 'precision_1': 0.39194139194139194, 'recall_1': 0.8699186991869918, 'support_1': 123, 'f1_score': array([0.000, 0.540, 0.195, 0.640, 0.532, 0.620]), 'precision': array([0.000, 0.392, 0.357, 0.862, 0.829, 0.576]), 'recall': array([0.000, 0.870, 0.134, 0.509, 0.392, 0.671]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.42126208191821934, 'avg_precision': 0.5026107879049055, 'avg_recall': 0.42934382471844884, 'accuracy': 0.512, 'epoch': 6.0, 'f_d_global_step': 996} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.524 Current is: 0.512 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_1/checkpoints/hls-model-1001 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_1/checkpoints/f_d_U/best.ckpt-498 - - -========== epoch : 6 ============ - -cost: 0.4965143258043802 - -patience: 3 - - -metrics_dict: {'f1_score_1': 0.5313283208020051, 'precision_1': 0.38405797101449274, 'recall_1': 0.8617886178861789, 'support_1': 123, 'f1_score': array([0.000, 0.531, 0.217, 0.597, 0.556, 0.681]), 'precision': array([0.000, 0.384, 0.333, 0.761, 0.882, 0.723]), 'recall': array([0.000, 0.862, 0.161, 0.491, 0.405, 0.644]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.43026597489997703, 'avg_precision': 0.5138974248138183, 'avg_recall': 0.4271088360588862, 'accuracy': 0.51, 'epoch': 7.0, 'f_d_global_step': 1162} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.524 Current is: 0.51 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_1/checkpoints/hls-model-1168 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_1/checkpoints/f_d_U/best.ckpt-498 - -Optimization Finished for f_d_U! diff --git a/spear/Implyloss/logs/my_TREC/learn2reweight_0.1_0.01_2.txt b/spear/Implyloss/logs/my_TREC/learn2reweight_0.1_0.01_2.txt deleted file mode 100644 index ed563f4..0000000 --- a/spear/Implyloss/logs/my_TREC/learn2reweight_0.1_0.01_2.txt +++ /dev/null @@ -1,289 +0,0 @@ -Hello 2 1 -2021-04-18 09:53:58.314475: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory -2021-04-18 09:53:58.314536: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/compat/v2_compat.py:96: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version. -Instructions for updating: -non-resource variables are not supported in the long term -Started Reading Flags - -checkpoint_load_mode = mru -d_pickle_name = d_processed.p -data_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC -dropout_keep_prob = 0.8 -early_stopping_p = 20 -f_d_adam_lr = 0.0003 -f_d_batch_size = 16 -f_d_class_sampling_str = 10,10,10,10,10,10 -f_d_epochs = 7 -f_d_metrics_pickle_name = metrics_train_f_on_d.p -f_d_primary_metric = accuracy -f_d_U_adam_lr = 0.0003 -f_d_U_batch_size = 32 -f_d_U_epochs = 7 -f_d_U_metrics_pickle_name = metrics_train_f_on_d_U.p -f_infer_out_pickle_name = infer_f.p -f_layers_str = 512,512 -gamma = 0.1 -lamda = 0.01 -min_rule_coverage = 0 -network_dropout = True -num_checkpoints = 1 -num_classes = 0 -num_load_d = 0 -num_load_U = 0 -num_load_validation = 0 -output_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_2 -rule_classes_str = -run_mode = learn2reweight -shuffle_batches = True -test_w_batch_size = 1000 -U_pickle_name = U_processed.p -use_joint_f_w = False -validation_pickle_name = validation_processed.p -w_infer_out_pickle_name = infer_w.p -w_layers_str = 512,512 - -Hi1 -Ended Reading Flags -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_2/d_processed.p -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/U_processed.p -Rule classes: [2, 1, 1, 4, 3, 2, 1, 3, 5, 4, 3, 2, 4, 1, 2, 5, 4, 1, 2, 4, 3, 1, 3, 2, 1, 1, 4, 4, 5, 1, 3, 5, 2, 1, 5, 1, 5, 5, 0, 5, 5, 1, 4, 2, 3, 2, 1, 3, 5, 1, 1, 3, 2, 1, 1, 5, 2, 3, 2, 5, 3, 3, 4, 5, 5, 4, 2, 0] -length of covered U: 4637 -Size of d before oversampling: 68 -Size of U (covered) : 4637 -Size of d after oversampling: 680 -Size of d_U after combining: 5317 -Loading 68 elements from d -num instances in d: 680 -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/validation_processed.p -Setting value of d to 0 for test data -test_w len: 476 -test_w len: 476 -Number of features: 1024 -Number of classes: 6 -Print num of rules to train: 68 -Print num of rules: 68 - - - -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_2/metrics_train_f_on_d.p' -Did not find prev best metric for run type f_d. Setting to zero. -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_2/metrics_train_f_on_d_U.p' -Did not find prev best metric for run type f_d_U. Setting to zero. -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/legacy_tf_layers/core.py:171: UserWarning: `tf.layers.dense` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dense` instead. - warnings.warn('`tf.layers.dense` is deprecated and ' -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer_v1.py:1719: UserWarning: `layer.apply` is deprecated and will be removed in a future version. Please use `layer.__call__` method instead. - warnings.warn('`layer.apply` is deprecated and ' -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version. -Instructions for updating: -Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version. -Instructions for updating: - -Future major versions of TensorFlow will allow gradients to flow -into the labels input on backprop by default. - -See `tf.nn.softmax_cross_entropy_with_logits_v2`. - -WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/Data_Pgm_Subset_Slc/Implyloss/my_model.py:615: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. -Instructions for updating: -Use `tf.cast` instead. -WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/Data_Pgm_Subset_Slc/Implyloss/my_model.py:406: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. -Instructions for updating: -Use `tf.cast` instead. -[ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" -] -2021-04-18 09:54:03.210497: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA -To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. -2021-04-18 09:54:03.211212: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set -2021-04-18 09:54:03.211374: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory -2021-04-18 09:54:03.211394: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed call to cuInit: UNKNOWN ERROR (303) -2021-04-18 09:54:03.211415: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (parth-G3-3590): /proc/driver/nvidia/version does not exist -2021-04-18 09:54:03.475718: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:196] None of the MLIR optimization passes are enabled (registered 0 passes) -2021-04-18 09:54:03.492158: I tensorflow/core/platform/profile_utils/cpu_utils.cc:112] CPU Frequency: 2599990000 Hz -Run mode is learn2reweight -learn2reweight -num_instances: 5317 -batch_size: 32 -total_batch: 166 -remaining: 5 -total_batch: 166 -Optimization started for f_d_U with learn2reweight loss! -Batch size: 32! -Batches per epoch : 166! -Number of epochs: 7! - -========== epoch : 0 ============ - -cost: 1.3621117463672023 - -patience: 0 - -/home/parth/.local/lib/python3.8/site-packages/sklearn/metrics/classification.py:1436: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. - precision = _prf_divide(tp_sum, pred_sum, - -metrics_dict: {'f1_score_1': 0.5146579804560261, 'precision_1': 0.42934782608695654, 'recall_1': 0.6422764227642277, 'support_1': 123, 'f1_score': array([0.000, 0.515, 0.231, 0.627, 0.460, 0.463]), 'precision': array([0.000, 0.429, 0.328, 0.929, 0.885, 0.329]), 'recall': array([0.000, 0.642, 0.179, 0.473, 0.311, 0.781]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.38263208525518716, 'avg_precision': 0.4833138767531522, 'avg_recall': 0.39753464211365985, 'accuracy': 0.462, 'epoch': 1.0, 'f_d_global_step': 166} - -Reporting f_d metrics to tensorboard - -dumped metrics dict to file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_2/metrics_train_f_on_d_U.p - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_2/checkpoints/hls-model-166 - -Saved new best checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_2/checkpoints/f_d_U/best.ckpt-166 - - -========== epoch : 1 ============ - -cost: 0.7797827717949105 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.5422535211267606, 'precision_1': 0.4782608695652174, 'recall_1': 0.6260162601626016, 'support_1': 123, 'f1_score': array([0.000, 0.542, 0.286, 0.570, 0.510, 0.498]), 'precision': array([0.000, 0.478, 0.333, 0.855, 0.929, 0.355]), 'recall': array([0.000, 0.626, 0.250, 0.427, 0.351, 0.836]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.40090464696335215, 'avg_precision': 0.491560374801022, 'avg_recall': 0.41504279619047413, 'accuracy': 0.478, 'epoch': 2.0, 'f_d_global_step': 332} - -Reporting f_d metrics to tensorboard - -dumped metrics dict to file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_2/metrics_train_f_on_d_U.p - -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/training/saver.py:968: remove_checkpoint (from tensorflow.python.training.checkpoint_management) is deprecated and will be removed in a future version. -Instructions for updating: -Use standard file APIs to delete files with this prefix. -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_2/checkpoints/hls-model-333 - -Saved new best checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_2/checkpoints/f_d_U/best.ckpt-332 - - -========== epoch : 2 ============ - -cost: 0.6305700612355428 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.5300546448087432, 'precision_1': 0.3991769547325103, 'recall_1': 0.7886178861788617, 'support_1': 123, 'f1_score': array([0.000, 0.530, 0.237, 0.585, 0.510, 0.598]), 'precision': array([0.000, 0.399, 0.297, 0.889, 0.929, 0.515]), 'recall': array([0.000, 0.789, 0.196, 0.436, 0.351, 0.712]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.4099141182076902, 'avg_precision': 0.5047976757731066, 'avg_recall': 0.4141817020742848, 'accuracy': 0.49, 'epoch': 3.0, 'f_d_global_step': 498} - -Reporting f_d metrics to tensorboard - -dumped metrics dict to file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_2/metrics_train_f_on_d_U.p - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_2/checkpoints/hls-model-500 - -Saved new best checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_2/checkpoints/f_d_U/best.ckpt-498 - - -========== epoch : 3 ============ - -cost: 0.6524274977574864 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.527536231884058, 'precision_1': 0.4099099099099099, 'recall_1': 0.7398373983739838, 'support_1': 123, 'f1_score': array([0.000, 0.528, 0.269, 0.626, 0.542, 0.615]), 'precision': array([0.000, 0.410, 0.338, 0.653, 0.879, 0.629]), 'recall': array([0.000, 0.740, 0.223, 0.600, 0.392, 0.603]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.42989775723295254, 'avg_precision': 0.4847620669402848, 'avg_recall': 0.42628055033459306, 'accuracy': 0.51, 'epoch': 4.0, 'f_d_global_step': 664} - -Reporting f_d metrics to tensorboard - -dumped metrics dict to file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_2/metrics_train_f_on_d_U.p - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_2/checkpoints/hls-model-667 - -Saved new best checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_2/checkpoints/f_d_U/best.ckpt-664 - - -========== epoch : 4 ============ - -cost: 0.5501504701349027 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.5423728813559323, 'precision_1': 0.4155844155844156, 'recall_1': 0.7804878048780488, 'support_1': 123, 'f1_score': array([0.000, 0.542, 0.201, 0.603, 0.519, 0.625]), 'precision': array([0.000, 0.416, 0.298, 0.722, 0.900, 0.534]), 'recall': array([0.000, 0.780, 0.152, 0.518, 0.365, 0.753]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.4151602809523279, 'avg_precision': 0.47822159991425783, 'avg_recall': 0.42812414329078213, 'accuracy': 0.504, 'epoch': 5.0, 'f_d_global_step': 830} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.51 Current is: 0.504 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_2/checkpoints/hls-model-834 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_2/checkpoints/f_d_U/best.ckpt-664 - - -========== epoch : 5 ============ - -cost: 0.5031870355807155 - -patience: 1 - - -metrics_dict: {'f1_score_1': 0.5469613259668509, 'precision_1': 0.41422594142259417, 'recall_1': 0.8048780487804879, 'support_1': 123, 'f1_score': array([0.000, 0.547, 0.221, 0.649, 0.547, 0.623]), 'precision': array([0.000, 0.414, 0.317, 0.800, 0.906, 0.553]), 'recall': array([0.000, 0.805, 0.170, 0.545, 0.392, 0.712]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.43107741825205964, 'avg_precision': 0.4983890162418272, 'avg_recall': 0.43736601839884504, 'accuracy': 0.518, 'epoch': 6.0, 'f_d_global_step': 996} - -Reporting f_d metrics to tensorboard - -dumped metrics dict to file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_2/metrics_train_f_on_d_U.p - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_2/checkpoints/hls-model-1001 - -Saved new best checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_2/checkpoints/f_d_U/best.ckpt-996 - - -========== epoch : 6 ============ - -cost: 0.5012447351185848 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.5255102040816326, 'precision_1': 0.3828996282527881, 'recall_1': 0.8373983739837398, 'support_1': 123, 'f1_score': array([0.000, 0.526, 0.208, 0.593, 0.514, 0.640]), 'precision': array([0.000, 0.383, 0.295, 0.823, 0.871, 0.623]), 'recall': array([0.000, 0.837, 0.161, 0.464, 0.365, 0.658]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.4134852766217389, 'avg_precision': 0.49915110098988347, 'avg_recall': 0.41402468912909945, 'accuracy': 0.494, 'epoch': 7.0, 'f_d_global_step': 1162} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.518 Current is: 0.494 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_2/checkpoints/hls-model-1168 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_2/checkpoints/f_d_U/best.ckpt-996 - -Optimization Finished for f_d_U! diff --git a/spear/Implyloss/logs/my_TREC/learn2reweight_0.1_0.01_3.txt b/spear/Implyloss/logs/my_TREC/learn2reweight_0.1_0.01_3.txt deleted file mode 100644 index c7d3620..0000000 --- a/spear/Implyloss/logs/my_TREC/learn2reweight_0.1_0.01_3.txt +++ /dev/null @@ -1,286 +0,0 @@ -Hello 2 1 -2021-04-18 09:53:58.314470: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory -2021-04-18 09:53:58.314535: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/compat/v2_compat.py:96: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version. -Instructions for updating: -non-resource variables are not supported in the long term -Started Reading Flags - -checkpoint_load_mode = mru -d_pickle_name = d_processed.p -data_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC -dropout_keep_prob = 0.8 -early_stopping_p = 20 -f_d_adam_lr = 0.0003 -f_d_batch_size = 16 -f_d_class_sampling_str = 10,10,10,10,10,10 -f_d_epochs = 7 -f_d_metrics_pickle_name = metrics_train_f_on_d.p -f_d_primary_metric = accuracy -f_d_U_adam_lr = 0.0003 -f_d_U_batch_size = 32 -f_d_U_epochs = 7 -f_d_U_metrics_pickle_name = metrics_train_f_on_d_U.p -f_infer_out_pickle_name = infer_f.p -f_layers_str = 512,512 -gamma = 0.1 -lamda = 0.01 -min_rule_coverage = 0 -network_dropout = True -num_checkpoints = 1 -num_classes = 0 -num_load_d = 0 -num_load_U = 0 -num_load_validation = 0 -output_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_3 -rule_classes_str = -run_mode = learn2reweight -shuffle_batches = True -test_w_batch_size = 1000 -U_pickle_name = U_processed.p -use_joint_f_w = False -validation_pickle_name = validation_processed.p -w_infer_out_pickle_name = infer_w.p -w_layers_str = 512,512 - -Hi1 -Ended Reading Flags -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_3/d_processed.p -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/U_processed.p -Rule classes: [2, 1, 1, 4, 3, 2, 1, 3, 5, 4, 3, 2, 4, 1, 2, 5, 4, 1, 2, 4, 3, 1, 3, 2, 1, 1, 4, 4, 5, 1, 3, 5, 2, 1, 5, 1, 5, 5, 0, 5, 5, 1, 4, 2, 3, 2, 1, 3, 5, 1, 1, 3, 2, 1, 1, 5, 2, 3, 2, 5, 3, 3, 4, 5, 5, 4, 2, 0] -length of covered U: 4637 -Size of d before oversampling: 68 -Size of U (covered) : 4637 -Size of d after oversampling: 680 -Size of d_U after combining: 5317 -Loading 68 elements from d -num instances in d: 680 -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/validation_processed.p -Setting value of d to 0 for test data -test_w len: 476 -test_w len: 476 -Number of features: 1024 -Number of classes: 6 -Print num of rules to train: 68 -Print num of rules: 68 - - - -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_3/metrics_train_f_on_d.p' -Did not find prev best metric for run type f_d. Setting to zero. -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_3/metrics_train_f_on_d_U.p' -Did not find prev best metric for run type f_d_U. Setting to zero. -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/legacy_tf_layers/core.py:171: UserWarning: `tf.layers.dense` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dense` instead. - warnings.warn('`tf.layers.dense` is deprecated and ' -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer_v1.py:1719: UserWarning: `layer.apply` is deprecated and will be removed in a future version. Please use `layer.__call__` method instead. - warnings.warn('`layer.apply` is deprecated and ' -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version. -Instructions for updating: -Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version. -Instructions for updating: - -Future major versions of TensorFlow will allow gradients to flow -into the labels input on backprop by default. - -See `tf.nn.softmax_cross_entropy_with_logits_v2`. - -WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/Data_Pgm_Subset_Slc/Implyloss/my_model.py:615: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. -Instructions for updating: -Use `tf.cast` instead. -WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/Data_Pgm_Subset_Slc/Implyloss/my_model.py:406: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. -Instructions for updating: -Use `tf.cast` instead. -[ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" -] -2021-04-18 09:54:03.196787: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA -To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. -2021-04-18 09:54:03.197405: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set -2021-04-18 09:54:03.197558: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory -2021-04-18 09:54:03.197576: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed call to cuInit: UNKNOWN ERROR (303) -2021-04-18 09:54:03.197601: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (parth-G3-3590): /proc/driver/nvidia/version does not exist -2021-04-18 09:54:03.470120: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:196] None of the MLIR optimization passes are enabled (registered 0 passes) -2021-04-18 09:54:03.486801: I tensorflow/core/platform/profile_utils/cpu_utils.cc:112] CPU Frequency: 2599990000 Hz -Run mode is learn2reweight -learn2reweight -num_instances: 5317 -batch_size: 32 -total_batch: 166 -remaining: 5 -total_batch: 166 -Optimization started for f_d_U with learn2reweight loss! -Batch size: 32! -Batches per epoch : 166! -Number of epochs: 7! - -========== epoch : 0 ============ - -cost: 1.3800484125154564 - -patience: 0 - -/home/parth/.local/lib/python3.8/site-packages/sklearn/metrics/classification.py:1436: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. - precision = _prf_divide(tp_sum, pred_sum, - -metrics_dict: {'f1_score_1': 0.5157593123209169, 'precision_1': 0.39823008849557523, 'recall_1': 0.7317073170731707, 'support_1': 123, 'f1_score': array([0.000, 0.516, 0.147, 0.636, 0.437, 0.518]), 'precision': array([0.000, 0.398, 0.289, 0.873, 0.955, 0.384]), 'recall': array([0.000, 0.732, 0.098, 0.500, 0.284, 0.795]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.37560354535562396, 'avg_precision': 0.4832285100887217, 'avg_recall': 0.4013709890860743, 'accuracy': 0.47, 'epoch': 1.0, 'f_d_global_step': 166} - -Reporting f_d metrics to tensorboard - -dumped metrics dict to file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_3/metrics_train_f_on_d_U.p - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_3/checkpoints/hls-model-166 - -Saved new best checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_3/checkpoints/f_d_U/best.ckpt-166 - - -========== epoch : 1 ============ - -cost: 0.7971297348568959 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.5459610027855154, 'precision_1': 0.4152542372881356, 'recall_1': 0.7967479674796748, 'support_1': 123, 'f1_score': array([0.000, 0.546, 0.255, 0.640, 0.603, 0.599]), 'precision': array([0.000, 0.415, 0.396, 0.862, 0.833, 0.510]), 'recall': array([0.000, 0.797, 0.188, 0.509, 0.473, 0.726]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.4404707982817024, 'avg_precision': 0.5026613053116091, 'avg_recall': 0.44872320780063846, 'accuracy': 0.526, 'epoch': 2.0, 'f_d_global_step': 332} - -Reporting f_d metrics to tensorboard - -dumped metrics dict to file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_3/metrics_train_f_on_d_U.p - -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/training/saver.py:968: remove_checkpoint (from tensorflow.python.training.checkpoint_management) is deprecated and will be removed in a future version. -Instructions for updating: -Use standard file APIs to delete files with this prefix. -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_3/checkpoints/hls-model-333 - -Saved new best checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_3/checkpoints/f_d_U/best.ckpt-332 - - -========== epoch : 2 ============ - -cost: 0.6204775082598254 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.550561797752809, 'precision_1': 0.4206008583690987, 'recall_1': 0.7967479674796748, 'support_1': 123, 'f1_score': array([0.000, 0.551, 0.306, 0.609, 0.617, 0.630]), 'precision': array([0.000, 0.421, 0.330, 0.961, 0.804, 0.630]), 'recall': array([0.000, 0.797, 0.286, 0.445, 0.500, 0.630]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.45204686643142306, 'avg_precision': 0.5242944819499017, 'avg_recall': 0.4430089641583126, 'accuracy': 0.524, 'epoch': 3.0, 'f_d_global_step': 498} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.526 Current is: 0.524 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_3/checkpoints/hls-model-500 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_3/checkpoints/f_d_U/best.ckpt-332 - - -========== epoch : 3 ============ - -cost: 0.5826776918607302 - -patience: 1 - - -metrics_dict: {'f1_score_1': 0.5973154362416109, 'precision_1': 0.5085714285714286, 'recall_1': 0.7235772357723578, 'support_1': 123, 'f1_score': array([0.000, 0.597, 0.308, 0.599, 0.574, 0.532]), 'precision': array([0.000, 0.509, 0.348, 0.877, 0.912, 0.400]), 'recall': array([0.000, 0.724, 0.277, 0.455, 0.419, 0.795]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.4351266181185285, 'avg_precision': 0.5076406206085825, 'avg_recall': 0.44472464524460853, 'accuracy': 0.518, 'epoch': 4.0, 'f_d_global_step': 664} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.526 Current is: 0.518 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_3/checkpoints/hls-model-667 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_3/checkpoints/f_d_U/best.ckpt-332 - - -========== epoch : 4 ============ - -cost: 0.5668846613402106 - -patience: 2 - - -metrics_dict: {'f1_score_1': 0.5260545905707196, 'precision_1': 0.37857142857142856, 'recall_1': 0.8617886178861789, 'support_1': 123, 'f1_score': array([0.000, 0.526, 0.210, 0.601, 0.524, 0.623]), 'precision': array([0.000, 0.379, 0.340, 0.825, 0.931, 0.603]), 'recall': array([0.000, 0.862, 0.152, 0.473, 0.365, 0.644]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.41397926734939045, 'avg_precision': 0.5129278065484962, 'avg_recall': 0.41583368103373114, 'accuracy': 0.498, 'epoch': 5.0, 'f_d_global_step': 830} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.526 Current is: 0.498 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_3/checkpoints/hls-model-834 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_3/checkpoints/f_d_U/best.ckpt-332 - - -========== epoch : 5 ============ - -cost: 0.502609796732305 - -patience: 3 - - -metrics_dict: {'f1_score_1': 0.5376344086021505, 'precision_1': 0.40160642570281124, 'recall_1': 0.8130081300813008, 'support_1': 123, 'f1_score': array([0.000, 0.538, 0.159, 0.612, 0.510, 0.632]), 'precision': array([0.000, 0.402, 0.308, 0.698, 0.929, 0.551]), 'recall': array([0.000, 0.813, 0.107, 0.545, 0.351, 0.740]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.40836709547489597, 'avg_precision': 0.48109416478907735, 'avg_recall': 0.42611381857121916, 'accuracy': 0.504, 'epoch': 6.0, 'f_d_global_step': 996} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.526 Current is: 0.504 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_3/checkpoints/hls-model-1001 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_3/checkpoints/f_d_U/best.ckpt-332 - - -========== epoch : 6 ============ - -cost: 0.5049222361700363 - -patience: 4 - - -metrics_dict: {'f1_score_1': 0.5282051282051282, 'precision_1': 0.3857677902621723, 'recall_1': 0.8373983739837398, 'support_1': 123, 'f1_score': array([0.000, 0.528, 0.224, 0.598, 0.537, 0.657]), 'precision': array([0.000, 0.386, 0.328, 0.743, 0.853, 0.687]), 'recall': array([0.000, 0.837, 0.170, 0.500, 0.392, 0.630]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.4239567535177083, 'avg_precision': 0.4993509301752767, 'avg_recall': 0.42151168488664315, 'accuracy': 0.504, 'epoch': 7.0, 'f_d_global_step': 1162} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.526 Current is: 0.504 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_3/checkpoints/hls-model-1168 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_3/checkpoints/f_d_U/best.ckpt-332 - -Optimization Finished for f_d_U! diff --git a/spear/Implyloss/logs/my_TREC/learn2reweight_0.1_0.01_4.txt b/spear/Implyloss/logs/my_TREC/learn2reweight_0.1_0.01_4.txt deleted file mode 100644 index bf13ffe..0000000 --- a/spear/Implyloss/logs/my_TREC/learn2reweight_0.1_0.01_4.txt +++ /dev/null @@ -1,286 +0,0 @@ -Hello 2 1 -2021-04-18 09:53:58.314475: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory -2021-04-18 09:53:58.314536: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/compat/v2_compat.py:96: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version. -Instructions for updating: -non-resource variables are not supported in the long term -Started Reading Flags - -checkpoint_load_mode = mru -d_pickle_name = d_processed.p -data_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC -dropout_keep_prob = 0.8 -early_stopping_p = 20 -f_d_adam_lr = 0.0003 -f_d_batch_size = 16 -f_d_class_sampling_str = 10,10,10,10,10,10 -f_d_epochs = 7 -f_d_metrics_pickle_name = metrics_train_f_on_d.p -f_d_primary_metric = accuracy -f_d_U_adam_lr = 0.0003 -f_d_U_batch_size = 32 -f_d_U_epochs = 7 -f_d_U_metrics_pickle_name = metrics_train_f_on_d_U.p -f_infer_out_pickle_name = infer_f.p -f_layers_str = 512,512 -gamma = 0.1 -lamda = 0.01 -min_rule_coverage = 0 -network_dropout = True -num_checkpoints = 1 -num_classes = 0 -num_load_d = 0 -num_load_U = 0 -num_load_validation = 0 -output_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_4 -rule_classes_str = -run_mode = learn2reweight -shuffle_batches = True -test_w_batch_size = 1000 -U_pickle_name = U_processed.p -use_joint_f_w = False -validation_pickle_name = validation_processed.p -w_infer_out_pickle_name = infer_w.p -w_layers_str = 512,512 - -Hi1 -Ended Reading Flags -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_4/d_processed.p -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/U_processed.p -Rule classes: [2, 1, 1, 4, 3, 2, 1, 3, 5, 4, 3, 2, 4, 1, 2, 5, 4, 1, 2, 4, 3, 1, 3, 2, 1, 1, 4, 4, 5, 1, 3, 5, 2, 1, 5, 1, 5, 5, 0, 5, 5, 1, 4, 2, 3, 2, 1, 3, 5, 1, 1, 3, 2, 1, 1, 5, 2, 3, 2, 5, 3, 3, 4, 5, 5, 4, 2, 0] -length of covered U: 4637 -Size of d before oversampling: 68 -Size of U (covered) : 4637 -Size of d after oversampling: 680 -Size of d_U after combining: 5317 -Loading 68 elements from d -num instances in d: 680 -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/validation_processed.p -Setting value of d to 0 for test data -test_w len: 476 -test_w len: 476 -Number of features: 1024 -Number of classes: 6 -Print num of rules to train: 68 -Print num of rules: 68 - - - -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_4/metrics_train_f_on_d.p' -Did not find prev best metric for run type f_d. Setting to zero. -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_4/metrics_train_f_on_d_U.p' -Did not find prev best metric for run type f_d_U. Setting to zero. -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/legacy_tf_layers/core.py:171: UserWarning: `tf.layers.dense` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dense` instead. - warnings.warn('`tf.layers.dense` is deprecated and ' -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer_v1.py:1719: UserWarning: `layer.apply` is deprecated and will be removed in a future version. Please use `layer.__call__` method instead. - warnings.warn('`layer.apply` is deprecated and ' -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version. -Instructions for updating: -Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version. -Instructions for updating: - -Future major versions of TensorFlow will allow gradients to flow -into the labels input on backprop by default. - -See `tf.nn.softmax_cross_entropy_with_logits_v2`. - -WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/Data_Pgm_Subset_Slc/Implyloss/my_model.py:615: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. -Instructions for updating: -Use `tf.cast` instead. -WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/Data_Pgm_Subset_Slc/Implyloss/my_model.py:406: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. -Instructions for updating: -Use `tf.cast` instead. -[ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" -] -2021-04-18 09:54:03.197334: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA -To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. -2021-04-18 09:54:03.197919: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set -2021-04-18 09:54:03.198093: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory -2021-04-18 09:54:03.198114: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed call to cuInit: UNKNOWN ERROR (303) -2021-04-18 09:54:03.198131: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (parth-G3-3590): /proc/driver/nvidia/version does not exist -2021-04-18 09:54:03.460589: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:196] None of the MLIR optimization passes are enabled (registered 0 passes) -2021-04-18 09:54:03.494153: I tensorflow/core/platform/profile_utils/cpu_utils.cc:112] CPU Frequency: 2599990000 Hz -Run mode is learn2reweight -learn2reweight -num_instances: 5317 -batch_size: 32 -total_batch: 166 -remaining: 5 -total_batch: 166 -Optimization started for f_d_U with learn2reweight loss! -Batch size: 32! -Batches per epoch : 166! -Number of epochs: 7! - -========== epoch : 0 ============ - -cost: 1.3702248273843751 - -patience: 0 - -/home/parth/.local/lib/python3.8/site-packages/sklearn/metrics/classification.py:1436: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. - precision = _prf_divide(tp_sum, pred_sum, - -metrics_dict: {'f1_score_1': 0.5303030303030303, 'precision_1': 0.49645390070921985, 'recall_1': 0.5691056910569106, 'support_1': 123, 'f1_score': array([0.000, 0.530, 0.280, 0.663, 0.437, 0.421]), 'precision': array([0.000, 0.496, 0.351, 0.892, 0.955, 0.288]), 'recall': array([0.000, 0.569, 0.232, 0.527, 0.284, 0.781]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.3884823787125596, 'avg_precision': 0.4970895311320844, 'avg_recall': 0.3988544961774163, 'accuracy': 0.464, 'epoch': 1.0, 'f_d_global_step': 166} - -Reporting f_d metrics to tensorboard - -dumped metrics dict to file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_4/metrics_train_f_on_d_U.p - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_4/checkpoints/hls-model-166 - -Saved new best checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_4/checkpoints/f_d_U/best.ckpt-166 - - -========== epoch : 1 ============ - -cost: 0.8084570852119523 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.5390835579514824, 'precision_1': 0.4032258064516129, 'recall_1': 0.8130081300813008, 'support_1': 123, 'f1_score': array([0.000, 0.539, 0.184, 0.692, 0.605, 0.662]), 'precision': array([0.000, 0.403, 0.350, 0.735, 0.800, 0.681]), 'recall': array([0.000, 0.813, 0.125, 0.655, 0.486, 0.644]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.44710260406126706, 'avg_precision': 0.49484651738208146, 'avg_recall': 0.453812614591933, 'accuracy': 0.538, 'epoch': 2.0, 'f_d_global_step': 332} - -Reporting f_d metrics to tensorboard - -dumped metrics dict to file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_4/metrics_train_f_on_d_U.p - -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/training/saver.py:968: remove_checkpoint (from tensorflow.python.training.checkpoint_management) is deprecated and will be removed in a future version. -Instructions for updating: -Use standard file APIs to delete files with this prefix. -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_4/checkpoints/hls-model-333 - -Saved new best checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_4/checkpoints/f_d_U/best.ckpt-332 - - -========== epoch : 2 ============ - -cost: 0.6225630783711573 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.5308641975308642, 'precision_1': 0.42786069651741293, 'recall_1': 0.6991869918699187, 'support_1': 123, 'f1_score': array([0.000, 0.531, 0.239, 0.618, 0.557, 0.624]), 'precision': array([0.000, 0.428, 0.328, 0.670, 0.780, 0.540]), 'recall': array([0.000, 0.699, 0.188, 0.573, 0.432, 0.740]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.4279911359614319, 'avg_precision': 0.45778104455881813, 'avg_recall': 0.43859545407114736, 'accuracy': 0.512, 'epoch': 3.0, 'f_d_global_step': 498} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.538 Current is: 0.512 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_4/checkpoints/hls-model-500 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_4/checkpoints/f_d_U/best.ckpt-332 - - -========== epoch : 3 ============ - -cost: 0.5292370061625739 - -patience: 1 - - -metrics_dict: {'f1_score_1': 0.5302593659942363, 'precision_1': 0.4107142857142857, 'recall_1': 0.7479674796747967, 'support_1': 123, 'f1_score': array([0.000, 0.530, 0.242, 0.598, 0.495, 0.654]), 'precision': array([0.000, 0.411, 0.295, 0.690, 0.839, 0.614]), 'recall': array([0.000, 0.748, 0.205, 0.527, 0.351, 0.699]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.4198978370943795, 'avg_precision': 0.47487162996782123, 'avg_recall': 0.42176313969038665, 'accuracy': 0.5, 'epoch': 4.0, 'f_d_global_step': 664} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.538 Current is: 0.5 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_4/checkpoints/hls-model-667 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_4/checkpoints/f_d_U/best.ckpt-332 - - -========== epoch : 4 ============ - -cost: 0.5745736829240811 - -patience: 2 - - -metrics_dict: {'f1_score_1': 0.536723163841808, 'precision_1': 0.41125541125541126, 'recall_1': 0.7723577235772358, 'support_1': 123, 'f1_score': array([0.000, 0.537, 0.161, 0.646, 0.518, 0.626]), 'precision': array([0.000, 0.411, 0.324, 0.727, 0.763, 0.528]), 'recall': array([0.000, 0.772, 0.107, 0.582, 0.392, 0.767]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.4146361837815499, 'avg_precision': 0.45905204073029293, 'avg_recall': 0.4367223236835665, 'accuracy': 0.512, 'epoch': 5.0, 'f_d_global_step': 830} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.538 Current is: 0.512 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_4/checkpoints/hls-model-834 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_4/checkpoints/f_d_U/best.ckpt-332 - - -========== epoch : 5 ============ - -cost: 0.5199654441641038 - -patience: 3 - - -metrics_dict: {'f1_score_1': 0.5312499999999999, 'precision_1': 0.39080459770114945, 'recall_1': 0.8292682926829268, 'support_1': 123, 'f1_score': array([0.000, 0.531, 0.173, 0.663, 0.625, 0.671]), 'precision': array([0.000, 0.391, 0.342, 0.824, 0.741, 0.671]), 'recall': array([0.000, 0.829, 0.116, 0.555, 0.541, 0.671]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.4439766147177553, 'avg_precision': 0.49486796710607295, 'avg_recall': 0.4519430988421132, 'accuracy': 0.53, 'epoch': 6.0, 'f_d_global_step': 996} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.538 Current is: 0.53 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_4/checkpoints/hls-model-1001 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_4/checkpoints/f_d_U/best.ckpt-332 - - -========== epoch : 6 ============ - -cost: 0.4871590448296571 - -patience: 4 - - -metrics_dict: {'f1_score_1': 0.5396825396825398, 'precision_1': 0.4, 'recall_1': 0.8292682926829268, 'support_1': 123, 'f1_score': array([0.000, 0.540, 0.224, 0.615, 0.490, 0.601]), 'precision': array([0.000, 0.400, 0.328, 0.881, 0.893, 0.520]), 'recall': array([0.000, 0.829, 0.170, 0.473, 0.338, 0.712]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.4116581191045659, 'avg_precision': 0.5036332136595141, 'avg_recall': 0.4203008379190303, 'accuracy': 0.5, 'epoch': 7.0, 'f_d_global_step': 1162} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.538 Current is: 0.5 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_4/checkpoints/hls-model-1168 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_4/checkpoints/f_d_U/best.ckpt-332 - -Optimization Finished for f_d_U! diff --git a/spear/Implyloss/logs/my_TREC/learn2reweight_0.1_0.01_5.txt b/spear/Implyloss/logs/my_TREC/learn2reweight_0.1_0.01_5.txt deleted file mode 100644 index 6179d0a..0000000 --- a/spear/Implyloss/logs/my_TREC/learn2reweight_0.1_0.01_5.txt +++ /dev/null @@ -1,287 +0,0 @@ -Hello 2 1 -2021-04-18 09:53:58.314503: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory -2021-04-18 09:53:58.314551: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/compat/v2_compat.py:96: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version. -Instructions for updating: -non-resource variables are not supported in the long term -Started Reading Flags - -checkpoint_load_mode = mru -d_pickle_name = d_processed.p -data_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC -dropout_keep_prob = 0.8 -early_stopping_p = 20 -f_d_adam_lr = 0.0003 -f_d_batch_size = 16 -f_d_class_sampling_str = 10,10,10,10,10,10 -f_d_epochs = 7 -f_d_metrics_pickle_name = metrics_train_f_on_d.p -f_d_primary_metric = accuracy -f_d_U_adam_lr = 0.0003 -f_d_U_batch_size = 32 -f_d_U_epochs = 7 -f_d_U_metrics_pickle_name = metrics_train_f_on_d_U.p -f_infer_out_pickle_name = infer_f.p -f_layers_str = 512,512 -gamma = 0.1 -lamda = 0.01 -min_rule_coverage = 0 -network_dropout = True -num_checkpoints = 1 -num_classes = 0 -num_load_d = 0 -num_load_U = 0 -num_load_validation = 0 -output_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_5 -rule_classes_str = -run_mode = learn2reweight -shuffle_batches = True -test_w_batch_size = 1000 -U_pickle_name = U_processed.p -use_joint_f_w = False -validation_pickle_name = validation_processed.p -w_infer_out_pickle_name = infer_w.p -w_layers_str = 512,512 - -Hi1 -Ended Reading Flags -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_5/d_processed.p -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/U_processed.p -Rule classes: [2, 1, 1, 4, 3, 2, 1, 3, 5, 4, 3, 2, 4, 1, 2, 5, 4, 1, 2, 4, 3, 1, 3, 2, 1, 1, 4, 4, 5, 1, 3, 5, 2, 1, 5, 1, 5, 5, 0, 5, 5, 1, 4, 2, 3, 2, 1, 3, 5, 1, 1, 3, 2, 1, 1, 5, 2, 3, 2, 5, 3, 3, 4, 5, 5, 4, 2, 0] -length of covered U: 4637 -Size of d before oversampling: 68 -Size of U (covered) : 4637 -Size of d after oversampling: 680 -Size of d_U after combining: 5317 -Loading 68 elements from d -num instances in d: 680 -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/validation_processed.p -Setting value of d to 0 for test data -test_w len: 476 -test_w len: 476 -Number of features: 1024 -Number of classes: 6 -Print num of rules to train: 68 -Print num of rules: 68 - - - -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_5/metrics_train_f_on_d.p' -Did not find prev best metric for run type f_d. Setting to zero. -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_5/metrics_train_f_on_d_U.p' -Did not find prev best metric for run type f_d_U. Setting to zero. -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/legacy_tf_layers/core.py:171: UserWarning: `tf.layers.dense` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dense` instead. - warnings.warn('`tf.layers.dense` is deprecated and ' -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer_v1.py:1719: UserWarning: `layer.apply` is deprecated and will be removed in a future version. Please use `layer.__call__` method instead. - warnings.warn('`layer.apply` is deprecated and ' -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version. -Instructions for updating: -Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version. -Instructions for updating: - -Future major versions of TensorFlow will allow gradients to flow -into the labels input on backprop by default. - -See `tf.nn.softmax_cross_entropy_with_logits_v2`. - -WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/Data_Pgm_Subset_Slc/Implyloss/my_model.py:615: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. -Instructions for updating: -Use `tf.cast` instead. -WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/Data_Pgm_Subset_Slc/Implyloss/my_model.py:406: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. -Instructions for updating: -Use `tf.cast` instead. -[ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" -] -2021-04-18 09:54:03.230706: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA -To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. -2021-04-18 09:54:03.231417: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set -2021-04-18 09:54:03.231596: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory -2021-04-18 09:54:03.231617: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed call to cuInit: UNKNOWN ERROR (303) -2021-04-18 09:54:03.231646: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (parth-G3-3590): /proc/driver/nvidia/version does not exist -2021-04-18 09:54:03.529435: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:196] None of the MLIR optimization passes are enabled (registered 0 passes) -2021-04-18 09:54:03.547877: I tensorflow/core/platform/profile_utils/cpu_utils.cc:112] CPU Frequency: 2599990000 Hz -Run mode is learn2reweight -learn2reweight -num_instances: 5317 -batch_size: 32 -total_batch: 166 -remaining: 5 -total_batch: 166 -Optimization started for f_d_U with learn2reweight loss! -Batch size: 32! -Batches per epoch : 166! -Number of epochs: 7! - -========== epoch : 0 ============ - -cost: 1.3452309723719065 - -patience: 0 - -/home/parth/.local/lib/python3.8/site-packages/sklearn/metrics/classification.py:1436: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. - precision = _prf_divide(tp_sum, pred_sum, - -metrics_dict: {'f1_score_1': 0.48559670781893, 'precision_1': 0.49166666666666664, 'recall_1': 0.4796747967479675, 'support_1': 123, 'f1_score': array([0.000, 0.486, 0.235, 0.702, 0.449, 0.387]), 'precision': array([0.000, 0.492, 0.380, 0.758, 0.917, 0.261]), 'recall': array([0.000, 0.480, 0.170, 0.655, 0.297, 0.753]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.3764845281570748, 'avg_precision': 0.46781526288074055, 'avg_recall': 0.3924308438779705, 'accuracy': 0.454, 'epoch': 1.0, 'f_d_global_step': 166} - -Reporting f_d metrics to tensorboard - -dumped metrics dict to file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_5/metrics_train_f_on_d_U.p - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_5/checkpoints/hls-model-166 - -Saved new best checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_5/checkpoints/f_d_U/best.ckpt-166 - - -========== epoch : 1 ============ - -cost: 0.815814150923706 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.5156249999999999, 'precision_1': 0.49624060150375937, 'recall_1': 0.5365853658536586, 'support_1': 123, 'f1_score': array([0.000, 0.516, 0.160, 0.596, 0.519, 0.412]), 'precision': array([0.000, 0.496, 0.316, 0.836, 0.900, 0.269]), 'recall': array([0.000, 0.537, 0.107, 0.464, 0.365, 0.877]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.36715376000031813, 'avg_precision': 0.4695005353306119, 'avg_recall': 0.3914902967108112, 'accuracy': 0.44, 'epoch': 2.0, 'f_d_global_step': 332} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.454 Current is: 0.44 - -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/training/saver.py:968: remove_checkpoint (from tensorflow.python.training.checkpoint_management) is deprecated and will be removed in a future version. -Instructions for updating: -Use standard file APIs to delete files with this prefix. -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_5/checkpoints/hls-model-333 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_5/checkpoints/f_d_U/best.ckpt-166 - - -========== epoch : 2 ============ - -cost: 0.7048364252929228 - -patience: 1 - - -metrics_dict: {'f1_score_1': 0.5307262569832402, 'precision_1': 0.40425531914893614, 'recall_1': 0.7723577235772358, 'support_1': 123, 'f1_score': array([0.000, 0.531, 0.224, 0.622, 0.525, 0.604]), 'precision': array([0.000, 0.404, 0.328, 0.944, 0.705, 0.505]), 'recall': array([0.000, 0.772, 0.170, 0.464, 0.419, 0.753]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.41767103691155083, 'avg_precision': 0.48090309683311494, 'avg_recall': 0.42966342013493697, 'accuracy': 0.502, 'epoch': 3.0, 'f_d_global_step': 498} - -Reporting f_d metrics to tensorboard - -dumped metrics dict to file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_5/metrics_train_f_on_d_U.p - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_5/checkpoints/hls-model-500 - -Saved new best checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_5/checkpoints/f_d_U/best.ckpt-498 - - -========== epoch : 3 ============ - -cost: 0.5662708130541695 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.5669781931464175, 'precision_1': 0.4595959595959596, 'recall_1': 0.7398373983739838, 'support_1': 123, 'f1_score': array([0.000, 0.567, 0.225, 0.628, 0.571, 0.539]), 'precision': array([0.000, 0.460, 0.333, 0.871, 0.692, 0.420]), 'recall': array([0.000, 0.740, 0.170, 0.491, 0.486, 0.753]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.4217302497666003, 'avg_precision': 0.46267534256945725, 'avg_recall': 0.4400500817411108, 'accuracy': 0.51, 'epoch': 4.0, 'f_d_global_step': 664} - -Reporting f_d metrics to tensorboard - -dumped metrics dict to file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_5/metrics_train_f_on_d_U.p - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_5/checkpoints/hls-model-667 - -Saved new best checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_5/checkpoints/f_d_U/best.ckpt-664 - - -========== epoch : 4 ============ - -cost: 0.5162657570172419 - -patience: 0 - - -metrics_dict: {'f1_score_1': 0.5117493472584856, 'precision_1': 0.3769230769230769, 'recall_1': 0.7967479674796748, 'support_1': 123, 'f1_score': array([0.000, 0.512, 0.163, 0.633, 0.530, 0.644]), 'precision': array([0.000, 0.377, 0.343, 0.721, 0.721, 0.632]), 'recall': array([0.000, 0.797, 0.107, 0.564, 0.419, 0.658]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.41364625775556285, 'avg_precision': 0.4655366053774867, 'avg_recall': 0.42399672562552615, 'accuracy': 0.502, 'epoch': 5.0, 'f_d_global_step': 830} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.51 Current is: 0.502 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_5/checkpoints/hls-model-834 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_5/checkpoints/f_d_U/best.ckpt-664 - - -========== epoch : 5 ============ - -cost: 0.5220517826109496 - -patience: 1 - - -metrics_dict: {'f1_score_1': 0.5484764542936288, 'precision_1': 0.41596638655462187, 'recall_1': 0.8048780487804879, 'support_1': 123, 'f1_score': array([0.000, 0.548, 0.234, 0.600, 0.542, 0.654]), 'precision': array([0.000, 0.416, 0.289, 0.771, 0.879, 0.614]), 'recall': array([0.000, 0.805, 0.196, 0.491, 0.392, 0.699]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.42973687268293786, 'avg_precision': 0.49501905871781665, 'avg_recall': 0.4304562899993906, 'accuracy': 0.51, 'epoch': 6.0, 'f_d_global_step': 996} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.51 Current is: 0.51 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_5/checkpoints/hls-model-1001 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_5/checkpoints/f_d_U/best.ckpt-664 - - -========== epoch : 6 ============ - -cost: 0.5529788273824267 - -patience: 2 - - -metrics_dict: {'f1_score_1': 0.5454545454545454, 'precision_1': 0.44387755102040816, 'recall_1': 0.7073170731707317, 'support_1': 123, 'f1_score': array([0.000, 0.545, 0.235, 0.616, 0.587, 0.532]), 'precision': array([0.000, 0.444, 0.345, 0.855, 0.914, 0.396]), 'recall': array([0.000, 0.707, 0.179, 0.482, 0.432, 0.808]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.41928587128388833, 'avg_precision': 0.49230045259214245, 'avg_recall': 0.4347263823458278, 'accuracy': 0.502, 'epoch': 7.0, 'f_d_global_step': 1162} - -Reporting f_d metrics to tensorboard -Not saving metrics dict. Best metric value is 0.51 Current is: 0.502 - -Saved MRU checkpoint to path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_5/checkpoints/hls-model-1168 - -No new best checkpoint. Did not save a new best checkpoint. Last checkpointed file: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_5/checkpoints/f_d_U/best.ckpt-664 - -Optimization Finished for f_d_U! diff --git a/spear/Implyloss/logs/my_TREC/test_f_d_0.1_0.1_1.txt b/spear/Implyloss/logs/my_TREC/test_f_d_0.1_0.1_1.txt deleted file mode 100644 index 19168a4..0000000 --- a/spear/Implyloss/logs/my_TREC/test_f_d_0.1_0.1_1.txt +++ /dev/null @@ -1,142 +0,0 @@ -Hello 2 1 -2021-04-18 09:59:31.979607: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory -2021-04-18 09:59:31.979655: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/compat/v2_compat.py:96: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version. -Instructions for updating: -non-resource variables are not supported in the long term -Started Reading Flags - -checkpoint_load_mode = f_d -d_pickle_name = d_processed.p -data_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC -dropout_keep_prob = 1.0 -early_stopping_p = 20 -f_d_adam_lr = 0.0001 -f_d_batch_size = 16 -f_d_class_sampling_str = 10,10,10,10,10,10 -f_d_epochs = 4 -f_d_metrics_pickle_name = metrics_train_f_on_d.p -f_d_primary_metric = accuracy -f_d_U_adam_lr = 0.0001 -f_d_U_batch_size = 32 -f_d_U_epochs = 4 -f_d_U_metrics_pickle_name = metrics_train_f_on_d_U.p -f_infer_out_pickle_name = infer_f.p -f_layers_str = 512,512 -gamma = 0.1 -lamda = 0.1 -min_rule_coverage = 0 -network_dropout = True -num_checkpoints = 1 -num_classes = 0 -num_load_d = 0 -num_load_U = 0 -num_load_validation = 0 -output_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_1 -rule_classes_str = -run_mode = test_f -shuffle_batches = True -test_w_batch_size = 1000 -U_pickle_name = U_processed.p -use_joint_f_w = False -validation_pickle_name = test_processed.p -w_infer_out_pickle_name = infer_w.p -w_layers_str = 512,512 - -Hi1 -Ended Reading Flags -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_1/d_processed.p -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/U_processed.p -Rule classes: [2, 1, 1, 4, 3, 2, 1, 3, 5, 4, 3, 2, 4, 1, 2, 5, 4, 1, 2, 4, 3, 1, 3, 2, 1, 1, 4, 4, 5, 1, 3, 5, 2, 1, 5, 1, 5, 5, 0, 5, 5, 1, 4, 2, 3, 2, 1, 3, 5, 1, 1, 3, 2, 1, 1, 5, 2, 3, 2, 5, 3, 3, 4, 5, 5, 4, 2, 0] -length of covered U: 4637 -Size of d before oversampling: 68 -Size of U (covered) : 4637 -Size of d after oversampling: 680 -Size of d_U after combining: 5317 -Loading 68 elements from d -num instances in d: 680 -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/test_processed.p -Setting value of d to 0 for test data -test_w len: 481 -test_w len: 481 -Number of features: 1024 -Number of classes: 6 -Print num of rules to train: 68 -Print num of rules: 68 - - - -Found prev best metric for run type f_d: 0.616 -best metrics dict: {'f1_score_1': 0.6373626373626374, 'precision_1': 0.58, 'recall_1': 0.7073170731707317, 'support_1': 123, 'f1_score': array([0.46153846, 0.63736264, 0.48908297, 0.7106599 , 0.62903226, - 0.64634146]), 'precision': array([0.6 , 0.58 , 0.47863248, 0.8045977 , 0.78 , - 0.58241758]), 'recall': array([0.375 , 0.70731707, 0.5 , 0.63636364, 0.52702703, - 0.7260274 ]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.5956696147149535, 'avg_precision': 0.6376079603665811, 'avg_recall': 0.5786225223036116, 'accuracy': 0.616, 'epoch': 3.0, 'f_d_global_step': 126} -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_1/metrics_train_f_on_d_U.p' -Did not find prev best metric for run type f_d_U. Setting to zero. -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/legacy_tf_layers/core.py:171: UserWarning: `tf.layers.dense` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dense` instead. - warnings.warn('`tf.layers.dense` is deprecated and ' -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer_v1.py:1719: UserWarning: `layer.apply` is deprecated and will be removed in a future version. Please use `layer.__call__` method instead. - warnings.warn('`layer.apply` is deprecated and ' -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version. -Instructions for updating: -Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version. -Instructions for updating: - -Future major versions of TensorFlow will allow gradients to flow -into the labels input on backprop by default. - -See `tf.nn.softmax_cross_entropy_with_logits_v2`. - -WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/Data_Pgm_Subset_Slc/Implyloss/my_model.py:615: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. -Instructions for updating: -Use `tf.cast` instead. -[ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" -] -2021-04-18 09:59:34.052441: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA -To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. -2021-04-18 09:59:34.052876: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set -2021-04-18 09:59:34.053034: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory -2021-04-18 09:59:34.053053: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed call to cuInit: UNKNOWN ERROR (303) -2021-04-18 09:59:34.053069: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (parth-G3-3590): /proc/driver/nvidia/version does not exist -2021-04-18 09:59:34.149589: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:196] None of the MLIR optimization passes are enabled (registered 0 passes) -2021-04-18 09:59:34.155198: I tensorflow/core/platform/profile_utils/cpu_utils.cc:112] CPU Frequency: 2599990000 Hz -Restoring best checkpoint from path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_1/checkpoints/f_d/best.ckpt-126 -Run mode is test_f -Running test_f -test_f: precision: [1.000 0.722 0.500 1.000 0.938 0.678] -test_f: recall: [0.222 0.826 0.479 0.769 0.556 0.912] -test_f: f1_score: [0.364 0.770 0.489 0.870 0.698 0.777] -test_f: support: [ 9 138 94 65 81 113] -test_f: accuracy: 0.718 -test_f: avg_f1_score: 0.6612725325418727 -test_f: classifier_loss: 0.74225074 diff --git a/spear/Implyloss/logs/my_TREC/test_f_d_0.1_0.1_2.txt b/spear/Implyloss/logs/my_TREC/test_f_d_0.1_0.1_2.txt deleted file mode 100644 index f5479a6..0000000 --- a/spear/Implyloss/logs/my_TREC/test_f_d_0.1_0.1_2.txt +++ /dev/null @@ -1,142 +0,0 @@ -Hello 2 1 -2021-04-18 09:59:32.035208: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory -2021-04-18 09:59:32.035243: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/compat/v2_compat.py:96: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version. -Instructions for updating: -non-resource variables are not supported in the long term -Started Reading Flags - -checkpoint_load_mode = f_d -d_pickle_name = d_processed.p -data_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC -dropout_keep_prob = 1.0 -early_stopping_p = 20 -f_d_adam_lr = 0.0001 -f_d_batch_size = 16 -f_d_class_sampling_str = 10,10,10,10,10,10 -f_d_epochs = 4 -f_d_metrics_pickle_name = metrics_train_f_on_d.p -f_d_primary_metric = accuracy -f_d_U_adam_lr = 0.0001 -f_d_U_batch_size = 32 -f_d_U_epochs = 4 -f_d_U_metrics_pickle_name = metrics_train_f_on_d_U.p -f_infer_out_pickle_name = infer_f.p -f_layers_str = 512,512 -gamma = 0.1 -lamda = 0.1 -min_rule_coverage = 0 -network_dropout = True -num_checkpoints = 1 -num_classes = 0 -num_load_d = 0 -num_load_U = 0 -num_load_validation = 0 -output_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_2 -rule_classes_str = -run_mode = test_f -shuffle_batches = True -test_w_batch_size = 1000 -U_pickle_name = U_processed.p -use_joint_f_w = False -validation_pickle_name = test_processed.p -w_infer_out_pickle_name = infer_w.p -w_layers_str = 512,512 - -Hi1 -Ended Reading Flags -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_2/d_processed.p -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/U_processed.p -Rule classes: [2, 1, 1, 4, 3, 2, 1, 3, 5, 4, 3, 2, 4, 1, 2, 5, 4, 1, 2, 4, 3, 1, 3, 2, 1, 1, 4, 4, 5, 1, 3, 5, 2, 1, 5, 1, 5, 5, 0, 5, 5, 1, 4, 2, 3, 2, 1, 3, 5, 1, 1, 3, 2, 1, 1, 5, 2, 3, 2, 5, 3, 3, 4, 5, 5, 4, 2, 0] -length of covered U: 4637 -Size of d before oversampling: 68 -Size of U (covered) : 4637 -Size of d after oversampling: 680 -Size of d_U after combining: 5317 -Loading 68 elements from d -num instances in d: 680 -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/test_processed.p -Setting value of d to 0 for test data -test_w len: 481 -test_w len: 481 -Number of features: 1024 -Number of classes: 6 -Print num of rules to train: 68 -Print num of rules: 68 - - - -Found prev best metric for run type f_d: 0.632 -best metrics dict: {'f1_score_1': 0.6408450704225351, 'precision_1': 0.5652173913043478, 'recall_1': 0.7398373983739838, 'support_1': 123, 'f1_score': array([0.5 , 0.64084507, 0.47115385, 0.74038462, 0.66666667, - 0.66666667]), 'precision': array([0.75 , 0.56521739, 0.51041667, 0.78571429, 0.80769231, - 0.60674157]), 'recall': array([0.375 , 0.7398374 , 0.4375 , 0.7 , 0.56756757, - 0.73972603]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6142861442157216, 'avg_precision': 0.6709637040685527, 'avg_recall': 0.5932718322231352, 'accuracy': 0.632, 'epoch': 5.0, 'f_d_global_step': 210} -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_2/metrics_train_f_on_d_U.p' -Did not find prev best metric for run type f_d_U. Setting to zero. -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/legacy_tf_layers/core.py:171: UserWarning: `tf.layers.dense` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dense` instead. - warnings.warn('`tf.layers.dense` is deprecated and ' -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer_v1.py:1719: UserWarning: `layer.apply` is deprecated and will be removed in a future version. Please use `layer.__call__` method instead. - warnings.warn('`layer.apply` is deprecated and ' -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version. -Instructions for updating: -Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version. -Instructions for updating: - -Future major versions of TensorFlow will allow gradients to flow -into the labels input on backprop by default. - -See `tf.nn.softmax_cross_entropy_with_logits_v2`. - -WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/Data_Pgm_Subset_Slc/Implyloss/my_model.py:615: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. -Instructions for updating: -Use `tf.cast` instead. -[ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" -] -2021-04-18 09:59:34.212082: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA -To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. -2021-04-18 09:59:34.212461: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set -2021-04-18 09:59:34.212600: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory -2021-04-18 09:59:34.212618: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed call to cuInit: UNKNOWN ERROR (303) -2021-04-18 09:59:34.212635: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (parth-G3-3590): /proc/driver/nvidia/version does not exist -2021-04-18 09:59:34.351498: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:196] None of the MLIR optimization passes are enabled (registered 0 passes) -2021-04-18 09:59:34.357010: I tensorflow/core/platform/profile_utils/cpu_utils.cc:112] CPU Frequency: 2599990000 Hz -Restoring best checkpoint from path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_2/checkpoints/f_d/best.ckpt-210 -Run mode is test_f -Running test_f -test_f: precision: [1.000 0.714 0.500 0.943 0.980 0.667] -test_f: recall: [0.333 0.833 0.404 0.769 0.617 0.920] -test_f: f1_score: [0.500 0.769 0.447 0.847 0.758 0.773] -test_f: support: [ 9 138 94 65 81 113] -test_f: accuracy: 0.72 -test_f: avg_f1_score: 0.6824261963663462 -test_f: classifier_loss: 0.79722935 diff --git a/spear/Implyloss/logs/my_TREC/test_f_d_0.1_0.1_3.txt b/spear/Implyloss/logs/my_TREC/test_f_d_0.1_0.1_3.txt deleted file mode 100644 index 9208abb..0000000 --- a/spear/Implyloss/logs/my_TREC/test_f_d_0.1_0.1_3.txt +++ /dev/null @@ -1,142 +0,0 @@ -Hello 2 1 -2021-04-18 09:59:32.035207: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory -2021-04-18 09:59:32.035243: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/compat/v2_compat.py:96: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version. -Instructions for updating: -non-resource variables are not supported in the long term -Started Reading Flags - -checkpoint_load_mode = f_d -d_pickle_name = d_processed.p -data_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC -dropout_keep_prob = 1.0 -early_stopping_p = 20 -f_d_adam_lr = 0.0001 -f_d_batch_size = 16 -f_d_class_sampling_str = 10,10,10,10,10,10 -f_d_epochs = 4 -f_d_metrics_pickle_name = metrics_train_f_on_d.p -f_d_primary_metric = accuracy -f_d_U_adam_lr = 0.0001 -f_d_U_batch_size = 32 -f_d_U_epochs = 4 -f_d_U_metrics_pickle_name = metrics_train_f_on_d_U.p -f_infer_out_pickle_name = infer_f.p -f_layers_str = 512,512 -gamma = 0.1 -lamda = 0.1 -min_rule_coverage = 0 -network_dropout = True -num_checkpoints = 1 -num_classes = 0 -num_load_d = 0 -num_load_U = 0 -num_load_validation = 0 -output_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_3 -rule_classes_str = -run_mode = test_f -shuffle_batches = True -test_w_batch_size = 1000 -U_pickle_name = U_processed.p -use_joint_f_w = False -validation_pickle_name = test_processed.p -w_infer_out_pickle_name = infer_w.p -w_layers_str = 512,512 - -Hi1 -Ended Reading Flags -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_3/d_processed.p -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/U_processed.p -Rule classes: [2, 1, 1, 4, 3, 2, 1, 3, 5, 4, 3, 2, 4, 1, 2, 5, 4, 1, 2, 4, 3, 1, 3, 2, 1, 1, 4, 4, 5, 1, 3, 5, 2, 1, 5, 1, 5, 5, 0, 5, 5, 1, 4, 2, 3, 2, 1, 3, 5, 1, 1, 3, 2, 1, 1, 5, 2, 3, 2, 5, 3, 3, 4, 5, 5, 4, 2, 0] -length of covered U: 4637 -Size of d before oversampling: 68 -Size of U (covered) : 4637 -Size of d after oversampling: 680 -Size of d_U after combining: 5317 -Loading 68 elements from d -num instances in d: 680 -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/test_processed.p -Setting value of d to 0 for test data -test_w len: 481 -test_w len: 481 -Number of features: 1024 -Number of classes: 6 -Print num of rules to train: 68 -Print num of rules: 68 - - - -Found prev best metric for run type f_d: 0.634 -best metrics dict: {'f1_score_1': 0.6520146520146521, 'precision_1': 0.5933333333333334, 'recall_1': 0.7235772357723578, 'support_1': 123, 'f1_score': array([0.61538462, 0.65201465, 0.49339207, 0.71921182, 0.68253968, - 0.65822785]), 'precision': array([0.8 , 0.59333333, 0.48695652, 0.78494624, 0.82692308, - 0.61176471]), 'recall': array([0.5 , 0.72357724, 0.5 , 0.66363636, 0.58108108, - 0.71232877]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6367951151974828, 'avg_precision': 0.6839873124061722, 'avg_recall': 0.6134372412688484, 'accuracy': 0.634, 'epoch': 20.0, 'f_d_global_step': 840} -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_3/metrics_train_f_on_d_U.p' -Did not find prev best metric for run type f_d_U. Setting to zero. -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/legacy_tf_layers/core.py:171: UserWarning: `tf.layers.dense` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dense` instead. - warnings.warn('`tf.layers.dense` is deprecated and ' -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer_v1.py:1719: UserWarning: `layer.apply` is deprecated and will be removed in a future version. Please use `layer.__call__` method instead. - warnings.warn('`layer.apply` is deprecated and ' -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version. -Instructions for updating: -Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version. -Instructions for updating: - -Future major versions of TensorFlow will allow gradients to flow -into the labels input on backprop by default. - -See `tf.nn.softmax_cross_entropy_with_logits_v2`. - -WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/Data_Pgm_Subset_Slc/Implyloss/my_model.py:615: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. -Instructions for updating: -Use `tf.cast` instead. -[ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" -] -2021-04-18 09:59:34.082271: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA -To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. -2021-04-18 09:59:34.082667: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set -2021-04-18 09:59:34.082810: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory -2021-04-18 09:59:34.082831: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed call to cuInit: UNKNOWN ERROR (303) -2021-04-18 09:59:34.082848: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (parth-G3-3590): /proc/driver/nvidia/version does not exist -2021-04-18 09:59:34.183446: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:196] None of the MLIR optimization passes are enabled (registered 0 passes) -2021-04-18 09:59:34.189565: I tensorflow/core/platform/profile_utils/cpu_utils.cc:112] CPU Frequency: 2599990000 Hz -Restoring best checkpoint from path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_3/checkpoints/f_d/best.ckpt-840 -Run mode is test_f -Running test_f -test_f: precision: [1.000 0.713 0.500 0.980 0.982 0.701] -test_f: recall: [0.333 0.826 0.447 0.769 0.667 0.912] -test_f: f1_score: [0.500 0.765 0.472 0.862 0.794 0.792] -test_f: support: [ 9 138 94 65 81 113] -test_f: accuracy: 0.732 -test_f: avg_f1_score: 0.6975841813973745 -test_f: classifier_loss: 1.0262952 diff --git a/spear/Implyloss/logs/my_TREC/test_f_d_0.1_0.1_4.txt b/spear/Implyloss/logs/my_TREC/test_f_d_0.1_0.1_4.txt deleted file mode 100644 index 38d410c..0000000 --- a/spear/Implyloss/logs/my_TREC/test_f_d_0.1_0.1_4.txt +++ /dev/null @@ -1,142 +0,0 @@ -Hello 2 1 -2021-04-18 09:59:32.035212: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory -2021-04-18 09:59:32.035243: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/compat/v2_compat.py:96: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version. -Instructions for updating: -non-resource variables are not supported in the long term -Started Reading Flags - -checkpoint_load_mode = f_d -d_pickle_name = d_processed.p -data_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC -dropout_keep_prob = 1.0 -early_stopping_p = 20 -f_d_adam_lr = 0.0001 -f_d_batch_size = 16 -f_d_class_sampling_str = 10,10,10,10,10,10 -f_d_epochs = 4 -f_d_metrics_pickle_name = metrics_train_f_on_d.p -f_d_primary_metric = accuracy -f_d_U_adam_lr = 0.0001 -f_d_U_batch_size = 32 -f_d_U_epochs = 4 -f_d_U_metrics_pickle_name = metrics_train_f_on_d_U.p -f_infer_out_pickle_name = infer_f.p -f_layers_str = 512,512 -gamma = 0.1 -lamda = 0.1 -min_rule_coverage = 0 -network_dropout = True -num_checkpoints = 1 -num_classes = 0 -num_load_d = 0 -num_load_U = 0 -num_load_validation = 0 -output_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_4 -rule_classes_str = -run_mode = test_f -shuffle_batches = True -test_w_batch_size = 1000 -U_pickle_name = U_processed.p -use_joint_f_w = False -validation_pickle_name = test_processed.p -w_infer_out_pickle_name = infer_w.p -w_layers_str = 512,512 - -Hi1 -Ended Reading Flags -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_4/d_processed.p -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/U_processed.p -Rule classes: [2, 1, 1, 4, 3, 2, 1, 3, 5, 4, 3, 2, 4, 1, 2, 5, 4, 1, 2, 4, 3, 1, 3, 2, 1, 1, 4, 4, 5, 1, 3, 5, 2, 1, 5, 1, 5, 5, 0, 5, 5, 1, 4, 2, 3, 2, 1, 3, 5, 1, 1, 3, 2, 1, 1, 5, 2, 3, 2, 5, 3, 3, 4, 5, 5, 4, 2, 0] -length of covered U: 4637 -Size of d before oversampling: 68 -Size of U (covered) : 4637 -Size of d after oversampling: 680 -Size of d_U after combining: 5317 -Loading 68 elements from d -num instances in d: 680 -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/test_processed.p -Setting value of d to 0 for test data -test_w len: 481 -test_w len: 481 -Number of features: 1024 -Number of classes: 6 -Print num of rules to train: 68 -Print num of rules: 68 - - - -Found prev best metric for run type f_d: 0.634 -best metrics dict: {'f1_score_1': 0.6549295774647887, 'precision_1': 0.577639751552795, 'recall_1': 0.7560975609756098, 'support_1': 123, 'f1_score': array([0.61538462, 0.65492958, 0.47887324, 0.72195122, 0.65625 , - 0.67515924]), 'precision': array([0.8 , 0.57763975, 0.5049505 , 0.77894737, 0.77777778, - 0.63095238]), 'recall': array([0.5 , 0.75609756, 0.45535714, 0.67272727, 0.56756757, - 0.7260274 ]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6337579812445014, 'avg_precision': 0.6783779622922518, 'avg_recall': 0.6129628235646445, 'accuracy': 0.634, 'epoch': 19.0, 'f_d_global_step': 798} -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_4/metrics_train_f_on_d_U.p' -Did not find prev best metric for run type f_d_U. Setting to zero. -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/legacy_tf_layers/core.py:171: UserWarning: `tf.layers.dense` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dense` instead. - warnings.warn('`tf.layers.dense` is deprecated and ' -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer_v1.py:1719: UserWarning: `layer.apply` is deprecated and will be removed in a future version. Please use `layer.__call__` method instead. - warnings.warn('`layer.apply` is deprecated and ' -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version. -Instructions for updating: -Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version. -Instructions for updating: - -Future major versions of TensorFlow will allow gradients to flow -into the labels input on backprop by default. - -See `tf.nn.softmax_cross_entropy_with_logits_v2`. - -WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/Data_Pgm_Subset_Slc/Implyloss/my_model.py:615: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. -Instructions for updating: -Use `tf.cast` instead. -[ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" -] -2021-04-18 09:59:34.161024: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA -To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. -2021-04-18 09:59:34.161403: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set -2021-04-18 09:59:34.161531: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory -2021-04-18 09:59:34.161548: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed call to cuInit: UNKNOWN ERROR (303) -2021-04-18 09:59:34.161563: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (parth-G3-3590): /proc/driver/nvidia/version does not exist -2021-04-18 09:59:34.299688: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:196] None of the MLIR optimization passes are enabled (registered 0 passes) -2021-04-18 09:59:34.306269: I tensorflow/core/platform/profile_utils/cpu_utils.cc:112] CPU Frequency: 2599990000 Hz -Restoring best checkpoint from path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_4/checkpoints/f_d/best.ckpt-798 -Run mode is test_f -Running test_f -test_f: precision: [1.000 0.709 0.532 0.962 0.945 0.696] -test_f: recall: [0.333 0.848 0.436 0.769 0.642 0.912] -test_f: f1_score: [0.500 0.772 0.480 0.855 0.765 0.789] -test_f: support: [ 9 138 94 65 81 113] -test_f: accuracy: 0.732 -test_f: avg_f1_score: 0.6934146931950997 -test_f: classifier_loss: 0.97591573 diff --git a/spear/Implyloss/logs/my_TREC/test_f_d_0.1_0.1_5.txt b/spear/Implyloss/logs/my_TREC/test_f_d_0.1_0.1_5.txt deleted file mode 100644 index 0571a36..0000000 --- a/spear/Implyloss/logs/my_TREC/test_f_d_0.1_0.1_5.txt +++ /dev/null @@ -1,142 +0,0 @@ -Hello 2 1 -2021-04-18 09:59:32.035207: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory -2021-04-18 09:59:32.035243: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/compat/v2_compat.py:96: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version. -Instructions for updating: -non-resource variables are not supported in the long term -Started Reading Flags - -checkpoint_load_mode = f_d -d_pickle_name = d_processed.p -data_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC -dropout_keep_prob = 1.0 -early_stopping_p = 20 -f_d_adam_lr = 0.0001 -f_d_batch_size = 16 -f_d_class_sampling_str = 10,10,10,10,10,10 -f_d_epochs = 4 -f_d_metrics_pickle_name = metrics_train_f_on_d.p -f_d_primary_metric = accuracy -f_d_U_adam_lr = 0.0001 -f_d_U_batch_size = 32 -f_d_U_epochs = 4 -f_d_U_metrics_pickle_name = metrics_train_f_on_d_U.p -f_infer_out_pickle_name = infer_f.p -f_layers_str = 512,512 -gamma = 0.1 -lamda = 0.1 -min_rule_coverage = 0 -network_dropout = True -num_checkpoints = 1 -num_classes = 0 -num_load_d = 0 -num_load_U = 0 -num_load_validation = 0 -output_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_5 -rule_classes_str = -run_mode = test_f -shuffle_batches = True -test_w_batch_size = 1000 -U_pickle_name = U_processed.p -use_joint_f_w = False -validation_pickle_name = test_processed.p -w_infer_out_pickle_name = infer_w.p -w_layers_str = 512,512 - -Hi1 -Ended Reading Flags -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_5/d_processed.p -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/U_processed.p -Rule classes: [2, 1, 1, 4, 3, 2, 1, 3, 5, 4, 3, 2, 4, 1, 2, 5, 4, 1, 2, 4, 3, 1, 3, 2, 1, 1, 4, 4, 5, 1, 3, 5, 2, 1, 5, 1, 5, 5, 0, 5, 5, 1, 4, 2, 3, 2, 1, 3, 5, 1, 1, 3, 2, 1, 1, 5, 2, 3, 2, 5, 3, 3, 4, 5, 5, 4, 2, 0] -length of covered U: 4637 -Size of d before oversampling: 68 -Size of U (covered) : 4637 -Size of d after oversampling: 680 -Size of d_U after combining: 5317 -Loading 68 elements from d -num instances in d: 680 -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/test_processed.p -Setting value of d to 0 for test data -test_w len: 481 -test_w len: 481 -Number of features: 1024 -Number of classes: 6 -Print num of rules to train: 68 -Print num of rules: 68 - - - -Found prev best metric for run type f_d: 0.636 -best metrics dict: {'f1_score_1': 0.6575342465753424, 'precision_1': 0.5680473372781065, 'recall_1': 0.7804878048780488, 'support_1': 123, 'f1_score': array([0.61538462, 0.65753425, 0.492891 , 0.73076923, 0.65079365, - 0.65333333]), 'precision': array([0.8 , 0.56804734, 0.52525253, 0.7755102 , 0.78846154, - 0.63636364]), 'recall': array([0.5 , 0.7804878 , 0.46428571, 0.69090909, 0.55405405, - 0.67123288]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6334510120194727, 'avg_precision': 0.6822725402395733, 'avg_recall': 0.6101615901398728, 'accuracy': 0.636, 'epoch': 31.0, 'f_d_global_step': 1302} -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_5/metrics_train_f_on_d_U.p' -Did not find prev best metric for run type f_d_U. Setting to zero. -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/legacy_tf_layers/core.py:171: UserWarning: `tf.layers.dense` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dense` instead. - warnings.warn('`tf.layers.dense` is deprecated and ' -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer_v1.py:1719: UserWarning: `layer.apply` is deprecated and will be removed in a future version. Please use `layer.__call__` method instead. - warnings.warn('`layer.apply` is deprecated and ' -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version. -Instructions for updating: -Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version. -Instructions for updating: - -Future major versions of TensorFlow will allow gradients to flow -into the labels input on backprop by default. - -See `tf.nn.softmax_cross_entropy_with_logits_v2`. - -WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/Data_Pgm_Subset_Slc/Implyloss/my_model.py:615: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. -Instructions for updating: -Use `tf.cast` instead. -[ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" -] -2021-04-18 09:59:34.127915: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA -To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. -2021-04-18 09:59:34.128334: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set -2021-04-18 09:59:34.128477: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory -2021-04-18 09:59:34.128500: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed call to cuInit: UNKNOWN ERROR (303) -2021-04-18 09:59:34.128526: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (parth-G3-3590): /proc/driver/nvidia/version does not exist -2021-04-18 09:59:34.253815: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:196] None of the MLIR optimization passes are enabled (registered 0 passes) -2021-04-18 09:59:34.264467: I tensorflow/core/platform/profile_utils/cpu_utils.cc:112] CPU Frequency: 2599990000 Hz -Restoring best checkpoint from path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/f_d_0.1_0.1_5/checkpoints/f_d/best.ckpt-1302 -Run mode is test_f -Running test_f -test_f: precision: [1.000 0.707 0.531 0.962 0.943 0.692] -test_f: recall: [0.333 0.855 0.457 0.785 0.617 0.876] -test_f: f1_score: [0.500 0.774 0.491 0.864 0.746 0.773] -test_f: support: [ 9 138 94 65 81 113] -test_f: accuracy: 0.728 -test_f: avg_f1_score: 0.6915519999348808 -test_f: classifier_loss: 1.0569081 diff --git a/spear/Implyloss/logs/my_TREC/test_implication_0.1_0.1_1.txt b/spear/Implyloss/logs/my_TREC/test_implication_0.1_0.1_1.txt deleted file mode 100644 index b3cc510..0000000 --- a/spear/Implyloss/logs/my_TREC/test_implication_0.1_0.1_1.txt +++ /dev/null @@ -1,164 +0,0 @@ -Hello 2 1 -2021-04-18 10:00:11.946457: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory -2021-04-18 10:00:11.946497: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/compat/v2_compat.py:96: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version. -Instructions for updating: -non-resource variables are not supported in the long term -Started Reading Flags - -checkpoint_load_mode = f_d_U -d_pickle_name = d_processed.p -data_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC -dropout_keep_prob = 1.0 -early_stopping_p = 20 -f_d_adam_lr = 0.0001 -f_d_batch_size = 16 -f_d_class_sampling_str = 10,10,10,10,10,10 -f_d_epochs = 3 -f_d_metrics_pickle_name = metrics_train_f_on_d.p -f_d_primary_metric = accuracy -f_d_U_adam_lr = 0.0001 -f_d_U_batch_size = 32 -f_d_U_epochs = 3 -f_d_U_metrics_pickle_name = metrics_train_f_on_d_U.p -f_infer_out_pickle_name = infer_f.p -f_layers_str = 512,512 -gamma = 0.1 -lamda = 0.1 -min_rule_coverage = 0 -network_dropout = True -num_checkpoints = 1 -num_classes = 0 -num_load_d = 0 -num_load_U = 0 -num_load_validation = 0 -output_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_1 -rule_classes_str = -run_mode = test_all -shuffle_batches = True -test_w_batch_size = 1000 -U_pickle_name = U_processed.p -use_joint_f_w = True -validation_pickle_name = test_processed.p -w_infer_out_pickle_name = infer_w.p -w_layers_str = 512,512 - -Hi1 -Ended Reading Flags -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_1/d_processed.p -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/U_processed.p -Rule classes: [2, 1, 1, 4, 3, 2, 1, 3, 5, 4, 3, 2, 4, 1, 2, 5, 4, 1, 2, 4, 3, 1, 3, 2, 1, 1, 4, 4, 5, 1, 3, 5, 2, 1, 5, 1, 5, 5, 0, 5, 5, 1, 4, 2, 3, 2, 1, 3, 5, 1, 1, 3, 2, 1, 1, 5, 2, 3, 2, 5, 3, 3, 4, 5, 5, 4, 2, 0] -length of covered U: 4637 -Size of d before oversampling: 68 -Size of U (covered) : 4637 -Size of d after oversampling: 680 -Size of d_U after combining: 5317 -Loading 68 elements from d -num instances in d: 680 -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/test_processed.p -Setting value of d to 0 for test data -test_w len: 481 -test_w len: 481 -Number of features: 1024 -Number of classes: 6 -Print num of rules to train: 68 -Print num of rules: 68 - - - -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_1/metrics_train_f_on_d.p' -Did not find prev best metric for run type f_d. Setting to zero. -Found prev best metric for run type f_d_U: 0.726 -best metrics dict: {'f1_score_1': 0.7091633466135459, 'precision_1': 0.6953125, 'recall_1': 0.7235772357723578, 'support_1': 123, 'f1_score': array([0.76190476, 0.70916335, 0.57276995, 0.76237624, 0.86092715, - 0.77777778]), 'precision': array([0.61538462, 0.6953125 , 0.6039604 , 0.83695652, 0.84415584, - 0.70786517]), 'recall': array([1. , 0.72357724, 0.54464286, 0.7 , 0.87837838, - 0.8630137 ]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7408198715482287, 'avg_precision': 0.7172725076430866, 'avg_recall': 0.784935361653955, 'accuracy': 0.726, 'epoch': 25.0, 'f_d_global_step': 4150} -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/legacy_tf_layers/core.py:171: UserWarning: `tf.layers.dense` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dense` instead. - warnings.warn('`tf.layers.dense` is deprecated and ' -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer_v1.py:1719: UserWarning: `layer.apply` is deprecated and will be removed in a future version. Please use `layer.__call__` method instead. - warnings.warn('`layer.apply` is deprecated and ' -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version. -Instructions for updating: -Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version. -Instructions for updating: - -Future major versions of TensorFlow will allow gradients to flow -into the labels input on backprop by default. - -See `tf.nn.softmax_cross_entropy_with_logits_v2`. - -WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/Data_Pgm_Subset_Slc/Implyloss/my_model.py:615: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. -Instructions for updating: -Use `tf.cast` instead. -[ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" -] -2021-04-18 10:00:14.113918: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA -To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. -2021-04-18 10:00:14.114299: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set -2021-04-18 10:00:14.114422: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory -2021-04-18 10:00:14.114443: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed call to cuInit: UNKNOWN ERROR (303) -2021-04-18 10:00:14.114465: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (parth-G3-3590): /proc/driver/nvidia/version does not exist -2021-04-18 10:00:14.207996: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:196] None of the MLIR optimization passes are enabled (registered 0 passes) -2021-04-18 10:00:14.213236: I tensorflow/core/platform/profile_utils/cpu_utils.cc:112] CPU Frequency: 2599990000 Hz -Restoring best checkpoint from path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_1/checkpoints/f_d_U/best.ckpt-4150 -Run mode is test_all -Running all tests - -inference on f network ... - -2021-04-18 10:00:14.344935: W tensorflow/core/framework/cpu_allocator_impl.cc:80] Allocation of 139264000 exceeds 10% of free system memory. -2021-04-18 10:00:14.389760: W tensorflow/core/framework/cpu_allocator_impl.cc:80] Allocation of 148512000 exceeds 10% of free system memory. -test_f: precision: [1.000 0.840 0.788 0.945 0.824 0.824] -test_f: recall: [0.778 0.949 0.553 0.800 0.864 0.956] -test_f: f1_score: [0.875 0.891 0.650 0.867 0.843 0.885] -test_f: support: [ 9 138 94 65 81 113] -test_f: accuracy: 0.84 -test_f: avg_f1_score: 0.8352404208111581 -test_f: classifier_loss: 1.0074788 - -inference on w network... -we only test on instances covered by atleast one rule - -num_instances: 481 -batch_size: 1000 -total_batch: 0 -remaining: 481 -total_batch: 1 -2021-04-18 10:00:15.314692: W tensorflow/core/framework/cpu_allocator_impl.cc:80] Allocation of 133971968 exceeds 10% of free system memory. -2021-04-18 10:00:15.406636: W tensorflow/core/framework/cpu_allocator_impl.cc:80] Allocation of 142868544 exceeds 10% of free system memory. -old micro precision: 0.6383248730964467 -new micro precision: 0.9757575757575757 -old rule firings: 788 -new rule firings: 165 -old rule coverage: 481 -new rule coverage: 104 diff --git a/spear/Implyloss/logs/my_TREC/test_implication_0.1_0.1_2.txt b/spear/Implyloss/logs/my_TREC/test_implication_0.1_0.1_2.txt deleted file mode 100644 index bff4687..0000000 --- a/spear/Implyloss/logs/my_TREC/test_implication_0.1_0.1_2.txt +++ /dev/null @@ -1,164 +0,0 @@ -Hello 2 1 -2021-04-18 10:00:11.958732: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory -2021-04-18 10:00:11.958769: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/compat/v2_compat.py:96: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version. -Instructions for updating: -non-resource variables are not supported in the long term -Started Reading Flags - -checkpoint_load_mode = f_d_U -d_pickle_name = d_processed.p -data_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC -dropout_keep_prob = 1.0 -early_stopping_p = 20 -f_d_adam_lr = 0.0001 -f_d_batch_size = 16 -f_d_class_sampling_str = 10,10,10,10,10,10 -f_d_epochs = 3 -f_d_metrics_pickle_name = metrics_train_f_on_d.p -f_d_primary_metric = accuracy -f_d_U_adam_lr = 0.0001 -f_d_U_batch_size = 32 -f_d_U_epochs = 3 -f_d_U_metrics_pickle_name = metrics_train_f_on_d_U.p -f_infer_out_pickle_name = infer_f.p -f_layers_str = 512,512 -gamma = 0.1 -lamda = 0.1 -min_rule_coverage = 0 -network_dropout = True -num_checkpoints = 1 -num_classes = 0 -num_load_d = 0 -num_load_U = 0 -num_load_validation = 0 -output_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_2 -rule_classes_str = -run_mode = test_all -shuffle_batches = True -test_w_batch_size = 1000 -U_pickle_name = U_processed.p -use_joint_f_w = True -validation_pickle_name = test_processed.p -w_infer_out_pickle_name = infer_w.p -w_layers_str = 512,512 - -Hi1 -Ended Reading Flags -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_2/d_processed.p -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/U_processed.p -Rule classes: [2, 1, 1, 4, 3, 2, 1, 3, 5, 4, 3, 2, 4, 1, 2, 5, 4, 1, 2, 4, 3, 1, 3, 2, 1, 1, 4, 4, 5, 1, 3, 5, 2, 1, 5, 1, 5, 5, 0, 5, 5, 1, 4, 2, 3, 2, 1, 3, 5, 1, 1, 3, 2, 1, 1, 5, 2, 3, 2, 5, 3, 3, 4, 5, 5, 4, 2, 0] -length of covered U: 4637 -Size of d before oversampling: 68 -Size of U (covered) : 4637 -Size of d after oversampling: 680 -Size of d_U after combining: 5317 -Loading 68 elements from d -num instances in d: 680 -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/test_processed.p -Setting value of d to 0 for test data -test_w len: 481 -test_w len: 481 -Number of features: 1024 -Number of classes: 6 -Print num of rules to train: 68 -Print num of rules: 68 - - - -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_2/metrics_train_f_on_d.p' -Did not find prev best metric for run type f_d. Setting to zero. -Found prev best metric for run type f_d_U: 0.732 -best metrics dict: {'f1_score_1': 0.744, 'precision_1': 0.7322834645669292, 'recall_1': 0.7560975609756098, 'support_1': 123, 'f1_score': array([0.77777778, 0.744 , 0.57641921, 0.7638191 , 0.85106383, - 0.78527607]), 'precision': array([0.7 , 0.73228346, 0.56410256, 0.85393258, 0.89552239, - 0.71111111]), 'recall': array([0.875 , 0.75609756, 0.58928571, 0.69090909, 0.81081081, - 0.87671233]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7497259984393049, 'avg_precision': 0.7428253520183281, 'avg_recall': 0.7664692509580582, 'accuracy': 0.732, 'epoch': 8.0, 'f_d_global_step': 1328} -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/legacy_tf_layers/core.py:171: UserWarning: `tf.layers.dense` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dense` instead. - warnings.warn('`tf.layers.dense` is deprecated and ' -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer_v1.py:1719: UserWarning: `layer.apply` is deprecated and will be removed in a future version. Please use `layer.__call__` method instead. - warnings.warn('`layer.apply` is deprecated and ' -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version. -Instructions for updating: -Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version. -Instructions for updating: - -Future major versions of TensorFlow will allow gradients to flow -into the labels input on backprop by default. - -See `tf.nn.softmax_cross_entropy_with_logits_v2`. - -WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/Data_Pgm_Subset_Slc/Implyloss/my_model.py:615: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. -Instructions for updating: -Use `tf.cast` instead. -[ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" -] -2021-04-18 10:00:14.223331: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA -To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. -2021-04-18 10:00:14.223732: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set -2021-04-18 10:00:14.223866: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory -2021-04-18 10:00:14.223886: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed call to cuInit: UNKNOWN ERROR (303) -2021-04-18 10:00:14.223905: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (parth-G3-3590): /proc/driver/nvidia/version does not exist -2021-04-18 10:00:14.327203: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:196] None of the MLIR optimization passes are enabled (registered 0 passes) -2021-04-18 10:00:14.332780: I tensorflow/core/platform/profile_utils/cpu_utils.cc:112] CPU Frequency: 2599990000 Hz -Restoring best checkpoint from path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_2/checkpoints/f_d_U/best.ckpt-1328 -Run mode is test_all -Running all tests - -inference on f network ... - -2021-04-18 10:00:14.652381: W tensorflow/core/framework/cpu_allocator_impl.cc:80] Allocation of 139264000 exceeds 10% of free system memory. -2021-04-18 10:00:14.793740: W tensorflow/core/framework/cpu_allocator_impl.cc:80] Allocation of 148512000 exceeds 10% of free system memory. -test_f: precision: [1.000 0.841 0.741 0.981 0.932 0.794] -test_f: recall: [0.667 0.884 0.638 0.815 0.840 0.991] -test_f: f1_score: [0.800 0.862 0.686 0.891 0.883 0.882] -test_f: support: [ 9 138 94 65 81 113] -test_f: accuracy: 0.842 -test_f: avg_f1_score: 0.8339446746420922 -test_f: classifier_loss: 0.62648225 - -inference on w network... -we only test on instances covered by atleast one rule - -num_instances: 481 -batch_size: 1000 -total_batch: 0 -remaining: 481 -total_batch: 1 -2021-04-18 10:00:15.973989: W tensorflow/core/framework/cpu_allocator_impl.cc:80] Allocation of 133971968 exceeds 10% of free system memory. -2021-04-18 10:00:16.020935: W tensorflow/core/framework/cpu_allocator_impl.cc:80] Allocation of 142868544 exceeds 10% of free system memory. -old micro precision: 0.6383248730964467 -new micro precision: 0.9615384615384616 -old rule firings: 788 -new rule firings: 208 -old rule coverage: 481 -new rule coverage: 121 diff --git a/spear/Implyloss/logs/my_TREC/test_implication_0.1_0.1_3.txt b/spear/Implyloss/logs/my_TREC/test_implication_0.1_0.1_3.txt deleted file mode 100644 index c2c9c52..0000000 --- a/spear/Implyloss/logs/my_TREC/test_implication_0.1_0.1_3.txt +++ /dev/null @@ -1,164 +0,0 @@ -Hello 2 1 -2021-04-18 10:00:11.975508: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory -2021-04-18 10:00:11.975553: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/compat/v2_compat.py:96: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version. -Instructions for updating: -non-resource variables are not supported in the long term -Started Reading Flags - -checkpoint_load_mode = f_d_U -d_pickle_name = d_processed.p -data_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC -dropout_keep_prob = 1.0 -early_stopping_p = 20 -f_d_adam_lr = 0.0001 -f_d_batch_size = 16 -f_d_class_sampling_str = 10,10,10,10,10,10 -f_d_epochs = 3 -f_d_metrics_pickle_name = metrics_train_f_on_d.p -f_d_primary_metric = accuracy -f_d_U_adam_lr = 0.0001 -f_d_U_batch_size = 32 -f_d_U_epochs = 3 -f_d_U_metrics_pickle_name = metrics_train_f_on_d_U.p -f_infer_out_pickle_name = infer_f.p -f_layers_str = 512,512 -gamma = 0.1 -lamda = 0.1 -min_rule_coverage = 0 -network_dropout = True -num_checkpoints = 1 -num_classes = 0 -num_load_d = 0 -num_load_U = 0 -num_load_validation = 0 -output_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_3 -rule_classes_str = -run_mode = test_all -shuffle_batches = True -test_w_batch_size = 1000 -U_pickle_name = U_processed.p -use_joint_f_w = True -validation_pickle_name = test_processed.p -w_infer_out_pickle_name = infer_w.p -w_layers_str = 512,512 - -Hi1 -Ended Reading Flags -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_3/d_processed.p -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/U_processed.p -Rule classes: [2, 1, 1, 4, 3, 2, 1, 3, 5, 4, 3, 2, 4, 1, 2, 5, 4, 1, 2, 4, 3, 1, 3, 2, 1, 1, 4, 4, 5, 1, 3, 5, 2, 1, 5, 1, 5, 5, 0, 5, 5, 1, 4, 2, 3, 2, 1, 3, 5, 1, 1, 3, 2, 1, 1, 5, 2, 3, 2, 5, 3, 3, 4, 5, 5, 4, 2, 0] -length of covered U: 4637 -Size of d before oversampling: 68 -Size of U (covered) : 4637 -Size of d after oversampling: 680 -Size of d_U after combining: 5317 -Loading 68 elements from d -num instances in d: 680 -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/test_processed.p -Setting value of d to 0 for test data -test_w len: 481 -test_w len: 481 -Number of features: 1024 -Number of classes: 6 -Print num of rules to train: 68 -Print num of rules: 68 - - - -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_3/metrics_train_f_on_d.p' -Did not find prev best metric for run type f_d. Setting to zero. -Found prev best metric for run type f_d_U: 0.718 -best metrics dict: {'f1_score_1': 0.734375, 'precision_1': 0.706766917293233, 'recall_1': 0.7642276422764228, 'support_1': 123, 'f1_score': array([0.8 , 0.734375 , 0.56198347, 0.75376884, 0.80882353, - 0.80263158]), 'precision': array([0.85714286, 0.70676692, 0.52307692, 0.84269663, 0.88709677, - 0.7721519 ]), 'recall': array([0.75 , 0.76422764, 0.60714286, 0.68181818, 0.74324324, - 0.83561644]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.743597070609103, 'avg_precision': 0.7648219999423703, 'avg_recall': 0.7303413938061448, 'accuracy': 0.718, 'epoch': 7.0, 'f_d_global_step': 1162} -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/legacy_tf_layers/core.py:171: UserWarning: `tf.layers.dense` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dense` instead. - warnings.warn('`tf.layers.dense` is deprecated and ' -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer_v1.py:1719: UserWarning: `layer.apply` is deprecated and will be removed in a future version. Please use `layer.__call__` method instead. - warnings.warn('`layer.apply` is deprecated and ' -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version. -Instructions for updating: -Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version. -Instructions for updating: - -Future major versions of TensorFlow will allow gradients to flow -into the labels input on backprop by default. - -See `tf.nn.softmax_cross_entropy_with_logits_v2`. - -WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/Data_Pgm_Subset_Slc/Implyloss/my_model.py:615: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. -Instructions for updating: -Use `tf.cast` instead. -[ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" -] -2021-04-18 10:00:14.137964: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA -To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. -2021-04-18 10:00:14.138330: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set -2021-04-18 10:00:14.138450: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory -2021-04-18 10:00:14.138469: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed call to cuInit: UNKNOWN ERROR (303) -2021-04-18 10:00:14.138487: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (parth-G3-3590): /proc/driver/nvidia/version does not exist -2021-04-18 10:00:14.245789: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:196] None of the MLIR optimization passes are enabled (registered 0 passes) -2021-04-18 10:00:14.254375: I tensorflow/core/platform/profile_utils/cpu_utils.cc:112] CPU Frequency: 2599990000 Hz -Restoring best checkpoint from path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_3/checkpoints/f_d_U/best.ckpt-1162 -Run mode is test_all -Running all tests - -inference on f network ... - -2021-04-18 10:00:14.429346: W tensorflow/core/framework/cpu_allocator_impl.cc:80] Allocation of 139264000 exceeds 10% of free system memory. -2021-04-18 10:00:14.541441: W tensorflow/core/framework/cpu_allocator_impl.cc:80] Allocation of 148512000 exceeds 10% of free system memory. -test_f: precision: [1.000 0.799 0.693 1.000 0.943 0.845] -test_f: recall: [0.667 0.891 0.649 0.815 0.815 0.965] -test_f: f1_score: [0.800 0.842 0.670 0.898 0.874 0.901] -test_f: support: [ 9 138 94 65 81 113] -test_f: accuracy: 0.836 -test_f: avg_f1_score: 0.8310165233685911 -test_f: classifier_loss: 0.6166205 - -inference on w network... -we only test on instances covered by atleast one rule - -num_instances: 481 -batch_size: 1000 -total_batch: 0 -remaining: 481 -total_batch: 1 -2021-04-18 10:00:15.683378: W tensorflow/core/framework/cpu_allocator_impl.cc:80] Allocation of 133971968 exceeds 10% of free system memory. -2021-04-18 10:00:15.724589: W tensorflow/core/framework/cpu_allocator_impl.cc:80] Allocation of 142868544 exceeds 10% of free system memory. -old micro precision: 0.6383248730964467 -new micro precision: 0.9520958083832335 -old rule firings: 788 -new rule firings: 167 -old rule coverage: 481 -new rule coverage: 96 diff --git a/spear/Implyloss/logs/my_TREC/test_implication_0.1_0.1_4.txt b/spear/Implyloss/logs/my_TREC/test_implication_0.1_0.1_4.txt deleted file mode 100644 index e1f0086..0000000 --- a/spear/Implyloss/logs/my_TREC/test_implication_0.1_0.1_4.txt +++ /dev/null @@ -1,164 +0,0 @@ -Hello 2 1 -2021-04-18 10:00:11.939495: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory -2021-04-18 10:00:11.939531: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/compat/v2_compat.py:96: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version. -Instructions for updating: -non-resource variables are not supported in the long term -Started Reading Flags - -checkpoint_load_mode = f_d_U -d_pickle_name = d_processed.p -data_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC -dropout_keep_prob = 1.0 -early_stopping_p = 20 -f_d_adam_lr = 0.0001 -f_d_batch_size = 16 -f_d_class_sampling_str = 10,10,10,10,10,10 -f_d_epochs = 3 -f_d_metrics_pickle_name = metrics_train_f_on_d.p -f_d_primary_metric = accuracy -f_d_U_adam_lr = 0.0001 -f_d_U_batch_size = 32 -f_d_U_epochs = 3 -f_d_U_metrics_pickle_name = metrics_train_f_on_d_U.p -f_infer_out_pickle_name = infer_f.p -f_layers_str = 512,512 -gamma = 0.1 -lamda = 0.1 -min_rule_coverage = 0 -network_dropout = True -num_checkpoints = 1 -num_classes = 0 -num_load_d = 0 -num_load_U = 0 -num_load_validation = 0 -output_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_4 -rule_classes_str = -run_mode = test_all -shuffle_batches = True -test_w_batch_size = 1000 -U_pickle_name = U_processed.p -use_joint_f_w = True -validation_pickle_name = test_processed.p -w_infer_out_pickle_name = infer_w.p -w_layers_str = 512,512 - -Hi1 -Ended Reading Flags -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_4/d_processed.p -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/U_processed.p -Rule classes: [2, 1, 1, 4, 3, 2, 1, 3, 5, 4, 3, 2, 4, 1, 2, 5, 4, 1, 2, 4, 3, 1, 3, 2, 1, 1, 4, 4, 5, 1, 3, 5, 2, 1, 5, 1, 5, 5, 0, 5, 5, 1, 4, 2, 3, 2, 1, 3, 5, 1, 1, 3, 2, 1, 1, 5, 2, 3, 2, 5, 3, 3, 4, 5, 5, 4, 2, 0] -length of covered U: 4637 -Size of d before oversampling: 68 -Size of U (covered) : 4637 -Size of d after oversampling: 680 -Size of d_U after combining: 5317 -Loading 68 elements from d -num instances in d: 680 -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/test_processed.p -Setting value of d to 0 for test data -test_w len: 481 -test_w len: 481 -Number of features: 1024 -Number of classes: 6 -Print num of rules to train: 68 -Print num of rules: 68 - - - -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_4/metrics_train_f_on_d.p' -Did not find prev best metric for run type f_d. Setting to zero. -Found prev best metric for run type f_d_U: 0.736 -best metrics dict: {'f1_score_1': 0.7272727272727273, 'precision_1': 0.7394957983193278, 'recall_1': 0.7154471544715447, 'support_1': 123, 'f1_score': array([0.77777778, 0.72727273, 0.59836066, 0.76142132, 0.85714286, - 0.81578947]), 'precision': array([0.7 , 0.7394958 , 0.5530303 , 0.86206897, 0.8630137 , - 0.78481013]), 'recall': array([0.875 , 0.71544715, 0.65178571, 0.68181818, 0.85135135, - 0.84931507]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7562941352353719, 'avg_precision': 0.7504031486798812, 'avg_recall': 0.7707862450699904, 'accuracy': 0.736, 'epoch': 10.0, 'f_d_global_step': 1660} -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/legacy_tf_layers/core.py:171: UserWarning: `tf.layers.dense` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dense` instead. - warnings.warn('`tf.layers.dense` is deprecated and ' -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer_v1.py:1719: UserWarning: `layer.apply` is deprecated and will be removed in a future version. Please use `layer.__call__` method instead. - warnings.warn('`layer.apply` is deprecated and ' -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version. -Instructions for updating: -Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version. -Instructions for updating: - -Future major versions of TensorFlow will allow gradients to flow -into the labels input on backprop by default. - -See `tf.nn.softmax_cross_entropy_with_logits_v2`. - -WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/Data_Pgm_Subset_Slc/Implyloss/my_model.py:615: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. -Instructions for updating: -Use `tf.cast` instead. -[ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" -] -2021-04-18 10:00:14.183596: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA -To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. -2021-04-18 10:00:14.184002: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set -2021-04-18 10:00:14.184123: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory -2021-04-18 10:00:14.184138: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed call to cuInit: UNKNOWN ERROR (303) -2021-04-18 10:00:14.184155: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (parth-G3-3590): /proc/driver/nvidia/version does not exist -2021-04-18 10:00:14.292133: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:196] None of the MLIR optimization passes are enabled (registered 0 passes) -2021-04-18 10:00:14.301043: I tensorflow/core/platform/profile_utils/cpu_utils.cc:112] CPU Frequency: 2599990000 Hz -Restoring best checkpoint from path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_4/checkpoints/f_d_U/best.ckpt-1660 -Run mode is test_all -Running all tests - -inference on f network ... - -2021-04-18 10:00:14.611841: W tensorflow/core/framework/cpu_allocator_impl.cc:80] Allocation of 139264000 exceeds 10% of free system memory. -2021-04-18 10:00:14.713806: W tensorflow/core/framework/cpu_allocator_impl.cc:80] Allocation of 148512000 exceeds 10% of free system memory. -test_f: precision: [1.000 0.836 0.759 0.964 0.875 0.875] -test_f: recall: [0.667 0.920 0.702 0.815 0.864 0.929] -test_f: f1_score: [0.800 0.876 0.729 0.883 0.870 0.901] -test_f: support: [ 9 138 94 65 81 113] -test_f: accuracy: 0.854 -test_f: avg_f1_score: 0.8432216568823375 -test_f: classifier_loss: 0.596695 - -inference on w network... -we only test on instances covered by atleast one rule - -num_instances: 481 -batch_size: 1000 -total_batch: 0 -remaining: 481 -total_batch: 1 -2021-04-18 10:00:16.057857: W tensorflow/core/framework/cpu_allocator_impl.cc:80] Allocation of 133971968 exceeds 10% of free system memory. -2021-04-18 10:00:16.104299: W tensorflow/core/framework/cpu_allocator_impl.cc:80] Allocation of 142868544 exceeds 10% of free system memory. -old micro precision: 0.6383248730964467 -new micro precision: 0.9739130434782609 -old rule firings: 788 -new rule firings: 115 -old rule coverage: 481 -new rule coverage: 70 diff --git a/spear/Implyloss/logs/my_TREC/test_implication_0.1_0.1_5.txt b/spear/Implyloss/logs/my_TREC/test_implication_0.1_0.1_5.txt deleted file mode 100644 index db06b5d..0000000 --- a/spear/Implyloss/logs/my_TREC/test_implication_0.1_0.1_5.txt +++ /dev/null @@ -1,164 +0,0 @@ -Hello 2 1 -2021-04-18 10:00:12.007788: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory -2021-04-18 10:00:12.007826: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/compat/v2_compat.py:96: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version. -Instructions for updating: -non-resource variables are not supported in the long term -Started Reading Flags - -checkpoint_load_mode = f_d_U -d_pickle_name = d_processed.p -data_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC -dropout_keep_prob = 1.0 -early_stopping_p = 20 -f_d_adam_lr = 0.0001 -f_d_batch_size = 16 -f_d_class_sampling_str = 10,10,10,10,10,10 -f_d_epochs = 3 -f_d_metrics_pickle_name = metrics_train_f_on_d.p -f_d_primary_metric = accuracy -f_d_U_adam_lr = 0.0001 -f_d_U_batch_size = 32 -f_d_U_epochs = 3 -f_d_U_metrics_pickle_name = metrics_train_f_on_d_U.p -f_infer_out_pickle_name = infer_f.p -f_layers_str = 512,512 -gamma = 0.1 -lamda = 0.1 -min_rule_coverage = 0 -network_dropout = True -num_checkpoints = 1 -num_classes = 0 -num_load_d = 0 -num_load_U = 0 -num_load_validation = 0 -output_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_5 -rule_classes_str = -run_mode = test_all -shuffle_batches = True -test_w_batch_size = 1000 -U_pickle_name = U_processed.p -use_joint_f_w = True -validation_pickle_name = test_processed.p -w_infer_out_pickle_name = infer_w.p -w_layers_str = 512,512 - -Hi1 -Ended Reading Flags -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_5/d_processed.p -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/U_processed.p -Rule classes: [2, 1, 1, 4, 3, 2, 1, 3, 5, 4, 3, 2, 4, 1, 2, 5, 4, 1, 2, 4, 3, 1, 3, 2, 1, 1, 4, 4, 5, 1, 3, 5, 2, 1, 5, 1, 5, 5, 0, 5, 5, 1, 4, 2, 3, 2, 1, 3, 5, 1, 1, 3, 2, 1, 1, 5, 2, 3, 2, 5, 3, 3, 4, 5, 5, 4, 2, 0] -length of covered U: 4637 -Size of d before oversampling: 68 -Size of U (covered) : 4637 -Size of d after oversampling: 680 -Size of d_U after combining: 5317 -Loading 68 elements from d -num instances in d: 680 -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/test_processed.p -Setting value of d to 0 for test data -test_w len: 481 -test_w len: 481 -Number of features: 1024 -Number of classes: 6 -Print num of rules to train: 68 -Print num of rules: 68 - - - -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_5/metrics_train_f_on_d.p' -Did not find prev best metric for run type f_d. Setting to zero. -Found prev best metric for run type f_d_U: 0.728 -best metrics dict: {'f1_score_1': 0.7318840579710145, 'precision_1': 0.6601307189542484, 'recall_1': 0.8211382113821138, 'support_1': 123, 'f1_score': array([0.875 , 0.73188406, 0.52727273, 0.78787879, 0.85517241, - 0.8 ]), 'precision': array([0.875 , 0.66013072, 0.53703704, 0.88636364, 0.87323944, - 0.80555556]), 'recall': array([0.875 , 0.82113821, 0.51785714, 0.70909091, 0.83783784, - 0.79452055]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.7628679978192722, 'avg_precision': 0.7728877307550325, 'avg_recall': 0.7592407748522015, 'accuracy': 0.728, 'epoch': 5.0, 'f_d_global_step': 830} -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/legacy_tf_layers/core.py:171: UserWarning: `tf.layers.dense` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dense` instead. - warnings.warn('`tf.layers.dense` is deprecated and ' -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer_v1.py:1719: UserWarning: `layer.apply` is deprecated and will be removed in a future version. Please use `layer.__call__` method instead. - warnings.warn('`layer.apply` is deprecated and ' -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version. -Instructions for updating: -Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version. -Instructions for updating: - -Future major versions of TensorFlow will allow gradients to flow -into the labels input on backprop by default. - -See `tf.nn.softmax_cross_entropy_with_logits_v2`. - -WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/Data_Pgm_Subset_Slc/Implyloss/my_model.py:615: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. -Instructions for updating: -Use `tf.cast` instead. -[ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" -] -2021-04-18 10:00:14.255473: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA -To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. -2021-04-18 10:00:14.255899: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set -2021-04-18 10:00:14.256035: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory -2021-04-18 10:00:14.256055: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed call to cuInit: UNKNOWN ERROR (303) -2021-04-18 10:00:14.256071: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (parth-G3-3590): /proc/driver/nvidia/version does not exist -2021-04-18 10:00:14.427188: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:196] None of the MLIR optimization passes are enabled (registered 0 passes) -2021-04-18 10:00:14.439795: I tensorflow/core/platform/profile_utils/cpu_utils.cc:112] CPU Frequency: 2599990000 Hz -Restoring best checkpoint from path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/implication_0.1_0.1_5/checkpoints/f_d_U/best.ckpt-830 -Run mode is test_all -Running all tests - -inference on f network ... - -2021-04-18 10:00:14.936048: W tensorflow/core/framework/cpu_allocator_impl.cc:80] Allocation of 139264000 exceeds 10% of free system memory. -2021-04-18 10:00:15.054234: W tensorflow/core/framework/cpu_allocator_impl.cc:80] Allocation of 148512000 exceeds 10% of free system memory. -test_f: precision: [1.000 0.742 0.735 0.981 0.918 0.876] -test_f: recall: [0.667 0.957 0.532 0.815 0.827 0.938] -test_f: f1_score: [0.800 0.835 0.617 0.891 0.870 0.906] -test_f: support: [ 9 138 94 65 81 113] -test_f: accuracy: 0.828 -test_f: avg_f1_score: 0.8199326778709587 -test_f: classifier_loss: 0.62963694 - -inference on w network... -we only test on instances covered by atleast one rule - -num_instances: 481 -batch_size: 1000 -total_batch: 0 -remaining: 481 -total_batch: 1 -2021-04-18 10:00:16.205395: W tensorflow/core/framework/cpu_allocator_impl.cc:80] Allocation of 133971968 exceeds 10% of free system memory. -2021-04-18 10:00:16.260163: W tensorflow/core/framework/cpu_allocator_impl.cc:80] Allocation of 142868544 exceeds 10% of free system memory. -old micro precision: 0.6383248730964467 -new micro precision: 0.9558823529411765 -old rule firings: 788 -new rule firings: 204 -old rule coverage: 481 -new rule coverage: 127 diff --git a/spear/Implyloss/logs/my_TREC/test_learn2reweight_0.1_0.01_1.txt b/spear/Implyloss/logs/my_TREC/test_learn2reweight_0.1_0.01_1.txt deleted file mode 100644 index e7cf445..0000000 --- a/spear/Implyloss/logs/my_TREC/test_learn2reweight_0.1_0.01_1.txt +++ /dev/null @@ -1,144 +0,0 @@ -Hello 2 1 -2021-04-18 09:58:19.876645: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory -2021-04-18 09:58:19.876675: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/compat/v2_compat.py:96: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version. -Instructions for updating: -non-resource variables are not supported in the long term -Started Reading Flags - -checkpoint_load_mode = f_d_U -d_pickle_name = d_processed.p -data_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC -dropout_keep_prob = 1.0 -early_stopping_p = 20 -f_d_adam_lr = 0.0001 -f_d_batch_size = 16 -f_d_class_sampling_str = 10,10,10,10,10,10 -f_d_epochs = 4 -f_d_metrics_pickle_name = metrics_train_f_on_d.p -f_d_primary_metric = accuracy -f_d_U_adam_lr = 0.0001 -f_d_U_batch_size = 32 -f_d_U_epochs = 4 -f_d_U_metrics_pickle_name = metrics_train_f_on_d_U.p -f_infer_out_pickle_name = infer_f.p -f_layers_str = 512,512 -gamma = 0.1 -lamda = 0.01 -min_rule_coverage = 0 -network_dropout = True -num_checkpoints = 1 -num_classes = 0 -num_load_d = 0 -num_load_U = 0 -num_load_validation = 0 -output_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_1 -rule_classes_str = -run_mode = test_f -shuffle_batches = True -test_w_batch_size = 1000 -U_pickle_name = U_processed.p -use_joint_f_w = False -validation_pickle_name = test_processed.p -w_infer_out_pickle_name = infer_w.p -w_layers_str = 512,512 - -Hi1 -Ended Reading Flags -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_1/d_processed.p -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/U_processed.p -Rule classes: [2, 1, 1, 4, 3, 2, 1, 3, 5, 4, 3, 2, 4, 1, 2, 5, 4, 1, 2, 4, 3, 1, 3, 2, 1, 1, 4, 4, 5, 1, 3, 5, 2, 1, 5, 1, 5, 5, 0, 5, 5, 1, 4, 2, 3, 2, 1, 3, 5, 1, 1, 3, 2, 1, 1, 5, 2, 3, 2, 5, 3, 3, 4, 5, 5, 4, 2, 0] -length of covered U: 4637 -Size of d before oversampling: 68 -Size of U (covered) : 4637 -Size of d after oversampling: 680 -Size of d_U after combining: 5317 -Loading 68 elements from d -num instances in d: 680 -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/test_processed.p -Setting value of d to 0 for test data -test_w len: 481 -test_w len: 481 -Number of features: 1024 -Number of classes: 6 -Print num of rules to train: 68 -Print num of rules: 68 - - - -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_1/metrics_train_f_on_d.p' -Did not find prev best metric for run type f_d. Setting to zero. -Found prev best metric for run type f_d_U: 0.524 -best metrics dict: {'f1_score_1': 0.5126353790613719, 'precision_1': 0.461038961038961, 'recall_1': 0.5772357723577236, 'support_1': 123, 'f1_score': array([0. , 0.51263538, 0.33160622, 0.61797753, 0.64150943, - 0.57297297]), 'precision': array([0. , 0.46103896, 0.39506173, 0.80882353, 0.6 , - 0.47321429]), 'recall': array([0. , 0.57723577, 0.28571429, 0.5 , 0.68918919, - 0.7260274 ]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.4461169219505128, 'avg_precision': 0.4563564174266788, 'avg_recall': 0.46302777408691204, 'accuracy': 0.524, 'epoch': 3.0, 'f_d_global_step': 498} -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/legacy_tf_layers/core.py:171: UserWarning: `tf.layers.dense` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dense` instead. - warnings.warn('`tf.layers.dense` is deprecated and ' -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer_v1.py:1719: UserWarning: `layer.apply` is deprecated and will be removed in a future version. Please use `layer.__call__` method instead. - warnings.warn('`layer.apply` is deprecated and ' -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version. -Instructions for updating: -Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version. -Instructions for updating: - -Future major versions of TensorFlow will allow gradients to flow -into the labels input on backprop by default. - -See `tf.nn.softmax_cross_entropy_with_logits_v2`. - -WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/Data_Pgm_Subset_Slc/Implyloss/my_model.py:615: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. -Instructions for updating: -Use `tf.cast` instead. -[ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" -] -2021-04-18 09:58:22.117338: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA -To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. -2021-04-18 09:58:22.117750: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set -2021-04-18 09:58:22.117873: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory -2021-04-18 09:58:22.117894: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed call to cuInit: UNKNOWN ERROR (303) -2021-04-18 09:58:22.117921: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (parth-G3-3590): /proc/driver/nvidia/version does not exist -2021-04-18 09:58:22.206945: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:196] None of the MLIR optimization passes are enabled (registered 0 passes) -2021-04-18 09:58:22.212121: I tensorflow/core/platform/profile_utils/cpu_utils.cc:112] CPU Frequency: 2599990000 Hz -Restoring best checkpoint from path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_1/checkpoints/f_d_U/best.ckpt-498 -Run mode is test_f -Running test_f -/home/parth/.local/lib/python3.8/site-packages/sklearn/metrics/classification.py:1436: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. - precision = _prf_divide(tp_sum, pred_sum, -test_f: precision: [0.000 0.648 0.651 0.961 0.565 0.747] -test_f: recall: [0.000 0.935 0.436 0.754 0.642 0.628] -test_f: f1_score: [0.000 0.766 0.522 0.845 0.601 0.683] -test_f: support: [ 9 138 94 65 81 113] -test_f: accuracy: 0.684 -test_f: avg_f1_score: 0.5694245986514627 -test_f: classifier_loss: 1.1549703 diff --git a/spear/Implyloss/logs/my_TREC/test_learn2reweight_0.1_0.01_2.txt b/spear/Implyloss/logs/my_TREC/test_learn2reweight_0.1_0.01_2.txt deleted file mode 100644 index bebdf92..0000000 --- a/spear/Implyloss/logs/my_TREC/test_learn2reweight_0.1_0.01_2.txt +++ /dev/null @@ -1,144 +0,0 @@ -Hello 2 1 -2021-04-18 09:58:19.921771: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory -2021-04-18 09:58:19.921825: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/compat/v2_compat.py:96: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version. -Instructions for updating: -non-resource variables are not supported in the long term -Started Reading Flags - -checkpoint_load_mode = f_d_U -d_pickle_name = d_processed.p -data_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC -dropout_keep_prob = 1.0 -early_stopping_p = 20 -f_d_adam_lr = 0.0001 -f_d_batch_size = 16 -f_d_class_sampling_str = 10,10,10,10,10,10 -f_d_epochs = 4 -f_d_metrics_pickle_name = metrics_train_f_on_d.p -f_d_primary_metric = accuracy -f_d_U_adam_lr = 0.0001 -f_d_U_batch_size = 32 -f_d_U_epochs = 4 -f_d_U_metrics_pickle_name = metrics_train_f_on_d_U.p -f_infer_out_pickle_name = infer_f.p -f_layers_str = 512,512 -gamma = 0.1 -lamda = 0.01 -min_rule_coverage = 0 -network_dropout = True -num_checkpoints = 1 -num_classes = 0 -num_load_d = 0 -num_load_U = 0 -num_load_validation = 0 -output_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_2 -rule_classes_str = -run_mode = test_f -shuffle_batches = True -test_w_batch_size = 1000 -U_pickle_name = U_processed.p -use_joint_f_w = False -validation_pickle_name = test_processed.p -w_infer_out_pickle_name = infer_w.p -w_layers_str = 512,512 - -Hi1 -Ended Reading Flags -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_2/d_processed.p -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/U_processed.p -Rule classes: [2, 1, 1, 4, 3, 2, 1, 3, 5, 4, 3, 2, 4, 1, 2, 5, 4, 1, 2, 4, 3, 1, 3, 2, 1, 1, 4, 4, 5, 1, 3, 5, 2, 1, 5, 1, 5, 5, 0, 5, 5, 1, 4, 2, 3, 2, 1, 3, 5, 1, 1, 3, 2, 1, 1, 5, 2, 3, 2, 5, 3, 3, 4, 5, 5, 4, 2, 0] -length of covered U: 4637 -Size of d before oversampling: 68 -Size of U (covered) : 4637 -Size of d after oversampling: 680 -Size of d_U after combining: 5317 -Loading 68 elements from d -num instances in d: 680 -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/test_processed.p -Setting value of d to 0 for test data -test_w len: 481 -test_w len: 481 -Number of features: 1024 -Number of classes: 6 -Print num of rules to train: 68 -Print num of rules: 68 - - - -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_2/metrics_train_f_on_d.p' -Did not find prev best metric for run type f_d. Setting to zero. -Found prev best metric for run type f_d_U: 0.518 -best metrics dict: {'f1_score_1': 0.5469613259668509, 'precision_1': 0.41422594142259417, 'recall_1': 0.8048780487804879, 'support_1': 123, 'f1_score': array([0. , 0.54696133, 0.22093023, 0.64864865, 0.54716981, - 0.62275449]), 'precision': array([0. , 0.41422594, 0.31666667, 0.8 , 0.90625 , - 0.55319149]), 'recall': array([0. , 0.80487805, 0.16964286, 0.54545455, 0.39189189, - 0.71232877]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.43107741825205964, 'avg_precision': 0.4983890162418272, 'avg_recall': 0.43736601839884504, 'accuracy': 0.518, 'epoch': 6.0, 'f_d_global_step': 996} -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/legacy_tf_layers/core.py:171: UserWarning: `tf.layers.dense` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dense` instead. - warnings.warn('`tf.layers.dense` is deprecated and ' -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer_v1.py:1719: UserWarning: `layer.apply` is deprecated and will be removed in a future version. Please use `layer.__call__` method instead. - warnings.warn('`layer.apply` is deprecated and ' -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version. -Instructions for updating: -Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version. -Instructions for updating: - -Future major versions of TensorFlow will allow gradients to flow -into the labels input on backprop by default. - -See `tf.nn.softmax_cross_entropy_with_logits_v2`. - -WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/Data_Pgm_Subset_Slc/Implyloss/my_model.py:615: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. -Instructions for updating: -Use `tf.cast` instead. -[ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" -] -2021-04-18 09:58:22.126960: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA -To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. -2021-04-18 09:58:22.127306: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set -2021-04-18 09:58:22.127415: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory -2021-04-18 09:58:22.127433: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed call to cuInit: UNKNOWN ERROR (303) -2021-04-18 09:58:22.127458: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (parth-G3-3590): /proc/driver/nvidia/version does not exist -2021-04-18 09:58:22.217328: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:196] None of the MLIR optimization passes are enabled (registered 0 passes) -2021-04-18 09:58:22.222659: I tensorflow/core/platform/profile_utils/cpu_utils.cc:112] CPU Frequency: 2599990000 Hz -Restoring best checkpoint from path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_2/checkpoints/f_d_U/best.ckpt-996 -Run mode is test_f -Running test_f -/home/parth/.local/lib/python3.8/site-packages/sklearn/metrics/classification.py:1436: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. - precision = _prf_divide(tp_sum, pred_sum, -test_f: precision: [0.000 0.500 0.600 0.943 0.944 0.778] -test_f: recall: [0.000 0.971 0.223 0.769 0.420 0.743] -test_f: f1_score: [0.000 0.660 0.326 0.847 0.581 0.760] -test_f: support: [ 9 138 94 65 81 113] -test_f: accuracy: 0.646 -test_f: avg_f1_score: 0.5290858535511106 -test_f: classifier_loss: 1.6713967 diff --git a/spear/Implyloss/logs/my_TREC/test_learn2reweight_0.1_0.01_3.txt b/spear/Implyloss/logs/my_TREC/test_learn2reweight_0.1_0.01_3.txt deleted file mode 100644 index a4f0441..0000000 --- a/spear/Implyloss/logs/my_TREC/test_learn2reweight_0.1_0.01_3.txt +++ /dev/null @@ -1,144 +0,0 @@ -Hello 2 1 -2021-04-18 09:58:19.921771: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory -2021-04-18 09:58:19.921825: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/compat/v2_compat.py:96: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version. -Instructions for updating: -non-resource variables are not supported in the long term -Started Reading Flags - -checkpoint_load_mode = f_d_U -d_pickle_name = d_processed.p -data_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC -dropout_keep_prob = 1.0 -early_stopping_p = 20 -f_d_adam_lr = 0.0001 -f_d_batch_size = 16 -f_d_class_sampling_str = 10,10,10,10,10,10 -f_d_epochs = 4 -f_d_metrics_pickle_name = metrics_train_f_on_d.p -f_d_primary_metric = accuracy -f_d_U_adam_lr = 0.0001 -f_d_U_batch_size = 32 -f_d_U_epochs = 4 -f_d_U_metrics_pickle_name = metrics_train_f_on_d_U.p -f_infer_out_pickle_name = infer_f.p -f_layers_str = 512,512 -gamma = 0.1 -lamda = 0.01 -min_rule_coverage = 0 -network_dropout = True -num_checkpoints = 1 -num_classes = 0 -num_load_d = 0 -num_load_U = 0 -num_load_validation = 0 -output_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_3 -rule_classes_str = -run_mode = test_f -shuffle_batches = True -test_w_batch_size = 1000 -U_pickle_name = U_processed.p -use_joint_f_w = False -validation_pickle_name = test_processed.p -w_infer_out_pickle_name = infer_w.p -w_layers_str = 512,512 - -Hi1 -Ended Reading Flags -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_3/d_processed.p -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/U_processed.p -Rule classes: [2, 1, 1, 4, 3, 2, 1, 3, 5, 4, 3, 2, 4, 1, 2, 5, 4, 1, 2, 4, 3, 1, 3, 2, 1, 1, 4, 4, 5, 1, 3, 5, 2, 1, 5, 1, 5, 5, 0, 5, 5, 1, 4, 2, 3, 2, 1, 3, 5, 1, 1, 3, 2, 1, 1, 5, 2, 3, 2, 5, 3, 3, 4, 5, 5, 4, 2, 0] -length of covered U: 4637 -Size of d before oversampling: 68 -Size of U (covered) : 4637 -Size of d after oversampling: 680 -Size of d_U after combining: 5317 -Loading 68 elements from d -num instances in d: 680 -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/test_processed.p -Setting value of d to 0 for test data -test_w len: 481 -test_w len: 481 -Number of features: 1024 -Number of classes: 6 -Print num of rules to train: 68 -Print num of rules: 68 - - - -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_3/metrics_train_f_on_d.p' -Did not find prev best metric for run type f_d. Setting to zero. -Found prev best metric for run type f_d_U: 0.526 -best metrics dict: {'f1_score_1': 0.5459610027855154, 'precision_1': 0.4152542372881356, 'recall_1': 0.7967479674796748, 'support_1': 123, 'f1_score': array([0. , 0.545961 , 0.25454545, 0.64 , 0.60344828, - 0.59887006]), 'precision': array([0. , 0.41525424, 0.39622642, 0.86153846, 0.83333333, - 0.50961538]), 'recall': array([0. , 0.79674797, 0.1875 , 0.50909091, 0.47297297, - 0.7260274 ]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.4404707982817024, 'avg_precision': 0.5026613053116091, 'avg_recall': 0.44872320780063846, 'accuracy': 0.526, 'epoch': 2.0, 'f_d_global_step': 332} -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/legacy_tf_layers/core.py:171: UserWarning: `tf.layers.dense` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dense` instead. - warnings.warn('`tf.layers.dense` is deprecated and ' -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer_v1.py:1719: UserWarning: `layer.apply` is deprecated and will be removed in a future version. Please use `layer.__call__` method instead. - warnings.warn('`layer.apply` is deprecated and ' -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version. -Instructions for updating: -Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version. -Instructions for updating: - -Future major versions of TensorFlow will allow gradients to flow -into the labels input on backprop by default. - -See `tf.nn.softmax_cross_entropy_with_logits_v2`. - -WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/Data_Pgm_Subset_Slc/Implyloss/my_model.py:615: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. -Instructions for updating: -Use `tf.cast` instead. -[ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" -] -2021-04-18 09:58:22.213246: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA -To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. -2021-04-18 09:58:22.213648: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set -2021-04-18 09:58:22.213791: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory -2021-04-18 09:58:22.213809: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed call to cuInit: UNKNOWN ERROR (303) -2021-04-18 09:58:22.213827: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (parth-G3-3590): /proc/driver/nvidia/version does not exist -2021-04-18 09:58:22.339826: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:196] None of the MLIR optimization passes are enabled (registered 0 passes) -2021-04-18 09:58:22.345462: I tensorflow/core/platform/profile_utils/cpu_utils.cc:112] CPU Frequency: 2599990000 Hz -Restoring best checkpoint from path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_3/checkpoints/f_d_U/best.ckpt-332 -Run mode is test_f -Running test_f -/home/parth/.local/lib/python3.8/site-packages/sklearn/metrics/classification.py:1436: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. - precision = _prf_divide(tp_sum, pred_sum, -test_f: precision: [0.000 0.544 0.684 0.980 0.739 0.696] -test_f: recall: [0.000 0.986 0.277 0.769 0.420 0.708] -test_f: f1_score: [0.000 0.701 0.394 0.862 0.535 0.702] -test_f: support: [ 9 138 94 65 81 113] -test_f: accuracy: 0.652 -test_f: avg_f1_score: 0.5323711240204568 -test_f: classifier_loss: 1.1884351 diff --git a/spear/Implyloss/logs/my_TREC/test_learn2reweight_0.1_0.01_4.txt b/spear/Implyloss/logs/my_TREC/test_learn2reweight_0.1_0.01_4.txt deleted file mode 100644 index e14e28f..0000000 --- a/spear/Implyloss/logs/my_TREC/test_learn2reweight_0.1_0.01_4.txt +++ /dev/null @@ -1,144 +0,0 @@ -Hello 2 1 -2021-04-18 09:58:19.873758: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory -2021-04-18 09:58:19.873783: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/compat/v2_compat.py:96: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version. -Instructions for updating: -non-resource variables are not supported in the long term -Started Reading Flags - -checkpoint_load_mode = f_d_U -d_pickle_name = d_processed.p -data_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC -dropout_keep_prob = 1.0 -early_stopping_p = 20 -f_d_adam_lr = 0.0001 -f_d_batch_size = 16 -f_d_class_sampling_str = 10,10,10,10,10,10 -f_d_epochs = 4 -f_d_metrics_pickle_name = metrics_train_f_on_d.p -f_d_primary_metric = accuracy -f_d_U_adam_lr = 0.0001 -f_d_U_batch_size = 32 -f_d_U_epochs = 4 -f_d_U_metrics_pickle_name = metrics_train_f_on_d_U.p -f_infer_out_pickle_name = infer_f.p -f_layers_str = 512,512 -gamma = 0.1 -lamda = 0.01 -min_rule_coverage = 0 -network_dropout = True -num_checkpoints = 1 -num_classes = 0 -num_load_d = 0 -num_load_U = 0 -num_load_validation = 0 -output_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_4 -rule_classes_str = -run_mode = test_f -shuffle_batches = True -test_w_batch_size = 1000 -U_pickle_name = U_processed.p -use_joint_f_w = False -validation_pickle_name = test_processed.p -w_infer_out_pickle_name = infer_w.p -w_layers_str = 512,512 - -Hi1 -Ended Reading Flags -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_4/d_processed.p -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/U_processed.p -Rule classes: [2, 1, 1, 4, 3, 2, 1, 3, 5, 4, 3, 2, 4, 1, 2, 5, 4, 1, 2, 4, 3, 1, 3, 2, 1, 1, 4, 4, 5, 1, 3, 5, 2, 1, 5, 1, 5, 5, 0, 5, 5, 1, 4, 2, 3, 2, 1, 3, 5, 1, 1, 3, 2, 1, 1, 5, 2, 3, 2, 5, 3, 3, 4, 5, 5, 4, 2, 0] -length of covered U: 4637 -Size of d before oversampling: 68 -Size of U (covered) : 4637 -Size of d after oversampling: 680 -Size of d_U after combining: 5317 -Loading 68 elements from d -num instances in d: 680 -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/test_processed.p -Setting value of d to 0 for test data -test_w len: 481 -test_w len: 481 -Number of features: 1024 -Number of classes: 6 -Print num of rules to train: 68 -Print num of rules: 68 - - - -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_4/metrics_train_f_on_d.p' -Did not find prev best metric for run type f_d. Setting to zero. -Found prev best metric for run type f_d_U: 0.538 -best metrics dict: {'f1_score_1': 0.5390835579514824, 'precision_1': 0.4032258064516129, 'recall_1': 0.8130081300813008, 'support_1': 123, 'f1_score': array([0. , 0.53908356, 0.18421053, 0.69230769, 0.60504202, - 0.66197183]), 'precision': array([0. , 0.40322581, 0.35 , 0.73469388, 0.8 , - 0.68115942]), 'recall': array([0. , 0.81300813, 0.125 , 0.65454545, 0.48648649, - 0.64383562]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.44710260406126706, 'avg_precision': 0.49484651738208146, 'avg_recall': 0.453812614591933, 'accuracy': 0.538, 'epoch': 2.0, 'f_d_global_step': 332} -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/legacy_tf_layers/core.py:171: UserWarning: `tf.layers.dense` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dense` instead. - warnings.warn('`tf.layers.dense` is deprecated and ' -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer_v1.py:1719: UserWarning: `layer.apply` is deprecated and will be removed in a future version. Please use `layer.__call__` method instead. - warnings.warn('`layer.apply` is deprecated and ' -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version. -Instructions for updating: -Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version. -Instructions for updating: - -Future major versions of TensorFlow will allow gradients to flow -into the labels input on backprop by default. - -See `tf.nn.softmax_cross_entropy_with_logits_v2`. - -WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/Data_Pgm_Subset_Slc/Implyloss/my_model.py:615: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. -Instructions for updating: -Use `tf.cast` instead. -[ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" -] -2021-04-18 09:58:22.120487: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA -To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. -2021-04-18 09:58:22.120808: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set -2021-04-18 09:58:22.120919: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory -2021-04-18 09:58:22.120937: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed call to cuInit: UNKNOWN ERROR (303) -2021-04-18 09:58:22.120952: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (parth-G3-3590): /proc/driver/nvidia/version does not exist -2021-04-18 09:58:22.210475: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:196] None of the MLIR optimization passes are enabled (registered 0 passes) -2021-04-18 09:58:22.216361: I tensorflow/core/platform/profile_utils/cpu_utils.cc:112] CPU Frequency: 2599990000 Hz -Restoring best checkpoint from path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_4/checkpoints/f_d_U/best.ckpt-332 -Run mode is test_f -Running test_f -/home/parth/.local/lib/python3.8/site-packages/sklearn/metrics/classification.py:1436: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. - precision = _prf_divide(tp_sum, pred_sum, -test_f: precision: [0.000 0.496 0.731 0.881 0.742 0.810] -test_f: recall: [0.000 0.986 0.202 0.800 0.568 0.566] -test_f: f1_score: [0.000 0.660 0.317 0.839 0.643 0.667] -test_f: support: [ 9 138 94 65 81 113] -test_f: accuracy: 0.634 -test_f: avg_f1_score: 0.5209323048111022 -test_f: classifier_loss: 1.1521655 diff --git a/spear/Implyloss/logs/my_TREC/test_learn2reweight_0.1_0.01_5.txt b/spear/Implyloss/logs/my_TREC/test_learn2reweight_0.1_0.01_5.txt deleted file mode 100644 index 30502c7..0000000 --- a/spear/Implyloss/logs/my_TREC/test_learn2reweight_0.1_0.01_5.txt +++ /dev/null @@ -1,144 +0,0 @@ -Hello 2 1 -2021-04-18 09:58:19.871847: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory -2021-04-18 09:58:19.871885: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/compat/v2_compat.py:96: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version. -Instructions for updating: -non-resource variables are not supported in the long term -Started Reading Flags - -checkpoint_load_mode = f_d_U -d_pickle_name = d_processed.p -data_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC -dropout_keep_prob = 1.0 -early_stopping_p = 20 -f_d_adam_lr = 0.0001 -f_d_batch_size = 16 -f_d_class_sampling_str = 10,10,10,10,10,10 -f_d_epochs = 4 -f_d_metrics_pickle_name = metrics_train_f_on_d.p -f_d_primary_metric = accuracy -f_d_U_adam_lr = 0.0001 -f_d_U_batch_size = 32 -f_d_U_epochs = 4 -f_d_U_metrics_pickle_name = metrics_train_f_on_d_U.p -f_infer_out_pickle_name = infer_f.p -f_layers_str = 512,512 -gamma = 0.1 -lamda = 0.01 -min_rule_coverage = 0 -network_dropout = True -num_checkpoints = 1 -num_classes = 0 -num_load_d = 0 -num_load_U = 0 -num_load_validation = 0 -output_dir = /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_5 -rule_classes_str = -run_mode = test_f -shuffle_batches = True -test_w_batch_size = 1000 -U_pickle_name = U_processed.p -use_joint_f_w = False -validation_pickle_name = test_processed.p -w_infer_out_pickle_name = infer_w.p -w_layers_str = 512,512 - -Hi1 -Ended Reading Flags -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_5/d_processed.p -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/U_processed.p -Rule classes: [2, 1, 1, 4, 3, 2, 1, 3, 5, 4, 3, 2, 4, 1, 2, 5, 4, 1, 2, 4, 3, 1, 3, 2, 1, 1, 4, 4, 5, 1, 3, 5, 2, 1, 5, 1, 5, 5, 0, 5, 5, 1, 4, 2, 3, 2, 1, 3, 5, 1, 1, 3, 2, 1, 1, 5, 2, 3, 2, 5, 3, 3, 4, 5, 5, 4, 2, 0] -length of covered U: 4637 -Size of d before oversampling: 68 -Size of U (covered) : 4637 -Size of d after oversampling: 680 -Size of d_U after combining: 5317 -Loading 68 elements from d -num instances in d: 680 -Loading from hoff /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/test_processed.p -Setting value of d to 0 for test data -test_w len: 481 -test_w len: 481 -Number of features: 1024 -Number of classes: 6 -Print num of rules to train: 68 -Print num of rules: 68 - - - -[Errno 2] No such file or directory: '/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_5/metrics_train_f_on_d.p' -Did not find prev best metric for run type f_d. Setting to zero. -Found prev best metric for run type f_d_U: 0.510 -best metrics dict: {'f1_score_1': 0.5669781931464175, 'precision_1': 0.4595959595959596, 'recall_1': 0.7398373983739838, 'support_1': 123, 'f1_score': array([0. , 0.56697819, 0.22485207, 0.62790698, 0.57142857, - 0.53921569]), 'precision': array([0. , 0.45959596, 0.33333333, 0.87096774, 0.69230769, - 0.41984733]), 'recall': array([0. , 0.7398374 , 0.16964286, 0.49090909, 0.48648649, - 0.75342466]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.4217302497666003, 'avg_precision': 0.46267534256945725, 'avg_recall': 0.4400500817411108, 'accuracy': 0.51, 'epoch': 4.0, 'f_d_global_step': 664} -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/legacy_tf_layers/core.py:171: UserWarning: `tf.layers.dense` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dense` instead. - warnings.warn('`tf.layers.dense` is deprecated and ' -/home/parth/.local/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer_v1.py:1719: UserWarning: `layer.apply` is deprecated and will be removed in a future version. Please use `layer.__call__` method instead. - warnings.warn('`layer.apply` is deprecated and ' -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version. -Instructions for updating: -Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`. -WARNING:tensorflow:From /home/parth/.local/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201: softmax_cross_entropy_with_logits (from tensorflow.python.ops.nn_ops) is deprecated and will be removed in a future version. -Instructions for updating: - -Future major versions of TensorFlow will allow gradients to flow -into the labels input on backprop by default. - -See `tf.nn.softmax_cross_entropy_with_logits_v2`. - -WARNING:tensorflow:From /home/parth/Desktop/SEM6/RnD/Data_Pgm_Subset_Slc/Implyloss/my_model.py:615: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version. -Instructions for updating: -Use `tf.cast` instead. -[ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" -] -2021-04-18 09:58:22.215078: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA -To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. -2021-04-18 09:58:22.215435: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set -2021-04-18 09:58:22.215565: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory -2021-04-18 09:58:22.215584: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed call to cuInit: UNKNOWN ERROR (303) -2021-04-18 09:58:22.215599: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (parth-G3-3590): /proc/driver/nvidia/version does not exist -2021-04-18 09:58:22.331717: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:196] None of the MLIR optimization passes are enabled (registered 0 passes) -2021-04-18 09:58:22.337131: I tensorflow/core/platform/profile_utils/cpu_utils.cc:112] CPU Frequency: 2599990000 Hz -Restoring best checkpoint from path: /home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC/outputs/learn2reweight_0.1_0.01_5/checkpoints/f_d_U/best.ckpt-664 -Run mode is test_f -Running test_f -/home/parth/.local/lib/python3.8/site-packages/sklearn/metrics/classification.py:1436: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. - precision = _prf_divide(tp_sum, pred_sum, -test_f: precision: [0.000 0.545 0.629 0.980 0.719 0.664] -test_f: recall: [0.000 0.957 0.234 0.754 0.506 0.681] -test_f: f1_score: [0.000 0.695 0.341 0.852 0.594 0.672] -test_f: support: [ 9 138 94 65 81 113] -test_f: accuracy: 0.642 -test_f: avg_f1_score: 0.5257813346644545 -test_f: classifier_loss: 1.4265239 diff --git a/spear/Implyloss/logs/test_all_implication_0.1_0.1_1.txt b/spear/Implyloss/logs/test_all_implication_0.1_0.1_1.txt new file mode 100644 index 0000000..23a0fdf --- /dev/null +++ b/spear/Implyloss/logs/test_all_implication_0.1_0.1_1.txt @@ -0,0 +1,142 @@ +Loading from hoff /home/parth/Desktop/SEM6/RnD/spear/examples/SMS_SPAM/data_pipeline/sms_pickle_L.pkl +batch size 100 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 100 +len_r 100 +-------------------------- +Working with l +-------------------------- +Working with L +-------------------------- +Loading from hoff /home/parth/Desktop/SEM6/RnD/spear/examples/SMS_SPAM/data_pipeline/sms_pickle_U.pkl +batch size 5174 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 5174 +len_r 5174 +-------------------------- +Working with l +-------------------------- +Working with L +L is empty +-------------------------- +No valid label found for rule: 2 +No valid label found for rule: 4 +No valid label found for rule: 6 +Rule classes: [0, 0, 2, 1, 2, 1, 2, 0, 0, 0, 0, 1, 1, 1, 1, 0] +length of covered U: 2984 +Size of d before oversampling: 100 +Size of U (covered) : 2984 +Size of d after oversampling: 1000 +Size of d_U after combining: 3984 +Loading 100 elements from d +num instances in d: 1000 +Loading from hoff /home/parth/Desktop/SEM6/RnD/spear/examples/SMS_SPAM/data_pipeline/sms_pickle_V.pkl +batch size 100 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 100 +len_r 100 +-------------------------- +Working with l +-------------------------- +Working with L +-------------------------- +Setting value of d to 0 for test data +test_w len: 64 +test_w len: 64 +Number of features: 1024 +Number of classes: 2 +Print num of rules to train: 16 +Print num of rules: 16 + + + +Found prev best metric for run type f_d: 0.644 +best metrics dict: {'f1_score_1': 0.711111111111111, 'precision_1': 0.6530612244897959, 'recall_1': 0.7804878048780488, 'support_1': 123, 'f1_score': array([0.66666667, 0.71111111, 0.51162791, 0.64242424, 0.81203008, + 0.58415842]), 'precision': array([0.71428571, 0.65306122, 0.53398058, 0.96363636, 0.91525424, + 0.45736434]), 'recall': array([0.625 , 0.7804878 , 0.49107143, 0.48181818, 0.72972973, + 0.80821918]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6546697363680531, 'avg_precision': 0.7062637438849254, 'avg_recall': 0.6527210538465968, 'accuracy': 0.644, 'epoch': 2.0, 'f_d_global_step': 84} +Found prev best metric for run type f_d_U: 1.000 +best metrics dict: {'f1_score_1': 1.0, 'precision_1': 1.0, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([1., 1.]), 'precision': array([1., 1.]), 'recall': array([1., 1.]), 'support': array([11, 89]), 'avg_f1_score': 1.0, 'avg_precision': 1.0, 'avg_recall': 1.0, 'accuracy': 1.0, 'epoch': 2.0, 'f_d_global_step': 248} +[ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" +] +Restoring checkpoint from path: ./checkpoint/hls-model-499 +Run mode is test_all +Running all tests + +inference on f network ... + +test_f: precision: [1.000 1.000] +test_f: recall: [1.000 1.000] +test_f: f1_score: [1.000 1.000] +test_f: support: [11 89] +test_f: accuracy: 1.0 +test_f: avg_f1_score: 1.0 +test_f: classifier_loss: 0.0022028086 + +inference on w network... +we only test on instances covered by atleast one rule + +num_instances: 64 +batch_size: 1000 +total_batch: 0 +remaining: 64 +total_batch: 1 +old micro precision: 0.5925925925925926 +new micro precision: 1.0 +old rule firings: 135 +new rule firings: 39 +old rule coverage: 64 +new rule coverage: 32 diff --git a/spear/Implyloss/logs/test_all_learn2reweight_0.1_0.1_1.txt b/spear/Implyloss/logs/test_all_learn2reweight_0.1_0.1_1.txt new file mode 100644 index 0000000..8bfb1ab --- /dev/null +++ b/spear/Implyloss/logs/test_all_learn2reweight_0.1_0.1_1.txt @@ -0,0 +1,142 @@ +Loading from hoff /home/parth/Desktop/SEM6/RnD/spear/examples/SMS_SPAM/data_pipeline/sms_pickle_L.pkl +batch size 100 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 100 +len_r 100 +-------------------------- +Working with l +-------------------------- +Working with L +-------------------------- +Loading from hoff /home/parth/Desktop/SEM6/RnD/spear/examples/SMS_SPAM/data_pipeline/sms_pickle_U.pkl +batch size 5174 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 5174 +len_r 5174 +-------------------------- +Working with l +-------------------------- +Working with L +L is empty +-------------------------- +No valid label found for rule: 2 +No valid label found for rule: 4 +No valid label found for rule: 6 +Rule classes: [0, 0, 2, 1, 2, 1, 2, 0, 0, 0, 0, 1, 1, 1, 1, 0] +length of covered U: 2984 +Size of d before oversampling: 100 +Size of U (covered) : 2984 +Size of d after oversampling: 1000 +Size of d_U after combining: 3984 +Loading 100 elements from d +num instances in d: 1000 +Loading from hoff /home/parth/Desktop/SEM6/RnD/spear/examples/SMS_SPAM/data_pipeline/sms_pickle_V.pkl +batch size 100 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 100 +len_r 100 +-------------------------- +Working with l +-------------------------- +Working with L +-------------------------- +Setting value of d to 0 for test data +test_w len: 64 +test_w len: 64 +Number of features: 1024 +Number of classes: 2 +Print num of rules to train: 16 +Print num of rules: 16 + + + +Found prev best metric for run type f_d: 0.644 +best metrics dict: {'f1_score_1': 0.711111111111111, 'precision_1': 0.6530612244897959, 'recall_1': 0.7804878048780488, 'support_1': 123, 'f1_score': array([0.66666667, 0.71111111, 0.51162791, 0.64242424, 0.81203008, + 0.58415842]), 'precision': array([0.71428571, 0.65306122, 0.53398058, 0.96363636, 0.91525424, + 0.45736434]), 'recall': array([0.625 , 0.7804878 , 0.49107143, 0.48181818, 0.72972973, + 0.80821918]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6546697363680531, 'avg_precision': 0.7062637438849254, 'avg_recall': 0.6527210538465968, 'accuracy': 0.644, 'epoch': 2.0, 'f_d_global_step': 84} +Found prev best metric for run type f_d_U: 1.000 +best metrics dict: {'f1_score_1': 1.0, 'precision_1': 1.0, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([1., 1.]), 'precision': array([1., 1.]), 'recall': array([1., 1.]), 'support': array([11, 89]), 'avg_f1_score': 1.0, 'avg_precision': 1.0, 'avg_recall': 1.0, 'accuracy': 1.0, 'epoch': 2.0, 'f_d_global_step': 248} +[ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" +] +Restoring checkpoint from path: ./checkpoint/hls-model-499 +Run mode is test_all +Running all tests + +inference on f network ... + +test_f: precision: [1.000 0.978] +test_f: recall: [0.818 1.000] +test_f: f1_score: [0.900 0.989] +test_f: support: [11 89] +test_f: accuracy: 0.98 +test_f: avg_f1_score: 0.9444444444444444 +test_f: classifier_loss: 0.06817127 + +inference on w network... +we only test on instances covered by atleast one rule + +num_instances: 64 +batch_size: 1000 +total_batch: 0 +remaining: 64 +total_batch: 1 +old micro precision: 0.5925925925925926 +new micro precision: 0.6851851851851852 +old rule firings: 135 +new rule firings: 54 +old rule coverage: 64 +new rule coverage: 26 diff --git a/spear/Implyloss/logs/test_f_implication_0.1_0.1_1.txt b/spear/Implyloss/logs/test_f_implication_0.1_0.1_1.txt new file mode 100644 index 0000000..8f33279 --- /dev/null +++ b/spear/Implyloss/logs/test_f_implication_0.1_0.1_1.txt @@ -0,0 +1,124 @@ +Loading from hoff /home/parth/Desktop/SEM6/RnD/spear/examples/SMS_SPAM/data_pipeline/sms_pickle_L.pkl +batch size 100 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 100 +len_r 100 +-------------------------- +Working with l +-------------------------- +Working with L +-------------------------- +Loading from hoff /home/parth/Desktop/SEM6/RnD/spear/examples/SMS_SPAM/data_pipeline/sms_pickle_U.pkl +batch size 5174 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 5174 +len_r 5174 +-------------------------- +Working with l +-------------------------- +Working with L +L is empty +-------------------------- +No valid label found for rule: 2 +No valid label found for rule: 4 +No valid label found for rule: 6 +Rule classes: [0, 0, 2, 1, 2, 1, 2, 0, 0, 0, 0, 1, 1, 1, 1, 0] +length of covered U: 2984 +Size of d before oversampling: 100 +Size of U (covered) : 2984 +Size of d after oversampling: 1000 +Size of d_U after combining: 3984 +Loading 100 elements from d +num instances in d: 1000 +Loading from hoff /home/parth/Desktop/SEM6/RnD/spear/examples/SMS_SPAM/data_pipeline/sms_pickle_V.pkl +batch size 100 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 100 +len_r 100 +-------------------------- +Working with l +-------------------------- +Working with L +-------------------------- +Setting value of d to 0 for test data +test_w len: 64 +test_w len: 64 +Number of features: 1024 +Number of classes: 2 +Print num of rules to train: 16 +Print num of rules: 16 + + + +Found prev best metric for run type f_d: 0.644 +best metrics dict: {'f1_score_1': 0.711111111111111, 'precision_1': 0.6530612244897959, 'recall_1': 0.7804878048780488, 'support_1': 123, 'f1_score': array([0.66666667, 0.71111111, 0.51162791, 0.64242424, 0.81203008, + 0.58415842]), 'precision': array([0.71428571, 0.65306122, 0.53398058, 0.96363636, 0.91525424, + 0.45736434]), 'recall': array([0.625 , 0.7804878 , 0.49107143, 0.48181818, 0.72972973, + 0.80821918]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6546697363680531, 'avg_precision': 0.7062637438849254, 'avg_recall': 0.6527210538465968, 'accuracy': 0.644, 'epoch': 2.0, 'f_d_global_step': 84} +Found prev best metric for run type f_d_U: 1.000 +best metrics dict: {'f1_score_1': 1.0, 'precision_1': 1.0, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([1., 1.]), 'precision': array([1., 1.]), 'recall': array([1., 1.]), 'support': array([11, 89]), 'avg_f1_score': 1.0, 'avg_precision': 1.0, 'avg_recall': 1.0, 'accuracy': 1.0, 'epoch': 2.0, 'f_d_global_step': 248} +[ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" +] +Restoring checkpoint from path: ./checkpoint/hls-model-499 +Run mode is test_f +Running test_f +test_f: precision: [1.000 1.000] +test_f: recall: [1.000 1.000] +test_f: f1_score: [1.000 1.000] +test_f: support: [11 89] +test_f: accuracy: 1.0 +test_f: avg_f1_score: 1.0 +test_f: classifier_loss: 0.000997935 diff --git a/spear/Implyloss/logs/test_f_learn2reweight_0.1_0.1_1.txt b/spear/Implyloss/logs/test_f_learn2reweight_0.1_0.1_1.txt new file mode 100644 index 0000000..49bbc4b --- /dev/null +++ b/spear/Implyloss/logs/test_f_learn2reweight_0.1_0.1_1.txt @@ -0,0 +1,124 @@ +Loading from hoff /home/parth/Desktop/SEM6/RnD/spear/examples/SMS_SPAM/data_pipeline/sms_pickle_L.pkl +batch size 100 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 100 +len_r 100 +-------------------------- +Working with l +-------------------------- +Working with L +-------------------------- +Loading from hoff /home/parth/Desktop/SEM6/RnD/spear/examples/SMS_SPAM/data_pipeline/sms_pickle_U.pkl +batch size 5174 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 5174 +len_r 5174 +-------------------------- +Working with l +-------------------------- +Working with L +L is empty +-------------------------- +No valid label found for rule: 2 +No valid label found for rule: 4 +No valid label found for rule: 6 +Rule classes: [0, 0, 2, 1, 2, 1, 2, 0, 0, 0, 0, 1, 1, 1, 1, 0] +length of covered U: 2984 +Size of d before oversampling: 100 +Size of U (covered) : 2984 +Size of d after oversampling: 1000 +Size of d_U after combining: 3984 +Loading 100 elements from d +num instances in d: 1000 +Loading from hoff /home/parth/Desktop/SEM6/RnD/spear/examples/SMS_SPAM/data_pipeline/sms_pickle_V.pkl +batch size 100 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 100 +len_r 100 +-------------------------- +Working with l +-------------------------- +Working with L +-------------------------- +Setting value of d to 0 for test data +test_w len: 64 +test_w len: 64 +Number of features: 1024 +Number of classes: 2 +Print num of rules to train: 16 +Print num of rules: 16 + + + +Found prev best metric for run type f_d: 0.644 +best metrics dict: {'f1_score_1': 0.711111111111111, 'precision_1': 0.6530612244897959, 'recall_1': 0.7804878048780488, 'support_1': 123, 'f1_score': array([0.66666667, 0.71111111, 0.51162791, 0.64242424, 0.81203008, + 0.58415842]), 'precision': array([0.71428571, 0.65306122, 0.53398058, 0.96363636, 0.91525424, + 0.45736434]), 'recall': array([0.625 , 0.7804878 , 0.49107143, 0.48181818, 0.72972973, + 0.80821918]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6546697363680531, 'avg_precision': 0.7062637438849254, 'avg_recall': 0.6527210538465968, 'accuracy': 0.644, 'epoch': 2.0, 'f_d_global_step': 84} +Found prev best metric for run type f_d_U: 1.000 +best metrics dict: {'f1_score_1': 1.0, 'precision_1': 1.0, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([1., 1.]), 'precision': array([1., 1.]), 'recall': array([1., 1.]), 'support': array([11, 89]), 'avg_f1_score': 1.0, 'avg_precision': 1.0, 'avg_recall': 1.0, 'accuracy': 1.0, 'epoch': 2.0, 'f_d_global_step': 248} +[ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" +] +Restoring checkpoint from path: ./checkpoint/hls-model-499 +Run mode is test_f +Running test_f +test_f: precision: [1.000 1.000] +test_f: recall: [1.000 1.000] +test_f: f1_score: [1.000 1.000] +test_f: support: [11 89] +test_f: accuracy: 1.0 +test_f: avg_f1_score: 1.0 +test_f: classifier_loss: 0.16589566 diff --git a/spear/Implyloss/logs/test_w_implication_0.1_0.1_1.txt b/spear/Implyloss/logs/test_w_implication_0.1_0.1_1.txt new file mode 100644 index 0000000..8015f65 --- /dev/null +++ b/spear/Implyloss/logs/test_w_implication_0.1_0.1_1.txt @@ -0,0 +1,128 @@ +Loading from hoff /home/parth/Desktop/SEM6/RnD/spear/examples/SMS_SPAM/data_pipeline/sms_pickle_L.pkl +batch size 100 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 100 +len_r 100 +-------------------------- +Working with l +-------------------------- +Working with L +-------------------------- +Loading from hoff /home/parth/Desktop/SEM6/RnD/spear/examples/SMS_SPAM/data_pipeline/sms_pickle_U.pkl +batch size 5174 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 5174 +len_r 5174 +-------------------------- +Working with l +-------------------------- +Working with L +L is empty +-------------------------- +No valid label found for rule: 2 +No valid label found for rule: 4 +No valid label found for rule: 6 +Rule classes: [0, 0, 2, 1, 2, 1, 2, 0, 0, 0, 0, 1, 1, 1, 1, 0] +length of covered U: 2984 +Size of d before oversampling: 100 +Size of U (covered) : 2984 +Size of d after oversampling: 1000 +Size of d_U after combining: 3984 +Loading 100 elements from d +num instances in d: 1000 +Loading from hoff /home/parth/Desktop/SEM6/RnD/spear/examples/SMS_SPAM/data_pipeline/sms_pickle_V.pkl +batch size 100 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 100 +len_r 100 +-------------------------- +Working with l +-------------------------- +Working with L +-------------------------- +Setting value of d to 0 for test data +test_w len: 64 +test_w len: 64 +Number of features: 1024 +Number of classes: 2 +Print num of rules to train: 16 +Print num of rules: 16 + + + +Found prev best metric for run type f_d: 0.644 +best metrics dict: {'f1_score_1': 0.711111111111111, 'precision_1': 0.6530612244897959, 'recall_1': 0.7804878048780488, 'support_1': 123, 'f1_score': array([0.66666667, 0.71111111, 0.51162791, 0.64242424, 0.81203008, + 0.58415842]), 'precision': array([0.71428571, 0.65306122, 0.53398058, 0.96363636, 0.91525424, + 0.45736434]), 'recall': array([0.625 , 0.7804878 , 0.49107143, 0.48181818, 0.72972973, + 0.80821918]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6546697363680531, 'avg_precision': 0.7062637438849254, 'avg_recall': 0.6527210538465968, 'accuracy': 0.644, 'epoch': 2.0, 'f_d_global_step': 84} +Found prev best metric for run type f_d_U: 1.000 +best metrics dict: {'f1_score_1': 1.0, 'precision_1': 1.0, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([1., 1.]), 'precision': array([1., 1.]), 'recall': array([1., 1.]), 'support': array([11, 89]), 'avg_f1_score': 1.0, 'avg_precision': 1.0, 'avg_recall': 1.0, 'accuracy': 1.0, 'epoch': 2.0, 'f_d_global_step': 248} +[ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" +] +Restoring checkpoint from path: ./checkpoint/hls-model-499 +Run mode is test_w +Running test_w +num_instances: 64 +batch_size: 1000 +total_batch: 0 +remaining: 64 +total_batch: 1 +old micro precision: 0.5925925925925926 +new micro precision: 0.9024390243902439 +old rule firings: 135 +new rule firings: 41 +old rule coverage: 64 +new rule coverage: 31 diff --git a/spear/Implyloss/logs/test_w_learn2reweight_0.1_0.1_1.txt b/spear/Implyloss/logs/test_w_learn2reweight_0.1_0.1_1.txt new file mode 100644 index 0000000..b427da1 --- /dev/null +++ b/spear/Implyloss/logs/test_w_learn2reweight_0.1_0.1_1.txt @@ -0,0 +1,128 @@ +Loading from hoff /home/parth/Desktop/SEM6/RnD/spear/examples/SMS_SPAM/data_pipeline/sms_pickle_L.pkl +batch size 100 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 100 +len_r 100 +-------------------------- +Working with l +-------------------------- +Working with L +-------------------------- +Loading from hoff /home/parth/Desktop/SEM6/RnD/spear/examples/SMS_SPAM/data_pipeline/sms_pickle_U.pkl +batch size 5174 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 5174 +len_r 5174 +-------------------------- +Working with l +-------------------------- +Working with L +L is empty +-------------------------- +No valid label found for rule: 2 +No valid label found for rule: 4 +No valid label found for rule: 6 +Rule classes: [0, 0, 2, 1, 2, 1, 2, 0, 0, 0, 0, 1, 1, 1, 1, 0] +length of covered U: 2984 +Size of d before oversampling: 100 +Size of U (covered) : 2984 +Size of d after oversampling: 1000 +Size of d_U after combining: 3984 +Loading 100 elements from d +num instances in d: 1000 +Loading from hoff /home/parth/Desktop/SEM6/RnD/spear/examples/SMS_SPAM/data_pipeline/sms_pickle_V.pkl +batch size 100 +num features 1024 +num classes 2 +num rules 16 +1 -> 0 +0 -> 1 +None -> 2 +---------------------------- +{1: 0, 0: 1, None: 2} +---------------------------- +len_x 100 +len_r 100 +-------------------------- +Working with l +-------------------------- +Working with L +-------------------------- +Setting value of d to 0 for test data +test_w len: 64 +test_w len: 64 +Number of features: 1024 +Number of classes: 2 +Print num of rules to train: 16 +Print num of rules: 16 + + + +Found prev best metric for run type f_d: 0.644 +best metrics dict: {'f1_score_1': 0.711111111111111, 'precision_1': 0.6530612244897959, 'recall_1': 0.7804878048780488, 'support_1': 123, 'f1_score': array([0.66666667, 0.71111111, 0.51162791, 0.64242424, 0.81203008, + 0.58415842]), 'precision': array([0.71428571, 0.65306122, 0.53398058, 0.96363636, 0.91525424, + 0.45736434]), 'recall': array([0.625 , 0.7804878 , 0.49107143, 0.48181818, 0.72972973, + 0.80821918]), 'support': array([ 8, 123, 112, 110, 74, 73]), 'avg_f1_score': 0.6546697363680531, 'avg_precision': 0.7062637438849254, 'avg_recall': 0.6527210538465968, 'accuracy': 0.644, 'epoch': 2.0, 'f_d_global_step': 84} +Found prev best metric for run type f_d_U: 1.000 +best metrics dict: {'f1_score_1': 1.0, 'precision_1': 1.0, 'recall_1': 1.0, 'support_1': 89, 'f1_score': array([1., 1.]), 'precision': array([1., 1.]), 'recall': array([1., 1.]), 'support': array([11, 89]), 'avg_f1_score': 1.0, 'avg_precision': 1.0, 'avg_recall': 1.0, 'accuracy': 1.0, 'epoch': 2.0, 'f_d_global_step': 248} +[ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" +] +Restoring checkpoint from path: ./checkpoint/hls-model-499 +Run mode is test_w +Running test_w +num_instances: 64 +batch_size: 1000 +total_batch: 0 +remaining: 64 +total_batch: 1 +old micro precision: 0.5925925925925926 +new micro precision: 0.6086956521739131 +old rule firings: 135 +new rule firings: 115 +old rule coverage: 64 +new rule coverage: 58 diff --git a/spear/Implyloss/main.py b/spear/Implyloss/main.py new file mode 100644 index 0000000..4599015 --- /dev/null +++ b/spear/Implyloss/main.py @@ -0,0 +1,202 @@ +# from .my_data_feeders import DataFeeder +# from .my_model import HighLevelSupervisionNetwork +# import .my_networks + +from .data_feeders import DataFeeder +from .model import HighLevelSupervisionNetwork +from .networks import * + +import numpy as np +import sys, os, shutil + +checkpoint_dir = './checkpoint' +# data_dir = "/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC" # Directory containing data pickles +data_dir = "/home/parth/Desktop/SEM6/RnD/spear/examples/SMS_SPAM/data_pipeline/" +inference_output_dir = './inference_output/' +log_dir = './logs' +metric_pickle_dir = './met_pickl/' +tensorboard_dir = './tensorboard' + + + +if not os.path.exists(inference_output_dir): + os.makedirs(inference_output_dir) + +if not os.path.exists(log_dir): + os.makedirs(log_dir) + +if not os.path.exists(metric_pickle_dir): + os.makedirs(metric_pickle_dir) + +if not os.path.exists(tensorboard_dir): + os.makedirs(tensorboard_dir) + +checkpoint_load_mode = 'mru' # Which kind of checkpoint to restore from. Possible options are mru: Most recently saved checkpoint. Use this to continue a run f_d, f_d_U: Use these to load the best checkpoint from these runs +# d_pickle = data_dir+"d_processed.p" +d_pickle = data_dir+"sms_pickle_L.pkl" +dropout_keep_prob = 0.8 +early_stopping_p = 20 # early stopping patience (in epochs) +f_d_adam_lr = 0.0003 # default = 0.01 +f_d_batch_size = 16 +f_d_class_sampling = [10,10] # Comma-separated list of number of times each d instance should be sampled depending on its class for training f on d. Size of list must equal number of classes. +f_d_epochs = 4 # default = 2 +f_d_metrics_pickle = metric_pickle_dir+"metrics_train_f_on_d.p" +f_d_primary_metric = 'accuracy' #'f1_score_1' # Metric for best checkpoint computation. The best metrics pickle will also be stored on this basis. Valid values are: accuracy: overall accuracy. f1_score_1: f1_score of class 1. avg_f1_score: average of all classes f1_score +f_d_U_adam_lr = 0.0003 # default = 0.01 +f_d_U_batch_size = 32 +f_d_U_epochs = 4 # default = 2 +f_d_U_metrics_pickle = metric_pickle_dir+"metrics_train_f_on_d_U.p" +f_infer_out_pickle = inference_output_dir+"infer_f.p" # output file name for any inference that was ran on f (classification) network +gamma = 0.1 # weighting factor for loss on U used in implication, pr_loss, snorkel, generalized cross entropy etc. +lamda = 0.1 +min_rule_coverage = 0 # Minimum coverage of a rule in U in order to include it in co-training. Rules which have coverage less than this are assigned a constant weight of 1.0. +mode = "learn2reweight" # "learn2reweight" / "implication" / "pr_loss" / "label_snorkel" / "gcross" / "gcross_snorkel" / "f_d" +test_mode = "" # "" / test_f" / "test_w" / "test_all" +num_classes = 2 # can be 0. Number of classes. If 0, this will be dynamically determined using max of labels in 'd'. +num_load_d = None # can be 0. Number of instances to load from d. If 0 load all. +num_load_U = None # can be 0. Number of instances to load from U. If 0 load all. +num_load_validation = None # can be 0. Number of instances to load from validation. If 0 load all. +q = "1" +rule_classes = None # Comma-separated list of the classes predicted by each rule if string is empty, rule classes are determined from data associated with rule firings. +shuffle_batches = True # Don't shuffle batches. Useful for debugging and stepping through batch by batch +test_w_batch_size = 1000 +# U_pickle = data_dir+"U_processed.p" +U_pickle = data_dir+"sms_pickle_U.pkl" +use_joint_f_w = False # whether to utilize w network during inference +# validation_pickle = data_dir+"validation_processed.p" +validation_pickle = data_dir+"sms_pickle_V.pkl" +w_infer_out_pickle = inference_output_dir+"infer_w.p" # output file name for any inference that was ran on w (rule) network +json_file = data_dir+"sms_json.json" + +output_dir = "./" + str(mode) + "_" + str(gamma) + "_" + str(lamda) + "_" + str(q) +if not os.path.exists(output_dir): + os.makedirs(output_dir) + +if test_mode=="": + if os.path.exists(checkpoint_dir): + shutil.rmtree(checkpoint_dir, ignore_errors=True) + os.makedirs(checkpoint_dir) + +# number of input dir - 1 (data_dir) +# number of output dir - 6 (checkpoint, inference_output, log_dir, metric_pickle, output, tensorboard) + + + + + +if __name__ == '__main__': + if(str(test_mode)==""): + output_text_file=log_dir + "/" + str(mode) + "_" + str(gamma) + "_" + str(lamda) + "_" + str(q)+".txt" + else: + output_text_file=log_dir + "/" + str(test_mode) + "_" + str(mode) + "_" + str(gamma) + "_" + str(lamda) + "_" + str(q)+".txt" + sys.stdout = open(output_text_file,"w") + if(test_mode!=""): + mode = test_mode + if mode not in ['learn2reweight', 'implication', 'f_d', 'pr_loss', 'gcross', 'label_snorkel', 'pure_snorkel', 'gcross_snorkel', 'test_f', 'test_w', 'test_all']: + raise ValueError('Invalid run mode ' + mode) + + data_feeder = DataFeeder(d_pickle, + U_pickle, + validation_pickle, + json_file, + shuffle_batches, + num_load_d, + num_load_U, + num_classes, + f_d_class_sampling, + min_rule_coverage, + rule_classes, + num_load_validation, + f_d_batch_size, + f_d_U_batch_size, + test_w_batch_size, + out_dir=output_dir) + + num_features, num_classes, num_rules, num_rules_to_train = data_feeder.get_features_classes_rules() + print("Number of features: ", num_features) + print("Number of classes: ",num_classes) + print("Print num of rules to train: ", num_rules_to_train) + print("Print num of rules: ", num_rules) + print("\n\n") + rule_classes = data_feeder.rule_classes + w_network = networks.w_network_fully_connected #rule network - CHANGE config in w_network_fully_connected of networks - DONE + f_network = networks.f_network_fully_connected #classification network - CHANGE config in f_network_fully_connected of networks - DONE + hls = HighLevelSupervisionNetwork( + num_features, + num_classes, + num_rules, + num_rules_to_train, + rule_classes, + w_network, + f_network, + f_d_epochs, + f_d_U_epochs, + f_d_adam_lr, + f_d_U_adam_lr, + dropout_keep_prob, + f_d_metrics_pickle, + f_d_U_metrics_pickle, + early_stopping_p, + f_d_primary_metric, + mode, + data_dir, + tensorboard_dir, + checkpoint_dir, + checkpoint_load_mode, + gamma, + lamda, + raw_d_x=data_feeder.raw_d.x, #instances from the "d" set + raw_d_L=data_feeder.raw_d.L) #labels from the "d" set + + # Output 3 digits after decimal point in numpy arrays + float_formatter = lambda x: "%.3f" % x + np.set_printoptions(formatter={'float_kind':float_formatter}) + + print('Run mode is ' + mode) + if mode == 'f_d': + print('training f on d') + hls.train.train_f_on_d(data_feeder, f_d_epochs) + elif mode == 'implication': + print("begin Implication loss training") + hls.train.train_f_on_d_U(data_feeder, f_d_U_epochs, loss_type='implication') + print(" Implication loss training end") + elif mode == 'pr_loss': + print("begin pr_loss training") + hls.train.train_f_on_d_U(data_feeder, f_d_U_epochs, loss_type='pr_loss') + print("pr_loss training end") + elif mode == 'gcross': # majority_label + print("gcross") + hls.train.train_f_on_d_U(data_feeder, f_d_U_epochs, loss_type='gcross') + elif mode == 'gcross_snorkel': + print("gcross_snorkel") + hls.train.train_f_on_d_U(data_feeder, f_d_U_epochs, loss_type='gcross_snorkel') + elif mode == 'learn2reweight': + print('learn2reweight') + hls.train.train_f_on_d_U(data_feeder, f_d_U_epochs, loss_type='learn2reweight') + elif mode == 'pure_snorkel': + print("pure_snorkel") + hls.train.train_f_on_d_U(data_feeder, f_d_U_epochs, loss_type='pure_snorkel') + elif mode == 'label_snorkel': + print("label_snorkel") + hls.train.train_f_on_d_U(data_feeder, f_d_U_epochs, loss_type='label_snorkel') + elif mode == 'test_f': + print('Running test_f') + hls.test.test_f(data_feeder, log_output=True, + save_filename=f_infer_out_pickle, + use_joint_f_w=use_joint_f_w) + elif mode == 'test_w': + print('Running test_w') + hls.test.test_w(data_feeder, log_output=True, save_filename=w_infer_out_pickle+"_test") + elif mode == 'test_all': + print('Running all tests') + print('\ninference on f network ...\n') + hls.test.test_f(data_feeder, log_output=True, + save_filename=f_infer_out_pickle, + use_joint_f_w=use_joint_f_w) + print('\ninference on w network...') + print('we only test on instances covered by atleast one rule\n') + hls.test.test_w(data_feeder, log_output=True, save_filename=w_infer_out_pickle+"_test") + else: + assert not "Invalid mode string: %s" % mode + + sys.stdout.close() \ No newline at end of file diff --git a/spear/Implyloss/met_pickl/metrics_train_f_on_d.p b/spear/Implyloss/met_pickl/metrics_train_f_on_d.p new file mode 100644 index 0000000..e10d8f1 Binary files /dev/null and b/spear/Implyloss/met_pickl/metrics_train_f_on_d.p differ diff --git a/spear/Implyloss/met_pickl/metrics_train_f_on_d_U.p b/spear/Implyloss/met_pickl/metrics_train_f_on_d_U.p new file mode 100644 index 0000000..f1c3ad5 Binary files /dev/null and b/spear/Implyloss/met_pickl/metrics_train_f_on_d_U.p differ diff --git a/spear/Implyloss/my_model.py b/spear/Implyloss/model.py old mode 100755 new mode 100644 similarity index 85% rename from spear/Implyloss/my_model.py rename to spear/Implyloss/model.py index 48e6859..73f32b0 --- a/spear/Implyloss/my_model.py +++ b/spear/Implyloss/model.py @@ -6,15 +6,27 @@ import numpy as np import sys,os -from my_checkpoints import MRUCheckpoint, CheckpointsFactory -from my_data_types import * -import my_gen_cross_entropy_utils as gcross_utils -import my_pr_utils -from my_test import HLSTest -from my_train import HLSTrain -from my_utils import print_tf_global_variables, updated_theta_copy - - +# from .my_checkpoints import MRUCheckpoint, CheckpointsFactory +# from .my_data_types import * +# # import my_gen_cross_entropy_utils as gcross_utils +# from .my_gen_cross_entropy_utils import * +# from .my_gen_cross_entropy_utils import * +# # import my_pr_utils +# from .my_pr_utils import * +# from .my_test import HLSTest +# from .my_train import HLSTrain +# from .my_utils import print_tf_global_variables, updated_theta_copy + +from .checkpoints import MRUCheckpoint, CheckpointsFactory +from .data_types import * +# import gen_cross_entropy_utils as gcross_utils +from .gen_cross_entropy_utils import * +from .gen_cross_entropy_utils import * +# import pr_utils +from .pr_utils import * +from .test import HLSTest +from .train import HLSTrain +from .utils import print_tf_global_variables, updated_theta_copy @@ -29,7 +41,10 @@ class HighLevelSupervisionNetwork: ''' def __init__(self, num_features, num_classes, num_rules, num_rules_to_train, rule_classes, - w_network, f_network, raw_d_x=None, raw_d_L=None, config=None): + w_network, f_network, + f_d_epochs, f_d_U_epochs, f_d_adam_lr, f_d_U_adam_lr, dropout_keep_prob, + f_d_metrics_pickle, f_d_U_metrics_pickle, early_stopping_p, f_d_primary_metric, mode, data_dir, + tensorboard_dir, checkpoint_dir, checkpoint_load_mode, gamma, lamda, raw_d_x=None, raw_d_L=None): ''' Func Desc: initializes the class member variables with the provided arguments @@ -45,19 +60,18 @@ def __init__(self, num_features, num_classes, num_rules, f_network raw_d_x (default = None) raw_d_L (default = None) - config (default = None) Output: ''' # Modules for testing/training - # self.train = HLSTrain(self, config) - # self.test = HLSTest(self, config) + self.mode = mode + self.gamma = gamma + self.lamda = lamda self.raw_d_x = raw_d_x self.raw_d_L = raw_d_L - self.config = config self.rule_classes_list = rule_classes self.rule_classes = tf.convert_to_tensor(rule_classes) self.num_features = num_features @@ -69,7 +83,7 @@ def __init__(self, num_features, num_classes, num_rules, self.w_network = functools.partial(w_network, self.w_var_scope, self.num_rules) self.f_network = functools.partial(f_network, self.f_var_scope) - self.parse_params(config) + self.parse_params(f_d_epochs, f_d_U_epochs, f_d_adam_lr, f_d_U_adam_lr) # Save global step for each different kind of run self.global_steps = {} @@ -79,11 +93,18 @@ def __init__(self, num_features, num_classes, num_rules, # Create the compute graphs # dropout rate used in f and w networks self.dropout_keep_prob = tf.placeholder(tf.float32,name="keep_prob") - self.dropout_train_dict = {self.dropout_keep_prob: config.dropout_keep_prob} + self.dropout_train_dict = {self.dropout_keep_prob: dropout_keep_prob} self.dropout_test_dict = {self.dropout_keep_prob: 1.0} - self.train = HLSTrain(self, config) - self.test = HLSTest(self, config) + self.train = HLSTrain(self, f_d_metrics_pickle, + f_d_U_metrics_pickle, + f_d_adam_lr, + f_d_U_adam_lr, + early_stopping_p, + f_d_primary_metric, + mode, + data_dir) + self.test = HLSTest(self) self.make_f_d_train_ops() self.make_f_d_U_train_ops() @@ -97,30 +118,29 @@ def __init__(self, num_features, num_classes, num_rules, sess_config.gpu_options.allow_growth = True self.sess = tf.Session(config=sess_config) - self.writer = tf.summary.FileWriter(config.tensorboard_dir, self.sess.graph) + self.writer = tf.summary.FileWriter(tensorboard_dir, self.sess.graph) # Now that all variables and the session is created, create a # checkpoint saver. We use a single saver for all variables - self.mru_saver = MRUCheckpoint(config.checkpoint_dir, self.sess, tf.global_variables()) + self.mru_saver = MRUCheckpoint(checkpoint_dir, self.sess, tf.global_variables()) self.best_savers = CheckpointsFactory(self.sess, self.global_steps) feed_dict = {} self.sess.run(self.init, feed_dict=feed_dict) - if config.checkpoint_load_mode == 'mru': + if checkpoint_load_mode == 'mru': self.restored = self.mru_saver.restore_if_checkpoint_exists() else: - saver = self.best_savers.get_best_saver(config.checkpoint_load_mode) + saver = self.best_savers.get_best_saver(checkpoint_load_mode) self.restored = saver.restore_best_checkpoint_if_exists() if not self.restored: raise ValueError('Asked to restore best checkpoint of %s but not previously checkpointed' % - config.checkpoint_load_mode) + checkpoint_load_mode) - def parse_params(self, config): + def parse_params(self, f_d_epochs, f_d_U_epochs, f_d_adam_lr, f_d_U_adam_lr): ''' Func Desc: - Parses the parameters present in the config file + Parses the given parameters Input: - self - config + self Sets: f_d_epochs @@ -128,10 +148,10 @@ def parse_params(self, config): initial_f_d_adam_lr initial_f_d_U_adam_lr ''' - self.f_d_epochs = config.f_d_epochs - self.f_d_U_epochs = config.f_d_U_epochs - self.initial_f_d_adam_lr = config.f_d_adam_lr - self.initial_f_d_U_adam_lr = config.f_d_U_adam_lr + self.f_d_epochs = f_d_epochs + self.f_d_U_epochs = f_d_U_epochs + self.initial_f_d_adam_lr = f_d_adam_lr + self.initial_f_d_U_adam_lr = f_d_U_adam_lr # Create the train op for training with d only def make_f_d_train_ops(self): @@ -310,7 +330,7 @@ def make_f_d_U_train_ops(self): training_var_list = tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES) - if 'implication' == self.config.mode: + if 'implication' == self.mode: implication_loss = self.implication_loss(weights=self.f_d_U_weights, f_probs=self.f_d_U_probs, m=self.f_d_U_m, @@ -320,61 +340,66 @@ def make_f_d_U_train_ops(self): self.f_d_U_implication_loss = LL_phi \ + LL_theta \ - + self.config.gamma*implication_loss + + self.gamma*implication_loss with tf.control_dependencies([inc_f_d_U_global_step, ]): self.f_d_U_implication_op = f_cross_training_optimizer.minimize( self.f_d_U_implication_loss, var_list=training_var_list) - if 'pr_loss' == self.config.mode: - pr_loss = pr_utils.pr_loss(m=self.f_d_U_m, - f_logits=f_logits, - w_logits=w_logits, - f_probs=self.f_d_U_probs, - weights=self.f_d_U_weights, - rule_classes=self.rule_classes, - num_classes=self.num_classes, - C=0.1, - d=d) - self.pr_loss = LL_theta + LL_phi + self.config.gamma*pr_loss + if 'pr_loss' == self.mode: +# pr_loss = my_pr_utils.pr_loss(m=self.f_d_U_m, + pr_loss_val = pr_loss(m=self.f_d_U_m, + f_logits=f_logits, + w_logits=w_logits, + f_probs=self.f_d_U_probs, + weights=self.f_d_U_weights, + rule_classes=self.rule_classes, + num_classes=self.num_classes, + C=0.1, + d=d) + self.pr_loss = LL_theta + LL_phi + self.gamma*pr_loss_val with tf.control_dependencies([inc_f_d_U_global_step, ]): self.pr_train_op = f_cross_training_optimizer.minimize( self.pr_loss, var_list=training_var_list) - if 'gcross' == self.config.mode: + if 'gcross' == self.mode: self.f_d_U_snork_L = tf.placeholder( tf.float32, shape=[None, self.num_classes], name='f_d_U_snork_L') loss_on_d = LL_theta - loss_on_U = gcross_utils.generalized_cross_entropy(f_logits,self.f_d_U_snork_L, - self.config.lamda) - self.gcross_loss = loss_on_d + self.config.gamma*loss_on_U +# loss_on_U = gcross_utils.generalized_cross_entropy(f_logits,self.f_d_U_snork_L, +# self.lamda) + loss_on_U = generalized_cross_entropy(f_logits,self.f_d_U_snork_L, + self.lamda) + self.gcross_loss = loss_on_d + self.gamma*loss_on_U with tf.control_dependencies([inc_f_d_U_global_step, ]): self.gcross_train_op = f_cross_training_optimizer.minimize( self.gcross_loss, var_list=training_var_list) - if 'gcross_snorkel' == self.config.mode: + if 'gcross_snorkel' == self.mode: self.f_d_U_snork_L = tf.placeholder( tf.float32, shape=[None, self.num_classes], name='f_d_U_snork_L') loss_on_d = LL_theta - loss_on_U = gcross_utils.generalized_cross_entropy(f_logits,self.f_d_U_snork_L, - self.config.lamda) - self.snork_gcross_loss = loss_on_d + self.config.gamma*loss_on_U +# loss_on_U = gcross_utils.generalized_cross_entropy(f_logits,self.f_d_U_snork_L, +# self.lamda) + loss_on_U = generalized_cross_entropy(f_logits,self.f_d_U_snork_L, + self.lamda) + self.snork_gcross_loss = loss_on_d + self.gamma*loss_on_U #self.snork_gcross_loss = loss_on_d + loss_on_U with tf.control_dependencies([inc_f_d_U_global_step, ]): self.snork_gcross_train_op = f_cross_training_optimizer.minimize( self.snork_gcross_loss, var_list=training_var_list) - if 'label_snorkel' == self.config.mode or 'pure_snorkel' == self.config.mode: + if 'label_snorkel' == self.mode or 'pure_snorkel' == self.mode: self.f_d_U_snork_L = tf.placeholder( tf.float32, shape=[None, self.num_classes], @@ -383,21 +408,21 @@ def make_f_d_U_train_ops(self): self.pure_snorkel_loss = tf.nn.softmax_cross_entropy_with_logits( labels=self.f_d_U_snork_L,logits=f_logits) self.pure_snorkel_loss = tf.reduce_mean(self.pure_snorkel_loss) - self.label_snorkel_loss = loss_on_d + self.config.gamma*self.pure_snorkel_loss + self.label_snorkel_loss = loss_on_d + self.gamma*self.pure_snorkel_loss - if 'label_snorkel' == self.config.mode: + if 'label_snorkel' == self.mode: with tf.control_dependencies([inc_f_d_U_global_step, ]): self.label_snorkel_train_op = f_cross_training_optimizer.minimize( self.label_snorkel_loss, var_list=training_var_list) - if 'pure_snorkel' == self.config.mode: + if 'pure_snorkel' == self.mode: with tf.control_dependencies([inc_f_d_U_global_step, ]): self.pure_snorkel_train_op = f_cross_training_optimizer.minimize( self.pure_snorkel_loss, var_list=training_var_list) - if 'learn2reweight' == self.config.mode: + if 'learn2reweight' == self.mode: len_raw_d_x = len(self.raw_d_x) raw_d_bs = min(len_raw_d_x,32) raw_d_x = tf.get_variable(name="raw_d_x", initializer=self.raw_d_x, trainable=False) @@ -439,7 +464,7 @@ def make_f_d_U_train_ops(self): theta_hat = updated_theta_copy( grads=grads_thetas, variables=thetas, - lr=self.config.lamda, + lr=self.lamda, mode=-1) # 5. compute unweighted loss on raw_d with updated theta (theta_hat) @@ -502,7 +527,8 @@ def compute_LL_phi(self, w_logits, weights, l, m, L, d, r): logits=w_logits) loss = m*loss loss = (tf.to_float(tf.not_equal(l,L)) * loss) + (tf.to_float(tf.equal(l,L)) * r * loss) - gcross_loss = gcross_utils.generalized_cross_entropy_bernoulli(weights,0.2) +# gcross_loss = gcross_utils.generalized_cross_entropy_bernoulli(weights,0.2) + gcross_loss = generalized_cross_entropy_bernoulli(weights,0.2) gcross_loss = gcross_loss * m * tf.to_float(tf.equal(l,L)) * (1-r) loss = loss + gcross_loss loss = tf.reduce_sum(loss,axis=-1) diff --git a/spear/Implyloss/my_TREC.sh b/spear/Implyloss/my_TREC.sh deleted file mode 100755 index a3f6c0b..0000000 --- a/spear/Implyloss/my_TREC.sh +++ /dev/null @@ -1,52 +0,0 @@ -#!/usr/bin/env bash - -OUTPUT_DIR=$1 -MODE=$2 -EPOCHS=$3 -LR=$4 -CKPT_LOAD_MODE=$5 -DROPOUT_KEEP_PROB=$6 -D_PICKLE_NAME=$7 -VALID_PICKLE_NAME=$8 -U_PICKLE_NAME=$9 -GAMMA=${10} -LAMDA=${11} -USE_JOINT_f_w=${12} #this flag should be True if you need to use output of rule network while doing inference (See eqn6 in the paper) - -# DATA_DIR=../../data/TREC -DATA_DIR=/home/parth/Desktop/SEM6/RnD/Learning-From-Rules/data/TREC -echo "Hello 2 1" - - -W_LAYERS="512,512" -F_LAYERS="512,512" - -F_D_CLASS_SAMPLING=10,10,10,10,10,10 # while mixing d and U sets, oversample data from d 10 times - # this is because size of d is just 68 - # while size of U is ~ 4.6k - # this is done so that in any batch there are enough instances from "d" - # along with instances from U - -python3 -u my_main.py \ - --output_dir="$DATA_DIR"/outputs/"$OUTPUT_DIR" \ - --run_mode=$MODE \ - --checkpoint_load_mode=$CKPT_LOAD_MODE \ - --data_dir=$DATA_DIR \ - --f_d_primary_metric=accuracy \ - --f_d_epochs=$EPOCHS \ - --f_d_U_epochs=$EPOCHS \ - --f_d_batch_size=16 \ - --f_d_U_batch_size=32 \ - --f_d_adam_lr=$LR \ - --f_d_U_adam_lr=$LR \ - --validation_pickle_name=$VALID_PICKLE_NAME \ - --d_pickle_name=$D_PICKLE_NAME \ - --dropout_keep_prob=$DROPOUT_KEEP_PROB \ - --w_layers_str=$W_LAYERS \ - --f_layers_str=$F_LAYERS \ - --f_d_class_sampling_str=$F_D_CLASS_SAMPLING \ - --U_pickle_name=$U_PICKLE_NAME \ - --gamma=$GAMMA \ - --lamda=$LAMDA \ - --early_stopping_p=20 \ - --use_joint_f_w=$USE_JOINT_f_w diff --git a/spear/Implyloss/my_checkmate.py b/spear/Implyloss/my_checkmate.py deleted file mode 100755 index 13d0a18..0000000 --- a/spear/Implyloss/my_checkmate.py +++ /dev/null @@ -1,216 +0,0 @@ -import os -import glob -import json -import numpy as np -import tensorflow as tf - - -class BestCheckpointSaver(object): - '''Maintains a directory containing only the best n checkpoints - - Inside the directory is a best_checkpoints JSON file containing a dictionary - mapping of the best checkpoint filepaths to the values by which the checkpoints - are compared. Only the best n checkpoints are contained in the directory and JSON file. - - This is a light-weight wrapper class only intended to work in simple, - non-distributed settings. It is not intended to work with the tf.Estimator - framework. - ''' - def __init__(self, save_dir, num_to_keep=1, maximize=True, saver=None): - ''' - Func Desc: - Creates a `BestCheckpointSaver` - `BestCheckpointSaver` acts as a wrapper class around a `tf.train.Saver` - - Input: - save_dir: The directory in which the checkpoint files will be saved - num_to_keep: The number of best checkpoint files to retain - maximize: Define 'best' values to be the highest values. For example, - set this to True if selecting for the checkpoints with the highest - given accuracy. Or set to False to select for checkpoints with the - lowest given error rate. - saver: A `tf.train.Saver` to use for saving checkpoints. A default - `tf.train.Saver` will be created if none is provided. - - Output: - - ''' - self._num_to_keep = num_to_keep - self._save_dir = save_dir - self._save_path = os.path.join(save_dir, 'best.ckpt') - self._maximize = maximize - self._saver = saver if saver else tf.train.Saver( - max_to_keep=None, - save_relative_paths=True - ) - - if not os.path.exists(save_dir): - os.makedirs(save_dir) - self.best_checkpoints_file = os.path.join(save_dir, 'best_checkpoints') - - def handle(self, value, sess, global_step_tensor): - ''' - Func Desc: - Updates the set of best checkpoints based on the given result. - - Input: - value: The value by which to rank the checkpoint. - sess: A tf.Session to use to save the checkpoint - global_step_tensor: A `tf.Tensor` represent the global step - - Output: - True or False - ''' - global_step = sess.run(global_step_tensor) - current_ckpt = 'best.ckpt-{}'.format(global_step) - value = float(value) - if not os.path.exists(self.best_checkpoints_file): - self._save_best_checkpoints_file({current_ckpt: value}) - self._saver.save(sess, self._save_path, global_step_tensor) - return True - - best_checkpoints = self._load_best_checkpoints_file() - - if len(best_checkpoints) < self._num_to_keep: - best_checkpoints[current_ckpt] = value - self._save_best_checkpoints_file(best_checkpoints) - self._saver.save(sess, self._save_path, global_step_tensor) - return True - - if self._maximize: - should_save = not all(current_best >= value - for current_best in best_checkpoints.values()) - else: - should_save = not all(current_best <= value - for current_best in best_checkpoints.values()) - if should_save: - best_checkpoint_list = self._sort(best_checkpoints) - - worst_checkpoint = os.path.join(self._save_dir, - best_checkpoint_list.pop(-1)[0]) - self._remove_outdated_checkpoint_files(worst_checkpoint) - self._update_internal_saver_state(best_checkpoint_list) - - best_checkpoints = dict(best_checkpoint_list) - best_checkpoints[current_ckpt] = value - self._save_best_checkpoints_file(best_checkpoints) - - self._saver.save(sess, self._save_path, global_step_tensor) - return True - return False - - def _save_best_checkpoints_file(self, updated_best_checkpoints): - ''' - Func Desc: - Save the best checkpoints - - Input: - self - updated_best_checkpoints - - Output: - - ''' - with open(self.best_checkpoints_file, 'w') as f: - json.dump(updated_best_checkpoints, f, indent=3) - - def _remove_outdated_checkpoint_files(self, worst_checkpoint): - ''' - Func Desc: - To remove the outdated checkpoint files - - Input: - self - worst_checkpoint - - Output: - - ''' - os.remove(os.path.join(self._save_dir, 'checkpoint')) - for ckpt_file in glob.glob(worst_checkpoint + '.*'): - os.remove(ckpt_file) - - def _update_internal_saver_state(self, best_checkpoint_list): - ''' - Func Desc: - TO update the internal saver state with best_checkpoint_list - - Input: - self - best_checkpoint_list - - Output: - - ''' - best_checkpoint_files = [ - (ckpt[0], np.inf) # TODO: Try to use actual file timestamp - for ckpt in best_checkpoint_list - ] - self._saver.set_last_checkpoints_with_time(best_checkpoint_files) - - def _load_best_checkpoints_file(self): - ''' - Func Desc: - load rhe best checkpoints file - - Input: - self - - Output: - the best checkpoints - ''' - with open(self.best_checkpoints_file, 'r') as f: - best_checkpoints = json.load(f) - return best_checkpoints - - def _sort(self, best_checkpoints): - ''' - Func Desc: - Sort the best_checkpoints list in the decreasing order of their goodness - - Input: - self - best_checkpoints - list of checkpoints - - Output: - - ''' - best_checkpoints = [ - (ckpt, best_checkpoints[ckpt]) - for ckpt in sorted(best_checkpoints, - key=best_checkpoints.get, - reverse=self._maximize) - ] - return best_checkpoints - - -def get_best_checkpoint(best_checkpoint_dir, select_maximum_value=True): - ''' - Func Desc: - Reads the best_checkpoints file in the best_checkpoint_dir directory. - Returns the filepath in the best_checkpoints file associated with - the highest value if select_maximum_value is True, or the filepath - associated with the lowest value if select_maximum_value is False. - - Input: - best_checkpoint_dir: Directory containing best_checkpoints JSON file - select_maximum_value: If True, select the filepath associated - with the highest value. Otherwise, select the filepath associated - with the lowest value. - - Output: - The full path to the best checkpoint file - - ''' - best_checkpoints_file = os.path.join(best_checkpoint_dir, 'best_checkpoints') - if not os.path.exists(best_checkpoints_file): - raise ValueError('Checkpoint file does not exist') - - with open(best_checkpoints_file, 'r') as f: - best_checkpoints = json.load(f) - best_checkpoints = [ - ckpt for ckpt in sorted(best_checkpoints, - key=best_checkpoints.get, - reverse=select_maximum_value) - ] - return os.path.join(best_checkpoint_dir, best_checkpoints[0]) diff --git a/spear/Implyloss/my_config.py b/spear/Implyloss/my_config.py deleted file mode 100755 index 3e4929d..0000000 --- a/spear/Implyloss/my_config.py +++ /dev/null @@ -1,177 +0,0 @@ -#configurations - -import os -import argparse -import sys -from shutil import copyfile - -from my_utils import get_list_or_None, None_if_zero, get_list, boolean - -def parse_args(): - """ - Func Desc: - Parse input arguments - Input: - - Output: - """ - parser = argparse.ArgumentParser(allow_abbrev=False) - - parser.add_argument("--run_mode",default="implication", - type=str,help="train/test mode", - metavar='') - ####################### Output Directory ######################### - parser.add_argument("--output_dir",default="./", - type=str,help="Output checkpoints, final metrics, summaries in this dir", - metavar='') - - ######################## Data locations for datafeeder ######################## - parser.add_argument('--data_dir', - default='./', - type=str, help='Directory containing data pickles', metavar='') - parser.add_argument('--d_pickle_name', default='d_processed.p', type=str, metavar='') - parser.add_argument('--U_pickle_name', default='U_processed.p', type=str, metavar='') - parser.add_argument('--validation_pickle_name', default='test_processed.p', type=str, metavar='') - parser.add_argument('--w_infer_out_pickle_name', default='infer_w.p', type=str, - help='output file name for any inference that was ran on w (rule) network', metavar='') - parser.add_argument('--f_infer_out_pickle_name', default='infer_f.p', type=str, - help='output file name for any inference that was ran on f (classification) network', metavar='') - - ######################### Checkpointing ####################################### - parser.add_argument('--num_checkpoints', default=1, type=int, - help='Number of checkpoints to keep around', metavar='') - parser.add_argument('--checkpoint_load_mode', default='mru', type=str, - help='Which kind of checkpoint to restore from. Possible options are ' - 'mru: Most recently saved checkpoint. Use this to continue a run' - 'f_d, f_d_U: Use these to load the best checkpoint from these runs', metavar='') - - ######################## Datafeeder configurable params ####################### - - parser.add_argument('--num_classes', default=0, type=int, help= - "Number of classes. If 0, this will be dynamically determined using max of" - " labels in 'd'.", metavar='') - # Number of items to load for each data type - parser.add_argument('--num_load_d', default=0, type=int, help= - 'Number of instances to load from d. If 0 load all', metavar='') - parser.add_argument('--num_load_U', default=0, type=int, help= - 'Number of instances to load from U. If 0 load all', metavar='') - parser.add_argument('--num_load_validation', default=0, type=int, help= - 'Number of instances to load from validation. If 0 load all', metavar='') - parser.add_argument('--shuffle_batches', default=True, type=boolean, help= - "Don't shuffle batches. Useful for debugging and stepping through batch by batch", metavar='') - parser.add_argument('--min_rule_coverage', default=0, type=int, - help="Minimum coverage of a rule in U in order to include it in" - " co-training. Rules which have coverage less than this are assigned" - " a constant weight of 1.0", metavar='') - parser.add_argument('--f_d_class_sampling_str', default='', type=str, help= - "Comma-separated list of number of times each d instance should be " - "sampled depending on its class for training f on d. Size of list must equal number of " - "classes", metavar='') - parser.add_argument('--rule_classes_str', default='', type=str, help= - "Comma-separated list of the classes predicted by each rule " - "if string is empty, rule classes are determined from data associated with rule firings" - , metavar='') - - ####################### Learning rates ################################ - parser.add_argument('--f_d_adam_lr', default=0.001, type=float, metavar='') - parser.add_argument('--f_d_U_adam_lr', default=0.01, type=float, metavar='') - - ####################### Batch sizes ############################# - parser.add_argument('--f_d_batch_size', default=100, type=int, metavar='') - parser.add_argument('--f_d_U_batch_size', default=100, type=int, metavar='') - parser.add_argument('--test_w_batch_size', default=1000, type=int, metavar='') - - ###################### epochs ###################### - parser.add_argument('--f_d_epochs', default=2, type=int, metavar='') - parser.add_argument('--f_d_U_epochs', default=2, type=int, metavar='') - - ###################### Training Params ########################## - parser.add_argument('--f_d_metrics_pickle_name', default='metrics_train_f_on_d.p', type=str, metavar='') - parser.add_argument('--f_d_U_metrics_pickle_name', default='metrics_train_f_on_d_U.p', type=str, metavar='') - parser.add_argument('--f_d_primary_metric', default='f1_score_1', type=str, help='Metric for best ' - 'checkpoint computation. The best metrics pickle will also be stored on this basis.' - ' Valid values are: accuracy: overall accuracy. f1_score_1: f1_score of class 1.' - ' avg_f1_score: average of all classes f1_score.', - metavar='') - - ################ network Parameters ######################### - parser.add_argument('--f_layers_str',default='',type=str, - help='comma-separated list of number of neurons in each layer of' - ' the fully-connected f network', metavar='') - parser.add_argument('--w_layers_str', default='', type=str, - help='comma-separated list of number of neurons in each layer of' - ' the fully-connected w network', metavar='') - parser.add_argument('--dropout_keep_prob', default=0.8, type=float, help='', metavar='') - parser.add_argument('--network_dropout', default=True, type=boolean, - help='Use dropout in f and w networks', metavar='') - - ############################## #################################### - - parser.add_argument('--gamma',default=0.1,type=float,help='weighting factor for loss on U' - 'used in implication, pr_loss,' - 'snorkel, generalized cross entropy etc.', - metavar='') - parser.add_argument('--lamda',default=0.1,type=float,help='q for generalized cross entropy' - 'or lr for learning to reweight', - metavar='') - - parser.add_argument('--early_stopping_p',default=20,type=int,help='early stopping patience (in epochs)') - - parser.add_argument('--use_joint_f_w', default=False, type=boolean, help='whether to utilize w network during inference') - - - # Print all args - print("") - args = parser.parse_args() - for arg in sorted(vars(args), key=str.lower): - print("{} = {}".format(arg, getattr(args, arg))) - print("") - - return args - -print("Started Reading Flags") -flags = parse_args() - -flags.mode = flags.run_mode -if flags.mode is None: - raise ValueError('Please provide a run mode') - -flags.checkpoint_dir = os.path.join(flags.output_dir, 'checkpoints') -if not os.path.exists(flags.checkpoint_dir): - os.makedirs(flags.checkpoint_dir) -flags.tensorboard_dir = os.path.join(flags.output_dir, 'tensorboard') -if not os.path.exists(flags.tensorboard_dir): - os.makedirs(flags.tensorboard_dir) - -flags.f_layers = get_list(flags.f_layers_str) -flags.w_layers = get_list(flags.w_layers_str) - -flags.f_d_class_sampling = get_list_or_None(flags.f_d_class_sampling_str) -flags.rule_classes = get_list_or_None(flags.rule_classes_str) - -# Input pickles -print("Hi1") -flags.d_pickle = os.path.join(flags.output_dir, flags.d_pickle_name) -flags.U_pickle = os.path.join(flags.data_dir, flags.U_pickle_name) -flags.validation_pickle = os.path.join(flags.data_dir, flags.validation_pickle_name) - -# Output pickles -flags.w_infer_out_pickle = os.path.join(flags.output_dir, flags.w_infer_out_pickle_name) -flags.f_infer_out_pickle = os.path.join(flags.output_dir, flags.f_infer_out_pickle_name) -flags.f_d_metrics_pickle = os.path.join(flags.output_dir, flags.f_d_metrics_pickle_name) -flags.f_d_U_metrics_pickle = os.path.join(flags.output_dir, flags.f_d_U_metrics_pickle_name) - -flags.num_classes = None_if_zero(flags.num_classes) -flags.num_load_d = None_if_zero(flags.num_load_d) -flags.num_load_U = None_if_zero(flags.num_load_U) -flags.num_load_validation = None_if_zero(flags.num_load_validation) -print("Ended Reading Flags") - -# Move d pickle to output directory. -d_pickle_orig = os.path.join(flags.data_dir, flags.d_pickle_name) -if os.path.exists(d_pickle_orig): - copyfile(d_pickle_orig, flags.d_pickle) -else: - print(flags.d_pickle) - print("Hi") - assert os.path.exists(flags.d_pickle) diff --git a/spear/Implyloss/my_main.py b/spear/Implyloss/my_main.py deleted file mode 100755 index 2d9db12..0000000 --- a/spear/Implyloss/my_main.py +++ /dev/null @@ -1,105 +0,0 @@ -# from my_utils import get_data -# from my_core import Implyloss - -# num_classes = 6 -# if __name__ == '__main__': -# path = "d_processed.p" # need to change this -# data = get_data(path) # path will be the path of pickle file -# Il = Implyloss(data,num_classes) -# Il.optimize() - -from my_data_feeders import DataFeeder - -from my_model import HighLevelSupervisionNetwork -from my_config import flags as config -import my_networks - -import numpy as np - - -if __name__ == '__main__': - if config.mode not in ['f_d', 'implication', 'pr_loss', - 'gcross', 'learn2reweight', - 'label_snorkel', 'pure_snorkel', 'gcross_snorkel', - 'test_f', 'test_w', 'test_all']: - raise ValueError('Invalid run mode ' + config.mode) - - # what is config exactly here ? - data_feeder = DataFeeder(config.d_pickle, - config.U_pickle, - config.validation_pickle, - out_dir=config.output_dir, - config=config) - - num_features, num_classes, num_rules, num_rules_to_train = data_feeder.get_features_classes_rules() - print("Number of features: ", num_features) - print("Number of classes: ",num_classes) - print("Print num of rules to train: ", num_rules_to_train) - print("Print num of rules: ", num_rules) - print("\n\n") - rule_classes = data_feeder.rule_classes - w_network = my_networks.w_network_fully_connected #rule network - f_network = my_networks.f_network_fully_connected #classification network - hls = HighLevelSupervisionNetwork( - num_features, - num_classes, - num_rules, - num_rules_to_train, - rule_classes, - w_network, - f_network, - raw_d_x=data_feeder.raw_d.x, #instances from the "d" set - raw_d_L=data_feeder.raw_d.L, #labels from the "d" set - config=config) - - # Output 3 digits after decimal point in numpy arrays - float_formatter = lambda x: "%.3f" % x - np.set_printoptions(formatter={'float_kind':float_formatter}) - - mode = config.mode - print('Run mode is ' + mode) - if mode == 'f_d': - print('training f on d') - hls.train.train_f_on_d(data_feeder, config.f_d_epochs) - elif mode == 'implication': - print("begin Implication loss training") - hls.train.train_f_on_d_U(data_feeder, config.f_d_U_epochs, loss_type='implication') - print(" Implication loss training end") - elif mode == 'pr_loss': - print("begin pr_loss training") - hls.train.train_f_on_d_U(data_feeder, config.f_d_U_epochs, loss_type='pr_loss') - print("pr_loss training end") - elif mode == 'gcross': - print("gcross") - hls.train.train_f_on_d_U(data_feeder, config.f_d_U_epochs, loss_type='gcross') - elif mode == 'gcross_snorkel': - print("gcross_snorkel") - hls.train.train_f_on_d_U(data_feeder, config.f_d_U_epochs, loss_type='gcross_snorkel') - elif mode == 'learn2reweight': - print('learn2reweight') - hls.train.train_f_on_d_U(data_feeder, config.f_d_U_epochs, loss_type='learn2reweight') - elif mode == 'pure_snorkel': - print("pure_snorkel") - hls.train.train_f_on_d_U(data_feeder, config.f_d_U_epochs, loss_type='pure_snorkel') - elif mode == 'label_snorkel': - print("label_snorkel") - hls.train.train_f_on_d_U(data_feeder, config.f_d_U_epochs, loss_type='label_snorkel') - elif mode == 'test_f': - print('Running test_f') - hls.test.test_f(data_feeder, log_output=True, - save_filename=config.f_infer_out_pickle, - use_joint_f_w=config.use_joint_f_w) - elif mode == 'test_w': - print('Running test_w') - hls.test.test_w(data_feeder, log_output=True, save_filename=config.w_infer_out_pickle+"_test") - elif mode == 'test_all': - print('Running all tests') - print('\ninference on f network ...\n') - hls.test.test_f(data_feeder, log_output=True, - save_filename=config.f_infer_out_pickle, - use_joint_f_w=config.use_joint_f_w) - print('\ninference on w network...') - print('we only test on instances covered by atleast one rule\n') - hls.test.test_w(data_feeder, log_output=True, save_filename=config.w_infer_out_pickle+"_test") - else: - assert not "Invalid mode string: %s" % mode \ No newline at end of file diff --git a/spear/Implyloss/my_test_trec.sh b/spear/Implyloss/my_test_trec.sh deleted file mode 100755 index b7f36ff..0000000 --- a/spear/Implyloss/my_test_trec.sh +++ /dev/null @@ -1,91 +0,0 @@ -#!/usr/bin/env bash -logdir=logs/my_TREC -mkdir -p $logdir # logs are dumped here - -# Keep any one group of flags (4 consecutive lines) active at any time and run the corresponding experiment - -# USE THIS FOR IMPLY LOSS -declare -a arr=("implication") # ImplyLoss (Our method) in Table 2 Column2 (Question) (https://openreview.net/pdf?id=SkeuexBtDr) -declare -a gamma_arr=(0.1) -declare -a lamda_arr=(0.1) # not actually used -declare -a model_id=(1 2 3 4 5) # (5 independent models were trained and numbers obtained were averaged) - -# USE THIS FOR POSTERIOR REG. -# declare -a arr=("pr_loss") # Posterior Reg. in Table2 Column2 (Question) -# declare -a gamma_arr=(0.001) -# declare -a lamda_arr=(0.1) # not actually used -# declare -a model_id=(1 2 3 4 5 6 7 8 9 10) # (5 independent models were trained and numbers obtained were averaged) - -# USE THIS FOR L+Usnorkel -# declare -a arr=("label_snorkel") # L+Usnorkel in Table2 Column2 (Question) -# declare -a gamma_arr=(0.01) -# declare -a lamda_arr=(0.1) # not actually used -# declare -a model_id=(1 2 3 4 5 6 7 8 9 10) - -# USE THIS FOR L+Umaj and Nosie-Tolerant -# declare -a arr=("gcross") -# declare -a gamma_arr=(0.001) -# declare -a lamda_arr=(0 0.9) # 0 for L+Umaj and 0.9 for Noise-tolerant in Table 2 Column2 (Question) -# declare -a model_id=(1 2 3 4 5 6 7 8 9 10) - -# USE THIS FOR Snorkel-Noise-Tolerant -# declare -a arr=("gcross_snorkel") -# declare -a gamma_arr=(0.1) -# declare -a lamda_arr=(0.6) -# declare -a model_id=(1 2 3 4 5 6 7 8 9 10) - -# USE THIS FOR L2R -# declare -a arr=("learn2reweight") # L2R in Table2 Column2 (Question) -# declare -a gamma_arr=(0.1) # not actually used -# declare -a lamda_arr=(0.01) # meta-learning rate -# declare -a model_id=(1 2 3 4 5) - - -# USE THIS FOR Only-L -# declare -a arr=("f_d") # Only-L in Table2 Column2 (Question) -# declare -a gamma_arr=(0.1) # not actully used -# declare -a lamda_arr=(0.1) # not actully used -# declare -a model_id=(1 2 3 4 5) - -EPOCHS=3 -LR=0.0001 #not used while testing -DROPOUT_KEEP_PROB=1.0 -VALID_PICKLE_NAME=test_processed.p #used test pickle while testing -D_PICKLE_NAME=d_processed.p -U_PICKLE_NAME=U_processed.p - -for MODE in "${arr[@]}" -do - echo "$MODE" - mode=$MODE - if [ "$MODE" == "f_d" ];then - CKPT_LOAD_MODE=f_d - else - CKPT_LOAD_MODE=f_d_U - fi - - if [[ "$MODE" = "implication" || "$MODE" = "pr_loss" ]];then - test_mode=test_all # both test f and test w - else - test_mode=test_f # only test_f is meaningful because no "w network" in methods other than implication and pr_loss - fi - - if [[ "$MODE" = "implication" ]];then - USE_JOINT_f_w=True #this flag should be True if you need to use output of rule network while doing inference - else - USE_JOINT_f_w=False - fi - - for GAMMA in "${gamma_arr[@]}" - do - for LAMDA in "${lamda_arr[@]}" - do - for Q in "${model_id[@]}" - do - nohup ./my_TREC.sh "$MODE"_"$GAMMA"_"$LAMDA"_"$Q" $test_mode $EPOCHS $LR \ - $CKPT_LOAD_MODE $DROPOUT_KEEP_PROB $D_PICKLE_NAME \ - $VALID_PICKLE_NAME $U_PICKLE_NAME $GAMMA $LAMDA $USE_JOINT_f_w > $logdir/test_"$MODE"_"$GAMMA"_"$LAMDA"_"$Q".txt & - done - done - done -done diff --git a/spear/Implyloss/my_train_trec.sh b/spear/Implyloss/my_train_trec.sh deleted file mode 100755 index 21595dc..0000000 --- a/spear/Implyloss/my_train_trec.sh +++ /dev/null @@ -1,78 +0,0 @@ -#!/usr/bin/env bash -logdir=logs/my_TREC -mkdir -p $logdir # logs are dumped here - -# Keep any one group of flags (4 consecutive lines) active at any time and run the corresponding experiment - -# USE THIS FOR IMPLY LOSS -# declare -a arr=("implication") # ImplyLoss (Our method) in Table 2 Column2 (Question) (https://openreview.net/pdf?id=SkeuexBtDr) -# declare -a gamma_arr=(0.1) -# declare -a lamda_arr=(0.1) # not actually used -# declare -a model_id=(1 2 3 4 5) # (5 independent models were trained and numbers obtained were averaged) - -# USE THIS FOR POSTERIOR REG. -# declare -a arr=("pr_loss") # Posterior Reg. in Table2 Column2 (Question) -# declare -a gamma_arr=(0.001) -# declare -a lamda_arr=(0.1) # not actually used -# declare -a model_id=(1 2 3 4 5 6 7 8 9 10) # (5 independent models were trained and numbers obtained were averaged) - -# USE THIS FOR L+Usnorkel -# declare -a arr=("label_snorkel") # L+Usnorkel in Table2 Column2 (Question) -# declare -a gamma_arr=(0.01) -# declare -a lamda_arr=(0.1) # not actually used -# declare -a model_id=(1 2 3 4 5 6 7 8 9 10) - -# USE THIS FOR L+Umaj and Noise-Tolerant -# declare -a arr=("gcross") -# declare -a gamma_arr=(0.001) -# declare -a lamda_arr=(0 0.9) # 0 for L+Umaj and 0.9 for Noise-tolerant in Table 2 Column2 (Question) -# declare -a model_id=(1 2 3 4 5 6 7 8 9 10) - -# USE THIS FOR Snorkel-Noise-Tolerant -# declare -a arr=("gcross_snorkel") -# declare -a gamma_arr=(0.1) -# declare -a lamda_arr=(0.6) -# declare -a model_id=(1 2 3 4 5 6 7 8 9 10) - -# USE THIS FOR L2R -# declare -a arr=("learn2reweight") # L2R in Table2 Column2 (Question) -# declare -a gamma_arr=(0.1) # not actually used -# declare -a lamda_arr=(0.01) # meta-learning rate -# declare -a model_id=(1 2 3 4 5) - - -# USE THIS FOR Only-L -declare -a arr=("f_d") # Only-L in Table2 Column2 (Question) -declare -a gamma_arr=(0.1) # not actully used -declare -a lamda_arr=(0.1) # not actully used -declare -a model_id=(1 2 3 4 5 6) - -EPOCHS=7 -LR=0.0003 -CKPT_LOAD_MODE=mru -DROPOUT_KEEP_PROB=0.8 -VALID_PICKLE_NAME=validation_processed.p -U_pickle_name="U_processed.p" -D_PICKLE_NAME="d_processed.p" -USE_JOINT_f_w=False - -echo "Hello 1 2" - -for MODE in "${arr[@]}" - # echo "Hello 1 3" -do - echo "$MODE" - mode=$MODE - for GAMMA in "${gamma_arr[@]}" - do - for LAMDA in "${lamda_arr[@]}" - do - for Q in "${model_id[@]}" - do - nohup ./my_TREC.sh "$MODE"_"$GAMMA"_"$LAMDA"_"$Q" $mode $EPOCHS $LR $CKPT_LOAD_MODE \ - $DROPOUT_KEEP_PROB $D_PICKLE_NAME $VALID_PICKLE_NAME \ - $U_pickle_name $GAMMA $LAMDA $USE_JOINT_f_w > $logdir/"$MODE"_"$GAMMA"_"$LAMDA"_"$Q".txt & - done - done - done -done \ No newline at end of file diff --git a/spear/Implyloss/my_networks.py b/spear/Implyloss/networks.py old mode 100755 new mode 100644 similarity index 84% rename from spear/Implyloss/my_networks.py rename to spear/Implyloss/networks.py index f7eac91..507e514 --- a/spear/Implyloss/my_networks.py +++ b/spear/Implyloss/networks.py @@ -7,8 +7,13 @@ import json import os -from my_config import flags as config -from my_utils import merge_dict_a_into_b +# from .my_utils import merge_dict_a_into_b + +from .utils import merge_dict_a_into_b + +w_layers = [512, 512] # comma-separated list of number of neurons in each layer of the fully-connected w network +f_layers = [512, 512] # comma-separated list of number of neurons in each layer of the fully-connected f network +network_dropout = True def create_initializer(initializer_range=0.02): @@ -50,10 +55,10 @@ def w_network_fully_connected(w_var_scope, num_rules, w_dict, reuse=False, dropo prev_layer = inputs with tf.variable_scope(w_var_scope, reuse=reuse, initializer=create_initializer()) as vs: - for i, num_neurons in enumerate(config.w_layers): + for i, num_neurons in enumerate(w_layers): cur_layer = tf.layers.dense(prev_layer, num_neurons, activation=tf.nn.relu, name='w_layer_%d' % i) - if config.network_dropout is True: + if network_dropout is True: cur_layer = tf.nn.dropout(cur_layer, dropout_keep_prob) prev_layer = cur_layer logit = tf.layers.dense(prev_layer, 1, name='w_linear_layer') @@ -81,10 +86,10 @@ def f_network_fully_connected(f_var_scope, f_dict, num_classes, if not ph_vars: with tf.variable_scope(f_var_scope, reuse=reuse, initializer=create_initializer()) as vs: prev_layer = x - for i, num_neurons in enumerate(config.f_layers): + for i, num_neurons in enumerate(f_layers): cur_layer = tf.layers.dense(prev_layer, num_neurons, activation=tf.nn.relu) - if config.network_dropout is True: + if network_dropout is True: cur_layer = tf.nn.dropout(cur_layer, dropout_keep_prob) prev_layer = cur_layer @@ -96,7 +101,7 @@ def f_network_fully_connected(f_var_scope, f_dict, num_classes, x = tf.matmul(x,kernel) x = x + bias x = tf.nn.relu(x) - if config.network_dropout is True: + if network_dropout is True: x = tf.nn.dropout(x,dropout_keep_prob) kernel = ph_vars[-2] diff --git a/spear/Implyloss/my_pr_utils.py b/spear/Implyloss/pr_utils.py old mode 100755 new mode 100644 similarity index 99% rename from spear/Implyloss/my_pr_utils.py rename to spear/Implyloss/pr_utils.py index 75f950d..69afd52 --- a/spear/Implyloss/my_pr_utils.py +++ b/spear/Implyloss/pr_utils.py @@ -1,4 +1,5 @@ -import tensorflow as tf +import tensorflow.compat.v1 as tf +tf.disable_v2_behavior() import numpy as np def exp_term_for_constraints(rule_classes, num_classes, C): diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623180164.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623180164.parth-G3-3590 new file mode 100644 index 0000000..aa0e7ca Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623180164.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623180233.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623180233.parth-G3-3590 new file mode 100644 index 0000000..e1d72f0 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623180233.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623180392.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623180392.parth-G3-3590 new file mode 100644 index 0000000..ad0d5e8 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623180392.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623180549.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623180549.parth-G3-3590 new file mode 100644 index 0000000..01a647c Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623180549.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623413943.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623413943.parth-G3-3590 new file mode 100644 index 0000000..c3a6a01 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623413943.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623415822.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623415822.parth-G3-3590 new file mode 100644 index 0000000..4b3ffa4 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623415822.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623416349.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623416349.parth-G3-3590 new file mode 100644 index 0000000..72884f1 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623416349.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623416763.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623416763.parth-G3-3590 new file mode 100644 index 0000000..94fd46e Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623416763.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623416864.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623416864.parth-G3-3590 new file mode 100644 index 0000000..5d44739 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623416864.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623416902.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623416902.parth-G3-3590 new file mode 100644 index 0000000..be98172 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623416902.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623417087.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623417087.parth-G3-3590 new file mode 100644 index 0000000..f75dca6 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623417087.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623417127.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623417127.parth-G3-3590 new file mode 100644 index 0000000..35e5fe9 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623417127.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623417143.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623417143.parth-G3-3590 new file mode 100644 index 0000000..d7fceb1 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623417143.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623417612.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623417612.parth-G3-3590 new file mode 100644 index 0000000..bb31bae Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623417612.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623417659.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623417659.parth-G3-3590 new file mode 100644 index 0000000..e3fdb65 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623417659.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623417705.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623417705.parth-G3-3590 new file mode 100644 index 0000000..efe1998 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623417705.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623417720.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623417720.parth-G3-3590 new file mode 100644 index 0000000..fa1c67b Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623417720.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623417751.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623417751.parth-G3-3590 new file mode 100644 index 0000000..c542011 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623417751.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623417761.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623417761.parth-G3-3590 new file mode 100644 index 0000000..b899d26 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623417761.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623417784.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623417784.parth-G3-3590 new file mode 100644 index 0000000..793da42 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623417784.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623417796.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623417796.parth-G3-3590 new file mode 100644 index 0000000..3757982 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623417796.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623417809.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623417809.parth-G3-3590 new file mode 100644 index 0000000..ed56707 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623417809.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623417824.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623417824.parth-G3-3590 new file mode 100644 index 0000000..092bf30 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623417824.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623417835.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623417835.parth-G3-3590 new file mode 100644 index 0000000..260d969 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623417835.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623417967.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623417967.parth-G3-3590 new file mode 100644 index 0000000..58c2a5a Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623417967.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623437808.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623437808.parth-G3-3590 new file mode 100644 index 0000000..44408b2 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623437808.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623438014.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623438014.parth-G3-3590 new file mode 100644 index 0000000..3429889 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623438014.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623442806.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623442806.parth-G3-3590 new file mode 100644 index 0000000..ae18b76 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623442806.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623442840.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623442840.parth-G3-3590 new file mode 100644 index 0000000..cbf9f92 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623442840.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623443632.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623443632.parth-G3-3590 new file mode 100644 index 0000000..6d14ae1 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623443632.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623443739.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623443739.parth-G3-3590 new file mode 100644 index 0000000..9c8e244 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623443739.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623443774.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623443774.parth-G3-3590 new file mode 100644 index 0000000..98500e2 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623443774.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623443807.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623443807.parth-G3-3590 new file mode 100644 index 0000000..9e46caf Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623443807.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623444065.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623444065.parth-G3-3590 new file mode 100644 index 0000000..bbef8f2 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623444065.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623444188.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623444188.parth-G3-3590 new file mode 100644 index 0000000..96625a8 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623444188.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623472009.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623472009.parth-G3-3590 new file mode 100644 index 0000000..11ddc28 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623472009.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623472085.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623472085.parth-G3-3590 new file mode 100644 index 0000000..3afe6df Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623472085.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623476082.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623476082.parth-G3-3590 new file mode 100644 index 0000000..d95d48d Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623476082.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623477296.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623477296.parth-G3-3590 new file mode 100644 index 0000000..e0470fd Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623477296.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623478684.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623478684.parth-G3-3590 new file mode 100644 index 0000000..8db3189 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623478684.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623478708.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623478708.parth-G3-3590 new file mode 100644 index 0000000..9b24c94 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623478708.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623478774.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623478774.parth-G3-3590 new file mode 100644 index 0000000..8e2f10e Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623478774.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623478814.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623478814.parth-G3-3590 new file mode 100644 index 0000000..24a62db Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623478814.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623479017.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623479017.parth-G3-3590 new file mode 100644 index 0000000..29f62b1 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623479017.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623479227.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623479227.parth-G3-3590 new file mode 100644 index 0000000..ebf20ed Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623479227.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623479239.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623479239.parth-G3-3590 new file mode 100644 index 0000000..15da3ab Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623479239.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623479268.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623479268.parth-G3-3590 new file mode 100644 index 0000000..66b4de5 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623479268.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623479279.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623479279.parth-G3-3590 new file mode 100644 index 0000000..d8bbc65 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623479279.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623479294.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623479294.parth-G3-3590 new file mode 100644 index 0000000..4dcd815 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623479294.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623479309.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623479309.parth-G3-3590 new file mode 100644 index 0000000..c0606ca Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623479309.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623479318.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623479318.parth-G3-3590 new file mode 100644 index 0000000..7e66095 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623479318.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623479328.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623479328.parth-G3-3590 new file mode 100644 index 0000000..85e5e6e Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623479328.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623479527.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623479527.parth-G3-3590 new file mode 100644 index 0000000..3957179 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623479527.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623480011.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623480011.parth-G3-3590 new file mode 100644 index 0000000..09cf08e Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623480011.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623501910.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623501910.parth-G3-3590 new file mode 100644 index 0000000..846ceb4 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623501910.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623501966.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623501966.parth-G3-3590 new file mode 100644 index 0000000..97e7457 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623501966.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623679964.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623679964.parth-G3-3590 new file mode 100644 index 0000000..c95f855 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623679964.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623680643.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623680643.parth-G3-3590 new file mode 100644 index 0000000..39296a2 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623680643.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623680769.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623680769.parth-G3-3590 new file mode 100644 index 0000000..670f790 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623680769.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623680840.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623680840.parth-G3-3590 new file mode 100644 index 0000000..ef58f68 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623680840.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623680879.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623680879.parth-G3-3590 new file mode 100644 index 0000000..13d22c0 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623680879.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623681412.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623681412.parth-G3-3590 new file mode 100644 index 0000000..a7978e7 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623681412.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623681463.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623681463.parth-G3-3590 new file mode 100644 index 0000000..d93f46c Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623681463.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623681993.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623681993.parth-G3-3590 new file mode 100644 index 0000000..02cf48c Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623681993.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623687096.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623687096.parth-G3-3590 new file mode 100644 index 0000000..562a69c Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623687096.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623687138.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623687138.parth-G3-3590 new file mode 100644 index 0000000..21d30e7 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623687138.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623687326.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623687326.parth-G3-3590 new file mode 100644 index 0000000..d6e8eca Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623687326.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623687399.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623687399.parth-G3-3590 new file mode 100644 index 0000000..5b90838 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623687399.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623687514.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623687514.parth-G3-3590 new file mode 100644 index 0000000..0588474 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623687514.parth-G3-3590 differ diff --git a/spear/Implyloss/tensorboard/events.out.tfevents.1623771572.parth-G3-3590 b/spear/Implyloss/tensorboard/events.out.tfevents.1623771572.parth-G3-3590 new file mode 100644 index 0000000..3377a48 Binary files /dev/null and b/spear/Implyloss/tensorboard/events.out.tfevents.1623771572.parth-G3-3590 differ diff --git a/spear/Implyloss/my_test.py b/spear/Implyloss/test.py old mode 100755 new mode 100644 similarity index 96% rename from spear/Implyloss/my_test.py rename to spear/Implyloss/test.py index b215c1d..2a72afe --- a/spear/Implyloss/my_test.py +++ b/spear/Implyloss/test.py @@ -1,9 +1,13 @@ -# from hls_data_types import test_w -from my_data_types import test_w +# from .my_utils import * +# from .my_data_types import test_w + +from .utils import * +from .data_types import test_w + # from utils import merge_dict_a_into_b # import data_utils # import metrics_utils -from my_utils import * +# from hls_data_types import test_w import tensorflow as tf import numpy as np from sklearn.metrics import precision_recall_fscore_support @@ -14,7 +18,7 @@ class HLSTest(): Class Desc: This Class is designed to test the HLS model and its accuracy and precision obtained on the validation and test datasets ''' - def __init__(self, hls, config): + def __init__(self, hls): ''' Func Desc: Initializes the class member variables using the arguments provided @@ -22,14 +26,12 @@ def __init__(self, hls, config): Input: self hls - the hls model - config Sets: hls - config ''' self.hls = hls - self.config = config + # self.config = config def maybe_save_predictions(self, save_filename, x, l, m, preds, d): ''' @@ -145,7 +147,7 @@ def test_f(self, datafeeder, log_output=False, data_type='test_f', save_filename # We test w using data from d # # data_type is either test_w or covered_U - def test_w(self, datafeeder, log_output=False, data_type=test_w, save_filename=None): + def test_w(self, datafeeder, log_output=False, data_type='test_w', save_filename=None): ''' Func Desc: tests the w_network (rule network) diff --git a/spear/Implyloss/testing/Data/SMS/README.md b/spear/Implyloss/testing/Data/SMS/README.md deleted file mode 100644 index 6afd64c..0000000 --- a/spear/Implyloss/testing/Data/SMS/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# Content Description - -* For description of {d,U,validation,test}processed.p see the main README of this repository -* spam.csv is the original datafile from [SMS Spam dataset](https://archive.ics.uci.edu/ml/datasets/SMS+Spam+Collection) -* rule.txt contains rules defined by observing a few sentences randomly fectched from spam.csv. -* Format of rule.txt - - First column represents the label provided by rule - - Second column represents the regex corresponding to the rule - - Third column represents the sentence inspecting which rule was designed. -* Remaing sentences in spam.csv were randomly distributed into train.csv, test.csv, valid.csv -* 500 sentences in train and test, while remaining in train. -* generate_data.py creates {d,U,validation,test}processed.p using rules.txt,train.csv,valid.csv,test.csv respectively - - obtain_embeddings.py is used, which uses [elmo](https://tfhub.dev/google/elmo/) to convert sentences into embeddings - -# Note: -* Since sentences in spam.csv were randomly distributed into train test and valid files, the pickle files you may generate might be little different than what is dumped here. -* If you are re-generating the pickles using generate_data.py, then you should re-train the snorkel's saved_label_model using run_snorkel.py (See the main README) -* Pickle files dumped here were used in our experiments. - diff --git a/spear/Implyloss/testing/Data/SMS/d_processed.p b/spear/Implyloss/testing/Data/SMS/d_processed.p deleted file mode 100644 index c3e6c11..0000000 Binary files a/spear/Implyloss/testing/Data/SMS/d_processed.p and /dev/null differ diff --git a/spear/Implyloss/testing/Data/SMS/generate_data.py b/spear/Implyloss/testing/Data/SMS/generate_data.py deleted file mode 100644 index dfbaa8a..0000000 --- a/spear/Implyloss/testing/Data/SMS/generate_data.py +++ /dev/null @@ -1,148 +0,0 @@ -import random - -import pandas as pd -import numpy as np -import pickle -import re -import os - -from obtain_embeddings import sentences_to_elmo_sentence_embs - -LABEL_DICT = {"ham": 0, "spam": 1} - -def load_data(mode): - data = pd.read_csv(mode + ".csv", encoding='latin1') - sentence = [x.lower().strip() for x in data["v2"].tolist()] - label = [LABEL_DICT[item] for item in data["v1"].tolist()] - data = list(zip(sentence, label)) - return data - - -def load_rules(): - rules = [] - file_name = 'rule.txt' - with open(file_name, 'r', encoding='latin1') as f: - for line in f: - list_in = line.strip().split("\t") - label = LABEL_DICT[list_in[0]] - pattern = list_in[1] - sent = list_in[2].lower() - rules.append((sent, label, pattern)) - return rules - - -class Generate_data: - def __init__(self): - self.num_labels = len(LABEL_DICT) - self.train_data = load_data("train") - self.validation_data = load_data("valid") - self.test_data = load_data("test") - self.rules = load_rules() - self.num_rules = len(self.rules) - - def fire_rules(self,sentence): - #returns m and l values for the sentence - m = np.zeros(self.num_rules) - l = self.num_labels + np.zeros(self.num_rules) - - for rid,(sent,lab,pat) in enumerate(self.rules): - pattern = re.compile(pat) - rule_label = lab - result = re.findall(pattern, sentence.strip().lower()) - if result: - m[rid] = 1 - l[rid] = lab - return m,l - - - def _geneate_pickles(self,mode): - if mode == "U": - data = self.train_data - elif mode == "test": - data = self.test_data - elif mode == "validation": - data = self.validation_data - else: - print("Error: Wrong mode") - exit() - - xx = [] - xl = [] - xm = [] - xL = [] - xd = [] - xr = [] - - for sentence,label in data: - xx.append(sentence) - if mode == "U": - xL.append(self.num_labels) - else: - xL.append(label) - xd.append(0) - xr.append(np.zeros(self.num_rules)) - m,l = self.fire_rules(sentence) - xm.append(m) - xl.append(l) - - with open("{}_processed.p".format(mode),"wb") as pkl_f, open("{}_sentences.txt".format(mode),"w") as txt_f: - for sentence in xx: - txt_f.write(sentence.strip()+'\n') - print(len(xx)) - xx = sentences_to_elmo_sentence_embs(xx) - print(len(xx)) - pickle.dump(np.array(xx),pkl_f) - pickle.dump(np.array(xl),pkl_f) - pickle.dump(np.array(xm),pkl_f) - pickle.dump(np.array(xL),pkl_f) - pickle.dump(np.array(xd),pkl_f) - pickle.dump(np.array(xr),pkl_f) - - def generate_pickles(self): - #=== d_processed.p ====# - d_x = [] - d_l = [] - d_m = [] - d_L = [] - d_d = [] - d_r = [] - for rule_id,(sentence,label,pattern) in enumerate(self.rules): - if sentence in d_x: - s_idx = d_x.index(sentence) - if label == d_L[s_idx]: - d_r[s_idx][rule_id]=1 - continue - d_x.append(sentence) - d_d.append(1) - d_L.append(label) - m = np.zeros(self.num_rules) - l = self.num_labels + np.zeros(self.num_rules) - r = np.zeros(self.num_rules) - r[rule_id] = 1 - d_r.append(r) - m,l = self.fire_rules(sentence) - assert m[rule_id] == 1 - d_m.append(m) - d_l.append(l) - with open("d_processed.p", "wb") as pkl_f, open("d_sentences.txt","w") as txt_f: - for sentence in d_x: - txt_f.write(sentence.strip()+'\n') - print(len(d_x)) - d_x = sentences_to_elmo_sentence_embs(d_x) - print(len(d_x)) - pickle.dump(np.array(d_x), pkl_f) - pickle.dump(np.array(d_l), pkl_f) - pickle.dump(np.array(d_m), pkl_f) - pickle.dump(np.array(d_L), pkl_f) - pickle.dump(np.array(d_d), pkl_f) - pickle.dump(np.array(d_r), pkl_f) - #====== U_processed ======# - self._geneate_pickles("U") - self._geneate_pickles("validation") - self._geneate_pickles("test") - - - -if __name__ == '__main__': - obj = Generate_data() - obj.generate_pickles() diff --git a/spear/Implyloss/testing/Data/SMS/k b/spear/Implyloss/testing/Data/SMS/k deleted file mode 100644 index 26e0820..0000000 --- a/spear/Implyloss/testing/Data/SMS/k +++ /dev/null @@ -1,73 +0,0 @@ -ham -spam -ham -spam -spam -spam -spam -ham -spam -spam -ham -ham -ham -ham -ham -ham -ham -spam -spam -ham -ham -spam -ham -spam -spam -spam -ham -ham -ham -ham -spam -ham -spam -spam -spam -spam -spam -ham -spam -spam -spam -spam -spam -ham -spam -ham -ham -spam -ham -ham -spam -ham -ham -spam -ham -spam -ham -spam -spam -spam -ham -spam -spam -spam -spam -spam -ham -ham -spam -spam -spam -spam -spam diff --git a/spear/Implyloss/testing/Data/SMS/obtain_embeddings.py b/spear/Implyloss/testing/Data/SMS/obtain_embeddings.py deleted file mode 100644 index 1672a76..0000000 --- a/spear/Implyloss/testing/Data/SMS/obtain_embeddings.py +++ /dev/null @@ -1,31 +0,0 @@ -import tensorflow as tf -import tensorflow_hub as hub -import numpy as np -import os,sys -import pickle -from tqdm import tqdm - - - - - -def sentences_to_elmo_sentence_embs(messages,batch_size=64): - sess_config = tf.ConfigProto() - sess_config.gpu_options.allow_growth = True - #message_lengths = [len(m.split()) for m in messages] - module_url = "https://tfhub.dev/google/elmo/2" - elmo = hub.Module(module_url,trainable=True) - tf.logging.set_verbosity(tf.logging.ERROR) - with tf.Session(config=sess_config) as session: - session.run([tf.global_variables_initializer(), tf.tables_initializer()]) - message_embeddings = [] - for i in tqdm(range(0,len(messages),batch_size)): - #print("Embedding sentences from {} to {}".format(i,min(i+batch_size,len(messages))-1)) - message_batch = messages[i:i+batch_size] - #length_batch = message_lengths[i:i+batch_size] - embeddings_batch = session.run(elmo(message_batch,signature="default",as_dict=True))["default"] - #embeddings_batch = get_embeddings_list(embeddings_batch, length_batch, ELMO_EMBED_SIZE) - message_embeddings.extend(embeddings_batch) - return message_embeddings - - diff --git a/spear/Implyloss/testing/Data/SMS/rule.txt b/spear/Implyloss/testing/Data/SMS/rule.txt deleted file mode 100644 index 4d71efd..0000000 --- a/spear/Implyloss/testing/Data/SMS/rule.txt +++ /dev/null @@ -1,73 +0,0 @@ -ham ( |^)(thanks\.|thanks)[^\w]*( |$) Thanks. It was only from tescos but quite nice. All gone now. Speak soon -spam ( |^)(call|ringtone|ringtone)[^\w]* ([^\s]+ )*(free|free)[^\w]*( |$) Ringtone Club: Get the UK singles chart on your mobile each week and choose any top quality ringtone! This message is free of charge. -ham ( |^)(thats|thats)[^\w]* (\w+ ){0,1}(nice\.|nice)[^\w]*( |$) Well thats nice. Too bad i cant eat it -spam ( |^)(won|won)[^\w]* ([^\s]+ )*(cash|cash)[^\w]* ([^\s]+ )*(prize!|prize)[^\w]*( |$) Please call our customer service representative on FREEPHONE 0808 145 4742 between 9am-11pm as you have WON a guaranteed ??1000 cash or ??5000 prize! -spam ( |^)(winner!|winner)[^\w]* ([^\s]+ )*(reward!|reward)[^\w]*( |$) WINNER! As a valued network customer you hvae been selected to receive a ??900 reward! To collect call 09061701444. Valid 24 hours only. ACL03530150PM -spam ( |^)(guaranteed|guaranteed)[^\w]* ([^\s]+ )*(free|free)[^\w]*( |$) Congratulations ur awarded 500 of CD vouchers or 125gift guaranteed & Free entry 2 100 wkly draw txt MUSIC to 87066 TnCs www.Ldew.com1win150ppmx3age16 -spam ( |^)(dating|dating)[^\w]* ([^\s]+ )*(call|call)[^\w]*( |$) Someone has conacted our dating service and entered your phone because they fancy you!To find out who it is call from landline 09111030116. PoBox12n146tf15 -ham ( |^)(i)[^\w]* (\w+ ){0,1}(can|can)[^\w]* ([^\s]+ )*(did|did)[^\w]*( |$) Oh yes I can speak txt 2 u no! Hmm. Did u get email? -spam ( |^)(guranteed|guaranteed|guaranteed)[^\w]* ([^\s]+ )*(gift\.|gift)[^\w]*( |$) Great News! Call FREEFONE 08006344447 to claim your guaranteed ??1000 CASH or ??2000 gift. Speak to a live operator NOW! -spam ( |^)(call|call)[^\w]* ([^\s]+ )*(for|for)[^\w]* ([^\s]+ )*(offer|offers|offers\.)[^\w]*( |$) Double Mins & Double Txt & 1/2 price Linerental on Latest Orange Bluetooth mobiles. Call MobileUpd8 for the very latest offers. 08000839402 or call2optout/LF56 -ham ( |^)(can't|can't)[^\w]* (\w+ ){0,1}(talk|talk)[^\w]*( |$) sry can't talk on phone, with parents -ham ( |^)(i)[^\w]*( |$) Don know. I did't msg him recently. -ham ( |^)(u)[^\w]* ([^\s]+ )*(how|how)[^\w]* (\w+ ){0,1}(2)[^\w]*( |$) Do u noe how 2 send files between 2 computers? -ham ( |^)(should|should)[^\w]* (\w+ ){0,1}(i)[^\w]*( |$) Nah, Wednesday. When should I bring the mini cheetos bag over? -ham ( |^)(your|your)[^\w]* ([^\s]+ )*(i)[^\w]*( |$) is your hamster dead? Hey so tmr i meet you at 1pm orchard mrt? -ham ( |^)(i)[^\w]* ([^\s]+ )*(miss|miss)[^\w]*( |$) Goodnight da thangam I really miss u dear. -ham ( |^)(that's|that's)[^\w]* (\w+ ){0,1}(fine!|fine)[^\w]*( |$) Yeah, that's fine! It's ??6 to get in, is that ok? -spam ( |^)(won|won)[^\w]* ([^\s]+ )*(claim,|claim)[^\w]*( |$) 449050000301 You have won a ??2,000 price! To claim, call 09050000301. -spam ( |^)(welcome!|welcome)[^\w]* ([^\s]+ )*(reply|reply)[^\w]*( |$) Welcome! Please reply with your AGE and GENDER to begin. e.g 24M -ham ( |^)(mine\.|mine)[^\w]*( |$) 4 oclock at mine. Just to bash out a flat plan. -ham ( |^)(we|we)[^\w]* (\w+ ){0,1}(will|will)[^\w]*( |$) At 7 we will go ok na. -spam ( |^)(alert|urgent|urgent!)[^\w]* ([^\s]+ )*(award|awarded|awarded)[^\w]* ([^\s]+ )*(guaranteed\.|guaranteed)[^\w]*( |$) URGENT! Your Mobile number has been awarded with a ??2000 prize GUARANTEED. Call 09058094455 from land line. Claim 3030. Valid 12hrs only -ham ( |^)(do|do)[^\w]* (\w+ ){0,1}(you|you)[^\w]*( |$) Where do you need to go to get it? -spam ( |^)(no|no)[^\w]* (\w+ ){0,1}(extra|extra)[^\w]*( |$) SMS SERVICES. for your inclusive text credits, pls goto www.comuk.net login= 3qxj9 unsubscribe with STOP, no extra charge. help 08702840625.COMUK. 220-CM2 9AE -spam ( |^)(unlimited|unlimited)[^\w]* ([^\s]+ )*(calls|calls)[^\w]*( |$) Freemsg: 1-month unlimited free calls! Activate SmartCall Txt: CALL to No: 68866. Subscriptn3gbp/wk unlimited calls Help: 08448714184 Stop?txt stop landlineonly -spam ( |^)(important|important)[^\w]* ([^\s]+ )*(lucky|lucky)[^\w]*( |$) IMPORTANT INFORMATION 4 ORANGE USER 0796XXXXXX. TODAY IS UR LUCKY DAY!2 FIND OUT WHY LOG ONTO http://www.urawinner.com THERE'S A FANTASTIC PRIZEAWAITING YOU! -ham ( |^)(i)[^\w]* ([^\s]+ )*(it|it)[^\w]*( |$) I re-met alex nichols from middle school and it turns out he's dealing! -ham ( |^)(where|where)[^\w]* ([^\s]+ )*(are|are)[^\w]* (\w+ ){0,1}(you|you)[^\w]*( |$) Where in abj are you serving. Are you staying with dad or alone. -ham ( |^)(my|my)[^\w]* ([^\s]+ )*(kids|kids)[^\w]*( |$) my ex-wife was not able to have kids. Do you want kids one day? -ham ( |^)(i)[^\w]* (\w+ ){0,1}(used|use|use)[^\w]* (\w+ ){0,1}(to|to)[^\w]*( |$) Normally i use to drink more water daily:) -spam ( |^)(new|new)[^\w]* (\w+ ){0,1}(mobiles|mobiles)[^\w]* ([^\s]+ )*(only|only)[^\w]*( |$) 500 New Mobiles from 2004, MUST GO! Txt: NOKIA to No: 89545 & collect yours today!From ONLY ??1 www.4-tc.biz 2optout 087187262701.50gbp/mtmsg18 -ham ( |^)(did|did)[^\w]* (\w+ ){0,1}(u)[^\w]* (\w+ ){0,1}(got|got)[^\w]*( |$) Did u got that persons story -spam ( |^)(chat|chat)[^\w]* (\w+ ){0,1}(to|to)[^\w]*( |$) Dear U've been invited to XCHAT. This is our final attempt to contact u! Txt CHAT to 86688 -spam ( |^)(won|won)[^\w]* ([^\s]+ )*(call|call)[^\w]*( |$) RGENT! This is the 2nd attempt to contact U!U have WON ??1250 CALL 09071512433 b4 050703 T&CsBCM4235WC1N3XX. callcost 150ppm mobilesvary. max??7. 50 -spam ( |^)(latest|latest)[^\w]* (\w+ ){0,1}(offer|offers|offers\.)[^\w]*( |$) Double Mins & Double Txt & 1/2 price Linerental on Latest Orange Bluetooth mobiles. Call MobileUpd8 for the very latest offers. 08000839402 or call2optout/LF56 -spam ( |^)(expires|expires)[^\w]* ([^\s]+ )*(now!|now)[^\w]*( |$) IMPORTANT MESSAGE. This is a final contact attempt. You have important messages waiting out our customer claims dept. Expires 13/4/04. Call 08717507382 NOW! -spam ( |^)(win|win)[^\w]* ([^\s]+ )*(shopping|shopping)[^\w]*( |$) WIN a ??200 Shopping spree every WEEK Starting NOW. 2 play text STORE to 88039. SkilGme. TsCs08714740323 1Winawk! age16 ??1.50perweeksub. -ham ( |^)(i'll|i'll)[^\w]*( |$) Yar else i'll thk of all sorts of funny things. -spam ( |^)(chat|chat)[^\w]* ([^\s]+ )*(date|date)[^\w]*( |$) Bored housewives! Chat n date now! 0871750.77.11! BT-national rate 10p/min only from landlines! -spam ( |^)(please|please)[^\w]* (\w+ ){0,1}(call|call)[^\w]* ([^\s]+ )*(service|service)[^\w]*( |$) Please call our customer service representative on FREEPHONE 0808 145 4742 between 9am-11pm as you have WON a guaranteed ??1000 cash or ??5000 prize! -spam ( |^)(free\.|free)[^\w]* ([^\s]+ )*(sex|sex)[^\w]*( |$) This message is free. Welcome to the new & improved Sex & Dogging club! To unsubscribe from this service reply STOP. msgs@150p 18 only -spam ( |^)(free|free)[^\w]* ([^\s]+ )*(price|price)[^\w]* ([^\s]+ )*(call|call)[^\w]*( |$) Free video camera phones with Half Price line rental for 12 mths and 500 cross ntwk mins 100 txts. Call MobileUpd8 08001950382 or Call2OptOut/674 -spam ( |^)(cash|cash)[^\w]* ([^\s]+ )*(prize|prize|prize!)[^\w]*( |$) You have won ?1,000 cash or a ?2,000 prize! To claim, call09050000327. T&C: RSTM, SW7 3SS. 150ppm -ham ( |^)(fb|fb)[^\w]*( |$) Friends that u can stay on fb chat with -spam ( |^)(free|free)[^\w]* ([^\s]+ )*(phone|phones|phones)[^\w]*( |$) Free video camera phones with Half Price line rental for 12 mths and 500 cross ntwk mins 100 txts. Call MobileUpd8 08001950382 or Call2OptOut/674& -ham ( |^)(noisy\.|noisy)[^\w]*( |$) Mine here like all fr china then so noisy. -ham ( |^)(adventuring|adventuring)[^\w]*( |$) happened here while you were adventuring -spam ( |^)(password|password)[^\w]*( |$) Send me your id and password -ham ( |^)(maggi|maggi)[^\w]*( |$) No need to buy lunch for me.. I eat maggi mee.. -ham ( |^)(wtf\.|wtf)[^\w]*( |$) <#> ISH MINUTES WAS 5 MINUTES AGO. WTF. -spam ( |^)(won|won)[^\w]* ([^\s]+ )*(cash|cash)[^\w]*( |$) Please call our customer service representative on FREEPHONE 0808 145 4742 between 9am-11pm as you have WON a guaranteed ??1000 cash or ??5000 prize! -ham ( |^)(amrita|amrita)[^\w]*( |$) Staff of placement training in Amrita college. -ham ( |^)(praying|praying\.will|praying\.will)[^\w]*( |$) I am joining today formally.Pls keep praying.will talk later. -spam ( |^)(childporn|childporn)[^\w]*( |$) Ic. There are a lotta childporn cars then. -ham ( |^)(shit|shit)[^\w]*( |$) Just wanted to say holy shit you guys weren't kidding about this bud -spam ( |^)(credits|credits)[^\w]*( |$) SMS SERVICES For your inclusive text credits pls gotto www.comuk.net login 3qxj9 unsubscribe with STOP no extra charge help 08702840625 comuk.220cm2 9AE -ham ( |^)(goodo!|goodo)[^\w]* ([^\s]+ )*(we|we)[^\w]*( |$) Goodo! Yes we must speak friday - egg-potato ratio for tortilla needed! -spam ( |^)(latest|latest)[^\w]*( |$) Double Mins & Double Txt & 1/2 price Linerental on Latest Orange Bluetooth mobiles. Call MobileUpd8 for the very latest offers. 08000839402 or call2optout/LF56 -spam ( |^)(\?\?5000|\?\?5000)[^\w]* ([^\s]+ )*(09050090044|09050090044)[^\w]*( |$) WELL DONE! Your 4* Costa Del Sol Holiday or ??5000 await collection. Call 09050090044 Now toClaim. SAE, TCs, POBox334, Stockport, SK38xh, Cost??1.50/pm, Max10mins -spam ( |^)(hard|hard)[^\w]* (\w+ ){0,1}(live|live)[^\w]* ([^\s]+ )*(girl|girl)[^\w]*( |$) Hard LIVE 121 chat just 60p/min. Choose your girl and connect LIVE. Call 09094646899 now! Cheap Chat UK's biggest live service. VU BCM1896WC1N3XX -ham ( |^)(link|link)[^\w]*( |$) A link to your picture has been sent. You can also use http://alto18.co.uk/wave/wave.asp?o=44345 -spam ( |^)(urgent|urgent)[^\w]* ([^\s]+ )*(prize|prize)[^\w]*( |$) URGENT This is our 2nd attempt to contact U. Your ??900 prize from YESTERDAY is still awaiting collection. To claim CALL NOW 09061702893. ACL03530150PM -spam ( |^)(sms\.|sms)[^\w]* ([^\s]+ )*(reply|reply)[^\w]*( |$) SMS. ac Sptv: The New Jersey Devils and the Detroit Red Wings play Ice Hockey. Correct or Incorrect? End? Reply END SPTV -spam ( |^)(direct|direct)[^\w]*( |$) Call Germany for only 1 pence per minute! Call from a fixed line via access number 0844 861 85 85. No prepayment. Direct access! -spam ( |^)(voucher|voucher)[^\w]* ([^\s]+ )*(claim|claim)[^\w]*( |$) Dear Voucher Holder, To claim this weeks offer, at you PC please go to http://www.e-tlp.co.uk/reward. Ts&Cs apply. -spam ( |^)(\?\?1\.50|\?\?1\.50)[^\w]*( |$) Oh my god! I've found your number again! I'm so glad, text me back xafter this msgs cst std ntwk chg ??1.50 -ham ( |^)(hee|hee)[^\w]*( |$) They can try! They can get lost, in fact. Tee hee -ham ( |^)(jus|jus)[^\w]*( |$) Jus finished avatar nigro -spam ( |^)(free|free)[^\w]* ([^\s]+ )*(tone|tone)[^\w]*( |$) FREE RING TONE just text \POLYS\" to 87131. Then every week get a new tone. 0870737910216yrs only ??1.50/wk." -spam ( |^)(message\.|message)[^\w]* ([^\s]+ )*(call|call)[^\w]*( |$) You have 1 new message. Please call 08715205273 -spam ( |^)(fantasies\.|fantasies)[^\w]* (\w+ ){0,1}(call|call)[^\w]*( |$) I'd like to tell you my deepest darkest fantasies. Call me 09094646631 just 60p/min. To stop texts call 08712460324 (nat rate) -spam ( |^)(\?\?500|\?\?500)[^\w]*( |$) Ur HMV Quiz cash-balance is currently ??500 - to maximize ur cash-in now send HMV1 to 86688 only 150p/msg -spam ( |^)(inviting|inviting)[^\w]* ([^\s]+ )*(friend\.|friend)[^\w]*( |$) Natalie (20/F) is inviting you to be her friend. Reply YES-165 or NO-165 See her: www.SMS.ac/u/natalie2k9 STOP? Send STOP FRND to 62468 diff --git a/spear/Implyloss/testing/Data/SMS/saved_label_model b/spear/Implyloss/testing/Data/SMS/saved_label_model deleted file mode 100644 index f6809ff..0000000 Binary files a/spear/Implyloss/testing/Data/SMS/saved_label_model and /dev/null differ diff --git a/spear/Implyloss/testing/Data/SMS/spam.csv b/spear/Implyloss/testing/Data/SMS/spam.csv deleted file mode 100644 index 9978bd9..0000000 --- a/spear/Implyloss/testing/Data/SMS/spam.csv +++ /dev/null @@ -1,5572 +0,0 @@ -v1,v2, -spam,"URGENT! Your mobile No 077xxx WON a ??2,000 Bonus Caller Prize on 02/06/03! This is the 2nd attempt to reach YOU! Call 09066362206 ASAP! BOX97N7QP, 150ppm", -spam,Save money on wedding lingerie at www.bridal.petticoatdreams.co.uk Choose from a superb selection with national delivery. Brought to you by WeddingFriend, -spam,Burger King - Wanna play footy at a top stadium? Get 2 Burger King before 1st Sept and go Large or Super with Coca-Cola and walk out a winner, -spam,"You have been selected to stay in 1 of 250 top British hotels - FOR NOTHING! Holiday Worth ??350! To Claim, Call London 02072069400. Bx 526, SW73SS", -spam,"Bored of speed dating? Try SPEEDCHAT, txt SPEEDCHAT to 80155, if you don't like em txt SWAP and get a new chatter! Chat80155 POBox36504W45WQ 150p/msg rcd 16", -spam,Free Msg: Ringtone!From: http://tms. widelive.com/index. wml?id=1b6a5ecef91ff9*37819&first=true18:0430-JUL-05, -spam,okmail: Dear Dave this is your final notice to collect your 4* Tenerife Holiday or #5000 CASH award! Call 09061743806 from landline. TCs SAE Box326 CW25WX 150ppm, -spam,IMPORTANT MESSAGE. This is a final contact attempt. You have important messages waiting out our customer claims dept. Expires 13/4/04. Call 08717507382 NOW!, -spam,"Shop till u Drop, IS IT YOU, either 10K, 5K, ??500 Cash or ??100 Travel voucher, Call now, 09064011000. NTT PO Box CR01327BT fixedline Cost 150ppm mobile vary", -spam,No 1 POLYPHONIC tone 4 ur mob every week! Just txt PT2 to 87575. 1st Tone FREE ! so get txtin now and tell ur friends. 150p/tone. 16 reply HL 4info, -spam,"Thank you, winner notified by sms. Good Luck! No future marketing reply STOP to 84122 customer services 08450542832", -spam,"WIN: We have a winner! Mr. T. Foley won an iPod! More exciting prizes soon, so keep an eye on ur mobile or visit www.win-82050.co.uk", -spam,You have won a guaranteed 32000 award or maybe even ??1000 cash to claim ur award call free on 0800 ..... (18+). Its a legitimat efreefone number wat do u think???, -spam,"URGENT! Your mobile No 07xxxxxxxxx won a ??2,000 bonus caller prize on 02/06/03! this is the 2nd attempt to reach YOU! call 09066362231 ASAP! BOX97N7QP, 150PPM", -spam,U have a Secret Admirer who is looking 2 make contact with U-find out who they R*reveal who thinks UR so special-call on 09065171142-stopsms-08, -spam,74355 XMAS iscoming & ur awarded either ??500 CD gift vouchers & free entry 2 r ??100 weekly draw txt MUSIC to 87066 TnC, -spam,For taking part in our mobile survey yesterday! You can now have 500 texts 2 use however you wish. 2 get txts just send TXT to 80160 T&C www.txt43.com 1.50p, -spam,"Congrats! 2 mobile 3G Videophones R yours. call 09061744553 now! videochat wid ur mates, play java games, Dload polyH music, noline rentl. bx420. ip4. 5we. 150pm", -spam,You have 1 new message. Please call 08718738034., -spam,"You have won ?1,000 cash or a ?2,000 prize! To claim, call09050000327. T&C: RSTM, SW7 3SS. 150ppm", -spam,"FreeMsg Hey U, i just got 1 of these video/pic fones, reply WILD to this txt & ill send U my pics, hurry up Im so bored at work xxx (18 150p/rcvd STOP2stop)", -spam,I don't know u and u don't know me. Send CHAT to 86688 now and let's find each other! Only 150p/Msg rcvd. HG/Suite342/2Lands/Row/W1J6HL LDN. 18 years or over., -spam,FreeMsg: Txt: CALL to No: 86888 & claim your reward of 3 hours talk time to use from your phone now! Subscribe6GBP/mnth inc 3hrs 16 stop?txtStop, -spam,PRIVATE! Your 2003 Account Statement for 07815296484 shows 800 un-redeemed S.I.M. points. Call 08718738001 Identifier Code 41782 Expires 18/11/04 , -spam,Do you want a new Video handset? 750 any time any network mins? UNLIMITED TEXT? Camcorder? Reply or Call now 08000930705 for del Sat AM, -spam,"Thanks for your ringtone order, reference number X29. Your mobile will be charged 4.50. Should your tone not arrive please call customer services 09065989180", -spam,"HOT LIVE FANTASIES call now 08707500020 Just 20p per min NTT Ltd, PO Box 1327 Croydon CR9 5WB 0870 is a national rate call", -spam,UR awarded a City Break and could WIN a ??200 Summer Shopping spree every WK. Txt STORE to 88039.SkilGme.TsCs087147403231Winawk!Age16+??1.50perWKsub, -spam,"Did you hear about the new \Divorce Barbie\""? It comes with all of Ken's stuff!""", -spam,"Thanks for your Ringtone Order, Reference T91. You will be charged GBP 4 per week. You can unsubscribe at anytime by calling customer services on 09057039994", -spam,Refused a loan? Secured or Unsecured? Can't get credit? Call free now 0800 195 6669 or text back 'help' & we will!, -spam,U are subscribed to the best Mobile Content Service in the UK for ??3 per ten days until you send STOP to 83435. Helpline 08706091795., -spam,FreeMsg>FAV XMAS TONES!Reply REAL, -spam,"Win the newest ??Harry Potter and the Order of the Phoenix (Book 5) reply HARRY, answer 5 questions - chance to be the first among readers!", -spam,"UpgrdCentre Orange customer, you may now claim your FREE CAMERA PHONE upgrade for your loyalty. Call now on 0207 153 9153. Offer ends 26th July. T&C's apply. Opt-out available", -spam,Please call our customer service representative on FREEPHONE 0808 145 4742 between 9am-11pm as you have WON a guaranteed ??1000 cash or ??5000 prize!, -spam,Enjoy the jamster videosound gold club with your credits for 2 new videosounds+2 logos+musicnews! get more fun from jamster.co.uk! 16+only Help? call: 09701213186 , -spam,Do you want a new Video phone? 600 anytime any network mins 400 Inclusive Video calls AND downloads 5 per week Free delTOMORROW call 08002888812 or reply NOW, -spam,"January Male Sale! Hot Gay chat now cheaper, call 08709222922. National rate from 1.5p/min cheap to 7.8p/min peak! To stop texts call 08712460324 (10p/min)", -spam,YES! The only place in town to meet exciting adult singles is now in the UK. Txt CHAT to 86688 now! 150p/Msg., -spam,sports fans - get the latest sports news str* 2 ur mobile 1 wk FREE PLUS a FREE TONE Txt SPORT ON to 8007 www.getzed.co.uk 0870141701216+ norm 4txt/120p , -spam,Reply with your name and address and YOU WILL RECEIVE BY POST a weeks completely free accommodation at various global locations www.phb1.com ph:08700435505150p, -spam,I don't know u and u don't know me. Send CHAT to 86688 now and let's find each other! Only 150p/Msg rcvd. HG/Suite342/2Lands/Row/W1J6HL LDN. 18 years or over., -spam,Block Breaker now comes in deluxe format with new features and great graphics from T-Mobile. Buy for just ??5 by replying GET BBDELUXE and take the challenge, -spam,FROM 88066 LOST ??12 HELP, -spam,"Final Chance! Claim ur ??150 worth of discount vouchers today! Text YES to 85023 now! SavaMob, member offers mobile! T Cs SavaMob POBOX84, M263UZ. ??3.00 Subs 16", -spam,Adult 18 Content Your video will be with you shortly, -spam,FreeMsg: Hey - I'm Buffy. 25 and love to satisfy men. Home alone feeling randy. Reply 2 C my PIX! QlynnBV Help08700621170150p a msg Send stop to stop txts, -spam,"Congrats 2 mobile 3G Videophones R yours. call 09063458130 now! videochat wid ur mates, play java games, Dload polypH music, noline rentl. bx420. ip4. 5we. 150p", -spam,"44 7732584351, Do you want a New Nokia 3510i colour phone DeliveredTomorrow? With 300 free minutes to any mobile + 100 free texts + Free Camcorder reply or call 08000930705.", -spam,"HOT LIVE FANTASIES call now 08707509020 Just 20p per min NTT Ltd, PO Box 1327 Croydon CR9 5WB 0870..k", -spam,We tried to contact you re your reply to our offer of a Video Handset? 750 anytime networks mins? UNLIMITED TEXT? Camcorder? Reply or call 08000930705 NOW, -spam,Get a FREE mobile video player FREE movie. To collect text GO to 89105. Its free! Extra films can be ordered t's and c's apply. 18 yrs only, -spam,"Want to funk up ur fone with a weekly new tone reply TONES2U 2 this text. www.ringtones.co.uk, the original n best. Tones 3GBP network operator rates apply", -spam,"YOUR CHANCE TO BE ON A REALITY FANTASY SHOW call now = 08707509020 Just 20p per min NTT Ltd, PO Box 1327 Croydon CR9 5WB 0870 is a national = rate call", -spam,"WIN: We have a winner! Mr. T. Foley won an iPod! More exciting prizes soon, so keep an eye on ur mobile or visit www.win-82050.co.uk", -spam,Sunshine Quiz! Win a super Sony DVD recorder if you canname the capital of Australia? Text MQUIZ to 82277. B, -spam,Not heard from U4 a while. Call 4 rude chat private line 01223585334 to cum. Wan 2C pics of me gettin shagged then text PIX to 8552. 2End send STOP 8552 SAM xxx, -spam,PRIVATE! Your 2003 Account Statement for 07808 XXXXXX shows 800 un-redeemed S. I. M. points. Call 08719899217 Identifier Code: 41685 Expires 07/11/04, -spam,URGENT! Your Mobile number has been awarded with a ??2000 prize GUARANTEED. Call 09061790121 from land line. Claim 3030. Valid 12hrs only 150ppm, -spam,Customer Loyalty Offer:The NEW Nokia6650 Mobile from ONLY ??10 at TXTAUCTION! Txt word: START to No: 81151 & get yours Now! 4T&Ctxt TC 150p/MTmsg, -spam,Thanks for the Vote. Now sing along with the stars with Karaoke on your mobile. For a FREE link just reply with SING now., -spam,Call Germany for only 1 pence per minute! Call from a fixed line via access number 0844 861 85 85. No prepayment. Direct access!, -spam,FREE for 1st week! No1 Nokia tone 4 ur mob every week just txt NOKIA to 8007 Get txting and tell ur mates www.getzed.co.uk POBox 36504 W45WQ norm150p/tone 16+, -spam,December only! Had your mobile 11mths+? You are entitled to update to the latest colour camera mobile for Free! Call The Mobile Update Co FREE on 08002986906, -spam,"URGENT, IMPORTANT INFORMATION FOR O2 USER. TODAY IS YOUR LUCKY DAY! 2 FIND OUT WHY LOG ONTO HTTP://WWW.URAWINNER.COM THERE IS A FANTASTIC SURPRISE AWAITING FOR YOU", -spam,FREE>Ringtone! Reply REAL or POLY eg REAL1 1. PushButton 2. DontCha 3. BabyGoodbye 4. GoldDigger 5. WeBeBurnin 1st tone FREE and 6 more when u join for ??3/wk, -spam,Not heard from U4 a while. Call me now am here all night with just my knickers on. Make me beg for it like U did last time 01223585236 XX Luv Nikiyu4.net, -spam,U have won a nokia 6230 plus a free digital camera. This is what u get when u win our FREE auction. To take part send NOKIA to 83383 now. POBOX114/14TCR/W1 16, -spam,Welcome! Please reply with your AGE and GENDER to begin. e.g 24M, -spam,Dear Voucher holder Have your next meal on us. Use the following link on your pc 2 enjoy a 2 4 1 dining experiencehttp://www.vouch4me.com/etlp/dining.asp, -spam,Ringtone Club: Gr8 new polys direct to your mobile every week !, -spam,Ur cash-balance is currently 500 pounds - to maximize ur cash-in now send GO to 86688 only 150p/msg. CC: 08718720201 PO BOX 114/14 TCR/W1, -spam,No. 1 Nokia Tone 4 ur mob every week! Just txt NOK to 87021. 1st Tone FREE ! so get txtin now and tell ur friends. 150p/tone. 16 reply HL 4info, -spam,We tried to contact you re your reply to our offer of 750 mins 150 textand a new video phone call 08002988890 now or reply for free delivery tomorrow, -spam,Hope you enjoyed your new content. text stop to 61610 to unsubscribe. help:08712400602450p Provided by tones2you.co.uk, -spam,Free 1st week entry 2 TEXTPOD 4 a chance 2 win 40GB iPod or ??250 cash every wk. Txt POD to 84128 Ts&Cs www.textpod.net custcare 08712405020., -spam,Do you want 750 anytime any network mins 150 text and a NEW VIDEO phone for only five pounds per week call 08002888812 or reply for delivery tomorrow, -spam,"Hungry gay guys feeling hungry and up 4 it, now. Call 08718730555 just 10p/min. To stop texts call 08712460324 (10p/min)", -spam,"cmon babe, make me horny, *turn* me on! Txt me your fantasy now babe -) Im hot, sticky and need you now. All replies cost ??1.50. 2 cancel send STOP", -spam,XMAS iscoming & ur awarded either ??500 CD gift vouchers & free entry 2 r ??100 weekly draw txt MUSIC to 87066 TnC www.Ldew.com1win150ppmx3age16subscription , -spam,From next month get upto 50% More Calls 4 Ur standard network charge 2 activate Call 9061100010 C Wire3.net 1st4Terms PoBox84 M26 3UZ Cost ??1.50 min MobcudB more, -spam,from www.Applausestore.com MonthlySubscription@50p/msg max6/month T&CsC web age16 2stop txt stop, -spam,"For ur chance to win a ??250 wkly shopping spree TXT: SHOP to 80878. T's&C's www.txt-2-shop.com custcare 08715705022, 1x150p/wk", -spam,"Gr8 Poly tones 4 ALL mobs direct 2u rply with POLY TITLE to 8007 eg POLY BREATHE1 Titles: CRAZYIN, SLEEPINGWITH, FINEST, YMCA :getzed.co.uk POBox365O4W45WQ 300p", -spam,You are awarded a SiPix Digital Camera! call 09061221061 from landline. Delivery within 28days. T Cs Box177. M221BP. 2yr warranty. 150ppm. 16 . p p??3.99, -spam,Get your garden ready for summer with a FREE selection of summer bulbs and seeds worth ??33:50 only with The Scotsman this Saturday. To stop go2 notxt.co.uk, -spam,"Hottest pics straight to your phone!! See me getting Wet and Wanting, just for you xx Text PICS to 89555 now! txt costs 150p textoperator g696ga 18 XxX", -spam,Collect your VALENTINE'S weekend to PARIS inc Flight & Hotel + ??200 Prize guaranteed! Text: PARIS to No: 69101. www.rtf.sphosting.com, -spam,Hi if ur lookin 4 saucy daytime fun wiv busty married woman Am free all next week Chat now 2 sort time 09099726429 JANINExx Calls??1/minMobsmoreLKPOBOX177HP51FL, -spam,Your weekly Cool-Mob tones are ready to download !This weeks new Tones include: 1) Crazy Frog-AXEL F>>> 2) Akon-Lonely>>> 3) Black Eyed-Dont P >>>More info in n, -spam,Hi - this is your Mailbox Messaging SMS alert. You have 40 matches. Please call back on 09056242159 to retrieve your messages and matches cc100p/min, -spam,"This is the 2nd attempt to contract U, you have won this weeks top prize of either ??1000 cash or ??200 prize. Just call 09066361921", -spam,Fancy a shag? I do.Interested? sextextuk.com txt XXUK SUZY to 69876. Txts cost 1.50 per msg. TnCs on website. X, -spam,You have 1 new message. Please call 08715205273, -spam,This message is free. Welcome to the new & improved Sex & Dogging club! To unsubscribe from this service reply STOP. msgs@150p 18 only, -spam,"As a SIM subscriber, you are selected to receive a Bonus! Get it delivered to your door, Txt the word OK to No: 88600 to claim. 150p/msg, EXP. 30Apr", -spam,"Had your contract mobile 11 Mnths? Latest Motorola, Nokia etc. all FREE! Double Mins & Text on Orange tariffs. TEXT YES for callback, no to remove from records", -spam,"YOU 07801543489 are guaranteed the latests Nokia Phone, a 40GB iPod MP3 player or a ??500 prize! Txt word:COLLECT to No:83355! TC-LLC NY-USA 150p/Mt msgrcvd18+", -spam,Would you like to see my XXX pics they are so hot they were nearly banned in the uk!, -spam,You are a winner U have been specially selected 2 receive ??1000 cash or a 4* holiday (flights inc) speak to a live operator 2 claim 0871277810810, -spam,thesmszone.com lets you send free anonymous and masked messages..im sending this message from there..do you see the potential for abuse???, -spam,"This is the 2nd time we have tried 2 contact u. U have won the 750 Pound prize. 2 claim is easy, call 08712101358 NOW! Only 10p per min. BT-national-rate", -spam,Double Mins & Double Txt & 1/2 price Linerental on Latest Orange Bluetooth mobiles. Call MobileUpd8 for the very latest offers. 08000839402 or call2optout/LF56, -spam,"Had your mobile 10 mths? Update to the latest Camera/Video phones for FREE. KEEP UR SAME NUMBER, Get extra free mins/texts. Text YES for a call", -spam,"Congrats 2 mobile 3G Videophones R yours. call 09063458130 now! videochat wid ur mates, play java games, Dload polypH music, noline rentl. bx420. ip4. 5we. 150p", -spam,Not heard from U4 a while. Call 4 rude chat private line 01223585334 to cum. Wan 2C pics of me gettin shagged then text PIX to 8552. 2End send STOP 8552 SAM xxx, -spam,2/2 146tf150p, -spam,Call FREEPHONE 0800 542 0578 now!, -spam,Your credits have been topped up for http://www.bubbletext.com Your renewal Pin is tgxxrz, -spam,UR GOING 2 BAHAMAS! CallFREEFONE 08081560665 and speak to a live operator to claim either Bahamas cruise of??2000 CASH 18+only. To opt out txt X to 07786200117, -spam,CDs 4u: Congratulations ur awarded ??500 of CD gift vouchers or ??125 gift guaranteed & Freeentry 2 ??100 wkly draw xt MUSIC to 87066 TnCs www.ldew.com1win150ppmx3age16 , -spam,Get the official ENGLAND poly ringtone or colour flag on yer mobile for tonights game! Text TONE or FLAG to 84199. Optout txt ENG STOP Box39822 W111WX ??1.50, -spam,"Will u meet ur dream partner soon? Is ur career off 2 a flyng start? 2 find out free, txt HORO followed by ur star sign, e. g. HORO ARIES", -spam,"YOU VE WON! Your 4* Costa Del Sol Holiday or ??5000 await collection. Call 09050090044 Now toClaim. SAE, TC s, POBox334, Stockport, SK38xh, Cost??1.50/pm, Max10mins", -spam,You will be receiving this week's Triple Echo ringtone shortly. Enjoy it!, -spam,"Loan for any purpose ??500 - ??75,000. Homeowners + Tenants welcome. Have you been previously refused? We can still help. Call Free 0800 1956669 or text back 'help'", -spam,+123 Congratulations - in this week's competition draw u have won the ??1450 prize to claim just call 09050002311 b4280703. T&Cs/stop SMS 08718727868. Over 18 only 150ppm, -spam,What do U want for Xmas? How about 100 free text messages & a new video phone with half price line rental? Call free now on 0800 0721072 to find out more!, -spam,+449071512431 URGENT! This is the 2nd attempt to contact U!U have WON ??1250 CALL 09071512433 b4 050703 T&CsBCM4235WC1N3XX. callcost 150ppm mobilesvary. max??7. 50, -spam,"Free entry to the gr8prizes wkly comp 4 a chance to win the latest Nokia 8800, PSP or ??250 cash every wk.TXT GREAT to 80878 http//www.gr8prizes.com 08715705022", -spam,"500 New Mobiles from 2004, MUST GO! Txt: NOKIA to No: 89545 & collect yours today!From ONLY ??1 www.4-tc.biz 2optout 087187262701.50gbp/mtmsg18 TXTAUCTION", -spam,Dear U've been invited to XCHAT. This is our final attempt to contact u! Txt CHAT to 86688, -spam,Bought one ringtone and now getting texts costing 3 pound offering more tones etc, -spam,RECPT 1/3. You have ordered a Ringtone. Your order is being processed..., -spam,FREE for 1st week! No1 Nokia tone 4 ur mobile every week just txt NOKIA to 8077 Get txting and tell ur mates. www.getzed.co.uk POBox 36504 W45WQ 16+ norm150p/tone, -spam,"You are being contacted by our Dating Service by someone you know! To find out who it is, call from your mobile or landline 09064017305 PoBox75LDNS7 ", -spam,Kit Strip - you have been billed 150p. Netcollex Ltd. PO Box 1013 IG11 OJA, -spam,U 447801259231 have a secret admirer who is looking 2 make contact with U-find out who they R*reveal who thinks UR so special-call on 09058094597, -spam,Text & meet someone sexy today. U can find a date or even flirt its up to U. Join 4 just 10p. REPLY with NAME & AGE eg Sam 25. 18 -msg recd@thirtyeight pence, -spam,You have an important customer service announcement. Call FREEPHONE 0800 542 0825 now!, -spam,You have won a Nokia 7250i. This is what you get when you win our FREE auction. To take part send Nokia to 86021 now. HG/Suite342/2Lands Row/W1JHL 16+, -spam,"To review and KEEP the fantastic Nokia N-Gage game deck with Club Nokia, go 2 www.cnupdates.com/newsletter. unsubscribe from alerts reply with the word OUT", -spam,U have a secret admirer who is looking 2 make contact with U-find out who they R*reveal who thinks UR so special-call on 09058094599, -spam,BIG BROTHER ALERT! The computer has selected u for 10k cash or #150 voucher. Call 09064018838. NTT PO Box CRO1327 18+ BT Landline Cost 150ppm mobiles vary, -spam,Dear Dave this is your final notice to collect your 4* Tenerife Holiday or #5000 CASH award! Call 09061743806 from landline. TCs SAE Box326 CW25WX 150ppm, -spam,"URGENT! You have won a 1 week FREE membership in our ??100,000 Prize Jackpot! Txt the word: CLAIM to No: 81010 T&C www.dbuk.net LCCLTD POBOX 4403LDNW1A7RW18", -spam,Do you want a New Nokia 3510i colour phone DeliveredTomorrow? With 300 free minutes to any mobile + 100 free texts + Free Camcorder reply or call 08000930705., -spam,EASTENDERS TV Quiz. What FLOWER does DOT compare herself to? D= VIOLET E= TULIP F= LILY txt D E or F to 84025 NOW 4 chance 2 WIN ??100 Cash WKENT/150P16+, -spam,GENT! We are trying to contact you. Last weekends draw shows that you won a ??1000 prize GUARANTEED. Call 09064012160. Claim Code K52. Valid 12hrs only. 150ppm , -spam,"Thanks for your ringtone order, reference number X49. Your mobile will be charged 4.50. Should your tone not arrive please call customer services 09065989182. From: [colour=red]text[/colour]TXTstar", -spam,"HOT LIVE FANTASIES call now 08707509020 Just 20p per min NTT Ltd, PO Box 1327 Croydon CR9 5WB 0870 is a national rate call", -spam,SMS. ac sun0819 posts HELLO:\You seem cool, -spam,8007 25p 4 Alfie Moon's Children in Need song on ur mob. Tell ur m8s. Txt TONE CHARITY to 8007 for nokias or POLY CHARITY for polys :zed 08701417012 profit 2 charity , -spam,URGENT! Your Mobile number has been awarded with a ??2000 prize GUARANTEED. Call 09058094454 from land line. Claim 3030. Valid 12hrs only, -spam,Had your mobile 11mths ? Update for FREE to Oranges latest colour camera mobiles & unlimited weekend calls. Call Mobile Upd8 on freefone 08000839402 or 2StopTxt, -spam,Please CALL 08712402972 immediately as there is an urgent message waiting for you, -spam,FreeMsg Hi baby wow just got a new cam moby. Wanna C a hot pic? or Fancy a chat?Im w8in 4uTxt / rply CHAT to 82242 Hlp 08712317606 Msg150p 2rcv, -spam,Great News! Call FREEFONE 08006344447 to claim your guaranteed ??1000 CASH or ??2000 gift. Speak to a live operator NOW!, -spam,"Hi babe its Jordan, how r u? Im home from abroad and lonely, text me back if u wanna chat xxSP visionsms.com Text stop to stopCost 150p 08712400603", -spam,Hi its LUCY Hubby at meetins all day Fri & I will B alone at hotel U fancy cumin over? Pls leave msg 2day 09099726395 Lucy x Calls??1/minMobsmoreLKPOBOX177HP51FL, -spam,ringtoneking 84484, -spam,YOU HAVE WON! As a valued Vodafone customer our computer has picked YOU to win a ??150 prize. To collect is easy. Just call 09061743386, -spam,Talk sexy!! Make new friends or fall in love in the worlds most discreet text dating service. Just text VIP to 83110 and see who you could meet., -spam,Dear 0776xxxxxxx U've been invited to XCHAT. This is our final attempt to contact u! Txt CHAT to 86688 150p/MsgrcvdHG/Suite342/2Lands/Row/W1J6HL LDN 18yrs , -spam,22 days to kick off! For Euro2004 U will be kept up to date with the latest news and results daily. To be removed send GET TXT STOP to 83222, -spam,"Ur balance is now ??600. Next question: Complete the landmark, Big, A. Bob, B. Barry or C. Ben ?. Text A, B or C to 83738. Good luck!", -spam,dating:i have had two of these. Only started after i sent a text to talk sport radio last week. Any connection do you think or coincidence?, -spam,How come it takes so little time for a child who is afraid of the dark to become a teenager who wants to stay out all night?, -spam,FREE entry into our ??250 weekly comp just send the word ENTER to 88877 NOW. 18 T&C www.textcomp.com, -spam,Get the official ENGLAND poly ringtone or colour flag on yer mobile for tonights game! Text TONE or FLAG to 84199. Optout txt ENG STOP Box39822 W111WX ??1.50, -spam,You are a winner U have been specially selected 2 receive ??1000 or a 4* holiday (flights inc) speak to a live operator 2 claim 0871277810910p/min (18+) , -spam,Valentines Day Special! Win over ??1000 in our quiz and take your partner on the trip of a lifetime! Send GO to 83600 now. 150p/msg rcvd. CustCare:08718720201., -spam,"SIX chances to win CASH! From 100 to 20,000 pounds txt> CSH11 and send to 87575. Cost 150p/day, 6days, 16+ TsandCs apply Reply HL 4 info", -spam,U 447801259231 have a secret admirer who is looking 2 make contact with U-find out who they R*reveal who thinks UR so special-call on 09058094597, -spam,85233 FREE>Ringtone!Reply REAL, -spam,500 free text msgs. Just text ok to 80488 and we'll credit your account, -spam,Well done ENGLAND! Get the official poly ringtone or colour flag on yer mobile! text TONE or FLAG to 84199 NOW! Opt-out txt ENG STOP. Box39822 W111WX ??1.50, -spam,"Hi babe its Chloe, how r u? I was smashed on saturday night, it was great! How was your weekend? U been missing me? SP visionsms.com Text stop to stop 150p/text", -spam,Congratulations ur awarded either ??500 of CD gift vouchers & Free entry 2 our ??100 weekly draw txt MUSIC to 87066 TnCs www.Ldew.com 1 win150ppmx3age16, -spam,"Fantasy Football is back on your TV. Go to Sky Gamestar on Sky Active and play ??250k Dream Team. Scoring starts on Saturday, so register now!SKY OPT OUT to 88088", -spam,Please call our customer service representative on FREEPHONE 0808 145 4742 between 9am-11pm as you have WON a guaranteed ??1000 cash or ??5000 prize!, -spam,"accordingly. I repeat, just text the word ok on your mobile phone and send", -spam,Want the latest Video handset? 750 anytime any network mins? Half price line rental? Reply or call 08000930705 for delivery tomorrow, -spam,FREE for 1st week! No1 Nokia tone 4 ur mob every week just txt NOKIA to 8007 Get txting and tell ur mates www.getzed.co.uk POBox 36504 W45WQ norm150p/tone 16+, -spam,"URGENT. Important information for 02 user. Today is your lucky day! 2 find out why , log onto http://www.urawinner.com there is a fantastic surprise awaiting you !", -spam,Ur cash-balance is currently 500 pounds - to maximize ur cash-in now send COLLECT to 83600 only 150p/msg. CC: 08718720201 PO BOX 114/14 TCR/W1, -spam,Text BANNEDUK to 89555 to see! cost 150p textoperator g696ga 18+ XXX, -spam,"500 New Mobiles from 2004, MUST GO! Txt: NOKIA to No: 89545 & collect yours today!From ONLY ??1 www.4-tc.biz 2optout 087187262701.50gbp/mtmsg18", -spam,"You are being contacted by our dating service by someone you know! To find out who it is, call from a land line 09050000878. PoBox45W2TG150P", -spam,Knock Knock Txt whose there to 80082 to enter r weekly draw 4 a ??250 gift voucher 4 a store of yr choice. T&Cs www.tkls.com age16 to stoptxtstop??1.50/week, -spam,"09066362231 URGENT! Your mobile No 07xxxxxxxxx won a ??2,000 bonus caller prize on 02/06/03! this is the 2nd attempt to reach YOU! call 09066362231 ASAP!", -spam,Free Top ringtone -sub to weekly ringtone-get 1st week free-send SUBPOLY to 81618-?3 per week-stop sms-08718727870, -spam,"Hi ya babe x u 4goten bout me?' scammers getting smart..Though this is a regular vodafone no, if you respond you get further prem rate msg/subscription. Other nos used also. Beware!", -spam,Hello. We need some posh birds and chaps to user trial prods for champneys. Can i put you down? I need your address and dob asap. Ta r, -spam,Ur ringtone service has changed! 25 Free credits! Go to club4mobiles.com to choose content now! Stop? txt CLUB STOP to 87070. 150p/wk Club4 PO Box1146 MK45 2WT, -spam,"You have won ?1,000 cash or a ?2,000 prize! To claim, call09050000327", -spam,Todays Voda numbers ending 7548 are selected to receive a $350 award. If you have a match please call 08712300220 quoting claim code 4041 standard rates app, -spam,"Today's Offer! Claim ur ??150 worth of discount vouchers! Text YES to 85023 now! SavaMob, member offers mobile! T Cs 08717898035. ??3.00 Sub. 16 . Unsub reply X", -spam,Send a logo 2 ur lover - 2 names joined by a heart. Txt LOVE NAME1 NAME2 MOBNO eg LOVE ADAM EVE 07123456789 to 87077 Yahoo! POBox36504W45WQ TxtNO 4 no ads 150p., -spam,Hi 07734396839 IBH Customer Loyalty Offer: The NEW NOKIA6600 Mobile from ONLY ??10 at TXTAUCTION!Txt word:START to No:81151 & get Yours Now!4T&, -spam,Someone U know has asked our dating service 2 contact you! Cant Guess who? CALL 09058091854 NOW all will be revealed. PO BOX385 M6 6WU, -spam,"Free Msg: get Gnarls Barkleys \Crazy\"" ringtone TOTALLY FREE just reply GO to this message right now!""", -spam,"Fantasy Football is back on your TV. Go to Sky Gamestar on Sky Active and play ??250k Dream Team. Scoring starts on Saturday, so register now!SKY OPT OUT to 88088", -spam,Sex up ur mobile with a FREE sexy pic of Jordan! Just text BABE to 88600. Then every wk get a sexy celeb! PocketBabe.co.uk 4 more pics. 16 ??3/wk 087016248, -spam,"tddnewsletter@emc1.co.uk (More games from TheDailyDraw) Dear Helen, Dozens of Free Games - with great prizesWith..", -spam,RT-KIng Pro Video Club>> Need help? info@ringtoneking.co.uk or call 08701237397 You must be 16+ Club credits redeemable at www.ringtoneking.co.uk! Enjoy!, -spam,"Urgent -call 09066649731from Landline. Your complimentary 4* Ibiza Holiday or ??10,000 cash await collection SAE T&Cs PO BOX 434 SK3 8WP 150ppm 18+", -spam,Mobile Club: Choose any of the top quality items for your mobile. 7cfca1a, -spam,You have an important customer service announcement. Call FREEPHONE 0800 542 0825 now!, -spam,You have WON a guaranteed ??1000 cash or a ??2000 prize. To claim yr prize call our customer service representative on 08714712412 between 10am-7pm Cost 10p, -spam,"0A$NETWORKS allow companies to bill for SMS, so they are responsible for their \suppliers\""", -spam,18 days to Euro2004 kickoff! U will be kept informed of all the latest news and results daily. Unsubscribe send GET EURO STOP to 83222., -spam,"XXXMobileMovieClub: To use your credit, click the WAP link in the next txt message or click here>> http://wap. xxxmobilemovieclub.com?n=QJKGIGHJJGCBL", -spam,Bored housewives! Chat n date now! 0871750.77.11! BT-national rate 10p/min only from landlines!, -spam,Missed call alert. These numbers called but left no message. 07008009200, -spam,TheMob>Yo yo yo-Here comes a new selection of hot downloads for our members to get for FREE! Just click & open the next link sent to ur fone..., -spam,"ou are guaranteed the latest Nokia Phone, a 40GB iPod MP3 player or a ??500 prize! Txt word: COLLECT to No: 83355! IBHltd LdnW15H 150p/Mtmsgrcvd18", -spam,"3 FREE TAROT TEXTS! Find out about your love life now! TRY 3 FOR FREE! Text CHANCE to 85555 16 only! After 3 Free, Msgs ??1.50 each", -spam,"You can stop further club tones by replying \STOP MIX\"" See my-tone.com/enjoy. html for terms. Club tones cost GBP4.50/week. MFL", -spam,Show ur colours! Euro 2004 2-4-1 Offer! Get an England Flag & 3Lions tone on ur phone! Click on the following service message for info!, -spam,Free msg: Single? Find a partner in your area! 1000s of real people are waiting to chat now!Send CHAT to 62220Cncl send STOPCS 08717890890??1.50 per msg, -spam,"\For the most sparkling shopping breaks from 45 per person; call 0121 2025050 or visit www.shortbreaks.org.uk\""""", -spam,Someone has contacted our dating service and entered your phone because they fancy you! To find out who it is call from a landline 09111032124 . PoBox12n146tf150p, -spam,Todays Voda numbers ending 5226 are selected to receive a ?350 award. If you hava a match please call 08712300220 quoting claim code 1131 standard rates app , -spam,New TEXTBUDDY Chat 2 horny guys in ur area 4 just 25p Free 2 receive Search postcode or at gaytextbuddy.com. TXT ONE name to 89693, -spam,Hi - this is your Mailbox Messaging SMS alert. You have 4 messages. You have 21 matches. Please call back on 09056242159 to retrieve your messages and matches, -spam,"YOUR CHANCE TO BE ON A REALITY FANTASY SHOW call now = 08707509020 Just 20p per min NTT Ltd, PO Box 1327 Croydon CR9 5WB 0870 is a national = rate call.", -spam,December only! Had your mobile 11mths+? You are entitled to update to the latest colour camera mobile for Free! Call The Mobile Update VCo FREE on 08002986906 , -spam,"Get 3 Lions England tone, reply lionm 4 mono or lionp 4 poly. 4 more go 2 www.ringtones.co.uk, the original n best. Tones 3GBP network operator rates apply", -spam,Hey I am really horny want to chat or see me naked text hot to 69698 text charged at 150pm to unsubscribe text stop 69698, -spam,Do you want a New Nokia 3510i Colour Phone Delivered Tomorrow? With 200 FREE minutes to any mobile + 100 FREE text + FREE camcorder Reply or Call 8000930705, -spam,FreeMsg Today's the day if you are ready! I'm horny & live in your town. I love sex fun & games! Netcollex Ltd 08700621170150p per msg reply Stop to end, -spam,URGENT! Your Mobile number has been awarded with a ??2000 Bonus Caller Prize. Call 09058095201 from land line. Valid 12hrs only, -spam,URGENT! We are trying to contact U. Todays draw shows that you have won a ??800 prize GUARANTEED. Call 09050001808 from land line. Claim M95. Valid12hrs only, -spam,Am new 2 club & dont fink we met yet Will B gr8 2 C U Please leave msg 2day wiv ur area 09099726553 reply promised CARLIE x Calls??1/minMobsmore LKPOBOX177HP51FL, -spam,Bored housewives! Chat n date now! 0871750.77.11! BT-national rate 10p/min only from landlines!, -spam,Wanna get laid 2nite? Want real Dogging locations sent direct to ur mobile? Join the UK's largest Dogging Network. Txt PARK to 69696 now! Nyt. ec2a. 3lp ??1.50/msg, -spam,4mths half price Orange line rental & latest camera phones 4 FREE. Had your phone 11mths ? Call MobilesDirect free on 08000938767 to update now! or2stoptxt, -spam,"We know someone who you know that fancies you. Call 09058097218 to find out who. POBox 6, LS15HB 150p", -spam,SMS AUCTION - A BRAND NEW Nokia 7250 is up 4 auction today! Auction is FREE 2 join & take part! Txt NOKIA to 86021 now!, -spam,Dear 0776xxxxxxx U've been invited to XCHAT. This is our final attempt to contact u! Txt CHAT to 86688 150p/MsgrcvdHG/Suite342/2Lands/Row/W1J6HL LDN 18yrs, -spam,Do you want 750 anytime any network mins 150 text and a NEW video phone for only five pounds per week call 08000776320 now or reply for delivery Tomorrow, -spam,Please call our customer service representative on FREEPHONE 0808 145 4742 between 9am-11pm as you have WON a guaranteed ??1000 cash or ??5000 prize!, -spam,"U can WIN ??100 of Music Gift Vouchers every week starting NOW Txt the word DRAW to 87066 TsCs www.ldew.com SkillGame,1Winaweek, age16.150ppermessSubscription", -spam,"URGENT! Your Mobile No 07808726822 was awarded a ??2,000 Bonus Caller Prize on 02/09/03! This is our 2nd attempt to contact YOU! Call 0871-872-9758 BOX95QU", -spam,"Hi, this is Mandy Sullivan calling from HOTMIX FM...you are chosen to receive ??5000.00 in our Easter Prize draw.....Please telephone 09041940223 to claim before 29/03/05 or your prize will be transferred to someone else....", -spam,Double your mins & txts on Orange or 1/2 price linerental - Motorola and SonyEricsson with B/Tooth FREE-Nokia FREE Call MobileUpd8 on 08000839402 or2optout/HV9D, -spam,Please CALL 08712402578 immediately as there is an urgent message waiting for you, -spam,"SMSSERVICES. for yourinclusive text credits, pls goto www.comuk.net login= 3qxj9 unsubscribe with STOP, no extra charge. help 08702840625.COMUK. 220-CM2 9AE", -spam,18 days to Euro2004 kickoff! U will be kept informed of all the latest news and results daily. Unsubscribe send GET EURO STOP to 83222., -spam,Ur HMV Quiz cash-balance is currently ??500 - to maximize ur cash-in now send HMV1 to 86688 only 150p/msg, -spam,Had your mobile 10 mths? Update to latest Orange camera/video phones for FREE. Save ??s with Free texts/weekend calls. Text YES for a callback orno to opt out, -spam,"Orange brings you ringtones from all time Chart Heroes, with a free hit each week! Go to Ringtones & Pics on wap. To stop receiving these tips reply STOP.", -spam,LORD OF THE RINGS:RETURN OF THE KING in store NOW!REPLY LOTR by 2 June 4 Chance 2 WIN LOTR soundtrack CDs StdTxtRate. Reply STOP to end txts, -spam,PRIVATE! Your 2003 Account Statement for shows 800 un-redeemed S. I. M. points. Call 08718738002 Identifier Code: 48922 Expires 21/11/04, -spam,U have a Secret Admirer who is looking 2 make contact with U-find out who they R*reveal who thinks UR so special-call on 09065171142-stopsms-08718727870150ppm, -spam,Txt: CALL to No: 86888 & claim your reward of 3 hours talk time to use from your phone now! Subscribe6GBP/mnth inc 3hrs 16 stop?txtStop www.gamb.tv, -spam,You are awarded a SiPix Digital Camera! call 09061221061 from landline. Delivery within 28days. T Cs Box177. M221BP. 2yr warranty. 150ppm. 16 . p p??3.99, -spam,Someone U know has asked our dating service 2 contact you! Cant Guess who? CALL 09058091854 NOW all will be revealed. PO BOX385 M6 6WU, -spam,ASKED 3MOBILE IF 0870 CHATLINES INCLU IN FREE MINS. INDIA CUST SERVs SED YES. L8ER GOT MEGA BILL. 3 DONT GIV A SHIT. BAILIFF DUE IN DAYS. I O ??250 3 WANT ??800, -spam,Congratulations ur awarded 500 of CD vouchers or 125gift guaranteed & Free entry 2 100 wkly draw txt MUSIC to 87066 TnCs www.Ldew.com1win150ppmx3age16, -spam,Moby Pub Quiz.Win a ??100 High Street prize if u know who the new Duchess of Cornwall will be? Txt her first name to 82277.unsub STOP ??1.50 008704050406 SP, -spam,Gr8 new service - live sex video chat on your mob - see the sexiest dirtiest girls live on ur phone - 4 details text horny to 89070 to cancel send STOP to 89070, -spam,1st wk FREE! Gr8 tones str8 2 u each wk. Txt NOKIA ON to 8007 for Classic Nokia tones or HIT ON to 8007 for Polys. Nokia/150p Poly/200p 16+, -spam,You have won a guaranteed ??200 award or even ??1000 cashto claim UR award call free on 08000407165 (18+) 2 stop getstop on 88222 PHP. RG21 4JX, -spam,"In The Simpsons Movie released in July 2007 name the band that died at the start of the film? A-Green Day, B-Blue Day, C-Red Day. (Send A, B or C)", -spam,it to 80488. Your 500 free text messages are valid until 31 December 2005., -spam,Jamster! To get your free wallpaper text HEART to 88888 now! T&C apply. 16 only. Need Help? Call 08701213186., -spam,Sunshine Quiz Wkly Q! Win a top Sony DVD player if u know which country Liverpool played in mid week? Txt ansr to 82277. ??1.50 SP:Tyrone, -spam,Ur cash-balance is currently 500 pounds - to maximize ur cash-in now send CASH to 86688 only 150p/msg. CC: 08718720201 PO BOX 114/14 TCR/W1, -spam,Moby Pub Quiz.Win a ??100 High Street prize if u know who the new Duchess of Cornwall will be? Txt her first name to 82277.unsub STOP ??1.50 008704050406 SP Arrow, -spam,"1000's flirting NOW! Txt GIRL or BLOKE & ur NAME & AGE, eg GIRL ZOE 18 to 8007 to join and get chatting!", -spam,Free video camera phones with Half Price line rental for 12 mths and 500 cross ntwk mins 100 txts. Call MobileUpd8 08001950382 or Call2OptOut/674&, -spam,PRIVATE! Your 2003 Account Statement for 07808247860 shows 800 un-redeemed S. I. M. points. Call 08719899229 Identifier Code: 40411 Expires 06/11/04, -spam,"Free-message: Jamster!Get the crazy frog sound now! For poly text MAD1, for real text MAD2 to 88888. 6 crazy sounds for just 3 GBP/week! 16+only! T&C's apply", -spam,* FREE* POLYPHONIC RINGTONE Text SUPER to 87131 to get your FREE POLY TONE of the week now! 16 SN PoBox202 NR31 7ZS subscription 450pw, -spam,Camera - You are awarded a SiPix Digital Camera! call 09061221066 fromm landline. Delivery within 28 days., -spam,wamma get laid?want real doggin locations sent direct to your mobile? join the UKs largest dogging network. txt dogs to 69696 now!nyt. ec2a. 3lp ??1.50/msg., -spam,Want explicit SEX in 30 secs? Ring 02073162414 now! Costs 20p/min, -spam,"FreeMsg Why haven't you replied to my text? I'm Randy, sexy, female and live local. Luv to hear from u. Netcollex Ltd 08700621170150p per msg reply Stop to end", -spam,"Today's Offer! Claim ur ??150 worth of discount vouchers! Text YES to 85023 now! SavaMob, member offers mobile! T Cs 08717898035. ??3.00 Sub. 16 . Unsub reply X", -spam,"u r subscribed 2 TEXTCOMP 250 wkly comp. 1st wk?s free question follows, subsequent wks charged@150p/msg.2 unsubscribe txt STOP 2 84128,custcare 08712405020", -spam,As a Registered Subscriber yr draw 4 a ??100 gift voucher will b entered on receipt of a correct ans. When are the next olympics. Txt ans to 80062, -spam,You will recieve your tone within the next 24hrs. For Terms and conditions please see Channel U Teletext Pg 750, -spam,URGENT! We are trying to contact U. Todays draw shows that you have won a ??800 prize GUARANTEED. Call 09050003091 from land line. Claim C52. Valid12hrs only, -spam,"Congrats! 1 year special cinema pass for 2 is yours. call 09061209465 now! C Suprman V, Matrix3, StarWars3, etc all 4 FREE! bx420-ip4-5we. 150pm. Dont miss out!", -spam,Ever thought about living a good life with a perfect partner? Just txt back NAME and AGE to join the mobile community. (100p/SMS), -spam,We have new local dates in your area - Lots of new people registered in YOUR AREA. Reply DATE to start now! 18 only www.flirtparty.us REPLYS150, -spam,Had your mobile 11mths ? Update for FREE to Oranges latest colour camera mobiles & unlimited weekend calls. Call Mobile Upd8 on freefone 08000839402 or 2StopTx, -spam,FREE MSG:We billed your mobile number by mistake from shortcode 83332.Please call 08081263000 to have charges refunded.This call will be free from a BT landline, -spam,"Had your contract mobile 11 Mnths? Latest Motorola, Nokia etc. all FREE! Double Mins & Text on Orange tariffs. TEXT YES for callback, no to remove from records.", -spam,lyricalladie(21/F) is inviting you to be her friend. Reply YES-910 or NO-910. See her: www.SMS.ac/u/hmmross STOP? Send STOP FRND to 62468, -spam,"Someone U know has asked our dating service 2 contact you! Cant Guess who? CALL 09058097189 NOW all will be revealed. POBox 6, LS15HB 150p ", -spam,"You have been specially selected to receive a \3000 award! Call 08712402050 BEFORE the lines close. Cost 10ppm. 16+. T&Cs apply. AG Promo""", -spam,Cashbin.co.uk (Get lots of cash this weekend!) www.cashbin.co.uk Dear Welcome to the weekend We have got our biggest and best EVER cash give away!! These.., -spam,"Latest Nokia Mobile or iPOD MP3 Player +??400 proze GUARANTEED! Reply with: WIN to 83355 now! Norcorp Ltd.??1,50/Mtmsgrcvd18+", -spam,Urgent! Please call 09061213237 from landline. ??5000 cash or a luxury 4* Canary Islands Holiday await collection. T&Cs SAE PO Box 177. M227XY. 150ppm. 16+, -spam,Free video camera phones with Half Price line rental for 12 mths and 500 cross ntwk mins 100 txts. Call MobileUpd8 08001950382 or Call2OptOut/674, -spam,Want a new Video Phone? 750 anytime any network mins? Half price line rental free text for 3 months? Reply or call 08000930705 for free delivery, -spam,"Urgent! call 09061749602 from Landline. Your complimentary 4* Tenerife Holiday or ??10,000 cash await collection SAE T&Cs BOX 528 HP20 1YF 150ppm 18+", -spam,Text PASS to 69669 to collect your polyphonic ringtones. Normal gprs charges apply only. Enjoy your tones, -spam,GENT! We are trying to contact you. Last weekends draw shows that you won a ??1000 prize GUARANTEED. Call 09064012160. Claim Code K52. Valid 12hrs only. 150ppm, -spam,Buy Space Invaders 4 a chance 2 win orig Arcade Game console. Press 0 for Games Arcade (std WAP charge) See o2.co.uk/games 4 Terms + settings. No purchase, -spam,"Twinks, bears, scallies, skins and jocks are calling now. Don't miss the weekend's fun. Call 08712466669 at 10p/min. 2 stop texts call 08712460324(nat rate)", -spam,"U can WIN ??100 of Music Gift Vouchers every week starting NOW Txt the word DRAW to 87066 TsCs www.Idew.com SkillGame, 1Winaweek, age16. 150ppermessSubscription", -spam,"URGENT! Your Mobile No. was awarded ??2000 Bonus Caller Prize on 5/9/03 This is our final try to contact U! Call from Landline 09064019788 BOX42WR29C, 150PPM", -spam,Wanna have a laugh? Try CHIT-CHAT on your mobile now! Logon by txting the word: CHAT and send it to No: 8883 CM PO Box 4217 London W1A 6ZF 16+ 118p/msg rcvd, -spam,08714712388 between 10am-7pm Cost 10p, -spam,U have a secret admirer. REVEAL who thinks U R So special. Call 09065174042. To opt out Reply REVEAL STOP. 1.50 per msg recd. Cust care 07821230901, -spam,SMS SERVICES For your inclusive text credits pls gotto www.comuk.net login 3qxj9 unsubscribe with STOP no extra charge help 08702840625 comuk.220cm2 9AE, -spam,"Urgent! call 09066612661 from landline. Your complementary 4* Tenerife Holiday or ??10,000 cash await collection SAE T&Cs PO Box 3 WA14 2PX 150ppm 18+ Sender: Hol Offer", -spam,SMS AUCTION You have won a Nokia 7250i. This is what you get when you win our FREE auction. To take part send Nokia to 86021 now. HG/Suite342/2Lands Row/W1JHL 16+, -spam,Todays Vodafone numbers ending with 4882 are selected to a receive a ??350 award. If your number matches call 09064019014 to receive your ??350 award., -spam,"Urgent UR awarded a complimentary trip to EuroDisinc Trav, Aco&Entry41 Or ??1000. To claim txt DIS to 87121 18+6*??1.50(moreFrmMob. ShrAcomOrSglSuplt)10, LS1 3AJ", -spam,WIN a ??200 Shopping spree every WEEK Starting NOW. 2 play text STORE to 88039. SkilGme. TsCs08714740323 1Winawk! age16 ??1.50perweeksub., -spam,"Want to funk up ur fone with a weekly new tone reply TONES2U 2 this text. www.ringtones.co.uk, the original n best. Tones 3GBP network operator rates apply", -spam,"Double mins and txts 4 6months FREE Bluetooth on Orange. Available on Sony, Nokia Motorola phones. Call MobileUpd8 on 08000839402 or call2optout/N9DX", -spam,You have WON a guaranteed ??1000 cash or a ??2000 prize. To claim yr prize call our customer service representative on 08714712379 between 10am-7pm Cost 10p, -spam,Ur cash-balance is currently 500 pounds - to maximize ur cash-in now send GO to 86688 only 150p/meg. CC: 08718720201 HG/Suite342/2lands Row/W1j6HL, -spam,WIN URGENT! Your mobile number has been awarded with a ??2000 prize GUARANTEED call 09061790121 from land line. claim 3030 valid 12hrs only 150ppm , -spam,CALL 09090900040 & LISTEN TO EXTREME DIRTY LIVE CHAT GOING ON IN THE OFFICE RIGHT NOW TOTAL PRIVACY NO ONE KNOWS YOUR [sic] LISTENING 60P MIN 24/7MP 0870753331018+, -spam,"Mila, age23, blonde, new in UK. I look sex with UK guys. if u like fun with me. Text MTALK to 69866.18 . 30pp/txt 1st 5free. ??1.50 increments. Help08718728876", -spam,Can U get 2 phone NOW? I wanna chat 2 set up meet Call me NOW on 09096102316 U can cum here 2moro Luv JANE xx Calls??1/minmoremobsEMSPOBox45PO139WA, -spam,"As a valued customer, I am pleased to advise you that following recent review of your Mob No. you are awarded with a ??1500 Bonus Prize, call 09066364589", -spam,"Hi, the SEXYCHAT girls are waiting for you to text them. Text now for a great night chatting. send STOP to stop this service", -spam,"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", -spam,"As a valued customer, I am pleased to advise you that following recent review of your Mob No. you are awarded with a ??1500 Bonus Prize, call 09066368470", -spam,"Free msg. Sorry, a service you ordered from 81303 could not be delivered as you do not have sufficient credit. Please top up to receive the service.", -spam,"Dear Voucher Holder, To claim this weeks offer, at you PC please go to http://www.e-tlp.co.uk/expressoffer Ts&Cs apply. To stop texts, txt STOP to 80062", -spam,You have won a Nokia 7250i. This is what you get when you win our FREE auction. To take part send Nokia to 86021 now. HG/Suite342/2Lands Row/W1JHL 16+ , -spam,We tried to contact you re your reply to our offer of a Video Phone 750 anytime any network mins Half Price Line Rental Camcorder Reply or call 08000930705, -spam,Get a brand new mobile phone by being an agent of The Mob! Plus loads more goodies! For more info just text MAT to 87021., -spam,"I want some cock! My hubby's away, I need a real man 2 satisfy me. Txt WIFE to 89938 for no strings action. (Txt STOP 2 end, txt rec ??1.50ea. OTBox 731 LA1 7WS. )", -spam,URGENT! We are trying to contact U. Todays draw shows that you have won a ??800 prize GUARANTEED. Call 09050001295 from land line. Claim A21. Valid 12hrs only, -spam,You can donate ??2.50 to UNICEF's Asian Tsunami disaster support fund by texting DONATE to 864233. ??2.50 will be added to your next bill, -spam,"TheMob> Check out our newest selection of content, Games, Tones, Gossip, babes and sport, Keep your mobile fit and funky text WAP to 82468", -spam,Sunshine Quiz Wkly Q! Win a top Sony DVD player if u know which country the Algarve is in? Txt ansr to 82277. ??1.50 SP:Tyrone, -spam,"For your chance to WIN a FREE Bluetooth Headset then simply reply back with \ADP\""""", -spam,You have won a Nokia 7250i. This is what you get when you win our FREE auction. To take part send Nokia to 86021 now. HG/Suite342/2Lands Row/W1JHL 16+, -spam,"Hi there, 2nights ur lucky night! Uve been invited 2 XCHAT, the Uks wildest chat! Txt CHAT to 86688 now! 150p/MsgrcvdHG/Suite342/2Lands/Row/W1J6HL LDN 18yrs", -spam,"New Tones This week include: 1)McFly-All Ab.., 2) Sara Jorge-Shock.. 3) Will Smith-Switch.. To order follow instructions on next message", -spam,Our records indicate u maybe entitled to 5000 pounds in compensation for the Accident you had. To claim 4 free reply with CLAIM to this msg. 2 stop txt STOP, -spam,"U can WIN ??100 of Music Gift Vouchers every week starting NOW Txt the word DRAW to 87066 TsCs www.Idew.com SkillGame, 1Winaweek, age16. 150ppermessSubscription", -spam,Our brand new mobile music service is now live. The free music player will arrive shortly. Just install on your phone to browse content from the top artists., -spam,Join the UK's horniest Dogging service and u can have sex 2nite!. Just sign up and follow the instructions. Txt ENTRY to 69888 now! Nyt.EC2A.3LP.msg@150p, -spam,"Orange customer, you may now claim your FREE CAMERA PHONE upgrade for your loyalty. Call now on 0207 153 9996. Offer ends 14thMarch. T&C's apply. Opt-out availa", -spam,We tried to contact you re your reply to our offer of a Video Handset? 750 anytime any networks mins? UNLIMITED TEXT? Camcorder? Reply or call 08000930705 NOW, -spam,"Claim a 200 shopping spree, just call 08717895698 now! Have you won! MobStoreQuiz10ppm", -spam,Dear Voucher Holder 2 claim your 1st class airport lounge passes when using Your holiday voucher call 08704439680. When booking quote 1st class x 2, -spam,Promotion Number: 8714714 - UR awarded a City Break and could WIN a ??200 Summer Shopping spree every WK. Txt STORE to 88039 . SkilGme. TsCs087147403231Winawk!Age16 ??1.50perWKsub, -spam,"URGENT! Your mobile was awarded a ??1,500 Bonus Caller Prize on 27/6/03. Our final attempt 2 contact U! Call 08714714011", -spam,This msg is for your mobile content order It has been resent as previous attempt failed due to network error Queries to customersqueries@netvision.uk.com, -spam,83039 62735=??450 UK Break AccommodationVouchers terms & conditions apply. 2 claim you mustprovide your claim number which is 15541 , -spam,"URGENT!! Your 4* Costa Del Sol Holiday or ??5000 await collection. Call 09050090044 Now toClaim. SAE, TC s, POBox334, Stockport, SK38xh, Cost??1.50/pm, Max10mins", -spam,Don't b floppy... b snappy & happy! Only gay chat service with photo upload call 08718730666 (10p/min). 2 stop our texts call 08712460324, -spam,tells u 2 call 09066358152 to claim ??5000 prize. U have 2 enter all ur mobile & personal details @ the prompts. Careful!, -spam,Someonone you know is trying to contact you via our dating service! To find out who it could be call from your mobile or landline 09064015307 BOX334SK38ch , -spam,"FREE GAME. Get Rayman Golf 4 FREE from the O2 Games Arcade. 1st get UR games settings. Reply POST, then save & activ8. Press 0 key for Arcade. Termsapply", -spam,5p 4 alfie Moon's Children in need song on ur mob. Tell ur m8s. Txt Tone charity to 8007 for Nokias or Poly charity for polys: zed 08701417012 profit 2 charity., -spam,"Latest News! Police station toilet stolen, cops have nothing to go on!", -spam,No 1 POLYPHONIC tone 4 ur mob every week! Just txt PT2 to 87575. 1st Tone FREE ! so get txtin now and tell ur friends. 150p/tone. 16 reply HL 4info, -spam,IMPORTANT INFORMATION 4 ORANGE USER 0796XXXXXX. TODAY IS UR LUCKY DAY!2 FIND OUT WHY LOG ONTO http://www.urawinner.com THERE'S A FANTASTIC PRIZEAWAITING YOU!, -spam,Camera - You are awarded a SiPix Digital Camera! call 09061221066 fromm landline. Delivery within 28 days, -spam,Todays Voda numbers ending 1225 are selected to receive a ??50award. If you have a match please call 08712300220 quoting claim code 3100 standard rates app , -spam,Back 2 work 2morro half term over! Can U C me 2nite 4 some sexy passion B4 I have 2 go back? Chat NOW 09099726481 Luv DENA Calls ??1/minMobsmoreLKPOBOX177HP51FL, -spam,You are a winner you have been specially selected to receive ??1000 cash or a ??2000 award. Speak to a live operator to claim call 087123002209am-7pm. Cost 10p, -spam,Urgent Ur ??500 guaranteed award is still unclaimed! Call 09066368327 NOW closingdate04/09/02 claimcode M39M51 ??1.50pmmorefrommobile2Bremoved-MobyPOBox734LS27YF, -spam,This is the 2nd time we have tried to contact u. U have won the ??1450 prize to claim just call 09053750005 b4 310303. T&Cs/stop SMS 08718725756. 140ppm, -spam,U are subscribed to the best Mobile Content Service in the UK for ??3 per 10 days until you send STOP to 82324. Helpline 08706091795, -spam,Dear Subscriber ur draw 4 ??100 gift voucher will b entered on receipt of a correct ans. When was Elvis Presleys Birthday? TXT answer to 80062, -spam,RGENT! This is the 2nd attempt to contact U!U have WON ??1250 CALL 09071512433 b4 050703 T&CsBCM4235WC1N3XX. callcost 150ppm mobilesvary. max??7. 50, -spam,"If you don't, your prize will go to another customer. T&C at www.t-c.biz 18+ 150p/min Polo Ltd Suite 373 London W1J 6HL Please call back if busy", -spam,"You've won tkts to the EURO2004 CUP FINAL or ??800 CASH, to collect CALL 09058099801 b4190604, POBOX 7876150ppm", -spam,SplashMobile: Choose from 1000s of gr8 tones each wk! This is a subscrition service with weekly tones costing 300p. U have one credit - kick back and ENJOY, -spam,URGENT This is our 2nd attempt to contact U. Your ??900 prize from YESTERDAY is still awaiting collection. To claim CALL NOW 09061702893, -spam,"For ur chance to win a ??250 cash every wk TXT: ACTION to 80608. T's&C's www.movietrivia.tv custcare 08712405022, 1x150p/wk", -spam,2p per min to call Germany 08448350055 from your BT line. Just 2p per min. Check PlanetTalkInstant.com for info & T's & C's. Text stop to opt out, -spam,(Bank of Granite issues Strong-Buy) EXPLOSIVE PICK FOR OUR MEMBERS *****UP OVER 300% *********** Nasdaq Symbol CDGT That is a $5.00 per.., -spam,You have an important customer service announcement from PREMIER. Call FREEPHONE 0800 542 0578 now!, -spam,Double Mins & Double Txt & 1/2 price Linerental on Latest Orange Bluetooth mobiles. Call MobileUpd8 for the very latest offers. 08000839402 or call2optout/LF56, -spam,"Congrats! 2 mobile 3G Videophones R yours. call 09061744553 now! videochat wid ur mates, play java games, Dload polyH music, noline rentl. bx420. ip4. 5we. 150pm", -spam,Natalja (25/F) is inviting you to be her friend. Reply YES-440 or NO-440 See her: www.SMS.ac/u/nat27081980 STOP? Send STOP FRND to 62468, -spam,"Last Chance! Claim ur ??150 worth of discount vouchers today! Text SHOP to 85023 now! SavaMob, offers mobile! T Cs SavaMob POBOX84, M263UZ. ??3.00 Sub. 16", -spam,"FreeMsg: Claim ur 250 SMS messages-Text OK to 84025 now!Use web2mobile 2 ur mates etc. Join Txt250.com for 1.50p/wk. T&C BOX139, LA32WU. 16 . Remove txtX or stop", -spam,Santa Calling! Would your little ones like a call from Santa Xmas eve? Call 09058094583 to book your time., -spam,Thanks for your subscription to Ringtone UK your mobile will be charged ??5/month Please confirm by replying YES or NO. If you reply NO you will not be charged, -spam,"Hey Boys. Want hot XXX pics sent direct 2 ur phone? Txt PORN to 69855, 24Hrs free and then just 50p per day. To stop text STOPBCM SF WC1N3XX", -spam,Urgent Please call 09066612661 from landline. ??5000 cash or a luxury 4* Canary Islands Holiday await collection. T&Cs SAE award. 20M12AQ. 150ppm. 16+ ???, -spam,"Shop till u Drop, IS IT YOU, either 10K, 5K, ??500 Cash or ??100 Travel voucher, Call now, 09064011000. NTT PO Box CR01327BT fixedline Cost 150ppm mobile vary", -spam,"You've won tkts to the EURO2004 CUP FINAL or ??800 CASH, to collect CALL 09058099801 b4190604, POBOX 7876150ppm", -spam,PRIVATE! Your 2003 Account Statement for shows 800 un-redeemed S. I. M. points. Call 08719899230 Identifier Code: 41685 Expires 07/11/04, -spam,"Spook up your mob with a Halloween collection of a logo & pic message plus a free eerie tone, txt CARD SPOOK to 8007 zed 08701417012150p per logo/pic ", -spam,Guess what! Somebody you know secretly fancies you! Wanna find out who it is? Give us a call on 09065394973 from Landline DATEBox1282EssexCM61XN 150p/min 18, -spam,Ur cash-balance is currently 500 pounds - to maximize ur cash-in now send CASH to 86688 only 150p/msg. CC: 08708800282 HG/Suite342/2Lands Row/W1J6HL, -spam,"URGENT! Your mobile number *************** WON a ??2000 Bonus Caller prize on 10/06/03! This is the 2nd attempt to reach you! Call 09066368753 ASAP! Box 97N7QP, 150ppm", -spam,"Romantic Paris. 2 nights, 2 flights from ??79 Book now 4 next year. Call 08704439680Ts&Cs apply.", -spam,Todays Vodafone numbers ending with 4882 are selected to a receive a ??350 award. If your number matches call 09064019014 to receive your ??350 award., -spam,URGENT! We are trying to contact U. Todays draw shows that you have won a ??800 prize GUARANTEED. Call 09050001808 from land line. Claim M95. Valid12hrs only, -spam,Had your mobile 11 months or more? U R entitled to Update to the latest colour mobiles with camera for Free! Call The Mobile Update Co FREE on 08002986030, -spam,Dorothy@kiefer.com (Bank of Granite issues Strong-Buy) EXPLOSIVE PICK FOR OUR MEMBERS *****UP OVER 300% *********** Nasdaq Symbol CDGT That is a $5.00 per.., -spam,"URGENT! You have won a 1 week FREE membership in our ??100,000 Prize Jackpot! Txt the word: CLAIM to No: 81010 T&C www.dbuk.net LCCLTD POBOX 4403LDNW1A7RW18", -spam,Check Out Choose Your Babe Videos @ sms.shsex.netUN fgkslpoPW fgkslpo, -spam,Message Important information for O2 user. Today is your lucky day! 2 find out why log onto http://www.urawinner.com there is a fantastic surprise awaiting you, -spam,Guess who am I?This is the first time I created a web page WWW.ASJESUS.COM read all I wrote. I'm waiting for your opinions. I want to be your friend 1/1, -spam,"SPJanuary Male Sale! Hot Gay chat now cheaper, call 08709222922. National rate from 1.5p/min cheap to 7.8p/min peak! To stop texts call 08712460324 (10p/min)", -spam,Reply to win ??100 weekly! What professional sport does Tiger Woods play? Send STOP to 87239 to end service, -spam,"Hello from Orange. For 1 month's free access to games, news and sport, plus 10 free texts and 20 photo messages, reply YES. Terms apply: www.orange.co.uk/ow", -spam,"Got what it takes 2 take part in the WRC Rally in Oz? U can with Lucozade Energy! Text RALLY LE to 61200 (25p), see packs or lucozade.co.uk/wrc & itcould be u!", -spam,U have a secret admirer who is looking 2 make contact with U-find out who they R*reveal who thinks UR so special-call on 09058094599, -spam,PRIVATE! Your 2003 Account Statement for shows 800 un-redeemed S.I.M. points. Call 08715203685 Identifier Code:4xx26 Expires 13/10/04, -spam,WOW! The Boys R Back. TAKE THAT 2007 UK Tour. Win VIP Tickets & pre-book with VIP Club. Txt CLUB to 81303. Trackmarque Ltd info@vipclub4u., -spam,"Congrats! 2 mobile 3G Videophones R yours. call 09063458130 now! videochat wid your mates, play java games, Dload polyPH music, noline rentl.", -spam,Congratulations YOU'VE Won. You're a Winner in our August ??1000 Prize Draw. Call 09066660100 NOW. Prize Code 2309., -spam,"Urgent! Please call 09066612661 from your landline, your complimentary 4* Lux Costa Del Sol holiday or ??1000 CASH await collection. ppm 150 SAE T&Cs James 28, EH74RR", -spam,4mths half price Orange line rental & latest camera phones 4 FREE. Had your phone 11mths ? Call MobilesDirect free on 08000938767 to update now! or2stoptxt, -spam,SMS AUCTION - A BRAND NEW Nokia 7250 is up 4 auction today! Auction is FREE 2 join & take part! Txt NOKIA to 86021 now! HG/Suite342/2Lands Row/W1J6HL, -spam,Congrats! Nokia 3650 video camera phone is your Call 09066382422 Calls cost 150ppm Ave call 3mins vary from mobiles 16+ Close 300603 post BCM4284 Ldn WC1N3XX, -spam,"For ur chance to win a ??250 wkly shopping spree TXT: SHOP to 80878. T's&C's www.txt-2-shop.com custcare 08715705022, 1x150p/wk", -spam,Want explicit SEX in 30 secs? Ring 02073162414 now! Costs 20p/min Gsex POBOX 2667 WC1N 3XX, -spam,Natalja (25/F) is inviting you to be her friend. Reply YES-440 or NO-440 See her: www.SMS.ac/u/nat27081980 STOP? Send STOP FRND to 62468, -spam,You have won a guaranteed ??200 award or even ??1000 cashto claim UR award call free on 08000407165 (18+) 2 stop getstop on 88222 PHP, -spam,Free 1st week entry 2 TEXTPOD 4 a chance 2 win 40GB iPod or ??250 cash every wk. Txt VPOD to 81303 Ts&Cs www.textpod.net custcare 08712405020., -spam,"Congrats! 1 year special cinema pass for 2 is yours. call 09061209465 now! C Suprman V, Matrix3, StarWars3, etc all 4 FREE! bx420-ip4-5we. 150pm. Dont miss out! ", -spam,Santa calling! Would your little ones like a call from Santa Xmas Eve? Call 09077818151 to book you time. Calls1.50ppm last 3mins 30s T&C www.santacalling.com, -spam,Phony ??350 award - Todays Voda numbers ending XXXX are selected to receive a ??350 award. If you have a match please call 08712300220 quoting claim code 3100 standard rates app, -spam,"FREE NOKIA Or Motorola with upto 12mths 1/2price linerental, 500 FREE x-net mins&100txt/mth FREE B'tooth*. Call Mobileupd8 on 08001950382 or call 2optout/D3WV", -spam,"Goal! Arsenal 4 (Henry, 7 v Liverpool 2 Henry scores with a simple shot from 6 yards from a pass by Bergkamp to give Arsenal a 2 goal margin after 78 mins.", -spam,"Xmas Offer! Latest Motorola, SonyEricsson & Nokia & FREE Bluetooth or DVD! Double Mins & 1000 Txt on Orange. Call MobileUpd8 on 08000839402 or call2optout/4QF2", -spam,Please call Amanda with regard to renewing or upgrading your current T-Mobile handset free of charge. Offer ends today. Tel 0845 021 3680 subject to T's and C's, -spam,Good Luck! Draw takes place 28th Feb 06. Good Luck! For removal send STOP to 87239 customer services 08708034412, -spam,You have 1 new message. Please call 08712400200., -spam,Sunshine Quiz Wkly Q! Win a top Sony DVD player if u know which country Liverpool played in mid week? Txt ansr to 82277. ??1.50 SP:Tyrone, -spam,Ur TONEXS subscription has been renewed and you have been charged ??4.50. You can choose 10 more polys this month. www.clubzed.co.uk *BILLING MSG*, -spam,URGENT! We are trying to contact U. Todays draw shows that you have won a ??800 prize GUARANTEED. Call 09050003091 from land line. Claim C52. Valid 12hrs only, -spam,You have been specially selected to receive a 2000 pound award! Call 08712402050 BEFORE the lines close. Cost 10ppm. 16+. T&Cs apply. AG Promo, -spam,Sorry I missed your call let's talk when you have the time. I'm on 07090201529, -spam,You'll not rcv any more msgs from the chat svc. For FREE Hardcore services text GO to: 69988 If u get nothing u must Age Verify with yr network & try again, -spam,Boltblue tones for 150p Reply POLY# or MONO# eg POLY3 1. Cha Cha Slide 2. Yeah 3. Slow Jamz 6. Toxic 8. Come With Me or STOP 4 more tones txt MORE, -spam,"Update_Now - Xmas Offer! Latest Motorola, SonyEricsson & Nokia & FREE Bluetooth! Double Mins & 1000 Txt on Orange. Call MobileUpd8 on 08000839402 or call2optout/F4Q=", -spam,Sexy Singles are waiting for you! Text your AGE followed by your GENDER as wither M or F E.G.23F. For gay men text your AGE followed by a G. e.g.23G., -spam,"Urgent! Please call 0906346330. Your ABTA complimentary 4* Spanish Holiday or ??10,000 cash await collection SAE T&Cs BOX 47 PO19 2EZ 150ppm 18+", -spam,"all the lastest from Stereophonics, Marley, Dizzee Racal, Libertines and The Strokes! Win Nookii games with Flirt!! Click TheMob WAP Bookmark or text WAP to 82468", -spam,"SMS SERVICES. for your inclusive text credits, pls goto www.comuk.net login= 3qxj9 unsubscribe with STOP, no extra charge. help 08702840625.COMUK. 220-CM2 9AE", -spam,Babe: U want me dont u baby! Im nasty and have a thing 4 filthyguys. Fancy a rude time with a sexy bitch. How about we go slo n hard! Txt XXX SLO(4msgs), -spam,As one of our registered subscribers u can enter the draw 4 a 100 G.B. gift voucher by replying with ENTER. To unsubscribe text STOP, -spam,Bloomberg -Message center +447797706009 Why wait? Apply for your future http://careers. bloomberg.com, -spam,Please call our customer service representative on 0800 169 6031 between 10am-9pm as you have WON a guaranteed ??1000 cash or ??5000 prize!, -spam,URGENT We are trying to contact you Last weekends draw shows u have won a ??1000 prize GUARANTEED Call 09064017295 Claim code K52 Valid 12hrs 150p pm, -spam,Urgent! Please call 09061213237 from a landline. ??5000 cash or a 4* holiday await collection. T &Cs SAE PO Box 177 M227XY. 16+, -spam,important information 4 orange user 0789xxxxxxx. today is your lucky day!2find out why log onto http://www.urawinner.com THERE'S A FANTASTIC SURPRISE AWAITING YOU!, -spam,"Double Mins & 1000 txts on Orange tariffs. Latest Motorola, SonyEricsson & Nokia with Bluetooth FREE! Call MobileUpd8 on 08000839402 or call2optout/HF8", -spam,"YOU VE WON! Your 4* Costa Del Sol Holiday or ??5000 await collection. Call 09050090044 Now toClaim. SAE, TC s, POBox334, Stockport, SK38xh, Cost??1.50/pm, Max10mins", -spam,"WELL DONE! Your 4* Costa Del Sol Holiday or ??5000 await collection. Call 09050090044 Now toClaim. SAE, TCs, POBox334, Stockport, SK38xh, Cost??1.50/pm, Max10mins", -spam,U have a secret admirer. REVEAL who thinks U R So special. Call 09065174042. To opt out Reply REVEAL STOP. 1.50 per msg recd. Cust care 07821230901, -spam,ree entry in 2 a weekly comp for a chance to win an ipod. Txt POD to 80182 to get entry (std txt rate) T&C's apply 08452810073 for details 18+, -spam,Summers finally here! Fancy a chat or flirt with sexy singles in yr area? To get MATCHED up just reply SUMMER now. Free 2 Join. OptOut txt STOP Help08714742804, -spam,Congratulations ur awarded 500 of CD vouchers or 125gift guaranteed & Free entry 2 100 wkly draw txt MUSIC to 87066, -spam,"Welcome to UK-mobile-date this msg is FREE giving you free calling to 08719839835. Future mgs billed at 150p daily. To cancel send \go stop\"" to 89123""", -spam,Reminder: You have not downloaded the content you have already paid for. Goto http://doit. mymoby. tv/ to collect your content., -spam,07732584351 - Rodger Burns - MSG = We tried to call you re your reply to our sms for a free nokia mobile + free camcorder. Please call now 08000930705 for delivery tomorrow, -spam,"Got what it takes 2 take part in the WRC Rally in Oz? U can with Lucozade Energy! Text RALLY LE to 61200 (25p), see packs or lucozade.co.uk/wrc & itcould be u!", -spam,LIFE has never been this much fun and great until you came in. You made it truly special for me. I won't forget you! enjoy @ one gbp/sms, -spam,"BangBabes Ur order is on the way. U SHOULD receive a Service Msg 2 download UR content. If U do not, GoTo wap. bangb. tv on UR mobile internet/service menu", -spam,"Bears Pic Nick, and Tom, Pete and ... Dick. In fact, all types try gay chat with photo upload call 08718730666 (10p/min). 2 stop texts call 08712460324", -spam,Do you want a new video handset? 750 anytime any network mins? Half Price Line Rental? Camcorder? Reply or call 08000930705 for delivery tomorrow, -spam,"Someone U know has asked our dating service 2 contact you! Cant guess who? CALL 09058095107 NOW all will be revealed. POBox 7, S3XY 150p ", -spam,Warner Village 83118 C Colin Farrell in SWAT this wkend @Warner Village & get 1 free med. Popcorn!Just show msg+ticket@kiosk.Valid 4-7/12. C t&c @kiosk. Reply SONY 4 mre film offers, -spam,RCT' THNQ Adrian for U text. Rgds Vatian, -spam,Sunshine Quiz Wkly Q! Win a top Sony DVD player if u know which country the Algarve is in? Txt ansr to 82277. ??1.50 SP:Tyrone, -spam,"Loan for any purpose ??500 - ??75,000. Homeowners + Tenants welcome. Have you been previously refused? We can still help. Call Free 0800 1956669 or text back 'help'", -spam,"New Mobiles from 2004, MUST GO! Txt: NOKIA to No: 89545 & collect yours today! From ONLY ??1. www.4-tc.biz 2optout 087187262701.50gbp/mtmsg18 TXTAUCTION.", -spam,"Spook up your mob with a Halloween collection of a logo & pic message plus a free eerie tone, txt CARD SPOOK to 8007 zed 08701417012150p per logo/pic", -spam,"REMINDER FROM O2: To get 2.50 pounds free call credit and details of great offers pls reply 2 this text with your valid name, house no and postcode", -spam,u r a winner U ave been specially selected 2 receive ??1000 cash or a 4* holiday (flights inc) speak to a live operator 2 claim 0871277810710p/min (18 ), -spam,"HOT LIVE FANTASIES call now 08707509020 Just 20p per min NTT Ltd, PO Box 1327 Croydon CR9 5WB 0870..k", -spam,Sorry! U can not unsubscribe yet. THE MOB offer package has a min term of 54 weeks> pls resubmit request after expiry. Reply THEMOB HELP 4 more info, -spam,WIN a year supply of CDs 4 a store of ur choice worth ??500 & enter our ??100 Weekly draw txt MUSIC to 87066 Ts&Cs www.Ldew.com.subs16+1win150ppmx3, -spam,Monthly password for wap. mobsi.com is 391784. Use your wap phone not PC., -spam,"FREE2DAY sexy St George's Day pic of Jordan!Txt PIC to 89080 dont miss out, then every wk a saucy celeb!4 more pics c PocketBabe.co.uk 0870241182716 ??3/wk", -spam,FREEMSG: Our records indicate you may be entitled to 3750 pounds for the Accident you had. To claim for free reply with YES to this msg. To opt out text STOP, -spam,More people are dogging in your area now. Call 09090204448 and join like minded guys. Why not arrange 1 yourself. There's 1 this evening. A??1.50 minAPN LS278BB, -spam,URGENT! We are trying to contact U. Todays draw shows that you have won a ??2000 prize GUARANTEED. Call 09066358361 from land line. Claim Y87. Valid 12hrs only, -spam,Great NEW Offer - DOUBLE Mins & DOUBLE Txt on best Orange tariffs AND get latest camera phones 4 FREE! Call MobileUpd8 free on 08000839402 NOW! or 2stoptxt T&Cs, -spam,Free entry in 2 a weekly comp for a chance to win an ipod. Txt POD to 80182 to get entry (std txt rate) T&C's apply 08452810073 for details 18+, -spam,Money i have won wining number 946 wot do i do next, -spam,Congratulations ur awarded either ??500 of CD gift vouchers & Free entry 2 our ??100 weekly draw txt MUSIC to 87066 TnCs www.Ldew.com1win150ppmx3age16, -spam,Buy Space Invaders 4 a chance 2 win orig Arcade Game console. Press 0 for Games Arcade (std WAP charge) See o2.co.uk/games 4 Terms + settings. No purchase, -spam,URGENT! Your Mobile number has been awarded a 2000 prize GUARANTEED. Call 09061790125 from landline. Claim 3030. Valid 12hrs only 150ppm, -spam,"SMS. ac Blind Date 4U!: Rodds1 is 21/m from Aberdeen, United Kingdom. Check Him out http://img. sms. ac/W/icmb3cktz8r7!-4 no Blind Dates send HIDE", -spam,"Wan2 win a Meet+Greet with Westlife 4 U or a m8? They are currently on what tour? 1)Unbreakable, 2)Untamed, 3)Unkempt. Text 1,2 or 3 to 83049. Cost 50p +std text", -spam,Email AlertFrom: Jeri StewartSize: 2KBSubject: Low-cost prescripiton drvgsTo listen to email call 123, -spam,URGENT This is our 2nd attempt to contact U. Your ??900 prize from YESTERDAY is still awaiting collection. To claim CALL NOW 09061702893. ACL03530150PM, -spam,Your B4U voucher w/c 27/03 is MARSMS. Log onto www.B4Utele.com for discount credit. To opt out reply stop. Customer care call 08717168528, -spam,"Oh my god! I've found your number again! I'm so glad, text me back xafter this msgs cst std ntwk chg ??1.50", -spam,WIN a year supply of CDs 4 a store of ur choice worth ??500 & enter our ??100 Weekly draw txt MUSIC to 87066 Ts&Cs www.Ldew.com.subs16+1win150ppmx3, -spam,Hard LIVE 121 chat just 60p/min. Choose your girl and connect LIVE. Call 09094646899 now! Cheap Chat UK's biggest live service. VU BCM1896WC1N3XX, -spam,88800 and 89034 are premium phone services call 08718711108, -spam,A ??400 XMAS REWARD IS WAITING FOR YOU! Our computer has randomly picked you from our loyal mobile customers to receive a ??400 reward. Just call 09066380611, -spam,I am hot n horny and willing I live local to you - text a reply to hear strt back from me 150p per msg Netcollex LtdHelpDesk: 02085076972 reply Stop to end, -spam,PRIVATE! Your 2004 Account Statement for 078498****7 shows 786 unredeemed Bonus Points. To claim call 08719180219 Identifier Code: 45239 Expires 06.05.05, -spam,"URGENT!: Your Mobile No. was awarded a ??2,000 Bonus Caller Prize on 02/09/03! This is our 2nd attempt to contact YOU! Call 0871-872-9755 BOX95QU", -spam,Valentines Day Special! Win over ??1000 in our quiz and take your partner on the trip of a lifetime! Send GO to 83600 now. 150p/msg rcvd. CustCare:08718720201, -spam,FREE UNLIMITED HARDCORE PORN direct 2 your mobile Txt PORN to 69200 & get FREE access for 24 hrs then chrgd@50p per day txt Stop 2exit. This msg is free, -spam,UR GOING 2 BAHAMAS! CallFREEFONE 08081560665 and speak to a live operator to claim either Bahamas cruise of??2000 CASH 18+only. To opt out txt X to 07786200117, -spam,-PLS STOP bootydelious (32/F) is inviting you to be her friend. Reply YES-434 or NO-434 See her: www.SMS.ac/u/bootydelious STOP? Send STOP FRND to 62468, -spam,EASTENDERS TV Quiz. What FLOWER does DOT compare herself to? D= VIOLET E= TULIP F= LILY txt D E or F to 84025 NOW 4 chance 2 WIN ??100 Cash WKENT/150P16+, -spam,"U've been selected to stay in 1 of 250 top British hotels - FOR NOTHING! Holiday valued at ??350! Dial 08712300220 to claim - National Rate Call. Bx526, SW73SS", -spam,Great News! Call FREEFONE 08006344447 to claim your guaranteed ??1000 CASH or ??2000 gift. Speak to a live operator NOW!, -spam,PRIVATE! Your 2003 Account Statement for 07973788240 shows 800 un-redeemed S. I. M. points. Call 08715203649 Identifier Code: 40533 Expires 31/10/04, -spam,"our mobile number has won ??5000, to claim calls us back or ring the claims hot line on 09050005321.", -spam,"Hello darling how are you today? I would love to have a chat, why dont you tell me what you look like and what you are in to sexy?", -spam,No. 1 Nokia Tone 4 ur mob every week! Just txt NOK to 87021. 1st Tone FREE ! so get txtin now and tell ur friends. 150p/tone. 16 reply HL 4info, -spam,"Dear Matthew please call 09063440451 from a landline, your complimentary 4*Lux Tenerife holiday or ??1000 CASH await collection. ppm150 SAE T&Cs Box334 SK38XH.", -spam,important information 4 orange user . today is your lucky day!2find out why log onto http://www.urawinner.com THERE'S A FANTASTIC SURPRISE AWAITING YOU!, -spam,YOU ARE CHOSEN TO RECEIVE A ??350 AWARD! Pls call claim number 09066364311 to collect your award which you are selected to receive as a valued mobile customer., -spam,FREE for 1st week! No1 Nokia tone 4 ur mob every week just txt NOKIA to 87077 Get txting and tell ur mates. zed POBox 36504 W45WQ norm150p/tone 16+, -spam,"Thanks for your ringtone order, ref number K718. Your mobile will be charged ??4.50. Should your tone not arrive please call customer services on 09065069120", -spam,"Congratulations! Thanks to a good friend U have WON the ??2,000 Xmas prize. 2 claim is easy, just call 08718726971 NOW! Only 10p per minute. BT-national-rate.", -spam,HMV BONUS SPECIAL 500 pounds of genuine HMV vouchers to be won. Just answer 4 easy questions. Play Now! Send HMV to 86688 More info:www.100percent-real.com, -spam,"Someone has contacted our dating service and entered your phone becausethey fancy you! To find out who it is call from a landline 09058098002. PoBox1, W14RG 150p", -spam,"Win the newest ???Harry Potter and the Order of the Phoenix (Book 5) reply HARRY, answer 5 questions - chance to be the first among readers!", -spam,http//tms. widelive.com/index. wml?id=820554ad0a1705572711&first=true??C C Ringtone??, -spam,YOU ARE CHOSEN TO RECEIVE A ??350 AWARD! Pls call claim number 09066364311 to collect your award which you are selected to receive as a valued mobile customer., -spam,4mths half price Orange line rental & latest camera phones 4 FREE. Had your phone 11mths+? Call MobilesDirect free on 08000938767 to update now! or2stoptxt T&Cs, -spam,INTERFLORA - ??It's not too late to order Interflora flowers for christmas call 0800 505060 to place your order before Midnight tomorrow., -spam,"Hi this is Amy, we will be sending you a free phone number in a couple of days, which will give you an access to all the adult parties...", -spam,network operator. The service is free. For T & C's visit 80488.biz, -spam,Free tones Hope you enjoyed your new content. text stop to 61610 to unsubscribe. help:08712400602450p Provided by tones2you.co.uk, -spam,"Sunshine Hols. To claim ur med holiday send a stamped self address envelope to Drinks on Us UK, PO Box 113, Bray, Wicklow, Eire. Quiz Starts Saturday! Unsub Stop", -spam,We tried to contact you re our offer of New Video Phone 750 anytime any network mins HALF PRICE Rental camcorder call 08000930705 or reply for delivery Wed, -spam,"URGENT!! Your 4* Costa Del Sol Holiday or ??5000 await collection. Call 09050090044 Now toClaim. SAE, TC s, POBox334, Stockport, SK38xh, Cost??1.50/pm, Max10mins", -spam,Here is your discount code RP176781. To stop further messages reply stop. www.regalportfolio.co.uk. Customer Services 08717205546, -spam,"Dear Voucher Holder, To claim this weeks offer, at you PC please go to http://www.e-tlp.co.uk/reward. Ts&Cs apply.", -spam,Please call our customer service representative on 0800 169 6031 between 10am-9pm as you have WON a guaranteed ??1000 cash or ??5000 prize!, -spam,GSOH? Good with SPAM the ladies?U could b a male gigolo? 2 join the uk's fastest growing mens club reply ONCALL. mjzgroup. 08714342399.2stop reply STOP. msg@??1.50rcvd, -spam,"Last Chance! Claim ur ??150 worth of discount vouchers today! Text SHOP to 85023 now! SavaMob, offers mobile! T Cs SavaMob POBOX84, M263UZ. ??3.00 Sub. 16", -spam,money!!! you r a lucky winner ! 2 claim your prize text money 2 88600 over ??1million to give away ! ppt150x3+normal text rate box403 w1t1jy, -spam,"Double mins and txts 4 6months FREE Bluetooth on Orange. Available on Sony, Nokia Motorola phones. Call MobileUpd8 on 08000839402 or call2optout/N9DX", -spam,URGENT! We are trying to contact U Todays draw shows that you have won a ??800 prize GUARANTEED. Call 09050000460 from land line. Claim J89. po box245c2150pm, -spam,"Auction round 4. The highest bid is now ??54. Next maximum bid is ??71. To bid, send BIDS e. g. 10 (to bid ??10) to 83383. Good luck.", -spam,"Congratulations - Thanks to a good friend U have WON the ??2,000 Xmas prize. 2 claim is easy, just call 08712103738 NOW! Only 10p per minute. BT-national-rate", -spam,How about getting in touch with folks waiting for company? Just txt back your NAME and AGE to opt in! Enjoy the community (150p/SMS), -spam,Great NEW Offer - DOUBLE Mins & DOUBLE Txt on best Orange tariffs AND get latest camera phones 4 FREE! Call MobileUpd8 free on 08000839402 NOW! or 2stoptxt T&Cs, -spam,Hi I'm sue. I am 20 years old and work as a lapdancer. I love sex. Text me live - I'm i my bedroom now. text SUE to 89555. By TextOperator G2 1DA 150ppmsg 18+, -spam,"Hack Chat. Get backdoor entry into 121 chat rooms at a fraction of the cost. Reply NEO69 or call 09050280520, to subscribe 25p pm. DPS, Bcm box 8027 Ldn, wc1n3xx", -spam,"pdate_Now - Double mins and 1000 txts on Orange tariffs. Latest Motorola, SonyEricsson & Nokia & Bluetooth FREE! Call MobileUpd8 on 08000839402 or call2optout/!YHL", -spam,New TEXTBUDDY Chat 2 horny guys in ur area 4 just 25p Free 2 receive Search postcode or at gaytextbuddy.com. TXT ONE name to 89693. 08715500022 rpl Stop 2 cnl, -spam,"Do you ever notice that when you're driving, anyone going slower than you is an idiot and everyone driving faster than you is a maniac?", -spam,"This is the 2nd time we have tried 2 contact u. U have won the 750 Pound prize. 2 claim is easy, call 08712101358 NOW! Only 10p per min. BT-national-rate", -spam,FREE for 1st week! No1 Nokia tone 4 ur mob every week just txt NOKIA to 8007 Get txting and tell ur mates www.getzed.co.uk POBox 36504 W45WQ norm150p/tone 16+, -spam,You have an important customer service announcement from PREMIER., -spam,Free entry in 2 a wkly comp to win FA Cup final tkts 21st May 2005. Text FA to 87121 to receive entry question(std txt rate)T&C's apply 08452810075over18's, -spam,"FREE2DAY sexy St George's Day pic of Jordan!Txt PIC to 89080 dont miss out, then every wk a saucy celeb!4 more pics c PocketBabe.co.uk 0870241182716 ??3/wk", -spam,"Loan for any purpose ??500 - ??75,000. Homeowners + Tenants welcome. Have you been previously refused? We can still help. Call Free 0800 1956669 or text back 'help'", -spam,Hi. Customer Loyalty Offer:The NEW Nokia6650 Mobile from ONLY ??10 at TXTAUCTION! Txt word: START to No: 81151 & get yours Now! 4T&Ctxt TC 150p/MTmsg, -spam,U have a secret admirer who is looking 2 make contact with U-find out who they R*reveal who thinks UR so special-call on 09058094565, -spam,WINNER! As a valued network customer you hvae been selected to receive a ??900 reward! To collect call 09061701444. Valid 24 hours only. ACL03530150PM, -spam,100 dating service cal;l 09064012103 box334sk38ch, -spam,You have WON a guaranteed ??1000 cash or a ??2000 prize. To claim yr prize call our customer service representative on 08714712394 between 10am-7pm, -spam,PRIVATE! Your 2003 Account Statement for 07753741225 shows 800 un-redeemed S. I. M. points. Call 08715203677 Identifier Code: 42478 Expires 24/10/04, -spam,PRIVATE! Your 2003 Account Statement for shows 800 un-redeemed S. I. M. points. Call 08715203656 Identifier Code: 42049 Expires 26/10/04, -spam,URGENT! We are trying to contact you. Last weekends draw shows that you have won a ??900 prize GUARANTEED. Call 09061701939. Claim code S89. Valid 12hrs only, -spam,This message is free. Welcome to the new & improved Sex & Dogging club! To unsubscribe from this service reply STOP. msgs@150p 18+only, -spam,UR awarded a City Break and could WIN a ??200 Summer Shopping spree every WK. Txt STORE to 88039 . SkilGme. TsCs087147403231Winawk!Age16 ??1.50perWKsub, -spam,PRIVATE! Your 2004 Account Statement for 07742676969 shows 786 unredeemed Bonus Points. To claim call 08719180248 Identifier Code: 45239 Expires, -spam,You are being ripped off! Get your mobile content from www.clubmoby.com call 08717509990 poly/true/Pix/Ringtones/Games six downloads for only 3, -spam,PRIVATE! Your 2003 Account Statement for shows 800 un-redeemed S. I. M. points. Call 08715203694 Identifier Code: 40533 Expires 31/10/04, -spam,Free Top ringtone -sub to weekly ringtone-get 1st week free-send SUBPOLY to 81618-?3 per week-stop sms-08718727870, -spam,You are a winner you have been specially selected to receive ??1000 cash or a ??2000 award. Speak to a live operator to claim call 087147123779am-7pm. Cost 10p, -spam,ROMCAPspam Everyone around should be responding well to your presence since you are so warm and outgoing. You are bringing in a real breath of sunshine., -spam,T-Mobile customer you may now claim your FREE CAMERA PHONE upgrade & a pay & go sim card for your loyalty. Call on 0845 021 3680.Offer ends 28thFeb.T&C's apply, -spam,Ur cash-balance is currently 500 pounds - to maximize ur cash-in now send GO to 86688 only 150p/msg. CC 08718720201 HG/Suite342/2Lands Row/W1J6HL, -spam,Do you want a NEW video phone750 anytime any network mins 150 text for only five pounds per week call 08000776320 now or reply for delivery tomorrow, -spam,goldviking (29/M) is inviting you to be his friend. Reply YES-762 or NO-762 See him: www.SMS.ac/u/goldviking STOP? Send STOP FRND to 62468, -spam,URGENT! Your Mobile number has been awarded with a ??2000 prize GUARANTEED. Call 09061790126 from land line. Claim 3030. Valid 12hrs only 150ppm, -spam,"449050000301 You have won a ??2,000 price! To claim, call 09050000301.", -spam,PRIVATE! Your 2004 Account Statement for 07742676969 shows 786 unredeemed Bonus Points. To claim call 08719180248 Identifier Code: 45239 Expires, -spam,"You are guaranteed the latest Nokia Phone, a 40GB iPod MP3 player or a ??500 prize! Txt word: COLLECT to No: 83355! IBHltd LdnW15H 150p/Mtmsgrcvd18+", -spam,"Our dating service has been asked 2 contact U by someone shy! CALL 09058091870 NOW all will be revealed. POBox84, M26 3UZ 150p", -spam,Do you want a New Nokia 3510i colour phone DeliveredTomorrow? With 300 free minutes to any mobile + 100 free texts + Free Camcorder reply or call 08000930705, -spam,"This is the 2nd time we have tried 2 contact u. U have won the ??750 Pound prize. 2 claim is easy, call 087187272008 NOW1! Only 10p per minute. BT-national-rate.", -spam,"You are guaranteed the latest Nokia Phone, a 40GB iPod MP3 player or a ??500 prize! Txt word: COLLECT to No: 83355! IBHltd LdnW15H 150p/Mtmsgrcvd18", -spam,Todays Voda numbers ending with 7634 are selected to receive a ??350 reward. If you have a match please call 08712300220 quoting claim code 7684 standard rates apply., -spam,December only! Had your mobile 11mths+? You are entitled to update to the latest colour camera mobile for Free! Call The Mobile Update Co FREE on 08002986906, -spam,"Eerie Nokia tones 4u, rply TONE TITLE to 8007 eg TONE DRACULA to 8007 Titles: GHOST, ADDAMSFA, MUNSTERS, EXORCIST, TWILIGHT www.getzed.co.uk POBox36504W45WQ 150p ", -spam,Please call our customer service representative on FREEPHONE 0808 145 4742 between 9am-11pm as you have WON a guaranteed ??1000 cash or ??5000 prize!, -spam,87077: Kick off a new season with 2wks FREE goals & news to ur mobile! Txt ur club name to 87077 eg VILLA to 87077, -spam,HMV BONUS SPECIAL 500 pounds of genuine HMV vouchers to be won. Just answer 4 easy questions. Play Now! Send HMV to 86688 More info:www.100percent-real.com, -spam,Reply to win ??100 weekly! Where will the 2006 FIFA World Cup be held? Send STOP to 87239 to end service, -spam,"Your free ringtone is waiting to be collected. Simply text the password \MIX\"" to 85069 to verify. Get Usher and Britney. FML MK17 92H. 450Ppw 16""", -spam,CLAIRE here am havin borin time & am now alone U wanna cum over 2nite? Chat now 09099725823 hope 2 C U Luv CLAIRE xx Calls??1/minmoremobsEMSPOBox45PO139WA, -spam,Freemsg: 1-month unlimited free calls! Activate SmartCall Txt: CALL to No: 68866. Subscriptn3gbp/wk unlimited calls Help: 08448714184 Stop?txt stop landlineonly, -spam,Last chance 2 claim ur ??150 worth of discount vouchers-Text YES to 85023 now!SavaMob-member offers mobile T Cs 08717898035. ??3.00 Sub. 16 . Remove txt X or STOP, -spam,Camera - You are awarded a SiPix Digital Camera! call 09061221066 fromm landline. Delivery within 28 days., -spam,WINNER!! As a valued network customer you have been selected to receivea ??900 prize reward! To claim call 09061701461. Claim code KL341. Valid 12 hours only., -spam,"Urgent! call 09066350750 from your landline. Your complimentary 4* Ibiza Holiday or 10,000 cash await collection SAE T&Cs PO BOX 434 SK3 8WP 150 ppm 18+", -spam,You are now unsubscribed all services. Get tons of sexy babes or hunks straight to your phone! go to http://gotbabes.co.uk. No subscriptions., -spam,"Do you realize that in about 40 years, we'll have thousands of old ladies running around with tattoos?", -spam,Congratulations U can claim 2 VIP row A Tickets 2 C Blu in concert in November or Blu gift guaranteed Call 09061104276 to claim TS&Cs www.smsco.net cost??3.75max , -spam,U???ve Bin Awarded ??50 to Play 4 Instant Cash. Call 08715203028 To Claim. EVERY 9th Player Wins Min ??50-??500. OptOut 08718727870, -spam,A link to your picture has been sent. You can also use http://alto18.co.uk/wave/wave.asp?o=44345, -spam,Natalie (20/F) is inviting you to be her friend. Reply YES-165 or NO-165 See her: www.SMS.ac/u/natalie2k9 STOP? Send STOP FRND to 62468, -spam,A ??400 XMAS REWARD IS WAITING FOR YOU! Our computer has randomly picked you from our loyal mobile customers to receive a ??400 reward. Just call 09066380611 , -spam,Update_Now - 12Mths Half Price Orange line rental: 400mins...Call MobileUpd8 on 08000839402 or call2optout=J5Q, -spam,"Customer service announcement. We recently tried to make a delivery to you but were unable to do so, please call 07099833605 to re-schedule. Ref:9280114", -spam,YES! The only place in town to meet exciting adult singles is now in the UK. Txt CHAT to 86688 now! 150p/Msg., -spam,"SMS SERVICES. for your inclusive text credits, pls goto www.comuk.net login= 3qxj9 unsubscribe with STOP, no extra charge. help 08702840625.COMUK. 220-CM2 9AE", -spam,FREE entry into our ??250 weekly competition just text the word WIN to 80086 NOW. 18 T&C www.txttowin.co.uk, -spam,YOU HAVE WON! As a valued Vodafone customer our computer has picked YOU to win a ??150 prize. To collect is easy. Just call 09061743386 , -spam,You have 1 new voicemail. Please call 08719181513., -spam,Marvel Mobile Play the official Ultimate Spider-man game (??4.50) on ur mobile right now. Text SPIDER to 83338 for the game & we ll send u a FREE 8Ball wallpaper, -spam,WINNER!! As a valued network customer you have been selected to receivea ??900 prize reward! To claim call 09061701461. Claim code KL341. Valid 12 hours only., -spam,"Wan2 win a Meet+Greet with Westlife 4 U or a m8? They are currently on what tour? 1)Unbreakable, 2)Untamed, 3)Unkempt. Text 1,2 or 3 to 83049. Cost 50p +std text", -spam,Do you want a New Nokia 3510i Colour Phone Delivered Tomorrow? With 200 FREE minutes to any mobile + 100 FREE text + FREE camcorder Reply or Call 08000930705, -spam,Your unique user ID is 1172. For removal send STOP to 87239 customer services 08708034412, -spam,"URGENT! Last weekend's draw shows that you have won ??1000 cash or a Spanish holiday! CALL NOW 09050000332 to claim. T&C: RSTM, SW7 3SS. 150ppm", -spam,8007 FREE for 1st week! No1 Nokia tone 4 ur mob every week just txt NOKIA to 8007 Get txting and tell ur mates www.getzed.co.uk POBox 36504 W4 5WQ norm 150p/tone 16+, -spam,"HOT LIVE FANTASIES call now 08707509020 Just 20p per min NTT Ltd, PO Box 1327 Croydon CR9 5WB 0870 is a national rate call", -spam,FREE for 1st week! No1 Nokia tone 4 ur mobile every week just txt NOKIA to 8077 Get txting and tell ur mates. www.getzed.co.uk POBox 36504 W45WQ 16+ norm150p/tone, -spam,The current leading bid is 151. To pause this auction send OUT. Customer Care: 08718726270, -spam,You have 1 new voicemail. Please call 08719181513., -spam,"WELL DONE! Your 4* Costa Del Sol Holiday or ??5000 await collection. Call 09050090044 Now toClaim. SAE, TCs, POBox334, Stockport, SK38xh, Cost??1.50/pm, Max10mins", -spam,U have a secret admirer who is looking 2 make contact with U-find out who they R*reveal who thinks UR so special-call on 09058094594, -spam,"FREE MESSAGE Activate your 500 FREE Text Messages by replying to this message with the word FREE For terms & conditions, visit www.07781482378.com", -spam,URGENT! We are trying to contact U. Todays draw shows that you have won a ??2000 prize GUARANTEED. Call 09058094507 from land line. Claim 3030. Valid 12hrs only, -spam,Hi 07734396839 IBH Customer Loyalty Offer: The NEW NOKIA6600 Mobile from ONLY ??10 at TXTAUCTION!Txt word:START to No:81151 & get Yours Now!4T&, -spam,"Rock yr chik. Get 100's of filthy films &XXX pics on yr phone now. rply FILTH to 69669. Saristar Ltd, E14 9YT 08701752560. 450p per 5 days. Stop2 cancel", -spam,"SMS SERVICES. for your inclusive text credits, pls goto www.comuk.net login= ***** unsubscribe with STOP. no extra charge. help:08700469649. PO BOX420. IP4 5WE", -spam,Guess what! Somebody you know secretly fancies you! Wanna find out who it is? Give us a call on 09065394514 From Landline DATEBox1282EssexCM61XN 150p/min 18, -spam,"Urgent! call 09066350750 from your landline. Your complimentary 4* Ibiza Holiday or 10,000 cash await collection SAE T&Cs PO BOX 434 SK3 8WP 150 ppm 18+ ", -spam,Married local women looking for discreet action now! 5 real matches instantly to your phone. Text MATCH to 69969 Msg cost 150p 2 stop txt stop BCMSFWC1N3XX, -spam,"Your account has been credited with 500 FREE Text Messages. To activate, just txt the word: CREDIT to No: 80488 T&Cs www.80488.biz", -spam,"complimentary 4 STAR Ibiza Holiday or ??10,000 cash needs your URGENT collection. 09066364349 NOW from Landline not to lose out! Box434SK38WP150PPM18+", -spam,"Dear Voucher Holder, 2 claim this weeks offer, at your PC go to http://www.e-tlp.co.uk/expressoffer Ts&Cs apply.2 stop texts txt STOP to 80062.", -spam,Loans for any purpose even if you have Bad Credit! Tenants Welcome. Call NoWorriesLoans.com on 08717111821, -spam,"5 Free Top Polyphonic Tones call 087018728737, National Rate. Get a toppoly tune sent every week, just text SUBPOLY to 81618, ??3 per pole. UnSub 08718727870.", -spam,"Sppok up ur mob with a Halloween collection of nokia logo&pic message plus a FREE eerie tone, txt CARD SPOOK to 8007", -spam,Dont forget you can place as many FREE Requests with 1stchoice.co.uk as you wish. For more Information call 08707808226., -spam,"U were outbid by simonwatson5120 on the Shinco DVD Plyr. 2 bid again, visit sms. ac/smsrewards 2 end bid notifications, reply END OUT", -spam,We tried to call you re your reply to our sms for a video mobile 750 mins UNLIMITED TEXT free camcorder Reply or call now 08000930705 Del Thurs, -spam,Call from 08702490080 - tells u 2 call 09066358152 to claim ??5000 prize. U have 2 enter all ur mobile & personal details @ the prompts. Careful!, -spam,You have 1 new voicemail. Please call 08719181503, -spam,You won't believe it but it's true. It's Incredible Txts! Reply G now to learn truly amazing things that will blow your mind. From O2FWD only 18p/txt, -spam,"Your free ringtone is waiting to be collected. Simply text the password \MIX\"" to 85069 to verify. Get Usher and Britney. FML MK17 92H. 450Ppw 16""", -spam,"Xmas & New Years Eve tickets are now on sale from the club, during the day from 10am till 8pm, and on Thurs, Fri & Sat night this week. They're selling fast!", -spam,1000's of girls many local 2 u who r virgins 2 this & r ready 2 4fil ur every sexual need. Can u 4fil theirs? text CUTE to 69911(??1.50p. m), -spam,"England v Macedonia - dont miss the goals/team news. Txt ur national team to 87077 eg ENGLAND to 87077 Try:WALES, SCOTLAND 4txt/??1.20 POBOXox36504W45WQ 16+", -spam,"Final Chance! Claim ur ??150 worth of discount vouchers today! Text YES to 85023 now! SavaMob, member offers mobile! T Cs SavaMob POBOX84, M263UZ. ??3.00 Subs 16", -spam,Congrats! Nokia 3650 video camera phone is your Call 09066382422 Calls cost 150ppm Ave call 3mins vary from mobiles 16+ Close 300603 post BCM4284 Ldn WC1N3XX, -spam,Urgent! Please call 09061743810 from landline. Your ABTA complimentary 4* Tenerife Holiday or #5000 cash await collection SAE T&Cs Box 326 CW25WX 150 ppm, -spam,Your next amazing xxx PICSFREE1 video will be sent to you enjoy! If one vid is not enough for 2day text back the keyword PICSFREE1 to get the next video., -spam,Tone Club: Your subs has now expired 2 re-sub reply MONOC 4 monos or POLYC 4 polys 1 weekly @ 150p per week Txt STOP 2 stop This msg free Stream 0871212025016, -spam,Congratulations ur awarded 500 of CD vouchers or 125gift guaranteed & Free entry 2 100 wkly draw txt MUSIC to 87066 TnCs www.Ldew.com1win150ppmx3age16, -spam,"You are a ??1000 winner or Guaranteed Caller Prize, this is our Final attempt to contact you! To Claim Call 09071517866 Now! 150ppmPOBox10183BhamB64XE", -spam,"Urgent Urgent! We have 800 FREE flights to Europe to give away, call B4 10th Sept & take a friend 4 FREE. Call now to claim on 09050000555. BA128NNFWFLY150ppm", -spam,"Think ur smart ? Win ??200 this week in our weekly quiz, text PLAY to 85222 now!T&Cs WinnersClub PO BOX 84, M26 3UZ. 16+. GBP1.50/week", -spam,"Congrats! 1 year special cinema pass for 2 is yours. call 09061209465 now! C Suprman V, Matrix3, StarWars3, etc all 4 FREE! bx420-ip4-5we. 150pm. Dont miss out!", -spam,Please CALL 08712402902 immediately as there is an urgent message waiting for you., -spam,SMS. ac Sptv: The New Jersey Devils and the Detroit Red Wings play Ice Hockey. Correct or Incorrect? End? Reply END SPTV, -spam,PRIVATE! Your 2003 Account Statement for 078, -spam,"Text82228>> Get more ringtones, logos and games from www.txt82228.com. Questions: info@txt82228.co.uk", -spam,Get your garden ready for summer with a FREE selection of summer bulbs and seeds worth ??33:50 only with The Scotsman this Saturday. To stop go2 notxt.co.uk, -spam,Want 2 get laid tonight? Want real Dogging locations sent direct 2 ur Mob? Join the UK's largest Dogging Network by txting MOAN to 69888Nyt. ec2a. 31p.msg@150p, -spam,FREE entry into our ??250 weekly comp just send the word ENTER to 84128 NOW. 18 T&C www.textcomp.com cust care 08712405020., -spam,"LookAtMe!: Thanks for your purchase of a video clip from LookAtMe!, you've been charged 35p. Think you can do better? Why not send a video in a MMSto 32323.", -spam,Win a ??1000 cash prize or a prize worth ??5000, -spam,Had your mobile 11 months or more? U R entitled to Update to the latest colour mobiles with camera for Free! Call The Mobile Update Co FREE on 08002986030, -spam,You have 1 new message. Call 0207-083-6089, -spam,Ur balance is now ??500. Ur next question is: Who sang 'Uptown Girl' in the 80's ? 2 answer txt ur ANSWER to 83600. Good luck!, -spam,Free entry in 2 a weekly comp for a chance to win an ipod. Txt POD to 80182 to get entry (std txt rate) T&C's apply 08452810073 for details 18+, -spam,As a registered optin subscriber ur draw 4 ??100 gift voucher will be entered on receipt of a correct ans to 80062 Whats No1 in the BBC charts, -spam,Please CALL 08712404000 immediately as there is an urgent message waiting for you., -spam,XCLUSIVE@CLUBSAISAI 2MOROW 28/5 SOIREE SPECIALE ZOUK WITH NICHOLS FROM PARIS.FREE ROSES 2 ALL LADIES !!! info: 07946746291/07880867867 , -spam,FREE camera phones with linerental from 4.49/month with 750 cross ntwk mins. 1/2 price txt bundle deals also avble. Call 08001950382 or call2optout/J MF, -spam,+123 Congratulations - in this week's competition draw u have won the ??1450 prize to claim just call 09050002311 b4280703. T&Cs/stop SMS 08718727868. Over 18 only 150ppm, -spam,"Welcome to Select, an O2 service with added benefits. You can now call our specially trained advisors FREE from your mobile by dialling 402.", -spam,URGENT! Your Mobile number has been awarded with a ??2000 prize GUARANTEED. Call 09061790121 from land line. Claim 3030. Valid 12hrs only 150ppm, -spam,"Download as many ringtones as u like no restrictions, 1000s 2 choose. U can even send 2 yr buddys. Txt Sir to 80082 ??3 ", -spam,Congratulations ur awarded either a yrs supply of CDs from Virgin Records or a Mystery Gift GUARANTEED Call 09061104283 Ts&Cs www.smsco.net ??1.50pm approx 3mins, -spam,"\URGENT! This is the 2nd attempt to contact U!U have WON ??1000CALL 09071512432 b4 300603t&csBCM4235WC1N3XX.callcost150ppmmobilesvary. max??7. 50\""""", -spam,88066 FROM 88066 LOST 3POUND HELP, -spam,Send a logo 2 ur lover - 2 names joined by a heart. Txt LOVE NAME1 NAME2 MOBNO eg LOVE ADAM EVE 07123456789 to 87077 Yahoo! POBox36504W45WQ TxtNO 4 no ads 150p, -spam,"Eerie Nokia tones 4u, rply TONE TITLE to 8007 eg TONE DRACULA to 8007 Titles: GHOST, ADDAMSFA, MUNSTERS, EXORCIST, TWILIGHT www.getzed.co.uk POBox36504W45WQ 150p", -spam,FreeMsg:Feelin kinda lnly hope u like 2 keep me company! Jst got a cam moby wanna c my pic?Txt or reply DATE to 82242 Msg150p 2rcv Hlp 08712317606 stop to 82242, -spam,sexy sexy cum and text me im wet and warm and ready for some porn! u up for some fun? THIS MSG IS FREE RECD MSGS 150P INC VAT 2 CANCEL TEXT STOP, -spam,We tried to call you re your reply to our sms for a video mobile 750 mins UNLIMITED TEXT + free camcorder Reply of call 08000930705 Now, -spam,Hard LIVE 121 chat just 60p/min. Choose your girl and connect LIVE. Call 09094646899 now! Cheap Chat UK's biggest live service. VU BCM1896WC1N3XX, -spam,"You are being contacted by our dating service by someone you know! To find out who it is, call from a land line 09050000928. PoBox45W2TG150P", -spam,"Dear Voucher Holder, To claim this weeks offer, at your PC please go to http://www.wtlp.co.uk/text. Ts&Cs apply.", -spam,You have WON a guaranteed ??1000 cash or a ??2000 prize.To claim yr prize call our customer service representative on, -spam,I don't know u and u don't know me. Send CHAT to 86688 now and let's find each other! Only 150p/Msg rcvd. HG/Suite342/2Lands/Row/W1J6HL LDN. 18 years or over., -spam,PRIVATE! Your 2003 Account Statement for shows 800 un-redeemed S.I.M. points. Call 08718738001 Identifier Code: 49557 Expires 26/11/04, -spam,"If you don't, your prize will go to another customer. T&C at www.t-c.biz 18+ 150p/min Polo Ltd Suite 373 London W1J 6HL Please call back if busy ", -spam,XMAS Prize draws! We are trying to contact U. Todays draw shows that you have won a ??2000 prize GUARANTEED. Call 09058094565 from land line. Valid 12hrs only, -spam,URGENT! Your Mobile number has been awarded with a ??2000 prize GUARANTEED. Call 09058094455 from land line. Claim 3030. Valid 12hrs only, -spam,"SIX chances to win CASH! From 100 to 20,000 pounds txt> CSH11 and send to 87575. Cost 150p/day, 6days, 16+ TsandCs apply Reply HL 4 info", -spam,"This is the 2nd time we have tried 2 contact u. U have won the 750 Pound prize. 2 claim is easy, call 08718726970 NOW! Only 10p per min. BT-national-rate ", -spam,FREE entry into our ??250 weekly comp just send the word WIN to 80086 NOW. 18 T&C www.txttowin.co.uk, -spam,Call 09095350301 and send our girls into erotic ecstacy. Just 60p/min. To stop texts call 08712460324 (nat rate), -spam,Get ur 1st RINGTONE FREE NOW! Reply to this msg with TONE. Gr8 TOP 20 tones to your phone every week just ??1.50 per wk 2 opt out send STOP 08452810071 16, -spam,This message is brought to you by GMW Ltd. and is not connected to the, -spam,25p 4 alfie Moon's Children in need song on ur mob. Tell ur m8s. Txt Tone charity to 8007 for Nokias or Poly charity for polys: zed 08701417012 profit 2 charity., -spam,Filthy stories and GIRLS waiting for your, -spam,Thanks 4 your continued support Your question this week will enter u in2 our draw 4 ??100 cash. Name the NEW US President? txt ans to 80082, -spam,"URGENT! Your Mobile No was awarded a ??2,000 Bonus Caller Prize on 1/08/03! This is our 2nd attempt to contact YOU! Call 0871-4719-523 BOX95QU BT National Rate", -spam,"Thanks for your ringtone order, reference number X49.Your mobile will be charged 4.50. Should your tone not arrive please call customer services 09065989182", -spam,"TheMob>Hit the link to get a premium Pink Panther game, the new no. 1 from Sugababes, a crazy Zebra animation or a badass Hoody wallpaper-all 4 FREE!", -spam,**FREE MESSAGE**Thanks for using the Auction Subscription Service. 18 . 150p/MSGRCVD 2 Skip an Auction txt OUT. 2 Unsubscribe txt STOP CustomerCare 08718726270, -spam,"Congratulations! Thanks to a good friend U have WON the ??2,000 Xmas prize. 2 claim is easy, just call 08718726978 NOW! Only 10p per minute. BT-national-rate", -spam,HMV BONUS SPECIAL 500 pounds of genuine HMV vouchers to be won. Just answer 4 easy questions. Play Now! Send HMV to 86688 More info:www.100percent-real.com, -spam,"Urgent UR awarded a complimentary trip to EuroDisinc Trav, Aco&Entry41 Or ??1000. To claim txt DIS to 87121 18+6*??1.50(moreFrmMob. ShrAcomOrSglSuplt)10, LS1 3AJ", -spam,"As a valued customer, I am pleased to advise you that following recent review of your Mob No. you are awarded with a ??1500 Bonus Prize, call 09066364589", -spam,"SMS. ac JSco: Energy is high, but u may not know where 2channel it. 2day ur leadership skills r strong. Psychic? Reply ANS w/question. End? Reply END JSCO", -spam,For sale - arsenal dartboard. Good condition but no doubles or trebles!, -spam,Camera - You are awarded a SiPix Digital Camera! call 09061221066 fromm landline. Delivery within 28 days., -spam,Customer service annoncement. You have a New Years delivery waiting for you. Please call 07046744435 now to arrange delivery, -spam,Dear U've been invited to XCHAT. This is our final attempt to contact u! Txt CHAT to 86688 150p/MsgrcvdHG/Suite342/2Lands/Row/W1J6HL LDN 18 yrs, -spam,Someone has conacted our dating service and entered your phone because they fancy you!To find out who it is call from landline 09111030116. PoBox12n146tf15, -spam,PRIVATE! Your 2003 Account Statement for shows 800 un-redeemed S. I. M. points. Call 08715203652 Identifier Code: 42810 Expires 29/10/0, -spam,Your 2004 account for 07XXXXXXXXX shows 786 unredeemed points. To claim call 08719181259 Identifier code: XXXXX Expires 26.03.05, -spam,Are you unique enough? Find out from 30th August. www.areyouunique.co.uk, -spam,Urgent! Please call 09061743811 from landline. Your ABTA complimentary 4* Tenerife Holiday or ??5000 cash await collection SAE T&Cs Box 326 CW25WX 150ppm, -spam,"URGENT! Your mobile No *********** WON a ??2,000 Bonus Caller Prize on 02/06/03! This is the 2nd attempt to reach YOU! Call 09066362220 ASAP! BOX97N7QP, 150ppm", -spam,Want 2 get laid tonight? Want real Dogging locations sent direct 2 ur mob? Join the UK's largest Dogging Network bt Txting GRAVEL to 69888! Nt. ec2a. 31p.msg@150p, -spam,"FreeMSG You have been awarded a FREE mini DIGITAL CAMERA, just reply SNAP to collect your prize! (quizclub Opt out? Stop 80122300p/wk SP:RWM Ph:08704050406)", -spam,"For ur chance to win a ??250 cash every wk TXT: ACTION to 80608. T's&C's www.movietrivia.tv custcare 08712405022, 1x150p/wk.", -spam,"Thanks for your ringtone order, ref number R836. Your mobile will be charged ??4.50. Should your tone not arrive please call customer services on 09065069154", -spam,"Call 09094100151 to use ur mins! Calls cast 10p/min (mob vary). Service provided by AOM, just GBP5/month. AOM Box61,M60 1ER until u stop. Ages 18+ only!", -spam,Panasonic & BluetoothHdset FREE. Nokia FREE. Motorola FREE & DoubleMins & DoubleTxt on Orange contract. Call MobileUpd8 on 08000839402 or call 2optout, -spam,"This weeks SavaMob member offers are now accessible. Just call 08709501522 for details! SavaMob, POBOX 139, LA3 2WU. Only ??1.50/week. SavaMob - offers mobile!", -spam,"Customer service announcement. We recently tried to make a delivery to you but were unable to do so, please call 07090298926 to re-schedule. Ref:9307622", -spam,"Mila, age23, blonde, new in UK. I look sex with UK guys. if u like fun with me. Text MTALK to 69866.18 . 30pp/txt 1st 5free. ??1.50 increments. Help08718728876", -spam,FreeMsg: Fancy a flirt? Reply DATE now & join the UKs fastest growing mobile dating service. Msgs rcvd just 25p to optout txt stop to 83021. Reply DATE now!, -spam,"FREE MESSAGE Activate your 500 FREE Text Messages by replying to this message with the word FREE For terms & conditions, visit www.07781482378.com", -spam,December only! Had your mobile 11mths+? You are entitled to update to the latest colour camera mobile for Free! Call The Mobile Update Co FREE on 08002986906 , -spam,We currently have a message awaiting your collection. To collect your message just call 08718723815., -spam,"Get 3 Lions England tone, reply lionm 4 mono or lionp 4 poly. 4 more go 2 www.ringtones.co.uk, the original n best. Tones 3GBP network operator rates apply.", -spam,Ringtone Club: Get the UK singles chart on your mobile each week and choose any top quality ringtone! This message is free of charge., -spam,"For ur chance to win ??250 cash every wk TXT: PLAY to 83370. T's&C's www.music-trivia.net custcare 08715705022, 1x150p/wk.", -spam,Well done ENGLAND! Get the official poly ringtone or colour flag on yer mobile! text TONE or FLAG to 84199 NOW! Opt-out txt ENG STOP. Box39822 W111WX ??1.50, -spam,Bloomberg -Message center +447797706009 Why wait? Apply for your future http://careers. bloomberg.com, -spam,I'd like to tell you my deepest darkest fantasies. Call me 09094646631 just 60p/min. To stop texts call 08712460324 (nat rate), -spam,TBS/PERSOLVO. been chasing us since Sept for??38 definitely not paying now thanks to your information. We will ignore them. Kath. Manchester., -spam,Free entry in 2 a wkly comp to win FA Cup final tkts 21st May 2005. Text FA to 87121 to receive entry question(std txt rate)T&C's apply 08452810075over18's, -spam,3. You have received your mobile content. Enjoy, -spam,"FREE RING TONE just text \POLYS\"" to 87131. Then every week get a new tone. 0870737910216yrs only ??1.50/wk.""", -spam,Please CALL 08712402779 immediately as there is an urgent message waiting for you, -spam,You are a winner U have been specially selected 2 receive ??1000 cash or a 4* holiday (flights inc) speak to a live operator 2 claim 0871277810810, -spam,URGENT! We are trying to contact you. Last weekends draw shows that you have won a ??900 prize GUARANTEED. Call 09061701851. Claim code K61. Valid 12hours only, -spam,we tried to contact you re your response to our offer of a new nokia fone and camcorder hit reply or call 08000930705 for delivery, -spam,"FREE RINGTONE text FIRST to 87131 for a poly or text GET to 87131 for a true tone! Help? 0845 2814032 16 after 1st free, tones are 3x??150pw to e??nd txt stop", -spam,"Sunshine Hols. To claim ur med holiday send a stamped self address envelope to Drinks on Us UK, PO Box 113, Bray, Wicklow, Eire. Quiz Starts Saturday! Unsub Stop", -spam,Call Germany for only 1 pence per minute! Call from a fixed line via access number 0844 861 85 85. No prepayment. Direct access! www.telediscount.co.uk, -spam,You won't believe it but it's true. It's Incredible Txts! Reply G now to learn truly amazing things that will blow your mind. From O2FWD only 18p/txt, -spam,"This is the 2nd time we have tried to contact u. U have won the ??400 prize. 2 claim is easy, just call 087104711148 NOW! Only 10p per minute. BT-national-rate", -spam,todays vodafone numbers ending with 0089(my last four digits) are selected to received a ??350 award. If your number matches please call 09063442151 to claim your ??350 award, -ham,"Tonight? Yeah, I'd be down for that", -ham,Hi.what you think about match?, -ham,Well boy am I glad G wasted all night at applebees for nothing, -ham,Then what about further plan?, -ham,No it was cancelled yeah baby! Well that sounds important so i understand my darlin give me a ring later on this fone love Kate x, -ham,\CHA QUITEAMUZING THAT??SCOOL BABE, -ham,Nah dub but je still buff, -ham,"Could you not read me, my Love ? I answered you", -ham,As per your request 'Melle Melle (Oru Minnaminunginte Nurungu Vettam)' has been set as your callertune for all Callers. Press *9 to copy your friends Callertune, -ham,"Hello. No news on job, they are making me wait a fifth week! Yeah im up for some woozles and weasels... In exeter still, but be home about 3. ", -ham,"Hi, wkend ok but journey terrible. Wk not good as have huge back log of marking to do", -ham,"Sorry, it's a lot of friend-of-a-friend stuff, I'm just now about to talk to the actual guy who wants to buy", -ham,Ok... But bag again.., -ham,I keep ten rs in my shelf:) buy two egg., -ham,Went to ganesh dress shop, -ham,Mum say we wan to go then go... Then she can shun bian watch da glass exhibition... , -ham,Not thought bout it... || Drink in tap & spile at seven. || Is that pub on gas st off broad st by canal. || Ok?, -ham,?? bot notes oredi... Cos i juz rem i got..., -ham,He fucking chickened out. He messaged me he would be late and woould buzz me and then I didn't hear a word from him, -ham,From 5 to 2 only my work timing., -ham,I only work from mon to thurs but Sat i cant leh... Booked liao... Which other day u free?, -ham,"Forgot it takes me 3 years to shower, sorry. Where you at/your phone dead yet?", -ham,Hey. You got any mail?, -ham,Ok.ok ok..then..whats ur todays plan, -ham,Appt is at <TIME> am. Not my fault u don't listen. I told u twice, -ham,Headin towards busetop, -ham,"Fuuuuck I need to stop sleepin, sup", -ham,"\Thinking of u ;) x\""""", -ham,Yar lor wait 4 my mum 2 finish sch then have lunch lor... I whole morning stay at home clean my room now my room quite clean... Hee..., -ham,One of best dialogue in cute reltnship..!! \Wen i Die, -ham,"Playin space poker, u?", -ham,"Hi Shanil,Rakhesh here.thanks,i have exchanged the uncut diamond stuff.leaving back. Excellent service by Dino and Prem.", -ham,HI DARLIN I FINISH AT 3 DO U 1 2 PICK ME UP OR MEET ME? TEXT BACK ON THIS NUMBER LUV KATE XXX, -ham,"Whenevr ur sad, Whenevr ur gray, Remembr im here 2 listn 2 watevr u wanna say, Jus walk wid me a little while,& I promise I'll bring back ur smile.:-)", -ham,"Sir, I have been late in paying rent for the past few months and had to pay a $ <#> charge. I felt it would be inconsiderate of me to nag about something you give at great cost to yourself and that's why i didnt speak up. I however am in a recession and wont be able to pay the charge this month hence my askin well ahead of month's end. Can you please help. Thanks", -ham,How are you enjoying this semester? Take care brother., -ham,I need details about that online job., -ham,"Come to mu, we're sorting out our narcotics situation", -ham,"Haha yeah I see that now, be there in a sec", -ham,No da..today also i forgot.., -ham,"Yun ah.the ubi one say if ?_ wan call by tomorrow.call 67441233 look for irene.ere only got bus8,22,65,61,66,382. Ubi cres,ubi tech park.6ph for 1st 5wkg days.??n", -ham,Jus came back fr lunch wif my sis only. U leh?, -ham,yeah sure thing mate haunt got all my stuff sorted but im going sound anyway promoting hex for .by the way who is this? dont know number. Joke, -ham,"Awesome, think we can get an 8th at usf some time tonight?", -ham,Just haven't decided where yet eh ?, -ham,Nope but i'll b going 2 sch on fri quite early lor cos mys sis got paper in da morn :-), -ham,Cheers for the card ... Is it that time of year already?, -ham,No problem. Talk to you later, -ham,"K, makes sense, btw carlos is being difficult so you guys are gonna smoke while I go pick up the second batch and get gas", -ham,"\ME 2 BABE I FEEL THE SAME LETS JUST 4GET ABOUT IT+BOTH TRY +CHEER UP+NOT FIT SOO MUCHXXLOVE U LOCAXX\""""", -ham,In sch but neva mind u eat 1st lor.., -ham,Armand says get your ass over to epsilon, -ham,"Ok omw now, you at castor?", -ham,"What do u reckon as need 2 arrange transport if u can't do it, thanks", -ham,I will lick up every drop :) are you ready to use your mouth as well?, -ham,"Do 1 thing! Change that sentence into: \Because i want 2 concentrate in my educational career im leaving here..\""""", -ham,For real when u getting on yo? I only need 2 more tickets and one more jacket and I'm done. I already used all my multis., -ham,Remind me how to get there and I shall do so, -ham,U sick still can go shopping?, -ham,Its normally hot mail. Com you see!, -ham,"Good afternoon sexy buns! How goes the job search ? I wake and you are my first thought as always, my love. I wish your fine and happy and know I adore you!", -ham,When should I come over?, -ham,"Sorry, got a late start, we're on the way", -ham,"I don,t think so. You don't need to be going out that late on a school night. ESPECIALLY when the one class you have is the one you missed last wednesday and probably failed a test in on friday", -ham,"K, can that happen tonight?", -ham,Back in brum! Thanks for putting us up and keeping us all and happy. See you soon , -ham,And by when you're done I mean now, -ham,Jay says that you're a double-faggot, -ham,Cant think of anyone with * spare room off * top of my head, -ham,Which channel:-):-):):-)., -ham,Wanna do some art?! :D, -ham,Sorry that was my uncle. I.ll keep in touch, -ham,K tell me anything about you., -ham,Wat time u finish ur lect today?, -ham,?? mean it's confirmed... I tot they juz say oni... Ok then... , -ham,Umma my life and vava umma love you lot dear, -ham,Just got up. have to be out of the room very soon. ??_. i hadn't put the clocks back til at 8 i shouted at everyone to get up and then realised it was 7. wahay. another hour in bed., -ham,Yup ?_ not comin :-(, -ham,U should make a fb list, -ham,"By the way, 'rencontre' is to meet again. Mountains dont....", -ham,But you dint in touch with me., -ham,"It's cool, we can last a little while. Getting more any time soon?", -ham,Wat ?_ doing now?, -ham,U definitely need a module from e humanities dis sem izzit? U wan 2 take other modules 1st?, -ham,Howz pain?hope u r fine.., -ham,Really? I crashed out cuddled on my sofa., -ham,"sry can't talk on phone, with parents", -ham,"Actually fuck that, just do whatever, do find an excuse to be in tampa at some point before january though", -ham,I like dis sweater fr mango but no more my size already so irritating., -ham,I'm at home. Please call, -ham,Leave it wif me lar... ?? wan to carry meh so heavy... Is da num 98321561 familiar to ?_?, -ham,Just sent it. So what type of food do you like?, -ham,I just made some payments so dont have that much. Sorry. Would you want it fedex or the other way., -ham,Haf u found him? I feel so stupid da v cam was working., -ham,Oops. 4 got that bit., -ham,"As I entered my cabin my PA said, '' Happy B'day Boss !!''. I felt special. She askd me 4 lunch. After lunch she invited me to her apartment. We went there.", -ham,Except theres a chick with huge boobs., -ham,HI DARLIN I HOPE YOU HAD A NICE NIGHT I WISH I HAD COME CANT WAIT TO SEE YOU LOVE FRAN PS I WANT DIRTY ANAL SEX AND I WANT A 10 MAN GANG BANG, -ham,I enjoy watching and playing football and basketball. Anything outdoors. And you?, -ham,HIYA COMIN 2 BRISTOL 1 ST WEEK IN APRIL. LES GOT OFF + RUDI ON NEW YRS EVE BUT I WAS SNORING.THEY WERE DRUNK! U BAK AT COLLEGE YET? MY WORK SENDS INK 2 BATH., -ham,Is ur lecture over?, -ham,And I don't plan on staying the night but I prolly won't be back til late, -ham,"Yep, the great loxahatchee xmas tree burning of <#> starts in an hour", -ham,Goin to workout lor... Muz lose e fats... , -ham,"Oh fine, I'll be by tonight", -ham,Hey mate. Spoke to the mag people. We???re on. the is deliver by the end of the month. Deliver on the 24th sept. Talk later. , -ham,I'll text now! All creepy like so he won't think that we forgot, -ham,Ok i am on the way to home hi hi, -ham,Well. Im computerless. Time to make some oreo truffles, -ham,"Hmm ok, i'll stay for like an hour cos my eye is really sore!", -ham,I wanted to wish you a Happy New Year and I wanted to talk to you about some legal advice to do with when Gary and I split but in person. I'll make a trip to Ptbo for that. I hope everything is good with you babe and I love ya :), -ham,Give me a sec to think think about it, -ham,No need lar. Jus testing e phone card. Dunno network not gd i thk. Me waiting 4 my sis 2 finish bathing so i can bathe. Dun disturb u liao u cleaning ur room., -ham," came to look at the flat, seems ok, in his 50s? * Is away alot wiv work. Got woman coming at 6.30 too.", -ham,Good evening! How are you?, -ham,I'm still pretty weak today .. Bad day ?, -ham,I said its okay. Sorry, -ham,Hey sexy buns! What of that day? No word from you this morning on YM ... :-( ... I think of you, -ham,How are you doing? Hope you've settled in for the new school year. Just wishin you a gr8 day, -ham,Company is very good.environment is terrific and food is really nice:), -ham,"A bit of Ur smile is my hppnss, a drop of Ur tear is my sorrow, a part of Ur heart is my life, a heart like mine wil care for U, forevr as my GOODFRIEND", -ham,You want to go? , -ham,Nite..., -ham,Its going good...no problem..but still need little experience to understand american customer voice..., -ham,Awww dat is sweet! We can think of something to do he he! Have a nice time tonight ill probably txt u later cos im lonely :( xxx., -ham,Sos! Any amount i can get pls., -ham,Pls confirm the time to collect the cheque., -ham,What's ur pin?, -ham,"wiskey Brandy Rum Gin Beer Vodka Scotch Shampain Wine \KUDI\""yarasu dhina vaazhthukkal. ..""", -ham,Ok... U enjoy ur shows..., -ham,Those were my exact intentions, -ham,Shall call now dear having food, -ham,Ok lor. I ned 2 go toa payoh 4 a while 2 return smth u wan 2 send me there or wat?, -ham,Lol yep did that yesterday. Already got my fireplace. Now its just another icon sitting there for me., -ham,"You are everywhere dirt, on the floor, the windows, even on my shirt. And sometimes when i open my mouth, you are all that comes flowing out. I dream of my world without you, then half my chores are out too. A time of joy for me, lots of tv shows i.ll see. But i guess like all things you just must exist, like rain, hail and mist, and when my time here is done, you and i become one.", -ham,Not tonight mate. Catching up on some sleep. This is my new number by the way. , -ham,?? still attending da talks?, -ham,Its ok..come to my home it vl nice to meet and v can chat.., -ham,Hmm...Bad news...Hype park plaza $700 studio taken...Only left 2 bedrm-$900..., -ham,"I am late,so call you tomorrow morning.take care sweet dreams....u and me...ummifying...bye.", -ham,Rofl betta invest in some anti aging products, -ham,I hope your pee burns tonite., -ham,Also andros ice etc etc, -ham,"Good afternon, my love. How are today? I hope your good and maybe have some interviews. I wake and miss you babe. A passionate kiss from across the sea", -ham,Stop the story. I've told him i've returned it and he's saying i should not re order it., -ham,I am not sure about night menu. . . I know only about noon menu, -ham,Hi dis is yijue i would be happy to work wif ?_ all for gek1510..., -ham,Are you still getting the goods., -ham,Did you see that film:), -ham,"Okey dokey, i???ll be over in a bit just sorting some stuff out.", -ham,Our Prashanthettan's mother passed away last night. pray for her and family., -ham,"Ah, well that confuses things, doesnt it? I thought was friends with now. Maybe i did the wrong thing but i already sort of invited -tho he may not come cos of money.", -ham,Pls go ahead with watts. I just wanted to be sure. Do have a great weekend. Abiola, -ham,"Geeee ... I miss you already, you know ? Your all I can think about. Fuck, I can't wait till next year when we will be together ... *loving kiss*", -ham,You are a great role model. You are giving so much and i really wish each day for a miracle but God as a reason for everything and i must say i wish i knew why but i dont. I've looked up to you since i was young and i still do. Have a great day., -ham,Ok. Very good. Its all about making that money., -ham,"House-Maid is the murderer, coz the man was murdered on <#> th January.. As public holiday all govt.instituitions are closed,including post office..", -ham,R u meeting da ge at nite tmr?, -ham,X course it 2yrs. Just so her messages on messenger lik you r sending me, -ham,Hey i will be late... i'm at amk. Need to drink tea or coffee, -ham,Today is ACCEPT DAY..U Accept me as? Brother Sister Lover Dear1 Best1 Clos1 Lvblefrnd Jstfrnd Cutefrnd Lifpartnr Belovd Swtheart Bstfrnd No rply means enemy, -ham,U r too much close to my heart. If u go away i will be shattered. Plz stay with me., -ham,"Hmm well, night night ", -ham,"Thank you so much. When we skyped wit kz and sura, we didnt get the pleasure of your company. Hope you are good. We've given you ultimatum oh! We are countin down to aburo. Enjoy!", -ham,I'm really sorry I lit your hair on fire, -ham,I have to take exam with in march 3, -ham,"Alright omw, gotta change my order to a half8th", -ham,"see you then, we're all christmassy here!", -ham,When/where do I pick you up, -ham,I cant pick the phone right now. Pls send a message, -ham,Were gonna go get some tacos, -ham,Watching tv lor... Y she so funny we bluff her 4 wat. Izzit because she thk it's impossible between us?, -ham,Its not the same here. Still looking for a job. How much do Ta's earn there., -ham,"Helloooo... Wake up..! \Sweet\"" \""morning\"" \""welcomes\"" \""You\"" \""Enjoy\"" \""This Day\"" \""with full of joy\"".. \""GUD MRNG\"".""", -ham,"Aight yo, dats straight dogg", -ham,Is there any training tomorrow?, -ham,Yoyyooo u know how to change permissions for a drive in mac. My usb flash drive, -ham,Aiyo u so poor thing... Then u dun wan 2 eat? U bathe already?, -ham,Buzzzz! *grins* Did I buzz your ass? Buzz your chest ? Buzz your cock ? Where do you keep your phone ? Is the vibrator on ? Did you feel it shake ?, -ham,"\Speak only when you feel your words are better than the silence...\"" Gud mrng:-)""", -ham,LOL that would be awesome payback., -ham,The guy did some bitching but I acted like i'd be interested in buying something else next week and he gave it to us for free, -ham,Ok i vl..do u know i got adsense approved.., -ham,Just got to <#>, -ham,O shore are you takin the bus, -ham,Might ax well im there., -ham,Prabha..i'm soryda..realy..frm heart i'm sory, -ham,Good words.... But words may leave u in dismay many times., -ham,Gettin rdy to ship comp, -ham,Great. Never been better. Each day gives even more reasons to thank God, -ham,Thnx dude. u guys out 2nite?, -ham,My love ... I hope your not doing anything drastic. Don't you dare sell your pc or your phone ..., -ham,Dunno lei ?_ all decide lor. How abt leona? Oops i tot ben is going n i msg him., -ham,Roger that. We???re probably going to rem in about 20, -ham,I am 6 ft. We will be a good combination!, -ham,"Call me. I m unable to cal. Lets meet bhaskar, and deep", -ham,Ok. I.ll do you right later., -ham,Aiyah then i wait lor. Then u entertain me. Hee..., -ham,"That's good, because I need drugs", -ham,No plm i will come da. On the way., -ham,Hmm .. Bits and pieces lol ... *sighs* ..., -ham,"Uh, heads up we don't have THAT much left", -ham,Omg I want to scream. I weighed myself and I lost more weight! Woohoo!, -ham,Dunno da next show aft 6 is 850. Toa payoh got 650., -ham,I'm working technical support :)voice process.networking field., -ham,Better. Made up for Friday and stuffed myself like a pig yesterday. Now I feel bleh. But at least its not writhing pain kind of bleh., -ham,", , and picking them up from various points | going 2 yeovil | and they will do the motor project 4 3 hours | and then u take them home. || 12 2 5.30 max. || Very easy", -ham,Draw va?i dont think so:), -ham,Omg you can make a wedding chapel in frontierville? Why do they get all the good stuff?, -ham,Yes. Nigh you cant aha., -ham,No rushing. I'm not working. I'm in school so if we rush we go hungry., -ham,Water logging in desert. Geoenvironmental implications., -ham,Ok ill tell the company, -ham,I not free today i haf 2 pick my parents up tonite..., -ham,K k:) sms chat with me., -ham,"Give her something to drink, if she takes it and doesn't vomit then you her temp might drop. If she unmits however let me know.", -ham,Oh k.k..where did you take test?, -ham,"Wow. I never realized that you were so embarassed by your accomodations. I thought you liked it, since i was doing the best i could and you always seemed so happy about \the cave\"". I'm sorry I didn't and don't have more to give. I'm sorry i offered. I'm sorry your room was so embarassing.""", -ham,Love that holiday Monday feeling even if I have to go to the dentists in an hour, -ham,I'm going out to buy mum's present ar., -ham,"Sorry im getting up now, feel really bad- totally rejected that kinda me thing.", -ham,K.then any other special?, -ham,Short But Cute: \Be a good person, -ham,I havent add ?_ yet right.. , -ham,"Dizzamn, aight I'll ask my suitemates when I get back", -ham,Guess he wants alone time. We could just show up and watch when they do.., -ham,Sac will score big hundred.he is set batsman:-), -ham,I've sent ?_ my part.., -ham,Fine if that??s the way u feel. That??s the way its gota b, -ham,I'm ok wif it cos i like 2 try new things. But i scared u dun like mah. Cos u said not too loud., -ham,U free on sat rite? U wan 2 watch infernal affairs wif me n darren n mayb xy?, -ham,alright. Thanks for the advice. Enjoy your night out. I'ma try to get some sleep..., -ham,Lmao ok I wont be needing u to do my hair anymore., -ham,I told that am coming on wednesday., -ham,"Sure thing big man. i have hockey elections at 6, shouldn???t go on longer than an hour though", -ham,Our ride equally uneventful - not too many of those pesky cyclists around at that time of night ;)., -ham,Ok. There may be a free gym about., -ham,"'Wnevr i wana fal in luv vth my books, My bed fals in luv vth me..!'' . Yen madodu, nav pretsorginta, nammanna pretsovru important alwa....!!:) Gud eveB-).", -ham,"Thanks, I'll keep that in mind", -ham,Ok how you dear. Did you call chechi, -ham,Dear reached railway. What happen to you, -ham,Great. I was getting worried about you. Just know that a wonderful and caring person like you will have only the best in life. Know that u r wonderful and God's love is yours., -ham,Did u fix the teeth?if not do it asap.ok take care., -ham,G wants to know where the fuck you are, -ham,Me hungry buy some food good lei... But mum n yun dun wan juz buy a little bit... , -ham,I will once i get home, -ham,We not leaving yet. Ok lor then we go elsewhere n eat. U thk..., -ham,Well you told others you'd marry them..., -ham,U don't remember that old commercial?, -ham,Yes. Rent is very expensive so its the way we save., -ham,No i'm not gonna be able to. || too late notice. || i'll be home in a few weeks anyway. || what are the plans, -ham,Huh but i cant go 2 ur house empty handed right?, -ham,Am on the uworld site. Am i buying the qbank only or am i buying it with the self assessment also?, -ham,When you are big..| God will bring success., -ham,\HEY KATE, -ham,Want to send me a virtual hug?... I need one, -ham,PS U no ur a grown up now right?, -ham,Horrible bf... I now v hungry..., -ham,Don't look back at the building because you have no coat and i don't want you to get more sick. Just hurry home and wear a coat to the gym!!!, -ham,yes baby! I need to stretch open your pussy!, -ham,Got c... I lazy to type... I forgot ?_ in lect... I saw a pouch but like not v nice..., -ham,I was at bugis juz now wat... But now i'm walking home oredi... ?? so late then reply... I oso saw a top dat i like but din buy... Where r ?_ now? , -ham,Smile in Pleasure Smile in Pain Smile when trouble pours like Rain Smile when sum1 Hurts U Smile becoz SOMEONE still Loves to see u Smiling!!, -ham,"Alright, we're all set here, text the man", -ham,I ask if u meeting da ge tmr nite..., -ham,Yup ok thanx..., -ham,Hmmm.still we dont have opener?, -ham,"Open rebtel with firefox. When it loads just put plus sign in the user name place, and it will show you two numbers. The lower number is my number. Once you pick that number the pin will display okay!", -ham,Si si. I think ill go make those oreo truffles., -ham,"I'll see, but prolly yeah", -ham,Ok going to sleep. Hope i can meet her., -ham,I thk u dun haf 2 hint in e forum already lor... Cos i told ron n darren is going 2 tell shuhui., -ham,Those ducking chinchillas, -ham,Hey no I ad a crap nite was borin without ya 2 boggy with me u boring biatch! Thanx but u wait til nxt time il ave ya , -ham,No problem. How are you doing?, -ham,I thk ?_ gotta go home by urself. Cos i'll b going out shopping 4 my frens present. , -ham,", how's things? Just a quick question.", -ham,We're finally ready fyi, -ham,So li hai... Me bored now da lecturer repeating last weeks stuff waste time... , -ham,Why didn't u call on your lunch?, -ham,"My friend, she's studying at warwick, we've planned to go shopping and to concert tmw, but it may be canceled, havn't seen for ages, yeah we should get together sometime!", -ham,Oops sorry. Just to check that you don't mind picking me up tomo at half eight from station. Would that be ok?, -ham,Sian... Aft meeting supervisor got work 2 do liao... U working now?, -ham,Its worse if if uses half way then stops. Its better for him to complete it., -ham,Nvm... I'm going to wear my sport shoes anyway... I'm going to be late leh., -ham,I'm sick !! I'm needy !! I want you !! *pouts* *stomps feet* Where are you ?! *pouts* *stomps feet* I want my slave !! I want him now !!, -ham,"Yup. Anything lor, if u dun wan it's ok...", -ham,Love it! Daddy will make you scream with pleasure! I am going to slap your ass with my dick!, -ham,Probably gonna swing by in a wee bit, -ham,K k :-):-) then watch some films., -ham,Dnt worry...use ice pieces in a cloth pack.also take 2 tablets., -ham,"Say this slowly.? GOD,I LOVE YOU & I NEED YOU,CLEAN MY HEART WITH YOUR BLOOD.Send this to Ten special people & u c miracle tomorrow, do it,pls,pls do it...", -ham,Pandy joined 4w technologies today.he got job.., -ham,Lol ok. I'll snatch her purse too., -ham,1's finish meeting call me., -ham,Yes! I am a one woman man! Please tell me your likes and dislikes in bed..., -ham,"Hey, iouri gave me your number, I'm wylie, ryan's friend", -ham,Never blame a day in ur life. Good days give u happiness. Bad days give u experience. Both are essential in life! All are Gods blessings! good morning.:, -ham,I wont do anything de., -ham,Anyway seriously hit me up when you're back because otherwise I have to light up with armand and he always has shit and/or is vomiting, -ham,We'll join the <#> bus, -ham,it's still not working. And this time i also tried adding zeros. That was the savings. The checking is <#> , -ham,"Good morning, my Love ... I go to sleep now and wish you a great day full of feeling better and opportunity ... You are my last thought babe, I LOVE YOU *kiss*", -ham,If you r @ home then come down within 5 min, -ham,I can??t wait for cornwall. Hope tonight isn??t too bad as well but it??s rock night shite. Anyway i??m going for a kip now have a good night. Speak to you soon., -ham,Hi neva worry bout da truth coz the truth will lead me 2 ur heart. It??s the least a unique person like u deserve. Sleep tight or morning, -ham,"I wonder if your phone battery went dead ? I had to tell you, I love you babe", -ham,"you are sweet as well, princess. Please tell me your likes and dislikes in bed...", -ham,I know you are. Can you pls open the back?, -ham,Just sing HU. I think its also important to find someone female that know the place well preferably a citizen that is also smart to help you navigate through. Even things like choosing a phone plan require guidance. When in doubt ask especially girls., -ham,Please tell me not all of my car keys are in your purse, -ham,I cant pick the phone right now. Pls send a message, -ham,"Aight, we'll head out in a few", -ham,Okie, -ham,Nothing. Can..., -ham,Did you try making another butt., -ham,Then get some cash together and I'll text jason, -ham,"Good afternoon, babe. How goes that day ? Any job prospects yet ? I miss you, my love ... *sighs* ... :-(", -ham,Black shirt n blue jeans... I thk i c ?_..., -ham,I'm doing da intro covers energy trends n pros n cons... Brief description of nuclear fusion n oso brief history of iter n jet got abt 7 n half pages.., -ham,Yup no more already... Thanx 4 printing n handing it up., -ham,Thanks for yesterday sir. You have been wonderful. Hope you enjoyed the burial. MojiBiola, -ham,Can ?_ send me a copy of da report?, -ham,Hey cutie. How goes it? Here in WALES its kinda ok. There is like hills and shit but i still avent killed myself. , -ham,"I'll text carlos and let you know, hang on", -ham,Thats cool. Where should i cum? On you or in you? :), -ham,Maybe i could get book out tomo then return it immediately ..? Or something., -ham,Ok..., -ham,"(I should add that I don't really care and if you can't I can at least get this dude to fuck off but hey, your money if you want it)", -ham,Pls i wont belive god.not only jesus., -ham,Done it but internet connection v slow and can???t send it. Will try again later or first thing tomo., -ham,We not watching movie already. Xy wants 2 shop so i'm shopping w her now., -ham,Ummmmmaah Many many happy returns of d day my dear sweet heart.. HAPPY BIRTHDAY dear, -ham,"Hi frnd, which is best way to avoid missunderstding wit our beloved one's?", -ham,Ok., -ham,Aww that's the first time u said u missed me without asking if I missed u first. You DO love me! :), -ham,Think + da. You wil do., -ham,"I've got <#> , any way I could pick up?", -ham,Wherre's my boytoy ? :-(, -ham,"Get the door, I'm here", -ham,Watching ajith film ah?, -ham,So do you have samus shoulders yet, -ham,It is a good thing I'm now getting the connection to bw, -ham,Are you staying in town ?, -ham,Prepare to be pounded every night..., -ham,Thats cool! Sometimes slow and gentle. Sonetimes rough and hard :), -ham,No message..no responce..what happend?, -ham,I've reached home finally..., -ham,I love your ass! Do you enjoy doggy style? :), -ham,Id have to check but there's only like 1 bowls worth left, -ham,Speaking of does he have any cash yet?, -ham,i see. When we finish we have loads of loans to pay, -ham,Lol that's different. I don't go trying to find every real life photo you ever took., -ham,Hasn't that been the pattern recently crap weekends?, -ham,G.W.R, -ham,"Sorry, I'll call later In meeting.", -ham,I'm always on yahoo messenger now. Just send the message to me and i.ll get it you may have to send it in the mobile mode sha but i.ll get it. And will reply., -ham,Bring it if you got it, -ham,We confirm eating at esplanade?, -ham,Yes. I come to nyc for audiitions and am trying to relocate., -ham,"A gram usually runs like <#> , a half eighth is smarter though and gets you almost a whole second gram for <#>", -ham,Ok... Help me ask if she's working tmr a not?, -ham,Still chance there. If you search hard you will get it..let have a try :), -ham,"It wont b until 2.15 as trying 2 sort house out, is that ok?", -ham,Dear good morning how you feeling dear, -ham,"Dont search love, let love find U. Thats why its called falling in love, bcoz U dont force yourself, U just fall and U know there is smeone to hold U... BSLVYL", -ham,No calls..messages..missed calls, -ham,Does daddy have a bb now., -ham,Thanks and ! Or bomb and date as my phone wanted to say! , -ham,No way I'm going back there!, -ham,Ok... Let u noe when i leave my house., -ham,Sorry . I will be able to get to you. See you in the morning., -ham,jay says he'll put in <#>, -ham,No. It's not pride. I'm almost <#> years old and shouldn't be takin money from my kid. You're not supposed to have to deal with this stuff. This is grownup stuff--why i don't tell you., -ham,He like not v shock leh. Cos telling shuhui is like telling leona also. Like dat almost all know liao. He got ask me abt ur reaction lor., -ham,Yes baby! We can study all the positions of the kama sutra ;), -ham,Eat jap done oso aft ur lect wat... ?? got lect at 12 rite... , -ham,I'll be in sch fr 4-6... I dun haf da book in sch... It's at home..., -ham,Will you come online today night, -ham,"swhrt how u dey,hope ur ok, tot about u 2day.love n miss.take care.", -ham,I will take care of financial problem.i will help:), -ham,"Hi hope u get this txt~journey hasnt been gd,now about 50 mins late I think.", -ham,"Ditto. And you won't have to worry about me saying ANYTHING to you anymore. Like i said last night, you do whatever you want and i'll do the same. Peace.", -ham,Need a coffee run tomo?Can't believe it's that time of week already, -ham,Happy New year my dear brother. I really do miss you. Just got your number and decided to send you this text wishing you only happiness. Abiola, -ham,"Are you being good, baby? :)", -ham,Thanks for understanding. I've been trying to tell sura that., -ham,I am getting threats from your sales executive Shifad as i raised complaint against him. Its an official message., -ham,What's happening with you. Have you gotten a job and have you begun registration for permanent residency, -ham,"No worries, hope photo shoot went well. have a spiffing fun at workage. ", -ham,"I call you later, don't have network. If urgnt, sms me.", -ham,"I need an 8th but I'm off campus atm, could I pick up in an hour or two?", -ham,In which place i can get rooms cheap:-), -ham,That's cause your old. I live to be high., -ham,Havent stuck at orchard in my dad's car. Going 4 dinner now. U leh? So r they free tonight?, -ham,Ok lor..., -ham,MMM ... Fuck .... Merry Christmas to me, -ham,Yo guess what I just dropped, -ham,Its a great day. Do have yourself a beautiful one., -ham,K.:)do it at evening da:)urgent:), -ham,You're not sure that I'm not trying to make xavier smoke because I don't want to smoke after being told I smoke too much?, -ham,Wylie update: my weed dealer carlos went to freedom and had a class with lunsford, -ham,Oh ho. Is this the first time u use these type of words, -ham,Ya:)going for restaurant.., -ham,Ok..., -ham,I want to be inside you every night..., -ham,If you r @ home then come down within 5 min, -ham,Ya srsly better than yi tho, -ham,How do you plan to manage that, -ham,"Gud gud..k, chikku tke care.. sleep well gud nyt", -ham,?? predict wat time ?_'ll finish buying?, -ham,"Ya, told..she was asking wats matter?", -ham,"Sorry, I'll call later", -ham,Don't forget who owns you and who's private property you are ... And be my good boy always .. *passionate kiss*, -ham,I tot u outside cos darren say u come shopping. Of course we nice wat. We jus went sim lim look at mp3 player., -ham,I pocked you up there before, -ham,Yes. Please leave at <#> . So that at <#> we can leave, -ham,"Yeah I am, so I'll leave maybe 7ish?", -ham,You are a very very very very bad girl. Or lady., -ham,Ok lar i double check wif da hair dresser already he said wun cut v short. He said will cut until i look nice., -ham,"I didnt get ur full msg..sometext is missing, send it again", -ham,I'm in chennai velachery:), -ham,Height of Confidence: All the Aeronautics professors wer calld & they wer askd 2 sit in an aeroplane. Aftr they sat they wer told dat the plane ws made by their students. Dey all hurried out of d plane.. Bt only 1 didnt move... He said:\if it is made by my students, -ham,But we havent got da topic yet rite?, -ham,Do u knw dis no. <#> ?, -ham,Am I the only one who doesn't stalk profiles?, -ham,There are many company. Tell me the language., -ham,Haha... They cant what... At the most tmr forfeit... haha so how?, -ham,"Night sweet, sleep well! I've just been to see The Exorcism of Emily Rose and may never sleep again! Hugs and snogs! ", -ham,What's the significance?, -ham,If u sending her home first it's ok lor. I'm not ready yet., -ham,"Tee hee. Off to lecture, cheery bye bye.", -ham,How are you holding up?, -ham,I.ll hand her my phone to chat wit u, -ham,I dont have any of your file in my bag..i was in work when you called me.i 'll tell you if i find anything in my room., -ham,Yunny i'm walking in citylink now ?_ faster come down... Me very hungry..., -ham,says the <#> year old with a man and money. I'm down to my last <#> . Still waiting for that check., -ham,Ya! when are ?_ taking ure practical lessons? I start in june.. , -ham,Juz go google n search 4 qet..., -ham,?? comin to fetch us oredi..., -ham,As per your request 'Maangalyam (Alaipayuthe)' has been set as your callertune for all Callers. Press *9 to copy your friends Callertune, -ham,"Aight text me when you're back at mu and I'll swing by, need somebody to get the door for me", -ham,Well. Balls. Time to make calls, -ham,This is hoping you enjoyed your game yesterday. Sorry i've not been in touch but pls know that you are fondly bein thot off. Have a great week. Abiola, -ham,Okie, -ham,Sat right? Okay thanks... , -ham,They finally came to fix the ceiling., -ham,Call to the number which is available in appointment. And ask to connect the call to waheed fathima., -ham,"K I'm ready, <#> ?", -ham,Have a safe trip to Nigeria. Wish you happiness and very soon company to share moments with, -ham,Thank you baby! I cant wait to taste the real thing..., -ham,Wat uniform? In where get?, -ham,If I was I wasn't paying attention, -ham,"I shall book chez jules for half eight, if that's ok with you?", -ham,Watch lor. I saw a few swatch one i thk quite ok. Ard 116 but i need 2nd opinion leh..., -ham,K.k:)when are you going?, -ham,There's no point hangin on to mr not right if he's not makin u happy, -ham,"Same here, but I consider walls and bunkers and shit important just because I never play on peaceful but I guess your place is high enough that it don't matter", -ham,"It's not that you make me cry. It's just that when all our stuff happens on top of everything else, it pushes me over the edge. You don't underdtand how often i cry over my sorry, sorry life.", -ham,We're done..., -ham,Why you keeping me away like this, -ham,HOW ARE U? I HAVE MISSED U! I HAVENT BEEN UP 2 MUCH A BIT BORED WITH THE HOLIDAY WANT 2 GO BAK 2 COLLEGE! SAD ISNT IT?xx, -ham,"Ever green quote ever told by Jerry in cartoon \A Person Who Irritates u Always Is the one Who Loves u Vry Much But Fails to Express It...!..!! :-) :-) gud nyt""", -ham,I am going to sleep. I am tired of travel., -ham,* Will have two more cartons off u and is very pleased with shelves, -ham,Pls pls find out from aunt nike., -ham,OK i'm waliking ard now... Do u wan me 2 buy anything go ur house?, -ham,I had a good time too. Its nice to do something a bit different with my weekends for a change. See ya soon, -ham,Great to hear you are settling well. So what's happenin wit ola?, -ham,Ok... Thanx... Gd nite 2 ?_ too..., -ham,Is ur changes 2 da report big? Cos i've already made changes 2 da previous report., -ham,Hanging out with my brother and his family, -ham,"V-aluable. A-ffectionate. L-oveable. E-ternal. N-oble. T-ruthful. I-ntimate. N-atural. E-namous. Happy \VALENTINES DAY\"" in advance""", -ham,"Nothing really, just making sure everybody's up to speed", -ham,Message:some text missing* Sender:Name Missing* *Number Missing *Sent:Date missing *Missing U a lot thats y everything is missing sent via fullonsms.com, -ham,"Got ur mail Dileep.thank you so muchand look forward to lots of support...very less contacts here,remember one venugopal you mentioned.tomorrow if not late,i shall try to come up till there.goodnight dear.", -ham,Wat r u doing?, -ham,Missed your call cause I was yelling at scrappy. Miss u. Can't wait for u to come home. I'm so lonely today., -ham,My birthday is on feb <#> da. ., -ham,"Just making dinner, you ?", -ham,I was up all night too worrying about this appt. It's a shame we missed a girls night out with quizzes popcorn and you doing my hair., -ham,Yup... From what i remb... I think should be can book... , -ham,Sure but since my parents will be working on Tuesday I don't really need a cover story, -ham,Its <#> k here oh. Should i send home for sale., -ham,"Not yet chikku..going to room nw, i'm in bus..", -ham,Ok thanx..., -ham,My supervisor find 4 me one lor i thk his students. I havent ask her yet. Tell u aft i ask her., -ham,K..k...from tomorrow onwards started ah?, -ham,You in your room? I need a few, -ham,WHORE YOU ARE UNBELIEVABLE., -ham,ARR birthday today:) i wish him to get more oscar., -ham,K ill drink.pa then what doing. I need srs model pls send it to my mail id pa., -ham,Yes. They replied my mail. I'm going to the management office later. Plus will in to bank later also.or on wednesday., -ham,Hello! Good week? Fancy a drink or something later?, -ham,Guessin you ain't gonna be here before 9?, -ham,ok....take care.umma to you too..., -ham,Its sarcasm.. .nt scarcasim, -ham,"Sure, if I get an acknowledgement from you that it's astoundingly tactless and generally faggy to demand a blood oath fo", -ham,"Yeah go on then, bored and depressed sittin waitin for phone to ring... Hope the wind drops though, scary", -ham,"Sir, i am waiting for your call.", -ham,"Edison has rightly said, \A fool can ask more questions than a wise man can answer\"" Now you know why all of us are speechless during ViVa.. GM GE GNT:-)""", -ham,Free any day but i finish at 6 on mon n thurs..., -ham,"She is our sister.. She belongs 2 our family.. She is d hope of tomorrow.. Pray 4 her,who was fated 4 d Shoranur train incident. Lets hold our hands together & fuelled by love & concern prior 2 her grief & pain. Pls join in dis chain & pass it. STOP VIOLENCE AGAINST WOMEN.", -ham,"Ok thats cool. Its , just off either raglan rd or edward rd. Behind the cricket ground. Gimme ring when ur closeby see you tuesday.", -ham,My sort code is and acc no is . The bank is natwest. Can you reply to confirm i've sent this to the right person!, -ham,"\Hi missed your Call and my mumHas beendropping red wine all over theplace! what is your adress?\""""", -ham,Also maaaan are you missing out, -ham,U in town alone?, -ham,I sent you <#> bucks, -ham,As per your request 'Melle Melle (Oru Minnaminunginte Nurungu Vettam)' has been set as your callertune for all Callers. Press *9 to copy your friends Callertune, -ham,"Happy new year to u and ur family...may this new year bring happiness , stability and tranquility to ur vibrant colourful life:):)", -ham,Anything lor if they all go then i go lor..., -ham,I am late. I will be there at, -ham,I'm at work. Please call, -ham,Ffffffffff. Alright no way I can meet up with you sooner?, -ham,Apart from the one i told you about yesterday?, -ham,So when do you wanna gym harri, -ham,I wnt to buy a BMW car urgently..its vry urgent.but hv a shortage of <#> Lacs.there is no source to arng dis amt. <#> lacs..thats my prob, -ham,Saw Guys and Dolls last night with Patrick Swayze it was great, -ham,Oh you got many responsibilities., -ham,What r u cooking me for dinner?, -ham,"If you want to mapquest it or something look up \usf dogwood drive\""", -ham,I told her I had a Dr appt next week. She thinks I'm gonna die. I told her its just a check. Nothing to be worried about. But she didn't listen., -ham,"\Hi darlin did youPhone me? Im atHome if youwanna chat.\""""", -ham,"Call me, i am senthil from hsbc.", -ham,Ok I'm gonna head up to usf in like fifteen minutes, -ham,U having lunch alone? I now so bored..., -ham,Come by our room at some point so we can iron out the plan for this weekend, -ham,Dear how you. Are you ok?, -ham,"I guess you could be as good an excuse as any, lol.", -ham,Got it. Seventeen pounds for seven hundred ml ??? hope ok., -ham,We will meet soon princess! Ttyl!, -ham,Lol yes. Our friendship is hanging on a thread cause u won't buy stuff., -ham,Good Morning plz call me sir, -ham,Jay is snickering and tells me that x is totally fucking up the chords as we speak, -ham,I'm job profile seems like bpo.., -ham,It just seems like weird timing that the night that all you and g want is for me to come smoke is the same day as when a shitstorm is attributed to me always coming over and making everyone smoke, -ham,"K I'm leaving soon, be there a little after 9", -ham,Whatsup there. Dont u want to sleep, -ham,Ron say fri leh. N he said ding tai feng cant make reservations. But he said wait lor., -ham,Desires- u going to doctor 4 liver. And get a bit stylish. Get ur hair managed. Thats it., -ham,I???m going to try for 2 months ha ha only joking, -ham,Y de asking like this., -ham,I'm always looking for an excuse to be in the city., -ham,"Today is \song dedicated day..\"" Which song will u dedicate for me? Send this to all ur valuable frnds but first rply me...""", -ham,i dnt wnt to tlk wid u, -ham,Ok.., -ham,"Tick, tick, tick .... Where are you ? I could die of loneliness you know ! *pouts* *stomps feet* I need you ...", -ham,Ok.. ?? finishing soon?, -ham,"Sorry, I'll call later", -ham,"They can try! They can get lost, in fact. Tee hee", -ham,Ok then u tell me wat time u coming later lor., -ham,Dude sux for snake. He got old and raiden got buff, -ham,Pass dis to all ur contacts n see wat u get! Red;i'm in luv wid u. Blue;u put a smile on my face. Purple;u r realy hot. Pink;u r so swt. Orange;i thnk i lyk u. Green;i realy wana go out wid u. Yelow;i wnt u bck. Black;i'm jealous of u. Brown;i miss you Nw plz giv me one color, -ham,\Its Ur luck to Love someone. Its Ur fortune to Love the one who Loves U. But, -ham,You'd like that wouldn't you? Jerk!, -ham,"Al he does is moan at me if n e thin goes wrong its my fault&al de arguments r my fault&fed up of him of himso y bother? Hav 2go, thanx.xx", -ham,Aiyah ok wat as long as got improve can already wat..., -ham,I'm really sorry i won't b able 2 do this friday.hope u can find an alternative.hope yr term's going ok:-), -ham,Think you sent the text to the home phone. That cant display texts. If you still want to send it his number is, -ham,You are a big chic. Common. Declare, -ham,Not..tel software name.., -ham,I love u 2 my little pocy bell I am sorry but I love u, -ham,"Sorry battery died, yeah I'm here", -ham,K..k..any special today?, -ham,"Good stuff, will do.", -ham,"Since when, which side, any fever, any vomitin.", -ham,"LOL .. *grins* .. I'm not babe, but thanks for thinking of me!", -ham,U attend ur driving lesson how many times a wk n which day?, -ham,Pansy! You've been living in a jungle for two years! Its my driving you should be more worried about!, -ham,I'm at work. Please call, -ham,"Oh! Shit, I thought that was your trip! Loooooool ... That just makes SO much more sense now ... *grins* and the sofa reference was ... The \sleep on a couch\"" link you sent me ... Wasn't that how you went on your trip ? Oh ... And didn't your babe go with you for that celebration with your rents?""", -ham,Hey gorgeous man. My work mobile number is. Have a good one babe. Squishy Mwahs., -ham,"Can you tell Shola to please go to college of medicine and visit the academic department, tell the academic secretary what the current situation is and ask if she can transfer there. She should ask someone to check Sagamu for the same thing and lautech. Its vital she completes her medical education in Nigeria. Its less expensive much less expensive. Unless she will be getting citizen rates in new zealand.", -ham,K.i will send in <#> min:), -ham,"Actually nvm, got hella cash, we still on for <#> ish?", -ham,Actually getting ready to leave the house., -ham,"Arngd marriage is while u r walkin unfortuntly a snake bites u. bt love marriage is dancing in frnt of d snake & sayin Bite me, bite me.", -ham,Ill be at yours in about 3 mins but look out for me, -ham,Both :) i shoot big loads so get ready!, -ham,"K, want us to come by now?", -ham,Two teams waiting for some players, -ham,Yup, -ham,"My fri ah... Okie lor,goin 4 my drivin den go shoppin after tt...", -ham,TELL HER I SAID EAT SHIT., -ham,Hmm ill have to think about it... ok you're forgiven! =D, -ham,Now only i reached home. . . I am very tired now. . I will come tomorro, -ham,Do you think i can move <#> in a week, -ham,S:)but he had some luck.2 catches put down:), -ham,"Goodmorning, today i am late for <DECIMAL> min.", -ham,Oh is it? Send me the address, -ham,"Did I forget to tell you ? I want you , I need you, I crave you ... But most of all ... I love you my sweet Arabian steed ... Mmmmmm ... Yummy", -ham,"I had been hoping i would not have to send you this message. My rent is due and i dont have enough for it. My reserves are completely gone. Its a loan i need and was hoping you could her. The balance is <#> . Is there a way i could get that from you, till mid march when i hope to pay back.", -ham,Hey! There's veggie pizza... :/, -ham,How's it going? Got any exciting karaoke type activities planned? I'm debating whether to play football this eve. Feeling lazy though., -ham,U're welcome... Caught u using broken english again..., -ham,I'll meet you in the lobby, -ham,I dont want to hear philosophy. Just say what happen, -ham,"I'm used to it. I just hope my agents don't drop me since i've only booked a few things this year. This whole me in boston, them in nyc was an experiment.", -ham,You please give us connection today itself before <DECIMAL> or refund the bill, -ham,when you and derek done with class?, -ham,"Piggy, r u awake? I bet u're still sleeping. I'm going 4 lunch now...", -ham,I am taking half day leave bec i am not well, -ham,These won't do. Have to move on to morphine, -ham,You will go to walmart. I.ll stay., -ham,I know I'm lacking on most of this particular dramastorm's details but for the most part I'm not worried about that, -ham,Haha... Yup hopefully we will lose a few kg by mon. after hip hop can go orchard and weigh again, -ham,I realise you are a busy guy and i'm trying not to be a bother. I have to get some exams outta the way and then try the cars. Do have a gr8 day, -ham,I'm serious. You are in the money base, -ham,First has she gained more than <#> kg since she took in. Second has she done the blood sugar tests. If she has and its ok and her blood pressure is within normal limits then no worries, -ham,How do you guys go to see movies on your side., -ham,Cos i was out shopping wif darren jus now n i called him 2 ask wat present he wan lor. Then he started guessing who i was wif n he finally guessed darren lor., -ham,Yep get with the program. You're slacking., -ham,See you there! , -ham,??_ and don???t worry we???ll have finished by march ??_ ish!, -ham,Hey whats up? U sleeping all morning?, -ham,HI DARLIN IVE JUST GOT BACK AND I HAD A REALLY NICE NIGHT AND THANKS SO MUCH FOR THE LIFT SEE U TOMORROW XXX, -ham,"I think we're going to finn's now, come", -ham,"Customer place, i wil cal u sir.", -ham,Well I'm going to be an aunty!, -ham,There is os called ubandu which will run without installing in hard disk...you can use that os to copy the important files in system and give it to repair shop.., -ham,Oh k k:)but he is not a big hitter.anyway good, -ham,hi baby im sat on the bloody bus at the mo and i wont be home until about 7:30 wanna do somethin later? call me later ortxt back jess xx, -ham,"I call you later, don't have network. If urgnt, sms me.", -ham,Sorry * was at the grocers., -ham,Will ?_ b going to esplanade fr home?, -ham,Cool. So how come you havent been wined and dined before?, -ham,Can you do a mag meeting this avo at some point?, -ham,Go where n buy? Juz buy when we get there lar., -ham,He's in lag. That's just the sad part but we keep in touch thanks to skype, -ham,Me fine..absolutly fine, -ham,I am going to sao mu today. Will be done only at 12 , -ham,That's necessarily respectful, -ham,I think u have the wrong number., -ham,Go fool dont cheat others ok, -ham,U wake up already? Thanx 4 e tau sar piah it's quite nice., -ham,"Actually, my mobile is full of msg. And i m doing a work online, where i need to send them <#> sent msg i wil explain u later.", -ham,Keep yourself safe for me because I need you and I miss you already and I envy everyone that see's you in real life, -ham,"Princess, i like to make love <#> times per night. Hope thats not a problem!", -ham,Meanwhile in the shit suite: xavier decided to give us <#> seconds of warning that samantha was coming over and is playing jay's guitar to impress her or some shit. Also I don't think doug realizes I don't live here anymore, -ham,Don't necessarily expect it to be done before you get back though because I'm just now headin out, -ham,Oh...i asked for fun. Haha...take care. ?_, -ham,"How long has it been since you screamed, princess?", -ham,"If we hit it off, you can move in with me :)", -ham,somewhere out there beneath the pale moon light someone think in of u some where out there where dreams come true... goodnite & sweet dreams, -ham,Oh Howda gud gud.. Mathe en samachara chikku:-), -ham,"The gas station is like a block away from my house, you'll drive right by it since armenia ends at swann and you have to take howard", -ham,Got it..mail panren paru.., -ham,"Aight, I'm chillin in a friend's room so text me when you're on the way", -ham,"Sir, I am waiting for your mail.", -ham,Yup song bro. No creative. Neva test quality. He said check review online., -ham,Hahaha..use your brain dear, -ham,Yup i've finished c ?_ there..., -ham,Thanx 4 sending me home..., -ham,Left dessert. U wan me 2 go suntec look 4 u?, -ham,So how's the weather over there?, -ham,Kinda. First one gets in at twelve! Aah. Speak tomo, -ham,"I wonder how you got online, my love ? Had you gone to the net cafe ? Did you get your phone recharged ? Were you on a friends net ? I think of you, boytoy", -ham,"Sorry, I can't help you on this.", -ham,So that means you still think of teju, -ham,Oh wow thats gay. Will firmware update help, -ham,"Say this slowly.? GOD,I LOVE YOU & I NEED YOU,CLEAN MY HEART WITH YOUR BLOOD.Send this to Ten special people & u c miracle tomorrow, do it,pls,pls do it...", -ham,Dude got a haircut. Now its breezy up there, -ham,Lol ... I really need to remember to eat when I'm drinking but I do appreciate you keeping me company that night babe *smiles*, -ham,Am slow in using biola's fne, -ham,Actually i deleted my old website..now i m blogging at magicalsongs.blogspot.com, -ham,Is ur paper today in e morn or aft?, -ham,So its to be poking man everyday that they teach you in canada abi! How are you. Just saying hi., -ham,I am sorry it hurt you., -ham,Huh so slow i tot u reach long ago liao... U 2 more days only i 4 more leh..., -ham,Can you let me know details of fri when u find out cos I'm not in tom or fri. mentionned chinese. Thanks, -ham,Can you do online transaction?, -ham,"Thank You for calling.Forgot to say Happy Onam to you Sirji.I am fine here and remembered you when i met an insurance person.Meet You in Qatar Insha Allah.Rakhesh, ex Tata AIG who joined TISSCO,Tayseer.", -ham,"Haha... Sounds crazy, dunno can tahan anot...", -ham,Ok ill send you with in <DECIMAL> ok., -ham,"Rose for red,red for blood,blood for heart,heart for u. But u for me.... Send tis to all ur friends.. Including me.. If u like me.. If u get back, 1-u r poor in relation! 2-u need some 1 to support 3-u r frnd 2 many 4-some1 luvs u 5+- some1 is praying god to marry u.:-) try it....", -ham,In e msg jus now. U said thanks for gift., -ham,Havent shopping now lor i juz arrive only, -ham,It has issues right now. Ill fix for her by tomorrow., -ham,Yup... Ok i go home look at the timings then i msg ?_ again... Xuhui going to learn on 2nd may too but her lesson is at 8am, -ham,Yes princess! I want to please you every night. Your wish is my command..., -ham,Auntie huai juan never pick up her phone, -ham,"Will do, you gonna be at blake's all night? I might be able to get out of here a little early", -ham,HI BABE U R MOST LIKELY TO BE IN BED BUT IM SO SORRY ABOUT TONIGHT! I REALLY WANNA SEE U TOMORROW SO CALL ME AT 9. LOVE ME XXX, -ham,Future is not what we planned for tomorrow.....! it is the result of what we do today...! Do the best in present... enjoy the future., -ham,I'm not sure if its still available though, -ham,"Carlos took a while (again), we leave in a minute", -ham,2marrow only. Wed at <#> to 2 aha., -ham,It certainly puts things into perspective when something like this happens, -ham,"Sorry, I'll call later in meeting", -ham,I'm done oredi..., -ham,"\GRAN ONLYFOUND OUT AFEW DAYS AGO.CUSOON HONI\""""", -ham,Oh and by the way you do have more food in your fridge! Want to go out for a meal tonight? , -ham,I'm not driving... Raining! Then i'll get caught at e mrt station lor., -ham,"She said,'' do u mind if I go into the bedroom for a minute ? '' ''OK'', I sed in a sexy mood. She came out 5 minuts latr wid a cake...n My Wife,", -ham,Prabha..i'm soryda..realy..frm heart i'm sory, -ham,LMAO where's your fish memory when I need it?, -ham,Idea will soon get converted to live:), -ham,Cbe is really good nowadays:)lot of shop and showrooms:)city is shaping good., -ham,Shall i come to get pickle, -ham,Hey morning what you come to ask:-) pa..., -ham,If i start sending blackberry torch to nigeria will you find buyer for me?like 4a month. And tell dad not to buy bb from anyone oh., -ham,Lovely smell on this bus and it ain't tobacco... , -ham,K do I need a login or anything, -ham,"Damn, can you make it tonight or do you want to just wait til tomorrow", -ham,Dunno lei... I might b eatin wif my frens... If ?_ wan to eat then i wait 4 ?_ lar, -ham,How come she can get it? Should b quite diff to guess rite..., -ham,I thk 50 shd be ok he said plus minus 10.. Did ?_ leave a line in between paragraphs?, -ham,If he started searching he will get job in few days.he have great potential and talent., -ham,Hi.:)technical support.providing assistance to us customer through call and email:), -ham,"Alright we'll bring it to you, see you in like <#> mins", -ham,Ok no prob..., -ham,Its a valentine game. . . Send dis msg to all ur friends. .. If 5 answers r d same then someone really loves u. Ques- which colour suits me the best?rply me, -ham,"Forgot you were working today! Wanna chat, but things are ok so drop me a text when you're free / bored etc and i'll ring. Hope all is well, nose essay and all xx", -ham,"I??m cool ta luv but v.tired 2 cause i have been doin loads of planning all wk, we have got our social services inspection at the nursery! Take care & spk sn x.", -ham,IM LATE TELLMISS IM ON MY WAY, -ham,How many times i told in the stage all use to laugh. You not listen aha., -ham,"Sir Goodmorning, Once free call me.", -ham,Yay! You better not have told that to 5 other girls either., -ham,"Good good, billy mates all gone. Just been jogging, again! Did enjoy concert?", -ham,How are you. Just checking up on you, -ham,We got a divorce. Lol. She.s here, -ham,Wife.how she knew the time of murder exactly, -ham,That's significant but dont worry., -ham,Can't. I feel nauseous. I'm so pissed. I didn't eat any sweets all week cause today I was planning to pig out. I was dieting all week. And now I'm not hungry :/, -ham,"I'm taking derek & taylor to walmart, if I'm not back by the time you're done just leave the mouse on my desk and I'll text you when priscilla's ready", -ham,Hmm...my uncle just informed me that he's paying the school directly. So pls buy food., -ham,Carlos is taking his sweet time as usual so let me know when you and patty are done/want to smoke and I'll tell him to haul ass, -ham,"How is my boy? No sweet words left for me this morning ... *sighs* ... How goes you day, my love ? Did you start your studying?", -ham,"Hi , where are you? We're at and they're not keen to go out i kind of am but feel i shouldn't so can we go out tomo, don't mind do you?", -ham,You will be in the place of that man, -ham,"Yeah, we got one lined up for us", -ham,That was random saw my old roomate on campus. He graduated, -ham,I jus reached home. I go bathe first. But my sis using net tell u when she finishes k..., -ham,U coming back 4 dinner rite? Dad ask me so i re confirm wif u..., -ham,You know there is. I shall speak to you in <#> minutes then, -ham,"Dear friends, sorry for the late information. Today is the birthday of our loving Ar.Praveesh. for more details log on to face book and see. Its his number + <#> . Dont miss a delicious treat.", -ham,"Height of \Oh shit....!!\"" situation: A guy throws a luv letter on a gal but falls on her brothers head whos a gay", -ham,I came hostel. I m going to sleep. Plz call me up before class. Hrishi., -ham,She's fine. Sends her greetings, -ham,"It'll be tough, but I'll do what I have to", -ham,Dude avatar 3d was imp. At one point i thought there were actually flies in the room and almost tried hittng one as a reflex, -ham,"Probably, want to pick up more?", -ham,Should I have picked up a receipt or something earlier, -ham,Then ?_ wait 4 me at bus stop aft ur lect lar. If i dun c ?_ then i go get my car then come back n pick ?_., -ham,?? eatin later but i'm eatin wif my frens now lei... ?? going home first? , -ham,The fact that you're cleaning shows you know why i'm upset. Your priority is constantly \what i want to do, -ham,U coming 2 pick me?, -ham,Yetunde i'm in class can you not run water on it to make it ok. Pls now., -ham,"FR'NDSHIP is like a needle of a clock. Though V r in d same clock, V r nt able 2 met. Evn if V meet,itz only 4few seconds. Bt V alwys stay conected. Gud 9t;-)", -ham,Nothin comes to my mind. ?? help me buy hanger lor. Ur laptop not heavy?, -ham,What???? Hello wats talks email address?, -ham,"That day ?_ say ?_ cut ur hair at paragon, is it called hair sense? Do ?_ noe how much is a hair cut? ", -ham,My exam is for february 4. Wish you a great day., -ham,"The world is running and i am still.maybe all are feeling the same,so be it.or i have to admit,i am mad.then where is the correction?or let me call this is life.and keep running with the world,may be u r also running.lets run.", -ham,K I'll be there before 4., -ham,"Plz note: if anyone calling from a mobile Co. & asks u to type # <#> or # <#> . Do not do so. Disconnect the call,coz it iz an attempt of 'terrorist' to make use of the sim card no. Itz confirmd by nokia n motorola n has been verified by CNN IBN.", -ham,Gudnite....tc...practice going on, -ham,I wonder if you'll get this text?, -ham,Have a good evening! Ttyl, -ham,Yar else i'll thk of all sorts of funny things., -ham,"Honeybee Said: *I'm d Sweetest in d World* God Laughed & Said: *Wait,U Havnt Met d Person Reading This Msg* MORAL: Even GOD Can Crack Jokes! GM+GN+GE+GN:)", -ham,I'm in school now n i'll be in da lab doing some stuff give me a call when ?_ r done., -ham,Asking do u knw them or nt? May be ur frnds or classmates?, -ham,K still are you loving me., -ham,"And how you will do that, princess? :)", -ham,"That's very rude, you on campus?", -ham,Its posible dnt live in <#> century cm frwd n thnk different, -ham,When u wana see it then, -ham,"Just wondering, the others just took off", -ham,Hows the street where the end of library walk is?, -ham,Mode men or have you left., -ham,Take some small dose tablet for fever, -ham,I'm e person who's doing e sms survey..., -ham,Dunno he jus say go lido. Same time 930., -ham,"Aight will do, thanks again for comin out", -ham,THANX 4 PUTTIN DA FONE DOWN ON ME!!, -ham,How are you. Its been ages. How's abj, -ham,Are u awake? Is there snow there?, -ham,THIS IS A LONG FUCKIN SHOWR, -ham,Wat makes some people dearer is not just de happiness dat u feel when u meet them but de pain u feel when u miss dem!!!, -ham,Great. So should i send you my account number., -ham,I need you to be in my strong arms..., -ham,There the size of elephant tablets & u shove um up ur ass!!, -ham,S:)no competition for him., -ham,"I can't, I don't have her number!", -ham,"Yes, princess. Are you going to make me moan?", -ham,"Yeah that's what I thought, lemme know if anything's goin on later", -ham,5 nights...We nt staying at port step liao...Too ex, -ham,Otherwise had part time job na-tuition.., -ham,I can do that! I want to please you both inside and outside the bedroom..., -ham,I cant pick the phone right now. Pls send a message, -ham,I am not sure about night menu. . . I know only about noon menu, -ham,Well done and ! luv ya all , -ham,That's the way you should stay oh., -ham,Did you catch the bus ? Are you frying an egg ? Did you make a tea? Are you eating your mom's left over dinner ? Do you feel my Love ?, -ham,Happy birthday to you....dear.with lots of love.rakhesh NRI, -ham,Early bird! Any purchases yet?, -ham,Ok. C u then., -ham,"Sorry my roommates took forever, it ok if I come by now?", -ham,As if i wasn't having enough trouble sleeping., -ham,"Sorry that took so long, omw now", -ham,Hope you are having a great day., -ham,I accidentally brought em home in the box, -ham,"1) Go to write msg 2) Put on Dictionary mode 3)Cover the screen with hand, 4)Press <#> . 5)Gently remove Ur hand.. Its interesting..:)", -ham,"Good afternoon sunshine! How dawns that day ? Are we refreshed and happy to be alive? Do we breathe in the air and smile ? I think of you, my love ... As always", -ham,"Hey babe, sorry i didn't get sooner. Gary can come and fix it cause he thinks he knows what it is but he doesn't go as far a Ptbo and he says it will cost <#> bucks. I don't know if it might be cheaper to find someone there ? We don't have any second hand machines at all right now, let me know what you want to do babe", -ham,"Sorry, I'll call later", -ham,Thats cool princess! I will cover your face in hot sticky cum :), -ham,Allo! We have braved the buses and taken on the trains and triumphed. I mean we???re in b???ham. Have a jolly good rest of week, -ham,Good Morning plz call me sir, -ham,do u think that any girl will propose u today by seing ur bloody funky shit fucking face...............asssssholeeee................, -ham,"Oh, the grand is having a bit of a party but it doesn't mention any cover charge so it's probably first come first served", -ham,Captain is in our room:), -ham,Please da call me any mistake from my side sorry da. Pls da goto doctor., -ham,No messages on her phone. I'm holding it now, -ham,Ok no prob, -ham,Wot u up 2 u weirdo?, -ham,They said ?_ dun haf passport or smth like dat.. Or ?_ juz send to my email account.. , -ham,I'll probably be by tomorrow (or even later tonight if something's going on), -ham,I love ya too but try and budget your money better babe. Gary would freak on me if he knew, -ham,Lol ok your forgiven :), -ham,U too..., -ham,"If e timing can, then i go w u lor...", -ham,K. I will sent it again, -ham,Please tell me you have some of that special stock you were talking about, -ham,So i could kiss and feel you next to me..., -ham,She.s find. I sent you an offline message to know how anjola's now., -ham,"<#> is fast approaching. So, Wish u a very Happy New Year Happy Sankranti Happy republic day Happy Valentines Day Happy Shivratri Happy Ugadi Happy Fools day Happy May Day Happy Independence Day, Happy Friendship,Mother,Father,Teachers,Childrens Day, & HAPPY BIRTHDAY 4 U. Happy Ganesh festival Happy Dasara Happy Diwali Happy Christmas <#> Good Mornings Afternoons, Evenings Nights. RememberI AM the first to WISHING U ALL THESE...your's Raj", -ham,Are you there in room., -ham,Can you talk with me.., -ham,Let there be snow. Let there be snow. This kind of weather brings ppl together so friendships can grow., -ham,How did you find out in a way that didn't include all of these details, -ham,"Jay told me already, will do", -ham,"I get out of class in bsn in like <#> minutes, you know where advising is?", -ham,Uhhhhrmm isnt having tb test bad when youre sick, -ham,Am going to take bath ill place the key in window:-), -ham,"Sorry, I'll call later", -ham,Full heat pa:-) i have applyed oil pa., -ham,", im .. On the snowboarding trip. I was wondering if your planning to get everyone together befor we go..a meet and greet kind of affair? Cheers, ", -ham,How to Make a girl Happy? It's not at all difficult to make girls happy. U only need to be... 1. A friend 2. Companion 3. Lover 4. Chef . . . <#> . Good listener <#> . Organizer <#> . Good boyfriend <#> . Very clean <#> . Sympathetic <#> . Athletic <#> . Warm . . . <#> . Courageous <#> . Determined <#> . True <#> . Dependable <#> . Intelligent . . . <#> . Psychologist <#> . Pest exterminator <#> . Psychiatrist <#> . Healer . . <#> . Stylist <#> . Driver . . Aaniye pudunga venaam.., -ham,What time you thinkin of goin?, -ham,Are you plans with your family set in stone ?, -ham,That's y we haf to combine n c how lor..., -ham,Sorry about that this is my mates phone and i didnt write it love Kate, -ham,Midnight at the earliest, -ham,they released another Italian one today and it has a cosign option, -ham,Want to finally have lunch today?, -ham,"I have 2 sleeping bags, 1 blanket and paper and phone details. Anything else?", -ham,Dhoni have luck to win some big title.so we will win:), -ham,But i'll b going 2 sch on mon. My sis need 2 take smth., -ham,No..but heard abt tat.., -ham,Our Prasanth ettans mother passed away last night. Just pray for her and family., -ham,Yup but it's not giving me problems now so mayb i'll jus leave it..., -ham,S...i will take mokka players only:), -ham,Was just about to ask. Will keep this one. Maybe that's why you didn't get all the messages we sent you on glo, -ham,"Yeah, don't go to bed, I'll be back before midnight", -ham,"A boy was late 2 home. His father: \POWER OF FRNDSHIP\""""", -ham,Just sleeping..and surfing, -ham,Haiyoh... Maybe your hamster was jealous of million, -ham,Oic... I saw him too but i tot he din c me... I found a group liao..., -ham,I need to come home and give you some good lovin..., -ham,That seems unnecessarily affectionate, -ham,Hope ur head doesn't hurt 2 much ! Am ploughing my way through a pile of ironing ! Staying in with a chinky tonight come round if you like., -ham,Sometimes Heart Remembrs someone Very much... Forgets someone soon... Bcoz Heart will not like everyone. But liked ones will be Remembered Everytime... BSLVYL, -ham,Once free call me sir. I am waiting for you., -ham,"Beautiful Truth against Gravity.. Read carefully: \Our heart feels light when someone is in it.. But it feels very heavy when someone leaves it..\"" GOOD NIGHT""", -ham,Shopping lor. Them raining mah hard 2 leave orchard., -ham,Friendship poem: Dear O Dear U R Not Near But I Can Hear Dont Get Fear Live With Cheer No More Tear U R Always my Dear. Gud ni8, -ham,He telling not to tell any one. If so treat for me hi hi hi, -ham,Dont flatter yourself... Tell that man of mine two pints of carlin in ten minutes please.... , -ham,"Ahhhh...just woken up!had a bad dream about u tho,so i dont like u right now :) i didnt know anything about comedy night but i guess im up for it.", -ham,Hey... What time is your driving on fri? We go for evaluation on fri?, -ham,Well if I'm that desperate I'll just call armand again, -ham,Where are the garage keys? They aren't on the bookshelf, -ham," said kiss, kiss, i can't do the sound effects! He is a gorgeous man isn't he! Kind of person who needs a smile to brighten his day! ", -ham,Can you plz tell me the ans. BSLVYL sent via fullonsms.com, -ham,En chikku nange bakra msg kalstiya..then had tea/coffee?, -ham,"wow. You're right! I didn't mean to do that. I guess once i gave up on boston men and changed my search location to nyc, something changed. Cuz on my signin page it still says boston.", -ham,Wish i were with you now!, -ham,Okay name ur price as long as its legal! Wen can I pick them up? Y u ave x ams xx, -ham,Now press conference da:), -ham,Glad it went well :) come over at 11 then we'll have plenty of time before claire goes to work., -ham,Hi di is yijue we're meeting at 7 pm at esaplanade tonight., -ham,"That's cool he'll be here all night, lemme know when you're around", -ham,Please sen :)my kind advice :-)please come here and try:-), -ham,Booked ticket for pongal?, -ham,"Friendship is not a game to play, It is not a word to say, It doesn\'t start on March and ends on May, It is tomorrow, yesterday, today and e", -ham,Lol I have to take it. member how I said my aunt flow didn't visit for 6 months? It's cause I developed ovarian cysts. Bc is the only way to shrink them., -ham,I will reach office around <DECIMAL> . & my mobile have problem. You cann't get my voice. So call you asa i'll free, -ham,I'm at home n ready..., -ham,But really quite funny lor wat... Then u shd haf run shorter distance wat..., -ham,"Sorry, I'll call later", -ham,will you like to be spoiled? :), -ham,Thanks chikku..:-) gud nyt:-*, -ham,Are you wet right now?, -ham,Hey!!! I almost forgot ... Happy B-day babe ! I love ya!!, -ham,Ok... Then r we meeting later?, -ham,I wan but too early lei... Me outside now wun b home so early... Neva mind then..., -ham,ITS A LAPTOP TAKE IT WITH YOU., -ham,I think you should go the honesty road. Call the bank tomorrow. Its the tough decisions that make us great people., -ham,U repeat e instructions again. Wat's e road name of ur house?, -ham,Now get step 2 outta the way. Congrats again., -ham,"Right on brah, see you later", -ham,I wnt to buy a BMW car urgently..its vry urgent.but hv a shortage of <#> Lacs.there is no source to arng dis amt. <#> lacs..thats my prob, -ham,"Aldrine, rakhesh ex RTM here.pls call.urgent.", -ham,"All done, all handed in. Don't know if mega shop in asda counts as celebration but thats what i'm doing!", -ham,"\HEY BABE! FAR 2 SPUN-OUT 2 SPK AT DA MO... DEAD 2 DA WRLD. BEEN SLEEPING ON DA SOFA ALL DAY TX 4 FONIN HON CALL 2MWEN IM BK FRMCLOUD 9! J X\""""", -ham,Hey u still at the gym?, -ham,Ok u can take me shopping when u get paid =D, -ham,Lolnice. I went from a fish to ..water.?, -ham,Yes princess! I want to make you happy..., -ham,hi baby im cruisin with my girl friend what r u up 2? give me a call in and hour at home if thats alright or fone me on this fone now love jenny xxx, -ham,I don't know but I'm raping dudes at poker, -ham,Captain vijaykanth is doing comedy in captain tv..he is drunken :), -ham,Super da:)good replacement for murali, -ham,Is there a reason we've not spoken this year? Anyways have a great week and all the best in your exam, -ham,Gudnite....tc...practice going on, -ham,Lol no. I just need to cash in my nitros. Hurry come on before I crash out!, -ham,No no. I will check all rooms befor activities, -ham,I love working from home :), -ham,I will cme i want to go to hos 2morow. After that i wil cme. This what i got from her dear what to do. She didnt say any time, -ham,I think steyn surely get one wicket:), -ham,We can go 4 e normal pilates after our intro... , -ham,Haha i think i did too, -ham,If i not meeting ?_ all rite then i'll go home lor. If ?_ dun feel like comin it's ok., -ham,The new deus ex game comin early next yr, -ham,I am not having her number sir, -ham,"I don't think I can get away for a trek that long with family in town, sorry", -ham,Eh sorry leh... I din c ur msg. Not sad already lar. Me watching tv now. U still in office?, -ham,Haha... Really oh no... How? Then will they deduct your lesson tmr?, -ham,No pic. Please re-send., -ham,Not from this campus. Are you in the library?, -ham,How long does applebees fucking take, -ham,Have you always been saying welp?, -ham,"Hmmm.. Thk sure got time to hop ard... Ya, can go 4 free abt... Muz call u to discuss liao... ", -ham,"Goodmorning, today i am late for 1hr.", -ham,"Alright we're hooked up, where you guys at", -ham,"Yes, my reg is Ciao!", -ham,Wot u up 2? Thout u were gonna call me!! Txt bak luv K, -ham,Your account has been refilled successfully by INR <DECIMAL> . Your KeralaCircle prepaid account balance is Rs <DECIMAL> . Your Transaction ID is KR <#> ., -ham,Dear umma she called me now :-), -ham,I want to tell you how bad I feel that basically the only times I text you lately are when I need drugs, -ham,"A Boy loved a gal. He propsd bt she didnt mind. He gv lv lttrs, Bt her frnds threw thm. Again d boy decided 2 aproach d gal , dt time a truck was speeding towards d gal. Wn it was about 2 hit d girl,d boy ran like hell n saved her. She asked 'hw cn u run so fast?' D boy replied \Boost is d secret of my energy\"" n instantly d girl shouted \""our energy\"" n Thy lived happily 2gthr drinking boost evrydy Moral of d story:- I hv free msgs:D;): gud ni8""", -ham,Y ?_ wan to go there? C doctor?, -ham,"Thats a bit weird, even ?- where is the do supposed to be happening? But good idea, sure they will be in pub!", -ham,You call him now ok i said call him, -ham,"Hi Chikku, send some nice msgs", -ham,"Not much, just some textin'. How bout you?", -ham,"'An Amazing Quote'' - \Sometimes in life its difficult to decide whats wrong!! a lie that brings a smile or the truth that brings a tear....\""""", -ham,"Well imma definitely need to restock before thanksgiving, I'll let you know when I'm out", -ham,"Hey ! I want you ! I crave you ! I miss you ! I need you ! I love you, Ahmad Saeed al Hallaq ...", -ham,"I love you !!! You know? Can you feel it? Does it make your belly warm? I wish it does, my love ... I shall meet you in your dreams, Ahmad ... *adoring kiss*", -ham,"Thanx. Yup we coming back on sun. Finish dinner going back 2 hotel now. Time flies, we're tog 4 exactly a mth today. Hope we'll haf many more mths to come...", -ham,"Night has ended for another day, morning has come in a special way. May you smile like the sunny rays and leaves your worries at the blue blue bay.", -ham,"<#> %of pple marry with their lovers... becz they hav gud undrstndng dat avoids problems. i sent dis 2 u, u wil get gud news on friday by d person you like. And tomorrow will be the best day of your life. Dont break this chain. If you break you will suffer. send this to <#> frnds in <#> mins whn u read...", -ham,Yes.. now only saw your message.., -ham,"Well, I was about to give up cos they all said no they didn???t do one nighters. I persevered and found one but it is very cheap so i apologise in advance. It is just somewhere to sleep isnt it?", -ham,At home watching tv lor., -ham,"The guy (kadeem) hasn't been selling since the break, I know one other guy but he's paranoid as fuck and doesn't like selling without me there and I can't be up there til late tonight", -ham,Yo chad which gymnastics class do you wanna take? The site says Christians class is full.., -ham,"Pity, * was in mood for that. So...any other suggestions?", -ham,Orh i tot u say she now still dun believe., -ham,Fuck babe ... What happened to you ? How come you never came back?, -ham,Who were those people ? Were you in a tour ? I thought you were doing that sofa thing you sent me ? Your curious sugar, -ham,All sounds good. Fingers . Makes it difficult to type, -ham,Eh u remember how 2 spell his name... Yes i did. He v naughty make until i v wet., -ham,"No we put party 7 days a week and study lightly, I think we need to draw in some custom checkboxes so they know we're hardcore", -ham,Ok darlin i supose it was ok i just worry too much.i have to do some film stuff my mate and then have to babysit again! But you can call me there.xx, -ham,I tagged MY friends that you seemed to count as YOUR friends., -ham,Good night. Am going to sleep., -ham,Do well :)all will for little time. Thing of good times ahead:, -ham,"So you think i should actually talk to him? Not call his boss in the morning? I went to this place last year and he told me where i could go and get my car fixed cheaper. He kept telling me today how much he hoped i would come back in, how he always regretted not getting my number, etc.", -ham,Huh so late... Fr dinner?, -ham,"It's wylie, you in tampa or sarasota?", -ham,This message is from a great Doctor in India:-): 1) Do not drink APPY FIZZ. It contains Cancer causing age, -ham,Just got outta class gonna go gym., -ham,Message from . I am at Truro Hospital on ext. You can phone me here. as I have a phone by my side, -ham,"Sorry, I'll call later", -ham,"Wishing you and your family Merry \X\"" mas and HAPPY NEW Year in advance..""", -ham,Dear where you. Call me, -ham,How come i din c ?_... Yup i cut my hair..., -ham,Lol great now im getting hungry., -ham,Where are you lover ? I need you ..., -ham,"House-Maid is the murderer, coz the man was murdered on <#> th January.. As public holiday all govt.instituitions are closed,including post office..understand?", -ham,How are you babes. Hope your doing ok. I had a shit nights sleep. I fell asleep at 5.I??m knackered and i??m dreading work tonight. What are thou upto tonight. X, -ham,Oh god..taken the teeth?is it paining, -ham,Okay same with me. Well thanks for the clarification, -ham,Ujhhhhhhh computer shipped out with address to sandiago and parantella lane. Wtf. Poop., -ham,"I can. But it will tell quite long, cos i haven't finish my film yet...", -ham,"Although i told u dat i'm into baig face watches now but i really like e watch u gave cos it's fr u. Thanx 4 everything dat u've done today, i'm touched...", -ham,I am waiting machan. Call me once you free., -ham,"K, I might come by tonight then if my class lets out early", -ham,"Haha... Where got so fast lose weight, thk muz go 4 a month den got effect... Gee,later we go aust put bk e weight.", -ham,"Single line with a big meaning::::: \Miss anything 4 ur \""Best Life\"" but", -ham,"Sir, I need Velusamy sir's date of birth and company bank facilities details.", -ham,My superior telling that friday is leave for all other department except ours:)so it will be leave for you:)any way call waheed fathima hr and conform it:), -ham,"Wishing you and your family Merry \X\"" mas and HAPPY NEW Year in advance..""", -ham,Its ok my arm is feeling weak cuz i got a shot so we can go another time, -ham,Then we wait 4 u lor... No need 2 feel bad lar..., -ham,Raji..pls do me a favour. Pls convey my Birthday wishes to Nimya. Pls. Today is her birthday., -ham,Did u find out what time the bus is at coz i need to sort some stuff out., -ham,"\OH FUCK. JUSWOKE UP IN A BED ON A BOATIN THE DOCKS. SLEPT WID 25 YEAR OLD. SPINOUT! GIV U DA GOSSIP L8R. XXX\""""", -ham,Omg how did u know what I ate?, -ham,"Alright if you're sure, let me know when you're leaving", -ham,"Daddy, shu shu is looking 4 u... U wan me 2 tell him u're not in singapore or wat?", -ham,"What will we do in the shower, baby?", -ham,Yes i think so. I am in office but my lap is in room i think thats on for the last few days. I didnt shut that down, -ham,"Sorry, I'll call later", -ham,"No, but you told me you were going, before you got drunk!", -ham,"Velly good, yes please!", -ham,Tell me pa. How is pain de., -ham,No it will reach by 9 only. She telling she will be there. I dont know, -ham,Now i'm going for lunch., -ham,ELLO BABE U OK?, -ham,Lol u still feeling sick?, -ham,Babes I think I got ur brolly I left it in English wil bring it in 2mrw 4 u luv Franxx, -ham,Ok im not sure what time i finish tomorrow but i wanna spend the evening with you cos that would be vewy vewy lubly! Love me xxx, -ham,Ha ha cool cool chikku chikku:-):-DB-), -ham,Your opinion about me? 1. Over 2. Jada 3. Kusruthi 4. Lovable 5. Silent 6. Spl character 7. Not matured 8. Stylish 9. Simple Pls reply.., -ham,Surly ill give it to you:-) while coming to review., -ham,Ok, -ham,So are you guys asking that i get that slippers again or its gone with last year, -ham,"\Gimme a few\"" was <#> minutes ago""", -ham,Can you open the door?, -ham,We're on the opposite side from where we dropped you off, -ham,I'm ok. Will do my part tomorrow, -ham,I'm already back home so no probably not, -ham,Have a good evening! Ttyl, -ham,"Dear,regret i cudnt pick call.drove down frm ctla now at cochin home.left mobile in car..ente style ishtamayoo?happy bakrid!", -ham,Yup. Thk of u oso boring wat., -ham,The evo. I just had to download flash. Jealous?, -ham,Ya had just now.onion roast., -ham,No one interested. May be some business plan., -ham,"Haha awesome, be there in a minute", -ham,Like a personal sized or what, -ham,"No dice, art class 6 thru 9 :( thanks though. Any idea what time I should come tomorrow?", -ham,Y lei?, -ham,Then u drive lor., -ham,I cant pick the phone right now. Pls send a message, -ham,Dont worry. I guess he's busy., -ham,"Good afternoon, my love. It was good to see your words on YM and get your tm. Very smart move, my slave ... *smiles* ... I drink my coffee and await you.", -ham,"How are you, my Love ? Are you with your brother ? Time to talk english with him ? *grins* Say : Hey Muhommad, Penny says hello from across the sea", -ham,Hey r ?_ still online? I've finished the formatting..., -ham,Lmao but its so fun..., -ham,"Sorry pa, i dont knw who ru pa?", -ham,"I noe la... U wana pei bf oso rite... K lor, other days den...", -ham,Im done. Just studyn in library, -ham,"fyi I'm at usf now, swing by the room whenever", -ham,"Erm... Woodland avenue somewhere. Do you get the parish magazine, his telephone number will be in there.", -ham,You should know now. So how's anthony. Are you bringing money. I've school fees to pay and rent and stuff like that. Thats why i need your help. A friend in need....|, -ham,"A famous quote : when you develop the ability to listen to 'anything' unconditionally without losing your temper or self confidence, it means you are ......... 'MARRIED'", -ham,Jokin only lar... :-) depends on which phone my father can get lor..., -ham,Dont hesitate. You know this is the second time she has had weakness like that. So keep i notebook of what she eat and did the day before or if anything changed the day before so that we can be sure its nothing, -ham,Hello handsome ! Are you finding that job ? Not being lazy ? Working towards getting back that net for mummy ? Where's my boytoy now ? Does he miss me ?, -ham,"Dont pack what you can buy at any store.like cereals. If you must pack food, pack gari or something 9ja that you will miss.", -ham,"I'll get there at 3, unless you guys want me to come some time sooner", -ham,Yupz... I've oredi booked slots 4 my weekends liao... , -ham,Where are you ? What do you do ? How can you stand to be away from me ? Doesn't your heart ache without me ? Don't you wonder of me ? Don't you crave me ?, -ham,No shoot me. I'm in the docs waiting room. :/, -ham,Dont put your phone on silent mode ok, -ham,Actually I decided I was too hungry so I haven't left yet :V, -ham,"Tunde, how are you doing. This is just wishing you a great day. Abiola.", -ham, and picking them up from various points, -ham,What is the plural of the noun research?, -ham,You busy or can I come by at some point and figure out what we're doing tomorrow, -ham,Purity of friendship between two is not about smiling after reading the forwarded message..Its about smiling just by seeing the name. Gud evng, -ham,Ok not a problem will get them a taxi. C ing tomorrow and tuesday. On tuesday think we r all going to the cinema. , -ham,Lol your right. What diet? Everyday I cheat anyway. I'm meant to be a fatty :(, -ham,Well I wasn't available as I washob nobbing with last night so they had to ask Nickey Platt instead of me!;, -ham,Tell me something. Thats okay., -ham,"Er yeah, i will b there at 15:26, sorry! Just tell me which pub/cafe to sit in and come wen u can", -ham,The greatest test of courage on earth is to bear defeat without losing heart....gn tc, -ham,I anything lor..., -ham,"Camera quite good, 10.1mega pixels, 3optical and 5digital dooms. Have a lovely holiday, be safe and i hope you hav a good journey! Happy new year to you both! See you in a couple of weeks! ", -ham,And of course you should make a stink!, -ham,"Sir, good morning. Hope you had a good weekend. I called to let you know that i was able to raise <#> from my dad. He however said he would make the rest available by mid feb. This amount is still quite short and i was hoping you would help. Do have a good day. Abiola", -ham,Old Orchard near univ. How about you?, -ham,No. Did you multimedia message them or e-mail?, -ham,Jos ask if u wana meet up?, -ham,"Idk. You keep saying that you're not, but since he moved, we keep butting heads over freedom vs. responsibility. And i'm tired. I have so much other shit to deal with that i'm barely keeping myself together once this gets added to it.", -ham,Was gr8 to see that message. So when r u leaving? Congrats dear. What school and wat r ur plans., -ham,Then. You are eldest know., -ham,I'm so in love with you. I'm excited each day i spend with you. You make me so happy., -ham,"Nah, I'm a perpetual DD", -ham,I havent lei.. Next mon can?, -ham,"Sorry, I'll call later", -ham,No. To be nosy I guess. Idk am I over reacting if I'm freaked?, -ham,U call me alter at 11 ok., -ham,Hello boytoy ! Geeee ... I'm missing you today. I like to send you a tm and remind you I'm thinking of you ... And you are loved ... *loving kiss*, -ham,Its a site to simulate the test. It just gives you very tough questions to test your readiness., -ham,Oh... Okie lor...We go on sat... , -ham,I'm at work. Please call, -ham,K..give back my thanks., -ham,"Its good, we'll find a way", -ham,Merry christmas to u too annie!, -ham,"Hm good morning, headache anyone? :-)", -ham,Kallis wont bat in 2nd innings., -ham,"Hi Jon, Pete here, Ive bin 2 Spain recently & hav sum dinero left, Bill said u or ur ??rents mayb interested in it, I hav 12,000pes, so around ??48, tb, James.", -ham,I not busy juz dun wan 2 go so early.. Hee.. , -ham,Me too baby! I promise to treat you well! I bet you will take good care of me..., -ham,Serious? What like proper tongued her, -ham,Wat would u like 4 ur birthday?, -ham,I'll reach in ard 20 mins ok..., -ham,You all ready for * big day tomorrow?, -ham,"Jay wants to work out first, how's 4 sound?", -ham,Lol I know! They're so dramatic. Schools already closed for tomorrow. Apparently we can't drive in the inch of snow were supposed to get., -ham,"Merry Christmas to you too babe, i love ya *kisses*", -ham,"Gumby's has a special where a <#> \ cheese pizza is $2 so I know what we're doin tonight""", -ham,"Don't worry though, I understand how important it is that I be put in my place with a poorly thought out punishment in the face of the worst thing that has ever happened to me. Brb gonna go kill myself", -ham,I love you. You set my soul on fire. It is not just a spark. But it is a flame. A big rawring flame. XoXo, -ham,She's good. How are you. Where r u working now, -ham,Remember on that day.., -ham,Hai dear friends... This is my new & present number..:) By Rajitha Raj (Ranju), -ham,Tell them the drug dealer's getting impatient, -ham,Ah poop. Looks like ill prob have to send in my laptop to get fixed cuz it has a gpu problem, -ham,R u saying i should re order the slippers cos i had to pay for returning it., -ham,Oh shut it. Omg yesterday I had a dream that I had 2 kids both boys. I was so pissed. Not only about the kids but them being boys. I even told mark in my dream that he was changing diapers cause I'm not getting owed in the face., -ham,SORRY IM STIL FUCKED AFTER LAST NITE WENT TOBED AT 430 GOT UP 4 WORK AT 630, -ham,"I am real, baby! I want to bring out your inner tigress...", -ham,Have you started in skye, -ham,Okay but i thought you were the expert, -ham,1 I don't have her number and 2 its gonna be a massive pain in the ass and i'd rather not get involved if that's possible, -ham,Match started.india <#> for 2, -ham,"What part of \don't initiate\"" don't you understand""", -ham,I asked you to call him now ok, -ham,"Sorry, I'll call later <#> mins", -ham,Gam gone after outstanding innings., -ham,Me fine..absolutly fine, -ham,Will purchase d stuff today and mail to you. Do you have a po box number?, -ham,Hi im having the most relaxing time ever! we have to get up at 7am every day! was the party good the other night? I get home tomorrow at 5ish., -ham,Lol! Oops sorry! Have fun. , -ham,How do friends help us in problems? They give the most stupid suggestion that Lands us into another problem and helps us forgt the previous problem, -ham,"Haven't found a way to get another app for your phone, eh ? Will you go to the net cafe ? Did you take that job? Geeee I need you babe. I crave to see you ...", -ham,I am in hospital da. . I will return home in evening, -ham,When is school starting. Where will you stay. What's the weather like. And the food. Do you have a social support system like friends in the school. All these things are important., -ham,The wine is flowing and i'm i have nevering.., -ham,Am in gobi arts college, -ham,Stupid.its not possible, -ham,"Yo, call me when you get the chance, a friend of mine wanted me to ask you about a big order", -ham,Mm so you asked me not to call radio, -ham,Aiyo please ?_ got time meh., -ham,"Yeah, probably here for a while", -ham,Once free call me sir., -ham,Ok thanx..., -ham,Ok., -ham,"Ya tel, wats ur problem..", -ham,Going to take your babe out ?, -ham,Hey... Very inconvenient for your sis a not huh?, -ham,I am in your office na., -ham,This pen thing is beyond a joke. Wont a Biro do? Don't do a masters as can't do this ever again! , -ham,Your opinion about me? 1. Over 2. Jada 3. Kusruthi 4. Lovable 5. Silent 6. Spl character 7. Not matured 8. Stylish 9. Simple Pls reply.., -ham,Was it something u ate?, -ham,Carlos'll be here in a minute if you still need to buy, -ham,Hey ! Don't forget ... You are MINE ... For ME ... My possession ... MY property ... MMM ... *childish smile* ..., -ham,Going thru a very different feeling.wavering decisions and coping up with the same is the same individual.time will heal everything i believe., -ham,Sorry da..today i wont come to play..i have driving clas.., -ham,"Men always needs a beautiful, intelligent, caring, loving, adjustable, cooperative wife. But the law allows only one wife....", -ham,Whom you waited for yesterday, -ham,I know but you need to get hotel now. I just got my invitation but i had to apologise. Cali is to sweet for me to come to some english bloke's weddin, -ham,"Wn u r hurt by d prsn who s close 2 u, do fight wit dem. Coz somtimes dis fight saves a relation bt being quiet leaves nothin in a relation.. Gud eveB-)", -ham,Are you going to write ccna exam this week??, -ham,Yes fine , -ham,S....s...india going to draw the series after many years in south african soil.., -ham,True. Its easier with her here., -ham,"Aight, see you in a bit", -ham,Can... I'm free..., -ham,Hope you are having a great new semester. Do wish you the very best. You are made for greatness., -ham,Yeah I can still give you a ride, -ham,No other Valentines huh? The proof is on your fb page. Ugh I'm so glad I really DIDN'T watch your rupaul show you TOOL!, -ham,Why you Dint come with us., -ham,It shall be fine. I have avalarr now. Will hollalater, -ham,Ok. Me watching tv too., -ham,"Go until jurong point, crazy.. Available only in bugis n great world la e buffet... Cine there got amore wat...", -ham,Shuhui has bought ron's present it's a swatch watch..., -ham,"I thought i'd get him a watch, just cos thats the kind of thing u get4an18th. And he loves so much!", -ham,Miles and smiles r made frm same letters but do u know d difference..? smile on ur face keeps me happy even though I am miles away from u.. :-)keep smiling.. Good nyt, -ham,At what time are you coming., -ham,K. I will sent it again, -ham,I think chennai well settled?, -ham,"New Theory: Argument wins d SITUATION, but loses the PERSON. So dont argue with ur friends just.. . . . kick them & say, I'm always correct.!", -ham,Oh unintentionally not bad timing. Great. Fingers the trains play along! Will give fifteen min warning., -ham,Its good to hear from you, -ham,Have you emigrated or something? Ok maybe 5.30 was a bit hopeful..., -ham,Dunno i juz askin cos i got a card got 20% off 4 a salon called hair sense so i tot it's da one ?_ cut ur hair. , -ham,Annoying isn't it., -ham,What your plan for pongal?, -ham,"Sorry, I'll call later", -ham,How much would it cost to hire a hitman, -ham,I love u 2 babe! R u sure everything is alrite. Is he being an idiot? Txt bak girlie, -ham,Only once then after ill obey all yours., -ham,Yo come over carlos will be here soon, -ham,"\Hi its Kate it was lovely to see you tonight and ill phone you tomorrow. I got to sing and a guy gave me his card! xxx\""""", -ham,Wat so late still early mah. Or we juz go 4 dinner lor. Aiya i dunno..., -ham,I sent them. Do you like?, -ham,Ok lor..., -ham,Sen told that he is going to join his uncle finance in cbe, -ham,K..k.:)congratulation .., -ham,"\Hey! do u fancy meetin me at 4 at cha ?? hav a lil beverage on me. if not txt or ring me and we can meet up l8r. quite tired got in at 3 v.pist ;) love Pete x x x\""""", -ham,Actually i'm waiting for 2 weeks when they start putting ad., -ham,"Alright, I'll head out in a few minutes, text me where to meet you", -ham,"We are hoping to get away by 7, from Langport. You still up for town tonight?", -ham,Never blame a day in ur life. Good days give u happiness. Bad days give u experience. Both are essential in life! All are Gods blessings! good morning.:, -ham,?? dun wan to watch infernal affair?, -ham,So there's a ring that comes with the guys costumes. It's there so they can gift their future yowifes. Hint hint, -ham,I got to video tape pple type in message lor. U so free wan 2 help me? Hee... Cos i noe u wan 2 watch infernal affairs so ask u along. Asking shuhui oso., -ham,Otherwise had part time job na-tuition.., -ham,Not yet chikku..wat abt u?, -ham,"Babe, I'm answering you, can't you see me ? Maybe you'd better reboot YM ... I got the photo ... It's great !", -ham,Can not use foreign stamps in this country. Good lecture ., -ham,Nothing will ever be easy. But don't be looking for a reason not to take a risk on life and love, -ham,Mum ask ?_ to buy food home..., -ham,How? Izzit still raining?, -ham,Whens your radio show?, -ham,K.k..how is your sister kids?, -ham,How come u got nothing to do?, -ham,X2 <#> . Are you going to get that, -ham,Dont gimme that lip caveboy, -ham,"7 wonders in My WORLD 7th You 6th Ur style 5th Ur smile 4th Ur Personality 3rd Ur Nature 2nd Ur SMS and 1st \Ur Lovely Friendship\""... good morning dear""", -ham,"I.ll always be there, even if its just in spirit. I.ll get a bb soon. Just trying to be sure i need it.", -ham,Just glad to be talking to you., -ham,"Its so common hearin How r u? Wat r u doing? How was ur day? So let me ask u something different. Did u smile today? If not, do it now.... Gud evng.", -ham,Pls accept me for one day. Or am begging you change the number., -ham,"\Im on gloucesterroad what are uup to later?\""""", -ham,"Hmm... Dunno leh, mayb a bag 4 goigng out dat is not too small. Or jus anything except perfume, smth dat i can keep.", -ham,Glad to see your reply., -ham,"Well, i'm glad you didn't find it totally disagreeable ... Lol", -ham,"I met you as a stranger and choose you as my friend. As long as the world stands, our friendship never ends. Lets be Friends forever!!! Gud nitz...", -ham,"I know dat feelin had it with Pete! Wuld get with em , nuther place nuther time mayb?", -ham,Great! How is the office today?, -ham,We can make a baby in yo tho, -ham,"Yep, by the pretty sculpture", -ham,Bognor it is! Should be splendid at this time of year., -ham,"sorry, no, have got few things to do. may be in pub later.", -ham,Dunno lei shd b driving lor cos i go sch 1 hr oni., -ham,Does she usually take fifteen fucking minutes to respond to a yes or no question, -ham,K...k:)why cant you come here and search job:), -ham,Let me know how to contact you. I've you settled in a room. Lets know you are ok., -ham,Got but got 2 colours lor. One colour is quite light n e other is darker lor. Actually i'm done she's styling my hair now., -ham,Think I could stop by in like an hour or so? My roommate's looking to stock up for a trip, -ham,"Dad wanted to talk about the apartment so I got a late start, omw now", -ham,"Princess, is your kitty shaved or natural?", -ham,That sucks. I'll go over so u can do my hair. You'll do it free right?, -ham,Good day to You too.Pray for me.Remove the teeth as its painful maintaining other stuff., -ham,Is it your yahoo boys that bring in the perf? Or legal., -ham,"Great. I'm in church now, will holla when i get out", -ham,You dont know you jabo me abi., -ham,"I jus hope its true that missin me cos i'm really missin him! You haven't done anything to feel guilty about, yet.", -ham,Anything is valuable in only 2 situations: First- Before getting it... Second- After loosing it..., -ham,Yeah. I got a list with only u and Joanna if I'm feeling really anti social, -ham,Watching tv lor..., -ham,"Yes, princess. Toledo.", -ham,"Y cant u try new invention to fly..i'm not joking.,", -ham,Are you not around or just still asleep? :V, -ham,Its a valentine game. . . send dis msg to all ur friends. . If 5 answers r d same then someone really loves u. . Ques- which colour suits me the best?, -ham,I like to think there's always the possibility of being in a pub later., -ham,I attended but nothing is there., -ham,Ok i juz receive.., -ham,"Good afternoon loverboy ! How goes you day ? Any luck come your way? I think of you, sweetie and send my love across the sea to make you smile and happy", -ham,"Haha better late than ever, any way I could swing by?", -ham,alright tyler's got a minor crisis and has to be home sooner than he thought so be here asap, -ham,I am in office:)whats the matter..msg me now.i will call you at break:)., -ham,HELLO PEACH! MY CAKE TASTS LUSH!, -ham,Oh k. . I will come tomorrow, -ham,I am late. I will be there at, -ham,"Call me when you/carlos is/are here, my phone's vibrate is acting up and I might not hear texts", -ham,"Please protect yourself from e-threats. SIB never asks for sensitive information like Passwords,ATM/SMS PIN thru email. Never share your password with anybody.", -ham,Purity of friendship between two is not about smiling after reading the forwarded message..Its about smiling just by seeing the name. Gud evng musthu, -ham,"Haha, my legs and neck are killing me and my amigos are hoping to end the night with a burn, think I could swing by in like an hour?", -ham,Can you pls send me that company name. In saibaba colany, -ham,A little. Meds say take once every 8 hours. It's only been 5 but pain is back. So I took another. Hope I don't die, -ham,Ok... Take ur time n enjoy ur dinner..., -ham,Were somewhere on Fredericksburg, -ham,"Good evening Sir, Al Salam Wahleykkum.sharing a happy news.By the grace of God, i got an offer from Tayseer,TISSCO and i joined.Hope you are fine.Inshah Allah,meet you sometime.Rakhesh,visitor from India.", -ham,"Sorry I flaked last night, shit's seriously goin down with my roommate, what you up to tonight?", -ham,At home also., -ham,U can call now..., -ham,"Ha ha nan yalrigu heltini..Iyo kothi chikku, u shared many things wit me..so far i didn't told any body and even uttered a word abt u.. If ur trusting me so much how can i tell these to others.. Plz nxt time dont use those words to me..ok, chikku:-);-)B-)", -ham,"Sorry, I'll call later", -ham,S da..al r above <#>, -ham,U studying in sch or going home? Anyway i'll b going 2 sch later., -ham,Ok i am on the way to railway, -ham,U buy newspapers already?, -ham,I got a call from a landline number. . . I am asked to come to anna nagar . . . I will go in the afternoon, -ham,Cool. Do you like swimming? I have a pool and jacuzzi at my house., -ham,"God picked up a flower and dippeditinaDEW, lovingly touched itwhichturnedinto u, and the he gifted tomeandsaid,THIS FRIEND IS 4U", -ham,"Sorry, I'll call later", -ham,I take it we didn't have the phone callon Friday. Can we assume we won't have it this year now?, -ham,"I hav almost reached. Call, i m unable to connect u.", -ham,Sindu got job in birla soft .., -ham,You're right I have now that I think about it, -ham,It will stop on itself. I however suggest she stays with someone that will be able to give ors for every stool., -ham,:-( that's not v romantic!, -ham,Are you this much buzy, -ham,"Sorry light turned green, I meant another friend wanted <#> worth but he may not be around", -ham,I got lousy sleep. I kept waking up every 2 hours to see if my cat wanted to come in. I worry about him when its cold :(, -ham,"Whatever, juliana. Do whatever you want.", -ham,Boooo you always work. Just quit., -ham,Not able to do anything., -ham,I WILL CAL YOU SIR. In meeting, -ham,I'm home. Doc gave me pain meds says everything is fine., -ham,K:)k:)what are detail you want to transfer?acc no enough?, -ham,U haven??t lost me ill always b here 4u.i didn??t intend 2 hurt u but I never knew how u felt about me when Iwas+marine&that??s what itried2tell urmom.i careabout u, -ham,"Ok., is any problem to u frm him? Wats matter?", -ham,Happy new year. Hope you are having a good semester, -ham,I will send them to your email. Do you mind <#> times per night?, -ham,Let me know when you've got the money so carlos can make the call, -ham,Lol I was gonna last month. I cashed some in but I left <#> just in case. I was collecting more during the week cause they announced it on the blog., -ham,"Come to me, slave. Your doing it again ... Going into your shell and unconsciously avoiding me ... You are making me unhappy :-(", -ham,"Just sent again. Do you scream and moan in bed, princess?", -ham,Are you sure you don't mean \get here, -ham,Send me your resume:-), -ham,"We have sent JD for Customer Service cum Accounts Executive to ur mail id, For details contact us", -ham,Yeah sure I'll leave in a min, -ham,Ugh I don't wanna get out of bed. It's so warm., -ham,it's really getting me down just hanging around., -ham,"Hiya, sorry didn't hav signal. I haven't seen or heard from and neither has, which is unusual in itself! I'll put on the case and get him to sort it out! Hugs and snogs.", -ham,One small prestige problem now., -ham,I.ll give her once i have it. Plus she said grinule greet you whenever we speak, -ham,Hi..i got the money da:), -ham,I'm leaving my house now., -ham, <#> in mca. But not conform., -ham,"Remember all those whom i hurt during days of satanic imposter in me.need to pay a price,so be it.may destiny keep me going and as u said pray that i get the mind to get over the same.", -ham,"\Wen u miss someone why to miss them just Keep-in-touch\"" gdeve..""", -ham,Whos this am in class:-), -ham,"I just lov this line: \Hurt me with the truth i wil tolerat.bcs ur my someone..... But Never comfort me with a lie\"" gud ni8 and sweet dreams""", -ham,Hi its in durban are you still on this number, -ham,In work now. Going have in few min., -ham,Can help u swoop by picking u up from wherever ur other birds r meeting if u want., -ham,Yeah that's the impression I got, -ham,Lol where do u come up with these ideas?, -ham,Also hi wesley how've you been, -ham,From here after The performance award is calculated every two month.not for current one month period.., -ham,Yes..he is really great..bhaji told kallis best cricketer after sachin in world:).very tough to get out., -ham,Yay can't wait to party together!, -ham,"Nah man, my car is meant to be crammed full of people", -ham,Sorry da thangam.it's my mistake., -ham,Hey what happen de. Are you alright., -ham,Is xy going 4 e lunch?, -ham,That sucks. So what do you got planned for your yo valentine? I am your yo valentine aren't I?, -ham,"Love isn't a decision, it's a feeling. If we could decide who to love, then, life would be much simpler, but then less magical", -ham,The hair cream has not been shipped., -ham,Pls give her prometazine syrup. 5mls then <#> mins later feed., -ham,"Aight, lemme know what's up", -ham,Also remember the beads don't come off. Ever., -ham,\ER, -ham,We are supposed to meet to discuss abt our trip... Thought xuhui told you? In the afternoon. Thought we can go for lesson after that, -ham,"Hello, my love! How goes that day ? I wish your well and fine babe and hope that you find some job prospects. I miss you, boytoy ... *a teasing kiss*", -ham,I have no idea where you are, -ham,Leave it. U will always be ignorant., -ham,"I want to show you the world, princess :) how about europe?", -ham,Have your lunch and come quickly and open the door:), -ham,Its on in engalnd! But telly has decided it won't let me watch it and mia and elliot were kissing! Damn it!, -ham,Ok i'm coming home now., -ham,7 lor... Change 2 suntec... Wat time u coming?, -ham,"My life Means a lot to me, Not because I love my life, But because I love the people in my life, The world calls them friends, I call them my World:-).. Ge:-)..", -ham,Hi good mornin.. Thanku wish u d same.., -ham,Here got ur favorite oyster... N got my favorite sashimi... Ok lar i dun say already... Wait ur stomach start rumbling..., -ham,Thanks for loving me so. You rock, -ham,I will come tomorrow di, -ham,"K, if u bored up just come to my home..", -ham,I'm hungry buy smth home..., -ham,"Wat time liao, where still got.", -ham,"Nothing much, chillin at home. Any super bowl plan?", -ham,You're gonna have to be way more specific than that, -ham,"Sorry, I'll call later in meeting", -ham,"Haha awesome, I've been to 4u a couple times. Who all's coming?", -ham,Good Morning my Dear........... Have a great & successful day., -ham,Then i buy., -ham,Hello madam how are you ?, -ham,"Sorry about earlier. Putting out fires.Are you around to talk after 9? Or do you actually have a life, lol!", -ham,Must come later.. I normally bathe him in da afternoon mah.., -ham,I plane to give on this month end., -ham,"I just got home babe, are you still awake ?", -ham,"Yo carlos, a few friends are already asking me about you, you working at all this weekend?", -ham,Ee msg na poortiyagi odalebeku: Hanumanji 7 name 1-Hanuman 2-Bajarangabali 3-Maruti 4-Pavanaputra 5-Sankatmochan 6-Ramaduth 7-Mahaveer ee 7 name <#> janarige ivatte kalisidare next saturday olage ondu good news keluviri...! Maretare inde 1 dodda problum nalli siguviri idu matra <#> % true.. Don't neglet., -ham,What Today-sunday..sunday is holiday..so no work.., -ham,Ha... U jus ate honey ar? So sweet..., -ham,Hahaha..use your brain dear, -ham,She just broke down a list of reasons why nobody's in town and I can't tell if she's being sarcastic or just faggy, -ham,Send his number and give reply tomorrow morning for why you said that to him like that ok, -ham,Missing you too.pray inshah allah, -ham,Ok lor wat time ?_ finish?, -ham,K..k..i'm also fine:)when will you complete the course?, -ham,You didnt complete your gist oh., -ham,Ok good then i later come find ?_... C lucky i told ?_ to go earlier... Later pple take finish ?_ no more again..., -ham,K. I will sent it again, -ham,"hey, looks like I was wrong and one of the kappa guys numbers is still on my phone, if you want I can text him and see if he's around", -ham,"* Was a nice day and, impressively, i was sensible, went home early and now feel fine. Or am i just boring?! When's yours, i can't remember.", -ham,Check mail.i have mailed varma and kept copy to you regarding membership.take care.insha allah., -ham,"Nothing, i got msg frm tht unknown no..", -ham,"How's my loverboy doing ? What does he do that keeps him from coming to his Queen, hmmm ? Doesn't he ache to speak to me ? Miss me desparately ?", -ham,Love you aathi..love u lot.., -ham,Haf u eaten? Wat time u wan me 2 come?, -ham,K come to nordstrom when you're done, -ham,Can you call me plz. Your number shows out of coveragd area. I have urgnt call in vasai & have to reach before 4'o clock so call me plz, -ham,Did you get any gift? This year i didnt get anything. So bad, -ham,Cool. I am <#> inches long. hope you like them big!, -ham,Oh for fuck's sake she's in like tallahassee, -ham,"\NOT ENUFCREDEIT TOCALL.SHALL ILEAVE UNI AT 6 +GET A BUS TO YOR HOUSE?\""""", -ham,"Sir, Waiting for your mail.", -ham,Ok i go change also..., -ham,\Keep ur problems in ur heart, -ham,"Say this slowly.? GOD,I LOVE YOU & I NEED YOU,CLEAN MY HEART WITH YOUR BLOOD.Send this to Ten special people & u c miracle tomorrow, do it,pls,pls do it...", -ham,Can u look 4 me in da lib i got stuff havent finish yet., -ham,I'm in class. Will holla later, -ham,Hi Petey!noi??m ok just wanted 2 chat coz avent spoken 2 u 4 a long time-hope ur doin alrite.have good nit at js love ya am.x, -ham,Lmao!nice 1, -ham,Yeah that'd pretty much be the best case scenario, -ham,A lot of this sickness thing going round. Take it easy. Hope u feel better soon. Lol, -ham,Am surfing online store. For offers do you want to buy any thing., -ham,"\Hello-/@drivby-:0quit edrunk sorry iff pthis makes no senrd-dnot no how ^ dancce 2 drum n basq!ihave fun 2nhite x ros xxxxxxx\""""", -ham,Double eviction this week - Spiral and Michael and good riddance to them!, -ham,Do you still have the grinder?, -ham,Hey darlin.. i can pick u up at college if u tell me wen & where 2 mt.. love Pete xx, -ham,"Jane babes not goin 2 wrk, feel ill after lst nite. Foned in already cover 4 me chuck.:-)", -ham,Tell rob to mack his gf in the theater, -ham,I am going to film 2day da. At 6pm. Sorry da., -ham,Pls dont forget to study, -ham,I'm fine. Hope you are also, -ham,Hi its Kate how is your evening? I hope i can see you tomorrow for a bit but i have to bloody babyjontet! Txt back if u can. :) xxx, -ham,S now only i took tablets . Reaction morning only., -ham,I dont have any of your file in my bag..i was in work when you called me.i 'll tell you if i find anything in my room., -ham,I doubt you could handle 5 times per night in any case..., -ham,You said to me before i went back to bed that you can't sleep for anything., -ham,Let me know how it changes in the next 6hrs. It can even be appendix but you are out of that age range. However its not impossible. So just chill and let me know in 6hrs, -ham,*deep sigh* ... I miss you :-( ... I am really surprised you haven't gone to the net cafe yet to get to me ... Don't you miss me?, -ham,Check wid corect speling i.e. Sarcasm, -ham,Thanks for picking up the trash., -ham,Where did u go? My phone is gonna die you have to stay in here, -ham,ZOE IT JUST HIT ME 2 IM FUCKING SHITIN MYSELF IL DEFO TRY MY HARDEST 2 CUM 2MOROW LUV U MILLIONS LEKDOG, -ham,No wonder... Cos i dun rem seeing a silver car... But i thk i saw a black one..., -ham,NO GIFTS!! You trying to get me to throw myself off a cliff or something?, -ham,"yeah, that's what I was thinking", -ham,Not yet had..ya sapna aunty manege y'day hogidhe..chinnu full weak and swalpa black agidhane.., -ham,Din i tell u jus now 420, -ham,She's fine. Good to hear from you. How are you my dear? Happy new year oh., -ham,Waiting 4 my tv show 2 start lor... U leh still busy doing ur report?, -ham,"OH YEAH,AND HAV A GREAT TIME IN NEWQUAY-SEND ME A POSTCARD !1 LOOK AFTER ALL THE GIRLS WHILE IM GONE(U KNOW THE 1IM TALKIN BOUT!)xx", -ham,"Lets use it next week, princess :)", -ham,"\I;m reaching in another 2 stops.\""""", -ham,Convey my regards to him, -ham,Was actually about to send you a reminder today. Have a wonderful weekend, -ham,"Aight I'll grab something to eat too, text me when you're back at mu", -ham,Wat time ?_ finish?, -ham,Nationwide auto centre (or something like that) on Newport road. I liked them there, -ham,"I know where the <#> is, I'll be there around 5", -ham,"\Getting tickets 4 walsall tue 6 th march. My mate is getting me them on sat. ill pay my treat. Want 2 go. Txt bak .Terry\""""", -ham,Howz that persons story, -ham,Your gonna be the death if me. I'm gonna leave a note that says its all robs fault. Avenge me., -ham,is your hamster dead? Hey so tmr i meet you at 1pm orchard mrt? , -ham,Oh oh... Wasted... Den muz chiong on sat n sun liao..., -ham,"Hey there! Glad u r better now. I hear u treated urself to a digi cam, is it good? We r off at 9pm. Have a fab new year, c u in coupla wks!", -ham,I have a sore throat. It's scratches when I talk, -ham,Get me out of this dump heap. My mom decided to come to lowes. BORING., -ham,Yeah right! I'll bring my tape measure fri!, -ham,For real tho this sucks. I can't even cook my whole electricity is out. And I'm hungry., -ham,We are pleased to inform that your application for Airtel Broadband is processed successfully. Your installation will happen within 3 days., -ham,That's y i said it's bad dat all e gals know u... Wat u doing now?, -ham,And how's your husband., -ham,Dear got train and seat mine lower seat, -ham,meet you in corporation st outside gap ??_ you can see how my mind is working!, -ham,cThen i thk shd b enuff.. Still got conclusion n contents pg n references.. I'll b doing da contents pg n cover pg.., -ham,Going for dinner.msg you after., -ham,Msg me when rajini comes., -ham,"Just looked it up and addie goes back Monday, sucks to be her", -ham,Im just wondering what your doing right now?, -ham,Baaaaaaaabe! Wake up ! I miss you ! I crave you! I need you!, -ham,Detroit. The home of snow. Enjoy it., -ham,"Sorry man, my stash ran dry last night and I can't pick up more until sunday", -ham,Ok try to do week end course in coimbatore., -ham,Lol no ouch but wish i'd stayed out a bit longer, -ham,"I'm in solihull, | do you want anything?", -ham,They don't put that stuff on the roads to keep it from getting slippery over there?, -ham,K..k:)how much does it cost?, -ham,When are you going to ride your bike?, -ham,:-( sad puppy noise, -ham,Die... I accidentally deleted e msg i suppose 2 put in e sim archive. Haiz... I so sad..., -ham,"Dear Hero,i am leaving to qatar tonite for an apt opportunity.pls do keep in touch at <EMAIL> ,kerala", -ham,S.i think he is waste for rr.., -ham,WHAT TIME U WRKIN?, -ham,You also didnt get na hi hi hi hi hi, -ham,Macha dont feel upset.i can assume your mindset.believe me one evening with me and i have some wonderful plans for both of us.LET LIFE BEGIN AGAIN.call me anytime, -ham,I will vote for wherever my heart guides me, -ham,I'm not coming home 4 dinner., -ham,You do got a shitload of diamonds though, -ham,Ball is moving a lot.will spin in last :)so very difficult to bat:), -ham,Misplaced your number and was sending texts to your old number. Wondering why i've not heard from you this year. All the best in your mcat. Got this number from my atlanta friends, -ham,India have to take lead:), -ham,Am on a train back from northampton so i'm afraid not! I'm staying skyving off today ho ho! Will be around wednesday though. Do you fancy the comedy club this week by the way?, -ham,Great. Have a safe trip. Dont panic surrender all., -ham,Sounds like you have many talents! would you like to go on a dinner date next week?, -ham,Good night my dear.. Sleepwell&Take care, -ham,Thats cool. i am a gentleman and will treat you with dignity and respect., -ham,"Cool, want me to go to kappa or should I meet you outside mu", -ham,"Oh right, ok. I'll make sure that i do loads of work during the day! got a really nasty cough today and is dry n shot so that should really help it!", -ham,You still at the game?, -ham,"St andre, virgil's cream", -ham,But i have to. I like to have love and arrange., -ham,Have you heard about that job? I'm going to that wildlife talk again tonight if u want2come. Its that2worzels and a wizzle or whatever it is?! , -ham,Po de :-):):-):-):-). No need job aha., -ham,I send the print outs da., -ham,Gud mrng dear have a nice day, -ham,Great. Hope you are using your connections from mode men also cos you can never know why old friends can lead you to today, -ham,No did you check? I got his detailed message now, -ham,K:)k:)good:)study well., -ham,Or ?_ go buy wif him then i meet ?_ later can?, -ham,There r many model..sony ericson also der.. <#> ..it luks good bt i forgot modl no, -ham,I have no money 4 steve mate! !, -ham,You got job in wipro:)you will get every thing in life in 2 or 3 years., -ham,"Superb Thought- \Be grateful that u dont have everything u want. That means u still have an opportunity to be happier tomorrow than u are today.\"":-)""", -ham,Waiting for your call., -ham,Thanks a lot for your wishes on my birthday. Thanks you for making my birthday truly memorable., -ham,K.:)you are the only girl waiting in reception ah?, -ham,I (Career Tel) have added u as a contact on INDYAROCKS.COM to send FREE SMS. To remove from phonebook - sms NO to <#>, -ham,"Me also da, i feel yesterday night wait til 2day night dear.", -ham,One day a crab was running on the sea shore..The waves came n cleared the footprints of the crab.. Crab asked: being my frnd y r u clearing my beautiful footprints? Waves replied: A fox was following ur footprints to catch you! thats y i cleared it off:) frndsship never lets u dwn :-) GUD nyt.., -ham,I'm good. Have you registered to vote?, -ham,1Apple/Day=No Doctor. 1Tulsi Leaf/Day=No Cancer. 1Lemon/Day=No Fat. 1Cup Milk/day=No Bone Problms 3 Litres Watr/Day=No Diseases Snd ths 2 Whom U Care..:-), -ham,And smile for me right now as you go and the world will wonder what you are smiling about and think your crazy and keep away from you ... *grins*, -ham,I'm in a movie... Collect car oredi..., -ham,U R THE MOST BEAUTIFUL GIRL IVE EVER SEEN. U R MY BABY COME AND C ME IN THE COMMON ROOM, -ham,Sad story of a Man - Last week was my b'day. My Wife did'nt wish me. My Parents forgot n so did my Kids . I went to work. Even my Colleagues did not wish., -ham,I might go 2 sch. Yar at e salon now v boring., -ham,cud u tell ppl im gona b a bit l8 cos 2 buses hav gon past cos they were full & im still waitin 4 1. Pete x, -ham,Ok lor..., -ham,"I'd say that's a good sign but, well, you know my track record at reading women", -ham,"Hi hope u r both ok, he said he would text and he hasn't, have u seen him, let me down gently please ", -ham,"That's cool, I'll come by like <#> ish", -ham,"Nah it's straight, if you can just bring bud or drinks or something that's actually a little more useful than straight cash", -ham,Correct. So how was work today, -ham,Gd luck 4 ur exams :-), -ham,Get ready for <#> inches of pleasure..., -ham,"Cool, I'll text you in a few", -ham,"Yup, no need. I'll jus wait 4 e rain 2 stop.", -ham,How was txting and driving, -ham,"Goodmorning,my grandfather expired..so am on leave today.", -ham,In the end she might still vomit but its okay. Not everything will come out., -ham,I was gonna ask you lol but i think its at 7, -ham,Nope thats fine. I might have a nap tho! , -ham,Boo. How's things? I'm back at home and a little bored already :-(, -ham,TaKe CaRE n gET WeLL sOOn, -ham,Mm that time you dont like fun, -ham,"Turns out my friends are staying for the whole show and won't be back til ~ <#> , so feel free to go ahead and smoke that $ <#> worth", -ham,Watching tv now. I got new job :), -ham,Aiyo a bit pai seh ?_ noe... Scared he dun rem who i am then die... Hee... But he become better lookin oredi leh..., -ham,Thank you. do you generally date the brothas?, -ham,Yar but they say got some error., -ham,Watching telugu movie..wat abt u?, -ham,Hey i've booked the 2 lessons on sun liao..., -ham,either way works for me. I am <#> years old. Hope that doesnt bother you., -ham,Sry da..jst nw only i came to home.., -ham,Realy sorry-i don't recognise this number and am now confused :) who r u please?! , -ham,Crazy ar he's married. ?? like gd looking guys not me. My frens like say he's korean leona's fave but i dun thk he is. Aft some thinking mayb most prob i'll go., -ham,"Feb <#> is \I LOVE U\"" day. Send dis to all ur \""VALUED FRNDS\"" evn me. If 3 comes back u'll gt married d person u luv! If u ignore dis u will lose ur luv 4 Evr""", -ham,I've been barred from all B and Q stores for life!?This twat in orange dungerees came up to me and asked if I wanted decking? So I got the first punch in!!, -ham,"Huh... Hyde park not in mel ah, opps, got confused... Anyway, if tt's e best choice den we juz have to take it...", -ham,"I can't speak, bcaz mobile have problem. I can listen you but you cann't listen my voice. So i calls you later.", -ham,When can ?_ come out?, -ham,\YEH I AM DEF UP4 SOMETHING SAT, -ham,Y she dun believe leh? I tot i told her it's true already. I thk she muz c us tog then she believe., -ham,If I get there before you after your ten billion calls and texts so help me god, -ham,"Just got some gas money, any chance you and the gang want to go on a grand nature adventure?", -ham,Aiyo cos i sms ?_ then ?_ neva reply so i wait 4 ?_ to reply lar. I tot ?_ havent finish ur lab wat., -ham,Haha... can... But i'm having dinner with my cousin..., -ham,Ya very nice. . .be ready on thursday, -ham,Lol they don't know about my awesome phone. I could click delete right now if I want., -ham,Ok give me 5 minutes I think I see her. BTW you're my alibi. You were cutting my hair the whole time., -ham,"U so lousy, run already come back then half dead... Hee...", -ham,Ok i will tell her to stay out. Yeah its been tough but we are optimistic things will improve this month., -ham,"New Theory: Argument wins d SITUATION, but loses the PERSON. So dont argue with ur friends just.. . . . kick them & say, I'm always correct.!", -ham,Thank you princess! I want to see your nice juicy booty..., -ham,Tell me again what your address is, -ham,"Beautiful tomorrow never comes.. When it comes, it's already TODAY.. In the hunt of beautiful tomorrow don't waste your wonderful TODAY.. GOODMORNING:)", -ham,"\SYMPTOMS\"" when U are in love: \""1.U like listening songs 2.U get stopped where u see the name of your beloved 3.U won't get angry when your""", -ham,What is your record for one night? :), -ham,HI ITS KATE CAN U GIVE ME A RING ASAP XXX, -ham,"Nothing, smsing u n xy lor. Sorry lor da guys neva c u in person but they sort of know u lor. So u wan 2 meet them xy ask me 2 bring u along 4 our next meeting.", -ham,Well that must be a pain to catch, -ham,Mmmmmmm *snuggles into you* ...*deep contented sigh* ... *whispers* ... I fucking love you so much I can barely stand it ..., -ham,"Enjoy the showers of possessiveness poured on u by ur loved ones, bcoz in this world of lies, it is a golden gift to be loved truly..", -ham,Hows that watch resizing, -ham,S.this will increase the chance of winning., -ham,Oh ya ya. I remember da. ., -ham,Change again... It's e one next to escalator..., -ham,Fine. Do you remember me., -ham,Yeah he got in at 2 and was v apologetic. n had fallen out and she was actin like spoilt child and he got caught up in that. Till 2! But we won't go there! Not doing too badly cheers. You? , -ham,Your brother is a genius, -ham,Nope wif my sis lor... Aft bathing my dog then i can bathe... Looks like it's going 2 rain soon., -ham,"Evry Emotion dsn't hav Words.Evry Wish dsn't hav Prayrs.. If u Smile,D World is wit u.Othrwise even d Drop of Tear dsn't lik 2 Stay wit u.So b happy.. Good morning, keep smiling:-)", -ham,Dear we are going to our rubber place, -ham,Dude how do you like the buff wind., -ham,I cant pick the phone right now. Pls send a message, -ham,Good morning princess! How are you?, -ham,"Haha, just what I was thinkin", -ham,Lol yeah at this point I guess not, -ham,Give one miss from that number please, -ham,What happen dear tell me, -ham,No need lar i go engin? Cos my sis at arts today..., -ham,SO IS TH GOWER MATE WHICH IS WHERE I AM!?! HOW R U MAN? ALL IS GOOD IN WALES ILL B BACK ??MORROW. C U THIS WK? WHO WAS THE MSG 4? ?? RANDOM!, -ham,"Love isn't a decision, it's a feeling. If we could decide who to love, then, life would be much simpler, but then less magical", -ham,Good morning pookie pie! Lol hope I didn't wake u up, -ham,K..k:)how about your training process?, -ham,Blank is Blank. But wat is blank? Lol, -ham,"For you information, IKEA is spelled with all caps. That is not yelling. when you thought i had left you, you were sitting on the bed among the mess when i came in. i said we were going after you got home from class. please don't try and bullshit me. It makes me want to listen to you less.", -ham,"Sure, whenever you show the fuck up >:(", -ham,Sitting in mu waiting for everyone to get out of my suite so I can take a shower, -ham,Oh that was a forwarded message. I thought you send that to me, -ham,The basket's gettin full so I might be by tonight, -ham,I don't think he has spatula hands!, -ham,"Cant believe i said so many things to you this morning when all i really wanted to say was good morning, i love you! Have a beautiful morning. See you in the library later.", -ham,"She said,'' do u mind if I go into the bedroom for a minute ? '' ''OK'', I sed in a sexy mood. She came out 5 minuts latr wid a cake...n My Wife,", -ham,The Xmas story is peace.. The Xmas msg is love.. The Xmas miracle is jesus.. Hav a blessed month ahead & wish U Merry Xmas..., -ham,Thanks for sending this mental ability question.., -ham,Yar lor actually we quite fast... Cos da ge slow wat... Haha..., -ham,"Awesome, plan to get here any time after like <#> , I'll text you details in a wee bit", -ham,I'm putting it on now. It should be ready for <TIME> , -ham,"Hey, a guy I know is breathing down my neck to get him some bud, anyway you'd be able to get a half track to usf tonight?", -ham,"I dun thk i'll quit yet... Hmmm, can go jazz ? Yogasana oso can... We can go meet em after our lessons den... ", -ham,Lol no. U can trust me., -ham,What do u want when i come back?.a beautiful necklace as a token of my heart for you.thats what i will give but ONLY to MY WIFE OF MY LIKING.BE THAT AND SEE..NO ONE can give you that.dont call me.i will wait till i come., -ham,Shall i send that exe to your mail id., -ham,Wat u doing there?, -ham,Sent me ur email id soon, -ham,Thanks for your message. I really appreciate your sacrifice. I'm not sure of the process of direct pay but will find out on my way back from the test tomorrow. I'm in class now. Do have a wonderful day., -ham,Ard 4 lor..., -ham,Me too! Have a lovely night xxx, -ham,Hurry home. Soup is DONE!, -ham,Wishing you a beautiful day. Each moment revealing even more things to keep you smiling. Do enjoy it., -ham,Good night my dear.. Sleepwell&Take care, -ham,Then u going ikea str aft dat?, -ham,"GOD ASKED, \What is forgiveness?\"" A little child gave lovely reply", -ham,Just wait till end of march when el nino gets himself. Oh., -ham,See? I thought it all through, -ham,Been running but only managed 5 minutes and then needed oxygen! Might have to resort to the roller option!, -ham,Try neva mate!!, -ham,I ain't answerin no phone at what is actually a pretty reasonable hour but I'm sleepy, -ham,Did either of you have any idea's? Do you know of anyplaces doing something?, -ham,Probably earlier than that if the station's where I think it is, -ham,Sad story of a Man - Last week was my b'day. My Wife did'nt wish me. My Parents forgot n so did my Kids . I went to work. Even my Colleagues did not wish., -ham,I didnt get anything da, -ham,"Nah can't help you there, I've never had an iphone", -ham,Dad says hurry the hell up, -ham,excellent. I spent <#> years in the Air Force. Iraq and afghanistan. I am stable and honest. do you like traveling?, -ham,R ?_ going 4 today's meeting?, -ham,"Wow ... I love you sooo much, you know ? I can barely stand it ! I wonder how your day goes and if you are well, my love ... I think of you and miss you", -ham,How much did ur hdd casing cost., -ham,Talk With Yourself Atleast Once In A Day...!!! Otherwise You Will Miss Your Best FRIEND In This WORLD...!!! -Shakespeare- SHESIL <#>, -ham,Ok i msg u b4 i leave my house., -ham,I'm really not up to it still tonight babe, -ham,And whenever you and i see we can still hook up too., -ham,Stupid.its not possible, -ham,"A Boy loved a gal. He propsd bt she didnt mind. He gv lv lttrs, Bt her frnds threw thm. Again d boy decided 2 aproach d gal , dt time a truck was speeding towards d gal. Wn it was about 2 hit d girl,d boy ran like hell n saved her. She asked 'hw cn u run so fast?' D boy replied \Boost is d secret of my energy\"" n instantly d girl shouted \""our energy\"" n Thy lived happily 2gthr drinking boost evrydy Moral of d story:- I hv free msgs:D;): gud ni8""", -ham,ALRITE, -ham,"K, wat s tht incident?", -ham,Gud mrng dear hav a nice day, -ham,Busy here. Trying to finish for new year. I am looking forward to finally meeting you..., -ham,Ummmmmaah Many many happy returns of d day my dear sweet heart.. HAPPY BIRTHDAY dear, -ham,"It???s ??6 to get in, is that ok?", -ham,Great! So what attracts you to the brothas?, -ham,He remains a bro amongst bros, -ham,Ok Chinese food on its way. When I get fat you're paying for my lipo., -ham,Raji..pls do me a favour. Pls convey my Birthday wishes to Nimya. Pls. Today is her birthday., -ham,Of course. I guess god's just got me on hold right now., -ham,"No! But we found a diff farm shop to buy some cheese. On way back now, can i call in?", -ham,You are not bothering me but you have to trust my answers. Pls., -ham,Kay... Since we are out already , -ham,Tell your friends what you plan to do on Valentines day @ <URL>, -ham,Your right! I'll make the appointment right now., -ham,I wnt to buy a BMW car urgently..its vry urgent.but hv a shortage of <#> Lacs.there is no source to arng dis amt. <#> lacs..thats my prob, -ham,Ugh fuck it I'm resubbing to eve, -ham,I surely dont forgot to come:)i will always be in touch in with you:-), -ham,Sent me de webadres for geting salary slip, -ham,Is fujitsu s series lifebook good?, -ham,Hi! You just spoke to MANEESHA V. We'd like to know if you were satisfied with the experience. Reply Toll Free with Yes or No., -ham,Everybody had fun this evening. Miss you., -ham,"\CAN I PLEASE COME UP NOW IMIN TOWN.DONTMATTER IF URGOIN OUTL8R U NO THECD ISV.IMPORTANT TOME 4 2MORO\""""", -ham,"We know TAJ MAHAL as symbol of love. But the other lesser known facts 1. Mumtaz was Shahjahan's 4th wife, out of his 7 wifes. 2. Shahjahan killed Mumtaz's husband to marry her. 3. Mumtaz died in her <#> th delivery. 4. He then married Mumtaz's sister. Question arises where the Hell is the LOVE?:-| -The Great Hari-", -ham,?? all write or wat.., -ham,I know you mood off today, -ham,V skint too but fancied few bevies.waz gona go meet &othrs in spoon but jst bin watchng planet earth&sofa is v comfey; If i dont make it hav gd night, -ham,Squeeeeeze!! This is christmas hug.. If u lik my frndshp den hug me back.. If u get 3 u r cute:) 6 u r luvd:* 9 u r so lucky;) None? People hate u:, -ham,Yes.he have good crickiting mind, -ham,"8 at the latest, g's still there if you can scrounge up some ammo and want to give the new ak a try", -ham,Your board is working fine. The issue of overheating is also reslove. But still software inst is pending. I will come around 8'o clock., -ham,Forgot to tell ?_ smth.. Can ?_ like number the sections so that it's clearer.., -ham,How u doin baby girl ?? hope u are okay every time I call ure phone is off! I miss u get in touch, -ham,"The guy at the car shop who was flirting with me got my phone number from the paperwork and called and texted me. I'm nervous because of course now he may have my address. Should i call his boss and tell him, knowing this may get him fired?", -ham,"Okay. No no, just shining on. That was meant to be signing, but that sounds better.", -ham,?? come lt 25 n pass to me lar, -ham,Friends that u can stay on fb chat with, -ham,I am not having her number sir, -ham,"Total disappointment, when I texted you was the craziest shit got :(", -ham,No that just means you have a fat head, -ham,I probably won't eat at all today. I think I'm gonna pop. How was your weekend? Did u miss me?, -ham,Are you driving or training?, -ham,?? give me some time to walk there., -ham,"chile, please! It's only a <DECIMAL> hour drive for me. I come down all the time and will be subletting feb-april for audition season.", -ham,"I know you are thinkin malaria. But relax, children cant handle malaria. She would have been worse and its gastroenteritis. If she takes enough to replace her loss her temp will reduce. And if you give her malaria meds now she will just vomit. Its a self limiting illness she has which means in a few days it will completely stop", -ham,Yo you guys ever figure out how much we need for alcohol? Jay and I are trying to figure out how much we can safely spend on weed, -ham,K.i did't see you.:)k:)where are you now?, -ham,You flippin your shit yet?, -ham,Text her. If she doesnt reply let me know so i can have her log in, -ham,E admin building there? I might b slightly earlier... I'll call u when i'm reaching..., -ham,What's up my own oga. Left my phone at home and just saw ur messages. Hope you are good. Have a great weekend., -ham,Wake me up at <#> am morning:), -ham,Y so late but i need to go n get da laptop..., -ham,I REALLY NEED 2 KISS U I MISS U MY BABY FROM UR BABY 4EVA, -ham,Waiting in e car 4 my mum lor. U leh? Reach home already?, -ham,Do u ever get a song stuck in your head for no reason and it won't go away til u listen to it like 5 times?, -ham,"Ever green quote ever told by Jerry in cartoon \A Person Who Irritates u Always Is the one Who Loves u Vry Much But Fails to Express It...!..!! :-) :-) gud nyt""", -ham,He's really into skateboarding now despite the fact that he gets thrown off of it and winds up with bandages and shit all over his arms every five minutes, -ham,I will be outside office take all from there, -ham,It didnt work again oh. Ok goodnight then. I.ll fix and have it ready by the time you wake up. You are very dearly missed have a good night sleep., -ham,"Yep, at derek's house now, see you Sunday <3", -ham,"I???ll leave around four, ok?", -ham,It's justbeen overa week since we broke up and already our brains are going to mush!, -ham,Cps is causing the outages to conserve energy., -ham,"Good afternoon, my love. How goes your day ? What are you up to ? I woke early and am online waiting for you ... Hmmm ... Italian boy is online I see . *grins*", -ham,"Poyyarikatur,kolathupalayam,unjalur post,erode dis, <#> .", -ham,Great escape. I fancy the bridge but needs her lager. See you tomo , -ham,Mm have some kanji dont eat anything heavy ok, -ham,I thought slide is enough., -ham,"Why is that, princess? I bet the brothas are all chasing you!", -ham,Well i know Z will take care of me. So no worries., -ham,U still havent got urself a jacket ah?, -ham,Any way where are you and what doing., -ham,Good morning princess! Happy New Year!, -ham,"Me not waking up until 4 in the afternoon, sup", -ham,"He will, you guys close?", -ham,"Me, i dont know again oh", -ham,?? still got lessons? ?? in sch?, -ham,Dear good morning now only i am up, -ham,\Hey sorry I didntgive ya a a bellearlier hunny, -ham,have got * few things to do. may be in * pub later., -ham,Do u hav any frnd by name ashwini in ur college?, -ham,Same as u... Dun wan... Y u dun like me already ah... Wat u doing now? Still eating?, -ham,No I'm in the same boat. Still here at my moms. Check me out on yo. I'm half naked., -ham,That's good. Lets thank God. Please complete the drug. Have lots of water. And have a beautiful day., -ham,What makes you most happy?, -ham,I wish u were here. I feel so alone, -ham,Okay lor... Wah... like that def they wont let us go... Haha... What did they say in the terms and conditions?, -ham,"I'm in a meeting, call me later at", -ham,Pls come quick cant bare this., -ham,Sorry. You never hear unless you book it. One was kinda a joke--thet were really looking for skinny white girls. The other was one line--you can only do so much on camera with that. Something like that they're casting on the look., -ham,"Yeah sure, give me a couple minutes to track down my wallet", -ham,Yes I posted a couple of pics on fb. There's still snow outside too. I'm just waking up :), -ham,Be sure to check your yahoo email. We sent photos yesterday, -ham,No drama Pls.i have had enough from you and family while i am struggling in the hot sun in a strange place.No reason why there should be an ego of not going 'IF NOT INVITED' when actually its necessity to go.wait for very serious reppurcussions., -ham,Where wuld I be without my baby? The thought alone mite break me and I don??t wanna go crazy but everyboy needs his lady xxxxxxxx, -ham,How much u trying to get?, -ham,Gokila is talking with you aha:), -ham,"As I entered my cabin my PA said, '' Happy B'day Boss !!''. I felt special. She askd me 4 lunch. After lunch she invited me to her apartment. We went there.", -ham,MY NEW YEARS EVE WAS OK. I WENT TO A PARTY WITH MY BOYFRIEND. WHO IS THIS SI THEN HEY, -ham,Que pases un buen tiempo or something like that, -ham,Uncle boye. I need movies oh. Guide me. Plus you know torrents are not particularly legal here. And the system is slowing down. What should i do. Have a gr8 day. Plus have you started cos i dont meet you online. How was the honey moon., -ham,"Anyway I don't think I can secure anything up here, lemme know if you want me to drive down south and chill", -ham,"Hello, my boytoy! I made it home and my constant thought is of you, my love. I hope your having a nice visit but I can't wait till you come home to me ...*kiss*", -ham,Great. P diddy is my neighbor and comes for toothpaste every morning, -ham,am up to my eyes in philosophy, -ham,Are you available for soiree on June 3rd?, -ham,?? only send me the contents page..., -ham,Hey are you angry with me. Reply me dr., -ham,I'm in office now da:)where are you?, -ham,Now thats going to ruin your thesis!, -ham,Got it! It looks scrumptious... daddy wants to eat you all night long!, -ham,Do you like Italian food?, -ham,Wat makes u thk i'll fall down. But actually i thk i'm quite prone 2 falls. Lucky my dad at home i ask him come n fetch me already., -ham,How long does it take to get it., -ham,"\Pete can you please ring meive hardly gotany credit\""""", -ham,"No, I decided that only people who care about stuff vote and caring about stuff is for losers", -ham,I wont. So wat's wit the guys, -ham,"Storming msg: Wen u lift d phne, u say \HELLO\"" Do u knw wt is d real meaning of HELLO?? . . . It's d name of a girl..! . . . Yes.. And u knw who is dat girl?? \""Margaret Hello\"" She is d girlfrnd f Grahmbell who invnted telphone... . . . . Moral:One can 4get d name of a person", -ham,Ok can..., -ham,"Oh yes, why is it like torture watching england?", -ham,Jesus armand really is trying to tell everybody he can find, -ham,PLEASSSSSSSEEEEEE TEL ME V AVENT DONE SPORTSx, -ham,I called and said all to him:)then he have to choose this future., -ham,Yeah you should. I think you can use your gt atm now to register. Not sure but if there's anyway i can help let me know. But when you do be sure you are ready., -ham,Ok i also wan 2 watch e 9 pm show..., -ham,?? v ma fan..., -ham,Sent me ur email id soon, -ham,I dont thnk its a wrong calling between us, -ham,Omg it could snow here tonite!, -ham,Becoz its <#> jan whn al the post ofice is in holiday so she cn go fr the post ofice...got it duffer, -ham,Prabha..i'm soryda..realy..frm heart i'm sory, -ham,:-) :-), -ham,2mro i am not coming to gym machan. Goodnight., -ham,Xy trying smth now. U eat already? We havent..., -ham,If you're not in my car in an hour and a half I'm going apeshit, -ham,Did u got that persons story, -ham,"I can't right this second, gotta hit people up first", -ham,Yup... I havent been there before... You want to go for the yoga? I can call up to book , -ham,I dont know exactly could you ask chechi., -ham,Infact happy new year. How are you where are you when are we seeing, -ham,"Hi. Hope ur day * good! Back from walk, table booked for half eight. Let me know when ur coming over.", -ham,My sister got placed in birla soft da:-), -ham,Well she's in for a big surprise!, -ham,WHEN THE FIRST STRIKE IS A RED ONE. THE BIRD + ANTELOPE BEGIN TOPLAY IN THE FIELDOF SELFINDEPENDENCE BELIEVE THIS + THE FLOWER OF CONTENTION WILL GROW.RANDOM!, -ham,We live in the next <#> mins, -ham,Did u turn on the heater? The heater was on and set to <#> degrees., -ham,"My painful personal thought- \I always try to keep everybody happy all the time. But nobody recognises me when i am alone\""""", -ham,Thank god they are in bed!, -ham,Many more happy returns of the day. I wish you happy birthday., -ham,I taught that Ranjith sir called me. So only i sms like that. Becaus hes verifying about project. Prabu told today so only pa dont mistake me.., -ham,This girl does not stay in bed. This girl doesn't need recovery time. Id rather pass out while having fun then be cooped up in bed, -ham,dont make ne plans for nxt wknd coz she wants us to come down then ok, -ham,She left it very vague. She just said she would inform the person in accounting about the delayed rent and that i should discuss with the housing agency about my renting another place. But checking online now and all places around usc are <#> and up, -ham,If I die I want u to have all my stuffs., -ham,I'll text you when I drop x off, -ham,Okay lor... Will they still let us go a not ah? Coz they will not know until later. We drop our cards into the box right?, -ham,Same. Wana plan a trip sometme then, -ham,No break time one... How... I come out n get my stuff fr ?_?, -ham,Let Ur Heart Be Ur Compass Ur Mind Ur Map Ur Soul Ur Guide And U Will Never loose in world....gnun - Sent via WAY2SMS.COM, -ham,Lul im gettin some juicy gossip at the hospital. Two nurses are talking about how fat they are gettin. And one thinks shes obese. Oyea., -ham,"Storming msg: Wen u lift d phne, u say \HELLO\"" Do u knw wt is d real meaning of HELLO?? . . . It's d name of a girl..! . . . Yes.. And u knw who is dat girl?? \""Margaret Hello\"" She is d girlfrnd f Grahmbell who invnted telphone... . . . . Moral:One can 4get d name of a person", -ham,Whatsup there. Dont u want to sleep, -ham,See the forwarding message for proof, -ham,Yes. that will be fine. Love you. Be safe., -ham,Am only searching for good dual sim mobile pa., -ham,I don't know jack shit about anything or i'd say/ask something helpful but if you want you can pretend that I did and just text me whatever in response to the hypotheticalhuagauahahuagahyuhagga, -ham,Beerage?, -ham,Ha! I wouldn't say that I just didn't read anything into way u seemed. I don't like 2 be judgemental....i save that for fridays in the pub!, -ham,"So many people seems to be special at first sight, But only very few will remain special to you till your last sight.. Maintain them till life ends.. Sh!jas", -ham,You can never do NOTHING, -ham,Then just eat a shit and wait for ur monkey face bitch.......... U asshole.................., -ham,Yun buying... But school got offer 2000 plus only..., -ham,"Evening * v good if somewhat event laden. Will fill you in, don't you worry ??_ Head * ok but throat * wrecked. See you at six then!", -ham,Sleeping nt feeling well, -ham,Okie... Thanx..., -ham,I asked sen to come chennai and search for job., -ham,You call him and tell now infront of them. Call him now., -ham,This is ur face test ( 1 2 3 4 5 6 7 8 9 <#> ) select any number i will tell ur face astrology.... am waiting. quick reply..., -ham,"I got arrested for possession at, I shit you not, <TIME> pm", -ham,Teach me apps da. When you come to college., -ham,"Say this slowly.? GOD,I LOVE YOU & I NEED YOU,CLEAN MY HEART WITH YOUR BLOOD.Send this to Ten special people & u c miracle tomorrow, do it,pls,pls do it...", -ham,Dude we should go sup again, -ham,"So check your errors and if you had difficulties, do correction.", -ham,He's an adult and would learn from the experience. There's no real danger. I just dont like peeps using drugs they dont need. But no comment, -ham,What Today-sunday..sunday is holiday..so no work.., -ham,He needs to stop going to bed and make with the fucking dealing, -ham,"The <#> g that i saw a few days ago, the guy wants sell wifi only for <#> and with 3g for <#> . That's why i blanked him.", -ham,"As I entered my cabin my PA said, '' Happy B'day Boss !!''. I felt special. She askd me 4 lunch. After lunch she invited me to her apartment. We went there.", -ham,"Sorry, I'll call later", -ham,Rats. Hey did u ever vote for the next themes?, -ham,I only haf msn. It's yijue@hotmail.com, -ham,Yup, -ham,Wat r u doing?, -ham,Hurt me... Tease me... Make me cry... But in the end of my life when i die plz keep one rose on my grave and say STUPID I MISS U.. HAVE A NICE DAY BSLVYL, -ham,Hey now am free you can call me., -ham,"Nice. Wait...should you be texting right now? I'm not gonna pay your ticket, ya know!", -ham,"Oh... Haha... Den we shld had went today too... Gee, nvm la... Kaiez, i dun mind goin jazz oso... Scared hiphop open cant catch up... ", -ham,Hi darlin im on helens fone im gonna b up the princes 2 nite please come up tb love Kate, -ham,Lol I know! Hey someone did a great inpersonation of flea on the forums. I love it!, -ham,I want <#> rs da:)do you have it?, -ham,My stomach has been thru so much trauma I swear I just can't eat. I better lose weight., -ham,How are you with moneY...as in to you...money aint a thing....how are you sha!, -ham,Well thats nice. Too bad i cant eat it, -ham,Hey next sun 1030 there's a basic yoga course... at bugis... We can go for that... Pilates intro next sat.... Tell me what time you r free, -ham,Good evening! this is roger. How are you?, -ham,Probably money worries. Things are coming due and i have several outstanding invoices for work i did two and three months ago., -ham,Oic cos me n my sis got no lunch today my dad went out... So dunno whether 2 eat in sch or wat..., -ham,"Hmmm.... Mayb can try e shoppin area one, but forgot e name of hotel...", -ham,Short But Cute : \ Be a good person , -ham,"Just dropped em off, omw back now", -ham,What time is ur flight tmr?, -ham,Ambrith..madurai..met u in arun dha marrge..remembr?, -ham,"Sorry, I'll call later ok bye", -ham,Lol you won't feel bad when I use her money to take you out to a steak dinner =D, -ham,Is there coming friday is leave for pongal?do you get any news from your work place., -ham,HCL chennai requires FRESHERS for voice process.Excellent english needed.Salary upto <#> .Call Ms.Suman <#> for Telephonic interview -via Indyarocks.com, -ham,LOL what happens in Vegas stays in vegas, -ham,I'm on the bus. Love you, -ham,"I do know what u mean, is the king of not havin credit! I'm goin2bed now. Night night sweet! Only1more sleep! ", -ham,"Hello baby, did you get back to your mom's ? Are you setting up the computer now ? Filling your belly ? How goes it loverboy ? I miss you already ... *sighs*", -ham,If u dun drive then how i go 2 sch., -ham,"Honey, can you pls find out how much they sell Predicte in Nigeria. And how many times can it be used. Its very important to have a reply before monday", -ham,But i'm really really broke oh. No amount is too small even <#> , -ham,Hi mom we might be back later than <#> , -ham,Alex says he's not ok with you not being ok with it, -ham,I'll pick you up at about 5.15pm to go to taunton if you still want to come., -ham,"Carlos is down but I have to pick it up from him, so I'll swing by usf in a little bit", -ham,Den wat will e schedule b lk on sun?, -ham,Just come home. I don't want u to be miserable, -ham,Simply sitting and watching match in office.., -ham,"Aight that'll work, thanks", -ham,"Hi elaine, is today's meeting confirmed?", -ham,"I can't keep going through this. It was never my intention to run you out, but if you choose to do that rather than keep the room clean so *I* don't have to say no to visitors, then maybe that's the best choice. Yes, I wanted you to be embarassed, so maybe you'd feel for once how I feel when i have a friend who wants to drop buy and i have to say no, as happened this morning. I've tried everything. I don't know what else to do.", -ham,Okie ?_ wan meet at bishan? Cos me at bishan now. I'm not driving today., -ham,Smile in Pleasure Smile in Pain Smile when trouble pours like Rain Smile when sum1 Hurts U Smile becoz SOMEONE still Loves to see u Smiling!!, -ham,"Not really dude, have no friends i'm afraid :(", -ham,"Sorry, I'll call later", -ham,No:-)i got rumour that you going to buy apartment in chennai:-), -ham,What time. I???m out until prob 3 or so, -ham,No probs hon! How u doinat the mo?, -ham,Thanks for being there for me just to talk to on saturday. You are very dear to me. I cherish having you as a brother and role model., -ham,He is there. You call and meet him, -ham,* Was thinking about chuckin ur red green n black trainners 2 save carryin them bac on train, -ham,Hi. I'm always online on yahoo and would like to chat with you someday, -ham,Hey gals.. Anyone of u going down to e driving centre tmr?, -ham,HIYA STU WOT U UP 2.IM IN SO MUCH TRUBLE AT HOME AT MOMENT EVONE HATES ME EVEN U! WOT THE HELL AV I DONE NOW? Y WONT U JUST TELL ME TEXT BCK PLEASE LUV DAN , -ham,"Ask g or iouri, I've told the story like ten times already", -ham,Congrats kano..whr s the treat maga?, -ham,So i'm doing a list of buyers., -ham,Wow v v impressed. Have funs shopping!, -ham,Hahaha..use your brain dear, -ham,"Hi. Wk been ok - on hols now! Yes on for a bit of a run. Forgot that i have hairdressers appointment at four so need to get home n shower beforehand. Does that cause prob for u?\"" ham""", -ham,Wait . I will msg after <#> min., -ham,I think just yourself ??_Thanks and see you tomo, -ham,How. Its a little difficult but its a simple way to enter this place, -ham,Discussed with your mother ah?, -ham,Hey do you want anything to buy:), -ham,K.k:)apo k.good movie., -ham,Are you willing to go for aptitude class., -ham,An excellent thought by a misundrstud frnd: I knw u hate me bt the day wen u'll knw the truth u'll hate urself:-( Gn:-), -ham,May i call You later Pls, -ham,"That means you got an A in epi, she.s fine. She.s here now.", -ham,I'm reaching home in 5 min., -ham,Pls send me the correct name da., -ham,Alright i have a new goal now, -ham,So why didnt you holla?, -ham,Aiyah sorry lor... I watch tv watch until i forgot 2 check my phone., -ham,Just re read it and I have no shame but tell me how he takes it and if he runs I will blame u 4 ever!! Not really 4 ever just a long time , -ham,Now got tv 2 watch meh? U no work today?, -ham,Just sleeping..and surfing, -ham,Imagine Life WITHOUT ME... see.. How fast u are searching me?Don't worry.. l'm always there To disturb U.. Goodnoon..:), -ham,I have had two more letters from . I will copy them for you cos one has a message for you. Speak soon, -ham,No but the bluray player can, -ham,Purity of friendship between two is not about smiling after reading the forwarded message..Its about smiling just by seeing the name. Gud evng, -ham,Ard 530 like dat lor. We juz meet in mrt station then ?_ dun haf to come out., -ham,Hi dude hw r u da realy mising u today, -ham,"MOON has come to color your dreams, STARS to make them musical and my SMS to give you warm and Peaceful Sleep. Good Night", -ham,How's ur paper?, -ham,Da my birthdate in certificate is in april but real date is today. But dont publish it. I shall give you a special treat if you keep the secret. Any way thanks for the wishes, -ham,"Dear,Me at cherthala.in case u r coming cochin pls call bfore u start.i shall also reach accordingly.or tell me which day u r coming.tmorow i am engaged ans its holiday.", -ham,Feel Yourself That You Are Always Happy.. Slowly It Becomes Your Habit & Finally It Becomes Part Of Your Life.. Follow It.. Happy Morning & Have A Happy Day:), -ham,"Depends on quality. If you want the type i sent boye, faded glory, then about 6. If you want ralphs maybe 2", -ham,Ok i found dis pierre cardin one which looks normal costs 20 its on sale., -ham,K... Must book a not huh? so going for yoga basic on sunday?, -ham,Love has one law; Make happy the person you love. In the same way friendship has one law; Never make ur friend feel alone until you are alive.... Gud night, -ham,Reckon need to be in town by eightish to walk from * carpark., -ham,"Ok, be careful ! Don't text and drive !", -ham,This is my number by vivek.., -ham,Good Morning my Dear........... Have a great & successful day., -ham,My slave! I want you to take 2 or 3 pictures of yourself today in bright light on your cell phone! Bright light!, -ham,on a Tuesday night r u 4 real, -ham,I dont know what to do to come out of this so only am ask questions like this dont mistake me., -ham,I to am looking forward to all the sex cuddling.. Only two more sleeps , -ham,We left already we at orchard now., -ham,Yup n her fren lor. I'm meeting my fren at 730., -ham,"Beautiful Truth against Gravity.. Read carefully: \Our heart feels light when someone is in it.. But it feels very heavy when someone leaves it..\"" GOODMORNING""", -ham,Tmrw. Im finishing 9 doors, -ham,Nobody names their penis a girls name this story doesn't add up at all, -ham,Ok k..sry i knw 2 siva..tats y i askd.., -ham,"Sorry, I'll call later", -ham,Sorry i din lock my keypad., -ham,"Omw back to tampa from west palm, you hear what happened?", -ham,"Mmmmm ... It was sooooo good to wake to your words this morning, my Love!! Mmmm fuck ... I love you too, my Lion ... *devouring kiss from across the sea*", -ham,Oh god. I'm gonna Google nearby cliffs now., -ham,No screaming means shouting.., -ham,Thanks for looking out for me. I really appreciate., -ham,No i am not having not any movies in my laptop, -ham,Have you bookedthe hut? And also your time off? How are you by the way?, -ham,Dont talk to him ever ok its my word., -ham,Should I be stalking u?, -ham,If you still havent collected the dough pls let me know so i can go to the place i sent it to get the control number, -ham,Hi my email address has changed now it is , -ham,Weightloss! No more girl friends. Make loads of money on ebay or something. And give thanks to God., -ham,Lol ok ill try to send. Be warned Sprint is dead slow. You'll prolly get it tomorrow, -ham,Hello- thanx for taking that call. I got a job! Starts on monday!, -ham,Dont you have message offer, -ham,Your opinion about me? 1. Over 2. Jada 3. Kusruthi 4. Lovable 5. Silent 6. Spl character 7. Not matured 8. Stylish 9. Simple Pls reply.., -ham,"Yeah, I'll leave in a couple minutes & let you know when I get to mu", -ham,This pay is <DECIMAL> lakhs:), -ham,"Sorry, I can't help you on this.", -ham,"Mostly sports type..lyk footbl,crckt..", -ham,If you ask her or she say any please message., -ham,Where in abj are you serving. Are you staying with dad or alone., -ham,Why are u up so early?, -ham,"Good afternoon, my love ! Any job prospects ? Are you missing me ? What do you do ? Are you being lazy and bleak, hmmm ? Or happy and filled with my love ?", -ham,"Sorry, I can't text & drive coherently, see you in twenty", -ham,Lol or I could just starve and lose a pound by the end of the day., -ham,Err... Cud do. I'm going to at 8pm. I haven't got a way to contact him until then., -ham,Ummmmmaah Many many happy returns of d day my dear sweet heart.. HAPPY BIRTHDAY dear, -ham,CERI U REBEL! SWEET DREAMZ ME LITTLE BUDDY!! C YA 2MORO! WHO NEEDS BLOKES, -ham,Re your call; You didn't see my facebook huh?, -ham,U still going to the mall?, -ham,S.s:)i thinl role is like sachin.just standing. Others have to hit., -ham,"My friend just got here and says he's upping his order by a few grams (he's got $ <#> ), when can you get here?", -ham,Oh yeah! And my diet just flew out the window, -ham,"Thanks da thangam, i feel very very happy dear. I also miss you da.", -ham,"Didn't try, g and I decided not to head out", -ham,"Bloody hell, cant believe you forgot my surname Mr . Ill give u a clue, its spanish and begins with m... ", -ham,Jason says it's cool if we pick some up from his place in like an hour, -ham,Dont know you bring some food, -ham,I want kfc its Tuesday. Only buy 2 meals ONLY 2. No gravy. Only 2 Mark. 2!, -ham,I'm watching lotr w my sis dis aft. So u wan 2 meet me 4 dinner at nite a not?, -ham,I wont get concentration dear you know you are my mind and everything :-), -ham,Are you willing to go for apps class., -ham,Havent., -ham,"* Was really good to see you the other day dudette, been missing you!", -ham,Or u ask they all if next sat can a not. If all of them can make it then i'm ok lor., -ham,I liked the new mobile, -ham,Thanx a lot 4 ur help!, -ham,Was the actual exam harder than NBME, -ham,I dun believe u. I thk u told him., -ham,Happy New Year Princess!, -ham,Howz pain.it will come down today.do as i said ystrday.ice and medicine., -ham,"[??_] anyway, many good evenings to u! s", -ham,I don't quite know what to do. I still can't get hold of anyone. I cud pick you up bout 7.30pm and we can see if they're in the pub?, -ham,Got meh... When?, -ham,No current and food here. I am alone also, -ham,No da if you run that it activate the full version da., -ham,Thanks for ve lovely wisheds. You rock, -ham,Have you finished work yet? :), -ham,Are we doing the norm tomorrow? I finish just a 4.15 cos of st tests. Need to sort library stuff out at some point tomo - got letter from today - access til end march so i better get move on!, -ham,Painful words- \I thought being Happy was the most toughest thing on Earth... But, -ham,I know! Grumpy old people. My mom was like you better not be lying. Then again I am always the one to play jokes..., -ham,"Sir, I need AXIS BANK account no and bank address.", -ham,"\NONE!NOWHERE IKNO DOESDISCOUNT!SHITINNIT\""""", -ham,The length is e same but e top shorter n i got a fringe now. I thk i'm not going liao. Too lazy. Dun wan 2 distract u also., -ham,Gud mrng dear hav a nice day, -ham,Please attend the phone:), -ham,"Sorry, I'll call later", -ham,"Maybe westshore or hyde park village, the place near my house?", -ham,"Sorry, my battery died, I can come by but I'm only getting a gram for now, where's your place?", -ham,Tomarrow i want to got to court. At <DECIMAL> . So you come to bus stand at 9., -ham,Sounds like there could be a lot of time spent in that chastity device boy ... *grins* ... Or take your beatings like a good dog. Going to lounge in a nice long bath now ?, -ham,Wat makes some people dearer is not just de happiness dat u feel when u meet them but de pain u feel when u miss dem!!!, -ham,Moji i love you more than words. Have a rich day, -ham,Later i guess. I needa do mcat study too., -ham,He says he'll give me a call when his friend's got the money but that he's definitely buying before the end of the week, -ham,New car and house for my parents.:)i have only new job in hand:), -ham,"Like <#> , same question", -ham,"Hi the way I was with u 2day, is the normal way&this is the real me. UR unique&I hope I know u 4 the rest of mylife. Hope u find wot was lost.", -ham,K..then come wenever u lik to come and also tel vikky to come by getting free time..:-), -ham,Cold. Dont be sad dear, -ham,Yes i thought so. Thanks., -ham,There are no other charges after transfer charges and you can withdraw anyhow you like, -ham,Aah bless! How's your arm?, -ham,The battery is for mr adewale my uncle. Aka Egbon, -ham,Send me the new number, -ham,I am late. I will be there at, -ham,"It's ok, at least armand's still around", -ham,"Multiply the numbers independently and count decimal points then, for the division, push the decimal places like i showed you.", -ham,I will be gentle princess! We will make sweet gentle love..., -ham,Many times we lose our best ones bcoz we are , -ham,"Haha just kidding, papa needs drugs", -ham,All e best 4 ur driving tmr :-), -ham,"\What are youdoing later? Sar xxx\""""", -ham,Then she buying today? ?? no need to c meh..., -ham,Don no da:)whats you plan?, -ham,?? wait 4 me in sch i finish ard 5.., -ham,"Especially since i talk about boston all up in my personal statement, lol! I woulda changed that if i had realized it said nyc! It says boston now.", -ham,Hey sathya till now we dint meet not even a single time then how can i saw the situation sathya., -ham,Congratulations ore mo owo re wa. Enjoy it and i wish you many happy moments to and fro wherever you go, -ham,Should I head straight there or what, -ham,I'm aight. Wat's happening on your side., -ham,"I'm eatin now lor, but goin back to work soon... E mountain deer show huh... I watch b4 liao, very nice...", -ham,Just chill for another 6hrs. If you could sleep the pain is not a surgical emergency so see how it unfolds. Okay, -ham,How many licks does it take to get to the center of a tootsie pop?, -ham,"Ok. Can be later showing around 8-8:30 if you want + cld have drink before. Wld prefer not to spend money on nosh if you don't mind, as doing that nxt wk.", -ham,"Honey ? Sweetheart ? Darling ? Sexy buns ? Sugar plum ? Loverboy ? I miss you, boytoy ... *smacks your ass* Did you go to the gym too ?", -ham,Just now saw your message.it k da:), -ham,Congrats. That's great. I wanted to tell you not to tell me your score cos it might make me relax. But its motivating me so thanks for sharing, -ham,"Hi, Mobile no. <#> has added you in their contact list on www.fullonsms.com It s a great place to send free sms to people For more visit fullonsms.com", -ham,"I am in tirupur da, once you started from office call me.", -ham,"Japanese Proverb: If one Can do it, U too Can do it, If none Can do it,U must do it Indian version: If one Can do it, LET HIM DO it.. If none Can do it,LEAVE it!! And finally Kerala version: If one can do it, Stop him doing it.. If none can do it, Make a strike against it ...", -ham,Another month. I need chocolate weed and alcohol., -ham,Went to pay rent. So i had to go to the bank to authorise the payment., -ham,No..jst change tat only.., -ham,Hey come online! Use msn... We are all there, -ham,Ding me on ya break fassyole! Blacko from londn, -ham,A guy who gets used but is too dumb to realize it., -ham,"K, can I pick up another 8th when you're done?", -ham,"Text me when you get off, don't call, my phones having problems", -ham,No..its ful of song lyrics.., -ham,?? neva tell me how i noe... I'm not at home in da aft wat... , -ham,You intrepid duo you! Have a great time and see you both soon. , -ham,Only saturday and sunday holiday so its very difficult:), -ham,No I don't have cancer. Moms making a big deal out of a regular checkup aka pap smear, -ham,"Hmm, too many of them unfortunately... Pics obviously arent hot cakes. Its kinda fun tho", -ham,Ok i shall talk to him, -ham,"Do whatever you want. You know what the rules are. We had a talk earlier this week about what had to start happening, you showing responsibility. Yet, every week it's can i bend the rule this way? What about that way? Do whatever. I'm tired of having thia same argument with you every week. And a <#> movie DOESNT inlude the previews. You're still getting in after 1.", -ham,Dude ive been seeing a lotta corvettes lately, -ham,Hai priya are you right. What doctor said pa. Where are you., -ham,What is important is that you prevent dehydration by giving her enough fluids, -ham,"see, i knew giving you a break a few times woul lead to you always wanting to miss curfew. I was gonna gibe you 'til one, but a MIDNIGHT movie is not gonna get out til after 2. You need to come home. You need to getsleep and, if anything, you need to b studdying ear training.", -ham,Delhi and chennai still silent., -ham,Unless it's a situation where YOU GO GURL would be more appropriate, -ham,Still chance there. If you search hard you will get it..let have a try :), -ham,I think the other two still need to get cash but we can def be ready by 9, -ham,Hey you told your name to gautham ah?, -ham,I keep ten rs in my shelf:) buy two egg., -ham,"K, wait chikku..il send aftr <#> mins", -ham,We stopped to get ice cream and will go back after, -ham,Tomorrow i am not going to theatre. . . So i can come wherever u call me. . . Tell me where and when to come tomorrow, -ham,Did you show him and wot did he say or could u not c him 4 dust?, -ham,I didn't get the second half of that message, -ham,I am thinking of going down to reg for pract lessons.. Flung my advance.. Haha wat time u going?, -ham,"Just checked out, heading out to drop off my stuff now", -ham,Usually the body takes care of it buy making sure it doesnt progress. Can we pls continue this talk on saturday., -ham,"Yeah there's barely enough room for the two of us, x has too many fucking shoes. Sorry man, see you later", -ham,"Received, understood n acted upon!", -ham,Leave it de:-). Start Prepare for next:-).., -ham,Hey you still want to go for yogasana? Coz if we end at cine then can go bathe and hav the steam bath, -ham,How much are we getting?, -ham,Wow didn't think it was that common. I take it all back ur not a freak! Unless u chop it off:-), -ham,Yup next stop., -ham,Then u ask darren go n pick u lor... But i oso sian tmr haf 2 meet lect..., -ham,In other news after hassling me to get him weed for a week andres has no money. HAUGHAIGHGTUJHYGUJ, -ham,Yup having my lunch buffet now.. U eat already?, -ham,You are right. Meanwhile how's project twins comin up, -ham,Hello. Damn this christmas thing. I think i have decided to keep this mp3 that doesnt work., -ham,Hmm. Shall i bring a bottle of wine to keep us amused? Just joking! I'll still bring a bottle. Red or white? See you tomorrow, -ham,If you have belive me. Come to my home., -ham,"Oh, yes, I've just been a little under the weather so i've kind of been coccooning at home", -ham,Ew are you one of them?, -ham,And now electricity just went out fml., -ham,Hurry home u big butt. Hang up on your last caller if u have to. Food is done and I'm starving. Don't ask what I cooked., -ham,Mind blastin.. No more Tsunamis will occur from now on.. Rajnikant stopped swimming in Indian Ocean..:-D, -ham,He also knows about lunch menu only da. . I know, -ham,How will I creep on you now? ;_;, -ham,As per your request 'Melle Melle (Oru Minnaminunginte Nurungu Vettam)' has been set as your callertune for all Callers. Press *9 to copy your friends Callertune, -ham,Still at west coast... Haiz... ??'ll take forever to come back..., -ham,Yo dude guess who just got arrested the other day, -ham,on hen night. Going with a swing, -ham,"Geeeee ... Your internet is really bad today, eh ?", -ham,hanks lotsly!, -ham,"Once a fishrman woke early in d mrng. It was very dark. He waited a while & found a sack ful of stones. He strtd throwin thm in2 d sea 2 pass time. Atlast he had jus 1stone, sun rose up & he found out tht those r nt stones, those were diamonds. Moral:\Dont wake up early in d mrng'' GOOD night""", -ham,I'm thinking that chennai forgot to come for auction.., -ham,How is your schedule next week? I am out of town this weekend., -ham,"How long before you get reply, just defer admission til next semester", -ham,"And very importantly, all we discuss is between u and i only.", -ham,Some of them told accenture is not confirm. Is it true., -ham,Hey company elama po mudyadhu., -ham,You have got tallent but you are wasting., -ham,"I'm there and I can see you, but you can't see me ? Maybe you should reboot ym ? I seen the buzz", -ham,"Wen ur lovable bcums angry wid u, dnt take it seriously.. Coz being angry is d most childish n true way of showing deep affection, care n luv!.. kettoda manda... Have nice day da.", -ham,In life when you face choices Just toss a coin not becoz its settle the question But while the coin in the air U will know what your heart is hoping for. Gudni8, -ham,Ok. But i finish at 6., -ham,Most of the tiime when i don't let you hug me it's so i don't break into tears., -ham,Aiya we discuss later lar... Pick ?_ up at 4 is it?, -ham,"Haha figures, well I found the piece and priscilla's bowl", -ham,Dude just saw a parked car with its sunroof popped up. Sux, -ham,Juz now havent woke up so a bit blur blur... Can? Dad went out liao... I cant cum now oso..., -ham,All e best 4 ur exam later., -ham,"Sorry, I can't help you on this.", -ham,"Hurry up, I've been weed-deficient for like three days", -ham,Dear :-/ why you mood off. I cant drive so i brother to drive, -ham,Hi. Hope you had a good day. Have a better night., -ham,(You didn't hear it from me), -ham,NEFT Transaction with reference number <#> for Rs. <DECIMAL> has been credited to the beneficiary account on <#> at <TIME> : <#>, -ham,Ok lor... Sony ericsson salesman... I ask shuhui then she say quite gd 2 use so i considering..., -ham,Why do you ask princess?, -ham,Never try alone to take the weight of a tear that comes out of ur heart and falls through ur eyes... Always remember a STUPID FRIEND is here to share... BSLVYL, -ham,ALRITE SAM ITS NIC JUST CHECKIN THAT THIS IS UR NUMBER-SO IS IT?T.B*, -ham,But you were together so you should be thinkin about him, -ham,Yeah I'll try to scrounge something up, -ham,"Goodnight, sleep well da please take care pa. Please.", -ham,Ard 6 like dat lor., -ham,Are you in castor? You need to see something, -ham,Thinkin about someone is all good. No drugs for that, -ham,Oooh I got plenty of those!, -ham,Thanx..., -ham,"Sorry, I'll call later", -ham,I like to talk pa but am not able to. I dont know y., -ham,I might come to kerala for 2 days.so you can be prepared to take a leave once i finalise .dont plan any travel during my visit.need to finish urgent works., -ham,I'm home..., -ham,I called but no one pick up e phone. I ask both of them already they said ok., -ham,"Sez, hows u & de arab boy? Hope u r all good give my love 2 evry1 love ya eshxxxxxxxxxxx", -ham,Havent mus ask if u can 1st wat. Of meet 4 lunch den u n him meet can already lor. Or u wan 2 go ask da ge 1st then confirm w me asap?, -ham,Indeed and by the way it was either or - not both !, -ham,IM REALY SOZ IMAT MY MUMS 2NITE WHAT ABOUT 2MORO , -ham,Love you aathi..love u lot.., -ham,Huh? 6 also cannot? Then only how many mistakes?, -ham,I AM AT A PARTY WITH ALEX NICHOLS, -ham,"House-Maid is the murderer, coz the man was murdered on <#> th January.. As public holiday all govt.instituitions are closed,including post office..understand?", -ham,In which place do you want da., -ham,Hey i'm bored... So i'm thinking of u... So wat r u doing?, -ham,I got your back! Do you have any dislikes in bed?, -ham,So the sun is anti sleep medicine., -ham,"Den only weekdays got special price... Haiz... Cant eat liao... Cut nails oso muz wait until i finish drivin wat, lunch still muz eat wat... ", -ham,Where to get those?, -ham,\Hey j! r u feeling any better, -ham,"Oh, my love, it's soooo good to hear from you. Omg I missed you so much today. I'm sorry your having problems with the provider but thank you for tming me", -ham,I am waiting for your call sir., -ham,I cant wait to see you! How were the photos were useful? :), -ham,You see the requirements please, -ham,I also thk too fast... Xy suggest one not me. U dun wan it's ok. Going 2 rain leh where got gd., -ham,Oh ok.., -ham,"7 wonders in My WORLD 7th You 6th Ur style 5th Ur smile 4th Ur Personality 3rd Ur Nature 2nd Ur SMS and 1st \Ur Lovely Friendship\""... good morning dear""", -ham,Tomorrow i am not going to theatre. . . So i can come wherever u call me. . . Tell me where and when to come tomorrow, -ham,Daddy will take good care of you :), -ham,haha but no money leh... Later got to go for tuition... Haha and looking for empty slots for driving lessons, -ham,"I guess that's why you re worried. You must know that there's a way the body repairs itself. And i'm quite sure you shouldn't worry. We'll take it slow. First the tests, they will guide when your ovulation is then just relax. Nothing you've said is a reason to worry but i.ll keep on followin you up.", -ham,Package all your programs well, -ham,Btw regarding that we should really try to see if anyone else can be our 4th guy before we commit to a random dude, -ham,I think it's all still in my car, -ham,Yeah like if it goes like it did with my friends imma flip my shit in like half an hour, -ham,Shall i get my pouch?, -ham,"Hey... Thk we juz go accordin to wat we discussed yest lor, except no kb on sun... Cos there's nt much lesson to go if we attend kb on sat...", -ham,Hmm thinking lor..., -ham,I'll be at mu in like <#> seconds, -ham,Are you planning to come chennai?, -ham,Sac needs to carry on:), -ham,Thank u!, -ham,"Dont search love, let love find U. Thats why its called falling in love, bcoz U dont force yourself, U just fall and U know there is smeone to hold U... BSLVYL", -ham,He's just gonna worry for nothing. And he won't give you money its no use., -ham,K.k:)i'm going to tirunelvali this week to see my uncle ..i already spend the amount by taking dress .so only i want money.i will give it on feb 1, -ham,Mine here like all fr china then so noisy., -ham,"\ALRITE HUNNY!WOT U UP 2 2NITE? DIDNT END UP GOIN DOWN TOWN JUS DA PUB INSTEAD! JUS CHILLIN AT DA MO IN ME BEDROOM!LOVE JEN XXX.\""""", -ham,Dunno y u ask me., -ham,"Aiyo... U always c our ex one... I dunno abt mei, she haven reply... First time u reply so fast... Y so lucky not workin huh, got bao by ur sugardad ah...gee.. ", -ham,"I've not called you in a while. This is hoping it was l8r malaria and that you know that we miss you guys. I miss Bani big, so pls give her my love especially. Have a great day.", -ham,What you thinked about me. First time you saw me in class., -ham,Sweet heart how are you?, -ham,Hey pple...$700 or $900 for 5 nights...Excellent location wif breakfast hamper!!!, -ham,Eh den sat u book e kb liao huh..., -ham,Come aftr <DECIMAL> ..now i m cleaning the house, -ham,I cant pick the phone right now. Pls send a message, -ham,Then why you not responding, -ham,"Aight, I'll hit you up when I get some cash", -ham,I think i am disturbing her da, -ham,"Don't Think About \What u Have Got\"" Think About \""How to Use It That You Have Got\"" gooD ni8""", -ham,"Probably not, I'm almost out of gas and I get some cash tomorrow", -ham,Yeah confirmed for you staying at that weekend, -ham,:-) yeah! Lol. Luckily i didn't have a starring role like you!, -ham,No dear i do have free messages without any recharge. Hi hi hi, -ham,Oh. U must have taken your REAL Valentine out shopping first., -ham,Also remember to get dobby's bowl from your car, -ham,There generally isn't one. It's an uncountable noun - u in the dictionary. pieces of research?, -ham,Ok anyway no need to change with what you said, -ham,Apps class varaya elaya., -ham,Don know..wait i will check it., -ham,You got called a tool?, -ham,What * u wearing?, -ham,Do you know when dad will be back?, -ham,"She said,'' do u mind if I go into the bedroom for a minute ? '' ''OK'', I sed in a sexy mood. She came out 5 minuts latr wid a cake...n My Wife,", -ham,"Not yet chikku..k, then wat abt tht guy did he stopped irritating or msging to u..", -ham,In meeting da. I will call you, -ham,"My life Means a lot to me, Not because I love my life, But because I love the people in my life, The world calls them friends, I call them my World:-).. Ge:-)..", -ham,"Shit that is really shocking and scary, cant imagine for a second. Def up for night out. Do u think there is somewhere i could crash for night, save on taxi?", -ham,"Tunji, how's the queen? how are you doing. This is just wishing you a great day. Abiola.", -ham,Come to mahal bus stop.. <DECIMAL>, -ham,Tell them u have a headache and just want to use 1 hour of sick time., -ham,I cant pick the phone right now. Pls send a message, -ham,It means u could not keep ur words., -ham,Finish already... Yar they keep saying i mushy... I so embarrassed ok..., -ham,Oh:)as usual vijay film or its different?, -ham,Well then you have a great weekend!, -ham,Howz that persons story, -ham,I know she called me, -ham,"K give me a sec, breaking a <#> at cstore", -ham,"I can make it up there, squeezed <#> bucks out of my dad", -ham,"Hey , is * rite u put ??10 evey mnth is that all?", -ham,I think if he rule tamilnadu..then its very tough for our people., -ham,Oh... Kay... On sat right?, -ham,That's y u haf 2 keep me busy..., -ham,Tmr timin still da same wat cos i got lesson until 6..., -ham,O we cant see if we can join denis and mina? Or does denis want alone time, -ham,"Nt only for driving even for many reasons she is called BBD..thts it chikku, then hw abt dvg cold..heard tht vinobanagar violence hw is the condition..and hw ru ? Any problem?", -ham,Where's mummy's boy ? Is he being good or bad ? Is he being positive or negative ? Why is mummy being made to wait? Hmmmm?, -ham,I have 2 docs appointments next week.:/ I'm tired of them shoving stuff up me. Ugh why couldn't I have had a normal body?, -ham,"Every King Was Once A Crying Baby And Every Great Building Was Once A Map.. Not Imprtant Where U r TODAY, BUT Where U Wil Reach TOMORW. Gud ni8", -ham,?? ready then call me..., -ham,Good. No swimsuit allowed :), -ham,Am not working but am up to eyes in philosophy so will text u later when a bit more free for chat..., -ham,Hi:)cts employee how are you?, -ham,"I'm in a meeting, call me later at", -ham,Hey anyway i have to :-), -ham,What Today-sunday..sunday is holiday..so no work.., -ham,Hello darlin ive finished college now so txt me when u finish if u can love Kate xxx, -ham,Going on nothing great.bye, -ham,Don't fret. I'll buy the ovulation test strips and send them to you. You wont get them til like march. Can you send me your postal address.u'll be alright.Okay., -ham,Wait 2 min..stand at bus stop, -ham,Gibbs unsold.mike hussey, -ham,Book which lesson? then you msg me... I will call up after work or sth... I'm going to get specs. My membership is PX3748, -ham,Hey i will be late ah... Meet you at 945+, -ham,Havent planning to buy later. I check already lido only got 530 show in e afternoon. U finish work already?, -ham,Good Morning plz call me sir, -ham,"Oops, I'll let you know when my roommate's done", -ham,"Sorry, I'll call later", -ham,"Nope, I'm still in the market", -ham,"Probably not, still going over some stuff here", -ham,Still i have not checked it da. . ., -ham,Usually the person is unconscious that's in children but in adults they may just behave abnormally. I.ll call you now, -ham,Come to my home for one last time i wont do anything. Trust me., -ham,Or maybe my fat fingers just press all these buttons and it doesn't know what to do., -ham,"sorry brah, just finished the last of my exams, what up", -ham,R u in this continent?, -ham,Why de. You looking good only:-).., -ham,Hi! You just spoke to MANEESHA V. We'd like to know if you were satisfied with the experience. Reply Toll Free with Yes or No., -ham,"Lol you forgot it eh ? Yes, I'll bring it in babe", -ham,What does the dance river do?, -ham,I'm at bruce & fowler now but I'm in my mom's car so I can't park (long story), -ham,Are you coming to day for class., -ham,"Spoke with uncle john today. He strongly feels that you need to sacrifice to keep me here. He's going to call you. When he does, i beg you to just listen. Dont make any promises or make it clear things are not easy. And i need you to please let us work things out. As long as i keep expecting help, my creativity will be stifled so pls just keep him happy, no promises on your part.", -ham,Oh gei. That happend to me in tron. Maybe ill dl it in 3d when its out, -ham,Darren was saying dat if u meeting da ge den we dun meet 4 dinner. Cos later u leave xy will feel awkward. Den u meet him 4 lunch lor., -ham,I'm fine. Hope you are good. Do take care., -ham,"That's what I love to hear :V see you sundayish, then", -ham,"Goodmorning, Today i am late for <#> min.", -ham,"Usf I guess, might as well take 1 car", -ham,God's love has no limit. God's grace has no measure. God's power has no boundaries. May u have God's endless blessings always in ur life...!! Gud ni8, -ham,Kothi print out marandratha., -ham,Lol enjoy role playing much?, -ham,I don't run away frm u... I walk slowly & it kills me that u don't care enough to stop me..., -ham,Hey i booked the kb on sat already... what other lessons are we going for ah? Keep your sat night free we need to meet and confirm our lodging , -ham,Aiyar sorry lor forgot 2 tell u..., -ham,"Funny fact Nobody teaches volcanoes 2 erupt, tsunamis 2 arise, hurricanes 2 sway aroundn no 1 teaches hw 2 choose a wife Natural disasters just happens", -ham,I just cooked a rather nice salmon a la you, -ham,No b4 Thursday, -ham,Ok.ok ok..then..whats ur todays plan, -ham,Yar lor... Keep raining non stop... Or u wan 2 go elsewhere?, -ham,"Dear relieved of westonzoyland, all going to plan this end too!", -ham,Boo I'm on my way to my moms. She's making tortilla soup. Yummmm, -ham,Fine i miss you very much., -ham,Spending new years with my brother and his family. Lets plan to meet next week. Are you ready to be spoiled? :), -ham,No go. No openings for that room 'til after thanksgiving without an upcharge., -ham,No no:)this is kallis home ground.amla home town is durban:), -ham,I take it the post has come then! You must have 1000s of texts now! Happy reading. My one from wiv hello caroline at the end is my favourite. Bless him, -ham,Anyway i'm going shopping on my own now. Cos my sis not done yet. Dun disturb u liao., -ham,"Come round, it's . ", -ham,You lifted my hopes with the offer of money. I am in need. Especially when the end of the month approaches and it hurts my studying. Anyways have a gr8 weekend, -ham,Nope i'm not drivin... I neva develop da photos lei..., -ham,Good. Good job. I like entrepreneurs, -ham,But I'm on a diet. And I ate 1 too many slices of pizza yesterday. Ugh I'm ALWAYS on a diet., -ham,They are just making it easy to pay back. I have <#> yrs to say but i can pay back earlier. You get?, -ham,You've always been the brainy one., -ham,Well I might not come then..., -ham,You still around? I could use a half-8th, -ham,"Sun cant come to earth but send luv as rays. cloud cant come to river but send luv as rain. I cant come to meet U, but can send my care as msg to U. Gud evng", -ham,"Well the general price is <#> /oz, let me know if/when/how much you want", -ham,"I sent my scores to sophas and i had to do secondary application for a few schools. I think if you are thinking of applying, do a research on cost also. Contact joke ogunrinde, her school is one me the less expensive ones", -ham,I anything lor., -ham,Are you ok. What happen to behave like this, -ham,Howz that persons story, -ham,Ill call you evening ill some ideas., -ham,Lol! Nah wasn't too bad thanks. Its good to b home but its been quite a reality check. Hows ur day been? Did u do anything with website?, -ham,Sorry dude. Dont know how i forgot. Even after Dan reminded me. Sorry. Hope you guys had fun., -ham,Maybe?! Say hi to and find out if got his card. Great escape or wetherspoons? , -ham,"Sorry, I'll call later in meeting any thing related to trade please call Arul. <#> ", -ham,"Its ok, called mom instead have fun", -ham,He is a womdarfull actor, -ham,No let me do the math. Your not good at it., -ham,That one week leave i put know that time. Why., -ham,Thk some of em find wtc too far... Weiyi not goin... E rest i dunno yet... R ur goin 4 dinner den i might b able to join..., -ham,Loosu go to hospital. De dont let it careless., -ham,When ?_ login dat time... Dad fetching ?_ home now?, -ham,My uncles in Atlanta. Wish you guys a great semester., -ham,Aiyar hard 2 type. U later free then tell me then i call n scold n tell u., -ham,Eh u send wrongly lar..., -ham,i am seeking a lady in the street and a freak in the sheets. Is that you?, -ham,You still coming tonight?, -ham,Dude im no longer a pisces. Im an aquarius now., -ham,"It's cool, let me know before it kicks off around <#> , I'll be out and about all day", -ham,When i have stuff to sell i.ll tell you, -ham,At home by the way, -ham,My sis is catching e show in e afternoon so i'm not watching w her. So c u wan 2 watch today or tmr lor., -ham,Whats the staff name who is taking class for us?, -ham,Aiyah u did ok already lar. E nydc at wheellock?, -ham,Why i come in between you people, -ham,"Hey. What happened? U switch off ur cell d whole day. This isnt good. Now if u do care, give me a call tomorrow.", -ham,Its sunny in california. The weather's just cool, -ham,Take care and sleep well.you need to learn to change in life.you only need to get CONVINCED on that.i will wait but no more conversations between us.GET CONVINCED by that time.Your family is over for you in many senses.respect them but not overemphasise.or u have no role in my life., -ham,Hi here. have birth at on the to at 8lb 7oz. Mother and baby doing brilliantly., -ham,"Hey babe, my friend had to cancel, still up for a visit ?", -ham,twenty past five he said will this train have been to durham already or not coz i am in a reserved seat, -ham,As in i want custom officer discount oh., -ham,Have you laid your airtel line to rest?, -ham,* Am on a train back from northampton so i'm afraid not!, -ham,Mark works tomorrow. He gets out at 5. His work is by your house so he can meet u afterwards., -ham,Hey tmr maybe can meet you at yck, -ham,"Night night, see you tomorrow", -ham,"Aight, sounds good. When do you want me to come down?", -ham,Hello my little party animal! I just thought I'd buzz you as you were with your friends ...*grins*... Reminding you were loved and send a naughty adoring kiss, -ham,Ok i've sent u da latest version of da project., -ham,Then we gotta do it after that, -ham,Yeah imma come over cause jay wants to do some drugs, -ham,Oh :-)only 4 outside players allowed to play know, -ham,My darling sister. How are you doing. When's school resuming. Is there a minimum wait period before you reapply? Do take care, -ham,When you came to hostel., -ham,I cant pick the phone right now. Pls send a message, -ham,Do you always celebrate NY's with your family ?, -ham,Jus finished avatar nigro, -ham,"Em, its olowoyey@ usc.edu have a great time in argentina. Not sad about secretary, everything is a blessing", -ham,DO U WANT 2 MEET UP 2MORRO, -ham,I dont have i shall buy one dear, -ham,"We spend our days waiting for the ideal path to appear in front of us.. But what we forget is.. \paths are made by walking.. not by waiting..\"" Goodnight!""", -ham,Shall I bring us a bottle of wine to keep us amused? Only joking! I???ll bring one anyway, -ham,"As in missionary hook up, doggy hook up, standing...|", -ham,Did u see what I posted on your Facebook?, -ham,Genius what's up. How your brother. Pls send his number to my skype., -ham,"Aight, I'll ask a few of my roommates", -ham,Sorry me going home first... Daddy come fetch ?_ later..., -ham,"\Happy valentines day\"" I know its early but i have hundreds of handsomes and beauties to wish. So i thought to finish off aunties and uncles 1st...""", -ham,Congrats ! Treat pending.i am not on mail for 2 days.will mail once thru.Respect mother at home.check mails., -ham,Haven't heard anything and he's not answering my texts so I'm guessing he flaked. That said the jb is fantastic, -ham,Have you seen who's back at Holby?!, -ham,Networking job is there., -ham,So u gonna get deus ex?, -ham,Purity of friendship between two is not about smiling after reading the forwarded message..Its about smiling just by seeing the name. Gud evng musthu, -ham,"Friendship is not a game to play, It is not a word to say, It doesn\'t start on March and ends on May, It is tomorrow, yesterday, today and e", -ham,Yo theres no class tmrw right?, -ham,?? collecting ur laptop then going to configure da settings izzit?, -ham,Nope. Meanwhile she talk say make i greet you., -ham,Sounds great! Im going to sleep now. Have a good night!, -ham,"Can you pls pls send me a mail on all you know about relatives coming to deliver here? All you know about costs, risks, benefits and anything else. Thanks.", -ham,Yes i will be there. Glad you made it., -ham,You still around? Looking to pick up later, -ham,"No idea, I guess we'll work that out an hour after we're supposed to leave since as usual nobody has any interest in figuring shit out before the last second", -ham,Theyre doing it to lots of places. Only hospitals and medical places are safe., -ham,"I keep seeing weird shit and bein all \woah\"" then realising it's actually reasonable and I'm all \""oh\""""", -ham,?? takin linear algebra today?, -ham,Yes..gauti and sehwag out of odi series., -ham,Sorry i missed your call. Can you please call back., -ham,Ok then i will come to ur home after half an hour, -ham,"So anyways, you can just go to your gym or whatever, my love *smiles* I hope your ok and having a good day babe ... I miss you so much already", -ham,Oh my God. I'm almost home, -ham,And also I've sorta blown him off a couple times recently so id rather not text him out of the blue looking for weed, -ham,My tuition is at 330. Hm we go for the 1120 to 1205 one? Do you mind?, -ham,Yup i thk cine is better cos no need 2 go down 2 plaza mah., -ham,When did i use soc... I use it only at home... ?? dunno how 2 type it in word ar..., -ham,"I've got ten bucks, jay is being noncomittal", -ham,"naughty little thought: 'its better to flirt, flirt n flirt, rather than loving someone n gettin hurt, hurt n hurt...:-) Gud nyt", -ham,Ofcourse I also upload some songs, -ham,Its a big difference. <#> versus <#> every <#> hrs, -ham,645, -ham,"Cool, text me when you head out", -ham,Nothing lor... A bit bored too... Then y dun u go home early 2 sleep today..., -ham,"Well am officially in a philosophical hole, so if u wanna call am at home ready to be saved!", -ham,<#> great loxahatchee xmas tree burning update: you can totally see stars here, -ham,Sounds great! Are you home now?, -ham,When u love someone Dont make them to love u as much as u do. But Love them so much that they dont want to be loved by anyone except you... Gud nit., -ham,U horrible gal... U knew dat i was going out wif him yest n u still come n ask me..., -ham,Nothing but we jus tot u would ask cos u ba gua... But we went mt faber yest... Yest jus went out already mah so today not going out... Jus call lor..., -ham,Eh ur laptop got no stock lei... He say mon muz come again to take a look c got a not..., -ham, what number do u live at? Is it 11?, -ham,"As usual..iam fine, happy & doing well..:)", -ham,Just getting back home, -ham,Pls clarify back if an open return ticket that i have can be preponed for me to go back to kerala., -ham,LOL ... Have you made plans for new years?, -ham,make that 3! 4 fucks sake?! x, -ham,Thats cool. I want to please you..., -ham,Hi Chachi tried calling u now unable to reach u .. Pl give me a missed cal once u c tiz msg Kanagu, -ham,"Yetunde, i'm sorry but moji and i seem too busy to be able to go shopping. Can you just please find some other way to get what you wanted us to get. Please forgive me. You can reply free via yahoo messenger.", -ham,Are you going to wipro interview today?, -ham,Tell your friends what you plan to do on Valentines day @ <URL>, -ham,Thanks honey. Have a great day., -ham,"Today is \song dedicated day..\"" Which song will u dedicate for me? Send this to all ur valuable frnds but first rply me...""", -ham,Ok lor but not too early. Me still having project meeting now., -ham,You've already got a flaky parent. It'snot supposed to be the child's job to support the parent...not until they're The Ride age anyway. I'm supposed to be there to support you. And now i've hurt you. unintentional. But hurt nonetheless., -ham,You didn't have to tell me that...now i'm thinking. Plus he's going to stop all your runs, -ham,Its just the effect of irritation. Just ignore it, -ham,"I prefer my free days... Tues, wed, fri oso can... ?? ask those workin lor...", -ham,Love you aathi..love u lot.., -ham,Dont kick coco when he's down, -ham,How are you doing? Hope you've settled in for the new school year. Just wishin you a gr8 day, -ham,Yes da. Any plm at ur office, -ham,Yup... How ?_ noe leh..., -ham,How i noe... She's in da car now... Later then c lar... I'm wearing shorts..., -ham,I don't run away frm u... I walk slowly & it kills me that u don't care enough to stop me..., -ham,Who u talking about?, -ham,You give us back my id proof and <#> rs. We wont allow you to work. We will come to your home within days, -ham,Not getting anywhere with this damn job hunting over here!, -ham,Then anything special?, -ham,"Some friends want me to drive em someplace, probably take a while", -ham,"7 wonders in My WORLD 7th You 6th Ur style 5th Ur smile 4th Ur Personality 3rd Ur Nature 2nd Ur SMS and 1st \Ur Lovely Friendship\""... good morning dear""", -ham,Eat at old airport road... But now 630 oredi... Got a lot of pple..., -ham,Nope i waiting in sch 4 daddy... , -ham,Ok, -ham,I wil be there with in <#> minutes. Got any space, -ham,Call me when u're done..., -ham,Alright. I'm out--have a good night!, -ham,You should get more chicken broth if you want ramen unless there's some I don't know about, -ham,Be happy there. I will come after noon, -ham,Hope you are feeling great. Pls fill me in. Abiola, -ham,"Did he say how fantastic I am by any chance, or anything need a bigger life lift as losing the will 2 live, do you think I would be the first person 2 die from N V Q? ", -ham,?? got wat to buy tell us then ?_ no need to come in again., -ham,"Ta-Daaaaa! I am home babe, are you still up ?", -ham,soon you will have the real thing princess! Do i make you wet? :), -ham,Dunno leh cant remember mayb lor. So wat time r we meeting tmr?, -ham,Please leave this topic..sorry for telling that.., -ham,Did u download the fring app?, -ham,"I???ve got some salt, you can rub it in my open wounds if you like!", -ham,Crucify is c not s. You should have told me earlier., -ham,Can't take any major roles in community outreach. You rock mel, -ham,"Easy mate, * guess the quick drink was bit ambitious.", -ham,"And that is the problem. You walk around in \julianaland\"" oblivious to what is going on around you. I say the same things constantly and they go in one ear and out the other while you go off doing whatever you want to do. It's not that you don't know why I'm upset--it's that you don't listen when i tell you WHAT is going to upset me. Then you want to be surprised when I'm mad.""", -ham,"Urgh, coach hot, smells of chip fat! Thanks again, especially for the duvet (not a predictive text word).", -ham,Hi. Happy New Year. I dont mean to intrude but can you pls let me know how much tuition you paid last semester and how much this semester is. Thanks, -ham,Don know. I did't msg him recently., -ham,At WHAT TIME should i come tomorrow, -ham,"It???s reassuring, in this crazy world.", -ham,Ya very nice. . .be ready on thursday, -ham,Company is very good.environment is terrific and food is really nice:), -ham,Moji just informed me that you saved our lives. Thanks., -ham,i thought we were doing a king of the hill thing there., -ham,Smith waste da.i wanna gayle., -ham,Friendship poem: Dear O Dear U R Not Near But I Can Hear Dont Get Fear Live With Cheer No More Tear U R Always my Dear. Gud ni8, -ham,"Wen ur lovable bcums angry wid u, dnt take it seriously.. Coz being angry is d most childish n true way of showing deep affection, care n luv!.. kettoda manda... Have nice day da.", -ham,But if she.s drinkin i'm ok., -ham,What time should I tell my friend to be around?, -ham,You do your studies alone without anyones help. If you cant no need to study., -ham,Ok no prob. Take ur time., -ham,"Have a lovely night and when you wake up to see this message, i hope you smile knowing all is as should be. Have a great morning", -ham,Wat's da model num of ur phone?, -ham,Same as kallis dismissial in 2nd test:-)., -ham,Been up to ne thing interesting. Did you have a good birthday? When are u wrking nxt? I started uni today., -ham,"Good evening Sir, hope you are having a nice day. I wanted to bring it to your notice that I have been late in paying rent for the past few months and have had to pay a $ <#> charge. I felt it would be inconsiderate of me to nag about something you give at great cost to yourself and that's why i didnt speak up. I however am in a recession and wont be able to pay the charge this month hence my askin well ahead of month's end. Can you please help. Thank you for everything.", -ham,What is this 'hex' place you talk of? Explain!, -ham,"Awesome, text me when you're restocked", -ham,My sister going to earn more than me da., -ham,For The First Time In The History 'Need' 'Comfort' And 'Luxury' Are Sold At Same Price In India..!! Onion-Rs. <#> Petrol-Rs. <#> Beer-Rs. <#> SHESIL <#>, -ham,Understand. his loss is my gain :) so do you work? School?, -ham,"Sir, i am waiting for your call, once free please call me.", -ham,Doc prescribed me morphine cause the other pain meds aren't enough. Waiting for my mom to bring it. That med should kick in fast so I'm gonna try to be on later, -ham,"Yeah I should be able to, I'll text you when I'm ready to meet up", -ham,Your daily text from me ??? a favour this time, -ham,Easy ah?sen got selected means its good.., -ham,No da:)he is stupid da..always sending like this:)don believe any of those message.pandy is a mental:), -ham,"Do you know why god created gap between your fingers..? So that, One who is made for you comes & fills those gaps by holding your hand with LOVE..!", -ham,Then dun wear jeans lor..., -ham,Yup i thk they r e teacher said that will make my face look longer. Darren ask me not 2 cut too short., -ham,Tessy..pls do me a favor. Pls convey my birthday wishes to Nimya..pls dnt forget it. Today is her birthday Shijas, -ham,Dear how is chechi. Did you talk to her, -ham,"By the way, make sure u get train to worc foregate street not shrub hill. Have fun night x", -ham,Ok., -ham,Hope you??re not having too much fun without me!! see u tomorrow love jess x, -ham,It has everything to do with the weather. Keep extra warm. Its a cold but nothing serious. Pls lots of vitamin c, -ham,Aaooooright are you at work?, -ham,"No, its true..k,Do u knw dis no. <#> ?", -ham,Ya it came a while ago, -ham,Oops my phone died and I didn't even know. Yeah I like it better., -ham,Going to join tomorrow., -ham,Depends on where u going lor., -ham,Me too. Mark is taking forever to pick up my prescription and the pain is coming back., -ham,Yup but not studying surfing lor. I'm in e lazy mode today., -ham,No. Its not specialisation. Can work but its slave labor. Will look for it this month sha cos no shakara 4 beggar., -ham,Hey happy birthday..., -ham,I am in escape theatre now. . Going to watch KAVALAN in a few minutes, -ham,"Fighting with the world is easy, u either win or lose bt fightng with some1 who is close to u is dificult if u lose - u lose if u win - u still lose.", -ham,Am watching house ??? very entertaining ??? am getting the whole hugh laurie thing ??? even with the stick ??? indeed especially with the stick., -ham,Leaving to qatar tonite in search of an opportunity.all went fast.pls add me in ur prayers dear.Rakhesh, -ham,Ok no problem... Yup i'm going to sch at 4 if i rem correctly..., -ham,"Now, whats your house # again ? And do you have any beer there ?", -ham,Baaaaabe! I misss youuuuu ! Where are you ? I have to go and teach my class at 5 ..., -ham,No calls..messages..missed calls, -ham,We took hooch for a walk toaday and i fell over! Splat! Grazed my knees and everything! Should have stayed at home! See you tomorrow! , -ham,Hello beautiful r u ok? I've kinda ad a row wiv and he walked out the pub?? I wanted a night wiv u Miss u , -ham,"Ya, i'm referin to mei's ex wat... No ah, waitin 4 u to treat, somebody shld b rich liao...So gd, den u dun have to work frm tmr onwards...", -ham,Hmmm...k...but i want to change the field quickly da:-)i wanna get system administrator or network administrator.., -ham,I've reached home n i bathe liao... U can call me now..., -ham,"Coffee cake, i guess...", -ham,"He has lots of used ones babe, but the model doesn't help. Youi have to bring it over and he'll match it up", -ham,"Set a place for me in your heart and not in your mind, as the mind easily forgets but the heart will always remember. Wish you Happy Valentines Day!", -ham,Will do. Was exhausted on train this morning. Too much wine and pie. You sleep well too, -ham,I'm also came to room., -ham,"Garbage bags, eggs, jam, bread, hannaford wheat chex", -ham,Buy one egg for me da..please:), -ham,Huh i cant thk of more oredi how many pages do we have?, -ham,Ok..., -ham,Hi! This is Roger from CL. How are you?, -ham,When you guys planning on coming over?, -ham,Pls tell nelson that the bb's are no longer comin. The money i was expecting aint coming, -ham,";-( oh well, c u later", -ham,I will come to ur home now, -ham,Oh oh... Den muz change plan liao... Go back have to yan jiu again..., -ham,That means from february to april i'll be getting a place to stay down there so i don't have to hustle back and forth during audition season as i have since my sister moved away from harlem., -ham,I wait 4 ?_ inside da car park..., -ham,:) , -ham,I actually did for the first time in a while. I went to bed not too long after i spoke with you. Woke up at 7. How was your night?, -ham,Oooh bed ridden ey? What are YOU thinking of?, -ham,"Yo, any way we could pick something up tonight?", -ham,"Hi, can i please get a <#> dollar loan from you. I.ll pay you back by mid february. Pls.", -ham,Gud ni8 dear..slp well..take care..swt dreams..Muah.., -ham,I'm freezing and craving ice. Fml, -ham,What u mean u almost done? Done wif sleeping? But i tot u going to take a nap.. Yup i send her liao so i'm picking her up at ard 4 smth lor.., -ham,Don no da:)whats you plan?, -ham,Have you had a good day? Mine was really busy are you up to much tomorrow night?, -ham,Okay... I booked all already... Including the one at bugis., -ham,"She was supposed to be but couldn't make it, she's still in town though", -ham,COME BACK TO TAMPA FFFFUUUUUUU, -ham,Jus ans me lar. U'll noe later., -ham,Okie but i scared u say i fat... Then u dun wan me already..., -ham,Yeah whatever lol, -ham,Shall i start from hear., -ham,She's borderline but yeah whatever., -ham,We are both fine. Thanks, -ham,"TODAY is Sorry day.! If ever i was angry with you, if ever i misbehaved or hurt you? plz plz JUST SLAP URSELF Bcoz, Its ur fault, I'm basically GOOD", -ham,Nobody can decide where to eat and dad wants Chinese, -ham,Mm yes dear look how i am hugging you both. :-P, -ham,And is there a way you can send shade's stuff to her. And she has been wonderful too., -ham,Can not use foreign stamps in this country., -ham,Dunno lei he neva say..., -ham,Oh ok i didnt know what you meant. Yep i am baby jontin, -ham,"My mobile number.pls sms ur mail id.convey regards to achan,amma.Rakhesh.Qatar", -ham,"Faith makes things possible,Hope makes things work,Love makes things beautiful,May you have all three this Christmas!Merry Christmas!", -ham,I think i've fixed it can you send a test message?, -ham,Exactly. Anyways how far. Is jide her to study or just visiting, -ham,I can take you at like noon, -ham,Super msg da:)nalla timing., -ham,I was wondering if it would be okay for you to call uncle john and let him know that things are not the same in nigeria as they r here. That <#> dollars is 2years sent and that you know its a strain but i plan to pay back every dime he gives. Every dime so for me to expect anything from you is not practical. Something like that., -ham,How stupid to say that i challenge god.You dont think at all on what i write instead you respond immed., -ham,This pain couldn't have come at a worse time., -ham,Feel like trying kadeem again? :V, -ham,HEY GIRL. HOW R U? HOPE U R WELL ME AN DEL R BAK! AGAIN LONG TIME NO C! GIVE ME A CALL SUM TIME FROM LUCYxx, -ham,Pls she needs to dat slowly or she will vomit more., -ham,My planning usually stops at \find hella weed, -ham,You tell what happen dont behave like this to me. Ok no need to say, -ham,Hope you are having a great day., -ham,Sorry to be a pain. Is it ok if we meet another night? I spent late afternoon in casualty and that means i haven't done any of y stuff42moro and that includes all my time sheets and that. Sorry. , -ham,Or remind me in a few hrs., -ham,"Oh... Icic... K lor, den meet other day...", -ham,"Imagine you finally get to sink into that bath after I have put you through your paces, maybe even having you eat me for a while before I left ... But also imagine the feel of that cage on your cock surrounded by the bath water, reminding you always who owns you ... Enjoy, my cuck", -ham,"Best msg: It's hard to be with a person, when u know that one more step foward will make u fall in love.. & One step back can ruin ur friendship.. good night:-) ...", -ham,PICK UR FONE UP NOW U DUMB?, -ham,Yeh. Indians was nice. Tho it did kane me off a bit he he. We shud go out 4 a drink sometime soon. Mite hav 2 go 2 da works 4 a laugh soon. Love Pete x x, -ham,Hi baby ive just got back from work and i was wanting to see u allday! I hope i didnt piss u off on the phone today. If u are up give me a call xxx, -ham,Yeah get the unlimited, -ham,U really pig leh sleep so much. My dad wake me up at 10 smth 2 eat lunch today., -ham,"Had the money issue weigh me down but thanks to you, I can breathe easier now. I.ll make sure you dont regret it. Thanks.", -ham," says that he's quitting at least5times a day so i wudn't take much notice of that. Nah, she didn't mind. Are you gonna see him again? Do you want to come to taunton tonight? U can tell me all about !", -ham,Ok... But they said i've got wisdom teeth hidden inside n mayb need 2 remove., -ham,"Yes..but they said its IT.,", -ham,Shall i ask one thing if you dont mistake me., -ham,Dear i have reache room, -ham,Even i cant close my eyes you are in me our vava playing umma :-D, -ham,Yeah just open chat and click friend lists. Then make the list. Easy as pie, -ham,ARE YOU IN TOWN? THIS IS V. IMPORTANT, -ham,"Dear, take care. I am just reaching home.love u a lot.", -ham,Your dad is back in ph?, -ham,"Ok. Not much to do here though. H&M Friday, cant wait. Dunno wot the hell im gonna do for another 3 weeks! Become a slob- oh wait, already done that! ", -ham,I had askd u a question some hours before. Its answer, -ham,"Nimbomsons. Yep phone knows that one. Obviously, cos thats a real word", -ham,I know complain num only..bettr directly go to bsnl offc nd apply for it.., -ham,I was just callin to say hi. Take care bruv!, -ham,I am on the way to tirupur., -ham,I can send you a pic if you like :), -ham,I want to tel u one thing u should not mistake me k THIS IS THE MESSAGE THAT YOU SENT:), -ham,Enjoy urself tmr..., -ham,Nope... Think i will go for it on monday... Sorry i replied so late, -ham,How are you doing. How's the queen. Are you going for the royal wedding, -ham,Your bill at 3 is ??33.65 so thats not bad!, -ham,Did you stitch his trouser, -ham,I dunno they close oredi not... ?? v ma fan..., -ham,"Dude. What's up. How Teresa. Hope you have been okay. When i didnt hear from these people, i called them and they had received the package since dec <#> . Just thot you'ld like to know. Do have a fantastic year and all the best with your reading. Plus if you can really really Bam first aid for Usmle, then your work is done.", -ham,HARD BUT TRUE: How much you show & express your love to someone....that much it will hurt when they leave you or you get seperated...!?????_?????ud evening..., -ham,Sounds like something that someone testing me would sayy, -ham,I am in escape theatre now. . Going to watch KAVALAN in a few minutes, -ham,Where is it. Is there any opening for mca., -ham,Welp apparently he retired, -ham,No problem. We will be spending a lot of quality time together..., -ham,Nope... Juz off from work..., -ham,Do you know where my lab goggles went, -ham,I know you are serving. I mean what are you doing now., -ham,So ?_'ll be submitting da project tmr rite?, -ham,You have registered Sinco as Payee. Log in at icicibank.com and enter URN <#> to confirm. Beware of frauds. Do NOT share or disclose URN to anyone., -ham,Chk in ur belovd ms dict, -ham,Kallis is ready for bat in 2nd innings, -ham,"Nothing. I meant that once the money enters your account here, the bank will remove its flat rate. Someone transfered <#> to my account and <#> dollars got removed. So the banks differ and charges also differ.be sure you trust the 9ja person you are sending account details to cos...", -ham,Hey loverboy! I love you !! I had to tell ... I look at your picture and ache to feel you between my legs ... Fuck I want you ... I need you ... I crave you ., -ham,Mystery solved! Just opened my email and he's sent me another batch! Isn't he a sweetie, -ham,"Haha I heard that, text me when you're around", -ham,Yup ok..., -ham,She.s good. She was wondering if you wont say hi but she.s smiling now. So how are you coping with the long distance, -ham,The Xmas story is peace.. The Xmas msg is love.. The Xmas miracle is jesus.. Hav a blessed month ahead & wish U Merry Xmas..., -ham,"\Im at arestaurant eating squid! i will be out about 10:30 wanna dosomething or is that to late?\""""", -ham,Yes we are chatting too., -ham,"A few people are at the game, I'm at the mall with iouri and kaila", -ham,"2 celebrate my b??day, y else?", -ham,Men like shorter ladies. Gaze up into his eyes., -ham,"Very strange. and are watching the 2nd one now but i'm in bed. Sweet dreams, miss u ", -ham,Pls speak with me. I wont ask anything other then you friendship., -ham,Who's there say hi to our drugdealer, -ham,Oh k...i'm watching here:), -ham,Oh thanks a lot..i already bought 2 eggs .., -ham,How is it possible to teach you. And where., -ham,Ha... Then we must walk to everywhere... Cannot take tram. My cousin said can walk to vic market from our hotel , -ham,I come n pick ?_ up... Come out immediately aft ur lesson..., -ham,At 7 we will go ok na., -ham,"Two fundamentals of cool life: \Walk whoever is the KING\""!... Gud nyt""", -ham,Me sef dey laugh you. Meanwhile how's my darling anjie!, -ham, <DECIMAL> m but its not a common car here so its better to buy from china or asia. Or if i find it less expensive. I.ll holla, -ham,Me i'm not workin. Once i get job..., -ham,Tessy..pls do me a favor. Pls convey my birthday wishes to Nimya..pls dnt forget it. Today is her birthday Shijas, -ham,Babe? You said 2 hours and it's been almost 4 ... Is your internet down ?, -ham,Ic. There are a lotta childporn cars then., -ham,"Sorry to trouble u again. Can buy 4d for my dad again? 1405, 1680, 1843. All 2 big 1 small, sat n sun. Thanx.", -ham,Poor girl can't go one day lmao, -ham,Ummma.will call after check in.our life will begin from qatar so pls pray very hard., -ham,"I'm done. I'm sorry. I hope your next space gives you everything you want. Remember all the furniture is yours. If i'm not around when you move it, just lock all the locks and leave the key with jenne.", -ham,Height of recycling: Read twice- People spend time for earning money and the same money is spent for spending time!;-) Good morning.. keep smiling:-), -ham,U calling me right? Call my hand phone..., -ham,My friends use to call the same., -ham,"I av a new number, . Wil u only use this one,ta.", -ham,U sure u can't take any sick time?, -ham,SERIOUSLY. TELL HER THOSE EXACT WORDS RIGHT NOW., -ham,Mmm so yummy babe ... Nice jolt to the suzy, -ham,if you aren't here in the next <#> hours imma flip my shit, -ham,Oh all have to come ah?, -ham,"Vikky, come around <TIME> ..", -ham,It took Mr owl 3 licks, -ham,You have registered Sinco as Payee. Log in at icicibank.com and enter URN <#> to confirm. Beware of frauds. Do NOT share or disclose URN to anyone., -ham,"Hello, hello, hi lou sorry it took so long 2 reply- I left mobile at friends in Lancaster, just got it bak Neway im sorry I couldn??t make ur b??day 2 hun!", -ham,"K will do, addie & I are doing some art so I'll be here when you get home", -ham,What time you coming down later? , -ham,Can you please send me my aunty's number, -ham,Wat time r ?_ going to xin's hostel?, -ham,Erm. I thought the contract ran out the4th of october., -ham,Hi:)did you asked to waheeda fathima about leave?, -ham,"Wait, do you know if wesleys in town? I bet she does hella drugs!", -ham,Tell them no need to investigate about me anywhere., -ham,MAYBE IF YOU WOKE UP BEFORE FUCKING 3 THIS WOULDN'T BE A PROBLEM., -ham,"That's fine, have him give me a call if he knows what he wants or has any questions", -ham,"Sorry, I'll call later", -ham,Am not interested to do like that., -ham,Nvm it's ok..., -ham,Total video converter free download type this in google search:), -ham,So lets make it saturday or monday as per convenience., -ham,"Hey...Great deal...Farm tour 9am to 5pm $95/pax, $50 deposit by 16 May", -ham,Ya i knw u vl giv..its ok thanks kano..anyway enjoy wit ur family wit 1st salary..:-);-), -ham,Sitting ard nothing to do lor. U leh busy w work?, -ham,7 at esplanade.. Do ?_ mind giving me a lift cos i got no car today.., -ham,Are there TA jobs available? Let me know please cos i really need to start working, -ham,No da. . Vijay going to talk in jaya tv, -ham,Ok..., -ham,Hi Dear Call me its urgnt. I don't know whats your problem. You don't want to work or if you have any other problem at least tell me. Wating for your reply., -ham,Are you at work right now ?, -ham,Was actually sleeping and still might when u call back. So a text is gr8. You rock sis. Will send u a text wen i wake., -ham,We walked from my moms. Right on stagwood pass right on winterstone left on victors hill. Address is <#>, -ham,Happy new years melody!, -ham,That day you asked about anand number. Why:-), -ham,If anyone calls for a treadmill say you'll buy it. Make sure its working. I found an ad on Craigslist selling for $ <#> ., -ham,You are right though. I can't give you the space you want and need. This is really starting to become an issue. I was going to suggest setting a definite move out--if i'm still there-- after greece. But maybe you are ready and should do it now., -ham,"Tyler (getting an 8th) has to leave not long after 9, can you get here in like an hour?", -ham,Guess who spent all last night phasing in and out of the fourth dimension, -ham,Not course. Only maths one day one chapter with in one month we can finish., -ham,If you don't respond imma assume you're still asleep and imma start calling n shit, -ham,"I got like $ <#> , I can get some more later though. Get whatever you feel like", -ham,I'm now but have to wait till 2 for the bus to pick me., -ham,Mmm thats better now i got a roast down me! i??d b better if i had a few drinks down me 2! Good indian?, -ham,Yunny... I'm goin to be late, -ham,"I'm not sure, I was just checking out what was happening around the area", -ham,Haha mayb u're rite... U know me well. Da feeling of being liked by someone is gd lor. U faster go find one then all gals in our group attached liao., -ham,Ok but knackered. Just came home and went to sleep! Not good at this full time work lark., -ham,Would really appreciate if you call me. Just need someone to talk to., -ham,Reverse is cheating. That is not mathematics., -ham,Rightio. 11.48 it is then. Well arent we all up bright and early this morning., -ham,"He said that he had a right giggle when he saw u again! You would possibly be the first person2die from NVQ, but think how much you could for! ", -ham,Have you heard from this week?, -ham,Pls dont restrict her from eating anythin she likes for the next two days., -ham,Arun can u transfr me d amt, -ham,U say leh... Of course nothing happen lar. Not say v romantic jus a bit only lor. I thk e nite scenery not so nice leh., -ham,Thank You meet you monday, -ham,Tiwary to rcb.battle between bang and kochi., -ham,Also are you bringing galileo or dobby, -ham,And popping <#> ibuprofens was no help., -ham,Omg if its not one thing its another. My cat has worms :/ when does this bad day end?, -ham,At 4. Let's go to bill millers, -ham,No da. . Vijay going to talk in jaya tv, -ham,HI DARLIN IM MISSIN U HOPE YOU ARE HAVING A GOOD TIME. WHEN ARE U BACK AND WHAT TIME IF U CAN GIVE ME A CALL AT HOME. JESS XX, -ham,"What's up bruv, hope you had a great break. Do have a rewarding semester.", -ham,"Ugh y can't u just apologize, admit u were wrong and ask me to take u back?", -ham,"Kate jackson rec center before 7ish, right?", -ham,Mum not going robinson already., -ham,I was slept that time.you there?, -ham,"I'm gonna be home soon and i don't want to talk about this stuff anymore tonight, k? I've cried enough today.", -ham,"I'm not coming over, do whatever you want", -ham,I'll be late..., -ham,Hey.. Something came up last min.. Think i wun be signing up tmr.. Hee, -ham,:( but your not here...., -ham,You were supposed to wake ME up >:(, -ham,U GOIN OUT 2NITE?, -ham,Am in film ill call you later., -ham,Okay... We wait ah, -ham,Sure! I am driving but will reach my destination soon., -ham,I wish! I don't think its gonna snow that much. But it will be more than those flurries we usually get that melt before they hit the ground. Eek! We haven't had snow since <#> before I was even born!, -ham,Hui xin is in da lib., -ham,Do I? I thought I put it back in the box, -ham,Hi babe its me thanks for coming even though it didnt go that well!i just wanted my bed! Hope to see you soon love and kisses xxx, -ham,Wait.i will come out.. <#> min:), -ham,You said not now. No problem. When you can. Let me know., -ham,Tessy..pls do me a favor. Pls convey my birthday wishes to Nimya..pls dnt forget it. Today is her birthday Shijas, -ham,True dear..i sat to pray evening and felt so.so i sms'd you in some time..., -ham,Yo sorry was in the shower sup, -ham,Hope you are having a good week. Just checking in, -ham,Try to do something dear. You read something for exams, -ham,"Yes but i dont care! I need you bad, princess!", -ham,"Like I made him throw up when we were smoking in our friend's car one time, it was awesome", -ham,"Mum, i've sent you many many messages since i got here. I just want to know that you are actually getting them. Do enjoy the rest of your day.", -ham,Nokia phone is lovly.., -ham,Wat r u doing now?, -ham,Dis is yijue. I jus saw ur mail. In case huiming havent sent u my num. Dis is my num., -ham,Ok. Not sure what time tho as not sure if can get to library before class. Will try. See you at some point! Have good eve., -ham,Ay wana meet on sat??_ wkg on sat?, -ham,Cos darren say ?_ considering mah so i ask ?_..., -ham,The beauty of life is in next second.. which hides thousands of secrets. I wish every second will be wonderful in ur life...!! gud n8, -ham,"Sir, waiting for your letter.", -ham,I will treasure every moment we spend together..., -ham,"Neither [in sterm voice] - i'm studying. All fine with me! Not sure the thing will be resolved, tho. Anyway. Have a fab hols", -ham,Ok which your another number, -ham,Thanks love. But am i doing torch or bold., -ham,Thank u. IT BETTER WORK OUT CAUSE I WILL FEEL USED OTHERWISE, -ham,I know a few people I can hit up and fuck to the yes, -ham,O ic lol. Should play 9 doors sometime yo, -ham,Ultimately tor motive tui achieve korli., -ham,Dear are you angry i was busy dear, -ham,aathi..where are you dear.., -ham,Very hurting n meaningful lines ever: \I compromised everything for my love, -ham,Oh ic. I thought you meant mary jane., -ham,I absolutely LOVE South Park! I only recently started watching the office., -ham,You will be in the place of that man, -ham,Bbq this sat at mine from 6ish. Ur welcome 2 come, -ham,Stop knowing me so well!, -ham,Ok lor then we go tog lor..., -ham,Life spend with someone for a lifetime may be meaningless but a few moments spent with someone who really love you means more than life itself.., -ham,Is it ok if I stay the night here? Xavier has a sleeping bag and I'm getting tired, -ham,Yes..he is really great..bhaji told kallis best cricketer after sachin in world:).very tough to get out., -ham,"idc get over here, you are not weaseling your way out of this shit twice in a row", -ham,Ok i wont call or disturb any one. I know all are avoiding me. I am a burden for all, -ham,Oh yes I can speak txt 2 u no! Hmm. Did u get email?, -ham,"Okies... I'll go yan jiu too... We can skip ard oso, go cine den go mrt one, blah blah blah... ", -ham,Yup i'm still having coffee wif my frens... My fren drove she'll give me a lift..., -ham,Is xy in ur car when u picking me up?, -ham,"The table's occupied, I'm waiting by the tree", -ham,\Si.como no?!listened2the plaid album-quite gd&the new air1 which is hilarious-also bought??braindance??a comp.ofstuff on aphex??s ;abel, -ham,"Hmph. Go head, big baller.", -ham,Miserable. They don't tell u that the side effects of birth control are massive gut wrenching cramps for the first 2 months. I didn't sleep at all last night., -ham,Why don't you wait 'til at least wednesday to see if you get your ., -ham,Was gr8 to see that message. So when r u leaving? Congrats dear. What school and wat r ur plans., -ham,Get ready to put on your excellent sub face :), -ham,"Science tells that chocolate will melt under the sunlight. Please don't walk under the sunlight. BCoz,I don't want to loss a sweet friend.", -ham,Home so we can always chat, -ham,"wiskey Brandy Rum Gin Beer Vodka Scotch Shampain Wine \KUDI\""yarasu dhina vaazhthukkal. ..""", -ham,In da car park , -ham,I see the letter B on my car, -ham,I am back. Good journey! Let me know if you need any of the receipts. Shall i tell you like the pendent?, -ham,Do we have any spare power supplies, -ham,Fyi I'm gonna call you sporadically starting at like <#> bc we are not not doin this shit, -ham,"HELLOGORGEOUS, HOWS U? MY FONE WAS ON CHARGE LST NITW WEN U TEXD ME. HOPEU AD A NICE WKEND AS IM SURE U DID LOOKIN 4WARD 2 C-IN U 2MRW LUV JAZ", -ham,"Hello! Just got here, st andrews-boy its a long way! Its cold. I will keep you posted", -ham,"OH RITE. WELL IM WITH MY BEST MATE PETE, WHO I WENT OUT WITH 4 A WEEK+ NOW WERE 2GEVA AGAIN. ITS BEEN LONGER THAN A WEEK.", -ham,Joy's father is John. Then John is the NAME of Joy's father. Mandan, -ham,Ok... I din get ur msg..., -ham,K:)k.are you in college?, -ham,You sure your neighbors didnt pick it up, -ham,Just finished. Missing you plenty, -ham,Shhhhh nobody is supposed to know!, -ham,Somebody set up a website where you can play hold em using eve online spacebucks, -ham,"New Theory: Argument wins d SITUATION, but loses the PERSON. So dont argue with ur friends just.. . . . kick them & say, I'm always correct.!", -ham,"Alright, see you in a bit", -ham,Can you just come in for a sec? There's somebody here I want you to see, -ham,Thanks for this hope you had a good day today, -ham,Otherwise had part time job na-tuition.., -ham,Erutupalam thandiyachu, -ham,Yar he quite clever but aft many guesses lor. He got ask me 2 bring but i thk darren not so willing 2 go. Aiya they thk leona still not attach wat., -ham,* You gonna ring this weekend or wot?, -ham,No. On the way home. So if not for the long dry spell the season would have been over, -ham,I want to go to perumbavoor, -ham,Me n him so funny..., -ham,Meeting u is my work. . . Tel me when shall i do my work tomorrow, -ham,S:)8 min to go for lunch:), -ham,"\Response\"" is one of d powerful weapon 2 occupy a place in others 'HEART'... So", -ham,In that case I guess I'll see you at campus lodge, -ham,So what do you guys do., -ham,"Fighting with the world is easy, u either win or lose bt fightng with some1 who is close to u is dificult if u lose - u lose if u win - u still lose.", -ham,"Babe! I fucking love you too !! You know? Fuck it was so good to hear your voice. I so need that. I crave it. I can't get enough. I adore you, Ahmad *kisses*", -ham,Height of Confidence: All the Aeronautics professors wer calld & they wer askd 2 sit in an aeroplane. Aftr they sat they wer told dat the plane ws made by their students. Dey all hurried out of d plane.. Bt only 1 didnt move... He said:\if it is made by my students, -ham,Yes:)sura in sun tv.:)lol., -ham,"After my work ah... Den 6 plus lor... U workin oso rite... Den go orchard lor, no other place to go liao...", -ham,Nice talking to you! please dont forget my pix :) i want to see all of you..., -ham,"Sorry I missed you babe. I was up late and slept in. I hope you enjoy your driving lesson, boytoy. I miss you too ... *teasing kiss*", -ham,Yes see ya not on the dot, -ham,"Madam,regret disturbance.might receive a reference check from DLF Premarica.kindly be informed.Rgds,Rakhesh,Kerala.", -ham,1's reach home call me., -ham,Good morning princess! Have a great day!, -ham,Horrible gal. Me in sch doing some stuff. How come u got mc?, -ham,"Goodmorning, today i am late for 2hrs. Because of back pain.", -ham,Gr8. So how do you handle the victoria island traffic. Plus when's the album due, -ham,"Beautiful Truth against Gravity.. Read carefully: \Our heart feels light when someone is in it.. But it feels very heavy when someone leaves it..\"" GOODMORNING""", -ham,Great! I hope you like your man well endowed. I am <#> inches..., -ham,K:)all the best:)congrats..., -ham,Love it! The girls at the office may wonder why you are smiling but sore..., -ham,There is no sense in my foot and penis., -ham,I walked an hour 2 c u! doesn??t that show I care y wont u believe im serious?, -ham,?? thk of wat to eat tonight., -ham,"Awesome, I'll see you in a bit", -ham,Have a great trip to India. And bring the light to everyone not just with the project but with everyone that is lucky to see you smile. Bye. Abiola, -ham,He also knows about lunch menu only da. . I know, -ham,Or just do that 6times, -ham,Have a good trip. Watch out for . Remember when you get back we must decide about easter., -ham,"Ill call u 2mrw at ninish, with my address that icky American freek wont stop callin me 2 bad Jen k eh?", -ham,They released vday shirts and when u put it on it makes your bottom half naked instead of those white underwear., -ham,Please reserve ticket on saturday eve from chennai to thirunelvali and again from tirunelvali to chennai on sunday eve...i already see in net..no ticket available..i want to book ticket through tackle .., -ham,Pls speak to that customer machan., -ham,Now am free call me pa., -ham,Never y lei... I v lazy... Got wat? Dat day ?_ send me da url cant work one..., -ham,I hope you know I'm still mad at you., -ham,Lol! U drunkard! Just doing my hair at d moment. Yeah still up 4 tonight. Wats the plan? , -ham,No probably <#> %., -ham,Babe ! What are you doing ? Where are you ? Who are you talking to ? Do you think of me ? Are you being a good boy? Are you missing me? Do you love me ?, -ham,So when do you wanna gym?, -ham,I'm on da bus going home..., -ham,Hope this text meets you smiling. If not then let this text give you a reason to smile. Have a beautiful day., -ham,Goodmorning today i am late for <DECIMAL> min., -ham,Get down in gandhipuram and walk to cross cut road. Right side <#> street road and turn at first right., -ham,Haha... dont be angry with yourself... Take it as a practice for the real thing. =) , -ham,Great! I have to run now so ttyl!, -ham,I want to sent <#> mesages today. Thats y. Sorry if i hurts, -ham,Dude while were makin those weirdy brownies my sister made awesome cookies. I took pics., -ham,I will reach ur home in <#> minutes, -ham,LOL ... No just was busy, -ham,Okie..., -ham,"Aight, text me tonight and we'll see what's up", -ham,"Haha awesome, I might need to take you up on that, what you doin tonight?", -ham,Hi msg me:)i'm in office.., -ham,Ha ha ha good joke. Girls are situation seekers., -ham,I guess it is useless calling u 4 something important., -ham,O was not into fps then., -ham,Yes.mum lookin strong:), -ham,One of the joys in lifeis waking up each daywith thoughts that somewhereSomeone cares enough tosend a warm morning greeting.. -, -ham,Or ill be a little closer like at the bus stop on the same street, -ham,Prakesh is there know., -ham,Any chance you might have had with me evaporated as soon as you violated my privacy by stealing my phone number from your employer's paperwork. Not cool at all. Please do not contact me again or I will report you to your supervisor., -ham,True lov n care wil nevr go unrecognized. though somone often makes mistakes when valuing it. but they will definitly undrstnd once when they start missing it., -ham,"Motivate Behind every darkness, there is a shining light waiting for you to find it... Behind every best friend, there is always trust and love... BSLVYL", -ham,"Hi this is yijue, can i meet u at 11 tmr?", -ham,Pls ask macho how much is budget for bb bold 2 is cos i saw a new one for <#> dollars., -ham,No problem baby. Is this is a good time to talk? I called and left a message., -ham,Well. You know what i mean. Texting, -ham,"Mmmmmm ... I love you,so much, Ahmad ... I can't wait for this year to begin as every second takes me closer to being at your side. Happy New Year, my love!!", -ham,Have you got Xmas radio times. If not i will get it now, -ham,K..u also dont msg or reply to his msg.., -ham,"Just arrived, see you in a couple days <3", -ham,"If you can make it any time tonight or whenever you can it's cool, just text me whenever you're around", -ham,NOT MUCH NO FIGHTS. IT WAS A GOOD NITE!!, -ham,Can you say what happen, -ham,Hey. For me there is no leave on friday. Wait i will ask my superior and tell you.., -ham,Ok lor. I'm in town now lei., -ham,I just saw ron burgundy captaining a party boat so yeah, -ham,Aft i finish my lunch then i go str down lor. Ard 3 smth lor. U finish ur lunch already?, -ham,Ya but it cant display internal subs so i gotta extract them, -ham,Spoons it is then okay?, -ham,Thanx 4 e brownie it's v nice..., -ham,"(No promises on when though, haven't even gotten dinner yet)", -ham,What can i do? Might accidant tookplace between somewhere ghodbandar rd. Traffic moves slovely. So plz slip & don't worry., -ham,Dare i ask... Any luck with sorting out the car?, -ham,"What i mean was i left too early to check, cos i'm working a 9-6.", -ham,K actually can you guys meet me at the sunoco on howard? It should be right on the way, -ham,"That's fine, I'll bitch at you about it later then", -ham,Even my brother is not like to speak with me. They treat me like aids patent., -ham,"Yeah hopefully, if tyler can't do it I could maybe ask around a bit", -ham,So gd got free ice cream... I oso wan..., -ham,U should have made an appointment, -ham,Yes! How is a pretty lady like you single?, -ham,WHITE FUDGE OREOS ARE IN STORES, -ham,Hi this is yijue... It's regarding the 3230 textbook it's intro to algorithms second edition... I'm selling it for $50..., -ham,It is only yesterday true true., -ham,NEFT Transaction with reference number <#> for Rs. <DECIMAL> has been credited to the beneficiary account on <#> at <TIME> : <#>, -ham,"Im sorry bout last nite it wasn??t ur fault it was me, spouse it was pmt or sumthin! U 4give me? I think u shldxxxx", -ham,?? log off 4 wat. It's sdryb8i, -ham,I forgot 2 ask ?_ all smth.. There's a card on da present lei... How? ?? all want 2 write smth or sign on it?, -ham,S but mostly not like that., -ham,How have your little darlings been so far this week? Need a coffee run tomo?Can't believe it's that time of week already ??_, -ham,Anything lor is she coming?, -ham,"Okay, good, no problem, and thanx!", -ham,hi my darlin im on my way to London and we have just been smashed into by another driver! and have a big dent! im really missing u what have u been up to? xxx, -ham,Esplanade lor. Where else..., -ham,Ok but tell me half an hr b4 u come i need 2 prepare., -ham,hope things went well at 'doctors' ;) reminds me i still need 2go.did u c d little thing i left in the lounge?, -ham,Then wat r u doing now? Busy wif work?, -ham,U can call me now..., -ham,Thx. All will be well in a few months, -ham,Is that what time you want me to come?, -ham,Can i meet ?_ at 5.. As 4 where depends on where ?_ wan 2 in lor.., -ham,I will see in half an hour, -ham,Yes:)from last week itself i'm taking live call., -ham,Let's pool our money together and buy a bunch of lotto tickets. If we win I get <#> % u get <#> %. Deal?, -ham,Gud ni8.swt drms.take care, -ham,There bold 2 <#> . Is that yours, -ham,But your brother transfered only <#> + <#> . Pa., -ham,"I'm outside islands, head towards hard rock and you'll run into me", -ham,"Hiya, probably coming home * weekend after next", -ham,Wah... Okie okie... Muz make use of e unlimited... Haha... , -ham,"Ela kano.,il download, come wen ur free..", -ham,"Tick, tick, tick ... Babe", -ham,There is a first time for everything :), -ham,You have to pls make a note of all she.s exposed to. Also find out from her school if anyone else was vomiting. Is there a dog or cat in the house? Let me know later., -ham,"I'm a guy, browsin is compulsory", -ham,"Ah, well that confuses things, doesn???t it?", -ham,Hello! How's you and how did saturday go? I was just texting to see if you'd decided to do anything tomo. Not that i'm trying to invite myself or anything!, -ham,No:-)i got rumour that you going to buy apartment in chennai:-), -ham,would u fuckin believe it they didnt know i had thurs pre booked off so they re cancelled me AGAIN! that needs to b sacked, -ham,No. I meant the calculation is the same. That <#> units at <#> . This school is really expensive. Have you started practicing your accent. Because its important. And have you decided if you are doing 4years of dental school or if you'll just do the nmde exam., -ham,Thought we could go out for dinner. I'll treat you! Seem ok?, -ham,"THAT??S ALRITE GIRL, U KNOW GAIL IS NEVA WRONG!!TAKE CARE SWEET AND DON??T WORRY.C U L8TR HUN!LOVE Yaxxx", -ham,I'm in class. Did you get my text., -ham,No prob. I will send to your email., -ham,May i call You later Pls, -ham,Is there coming friday is leave for pongal?do you get any news from your work place., -ham,My love ! How come it took you so long to leave for Zaher's? I got your words on ym and was happy to see them but was sad you had left. I miss you, -ham,Much better now thanks lol, -ham,<#> ISH MINUTES WAS 5 MINUTES AGO. WTF., -ham,K...k:)why cant you come here and search job:), -ham,The bus leaves at <#> , -ham,Sorry i cant take your call right now. It so happens that there r 2waxsto do wat you want. She can come and ill get her medical insurance. And she'll be able to deliver and have basic care. I'm currently shopping for the right medical insurance for her. So just give me til friday morning. Thats when i.ll see the major person that can guide me to the right insurance., -ham,WHO ARE YOU SEEING?, -ham,Was the farm open?, -ham,"So many people seems to be special at first sight, But only very few will remain special to you till your last sight.. Maintain them till life ends.. Sh!jas", -ham,Da is good good player.why he is unsold., -ham,No got new job at bar in airport on satsgettin 4.47per hour but means no lie in! keep in touch, -ham,JADE ITS PAUL. Y DIDN??T U TXT ME? DO U REMEMBER ME FROM BARMED? I WANT 2 TALK 2 U! TXT ME, -ham,I wish that I was with you. Holding you tightly. Making you see how important you are. How much you mean to me ... How much I need you ... In my life ..., -ham,R we going with the <#> bus?, -ham,Please give it 2 or i will pick it up on Tuesday evening about 8 if that is ok., -ham,I'll talk to the others and probably just come early tomorrow then, -ham,Ok . . now i am in bus. . If i come soon i will come otherwise tomorrow, -ham,Horrible u eat macs eat until u forgot abt me already rite... U take so long 2 reply. I thk it's more toot than b4 so b prepared. Now wat shall i eat?, -ham,I cant pick the phone right now. Pls send a message, -ham,2 and half years i missed your friendship:-), -ham,I thank you so much for all you do with selflessness. I love you plenty., -ham,"Hello.How u doing?What u been up 2?When will u b moving out of the flat, cos I will need to arrange to pick up the lamp, etc. Take care. Hello caroline!", -ham,"that would be good ??_ I'll phone you tomo lunchtime, shall I, to organise something?", -ham,"You at mu? You should try to figure out how much money everyone has for gas and alcohol, jay and I are trying to figure out our weed budget", -ham,If we win its really no 1 side for long time., -ham,Just send a text. We'll skype later., -ham,We still on for tonight?, -ham,"Theoretically yeah, he could be able to come", -ham,"4 tacos + 1 rajas burrito, right?", -ham,"Do you know why god created gap between your fingers..? So that, One who is made for you comes & fills those gaps by holding your hand with LOVE..!", -ham,Umma. Did she say anything, -ham,Where can download clear movies. Dvd copies., -ham,Tell me they're female :V how're you throwing in? We're deciding what all to get now, -ham,I uploaded mine to Facebook, -ham,"When you just put in the + sign, choose my number and the pin will show. Right?", -ham,Can do lor..., -ham,We have all rounder:)so not required:), -ham,Yun ah.now ?_ wkg where?btw if ?_ go nus sc. ?? wana specialise in wad?, -ham,He says hi and to get your ass back to south tampa (preferably at a kegger), -ham,Haha... Hope ?_ can hear the receipt sound... Gd luck!, -ham,Yep. I do like the pink furniture tho., -ham,Bring tat cd don forget, -ham,God bless.get good sleep my dear...i will pray!, -ham,Thts god's gift for birds as humans hav some natural gift frm god.., -ham,Well keep in mind I've only got enough gas for one more round trip barring a sudden influx of cash, -ham,"Yeah, in fact he just asked if we needed anything like an hour ago. When and how much?", -ham,Ryder unsold.now gibbs., -ham,Ok . . now i am in bus. . If i come soon i will come otherwise tomorrow, -ham,K:)eng rocking in ashes:), -ham,No it's waiting in e car dat's bored wat. Cos wait outside got nothing 2 do. At home can do my stuff or watch tv wat., -ham,Ok then i'll let him noe later n ask him call u tmr..., -ham,THING R GOOD THANX GOT EXAMS IN MARCH IVE DONE NO REVISION? IS FRAN STILL WITH BOYF? IVE GOTTA INTERVIW 4 EXETER BIT WORRIED!x, -ham,Ok... The theory test? when are ?_ going to book? I think it's on 21 may. Coz thought wanna go out with jiayin. But she isnt free, -ham,So your telling me I coulda been your real Valentine and I wasn't? U never pick me for NOTHING!!, -ham,Aight ill get on fb in a couple minutes, -ham,"Sounds gd... Haha... Can... Wah, u yan jiu so fast liao...", -ham,Yes. It's all innocent fun. O:-), -ham,You stayin out of trouble stranger!!saw Dave the other day he??s sorted now!still with me bloke when u gona get a girl MR!ur mum still Thinks we will get 2GETHA! , -ham,"Oh, i will get paid. The most outstanding one is for a commercial i did for Hasbro...in AUGUST! They made us jump through so many hoops to get paid. Still not.", -ham,Hey tmr meet at bugis 930 ?, -ham,Why tired what special there you had, -ham,I love to cuddle! I want to hold you in my strong arms right now..., -ham,K.k:)advance happy pongal., -ham,Ok lor. Anyway i thk we cant get tickets now cos like quite late already. U wan 2 go look 4 ur frens a not? Darren is wif them now..., -ham,Thanx u darlin!im cool thanx. A few bday drinks 2 nite. 2morrow off! Take care c u soon.xxx, -ham,No de.am seeing in online shop so that i asked., -ham,Jus finish my lunch on my way home lor... I tot u dun wan 2 stay in sch today..., -ham,Is there any movie theatre i can go to and watch unlimited movies and just pay once?, -ham,I emailed yifeng my part oredi.. Can ?_ get it fr him.., -ham,Reason is if the team budget is available at last they buy the unsold players for at base rate.., -ham,Dear i am not denying your words please, -ham,Pls give her the food preferably pap very slowly with loads of sugar. You can take up to an hour to give it. And then some water. Very very slowly., -ham,Are you this much buzy, -ham,"Oops - am at my mum's in somerset... Bit far! Back tomo, see you soon x", -ham,Jus finish watching tv... U?, -ham,"I got another job! The one at the hospital doing data analysis or something, starts on monday! Not sure when my thesis will got finished", -ham,How come?, -ham,"Night has ended for another day, morning has come in a special way. May you smile like the sunny rays and leaves your worries at the blue blue bay. Gud mrng", -ham,Lmao you know me so well..., -ham,U come n search tat vid..not finishd.., -ham,Really... I tot ur paper ended long ago... But wat u copied jus now got use? U happy lar... I still haf 2 study :-(, -ham,So i asked how's anthony. Dad. And your bf, -ham,Just taste fish curry :-P, -ham,Neva mind it's ok.., -ham,I don know account details..i will ask my mom and send you.my mom is out of reach now., -ham,"Its ok., i just askd did u knw tht no?", -ham,HI ITS JESS I DONT KNOW IF YOU ARE AT WORK BUT CALL ME WHEN U CAN IM AT HOME ALL EVE. XXX, -ham,Lol for real. She told my dad I have cancer, -ham,From someone not to smoke when every time I've smoked in the last two weeks is because of you calling or texting me that you wanted to smoke, -ham,Wat makes some people dearer is not just de happiness dat u feel when u meet them but de pain u feel when u miss dem!!!, -ham,"Thk shld b can... Ya, i wana go 4 lessons... Haha, can go for one whole stretch...", -ham,How much i gave to you. Morning., -ham,I'm in inside office..still filling forms.don know when they leave me., -ham,Wishing you a wonderful week., -ham,"G says you never answer your texts, confirm/deny", -ham,Do you mind if I ask what happened? You dont have to say if it is uncomfortable., -ham,Customer place i will call you, -ham,I am in tirupur. call you da., -ham,HEY MATE! HOWS U HONEY?DID U AVE GOOD HOLIDAY? GIMMI DE GOSS!x, -ham,Can i get your opinion on something first?, -ham,After completed degree. There is no use in joining finance., -ham,Networking technical support associate., -ham,Holy living christ what is taking you so long, -ham,Shb b ok lor... Thanx..., -ham,Will be office around 4 pm. Now i am going hospital., -ham,i felt so...not any conveying reason.. Ese he... What about me?, -ham,Yup i shd haf ard 10 pages if i add figures... ?? all got how many pages?, -ham,;-) ok. I feel like john lennon., -ham,Ugh hopefully the asus ppl dont randomly do a reformat., -ham,Wow so healthy. Old airport rd lor. Cant thk of anything else. But i'll b bathing my dog later., -ham,Noice. Text me when you're here, -ham,I went to project centre, -ham,Meeting u is my work. . . Tel me when shall i do my work tomorrow, -ham,"Sounds good, keep me posted", -ham,Ok... Sweet dreams..., -ham,what is your account number?, -ham,Ok i thk i got it. Then u wan me 2 come now or wat?, -ham,"Sorry, I'll call later", -ham,Okie, -ham,Nah im goin 2 the wrks with j wot bout u?, -ham,What he said is not the matter. My mind saying some other matter is there., -ham,And stop being an old man. You get to build snowman snow angels and snowball fights., -ham,"Yalru lyfu astne chikku.. Bt innu mundhe lyf ali halla ke bilo (marriage)program edhae, so lyf is nt yet ovr chikku..ali vargu lyfu meow meow:-D", -ham,Meet after lunch la..., -ham,I thk 530 lor. But dunno can get tickets a not. Wat u doing now?, -ham,"Sorry, I'll call later", -ham,Staff of placement training in Amrita college., -ham,When did dad get back., -ham,Did he just say somebody is named tampa, -ham,1 in cbe. 2 in chennai., -ham,Also where's the piece, -ham,What about this one then., -ham,"Dunno, my dad said he coming home 2 bring us out 4 lunch. Yup i go w u lor. I call u when i reach school lor...", -ham,I finished my lunch already. U wake up already?, -ham,Sorry de i went to shop., -ham,After the drug she will be able to eat., -ham,"Sorry, I'll call later", -ham,"You are always putting your business out there. You put pictures of your ass on facebook. You are one of the most open people i've ever met. Why would i think a picture of your room would hurt you, make you feel violated.", -ham,Ma head dey swell oh. Thanks for making my day, -ham,Okie..., -ham,"K, I'll work something out", -ham,Long after I quit. I get on only like 5 minutes a day as it is., -ham,Play w computer? Aiyah i tok 2 u lor?, -ham,"Solve d Case : A Man Was Found Murdered On <DECIMAL> . <#> AfterNoon. 1,His wife called Police. 2,Police questioned everyone. 3,Wife: Sir,I was sleeping, when the murder took place. 4.Cook: I was cooking. 5.Gardener: I was picking vegetables. 6.House-Maid: I went 2 d post office. 7.Children: We went 2 play. 8.Neighbour: We went 2 a marriage. Police arrested d murderer Immediately. Who's It? Reply With Reason, If U r Brilliant.", -ham,Amazing : If you rearrange these letters it gives the same meaning... Dormitory = Dirty room Astronomer = Moon starer The eyes = They see Election results = Lies lets recount Mother-in-law = Woman Hitler Eleven plus two =Twelve plus one Its Amazing... !:-), -ham,U WILL SWITCH YOUR FONE ON DAMMIT!!, -ham,"Tell you what, if you make a little spreadsheet and track whose idea it was to smoke to determine who \smokes too much\"" for the entire month of february", -ham,It's ok lar. U sleep early too... Nite..., -ham,Y dun cut too short leh. U dun like ah? She failed. She's quite sad., -ham,Don't make life too stressfull.. Always find time to Laugh.. It may not add years to your Life! But surely adds more life to ur years!! Gud ni8..swt dreams.., -ham,Lol well don't do it without me. We could have a big sale together., -ham,"Doing nothing, then u not having dinner w us?", -ham,K..k..i'm also fine:)when will you complete the course?, -ham,"In case you wake up wondering where I am, I forgot I have to take care of something for grandma today, should be done before the parade", -ham,Oh sorry please its over, -ham,Hi its me you are probably having too much fun to get this message but i thought id txt u cos im bored! and james has been farting at me all night, -ham,Really dun bluff me leh... U sleep early too. Nite..., -ham,So how many days since then?, -ham,Is avatar supposed to have subtoitles, -ham,Where you. What happen, -ham,Cuz ibored. And don wanna study, -ham,"1) Go to write msg 2) Put on Dictionary mode 3)Cover the screen with hand, 4)Press <#> . 5)Gently remove Ur hand.. Its interesting..:)", -ham,1. Tension face 2. Smiling face 3. Waste face 4. Innocent face 5.Terror face 6.Cruel face 7.Romantic face 8.Lovable face 9.decent face <#> .joker face., -ham,Hi mate its RV did u hav a nice hol just a message 3 say hello coz haven??t sent u 1 in ages started driving so stay off roads!RVx, -ham,Where r we meeting?, -ham, <#> mins but i had to stop somewhere first., -ham,Lara said she can loan me <#> ., -ham,Eatin my lunch..., -ham,I dunno lei... Like dun haf..., -ham,Take us out shopping and Mark will distract Isaiah.=D, -ham,Jay's getting really impatient and belligerent, -ham,Then she dun believe wat?, -ham,"sir, you will receive the account no another 1hr time. Sorry for the delay.", -ham,"Wen ur lovable bcums angry wid u, dnt take it seriously.. Coz being angry is d most childish n true way of showing deep affection, care n luv!.. kettoda manda... Have nice day da.", -ham,Ok..., -ham,"Dont give a monkeys wot they think and i certainly don't mind. Any friend of mine&all that! Just don't sleep wiv , that wud be annoyin!", -ham,Thanx a lot..., -ham,The greatest test of courage on earth is to bear defeat without losing heart....gn tc, -ham,Oh k. . I will come tomorrow, -ham,Oh yeah I forgot. U can only take 2 out shopping at once., -ham,Quite lor. But dun tell him wait he get complacent..., -ham,Hey gals...U all wanna meet 4 dinner at n??te? , -ham,Pls help me tell sura that i'm expecting a battery from hont. And that if should pls send me a message about how to download movies. Thanks, -ham,It does it on its own. Most of the time it fixes my spelling. But sometimes it gets a completely diff word. Go figure, -ham,"Ok da, i already planned. I wil pick you.", -ham,Huh means computational science... Y they like dat one push here n there..., -ham,"Sorry, I'll call later in meeting.", -ham,A pure hearted person can have a wonderful smile that makes even his/her enemies to feel guilty for being an enemy.. So catch the world with your smile..:) GOODMORNING & HAVE A SMILEY SUNDAY..:), -ham,Hi juan. Im coming home on fri hey. Of course i expect a welcome party and lots of presents. Ill phone u when i get back. Loads of love nicky x x x x x x x x x, -ham,You do what all you like, -ham,Er mw im filled tuth is aight, -ham,Gud mrng dear hav a nice day, -ham,And he's apparently bffs with carly quick now, -ham,I think that tantrum's finished so yeah I'll be by at some point, -ham,And you! Will expect you whenever you text! Hope all goes well tomo , -ham,You need to get up. Now., -ham,"Sometimes we put walls around our hearts,not just to be safe from getting hurt.. But to find out who cares enough to break the walls & get closer.. GOODNOON:)", -ham,Yeah it's jus rite..., -ham,Up to ?_... ?? wan come then come lor... But i din c any stripes skirt..., -ham,"Can you please ask macho what his price range is, does he want something new or used plus it he only interfued in the blackberry bold <#> or any bb", -ham,Ok set let u noe e details later..., -ham,"I'm back, lemme know when you're ready", -ham,"Ha. You don???t know either. I did a a clever but simple thing with pears the other day, perfect for christmas.", -ham,I'm home. Ard wat time will u reach?, -ham,So what u doing today?, -ham,Hey so this sat are we going for the intro pilates only? Or the kickboxing too? , -ham,Just checking in on you. Really do miss seeing Jeremiah. Do have a great month, -ham,I dont thnk its a wrong calling between us, -ham,You bad girl. I can still remember them, -ham,Its hard to believe things like this. All can say lie but think twice before saying anything to me., -ham,Ok leave no need to ask, -ham,Kaiez... Enjoy ur tuition... Gee... Thk e second option sounds beta... I'll go yan jiu den msg u..., -ham,Oh baby of the house. How come you dont have any new pictures on facebook, -ham,"True. It is passable. And if you get a high score and apply for phd, you get 5years of salary. So it makes life easier.", -ham,"Aight, you close by or still down around alex's place?", -ham,Ok. No wahala. Just remember that a friend in need ..., -ham,Yes princess! I want to catch you with my big strong hands..., -ham,"Hello lover! How goes that new job? Are you there now? Are you happy? Do you think of me? I wake, my slave and send you a teasing kiss from across the sea", -ham,"Probably gonna be here for a while, see you later tonight <)", -ham,"Good afternoon, my boytoy ... How are you feeling today ? Better I hope? Are you being my good boy? Are you my obedient, slave? Do you please your Queen?", -ham,Reading gud habit.. Nan bari hudgi yorge pataistha ertini kano:-), -ham,Pathaya enketa maraikara pa', -ham,I'm very happy for you babe ! Woo hoo party on dude!, -ham,Reverse is cheating. That is not mathematics., -ham,Cheers for the message Zogtorius. I??ve been staring at my phone for an age deciding whether to text or not., -ham,Wat's my dear doing? Sleeping ah?, -ham,Oh ok no prob.., -ham,Watching tv lor. Nice one then i like lor., -ham,Alex knows a guy who sells mids but he's down in south tampa and I don't think I could set it up before like 8, -ham,"My Parents, My Kidz, My Friends n My Colleagues. All screaming.. SURPRISE !! and I was waiting on the sofa.. ... ..... ' NAKED...!", -ham,Have you not finished work yet or something?, -ham,Anything lor... U decide..., -ham,Talk to g and x about that, -ham,K and you're sure I don't have to have consent forms to do it :V, -ham,Where are you?when wil you reach here?, -ham,Are you free now?can i call now?, -ham,Jesus christ bitch I'm trying to give you drugs answer your fucking phone, -ham,U dun say so early hor... U c already then say..., -ham,Remember to ask alex about his pizza, -ham,Die... Now i have e toot fringe again..., -ham,"Also sir, i sent you an email about how to log into the usc payment portal. I.ll send you another message that should explain how things are back home. Have a great weekend.", -ham,Jus telling u dat i'll b leaving 4 shanghai on 21st instead so we'll haf more time 2 meet up cya..., -ham,Bring home some Wendy =D, -ham,I have many dependents, -ham,It only does simple arithmetic not percentages., -ham,Does not operate after <#> or what, -ham,IM FINE BABES AINT BEEN UP 2 MUCH THO! SAW SCARY MOVIE YEST ITS QUITE FUNNY! WANT 2MRW AFTERNOON? AT TOWN OR MALL OR SUMTHIN?xx, -ham,watever reLation u built up in dis world only thing which remains atlast iz lonlines with lotz n lot memories! feeling.., -ham,S.i'm watching it in live.., -ham,Id onluy matters when getting on from offcampus, -ham,"Just so that you know,yetunde hasn't sent money yet. I just sent her a text not to bother sending. So its over, you dont have to involve yourself in anything. I shouldn't have imposed anything on you in the first place so for that, i apologise.", -ham,On the road so cant txt, -ham,By monday next week. Give me the full gist, -ham,"I don't have anybody's number, I still haven't thought up a tactful way to ask alex", -ham,So wats ur opinion abt him and how abt is character?, -ham,"Hey, I missed you tm of last night as my phone was on the charge ... *smiles* ... I am meeting a friend shortly", -ham,Do you like shaking your booty on the dance floor?, -ham,Thanx 4 2day! U r a goodmate I THINK UR RITE SARY! ASUSUAL!1 U CHEERED ME UP! LOVE U FRANYxxxxx, -ham,Hi :)finally i completed the course:), -ham,"Thursday night? Yeah, sure thing, we'll work it out then", -ham,"I don't know, same thing that's wrong everyso often, he panicks starts goin on bout not bein good enough ??_", -ham,I'm done. C ?_ there., -ham,"Jolly good! By the way, will give u tickets for sat eve 7.30. Speak before then x", -ham,No plans yet. What are you doing ?, -ham,Do you know when the result., -ham,Okie, -ham,"It's fine, imma get a drink or somethin. Want me to come find you?", -ham,I don wake since. I checked that stuff and saw that its true no available spaces. Pls call the embassy or send a mail to them., -ham,Send this to ur friends and receive something about ur voice..... How is my speaking expression? 1.childish 2.naughty 3.Sentiment 4.rowdy 5.ful of attitude 6.romantic 7.shy 8.Attractive 9.funny <#> .irritating <#> .lovable. reply me.., -ham,"Hey sweet, I was wondering when you had a moment if you might come to me ? I want to send a file to someone but it won't go over yahoo for them because their connection sucks, remember when you set up that page for me to go to and download the format disc ? Could you tell me how to do that ? Or do you know some other way to download big files ? Because they can download stuff directly from the internet. Any help would be great, my prey ... *teasing kiss*", -ham,What's a feathery bowa? Is that something guys have that I don't know about?, -ham,i dnt wnt to tlk wid u, -ham,"Cool, I'll text you when I'm on the way", -ham,Ok both our days. So what are you making for dinner tonite? Am I invited?, -ham,Lol wtf random. Btw is that your lunch break, -ham,Printer is cool. I mean groovy. Wine is groovying, -ham,Just hopeing that wasn???t too pissed up to remember and has gone off to his sisters or something!, -ham,"The last thing i ever wanted to do was hurt you. And i didn't think it would have. You'd laugh, be embarassed, delete the tag and keep going. But as far as i knew, it wasn't even up. The fact that you even felt like i would do it to hurt you shows you really don't know me at all. It was messy wednesday, but it wasn't bad. The problem i have with it is you HAVE the time to clean it, but you choose not to. You skype, you take pictures, you sleep, you want to go out. I don't mind a few things here and there, but when you don't make the bed, when you throw laundry on top of it, when i can't have a friend in the house because i'm embarassed that there's underwear and bras strewn on the bed, pillows on the floor, that's something else. You used to be good about at least making the bed.", -ham,Ok. I asked for money how far, -ham,DO NOT B LATE LOVE MUM, -ham,What class of <#> reunion?, -ham,Hi there. We have now moved in2 our pub . Would be great 2 c u if u cud come up., -ham,I'm glad. You are following your dreams., -ham,"Save yourself the stress. If the person has a dorm account, just send your account details and the money will be sent to you.", -ham,HI BABE IM AT HOME NOW WANNA DO SOMETHING? XX, -ham,Then cant get da laptop? My matric card wif ?_ lei... , -ham,Goodmorning sleeping ga., -ham,Cancel cheyyamo?and get some money back?, -ham,I want to be there so i can kiss you and feel you next to me, -ham,I like cheap! But i???m happy to splash out on the wine if it makes you feel better.., -ham,That's one of the issues but california is okay. No snow so its manageable, -ham,First answer my question., -ham,I don't want you to leave. But i'm barely doing what i can to stay sane. fighting with you constantly isn't helping., -ham,Gud ni8 dear..slp well..take care..swt dreams..Muah.., -ham,"Nah, Wednesday. When should I bring the mini cheetos bag over?", -ham,Carlos says we can pick up from him later so yeah we're set, -ham,"Sorry, I'll call later", -ham,Eek that's a lot of time especially since American Pie is like 8 minutes long. I can't stop singing it., -ham,Babe ? I lost you ... Will you try rebooting ?, -ham,Can u get pic msgs to your phone?, -ham,Fine am simply sitting., -ham,I can ask around but there's not a lot in terms of mids up here, -ham,Yeah so basically any time next week you can get away from your mom & get up before 3, -ham,"So many people seems to be special at first sight, But only very few will remain special to you till your last sight.. Maintain them till life ends.. take cr da", -ham,You getting back any time soon?, -ham,What time you think you'll have it? Need to know when I should be near campus, -ham,get ready to moan and scream :), -ham,I just really need shit before tomorrow and I know you won't be awake before like 6, -ham,Are you still playing with gautham?, -ham,"Dear,shall mail tonite.busy in the street,shall update you tonite.things are looking ok.varunnathu edukkukayee raksha ollu.but a good one in real sense.", -ham,Nothing spl..wat abt u and whr ru?, -ham,"Well done, blimey, exercise, yeah, i kinda remember wot that is, hmm. ", -ham,Ok. How many should i buy., -ham,Are you angry with me. What happen dear, -ham,Do you hide anythiing or keeping distance from me, -ham,Haha okay... Today weekend leh... , -ham,"I'm nt goin, got somethin on, unless they meetin 4 dinner lor... Haha, i wonder who will go tis time...", -ham,Just nw i came to hme da.., -ham,How much she payed. Suganya., -ham,"Yeah why not, is the gang all ready", -ham,But that's on ebay it might be less elsewhere., -ham,Were trying to find a Chinese food place around here, -ham,Lol alright i was thinkin that too haha, -ham,"It's that time of the week again, ryan", -ham,Pls what's the full name of joke's school cos fees in university of florida seem to actually be <#> k. Pls holla back, -ham,Dont know supports ass and srt i thnk. I think ps3 can play through usb too, -ham,R u still working now?, -ham,I knew it... U slept v late yest? Wake up so late..., -ham,So that takes away some money worries, -ham,"This is one of the days you have a billion classes, right?", -ham,Today is ACCEPT DAY..U Accept me as? Brother Sister Lover Dear1 Best1 Clos1 Lvblefrnd Jstfrnd Cutefrnd Lifpartnr Belovd Swtheart Bstfrnd No rply means enemy, -ham,Not sure I have the stomach for it ..., -ham,"Its ok chikku, and its my 1 of favourite song..:-)", -ham,Oh k:)after that placement there ah?, -ham,"Thanx 4 the time we??ve spent 2geva, its bin mint! Ur my Baby and all I want is u!xxxx", -ham,What time do u get out?, -ham,Now that you have started dont stop. Just pray for more good ideas and anything i see that can help you guys i.ll forward you a link., -ham,How much you got for cleaning, -ham,I reach home safe n sound liao..., -ham,The search 4 happiness is 1 of d main sources of unhappiness! Accept life the way it comes! U will find happiness in every moment u live., -ham,"Do 1 thing! Change that sentence into: \Because i want 2 concentrate in my educational career im leaving here..\""""", -ham,....photoshop makes my computer shut down., -ham,I fetch yun or u fetch?, -ham,Ugh. Gotta drive back to sd from la. My butt is sore., -ham,I luv u soo much u don??t understand how special u r 2 me ring u 2morrow luv u xxx, -ham,Sorry completely forgot * will pop em round this week if your still here?, -ham,Nope watching tv at home... Not going out. V bored..., -ham,Hey leave it. not a big deal:-) take care., -ham,K da:)how many page you want?, -ham,Please don't text me anymore. I have nothing else to say., -ham,"Hi, Mobile no. <#> has added you in their contact list on www.fullonsms.com It s a great place to send free sms to people For more visit fullonsms.com", -ham,If You mean the website. Yes., -ham,have you ever had one foot before?, -ham,Huh so fast... Dat means u havent finished painting?, -ham,Long beach lor. Expected... U having dinner now?, -ham,You available now? I'm like right around hillsborough & <#> th, -ham,U meet other fren dun wan meet me ah... Muz b a guy rite..., -ham,Oh ok.. Wat's ur email?, -ham,* Thought I didn't see you., -ham,"Hello, my love. What are you doing? Did you get to that interview today? Are you you happy? Are you being a good boy? Do you think of me?Are you missing me ?", -ham,Mm you ask him to come its enough :-), -ham,Why don't you go tell your friend you're not sure you want to live with him because he smokes too much then spend hours begging him to come smoke, -ham,Nope i'll come online now.., -ham,"The house is on the water with a dock, a boat rolled up with a newscaster who dabbles in jazz flute behind the wheel", -ham,"K, wen ur free come to my home and also tel vikky i hav sent mail to him also.. Better come evening il be free today aftr 6pm..:-)", -ham,... Are you in the pub?, -ham,"Watching cartoon, listening music & at eve had to go temple & church.. What about u?", -ham,"Jus chillaxin, what up", -ham,Sorry i'm not free..., -ham,Excellent! Are you ready to moan and scream in ecstasy?, -ham,Normally i use to drink more water daily:), -ham,Aiyar dun disturb u liao... Thk u have lots 2 do aft ur cupboard come..., -ham,"Oops I did have it, <#> ?", -ham,Wa... U so efficient... Gee... Thanx..., -ham,What was she looking for?, -ham,Wen did you get so spiritual and deep. That's great, -ham,Please dont say like that. Hi hi hi, -ham,I AM AT THE GAS STATION. GO THERE., -ham,Ok cool. See ya then., -ham,How dare you stupid. I wont tell anything to you. Hear after i wont talk to you:-., -ham,No need for the drug anymore., -ham,"Haven't seen my facebook, huh? Lol!", -ham,Can ?_ all decide faster cos my sis going home liao.., -ham,If you are not coughing then its nothing, -ham,You unbelievable faglord, -ham,He neva grumble but i sad lor... Hee... Buy tmr lor aft lunch. But we still meetin 4 lunch tmr a not. Neva hear fr them lei. ?? got a lot of work ar?, -ham,"Chinatown got porridge, claypot rice, yam cake, fishhead beehoon... Either we eat cheap den go cafe n tok or go nydc or somethin...", -ham,Taka lor. Wat time u wan 2 come n look 4 us?, -ham,I.ll post her out l8r. In class, -ham,So when you gonna get rimac access , -ham,"aight we can pick some up, you open before tonight?", -ham,Jus finish blowing my hair. U finish dinner already?, -ham,And do you have any one that can teach me how to ship cars., -ham,S:-)if we have one good partnership going we will take lead:), -ham,"its cool but tyler had to take off so we're gonna buy for him and drop it off at his place later tonight. Our total order is a quarter, you got enough?", -ham,Oh yah... We never cancel leh... Haha , -ham,This is all just creepy and crazy to me., -ham,"Awesome, I remember the last time we got somebody high for the first time with diesel :V", -ham,Raviyog Peripherals bhayandar east, -ham,I???m parked next to a MINI!!!! When are you coming in today do you think?, -ham,Thought praps you meant another one. Goodo! I'll look tomorrow , -ham,"Sorry, I'll call later", -ham,"The word \Checkmate\"" in chess comes from the Persian phrase \""Shah Maat\"" which means; \""the king is dead..\"" Goodmorning.. Have a good day..:)""", -ham,Should I tell my friend not to come round til like <#> ish?, -ham,I am great princess! What are you thinking about me? :), -ham,Also fuck you and your family for going to rhode island or wherever the fuck and leaving me all alone the week I have a new bong >:(, -ham,Can you plz tell me the ans. BSLVYL sent via fullonsms.com, -ham,"Babe, I'm back ... Come back to me ...", -ham,"I wasn't well babe, i have swollen glands at my throat ... What did you end up doing ?", -ham,Yes I started to send requests to make it but pain came back so I'm back in bed. Double coins at the factory too. I gotta cash in all my nitros., -ham,"Good FRIENDS CaRE for each Other.. CLoSE Friends UNDERSTaND each Other... and TRUE Friends STaY forever beyond words, beyond time. Gud ni8", -ham,Lol yes. But it will add some spice to your day., -ham,Haven't eaten all day. I'm sitting here staring at this juicy pizza and I can't eat it. These meds are ruining my life., -ham,So how's scotland. Hope you are not over showing your JJC tendencies. Take care. Live the dream, -ham,And miss vday the parachute and double coins??? U must not know me very well..., -ham,I wish things were different. I wonder when i will be able to show you how much i value you. Pls continue the brisk walks no drugs without askin me please and find things to laugh about. I love you dearly., -ham,Wah lucky man... Then can save money... Hee..., -ham,"Mon okie lor... Haha, best is cheap n gd food la, ex oso okie... Depends on whether wana eat western or chinese food... Den which u prefer... ", -ham,U reach orchard already? U wan 2 go buy tickets first?, -ham,Check with nuerologist., -ham,Sir send to group mail check it., -ham,Not planned yet :)going to join company on jan 5 only.don know what will happen after that., -ham,"If i let you do this, i want you in the house by 8am.", -ham,Does cinema plus drink appeal tomo? * Is a fr thriller by director i like on at mac at 8.30., -ham,?? called dad oredi..., -ham,R u over scratching it?, -ham,You still at grand prix?, -ham,"whatever, im pretty pissed off.", -ham,Stupid.its not possible, -ham,No calls..messages..missed calls, -ham,"No I'm good for the movie, is it ok if I leave in an hourish?", -ham,"Oh ! A half hour is much longer in Syria than Canada, eh ? Wow you must get SO much more work done in a day than us with all that extra time ! *grins*", -ham,Have you been practising your curtsey?, -ham,What should i eat fo lunch senor, -ham,"It,,s a taxt massage....tie-pos argh ok! Lool!", -ham,Was playng 9 doors game and gt racing on phone lol, -ham,Hello hun how ru? Its here by the way. Im good. Been on 2 dates with that guy i met in walkabout so far. We have to meet up soon. Hows everyone else?, -ham,Hey mr and I are going to the sea view and having a couple of gays I mean games! Give me a bell when ya finish , -ham,"Sorry sir, i will call you tomorrow. senthil.hsbc", -ham,"\Are you comingdown later?\""""", -ham,I want to see your pretty pussy..., -ham,"They said if its gonna snow, it will start around 8 or 9 pm tonite! They are predicting an inch of accumulation.", -ham,Call me when you get the chance plz <3, -ham,Yeah jay's sort of a fucking retard, -ham,Cause I'm not freaky lol, -ham,I am on the way to ur home, -ham,Not a drop in the tank, -ham,If india win or level series means this is record:), -ham,I'm going 4 lunch now wif my family then aft dat i go str 2 orchard lor., -ham,Anything lar..., -ham,"Mum, hope you are having a great day. Hoping this text meets you well and full of life. Have a great day. Abiola", -ham,From tomorrow onwards eve 6 to 3 work., -ham,"Almost there, see u in a sec", -ham,"I sent you the prices and do you mean the <#> g,", -ham,"\Life is nothing wen v get everything\"". But \""life is everything wen v miss something \"". Real value of people wil be realized only in their absence.... gud mrng""", -ham,Where @, -ham,That seems unnecessarily hostile, -ham,staff.science.nus.edu.sg/~phyhcmk/teaching/pc1323, -ham,Ill be there on <#> ok., -ham,Wish u many many returns of the day.. Happy birthday vikky.., -ham,Do u konw waht is rael FRIENDSHIP Im gving yuo an exmpel: Jsut ese tihs msg.. Evrey splleing of tihs msg is wrnog.. Bt sitll yuo can raed it wihtuot ayn mitsake.. GOODNIGHT & HAVE A NICE SLEEP..SWEET DREAMS.., -ham,You always make things bigger than they are, -ham,Surely result will offer:), -ham,No just send to you. Bec you in temple na., -ham,Hello! How r u? Im bored. Inever thought id get bored with the tv but I am. Tell me something exciting has happened there? Anything! =/, -ham,Mm not entirely sure i understood that text but hey. Ho. Which weekend?, -ham,"You aren't coming home between class, right? I need to work out and shower!", -ham,Yes:)here tv is always available in work place.., -ham,Huh but i got lesson at 4 lei n i was thinkin of going to sch earlier n i tot of parkin at kent vale... , -ham,Neshanth..tel me who r u?, -ham,"Excellent, I'll see what riley's plans are", -ham,I'm at home. Please call, -ham,Fwiw the reason I'm only around when it's time to smoke is that because of gas I can only afford to be around when someone tells me to be and that apparently only happens when somebody wants to light up, -ham,Thats cool. i liked your photos. You are very sexy!, -ham,So u wan 2 come for our dinner tonight a not?, -ham,Any pain on urination any thing else?, -ham,"There're some people by mu, I'm at the table by lambda", -ham,Hi Harish's rent has been transfred to ur Acnt., -ham,O. Guess they both got screwd, -ham,Today am going to college so am not able to atten the class., -ham,No de. But call me after some time. Ill tell you k, -ham,My battery is low babe, -ham,"Dude u knw also telugu..thts gud..k, gud nyt..", -ham,Babe !!!! I LOVE YOU !!!! *covers your face in kisses*, -ham,I wud never mind if u dont miss me or if u dont need me.. But u wil really hurt me wen u need me & u dont tell me......... Take care:-), -ham,Nvm take ur time., -ham,K sure am in my relatives home. Sms me de. Pls:-), -ham,Where are you call me., -ham,"Yo my trip got postponed, you still stocked up?", -ham,Ok... C ya..., -ham,Hi Dear Call me its urgnt. I don't know whats your problem. You don't want to work or if you have any other problem at least tell me. Wating for your reply., -ham,When're you guys getting back? G said you were thinking about not staying for mcr, -ham,She.s fine. I have had difficulties with her phone. It works with mine. Can you pls send her another friend request., -ham,Sary just need Tim in the bollox &it hurt him a lot so he tol me!, -ham,Compliments to you. Was away from the system. How your side., -ham,Hey what are you doing. Y no reply pa.., -ham,Happy birthday... May all ur dreams come true..., -ham,3 pa but not selected., -ham,Send me yetty's number pls., -ham,She ran off with a younger man. we will make pretty babies together :), -ham,I donno if they are scorable, -ham,say thanks2. , -ham,Ugh its been a long day. I'm exhausted. Just want to cuddle up and take a nap, -ham,What I'm saying is if you haven't explicitly told nora I know someone I'm probably just not gonna bother, -ham,tap & spile at seven. * Is that pub on gas st off broad st by canal. Ok?, -ham,I have to take exam with march 3, -ham,"Wishing you and your family Merry \X\"" mas and HAPPY NEW Year in advance..""", -ham,"Hmmm... Guess we can go 4 kb n power yoga... Haha, dunno we can tahan power yoga anot... Thk got lo oso, forgot liao...", -ham,No. I dont want to hear anything, -ham,What i mean is do they come chase you out when its over or is it stated you can watch as many movies as you want., -ham,Host-based IDPS for linux systems., -ham,Nope. I just forgot. Will show next week, -ham,Yes just finished watching days of our lives. I love it., -ham,Yar lor... How u noe? U used dat route too?, -ham,So u workin overtime nigpun?, -ham,He remains a bro amongst bros, -ham,I cant pick the phone right now. Pls send a message, -ham,Nite nite pocay wocay luv u more than n e thing 4eva I promise ring u 2morrowxxxx, -ham,Do u noe how 2 send files between 2 computers?, -ham,Customer place i will call you., -ham,Dont let studying stress you out. L8r., -ham,Slaaaaave ! Where are you ? Must I summon you to me all the time now ? Don't you wish to come to me on your own anymore?, -ham,Your pussy is perfect!, -ham,Do you know what Mallika Sherawat did yesterday? Find out now @ <URL>, -ham,WOT U WANNA DO THEN MISSY?, -ham,He said i look pretty wif long hair wat. But i thk he's cutting quite short 4 me leh., -ham,"Beautiful Truth against Gravity.. Read carefully: \Our heart feels light when someone is in it.. But it feels very heavy when someone leaves it..\"" GOOD NIGHT""", -ham,Hi. || Do u want | to join me with sts later? || Meeting them at five. || Call u after class., -ham,I am not at all happy with what you saying or doing, -ham,I'm in town now so i'll jus take mrt down later., -ham,Yes. Last practice, -ham,I want to sent <#> mesages today. Thats y. Sorry if i hurts, -ham,"Rose for red,red for blood,blood for heart,heart for u. But u for me.... Send tis to all ur friends.. Including me.. If u like me.. If u get back, 1-u r poor in relation! 2-u need some 1 to support 3-u r frnd 2 many 4-some1 luvs u 5+- some1 is praying god to marry u.:-) try it....", -ham,aathi..where are you dear.., -ham,Lol I would but despite these cramps I like being a girl., -ham,"Guy, no flash me now. If you go call me, call me. How madam. Take care oh.", -ham,Stop calling everyone saying I might have cancer. My throat hurts to talk. I can't be answering everyones calls. If I get one more call I'm not babysitting on Monday, -ham,Is ur paper in e morn or aft tmr?, -ham,That is wondar full flim., -ham,"Haha get used to driving to usf man, I know a lot of stoners", -ham,Ya even those cookies have jelly on them, -ham,Sorry for the delay. Yes masters, -ham,"He is impossible to argue with and he always treats me like his sub, like he never released me ... Which he did and I will remind him of that if necessary", -ham,HI DARLIN ITS KATE ARE U UP FOR DOIN SOMETHIN TONIGHT? IM GOING TO A PUB CALLED THE SWAN OR SOMETHING WITH MY PARENTS FOR ONE DRINK SO PHONE ME IF U CAN, -ham,Yes:)here tv is always available in work place.., -ham,Shopping? Eh ger i toking abt syd leh...Haha, -ham,Hey hun-onbus goin 2 meet him. He wants 2go out 4a meal but I donyt feel like it cuz have 2 get last bus home!But hes sweet latelyxxx, -ham,At WHAT TIME should i come tomorrow, -ham,"Living is very simple.. Loving is also simple.. Laughing is too simple.. Winning is tooo simple.. But, being 'SIMPLE' is very difficult.. Gud nte.:-", -ham,I have a rather prominent bite mark on my right cheek, -ham,How i noe... Did ?_ specify da domain as nusstu... ?? still in sch..., -ham,WOT U UP 2 J?, -ham,"Sorry, I'll call later", -ham,"I'm tired of arguing with you about this week after week. Do what you want and from now on, i'll do the same.", -ham,"K.. I yan jiu liao... Sat we can go 4 bugis vill one frm 10 to 3 den hop to parco 4 nb. Sun can go cine frm 1030 to 2, den hop to orc mrt 4 hip hop at 4...", -ham,I'm coming back on Thursday. Yay. Is it gonna be ok to get the money. Cheers. Oh yeah and how are you. Everything alright. Hows school. Or do you call it work now, -ham,(That said can you text him one more time?), -ham,"no, i *didn't* mean to post it. I wrote it, and like so many other times i've ritten stuff to you, i let it sit there. it WAS what i was feeling at the time. I was angry. Before i left, i hit send, then stop. It wasn't there. I checked on my phone when i got to my car. It wasn't there. You said you didn't sleep, you were bored. So why wouldn't THAT be the time to clean, fold laundry, etc.? At least make the bed?", -ham,"Buzz! Hey, my Love ! I think of you and hope your day goes well. Did you sleep in ? I miss you babe. I long for the moment we are together again*loving smile*", -ham,No problem with the renewal. I.ll do it right away but i dont know his details., -ham,I jokin oni lar.. ?? busy then i wun disturb ?_., -ham,oh ya... Got hip hop open. Haha i was thinking can go for jazz then zoom to cine... Actually tonight i'm free leh... And there's a kb lesson tonight, -ham,"Awesome question with a cute answer: Someone asked a boy \how is ur life?\"" . . He smiled & answered: . . \""She is fine!\"" Gudnite""", -ham,His frens go then he in lor. Not alone wif my mum n sis lor., -ham,"Honeybee Said: *I'm d Sweetest in d World* God Laughed & Said: *Wait,U Havnt Met d Person Reading This Msg* MORAL: Even GOD Can Crack Jokes! GM+GN+GE+GN:)", -ham,Yeah my usual guy's out of town but there're definitely people around I know, -ham,"Dear, will call Tmorrow.pls accomodate.", -ham,Wewa is 130. Iriver 255. All 128 mb., -ham,O. Well uv causes mutations. Sunscreen is like essential thesedays, -ham,Heehee that was so funny tho, -ham,Yes its possible but dint try. Pls dont tell to any one k, -ham,Thank you. I like you as well..., -ham,None of that's happening til you get here though, -ham,ILL B DOWN SOON, -ham,Well welp is sort of a semiobscure internet thing, -ham,"Fuck babe, I miss you sooooo much !! I wish you were here to sleep with me ... My bed is so lonely ... I go now, to sleep ... To dream of you, my love ...", -ham,As usual u can call me ard 10 smth., -ham,I went to project centre, -ham,The 2 oz guy is being kinda flaky but one friend is interested in picking up $ <#> worth tonight if possible, -ham,"Thank you. And by the way, I just lost.", -ham,Do you work all this week ?, -ham,"We have sent JD for Customer Service cum Accounts Executive to ur mail id, For details contact us", -ham,"Cool, text me when you're parked", -ham,"Thanks again for your reply today. When is ur visa coming in. And r u still buying the gucci and bags. My sister things are not easy, uncle john also has his own bills so i really need to think about how to make my own money. Later sha.", -ham,Thanx but my birthday is over already., -ham,"Feb <#> is \I LOVE U\"" day. Send dis to all ur \""VALUED FRNDS\"" evn me. If 3 comes back u'll gt married d person u luv! If u ignore dis u will lose ur luv 4 Evr""", -ham,I calls you later. Afternoon onwords mtnl service get problem in south mumbai. I can hear you but you cann't listen me., -ham,Unni thank you dear for the recharge..Rakhesh, -ham,I am taking you for italian food. How about a pretty dress with no panties? :), -ham,Yup..., -ham,Ard 515 like dat. Y?, -ham,"Haha, my friend tyler literally just asked if you could get him a dubsack", -ham,"Now u sound like manky scouse boy steve,like! I is travelling on da bus home.wot has u inmind 4 recreation dis eve?", -ham,"Oh really? perform, write a paper, go to a movie AND be home by midnight, huh?", -ham,"Isn't frnd a necesity in life? imagine urself witout a frnd.. hw'd u feel at ur colleg? wat'll u do wth ur cell? wat abt functions? thnk abt events espe'll cared, missed & irritated u? 4wrd it to all those dear-loving frnds wthout whom u cant live.. I jst did it.. Takecare..:) GOODMORNING", -ham,But my family not responding for anything. Now am in room not went to home for diwali but no one called me and why not coming. It makes me feel like died., -ham,"Single line with a big meaning::::: \Miss anything 4 ur \""Best Life\"" but", -ham,Thats cool. How was your day?, -ham,"Nowadays people are notixiquating the laxinorficated opportunity for bambling of entropication.... Have you ever oblisingately opted ur books for the masteriastering amplikater of fidalfication? It is very champlaxigating, i think it is atrocious.. Wotz Ur Opinion???? Junna", -ham,Yup i thk so until e shop closes lor., -ham,"Sure, I'll see if I can come by in a bit", -ham,Watching tv now. I got new job :), -ham, gonna let me know cos comes bak from holiday that day. is coming. Don't4get2text me number. , -ham,So wat's da decision?, -ham,I'm okay. Chasing the dream. What's good. What are you doing next., -ham,Hey check it da. I have listed da., -ham,Yes :)it completely in out of form:)clark also utter waste., -ham,Shant disturb u anymore... Jia you..., -ham,"Argh my 3g is spotty, anyway the only thing I remember from the research we did was that province and sterling were the only problem-free places we looked at", -ham,Hey... Why dont we just go watch x men and have lunch... Haha , -ham,"Yeah probably, I still gotta check out with leo", -ham,what I meant to say is cant wait to see u again getting bored of this bridgwater banter, -ham,In fact when do you leave? I think addie goes back to school tues or wed, -ham,No need to buy lunch for me.. I eat maggi mee.., -ham,Dunno cos i was v late n when i reach they inside already... But we ate spageddies lor... It's e gals who r laughing at me lor..., -ham,"Hey doc pls I want to get nice t shirt for my hubby nice fiting ones my budget is <#> k help pls I will load d card abi hw,keep me posted luv. 2 mj", -ham,MY NO. IN LUTON 0125698789 RING ME IF UR AROUND! H*, -ham,Just curious because my cuz asked what I was up to, -ham,They r giving a second chance to rahul dengra., -ham,"Life is more strict than teacher... Bcoz Teacher teaches lesson & then conducts exam, But Life first conducts Exam & then teaches Lessons. Happy morning. . .", -ham,Mm i am on the way to railway, -ham,Ok., -ham,"Hmmm ... And imagine after you've come home from that having to rub my feet, make me dinner and help me get ready for my date ! Are you sure your ready for that kind of life ?", -ham,Will it help if we propose going back again tomorrow, -ham,Idk. I'm sitting here in a stop and shop parking lot right now bawling my eyes out because i feel like i'm a failure in everything. Nobody wants me and now i feel like i'm failing you., -ham,Ok..., -ham,You know what hook up means right?, -ham,"Plz note: if anyone calling from a mobile Co. & asks u to type # <#> or # <#> . Do not do so. Disconnect the call,coz it iz an attempt of 'terrorist' to make use of the sim card no. Itz confirmd by nokia n motorola n has been verified by CNN IBN.", -ham,R ?_ comin back for dinner?, -ham,Your opinion about me? 1. Over 2. Jada 3. Kusruthi 4. Lovable 5. Silent 6. Spl character 7. Not matured 8. Stylish 9. Simple Pls reply.., -ham,She told to hr that he want posting in chennai:)because i'm working here:), -ham,Should i send you naughty pix? :), -ham,HMM yeah if your not too grooved out! And im looking forward to my pound special :), -ham,"Watching cartoon, listening music & at eve had to go temple & church.. What about u?", -ham,Oh thats late! Well have a good night and i will give u a call tomorrow. Iam now going to go to sleep night night, -ham,Hey! Congrats 2u2. id luv 2 but ive had 2 go home!, -ham,"Sorry,in meeting I'll call later", -ham,Does uncle timi help in clearing cars, -ham,"Babe ! How goes that day ? What are you doing ? Where are you ? I sip my cappuccino and think of you, my love ... I send a kiss to you from across the sea", -ham,"Until 545 lor... Ya, can go 4 dinner together...", -ham,If he started searching he will get job in few days.he have great potential and talent., -ham,I can't believe how attached I am to seeing you every day. I know you will do the best you can to get to me babe. I will go to teach my class at your midnight, -ham,Well there's a pattern emerging of my friends telling me to drive up and come smoke with them and then telling me that I'm a weed fiend/make them smoke too much/impede their doing other things so you see how I'm hesitant, -ham,Its like that hotel dusk game i think. You solve puzzles in a area thing, -ham,Do u noe wat time e place dat sells 4d closes?, -ham,Today is ACCEPT DAY..U Accept me as? Brother Sister Lover Dear1 Best1 Clos1 Lvblefrnd Jstfrnd Cutefrnd Lifpartnr Belovd Swtheart Bstfrnd No rply means enemy, -ham,U ned to convince him tht its not possible witot hurting his feeling its the main, -ham,"Babe, I need your advice", -ham,K k pa Had your lunch aha., -ham,"Oh, then your phone phoned me but it disconnected", -ham,Dad went out oredi... , -ham,Aah! A cuddle would be lush! I'd need lots of tea and soup before any kind of fumbling!, -ham,Yup. Wun believe wat? U really neva c e msg i sent shuhui?, -ham,I'll probably be around mu a lot, -ham,No sir. That's why i had an 8-hr trip on the bus last week. Have another audition next wednesday but i think i might drive this time., -ham,Nt joking seriously i told, -ham,I will come with karnan car. Please wait till 6pm will directly goto doctor., -ham,Same to u..., -ham,U gd lor go shopping i got stuff to do. U wan 2 watch infernal affairs a not? Come lar..., -ham,"Hmmm ... I thought we said 2 hours slave, not 3 ... You are late ... How should I punish you ?", -ham,Hey you around? I've got enough for a half + the ten I owe you, -ham,Where r e meeting tmr?, -ham,"Come around <DECIMAL> pm vikky..i'm otside nw, il come by tht time", -ham,I HAVE A DATE ON SUNDAY WITH WILL!!, -ham,Ok lor... But buy wat?, -ham,Am okay. Will soon be over. All the best, -ham,Then ur sis how?, -ham,No no. I will check all rooms befor activities, -ham,Haven't left yet so probably gonna be here til dinner, -ham,When are you guys leaving?, -ham,"Oh... I was thkin of goin yogasana at 10 den no nd to go at 3 den can rush to parco 4 nb... Okie lor, u call me when ready...", -ham,I would but I'm still cozy. And exhausted from last night.nobody went to school or work. Everything is closed., -ham,But i haf enuff space got like 4 mb..., -ham,Pick you up bout 7.30ish? What time are and that going?, -ham,Bull. Your plan was to go floating off to IKEA with me without a care in the world. So i have to live with your mess another day., -ham,I will reach ur home in <#> minutes, -ham,Thankyou so much for the call. I appreciate your care., -ham,Lol please do. Actually send a pic of yourself right now. I wanna see. Pose with a comb and hair dryer or something., -ham,i cant talk to you now.i will call when i can.dont keep calling., -ham,"Sorry, I'll call later", -ham,"Hello my boytoy ... Geeee I miss you already and I just woke up. I wish you were here in bed with me, cuddling me. I love you ...", -ham,"Cool, text me when you're ready", -ham,Right it wasnt you who phoned it was someone with a number like yours!, -ham,Anytime lor..., -ham,great princess! I love giving and receiving oral. Doggy style is my fave position. How about you? I enjoy making love <#> times per night :), -ham,Mm feeling sleepy. today itself i shall get that dear, -ham,"No i'm not. I can't give you everything you want and need. You actually could do better for yourself on yor own--you've got more money than i do. I can't get work, i can't get a man, i can't pay the rent, i can't even fill my fucking gas tank. yes, i'm stressed and depressed. I didn't even call home for thanksgiving cuz i'll have to tell them i,m up to nothing.", -ham,Quite late lar... Ard 12 anyway i wun b drivin..., -ham,So how are you really. What are you up to. How's the masters. And so on., -ham,"\AH POOR BABY!HOPE URFEELING BETTERSN LUV! PROBTHAT OVERDOSE OF WORK HEY GO CAREFUL SPK 2 U SN LOTS OF LOVEJEN XXX.\""""", -ham,"I'm home, my love ... If your still awake ... *loving kiss*", -ham,Ok lor., -ham,"\HELLO U.CALL WEN U FINISH WRK.I FANCY MEETIN UP WIV U ALL TONITE AS I NEED A BREAK FROM DABOOKS. DID 4 HRS LAST NITE+2 TODAY OF WRK!\""""", -ham,Tomarrow final hearing on my laptop case so i cant., -ham,Or better still can you catch her and let ask her if she can sell <#> for me., -ham,"Wait that's still not all that clear, were you not sure about me being sarcastic or that that's why x doesn't want to live with us", -ham,Oh ho. Is this the first time u use these type of words, -ham,"Hiya, had a good day? Have you spoken to since the weekend?", -ham,thanks for the temales it was wonderful. Thank. Have a great week., -ham,Yes I know the cheesy songs from frosty the snowman :), -ham,"Sorry chikku, my cell got some problem thts y i was nt able to reply u or msg u..", -ham,If you're thinking of lifting me one then no., -ham,Some are lasting as much as 2 hours. You might get lucky., -ham,"Aight, let me know when you're gonna be around usf", -ham,Its a part of checking IQ, -ham,Finish liao... U?, -ham,Yes when is the appt again?, -ham,"You know, wot people wear. T shirts, jumpers, hat, belt, is all we know. We r at Cribbs", -ham,Oops I was in the shower when u called. Hey a parking garage collapsed at university hospital. See I'm not crazy. Stuff like that DOES happen., -ham,"Yes, i'm small kid.. And boost is the secret of my energy..", -ham,Sounds like a plan! Cardiff is still here and still cold! I'm sitting on the radiator!, -ham,I know that my friend already told that., -ham,"HEY THERE BABE, HOW U DOIN? WOT U UP 2 2NITE LOVE ANNIE X.", -ham,Where's my boytoy? I miss you ... What happened?, -ham,"Sorry, went to bed early, nightnight", -ham,I dont know oh. Hopefully this month., -ham,If you were/are free i can give. Otherwise nalla adi entey nattil kittum, -ham,Now project pa. After that only i can come., -ham,K go and sleep well. Take rest:-)., -ham,Arun can u transfr me d amt, -ham,Also track down any lighters you can find, -ham,Slept? I thinkThis time ( <#> pm) is not dangerous, -ham,Oi when you gonna ring, -ham,"Haha yeah, 2 oz is kind of a shitload", -ham,Not yet. Just i'd like to keep in touch and it will be the easiest way to do that from barcelona. By the way how ru and how is the house?, -ham,"OH MR SHEFFIELD! You wanna play THAT game, okay. You're the boss and I'm the nanny. You give me a raise and I'll give YOU one!!", -ham,Yeah I don't see why not, -ham,Anything lor but toa payoh got place 2 walk meh..., -ham,"Hey sexy buns ! Have I told you ? I adore you, loverboy. I hope you remember to thank your sister in law for those meatballs *grins* ... i love you, babe", -ham,"Can meh? Thgt some will clash... Really ah, i dun mind... I dun seen to have lost any weight... Gee...", -ham,I'm at home. Please call, -ham,No da. I am happy that we sit together na, -ham,Ok..., -ham,o turns out i had stereo love on mi phone under the unknown album., -ham,I liked your new house, -ham,I dont want to hear anything, -ham,Bugis oso near wat... , -ham,Love it! I want to flood that pretty pussy with cum..., -ham,Just forced myself to eat a slice. I'm really not hungry tho. This sucks. Mark is getting worried. He knows I'm sick when I turn down pizza. Lol, -ham,Ok lor. Msg me b4 u call., -ham,You know my old Dom I told you about yesterday ? His name is Roger? He got in touch with me last night and wants me to meet him today at 2 pm, -ham,"\SHIT BABE.. THASA BIT MESSED UP.YEH ILLSPEAK 2 U2MORO WEN IM NOT ASLEEP...\"""" ILLSPEAK 2 U2MORO WEN IM NOT ASLEEP...\""""", -ham,Hey what how about your project. Started aha da., -ham,Dun need to use dial up juz open da browser n surf..., -ham,I love to give massages. I use lots of baby oil... What is your fave position?, -ham,HAPPY NEW YEAR MY NO.1 MAN, -ham,"Perhaps * is much easy give your account identification, so i will tomorrow at UNI", -ham,Its not that time of the month nor mid of the time?, -ham,But am going to college pa. What to do. are else ill come there it self. Pa., -ham,Nooooooo I'm gonna be bored to death all day. Cable and internet outage., -ham,It vl bcum more difficult.., -ham,Hey... are you going to quit soon? Xuhui and i working till end of the month , -ham,Apo all other are mokka players only, -ham,You only hate me. You can call any but you didnt accept even a single call of mine. Or even you messaged, -ham,Just seeing your missed call my dear brother. Do have a gr8 day., -ham,"Just gettin a bit arty with my collages at the mo, well tryin 2 ne way! Got a roast in a min lovely i shall enjoy that!", -ham,Convey my regards to him, -ham,I always chat with you. In fact i need money can you raise me?, -ham,"Sorry, I'll call later", -ham,Carlos says he'll be at mu in <#> minutes, -ham,"K, fyi I'm back in my parents' place in south tampa so I might need to do the deal somewhere else", -ham,I donno its in your genes or something, -ham,R U &SAM P IN EACHOTHER. IF WE MEET WE CAN GO 2 MY HOUSE, -ham,Do have a nice day today. I love you so dearly., -ham,K I'll call you when I'm close, -ham,R u sure they'll understand that! Wine * good idea just had a slurp!, -ham,No chikku nt yet.. Ya i'm free, -ham,Uncle Abbey! Happy New Year. Abiola, -ham,S'fine. Anytime. All the best with it., -ham,On the way to office da.., -ham,Dai i downloaded but there is only exe file which i can only run that exe after installing., -ham,"Lemme know when I can swing by and pick up, I'm free basically any time after 1 all this semester", -ham,Good Morning my Dear Shijutta........... Have a great & successful day., -ham,"Its ok, if anybody asks abt me, u tel them..:-P", -ham,Stupid auto correct on my phone, -ham,No message..no responce..what happend?, -ham,"Sad story of a Man - Last week was my b'day. My Wife did'nt wish me. My Parents forgot n so did my Kids . I went to work. Even my Colleagues did not wish. As I entered my cabin my PA said, '' Happy B'day Boss !!''. I felt special. She askd me 4 lunch. After lunch she invited me to her apartment. We went there. She said,'' do u mind if I go into the bedroom for a minute ? '' ''OK'', I sed in a sexy mood. She came out 5 minuts latr wid a cake...n My Wife, My Parents, My Kidz, My Friends n My Colleagues. All screaming.. SURPRISE !! and I was waiting on the sofa.. ... ..... ' NAKED...!", -ham,Did u receive my msg?, -ham,"Yo, the game almost over? Want to go to walmart soon", -ham,Olol i printed out a forum post by a guy with the exact same prob which was fixed with a gpu replacement. Hopefully they dont ignore that., -ham,U 2., -ham,S s..first time..dhoni rocks..., -ham,Sorry. || mail? || , -ham,Dunno dat's wat he told me. Ok lor..., -ham,Yo we are watching a movie on netflix, -ham,I borrow ur bag ok., -ham,"K I'll head out in a few mins, see you there", -ham,"Did you say bold, then torch later. Or one torch and 2bold?", -ham,Come to medical college at 7pm ......forward it da, -ham,Hmmm:)how many players selected?, -ham,"HI HUN! IM NOT COMIN 2NITE-TELL EVERY1 IM SORRY 4 ME, HOPE U AVA GOODTIME!OLI RANG MELNITE IFINK IT MITE B SORTED,BUT IL EXPLAIN EVERYTHIN ON MON.L8RS.x", -ham,"If you're still up, maybe leave the credit card so I can get gas when I get back like he told me to", -ham,Go chase after her and run her over while she's crossing the street, -ham,My house here e sky quite dark liao... If raining then got excuse not 2 run already rite... Hee..., -ham,I've been trying to reach him without success, -ham,About <#> bucks. The banks fees are fixed. Better to call the bank and find out., -ham,"Greetings me, ! Consider yourself excused.", -ham,"Dear all, as we know <#> th is the <#> th birthday of our loving Gopalettan. We are planning to give a small gift on that day. Those who like to participate in that you are welcome. Please contact our admin team for more details", -ham,Wrong phone! This phone! I answer this one but assume the other is people i don't well, -ham,Minimum walk is 3miles a day., -ham,I'm not. She lip synced with shangela., -ham,I dont thnk its a wrong calling between us, -ham,"Send ur birthdate with month and year, I will tel u ur LIFE PARTNER'S name. and the method of calculation. Reply must.", -ham,"Call me da, i am waiting for your call.", -ham,This is wishing you a great day. Moji told me about your offer and as always i was speechless. You offer so easily to go to great lengths on my behalf and its stunning. My exam is next friday. After that i will keep in touch more. Sorry., -ham,I'm turning off my phone. My moms telling everyone I have cancer. And my sister won't stop calling. It hurts to talk. Can't put up with it. See u when u get home. Love u, -ham,"Good morning, im suffering from fever and dysentry ..will not be able to come to office today.", -ham,Are you this much buzy, -ham,"Miss ya, need ya, want ya, love ya.", -ham,Anytime..., -ham,I will be gentle baby! Soon you will be taking all <#> inches deep inside your tight pussy..., -ham,Oh did you charge camera, -ham,I am back. Bit long cos of accident on a30. Had to divert via wadebridge.I had a brilliant weekend thanks. Speak soon. Lots of love, -ham,My uncles in Atlanta. Wish you guys a great semester., -ham,Big brother???s really scraped the barrel with this shower of social misfits, -ham,Then ?_ ask dad to pick ?_ up lar... ?? wan 2 stay until 6 meh..., -ham,I know girls always safe and selfish know i got it pa. Thank you. good night., -ham,"A swt thought: \Nver get tired of doing little things 4 lovable persons..\"" Coz..somtimes those little things occupy d biggest part in their Hearts.. Gud ni8""", -ham,Well there's not a lot of things happening in Lindsay on New years *sighs* Some bars in Ptbo and the blue heron has something going, -ham,No. But we'll do medical missions to nigeria, -ham,Then ?_ come n pick me at 530 ar?, -ham,"Yo, you at jp and hungry like a mofo?", -ham,"Cool breeze... Bright sun... Fresh flower... Twittering birds... All these waiting to wish u: \GOODMORNING & HAVE A NICE DAY\"" :)""", -ham,Lol. Well quality aint bad at all so i aint complaining, -ham,"We made it! Eta at taunton is 12:30 as planned, hope that???s still okday?! Good to see you! :-xx", -ham,Can. Dunno wat to get 4 her..., -ham,"Dear Sir,Salam Alaikkum.Pride and Pleasure meeting you today at the Tea Shop.We are pleased to send you our contact number at Qatar.Rakhesh an Indian.Pls save our Number.Respectful Regards.", -ham,"Indians r poor but India is not a poor country. Says one of the swiss bank directors. He says that \ <#> lac crore\"" of Indian money is deposited in swiss banks which can be used for 'taxless' budget for <#> yrs. Can give <#> crore jobs to all Indians. From any village to Delhi 4 lane roads. Forever free power suply to more than <#> social projects. Every citizen can get monthly <#> /- for <#> yrs. No need of World Bank & IMF loan. Think how our money is blocked by rich politicians. We have full rights against corrupt politicians. Itna forward karo ki pura INDIA padhe.g.m.\""""", -ham,Okay. I've seen it. So i should pick it on friday?, -ham,"Good afternoon, my love ... How goes your day ? How did you sleep ? I hope your well, my boytoy ... I think of you ...", -ham,Pls help me tell Ashley that i cant find her number oh, -ham,<#> am I think? Should say on syllabus, -ham,Then why no one talking to me, -ham,I sent lanre fakeye's Eckankar details to the mail box, -ham,Joy's father is John. Then John is the NAME of Joy's father. Mandan, -ham,Check audrey's status right now, -ham,Dip's cell dead. So i m coming with him. U better respond else we shall come back., -ham,Raji..pls do me a favour. Pls convey my Birthday wishes to Nimya. Pls. Today is her birthday., -ham,Yo do you know anyone <#> or otherwise able to buy liquor? Our guy flaked and right now if we don't get a hold of somebody its just 4 loko all night, -ham,Hi da:)how is the todays class?, -ham,"Good afternoon, my love! How goes that day ? I hope maybe you got some leads on a job. I think of you, boytoy and send you a passionate kiss from across the sea", -ham,They did't play one day last year know even though they have very good team.. Like india., -ham,It should take about <#> min, -ham,S:-)kallis wont play in first two odi:-), -ham,No she didnt. I will search online and let you know., -ham,Unlimited texts. Limited minutes., -ham,God created gap btwn ur fingers so dat sum1 vry special will fill those gaps by holding ur hands.. Now plz dont ask y he created so much gap between legs !!!, -ham,"U wake up already? Wat u doing? U picking us up later rite? I'm taking sq825, reaching ard 7 smth 8 like dat. U can check e arrival time. C ya soon...", -ham,"Mah b, I'll pick it up tomorrow", -ham,"\BOO BABE! U ENJOYIN YOURJOB? U SEEMED 2 B GETTIN ON WELL HUNNY!HOPE URE OK?TAKE CARE & I??LLSPEAK 2U SOONLOTS OF LOVEME XXXX.\""""", -ham,10 min later k..., -ham,The world's most happiest frnds never have the same characters... Dey just have the best understanding of their differences..., -ham,Convey my regards to him, -ham,I lost 4 pounds since my doc visit last week woot woot! Now I'm gonna celebrate by stuffing my face!, -ham,"Storming msg: Wen u lift d phne, u say \HELLO\"" Do u knw wt is d real meaning of HELLO?? . . . It's d name of a girl..! . . . Yes.. And u knw who is dat girl?? \""Margaret Hello\"" She is d girlfrnd f Grahmbell who invnted telphone... . . . . Moral:One can 4get d name of a person", -ham,You can jot down things you want to remember later., -ham,"U need my presnts always bcz U cant mis love. \jeevithathile irulinae neekunna prakasamanu sneham\"" prakasam ennal prabha 'That mns prabha is'LOVE' Got it. Dont mis me....""", -ham,Yes but can we meet in town cos will go to gep and then home. You could text at bus stop. And don't worry we'll have finished by march ??_ ish!, -ham,Now only i reached home. . . I am very tired now. . I will come tomorro, -ham,LOOK AT THE FUCKIN TIME. WHAT THE FUCK YOU THINK IS UP, -ham,What type of stuff do you sing?, -ham,What to think no one saying clearly. Ok leave no need to ask her. I will go if she come or not, -ham,my ex-wife was not able to have kids. Do you want kids one day?, -ham,"Aight, I should be there by 8 at the latest, probably closer to 7. Are jay and tyler down or should we just do two trips?", -ham,Sday only joined.so training we started today:), -ham,K. Did you call me just now ah? , -ham,"Not for possession, especially not first offense", -ham,"Er, hello, things didn???t quite go to plan ??? is limping slowly home followed by aa and with exhaust hanging off", -ham,I will spoil you in bed as well :), -ham,Huh y lei..., -ham,I love to wine and dine my lady!, -ham,S:)s.nervous <#> :), -ham,Hi dear we saw dear. We both are happy. Where you my battery is low, -ham,I sent them. Do you like?, -ham,Not a lot has happened here. Feels very quiet. Beth is at her aunts and charlie is working lots. Just me and helen in at the mo. How have you been? , -ham,Aight sorry I take ten years to shower. What's the plan?, -ham,What u talking bout early morning? It's almost noon where your at!, -ham,Already one guy loving you:-., -ham,Oh... Lk tt den we take e one tt ends at cine lor... Dun wan yogasana oso can... , -ham,Ok enjoy . R u there in home., -ham,I can't describe how lucky you are that I'm actually awake by noon, -ham,"Babe! How goes that day ? What are you up to ? I miss you already, my Love ... * loving kiss* ... I hope everything goes well.", -ham,"I'm back & we're packing the car now, I'll let you know if there's room", -ham,Yup he msg me: is tat yijue? Then i tot it's my group mate cos we meeting today mah... I'm askin if ?_ leaving earlier or wat mah cos mayb ?_ haf to walk v far..., -ham,Ok, -ham,"Christmas is An occasion that is Celebrated as a Reflection of UR... Values..., Desires..., Affections...& Traditions.... Have an ideal Christmas...", -ham,Is she replying. Has boye changed his phone number, -ham,It so happens that there r 2waxsto do wat you want. She can come and ill get her medical insurance. And she'll be able to deliver and have basic care. I'm currently shopping for the right medical insurance for her. So just give me til friday morning. Thats when i.ll see the major person that can guide me to the right insurance., -ham,Should i buy him a blackberry bold 2 or torch. Should i buy him new or used. Let me know. Plus are you saying i should buy the <#> g wifi ipad. And what are you saying about the about the <#> g?, -ham,"You have come into my life and brought the sun ..Shiny down on me, warming my heart. Putting a constant smile on my face ... Making me feel loved and cared for", -ham,Pls go there today <#> . I dont want any excuses, -ham,I want to lick your pussy now..., -ham,Prepare to be pleasured :), -ham,"\HI BABE UAWAKE?FEELLIKW SHIT.JUSTFOUND OUT VIA ALETTER THATMUM GOTMARRIED 4thNOV.BEHIND OURBACKS ?? FUCKINNICE!SELFISH I??L CALL U\""""", -ham,How much is blackberry bold2 in nigeria., -ham,Ok. Every night take a warm bath drink a cup of milk and you'll see a work of magic. You still need to loose weight. Just so that you know, -ham,"The sign of maturity is not when we start saying big things.. But actually it is, when we start understanding small things... *HAVE A NICE EVENING* BSLVYL", -ham,I accidentally deleted the message. Resend please., -ham,Tension ah?what machi?any problem?, -ham,Huh so early.. Then ?_ having dinner outside izzit?, -ham,How r ?_ going to send it to me?, -ham,Just woke up. Yeesh its late. But I didn't fall asleep til <#> am :/, -ham,Heart is empty without love.. Mind is empty without wisdom.. Eyes r empty without dreams & Life is empty without frnds.. So Alwys Be In Touch. Good night & sweet dreams, -ham,Didn't you get hep b immunisation in nigeria., -ham,As per your request 'Maangalyam (Alaipayuthe)' has been set as your callertune for all Callers. Press *9 to copy your friends Callertune, -ham,K:)k..its good:)when are you going?, -ham,Great! I shoot big loads so get ready!, -ham,U still painting ur wall?, -ham,No my mum went 2 dentist., -ham,"Pete,is this your phone still? Its Jenny from college and Leanne.what are you up to now?:)", -ham,I got it before the new year cos yetunde said she wanted to surprise you with it but when i didnt see money i returned it mid january before the <#> day return period ended., -ham,Enjoy ur life. . Good night, -ham,"Yeah work is fine, started last week, all the same stuff as before, dull but easy and guys are fun!", -ham,K..k:)where are you?how did you performed?, -ham,His bday real is in april ., -ham,Hey are we going for the lo lesson or gym? , -ham,Let me know if you need anything else. Salad or desert or something... How many beers shall i get?, -ham,Which is why i never wanted to tell you any of this. Which is why i'm so short with you and on-edge as of late., -ham,Okie.. Thanx.., -ham,"The sign of maturity is not when we start saying big things.. But actually it is, when we start understanding small things... *HAVE A NICE EVENING* BSLVYL", -ham,Aight what time you want me to come up?, -ham,hows my favourite person today? r u workin hard? couldn't sleep again last nite nearly rang u at 4.30, -ham,What you need. You have a person to give na., -ham,She doesnt need any test., -ham,Me too watching surya movie only. . .after 6 pm vijay movie POKKIRI, -ham,<#> w jetton ave if you forgot, -ham,Hiya. How was last night? I've been naughty and bought myself clothes and very little ... Ready for more shopping tho! What kind of time do you wanna meet?, -ham,Wife.how she knew the time of murder exactly, -ham,Ok lor ?_ reaching then message me., -ham,"Lol, oh you got a friend for the dog ?", -ham,Wife.how she knew the time of murder exactly, -ham,Yar... I tot u knew dis would happen long ago already., -ham,Well good morning mr . Hows london treatin' ya treacle?, -ham,Finished class where are you., -ham,"Yeah there's quite a bit left, I'll swing by tomorrow when I get up", -ham,I'm still looking for a car to buy. And have not gone 4the driving test yet., -ham,"Well, I have to leave for my class babe ... You never came back to me ... :-( ... Hope you have a nice sleep, my love", -ham,"Abeg, make profit. But its a start. Are you using it to get sponsors for the next event?", -ham,Then why you came to hostel., -ham,What pa tell me.. I went to bath:-), -ham,I can't make it tonight, -ham,I'm stuck in da middle of da row on da right hand side of da lt... , -ham,Even if he my friend he is a priest call him now, -ham,Ok no prob... I'll come after lunch then..., -ham,Just wanted to say holy shit you guys weren't kidding about this bud, -ham,The whole car appreciated the last two! Dad and are having a map reading semi argument but apart from that things are going ok. P., -ham,Hello. They are going to the village pub at 8 so either come here or there accordingly. Ok?, -ham,Can a not?, -ham,Yup bathe liao..., -ham,Excellent! Wish we were together right now!, -ham,That is wondarfull song, -ham,Boy; I love u Grl: Hogolo Boy: gold chain kodstini Grl: Agalla Boy: necklace madstini Grl: agalla Boy: Hogli 1 mutai eerulli kodthini! Grl: I love U kano;-), -ham,WE REGRET TO INFORM U THAT THE NHS HAS MADE A MISTAKE.U WERE NEVER ACTUALLY BORN.PLEASE REPORT 2 YOR LOCAL HOSPITAL 2B TERMINATED.WE R SORRY 4 THE INCONVENIENCE, -ham,"When you get free, call me", -ham,I agree. So i can stop thinkin about ipad. Can you please ask macho the same question., -ham,"Yar lor he wan 2 go c horse racing today mah, so eat earlier lor. I ate chicken rice. U?", -ham,"Best line said in Love: . \I will wait till the day I can forget u Or The day u realize that u cannot forget me.\""... Gn""", -ham,"Gal n boy walking in d park. gal-can i hold ur hand? boy-y? do u think i would run away? gal-no, jst wana c how it feels walking in heaven with an prince..GN:-)", -ham,Msgs r not time pass.They silently say that I am thinking of U right now and also making U think of me at least 4 a moment. Gd nt.swt drms @Shesil, -ham,Ok lor thanx... ?? in school?, -ham,So what about you. What do you remember, -ham,Babe ? I lost you ... :-(, -ham,K fyi x has a ride early tomorrow morning but he's crashing at our place tonight, -ham,I.ll get there tomorrow and send it to you, -ham,Cramps stopped. Going back to sleep, -ham,"Sorry, I'll call later", -ham,Take something for pain. If it moves however to any side in the next 6hrs see a doctor., -ham,R we still meeting 4 dinner tonight?, -ham,"Good! No, don???t need any receipts???well done! (??_) Yes, please tell . What???s her number, i could ring her", -ham,"Well the weather in cali's great. But its complexities are great. You need a car to move freely, its taxes are outrageous. But all in all its a great place. The sad part is i missing home.", -ham,Noooooooo please. Last thing I need is stress. For once in your life be fair., -ham,* Will be september by then!, -ham,I meant as an apology from me for texting you to get me drugs at <#> at night, -ham,Nope but i'm going home now then go pump petrol lor... Like going 2 rain soon..., -ham,Will do. Have a good day, -ham,Just buy a pizza. Meat lovers or supreme. U get to pick., -ham,"Aight, can you text me the address?", -ham,"And stop wondering \wow is she ever going to stop tm'ing me ?!\"" because I will tm you whenever I want because you are MINE ... *laughs*""", -ham,How much it will cost approx . Per month., -ham,Ok lar... Joking wif u oni..., -ham,Heart is empty without love.. Mind is empty without wisdom.. Eyes r empty without dreams & Life is empty without frnds.. So Alwys Be In Touch. Good night & sweet dreams, -ham,"The affidavit says <#> E Twiggs St, division g, courtroom <#> , <TIME> AM. I'll double check and text you again tomorrow", -ham,K...k...when will you give treat?, -ham,"The LAY MAN! Just to let you know you are missed and thought off. Do have a great day. And if you can send me bimbo and ugo's numbers, ill appreciate. Safe", -ham,It's ok i wun b angry. Msg u aft i come home tonight., -ham,Ya just telling abt tht incident.., -ham,This single single answers are we fighting? Plus i said am broke and you didnt reply, -ham,Ok..., -ham,No. Yes please. Been swimming?, -ham,Still i have not checked it da. . ., -ham,"Yeah, we can probably swing by once my roommate finishes up with his girl", -ham,Just trying to figure out when I'm suppose to see a couple different people this week. We said we'd get together but I didn't set dates, -ham,Doing my masters. When will you buy a bb cos i have for sale and how's bf, -ham,Lol grr my mom is taking forever with my prescription. Pharmacy is like 2 minutes away. Ugh., -ham,"Finally it has happened..! Aftr decades..! BEER is now cheaper than PETROL! The goverment expects us to \DRINK\"". . . But don't \""DRIVE \""""", -ham,For many things its an antibiotic and it can be used for chest abdomen and gynae infections even bone infections., -ham,My sister cleared two round in birla soft yesterday., -ham,Dun b sad.. It's over.. Dun thk abt it already. Concentrate on ur other papers k., -ham,Hi. I'm sorry i missed your call. Can you pls call back., -ham,"No my blankets are sufficient, thx", -ham,We have to pick rayan macleran there., -ham,"??_ we r stayin here an extra week, back next wed. How did we do in the rugby this weekend? Hi to and and , c u soon \"" ham""", -ham,You will be in the place of that man, -ham,So now my dad is gonna call after he gets out of work and ask all these crazy questions., -ham,"Bill, as in: Are there any letters for me. i???m expecting one from orange that isn???t a bill but may still say orange on it.", -ham,Hey i will be really pretty late... You want to go for the lesson first? I will join you. I'm only reaching tp mrt, -ham,"Kind of. Just missed train cos of asthma attack, nxt one in half hr so driving in. not sure where to park.", -ham,Ok. She'll be ok. I guess, -ham,Goodo! Yes we must speak friday - egg-potato ratio for tortilla needed! , -ham,Have a nice day my dear., -ham,Or i go home first lar ?_ wait 4 me lor.. I put down my stuff first.., -ham,how tall are you princess?, -ham,Oh k.i think most of wi and nz players unsold., -ham,Yesterday its with me only . Now am going home., -ham,Yes ammae....life takes lot of turns you can only sit and try to hold the steering..., -ham,I am literally in bed and have been up for like <#> hours, -ham,Oops i thk i dun haf enuff... I go check then tell ?_.., -ham,Ladies first and genus second k ., -ham,"Honeybee Said: *I'm d Sweetest in d World* God Laughed & Said: *Wait,U Havnt Met d Person Reading This Msg* MORAL: Even GOD Can Crack Jokes! GM+GN+GE+GN:)", -ham,You'll never believe this but i have actually got off at taunton. Wow, -ham,MAKE SURE ALEX KNOWS HIS BIRTHDAY IS OVER IN FIFTEEN MINUTES AS FAR AS YOU'RE CONCERNED, -ham,Badrith is only for chennai:)i will surely pick for us:)no competition for him., -ham,did u get that message, -ham,Oh really?? Did you make it on air? What's your talent?, -ham,"Good morning, my boytoy! How's those yummy lips ? Where's my sexy buns now ? What do you do ? Do you think of me ? Do you crave me ? Do you need me ?", -ham,Depends on individual lor e hair dresser say pretty but my parents say look gong. U kaypoh.. I also dunno wat she collecting., -ham,"I can probably come by, everybody's done around <#> right?", -ham,Lol your always so convincing., -ham,cool. We will have fun practicing making babies!, -ham,"Aiyo... Her lesson so early... I'm still sleepin, haha... Okie, u go home liao den confirm w me lor...", -ham,Mm umma ask vava also to come tell him can play later together, -ham,I'm in a movie. Call me 4 wat?, -ham,My computer just fried the only essential part we don't keep spares of because my fucking idiot roommates looovvve leaving the thing running on full <#> /7, -ham,U don't know how stubborn I am. I didn't even want to go to the hospital. I kept telling Mark I'm not a weak sucker. Hospitals are for weak suckers., -ham,Oi. Ami parchi na re. Kicchu kaaj korte iccha korche na. Phone ta tul na. Plz. Plz., -ham,I sent your maga that money yesterday oh., -ham,Nan sonathaya soladha. Why boss?, -ham,Waaaat?? Lololo ok next time then!, -ham,Yes there were many sweets, -ham,Okie..., -ham,Joy's father is John. Then John is the ____ of Joy's father. If u ans ths you hav <#> IQ. Tis s IAS question try to answer., -ham,I like you peoples very much:) but am very shy pa., -ham,No objection. My bf not coming., -ham,"What are you doing in langport? Sorry, but I'll probably be in bed by 9pm. It sucks being ill at xmas! When do you and go2sri lanka? ", -ham,how are you? I miss you!, -ham,No message..no responce..what happend?, -ham,I gotta collect da car at 6 lei., -ham,Where are you ? What are you doing ? Are yuou working on getting the pc to your mom's ? Did you find a spot that it would work ? I need you, -ham,Sorry da:)i was thought of calling you lot of times:)lil busy.i will call you at noon.., -ham,What's up. Do you want me to come online?, -ham,Quite ok but a bit ex... U better go eat smth now else i'll feel guilty..., -ham,What you doing?how are you?, -ham,Honey boo I'm missing u., -ham,Oh just getting even with u.... u?, -ham,K I'll be sure to get up before noon and see what's what, -ham,Yes :)it completely in out of form:)clark also utter waste., -ham,"Haha good to hear, I'm officially paid and on the market for an 8th", -ham,4 oclock at mine. Just to bash out a flat plan., -ham,Don know:)this week i'm going to tirunelvai da., -ham,Honestly i've just made a lovely cup of tea and promptly dropped my keys in it and then burnt my fingers getting them out!, -ham,Good. do you think you could send me some pix? I would love to see your top and bottom..., -ham,Beautiful truth : Expression of the face could Be seen by everyone... But the depression of heart Could be understood only By the Loved ones.. Gud Ni8;-), -ham,I've told you everything will stop. Just dont let her get dehydrated., -ham,Y?WHERE U AT DOGBREATH? ITS JUST SOUNDING LIKE JAN C THAT??S AL!!!!!!!!!, -ham,I could ask carlos if we could get more if anybody else can chip in, -ham,Hope you are not scared!, -ham,"Sorry, was in the bathroom, sup", -ham,Well at this right I'm gonna have to get up and check today's steam sales/pee so text me when you want me to come get you, -ham,"Night has ended for another day, morning has come in a special way. May you smile like the sunny rays and leaves your worries at the blue blue bay. Gud mrng", -ham,Can ?_ call me at 10:10 to make sure dat i've woken up..., -ham,I'm meeting Darren..., -ham,Thts wat Wright Brother did to fly.., -ham,Ard 530 lor. I ok then message ?_ lor., -ham,But i'm surprised she still can guess right lor..., -ham,Lol no. Just trying to make your day a little more interesting, -ham,But i juz remembered i gotta bathe my dog today.., -ham,"No dude, its not fake..my frnds got money, thts y i'm reffering u..if u member wit my mail link, u vl be credited <#> rs and il be getiing <#> rs..i can draw my acc wen it is <#> rs..", -ham,Are you the cutest girl in the world or what, -ham,Ugh my leg hurts. Musta overdid it on mon., -ham,Thats cool! I am a gentleman and will treat you with dignity and respect., -ham,R u here yet? I'm wearing blue shirt n black pants., -ham,So ?_ pay first lar... Then when is da stock comin..., -ham,No you'll just get a headache trying to figure it out. U can trust me to do the math. I promise. O:-), -ham,To day class is there are no class., -ham,No. I.ll meet you in the library, -ham,I am on the way to ur home, -ham,Was doing my test earlier. I appreciate you. Will call you tomorrow., -ham,That's ok. I popped in to ask bout something and she said you'd been in. Are you around tonght wen this girl comes?, -ham,I told your number to gautham.., -ham,Why must we sit around and wait for summer days to celebrate. Such a magical sight when the worlds dressed in white. Oooooh let there be snow., -ham,I though we shd go out n have some fun so bar in town or something ??? sound ok?, -ham,Then mum's repent how?, -ham,"Time n Smile r the two crucial things in our life. Sometimes time makes us to forget smile, and sometimes someone's smile makes us to forget time gud noon", -ham,Just sleeping..and surfing, -ham,I am great! How are you?, -ham,Miss call miss call khelate kintu opponenter miss call dhorte lage. Thats d rule. One with great phone receiving quality wins., -ham,How's it feel? Mr. Your not my real Valentine just my yo Valentine even tho u hardly play!!, -ham,So is there anything specific I should be doing with regards to jaklin or what because idk what the fuck, -ham,How much for an eighth?, -ham,Already am squatting is the new way of walking, -ham,I wanna watch that movie, -ham,We'll you pay over like <#> yrs so its not too difficult, -ham,Havent still waitin as usual... ?? come back sch oredi?, -ham,Today iZ Yellow rose day. If u love my frndship give me 1 misscall & send this to ur frndZ & See how many miss calls u get. If u get 6missed U marry ur Lover., -ham,Yes but I don't care cause I know its there!, -ham,Thanks. It was only from tescos but quite nice. All gone now. Speak soon , -ham,Still in customer place, -ham,I dont have that much image in class., -ham,Ha... Both of us doing e same thing. But i got tv 2 watch. U can thk of where 2 go tonight or u already haf smth in mind..., -ham,I have gone into get info bt dont know what to do, -ham,Sending you greetings of joy and happiness. Do have a gr8 evening, -ham,Call me when u finish then i come n pick u., -ham,"Hello, As per request from <#> Rs.5 has been transfered to you", -ham,"No, I was trying it all weekend ;V", -ham,K:)i will give my kvb acc details:), -ham,"Yeah, probably earlier than that", -ham,All done? All handed in? Celebrations in full swing yet?, -ham,"Aight fuck it, I'll get it later", -ham,"Please protect yourself from e-threats. SIB never asks for sensitive information like Passwords,ATM/SMS PIN thru email. Never share your password with anybody.", -ham,But i dint slept in afternoon., -ham,I cant keep talking to people if am not sure i can pay them if they agree to price. So pls tell me what you want to really buy and how much you are willing to pay, -ham,I dont know why she.s not getting your messages, -ham,?? dun need to pick ur gf?, -ham,"We are at grandmas. Oh dear, u still ill? I felt Shit this morning but i think i am just hungover! Another night then. We leave on sat.", -ham,What i told before i tell. Stupid hear after i wont tell anything to you. You dad called to my brother and spoken. Not with me., -ham,"awesome, how do I deal with the gate? Charles told me last night but, uh, yeah", -ham,Ok lor... Or u wan me go look 4 u?, -ham,Yes i have. So that's why u texted. Pshew...missing you so much, -ham,What year. And how many miles., -ham,"I think I???m waiting for the same bus! Inform me when you get there, if you ever get there.", -ham,I not at home now lei..., -ham,Takin a shower now but yeah I'll leave when I'm done, -ham,Did u got that persons story, -ham,Happy new year to u too!, -ham,Doesn't g have class early tomorrow and thus shouldn't be trying to smoke at <#>, -ham,S but not able to sleep., -ham,\alright babe, -ham,Audrie lousy autocorrect, -ham,hiya hows it going in sunny africa? hope u r avin a good time. give that big old silver back a big kiss from me., -ham,"Fighting with the world is easy, u either win or lose bt fightng with some1 who is close to u is dificult if u lose - u lose if u win - u still lose.", -ham,PISS IS TALKING IS SOMEONE THAT REALISE U THAT POINT THIS AT IS IT.(NOW READ IT BACKWARDS), -ham,Aight should I just plan to come up later tonight?, -ham,Wot is u up 2 then bitch?, -ham,* Am on my way, -ham,Beauty sleep can help ur pimples too., -ham,"Pls send me a comprehensive mail about who i'm paying, when and how much.", -ham,"My Parents, My Kidz, My Friends n My Colleagues. All screaming.. SURPRISE !! and I was waiting on the sofa.. ... ..... ' NAKED...!", -ham,You best watch what you say cause I get drunk as a motherfucker, -ham,Hurt me... Tease me... Make me cry... But in the end of my life when i die plz keep one rose on my grave and say STUPID I MISS U.. HAVE A NICE DAY BSLVYL, -ham,I bought the test yesterday. Its something that lets you know the exact day u ovulate.when will get 2u in about 2 to 3wks. But pls pls dont fret. I know u r worried. Pls relax. Also is there anything in ur past history u need to tell me?, -ham,Ooooooh I forgot to tell u I can get on yoville on my phone, -ham,Dunno lei... I thk mum lazy to go out... I neva ask her yet..., -ham,That's a shame! Maybe cld meet for few hrs tomo?, -ham,Man this bus is so so so slow. I think you're gonna get there before me, -ham,U sleeping now.. Or you going to take? Haha.. I got spys wat.. Me online checking n replying mails lor.., -ham,Sorry i now then c ur msg... Yar lor so poor thing... But only 4 one night... Tmr u'll have a brand new room 2 sleep in..., -ham,For fear of fainting with the of all that housework you just did? Quick have a cuppa, -ham,Guess which pub im in? Im as happy as a pig in clover or whatever the saying is! , -ham,You could have seen me..i did't recognise you Face.:), -ham,Oic... Then better quickly go bathe n settle down..., -ham,If you hear a loud scream in about <#> minutes its cause my Gyno will be shoving things up me that don't belong :/, -ham,Shall i come to get pickle, -ham,In xam hall boy asked girl Tell me the starting term for dis answer I can den manage on my own After lot of hesitation n lookin around silently she said THE! intha ponnungale ipaditan;), -ham,"Just got part Nottingham - 3 hrs 63miles. Good thing i love my man so much, but only doing 40mph. Hey ho", -ham,I will see in half an hour, -ham,"Thank you so much. When we skyped wit kz and sura, we didnt get the pleasure of your company. Hope you are good. We've given you ultimatum oh! We are countin down to aburo. Enjoy! This is the message i sent days ago", -ham,No he didn't. Spring is coming early yay!, -ham,"I haven't forgotten you, i might have a couple bucks to send you tomorrow, k? I love ya too", -ham,Omg Joanna is freaking me out. She's looked thru all my friends to find photos of me. And then she's asking about stuff on my MySpace which I haven't even logged on in like a year. :/, -ham,Ranjith cal drpd Deeraj and deepak 5min hold, -ham,I remain unconvinced that this isn't an elaborate test of my willpower, -ham,That's my honeymoon outfit. :), -ham,Kent vale lor... ?? wait 4 me there ar?, -ham,"K, text me when you're on the way", -ham,Lol I would but my mom would have a fit and tell the whole family how crazy and terrible I am, -ham,Finally the match heading towards draw as your prediction., -ham,My drive can only be read. I need to write, -ham,Yup ok..., -ham,Dont think so. It turns off like randomlly within 5min of opening, -ham,"Yeah, that's fine! It's ??6 to get in, is that ok? ", -ham,So what did the bank say about the money?, -ham,K..i deleted my contact that why?, -ham,Ya that one is slow as poo, -ham,I will come tomorrow di, -ham,"No shit, but I wasn't that surprised, so I went and spent the evening with that french guy I met in town here and we fooled around a bit but I didn't let him fuck me", -ham,Senthil group company Apnt 5pm., -ham,I've reached already., -ham,I'm wif him now buying tix lar..., -ham,"Wen ur lovable bcums angry wid u, dnt take it seriously.. Coz being angry is d most childish n true way of showing deep affection, care n luv!.. kettoda manda... Have nice day da.", -ham,It's ?? only $140 ard...?? rest all ard $180 at least...Which is ?? price 4 ?? 2 bedrm ($900), -ham,Hey you can pay. With salary de. Only <#> ., -ham,Hey what's up charles sorry about the late reply., -ham,Ok lor., -ham,How much is torch in 9ja., -ham,CHEERS LOU! YEAH WAS A GOODNITE SHAME U NEVA CAME! C YA GAILxx, -ham,No..he joined today itself., -ham,Mom wants to know where you at, -ham,Did u find a sitter for kaitlyn? I was sick and slept all day yesterday., -ham,If u laugh really loud.. If u talk spontaneously.. If u dont care what others feel.. U are probably with your dear & best friends.. GOODEVENING Dear..:), -ham,I've not sent it. He can send me., -ham,I've sent my wife your text. After we buy them she'll tell you what to do. So just relax. We should go get them this wkend., -ham,Hey i've booked the pilates and yoga lesson already... Haha, -ham,No. She's currently in scotland for that., -ham,Y bishan lei... I tot ?_ say lavender? , -ham,Great comedy..cant stop laughing da:), -ham,"not that I know of, most people up here are still out of town", -ham,WOT STUDENT DISCOUNT CAN U GET ON BOOKS?, -ham,Lol its ok I didn't remember til last nite, -ham,Wat time ?_ wan today?, -ham,Then any special there?, -ham,Long time. You remember me today., -ham,K I'll take care of it, -ham,Tired. I haven't slept well the past few nights., -ham,"Hi, wlcome back, did wonder if you got eaten by a lion or something, nothing much", -ham,have * good weekend., -ham,Looks like u wil b getting a headstart im leaving here bout 2.30ish but if u r desperate for my company I could head in earlier-we were goin to meet in rummer., -ham,And maybe some pressies, -ham,Am i that much dirty fellow?, -ham,No. Thank you. You've been wonderful, -ham,Oh is it! Which brand?, -ham,Pls call me da. What happen., -ham,We are okay. Going to sleep now. Later, -ham,Dai what this da.. Can i send my resume to this id., -ham,Wat happened to the cruise thing, -ham,Anything..., -ham,He says hi and to get your ass back to south tampa (preferably at a kegger), -ham,I am in a marriage function, -ham,Which is weird because I know I had it at one point, -ham,I had askd u a question some hours before. Its answer, -ham,I couldn't say no as he is a dying man and I feel sad for him so I will go and I just wanted you to know I would probably be gone late into your night, -ham,at bruce b downs & fletcher now, -ham,"K, my roommate also wants a dubsack and another friend may also want some so plan on bringing extra, I'll tell you when they know for sure", -ham,Guai... ?? shd haf seen him when he's naughty... ?? so free today? Can go jogging..., -ham,No need to say anything to me. I know i am an outsider, -ham,Hi i won't b ard 4 christmas. But do enjoy n merry x'mas., -ham,"Party's at my place at usf, no charge (but if you can contribute in any way it is greatly appreciated) and yeah, we got room for one more", -ham,"Hey, can you tell me blake's address? Carlos wanted me to meet him there but I got lost and he's not answering his phone", -ham,"\HEY DAS COOL... IKNOW ALL 2 WELLDA PERIL OF STUDENTFINANCIAL CRISIS!SPK 2 U L8R.\""""", -ham,No we sell it all so we'll have tons if coins. Then sell our coins to someone thru paypal. Voila! Money back in life pockets:), -ham,"That???s the thing with apes, u can fight to the death to keep something, but the minute they have it when u let go, thats it!", -ham,Ok..., -ham,"Well, i'm gonna finish my bath now. Have a good...fine night.", -ham,Message:some text missing* Sender:Name Missing* *Number Missing *Sent:Date missing *Missing U a lot thats y everything is missing sent via fullonsms.com, -ham,Unfortunately i've just found out that we have to pick my sister up from the airport that evening so don't think i'll be going out at all. We should try to go out one of th, -ham,Aight well keep me informed, -ham,i want to grasp your pretty booty :), -ham,happened here while you were adventuring, -ham,"Only just got this message, not ignoring you. Yes, i was. Shopping that is", -ham,Lil fever:) now fine:), -ham,Wat time do u wan 2 meet me later?, -ham,For my family happiness.., -ham,No * am working on the ringing u thing but have whole houseful of screaming brats so * am pulling my hair out! Loving u, -ham,Ok... Ur typical reply..., -ham,Then u go back urself lor..., -ham,"Aight, I'll text you when I'm back", -ham,Please ask mummy to call father, -ham,"(And my man carlos is definitely coming by mu tonight, no excuses)", -ham,We have pizza if u want, -ham,"Each Moment in a day,has its own value-Morning brings hope,afternoon brings faith,Evening brings luv,Night brings rest,Wish u find them all today.Good Morning", -ham,?? no home work to do meh... , -ham,"Hey chief, can you give me a bell when you get this. Need to talk to you about this royal visit on the 1st june. ", -ham,"Under the sea, there lays a rock. In the rock, there is an envelope. In the envelope, there is a paper. On the paper, there are 3 words... '", -ham,"You might want to pull out more just in case and just plan on not spending it if you can, I don't have much confidence in derek and taylor's money management", -ham,Will you be here for food, -ham,Hey we can go jazz power yoga hip hop kb and yogasana , -ham,"Awesome, that gonna be soon or later tonight?", -ham,"\Petey boy whereare you me and all your friendsare in theKingshead come down if you canlove Nic\""""", -ham,Im good! I have been thinking about you..., -ham,Ranjith cal drpd Deeraj and deepak 5min hold, -ham,"My sister in law, hope you are having a great month. Just saying hey. Abiola", -ham,I meant middle left or right?, -ham,"Nope. Since ayo travelled, he has forgotten his guy", -ham,Where do you need to go to get it?, -ham,"Found it, ENC <#> , where you at?", -ham,"Come to me right now, Ahmad", -ham,"Living is very simple.. Loving is also simple.. Laughing is too simple.. Winning is tooo simple.. But, Being 'SIMPLE' is very difficult...;-) :-)", -ham,I'm gonna say no. Sorry. I would but as normal am starting to panic about time. Sorry again! Are you seeing on Tuesday?, -ham,Anything lar then ?_ not going home 4 dinner?, -ham,Ok ok take care. I can understand., -ham,Webpage s not available!, -ham,"Hi, my love! How goes that day? Fuck, this morning I woke and dropped my cell on the way down the stairs but it seems alright ... *phews* I miss you !", -ham,"Aight no rush, I'll ask jay", -ham,"Helloooo... Wake up..! \Sweet\"" \""morning\"" \""welcomes\"" \""You\"" \""Enjoy\"" \""This Day\"" \""with full of joy\"".. \""GUD MRNG\"".""", -ham,I re-met alex nichols from middle school and it turns out he's dealing!, -ham,I'm working technical support :)voice process., -ham,Am i that much bad to avoid like this?, -ham,BABE !!! I miiiiiiissssssssss you ! I need you !!! I crave you !!! :-( ... Geeee ... I'm so sad without you babe ... I love you ..., -ham,I notice you like looking in the shit mirror youre turning into a right freak, -ham,"I hope your alright babe? I worry that you might have felt a bit desparate when you learned the job was a fake ? I am here waiting when you come back, my love", -ham,Easy ah?sen got selected means its good.., -ham,You are gorgeous! keep those pix cumming :) thank you!, -ham,We don call like <#> times oh. No give us hypertension oh., -ham,Update your face book status frequently :), -ham,And pls pls drink plenty plenty water, -ham,What's nannys address?, -ham,"Dont worry, 1 day very big lambu ji vl come..til then enjoy batchlor party:-)", -ham,Wot about on wed nite I am 3 then but only til 9!, -ham,THANX4 TODAY CER IT WAS NICE 2 CATCH UP BUT WE AVE 2 FIND MORE TIME MORE OFTEN OH WELL TAKE CARE C U SOON.C, -ham,Yeah do! Don???t stand to close tho- you???ll catch something!, -ham,The message sent is askin for <#> dollars. Shoul i pay <#> or <#> ?, -ham,I went to ur hon lab but no one is there., -ham,Oh god i am happy to see your message after 3 days, -ham,Carry on not disturbing both of you, -ham,There are some nice pubs near here or there is Frankie n Bennys near the warner cinema?, -ham,"That's the trouble with classes that go well - you're due a dodgey one ??_ Expecting mine tomo! See you for recovery, same time, same place ", -ham,Maybe you should find something else to do instead???, -ham,They have a thread on the wishlist section of the forums where ppl post nitro requests. Start from the last page and collect from the bottom up., -ham,"FRAN I DECIDED 2 GO N E WAY IM COMPLETELY BROKE AN KNACKERED I GOT UP BOUT 3 C U 2MRW LOVE JANX P.S THIS IS MY DADS FONE, -NO CREDIT", -ham,I've reached sch already..., -ham,"Hello. Sort of out in town already. That . So dont rush home, I am eating nachos. Will let you know eta.", -ham,"life alle mone,eppolum oru pole allalo", -ham,Yup i'm free..., -ham,What happened in interview?, -ham,K.k.how is your business now?, -ham,"Ya ok, then had dinner?", -ham,"Ya they are well and fine., BBD(pooja) full pimples..even she become quite black..and ur rite here its too cold, wearing sweatter..", -ham,"<#> , that's all? Guess that's easy enough", -ham,I got a call from a landline number. . . I am asked to come to anna nagar . . . I will go in the afternoon, -ham,I tot it's my group mate... Lucky i havent reply... Wat time do ?_ need to leave... , -ham,"Babe, have you got enough money to pick up bread and milk ? And I'll give you it back when you get home ?", -ham,O i played smash bros <#> religiously., -ham,"As usual..iam fine, happy & doing well..:)", -ham,I'm sorry. I've joined the league of people that dont keep in touch. You mean a great deal to me. You have been a friend at all times even at great personal cost. Do have a great week.|, -ham,Doing project w frens lor. , -ham,Ugh just got outta class, -ham,I'm reading the text i just sent you. Its meant to be a joke. So read it in that light, -ham,How are you. Wish you a great semester, -ham,Can you use foreign stamps for whatever you send them off for? , -ham,You made my day. Do have a great day too., -ham,"Good afternoon on this glorious anniversary day, my sweet J !! I hope this finds you happy and content, my Prey. I think of you and send a teasing kiss from across the sea coaxing images of fond souveniers ... You Cougar-Pen", -ham,Don know..he is watching film in computer.., -ham,May b approve panalam...but it should have more posts.., -ham,Hhahhaahahah rofl wtf nig was leonardo in your room or something, -ham,I hope you that's the result of being consistently intelligent and kind. Start asking him about practicum links and keep your ears open and all the best. ttyl, -ham,Mathews or tait or edwards or anderson, -ham,"1.20 that call cost. Which i guess isnt bad. Miss ya, need ya, want ya, love ya", -ham,Lmao. Take a pic and send it to me., -ham,"Sorry vikky, i'm Watching olave mandara movie kano in trishul theatre wit my frnds..", -ham,"Nah I don't think he goes to usf, he lives around here though", -ham,That means get the door, -ham,Alrite jod hows the revision goin? Keris bin doin a smidgin. N e way u wanna cum over after college?xx, -ham,I have lost 10 kilos as of today!, -ham,"Gosh that , what a pain. Spose I better come then.", -ham,"Sorry, I guess whenever I can get a hold of my connections, maybe an hour or two? I'll text you", -ham,"I'm an actor. When i work, i work in the evening and sleep late. Since i'm unemployed at the moment, i ALWAYS sleep late. When you're unemployed, every day is saturday.", -ham,Tell where you reached, -ham,No no. I will check all rooms befor activities, -ham,If i said anything wrong sorry de:-), -ham,Wait <#> min.., -ham,"Ups which is 3days also, and the shipping company that takes 2wks. The other way is usps which takes a week but when it gets to lag you may have to bribe nipost to get your stuff.", -ham,Can come my room but cannot come my house cos my house still messy... Haha..., -ham,Today i'm not workin but not free oso... Gee... Thgt u workin at ur fren's shop ? , -ham,IM GONNA MISS U SO MUCH, -ham,It's ok i noe u're busy but i'm really too bored so i msg u. I oso dunno wat colour she choose 4 me one., -ham,I wont touch you with out your permission., -ham,Oh great. I.ll disturb him more so that we can talk., -ham,"That way transport is less problematic than on sat night. By the way, if u want to ask n to join my bday, feel free. But need to know definite nos as booking on fri. ", -ham,", ow u dey.i paid 60,400thousad.i told u would call . ", -ham,Ho ho - big belly laugh! See ya tomo, -ham,Today my system sh get ready.all is well and i am also in the deep well, -ham,"Fun fact: although you would think armand would eventually build up a tolerance or some shit considering how much he smokes, he gets fucked up in like 2 hits", -ham,"Japanese Proverb: If one Can do it, U too Can do it, If none Can do it,U must do it Indian version: If one Can do it, LET HIM DO it.. If none Can do it,LEAVE it!! And finally Kerala version: If one can do it, Stop him doing it.. If none can do it, Make a strike against it ...", -ham,Ok then i will come to ur home after half an hour, -ham,Mm i had my food da from out, -ham,Dear where you will be when i reach there, -ham,Or I guess <#> min, -ham,"I'm not smoking while people use \wylie smokes too much\"" to justify ruining my shit""", -ham,"Yo, you gonna still be in stock tomorrow/today? I'm trying to get a dubsack", -ham,Don???t give a flying monkeys wot they think and I certainly don???t mind. Any friend of mine and all that!, -ham,No management puzzeles., -ham,So dont use hook up any how, -ham,Sorry sent blank msg again. Yup but trying 2 do some serious studying now., -ham,Did u got that persons story, -ham,?? go home liao? Ask dad to pick me up at 6..., -ham,Fuck cedar key and fuck her (come over anyway tho), -ham,Yeah no probs - last night is obviously catching up with you... Speak soon , -ham,I've been searching for the right words to thank you for this breather. I promise i wont take your help for granted and will fulfil my promise. You have been wonderful and a blessing at all times., -ham,?? say until like dat i dun buy ericsson oso cannot oredi lar..., -ham,Sun ah... Thk mayb can if dun have anythin on... Thk have to book e lesson... E pilates is at orchard mrt u noe hor... , -ham,"Hello, yeah i've just got out of the bath and need to do my hair so i'll come up when i'm done, yeah?", -ham,I want snow. It's just freezing and windy., -ham,Ok that's great thanx a lot., -ham,Hai ana tomarrow am coming on morning. <DECIMAL> ill be there in sathy then we ll go to RTO office. Reply me after came to home., -ham,"Hey babe, how's it going ? Did you ever figure out where your going for New Years ?", -ham,What's your room number again? Wanna make sure I'm knocking on the right door, -ham,what are your new years plans?, -ham,"Watching cartoon, listening music & at eve had to go temple & church.. What about u?", -ham,Hows the champ just leaving glasgow!, -ham,"Sorry man my account's dry or I would, if you want we could trade back half or I could buy some shit with my credit card", -ham,Tell me whos this pls:-), -ham,"I wake up long ago already... Dunno, what other thing?", -ham,I wanted to ask ?_ to wait 4 me to finish lect. Cos my lect finishes in an hour anyway., -ham,Hey mr whats the name of that bill brison book the one about language and words , -ham,Aight do you still want to get money, -ham,yay! finally lol. i missed our cinema trip last week :-(, -ham,I did. One slice and one breadstick. Lol, -ham,"Got fujitsu, ibm, hp, toshiba... Got a lot of model how to say...", -ham,"I feel like a dick because I keep sleeping through your texts and facebook messages. Sup, you in town?", -ham,"And that's fine, I got enough bud to last most of the night at least", -ham,Hello which the site to download songs its urgent pls, -ham,Okey dokey swashbuckling stuff what oh., -ham,Argh why the fuck is nobody in town ;_;, -ham,All boys made fun of me today. Ok i have no problem. I just sent one message just for fun, -ham,"Same, I'm at my great aunts anniversary party in tarpon springs", -ham,Designation is software developer and may be she get chennai:), -ham,Not to worry. I'm sure you'll get it., -ham,So no messages. Had food?, -ham,"When people see my msgs, They think Iam addicted to msging... They are wrong, Bcoz They don\'t know that Iam addicted to my sweet Friends..!! BSLVYL", -ham,Really do hope the work doesnt get stressful. Have a gr8 day., -ham,I'll let you know when it kicks in, -ham,Just normal only here :), -ham,I cant pick the phone right now. Pls send a message, -ham,Ah you see. You have to be in the lingo. I will let you know wot on earth it is when has finished making it!, -ham,Is that seriously how you spell his name?, -ham,Kind of. Took it to garage. Centre part of exhaust needs replacing. Part ordered n taking it to be fixed tomo morning., -ham,Mmmm ... Fuck ... Not fair ! You know my weaknesses ! *grins* *pushes you to your knee's* *exposes my belly and pulls your head to it* Don't forget ... I know yours too *wicked smile*, -ham,Ok i msg u b4 i leave my house., -ham,No need to ke qi... ?? too bored izzit y suddenly thk of this..., -ham,somewhere out there beneath the pale moon light someone think in of u some where out there where dreams come true... goodnite & sweet dreams, -ham,I cant pick the phone right now. Pls send a message, -ham,When did you get to the library, -ham,ok. I am a gentleman and will treat you with dignity and respect., -ham,I???ll have a look at the frying pan in case it???s cheap or a book perhaps. No that???s silly a frying pan isn???t likely to be a book, -ham,Do ?_ all wan 2 meet up n combine all the parts? How's da rest of da project going?, -ham,"Yeah we wouldn't leave for an hour at least, how's 4 sound?", -ham,Will be out of class in a few hours. Sorry, -ham,Would me smoking you out help us work through this difficult time, -ham,This phone has the weirdest auto correct., -ham,"Machan you go to gym tomorrow, i wil come late goodnight.", -ham,Hows the pain dear?y r u smiling?, -ham,"Lol ... Oh no babe, I wont be sliding into your place after midnight, but thanks for the invite", -ham,Near kalainar tv office.thenampet, -ham,As in different styles?, -ham,Thank you princess! You are so sexy..., -ham,Nice line said by a broken heart- Plz don't cum 1 more times infront of me... Other wise once again I ll trust U... Good 9t:), -ham,And several to you sir., -ham,Oh yeah clearly it's my fault, -ham,"When I was born, GOD said, \Oh No! Another IDIOT\"". When you were born \""OH No! COMPETITION\"". Who knew one day these two will become FREINDS FOREVER!""", -ham,"\CHEERS FOR CALLIN BABE.SOZI CULDNT TALKBUT I WANNATELL U DETAILS LATER WENWECAN CHAT PROPERLY X\""""", -ham,Ok pa. Nothing problem:-), -ham,Jus finish bathing..., -ham,The monthly amount is not that terrible and you will not pay anything till 6months after finishing school., -ham,On ma way to school. Can you pls send me ashley's number, -ham,Yavnt tried yet and never played original either, -ham,Yup i'm elaborating on the safety aspects and some other issues.., -ham,Do you want bold 2 or bb torch, -ham,Mmmm.... I cant wait to lick it!, -ham,Good morning. At the repair shop--the ONLY reason i'm up at this hour., -ham,"Somewhr someone is surely made 4 u. And God has decided a perfect time to make u meet dat person. . . . till den, . . . . . Enjoy ur crushes..!!!;-)", -ham,All day working day:)except saturday and sunday.., -ham,Dont pick up d call when something important is There to tell. Hrishi, -ham,I am joining today formally.Pls keep praying.will talk later., -ham,Cos i want it to be your thing, -ham,"Cool, what time you think you can get here?", -ham,U guys never invite me anywhere :(, -ham,Yeah we do totes. When u wanna?, -ham,Every monday..nxt week vl be completing.., -ham,But pls dont play in others life., -ham,Change windows logoff sound.., -ham,S..antha num corrct dane, -ham,Aslamalaikkum....insha allah tohar beeen muht albi mufti mahfuuz...meaning same here...., -ham,Just finished eating. Got u a plate. NOT leftovers this time., -ham,Hi did u decide wot 2 get 4 his bday if not ill prob jus get him a voucher frm virgin or sumfing , -ham,Keep my payasam there if rinu brings, -ham,"K, jason says he's gonna be around so I'll be up there around <#>", -ham,Studying. But i.ll be free next weekend., -ham,Yo you around? A friend of mine's lookin to pick up later tonight, -ham,Oh k :)why you got job then whats up?, -ham,You call times job today ok umma and ask them to speed up, -ham,"Ok that would b lovely, if u r sure. Think about wot u want to do, drinkin, dancin, eatin, cinema, in, out, about... Up to u! Wot about ? ", -ham,"Sorry man, accidentally left my phone on silent last night and didn't check it til I got up", -ham,"Erm ??_ ill pick you up at about 6.45pm. That'll give enough time to get there, park and that.", -ham,Yup. Izzit still raining heavily cos i'm in e mrt i can't c outside., -ham,I dled 3d its very imp, -ham,I miss you so much I'm so desparate I have recorded the message you left for me the other day and listen to it just to hear the sound of your voice. I love you, -ham,"\Aww you must be nearly dead!Well Jez isComing over toDo some workAnd that whillTake forever!\""""", -ham,"Yes obviously, but you are the eggs-pert and the potato head??_ Speak soon! ", -ham,"It doesnt make sense to take it there unless its free. If you need to know more, wikipedia.com", -ham,Dont think you need yellow card for uk travel. Ask someone that has gone before. If you do its just <#> bucks, -ham,"Ooh, 4got, i'm gonna start belly dancing in moseley weds 6.30 if u want 2 join me, they have a cafe too. ", -ham,"Looks like you found something to do other than smoke, great job!", -ham,Rofl. Its true to its name, -ham,Ok..., -ham,"Sweetheart, hope you are not having that kind of day! Have one with loads of reasons to smile. Biola", -ham,Your account has been refilled successfully by INR <DECIMAL> . Your KeralaCircle prepaid account balance is Rs <DECIMAL> . Your Transaction ID is KR <#> ., -ham,26th OF JULY, -ham,Too late. I said i have the website. I didn't i have or dont have the slippers, -ham,"Derp. Which is worse, a dude who always wants to party or a dude who files a complaint about the three drug abusers he lives with", -ham,Those cocksuckers. If it makes you feel better ipads are worthless garbage novelty items and you should feel bad for even wanting one, -ham,Yep then is fine 7.30 or 8.30 for ice age., -ham,Really good:)dhanush rocks once again:), -ham,Just do what ever is easier for you, -ham,Er yep sure. Props?, -ham,"There'll be a minor shindig at my place later tonight, you interested?", -ham,What happen to her tell the truth, -ham,"Hey babe! I saw you came online for a second and then you disappeared, what happened ?", -ham,Dear got bus directly to calicut, -ham,"Yo, you around? Just got my car back", -ham,I had askd u a question some hours before. Its answer, -ham,I am in hospital da. . I will return home in evening, -ham,"Fuck babe ... I miss you already, you know ? Can't you let me send you some money towards your net ? I need you ... I want you ... I crave you ...", -ham,K then 2marrow are you coming to class., -ham,"Aight, call me once you're close", -ham,i can call in <#> min if thats ok, -ham,Is that on the telly? No its Brdget Jones!, -ham,I'm in office now . I will call you <#> min:), -ham,"Awesome, be there in a minute", -ham,What happened to our yo date?, -ham,"Sorry da thangam, very very sorry i am held up with prasad.", -ham,Lol ... I knew that .... I saw him in the dollar store, -ham,My uncles in Atlanta. Wish you guys a great semester., -ham,Am also doing in cbe only. But have to pay., -ham,V nice! Off 2 sheffield tom 2 air my opinions on categories 2 b used 2 measure ethnicity in next census. Busy transcribing. :-), -ham,"Hey elaine, is today's meeting still on?", -ham,Goodnight da thangam I really miss u dear., -ham,Onum ela pa. Normal than., -ham,Here got lots of hair dresser fr china., -ham,Where at were hungry too, -ham,"Ola would get back to you maybe not today but I ve told him you can be his direct link in the US in getting cars he bids for online, you arrange shipping and you get a cut. Or U????? For a partnership where U????? Invest money for shipping and he takes care of the rest!U??Wud b self reliant soon dnt worry", -ham,"Sorry, in meeting I'll call you later", -ham,Ok.ok ok..then..whats ur todays plan, -ham,"Solve d Case : A Man Was Found Murdered On <DECIMAL> . <#> AfterNoon. 1,His wife called Police. 2,Police questioned everyone. 3,Wife: Sir,I was sleeping, when the murder took place. 4.Cook: I was cooking. 5.Gardener: I was picking vegetables. 6.House-Maid: I went 2 d post office. 7.Children: We went 2 play. 8.Neighbour: We went 2 a marriage. Police arrested d murderer Immediately. Who's It? Reply With Reason, If U r Brilliant.", -ham,Anything lor. Juz both of us lor., -ham,Then u better go sleep.. Dun disturb u liao.. U wake up then msg me lor.., -ham,Hiya do u like the hlday pics looked horrible in them so took mo out! Hows the camp Amrca thing? Speak soon Serena:), -ham,No dear i was sleeping :-P, -ham,Went fast asleep dear.take care., -ham,Got smaller capacity one? Quite ex..., -ham,"Yup, leaving right now, be back soon", -ham,Nothing just getting msgs by dis name wit different no's.., -ham,"Sad story of a Man - Last week was my b'day. My Wife did'nt wish me. My Parents forgot n so did my Kids . I went to work. Even my Colleagues did not wish. As I entered my cabin my PA said, '' Happy B'day Boss !!''. I felt special. She askd me 4 lunch. After lunch she invited me to her apartment. We went there. She said,'' do u mind if I go into the bedroom for a minute ? '' ''OK'', I sed in a sexy mood. She came out 5 minuts latr wid a cake...n My Wife, My Parents, My Kidz, My Friends n My Colleagues. All screaming.. SURPRISE !! and I was waiting on the sofa.. ... ..... ' NAKED...!", -ham,"Waqt se pehle or naseeb se zyada kisi ko kuch nahi milta,Zindgi wo nahi he jo hum sochte hai Zindgi wo hai jo ham jeetey hai..........", -ham,Thanks honey but still haven't heard anything I will leave it a bit longer so not 2 crowd him and will try later - great advice thanks hope cardiff is still there!, -ham,Lemme know when you're here, -ham,I've told him that i've returned it. That should i re order it., -ham,Only if you promise your getting out as SOON as you can. And you'll text me in the morning to let me know you made it in ok., -ham,"Ya ok, vikky vl c witin <#> mins and il reply u..", -ham,Having lunch:)you are not in online?why?, -ham,"Happy or sad , one thing about past is- \Its no more\"" GOOD MORNING :-):-).""", -ham,"Solve d Case : A Man Was Found Murdered On <DECIMAL> . <#> AfterNoon. 1,His wife called Police. 2,Police questioned everyone. 3,Wife: Sir,I was sleeping, when the murder took place. 4.Cook: I was cooking. 5.Gardener: I was picking vegetables. 6.House-Maid: I went 2 d post office. 7.Children: We went 2 play. 8.Neighbour: We went 2 a marriage. Police arrested d murderer Immediately. Who's It? Reply With Reason, If U r Brilliant.", -ham,"Haha, that was the first person I was gonna ask", -ham,I'm home., -ham,Lol they were mad at first but then they woke up and gave in., -ham,Are you happy baby ? Are you alright ? Did you take that job ? I hope your fine. I send you a kiss to make you smile from across the sea ... *kiss* *kiss*, -ham,Don't forget though that I love you .... And I walk beside you. Watching over you and keeping your heart warm., -ham,"Aight I've been set free, think you could text me blake's address? It occurs to me I'm not quite as sure what I'm doing as I thought I was", -ham,Gain the rights of a wife.dont demand it.i am trying as husband too.Lets see, -ham,"I'm in a meeting, call me later at", -ham,I'm on my way home. Went to change batt 4 my watch then go shop a bit lor., -ham,I've got it down to a tea. not sure which flavour, -ham,Why she wants to talk to me, -ham,For me the love should start with attraction.i should feel that I need her every time around me.she should be the first thing which comes in my thoughts.I would start the day and end it with her.she should be there every time I dream.love will be then when my every breath has her name.my life should happen around her.my life will be named to her.I would cry for her.will give all my happiness and take all her sorrows.I will be ready to fight with anyone for her.I will be in love when I will be doing the craziest things for her.love will be when I don't have to proove anyone that my girl is the most beautiful lady on the whole planet.I will always be singing praises for her.love will be when I start up making chicken curry and end up makiing sambar.life will be the most beautiful then.will get every morning and thank god for the day because she is with me.I would like to say a lot..will tell later.., -ham,Hope you are having a good week. Just checking in, -ham,Its too late:)but its k.wish you the same., -ham,Bishan lar nearer... No need buy so early cos if buy now i gotta park my car..., -ham,Probably a couple hours tops, -ham,Ok then i come n pick u at engin?, -ham,HI DARLIN HOW WAS WORK DID U GET INTO TROUBLE? IJUST TALKED TO YOUR MUM ALL MORNING! I HAD A REALLY GOOD TIME LAST NIGHT IM GOIN OUT SOON BUT CALL ME IF U CAN, -ham,"Sorry, left phone upstairs. OK, might be hectic but would be all my birds with one fell swoop. It's a date.", -ham,I will reach before ten morning, -ham,Where is that one day training:-), -ham,"Cool, we shall go and see, have to go to tip anyway. Are you at home, got something to drop in later? So lets go to town tonight! Maybe mum can take us in.", -ham,I was about to do it when i texted. I finished a long time ago and showered and er'ything!, -ham,How come guoyang go n tell her? Then u told her?, -ham,I hope you arnt pissed off but id would really like to see you tomorrow. Love me xxxxxxxxxxxxxX, -ham,"LOOK AT AMY URE A BEAUTIFUL, INTELLIGENT WOMAN AND I LIKE U A LOT. I KNOW U DON??T LIKE ME LIKE THAT SO DON??T WORRY.", -ham,I love you both too :-), -ham,"Aight, tomorrow around <#> it is", -ham,"Think i might have to give it a miss. Am teaching til twelve, then have lecture at two. Damn this working thing.", -ham,"Rose needs water, season needs change, poet needs imagination..My phone needs ur sms and i need ur lovely frndship forever....", -ham,Ok thanx... Take care then..., -ham,Then ur physics get a-?, -ham,Hi kindly give us back our documents which we submitted for loan from STAPATI, -ham,I think its far more than that but find out. Check google maps for a place from your dorm., -ham,I place all ur points on e cultures module already., -ham,Is toshiba portege m100 gd?, -ham,"Awesome, lemme know whenever you're around", -ham,I'm done..., -ham,"Frnd s not juz a word.....not merely a relationship.....its a silent promise which says ... \ I will be with YOU \"" Wherevr.. Whenevr.. Forevr... Gudnyt dear..""", -ham,"Arms fine, how's Cardiff and uni? ", -ham,They will pick up and drop in car.so no problem.., -ham,Nice.nice.how is it working?, -ham,I'm going 2 orchard now laready me reaching soon. U reaching?, -ham,What happen dear. Why you silent. I am tensed, -ham,Also that chat was awesome but don't make it regular unless you can see her in person, -ham,Not directly behind... Abt 4 rows behind ?_..., -ham,Do u still have plumbers tape and a wrench we could borrow?, -ham,Yes... I trust u to buy new stuff ASAP so I can try it out, -ham,"Whats that coming over the hill..... Is it a monster! Hope you have a great day. Things r going fine here, busy though! ", -ham,How abt making some of the pics bigger?, -ham,i am going to bed now prin, -ham,"By the way, i've put a skip right outside the front of the house so you can see which house it is. Just pull up before it.", -ham,"Yeah, where's your class at?", -ham,"Hello, my love ! How went your day ? Are you alright ? I think of you, my sweet and send a jolt to your heart to remind you ... I LOVE YOU! Can you hear it ? I screamed it across the sea for all the world to hear. Ahmad al Hallaq is loved ! and owned ! *possessive passionate kiss*", -ham,I tot u reach liao. He said t-shirt., -ham,Send to someone else :-), -ham,Every day i use to sleep after <#> so only., -ham,Tmr then ?_ brin lar... Aiya later i come n c lar... Mayb ?_ neva set properly ?_ got da help sheet wif ?_..., -ham,Call him and say you not coming today ok and tell them not to fool me like this ok, -ham,"Not sure yet, still trying to get a hold of him", -ham,"Also north carolina and texas atm, you would just go to the gre site and pay for the test results to be sent.", -ham,Boo what time u get out? U were supposed to take me shopping today. :(, -ham,Good sleep is about rhythm. The person has to establish a rhythm that the body will learn and use. If you want to know more :-), -ham,We r outside already., -ham,I have printed it oh. So <#> come upstairs, -ham,"Yeah I think my usual guy's still passed out from last night, if you get ahold of anybody let me know and I'll throw down", -ham,ALSO TELL HIM I SAID HAPPY BIRTHDAY, -ham,"Trust me. Even if isn't there, its there.", -ham,K...k...yesterday i was in cbe ., -ham,"Sorry,in meeting I'll call later", -ham,Still in the area of the restaurant. Ill try to come back soon, -ham,"Fyi I'm taking a quick shower, be at epsilon in like <#> min", -ham,I dont understand your message., -ham,2 laptop... I noe infra but too slow lar... I wan fast one, -ham,"Damn, poor zac doesn't stand a chance", -ham,Well obviously not because all the people in my cool college life went home ;_;, -ham,Still work going on:)it is very small house., -ham,"alright, I'll make sure the car is back tonight", -ham,Tell dear what happen to you. Why you talking to me like an alian, -ham,Lol now I'm after that hot air balloon!, -ham,Then its most likely called Mittelschmertz. Google it. If you dont have paracetamol dont worry it will go., -ham,"1) Go to write msg 2) Put on Dictionary mode 3)Cover the screen with hand, 4)Press <#> . 5)Gently remove Ur hand.. Its interesting..:)", -ham,"K so am I, how much for an 8th? Fifty?", -ham,"Sir, hope your day is going smoothly. i really hoped i wont have to bother you about this. I have some bills that i can't settle this month. I am out of all extra cash. I know this is a challenging time for you also but i have to let you know.", -ham,Anyway holla at me whenever you're around because I need an excuse to go creep on people in sarasota, -ham,"Better than bb. If he wont use it, his wife will or them doctor", -ham,There's someone here that has a year <#> toyota camry like mr olayiwola's own. Mileage is <#> k.its clean but i need to know how much will it sell for. If i can raise the dough for it how soon after landing will it sell. Holla back., -ham,"\CHEERS U TEX MECAUSE U WEREBORED! YEAH OKDEN HUNNY R UIN WK SAT?SOUND??S LIKEYOUR HAVIN GR8FUN J! KEEP UPDAT COUNTINLOTS OF LOVEME XXXXX.\""""", -ham,Short But Cute: \Be a good person, -ham,U know we watchin at lido?, -ham,Yo! Howz u? girls never rang after india. L, -ham,"Sorry, I'll call later", -ham,Boy you best get yo ass out here quick, -ham,K.k.this month kotees birthday know?, -ham,Sorry da. I gone mad so many pending works what to do., -ham,"Okey doke. I'm at home, but not dressed cos laying around ill! Speak to you later bout times and stuff. ", -ham,"7 wonders in My WORLD 7th You 6th Ur style 5th Ur smile 4th Ur Personality 3rd Ur Nature 2nd Ur SMS and 1st \Ur Lovely Friendship\""... good morning dear""", -ham,I dunno until when... Lets go learn pilates..., -ham,Of course ! Don't tease me ... You know I simply must see ! *grins* ... Do keep me posted my prey ... *loving smile* *devouring kiss*, -ham,All these nice new shirts and the only thing I can wear them to is nudist themed ;_; you in mu?, -ham,Are u coming to the funeral home, -ham,"TODAY is Sorry day.! If ever i was angry with you, if ever i misbehaved or hurt you? plz plz JUST SLAP URSELF Bcoz, Its ur fault, I'm basically GOOD", -ham,Yeah but which is worse for i, -ham,Hi happy birthday. Hi hi hi hi hi hi hi, -ham,Hi where you. You in home or calicut?, -ham,"As usual..iam fine, happy & doing well..:)", -ham,Hi' Test on <#> rd ...., -ham,Geeeee ... I love you so much I can barely stand it, -ham,Jordan got voted out last nite!, -ham,Siva is in hostel aha:-., -ham,Good afternoon my boytoy. How goes that walking here and there day ? Did you get that police abstract? Are you still out and about? I wake and miss you babe, -ham,"Yeah, probably but not sure. Ilol let u know, but personally I wuldnt bother, then again if ur goin to then I mite as well!!", -ham,Happy birthday... May u find ur prince charming soon n dun work too hard..., -ham,Are you up for the challenge? I know i am :), -ham,Yes we were outside for like 2 hours. And I called my whole family to wake them up cause it started at 1 am, -ham,My trip was ok but quite tiring lor. Uni starts today but it's ok 4 me cos i'm not taking any modules but jus concentrating on my final yr project., -ham,"Mmmmm ... I loved waking to your words this morning ! I miss you too, my Love. I hope your day goes well and you are happy. I wait for us to be together again", -ham,So can collect ur laptop?, -ham,Hey so whats the plan this sat? , -ham,"Night has ended for another day, morning has come in a special way. May you smile like the sunny rays and leaves your worries at the blue blue bay. Gud mrng", -ham,I'm going for bath will msg you next <#> min.., -ham,if you text on your way to cup stop that should work. And that should be BUS, -ham,No i am not having not any movies in my laptop, -ham,"I dont knw pa, i just drink milk..", -ham,She went to attend another two rounds today..but still did't reach home.., -ham,"A boy was late 2 home. His father: \POWER OF FRNDSHIP\""""", -ham,Nt yet chikku..simple habba..hw abt u?, -ham,Are your freezing ? Are you home yet ? Will you remember to kiss your mom in the morning? Do you love me ? Do you think of me ? Are you missing me yet ?, -ham,Oh dang! I didn't mean o send that to you! Lol!, -ham,"\The world suffers a lot... Not because of the violence of bad people. But because of the silence of good people!\""", -ham,"God picked up a flower and dippeditinaDEW, lovingly touched itwhichturnedinto u, and the he gifted tomeandsaid,THIS FRIEND IS 4U", -ham,Sorry i've not gone to that place. I.ll do so tomorrow. Really sorry., -ham,S...from the training manual it show there is no tech process:)its all about password reset and troubleshooting:), -ham,I think asking for a gym is the excuse for lazy people. I jog., -ham,Only 2% students solved this CAT question in 'xam... 5+3+2= <#> 9+2+4= <#> 8+6+3= <#> then 7+2+5=????? Tell me the answer if u r brilliant...1thing.i got d answr., -ham,All will come alive.better correct any good looking figure there itself.., -ham,Cab is available.they pick up and drop at door steps., -ham,"Sorry, I'll call later", -ham,I'm leaving my house now..., -ham,I had it already..sabarish asked me to go.., -ham,Dear we got <#> dollars hi hi, -ham,What not under standing., -ham,Tell my bad character which u Dnt lik in me. I'll try to change in <#> . I ll add tat 2 my new year resolution. Waiting for ur reply.Be frank...good morning., -ham,Do u konw waht is rael FRIENDSHIP Im gving yuo an exmpel: Jsut ese tihs msg.. Evrey splleing of tihs msg is wrnog.. Bt sitll yuo can raed it wihtuot ayn mitsake.. GOODNIGHT & HAVE A NICE SLEEP..SWEET DREAMS.., -ham,"When people see my msgs, They think Iam addicted to msging... They are wrong, Bcoz They don\'t know that Iam addicted to my sweet Friends..!! BSLVYL", -ham,Your gonna have to pick up a $1 burger for yourself on your way home. I can't even move. Pain is killing me., -ham,Sounds better than my evening im just doing my costume. Im not sure what time i finish tomorrow but i will txt you at the end., -ham,I dont. Can you send it to me. Plus how's mode., -ham,I'm gonna rip out my uterus., -ham,"Brainless Baby Doll..:-D;-), vehicle sariyag drive madoke barolla..", -ham,He is world famamus...., -ham,Where u been hiding stranger?, -ham,"Fair enough, anything going on?", -ham,Aiyah e rain like quite big leh. If drizzling i can at least run home., -ham,Prof: you have passed in all the papers in this sem congrats . . . . Student: Enna kalaachutaarama..!! Prof:???? Gud mrng!, -ham,Kindly send some one to our flat before <DECIMAL> today., -ham,What you did in leave., -ham,Morning only i can ok., -ham,I can make lasagna for you... vodka..., -ham,Hi Princess! Thank you for the pics. You are very pretty. How are you?, -ham,Yes watching footie but worried we're going to blow it - Phil Neville?, -ham,Shuhui say change 2 suntec steamboat? U noe where? Where r u now?, -ham,"House-Maid is the murderer, coz the man was murdered on <#> th January.. As public holiday all govt.instituitions are closed,including post office..understand?", -ham,C movie is juz last minute decision mah. Juz watch 2 lar but i tot ?_ not interested., -ham,How much r ?_ willing to pay?, -ham,"Well, I meant as opposed to my drunken night of before", -ham,I need... Coz i never go before , -ham,Send me your id and password, -ham,"To the wonderful Okors, have a great month. We cherish you guys and wish you well each day. MojiBiola", -ham,Nope... C ?_ then..., -ham,I want to send something that can sell fast. <#> k is not easy money., -ham,With my sis lor... We juz watched italian job., -ham,Good morning princess! How are you?, -ham,Well i will watch shrek in 3D!!B), -ham,Still otside le..u come 2morrow maga.., -ham,Do ?_ noe if ben is going?, -ham,You should change your fb to jaykwon thuglyfe falconerf, -ham,What you doing?how are you?, -ham,Why nothing. Ok anyway give me treat, -ham,Yup... Hey then one day on fri we can ask miwa and jiayin take leave go karaoke , -ham,"Just sent you an email ??? to an address with incomm in it, is that right?", -ham,Ha ha - had popped down to the loo when you hello-ed me. Hello!, -ham,"Im in inperialmusic listening2the weirdest track ever by??leafcutter john??-sounds like insects being molested&someone plumbing,remixed by evil men on acid!", -ham,"sure, but make sure he knows we ain't smokin yet", -ham,Nice.nice.how is it working?, -ham,"We're all getting worried over here, derek and taylor have already assumed the worst", -ham,At the funeral home with Audrey and dad, -ham,"A bit of Ur smile is my hppnss, a drop of Ur tear is my sorrow, a part of Ur heart is my life, a heart like mine wil care for U, forevr as my GOODFRIEND", -ham,Hi ....My engagement has been fixd on <#> th of next month. I know its really shocking bt....hmm njan vilikkam....t ws al of a sudn;-(., -ham,Ok. So april. Cant wait, -ham,"I know you are thinkin malaria. But relax, children cant handle malaria. She would have been worse and its gastroenteritis. If she takes enough to replace her loss her temp will reduce. And if you give her malaria meds now she will just vomit. Its a self limiting illness she has which means in a few days it will completely stop", -ham,Its a part of checking IQ, -ham,"Do you know why god created gap between your fingers..? So that, One who is made for you comes & fills those gaps by holding your hand with LOVE..!", -ham,Oh ho. Is this the first time u use these type of words, -ham,I'm awake oh. What's up., -ham,East coast, -ham,Pls send me your address sir., -ham,"What do you do, my dog ? Must I always wait till the end of your day to have word from you ? Did you run out of time on your cell already?", -ham,They just talking thats it de. They wont any other., -ham,Joy's father is John. Then John is the ____ of Joy's father. If u ans ths you hav <#> IQ. Tis s IAS question try to answer., -ham,I hate when she does this. She turns what should be a fun shopping trip into an annoying day of how everything would look in her house., -ham,Dai <#> naal eruku., -ham,"Sorry, I'll call you later. I am in meeting sir.", -ham,"Hiya , have u been paying money into my account? If so, thanks. Got a pleasant surprise when i checked my balance -u c, i don't get statements 4 that acc", -ham,"By march ending, i should be ready. But will call you for sure. The problem is that my capital never complete. How far with you. How's work and the ladies", -ham,\HEY HEY WERETHE MONKEESPEOPLE SAY WE MONKEYAROUND! HOWDY GORGEOUS, -ham,Cos daddy arranging time c wat time fetch ?_ mah..., -ham,"How about clothes, jewelry, and trips?", -ham,Yup it's at paragon... I havent decided whether 2 cut yet... Hee..., -ham,IM GONNAMISSU SO MUCH!!I WOULD SAY IL SEND U A POSTCARD BUTTHERES ABOUTAS MUCH CHANCE OF MEREMEMBERIN ASTHERE IS OFSI NOT BREAKIN HIS CONTRACT!! LUV Yaxx, -ham,"\EY! CALM DOWNON THEACUSATIONS.. ITXT U COS IWANA KNOW WOTU R DOIN AT THEW/END... HAVENTCN U IN AGES..RING ME IF UR UP4 NETHING SAT.LOVE J XXX.\""""", -ham,"I promise to take good care of you, princess. I have to run now. Please send pics when you get a chance. Ttyl!", -ham,Small problem in auction:)punj now asking tiwary, -ham,Good afternoon starshine! How's my boytoy? Does he crave me yet? Ache to fuck me ? *sips cappuccino* I miss you babe *teasing kiss*, -ham,Aiyar u so poor thing... I give u my support k... Jia you! I'll think of u..., -ham,Lol boo I was hoping for a laugh, -ham,Hmmm.but you should give it on one day.., -ham,All was well until slightly disastrous class this pm with my fav darlings! Hope day off ok. Coffee wld be good as can't stay late tomorrow. Same time + place as always?, -ham,Now? I'm going out 4 dinner soon.., -ham,U wan 2 haf lunch i'm in da canteen now., -ham,Fffff. Can you text kadeem or are you too far gone, -ham,"Got hella gas money, want to go on a grand nature adventure with galileo in a little bit?", -ham,aathi..where are you dear.., -ham,"Don't worry, * is easy once have ingredients!", -ham,Well its not like you actually called someone a punto. That woulda been worse., -ham,Even u dont get in trouble while convincing..just tel him once or twice and just tel neglect his msgs dont c and read it..just dont reply, -ham,"Sorry, I'll call later", -ham,here is my new address -apples&pairs&all that malarky, -ham,"Haha awesome, omw back now then", -ham,Sad story of a Man - Last week was my b'day. My Wife did'nt wish me. My Parents forgot n so did my Kids . I went to work. Even my Colleagues did not wish., -ham,"It could work, we'll reach a consensus at the next meeting", -ham,"Under the sea, there lays a rock. In the rock, there is an envelope. In the envelope, there is a paper. On the paper, there are 3 words... '", -ham,Ok. I only ask abt e movie. U wan ktv oso?, -ham,Dont show yourself. How far. Put new pictures up on facebook., -ham,Yar i wanted 2 scold u yest but late already... I where got zhong se qing you? If u ask me b4 he ask me then i'll go out w u all lor. N u still can act so real., -ham,My phone, -ham,He didn't see his shadow. We get an early spring yay, -ham,I am in bus on the way to calicut, -ham,"Uncle G, just checking up on you. Do have a rewarding month", -ham,Wif my family booking tour package., -ham,Nutter. Cutter. Ctter. Cttergg. Cttargg. Ctargg. Ctagg. ie you, -ham,Hey you gave them your photo when you registered for driving ah? Tmr wanna meet at yck? , -ham,"Wa, ur openin sentence very formal... Anyway, i'm fine too, juz tt i'm eatin too much n puttin on weight...Haha... So anythin special happened?", -ham,How would my ip address test that considering my computer isn't a minecraft server, -ham,"Sweet, we may or may not go to 4U to meet carlos so gauge patty's interest in that", -ham,That would be great. We'll be at the Guild. Could meet on Bristol road or somewhere - will get in touch over weekend. Our plans take flight! Have a good week, -ham,Of cos can lar i'm not so ba dao ok... 1 pm lor... Y u never ask where we go ah... I said u would ask on fri but he said u will ask today..., -ham,Alright took the morphine. Back in yo., -ham,"Yeah, give me a call if you've got a minute", -ham,This weekend is fine (an excuse not to do too much decorating), -ham,That depends. How would you like to be treated? :), -ham,Life style garments account no please., -ham,Thanks. Fills me with complete calm and reassurance! , -ham,Ok, -ham,A bloo bloo bloo I'll miss the first bowl, -ham,No..few hours before.went to hair cut ., -ham,Somebody should go to andros and steal ice, -ham,I'm vivek:)i got call from your number., -ham,YO YO YO BYATCH WHASSUP?, -ham,"\Hi darlin i cantdo anythingtomorrow as myparents aretaking me outfor a meal. when are u free? Katexxx\""""", -ham,A cute thought for friendship: \Its not necessary to share every secret with ur close Frnd, -ham,Oh ok wait 4 me there... My lect havent finish, -ham,"Yo, I'm at my parents' gettin cash. Good news: we picked up a downstem", -ham,Why did I wake up on my own >:(, -ham,Hey they r not watching movie tonight so i'll prob b home early..., -ham,Yes.i'm in office da:), -ham,Yo im right by yo work, -ham,Yeah I imagine he would be really gentle. Unlike the other docs who treat their patients like turkeys., -ham,Ok c ?_ then., -ham,"I'll see if I can swing by in a bit, got some things to take care of here firsg", -ham,.Please charge my mobile when you get up in morning., -ham,How dare you change my ring, -ham,Where are you ? You said you would be here when I woke ... :-(, -ham,Hi! You just spoke to MANEESHA V. We'd like to know if you were satisfied with the experience. Reply Toll Free with Yes or No., -ham,I'm coming home 4 dinner., -ham,Ahhh. Work. I vaguely remember that! What does it feel like? Lol, -ham,He dint tell anything. He is angry on me that why you told to abi., -ham,Ok then no need to tell me anything i am going to sleep good night, -ham,University of southern california., -ham,Yeah if we do have to get a random dude we need to change our info sheets to PARTY <#> /7 NEVER STUDY just to be safe, -ham,I dont know ask to my brother. Nothing problem some thing that. Just i told ., -ham,"I think your mentor is , but not 100 percent sure.", diff --git a/spear/Implyloss/testing/Data/SMS/test.csv b/spear/Implyloss/testing/Data/SMS/test.csv deleted file mode 100644 index 00cb359..0000000 --- a/spear/Implyloss/testing/Data/SMS/test.csv +++ /dev/null @@ -1,501 +0,0 @@ -v1,v2 -ham,"no, its true..k,do u knw dis no. <#> ?" -ham,yes i thought so. thanks. -ham,aiya we discuss later lar... pick ?_ up at 4 is it? -spam,8007 free for 1st week! no1 nokia tone 4 ur mob every week just txt nokia to 8007 get txting and tell ur mates www.getzed.co.uk pobox 36504 w4 5wq norm 150p/tone 16+ -ham,and of course you should make a stink! -ham,but pls dont play in others life. -ham,oic cos me n my sis got no lunch today my dad went out... so dunno whether 2 eat in sch or wat... -ham,you sure your neighbors didnt pick it up -ham,"i feel like a dick because i keep sleeping through your texts and facebook messages. sup, you in town?" -ham,ok but knackered. just came home and went to sleep! not good at this full time work lark. -ham,of cos can lar i'm not so ba dao ok... 1 pm lor... y u never ask where we go ah... i said u would ask on fri but he said u will ask today... -ham,wat r u doing now? -spam,urgent! we are trying to contact you. last weekends draw shows that you have won a ??900 prize guaranteed. call 09061701851. claim code k61. valid 12hours only -ham,fine am simply sitting. -spam,"hi babe its jordan, how r u? im home from abroad and lonely, text me back if u wanna chat xxsp visionsms.com text stop to stopcost 150p 08712400603" -ham,its sarcasm.. .nt scarcasim -ham,"rose for red,red for blood,blood for heart,heart for u. but u for me.... send tis to all ur friends.. including me.. if u like me.. if u get back, 1-u r poor in relation! 2-u need some 1 to support 3-u r frnd 2 many 4-some1 luvs u 5+- some1 is praying god to marry u.:-) try it...." -ham,"4 tacos + 1 rajas burrito, right?" -ham,ok then i will come to ur home after half an hour -ham,"today is sorry day.! if ever i was angry with you, if ever i misbehaved or hurt you? plz plz just slap urself bcoz, its ur fault, i'm basically good" -ham,lovely smell on this bus and it ain't tobacco... -spam,please call our customer service representative on freephone 0808 145 4742 between 9am-11pm as you have won a guaranteed ??1000 cash or ??5000 prize! -ham,i need... coz i never go before -ham,"love isn't a decision, it's a feeling. if we could decide who to love, then, life would be much simpler, but then less magical" -ham,"night sweet, sleep well! i've just been to see the exorcism of emily rose and may never sleep again! hugs and snogs!" -ham,k... must book a not huh? so going for yoga basic on sunday? -ham,i'm at home n ready... -ham,where is that one day training:-) -ham,oh is it? send me the address -ham,i'm coming home 4 dinner. -ham,"alright, see you in a bit" -ham,", how's things? just a quick question." -ham,"\hey babe! far 2 spun-out 2 spk at da mo... dead 2 da wrld. been sleeping on da sofa all day tx 4 fonin hon call 2mwen im bk frmcloud 9! j x\""""" -ham,"the gas station is like a block away from my house, you'll drive right by it since armenia ends at swann and you have to take howard" -ham,when/where do i pick you up -ham,you'd like that wouldn't you? jerk! -ham,we have pizza if u want -spam,a ??400 xmas reward is waiting for you! our computer has randomly picked you from our loyal mobile customers to receive a ??400 reward. just call 09066380611 -ham,aathi..where are you dear.. -ham,going thru a very different feeling.wavering decisions and coping up with the same is the same individual.time will heal everything i believe. -ham,all e best 4 ur exam later. -ham,"don't worry, * is easy once have ingredients!" -ham,just finished eating. got u a plate. not leftovers this time. -ham,i will take care of financial problem.i will help:) -ham,do you want bold 2 or bb torch -ham,no no:)this is kallis home ground.amla home town is durban:) -ham,hello hun how ru? its here by the way. im good. been on 2 dates with that guy i met in walkabout so far. we have to meet up soon. hows everyone else? -ham,tell her i said eat shit. -spam,25p 4 alfie moon's children in need song on ur mob. tell ur m8s. txt tone charity to 8007 for nokias or poly charity for polys: zed 08701417012 profit 2 charity. -spam,"urgent! please call 09066612661 from your landline, your complimentary 4* lux costa del sol holiday or ??1000 cash await collection. ppm 150 sae t&cs james 28, eh74rr" -ham,"k give me a sec, breaking a <#> at cstore" -ham,they r giving a second chance to rahul dengra. -ham,"forgot it takes me 3 years to shower, sorry. where you at/your phone dead yet?" -ham,was gr8 to see that message. so when r u leaving? congrats dear. what school and wat r ur plans. -ham,oops i was in the shower when u called. hey a parking garage collapsed at university hospital. see i'm not crazy. stuff like that does happen. -spam,we tried to contact you re your reply to our offer of a video handset? 750 anytime networks mins? unlimited text? camcorder? reply or call 08000930705 now -ham,yes :)it completely in out of form:)clark also utter waste. -ham,what you did in leave. -ham,so do you have samus shoulders yet -spam,"freemsg: claim ur 250 sms messages-text ok to 84025 now!use web2mobile 2 ur mates etc. join txt250.com for 1.50p/wk. t&c box139, la32wu. 16 . remove txtx or stop" -spam,u have won a nokia 6230 plus a free digital camera. this is what u get when u win our free auction. to take part send nokia to 83383 now. pobox114/14tcr/w1 16 -ham,this pen thing is beyond a joke. wont a biro do? don't do a masters as can't do this ever again! -ham,i know a few people i can hit up and fuck to the yes -ham,olol i printed out a forum post by a guy with the exact same prob which was fixed with a gpu replacement. hopefully they dont ignore that. -ham,hi:)did you asked to waheeda fathima about leave? -ham,u still going to the mall? -ham,"some friends want me to drive em someplace, probably take a while" -spam,do you want 750 anytime any network mins 150 text and a new video phone for only five pounds per week call 08002888812 or reply for delivery tomorrow -ham,"so many people seems to be special at first sight, but only very few will remain special to you till your last sight.. maintain them till life ends.. take cr da" -ham,i pocked you up there before -ham,keep my payasam there if rinu brings -ham,"not much, just some textin'. how bout you?" -ham,"it's that time of the week again, ryan" -ham,anyway i'm going shopping on my own now. cos my sis not done yet. dun disturb u liao. -ham,goin to workout lor... muz lose e fats... -ham,but am going to college pa. what to do. are else ill come there it self. pa. -ham,"\hi darlin i cantdo anythingtomorrow as myparents aretaking me outfor a meal. when are u free? katexxx\""""" -ham,i'm awake oh. what's up. -ham,i will spoil you in bed as well :) -ham,"house-maid is the murderer, coz the man was murdered on <#> th january.. as public holiday all govt.instituitions are closed,including post office.." -ham,how's ur paper? -ham,i donno its in your genes or something -ham,k i'll take care of it -ham,"(i should add that i don't really care and if you can't i can at least get this dude to fuck off but hey, your money if you want it)" -ham,"sorry, i'll call later" -ham,"ya tel, wats ur problem.." -ham,says the <#> year old with a man and money. i'm down to my last <#> . still waiting for that check. -spam,private! your 2003 account statement for shows 800 un-redeemed s.i.m. points. call 08718738001 identifier code: 49557 expires 26/11/04 -ham,"uncle g, just checking up on you. do have a rewarding month" -spam,text banneduk to 89555 to see! cost 150p textoperator g696ga 18+ xxx -ham,but i'm really really broke oh. no amount is too small even <#> -ham,so when do you wanna gym? -ham,so u wan 2 come for our dinner tonight a not? -ham,haha... can... but i'm having dinner with my cousin... -ham,"nimbomsons. yep phone knows that one. obviously, cos thats a real word" -ham,i am waiting for your call sir. -ham,they are just making it easy to pay back. i have <#> yrs to say but i can pay back earlier. you get? -ham,i'm good. have you registered to vote? -ham,wat's da model num of ur phone? -ham,jus finish bathing... -ham,"as usual..iam fine, happy & doing well..:)" -ham,glad it went well :) come over at 11 then we'll have plenty of time before claire goes to work. -ham,but i'm surprised she still can guess right lor... -ham,yar lor... keep raining non stop... or u wan 2 go elsewhere? -ham,k:)k.are you in college? -ham,k.then any other special? -ham,"yup. anything lor, if u dun wan it's ok..." -ham,"i know you are thinkin malaria. but relax, children cant handle malaria. she would have been worse and its gastroenteritis. if she takes enough to replace her loss her temp will reduce. and if you give her malaria meds now she will just vomit. its a self limiting illness she has which means in a few days it will completely stop" -ham,you available now? i'm like right around hillsborough & <#> th -ham,"yes obviously, but you are the eggs-pert and the potato head??_ speak soon!" -ham,i wish that i was with you. holding you tightly. making you see how important you are. how much you mean to me ... how much i need you ... in my life ... -ham,how? izzit still raining? -ham,"a boy was late 2 home. his father: \power of frndship\""""" -ham,i jokin oni lar.. ?? busy then i wun disturb ?_. -ham,"hmmm.. thk sure got time to hop ard... ya, can go 4 free abt... muz call u to discuss liao..." -ham,i am back. bit long cos of accident on a30. had to divert via wadebridge.i had a brilliant weekend thanks. speak soon. lots of love -ham,uncle abbey! happy new year. abiola -ham,"haha awesome, i've been to 4u a couple times. who all's coming?" -ham,"i need an 8th but i'm off campus atm, could i pick up in an hour or two?" -ham,err... cud do. i'm going to at 8pm. i haven't got a way to contact him until then. -spam,"someone u know has asked our dating service 2 contact you! cant guess who? call 09058097189 now all will be revealed. pobox 6, ls15hb 150p" -ham,ok . . now i am in bus. . if i come soon i will come otherwise tomorrow -ham,dont make ne plans for nxt wknd coz she wants us to come down then ok -ham,you lifted my hopes with the offer of money. i am in need. especially when the end of the month approaches and it hurts my studying. anyways have a gr8 weekend -ham,oh k.k..where did you take test? -ham,"every king was once a crying baby and every great building was once a map.. not imprtant where u r today, but where u wil reach tomorw. gud ni8" -ham,miles and smiles r made frm same letters but do u know d difference..? smile on ur face keeps me happy even though i am miles away from u.. :-)keep smiling.. good nyt -ham,i'm leaving my house now. -ham,my supervisor find 4 me one lor i thk his students. i havent ask her yet. tell u aft i ask her. -ham,"aiyo... u always c our ex one... i dunno abt mei, she haven reply... first time u reply so fast... y so lucky not workin huh, got bao by ur sugardad ah...gee.." -ham,will you come online today night -ham,take some small dose tablet for fever -ham,?? collecting ur laptop then going to configure da settings izzit? -spam,"free entry to the gr8prizes wkly comp 4 a chance to win the latest nokia 8800, psp or ??250 cash every wk.txt great to 80878 http//www.gr8prizes.com 08715705022" -ham,if we win its really no 1 side for long time. -spam,"england v macedonia - dont miss the goals/team news. txt ur national team to 87077 eg england to 87077 try:wales, scotland 4txt/??1.20 poboxox36504w45wq 16+" -ham,no need lar i go engin? cos my sis at arts today... -ham,got it. seventeen pounds for seven hundred ml ??? hope ok. -ham,i'm at home. please call -spam,call from 08702490080 - tells u 2 call 09066358152 to claim ??5000 prize. u have 2 enter all ur mobile & personal details @ the prompts. careful! -spam,for sale - arsenal dartboard. good condition but no doubles or trebles! -ham,u can call me now... -ham,hi. || do u want | to join me with sts later? || meeting them at five. || call u after class. -ham,yup ok... -ham,"den only weekdays got special price... haiz... cant eat liao... cut nails oso muz wait until i finish drivin wat, lunch still muz eat wat..." -ham,i got a call from a landline number. . . i am asked to come to anna nagar . . . i will go in the afternoon -ham,"so you think i should actually talk to him? not call his boss in the morning? i went to this place last year and he told me where i could go and get my car fixed cheaper. he kept telling me today how much he hoped i would come back in, how he always regretted not getting my number, etc." -ham,when ?_ login dat time... dad fetching ?_ home now? -ham,somewhere out there beneath the pale moon light someone think in of u some where out there where dreams come true... goodnite & sweet dreams -ham,ok anyway no need to change with what you said -ham,my slave! i want you to take 2 or 3 pictures of yourself today in bright light on your cell phone! bright light! -ham,i am in your office na. -ham,hey i'm bored... so i'm thinking of u... so wat r u doing? -ham,aight do you still want to get money -ham,o ic lol. should play 9 doors sometime yo -ham,hi dear call me its urgnt. i don't know whats your problem. you don't want to work or if you have any other problem at least tell me. wating for your reply. -ham,sounds great! are you home now? -ham,just got up. have to be out of the room very soon. ??_. i hadn't put the clocks back til at 8 i shouted at everyone to get up and then realised it was 7. wahay. another hour in bed. -ham,"excellent, i'll see what riley's plans are" -spam,free for 1st week! no1 nokia tone 4 ur mobile every week just txt nokia to 8077 get txting and tell ur mates. www.getzed.co.uk pobox 36504 w45wq 16+ norm150p/tone -ham,how much would it cost to hire a hitman -ham,u don't know how stubborn i am. i didn't even want to go to the hospital. i kept telling mark i'm not a weak sucker. hospitals are for weak suckers. -ham,but you were together so you should be thinkin about him -ham,i'm not coming home 4 dinner. -ham,"please protect yourself from e-threats. sib never asks for sensitive information like passwords,atm/sms pin thru email. never share your password with anybody." -ham,i'm done... -ham,no de.am seeing in online shop so that i asked. -ham,hi babe u r most likely to be in bed but im so sorry about tonight! i really wanna see u tomorrow so call me at 9. love me xxx -spam,"mila, age23, blonde, new in uk. i look sex with uk guys. if u like fun with me. text mtalk to 69866.18 . 30pp/txt 1st 5free. ??1.50 increments. help08718728876" -ham,i am on the way to ur home -spam,collect your valentine's weekend to paris inc flight & hotel + ??200 prize guaranteed! text: paris to no: 69101. www.rtf.sphosting.com -ham,hey loverboy! i love you !! i had to tell ... i look at your picture and ache to feel you between my legs ... fuck i want you ... i need you ... i crave you . -ham,you will be in the place of that man -ham,\er -ham,i'm not sure if its still available though -ham,k come to nordstrom when you're done -spam,santa calling! would your little ones like a call from santa xmas eve? call 09058094583 to book your time. -ham,what today-sunday..sunday is holiday..so no work.. -ham,hey so whats the plan this sat? -spam,"sms. ac blind date 4u!: rodds1 is 21/m from aberdeen, united kingdom. check him out http://img. sms. ac/w/icmb3cktz8r7!-4 no blind dates send hide" -spam,"congrats! 2 mobile 3g videophones r yours. call 09061744553 now! videochat wid ur mates, play java games, dload polyh music, noline rentl. bx420. ip4. 5we. 150pm" -ham,don't make life too stressfull.. always find time to laugh.. it may not add years to your life! but surely adds more life to ur years!! gud ni8..swt dreams.. -spam,22 days to kick off! for euro2004 u will be kept up to date with the latest news and results daily. to be removed send get txt stop to 83222 -ham,"sorry,in meeting i'll call later" -ham,are u coming to the funeral home -ham,y ?_ wan to go there? c doctor? -ham,"actually, my mobile is full of msg. and i m doing a work online, where i need to send them <#> sent msg i wil explain u later." -spam,"for your chance to win a free bluetooth headset then simply reply back with \adp\""""" -ham,lol your right. what diet? everyday i cheat anyway. i'm meant to be a fatty :( -ham,"swhrt how u dey,hope ur ok, tot about u 2day.love n miss.take care." -ham,ello babe u ok? -ham,boy; i love u grl: hogolo boy: gold chain kodstini grl: agalla boy: necklace madstini grl: agalla boy: hogli 1 mutai eerulli kodthini! grl: i love u kano;-) -ham,i'm now but have to wait till 2 for the bus to pick me. -ham,ya srsly better than yi tho -spam,free entry in 2 a wkly comp to win fa cup final tkts 21st may 2005. text fa to 87121 to receive entry question(std txt rate)t&c's apply 08452810075over18's -ham,honey boo i'm missing u. -ham,thats cool. i liked your photos. you are very sexy! -spam,u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09065171142-stopsms-08 -ham,hey do you want anything to buy:) -spam,ur cash-balance is currently 500 pounds - to maximize ur cash-in now send go to 86688 only 150p/meg. cc: 08718720201 hg/suite342/2lands row/w1j6hl -ham,hey r ?_ still online? i've finished the formatting... -ham,why she wants to talk to me -ham,no he didn't. spring is coming early yay! -ham,hey happy birthday... -ham,2marrow only. wed at <#> to 2 aha. -spam,do you want a new nokia 3510i colour phone delivered tomorrow? with 200 free minutes to any mobile + 100 free text + free camcorder reply or call 08000930705 -ham,fffff. can you text kadeem or are you too far gone -ham,"no we put party 7 days a week and study lightly, i think we need to draw in some custom checkboxes so they know we're hardcore" -ham,i have had two more letters from . i will copy them for you cos one has a message for you. speak soon -ham,can do lor... -ham,dont put your phone on silent mode ok -ham,shall i ask one thing if you dont mistake me. -ham,"sorry that took so long, omw now" -ham,either way works for me. i am <#> years old. hope that doesnt bother you. -ham,my superior telling that friday is leave for all other department except ours:)so it will be leave for you:)any way call waheed fathima hr and conform it:) -ham,all done? all handed in? celebrations in full swing yet? -ham,hi. happy new year. i dont mean to intrude but can you pls let me know how much tuition you paid last semester and how much this semester is. thanks -ham,wot u up 2? thout u were gonna call me!! txt bak luv k -spam,"final chance! claim ur ??150 worth of discount vouchers today! text yes to 85023 now! savamob, member offers mobile! t cs savamob pobox84, m263uz. ??3.00 subs 16" -ham,that sucks. i'll go over so u can do my hair. you'll do it free right? -ham,"pete,is this your phone still? its jenny from college and leanne.what are you up to now?:)" -ham,how u doin baby girl ?? hope u are okay every time i call ure phone is off! i miss u get in touch -spam,"customer service announcement. we recently tried to make a delivery to you but were unable to do so, please call 07099833605 to re-schedule. ref:9280114" -ham,sorry that was my uncle. i.ll keep in touch -ham,yo yo yo byatch whassup? -ham,cool. do you like swimming? i have a pool and jacuzzi at my house. -ham,ma head dey swell oh. thanks for making my day -ham,ok lor then we go tog lor... -ham,"sorry, i'll call later" -ham,eh u send wrongly lar... -ham,no calls..messages..missed calls -spam,your b4u voucher w/c 27/03 is marsms. log onto www.b4utele.com for discount credit. to opt out reply stop. customer care call 08717168528 -spam,private! your 2003 account statement for shows 800 un-redeemed s. i. m. points. call 08719899230 identifier code: 41685 expires 07/11/04 -ham,am slow in using biola's fne -ham,"indians r poor but india is not a poor country. says one of the swiss bank directors. he says that \ <#> lac crore\"" of indian money is deposited in swiss banks which can be used for 'taxless' budget for <#> yrs. can give <#> crore jobs to all indians. from any village to delhi 4 lane roads. forever free power suply to more than <#> social projects. every citizen can get monthly <#> /- for <#> yrs. no need of world bank & imf loan. think how our money is blocked by rich politicians. we have full rights against corrupt politicians. itna forward karo ki pura india padhe.g.m.\""""" -ham,"fuck babe, i miss you sooooo much !! i wish you were here to sleep with me ... my bed is so lonely ... i go now, to sleep ... to dream of you, my love ..." -ham,hope you are having a great day. -ham,just trying to figure out when i'm suppose to see a couple different people this week. we said we'd get together but i didn't set dates -ham,did u got that persons story -ham,height of confidence: all the aeronautics professors wer calld & they wer askd 2 sit in an aeroplane. aftr they sat they wer told dat the plane ws made by their students. dey all hurried out of d plane.. bt only 1 didnt move... he said:\if it is made by my students -ham,even my brother is not like to speak with me. they treat me like aids patent. -ham,no problem baby. is this is a good time to talk? i called and left a message. -spam,dont forget you can place as many free requests with 1stchoice.co.uk as you wish. for more information call 08707808226. -ham,good morning princess! have a great day! -ham,hey tmr meet at bugis 930 ? -ham,i will reach before ten morning -ham,"today is \song dedicated day..\"" which song will u dedicate for me? send this to all ur valuable frnds but first rply me...""" -ham,but really quite funny lor wat... then u shd haf run shorter distance wat... -ham,"wiskey brandy rum gin beer vodka scotch shampain wine \kudi\""yarasu dhina vaazhthukkal. ..""" -spam,"welcome to uk-mobile-date this msg is free giving you free calling to 08719839835. future mgs billed at 150p daily. to cancel send \go stop\"" to 89123""" -ham,no wonder... cos i dun rem seeing a silver car... but i thk i saw a black one... -ham,its a valentine game. . . send dis msg to all ur friends. .. if 5 answers r d same then someone really loves u. ques- which colour suits me the best?rply me -ham,"sir, waiting for your letter." -spam,3. you have received your mobile content. enjoy -ham,home so we can always chat -ham,i'm at home. please call -ham,ffffffffff. alright no way i can meet up with you sooner? -ham,wishing you a beautiful day. each moment revealing even more things to keep you smiling. do enjoy it. -ham,today is accept day..u accept me as? brother sister lover dear1 best1 clos1 lvblefrnd jstfrnd cutefrnd lifpartnr belovd swtheart bstfrnd no rply means enemy -ham,cool. so how come you havent been wined and dined before? -spam,want the latest video handset? 750 anytime any network mins? half price line rental? reply or call 08000930705 for delivery tomorrow -ham,you should get more chicken broth if you want ramen unless there's some i don't know about -spam,"january male sale! hot gay chat now cheaper, call 08709222922. national rate from 1.5p/min cheap to 7.8p/min peak! to stop texts call 08712460324 (10p/min)" -ham,"goodnight, sleep well da please take care pa. please." -ham,i cant pick the phone right now. pls send a message -ham,u haven??t lost me ill always b here 4u.i didn??t intend 2 hurt u but i never knew how u felt about me when iwas+marine&that??s what itried2tell urmom.i careabout u -ham,ok lor... sony ericsson salesman... i ask shuhui then she say quite gd 2 use so i considering... -ham,ha ha ha good joke. girls are situation seekers. -ham,"storming msg: wen u lift d phne, u say \hello\"" do u knw wt is d real meaning of hello?? . . . it's d name of a girl..! . . . yes.. and u knw who is dat girl?? \""margaret hello\"" she is d girlfrnd f grahmbell who invnted telphone... . . . . moral:one can 4get d name of a person" -ham,customer place i will call you. -ham,sorry. || mail? || -ham,i want to sent <#> mesages today. thats y. sorry if i hurts -ham,i know she called me -ham,also maaaan are you missing out -ham,k:)k:)what are detail you want to transfer?acc no enough? -ham,lemme know when you're here -spam,babe: u want me dont u baby! im nasty and have a thing 4 filthyguys. fancy a rude time with a sexy bitch. how about we go slo n hard! txt xxx slo(4msgs) -ham,short but cute: \be a good person -ham,cold. dont be sad dear -ham,unfortunately i've just found out that we have to pick my sister up from the airport that evening so don't think i'll be going out at all. we should try to go out one of th -ham,"sure, if i get an acknowledgement from you that it's astoundingly tactless and generally faggy to demand a blood oath fo" -ham,sad story of a man - last week was my b'day. my wife did'nt wish me. my parents forgot n so did my kids . i went to work. even my colleagues did not wish. -ham,why don't you go tell your friend you're not sure you want to live with him because he smokes too much then spend hours begging him to come smoke -ham,carlos says he'll be at mu in <#> minutes -ham,well. im computerless. time to make some oreo truffles -ham,i am in a marriage function -spam,"hack chat. get backdoor entry into 121 chat rooms at a fraction of the cost. reply neo69 or call 09050280520, to subscribe 25p pm. dps, bcm box 8027 ldn, wc1n3xx" -ham,yes..he is really great..bhaji told kallis best cricketer after sachin in world:).very tough to get out. -ham,boo i'm on my way to my moms. she's making tortilla soup. yummmm -ham,carlos'll be here in a minute if you still need to buy -ham,it only does simple arithmetic not percentages. -ham,k actually can you guys meet me at the sunoco on howard? it should be right on the way -ham,pls help me tell ashley that i cant find her number oh -ham,okie -ham,i just saw ron burgundy captaining a party boat so yeah -ham,"aight we can pick some up, you open before tonight?" -ham,tmrw. im finishing 9 doors -ham,what is your record for one night? :) -ham,"dear hero,i am leaving to qatar tonite for an apt opportunity.pls do keep in touch at <email> ,kerala" -ham,sounds better than my evening im just doing my costume. im not sure what time i finish tomorrow but i will txt you at the end. -ham,i ask if u meeting da ge tmr nite... -ham,yes baby! we can study all the positions of the kama sutra ;) -ham,am going to take bath ill place the key in window:-) -ham,hey mr whats the name of that bill brison book the one about language and words -ham,oh and by the way you do have more food in your fridge! want to go out for a meal tonight? -spam,"today's offer! claim ur ??150 worth of discount vouchers! text yes to 85023 now! savamob, member offers mobile! t cs 08717898035. ??3.00 sub. 16 . unsub reply x" -ham,great. i was getting worried about you. just know that a wonderful and caring person like you will have only the best in life. know that u r wonderful and god's love is yours. -spam,hi if ur lookin 4 saucy daytime fun wiv busty married woman am free all next week chat now 2 sort time 09099726429 janinexx calls??1/minmobsmorelkpobox177hp51fl -ham,u 2. -ham,we are both fine. thanks -ham,when can ?_ come out? -spam,please call 08712402972 immediately as there is an urgent message waiting for you -ham,but that's on ebay it might be less elsewhere. -ham,pls pls find out from aunt nike. -ham,not course. only maths one day one chapter with in one month we can finish. -spam,i don't know u and u don't know me. send chat to 86688 now and let's find each other! only 150p/msg rcvd. hg/suite342/2lands/row/w1j6hl ldn. 18 years or over. -ham,hey i booked the kb on sat already... what other lessons are we going for ah? keep your sat night free we need to meet and confirm our lodging -ham,nope. i just forgot. will show next week -ham,i'm really not up to it still tonight babe -ham,omg it could snow here tonite! -ham,oh. u must have taken your real valentine out shopping first. -ham,everybody had fun this evening. miss you. -ham,ok ok take care. i can understand. -ham,i felt so...not any conveying reason.. ese he... what about me? -ham,"i'm not coming over, do whatever you want" -ham,i will once i get home -ham,probably earlier than that if the station's where i think it is -ham,ok but tell me half an hr b4 u come i need 2 prepare. -ham,"we're all getting worried over here, derek and taylor have already assumed the worst" -ham,convey my regards to him -ham,hey! congrats 2u2. id luv 2 but ive had 2 go home! -ham,"theoretically yeah, he could be able to come" -ham,ok. not sure what time tho as not sure if can get to library before class. will try. see you at some point! have good eve. -ham,"\are you comingdown later?\""""" -ham,hope you are having a good week. just checking in -ham,pls dont forget to study -ham,"says that he's quitting at least5times a day so i wudn't take much notice of that. nah, she didn't mind. are you gonna see him again? do you want to come to taunton tonight? u can tell me all about !" -ham,tmr timin still da same wat cos i got lesson until 6... -ham,i reach home safe n sound liao... -ham,"\cheers for callin babe.sozi culdnt talkbut i wannatell u details later wenwecan chat properly x\""""" -ham,"haha figures, well i found the piece and priscilla's bowl" -ham,do u ever get a song stuck in your head for no reason and it won't go away til u listen to it like 5 times? -ham,dai i downloaded but there is only exe file which i can only run that exe after installing. -ham,"i??m cool ta luv but v.tired 2 cause i have been doin loads of planning all wk, we have got our social services inspection at the nursery! take care & spk sn x." -spam,"urgent! your mobile no. was awarded ??2000 bonus caller prize on 5/9/03 this is our final try to contact u! call from landline 09064019788 box42wr29c, 150ppm" -ham,"now, whats your house # again ? and do you have any beer there ?" -ham,thanks for yesterday sir. you have been wonderful. hope you enjoyed the burial. mojibiola -ham,anything lor is she coming? -ham,"lol .. *grins* .. i'm not babe, but thanks for thinking of me!" -ham,that day you asked about anand number. why:-) -ham,as in different styles? -ham,same. wana plan a trip sometme then -ham,"i got arrested for possession at, i shit you not, <time> pm" -ham,"yes, princess. are you going to make me moan?" -ham,bognor it is! should be splendid at this time of year. -ham,"i am in tirupur da, once you started from office call me." -ham,k.k:)i'm going to tirunelvali this week to see my uncle ..i already spend the amount by taking dress .so only i want money.i will give it on feb 1 -ham,im good! i have been thinking about you... -ham,so what did the bank say about the money? -spam,buy space invaders 4 a chance 2 win orig arcade game console. press 0 for games arcade (std wap charge) see o2.co.uk/games 4 terms + settings. no purchase -spam,"for ur chance to win ??250 cash every wk txt: play to 83370. t's&c's www.music-trivia.net custcare 08715705022, 1x150p/wk." -ham,"i don't know, same thing that's wrong everyso often, he panicks starts goin on bout not bein good enough ??_" -ham,now that you have started dont stop. just pray for more good ideas and anything i see that can help you guys i.ll forward you a link. -ham,"i'm not smoking while people use \wylie smokes too much\"" to justify ruining my shit""" -ham,yup. thk of u oso boring wat. -ham,you could have seen me..i did't recognise you face.:) -spam,win a year supply of cds 4 a store of ur choice worth ??500 & enter our ??100 weekly draw txt music to 87066 ts&cs www.ldew.com.subs16+1win150ppmx3 -ham,thanks for understanding. i've been trying to tell sura that. -ham,am watching house ??? very entertaining ??? am getting the whole hugh laurie thing ??? even with the stick ??? indeed especially with the stick. -ham,yar... i tot u knew dis would happen long ago already. -spam,network operator. the service is free. for t & c's visit 80488.biz -spam,ur cash-balance is currently 500 pounds - to maximize ur cash-in now send collect to 83600 only 150p/msg. cc: 08718720201 po box 114/14 tcr/w1 -ham,she's borderline but yeah whatever. -ham,"night night, see you tomorrow" -spam,do you want a new nokia 3510i colour phone deliveredtomorrow? with 300 free minutes to any mobile + 100 free texts + free camcorder reply or call 08000930705. -ham,"sorry, i'll call later <#> mins" -spam,win a ??1000 cash prize or a prize worth ??5000 -ham,"oh, yes, i've just been a little under the weather so i've kind of been coccooning at home" -ham,i'm already back home so no probably not -ham,where are you lover ? i need you ... -ham,"nah, i'm a perpetual dd" -spam,had your mobile 10 mths? update to latest orange camera/video phones for free. save ??s with free texts/weekend calls. text yes for a callback orno to opt out -ham,"sorry, i'll call later" -ham,eh u remember how 2 spell his name... yes i did. he v naughty make until i v wet. -ham,e admin building there? i might b slightly earlier... i'll call u when i'm reaching... -ham,"well, i was about to give up cos they all said no they didn???t do one nighters. i persevered and found one but it is very cheap so i apologise in advance. it is just somewhere to sleep isnt it?" -ham,me fine..absolutly fine -spam,"you've won tkts to the euro2004 cup final or ??800 cash, to collect call 09058099801 b4190604, pobox 7876150ppm" -ham,"dont pack what you can buy at any store.like cereals. if you must pack food, pack gari or something 9ja that you will miss." -ham,"she said,'' do u mind if i go into the bedroom for a minute ? '' ''ok'', i sed in a sexy mood. she came out 5 minuts latr wid a cake...n my wife," -ham,"can meh? thgt some will clash... really ah, i dun mind... i dun seen to have lost any weight... gee..." -spam,+123 congratulations - in this week's competition draw u have won the ??1450 prize to claim just call 09050002311 b4280703. t&cs/stop sms 08718727868. over 18 only 150ppm -ham,when u wana see it then -ham,unlimited texts. limited minutes. -ham,excellent! wish we were together right now! -ham,"7 wonders in my world 7th you 6th ur style 5th ur smile 4th ur personality 3rd ur nature 2nd ur sms and 1st \ur lovely friendship\""... good morning dear""" -ham,huh so early.. then ?_ having dinner outside izzit? -ham,whens your radio show? -spam,would you like to see my xxx pics they are so hot they were nearly banned in the uk! -ham,dunno cos i was v late n when i reach they inside already... but we ate spageddies lor... it's e gals who r laughing at me lor... -spam,"got what it takes 2 take part in the wrc rally in oz? u can with lucozade energy! text rally le to 61200 (25p), see packs or lucozade.co.uk/wrc & itcould be u!" -spam,"thanks for your ringtone order, reference number x49. your mobile will be charged 4.50. should your tone not arrive please call customer services 09065989182. from: [colour=red]text[/colour]txtstar" -ham,i told your number to gautham.. -ham,when did i use soc... i use it only at home... ?? dunno how 2 type it in word ar... -ham,i will reach ur home in <#> minutes -ham,okie ?_ wan meet at bishan? cos me at bishan now. i'm not driving today. -ham,ok leave no need to ask -ham,"goodmorning, today i am late for <#> min." -ham,good. no swimsuit allowed :) -ham,it's ok i wun b angry. msg u aft i come home tonight. -ham,thanks for picking up the trash. -ham,"yeah i am, so i'll leave maybe 7ish?" -ham,yun buying... but school got offer 2000 plus only... -ham,u in town alone? -ham,at home also. -spam,freemsg: fancy a flirt? reply date now & join the uks fastest growing mobile dating service. msgs rcvd just 25p to optout txt stop to 83021. reply date now! -ham,oh ok no prob.. -ham,hi where you. you in home or calicut? -ham,"yeah, in fact he just asked if we needed anything like an hour ago. when and how much?" -ham,mark works tomorrow. he gets out at 5. his work is by your house so he can meet u afterwards. -spam,"rock yr chik. get 100's of filthy films &xxx pics on yr phone now. rply filth to 69669. saristar ltd, e14 9yt 08701752560. 450p per 5 days. stop2 cancel" -ham,our ride equally uneventful - not too many of those pesky cyclists around at that time of night ;). -ham,i have to take exam with in march 3 -ham,prepare to be pleasured :) -ham,"aight, can you text me the address?" -ham,it has everything to do with the weather. keep extra warm. its a cold but nothing serious. pls lots of vitamin c -ham,of course. i guess god's just got me on hold right now. -ham,hope things went well at 'doctors' ;) reminds me i still need 2go.did u c d little thing i left in the lounge? -ham,"you are everywhere dirt, on the floor, the windows, even on my shirt. and sometimes when i open my mouth, you are all that comes flowing out. i dream of my world without you, then half my chores are out too. a time of joy for me, lots of tv shows i.ll see. but i guess like all things you just must exist, like rain, hail and mist, and when my time here is done, you and i become one." -ham,i'm freezing and craving ice. fml -ham,aiyo u so poor thing... then u dun wan 2 eat? u bathe already? -ham,host-based idps for linux systems. -spam,"urgent! your mobile no 07xxxxxxxxx won a ??2,000 bonus caller prize on 02/06/03! this is the 2nd attempt to reach you! call 09066362231 asap! box97n7qp, 150ppm" -ham,what happened to our yo date? -ham,so what about you. what do you remember -ham,i might go 2 sch. yar at e salon now v boring. -spam,please call 08712402779 immediately as there is an urgent message waiting for you -ham,annoying isn't it. -ham,hey next sun 1030 there's a basic yoga course... at bugis... we can go for that... pilates intro next sat.... tell me what time you r free -ham,k..i deleted my contact that why? -spam,do you want a new nokia 3510i colour phone deliveredtomorrow? with 300 free minutes to any mobile + 100 free texts + free camcorder reply or call 08000930705 -ham,i wil be there with in <#> minutes. got any space -ham,beerage? -ham,great. never been better. each day gives even more reasons to thank god -ham,captain is in our room:) -ham,"sir, hope your day is going smoothly. i really hoped i wont have to bother you about this. i have some bills that i can't settle this month. i am out of all extra cash. i know this is a challenging time for you also but i have to let you know." -ham,"haha... sounds crazy, dunno can tahan anot..." -ham,"sorry, i'll call later" -ham,which is why i never wanted to tell you any of this. which is why i'm so short with you and on-edge as of late. -ham,have you not finished work yet or something? -ham,good afternoon my boytoy. how goes that walking here and there day ? did you get that police abstract? are you still out and about? i wake and miss you babe -ham,pleassssssseeeeee tel me v avent done sportsx -ham,k..k:)where are you?how did you performed? -ham,ok thanx... -ham,pick you up bout 7.30ish? what time are and that going? -ham,wat uniform? in where get? -ham,ok which your another number -ham,chk in ur belovd ms dict -spam,urgent this is our 2nd attempt to contact u. your ??900 prize from yesterday is still awaiting collection. to claim call now 09061702893 -ham,"only just got this message, not ignoring you. yes, i was. shopping that is" -ham,i have many dependents -ham,i walked an hour 2 c u! doesn??t that show i care y wont u believe im serious? -ham,ok no prob... -ham,"\aww you must be nearly dead!well jez iscoming over todo some workand that whilltake forever!\""""" -ham,wow so healthy. old airport rd lor. cant thk of anything else. but i'll b bathing my dog later. -ham,well. you know what i mean. texting -ham,y?where u at dogbreath? its just sounding like jan c that??s al!!!!!!!!! -ham,anything is valuable in only 2 situations: first- before getting it... second- after loosing it... -ham,"i'll get there at 3, unless you guys want me to come some time sooner" -spam,"hello from orange. for 1 month's free access to games, news and sport, plus 10 free texts and 20 photo messages, reply yes. terms apply: www.orange.co.uk/ow" -ham,your daily text from me ??? a favour this time -spam,todays voda numbers ending 7548 are selected to receive a $350 award. if you have a match please call 08712300220 quoting claim code 4041 standard rates app -ham,simply sitting and watching match in office.. -ham,its not that time of the month nor mid of the time? -ham,nite nite pocay wocay luv u more than n e thing 4eva i promise ring u 2morrowxxxx -ham,"it's fine, imma get a drink or somethin. want me to come find you?" -ham,is ur changes 2 da report big? cos i've already made changes 2 da previous report. -ham,what you thinked about me. first time you saw me in class. -ham,what you need. you have a person to give na. -ham,"sometimes we put walls around our hearts,not just to be safe from getting hurt.. but to find out who cares enough to break the walls & get closer.. goodnoon:)" -ham,"watching cartoon, listening music & at eve had to go temple & church.. what about u?" -ham,am in gobi arts college -ham,better. made up for friday and stuffed myself like a pig yesterday. now i feel bleh. but at least its not writhing pain kind of bleh. -ham,i always chat with you. in fact i need money can you raise me? -ham,u call me alter at 11 ok. -ham,"dont give a monkeys wot they think and i certainly don't mind. any friend of mine&all that! just don't sleep wiv , that wud be annoyin!" -ham,i wont. so wat's wit the guys -ham,"that's good, because i need drugs" -ham,i don't think he has spatula hands! -ham,"hey, iouri gave me your number, i'm wylie, ryan's friend" -ham,ummmmmaah many many happy returns of d day my dear sweet heart.. happy birthday dear -ham,"wow. you're right! i didn't mean to do that. i guess once i gave up on boston men and changed my search location to nyc, something changed. cuz on my signin page it still says boston." -ham,din i tell u jus now 420 -ham,"sorry, i'll call later" -ham,haha but no money leh... later got to go for tuition... haha and looking for empty slots for driving lessons -ham,"i prefer my free days... tues, wed, fri oso can... ?? ask those workin lor..." -ham,\hey sorry i didntgive ya a a bellearlier hunny -ham,sad story of a man - last week was my b'day. my wife did'nt wish me. my parents forgot n so did my kids . i went to work. even my colleagues did not wish. -ham,we confirm eating at esplanade? -ham,we have to pick rayan macleran there. diff --git a/spear/Implyloss/testing/Data/SMS/test_processed.p b/spear/Implyloss/testing/Data/SMS/test_processed.p deleted file mode 100644 index 9ae1547..0000000 Binary files a/spear/Implyloss/testing/Data/SMS/test_processed.p and /dev/null differ diff --git a/spear/Implyloss/testing/Data/SMS/train.csv b/spear/Implyloss/testing/Data/SMS/train.csv deleted file mode 100644 index 8da8cba..0000000 --- a/spear/Implyloss/testing/Data/SMS/train.csv +++ /dev/null @@ -1,4503 +0,0 @@ -v1,v2 -spam,goldviking (29/m) is inviting you to be his friend. reply yes-762 or no-762 see him: www.sms.ac/u/goldviking stop? send stop frnd to 62468 -ham,"i'm in solihull, | do you want anything?" -spam,u have a secret admirer. reveal who thinks u r so special. call 09065174042. to opt out reply reveal stop. 1.50 per msg recd. cust care 07821230901 -ham,"hello lover! how goes that new job? are you there now? are you happy? do you think of me? i wake, my slave and send you a teasing kiss from across the sea" -spam,hey i am really horny want to chat or see me naked text hot to 69698 text charged at 150pm to unsubscribe text stop 69698 -ham,hi its jess i dont know if you are at work but call me when u can im at home all eve. xxx -ham,then any special there? -ham,just nw i came to hme da.. -ham,shall i get my pouch? -ham,doesn't g have class early tomorrow and thus shouldn't be trying to smoke at <#> -ham,"how long has it been since you screamed, princess?" -ham,let's pool our money together and buy a bunch of lotto tickets. if we win i get <#> % u get <#> %. deal? -ham,hey are we going for the lo lesson or gym? -ham,are you sure you don't mean \get here -ham,sounds great! im going to sleep now. have a good night! -ham,"hmm... dunno leh, mayb a bag 4 goigng out dat is not too small. or jus anything except perfume, smth dat i can keep." -ham,ok lor but not too early. me still having project meeting now. -spam,back 2 work 2morro half term over! can u c me 2nite 4 some sexy passion b4 i have 2 go back? chat now 09099726481 luv dena calls ??1/minmobsmorelkpobox177hp51fl -ham,i cant pick the phone right now. pls send a message -ham,"nah can't help you there, i've never had an iphone" -ham,jay says he'll put in <#> -ham,jade its paul. y didn??t u txt me? do u remember me from barmed? i want 2 talk 2 u! txt me -spam,you won't believe it but it's true. it's incredible txts! reply g now to learn truly amazing things that will blow your mind. from o2fwd only 18p/txt -ham,hows that watch resizing -ham,headin towards busetop -ham,actually i'm waiting for 2 weeks when they start putting ad. -ham,if anyone calls for a treadmill say you'll buy it. make sure its working. i found an ad on craigslist selling for $ <#> . -ham,its worse if if uses half way then stops. its better for him to complete it. -ham,good morning princess! how are you? -ham,wot is u up 2 then bitch? -ham,"babe, have you got enough money to pick up bread and milk ? and i'll give you it back when you get home ?" -ham,"isn't frnd a necesity in life? imagine urself witout a frnd.. hw'd u feel at ur colleg? wat'll u do wth ur cell? wat abt functions? thnk abt events espe'll cared, missed & irritated u? 4wrd it to all those dear-loving frnds wthout whom u cant live.. i jst did it.. takecare..:) goodmorning" -ham,yar lor wait 4 my mum 2 finish sch then have lunch lor... i whole morning stay at home clean my room now my room quite clean... hee... -ham,so when do you wanna gym harri -ham,no need lar. jus testing e phone card. dunno network not gd i thk. me waiting 4 my sis 2 finish bathing so i can bathe. dun disturb u liao u cleaning ur room. -ham,"babe! i fucking love you too !! you know? fuck it was so good to hear your voice. i so need that. i crave it. i can't get enough. i adore you, ahmad *kisses*" -ham,"watching cartoon, listening music & at eve had to go temple & church.. what about u?" -ham,"kind of. just missed train cos of asthma attack, nxt one in half hr so driving in. not sure where to park." -ham,i notice you like looking in the shit mirror youre turning into a right freak -ham,in that case i guess i'll see you at campus lodge -ham,thank you. i like you as well... -ham,yup i thk they r e teacher said that will make my face look longer. darren ask me not 2 cut too short. -ham,happy new years melody! -ham,"ok. can be later showing around 8-8:30 if you want + cld have drink before. wld prefer not to spend money on nosh if you don't mind, as doing that nxt wk." -ham,come back to tampa ffffuuuuuuu -ham,no messages on her phone. i'm holding it now -ham,great! i hope you like your man well endowed. i am <#> inches... -ham,then why you came to hostel. -ham,\hey kate -ham,hello darlin ive finished college now so txt me when u finish if u can love kate xxx -ham,yes:)from last week itself i'm taking live call. -ham,what's nannys address? -ham,"yo, any way we could pick something up tonight?" -ham,nope... c ?_ then... -ham,need a coffee run tomo?can't believe it's that time of week already -ham,sounds like you have many talents! would you like to go on a dinner date next week? -ham,you still around? i could use a half-8th -ham,what happen dear tell me -ham,wherre's my boytoy ? :-( -ham,from here after the performance award is calculated every two month.not for current one month period.. -ham,sorry to be a pain. is it ok if we meet another night? i spent late afternoon in casualty and that means i haven't done any of y stuff42moro and that includes all my time sheets and that. sorry. -ham,hello boytoy ! geeee ... i'm missing you today. i like to send you a tm and remind you i'm thinking of you ... and you are loved ... *loving kiss* -ham,oi when you gonna ring -ham,yes i will be there. glad you made it. -ham,"the last thing i ever wanted to do was hurt you. and i didn't think it would have. you'd laugh, be embarassed, delete the tag and keep going. but as far as i knew, it wasn't even up. the fact that you even felt like i would do it to hurt you shows you really don't know me at all. it was messy wednesday, but it wasn't bad. the problem i have with it is you have the time to clean it, but you choose not to. you skype, you take pictures, you sleep, you want to go out. i don't mind a few things here and there, but when you don't make the bed, when you throw laundry on top of it, when i can't have a friend in the house because i'm embarassed that there's underwear and bras strewn on the bed, pillows on the floor, that's something else. you used to be good about at least making the bed." -ham,dont let studying stress you out. l8r. -ham,u still painting ur wall? -ham,i had askd u a question some hours before. its answer -ham,anything lor but toa payoh got place 2 walk meh... -ham,"i've got <#> , any way i could pick up?" -ham,then just eat a shit and wait for ur monkey face bitch.......... u asshole.................. -ham,"hi hope u r both ok, he said he would text and he hasn't, have u seen him, let me down gently please" -ham,"my fri ah... okie lor,goin 4 my drivin den go shoppin after tt..." -ham,why did i wake up on my own >:( -ham,"sorry, i'll call later" -ham,are you staying in town ? -ham,oh k :)why you got job then whats up? -ham,if you still havent collected the dough pls let me know so i can go to the place i sent it to get the control number -ham,watching telugu movie..wat abt u? -ham,i love to wine and dine my lady! -ham,"yeah, i'll leave in a couple minutes & let you know when i get to mu" -ham,"k, fyi i'm back in my parents' place in south tampa so i might need to do the deal somewhere else" -ham,"just sent again. do you scream and moan in bed, princess?" -ham,did you show him and wot did he say or could u not c him 4 dust? -ham,yup. wun believe wat? u really neva c e msg i sent shuhui? -ham,in work now. going have in few min. -spam,refused a loan? secured or unsecured? can't get credit? call free now 0800 195 6669 or text back 'help' & we will! -spam,you have won a guaranteed 32000 award or maybe even ??1000 cash to claim ur award call free on 0800 ..... (18+). its a legitimat efreefone number wat do u think??? -ham,what i told before i tell. stupid hear after i wont tell anything to you. you dad called to my brother and spoken. not with me. -ham,come to mahal bus stop.. <decimal> -ham,* will have two more cartons off u and is very pleased with shelves -ham,tell them the drug dealer's getting impatient -ham,how do friends help us in problems? they give the most stupid suggestion that lands us into another problem and helps us forgt the previous problem -spam,"hello darling how are you today? i would love to have a chat, why dont you tell me what you look like and what you are in to sexy?" -ham,i can do that! i want to please you both inside and outside the bedroom... -ham,well i know z will take care of me. so no worries. -ham,hmmm.but you should give it on one day.. -spam,december only! had your mobile 11mths+? you are entitled to update to the latest colour camera mobile for free! call the mobile update co free on 08002986906 -ham,i am going to sao mu today. will be done only at 12 -spam,monthly password for wap. mobsi.com is 391784. use your wap phone not pc. -ham,you getting back any time soon? -spam,want 2 get laid tonight? want real dogging locations sent direct 2 ur mob? join the uk's largest dogging network by txting moan to 69888nyt. ec2a. 31p.msg@150p -ham,otherwise had part time job na-tuition.. -ham,", , and picking them up from various points | going 2 yeovil | and they will do the motor project 4 3 hours | and then u take them home. || 12 2 5.30 max. || very easy" -ham,i wud never mind if u dont miss me or if u dont need me.. but u wil really hurt me wen u need me & u dont tell me......... take care:-) -ham,have you started in skye -ham,fuck babe ... what happened to you ? how come you never came back? -ham,no but the bluray player can -ham,"tick, tick, tick ... babe" -ham,yes! how is a pretty lady like you single? -ham,"ask g or iouri, i've told the story like ten times already" -ham,happy new year. hope you are having a good semester -ham,will you like to be spoiled? :) -ham,yup song bro. no creative. neva test quality. he said check review online. -ham,nan sonathaya soladha. why boss? -ham,"ha. you don???t know either. i did a a clever but simple thing with pears the other day, perfect for christmas." -ham,hey pple...$700 or $900 for 5 nights...excellent location wif breakfast hamper!!! -ham,"cool, what time you think you can get here?" -ham,can you say what happen -ham,pls accept me for one day. or am begging you change the number. -ham,"carlos took a while (again), we leave in a minute" -ham,dunno dat's wat he told me. ok lor... -ham,once free call me sir. -ham,oh... lk tt den we take e one tt ends at cine lor... dun wan yogasana oso can... -ham,argh why the fuck is nobody in town ;_; -ham,bugis oso near wat... -spam,"you are being contacted by our dating service by someone you know! to find out who it is, call from your mobile or landline 09064017305 pobox75ldns7" -ham,have a great trip to india. and bring the light to everyone not just with the project but with everyone that is lucky to see you smile. bye. abiola -ham,yup n her fren lor. i'm meeting my fren at 730. -ham,i want to tell you how bad i feel that basically the only times i text you lately are when i need drugs -ham,lol that would be awesome payback. -ham,k i'll be there before 4. -ham,"fr'ndship is like a needle of a clock. though v r in d same clock, v r nt able 2 met. evn if v meet,itz only 4few seconds. bt v alwys stay conected. gud 9t;-)" -ham,have your lunch and come quickly and open the door:) -ham,tell my bad character which u dnt lik in me. i'll try to change in <#> . i ll add tat 2 my new year resolution. waiting for ur reply.be frank...good morning. -ham,what is the plural of the noun research? -ham,and popping <#> ibuprofens was no help. -ham,"i'm there and i can see you, but you can't see me ? maybe you should reboot ym ? i seen the buzz" -ham,"my parents, my kidz, my friends n my colleagues. all screaming.. surprise !! and i was waiting on the sofa.. ... ..... ' naked...!" -ham,prakesh is there know. -ham,it's still not working. and this time i also tried adding zeros. that was the savings. the checking is <#> -spam,not heard from u4 a while. call me now am here all night with just my knickers on. make me beg for it like u did last time 01223585236 xx luv nikiyu4.net -ham,"so anyways, you can just go to your gym or whatever, my love *smiles* i hope your ok and having a good day babe ... i miss you so much already" -ham,no de. but call me after some time. ill tell you k -spam,u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094599 -ham,good morning plz call me sir -ham,do you know where my lab goggles went -ham,are you free now?can i call now? -ham,neft transaction with reference number <#> for rs. <decimal> has been credited to the beneficiary account on <#> at <time> : <#> -ham,"1.20 that call cost. which i guess isnt bad. miss ya, need ya, want ya, love ya" -ham,i will treasure every moment we spend together... -ham,it's ?? only $140 ard...?? rest all ard $180 at least...which is ?? price 4 ?? 2 bedrm ($900) -ham,ugh i don't wanna get out of bed. it's so warm. -ham,i would but i'm still cozy. and exhausted from last night.nobody went to school or work. everything is closed. -ham,i hate when she does this. she turns what should be a fun shopping trip into an annoying day of how everything would look in her house. -ham,check wid corect speling i.e. sarcasm -ham,you have registered sinco as payee. log in at icicibank.com and enter urn <#> to confirm. beware of frauds. do not share or disclose urn to anyone. -spam,"win the newest ??harry potter and the order of the phoenix (book 5) reply harry, answer 5 questions - chance to be the first among readers!" -ham,"yes, my reg is ciao!" -ham,what class of <#> reunion? -ham,\cha quiteamuzing that??scool babe -spam,sunshine quiz! win a super sony dvd recorder if you canname the capital of australia? text mquiz to 82277. b -ham,do you know what mallika sherawat did yesterday? find out now @ <url> -ham,"good afternon, my love. how are today? i hope your good and maybe have some interviews. i wake and miss you babe. a passionate kiss from across the sea" -ham,most of the tiime when i don't let you hug me it's so i don't break into tears. -spam,am new 2 club & dont fink we met yet will b gr8 2 c u please leave msg 2day wiv ur area 09099726553 reply promised carlie x calls??1/minmobsmore lkpobox177hp51fl -ham,gain the rights of a wife.dont demand it.i am trying as husband too.lets see -ham,"\oh fuck. juswoke up in a bed on a boatin the docks. slept wid 25 year old. spinout! giv u da gossip l8r. xxx\""""" -ham,i dont want to hear anything -spam,"5 free top polyphonic tones call 087018728737, national rate. get a toppoly tune sent every week, just text subpoly to 81618, ??3 per pole. unsub 08718727870." -spam,loans for any purpose even if you have bad credit! tenants welcome. call noworriesloans.com on 08717111821 -spam,free msg: ringtone!from: http://tms. widelive.com/index. wml?id=1b6a5ecef91ff9*37819&first=true18:0430-jul-05 -ham,i'm job profile seems like bpo.. -ham,you do your studies alone without anyones help. if you cant no need to study. -ham,no probs hon! how u doinat the mo? -ham,sat right? okay thanks... -ham,also andros ice etc etc -ham,my darling sister. how are you doing. when's school resuming. is there a minimum wait period before you reapply? do take care -ham,no..he joined today itself. -ham,"better than bb. if he wont use it, his wife will or them doctor" -ham,"received, understood n acted upon!" -ham,ok -ham,"imagine you finally get to sink into that bath after i have put you through your paces, maybe even having you eat me for a while before i left ... but also imagine the feel of that cage on your cock surrounded by the bath water, reminding you always who owns you ... enjoy, my cuck" -spam,"goal! arsenal 4 (henry, 7 v liverpool 2 henry scores with a simple shot from 6 yards from a pass by bergkamp to give arsenal a 2 goal margin after 78 mins." -ham,lol i know! hey someone did a great inpersonation of flea on the forums. i love it! -ham,yes watching footie but worried we're going to blow it - phil neville? -ham,yes! i am a one woman man! please tell me your likes and dislikes in bed... -ham,r ?_ comin back for dinner? -ham,"oh yeah,and hav a great time in newquay-send me a postcard !1 look after all the girls while im gone(u know the 1im talkin bout!)xx" -spam,"for ur chance to win a ??250 wkly shopping spree txt: shop to 80878. t's&c's www.txt-2-shop.com custcare 08715705022, 1x150p/wk" -spam,"last chance! claim ur ??150 worth of discount vouchers today! text shop to 85023 now! savamob, offers mobile! t cs savamob pobox84, m263uz. ??3.00 sub. 16" -ham,"haha, my legs and neck are killing me and my amigos are hoping to end the night with a burn, think i could swing by in like an hour?" -ham,dear got train and seat mine lower seat -ham,"once a fishrman woke early in d mrng. it was very dark. he waited a while & found a sack ful of stones. he strtd throwin thm in2 d sea 2 pass time. atlast he had jus 1stone, sun rose up & he found out tht those r nt stones, those were diamonds. moral:\dont wake up early in d mrng'' good night""" -ham,thanx u darlin!im cool thanx. a few bday drinks 2 nite. 2morrow off! take care c u soon.xxx -ham,aiyah ok wat as long as got improve can already wat... -ham,wow v v impressed. have funs shopping! -ham,got but got 2 colours lor. one colour is quite light n e other is darker lor. actually i'm done she's styling my hair now. -ham,"sorry, i'll call later" -ham,forgot to tell ?_ smth.. can ?_ like number the sections so that it's clearer.. -ham,ok... -ham,howz that persons story -ham,then get some cash together and i'll text jason -ham,lolnice. i went from a fish to ..water.? -ham,y so late but i need to go n get da laptop... -ham,lol yep did that yesterday. already got my fireplace. now its just another icon sitting there for me. -spam,"well done! your 4* costa del sol holiday or ??5000 await collection. call 09050090044 now toclaim. sae, tcs, pobox334, stockport, sk38xh, cost??1.50/pm, max10mins" -ham,"mmmmmm ... i love you,so much, ahmad ... i can't wait for this year to begin as every second takes me closer to being at your side. happy new year, my love!!" -ham,"hey sweet, i was wondering when you had a moment if you might come to me ? i want to send a file to someone but it won't go over yahoo for them because their connection sucks, remember when you set up that page for me to go to and download the format disc ? could you tell me how to do that ? or do you know some other way to download big files ? because they can download stuff directly from the internet. any help would be great, my prey ... *teasing kiss*" -ham,ok i juz receive.. -spam,your weekly cool-mob tones are ready to download !this weeks new tones include: 1) crazy frog-axel f>>> 2) akon-lonely>>> 3) black eyed-dont p >>>more info in n -ham,not planned yet :)going to join company on jan 5 only.don know what will happen after that. -ham,u dun say so early hor... u c already then say... -spam,for taking part in our mobile survey yesterday! you can now have 500 texts 2 use however you wish. 2 get txts just send txt to 80160 t&c www.txt43.com 1.50p -ham,"sorry, no, have got few things to do. may be in pub later." -ham,"dear,regret i cudnt pick call.drove down frm ctla now at cochin home.left mobile in car..ente style ishtamayoo?happy bakrid!" -ham,k. i will sent it again -ham,hi! you just spoke to maneesha v. we'd like to know if you were satisfied with the experience. reply toll free with yes or no. -ham,where at were hungry too -ham,"goodmorning, today i am late for <decimal> min." -ham,sent me ur email id soon -ham,miserable. they don't tell u that the side effects of birth control are massive gut wrenching cramps for the first 2 months. i didn't sleep at all last night. -ham,"its ok chikku, and its my 1 of favourite song..:-)" -ham,you didn't have to tell me that...now i'm thinking. plus he's going to stop all your runs -ham,fine if that??s the way u feel. that??s the way its gota b -ham,its not the same here. still looking for a job. how much do ta's earn there. -spam,"dear voucher holder, to claim this weeks offer, at your pc please go to http://www.wtlp.co.uk/text. ts&cs apply." -ham,sorry for the delay. yes masters -ham,jason says it's cool if we pick some up from his place in like an hour -ham,"hello, my love ! how went your day ? are you alright ? i think of you, my sweet and send a jolt to your heart to remind you ... i love you! can you hear it ? i screamed it across the sea for all the world to hear. ahmad al hallaq is loved ! and owned ! *possessive passionate kiss*" -ham,then u drive lor. -ham,i did. one slice and one breadstick. lol -ham,k fyi x has a ride early tomorrow morning but he's crashing at our place tonight -ham,you were supposed to wake me up >:( -ham,"you have come into my life and brought the sun ..shiny down on me, warming my heart. putting a constant smile on my face ... making me feel loved and cared for" -ham,"aldrine, rakhesh ex rtm here.pls call.urgent." -spam,your 2004 account for 07xxxxxxxxx shows 786 unredeemed points. to claim call 08719181259 identifier code: xxxxx expires 26.03.05 -ham,just forced myself to eat a slice. i'm really not hungry tho. this sucks. mark is getting worried. he knows i'm sick when i turn down pizza. lol -ham,"we made it! eta at taunton is 12:30 as planned, hope that???s still okday?! good to see you! :-xx" -ham,hmm. shall i bring a bottle of wine to keep us amused? just joking! i'll still bring a bottle. red or white? see you tomorrow -ham,"haha good to hear, i'm officially paid and on the market for an 8th" -ham,men like shorter ladies. gaze up into his eyes. -ham,ok no prob -ham,its a big difference. <#> versus <#> every <#> hrs -ham,"call me. i m unable to cal. lets meet bhaskar, and deep" -ham,"\hi its kate it was lovely to see you tonight and ill phone you tomorrow. i got to sing and a guy gave me his card! xxx\""""" -ham,yup ?_ not comin :-( -ham,u calling me right? call my hand phone... -spam,"3 free tarot texts! find out about your love life now! try 3 for free! text chance to 85555 16 only! after 3 free, msgs ??1.50 each" -ham,r u sure they'll understand that! wine * good idea just had a slurp! -ham,eek that's a lot of time especially since american pie is like 8 minutes long. i can't stop singing it. -ham,then u ask darren go n pick u lor... but i oso sian tmr haf 2 meet lect... -ham,same as kallis dismissial in 2nd test:-). -ham,"madam,regret disturbance.might receive a reference check from dlf premarica.kindly be informed.rgds,rakhesh,kerala." -ham,no gifts!! you trying to get me to throw myself off a cliff or something? -ham,its good to hear from you -ham,?? got wat to buy tell us then ?_ no need to come in again. -ham,"ok da, i already planned. i wil pick you." -spam,this is the 2nd time we have tried to contact u. u have won the ??1450 prize to claim just call 09053750005 b4 310303. t&cs/stop sms 08718725756. 140ppm -ham,she's fine. good to hear from you. how are you my dear? happy new year oh. -ham,sorry me going home first... daddy come fetch ?_ later... -ham,oh yeah! and my diet just flew out the window -ham,"lets use it next week, princess :)" -ham,okie -ham,and pls pls drink plenty plenty water -ham,yup but not studying surfing lor. i'm in e lazy mode today. -ham,"i keep seeing weird shit and bein all \woah\"" then realising it's actually reasonable and i'm all \""oh\""""" -ham,smith waste da.i wanna gayle. -ham,dont worry. i guess he's busy. -ham,"also sir, i sent you an email about how to log into the usc payment portal. i.ll send you another message that should explain how things are back home. have a great weekend." -ham,does daddy have a bb now. -ham,asking do u knw them or nt? may be ur frnds or classmates? -ham,"sorry, i'll call later" -ham,i like dis sweater fr mango but no more my size already so irritating. -ham,"arngd marriage is while u r walkin unfortuntly a snake bites u. bt love marriage is dancing in frnt of d snake & sayin bite me, bite me." -ham,congrats. that's great. i wanted to tell you not to tell me your score cos it might make me relax. but its motivating me so thanks for sharing -ham,sitting ard nothing to do lor. u leh busy w work? -ham,hey now am free you can call me. -ham,hey hun-onbus goin 2 meet him. he wants 2go out 4a meal but i donyt feel like it cuz have 2 get last bus home!but hes sweet latelyxxx -ham,dear reached railway. what happen to you -ham,nothing spl..wat abt u and whr ru? -spam,"you have been specially selected to receive a \3000 award! call 08712402050 before the lines close. cost 10ppm. 16+. t&cs apply. ag promo""" -ham,"that's cool, i'll come by like <#> ish" -ham,just woke up. yeesh its late. but i didn't fall asleep til <#> am :/ -ham,no..jst change tat only.. -ham,"i'm gonna be home soon and i don't want to talk about this stuff anymore tonight, k? i've cried enough today." -ham,"right on brah, see you later" -spam,you will recieve your tone within the next 24hrs. for terms and conditions please see channel u teletext pg 750 -ham,kindly send some one to our flat before <decimal> today. -ham,poor girl can't go one day lmao -ham,east coast -ham,your gonna be the death if me. i'm gonna leave a note that says its all robs fault. avenge me. -ham,ok i found dis pierre cardin one which looks normal costs 20 its on sale. -ham,yeah he got in at 2 and was v apologetic. n had fallen out and she was actin like spoilt child and he got caught up in that. till 2! but we won't go there! not doing too badly cheers. you? -ham,he needs to stop going to bed and make with the fucking dealing -ham,"hmmm.... mayb can try e shoppin area one, but forgot e name of hotel..." -ham,i can send you a pic if you like :) -ham,k da:)how many page you want? -ham,booked ticket for pongal? -ham,<#> in mca. but not conform. -ham,somewhere out there beneath the pale moon light someone think in of u some where out there where dreams come true... goodnite & sweet dreams -ham,"same here, but i consider walls and bunkers and shit important just because i never play on peaceful but i guess your place is high enough that it don't matter" -ham,?? takin linear algebra today? -ham,"honey ? sweetheart ? darling ? sexy buns ? sugar plum ? loverboy ? i miss you, boytoy ... *smacks your ass* did you go to the gym too ?" -spam,u???ve bin awarded ??50 to play 4 instant cash. call 08715203028 to claim. every 9th player wins min ??50-??500. optout 08718727870 -ham,yar he quite clever but aft many guesses lor. he got ask me 2 bring but i thk darren not so willing 2 go. aiya they thk leona still not attach wat. -ham,just haven't decided where yet eh ? -ham,nope i'll come online now.. -ham,thanx4 today cer it was nice 2 catch up but we ave 2 find more time more often oh well take care c u soon.c -ham,hard but true: how much you show & express your love to someone....that much it will hurt when they leave you or you get seperated...!?????_?????ud evening... -spam,our records indicate u maybe entitled to 5000 pounds in compensation for the accident you had. to claim 4 free reply with claim to this msg. 2 stop txt stop -ham,"sorry, i can't help you on this." -ham,"sorry brah, just finished the last of my exams, what up" -ham,you've already got a flaky parent. it'snot supposed to be the child's job to support the parent...not until they're the ride age anyway. i'm supposed to be there to support you. and now i've hurt you. unintentional. but hurt nonetheless. -spam,xclusive@clubsaisai 2morow 28/5 soiree speciale zouk with nichols from paris.free roses 2 all ladies !!! info: 07946746291/07880867867 -ham,hmm thinking lor... -ham,long beach lor. expected... u having dinner now? -ham,\yeh i am def up4 something sat -ham,she's fine. sends her greetings -spam,xmas iscoming & ur awarded either ??500 cd gift vouchers & free entry 2 r ??100 weekly draw txt music to 87066 tnc www.ldew.com1win150ppmx3age16subscription -ham,hi my email address has changed now it is -ham,no pic. please re-send. -ham,"a bit of ur smile is my hppnss, a drop of ur tear is my sorrow, a part of ur heart is my life, a heart like mine wil care for u, forevr as my goodfriend" -ham,how much you got for cleaning -spam,"do you ever notice that when you're driving, anyone going slower than you is an idiot and everyone driving faster than you is a maniac?" -ham,ok lor. -ham,c movie is juz last minute decision mah. juz watch 2 lar but i tot ?_ not interested. -ham,double eviction this week - spiral and michael and good riddance to them! -ham,i lost 4 pounds since my doc visit last week woot woot! now i'm gonna celebrate by stuffing my face! -ham,"single line with a big meaning::::: \miss anything 4 ur \""best life\"" but" -ham,no b4 thursday -ham,if india win or level series means this is record:) -ham,"came to look at the flat, seems ok, in his 50s? * is away alot wiv work. got woman coming at 6.30 too." -ham,not sure i have the stomach for it ... -ham,your bill at 3 is ??33.65 so thats not bad! -ham,hmm...my uncle just informed me that he's paying the school directly. so pls buy food. -ham,"hey. what happened? u switch off ur cell d whole day. this isnt good. now if u do care, give me a call tomorrow." -ham,"okey doke. i'm at home, but not dressed cos laying around ill! speak to you later bout times and stuff." -spam,you are awarded a sipix digital camera! call 09061221061 from landline. delivery within 28days. t cs box177. m221bp. 2yr warranty. 150ppm. 16 . p p??3.99 -ham,joy's father is john. then john is the name of joy's father. mandan -ham,oh k:)after that placement there ah? -spam,ringtone club: gr8 new polys direct to your mobile every week ! -ham,happy new year princess! -spam,congratulations u can claim 2 vip row a tickets 2 c blu in concert in november or blu gift guaranteed call 09061104276 to claim ts&cs www.smsco.net cost??3.75max -ham,will you be here for food -ham,yo you around? a friend of mine's lookin to pick up later tonight -ham,u ned to convince him tht its not possible witot hurting his feeling its the main -ham,"sorry, i can't help you on this." -ham,i (career tel) have added u as a contact on indyarocks.com to send free sms. to remove from phonebook - sms no to <#> -ham,my stomach has been thru so much trauma i swear i just can't eat. i better lose weight. -ham,i want to sent <#> mesages today. thats y. sorry if i hurts -spam,"gr8 poly tones 4 all mobs direct 2u rply with poly title to 8007 eg poly breathe1 titles: crazyin, sleepingwith, finest, ymca :getzed.co.uk pobox365o4w45wq 300p" -ham,i'm home. ard wat time will u reach? -ham,cheers for the card ... is it that time of year already? -ham,hi dis is yijue i would be happy to work wif ?_ all for gek1510... -spam,moby pub quiz.win a ??100 high street prize if u know who the new duchess of cornwall will be? txt her first name to 82277.unsub stop ??1.50 008704050406 sp -ham,hey mate. spoke to the mag people. we???re on. the is deliver by the end of the month. deliver on the 24th sept. talk later. -ham,"i'm outside islands, head towards hard rock and you'll run into me" -ham,yeah we do totes. when u wanna? -ham,i take it we didn't have the phone callon friday. can we assume we won't have it this year now? -spam,we tried to contact you re your reply to our offer of a video phone 750 anytime any network mins half price line rental camcorder reply or call 08000930705 -ham,have got * few things to do. may be in * pub later. -ham,ok not a problem will get them a taxi. c ing tomorrow and tuesday. on tuesday think we r all going to the cinema. -ham,arr birthday today:) i wish him to get more oscar. -spam,reply to win ??100 weekly! where will the 2006 fifa world cup be held? send stop to 87239 to end service -ham,you call him and tell now infront of them. call him now. -ham,"\pete can you please ring meive hardly gotany credit\""""" -ham,"sorry man, my stash ran dry last night and i can't pick up more until sunday" -ham,i just cooked a rather nice salmon a la you -ham,it just seems like weird timing that the night that all you and g want is for me to come smoke is the same day as when a shitstorm is attributed to me always coming over and making everyone smoke -ham,its posible dnt live in <#> century cm frwd n thnk different -ham,gud mrng dear have a nice day -ham,u goin out 2nite? -ham,o i played smash bros <#> religiously. -spam,kit strip - you have been billed 150p. netcollex ltd. po box 1013 ig11 oja -ham,"velly good, yes please!" -ham,"wen ur lovable bcums angry wid u, dnt take it seriously.. coz being angry is d most childish n true way of showing deep affection, care n luv!.. kettoda manda... have nice day da." -ham,"sorry, i'll call later" -ham,"1) go to write msg 2) put on dictionary mode 3)cover the screen with hand, 4)press <#> . 5)gently remove ur hand.. its interesting..:)" -ham,i'm fine. hope you are good. do take care. -spam,"fantasy football is back on your tv. go to sky gamestar on sky active and play ??250k dream team. scoring starts on saturday, so register now!sky opt out to 88088" -ham,when did dad get back. -ham,i'm working technical support :)voice process.networking field. -ham,dear :-/ why you mood off. i cant drive so i brother to drive -ham,"alright we'll bring it to you, see you in like <#> mins" -ham,"hello. sort of out in town already. that . so dont rush home, i am eating nachos. will let you know eta." -ham,i wont get concentration dear you know you are my mind and everything :-) -ham,(you didn't hear it from me) -ham,that's significant but dont worry. -ham,doing my masters. when will you buy a bb cos i have for sale and how's bf -ham,i had askd u a question some hours before. its answer -spam,yes! the only place in town to meet exciting adult singles is now in the uk. txt chat to 86688 now! 150p/msg. -ham,"sorry, i'll call later in meeting." -ham,"dear all, as we know <#> th is the <#> th birthday of our loving gopalettan. we are planning to give a small gift on that day. those who like to participate in that you are welcome. please contact our admin team for more details" -ham,yup but it's not giving me problems now so mayb i'll jus leave it... -ham,* am on my way -ham,may i call you later pls -ham,sorry about that this is my mates phone and i didnt write it love kate -ham,no. i.ll meet you in the library -ham,"good afternoon, my love. it was good to see your words on ym and get your tm. very smart move, my slave ... *smiles* ... i drink my coffee and await you." -spam,want 2 get laid tonight? want real dogging locations sent direct 2 ur mob? join the uk's largest dogging network bt txting gravel to 69888! nt. ec2a. 31p.msg@150p -ham,oh dang! i didn't mean o send that to you! lol! -ham,ranjith cal drpd deeraj and deepak 5min hold -ham,alright. thanks for the advice. enjoy your night out. i'ma try to get some sleep... -ham,okie.. thanx.. -spam,please call 08712402578 immediately as there is an urgent message waiting for you -ham,"men always needs a beautiful, intelligent, caring, loving, adjustable, cooperative wife. but the law allows only one wife...." -spam,"did you hear about the new \divorce barbie\""? it comes with all of ken's stuff!""" -ham,hey!!! i almost forgot ... happy b-day babe ! i love ya!! -ham,"garbage bags, eggs, jam, bread, hannaford wheat chex" -spam,you have 1 new voicemail. please call 08719181513. -spam,new textbuddy chat 2 horny guys in ur area 4 just 25p free 2 receive search postcode or at gaytextbuddy.com. txt one name to 89693. 08715500022 rpl stop 2 cnl -ham,company is very good.environment is terrific and food is really nice:) -ham,tell dear what happen to you. why you talking to me like an alian -ham,cos i was out shopping wif darren jus now n i called him 2 ask wat present he wan lor. then he started guessing who i was wif n he finally guessed darren lor. -ham,this pain couldn't have come at a worse time. -ham,haha okay... today weekend leh... -ham,so that takes away some money worries -ham,your gonna have to pick up a $1 burger for yourself on your way home. i can't even move. pain is killing me. -ham,man this bus is so so so slow. i think you're gonna get there before me -spam,you have 1 new voicemail. please call 08719181513. -ham,i wnt to buy a bmw car urgently..its vry urgent.but hv a shortage of <#> lacs.there is no source to arng dis amt. <#> lacs..thats my prob -ham,no break time one... how... i come out n get my stuff fr ?_? -ham,teach me apps da. when you come to college. -ham,hiya do u like the hlday pics looked horrible in them so took mo out! hows the camp amrca thing? speak soon serena:) -ham,please ask mummy to call father -ham,yup i thk so until e shop closes lor. -ham,i love to give massages. i use lots of baby oil... what is your fave position? -ham,?? comin to fetch us oredi... -ham,just glad to be talking to you. -ham,those ducking chinchillas -ham,erutupalam thandiyachu -ham,where r we meeting? -ham,the bus leaves at <#> -ham,sweet heart how are you? -ham,then she buying today? ?? no need to c meh... -ham,k k:) sms chat with me. -spam,2p per min to call germany 08448350055 from your bt line. just 2p per min. check planettalkinstant.com for info & t's & c's. text stop to opt out -spam,important information 4 orange user . today is your lucky day!2find out why log onto http://www.urawinner.com there's a fantastic surprise awaiting you! -ham,was the actual exam harder than nbme -ham,i will be gentle baby! soon you will be taking all <#> inches deep inside your tight pussy... -ham,dear we got <#> dollars hi hi -ham,your account has been refilled successfully by inr <decimal> . your keralacircle prepaid account balance is rs <decimal> . your transaction id is kr <#> . -ham,hello handsome ! are you finding that job ? not being lazy ? working towards getting back that net for mummy ? where's my boytoy now ? does he miss me ? -ham,lmao but its so fun... -spam,urgent! your mobile number has been awarded with a ??2000 prize guaranteed. call 09058094454 from land line. claim 3030. valid 12hrs only -ham,can not use foreign stamps in this country. good lecture . -ham,"new theory: argument wins d situation, but loses the person. so dont argue with ur friends just.. . . . kick them & say, i'm always correct.!" -ham,my battery is low babe -ham,great! how is the office today? -ham,please tell me not all of my car keys are in your purse -spam,sports fans - get the latest sports news str* 2 ur mobile 1 wk free plus a free tone txt sport on to 8007 www.getzed.co.uk 0870141701216+ norm 4txt/120p -ham,??_ and don???t worry we???ll have finished by march ??_ ish! -ham,hasn't that been the pattern recently crap weekends? -ham,how to make a girl happy? it's not at all difficult to make girls happy. u only need to be... 1. a friend 2. companion 3. lover 4. chef . . . <#> . good listener <#> . organizer <#> . good boyfriend <#> . very clean <#> . sympathetic <#> . athletic <#> . warm . . . <#> . courageous <#> . determined <#> . true <#> . dependable <#> . intelligent . . . <#> . psychologist <#> . pest exterminator <#> . psychiatrist <#> . healer . . <#> . stylist <#> . driver . . aaniye pudunga venaam.. -ham,leave it de:-). start prepare for next:-).. -spam,call germany for only 1 pence per minute! call from a fixed line via access number 0844 861 85 85. no prepayment. direct access! www.telediscount.co.uk -spam,"u can win ??100 of music gift vouchers every week starting now txt the word draw to 87066 tscs www.idew.com skillgame, 1winaweek, age16. 150ppermesssubscription" -ham,sorry da:)i was thought of calling you lot of times:)lil busy.i will call you at noon.. -ham,no shoot me. i'm in the docs waiting room. :/ -ham,"friendship is not a game to play, it is not a word to say, it doesn\'t start on march and ends on may, it is tomorrow, yesterday, today and e" -ham,my no. in luton 0125698789 ring me if ur around! h* -spam,"hungry gay guys feeling hungry and up 4 it, now. call 08718730555 just 10p/min. to stop texts call 08712460324 (10p/min)" -ham,k...k:)why cant you come here and search job:) -ham,i'm in class. did you get my text. -ham,nothing. can... -ham,how are you enjoying this semester? take care brother. -ham,omg how did u know what i ate? -ham,i thank you so much for all you do with selflessness. i love you plenty. -ham,or ?_ go buy wif him then i meet ?_ later can? -ham,free any day but i finish at 6 on mon n thurs... -ham,tomarrow i want to got to court. at <decimal> . so you come to bus stand at 9. -ham,pls go ahead with watts. i just wanted to be sure. do have a great weekend. abiola -ham,get down in gandhipuram and walk to cross cut road. right side <#> street road and turn at first right. -ham,"mum, hope you are having a great day. hoping this text meets you well and full of life. have a great day. abiola" -ham,that seems unnecessarily affectionate -ham,no. she's currently in scotland for that. -ham,no message..no responce..what happend? -ham,dunno lei he neva say... -spam,"urgent, important information for o2 user. today is your lucky day! 2 find out why log onto http://www.urawinner.com there is a fantastic surprise awaiting for you" -ham,what is your account number? -ham,"that means you got an a in epi, she.s fine. she.s here now." -ham,you said not now. no problem. when you can. let me know. -spam,we tried to call you re your reply to our sms for a video mobile 750 mins unlimited text free camcorder reply or call now 08000930705 del thurs -ham,i've reached home finally... -ham,yo guess what i just dropped -ham,raji..pls do me a favour. pls convey my birthday wishes to nimya. pls. today is her birthday. -ham,where are you ? what do you do ? how can you stand to be away from me ? doesn't your heart ache without me ? don't you wonder of me ? don't you crave me ? -ham,"rose for red,red for blood,blood for heart,heart for u. but u for me.... send tis to all ur friends.. including me.. if u like me.. if u get back, 1-u r poor in relation! 2-u need some 1 to support 3-u r frnd 2 many 4-some1 luvs u 5+- some1 is praying god to marry u.:-) try it...." -ham,i don't know jack shit about anything or i'd say/ask something helpful but if you want you can pretend that i did and just text me whatever in response to the hypotheticalhuagauahahuagahyuhagga -ham,ok no prob. take ur time. -ham,jus finish my lunch on my way home lor... i tot u dun wan 2 stay in sch today... -spam,**free message**thanks for using the auction subscription service. 18 . 150p/msgrcvd 2 skip an auction txt out. 2 unsubscribe txt stop customercare 08718726270 -ham,love you aathi..love u lot.. -ham,life style garments account no please. -ham,serious? what like proper tongued her -ham,i hope you that's the result of being consistently intelligent and kind. start asking him about practicum links and keep your ears open and all the best. ttyl -ham,thats cool. i am a gentleman and will treat you with dignity and respect. -spam,big brother alert! the computer has selected u for 10k cash or #150 voucher. call 09064018838. ntt po box cro1327 18+ bt landline cost 150ppm mobiles vary -ham,first answer my question. -ham,wat so late still early mah. or we juz go 4 dinner lor. aiya i dunno... -ham,are you still playing with gautham? -ham,"beautiful tomorrow never comes.. when it comes, it's already today.. in the hunt of beautiful tomorrow don't waste your wonderful today.. goodmorning:)" -ham,"i sent you the prices and do you mean the <#> g," -ham,thanks honey. have a great day. -ham,will be office around 4 pm. now i am going hospital. -ham,"ups which is 3days also, and the shipping company that takes 2wks. the other way is usps which takes a week but when it gets to lag you may have to bribe nipost to get your stuff." -ham,then mum's repent how? -ham,"its good, we'll find a way" -ham,go fool dont cheat others ok -ham,what * u wearing? -ham,yep get with the program. you're slacking. -ham,"under the sea, there lays a rock. in the rock, there is an envelope. in the envelope, there is a paper. on the paper, there are 3 words... '" -ham,yes..he is really great..bhaji told kallis best cricketer after sachin in world:).very tough to get out. -spam,"reminder from o2: to get 2.50 pounds free call credit and details of great offers pls reply 2 this text with your valid name, house no and postcode" -spam,"thank you, winner notified by sms. good luck! no future marketing reply stop to 84122 customer services 08450542832" -ham,dear got bus directly to calicut -ham,"tell you what, if you make a little spreadsheet and track whose idea it was to smoke to determine who \smokes too much\"" for the entire month of february" -ham,you can jot down things you want to remember later. -ham,i not at home now lei... -ham,"yeah, probably earlier than that" -ham,"brainless baby doll..:-d;-), vehicle sariyag drive madoke barolla.." -ham,i've reached sch already... -ham,oh yeah clearly it's my fault -ham,i am not having her number sir -ham,<#> am i think? should say on syllabus -ham,haha mayb u're rite... u know me well. da feeling of being liked by someone is gd lor. u faster go find one then all gals in our group attached liao. -ham,"since when, which side, any fever, any vomitin." -ham,macha dont feel upset.i can assume your mindset.believe me one evening with me and i have some wonderful plans for both of us.let life begin again.call me anytime -ham,my tuition is at 330. hm we go for the 1120 to 1205 one? do you mind? -ham,havent shopping now lor i juz arrive only -ham,"k i'll head out in a few mins, see you there" -spam,"you 07801543489 are guaranteed the latests nokia phone, a 40gb ipod mp3 player or a ??500 prize! txt word:collect to no:83355! tc-llc ny-usa 150p/mt msgrcvd18+" -ham,"babe! how goes that day ? what are you up to ? i miss you already, my love ... * loving kiss* ... i hope everything goes well." -ham,"\wen u miss someone why to miss them just keep-in-touch\"" gdeve..""" -spam,not heard from u4 a while. call 4 rude chat private line 01223585334 to cum. wan 2c pics of me gettin shagged then text pix to 8552. 2end send stop 8552 sam xxx -spam,freemsg: txt: call to no: 86888 & claim your reward of 3 hours talk time to use from your phone now! subscribe6gbp/mnth inc 3hrs 16 stop?txtstop -ham,hi its in durban are you still on this number -ham,"do whatever you want. you know what the rules are. we had a talk earlier this week about what had to start happening, you showing responsibility. yet, every week it's can i bend the rule this way? what about that way? do whatever. i'm tired of having thia same argument with you every week. and a <#> movie doesnt inlude the previews. you're still getting in after 1." -ham,if you have belive me. come to my home. -ham,i dont know what to do to come out of this so only am ask questions like this dont mistake me. -ham,ultimately tor motive tui achieve korli. -ham,no probably <#> %. -ham,well she's in for a big surprise! -ham,"gosh that , what a pain. spose i better come then." -ham,what is this 'hex' place you talk of? explain! -ham,"just making dinner, you ?" -ham,he's in lag. that's just the sad part but we keep in touch thanks to skype -ham,weightloss! no more girl friends. make loads of money on ebay or something. and give thanks to god. -spam,we tried to contact you re your reply to our offer of a video handset? 750 anytime any networks mins? unlimited text? camcorder? reply or call 08000930705 now -spam,"congratulations! thanks to a good friend u have won the ??2,000 xmas prize. 2 claim is easy, just call 08718726978 now! only 10p per minute. bt-national-rate" -ham,i asked you to call him now ok -ham,i was about to do it when i texted. i finished a long time ago and showered and er'ything! -ham,k..k.:)congratulation .. -spam,thesmszone.com lets you send free anonymous and masked messages..im sending this message from there..do you see the potential for abuse??? -ham,"no, but you told me you were going, before you got drunk!" -ham,"you are always putting your business out there. you put pictures of your ass on facebook. you are one of the most open people i've ever met. why would i think a picture of your room would hurt you, make you feel violated." -ham,i am going to sleep. i am tired of travel. -ham,"haha awesome, omw back now then" -ham,then i buy. -ham,thanks for loving me so. you rock -ham,going for dinner.msg you after. -ham,"do you know why god created gap between your fingers..? so that, one who is made for you comes & fills those gaps by holding your hand with love..!" -ham,wat would u like 4 ur birthday? -ham,i agree. so i can stop thinkin about ipad. can you please ask macho the same question. -ham,haha... yup hopefully we will lose a few kg by mon. after hip hop can go orchard and weigh again -ham,hi darlin its kate are u up for doin somethin tonight? im going to a pub called the swan or something with my parents for one drink so phone me if u can -ham,oh oh... den muz change plan liao... go back have to yan jiu again... -ham,i think the other two still need to get cash but we can def be ready by 9 -ham,i'm on the bus. love you -ham,yes ammae....life takes lot of turns you can only sit and try to hold the steering... -ham,dear how you. are you ok? -ham,u attend ur driving lesson how many times a wk n which day? -ham,but you dint in touch with me. -ham,i not free today i haf 2 pick my parents up tonite... -ham,shopping? eh ger i toking abt syd leh...haha -spam,please call our customer service representative on 0800 169 6031 between 10am-9pm as you have won a guaranteed ??1000 cash or ??5000 prize! -ham,bring home some wendy =d -ham,maybe i could get book out tomo then return it immediately ..? or something. -ham,nope. meanwhile she talk say make i greet you. -ham,"jay wants to work out first, how's 4 sound?" -ham,"fyi i'm at usf now, swing by the room whenever" -spam,a ??400 xmas reward is waiting for you! our computer has randomly picked you from our loyal mobile customers to receive a ??400 reward. just call 09066380611 -ham,"no i'm not. i can't give you everything you want and need. you actually could do better for yourself on yor own--you've got more money than i do. i can't get work, i can't get a man, i can't pay the rent, i can't even fill my fucking gas tank. yes, i'm stressed and depressed. i didn't even call home for thanksgiving cuz i'll have to tell them i,m up to nothing." -ham,oh baby of the house. how come you dont have any new pictures on facebook -ham,"nice. wait...should you be texting right now? i'm not gonna pay your ticket, ya know!" -ham,did u get that message -ham,* was thinking about chuckin ur red green n black trainners 2 save carryin them bac on train -ham,pansy! you've been living in a jungle for two years! its my driving you should be more worried about! -ham,hey company elama po mudyadhu. -ham,mm so you asked me not to call radio -ham,pls confirm the time to collect the cheque. -ham,"how is my boy? no sweet words left for me this morning ... *sighs* ... how goes you day, my love ? did you start your studying?" -ham,ok u can take me shopping when u get paid =d -ham,purity of friendship between two is not about smiling after reading the forwarded message..its about smiling just by seeing the name. gud evng -spam,you have won a guaranteed ??1000 cash or a ??2000 prize. to claim yr prize call our customer service representative on 08714712412 between 10am-7pm cost 10p -ham,unni thank you dear for the recharge..rakhesh -ham,"sorry i flaked last night, shit's seriously goin down with my roommate, what you up to tonight?" -ham,please reserve ticket on saturday eve from chennai to thirunelvali and again from tirunelvali to chennai on sunday eve...i already see in net..no ticket available..i want to book ticket through tackle .. -ham,"hey babe! i saw you came online for a second and then you disappeared, what happened ?" -ham,"living is very simple.. loving is also simple.. laughing is too simple.. winning is tooo simple.. but, being 'simple' is very difficult.. gud nte.:-" -ham,whom you waited for yesterday -spam,18 days to euro2004 kickoff! u will be kept informed of all the latest news and results daily. unsubscribe send get euro stop to 83222. -ham,"i'm back, lemme know when you're ready" -ham,"lemme know when i can swing by and pick up, i'm free basically any time after 1 all this semester" -ham,are you in castor? you need to see something -ham,all day working day:)except saturday and sunday.. -ham,juz now havent woke up so a bit blur blur... can? dad went out liao... i cant cum now oso... -ham,you still around? looking to pick up later -ham,thank you meet you monday -ham,now only i reached home. . . i am very tired now. . i will come tomorro -spam,save money on wedding lingerie at www.bridal.petticoatdreams.co.uk choose from a superb selection with national delivery. brought to you by weddingfriend -ham,just got to <#> -ham,can you do online transaction? -ham,s s..first time..dhoni rocks... -ham,as per your request 'melle melle (oru minnaminunginte nurungu vettam)' has been set as your callertune for all callers. press *9 to copy your friends callertune -spam,"get 3 lions england tone, reply lionm 4 mono or lionp 4 poly. 4 more go 2 www.ringtones.co.uk, the original n best. tones 3gbp network operator rates apply" -spam,congrats! nokia 3650 video camera phone is your call 09066382422 calls cost 150ppm ave call 3mins vary from mobiles 16+ close 300603 post bcm4284 ldn wc1n3xx -ham,is it your yahoo boys that bring in the perf? or legal. -ham,"poyyarikatur,kolathupalayam,unjalur post,erode dis, <#> ." -ham,"could you not read me, my love ? i answered you" -ham,is ur lecture over? -ham,y she dun believe leh? i tot i told her it's true already. i thk she muz c us tog then she believe. -ham,esplanade lor. where else... -ham,get ready for <#> inches of pleasure... -ham,missing you too.pray inshah allah -ham,hello- thanx for taking that call. i got a job! starts on monday! -ham,so ?_'ll be submitting da project tmr rite? -ham,whatsup there. dont u want to sleep -ham,lol i would but my mom would have a fit and tell the whole family how crazy and terrible i am -ham,"said kiss, kiss, i can't do the sound effects! he is a gorgeous man isn't he! kind of person who needs a smile to brighten his day!" -ham,good morning my dear........... have a great & successful day. -ham,if you r @ home then come down within 5 min -ham,"in case you wake up wondering where i am, i forgot i have to take care of something for grandma today, should be done before the parade" -ham,not..tel software name.. -ham,"sorry to trouble u again. can buy 4d for my dad again? 1405, 1680, 1843. all 2 big 1 small, sat n sun. thanx." -ham,my uncles in atlanta. wish you guys a great semester. -ham,"honeybee said: *i'm d sweetest in d world* god laughed & said: *wait,u havnt met d person reading this msg* moral: even god can crack jokes! gm+gn+ge+gn:)" -ham,amazing : if you rearrange these letters it gives the same meaning... dormitory = dirty room astronomer = moon starer the eyes = they see election results = lies lets recount mother-in-law = woman hitler eleven plus two =twelve plus one its amazing... !:-) -ham,reason is if the team budget is available at last they buy the unsold players for at base rate.. -ham,mystery solved! just opened my email and he's sent me another batch! isn't he a sweetie -ham,"sorry, i'll call later" -ham,i knew it... u slept v late yest? wake up so late... -ham,"argh my 3g is spotty, anyway the only thing i remember from the research we did was that province and sterling were the only problem-free places we looked at" -ham,hi darlin im missin u hope you are having a good time. when are u back and what time if u can give me a call at home. jess xx -ham,"thank you so much. when we skyped wit kz and sura, we didnt get the pleasure of your company. hope you are good. we've given you ultimatum oh! we are countin down to aburo. enjoy!" -ham,the xmas story is peace.. the xmas msg is love.. the xmas miracle is jesus.. hav a blessed month ahead & wish u merry xmas... -ham,"trust me. even if isn't there, its there." -ham,we'll you pay over like <#> yrs so its not too difficult -spam,txt: call to no: 86888 & claim your reward of 3 hours talk time to use from your phone now! subscribe6gbp/mnth inc 3hrs 16 stop?txtstop www.gamb.tv -ham,"dear,shall mail tonite.busy in the street,shall update you tonite.things are looking ok.varunnathu edukkukayee raksha ollu.but a good one in real sense." -ham,hi princess! thank you for the pics. you are very pretty. how are you? -ham,yup i shd haf ard 10 pages if i add figures... ?? all got how many pages? -ham,allo! we have braved the buses and taken on the trains and triumphed. i mean we???re in b???ham. have a jolly good rest of week -spam,natalja (25/f) is inviting you to be her friend. reply yes-440 or no-440 see her: www.sms.ac/u/nat27081980 stop? send stop frnd to 62468 -ham,"almost there, see u in a sec" -ham,i am not having her number sir -spam,"09066362231 urgent! your mobile no 07xxxxxxxxx won a ??2,000 bonus caller prize on 02/06/03! this is the 2nd attempt to reach you! call 09066362231 asap!" -ham,did u receive my msg? -spam,you are a winner you have been specially selected to receive ??1000 cash or a ??2000 award. speak to a live operator to claim call 087147123779am-7pm. cost 10p -ham,bull. your plan was to go floating off to ikea with me without a care in the world. so i have to live with your mess another day. -ham,10 min later k... -spam,sunshine quiz wkly q! win a top sony dvd player if u know which country the algarve is in? txt ansr to 82277. ??1.50 sp:tyrone -ham,7 lor... change 2 suntec... wat time u coming? -ham,send this to ur friends and receive something about ur voice..... how is my speaking expression? 1.childish 2.naughty 3.sentiment 4.rowdy 5.ful of attitude 6.romantic 7.shy 8.attractive 9.funny <#> .irritating <#> .lovable. reply me.. -ham,wah... okie okie... muz make use of e unlimited... haha... -ham,you tell what happen dont behave like this to me. ok no need to say -ham,hui xin is in da lib. -ham,"hi, my love! how goes that day? fuck, this morning i woke and dropped my cell on the way down the stairs but it seems alright ... *phews* i miss you !" -ham,"sounds good, keep me posted" -ham,get ready to put on your excellent sub face :) -ham,cos i want it to be your thing -spam,"urgent!: your mobile no. was awarded a ??2,000 bonus caller prize on 02/09/03! this is our 2nd attempt to contact you! call 0871-872-9755 box95qu" -spam,"last chance! claim ur ??150 worth of discount vouchers today! text shop to 85023 now! savamob, offers mobile! t cs savamob pobox84, m263uz. ??3.00 sub. 16" -ham,want to finally have lunch today? -ham,i am getting threats from your sales executive shifad as i raised complaint against him. its an official message. -ham,ill call you evening ill some ideas. -ham,i want to grasp your pretty booty :) -ham,no no. i will check all rooms befor activities -ham,dai <#> naal eruku. -ham,have you heard about that job? i'm going to that wildlife talk again tonight if u want2come. its that2worzels and a wizzle or whatever it is?! -spam,"latest news! police station toilet stolen, cops have nothing to go on!" -ham,tell where you reached -ham,thanx 4 e brownie it's v nice... -ham,anyway seriously hit me up when you're back because otherwise i have to light up with armand and he always has shit and/or is vomiting -ham,"that's very rude, you on campus?" -ham,busy here. trying to finish for new year. i am looking forward to finally meeting you... -ham,"depends on quality. if you want the type i sent boye, faded glory, then about 6. if you want ralphs maybe 2" -ham,"abeg, make profit. but its a start. are you using it to get sponsors for the next event?" -ham,ho ho - big belly laugh! see ya tomo -ham,hey mate! hows u honey?did u ave good holiday? gimmi de goss!x -ham,what happen dear. why you silent. i am tensed -ham,sen told that he is going to join his uncle finance in cbe -ham,nothing but we jus tot u would ask cos u ba gua... but we went mt faber yest... yest jus went out already mah so today not going out... jus call lor... -ham,hey we can go jazz power yoga hip hop kb and yogasana -spam,"for ur chance to win a ??250 cash every wk txt: action to 80608. t's&c's www.movietrivia.tv custcare 08712405022, 1x150p/wk." -ham,you in your room? i need a few -ham,two teams waiting for some players -ham,"sorry, i'll call later" -ham,"hm good morning, headache anyone? :-)" -ham,dad went out oredi... -ham,i ain't answerin no phone at what is actually a pretty reasonable hour but i'm sleepy -spam,"urgent! you have won a 1 week free membership in our ??100,000 prize jackpot! txt the word: claim to no: 81010 t&c www.dbuk.net lccltd pobox 4403ldnw1a7rw18" -ham,surely result will offer:) -ham,an excellent thought by a misundrstud frnd: i knw u hate me bt the day wen u'll knw the truth u'll hate urself:-( gn:-) -ham,hey you still want to go for yogasana? coz if we end at cine then can go bathe and hav the steam bath -ham,yeah do! don???t stand to close tho- you???ll catch something! -ham,gud ni8 dear..slp well..take care..swt dreams..muah.. -ham,"come to me right now, ahmad" -ham,oh thanks a lot..i already bought 2 eggs .. -ham,that's the way you should stay oh. -ham,wrong phone! this phone! i answer this one but assume the other is people i don't well -spam,someone has contacted our dating service and entered your phone because they fancy you! to find out who it is call from a landline 09111032124 . pobox12n146tf150p -ham,"cool, text me when you're parked" -ham,so there's a ring that comes with the guys costumes. it's there so they can gift their future yowifes. hint hint -ham,am up to my eyes in philosophy -spam,"orange customer, you may now claim your free camera phone upgrade for your loyalty. call now on 0207 153 9996. offer ends 14thmarch. t&c's apply. opt-out availa" -ham,hello! how r u? im bored. inever thought id get bored with the tv but i am. tell me something exciting has happened there? anything! =/ -ham,it's justbeen overa week since we broke up and already our brains are going to mush! -ham,pls send me your address sir. -spam,todays voda numbers ending with 7634 are selected to receive a ??350 reward. if you have a match please call 08712300220 quoting claim code 7684 standard rates apply. -spam,more people are dogging in your area now. call 09090204448 and join like minded guys. why not arrange 1 yourself. there's 1 this evening. a??1.50 minapn ls278bb -ham,dear are you angry i was busy dear -ham,lol boo i was hoping for a laugh -ham,"it???s reassuring, in this crazy world." -ham,every day i use to sleep after <#> so only. -ham,then anything special? -ham,dont know supports ass and srt i thnk. i think ps3 can play through usb too -ham,sounds like something that someone testing me would sayy -ham,"do you know why god created gap between your fingers..? so that, one who is made for you comes & fills those gaps by holding your hand with love..!" -ham,oi. ami parchi na re. kicchu kaaj korte iccha korche na. phone ta tul na. plz. plz. -ham,can a not? -ham,sending you greetings of joy and happiness. do have a gr8 evening -ham,i'm vivek:)i got call from your number. -ham,hey darlin.. i can pick u up at college if u tell me wen & where 2 mt.. love pete xx -ham,ok try to do week end course in coimbatore. -ham,all will come alive.better correct any good looking figure there itself.. -ham,i.ll give her once i have it. plus she said grinule greet you whenever we speak -ham,i can call in <#> min if thats ok -ham,u say leh... of course nothing happen lar. not say v romantic jus a bit only lor. i thk e nite scenery not so nice leh. -ham,"i'll see, but prolly yeah" -ham,seriously. tell her those exact words right now. -ham,the monthly amount is not that terrible and you will not pay anything till 6months after finishing school. -ham,thank god they are in bed! -ham,1 i don't have her number and 2 its gonna be a massive pain in the ass and i'd rather not get involved if that's possible -ham,there are no other charges after transfer charges and you can withdraw anyhow you like -ham,going to join tomorrow. -ham,yeah sure i'll leave in a min -ham,oh unintentionally not bad timing. great. fingers the trains play along! will give fifteen min warning. -ham,nvm it's ok... -ham,sorry dude. dont know how i forgot. even after dan reminded me. sorry. hope you guys had fun. -ham,ok... ur typical reply... -ham,"sorry man my account's dry or i would, if you want we could trade back half or i could buy some shit with my credit card" -ham,then ur physics get a-? -ham,no da if you run that it activate the full version da. -ham,k k pa had your lunch aha. -ham,well i might not come then... -ham,once free call me sir. i am waiting for you. -ham,early bird! any purchases yet? -ham,your brother is a genius -ham,then ?_ ask dad to pick ?_ up lar... ?? wan 2 stay until 6 meh... -spam,urgent! we are trying to contact u. todays draw shows that you have won a ??800 prize guaranteed. call 09050001295 from land line. claim a21. valid 12hrs only -spam,rt-king pro video club>> need help? info@ringtoneking.co.uk or call 08701237397 you must be 16+ club credits redeemable at www.ringtoneking.co.uk! enjoy! -spam,"in the simpsons movie released in july 2007 name the band that died at the start of the film? a-green day, b-blue day, c-red day. (send a, b or c)" -ham,i am on the way to ur home -ham,"well, i'm gonna finish my bath now. have a good...fine night." -spam,"spook up your mob with a halloween collection of a logo & pic message plus a free eerie tone, txt card spook to 8007 zed 08701417012150p per logo/pic" -ham,you dont know you jabo me abi. -ham,"good afternoon sexy buns! how goes the job search ? i wake and you are my first thought as always, my love. i wish your fine and happy and know i adore you!" -ham,idea will soon get converted to live:) -ham,"oh really? perform, write a paper, go to a movie and be home by midnight, huh?" -ham,"christmas is an occasion that is celebrated as a reflection of ur... values..., desires..., affections...& traditions.... have an ideal christmas..." -ham,"haha yeah i see that now, be there in a sec" -ham,but i'll b going 2 sch on mon. my sis need 2 take smth. -ham,where wuld i be without my baby? the thought alone mite break me and i don??t wanna go crazy but everyboy needs his lady xxxxxxxx -ham,are you planning to come chennai? -ham,you have to pls make a note of all she.s exposed to. also find out from her school if anyone else was vomiting. is there a dog or cat in the house? let me know later. -ham,do we have any spare power supplies -ham,pls ask macho how much is budget for bb bold 2 is cos i saw a new one for <#> dollars. -ham,how i noe... did ?_ specify da domain as nusstu... ?? still in sch... -ham,ambrith..madurai..met u in arun dha marrge..remembr? -ham,how is it possible to teach you. and where. -ham,you also didnt get na hi hi hi hi hi -ham,am i the only one who doesn't stalk profiles? -spam,free for 1st week! no1 nokia tone 4 ur mob every week just txt nokia to 8007 get txting and tell ur mates www.getzed.co.uk pobox 36504 w45wq norm150p/tone 16+ -ham,that's necessarily respectful -ham,what does the dance river do? -ham,"k, i'll work something out" -ham,it has issues right now. ill fix for her by tomorrow. -ham,"i wonder if your phone battery went dead ? i had to tell you, i love you babe" -ham,26th of july -ham,just seeing your missed call my dear brother. do have a gr8 day. -spam,please call our customer service representative on freephone 0808 145 4742 between 9am-11pm as you have won a guaranteed ??1000 cash or ??5000 prize! -ham,k.k:)apo k.good movie. -ham,she went to attend another two rounds today..but still did't reach home.. -ham,"i have 2 sleeping bags, 1 blanket and paper and phone details. anything else?" -ham,what u mean u almost done? done wif sleeping? but i tot u going to take a nap.. yup i send her liao so i'm picking her up at ard 4 smth lor.. -ham,ok... c ya... -ham,"like i made him throw up when we were smoking in our friend's car one time, it was awesome" -spam,"sms. ac jsco: energy is high, but u may not know where 2channel it. 2day ur leadership skills r strong. psychic? reply ans w/question. end? reply end jsco" -ham,"yeah go on then, bored and depressed sittin waitin for phone to ring... hope the wind drops though, scary" -spam,"hi this is amy, we will be sending you a free phone number in a couple of days, which will give you an access to all the adult parties..." -ham,(that said can you text him one more time?) -spam,"today's offer! claim ur ??150 worth of discount vouchers! text yes to 85023 now! savamob, member offers mobile! t cs 08717898035. ??3.00 sub. 16 . unsub reply x" -ham,u sick still can go shopping? -ham,shall i come to get pickle -ham,you know my old dom i told you about yesterday ? his name is roger? he got in touch with me last night and wants me to meet him today at 2 pm -ham,"\hi missed your call and my mumhas beendropping red wine all over theplace! what is your adress?\""""" -ham,tell your friends what you plan to do on valentines day @ <url> -ham,howz that persons story -ham,"sorry, i'll call later" -ham,he is there. you call and meet him -ham,oic... i saw him too but i tot he din c me... i found a group liao... -ham,i want to be there so i can kiss you and feel you next to me -spam,congratulations ur awarded 500 of cd vouchers or 125gift guaranteed & free entry 2 100 wkly draw txt music to 87066 -ham,neft transaction with reference number <#> for rs. <decimal> has been credited to the beneficiary account on <#> at <time> : <#> -ham,that's y u haf 2 keep me busy... -ham,"hi hun! im not comin 2nite-tell every1 im sorry 4 me, hope u ava goodtime!oli rang melnite ifink it mite b sorted,but il explain everythin on mon.l8rs.x" -ham,"em, its olowoyey@ usc.edu have a great time in argentina. not sad about secretary, everything is a blessing" -ham,good night my dear.. sleepwell&take care -spam,"hot live fantasies call now 08707509020 just 20p per min ntt ltd, po box 1327 croydon cr9 5wb 0870 is a national rate call" -ham,huh so late... fr dinner? -spam,ree entry in 2 a weekly comp for a chance to win an ipod. txt pod to 80182 to get entry (std txt rate) t&c's apply 08452810073 for details 18+ -ham,how much for an eighth? -ham,prof: you have passed in all the papers in this sem congrats . . . . student: enna kalaachutaarama..!! prof:???? gud mrng! -ham,"what do u reckon as need 2 arrange transport if u can't do it, thanks" -ham,where did u go? my phone is gonna die you have to stay in here -ham,i'm going 4 lunch now wif my family then aft dat i go str 2 orchard lor. -ham,ok lar i double check wif da hair dresser already he said wun cut v short. he said will cut until i look nice. -ham,try neva mate!! -ham,come to medical college at 7pm ......forward it da -ham,"send ur birthdate with month and year, i will tel u ur life partner's name. and the method of calculation. reply must." -ham,"sad story of a man - last week was my b'day. my wife did'nt wish me. my parents forgot n so did my kids . i went to work. even my colleagues did not wish. as i entered my cabin my pa said, '' happy b'day boss !!''. i felt special. she askd me 4 lunch. after lunch she invited me to her apartment. we went there. she said,'' do u mind if i go into the bedroom for a minute ? '' ''ok'', i sed in a sexy mood. she came out 5 minuts latr wid a cake...n my wife, my parents, my kidz, my friends n my colleagues. all screaming.. surprise !! and i was waiting on the sofa.. ... ..... ' naked...!" -ham,no. it's not pride. i'm almost <#> years old and shouldn't be takin money from my kid. you're not supposed to have to deal with this stuff. this is grownup stuff--why i don't tell you. -ham,meet you in corporation st outside gap ??_ you can see how my mind is working! -ham,i dont thnk its a wrong calling between us -ham,this weekend is fine (an excuse not to do too much decorating) -ham,"hmm ok, i'll stay for like an hour cos my eye is really sore!" -ham,i'm at work. please call -ham,okay but i thought you were the expert -ham,have you finished work yet? :) -ham,badrith is only for chennai:)i will surely pick for us:)no competition for him. -ham,"i can't right this second, gotta hit people up first" -spam,"orange brings you ringtones from all time chart heroes, with a free hit each week! go to ringtones & pics on wap. to stop receiving these tips reply stop." -ham,"awesome, how do i deal with the gate? charles told me last night but, uh, yeah" -spam,sexy singles are waiting for you! text your age followed by your gender as wither m or f e.g.23f. for gay men text your age followed by a g. e.g.23g. -ham,"dont search love, let love find u. thats why its called falling in love, bcoz u dont force yourself, u just fall and u know there is smeone to hold u... bslvyl" -ham,"yo, you gonna still be in stock tomorrow/today? i'm trying to get a dubsack" -ham,great to hear you are settling well. so what's happenin wit ola? -ham,you call him now ok i said call him -ham,you will be in the place of that man -ham,did u find out what time the bus is at coz i need to sort some stuff out. -ham,we walked from my moms. right on stagwood pass right on winterstone left on victors hill. address is <#> -ham,wat time ?_ finish? -spam,do you want a new video phone? 600 anytime any network mins 400 inclusive video calls and downloads 5 per week free deltomorrow call 08002888812 or reply now -ham,i love your ass! do you enjoy doggy style? :) -ham,"wait that's still not all that clear, were you not sure about me being sarcastic or that that's why x doesn't want to live with us" -ham,"i can't keep going through this. it was never my intention to run you out, but if you choose to do that rather than keep the room clean so *i* don't have to say no to visitors, then maybe that's the best choice. yes, i wanted you to be embarassed, so maybe you'd feel for once how i feel when i have a friend who wants to drop buy and i have to say no, as happened this morning. i've tried everything. i don't know what else to do." -ham,desires- u going to doctor 4 liver. and get a bit stylish. get ur hair managed. thats it. -ham,"tyler (getting an 8th) has to leave not long after 9, can you get here in like an hour?" -ham,hi i won't b ard 4 christmas. but do enjoy n merry x'mas. -ham,"nothing much, chillin at home. any super bowl plan?" -ham,slaaaaave ! where are you ? must i summon you to me all the time now ? don't you wish to come to me on your own anymore? -ham,when're you guys getting back? g said you were thinking about not staying for mcr -ham,it's ok i noe u're busy but i'm really too bored so i msg u. i oso dunno wat colour she choose 4 me one. -ham,what's up. do you want me to come online? -ham,:-( that's not v romantic! -ham,yes baby! i need to stretch open your pussy! -ham,i wan but too early lei... me outside now wun b home so early... neva mind then... -ham,tessy..pls do me a favor. pls convey my birthday wishes to nimya..pls dnt forget it. today is her birthday shijas -ham,"jus chillaxin, what up" -ham,wishing you a wonderful week. -spam,"freemsg why haven't you replied to my text? i'm randy, sexy, female and live local. luv to hear from u. netcollex ltd 08700621170150p per msg reply stop to end" -ham,"new theory: argument wins d situation, but loses the person. so dont argue with ur friends just.. . . . kick them & say, i'm always correct.!" -ham,wait <#> min.. -ham,o shore are you takin the bus -ham,i actually did for the first time in a while. i went to bed not too long after i spoke with you. woke up at 7. how was your night? -ham,so wat's da decision? -ham,message:some text missing* sender:name missing* *number missing *sent:date missing *missing u a lot thats y everything is missing sent via fullonsms.com -ham,"i think your mentor is , but not 100 percent sure." -ham,shhhhh nobody is supposed to know! -ham,how are you babes. hope your doing ok. i had a shit nights sleep. i fell asleep at 5.i??m knackered and i??m dreading work tonight. what are thou upto tonight. x -ham,"oh right, ok. i'll make sure that i do loads of work during the day! got a really nasty cough today and is dry n shot so that should really help it!" -spam,someone u know has asked our dating service 2 contact you! cant guess who? call 09058091854 now all will be revealed. po box385 m6 6wu -ham,and now electricity just went out fml. -ham,yup i'm elaborating on the safety aspects and some other issues.. -ham,i am not at all happy with what you saying or doing -ham,ok... thanx... gd nite 2 ?_ too... -ham,stupid.its not possible -ham,"save yourself the stress. if the person has a dorm account, just send your account details and the money will be sent to you." -ham,"dad wanted to talk about the apartment so i got a late start, omw now" -ham,"new theory: argument wins d situation, but loses the person. so dont argue with ur friends just.. . . . kick them & say, i'm always correct.!" -ham,?? only send me the contents page... -ham,when you and derek done with class? -ham,"i'm used to it. i just hope my agents don't drop me since i've only booked a few things this year. this whole me in boston, them in nyc was an experiment." -ham,just taste fish curry :-p -ham,"how long before you get reply, just defer admission til next semester" -ham,long after i quit. i get on only like 5 minutes a day as it is. -ham,ok i vl..do u know i got adsense approved.. -ham,"sorry, i'll call later" -ham,oh really?? did you make it on air? what's your talent? -ham,o turns out i had stereo love on mi phone under the unknown album. -ham,stop calling everyone saying i might have cancer. my throat hurts to talk. i can't be answering everyones calls. if i get one more call i'm not babysitting on monday -ham,ok how you dear. did you call chechi -ham,sure but since my parents will be working on tuesday i don't really need a cover story -ham,no let me do the math. your not good at it. -ham,ball is moving a lot.will spin in last :)so very difficult to bat:) -ham,ugh just got outta class -ham,what time is ur flight tmr? -ham,k.:)do it at evening da:)urgent:) -ham,"i love you !!! you know? can you feel it? does it make your belly warm? i wish it does, my love ... i shall meet you in your dreams, ahmad ... *adoring kiss*" -ham,yar but they say got some error. -ham,don't look back at the building because you have no coat and i don't want you to get more sick. just hurry home and wear a coat to the gym!!! -ham,send me the new number -spam,you won't believe it but it's true. it's incredible txts! reply g now to learn truly amazing things that will blow your mind. from o2fwd only 18p/txt -ham,hello! how's you and how did saturday go? i was just texting to see if you'd decided to do anything tomo. not that i'm trying to invite myself or anything! -ham,me too watching surya movie only. . .after 6 pm vijay movie pokkiri -ham,"probably not, i'm almost out of gas and i get some cash tomorrow" -spam,you have won a guaranteed ??1000 cash or a ??2000 prize. to claim yr prize call our customer service representative on 08714712394 between 10am-7pm -ham,they will pick up and drop in car.so no problem.. -ham,dude avatar 3d was imp. at one point i thought there were actually flies in the room and almost tried hittng one as a reflex -spam,u 447801259231 have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094597 -spam,"you are being contacted by our dating service by someone you know! to find out who it is, call from a land line 09050000878. pobox45w2tg150p" -ham,"hi , where are you? we're at and they're not keen to go out i kind of am but feel i shouldn't so can we go out tomo, don't mind do you?" -ham,yeah sure thing mate haunt got all my stuff sorted but im going sound anyway promoting hex for .by the way who is this? dont know number. joke -ham,"plz note: if anyone calling from a mobile co. & asks u to type # <#> or # <#> . do not do so. disconnect the call,coz it iz an attempt of 'terrorist' to make use of the sim card no. itz confirmd by nokia n motorola n has been verified by cnn ibn." -ham,rofl. its true to its name -ham,take something for pain. if it moves however to any side in the next 6hrs see a doctor. -ham,"moon has come to color your dreams, stars to make them musical and my sms to give you warm and peaceful sleep. good night" -spam,"if you don't, your prize will go to another customer. t&c at www.t-c.biz 18+ 150p/min polo ltd suite 373 london w1j 6hl please call back if busy" -ham,i wnt to buy a bmw car urgently..its vry urgent.but hv a shortage of <#> lacs.there is no source to arng dis amt. <#> lacs..thats my prob -spam,"romantic paris. 2 nights, 2 flights from ??79 book now 4 next year. call 08704439680ts&cs apply." -ham,senthil group company apnt 5pm. -ham,k..k...from tomorrow onwards started ah? -ham,how many times i told in the stage all use to laugh. you not listen aha. -ham,my love ! how come it took you so long to leave for zaher's? i got your words on ym and was happy to see them but was sad you had left. i miss you -spam,"urgent -call 09066649731from landline. your complimentary 4* ibiza holiday or ??10,000 cash await collection sae t&cs po box 434 sk3 8wp 150ppm 18+" -ham,"i call you later, don't have network. if urgnt, sms me." -ham,lol ... i really need to remember to eat when i'm drinking but i do appreciate you keeping me company that night babe *smiles* -ham,detroit. the home of snow. enjoy it. -ham,wa... u so efficient... gee... thanx... -ham,some of them told accenture is not confirm. is it true. -ham,no calls..messages..missed calls -ham,"yep, by the pretty sculpture" -ham,?? neva tell me how i noe... i'm not at home in da aft wat... -ham,"a few people are at the game, i'm at the mall with iouri and kaila" -ham,not thought bout it... || drink in tap & spile at seven. || is that pub on gas st off broad st by canal. || ok? -spam,(bank of granite issues strong-buy) explosive pick for our members *****up over 300% *********** nasdaq symbol cdgt that is a $5.00 per.. -spam,"urgent! you have won a 1 week free membership in our ??100,000 prize jackpot! txt the word: claim to no: 81010 t&c www.dbuk.net lccltd pobox 4403ldnw1a7rw18" -ham,on the road so cant txt -ham,erm. i thought the contract ran out the4th of october. -spam,moby pub quiz.win a ??100 high street prize if u know who the new duchess of cornwall will be? txt her first name to 82277.unsub stop ??1.50 008704050406 sp arrow -ham,"today is \song dedicated day..\"" which song will u dedicate for me? send this to all ur valuable frnds but first rply me...""" -spam,you have 1 new message. please call 08718738034. -ham,you will be in the place of that man -ham,"she is our sister.. she belongs 2 our family.. she is d hope of tomorrow.. pray 4 her,who was fated 4 d shoranur train incident. lets hold our hands together & fuelled by love & concern prior 2 her grief & pain. pls join in dis chain & pass it. stop violence against women." -ham,"sorry, i guess whenever i can get a hold of my connections, maybe an hour or two? i'll text you" -spam,"update_now - xmas offer! latest motorola, sonyericsson & nokia & free bluetooth! double mins & 1000 txt on orange. call mobileupd8 on 08000839402 or call2optout/f4q=" -ham,would really appreciate if you call me. just need someone to talk to. -ham,?? called dad oredi... -ham,i see. when we finish we have loads of loans to pay -ham,aiyar dun disturb u liao... thk u have lots 2 do aft ur cupboard come... -ham,hmmm.still we dont have opener? -ham,are you there in room. -spam,life has never been this much fun and great until you came in. you made it truly special for me. i won't forget you! enjoy @ one gbp/sms -spam,someonone you know is trying to contact you via our dating service! to find out who it could be call from your mobile or landline 09064015307 box334sk38ch -ham,* will be september by then! -ham,"gumby's has a special where a <#> \ cheese pizza is $2 so i know what we're doin tonight""" -spam,private! your 2003 account statement for shows 800 un-redeemed s.i.m. points. call 08715203685 identifier code:4xx26 expires 13/10/04 -ham,"yeah probably, i still gotta check out with leo" -ham,soon you will have the real thing princess! do i make you wet? :) -ham,have you always been saying welp? -spam,"sunshine hols. to claim ur med holiday send a stamped self address envelope to drinks on us uk, po box 113, bray, wicklow, eire. quiz starts saturday! unsub stop" -ham,s...i will take mokka players only:) -ham,i havent add ?_ yet right.. -ham,cos daddy arranging time c wat time fetch ?_ mah... -ham,let me know when you've got the money so carlos can make the call -ham,does she usually take fifteen fucking minutes to respond to a yes or no question -ham,oh is it! which brand? -ham,hey... what time is your driving on fri? we go for evaluation on fri? -ham,y dun cut too short leh. u dun like ah? she failed. she's quite sad. -ham,pls dont restrict her from eating anythin she likes for the next two days. -ham,"good good, billy mates all gone. just been jogging, again! did enjoy concert?" -ham,"just got part nottingham - 3 hrs 63miles. good thing i love my man so much, but only doing 40mph. hey ho" -ham,then its most likely called mittelschmertz. google it. if you dont have paracetamol dont worry it will go. -ham,take care n get well soon -spam,the current leading bid is 151. to pause this auction send out. customer care: 08718726270 -spam,ever thought about living a good life with a perfect partner? just txt back name and age to join the mobile community. (100p/sms) -ham,we're done... -ham,"happy or sad , one thing about past is- \its no more\"" good morning :-):-).""" -ham,so what do you guys do. -ham,my phone -ham,"huh... hyde park not in mel ah, opps, got confused... anyway, if tt's e best choice den we juz have to take it..." -ham,he fucking chickened out. he messaged me he would be late and woould buzz me and then i didn't hear a word from him -ham,i'm so in love with you. i'm excited each day i spend with you. you make me so happy. -ham,"dunno, my dad said he coming home 2 bring us out 4 lunch. yup i go w u lor. i call u when i reach school lor..." -ham,but i juz remembered i gotta bathe my dog today.. -spam,todays vodafone numbers ending with 4882 are selected to a receive a ??350 award. if your number matches call 09064019014 to receive your ??350 award. -spam,free entry in 2 a weekly comp for a chance to win an ipod. txt pod to 80182 to get entry (std txt rate) t&c's apply 08452810073 for details 18+ -ham,is it ok if i stay the night here? xavier has a sleeping bag and i'm getting tired -ham,"got hella gas money, want to go on a grand nature adventure with galileo in a little bit?" -ham,dont gimme that lip caveboy -ham,i think chennai well settled? -ham,im gonnamissu so much!!i would say il send u a postcard buttheres aboutas much chance of merememberin asthere is ofsi not breakin his contract!! luv yaxx -spam,from next month get upto 50% more calls 4 ur standard network charge 2 activate call 9061100010 c wire3.net 1st4terms pobox84 m26 3uz cost ??1.50 min mobcudb more -ham,"aight fuck it, i'll get it later" -ham,can you talk with me.. -ham,ok that's great thanx a lot. -ham,can't. i feel nauseous. i'm so pissed. i didn't eat any sweets all week cause today i was planning to pig out. i was dieting all week. and now i'm not hungry :/ -ham,send me your resume:-) -spam,u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094599 -spam,private! your 2004 account statement for 07742676969 shows 786 unredeemed bonus points. to claim call 08719180248 identifier code: 45239 expires -ham,"it???s ??6 to get in, is that ok?" -ham,no da. . vijay going to talk in jaya tv -ham,then u go back urself lor... -ham,your opinion about me? 1. over 2. jada 3. kusruthi 4. lovable 5. silent 6. spl character 7. not matured 8. stylish 9. simple pls reply.. -ham,i'm on da bus going home... -ham,i need details about that online job. -ham,his frens go then he in lor. not alone wif my mum n sis lor. -ham,"awesome, plan to get here any time after like <#> , i'll text you details in a wee bit" -ham,yes but can we meet in town cos will go to gep and then home. you could text at bus stop. and don't worry we'll have finished by march ??_ ish! -ham,ok. i only ask abt e movie. u wan ktv oso? -ham,dunno lei... i might b eatin wif my frens... if ?_ wan to eat then i wait 4 ?_ lar -ham,have a good trip. watch out for . remember when you get back we must decide about easter. -ham,oh gei. that happend to me in tron. maybe ill dl it in 3d when its out -ham,this phone has the weirdest auto correct. -ham,dude we should go sup again -ham,tiwary to rcb.battle between bang and kochi. -ham,already am squatting is the new way of walking -ham,ok... -ham,"set a place for me in your heart and not in your mind, as the mind easily forgets but the heart will always remember. wish you happy valentines day!" -ham,the greatest test of courage on earth is to bear defeat without losing heart....gn tc -ham,aww that's the first time u said u missed me without asking if i missed u first. you do love me! :) -ham,haha... hope ?_ can hear the receipt sound... gd luck! -ham,yes. i come to nyc for audiitions and am trying to relocate. -ham,at what time should i come tomorrow -ham,yeah it's jus rite... -ham,"after my work ah... den 6 plus lor... u workin oso rite... den go orchard lor, no other place to go liao..." -spam,what do u want for xmas? how about 100 free text messages & a new video phone with half price line rental? call free now on 0800 0721072 to find out more! -ham,"ola would get back to you maybe not today but i ve told him you can be his direct link in the us in getting cars he bids for online, you arrange shipping and you get a cut. or u????? for a partnership where u????? invest money for shipping and he takes care of the rest!u??wud b self reliant soon dnt worry" -ham,still i have not checked it da. . . -spam,freemsg:feelin kinda lnly hope u like 2 keep me company! jst got a cam moby wanna c my pic?txt or reply date to 82242 msg150p 2rcv hlp 08712317606 stop to 82242 -ham,i finished my lunch already. u wake up already? -ham,"whatever, im pretty pissed off." -ham,can you open the door? -ham,just come home. i don't want u to be miserable -ham,oh ok.. -ham,ha ha - had popped down to the loo when you hello-ed me. hello! -ham,babe? you said 2 hours and it's been almost 4 ... is your internet down ? -ham,we have all rounder:)so not required:) -ham,"i'll see if i can swing by in a bit, got some things to take care of here firsg" -ham,wait . i will msg after <#> min. -ham,"say this slowly.? god,i love you & i need you,clean my heart with your blood.send this to ten special people & u c miracle tomorrow, do it,pls,pls do it..." -ham,"i want to show you the world, princess :) how about europe?" -ham,i wish! i don't think its gonna snow that much. but it will be more than those flurries we usually get that melt before they hit the ground. eek! we haven't had snow since <#> before i was even born! -ham,"sir goodmorning, once free call me." -ham,its ok my arm is feeling weak cuz i got a shot so we can go another time -ham,i have 2 docs appointments next week.:/ i'm tired of them shoving stuff up me. ugh why couldn't i have had a normal body? -ham,pathaya enketa maraikara pa' -ham,dunno leh cant remember mayb lor. so wat time r we meeting tmr? -ham,ok... u enjoy ur shows... -ham,"sweetheart, hope you are not having that kind of day! have one with loads of reasons to smile. biola" -ham,mum say we wan to go then go... then she can shun bian watch da glass exhibition... -ham,?? predict wat time ?_'ll finish buying? -spam,are you unique enough? find out from 30th august. www.areyouunique.co.uk -ham,for me the love should start with attraction.i should feel that i need her every time around me.she should be the first thing which comes in my thoughts.i would start the day and end it with her.she should be there every time i dream.love will be then when my every breath has her name.my life should happen around her.my life will be named to her.i would cry for her.will give all my happiness and take all her sorrows.i will be ready to fight with anyone for her.i will be in love when i will be doing the craziest things for her.love will be when i don't have to proove anyone that my girl is the most beautiful lady on the whole planet.i will always be singing praises for her.love will be when i start up making chicken curry and end up makiing sambar.life will be the most beautiful then.will get every morning and thank god for the day because she is with me.i would like to say a lot..will tell later.. -ham,say thanks2. -ham,"hi elaine, is today's meeting confirmed?" -ham,today is accept day..u accept me as? brother sister lover dear1 best1 clos1 lvblefrnd jstfrnd cutefrnd lifpartnr belovd swtheart bstfrnd no rply means enemy -ham,havent planning to buy later. i check already lido only got 530 show in e afternoon. u finish work already? -ham,i jus reached home. i go bathe first. but my sis using net tell u when she finishes k... -ham,do u still have plumbers tape and a wrench we could borrow? -ham,"by the way, make sure u get train to worc foregate street not shrub hill. have fun night x" -ham,i've told you everything will stop. just dont let her get dehydrated. -ham,"i wasn't well babe, i have swollen glands at my throat ... what did you end up doing ?" -ham,what he said is not the matter. my mind saying some other matter is there. -ham,he says he'll give me a call when his friend's got the money but that he's definitely buying before the end of the week -spam,congratulations ur awarded either ??500 of cd gift vouchers & free entry 2 our ??100 weekly draw txt music to 87066 tncs www.ldew.com1win150ppmx3age16 -spam,"hi, the sexychat girls are waiting for you to text them. text now for a great night chatting. send stop to stop this service" -ham,"yeah work is fine, started last week, all the same stuff as before, dull but easy and guys are fun!" -spam,"claim a 200 shopping spree, just call 08717895698 now! have you won! mobstorequiz10ppm" -ham,thanx but my birthday is over already. -ham,if you hear a loud scream in about <#> minutes its cause my gyno will be shoving things up me that don't belong :/ -spam,get a free mobile video player free movie. to collect text go to 89105. its free! extra films can be ordered t's and c's apply. 18 yrs only -ham,i wnt to buy a bmw car urgently..its vry urgent.but hv a shortage of <#> lacs.there is no source to arng dis amt. <#> lacs..thats my prob -ham,dont talk to him ever ok its my word. -ham,ceri u rebel! sweet dreamz me little buddy!! c ya 2moro! who needs blokes -ham,don know..he is watching film in computer.. -ham,"and stop wondering \wow is she ever going to stop tm'ing me ?!\"" because i will tm you whenever i want because you are mine ... *laughs*""" -ham,"mum, i've sent you many many messages since i got here. i just want to know that you are actually getting them. do enjoy the rest of your day." -ham,me too. mark is taking forever to pick up my prescription and the pain is coming back. -spam,"your account has been credited with 500 free text messages. to activate, just txt the word: credit to no: 80488 t&cs www.80488.biz" -ham,she told to hr that he want posting in chennai:)because i'm working here:) -ham,hi happy birthday. hi hi hi hi hi hi hi -ham,you should change your fb to jaykwon thuglyfe falconerf -ham,hey are you angry with me. reply me dr. -ham,they just talking thats it de. they wont any other. -ham,what your plan for pongal? -ham,if you were/are free i can give. otherwise nalla adi entey nattil kittum -ham,watching tv now. i got new job :) -spam,eastenders tv quiz. what flower does dot compare herself to? d= violet e= tulip f= lily txt d e or f to 84025 now 4 chance 2 win ??100 cash wkent/150p16+ -ham,shopping lor. them raining mah hard 2 leave orchard. -ham,hanging out with my brother and his family -ham,thts god's gift for birds as humans hav some natural gift frm god.. -spam,"loan for any purpose ??500 - ??75,000. homeowners + tenants welcome. have you been previously refused? we can still help. call free 0800 1956669 or text back 'help'" -ham,"what i mean was i left too early to check, cos i'm working a 9-6." -ham,"god picked up a flower and dippeditinadew, lovingly touched itwhichturnedinto u, and the he gifted tomeandsaid,this friend is 4u" -ham,am okay. will soon be over. all the best -ham,boo what time u get out? u were supposed to take me shopping today. :( -ham,baaaaabe! i misss youuuuu ! where are you ? i have to go and teach my class at 5 ... -ham,arun can u transfr me d amt -ham,i've reached home n i bathe liao... u can call me now... -ham,no da. . vijay going to talk in jaya tv -ham,i had it already..sabarish asked me to go.. -ham,hurt me... tease me... make me cry... but in the end of my life when i die plz keep one rose on my grave and say stupid i miss u.. have a nice day bslvyl -ham,lol i would but despite these cramps i like being a girl. -ham,great. have a safe trip. dont panic surrender all. -ham,noooooooo please. last thing i need is stress. for once in your life be fair. -ham,how are you? i miss you! -spam,free entry in 2 a wkly comp to win fa cup final tkts 21st may 2005. text fa to 87121 to receive entry question(std txt rate)t&c's apply 08452810075over18's -ham,then why no one talking to me -spam,"bored of speed dating? try speedchat, txt speedchat to 80155, if you don't like em txt swap and get a new chatter! chat80155 pobox36504w45wq 150p/msg rcd 16" -ham,?? give me some time to walk there. -ham,that depends. how would you like to be treated? :) -ham,hope ur head doesn't hurt 2 much ! am ploughing my way through a pile of ironing ! staying in with a chinky tonight come round if you like. -ham,how much is torch in 9ja. -ham,"a famous quote : when you develop the ability to listen to 'anything' unconditionally without losing your temper or self confidence, it means you are ......... 'married'" -ham,"i got another job! the one at the hospital doing data analysis or something, starts on monday! not sure when my thesis will got finished" -ham,jay is snickering and tells me that x is totally fucking up the chords as we speak -ham,"sir, i am waiting for your call, once free please call me." -ham,no need for the drug anymore. -ham,"i'm taking derek & taylor to walmart, if i'm not back by the time you're done just leave the mouse on my desk and i'll text you when priscilla's ready" -ham,s but mostly not like that. -ham,dear we are going to our rubber place -ham,"see, i knew giving you a break a few times woul lead to you always wanting to miss curfew. i was gonna gibe you 'til one, but a midnight movie is not gonna get out til after 2. you need to come home. you need to getsleep and, if anything, you need to b studdying ear training." -ham,"funny fact nobody teaches volcanoes 2 erupt, tsunamis 2 arise, hurricanes 2 sway aroundn no 1 teaches hw 2 choose a wife natural disasters just happens" -ham,\its ur luck to love someone. its ur fortune to love the one who loves u. but -ham,my sister going to earn more than me da. -ham,"time n smile r the two crucial things in our life. sometimes time makes us to forget smile, and sometimes someone's smile makes us to forget time gud noon" -ham,purity of friendship between two is not about smiling after reading the forwarded message..its about smiling just by seeing the name. gud evng musthu -ham,are you going to write ccna exam this week?? -ham,it's ok lar. u sleep early too... nite... -ham,yeh. indians was nice. tho it did kane me off a bit he he. we shud go out 4 a drink sometime soon. mite hav 2 go 2 da works 4 a laugh soon. love pete x x -ham,smile in pleasure smile in pain smile when trouble pours like rain smile when sum1 hurts u smile becoz someone still loves to see u smiling!! -ham,its just the effect of irritation. just ignore it -ham,oh... okie lor...we go on sat... -ham,dude just saw a parked car with its sunroof popped up. sux -ham,i meant middle left or right? -spam,email alertfrom: jeri stewartsize: 2kbsubject: low-cost prescripiton drvgsto listen to email call 123 -ham,i dled 3d its very imp -ham,are u awake? is there snow there? -ham,i think u have the wrong number. -ham,somebody set up a website where you can play hold em using eve online spacebucks -ham,u buy newspapers already? -spam,urgent! your mobile number has been awarded a 2000 prize guaranteed. call 09061790125 from landline. claim 3030. valid 12hrs only 150ppm -ham,"oh fine, i'll be by tonight" -ham,thanks and ! or bomb and date as my phone wanted to say! -ham,the basket's gettin full so i might be by tonight -ham,i know that my friend already told that. -ham,"just dropped em off, omw back now" -spam,"hi babe its chloe, how r u? i was smashed on saturday night, it was great! how was your weekend? u been missing me? sp visionsms.com text stop to stop 150p/text" -ham,"k i'm ready, <#> ?" -ham,make that 3! 4 fucks sake?! x -ham,can u look 4 me in da lib i got stuff havent finish yet. -ham,just now saw your message.it k da:) -ham,speaking of does he have any cash yet? -ham,does uncle timi help in clearing cars -ham,"thanx 4 the time we??ve spent 2geva, its bin mint! ur my baby and all i want is u!xxxx" -ham,"ha ha nan yalrigu heltini..iyo kothi chikku, u shared many things wit me..so far i didn't told any body and even uttered a word abt u.. if ur trusting me so much how can i tell these to others.. plz nxt time dont use those words to me..ok, chikku:-);-)b-)" -ham,hai ana tomarrow am coming on morning. <decimal> ill be there in sathy then we ll go to rto office. reply me after came to home. -ham,"cool breeze... bright sun... fresh flower... twittering birds... all these waiting to wish u: \goodmorning & have a nice day\"" :)""" -ham,i am sorry it hurt you. -ham,yay! finally lol. i missed our cinema trip last week :-( -ham,gettin rdy to ship comp -ham,"2 celebrate my b??day, y else?" -ham,that's good. lets thank god. please complete the drug. have lots of water. and have a beautiful day. -ham,finished class where are you. -ham,"sorry, i'll call later" -ham,it should take about <#> min -ham,"as usual..iam fine, happy & doing well..:)" -ham,then what about further plan? -ham,"no dude, its not fake..my frnds got money, thts y i'm reffering u..if u member wit my mail link, u vl be credited <#> rs and il be getiing <#> rs..i can draw my acc wen it is <#> rs.." -ham,got it..mail panren paru.. -ham,i told that am coming on wednesday. -ham,meet after lunch la... -ham,dunno lei shd b driving lor cos i go sch 1 hr oni. -ham,its hard to believe things like this. all can say lie but think twice before saying anything to me. -ham,ok then no need to tell me anything i am going to sleep good night -ham,i'm ok. will do my part tomorrow -ham,hey. you got any mail? -ham,nvm... i'm going to wear my sport shoes anyway... i'm going to be late leh. -ham,i don wake since. i checked that stuff and saw that its true no available spaces. pls call the embassy or send a mail to them. -ham,how are u? i have missed u! i havent been up 2 much a bit bored with the holiday want 2 go bak 2 college! sad isnt it?xx -ham,ok then i will come to ur home after half an hour -ham,"beautiful truth against gravity.. read carefully: \our heart feels light when someone is in it.. but it feels very heavy when someone leaves it..\"" goodmorning""" -ham,what time. i???m out until prob 3 or so -ham,"solve d case : a man was found murdered on <decimal> . <#> afternoon. 1,his wife called police. 2,police questioned everyone. 3,wife: sir,i was sleeping, when the murder took place. 4.cook: i was cooking. 5.gardener: i was picking vegetables. 6.house-maid: i went 2 d post office. 7.children: we went 2 play. 8.neighbour: we went 2 a marriage. police arrested d murderer immediately. who's it? reply with reason, if u r brilliant." -spam,had your mobile 11 months or more? u r entitled to update to the latest colour mobiles with camera for free! call the mobile update co free on 08002986030 -spam,"urgent! last weekend's draw shows that you have won ??1000 cash or a spanish holiday! call now 09050000332 to claim. t&c: rstm, sw7 3ss. 150ppm" -ham,nt joking seriously i told -ham,doc prescribed me morphine cause the other pain meds aren't enough. waiting for my mom to bring it. that med should kick in fast so i'm gonna try to be on later -ham,"same, i'm at my great aunts anniversary party in tarpon springs" -ham,"sorry battery died, yeah i'm here" -ham,"as i entered my cabin my pa said, '' happy b'day boss !!''. i felt special. she askd me 4 lunch. after lunch she invited me to her apartment. we went there." -ham,wot u up 2 u weirdo? -ham,jus telling u dat i'll b leaving 4 shanghai on 21st instead so we'll haf more time 2 meet up cya... -ham,"did i forget to tell you ? i want you , i need you, i crave you ... but most of all ... i love you my sweet arabian steed ... mmmmmm ... yummy" -ham,ok chinese food on its way. when i get fat you're paying for my lipo. -ham,"you at mu? you should try to figure out how much money everyone has for gas and alcohol, jay and i are trying to figure out our weed budget" -ham,i'm going 2 orchard now laready me reaching soon. u reaching? -ham,have you got xmas radio times. if not i will get it now -ham,at 4. let's go to bill millers -spam,wanna get laid 2nite? want real dogging locations sent direct to ur mobile? join the uk's largest dogging network. txt park to 69696 now! nyt. ec2a. 3lp ??1.50/msg -ham,"actually fuck that, just do whatever, do find an excuse to be in tampa at some point before january though" -ham,ok lor. i'm in town now lei. -spam,free for 1st week! no1 nokia tone 4 ur mob every week just txt nokia to 8007 get txting and tell ur mates www.getzed.co.uk pobox 36504 w45wq norm150p/tone 16+ -ham,yes princess! i want to catch you with my big strong hands... -spam,hard live 121 chat just 60p/min. choose your girl and connect live. call 09094646899 now! cheap chat uk's biggest live service. vu bcm1896wc1n3xx -ham,back in brum! thanks for putting us up and keeping us all and happy. see you soon -ham,"greetings me, ! consider yourself excused." -ham,btw regarding that we should really try to see if anyone else can be our 4th guy before we commit to a random dude -ham,if u laugh really loud.. if u talk spontaneously.. if u dont care what others feel.. u are probably with your dear & best friends.. goodevening dear..:) -ham,"ok omw now, you at castor?" -ham,love it! i want to flood that pretty pussy with cum... -ham,jokin only lar... :-) depends on which phone my father can get lor... -ham,we will meet soon princess! ttyl! -ham,"k, jason says he's gonna be around so i'll be up there around <#>" -ham,nokia phone is lovly.. -ham,"do you know why god created gap between your fingers..? so that, one who is made for you comes & fills those gaps by holding your hand with love..!" -ham,"\response\"" is one of d powerful weapon 2 occupy a place in others 'heart'... so" -ham,"dude u knw also telugu..thts gud..k, gud nyt.." -spam,congratulations you've won. you're a winner in our august ??1000 prize draw. call 09066660100 now. prize code 2309. -ham,"for you information, ikea is spelled with all caps. that is not yelling. when you thought i had left you, you were sitting on the bed among the mess when i came in. i said we were going after you got home from class. please don't try and bullshit me. it makes me want to listen to you less." -ham,orh i tot u say she now still dun believe. -spam,todays vodafone numbers ending with 0089(my last four digits) are selected to received a ??350 award. if your number matches please call 09063442151 to claim your ??350 award -ham,nite... -ham,"wishing you and your family merry \x\"" mas and happy new year in advance..""" -spam,4mths half price orange line rental & latest camera phones 4 free. had your phone 11mths ? call mobilesdirect free on 08000938767 to update now! or2stoptxt -ham,thats cool. how was your day? -spam,"congrats 2 mobile 3g videophones r yours. call 09063458130 now! videochat wid ur mates, play java games, dload polyph music, noline rentl. bx420. ip4. 5we. 150p" -ham,"erm ??_ ill pick you up at about 6.45pm. that'll give enough time to get there, park and that." -ham,no message..no responce..what happend? -ham,i doubt you could handle 5 times per night in any case... -spam,you have won! as a valued vodafone customer our computer has picked you to win a ??150 prize. to collect is easy. just call 09061743386 -ham,"\boo babe! u enjoyin yourjob? u seemed 2 b gettin on well hunny!hope ure ok?take care & i??llspeak 2u soonlots of loveme xxxx.\""""" -spam,hmv bonus special 500 pounds of genuine hmv vouchers to be won. just answer 4 easy questions. play now! send hmv to 86688 more info:www.100percent-real.com -ham,you do got a shitload of diamonds though -ham,going on nothing great.bye -ham,"what do you do, my dog ? must i always wait till the end of your day to have word from you ? did you run out of time on your cell already?" -ham,k and you're sure i don't have to have consent forms to do it :v -spam,"u've been selected to stay in 1 of 250 top british hotels - for nothing! holiday valued at ??350! dial 08712300220 to claim - national rate call. bx526, sw73ss" -ham,babe ? i lost you ... will you try rebooting ? -ham,yes. it's all innocent fun. o:-) -spam,your next amazing xxx picsfree1 video will be sent to you enjoy! if one vid is not enough for 2day text back the keyword picsfree1 to get the next video. -ham,no dear i do have free messages without any recharge. hi hi hi -ham,come aftr <decimal> ..now i m cleaning the house -ham,"evening * v good if somewhat event laden. will fill you in, don't you worry ??_ head * ok but throat * wrecked. see you at six then!" -ham,why you keeping me away like this -ham,a cute thought for friendship: \its not necessary to share every secret with ur close frnd -ham,"hello, my boytoy! i made it home and my constant thought is of you, my love. i hope your having a nice visit but i can't wait till you come home to me ...*kiss*" -ham,goodmorning today i am late for <decimal> min. -ham,"the world is running and i am still.maybe all are feeling the same,so be it.or i have to admit,i am mad.then where is the correction?or let me call this is life.and keep running with the world,may be u r also running.lets run." -ham,"i can make it up there, squeezed <#> bucks out of my dad" -spam,"as a valued customer, i am pleased to advise you that following recent review of your mob no. you are awarded with a ??1500 bonus prize, call 09066364589" -ham,"oh mr sheffield! you wanna play that game, okay. you're the boss and i'm the nanny. you give me a raise and i'll give you one!!" -ham,lol i have to take it. member how i said my aunt flow didn't visit for 6 months? it's cause i developed ovarian cysts. bc is the only way to shrink them. -ham,alex says he's not ok with you not being ok with it -ham,"say this slowly.? god,i love you & i need you,clean my heart with your blood.send this to ten special people & u c miracle tomorrow, do it,pls,pls do it..." -ham,hey you told your name to gautham ah? -ham,howz that persons story -ham,"well imma definitely need to restock before thanksgiving, i'll let you know when i'm out" -ham,cuz ibored. and don wanna study -ham,idk. i'm sitting here in a stop and shop parking lot right now bawling my eyes out because i feel like i'm a failure in everything. nobody wants me and now i feel like i'm failing you. -ham,there is no sense in my foot and penis. -ham,u too... -ham,water logging in desert. geoenvironmental implications. -spam,"shop till u drop, is it you, either 10k, 5k, ??500 cash or ??100 travel voucher, call now, 09064011000. ntt po box cr01327bt fixedline cost 150ppm mobile vary" -ham,i come n pick ?_ up... come out immediately aft ur lesson... -ham,the beauty of life is in next second.. which hides thousands of secrets. i wish every second will be wonderful in ur life...!! gud n8 -ham,many times we lose our best ones bcoz we are -ham,okie... thanx... -ham,"and that's fine, i got enough bud to last most of the night at least" -ham,ok -ham,no:-)i got rumour that you going to buy apartment in chennai:-) -ham,i am not sure about night menu. . . i know only about noon menu -ham,?? v ma fan... -ham,u free on sat rite? u wan 2 watch infernal affairs wif me n darren n mayb xy? -ham,hey ! don't forget ... you are mine ... for me ... my possession ... my property ... mmm ... *childish smile* ... -ham,honestly i've just made a lovely cup of tea and promptly dropped my keys in it and then burnt my fingers getting them out! -ham,what's up my own oga. left my phone at home and just saw ur messages. hope you are good. have a great weekend. -ham,hi my darlin im on my way to london and we have just been smashed into by another driver! and have a big dent! im really missing u what have u been up to? xxx -ham,going to take your babe out ? -ham,beauty sleep can help ur pimples too. -ham,ugh. gotta drive back to sd from la. my butt is sore. -ham,but i have to. i like to have love and arrange. -ham,"yep, at derek's house now, see you sunday <3" -ham,but i dint slept in afternoon. -ham,"\hi darlin did youphone me? im athome if youwanna chat.\""""" -ham,happy new year to u too! -spam,panasonic & bluetoothhdset free. nokia free. motorola free & doublemins & doubletxt on orange contract. call mobileupd8 on 08000839402 or call 2optout -ham,usually the person is unconscious that's in children but in adults they may just behave abnormally. i.ll call you now -ham,"i'm in a meeting, call me later at" -ham,wat ?_ doing now? -spam,congratulations ur awarded either a yrs supply of cds from virgin records or a mystery gift guaranteed call 09061104283 ts&cs www.smsco.net ??1.50pm approx 3mins -ham,"it's cool, let me know before it kicks off around <#> , i'll be out and about all day" -ham,i have a rather prominent bite mark on my right cheek -ham,happy birthday to you....dear.with lots of love.rakhesh nri -spam,send a logo 2 ur lover - 2 names joined by a heart. txt love name1 name2 mobno eg love adam eve 07123456789 to 87077 yahoo! pobox36504w45wq txtno 4 no ads 150p -spam,freemsg hi baby wow just got a new cam moby. wanna c a hot pic? or fancy a chat?im w8in 4utxt / rply chat to 82242 hlp 08712317606 msg150p 2rcv -ham,"hi this is yijue, can i meet u at 11 tmr?" -ham,i like to talk pa but am not able to. i dont know y. -ham,"when i was born, god said, \oh no! another idiot\"". when you were born \""oh no! competition\"". who knew one day these two will become freinds forever!""" -ham,ok then i'll let him noe later n ask him call u tmr... -ham,otherwise had part time job na-tuition.. -ham,"hi. wk been ok - on hols now! yes on for a bit of a run. forgot that i have hairdressers appointment at four so need to get home n shower beforehand. does that cause prob for u?" -spam,"urgent ur awarded a complimentary trip to eurodisinc trav, aco&entry41 or ??1000. to claim txt dis to 87121 18+6*??1.50(morefrmmob. shracomorsglsuplt)10, ls1 3aj" -ham,i'll pick you up at about 5.15pm to go to taunton if you still want to come. -ham,"\hello u.call wen u finish wrk.i fancy meetin up wiv u all tonite as i need a break from dabooks. did 4 hrs last nite+2 today of wrk!\""""" -ham,i surely dont forgot to come:)i will always be in touch in with you:-) -ham,just sleeping..and surfing -ham,dont kick coco when he's down -ham,yes:)here tv is always available in work place.. -ham,it certainly puts things into perspective when something like this happens -spam,as a registered subscriber yr draw 4 a ??100 gift voucher will b entered on receipt of a correct ans. when are the next olympics. txt ans to 80062 -spam,"shop till u drop, is it you, either 10k, 5k, ??500 cash or ??100 travel voucher, call now, 09064011000. ntt po box cr01327bt fixedline cost 150ppm mobile vary" -spam,do you want 750 anytime any network mins 150 text and a new video phone for only five pounds per week call 08000776320 now or reply for delivery tomorrow -spam,"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" -ham,wat time r ?_ going to xin's hostel? -ham,"hiya, sorry didn't hav signal. i haven't seen or heard from and neither has, which is unusual in itself! i'll put on the case and get him to sort it out! hugs and snogs." -ham,ok cool. see ya then. -ham,is she replying. has boye changed his phone number -spam,"dear voucher holder, to claim this weeks offer, at you pc please go to http://www.e-tlp.co.uk/expressoffer ts&cs apply. to stop texts, txt stop to 80062" -ham,no. yes please. been swimming? -ham,can not use foreign stamps in this country. -ham,i'm always looking for an excuse to be in the city. -ham,heart is empty without love.. mind is empty without wisdom.. eyes r empty without dreams & life is empty without frnds.. so alwys be in touch. good night & sweet dreams -ham,really dun bluff me leh... u sleep early too. nite... -ham,ok enjoy . r u there in home. -spam,dear voucher holder 2 claim your 1st class airport lounge passes when using your holiday voucher call 08704439680. when booking quote 1st class x 2 -ham,dont pick up d call when something important is there to tell. hrishi -ham,"just arrived, see you in a couple days <3" -ham,i sent them. do you like? -ham,cause i'm not freaky lol -ham,"sorry chikku, my cell got some problem thts y i was nt able to reply u or msg u.." -ham,i cant pick the phone right now. pls send a message -ham,that means from february to april i'll be getting a place to stay down there so i don't have to hustle back and forth during audition season as i have since my sister moved away from harlem. -ham,okay name ur price as long as its legal! wen can i pick them up? y u ave x ams xx -spam,"urgent! call 09066350750 from your landline. your complimentary 4* ibiza holiday or 10,000 cash await collection sae t&cs po box 434 sk3 8wp 150 ppm 18+" -ham,"the lay man! just to let you know you are missed and thought off. do have a great day. and if you can send me bimbo and ugo's numbers, ill appreciate. safe" -ham,u sure u can't take any sick time? -ham,you're right i have now that i think about it -ham,"i dont knw pa, i just drink milk.." -ham,k.k.this month kotees birthday know? -ham,god bless.get good sleep my dear...i will pray! -ham,kothi print out marandratha. -spam,knock knock txt whose there to 80082 to enter r weekly draw 4 a ??250 gift voucher 4 a store of yr choice. t&cs www.tkls.com age16 to stoptxtstop??1.50/week -ham,"okay. no no, just shining on. that was meant to be signing, but that sounds better." -ham,i'm very happy for you babe ! woo hoo party on dude! -ham,"just so that you know,yetunde hasn't sent money yet. i just sent her a text not to bother sending. so its over, you dont have to involve yourself in anything. i shouldn't have imposed anything on you in the first place so for that, i apologise." -ham,ya:)going for restaurant.. -ham,i have to take exam with march 3 -spam,rct' thnq adrian for u text. rgds vatian -spam,you'll not rcv any more msgs from the chat svc. for free hardcore services text go to: 69988 if u get nothing u must age verify with yr network & try again -ham,great! so what attracts you to the brothas? -ham,"did you say bold, then torch later. or one torch and 2bold?" -ham,i am in hospital da. . i will return home in evening -ham,i attended but nothing is there. -spam,"congratulations - thanks to a good friend u have won the ??2,000 xmas prize. 2 claim is easy, just call 08712103738 now! only 10p per minute. bt-national-rate" -ham,armand says get your ass over to epsilon -ham,here got ur favorite oyster... n got my favorite sashimi... ok lar i dun say already... wait ur stomach start rumbling... -ham,"aight, i should be there by 8 at the latest, probably closer to 7. are jay and tyler down or should we just do two trips?" -ham,package all your programs well -spam,no 1 polyphonic tone 4 ur mob every week! just txt pt2 to 87575. 1st tone free ! so get txtin now and tell ur friends. 150p/tone. 16 reply hl 4info -ham,am on a train back from northampton so i'm afraid not! i'm staying skyving off today ho ho! will be around wednesday though. do you fancy the comedy club this week by the way? -ham,"yes, princess. toledo." -ham,total video converter free download type this in google search:) -ham,hmmm:)how many players selected? -spam,"dear matthew please call 09063440451 from a landline, your complimentary 4*lux tenerife holiday or ??1000 cash await collection. ppm150 sae t&cs box334 sk38xh." -ham,"remember all those whom i hurt during days of satanic imposter in me.need to pay a price,so be it.may destiny keep me going and as u said pray that i get the mind to get over the same." -ham,"it doesnt make sense to take it there unless its free. if you need to know more, wikipedia.com" -ham,how much i gave to you. morning. -ham,can you plz tell me the ans. bslvyl sent via fullonsms.com -spam,"our dating service has been asked 2 contact u by someone shy! call 09058091870 now all will be revealed. pobox84, m26 3uz 150p" -ham,"ah, well that confuses things, doesn???t it?" -ham,"[??_] anyway, many good evenings to u! s" -ham,lol u still feeling sick? -ham,hey whats up? u sleeping all morning? -ham,neshanth..tel me who r u? -ham,yeah that'd pretty much be the best case scenario -ham,"its ok., i just askd did u knw tht no?" -ham,super msg da:)nalla timing. -ham,i only work from mon to thurs but sat i cant leh... booked liao... which other day u free? -ham,yes see ya not on the dot -spam,"u r subscribed 2 textcomp 250 wkly comp. 1st wk?s free question follows, subsequent wks charged@150p/msg.2 unsubscribe txt stop 2 84128,custcare 08712405020" -ham,"not yet chikku..going to room nw, i'm in bus.." -ham,"don't think about \what u have got\"" think about \""how to use it that you have got\"" good ni8""" -ham,yeah imma come over cause jay wants to do some drugs -ham,i'm at bruce & fowler now but i'm in my mom's car so i can't park (long story) -ham,there is a first time for everything :) -spam,dating:i have had two of these. only started after i sent a text to talk sport radio last week. any connection do you think or coincidence? -ham,do you always celebrate ny's with your family ? -ham,wat time u finish ur lect today? -ham,"yo, the game almost over? want to go to walmart soon" -ham,hiya stu wot u up 2.im in so much truble at home at moment evone hates me even u! wot the hell av i done now? y wont u just tell me text bck please luv dan -ham,"ok. not much to do here though. h&m friday, cant wait. dunno wot the hell im gonna do for another 3 weeks! become a slob- oh wait, already done that!" -ham,i am back. good journey! let me know if you need any of the receipts. shall i tell you like the pendent? -ham,so now my dad is gonna call after he gets out of work and ask all these crazy questions. -ham,well its not like you actually called someone a punto. that woulda been worse. -ham,and picking them up from various points -ham,webpage s not available! -ham,<#> w jetton ave if you forgot -ham,easy ah?sen got selected means its good.. -ham,yar lor... how u noe? u used dat route too? -ham,ps u no ur a grown up now right? -spam,camera - you are awarded a sipix digital camera! call 09061221066 fromm landline. delivery within 28 days. -ham,pandy joined 4w technologies today.he got job.. -ham,not tonight mate. catching up on some sleep. this is my new number by the way. -spam,"six chances to win cash! from 100 to 20,000 pounds txt> csh11 and send to 87575. cost 150p/day, 6days, 16+ tsandcs apply reply hl 4 info" -ham,even u dont get in trouble while convincing..just tel him once or twice and just tel neglect his msgs dont c and read it..just dont reply -ham,for the first time in the history 'need' 'comfort' and 'luxury' are sold at same price in india..!! onion-rs. <#> petrol-rs. <#> beer-rs. <#> shesil <#> -ham,lol i know! they're so dramatic. schools already closed for tomorrow. apparently we can't drive in the inch of snow were supposed to get. -ham,how have your little darlings been so far this week? need a coffee run tomo?can't believe it's that time of week already ??_ -spam,you have 1 new message. please call 08712400200. -spam,"someone has contacted our dating service and entered your phone becausethey fancy you! to find out who it is call from a landline 09058098002. pobox1, w14rg 150p" -ham,i got a call from a landline number. . . i am asked to come to anna nagar . . . i will go in the afternoon -ham,"\symptoms\"" when u are in love: \""1.u like listening songs 2.u get stopped where u see the name of your beloved 3.u won't get angry when your""" -ham,so u workin overtime nigpun? -ham,we still on for tonight? -ham,"lol ... oh no babe, i wont be sliding into your place after midnight, but thanks for the invite" -ham,k go and sleep well. take rest:-). -spam,congratulations ur awarded 500 of cd vouchers or 125gift guaranteed & free entry 2 100 wkly draw txt music to 87066 tncs www.ldew.com1win150ppmx3age16 -ham,yes.. now only saw your message.. -ham,she just broke down a list of reasons why nobody's in town and i can't tell if she's being sarcastic or just faggy -ham,hey gals.. anyone of u going down to e driving centre tmr? -ham,"sorry, got a late start, we're on the way" -ham,they did't play one day last year know even though they have very good team.. like india. -ham,"doing nothing, then u not having dinner w us?" -ham,and miss vday the parachute and double coins??? u must not know me very well... -ham,can i get your opinion on something first? -ham,now project pa. after that only i can come. -ham,hows the champ just leaving glasgow! -ham,and is there a way you can send shade's stuff to her. and she has been wonderful too. -ham,"sorry, i'll call later" -ham,well i'm going to be an aunty! -ham,ill b down soon -ham,i am 6 ft. we will be a good combination! -ham,did you see that film:) -ham,which channel:-):-):):-). -spam,lord of the rings:return of the king in store now!reply lotr by 2 june 4 chance 2 win lotr soundtrack cds stdtxtrate. reply stop to end txts -ham,no no. i will check all rooms befor activities -spam,this msg is for your mobile content order it has been resent as previous attempt failed due to network error queries to customersqueries@netvision.uk.com -ham,1 in cbe. 2 in chennai. -ham,what time should i tell my friend to be around? -ham,yeah i imagine he would be really gentle. unlike the other docs who treat their patients like turkeys. -ham,"evry emotion dsn't hav words.evry wish dsn't hav prayrs.. if u smile,d world is wit u.othrwise even d drop of tear dsn't lik 2 stay wit u.so b happy.. good morning, keep smiling:-)" -ham,not from this campus. are you in the library? -spam,it to 80488. your 500 free text messages are valid until 31 december 2005. -ham,we regret to inform u that the nhs has made a mistake.u were never actually born.please report 2 yor local hospital 2b terminated.we r sorry 4 the inconvenience -ham,mm i had my food da from out -ham,i cant pick the phone right now. pls send a message -ham,ok... -ham,okie but i scared u say i fat... then u dun wan me already... -ham,"i met you as a stranger and choose you as my friend. as long as the world stands, our friendship never ends. lets be friends forever!!! gud nitz..." -ham,it took mr owl 3 licks -ham,unless it's a situation where you go gurl would be more appropriate -ham,yup i'm still having coffee wif my frens... my fren drove she'll give me a lift... -ham,ummma.will call after check in.our life will begin from qatar so pls pray very hard. -spam,urgent! your mobile number has been awarded with a ??2000 prize guaranteed. call 09061790121 from land line. claim 3030. valid 12hrs only 150ppm -spam,freemsg: our records indicate you may be entitled to 3750 pounds for the accident you had. to claim for free reply with yes to this msg. to opt out text stop -ham,whos this am in class:-) -ham,bring it if you got it -ham,"so check your errors and if you had difficulties, do correction." -ham,sry da..jst nw only i came to home.. -ham,i luv u soo much u don??t understand how special u r 2 me ring u 2morrow luv u xxx -ham,hey you can pay. with salary de. only <#> . -ham,so wats ur opinion abt him and how abt is character? -ham,"she was supposed to be but couldn't make it, she's still in town though" -spam,dear 0776xxxxxxx u've been invited to xchat. this is our final attempt to contact u! txt chat to 86688 150p/msgrcvdhg/suite342/2lands/row/w1j6hl ldn 18yrs -ham,"multiply the numbers independently and count decimal points then, for the division, push the decimal places like i showed you." -ham,short but cute : \ be a good person -ham,huh i cant thk of more oredi how many pages do we have? -ham,yupz... i've oredi booked slots 4 my weekends liao... -spam,free tones hope you enjoyed your new content. text stop to 61610 to unsubscribe. help:08712400602450p provided by tones2you.co.uk -ham,stop knowing me so well! -spam,well done england! get the official poly ringtone or colour flag on yer mobile! text tone or flag to 84199 now! opt-out txt eng stop. box39822 w111wx ??1.50 -ham,okay lor... will they still let us go a not ah? coz they will not know until later. we drop our cards into the box right? -ham,all e best 4 ur driving tmr :-) -ham,oh for fuck's sake she's in like tallahassee -ham,i.ll get there tomorrow and send it to you -ham,k sure am in my relatives home. sms me de. pls:-) -ham,k...k...yesterday i was in cbe . -ham,"well, i'm glad you didn't find it totally disagreeable ... lol" -ham,mm feeling sleepy. today itself i shall get that dear -spam,this message is free. welcome to the new & improved sex & dogging club! to unsubscribe from this service reply stop. msgs@150p 18+only -ham,how come i din c ?_... yup i cut my hair... -ham,"hi shanil,rakhesh here.thanks,i have exchanged the uncut diamond stuff.leaving back. excellent service by dino and prem." -spam,"urgent! call 09066612661 from landline. your complementary 4* tenerife holiday or ??10,000 cash await collection sae t&cs po box 3 wa14 2px 150ppm 18+ sender: hol offer" -ham,great. hope you are using your connections from mode men also cos you can never know why old friends can lead you to today -ham,thought praps you meant another one. goodo! i'll look tomorrow -spam,want a new video phone? 750 anytime any network mins? half price line rental free text for 3 months? reply or call 08000930705 for free delivery -ham,"as usual..iam fine, happy & doing well..:)" -ham,"my life means a lot to me, not because i love my life, but because i love the people in my life, the world calls them friends, i call them my world:-).. ge:-).." -ham,i love you both too :-) -ham,ron say fri leh. n he said ding tai feng cant make reservations. but he said wait lor. -ham,"g says you never answer your texts, confirm/deny" -ham,only if you promise your getting out as soon as you can. and you'll text me in the morning to let me know you made it in ok. -ham,how did you find out in a way that didn't include all of these details -ham,my trip was ok but quite tiring lor. uni starts today but it's ok 4 me cos i'm not taking any modules but jus concentrating on my final yr project. -ham,"damn, poor zac doesn't stand a chance" -ham,india have to take lead:) -ham,k. did you call me just now ah? -ham,meeting u is my work. . . tel me when shall i do my work tomorrow -ham,"i'd say that's a good sign but, well, you know my track record at reading women" -spam,we tried to contact you re your reply to our offer of 750 mins 150 textand a new video phone call 08002988890 now or reply for free delivery tomorrow -ham,"7 wonders in my world 7th you 6th ur style 5th ur smile 4th ur personality 3rd ur nature 2nd ur sms and 1st \ur lovely friendship\""... good morning dear""" -ham,"sorry, i'll call later" -ham,eh den sat u book e kb liao huh... -ham,"aight, lemme know what's up" -ham,this is a long fuckin showr -ham,i'm going for bath will msg you next <#> min.. -ham,i not busy juz dun wan 2 go so early.. hee.. -ham,i have printed it oh. so <#> come upstairs -ham,hurry home u big butt. hang up on your last caller if u have to. food is done and i'm starving. don't ask what i cooked. -ham,"machan you go to gym tomorrow, i wil come late goodnight." -ham,for real when u getting on yo? i only need 2 more tickets and one more jacket and i'm done. i already used all my multis. -ham,i thk 50 shd be ok he said plus minus 10.. did ?_ leave a line in between paragraphs? -ham,yoyyooo u know how to change permissions for a drive in mac. my usb flash drive -ham,oh k k:)but he is not a big hitter.anyway good -ham,"babe, i'm back ... come back to me ..." -ham,yeah right! i'll bring my tape measure fri! -ham,wife.how she knew the time of murder exactly -ham,can you just come in for a sec? there's somebody here i want you to see -spam,"500 new mobiles from 2004, must go! txt: nokia to no: 89545 & collect yours today!from only ??1 www.4-tc.biz 2optout 087187262701.50gbp/mtmsg18 txtauction" -ham,i cant pick the phone right now. pls send a message -ham,dnt worry...use ice pieces in a cloth pack.also take 2 tablets. -ham,did u turn on the heater? the heater was on and set to <#> degrees. -ham,u gd lor go shopping i got stuff to do. u wan 2 watch infernal affairs a not? come lar... -ham,"sure, but make sure he knows we ain't smokin yet" -ham,"hurry up, i've been weed-deficient for like three days" -ham,oops. 4 got that bit. -ham,just curious because my cuz asked what i was up to -ham,ok i msg u b4 i leave my house. -ham,i???m parked next to a mini!!!! when are you coming in today do you think? -ham,of course ! don't tease me ... you know i simply must see ! *grins* ... do keep me posted my prey ... *loving smile* *devouring kiss* -ham,"goodmorning, today i am late for 2hrs. because of back pain." -spam,great news! call freefone 08006344447 to claim your guaranteed ??1000 cash or ??2000 gift. speak to a live operator now! -ham,i told her i had a dr appt next week. she thinks i'm gonna die. i told her its just a check. nothing to be worried about. but she didn't listen. -ham,hey... very inconvenient for your sis a not huh? -ham,yes:)here tv is always available in work place.. -ham,still at west coast... haiz... ??'ll take forever to come back... -spam,dear u've been invited to xchat. this is our final attempt to contact u! txt chat to 86688 150p/msgrcvdhg/suite342/2lands/row/w1j6hl ldn 18 yrs -ham,i love u 2 my little pocy bell i am sorry but i love u -ham,u wake up already? thanx 4 e tau sar piah it's quite nice. -ham,good. do you think you could send me some pix? i would love to see your top and bottom... -spam,please call 08712402902 immediately as there is an urgent message waiting for you. -ham,is there any training tomorrow? -spam,wamma get laid?want real doggin locations sent direct to your mobile? join the uks largest dogging network. txt dogs to 69696 now!nyt. ec2a. 3lp ??1.50/msg. -ham,what i mean is do they come chase you out when its over or is it stated you can watch as many movies as you want. -ham,we'll join the <#> bus -ham,no. i meant the calculation is the same. that <#> units at <#> . this school is really expensive. have you started practicing your accent. because its important. and have you decided if you are doing 4years of dental school or if you'll just do the nmde exam. -ham,lol! nah wasn't too bad thanks. its good to b home but its been quite a reality check. hows ur day been? did u do anything with website? -ham,"sorry, i'll call later" -ham,"yep, the great loxahatchee xmas tree burning of <#> starts in an hour" -ham,old orchard near univ. how about you? -ham,oops i thk i dun haf enuff... i go check then tell ?_.. -ham,"\life is nothing wen v get everything\"". but \""life is everything wen v miss something \"". real value of people wil be realized only in their absence.... gud mrng""" -ham,new car and house for my parents.:)i have only new job in hand:) -ham,i see the letter b on my car -ham,ok i thk i got it. then u wan me 2 come now or wat? -ham,hi neva worry bout da truth coz the truth will lead me 2 ur heart. it??s the least a unique person like u deserve. sleep tight or morning -spam,u r a winner u ave been specially selected 2 receive ??1000 cash or a 4* holiday (flights inc) speak to a live operator 2 claim 0871277810710p/min (18 ) -ham,yup next stop. -ham,"ya they are well and fine., bbd(pooja) full pimples..even she become quite black..and ur rite here its too cold, wearing sweatter.." -ham,"call me da, i am waiting for your call." -ham,are you available for soiree on june 3rd? -ham,are you this much buzy -ham,do u noe wat time e place dat sells 4d closes? -spam,u 447801259231 have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094597 -ham,try to do something dear. you read something for exams -ham,yeah i can still give you a ride -ham,s...from the training manual it show there is no tech process:)its all about password reset and troubleshooting:) -spam,from www.applausestore.com monthlysubscription@50p/msg max6/month t&csc web age16 2stop txt stop -ham,well there's a pattern emerging of my friends telling me to drive up and come smoke with them and then telling me that i'm a weed fiend/make them smoke too much/impede their doing other things so you see how i'm hesitant -ham,well then you have a great weekend! -ham,see the forwarding message for proof -ham,onum ela pa. normal than. -ham,"er, hello, things didn???t quite go to plan ??? is limping slowly home followed by aa and with exhaust hanging off" -ham,that seems unnecessarily hostile -ham,hey what happen de. are you alright. -ham,sorry de i went to shop. -ham,then dun wear jeans lor... -spam,free top ringtone -sub to weekly ringtone-get 1st week free-send subpoly to 81618-?3 per week-stop sms-08718727870 -spam,"you are guaranteed the latest nokia phone, a 40gb ipod mp3 player or a ??500 prize! txt word: collect to no: 83355! ibhltd ldnw15h 150p/mtmsgrcvd18" -ham,thing r good thanx got exams in march ive done no revision? is fran still with boyf? ive gotta interviw 4 exeter bit worried!x -ham,"i do know what u mean, is the king of not havin credit! i'm goin2bed now. night night sweet! only1more sleep!" -spam,-pls stop bootydelious (32/f) is inviting you to be her friend. reply yes-434 or no-434 see her: www.sms.ac/u/bootydelious stop? send stop frnd to 62468 -spam,4mths half price orange line rental & latest camera phones 4 free. had your phone 11mths+? call mobilesdirect free on 08000938767 to update now! or2stoptxt t&cs -ham,thank you baby! i cant wait to taste the real thing... -ham,i'm turning off my phone. my moms telling everyone i have cancer. and my sister won't stop calling. it hurts to talk. can't put up with it. see u when u get home. love u -spam,free>ringtone! reply real or poly eg real1 1. pushbutton 2. dontcha 3. babygoodbye 4. golddigger 5. webeburnin 1st tone free and 6 more when u join for ??3/wk -ham,still in the area of the restaurant. ill try to come back soon -ham,"\thinking of u ;) x\""""" -ham,well there's not a lot of things happening in lindsay on new years *sighs* some bars in ptbo and the blue heron has something going -ham,ok... then r we meeting later? -ham,hello my little party animal! i just thought i'd buzz you as you were with your friends ...*grins*... reminding you were loved and send a naughty adoring kiss -ham,gud mrng dear hav a nice day -ham,"k, my roommate also wants a dubsack and another friend may also want some so plan on bringing extra, i'll tell you when they know for sure" -ham,"wow. i never realized that you were so embarassed by your accomodations. i thought you liked it, since i was doing the best i could and you always seemed so happy about \the cave\"". i'm sorry i didn't and don't have more to give. i'm sorry i offered. i'm sorry your room was so embarassing.""" -spam,get your garden ready for summer with a free selection of summer bulbs and seeds worth ??33:50 only with the scotsman this saturday. to stop go2 notxt.co.uk -ham,went to ganesh dress shop -ham,i'm in a movie. call me 4 wat? -ham,aight what time you want me to come up? -ham,"tee hee. off to lecture, cheery bye bye." -ham,"\ey! calm downon theacusations.. itxt u cos iwana know wotu r doin at thew/end... haventcn u in ages..ring me if ur up4 nething sat.love j xxx.\""""" -ham,"good! no, don???t need any receipts???well done! (??_) yes, please tell . what???s her number, i could ring her" -ham,"hey chief, can you give me a bell when you get this. need to talk to you about this royal visit on the 1st june." -ham,ummmmmaah many many happy returns of d day my dear sweet heart.. happy birthday dear -ham,"hey there babe, how u doin? wot u up 2 2nite love annie x." -ham,or just do that 6times -ham,let ur heart be ur compass ur mind ur map ur soul ur guide and u will never loose in world....gnun - sent via way2sms.com -ham,have you bookedthe hut? and also your time off? how are you by the way? -ham,well that must be a pain to catch -ham,"rose needs water, season needs change, poet needs imagination..my phone needs ur sms and i need ur lovely frndship forever...." -ham,s'fine. anytime. all the best with it. -spam,freemsg today's the day if you are ready! i'm horny & live in your town. i love sex fun & games! netcollex ltd 08700621170150p per msg reply stop to end -ham,i though we shd go out n have some fun so bar in town or something ??? sound ok? -ham,"oh, then your phone phoned me but it disconnected" -ham,don no da:)whats you plan? -spam,yes! the only place in town to meet exciting adult singles is now in the uk. txt chat to 86688 now! 150p/msg. -ham,up to ?_... ?? wan come then come lor... but i din c any stripes skirt... -ham,"hello my boytoy ... geeee i miss you already and i just woke up. i wish you were here in bed with me, cuddling me. i love you ..." -ham,no one interested. may be some business plan. -spam,"1000's flirting now! txt girl or bloke & ur name & age, eg girl zoe 18 to 8007 to join and get chatting!" -ham,"fighting with the world is easy, u either win or lose bt fightng with some1 who is close to u is dificult if u lose - u lose if u win - u still lose." -ham,university of southern california. -ham,have you ever had one foot before? -ham,oh:)as usual vijay film or its different? -ham,me n him so funny... -ham,can you plz tell me the ans. bslvyl sent via fullonsms.com -ham,"\hi babe uawake?feellikw shit.justfound out via aletter thatmum gotmarried 4thnov.behind ourbacks ?? fuckinnice!selfish i??l call u\""""" -ham,"just checked out, heading out to drop off my stuff now" -ham,maybe you should find something else to do instead??? -ham,"sorry, i'll call later ok bye" -ham,ok... sweet dreams... -ham,are we doing the norm tomorrow? i finish just a 4.15 cos of st tests. need to sort library stuff out at some point tomo - got letter from today - access til end march so i better get move on! -ham,que pases un buen tiempo or something like that -ham,want to send me a virtual hug?... i need one -spam,sms. ac sun0819 posts hello:\you seem cool -ham,ok lor wat time ?_ finish? -ham,i am late. i will be there at -spam,hi i'm sue. i am 20 years old and work as a lapdancer. i love sex. text me live - i'm i my bedroom now. text sue to 89555. by textoperator g2 1da 150ppmsg 18+ -ham,no it's waiting in e car dat's bored wat. cos wait outside got nothing 2 do. at home can do my stuff or watch tv wat. -ham,discussed with your mother ah? -ham,"very strange. and are watching the 2nd one now but i'm in bed. sweet dreams, miss u" -spam,"want to funk up ur fone with a weekly new tone reply tones2u 2 this text. www.ringtones.co.uk, the original n best. tones 3gbp network operator rates apply" -spam,money i have won wining number 946 wot do i do next -ham,yup no more already... thanx 4 printing n handing it up. -ham,lol your always so convincing. -ham,yes.i'm in office da:) -ham,customer place i will call you -ham,"what will we do in the shower, baby?" -ham,gud ni8 dear..slp well..take care..swt dreams..muah.. -spam,private! your 2003 account statement for shows 800 un-redeemed s. i. m. points. call 08715203656 identifier code: 42049 expires 26/10/04 -ham,dude how do you like the buff wind. -ham,yar i wanted 2 scold u yest but late already... i where got zhong se qing you? if u ask me b4 he ask me then i'll go out w u all lor. n u still can act so real. -ham,about <#> bucks. the banks fees are fixed. better to call the bank and find out. -spam,you are a winner u have been specially selected 2 receive ??1000 cash or a 4* holiday (flights inc) speak to a live operator 2 claim 0871277810810 -ham,?? still got lessons? ?? in sch? -spam,not heard from u4 a while. call 4 rude chat private line 01223585334 to cum. wan 2c pics of me gettin shagged then text pix to 8552. 2end send stop 8552 sam xxx -ham,"yes, i'm small kid.. and boost is the secret of my energy.." -spam,reminder: you have not downloaded the content you have already paid for. goto http://doit. mymoby. tv/ to collect your content. -ham,haven't left yet so probably gonna be here til dinner -spam,dear subscriber ur draw 4 ??100 gift voucher will b entered on receipt of a correct ans. when was elvis presleys birthday? txt answer to 80062 -ham,"i get out of class in bsn in like <#> minutes, you know where advising is?" -spam,you will be receiving this week's triple echo ringtone shortly. enjoy it! -spam,"tddnewsletter@emc1.co.uk (more games from thedailydraw) dear helen, dozens of free games - with great prizeswith.." -spam,new textbuddy chat 2 horny guys in ur area 4 just 25p free 2 receive search postcode or at gaytextbuddy.com. txt one name to 89693 -ham,"just wondering, the others just took off" -ham,?? say until like dat i dun buy ericsson oso cannot oredi lar... -ham,"sorry, i'll call you later. i am in meeting sir." -ham,this pay is <decimal> lakhs:) -ham,hi its me you are probably having too much fun to get this message but i thought id txt u cos im bored! and james has been farting at me all night -ham,i calls you later. afternoon onwords mtnl service get problem in south mumbai. i can hear you but you cann't listen me. -ham,"k, can that happen tonight?" -ham,just sleeping..and surfing -ham,ok set let u noe e details later... -spam,we have new local dates in your area - lots of new people registered in your area. reply date to start now! 18 only www.flirtparty.us replys150 -ham,shuhui say change 2 suntec steamboat? u noe where? where r u now? -ham,ryder unsold.now gibbs. -ham,by monday next week. give me the full gist -ham,?? thk of wat to eat tonight. -ham,i can make lasagna for you... vodka... -ham,"you aren't coming home between class, right? i need to work out and shower!" -ham,good morning plz call me sir -ham,good. good job. i like entrepreneurs -spam,"\urgent! this is the 2nd attempt to contact u!u have won ??1000call 09071512432 b4 300603t&csbcm4235wc1n3xx.callcost150ppmmobilesvary. max??7. 50\""""" -ham,are there ta jobs available? let me know please cos i really need to start working -ham,go where n buy? juz buy when we get there lar. -ham,how come u got nothing to do? -ham,cheers lou! yeah was a goodnite shame u neva came! c ya gailxx -ham,ugh its been a long day. i'm exhausted. just want to cuddle up and take a nap -ham,hi here. have birth at on the to at 8lb 7oz. mother and baby doing brilliantly. -ham,"good afternoon sunshine! how dawns that day ? are we refreshed and happy to be alive? do we breathe in the air and smile ? i think of you, my love ... as always" -ham,there r many model..sony ericson also der.. <#> ..it luks good bt i forgot modl no -spam,free for 1st week! no1 nokia tone 4 ur mob every week just txt nokia to 8007 get txting and tell ur mates www.getzed.co.uk pobox 36504 w45wq norm150p/tone 16+ -ham,"whenevr ur sad, whenevr ur gray, remembr im here 2 listn 2 watevr u wanna say, jus walk wid me a little while,& i promise i'll bring back ur smile.:-)" -ham,"(and my man carlos is definitely coming by mu tonight, no excuses)" -ham,hey sexy buns! what of that day? no word from you this morning on ym ... :-( ... i think of you -ham,in sch but neva mind u eat 1st lor.. -ham,"thanks da thangam, i feel very very happy dear. i also miss you da." -ham,prabha..i'm soryda..realy..frm heart i'm sory -ham,dont know you bring some food -ham,s.i'm watching it in live.. -ham,i am in escape theatre now. . going to watch kavalan in a few minutes -ham,no way i'm going back there! -ham,"probably, want to pick up more?" -ham,genius what's up. how your brother. pls send his number to my skype. -ham,"\im on gloucesterroad what are uup to later?\""""" -ham,aiyar sorry lor forgot 2 tell u... -ham,"night has ended for another day, morning has come in a special way. may you smile like the sunny rays and leaves your worries at the blue blue bay. gud mrng" -ham,:( but your not here.... -ham,its a part of checking iq -spam,double your mins & txts on orange or 1/2 price linerental - motorola and sonyericsson with b/tooth free-nokia free call mobileupd8 on 08000839402 or2optout/hv9d -ham,"hmm, too many of them unfortunately... pics obviously arent hot cakes. its kinda fun tho" -ham,am in film ill call you later. -ham,"haven't seen my facebook, huh? lol!" -ham,"sorry, i'll call later" -ham,crucify is c not s. you should have told me earlier. -ham,cthen i thk shd b enuff.. still got conclusion n contents pg n references.. i'll b doing da contents pg n cover pg.. -ham,"hi chikku, send some nice msgs" -ham,future is not what we planned for tomorrow.....! it is the result of what we do today...! do the best in present... enjoy the future. -ham,"fuck babe ... i miss you already, you know ? can't you let me send you some money towards your net ? i need you ... i want you ... i crave you ..." -spam,"sppok up ur mob with a halloween collection of nokia logo&pic message plus a free eerie tone, txt card spook to 8007" -ham,some are lasting as much as 2 hours. you might get lucky. -ham,do i? i thought i put it back in the box -ham,"sorry, i'll call later" -ham,i sent your maga that money yesterday oh. -ham,play w computer? aiyah i tok 2 u lor? -ham,how tall are you princess? -ham,not yet chikku..wat abt u? -ham,are you still getting the goods. -ham,"haha better late than ever, any way i could swing by?" -ham,good night my dear.. sleepwell&take care -ham,"fuuuuck i need to stop sleepin, sup" -ham,alex knows a guy who sells mids but he's down in south tampa and i don't think i could set it up before like 8 -ham,designation is software developer and may be she get chennai:) -ham,not a drop in the tank -ham,never blame a day in ur life. good days give u happiness. bad days give u experience. both are essential in life! all are gods blessings! good morning.: -ham,huh but i cant go 2 ur house empty handed right? -ham,hahaha..use your brain dear -ham,realy sorry-i don't recognise this number and am now confused :) who r u please?! -ham,good day to you too.pray for me.remove the teeth as its painful maintaining other stuff. -ham,"sir, i need velusamy sir's date of birth and company bank facilities details." -ham,hi' test on <#> rd .... -ham,every monday..nxt week vl be completing.. -ham,alrite sam its nic just checkin that this is ur number-so is it?t.b* -ham,i can ask around but there's not a lot in terms of mids up here -ham,must come later.. i normally bathe him in da afternoon mah.. -ham,my uncles in atlanta. wish you guys a great semester. -ham,its ok..come to my home it vl nice to meet and v can chat.. -ham,"geeee ... i miss you already, you know ? your all i can think about. fuck, i can't wait till next year when we will be together ... *loving kiss*" -ham,"god picked up a flower and dippeditinadew, lovingly touched itwhichturnedinto u, and the he gifted tomeandsaid,this friend is 4u" -ham,i will be outside office take all from there -ham,"its so common hearin how r u? wat r u doing? how was ur day? so let me ask u something different. did u smile today? if not, do it now.... gud evng." -ham,my birthday is on feb <#> da. . -ham,?? come lt 25 n pass to me lar -ham,kay... since we are out already -spam,18 days to euro2004 kickoff! u will be kept informed of all the latest news and results daily. unsubscribe send get euro stop to 83222. -ham,that's y i said it's bad dat all e gals know u... wat u doing now? -ham,in which place i can get rooms cheap:-) -ham,i thought we were doing a king of the hill thing there. -ham,love you aathi..love u lot.. -ham,k..u also dont msg or reply to his msg.. -ham,i dont know exactly could you ask chechi. -ham,"jane babes not goin 2 wrk, feel ill after lst nite. foned in already cover 4 me chuck.:-)" -ham,geeeee ... i love you so much i can barely stand it -ham,now i'm going for lunch. -ham,okie... -ham,heart is empty without love.. mind is empty without wisdom.. eyes r empty without dreams & life is empty without frnds.. so alwys be in touch. good night & sweet dreams -spam,"we know someone who you know that fancies you. call 09058097218 to find out who. pobox 6, ls15hb 150p" -ham,lol you won't feel bad when i use her money to take you out to a steak dinner =d -ham,i'm gonna say no. sorry. i would but as normal am starting to panic about time. sorry again! are you seeing on tuesday? -ham,ok. so april. cant wait -ham,k.i will send in <#> min:) -ham,smile in pleasure smile in pain smile when trouble pours like rain smile when sum1 hurts u smile becoz someone still loves to see u smiling!! -ham,"wat time liao, where still got." -ham,"my friend just got here and says he's upping his order by a few grams (he's got $ <#> ), when can you get here?" -ham,"what are you doing in langport? sorry, but i'll probably be in bed by 9pm. it sucks being ill at xmas! when do you and go2sri lanka?" -ham,its a laptop take it with you. -spam,"for ur chance to win a ??250 cash every wk txt: action to 80608. t's&c's www.movietrivia.tv custcare 08712405022, 1x150p/wk" -ham,like a personal sized or what -ham,omg i want to scream. i weighed myself and i lost more weight! woohoo! -ham,k..k..i'm also fine:)when will you complete the course? -ham,great. p diddy is my neighbor and comes for toothpaste every morning -ham,how stupid to say that i challenge god.you dont think at all on what i write instead you respond immed. -ham,she.s fine. i have had difficulties with her phone. it works with mine. can you pls send her another friend request. -ham,"house-maid is the murderer, coz the man was murdered on <#> th january.. as public holiday all govt.instituitions are closed,including post office..understand?" -ham,ok.ok ok..then..whats ur todays plan -ham,i will come tomorrow di -ham,hey i will be late ah... meet you at 945+ -ham,"no dice, art class 6 thru 9 :( thanks though. any idea what time i should come tomorrow?" -ham,its sunny in california. the weather's just cool -ham,holy living christ what is taking you so long -spam,urgent! your mobile number has been awarded with a ??2000 prize guaranteed. call 09061790121 from land line. claim 3030. valid 12hrs only 150ppm -ham,anytime lor... -ham,"\hey! do u fancy meetin me at 4 at cha ?? hav a lil beverage on me. if not txt or ring me and we can meet up l8r. quite tired got in at 3 v.pist ;) love pete x x x\""""" -ham,this is my number by vivek.. -ham,"neither [in sterm voice] - i'm studying. all fine with me! not sure the thing will be resolved, tho. anyway. have a fab hols" -ham,are you going to wipro interview today? -ham,"i know where the <#> is, i'll be there around 5" -ham,is ur paper today in e morn or aft? -ham,thought we could go out for dinner. i'll treat you! seem ok? -ham,i am on the way to tirupur. -spam,"\for the most sparkling shopping breaks from 45 per person; call 0121 2025050 or visit www.shortbreaks.org.uk\""""" -ham,tessy..pls do me a favor. pls convey my birthday wishes to nimya..pls dnt forget it. today is her birthday shijas -spam,congrats! nokia 3650 video camera phone is your call 09066382422 calls cost 150ppm ave call 3mins vary from mobiles 16+ close 300603 post bcm4284 ldn wc1n3xx -spam,urgent! we are trying to contact u. todays draw shows that you have won a ??2000 prize guaranteed. call 09066358361 from land line. claim y87. valid 12hrs only -ham,ok. she'll be ok. i guess -ham,merry christmas to u too annie! -ham,"found it, enc <#> , where you at?" -ham,well done and ! luv ya all -ham,can i meet ?_ at 5.. as 4 where depends on where ?_ wan 2 in lor.. -ham,nothing lor... a bit bored too... then y dun u go home early 2 sleep today... -ham,huh so slow i tot u reach long ago liao... u 2 more days only i 4 more leh... -ham,lol ... no just was busy -ham,i cant talk to you now.i will call when i can.dont keep calling. -ham,tell them u have a headache and just want to use 1 hour of sick time. -ham,yup ok thanx... -ham,i was up all night too worrying about this appt. it's a shame we missed a girls night out with quizzes popcorn and you doing my hair. -ham,"sad story of a man - last week was my b'day. my wife did'nt wish me. my parents forgot n so did my kids . i went to work. even my colleagues did not wish. as i entered my cabin my pa said, '' happy b'day boss !!''. i felt special. she askd me 4 lunch. after lunch she invited me to her apartment. we went there. she said,'' do u mind if i go into the bedroom for a minute ? '' ''ok'', i sed in a sexy mood. she came out 5 minuts latr wid a cake...n my wife, my parents, my kidz, my friends n my colleagues. all screaming.. surprise !! and i was waiting on the sofa.. ... ..... ' naked...!" -ham,"i hope your alright babe? i worry that you might have felt a bit desparate when you learned the job was a fake ? i am here waiting when you come back, my love" -ham,i liked your new house -ham,"all done, all handed in. don't know if mega shop in asda counts as celebration but thats what i'm doing!" -ham,i really need 2 kiss u i miss u my baby from ur baby 4eva -ham,ok i am on the way to railway -ham,no my mum went 2 dentist. -ham,very hurting n meaningful lines ever: \i compromised everything for my love -ham,u having lunch alone? i now so bored... -ham,"aight, i'm chillin in a friend's room so text me when you're on the way" -ham,"not for possession, especially not first offense" -ham,* thought i didn't see you. -ham,they said ?_ dun haf passport or smth like dat.. or ?_ juz send to my email account.. -ham,"ok thats cool. its , just off either raglan rd or edward rd. behind the cricket ground. gimme ring when ur closeby see you tuesday." -ham,"wow ... i love you sooo much, you know ? i can barely stand it ! i wonder how your day goes and if you are well, my love ... i think of you and miss you" -ham,pls send me the correct name da. -ham,ok. how many should i buy. -spam,"congrats! 2 mobile 3g videophones r yours. call 09061744553 now! videochat wid ur mates, play java games, dload polyh music, noline rentl. bx420. ip4. 5we. 150pm" -spam,valentines day special! win over ??1000 in our quiz and take your partner on the trip of a lifetime! send go to 83600 now. 150p/msg rcvd. custcare:08718720201 -ham,shall i start from hear. -ham,"also north carolina and texas atm, you would just go to the gre site and pay for the test results to be sent." -ham,ya very nice. . .be ready on thursday -ham,"haha, just what i was thinkin" -ham,if you ask her or she say any please message. -ham,yes.mum lookin strong:) -ham,ok... -ham,just normal only here :) -ham,i have a date on sunday with will!! -spam,sexy sexy cum and text me im wet and warm and ready for some porn! u up for some fun? this msg is free recd msgs 150p inc vat 2 cancel text stop -ham,hello madam how are you ? -ham,so dont use hook up any how -ham,hi da:)how is the todays class? -ham,jus ans me lar. u'll noe later. -ham,he's really into skateboarding now despite the fact that he gets thrown off of it and winds up with bandages and shit all over his arms every five minutes -ham,as per your request 'melle melle (oru minnaminunginte nurungu vettam)' has been set as your callertune for all callers. press *9 to copy your friends callertune -ham,yup... from what i remb... i think should be can book... -ham,no da:)he is stupid da..always sending like this:)don believe any of those message.pandy is a mental:) -ham,huh y lei... -ham,i will reach office around <decimal> . & my mobile have problem. you cann't get my voice. so call you asa i'll free -ham,where r e meeting tmr? -ham,"look at amy ure a beautiful, intelligent woman and i like u a lot. i know u don??t like me like that so don??t worry." -ham,"thanks again for your reply today. when is ur visa coming in. and r u still buying the gucci and bags. my sister things are not easy, uncle john also has his own bills so i really need to think about how to make my own money. later sha." -ham,"hi jon, pete here, ive bin 2 spain recently & hav sum dinero left, bill said u or ur ??rents mayb interested in it, i hav 12,000pes, so around ??48, tb, james." -ham,shall i bring us a bottle of wine to keep us amused? only joking! i???ll bring one anyway -ham,yesterday its with me only . now am going home. -ham,"7 wonders in my world 7th you 6th ur style 5th ur smile 4th ur personality 3rd ur nature 2nd ur sms and 1st \ur lovely friendship\""... good morning dear""" -ham,"aight, sounds good. when do you want me to come down?" -ham,yup i thk cine is better cos no need 2 go down 2 plaza mah. -ham,i tot it's my group mate... lucky i havent reply... wat time do ?_ need to leave... -ham,fine i miss you very much. -spam,"lookatme!: thanks for your purchase of a video clip from lookatme!, you've been charged 35p. think you can do better? why not send a video in a mmsto 32323." -ham,oh... kay... on sat right? -ham,my friends use to call the same. -ham,cheers for the message zogtorius. i??ve been staring at my phone for an age deciding whether to text or not. -ham,"yalru lyfu astne chikku.. bt innu mundhe lyf ali halla ke bilo (marriage)program edhae, so lyf is nt yet ovr chikku..ali vargu lyfu meow meow:-d" -ham,"don't worry though, i understand how important it is that i be put in my place with a poorly thought out punishment in the face of the worst thing that has ever happened to me. brb gonna go kill myself" -ham,where is it. is there any opening for mca. -ham,you still at the game? -ham,"not that i know of, most people up here are still out of town" -ham,that's ok. i popped in to ask bout something and she said you'd been in. are you around tonght wen this girl comes? -ham,are you at work right now ? -ham,they released vday shirts and when u put it on it makes your bottom half naked instead of those white underwear. -spam,camera - you are awarded a sipix digital camera! call 09061221066 fromm landline. delivery within 28 days. -ham,k.:)you are the only girl waiting in reception ah? -ham,am on the uworld site. am i buying the qbank only or am i buying it with the self assessment also? -ham,horrible u eat macs eat until u forgot abt me already rite... u take so long 2 reply. i thk it's more toot than b4 so b prepared. now wat shall i eat? -ham,i tagged my friends that you seemed to count as your friends. -spam,hi - this is your mailbox messaging sms alert. you have 40 matches. please call back on 09056242159 to retrieve your messages and matches cc100p/min -ham,?? bot notes oredi... cos i juz rem i got... -ham,ok... -ham,you are a great role model. you are giving so much and i really wish each day for a miracle but god as a reason for everything and i must say i wish i knew why but i dont. i've looked up to you since i was young and i still do. have a great day. -ham,hello peach! my cake tasts lush! -ham,i know i'm lacking on most of this particular dramastorm's details but for the most part i'm not worried about that -ham,hey leave it. not a big deal:-) take care. -ham,"and that is the problem. you walk around in \julianaland\"" oblivious to what is going on around you. i say the same things constantly and they go in one ear and out the other while you go off doing whatever you want to do. it's not that you don't know why i'm upset--it's that you don't listen when i tell you what is going to upset me. then you want to be surprised when i'm mad.""" -ham,ok lor. -ham,just re read it and i have no shame but tell me how he takes it and if he runs i will blame u 4 ever!! not really 4 ever just a long time -ham,", im .. on the snowboarding trip. i was wondering if your planning to get everyone together befor we go..a meet and greet kind of affair? cheers," -ham,i guess it is useless calling u 4 something important. -ham,"aight that'll work, thanks" -ham,"hey , is * rite u put ??10 evey mnth is that all?" -ham,yeah like if it goes like it did with my friends imma flip my shit in like half an hour -ham,"it wont b until 2.15 as trying 2 sort house out, is that ok?" -ham,can help u swoop by picking u up from wherever ur other birds r meeting if u want. -ham,just sent it. so what type of food do you like? -ham,be sure to check your yahoo email. we sent photos yesterday -spam,splashmobile: choose from 1000s of gr8 tones each wk! this is a subscrition service with weekly tones costing 300p. u have one credit - kick back and enjoy -ham,"thank you for calling.forgot to say happy onam to you sirji.i am fine here and remembered you when i met an insurance person.meet you in qatar insha allah.rakhesh, ex tata aig who joined tissco,tayseer." -ham,"\cheers u tex mecause u werebored! yeah okden hunny r uin wk sat?sound??s likeyour havin gr8fun j! keep updat countinlots of loveme xxxxx.\""""" -ham,"hmph. go head, big baller." -ham,only once then after ill obey all yours. -ham,there the size of elephant tablets & u shove um up ur ass!! -ham,good afternoon starshine! how's my boytoy? does he crave me yet? ache to fuck me ? *sips cappuccino* i miss you babe *teasing kiss* -ham,and several to you sir. -ham,"yo my trip got postponed, you still stocked up?" -ham,why i come in between you people -ham,networking job is there. -ham,nooooooo i'm gonna be bored to death all day. cable and internet outage. -ham,also remember the beads don't come off. ever. -ham,today iz yellow rose day. if u love my frndship give me 1 misscall & send this to ur frndz & see how many miss calls u get. if u get 6missed u marry ur lover. -ham,"k, want us to come by now?" -ham,feel like trying kadeem again? :v -ham,at what time are you coming. -spam,bloomberg -message center +447797706009 why wait? apply for your future http://careers. bloomberg.com -spam,don't b floppy... b snappy & happy! only gay chat service with photo upload call 08718730666 (10p/min). 2 stop our texts call 08712460324 -ham,pls i wont belive god.not only jesus. -ham,still chance there. if you search hard you will get it..let have a try :) -ham,my uncles in atlanta. wish you guys a great semester. -ham,"love isn't a decision, it's a feeling. if we could decide who to love, then, life would be much simpler, but then less magical" -ham,"yeah, we can probably swing by once my roommate finishes up with his girl" -ham,what are your new years plans? -ham,lol. well quality aint bad at all so i aint complaining -ham,how i noe... she's in da car now... later then c lar... i'm wearing shorts... -ham,still i have not checked it da. . . -ham,"uh, heads up we don't have that much left" -spam,"accordingly. i repeat, just text the word ok on your mobile phone and send" -ham,imagine life without me... see.. how fast u are searching me?don't worry.. l'm always there to disturb u.. goodnoon..:) -ham,i've got it down to a tea. not sure which flavour -ham,"japanese proverb: if one can do it, u too can do it, if none can do it,u must do it indian version: if one can do it, let him do it.. if none can do it,leave it!! and finally kerala version: if one can do it, stop him doing it.. if none can do it, make a strike against it ..." -spam,free entry into our ??250 weekly comp just send the word win to 80086 now. 18 t&c www.txttowin.co.uk -ham,it is a good thing i'm now getting the connection to bw -ham,hhahhaahahah rofl wtf nig was leonardo in your room or something -ham,is ur paper in e morn or aft tmr? -ham,sounds like a plan! cardiff is still here and still cold! i'm sitting on the radiator! -ham,how come she can get it? should b quite diff to guess rite... -ham,would u fuckin believe it they didnt know i had thurs pre booked off so they re cancelled me again! that needs to b sacked -ham,"there'll be a minor shindig at my place later tonight, you interested?" -ham,draw va?i dont think so:) -ham,2 laptop... i noe infra but too slow lar... i wan fast one -ham,and by when you're done i mean now -ham,"customer place, i wil cal u sir." -spam,urgent! please call 09061743811 from landline. your abta complimentary 4* tenerife holiday or ??5000 cash await collection sae t&cs box 326 cw25wx 150ppm -ham,both :) i shoot big loads so get ready! -ham,hey gals...u all wanna meet 4 dinner at n??te? -ham,don't necessarily expect it to be done before you get back though because i'm just now headin out -ham,i sent lanre fakeye's eckankar details to the mail box -ham,understand. his loss is my gain :) so do you work? school? -ham,just chill for another 6hrs. if you could sleep the pain is not a surgical emergency so see how it unfolds. okay -ham,kinda. first one gets in at twelve! aah. speak tomo -ham,"yeah there's barely enough room for the two of us, x has too many fucking shoes. sorry man, see you later" -ham,i'm on my way home. went to change batt 4 my watch then go shop a bit lor. -spam,hello. we need some posh birds and chaps to user trial prods for champneys. can i put you down? i need your address and dob asap. ta r -ham,where are you?when wil you reach here? -ham,"sorry, went to bed early, nightnight" -ham,"yeah, probably but not sure. ilol let u know, but personally i wuldnt bother, then again if ur goin to then i mite as well!!" -ham,im done. just studyn in library -ham,"gal n boy walking in d park. gal-can i hold ur hand? boy-y? do u think i would run away? gal-no, jst wana c how it feels walking in heaven with an prince..gn:-)" -ham,k:)k:)good:)study well. -ham,small problem in auction:)punj now asking tiwary -ham,already one guy loving you:-. -ham,your opinion about me? 1. over 2. jada 3. kusruthi 4. lovable 5. silent 6. spl character 7. not matured 8. stylish 9. simple pls reply.. -ham,anything lar... -ham,cab is available.they pick up and drop at door steps. -ham,"great. i'm in church now, will holla when i get out" -ham,"me, i dont know again oh" -spam,freemsg: hey - i'm buffy. 25 and love to satisfy men. home alone feeling randy. reply 2 c my pix! qlynnbv help08700621170150p a msg send stop to stop txts -ham,yes. they replied my mail. i'm going to the management office later. plus will in to bank later also.or on wednesday. -ham,"sir, i am waiting for your call." -ham,this is ur face test ( 1 2 3 4 5 6 7 8 9 <#> ) select any number i will tell ur face astrology.... am waiting. quick reply... -spam,u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094594 -ham,i think just yourself ??_thanks and see you tomo -ham,hi:)cts employee how are you? -ham,my sort code is and acc no is . the bank is natwest. can you reply to confirm i've sent this to the right person! -ham,so how are you really. what are you up to. how's the masters. and so on. -ham,i will see in half an hour -ham,then u better go sleep.. dun disturb u liao.. u wake up then msg me lor.. -ham,yeah no probs - last night is obviously catching up with you... speak soon -ham,wewa is 130. iriver 255. all 128 mb. -ham,who were those people ? were you in a tour ? i thought you were doing that sofa thing you sent me ? your curious sugar -ham,"that way transport is less problematic than on sat night. by the way, if u want to ask n to join my bday, feel free. but need to know definite nos as booking on fri." -spam,xmas prize draws! we are trying to contact u. todays draw shows that you have won a ??2000 prize guaranteed. call 09058094565 from land line. valid 12hrs only -ham,"ta-daaaaa! i am home babe, are you still up ?" -ham,ok. very good. its all about making that money. -ham,pls she needs to dat slowly or she will vomit more. -ham,finish liao... u? -ham,"especially since i talk about boston all up in my personal statement, lol! i woulda changed that if i had realized it said nyc! it says boston now." -spam,you have won! as a valued vodafone customer our computer has picked you to win a ??150 prize. to collect is easy. just call 09061743386 -ham,please leave this topic..sorry for telling that.. -ham,have a safe trip to nigeria. wish you happiness and very soon company to share moments with -ham,lol! u drunkard! just doing my hair at d moment. yeah still up 4 tonight. wats the plan? -ham,i will lick up every drop :) are you ready to use your mouth as well? -ham,went to pay rent. so i had to go to the bank to authorise the payment. -ham,"no idea, i guess we'll work that out an hour after we're supposed to leave since as usual nobody has any interest in figuring shit out before the last second" -ham,why do you ask princess? -ham,k.i did't see you.:)k:)where are you now? -ham,"sorry, it's a lot of friend-of-a-friend stuff, i'm just now about to talk to the actual guy who wants to buy" -ham,i only haf msn. it's yijue@hotmail.com -ham,ugh fuck it i'm resubbing to eve -spam,ur awarded a city break and could win a ??200 summer shopping spree every wk. txt store to 88039 . skilgme. tscs087147403231winawk!age16 ??1.50perwksub -ham,no rushing. i'm not working. i'm in school so if we rush we go hungry. -ham,oh my god. i'm almost home -ham,"anyway i don't think i can secure anything up here, lemme know if you want me to drive down south and chill" -ham,sorry . i will be able to get to you. see you in the morning. -ham,alright tyler's got a minor crisis and has to be home sooner than he thought so be here asap -spam,hope you enjoyed your new content. text stop to 61610 to unsubscribe. help:08712400602450p provided by tones2you.co.uk -ham,anything lor... u decide... -ham,i love you. you set my soul on fire. it is not just a spark. but it is a flame. a big rawring flame. xoxo -ham,ya even those cookies have jelly on them -ham,i remain unconvinced that this isn't an elaborate test of my willpower -spam,please call amanda with regard to renewing or upgrading your current t-mobile handset free of charge. offer ends today. tel 0845 021 3680 subject to t's and c's -ham,ha ha cool cool chikku chikku:-):-db-) -ham,will it help if we propose going back again tomorrow -ham,nothin comes to my mind. ?? help me buy hanger lor. ur laptop not heavy? -ham,"awesome, text me when you're restocked" -ham,im just wondering what your doing right now? -ham,which is weird because i know i had it at one point -ham,k i'll be sure to get up before noon and see what's what -ham,oops sorry. just to check that you don't mind picking me up tomo at half eight from station. would that be ok? -ham,sorry i din lock my keypad. -ham,"hello, my love! how goes that day ? i wish your well and fine babe and hope that you find some job prospects. i miss you, boytoy ... *a teasing kiss*" -ham,enjoy urself tmr... -ham,"sweet, we may or may not go to 4u to meet carlos so gauge patty's interest in that" -ham,"good afternoon, my love! how goes that day ? i hope maybe you got some leads on a job. i think of you, boytoy and send you a passionate kiss from across the sea" -ham,howz pain.it will come down today.do as i said ystrday.ice and medicine. -ham,"hiya, had a good day? have you spoken to since the weekend?" -ham,"im sorry bout last nite it wasn??t ur fault it was me, spouse it was pmt or sumthin! u 4give me? i think u shldxxxx" -ham,"my friend, she's studying at warwick, we've planned to go shopping and to concert tmw, but it may be canceled, havn't seen for ages, yeah we should get together sometime!" -ham,"come around <decimal> pm vikky..i'm otside nw, il come by tht time" -ham,"haha i heard that, text me when you're around" -ham,you said to me before i went back to bed that you can't sleep for anything. -ham,hi baby im cruisin with my girl friend what r u up 2? give me a call in and hour at home if thats alright or fone me on this fone now love jenny xxx -ham,wait.i will come out.. <#> min:) -ham,anything lar then ?_ not going home 4 dinner? -spam,we tried to contact you re your response to our offer of a new nokia fone and camcorder hit reply or call 08000930705 for delivery -ham,never try alone to take the weight of a tear that comes out of ur heart and falls through ur eyes... always remember a stupid friend is here to share... bslvyl -ham,hi dear call me its urgnt. i don't know whats your problem. you don't want to work or if you have any other problem at least tell me. wating for your reply. -spam,"u can win ??100 of music gift vouchers every week starting now txt the word draw to 87066 tscs www.idew.com skillgame, 1winaweek, age16. 150ppermesssubscription" -ham,"sorry, i'll call later" -ham,hope you are having a great day. -ham,si si. i think ill go make those oreo truffles. -ham,"feb <#> is \i love u\"" day. send dis to all ur \""valued frnds\"" evn me. if 3 comes back u'll gt married d person u luv! if u ignore dis u will lose ur luv 4 evr""" -ham,when did you get to the library -ham,ah you see. you have to be in the lingo. i will let you know wot on earth it is when has finished making it! -ham,ok. c u then. -ham,u know we watchin at lido? -ham,me too! have a lovely night xxx -ham,s:)no competition for him. -ham,huh but i got lesson at 4 lei n i was thinkin of going to sch earlier n i tot of parkin at kent vale... -ham,slept? i thinkthis time ( <#> pm) is not dangerous -ham,our prashanthettan's mother passed away last night. pray for her and family. -ham,ok... but bag again.. -ham,"oh... haha... den we shld had went today too... gee, nvm la... kaiez, i dun mind goin jazz oso... scared hiphop open cant catch up..." -ham,pls go there today <#> . i dont want any excuses -ham,"it's wylie, you in tampa or sarasota?" -ham,i wont touch you with out your permission. -ham,just do what ever is easier for you -ham,my new years eve was ok. i went to a party with my boyfriend. who is this si then hey -ham,"i haven't forgotten you, i might have a couple bucks to send you tomorrow, k? i love ya too" -ham,networking technical support associate. -ham,i'm stuck in da middle of da row on da right hand side of da lt... -ham,no it was cancelled yeah baby! well that sounds important so i understand my darlin give me a ring later on this fone love kate x -ham,alright. i'm out--have a good night! -spam,"final chance! claim ur ??150 worth of discount vouchers today! text yes to 85023 now! savamob, member offers mobile! t cs savamob pobox84, m263uz. ??3.00 subs 16" -spam,"urgent! your mobile number *************** won a ??2000 bonus caller prize on 10/06/03! this is the 2nd attempt to reach you! call 09066368753 asap! box 97n7qp, 150ppm" -ham,i cant keep talking to people if am not sure i can pay them if they agree to price. so pls tell me what you want to really buy and how much you are willing to pay -ham,ok i wont call or disturb any one. i know all are avoiding me. i am a burden for all -ham,wylie update: my weed dealer carlos went to freedom and had a class with lunsford -ham,lol ... i knew that .... i saw him in the dollar store -ham,"it'll be tough, but i'll do what i have to" -ham,"coffee cake, i guess..." -ham,go chase after her and run her over while she's crossing the street -ham,theyre doing it to lots of places. only hospitals and medical places are safe. -ham,hi darlin how was work did u get into trouble? ijust talked to your mum all morning! i had a really good time last night im goin out soon but call me if u can -ham,great comedy..cant stop laughing da:) -ham,"aight, i'll hit you up when i get some cash" -ham,is fujitsu s series lifebook good? -ham,thanks a lot for your wishes on my birthday. thanks you for making my birthday truly memorable. -ham,"alright, i'll make sure the car is back tonight" -ham,"alright we're hooked up, where you guys at" -ham,yavnt tried yet and never played original either -ham,"hey... thk we juz go accordin to wat we discussed yest lor, except no kb on sun... cos there's nt much lesson to go if we attend kb on sat..." -ham,yeah whatever lol -ham,do u hav any frnd by name ashwini in ur college? -ham,you please give us connection today itself before <decimal> or refund the bill -ham,i'm also came to room. -ham,how do you plan to manage that -ham,what today-sunday..sunday is holiday..so no work.. -ham,ok give me 5 minutes i think i see her. btw you're my alibi. you were cutting my hair the whole time. -ham,can you let me know details of fri when u find out cos i'm not in tom or fri. mentionned chinese. thanks -spam,had your mobile 11mths ? update for free to oranges latest colour camera mobiles & unlimited weekend calls. call mobile upd8 on freefone 08000839402 or 2stoptx -ham,"nah i don't think he goes to usf, he lives around here though" -ham,i dont have any of your file in my bag..i was in work when you called me.i 'll tell you if i find anything in my room. -ham,yeah jay's sort of a fucking retard -ham,"it's ok, at least armand's still around" -ham,hello. damn this christmas thing. i think i have decided to keep this mp3 that doesnt work. -ham,watching tv lor... -ham,that means get the door -ham,hi baby ive just got back from work and i was wanting to see u allday! i hope i didnt piss u off on the phone today. if u are up give me a call xxx -ham,"haha just kidding, papa needs drugs" -ham,i also thk too fast... xy suggest one not me. u dun wan it's ok. going 2 rain leh where got gd. -ham,oops my phone died and i didn't even know. yeah i like it better. -ham,"nt only for driving even for many reasons she is called bbd..thts it chikku, then hw abt dvg cold..heard tht vinobanagar violence hw is the condition..and hw ru ? any problem?" -ham,dun need to use dial up juz open da browser n surf... -ham,joy's father is john. then john is the ____ of joy's father. if u ans ths you hav <#> iq. tis s ias question try to answer. -ham,hi. i'm sorry i missed your call. can you pls call back. -ham,the new deus ex game comin early next yr -ham,ok both our days. so what are you making for dinner tonite? am i invited? -ham,height of recycling: read twice- people spend time for earning money and the same money is spent for spending time!;-) good morning.. keep smiling:-) -ham,1apple/day=no doctor. 1tulsi leaf/day=no cancer. 1lemon/day=no fat. 1cup milk/day=no bone problms 3 litres watr/day=no diseases snd ths 2 whom u care..:-) -ham,no other valentines huh? the proof is on your fb page. ugh i'm so glad i really didn't watch your rupaul show you tool! -ham,ill be there on <#> ok. -ham,ok... the theory test? when are ?_ going to book? i think it's on 21 may. coz thought wanna go out with jiayin. but she isnt free -ham,no we sell it all so we'll have tons if coins. then sell our coins to someone thru paypal. voila! money back in life pockets:) -ham,....photoshop makes my computer shut down. -ham,there is os called ubandu which will run without installing in hard disk...you can use that os to copy the important files in system and give it to repair shop.. -ham,great! i shoot big loads so get ready! -ham,g.w.r -ham,no go. no openings for that room 'til after thanksgiving without an upcharge. -ham,"ill call u 2mrw at ninish, with my address that icky american freek wont stop callin me 2 bad jen k eh?" -ham,there are many company. tell me the language. -ham,"yup, leaving right now, be back soon" -ham,"\the world suffers a lot... not because of the violence of bad people. but because of the silence of good people!\""" -ham,sorry completely forgot * will pop em round this week if your still here? -ham,"good afternoon on this glorious anniversary day, my sweet j !! i hope this finds you happy and content, my prey. i think of you and send a teasing kiss from across the sea coaxing images of fond souveniers ... you cougar-pen" -ham,i'm at home. please call -spam,wow! the boys r back. take that 2007 uk tour. win vip tickets & pre-book with vip club. txt club to 81303. trackmarque ltd info@vipclub4u. -spam,"this is the 2nd time we have tried 2 contact u. u have won the 750 pound prize. 2 claim is easy, call 08718726970 now! only 10p per min. bt-national-rate" -ham,i'm not. she lip synced with shangela. -ham,where are the garage keys? they aren't on the bookshelf -ham,okay. i've seen it. so i should pick it on friday? -spam,win urgent! your mobile number has been awarded with a ??2000 prize guaranteed call 09061790121 from land line. claim 3030 valid 12hrs only 150ppm -ham,jesus christ bitch i'm trying to give you drugs answer your fucking phone -ham,mm not entirely sure i understood that text but hey. ho. which weekend? -ham,"thk shld b can... ya, i wana go 4 lessons... haha, can go for one whole stretch..." -ham,ok c ?_ then. -ham,:) -ham,as usual u can call me ard 10 smth. -spam,buy space invaders 4 a chance 2 win orig arcade game console. press 0 for games arcade (std wap charge) see o2.co.uk/games 4 terms + settings. no purchase -ham,where are you ? you said you would be here when i woke ... :-( -ham,where @ -ham,"oops i did have it, <#> ?" -ham,guess he wants alone time. we could just show up and watch when they do.. -ham,yes. please leave at <#> . so that at <#> we can leave -ham,"u need my presnts always bcz u cant mis love. \jeevithathile irulinae neekunna prakasamanu sneham\"" prakasam ennal prabha 'that mns prabha is'love' got it. dont mis me....""" -ham,i'll text you when i drop x off -ham,i thk 530 lor. but dunno can get tickets a not. wat u doing now? -ham,hi ....my engagement has been fixd on <#> th of next month. i know its really shocking bt....hmm njan vilikkam....t ws al of a sudn;-(. -ham,hey. for me there is no leave on friday. wait i will ask my superior and tell you.. -ham,dis is yijue. i jus saw ur mail. in case huiming havent sent u my num. dis is my num. -ham,or ill be a little closer like at the bus stop on the same street -spam,hi its lucy hubby at meetins all day fri & i will b alone at hotel u fancy cumin over? pls leave msg 2day 09099726395 lucy x calls??1/minmobsmorelkpobox177hp51fl -ham,"babe, i need your advice" -ham,hi dear we saw dear. we both are happy. where you my battery is low -ham,nope but i'm going home now then go pump petrol lor... like going 2 rain soon... -spam,u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09058094565 -spam,u have a secret admirer. reveal who thinks u r so special. call 09065174042. to opt out reply reveal stop. 1.50 per msg recd. cust care 07821230901 -ham,life spend with someone for a lifetime may be meaningless but a few moments spent with someone who really love you means more than life itself.. -ham,have a nice day my dear. -spam,gent! we are trying to contact you. last weekends draw shows that you won a ??1000 prize guaranteed. call 09064012160. claim code k52. valid 12hrs only. 150ppm -ham,if you are not coughing then its nothing -ham,you give us back my id proof and <#> rs. we wont allow you to work. we will come to your home within days -ham,that's y we haf to combine n c how lor... -ham,hope this text meets you smiling. if not then let this text give you a reason to smile. have a beautiful day. -ham,you intrepid duo you! have a great time and see you both soon. -ham,haha i think i did too -ham,"yo, you around? just got my car back" -ham,why are u up so early? -ham,"just looked it up and addie goes back monday, sucks to be her" -ham,after completed degree. there is no use in joining finance. -ham,o. well uv causes mutations. sunscreen is like essential thesedays -ham,yeah i'll try to scrounge something up -ham,"dont worry, 1 day very big lambu ji vl come..til then enjoy batchlor party:-)" -ham,i want to go to perumbavoor -ham,okey dokey swashbuckling stuff what oh. -ham,hi darlin i hope you had a nice night i wish i had come cant wait to see you love fran ps i want dirty anal sex and i want a 10 man gang bang -ham,"well am officially in a philosophical hole, so if u wanna call am at home ready to be saved!" -spam,"free-message: jamster!get the crazy frog sound now! for poly text mad1, for real text mad2 to 88888. 6 crazy sounds for just 3 gbp/week! 16+only! t&c's apply" -ham,no. on the way home. so if not for the long dry spell the season would have been over -ham,hi its kate can u give me a ring asap xxx -ham,yes. that will be fine. love you. be safe. -ham,i am at a party with alex nichols -ham,"he is impossible to argue with and he always treats me like his sub, like he never released me ... which he did and i will remind him of that if necessary" -ham,probably a couple hours tops -ham,let me know how to contact you. i've you settled in a room. lets know you are ok. -ham,congratulations ore mo owo re wa. enjoy it and i wish you many happy moments to and fro wherever you go -ham,no it will reach by 9 only. she telling she will be there. i dont know -ham,"nothing. i meant that once the money enters your account here, the bank will remove its flat rate. someone transfered <#> to my account and <#> dollars got removed. so the banks differ and charges also differ.be sure you trust the 9ja person you are sending account details to cos..." -ham,will ?_ b going to esplanade fr home? -ham,otherwise had part time job na-tuition.. -spam,"eerie nokia tones 4u, rply tone title to 8007 eg tone dracula to 8007 titles: ghost, addamsfa, munsters, exorcist, twilight www.getzed.co.uk pobox36504w45wq 150p" -ham,i might come to kerala for 2 days.so you can be prepared to take a leave once i finalise .dont plan any travel during my visit.need to finish urgent works. -spam,get your garden ready for summer with a free selection of summer bulbs and seeds worth ??33:50 only with the scotsman this saturday. to stop go2 notxt.co.uk -spam,you have an important customer service announcement. call freephone 0800 542 0825 now! -ham,are you ok. what happen to behave like this -ham,make sure alex knows his birthday is over in fifteen minutes as far as you're concerned -ham,spending new years with my brother and his family. lets plan to meet next week. are you ready to be spoiled? :) -ham,hey i will be late... i'm at amk. need to drink tea or coffee -ham,"my parents, my kidz, my friends n my colleagues. all screaming.. surprise !! and i was waiting on the sofa.. ... ..... ' naked...!" -spam,customer loyalty offer:the new nokia6650 mobile from only ??10 at txtauction! txt word: start to no: 81151 & get yours now! 4t&ctxt tc 150p/mtmsg -ham,jesus armand really is trying to tell everybody he can find -ham,"yeah, probably here for a while" -ham,"yes..but they said its it.," -ham,a little. meds say take once every 8 hours. it's only been 5 but pain is back. so i took another. hope i don't die -spam,"upgrdcentre orange customer, you may now claim your free camera phone upgrade for your loyalty. call now on 0207 153 9153. offer ends 26th july. t&c's apply. opt-out available" -ham,you'll never believe this but i have actually got off at taunton. wow -ham,did u fix the teeth?if not do it asap.ok take care. -ham,love has one law; make happy the person you love. in the same way friendship has one law; never make ur friend feel alone until you are alive.... gud night -ham,for fear of fainting with the of all that housework you just did? quick have a cuppa -ham,are you wet right now? -ham,you need to get up. now. -spam,free 1st week entry 2 textpod 4 a chance 2 win 40gb ipod or ??250 cash every wk. txt pod to 84128 ts&cs www.textpod.net custcare 08712405020. -spam,no 1 polyphonic tone 4 ur mob every week! just txt pt2 to 87575. 1st tone free ! so get txtin now and tell ur friends. 150p/tone. 16 reply hl 4info -ham,raviyog peripherals bhayandar east -ham,your opinion about me? 1. over 2. jada 3. kusruthi 4. lovable 5. silent 6. spl character 7. not matured 8. stylish 9. simple pls reply.. -ham,no i am not having not any movies in my laptop -spam,romcapspam everyone around should be responding well to your presence since you are so warm and outgoing. you are bringing in a real breath of sunshine. -ham,im late tellmiss im on my way -ham,thanks honey but still haven't heard anything i will leave it a bit longer so not 2 crowd him and will try later - great advice thanks hope cardiff is still there! -ham,jordan got voted out last nite! -ham,"sure thing big man. i have hockey elections at 6, shouldn???t go on longer than an hour though" -ham,i tot u reach liao. he said t-shirt. -spam,2/2 146tf150p -ham,still in customer place -spam,you have an important customer service announcement from premier. call freephone 0800 542 0578 now! -ham,"hey ! i want you ! i crave you ! i miss you ! i need you ! i love you, ahmad saeed al hallaq ..." -ham,might ax well im there. -ham,i dunno they close oredi not... ?? v ma fan... -ham,where are you call me. -ham,did you get any gift? this year i didnt get anything. so bad -ham,u r too much close to my heart. if u go away i will be shattered. plz stay with me. -ham,ok darlin i supose it was ok i just worry too much.i have to do some film stuff my mate and then have to babysit again! but you can call me there.xx -ham,are you not around or just still asleep? :v -spam,we currently have a message awaiting your collection. to collect your message just call 08718723815. -ham,sent me de webadres for geting salary slip -ham,i'm always on yahoo messenger now. just send the message to me and i.ll get it you may have to send it in the mobile mode sha but i.ll get it. and will reply. -ham,"a bit of ur smile is my hppnss, a drop of ur tear is my sorrow, a part of ur heart is my life, a heart like mine wil care for u, forevr as my goodfriend" -spam,todays vodafone numbers ending with 4882 are selected to a receive a ??350 award. if your number matches call 09064019014 to receive your ??350 award. -ham,height of confidence: all the aeronautics professors wer calld & they wer askd 2 sit in an aeroplane. aftr they sat they wer told dat the plane ws made by their students. dey all hurried out of d plane.. bt only 1 didnt move... he said:\if it is made by my students -ham,he didn't see his shadow. we get an early spring yay -ham,"oh yes, why is it like torture watching england?" -spam,hi. customer loyalty offer:the new nokia6650 mobile from only ??10 at txtauction! txt word: start to no: 81151 & get yours now! 4t&ctxt tc 150p/mtmsg -ham,we're on the opposite side from where we dropped you off -ham,ranjith cal drpd deeraj and deepak 5min hold -spam,"free message activate your 500 free text messages by replying to this message with the word free for terms & conditions, visit www.07781482378.com" -ham,"hi. hope ur day * good! back from walk, table booked for half eight. let me know when ur coming over." -spam,as a registered optin subscriber ur draw 4 ??100 gift voucher will be entered on receipt of a correct ans to 80062 whats no1 in the bbc charts -ham,"single line with a big meaning::::: \miss anything 4 ur \""best life\"" but" -ham,i'm watching lotr w my sis dis aft. so u wan 2 meet me 4 dinner at nite a not? -ham,;-) ok. i feel like john lennon. -ham,well welp is sort of a semiobscure internet thing -ham,"yeah i think my usual guy's still passed out from last night, if you get ahold of anybody let me know and i'll throw down" -ham,no i'm in the same boat. still here at my moms. check me out on yo. i'm half naked. -spam,how about getting in touch with folks waiting for company? just txt back your name and age to opt in! enjoy the community (150p/sms) -ham,don know..wait i will check it. -ham,oh ok.. wat's ur email? -ham,"\gimme a few\"" was <#> minutes ago""" -ham,"that??s alrite girl, u know gail is neva wrong!!take care sweet and don??t worry.c u l8tr hun!love yaxxx" -ham,think i could stop by in like an hour or so? my roommate's looking to stock up for a trip -ham,oh ok i didnt know what you meant. yep i am baby jontin -ham,no that just means you have a fat head -ham,r u still working now? -ham,can you please send me my aunty's number -ham,"sorry, in meeting i'll call you later" -spam,"urgent! your mobile was awarded a ??1,500 bonus caller prize on 27/6/03. our final attempt 2 contact u! call 08714714011" -ham,yar lor actually we quite fast... cos da ge slow wat... haha... -ham,"awesome question with a cute answer: someone asked a boy \how is ur life?\"" . . he smiled & answered: . . \""she is fine!\"" gudnite""" -ham,glad to see your reply. -ham,"??_ we r stayin here an extra week, back next wed. how did we do in the rugby this weekend? hi to and and , c u soon \" -ham,"er yeah, i will b there at 15:26, sorry! just tell me which pub/cafe to sit in and come wen u can" -ham,ok k..sry i knw 2 siva..tats y i askd.. -ham,no:-)i got rumour that you going to buy apartment in chennai:-) -ham,"go until jurong point, crazy.. available only in bugis n great world la e buffet... cine there got amore wat..." -ham,haven't heard anything and he's not answering my texts so i'm guessing he flaked. that said the jb is fantastic -spam,"for ur chance to win a ??250 wkly shopping spree txt: shop to 80878. t's&c's www.txt-2-shop.com custcare 08715705022, 1x150p/wk" -ham,u horrible gal... u knew dat i was going out wif him yest n u still come n ask me... -ham,"life is more strict than teacher... bcoz teacher teaches lesson & then conducts exam, but life first conducts exam & then teaches lessons. happy morning. . ." -ham,"\hello-/@drivby-:0quit edrunk sorry iff pthis makes no senrd-dnot no how ^ dancce 2 drum n basq!ihave fun 2nhite x ros xxxxxxx\""""" -ham,tomorrow i am not going to theatre. . . so i can come wherever u call me. . . tell me where and when to come tomorrow -ham,good night. am going to sleep. -ham,"mmmmm ... it was sooooo good to wake to your words this morning, my love!! mmmm fuck ... i love you too, my lion ... *devouring kiss from across the sea*" -ham,my drive can only be read. i need to write -ham,then ur sis how? -ham,he remains a bro amongst bros -ham,"i don,t think so. you don't need to be going out that late on a school night. especially when the one class you have is the one you missed last wednesday and probably failed a test in on friday" -spam,private! your 2003 account statement for shows 800 un-redeemed s. i. m. points. call 08715203652 identifier code: 42810 expires 29/10/0 -ham,good morning pookie pie! lol hope i didn't wake u up -ham,delhi and chennai still silent. -ham,i think its far more than that but find out. check google maps for a place from your dorm. -ham,"hey babe, sorry i didn't get sooner. gary can come and fix it cause he thinks he knows what it is but he doesn't go as far a ptbo and he says it will cost <#> bucks. i don't know if it might be cheaper to find someone there ? we don't have any second hand machines at all right now, let me know what you want to do babe" -ham,but we havent got da topic yet rite? -ham,and how's your husband. -ham,wow didn't think it was that common. i take it all back ur not a freak! unless u chop it off:-) -ham,did you try making another butt. -ham,have a good evening! ttyl -ham,"hey babe, how's it going ? did you ever figure out where your going for new years ?" -ham,k.k:)when are you going? -ham,thanx 4 sending me home... -ham,so why didnt you holla? -spam,want explicit sex in 30 secs? ring 02073162414 now! costs 20p/min -ham,"sounds gd... haha... can... wah, u yan jiu so fast liao..." -ham,have you emigrated or something? ok maybe 5.30 was a bit hopeful... -ham,no current and food here. i am alone also -ham,?? log off 4 wat. it's sdryb8i -ham,"well the general price is <#> /oz, let me know if/when/how much you want" -ham,actually i decided i was too hungry so i haven't left yet :v -ham,wif my family booking tour package. -ham,as per your request 'maangalyam (alaipayuthe)' has been set as your callertune for all callers. press *9 to copy your friends callertune -ham,tell rob to mack his gf in the theater -ham,moji i love you more than words. have a rich day -ham,"she said,'' do u mind if i go into the bedroom for a minute ? '' ''ok'', i sed in a sexy mood. she came out 5 minuts latr wid a cake...n my wife," -ham,no * am working on the ringing u thing but have whole houseful of screaming brats so * am pulling my hair out! loving u -ham,"he has lots of used ones babe, but the model doesn't help. youi have to bring it over and he'll match it up" -spam,boltblue tones for 150p reply poly# or mono# eg poly3 1. cha cha slide 2. yeah 3. slow jamz 6. toxic 8. come with me or stop 4 more tones txt more -ham,"are you being good, baby? :)" -ham,"\what are youdoing later? sar xxx\""""" -ham,ok. every night take a warm bath drink a cup of milk and you'll see a work of magic. you still need to loose weight. just so that you know -ham,taka lor. wat time u wan 2 come n look 4 us? -spam,"free nokia or motorola with upto 12mths 1/2price linerental, 500 free x-net mins&100txt/mth free b'tooth*. call mobileupd8 on 08001950382 or call 2optout/d3wv" -ham,so how many days since then? -ham,"hi, wlcome back, did wonder if you got eaten by a lion or something, nothing much" -ham,"i'm in a meeting, call me later at" -ham,i want to tel u one thing u should not mistake me k this is the message that you sent:) -ham,yup bathe liao... -ham,anything lor. juz both of us lor. -ham,"come to mu, we're sorting out our narcotics situation" -ham,also track down any lighters you can find -ham,u coming back 4 dinner rite? dad ask me so i re confirm wif u... -spam,"sunshine hols. to claim ur med holiday send a stamped self address envelope to drinks on us uk, po box 113, bray, wicklow, eire. quiz starts saturday! unsub stop" -ham,"sorry vikky, i'm watching olave mandara movie kano in trishul theatre wit my frnds.." -ham,eatin my lunch... -ham,hi. hope you had a good day. have a better night. -ham,havent stuck at orchard in my dad's car. going 4 dinner now. u leh? so r they free tonight? -spam,"urgent!! your 4* costa del sol holiday or ??5000 await collection. call 09050090044 now toclaim. sae, tc s, pobox334, stockport, sk38xh, cost??1.50/pm, max10mins" -spam,message important information for o2 user. today is your lucky day! 2 find out why log onto http://www.urawinner.com there is a fantastic surprise awaiting you -ham,"night has ended for another day, morning has come in a special way. may you smile like the sunny rays and leaves your worries at the blue blue bay. gud mrng" -spam,private! your 2003 account statement for shows 800 un-redeemed s. i. m. points. call 08718738002 identifier code: 48922 expires 21/11/04 -ham,many more happy returns of the day. i wish you happy birthday. -spam,"welcome to select, an o2 service with added benefits. you can now call our specially trained advisors free from your mobile by dialling 402." -ham,so no messages. had food? -ham,i borrow ur bag ok. -ham,hey i've booked the 2 lessons on sun liao... -spam,"u can win ??100 of music gift vouchers every week starting now txt the word draw to 87066 tscs www.ldew.com skillgame,1winaweek, age16.150ppermesssubscription" -ham,how was txting and driving -ham,ok then i come n pick u at engin? -ham,i'm wif him now buying tix lar... -ham,did you catch the bus ? are you frying an egg ? did you make a tea? are you eating your mom's left over dinner ? do you feel my love ? -ham,mm you ask him to come its enough :-) -ham,"st andre, virgil's cream" -ham,except theres a chick with huge boobs. -ham,nah dub but je still buff -ham,hi did u decide wot 2 get 4 his bday if not ill prob jus get him a voucher frm virgin or sumfing -ham,"not yet chikku..k, then wat abt tht guy did he stopped irritating or msging to u.." -ham,lol its ok i didn't remember til last nite -ham,"spoke with uncle john today. he strongly feels that you need to sacrifice to keep me here. he's going to call you. when he does, i beg you to just listen. dont make any promises or make it clear things are not easy. and i need you to please let us work things out. as long as i keep expecting help, my creativity will be stifled so pls just keep him happy, no promises on your part." -ham,"we have sent jd for customer service cum accounts executive to ur mail id, for details contact us" -ham,hi mom we might be back later than <#> -spam,free camera phones with linerental from 4.49/month with 750 cross ntwk mins. 1/2 price txt bundle deals also avble. call 08001950382 or call2optout/j mf -ham,i am in bus on the way to calicut -ham,pls call me da. what happen. -spam,someone u know has asked our dating service 2 contact you! cant guess who? call 09058091854 now all will be revealed. po box385 m6 6wu -ham,i'm done oredi... -spam,urgent! we are trying to contact u todays draw shows that you have won a ??800 prize guaranteed. call 09050000460 from land line. claim j89. po box245c2150pm -ham,k:)i will give my kvb acc details:) -ham,i keep ten rs in my shelf:) buy two egg. -ham,yup it's at paragon... i havent decided whether 2 cut yet... hee... -ham,i liked the new mobile -ham,in fact when do you leave? i think addie goes back to school tues or wed -ham,happy new year my dear brother. i really do miss you. just got your number and decided to send you this text wishing you only happiness. abiola -ham,in meeting da. i will call you -ham,"to the wonderful okors, have a great month. we cherish you guys and wish you well each day. mojibiola" -ham,i will come tomorrow di -ham,you're gonna have to be way more specific than that -ham,oh ho. is this the first time u use these type of words -ham,what not under standing. -ham,s.i think he is waste for rr.. -ham,mmmmmmm *snuggles into you* ...*deep contented sigh* ... *whispers* ... i fucking love you so much i can barely stand it ... -ham,gam gone after outstanding innings. -ham,don no da:)whats you plan? -ham,whats the staff name who is taking class for us? -ham,"sorry, i'll call later" -ham,i place all ur points on e cultures module already. -ham,on a tuesday night r u 4 real -ham,"sorry, i'll call later in meeting." -ham,1's finish meeting call me. -spam,"your chance to be on a reality fantasy show call now = 08707509020 just 20p per min ntt ltd, po box 1327 croydon cr9 5wb 0870 is a national = rate call." -ham,r u here yet? i'm wearing blue shirt n black pants. -spam,hi 07734396839 ibh customer loyalty offer: the new nokia6600 mobile from only ??10 at txtauction!txt word:start to no:81151 & get yours now!4t& -ham,did he just say somebody is named tampa -ham,"ya, told..she was asking wats matter?" -ham,"well, i have to leave for my class babe ... you never came back to me ... :-( ... hope you have a nice sleep, my love" -ham,\hey hey werethe monkeespeople say we monkeyaround! howdy gorgeous -ham,ok i will tell her to stay out. yeah its been tough but we are optimistic things will improve this month. -ham,if he started searching he will get job in few days.he have great potential and talent. -ham,"aight, i'll ask a few of my roommates" -spam,dear dave this is your final notice to collect your 4* tenerife holiday or #5000 cash award! call 09061743806 from landline. tcs sae box326 cw25wx 150ppm -ham,"looks like you found something to do other than smoke, great job!" -ham,reckon need to be in town by eightish to walk from * carpark. -spam,"congrats! 1 year special cinema pass for 2 is yours. call 09061209465 now! c suprman v, matrix3, starwars3, etc all 4 free! bx420-ip4-5we. 150pm. dont miss out!" -ham,"wen ur lovable bcums angry wid u, dnt take it seriously.. coz being angry is d most childish n true way of showing deep affection, care n luv!.. kettoda manda... have nice day da." -ham,have a good evening! ttyl -ham,how are you doing? hope you've settled in for the new school year. just wishin you a gr8 day -ham,happy birthday... may all ur dreams come true... -ham,"wishing you and your family merry \x\"" mas and happy new year in advance..""" -ham,yes we were outside for like 2 hours. and i called my whole family to wake them up cause it started at 1 am -spam,ur cash-balance is currently 500 pounds - to maximize ur cash-in now send go to 86688 only 150p/msg. cc 08718720201 hg/suite342/2lands row/w1j6hl -spam,great new offer - double mins & double txt on best orange tariffs and get latest camera phones 4 free! call mobileupd8 free on 08000839402 now! or 2stoptxt t&cs -spam,"your chance to be on a reality fantasy show call now = 08707509020 just 20p per min ntt ltd, po box 1327 croydon cr9 5wb 0870 is a national = rate call" -ham,ay wana meet on sat??_ wkg on sat? -ham,"haha awesome, be there in a minute" -ham,i've sent ?_ my part.. -ham,"two fundamentals of cool life: \walk whoever is the king\""!... gud nyt""" -ham,"no, i *didn't* mean to post it. i wrote it, and like so many other times i've ritten stuff to you, i let it sit there. it was what i was feeling at the time. i was angry. before i left, i hit send, then stop. it wasn't there. i checked on my phone when i got to my car. it wasn't there. you said you didn't sleep, you were bored. so why wouldn't that be the time to clean, fold laundry, etc.? at least make the bed?" -ham,carlos says we can pick up from him later so yeah we're set -ham,get me out of this dump heap. my mom decided to come to lowes. boring. -ham,do u konw waht is rael friendship im gving yuo an exmpel: jsut ese tihs msg.. evrey splleing of tihs msg is wrnog.. bt sitll yuo can raed it wihtuot ayn mitsake.. goodnight & have a nice sleep..sweet dreams.. -ham,i was wondering if it would be okay for you to call uncle john and let him know that things are not the same in nigeria as they r here. that <#> dollars is 2years sent and that you know its a strain but i plan to pay back every dime he gives. every dime so for me to expect anything from you is not practical. something like that. -ham,"hi the way i was with u 2day, is the normal way&this is the real me. ur unique&i hope i know u 4 the rest of mylife. hope u find wot was lost." -spam,"you've won tkts to the euro2004 cup final or ??800 cash, to collect call 09058099801 b4190604, pobox 7876150ppm" -ham,"sorry, i'll call later in meeting any thing related to trade please call arul. <#>" -ham,yes i think so. i am in office but my lap is in room i think thats on for the last few days. i didnt shut that down -ham,or u ask they all if next sat can a not. if all of them can make it then i'm ok lor. -ham,"\hey das cool... iknow all 2 wellda peril of studentfinancial crisis!spk 2 u l8r.\""""" -ham,the world's most happiest frnds never have the same characters... dey just have the best understanding of their differences... -ham,yup... -ham,oh just getting even with u.... u? -ham,so li hai... me bored now da lecturer repeating last weeks stuff waste time... -ham,did you stitch his trouser -spam,marvel mobile play the official ultimate spider-man game (??4.50) on ur mobile right now. text spider to 83338 for the game & we ll send u a free 8ball wallpaper -ham,s but not able to sleep. -ham,"god asked, \what is forgiveness?\"" a little child gave lovely reply" -spam,88066 from 88066 lost 3pound help -ham,just hopeing that wasn???t too pissed up to remember and has gone off to his sisters or something! -ham,"omw back to tampa from west palm, you hear what happened?" -ham,hello! good week? fancy a drink or something later? -ham,"waqt se pehle or naseeb se zyada kisi ko kuch nahi milta,zindgi wo nahi he jo hum sochte hai zindgi wo hai jo ham jeetey hai.........." -ham,then ?_ wait 4 me at bus stop aft ur lect lar. if i dun c ?_ then i go get my car then come back n pick ?_. -ham,dear umma she called me now :-) -ham,got it! it looks scrumptious... daddy wants to eat you all night long! -spam,"had your contract mobile 11 mnths? latest motorola, nokia etc. all free! double mins & text on orange tariffs. text yes for callback, no to remove from records" -ham,i dnt wnt to tlk wid u -ham,u wan 2 haf lunch i'm in da canteen now. -ham,hi chachi tried calling u now unable to reach u .. pl give me a missed cal once u c tiz msg kanagu -spam,do you want a new video phone750 anytime any network mins 150 text for only five pounds per week call 08000776320 now or reply for delivery tomorrow -ham,"k, wen ur free come to my home and also tel vikky i hav sent mail to him also.. better come evening il be free today aftr 6pm..:-)" -spam,free entry into our ??250 weekly comp just send the word enter to 84128 now. 18 t&c www.textcomp.com cust care 08712405020. -ham,i didnt get anything da -ham,does not operate after <#> or what -ham,i'm in town now so i'll jus take mrt down later. -spam,you have an important customer service announcement. call freephone 0800 542 0825 now! -ham,po de :-):):-):-):-). no need job aha. -ham,i want to lick your pussy now... -ham,lmao where's your fish memory when i need it? -ham,"* was a nice day and, impressively, i was sensible, went home early and now feel fine. or am i just boring?! when's yours, i can't remember." -ham,why don't you wait 'til at least wednesday to see if you get your . -ham,kent vale lor... ?? wait 4 me there ar? -ham,i've told him that i've returned it. that should i re order it. -ham,k i'll call you when i'm close -ham,you are a big chic. common. declare -ham,you call times job today ok umma and ask them to speed up -ham,we're finally ready fyi -ham,no da. i am happy that we sit together na -ham,jus came back fr lunch wif my sis only. u leh? -spam,i don't know u and u don't know me. send chat to 86688 now and let's find each other! only 150p/msg rcvd. hg/suite342/2lands/row/w1j6hl ldn. 18 years or over. -ham,"pls send me a comprehensive mail about who i'm paying, when and how much." -ham,i dont have i shall buy one dear -spam,camera - you are awarded a sipix digital camera! call 09061221066 fromm landline. delivery within 28 days -ham,remind me how to get there and i shall do so -ham,gr8. so how do you handle the victoria island traffic. plus when's the album due -ham,"ok., is any problem to u frm him? wats matter?" -ham,"i'm home, my love ... if your still awake ... *loving kiss*" -ham,yup... hey then one day on fri we can ask miwa and jiayin take leave go karaoke -ham,anything lor if they all go then i go lor... -ham,well i will watch shrek in 3d!!b) -ham,how are you. just checking up on you -ham,dai what this da.. can i send my resume to this id. -ham,do you like italian food? -ham,is xy in ur car when u picking me up? -ham,it shall be fine. i have avalarr now. will hollalater -ham,"cool, want me to go to kappa or should i meet you outside mu" -ham,"'wnevr i wana fal in luv vth my books, my bed fals in luv vth me..!'' . yen madodu, nav pretsorginta, nammanna pretsovru important alwa....!!:) gud eveb-)." -ham,?? mean it's confirmed... i tot they juz say oni... ok then... -ham,oh that was a forwarded message. i thought you send that to me -ham,tomarrow final hearing on my laptop case so i cant. -ham,dude got a haircut. now its breezy up there -ham,yes... i trust u to buy new stuff asap so i can try it out -spam,guess what! somebody you know secretly fancies you! wanna find out who it is? give us a call on 09065394973 from landline datebox1282essexcm61xn 150p/min 18 -ham,none of that's happening til you get here though -ham,i dont want to hear philosophy. just say what happen -ham,i don't run away frm u... i walk slowly & it kills me that u don't care enough to stop me... -ham,that is wondarfull song -spam,"spjanuary male sale! hot gay chat now cheaper, call 08709222922. national rate from 1.5p/min cheap to 7.8p/min peak! to stop texts call 08712460324 (10p/min)" -ham,they released another italian one today and it has a cosign option -ham,raji..pls do me a favour. pls convey my birthday wishes to nimya. pls. today is her birthday. -ham,"sorry, i'll call later" -ham,"cool, we shall go and see, have to go to tip anyway. are you at home, got something to drop in later? so lets go to town tonight! maybe mum can take us in." -spam,you have been specially selected to receive a 2000 pound award! call 08712402050 before the lines close. cost 10ppm. 16+. t&cs apply. ag promo -ham,"the word \checkmate\"" in chess comes from the persian phrase \""shah maat\"" which means; \""the king is dead..\"" goodmorning.. have a good day..:)""" -ham,die... now i have e toot fringe again... -ham,"haha get used to driving to usf man, i know a lot of stoners" -ham,yup... i havent been there before... you want to go for the yoga? i can call up to book -ham,and smile for me right now as you go and the world will wonder what you are smiling about and think your crazy and keep away from you ... *grins* -ham,"aight, we'll head out in a few" -ham,i couldn't say no as he is a dying man and i feel sad for him so i will go and i just wanted you to know i would probably be gone late into your night -ham,mathews or tait or edwards or anderson -ham,no plm i will come da. on the way. -ham,"this is one of the days you have a billion classes, right?" -ham,i.ll post her out l8r. in class -spam,* free* polyphonic ringtone text super to 87131 to get your free poly tone of the week now! 16 sn pobox202 nr31 7zs subscription 450pw -ham,ew are you one of them? -ham,u sleeping now.. or you going to take? haha.. i got spys wat.. me online checking n replying mails lor.. -ham,lol! oops sorry! have fun. -ham,mom wants to know where you at -ham,"under the sea, there lays a rock. in the rock, there is an envelope. in the envelope, there is a paper. on the paper, there are 3 words... '" -ham,"well the weather in cali's great. but its complexities are great. you need a car to move freely, its taxes are outrageous. but all in all its a great place. the sad part is i missing home." -ham,how r ?_ going to send it to me? -ham,send me yetty's number pls. -ham,k then 2marrow are you coming to class. -ham,but if she.s drinkin i'm ok. -ham,yup he msg me: is tat yijue? then i tot it's my group mate cos we meeting today mah... i'm askin if ?_ leaving earlier or wat mah cos mayb ?_ haf to walk v far... -ham,me too baby! i promise to treat you well! i bet you will take good care of me... -ham,do ?_ noe if ben is going? -ham,then ?_ come n pick me at 530 ar? -ham,cps is causing the outages to conserve energy. -ham,nice.nice.how is it working? -spam,"bears pic nick, and tom, pete and ... dick. in fact, all types try gay chat with photo upload call 08718730666 (10p/min). 2 stop texts call 08712460324" -ham,"fran i decided 2 go n e way im completely broke an knackered i got up bout 3 c u 2mrw love janx p.s this is my dads fone, -no credit" -ham,en chikku nange bakra msg kalstiya..then had tea/coffee? -ham,i'm home. doc gave me pain meds says everything is fine. -ham,<decimal> m but its not a common car here so its better to buy from china or asia. or if i find it less expensive. i.ll holla -ham,too late. i said i have the website. i didn't i have or dont have the slippers -ham,alrite jod hows the revision goin? keris bin doin a smidgin. n e way u wanna cum over after college?xx -ham,"well, i meant as opposed to my drunken night of before" -spam,sex up ur mobile with a free sexy pic of jordan! just text babe to 88600. then every wk get a sexy celeb! pocketbabe.co.uk 4 more pics. 16 ??3/wk 087016248 -ham,"hey there! glad u r better now. i hear u treated urself to a digi cam, is it good? we r off at 9pm. have a fab new year, c u in coupla wks!" -ham,oh great. i.ll disturb him more so that we can talk. -ham,"ugh y can't u just apologize, admit u were wrong and ask me to take u back?" -ham,no problem. how are you doing? -ham,shb b ok lor... thanx... -ham,k...k...when will you give treat? -spam,+123 congratulations - in this week's competition draw u have won the ??1450 prize to claim just call 09050002311 b4280703. t&cs/stop sms 08718727868. over 18 only 150ppm -ham,no. thank you. you've been wonderful -ham,on ma way to school. can you pls send me ashley's number -ham,"i know you are thinkin malaria. but relax, children cant handle malaria. she would have been worse and its gastroenteritis. if she takes enough to replace her loss her temp will reduce. and if you give her malaria meds now she will just vomit. its a self limiting illness she has which means in a few days it will completely stop" -ham,prepare to be pounded every night... -ham,dont you have message offer -ham,you are right though. i can't give you the space you want and need. this is really starting to become an issue. i was going to suggest setting a definite move out--if i'm still there-- after greece. but maybe you are ready and should do it now. -ham,k. i will sent it again -ham,ok lor... or u wan me go look 4 u? -ham,"and very importantly, all we discuss is between u and i only." -ham,"k, if u bored up just come to my home.." -ham,aiyah e rain like quite big leh. if drizzling i can at least run home. -ham,ok... i din get ur msg... -ham,i have lost 10 kilos as of today! -ham,nice talking to you! please dont forget my pix :) i want to see all of you... -ham,"i guess that's why you re worried. you must know that there's a way the body repairs itself. and i'm quite sure you shouldn't worry. we'll take it slow. first the tests, they will guide when your ovulation is then just relax. nothing you've said is a reason to worry but i.ll keep on followin you up." -ham,omg joanna is freaking me out. she's looked thru all my friends to find photos of me. and then she's asking about stuff on my myspace which i haven't even logged on in like a year. :/ -ham,are you angry with me. what happen dear -ham,sometimes heart remembrs someone very much... forgets someone soon... bcoz heart will not like everyone. but liked ones will be remembered everytime... bslvyl -ham,its on in engalnd! but telly has decided it won't let me watch it and mia and elliot were kissing! damn it! -ham,id onluy matters when getting on from offcampus -ham,have * good weekend. -ham,ok i'm coming home now. -ham,uhhhhrmm isnt having tb test bad when youre sick -spam,customer service annoncement. you have a new years delivery waiting for you. please call 07046744435 now to arrange delivery -ham,really do hope the work doesnt get stressful. have a gr8 day. -spam,valentines day special! win over ??1000 in our quiz and take your partner on the trip of a lifetime! send go to 83600 now. 150p/msg rcvd. custcare:08718720201. -ham,i realise you are a busy guy and i'm trying not to be a bother. i have to get some exams outta the way and then try the cars. do have a gr8 day -ham,please attend the phone:) -ham,"okey dokey, i???ll be over in a bit just sorting some stuff out." -ham,okie... -ham,"aight no rush, i'll ask jay" -ham,my sister cleared two round in birla soft yesterday. -ham,"no! but we found a diff farm shop to buy some cheese. on way back now, can i call in?" -spam,"eerie nokia tones 4u, rply tone title to 8007 eg tone dracula to 8007 titles: ghost, addamsfa, munsters, exorcist, twilight www.getzed.co.uk pobox36504w45wq 150p" -ham,i'm in school now n i'll be in da lab doing some stuff give me a call when ?_ r done. -ham,ok pa. nothing problem:-) -ham,yup ok... -ham,wait 2 min..stand at bus stop -ham,morning only i can ok. -ham,think you sent the text to the home phone. that cant display texts. if you still want to send it his number is -ham,u will switch your fone on dammit!! -ham,i meant as an apology from me for texting you to get me drugs at <#> at night -ham,"best line said in love: . \i will wait till the day i can forget u or the day u realize that u cannot forget me.\""... gn""" -ham,you unbelievable faglord -ham,lmao ok i wont be needing u to do my hair anymore. -spam,"cmon babe, make me horny, *turn* me on! txt me your fantasy now babe -) im hot, sticky and need you now. all replies cost ??1.50. 2 cancel send stop" -spam,asked 3mobile if 0870 chatlines inclu in free mins. india cust servs sed yes. l8er got mega bill. 3 dont giv a shit. bailiff due in days. i o ??250 3 want ??800 -ham,aiyo cos i sms ?_ then ?_ neva reply so i wait 4 ?_ to reply lar. i tot ?_ havent finish ur lab wat. -ham,i can??t wait for cornwall. hope tonight isn??t too bad as well but it??s rock night shite. anyway i??m going for a kip now have a good night. speak to you soon. -ham,"i wake up long ago already... dunno, what other thing?" -ham,i dont. can you send it to me. plus how's mode. -ham,midnight at the earliest -ham,"alright, i'll head out in a few minutes, text me where to meet you" -ham,she.s find. i sent you an offline message to know how anjola's now. -ham,i think i am disturbing her da -ham,for my family happiness.. -ham,thank u! -ham,"aight, text me tonight and we'll see what's up" -ham,u really pig leh sleep so much. my dad wake me up at 10 smth 2 eat lunch today. -ham,"when you just put in the + sign, choose my number and the pin will show. right?" -spam,please call 08712404000 immediately as there is an urgent message waiting for you. -ham,yo sorry was in the shower sup -ham,"haha yeah, 2 oz is kind of a shitload" -ham,"feb <#> is \i love u\"" day. send dis to all ur \""valued frnds\"" evn me. if 3 comes back u'll gt married d person u luv! if u ignore dis u will lose ur luv 4 evr""" -ham,i don't quite know what to do. i still can't get hold of anyone. i cud pick you up bout 7.30pm and we can see if they're in the pub? -ham,were trying to find a chinese food place around here -ham,i'm e person who's doing e sms survey... -spam,83039 62735=??450 uk break accommodationvouchers terms & conditions apply. 2 claim you mustprovide your claim number which is 15541 -ham,probably gonna swing by in a wee bit -ham,u reach orchard already? u wan 2 go buy tickets first? -ham,you got job in wipro:)you will get every thing in life in 2 or 3 years. -spam,freemsg>fav xmas tones!reply real -ham,hey sathya till now we dint meet not even a single time then how can i saw the situation sathya. -ham,was it something u ate? -ham,no. i dont want to hear anything -ham,"he will, you guys close?" -ham,haha... really oh no... how? then will they deduct your lesson tmr? -ham,sorry i missed your call. can you please call back. -ham,ok ill tell the company -ham,squeeeeeze!! this is christmas hug.. if u lik my frndshp den hug me back.. if u get 3 u r cute:) 6 u r luvd:* 9 u r so lucky;) none? people hate u: -ham,oic... then better quickly go bathe n settle down... -ham,daddy will take good care of you :) -ham,"yup, no need. i'll jus wait 4 e rain 2 stop." -spam,"u were outbid by simonwatson5120 on the shinco dvd plyr. 2 bid again, visit sms. ac/smsrewards 2 end bid notifications, reply end out" -ham,are you in town? this is v. important -ham,can you pls send me that company name. in saibaba colany -ham,aight should i just plan to come up later tonight? -spam,last chance 2 claim ur ??150 worth of discount vouchers-text yes to 85023 now!savamob-member offers mobile t cs 08717898035. ??3.00 sub. 16 . remove txt x or stop -ham,ok lor thanx... ?? in school? -ham,u should have made an appointment -ham,yes:)sura in sun tv.:)lol. -ham,not yet. just i'd like to keep in touch and it will be the easiest way to do that from barcelona. by the way how ru and how is the house? -ham,do you like shaking your booty on the dance floor? -spam,"xmas & new years eve tickets are now on sale from the club, during the day from 10am till 8pm, and on thurs, fri & sat night this week. they're selling fast!" -ham,"awesome, be there in a minute" -spam,"congrats! 1 year special cinema pass for 2 is yours. call 09061209465 now! c suprman v, matrix3, starwars3, etc all 4 free! bx420-ip4-5we. 150pm. dont miss out!" -spam,ur cash-balance is currently 500 pounds - to maximize ur cash-in now send cash to 86688 only 150p/msg. cc: 08718720201 po box 114/14 tcr/w1 -ham,you're not sure that i'm not trying to make xavier smoke because i don't want to smoke after being told i smoke too much? -spam,"got what it takes 2 take part in the wrc rally in oz? u can with lucozade energy! text rally le to 61200 (25p), see packs or lucozade.co.uk/wrc & itcould be u!" -ham,who u talking about? -ham,i dont have that much image in class. -ham,one of best dialogue in cute reltnship..!! \wen i die -ham,i said its okay. sorry -ham,did u see what i posted on your facebook? -ham,so gd got free ice cream... i oso wan... -spam,you can donate ??2.50 to unicef's asian tsunami disaster support fund by texting donate to 864233. ??2.50 will be added to your next bill -ham,"ya ok, vikky vl c witin <#> mins and il reply u.." -ham,we left already we at orchard now. -ham,rofl betta invest in some anti aging products -ham,sac needs to carry on:) -ham,i'm working technical support :)voice process. -ham,do you hide anythiing or keeping distance from me -ham,i'm serious. you are in the money base -ham,thats cool. where should i cum? on you or in you? :) -ham,you will go to walmart. i.ll stay. -ham,"sorry, i'll call later" -ham,"a gram usually runs like <#> , a half eighth is smarter though and gets you almost a whole second gram for <#>" -ham,dear good morning now only i am up -ham,"urgh, coach hot, smells of chip fat! thanks again, especially for the duvet (not a predictive text word)." -ham,happy birthday... may u find ur prince charming soon n dun work too hard... -ham,convey my regards to him -ham,excellent! are you ready to moan and scream in ecstasy? -ham,"total disappointment, when i texted you was the craziest shit got :(" -ham,hanks lotsly! -ham,i emailed yifeng my part oredi.. can ?_ get it fr him.. -ham,yep then is fine 7.30 or 8.30 for ice age. -ham,"lol, oh you got a friend for the dog ?" -ham,don't fret. i'll buy the ovulation test strips and send them to you. you wont get them til like march. can you send me your postal address.u'll be alright.okay. -ham,"cool, i'll text you in a few" -ham,can ?_ all decide faster cos my sis going home liao.. -spam,urgent! we are trying to contact u. todays draw shows that you have won a ??800 prize guaranteed. call 09050001808 from land line. claim m95. valid12hrs only -spam,urgent! please call 09061743810 from landline. your abta complimentary 4* tenerife holiday or #5000 cash await collection sae t&cs box 326 cw25wx 150 ppm -spam,"want to funk up ur fone with a weekly new tone reply tones2u 2 this text. www.ringtones.co.uk, the original n best. tones 3gbp network operator rates apply" -ham,call to the number which is available in appointment. and ask to connect the call to waheed fathima. -ham,"do 1 thing! change that sentence into: \because i want 2 concentrate in my educational career im leaving here..\""""" -ham,probably money worries. things are coming due and i have several outstanding invoices for work i did two and three months ago. -spam,gsoh? good with spam the ladies?u could b a male gigolo? 2 join the uk's fastest growing mens club reply oncall. mjzgroup. 08714342399.2stop reply stop. msg@??1.50rcvd -ham,you still coming tonight? -ham,"house-maid is the murderer, coz the man was murdered on <#> th january.. as public holiday all govt.instituitions are closed,including post office..understand?" -ham,"sorry light turned green, i meant another friend wanted <#> worth but he may not be around" -ham,oh god. i'm gonna google nearby cliffs now. -ham,why you dint come with us. -ham,no need to ke qi... ?? too bored izzit y suddenly thk of this... -ham,any pain on urination any thing else? -ham,thankyou so much for the call. i appreciate your care. -ham,"sure, i'll see if i can come by in a bit" -ham,if he started searching he will get job in few days.he have great potential and talent. -ham,ok.ok ok..then..whats ur todays plan -ham,lol no. u can trust me. -ham,"i just lov this line: \hurt me with the truth i wil tolerat.bcs ur my someone..... but never comfort me with a lie\"" gud ni8 and sweet dreams""" -spam,"new tones this week include: 1)mcfly-all ab.., 2) sara jorge-shock.. 3) will smith-switch.. to order follow instructions on next message" -spam,winner!! as a valued network customer you have been selected to receivea ??900 prize reward! to claim call 09061701461. claim code kl341. valid 12 hours only. -ham,you've always been the brainy one. -ham,how are you doing? hope you've settled in for the new school year. just wishin you a gr8 day -ham,ha... then we must walk to everywhere... cannot take tram. my cousin said can walk to vic market from our hotel -ham,i cant pick the phone right now. pls send a message -spam,you are a winner you have been specially selected to receive ??1000 cash or a ??2000 award. speak to a live operator to claim call 087123002209am-7pm. cost 10p -ham,yo! howz u? girls never rang after india. l -ham,"nope, i'm still in the market" -ham,if i get there before you after your ten billion calls and texts so help me god -ham,how's it feel? mr. your not my real valentine just my yo valentine even tho u hardly play!! -ham,i came hostel. i m going to sleep. plz call me up before class. hrishi. -ham,so ?_ pay first lar... then when is da stock comin... -ham,"call me when you/carlos is/are here, my phone's vibrate is acting up and i might not hear texts" -spam,tone club: your subs has now expired 2 re-sub reply monoc 4 monos or polyc 4 polys 1 weekly @ 150p per week txt stop 2 stop this msg free stream 0871212025016 -ham,wot about on wed nite i am 3 then but only til 9! -spam,"twinks, bears, scallies, skins and jocks are calling now. don't miss the weekend's fun. call 08712466669 at 10p/min. 2 stop texts call 08712460324(nat rate)" -ham,"sorry, i'll call later" -spam,"you can stop further club tones by replying \stop mix\"" see my-tone.com/enjoy. html for terms. club tones cost gbp4.50/week. mfl" -ham,send to someone else :-) -ham,i am in office:)whats the matter..msg me now.i will call you at break:). -ham,da my birthdate in certificate is in april but real date is today. but dont publish it. i shall give you a special treat if you keep the secret. any way thanks for the wishes -ham,do you think i can move <#> in a week -ham,eh sorry leh... i din c ur msg. not sad already lar. me watching tv now. u still in office? -ham,"there're some people by mu, i'm at the table by lambda" -ham,i'm okay. chasing the dream. what's good. what are you doing next. -spam,"thanks for your ringtone order, reference number x29. your mobile will be charged 4.50. should your tone not arrive please call customer services 09065989180" -spam,private! your 2003 account statement for 07808247860 shows 800 un-redeemed s. i. m. points. call 08719899229 identifier code: 40411 expires 06/11/04 -ham,"today is sorry day.! if ever i was angry with you, if ever i misbehaved or hurt you? plz plz just slap urself bcoz, its ur fault, i'm basically good" -ham,r u in this continent? -ham,for many things its an antibiotic and it can be used for chest abdomen and gynae infections even bone infections. -spam,"free game. get rayman golf 4 free from the o2 games arcade. 1st get ur games settings. reply post, then save & activ8. press 0 key for arcade. termsapply" -ham,have you seen who's back at holby?! -ham,all sounds good. fingers . makes it difficult to type -ham,rightio. 11.48 it is then. well arent we all up bright and early this morning. -ham,check mail.i have mailed varma and kept copy to you regarding membership.take care.insha allah. -ham,i'm still looking for a car to buy. and have not gone 4the driving test yet. -ham,gokila is talking with you aha:) -ham,hi baby im sat on the bloody bus at the mo and i wont be home until about 7:30 wanna do somethin later? call me later ortxt back jess xx -ham,"edison has rightly said, \a fool can ask more questions than a wise man can answer\"" now you know why all of us are speechless during viva.. gm ge gnt:-)""" -ham,"guy, no flash me now. if you go call me, call me. how madam. take care oh." -ham,i am great princess! what are you thinking about me? :) -ham,you know there is. i shall speak to you in <#> minutes then -ham,k.k..how is your sister kids? -ham,ard 530 like dat lor. we juz meet in mrt station then ?_ dun haf to come out. -ham,s:-)if we have one good partnership going we will take lead:) -ham,arun can u transfr me d amt -ham,why de. you looking good only:-).. -ham,are you this much buzy -ham,is toshiba portege m100 gd? -ham,gd luck 4 ur exams :-) -ham,how dare you change my ring -ham,"how about clothes, jewelry, and trips?" -ham,"sorry,in meeting i'll call later" -ham,pls speak to that customer machan. -ham,aight well keep me informed -ham,oh thats late! well have a good night and i will give u a call tomorrow. iam now going to go to sleep night night -ham,we can make a baby in yo tho -ham,lara said she can loan me <#> . -ham,have you heard from this week? -ham,what time do u get out? -ham,s:)but he had some luck.2 catches put down:) -ham,we not watching movie already. xy wants 2 shop so i'm shopping w her now. -spam,"if you don't, your prize will go to another customer. t&c at www.t-c.biz 18+ 150p/min polo ltd suite 373 london w1j 6hl please call back if busy" -ham,pls give her prometazine syrup. 5mls then <#> mins later feed. -ham,hi mate its rv did u hav a nice hol just a message 3 say hello coz haven??t sent u 1 in ages started driving so stay off roads!rvx -ham,are you driving or training? -ham,there are some nice pubs near here or there is frankie n bennys near the warner cinema? -ham,near kalainar tv office.thenampet -spam,"thanks for your ringtone order, ref number k718. your mobile will be charged ??4.50. should your tone not arrive please call customer services on 09065069120" -ham,eh ur laptop got no stock lei... he say mon muz come again to take a look c got a not... -ham,i'm in office now . i will call you <#> min:) -ham,give one miss from that number please -spam,here is your discount code rp176781. to stop further messages reply stop. www.regalportfolio.co.uk. customer services 08717205546 -ham,"i know dat feelin had it with pete! wuld get with em , nuther place nuther time mayb?" -ham,"i guess you could be as good an excuse as any, lol." -ham,"sorry, i can't help you on this." -ham,no prob. i will send to your email. -ham,"aight, call me once you're close" -ham,hey mr and i are going to the sea view and having a couple of gays i mean games! give me a bell when ya finish -ham,yo we are watching a movie on netflix -ham,how dare you stupid. i wont tell anything to you. hear after i wont talk to you:-. -ham,haiyoh... maybe your hamster was jealous of million -ham,i'm putting it on now. it should be ready for <time> -ham,jos ask if u wana meet up? -ham,i dont thnk its a wrong calling between us -ham,lil fever:) now fine:) -ham,ok i go change also... -ham,there's no point hangin on to mr not right if he's not makin u happy -ham,i'm sorry. i've joined the league of people that dont keep in touch. you mean a great deal to me. you have been a friend at all times even at great personal cost. do have a great week.| -ham,yes princess! i want to make you happy... -ham,i dun believe u. i thk u told him. -ham,aiyar u so poor thing... i give u my support k... jia you! i'll think of u... -ham,if u dun drive then how i go 2 sch. -ham,or better still can you catch her and let ask her if she can sell <#> for me. -ham,"hmm well, night night" -ham,gudnite....tc...practice going on -ham,", ow u dey.i paid 60,400thousad.i told u would call ." -ham,prabha..i'm soryda..realy..frm heart i'm sory -ham,compliments to you. was away from the system. how your side. -spam,"all the lastest from stereophonics, marley, dizzee racal, libertines and the strokes! win nookii games with flirt!! click themob wap bookmark or text wap to 82468" -spam,"hi, this is mandy sullivan calling from hotmix fm...you are chosen to receive ??5000.00 in our easter prize draw.....please telephone 09041940223 to claim before 29/03/05 or your prize will be transferred to someone else...." -spam,100 dating service cal;l 09064012103 box334sk38ch -ham,"chinatown got porridge, claypot rice, yam cake, fishhead beehoon... either we eat cheap den go cafe n tok or go nydc or somethin..." -ham,not able to do anything. -ham,"alright if you're sure, let me know when you're leaving" -ham,love you aathi..love u lot.. -ham,"if you can make it any time tonight or whenever you can it's cool, just text me whenever you're around" -ham,or i go home first lar ?_ wait 4 me lor.. i put down my stuff first.. -ham,haha... they cant what... at the most tmr forfeit... haha so how? -ham,"good evening sir, hope you are having a nice day. i wanted to bring it to your notice that i have been late in paying rent for the past few months and have had to pay a $ <#> charge. i felt it would be inconsiderate of me to nag about something you give at great cost to yourself and that's why i didnt speak up. i however am in a recession and wont be able to pay the charge this month hence my askin well ahead of month's end. can you please help. thank you for everything." -spam,free entry in 2 a weekly comp for a chance to win an ipod. txt pod to 80182 to get entry (std txt rate) t&c's apply 08452810073 for details 18+ -ham,"my mobile number.pls sms ur mail id.convey regards to achan,amma.rakhesh.qatar" -ham,with my sis lor... we juz watched italian job. -ham,now? i'm going out 4 dinner soon.. -ham,thank u. it better work out cause i will feel used otherwise -ham,havent mus ask if u can 1st wat. of meet 4 lunch den u n him meet can already lor. or u wan 2 go ask da ge 1st then confirm w me asap? -ham,hi! this is roger from cl. how are you? -ham,"a boy was late 2 home. his father: \power of frndship\""""" -ham,guess which pub im in? im as happy as a pig in clover or whatever the saying is! -ham,y lei? -ham,lol they were mad at first but then they woke up and gave in. -ham,what you doing?how are you? -ham,sorry * was at the grocers. -ham,"night has ended for another day, morning has come in a special way. may you smile like the sunny rays and leaves your worries at the blue blue bay. gud mrng" -ham,"i jus hope its true that missin me cos i'm really missin him! you haven't done anything to feel guilty about, yet." -ham,"oh... icic... k lor, den meet other day..." -ham,we got a divorce. lol. she.s here -ham,yunny i'm walking in citylink now ?_ faster come down... me very hungry... -ham,great princess! i love giving and receiving oral. doggy style is my fave position. how about you? i enjoy making love <#> times per night :) -ham,yes but i don't care cause i know its there! -ham,just send a text. we'll skype later. -ham,hi im having the most relaxing time ever! we have to get up at 7am every day! was the party good the other night? i get home tomorrow at 5ish. -ham,do you work all this week ? -spam,sunshine quiz wkly q! win a top sony dvd player if u know which country liverpool played in mid week? txt ansr to 82277. ??1.50 sp:tyrone -ham,"by the way, i've put a skip right outside the front of the house so you can see which house it is. just pull up before it." -ham,can come my room but cannot come my house cos my house still messy... haha... -ham,hey you gave them your photo when you registered for driving ah? tmr wanna meet at yck? -ham,ok lor... but buy wat? -ham,stupid.its not possible -ham,not yet had..ya sapna aunty manege y'day hogidhe..chinnu full weak and swalpa black agidhane.. -ham,2mro i am not coming to gym machan. goodnight. -ham,"if you're still up, maybe leave the credit card so i can get gas when i get back like he told me to" -ham,please give it 2 or i will pick it up on tuesday evening about 8 if that is ok. -spam,you have won a nokia 7250i. this is what you get when you win our free auction. to take part send nokia to 86021 now. hg/suite342/2lands row/w1jhl 16+ -ham,lol that's different. i don't go trying to find every real life photo you ever took. -spam,send a logo 2 ur lover - 2 names joined by a heart. txt love name1 name2 mobno eg love adam eve 07123456789 to 87077 yahoo! pobox36504w45wq txtno 4 no ads 150p. -ham,depends on individual lor e hair dresser say pretty but my parents say look gong. u kaypoh.. i also dunno wat she collecting. -ham,waiting in e car 4 my mum lor. u leh? reach home already? -ham,"can you tell shola to please go to college of medicine and visit the academic department, tell the academic secretary what the current situation is and ask if she can transfer there. she should ask someone to check sagamu for the same thing and lautech. its vital she completes her medical education in nigeria. its less expensive much less expensive. unless she will be getting citizen rates in new zealand." -spam,you are awarded a sipix digital camera! call 09061221061 from landline. delivery within 28days. t cs box177. m221bp. 2yr warranty. 150ppm. 16 . p p??3.99 -spam,great new offer - double mins & double txt on best orange tariffs and get latest camera phones 4 free! call mobileupd8 free on 08000839402 now! or 2stoptxt t&cs -ham,today am going to college so am not able to atten the class. -ham,havent. -spam,"bangbabes ur order is on the way. u should receive a service msg 2 download ur content. if u do not, goto wap. bangb. tv on ur mobile internet/service menu" -ham,sac will score big hundred.he is set batsman:-) -ham,were gonna go get some tacos -ham,not directly behind... abt 4 rows behind ?_... -spam,sunshine quiz wkly q! win a top sony dvd player if u know which country the algarve is in? txt ansr to 82277. ??1.50 sp:tyrone -ham,you best watch what you say cause i get drunk as a motherfucker -ham,i thk ?_ gotta go home by urself. cos i'll b going out shopping 4 my frens present. -ham,its a great day. do have yourself a beautiful one. -ham,"okay, good, no problem, and thanx!" -ham,i need you to be in my strong arms... -spam,show ur colours! euro 2004 2-4-1 offer! get an england flag & 3lions tone on ur phone! click on the following service message for info! -ham,\keep ur problems in ur heart -ham,what today-sunday..sunday is holiday..so no work.. -ham,"got ur mail dileep.thank you so muchand look forward to lots of support...very less contacts here,remember one venugopal you mentioned.tomorrow if not late,i shall try to come up till there.goodnight dear." -ham,hows the street where the end of library walk is? -ham,your account has been refilled successfully by inr <decimal> . your keralacircle prepaid account balance is rs <decimal> . your transaction id is kr <#> . -ham,hey cutie. how goes it? here in wales its kinda ok. there is like hills and shit but i still avent killed myself. -ham,i dont know ask to my brother. nothing problem some thing that. just i told . -ham,no chikku nt yet.. ya i'm free -ham,haha... dont be angry with yourself... take it as a practice for the real thing. =) -ham,same to u... -ham,i am taking you for italian food. how about a pretty dress with no panties? :) -ham,"i'm back & we're packing the car now, i'll let you know if there's room" -ham,i havent lei.. next mon can? -ham,yun ah.now ?_ wkg where?btw if ?_ go nus sc. ?? wana specialise in wad? -ham,watever relation u built up in dis world only thing which remains atlast iz lonlines with lotz n lot memories! feeling.. -ham,"hey babe, my friend had to cancel, still up for a visit ?" -ham,how much u trying to get? -ham,are you the cutest girl in the world or what -ham,you made my day. do have a great day too. -ham,dunno da next show aft 6 is 850. toa payoh got 650. -spam,do you want a new nokia 3510i colour phone delivered tomorrow? with 200 free minutes to any mobile + 100 free text + free camcorder reply or call 8000930705 -ham,this single single answers are we fighting? plus i said am broke and you didnt reply -ham,"i can't, i don't have her number!" -ham,can you do a mag meeting this avo at some point? -spam,"urgent!! your 4* costa del sol holiday or ??5000 await collection. call 09050090044 now toclaim. sae, tc s, pobox334, stockport, sk38xh, cost??1.50/pm, max10mins" -ham,only 2% students solved this cat question in 'xam... 5+3+2= <#> 9+2+4= <#> 8+6+3= <#> then 7+2+5=????? tell me the answer if u r brilliant...1thing.i got d answr. -spam,as one of our registered subscribers u can enter the draw 4 a 100 g.b. gift voucher by replying with enter. to unsubscribe text stop -ham,when you guys planning on coming over? -ham,ha! i wouldn't say that i just didn't read anything into way u seemed. i don't like 2 be judgemental....i save that for fridays in the pub! -ham,your right! i'll make the appointment right now. -ham,no message..no responce..what happend? -ham,mode men or have you left. -ham,did u got that persons story -ham,"k, text me when you're on the way" -ham,"friendship is not a game to play, it is not a word to say, it doesn\'t start on march and ends on may, it is tomorrow, yesterday, today and e" -ham,are you coming to day for class. -ham,"nothing, smsing u n xy lor. sorry lor da guys neva c u in person but they sort of know u lor. so u wan 2 meet them xy ask me 2 bring u along 4 our next meeting." -ham,ding me on ya break fassyole! blacko from londn -ham,"thanks, i'll keep that in mind" -ham,i am late. i will be there at -ham,i am taking half day leave bec i am not well -spam,hmv bonus special 500 pounds of genuine hmv vouchers to be won. just answer 4 easy questions. play now! send hmv to 86688 more info:www.100percent-real.com -ham,reverse is cheating. that is not mathematics. -ham,also hi wesley how've you been -ham,thanks chikku..:-) gud nyt:-* -ham,i was just callin to say hi. take care bruv! -ham,i have gone into get info bt dont know what to do -ham,i think you should go the honesty road. call the bank tomorrow. its the tough decisions that make us great people. -spam,"as a valued customer, i am pleased to advise you that following recent review of your mob no. you are awarded with a ??1500 bonus prize, call 09066368470" -ham,"piggy, r u awake? i bet u're still sleeping. i'm going 4 lunch now..." -ham,"ever green quote ever told by jerry in cartoon \a person who irritates u always is the one who loves u vry much but fails to express it...!..!! :-) :-) gud nyt""" -ham,mum ask ?_ to buy food home... -ham,would me smoking you out help us work through this difficult time -ham,your board is working fine. the issue of overheating is also reslove. but still software inst is pending. i will come around 8'o clock. -ham,hi kindly give us back our documents which we submitted for loan from stapati -ham,where to get those? -ham,"i'm in a meeting, call me later at" -ham,"good stuff, will do." -ham,this is wishing you a great day. moji told me about your offer and as always i was speechless. you offer so easily to go to great lengths on my behalf and its stunning. my exam is next friday. after that i will keep in touch more. sorry. -ham,lol ok ill try to send. be warned sprint is dead slow. you'll prolly get it tomorrow -spam,"thanks for your ringtone order, reference number x49.your mobile will be charged 4.50. should your tone not arrive please call customer services 09065989182" -ham,"aight, i'll text you when i'm back" -spam,"free2day sexy st george's day pic of jordan!txt pic to 89080 dont miss out, then every wk a saucy celeb!4 more pics c pocketbabe.co.uk 0870241182716 ??3/wk" -ham,any chance you might have had with me evaporated as soon as you violated my privacy by stealing my phone number from your employer's paperwork. not cool at all. please do not contact me again or i will report you to your supervisor. -ham,looks like u wil b getting a headstart im leaving here bout 2.30ish but if u r desperate for my company i could head in earlier-we were goin to meet in rummer. -ham,mind blastin.. no more tsunamis will occur from now on.. rajnikant stopped swimming in indian ocean..:-d -ham,i'm not driving... raining! then i'll get caught at e mrt station lor. -ham,"can you please ask macho what his price range is, does he want something new or used plus it he only interfued in the blackberry bold <#> or any bb" -ham,i can't describe how lucky you are that i'm actually awake by noon -ham,book which lesson? then you msg me... i will call up after work or sth... i'm going to get specs. my membership is px3748 -ham,i'm in office now da:)where are you? -spam,"loan for any purpose ??500 - ??75,000. homeowners + tenants welcome. have you been previously refused? we can still help. call free 0800 1956669 or text back 'help'" -ham,hi darlin ive just got back and i had a really nice night and thanks so much for the lift see u tomorrow xxx -ham,"sun cant come to earth but send luv as rays. cloud cant come to river but send luv as rain. i cant come to meet u, but can send my care as msg to u. gud evng" -ham,what can i do? might accidant tookplace between somewhere ghodbandar rd. traffic moves slovely. so plz slip & don't worry. -ham,sorry i now then c ur msg... yar lor so poor thing... but only 4 one night... tmr u'll have a brand new room 2 sleep in... -ham,"life alle mone,eppolum oru pole allalo" -ham,i'll probably be by tomorrow (or even later tonight if something's going on) -ham,"cool, i'll text you when i'm on the way" -ham,i will cal you sir. in meeting -spam,"urgent! your mobile no 07808726822 was awarded a ??2,000 bonus caller prize on 02/09/03! this is our 2nd attempt to contact you! call 0871-872-9758 box95qu" -ham,i've reached already. -ham,"hi frnd, which is best way to avoid missunderstding wit our beloved one's?" -spam,hmv bonus special 500 pounds of genuine hmv vouchers to be won. just answer 4 easy questions. play now! send hmv to 86688 more info:www.100percent-real.com -ham,i need to come home and give you some good lovin... -ham,s..antha num corrct dane -ham,i just really need shit before tomorrow and i know you won't be awake before like 6 -ham,what's ur pin? -ham,yeah i don't see why not -ham,update your face book status frequently :) -spam,"our mobile number has won ??5000, to claim calls us back or ring the claims hot line on 09050005321." -ham,wanna do some art?! :d -ham,hey i will be really pretty late... you want to go for the lesson first? i will join you. i'm only reaching tp mrt -ham,"dont search love, let love find u. thats why its called falling in love, bcoz u dont force yourself, u just fall and u know there is smeone to hold u... bslvyl" -ham,lol ok your forgiven :) -spam,"this is the 2nd time we have tried 2 contact u. u have won the 750 pound prize. 2 claim is easy, call 08712101358 now! only 10p per min. bt-national-rate" -ham,you are a very very very very bad girl. or lady. -ham,"\i;m reaching in another 2 stops.\""""" -ham,"u wake up already? wat u doing? u picking us up later rite? i'm taking sq825, reaching ard 7 smth 8 like dat. u can check e arrival time. c ya soon..." -spam,join the uk's horniest dogging service and u can have sex 2nite!. just sign up and follow the instructions. txt entry to 69888 now! nyt.ec2a.3lp.msg@150p -ham,i'm leaving my house now... -ham,that's a shame! maybe cld meet for few hrs tomo? -ham,yup i've finished c ?_ there... -ham,"you know, wot people wear. t shirts, jumpers, hat, belt, is all we know. we r at cribbs" -ham,your opinion about me? 1. over 2. jada 3. kusruthi 4. lovable 5. silent 6. spl character 7. not matured 8. stylish 9. simple pls reply.. -ham,welp apparently he retired -ham,dear where you will be when i reach there -ham,"oh, i will get paid. the most outstanding one is for a commercial i did for hasbro...in august! they made us jump through so many hoops to get paid. still not." -ham,me sef dey laugh you. meanwhile how's my darling anjie! -ham,"nah it's straight, if you can just bring bud or drinks or something that's actually a little more useful than straight cash" -spam,"urgent! call 09061749602 from landline. your complimentary 4* tenerife holiday or ??10,000 cash await collection sae t&cs box 528 hp20 1yf 150ppm 18+" -spam,reply with your name and address and you will receive by post a weeks completely free accommodation at various global locations www.phb1.com ph:08700435505150p -ham,lmao!nice 1 -ham,mmm so yummy babe ... nice jolt to the suzy -ham,i'll reach in ard 20 mins ok... -ham,hi babe im at home now wanna do something? xx -ham,a lot of this sickness thing going round. take it easy. hope u feel better soon. lol -spam,"latest nokia mobile or ipod mp3 player +??400 proze guaranteed! reply with: win to 83355 now! norcorp ltd.??1,50/mtmsgrcvd18+" -ham,"dear sir,salam alaikkum.pride and pleasure meeting you today at the tea shop.we are pleased to send you our contact number at qatar.rakhesh an indian.pls save our number.respectful regards." -spam,"xxxmobilemovieclub: to use your credit, click the wap link in the next txt message or click here>> http://wap. xxxmobilemovieclub.com?n=qjkgighjjgcbl" -ham,easy ah?sen got selected means its good.. -ham,maybe?! say hi to and find out if got his card. great escape or wetherspoons? -ham,"sir, good morning. hope you had a good weekend. i called to let you know that i was able to raise <#> from my dad. he however said he would make the rest available by mid feb. this amount is still quite short and i was hoping you would help. do have a good day. abiola" -ham,"the house is on the water with a dock, a boat rolled up with a newscaster who dabbles in jazz flute behind the wheel" -ham,mmm ... fuck .... merry christmas to me -spam,"i want some cock! my hubby's away, i need a real man 2 satisfy me. txt wife to 89938 for no strings action. (txt stop 2 end, txt rec ??1.50ea. otbox 731 la1 7ws. )" -ham,ok -ham,"k so am i, how much for an 8th? fifty?" -ham,wot student discount can u get on books? -spam,you have 1 new voicemail. please call 08719181503 -ham,painful words- \i thought being happy was the most toughest thing on earth... but -ham,"say this slowly.? god,i love you & i need you,clean my heart with your blood.send this to ten special people & u c miracle tomorrow, do it,pls,pls do it..." -ham,i was at bugis juz now wat... but now i'm walking home oredi... ?? so late then reply... i oso saw a top dat i like but din buy... where r ?_ now? -ham,"goodmorning, today i am late for 1hr." -ham,sad story of a man - last week was my b'day. my wife did'nt wish me. my parents forgot n so did my kids . i went to work. even my colleagues did not wish. -ham,"ya ok, then had dinner?" -ham,"my painful personal thought- \i always try to keep everybody happy all the time. but nobody recognises me when i am alone\""""" -ham,moji just informed me that you saved our lives. thanks. -ham,lol wtf random. btw is that your lunch break -ham,the hair cream has not been shipped. -ham,he dint tell anything. he is angry on me that why you told to abi. -ham,"whats that coming over the hill..... is it a monster! hope you have a great day. things r going fine here, busy though!" -ham,watching tv now. i got new job :) -ham,"aight text me when you're back at mu and i'll swing by, need somebody to get the door for me" -ham,oh oh... wasted... den muz chiong on sat n sun liao... -ham,its normally hot mail. com you see! -ham,that one week leave i put know that time. why. -spam,"thanks for your ringtone order, reference t91. you will be charged gbp 4 per week. you can unsubscribe at anytime by calling customer services on 09057039994" -spam,mobile club: choose any of the top quality items for your mobile. 7cfca1a -ham,so i asked how's anthony. dad. and your bf -ham,how are you doing. how's the queen. are you going for the royal wedding -ham,"probably gonna be here for a while, see you later tonight <)" -ham,tomorrow i am not going to theatre. . . so i can come wherever u call me. . . tell me where and when to come tomorrow -ham,aft i finish my lunch then i go str down lor. ard 3 smth lor. u finish ur lunch already? -ham,she ran off with a younger man. we will make pretty babies together :) -ham,as in i want custom officer discount oh. -ham,pls tell nelson that the bb's are no longer comin. the money i was expecting aint coming -ham,"i didnt get ur full msg..sometext is missing, send it again" -ham,"dear, will call tmorrow.pls accomodate." -ham,correct. so how was work today -ham,"wen ur lovable bcums angry wid u, dnt take it seriously.. coz being angry is d most childish n true way of showing deep affection, care n luv!.. kettoda manda... have nice day da." -spam,private! your 2003 account statement for 07753741225 shows 800 un-redeemed s. i. m. points. call 08715203677 identifier code: 42478 expires 24/10/04 -ham,god's love has no limit. god's grace has no measure. god's power has no boundaries. may u have god's endless blessings always in ur life...!! gud ni8 -ham,"yeah that's what i thought, lemme know if anything's goin on later" -ham,"thank you so much. when we skyped wit kz and sura, we didnt get the pleasure of your company. hope you are good. we've given you ultimatum oh! we are countin down to aburo. enjoy! this is the message i sent days ago" -spam,"someone u know has asked our dating service 2 contact you! cant guess who? call 09058095107 now all will be revealed. pobox 7, s3xy 150p" -ham,anytime... -ham,cool. we will have fun practicing making babies! -ham,?? still attending da talks? -ham,when are you guys leaving? -ham,watch lor. i saw a few swatch one i thk quite ok. ard 116 but i need 2nd opinion leh... -ham,"good morning, my boytoy! how's those yummy lips ? where's my sexy buns now ? what do you do ? do you think of me ? do you crave me ? do you need me ?" -ham,the xmas story is peace.. the xmas msg is love.. the xmas miracle is jesus.. hav a blessed month ahead & wish u merry xmas... -spam,gr8 new service - live sex video chat on your mob - see the sexiest dirtiest girls live on ur phone - 4 details text horny to 89070 to cancel send stop to 89070 -ham,maybe if you woke up before fucking 3 this wouldn't be a problem. -spam,08714712388 between 10am-7pm cost 10p -ham,on the way to office da.. -ham,"its cool but tyler had to take off so we're gonna buy for him and drop it off at his place later tonight. our total order is a quarter, you got enough?" -ham,i dnt wnt to tlk wid u -spam,"spook up your mob with a halloween collection of a logo & pic message plus a free eerie tone, txt card spook to 8007 zed 08701417012150p per logo/pic" -ham,in which place do you want da. -ham,r we still meeting 4 dinner tonight? -ham,so its to be poking man everyday that they teach you in canada abi! how are you. just saying hi. -spam,ringtoneking 84484 -ham,it does it on its own. most of the time it fixes my spelling. but sometimes it gets a completely diff word. go figure -ham,"yeah, we got one lined up for us" -ham,"i've not called you in a while. this is hoping it was l8r malaria and that you know that we miss you guys. i miss bani big, so pls give her my love especially. have a great day." -ham,leave it. u will always be ignorant. -spam,guess what! somebody you know secretly fancies you! wanna find out who it is? give us a call on 09065394514 from landline datebox1282essexcm61xn 150p/min 18 -ham,"i'm an actor. when i work, i work in the evening and sleep late. since i'm unemployed at the moment, i always sleep late. when you're unemployed, every day is saturday." -ham,so is th gower mate which is where i am!?! how r u man? all is good in wales ill b back ??morrow. c u this wk? who was the msg 4? ?? random! -ham,why didn't u call on your lunch? -ham,was just about to ask. will keep this one. maybe that's why you didn't get all the messages we sent you on glo -ham,"\gran onlyfound out afew days ago.cusoon honi\""""" -ham,lol yeah at this point i guess not -ham,oh god i am happy to see your message after 3 days -ham,good morning my dear........... have a great & successful day. -ham,don know:)this week i'm going to tirunelvai da. -ham,"miss ya, need ya, want ya, love ya." -ham,"i am late,so call you tomorrow morning.take care sweet dreams....u and me...ummifying...bye." -ham,s....s...india going to draw the series after many years in south african soil.. -ham,oh god..taken the teeth?is it paining -ham,ok. -spam,"ur balance is now ??600. next question: complete the landmark, big, a. bob, b. barry or c. ben ?. text a, b or c to 83738. good luck!" -ham,wat time ?_ wan today? -ham,am i that much dirty fellow? -ham,aah! a cuddle would be lush! i'd need lots of tea and soup before any kind of fumbling! -ham,it means u could not keep ur words. -ham,dhoni have luck to win some big title.so we will win:) -ham,what time you coming down later? -ham,i'm sick !! i'm needy !! i want you !! *pouts* *stomps feet* where are you ?! *pouts* *stomps feet* i want my slave !! i want him now !! -ham,"i call you later, don't have network. if urgnt, sms me." -ham,guai... ?? shd haf seen him when he's naughty... ?? so free today? can go jogging... -ham,thanx a lot 4 ur help! -ham,my computer just fried the only essential part we don't keep spares of because my fucking idiot roommates looovvve leaving the thing running on full <#> /7 -ham,i'm at work. please call -ham,yep. i do like the pink furniture tho. -ham,"8 at the latest, g's still there if you can scrounge up some ammo and want to give the new ak a try" -ham,as per your request 'melle melle (oru minnaminunginte nurungu vettam)' has been set as your callertune for all callers. press *9 to copy your friends callertune -ham,"hey, i missed you tm of last night as my phone was on the charge ... *smiles* ... i am meeting a friend shortly" -ham,i'll let you know when it kicks in -spam,talk sexy!! make new friends or fall in love in the worlds most discreet text dating service. just text vip to 83110 and see who you could meet. -ham,"sorry da thangam, very very sorry i am held up with prasad." -ham,no you'll just get a headache trying to figure it out. u can trust me to do the math. i promise. o:-) -ham,"i think we're going to finn's now, come" -ham,it so happens that there r 2waxsto do wat you want. she can come and ill get her medical insurance. and she'll be able to deliver and have basic care. i'm currently shopping for the right medical insurance for her. so just give me til friday morning. thats when i.ll see the major person that can guide me to the right insurance. -ham,"sir, you will receive the account no another 1hr time. sorry for the delay." -ham,k..then come wenever u lik to come and also tel vikky to come by getting free time..:-) -ham,was gr8 to see that message. so when r u leaving? congrats dear. what school and wat r ur plans. -ham,"as in missionary hook up, doggy hook up, standing...|" -ham,i forgot 2 ask ?_ all smth.. there's a card on da present lei... how? ?? all want 2 write smth or sign on it? -ham,lol ... have you made plans for new years? -spam,1st wk free! gr8 tones str8 2 u each wk. txt nokia on to 8007 for classic nokia tones or hit on to 8007 for polys. nokia/150p poly/200p 16+ -ham,then she dun believe wat? -ham,u still havent got urself a jacket ah? -ham,oh did you charge camera -ham,wat r u doing? -ham,your pussy is perfect! -ham,or i guess <#> min -ham,check audrey's status right now -ham,"kate jackson rec center before 7ish, right?" -ham,great! i have to run now so ttyl! -ham,okie... -spam,"download as many ringtones as u like no restrictions, 1000s 2 choose. u can even send 2 yr buddys. txt sir to 80082 ??3" -ham,if you r @ home then come down within 5 min -ham,just buy a pizza. meat lovers or supreme. u get to pick. -spam,urgent! we are trying to contact u. todays draw shows that you have won a ??800 prize guaranteed. call 09050003091 from land line. claim c52. valid 12hrs only -ham,dunno lei... i thk mum lazy to go out... i neva ask her yet... -ham,"babe, i'm answering you, can't you see me ? maybe you'd better reboot ym ... i got the photo ... it's great !" -ham,hey what are you doing. y no reply pa.. -ham,now get step 2 outta the way. congrats again. -ham,u guys never invite me anywhere :( -spam,sms auction you have won a nokia 7250i. this is what you get when you win our free auction. to take part send nokia to 86021 now. hg/suite342/2lands row/w1jhl 16+ -ham,i'm in chennai velachery:) -ham,so how's scotland. hope you are not over showing your jjc tendencies. take care. live the dream -ham,wat makes some people dearer is not just de happiness dat u feel when u meet them but de pain u feel when u miss dem!!! -ham,how come? -ham,yunny... i'm goin to be late -ham,"each moment in a day,has its own value-morning brings hope,afternoon brings faith,evening brings luv,night brings rest,wish u find them all today.good morning" -ham,do you mind if i ask what happened? you dont have to say if it is uncomfortable. -ham,"text me when you get off, don't call, my phones having problems" -ham,did either of you have any idea's? do you know of anyplaces doing something? -ham,"until 545 lor... ya, can go 4 dinner together..." -ham,"im in inperialmusic listening2the weirdest track ever by??leafcutter john??-sounds like insects being molested&someone plumbing,remixed by evil men on acid!" -ham,as per your request 'maangalyam (alaipayuthe)' has been set as your callertune for all callers. press *9 to copy your friends callertune -ham,nice.nice.how is it working? -ham,"and how you will do that, princess? :)" -ham,"come round, it's ." -ham,how come guoyang go n tell her? then u told her? -ham,pls give her the food preferably pap very slowly with loads of sugar. you can take up to an hour to give it. and then some water. very very slowly. -ham,alright i have a new goal now -ham,oh howda gud gud.. mathe en samachara chikku:-) -spam,+449071512431 urgent! this is the 2nd attempt to contact u!u have won ??1250 call 09071512433 b4 050703 t&csbcm4235wc1n3xx. callcost 150ppm mobilesvary. max??7. 50 -ham,babe ? i lost you ... :-( -ham,"why is that, princess? i bet the brothas are all chasing you!" -ham,so what u doing today? -ham,s now only i took tablets . reaction morning only. -ham,i taught that ranjith sir called me. so only i sms like that. becaus hes verifying about project. prabu told today so only pa dont mistake me.. -ham,sorry im stil fucked after last nite went tobed at 430 got up 4 work at 630 -ham,ya but it cant display internal subs so i gotta extract them -ham,"the affidavit says <#> e twiggs st, division g, courtroom <#> , <time> am. i'll double check and text you again tomorrow" -ham,do have a nice day today. i love you so dearly. -ham,hi its kate how is your evening? i hope i can see you tomorrow for a bit but i have to bloody babyjontet! txt back if u can. :) xxx -ham,mmmm ... fuck ... not fair ! you know my weaknesses ! *grins* *pushes you to your knee's* *exposes my belly and pulls your head to it* don't forget ... i know yours too *wicked smile* -ham,i am great! how are you? -ham,umma my life and vava umma love you lot dear -ham,"alright omw, gotta change my order to a half8th" -ham,take care and sleep well.you need to learn to change in life.you only need to get convinced on that.i will wait but no more conversations between us.get convinced by that time.your family is over for you in many senses.respect them but not overemphasise.or u have no role in my life. -ham,s:-)kallis wont play in first two odi:-) -ham,"get the door, i'm here" -ham,"hey, a guy i know is breathing down my neck to get him some bud, anyway you'd be able to get a half track to usf tonight?" -ham,when the first strike is a red one. the bird + antelope begin toplay in the fieldof selfindependence believe this + the flower of contention will grow.random! -spam,"hey boys. want hot xxx pics sent direct 2 ur phone? txt porn to 69855, 24hrs free and then just 50p per day. to stop text stopbcm sf wc1n3xx" -ham,that's my honeymoon outfit. :) -ham,no dear i was sleeping :-p -ham,i got it before the new year cos yetunde said she wanted to surprise you with it but when i didnt see money i returned it mid january before the <#> day return period ended. -ham,okay lor... wah... like that def they wont let us go... haha... what did they say in the terms and conditions? -ham,"tonight? yeah, i'd be down for that" -spam,5p 4 alfie moon's children in need song on ur mob. tell ur m8s. txt tone charity to 8007 for nokias or poly charity for polys: zed 08701417012 profit 2 charity. -ham,spoons it is then okay? -ham,wat r u doing? -ham,the search 4 happiness is 1 of d main sources of unhappiness! accept life the way it comes! u will find happiness in every moment u live. -ham,i like you peoples very much:) but am very shy pa. -ham,xy trying smth now. u eat already? we havent... -ham,i'm really sorry i won't b able 2 do this friday.hope u can find an alternative.hope yr term's going ok:-) -ham,"\getting tickets 4 walsall tue 6 th march. my mate is getting me them on sat. ill pay my treat. want 2 go. txt bak .terry\""""" -ham,mm i am on the way to railway -ham,thank you. do you generally date the brothas? -ham,good evening! this is roger. how are you? -ham,ok. me watching tv too. -ham,"sorry about earlier. putting out fires.are you around to talk after 9? or do you actually have a life, lol!" -ham,\hey j! r u feeling any better -ham,just sleeping..and surfing -ham,just sing hu. i think its also important to find someone female that know the place well preferably a citizen that is also smart to help you navigate through. even things like choosing a phone plan require guidance. when in doubt ask especially girls. -ham,thats cool princess! i will cover your face in hot sticky cum :) -ham,his bday real is in april . -ham,been up to ne thing interesting. did you have a good birthday? when are u wrking nxt? i started uni today. -ham,when you came to hostel. -spam,"0a$networks allow companies to bill for sms, so they are responsible for their \suppliers\""" -ham,yes. nigh you cant aha. -ham,what number do u live at? is it 11? -ham,* you gonna ring this weekend or wot? -ham,i take it the post has come then! you must have 1000s of texts now! happy reading. my one from wiv hello caroline at the end is my favourite. bless him -ham,"sorry, i can't text & drive coherently, see you in twenty" -ham,indeed and by the way it was either or - not both ! -ham,"i wonder how you got online, my love ? had you gone to the net cafe ? did you get your phone recharged ? were you on a friends net ? i think of you, boytoy" -ham,left dessert. u wan me 2 go suntec look 4 u? -ham,umma. did she say anything -ham,"japanese proverb: if one can do it, u too can do it, if none can do it,u must do it indian version: if one can do it, let him do it.. if none can do it,leave it!! and finally kerala version: if one can do it, stop him doing it.. if none can do it, make a strike against it ..." -spam,update_now - 12mths half price orange line rental: 400mins...call mobileupd8 on 08000839402 or call2optout=j5q -ham,boooo you always work. just quit. -ham,ok no prob... i'll come after lunch then... -ham,"princess, is your kitty shaved or natural?" -ham,usually the body takes care of it buy making sure it doesnt progress. can we pls continue this talk on saturday. -ham,i cant pick the phone right now. pls send a message -ham,he also knows about lunch menu only da. . i know -ham,well you told others you'd marry them... -ham,yeah if we do have to get a random dude we need to change our info sheets to party <#> /7 never study just to be safe -ham,really good:)dhanush rocks once again:) -ham,ill be at yours in about 3 mins but look out for me -ham,if i start sending blackberry torch to nigeria will you find buyer for me?like 4a month. and tell dad not to buy bb from anyone oh. -ham,hi harish's rent has been transfred to ur acnt. -ham,you want to go? -ham,you are not bothering me but you have to trust my answers. pls. -spam,natalja (25/f) is inviting you to be her friend. reply yes-440 or no-440 see her: www.sms.ac/u/nat27081980 stop? send stop frnd to 62468 -spam,"pdate_now - double mins and 1000 txts on orange tariffs. latest motorola, sonyericsson & nokia & bluetooth free! call mobileupd8 on 08000839402 or call2optout/!yhl" -ham,"wen ur lovable bcums angry wid u, dnt take it seriously.. coz being angry is d most childish n true way of showing deep affection, care n luv!.. kettoda manda... have nice day da." -ham,"no my blankets are sufficient, thx" -ham,ok. -ham,i could ask carlos if we could get more if anybody else can chip in -ham,hiya comin 2 bristol 1 st week in april. les got off + rudi on new yrs eve but i was snoring.they were drunk! u bak at college yet? my work sends ink 2 bath. -ham,hey... are you going to quit soon? xuhui and i working till end of the month -ham,r ?_ going 4 today's meeting? -spam,"dear voucher holder, 2 claim this weeks offer, at your pc go to http://www.e-tlp.co.uk/expressoffer ts&cs apply.2 stop texts txt stop to 80062." -ham,i'm at work. please call -spam,text & meet someone sexy today. u can find a date or even flirt its up to u. join 4 just 10p. reply with name & age eg sam 25. 18 -msg recd@thirtyeight pence -ham,"i can't speak, bcaz mobile have problem. i can listen you but you cann't listen my voice. so i calls you later." -ham,infact happy new year. how are you where are you when are we seeing -ham,"buzz! hey, my love ! i think of you and hope your day goes well. did you sleep in ? i miss you babe. i long for the moment we are together again*loving smile*" -ham,did u find a sitter for kaitlyn? i was sick and slept all day yesterday. -ham,thanks for this hope you had a good day today -ham,"aiyo... her lesson so early... i'm still sleepin, haha... okie, u go home liao den confirm w me lor..." -spam,urgent please call 09066612661 from landline. ??5000 cash or a luxury 4* canary islands holiday await collection. t&cs sae award. 20m12aq. 150ppm. 16+ ??? -spam,"this weeks savamob member offers are now accessible. just call 08709501522 for details! savamob, pobox 139, la3 2wu. only ??1.50/week. savamob - offers mobile!" -ham,lol i was gonna last month. i cashed some in but i left <#> just in case. i was collecting more during the week cause they announced it on the blog. -ham,keep yourself safe for me because i need you and i miss you already and i envy everyone that see's you in real life -ham,"k, i might come by tonight then if my class lets out early" -ham,"good morning, my love ... i go to sleep now and wish you a great day full of feeling better and opportunity ... you are my last thought babe, i love you *kiss*" -ham,actually getting ready to leave the house. -ham,lol alright i was thinkin that too haha -ham,your dad is back in ph? -ham,true. its easier with her here. -ham,i miss you so much i'm so desparate i have recorded the message you left for me the other day and listen to it just to hear the sound of your voice. i love you -ham,"wn u r hurt by d prsn who s close 2 u, do fight wit dem. coz somtimes dis fight saves a relation bt being quiet leaves nothin in a relation.. gud eveb-)" -ham,cool. i am <#> inches long. hope you like them big! -spam,"you ve won! your 4* costa del sol holiday or ??5000 await collection. call 09050090044 now toclaim. sae, tc s, pobox334, stockport, sk38xh, cost??1.50/pm, max10mins" -ham,will do. was exhausted on train this morning. too much wine and pie. you sleep well too -ham,"ooh, 4got, i'm gonna start belly dancing in moseley weds 6.30 if u want 2 join me, they have a cafe too." -ham,"camera quite good, 10.1mega pixels, 3optical and 5digital dooms. have a lovely holiday, be safe and i hope you hav a good journey! happy new year to you both! see you in a couple of weeks!" -ham,"i had been hoping i would not have to send you this message. my rent is due and i dont have enough for it. my reserves are completely gone. its a loan i need and was hoping you could her. the balance is <#> . is there a way i could get that from you, till mid march when i hope to pay back." -ham,good words.... but words may leave u in dismay many times. -ham,hai dear friends... this is my new & present number..:) by rajitha raj (ranju) -ham,oh shut it. omg yesterday i had a dream that i had 2 kids both boys. i was so pissed. not only about the kids but them being boys. i even told mark in my dream that he was changing diapers cause i'm not getting owed in the face. -ham,tell me again what your address is -ham,what happened in interview? -ham,will purchase d stuff today and mail to you. do you have a po box number? -ham,even i cant close my eyes you are in me our vava playing umma :-d -ham,omg you can make a wedding chapel in frontierville? why do they get all the good stuff? -spam,"congrats! 2 mobile 3g videophones r yours. call 09063458130 now! videochat wid your mates, play java games, dload polyph music, noline rentl." -ham,"k i'm leaving soon, be there a little after 9" -ham,having lunch:)you are not in online?why? -ham,tell your friends what you plan to do on valentines day @ <url> -ham,reverse is cheating. that is not mathematics. -ham,"\me 2 babe i feel the same lets just 4get about it+both try +cheer up+not fit soo muchxxlove u locaxx\""""" -ham,long time. you remember me today. -ham,no got new job at bar in airport on satsgettin 4.47per hour but means no lie in! keep in touch -ham,i anything lor... -ham,company is very good.environment is terrific and food is really nice:) -ham,what's the significance? -ham,haf u found him? i feel so stupid da v cam was working. -ham,u should make a fb list -ham,how are you. wish you a great semester -ham,?? wait 4 me in sch i finish ard 5.. -ham,what to think no one saying clearly. ok leave no need to ask her. i will go if she come or not -ham,waiting for your call. -spam,dear voucher holder have your next meal on us. use the following link on your pc 2 enjoy a 2 4 1 dining experiencehttp://www.vouch4me.com/etlp/dining.asp -ham,me i'm not workin. once i get job... -ham,"pity, * was in mood for that. so...any other suggestions?" -ham,really... i tot ur paper ended long ago... but wat u copied jus now got use? u happy lar... i still haf 2 study :-( -spam,get ur 1st ringtone free now! reply to this msg with tone. gr8 top 20 tones to your phone every week just ??1.50 per wk 2 opt out send stop 08452810071 16 -ham,you bad girl. i can still remember them -ham,where's my boytoy? i miss you ... what happened? -spam,get the official england poly ringtone or colour flag on yer mobile for tonights game! text tone or flag to 84199. optout txt eng stop box39822 w111wx ??1.50 -ham,i donno if they are scorable -ham,thanx 4 puttin da fone down on me!! -ham,friendship poem: dear o dear u r not near but i can hear dont get fear live with cheer no more tear u r always my dear. gud ni8 -ham,oooh bed ridden ey? what are you thinking of? -ham,hope you are not scared! -ham,i like cheap! but i???m happy to splash out on the wine if it makes you feel better.. -spam,"mila, age23, blonde, new in uk. i look sex with uk guys. if u like fun with me. text mtalk to 69866.18 . 30pp/txt 1st 5free. ??1.50 increments. help08718728876" -ham,hey they r not watching movie tonight so i'll prob b home early... -ham,die... i accidentally deleted e msg i suppose 2 put in e sim archive. haiz... i so sad... -ham,k..k:)how much does it cost? -ham,i thought slide is enough. -ham,yup. izzit still raining heavily cos i'm in e mrt i can't c outside. -ham,well keep in mind i've only got enough gas for one more round trip barring a sudden influx of cash -ham,thx. all will be well in a few months -ham,tmr then ?_ brin lar... aiya later i come n c lar... mayb ?_ neva set properly ?_ got da help sheet wif ?_... -ham,aathi..where are you dear.. -spam,private! your 2004 account statement for 07742676969 shows 786 unredeemed bonus points. to claim call 08719180248 identifier code: 45239 expires -ham,if you text on your way to cup stop that should work. and that should be bus -ham,ok i shall talk to him -ham,no just send to you. bec you in temple na. -ham,please tell me you have some of that special stock you were talking about -ham,oh ic. i thought you meant mary jane. -ham,"carlos is down but i have to pick it up from him, so i'll swing by usf in a little bit" -ham,not getting anywhere with this damn job hunting over here! -ham,wat happened to the cruise thing -ham,ok... -ham,i wonder if you'll get this text? -ham,"yeah sure, give me a couple minutes to track down my wallet" -ham,if you aren't here in the next <#> hours imma flip my shit -ham,got meh... when? -ham,i sent them. do you like? -ham,what's a feathery bowa? is that something guys have that i don't know about? -ham,what time you think you'll have it? need to know when i should be near campus -ham,"when you get free, call me" -spam,4mths half price orange line rental & latest camera phones 4 free. had your phone 11mths ? call mobilesdirect free on 08000938767 to update now! or2stoptxt -ham,i called but no one pick up e phone. i ask both of them already they said ok. -ham,"hmmm... guess we can go 4 kb n power yoga... haha, dunno we can tahan power yoga anot... thk got lo oso, forgot liao..." -ham,think + da. you wil do. -ham,"will do, you gonna be at blake's all night? i might be able to get out of here a little early" -spam,private! your 2003 account statement for 078 -ham,friendship poem: dear o dear u r not near but i can hear dont get fear live with cheer no more tear u r always my dear. gud ni8 -ham,no..few hours before.went to hair cut . -ham,oh k. . i will come tomorrow -ham,"wiskey brandy rum gin beer vodka scotch shampain wine \kudi\""yarasu dhina vaazhthukkal. ..""" -ham,sounds like there could be a lot of time spent in that chastity device boy ... *grins* ... or take your beatings like a good dog. going to lounge in a nice long bath now ? -spam,"double mins and txts 4 6months free bluetooth on orange. available on sony, nokia motorola phones. call mobileupd8 on 08000839402 or call2optout/n9dx" -ham,lol where do u come up with these ideas? -ham,also where's the piece -ham,call me when u finish then i come n pick u. -ham,or maybe my fat fingers just press all these buttons and it doesn't know what to do. -spam,ur awarded a city break and could win a ??200 summer shopping spree every wk. txt store to 88039.skilgme.tscs087147403231winawk!age16+??1.50perwksub -ham,thanx 4 2day! u r a goodmate i think ur rite sary! asusual!1 u cheered me up! love u franyxxxxx -ham,i will come to ur home now -ham,now only i reached home. . . i am very tired now. . i will come tomorro -ham,yay! you better not have told that to 5 other girls either. -ham,ok good then i later come find ?_... c lucky i told ?_ to go earlier... later pple take finish ?_ no more again... -ham,k ill drink.pa then what doing. i need srs model pls send it to my mail id pa. -ham,nope but i'll b going 2 sch on fri quite early lor cos mys sis got paper in da morn :-) -ham,"just got some gas money, any chance you and the gang want to go on a grand nature adventure?" -ham,i probably won't eat at all today. i think i'm gonna pop. how was your weekend? did u miss me? -spam,88800 and 89034 are premium phone services call 08718711108 -ham,how are you with money...as in to you...money aint a thing....how are you sha! -ham,"open rebtel with firefox. when it loads just put plus sign in the user name place, and it will show you two numbers. the lower number is my number. once you pick that number the pin will display okay!" -ham,yes i have. so that's why u texted. pshew...missing you so much -ham,"me also da, i feel yesterday night wait til 2day night dear." -ham,fuck cedar key and fuck her (come over anyway tho) -ham,"oops, i'll let you know when my roommate's done" -ham,shall call now dear having food -ham,also tell him i said happy birthday -ham,ok then u tell me wat time u coming later lor. -ham,how much are we getting? -ham,k k :-):-) then watch some films. -ham,i went to project centre -spam,free unlimited hardcore porn direct 2 your mobile txt porn to 69200 & get free access for 24 hrs then chrgd@50p per day txt stop 2exit. this msg is free -ham,appt is at <time> am. not my fault u don't listen. i told u twice -ham,r u saying i should re order the slippers cos i had to pay for returning it. -ham,later i guess. i needa do mcat study too. -ham,no i'm not gonna be able to. || too late notice. || i'll be home in a few weeks anyway. || what are the plans -ham,message from . i am at truro hospital on ext. you can phone me here. as i have a phone by my side -spam,how come it takes so little time for a child who is afraid of the dark to become a teenager who wants to stay out all night? -ham,ok can... -ham,i anything lor. -ham,i've sent my wife your text. after we buy them she'll tell you what to do. so just relax. we should go get them this wkend. -ham,"do 1 thing! change that sentence into: \because i want 2 concentrate in my educational career im leaving here..\""""" -ham,meanwhile in the shit suite: xavier decided to give us <#> seconds of warning that samantha was coming over and is playing jay's guitar to impress her or some shit. also i don't think doug realizes i don't live here anymore -spam,december only! had your mobile 11mths+? you are entitled to update to the latest colour camera mobile for free! call the mobile update co free on 08002986906 -ham,i'm coming back on thursday. yay. is it gonna be ok to get the money. cheers. oh yeah and how are you. everything alright. hows school. or do you call it work now -ham,"the <#> g that i saw a few days ago, the guy wants sell wifi only for <#> and with 3g for <#> . that's why i blanked him." -ham,"house-maid is the murderer, coz the man was murdered on <#> th january.. as public holiday all govt.instituitions are closed,including post office..understand?" -ham,nope watching tv at home... not going out. v bored... -spam,urgent! we are trying to contact u. todays draw shows that you have won a ??800 prize guaranteed. call 09050001808 from land line. claim m95. valid12hrs only -ham,"how's my loverboy doing ? what does he do that keeps him from coming to his queen, hmmm ? doesn't he ache to speak to me ? miss me desparately ?" -ham,dear i am not denying your words please -ham,k do i need a login or anything -spam,fancy a shag? i do.interested? sextextuk.com txt xxuk suzy to 69876. txts cost 1.50 per msg. tncs on website. x -ham,wot u wanna do then missy? -ham,yeah. i got a list with only u and joanna if i'm feeling really anti social -ham,gudnite....tc...practice going on -ham,"i'll text carlos and let you know, hang on" -ham,i just made some payments so dont have that much. sorry. would you want it fedex or the other way. -ham,oh wow thats gay. will firmware update help -ham,"usf i guess, might as well take 1 car" -ham,should i have picked up a receipt or something earlier -ham,shall i come to get pickle -ham,?? ready then call me... -ham,msg me when rajini comes. -ham,tell me pa. how is pain de. -spam,"free message activate your 500 free text messages by replying to this message with the word free for terms & conditions, visit www.07781482378.com" -ham,"plz note: if anyone calling from a mobile co. & asks u to type # <#> or # <#> . do not do so. disconnect the call,coz it iz an attempt of 'terrorist' to make use of the sim card no. itz confirmd by nokia n motorola n has been verified by cnn ibn." -ham,"party's at my place at usf, no charge (but if you can contribute in any way it is greatly appreciated) and yeah, we got room for one more" -ham,it vl bcum more difficult.. -ham,"awesome, i remember the last time we got somebody high for the first time with diesel :v" -spam,private! your 2003 account statement for shows 800 un-redeemed s. i. m. points. call 08715203694 identifier code: 40533 expires 31/10/04 -spam,free entry into our ??250 weekly competition just text the word win to 80086 now. 18 t&c www.txttowin.co.uk -ham,"yeah, that's what i was thinking" -ham,call me when u're done... -ham,thanks. fills me with complete calm and reassurance! -ham,<#> great loxahatchee xmas tree burning update: you can totally see stars here -ham,babes i think i got ur brolly i left it in english wil bring it in 2mrw 4 u luv franxx -ham,ard 4 lor... -ham,these won't do. have to move on to morphine -ham,sent me ur email id soon -ham,please dont say like that. hi hi hi -ham,i hope you know i'm still mad at you. -ham,yes i posted a couple of pics on fb. there's still snow outside too. i'm just waking up :) -ham,waaaat?? lololo ok next time then! -spam,summers finally here! fancy a chat or flirt with sexy singles in yr area? to get matched up just reply summer now. free 2 join. optout txt stop help08714742804 -spam,you are a winner u have been specially selected 2 receive ??1000 or a 4* holiday (flights inc) speak to a live operator 2 claim 0871277810910p/min (18+) -ham,oh k.i think most of wi and nz players unsold. -ham,been running but only managed 5 minutes and then needed oxygen! might have to resort to the roller option! -ham,how's it going? got any exciting karaoke type activities planned? i'm debating whether to play football this eve. feeling lazy though. -ham,hey anyway i have to :-) -ham,"i think i???m waiting for the same bus! inform me when you get there, if you ever get there." -ham,"sorry, i'll call later" -ham,i had askd u a question some hours before. its answer -ham,"<#> %of pple marry with their lovers... becz they hav gud undrstndng dat avoids problems. i sent dis 2 u, u wil get gud news on friday by d person you like. and tomorrow will be the best day of your life. dont break this chain. if you break you will suffer. send this to <#> frnds in <#> mins whn u read..." -ham,"hey, can you tell me blake's address? carlos wanted me to meet him there but i got lost and he's not answering his phone" -ham,nobody names their penis a girls name this story doesn't add up at all -ham,"thats a bit weird, even ?- where is the do supposed to be happening? but good idea, sure they will be in pub!" -ham,i want kfc its tuesday. only buy 2 meals only 2. no gravy. only 2 mark. 2! -ham,still chance there. if you search hard you will get it..let have a try :) -ham,thanks love. but am i doing torch or bold. -ham,wah lucky man... then can save money... hee... -ham,god created gap btwn ur fingers so dat sum1 vry special will fill those gaps by holding ur hands.. now plz dont ask y he created so much gap between legs !!! -ham,thk some of em find wtc too far... weiyi not goin... e rest i dunno yet... r ur goin 4 dinner den i might b able to join... -ham,"yetunde, i'm sorry but moji and i seem too busy to be able to go shopping. can you just please find some other way to get what you wanted us to get. please forgive me. you can reply free via yahoo messenger." -spam,8007 25p 4 alfie moon's children in need song on ur mob. tell ur m8s. txt tone charity to 8007 for nokias or poly charity for polys :zed 08701417012 profit 2 charity -ham,somebody should go to andros and steal ice -ham,i was slept that time.you there? -ham,"i don't think i can get away for a trek that long with family in town, sorry" -ham,hi this is yijue... it's regarding the 3230 textbook it's intro to algorithms second edition... i'm selling it for $50... -ham,watching tv lor. nice one then i like lor. -ham,mmmm.... i cant wait to lick it! -ham,"wait, do you know if wesleys in town? i bet she does hella drugs!" -spam,no. 1 nokia tone 4 ur mob every week! just txt nok to 87021. 1st tone free ! so get txtin now and tell ur friends. 150p/tone. 16 reply hl 4info -ham,you still at grand prix? -ham,wat u doing there? -ham,no drama pls.i have had enough from you and family while i am struggling in the hot sun in a strange place.no reason why there should be an ego of not going 'if not invited' when actually its necessity to go.wait for very serious reppurcussions. -ham,after the drug she will be able to eat. -ham,if i not meeting ?_ all rite then i'll go home lor. if ?_ dun feel like comin it's ok. -ham,what makes you most happy? -ham,i uploaded mine to facebook -ham,shant disturb u anymore... jia you... -ham,the length is e same but e top shorter n i got a fringe now. i thk i'm not going liao. too lazy. dun wan 2 distract u also. -ham,is there any movie theatre i can go to and watch unlimited movies and just pay once? -ham,i will cme i want to go to hos 2morow. after that i wil cme. this what i got from her dear what to do. she didnt say any time -ham,i have no idea where you are -spam,"urgent! please call 0906346330. your abta complimentary 4* spanish holiday or ??10,000 cash await collection sae t&cs box 47 po19 2ez 150ppm 18+" -ham,but i haf enuff space got like 4 mb... -ham,then u going ikea str aft dat? -ham,dear how is chechi. did you talk to her -ham,lol grr my mom is taking forever with my prescription. pharmacy is like 2 minutes away. ugh. -ham,"* was really good to see you the other day dudette, been missing you!" -ham,k..k..any special today? -ham,k..k..i'm also fine:)when will you complete the course? -spam,"hot live fantasies call now 08707500020 just 20p per min ntt ltd, po box 1327 croydon cr9 5wb 0870 is a national rate call" -ham,r u &sam p in eachother. if we meet we can go 2 my house -ham,ok... help me ask if she's working tmr a not? -ham,"nothing, i got msg frm tht unknown no.." -spam,"get 3 lions england tone, reply lionm 4 mono or lionp 4 poly. 4 more go 2 www.ringtones.co.uk, the original n best. tones 3gbp network operator rates apply." -ham,nothing just getting msgs by dis name wit different no's.. -ham,i hope you arnt pissed off but id would really like to see you tomorrow. love me xxxxxxxxxxxxxx -ham,"sir, waiting for your mail." -ham,"superb thought- \be grateful that u dont have everything u want. that means u still have an opportunity to be happier tomorrow than u are today.\"":-)""" -ham,"no worries, hope photo shoot went well. have a spiffing fun at workage." -ham,yo do you know anyone <#> or otherwise able to buy liquor? our guy flaked and right now if we don't get a hold of somebody its just 4 loko all night -ham,"by march ending, i should be ready. but will call you for sure. the problem is that my capital never complete. how far with you. how's work and the ladies" -spam,call 09095350301 and send our girls into erotic ecstacy. just 60p/min. to stop texts call 08712460324 (nat rate) -spam,"this is the 2nd time we have tried to contact u. u have won the ??400 prize. 2 claim is easy, just call 087104711148 now! only 10p per minute. bt-national-rate" -ham,hahaha..use your brain dear -ham,i will see in half an hour -ham,i accidentally deleted the message. resend please. -ham,no problem with the renewal. i.ll do it right away but i dont know his details. -ham,nope... think i will go for it on monday... sorry i replied so late -spam,december only! had your mobile 11mths+? you are entitled to update to the latest colour camera mobile for free! call the mobile update vco free on 08002986906 -ham,lol they don't know about my awesome phone. i could click delete right now if i want. -ham,big brother???s really scraped the barrel with this shower of social misfits -spam,interflora - ??it's not too late to order interflora flowers for christmas call 0800 505060 to place your order before midnight tomorrow. -ham,"can you pls pls send me a mail on all you know about relatives coming to deliver here? all you know about costs, risks, benefits and anything else. thanks." -ham,?? eatin later but i'm eatin wif my frens now lei... ?? going home first? -spam,"auction round 4. the highest bid is now ??54. next maximum bid is ??71. to bid, send bids e. g. 10 (to bid ??10) to 83383. good luck." -ham,leaving to qatar tonite in search of an opportunity.all went fast.pls add me in ur prayers dear.rakhesh -ham,pls clarify back if an open return ticket that i have can be preponed for me to go back to kerala. -ham,i want to send something that can sell fast. <#> k is not easy money. -ham,?? dun wan to watch infernal affair? -ham,surly ill give it to you:-) while coming to review. -ham,i dont understand your message. -ham,even if he my friend he is a priest call him now -ham,great escape. i fancy the bridge but needs her lager. see you tomo -ham,i'm done. c ?_ there. -ham,"yo carlos, a few friends are already asking me about you, you working at all this weekend?" -ham,2 and half years i missed your friendship:-) -ham,you should know now. so how's anthony. are you bringing money. i've school fees to pay and rent and stuff like that. thats why i need your help. a friend in need....| -ham,ok... -ham,i want to be inside you every night... -ham,the battery is for mr adewale my uncle. aka egbon -ham,yes i know the cheesy songs from frosty the snowman :) -ham,"idc get over here, you are not weaseling your way out of this shit twice in a row" -ham,not to worry. i'm sure you'll get it. -ham,alrite -ham,i wish things were different. i wonder when i will be able to show you how much i value you. pls continue the brisk walks no drugs without askin me please and find things to laugh about. i love you dearly. -ham,can ?_ send me a copy of da report? -ham,lol for real. she told my dad i have cancer -ham,well if i'm that desperate i'll just call armand again -ham,i dunno until when... lets go learn pilates... -ham,when are you going to ride your bike? -ham,love that holiday monday feeling even if i have to go to the dentists in an hour -ham,on hen night. going with a swing -ham,and you! will expect you whenever you text! hope all goes well tomo -spam,"customer service announcement. we recently tried to make a delivery to you but were unable to do so, please call 07090298926 to re-schedule. ref:9307622" -ham,hi darlin i finish at 3 do u 1 2 pick me up or meet me? text back on this number luv kate xxx -ham,i.ll hand her my phone to chat wit u -ham,so the sun is anti sleep medicine. -ham,this is hoping you enjoyed your game yesterday. sorry i've not been in touch but pls know that you are fondly bein thot off. have a great week. abiola -ham,ard 515 like dat. y? -ham,yes its possible but dint try. pls dont tell to any one k -ham,me fine..absolutly fine -ham,in other news after hassling me to get him weed for a week andres has no money. haughaighgtujhyguj -ham,its a valentine game. . . send dis msg to all ur friends. . if 5 answers r d same then someone really loves u. . ques- which colour suits me the best? -spam,"hottest pics straight to your phone!! see me getting wet and wanting, just for you xx text pics to 89555 now! txt costs 150p textoperator g696ga 18 xxx" -ham,yes just finished watching days of our lives. i love it. -spam,thanks for your subscription to ringtone uk your mobile will be charged ??5/month please confirm by replying yes or no. if you reply no you will not be charged -spam,dorothy@kiefer.com (bank of granite issues strong-buy) explosive pick for our members *****up over 300% *********** nasdaq symbol cdgt that is a $5.00 per.. -ham,oh...i asked for fun. haha...take care. ?_ -ham,now got tv 2 watch meh? u no work today? -ham,i don't know but i'm raping dudes at poker -ham,"my life means a lot to me, not because i love my life, but because i love the people in my life, the world calls them friends, i call them my world:-).. ge:-).." -ham,msgs r not time pass.they silently say that i am thinking of u right now and also making u think of me at least 4 a moment. gd nt.swt drms @shesil -ham,one of the joys in lifeis waking up each daywith thoughts that somewheresomeone cares enough tosend a warm morning greeting.. - -ham,beautiful truth : expression of the face could be seen by everyone... but the depression of heart could be understood only by the loved ones.. gud ni8;-) -ham,don't forget though that i love you .... and i walk beside you. watching over you and keeping your heart warm. -spam,from 88066 lost ??12 help -ham,i asked sen to come chennai and search for job. -ham,v nice! off 2 sheffield tom 2 air my opinions on categories 2 b used 2 measure ethnicity in next census. busy transcribing. :-) -spam,"do you realize that in about 40 years, we'll have thousands of old ladies running around with tattoos?" -ham,hey u still at the gym? -spam,sms auction - a brand new nokia 7250 is up 4 auction today! auction is free 2 join & take part! txt nokia to 86021 now! -ham,hi msg me:)i'm in office.. -ham,mum not going robinson already. -ham,hey... why dont we just go watch x men and have lunch... haha -ham,"erm... woodland avenue somewhere. do you get the parish magazine, his telephone number will be in there." -ham,do you know when the result. -ham,nutter. cutter. ctter. cttergg. cttargg. ctargg. ctagg. ie you -ham,mm yes dear look how i am hugging you both. :-p -ham,oh ya ya. i remember da. . -spam,free entry into our ??250 weekly comp just send the word enter to 88877 now. 18 t&c www.textcomp.com -spam,1000's of girls many local 2 u who r virgins 2 this & r ready 2 4fil ur every sexual need. can u 4fil theirs? text cute to 69911(??1.50p. m) -ham,hi.what you think about match? -ham,what type of stuff do you sing? -ham,wake me up at <#> am morning:) -ham,i am going to film 2day da. at 6pm. sorry da. -spam,"free2day sexy st george's day pic of jordan!txt pic to 89080 dont miss out, then every wk a saucy celeb!4 more pics c pocketbabe.co.uk 0870241182716 ??3/wk" -ham,i wont do anything de. -ham,yeah confirmed for you staying at that weekend -spam,"new mobiles from 2004, must go! txt: nokia to no: 89545 & collect yours today! from only ??1. www.4-tc.biz 2optout 087187262701.50gbp/mtmsg18 txtauction." -ham,"ever green quote ever told by jerry in cartoon \a person who irritates u always is the one who loves u vry much but fails to express it...!..!! :-) :-) gud nyt""" -ham,"somewhr someone is surely made 4 u. and god has decided a perfect time to make u meet dat person. . . . till den, . . . . . enjoy ur crushes..!!!;-)" -ham,my exam is for february 4. wish you a great day. -ham,also fuck you and your family for going to rhode island or wherever the fuck and leaving me all alone the week i have a new bong >:( -ham,yay can't wait to party together! -ham,ok -spam,"urgent ur awarded a complimentary trip to eurodisinc trav, aco&entry41 or ??1000. to claim txt dis to 87121 18+6*??1.50(morefrmmob. shracomorsglsuplt)10, ls1 3aj" -ham,i didn't get the second half of that message -ham,studying. but i.ll be free next weekend. -ham,we r outside already. -ham,dunno he jus say go lido. same time 930. -ham,no problem. talk to you later -ham,we not leaving yet. ok lor then we go elsewhere n eat. u thk... -ham,another month. i need chocolate weed and alcohol. -ham,i dont have any of your file in my bag..i was in work when you called me.i 'll tell you if i find anything in my room. -ham,s:)s.nervous <#> :) -spam,"you have won ?1,000 cash or a ?2,000 prize! to claim, call09050000327" -spam,you are now unsubscribed all services. get tons of sexy babes or hunks straight to your phone! go to http://gotbabes.co.uk. no subscriptions. -ham,hope you are having a great new semester. do wish you the very best. you are made for greatness. -ham,"sorry i missed you babe. i was up late and slept in. i hope you enjoy your driving lesson, boytoy. i miss you too ... *teasing kiss*" -ham,good morning. at the repair shop--the only reason i'm up at this hour. -ham,nothing will ever be easy. but don't be looking for a reason not to take a risk on life and love -spam,you are being ripped off! get your mobile content from www.clubmoby.com call 08717509990 poly/true/pix/ringtones/games six downloads for only 3 -ham,for real tho this sucks. i can't even cook my whole electricity is out. and i'm hungry. -ham,hi there. we have now moved in2 our pub . would be great 2 c u if u cud come up. -spam,i don't know u and u don't know me. send chat to 86688 now and let's find each other! only 150p/msg rcvd. hg/suite342/2lands/row/w1j6hl ldn. 18 years or over. -ham,"if e timing can, then i go w u lor..." -ham,no problem. we will be spending a lot of quality time together... -ham,yup i'm free... -ham,or remind me in a few hrs. -spam,"fantasy football is back on your tv. go to sky gamestar on sky active and play ??250k dream team. scoring starts on saturday, so register now!sky opt out to 88088" -ham,not much no fights. it was a good nite!! -ham,"hey elaine, is today's meeting still on?" -ham,are you willing to go for apps class. -ham,"they said if its gonna snow, it will start around 8 or 9 pm tonite! they are predicting an inch of accumulation." -ham,no sir. that's why i had an 8-hr trip on the bus last week. have another audition next wednesday but i think i might drive this time. -ham,i wait 4 ?_ inside da car park... -ham,"sir, i have been late in paying rent for the past few months and had to pay a $ <#> charge. i felt it would be inconsiderate of me to nag about something you give at great cost to yourself and that's why i didnt speak up. i however am in a recession and wont be able to pay the charge this month hence my askin well ahead of month's end. can you please help. thanks" -ham,don't forget who owns you and who's private property you are ... and be my good boy always .. *passionate kiss* -ham,"hi hope u get this txt~journey hasnt been gd,now about 50 mins late i think." -ham,"haha... where got so fast lose weight, thk muz go 4 a month den got effect... gee,later we go aust put bk e weight." -ham,they don't put that stuff on the roads to keep it from getting slippery over there? -ham,was actually sleeping and still might when u call back. so a text is gr8. you rock sis. will send u a text wen i wake. -ham,"just gettin a bit arty with my collages at the mo, well tryin 2 ne way! got a roast in a min lovely i shall enjoy that!" -ham,dont flatter yourself... tell that man of mine two pints of carlin in ten minutes please.... -ham,"that's fine, have him give me a call if he knows what he wants or has any questions" -ham,have you laid your airtel line to rest? -ham,sure! i am driving but will reach my destination soon. -ham,"whatever, juliana. do whatever you want." -ham,dude im no longer a pisces. im an aquarius now. -ham,hello beautiful r u ok? i've kinda ad a row wiv and he walked out the pub?? i wanted a night wiv u miss u -ham,if i die i want u to have all my stuffs. -ham,at home by the way -ham,remember on that day.. -ham,"i.ll always be there, even if its just in spirit. i.ll get a bb soon. just trying to be sure i need it." -ham,hmm...bad news...hype park plaza $700 studio taken...only left 2 bedrm-$900... -ham,please da call me any mistake from my side sorry da. pls da goto doctor. -ham,and whenever you and i see we can still hook up too. -ham,nah im goin 2 the wrks with j wot bout u? -spam,bored housewives! chat n date now! 0871750.77.11! bt-national rate 10p/min only from landlines! -ham,"\none!nowhere ikno doesdiscount!shitinnit\""""" -ham,thanks for your message. i really appreciate your sacrifice. i'm not sure of the process of direct pay but will find out on my way back from the test tomorrow. i'm in class now. do have a wonderful day. -ham,"bloody hell, cant believe you forgot my surname mr . ill give u a clue, its spanish and begins with m..." -ham,"\not enufcredeit tocall.shall ileave uni at 6 +get a bus to yor house?\""""" -ham,"hi, mobile no. <#> has added you in their contact list on www.fullonsms.com it s a great place to send free sms to people for more visit fullonsms.com" -spam,74355 xmas iscoming & ur awarded either ??500 cd gift vouchers & free entry 2 r ??100 weekly draw txt music to 87066 tnc -ham,that's cause your old. i live to be high. -ham,"come to me, slave. your doing it again ... going into your shell and unconsciously avoiding me ... you are making me unhappy :-(" -spam,"urgent! your mobile no *********** won a ??2,000 bonus caller prize on 02/06/03! this is the 2nd attempt to reach you! call 09066362220 asap! box97n7qp, 150ppm" -ham,where you. what happen -ham,what r u cooking me for dinner? -spam,"you are guaranteed the latest nokia phone, a 40gb ipod mp3 player or a ??500 prize! txt word: collect to no: 83355! ibhltd ldnw15h 150p/mtmsgrcvd18+" -ham,"she said,'' do u mind if i go into the bedroom for a minute ? '' ''ok'', i sed in a sexy mood. she came out 5 minuts latr wid a cake...n my wife," -ham,eat at old airport road... but now 630 oredi... got a lot of pple... -ham,"yes but i dont care! i need you bad, princess!" -ham,i can't make it tonight -spam,"urgent. important information for 02 user. today is your lucky day! 2 find out why , log onto http://www.urawinner.com there is a fantastic surprise awaiting you !" -ham,excellent. i spent <#> years in the air force. iraq and afghanistan. i am stable and honest. do you like traveling? -ham,i'll be at mu in like <#> seconds -spam,"congrats 2 mobile 3g videophones r yours. call 09063458130 now! videochat wid ur mates, play java games, dload polyph music, noline rentl. bx420. ip4. 5we. 150p" -ham,what you doing?how are you? -ham,leave it wif me lar... ?? wan to carry meh so heavy... is da num 98321561 familiar to ?_? -ham,"geeeee ... your internet is really bad today, eh ?" -ham,"awesome, i'll see you in a bit" -ham,"the sign of maturity is not when we start saying big things.. but actually it is, when we start understanding small things... *have a nice evening* bslvyl" -ham,"i just got home babe, are you still awake ?" -ham,uncle boye. i need movies oh. guide me. plus you know torrents are not particularly legal here. and the system is slowing down. what should i do. have a gr8 day. plus have you started cos i dont meet you online. how was the honey moon. -spam,bought one ringtone and now getting texts costing 3 pound offering more tones etc -ham,yes da. any plm at ur office -ham,aiyo please ?_ got time meh. -ham,thats cool! sometimes slow and gentle. sonetimes rough and hard :) -ham,ya i knw u vl giv..its ok thanks kano..anyway enjoy wit ur family wit 1st salary..:-);-) -ham,* am on a train back from northampton so i'm afraid not! -spam,"freemsg hey u, i just got 1 of these video/pic fones, reply wild to this txt & ill send u my pics, hurry up im so bored at work xxx (18 150p/rcvd stop2stop)" -ham,"merry christmas to you too babe, i love ya *kisses*" -ham,lol no ouch but wish i'd stayed out a bit longer -ham,hi good mornin.. thanku wish u d same.. -ham,love it! the girls at the office may wonder why you are smiling but sore... -spam,"congrats! 1 year special cinema pass for 2 is yours. call 09061209465 now! c suprman v, matrix3, starwars3, etc all 4 free! bx420-ip4-5we. 150pm. dont miss out!" -ham,ok no problem... yup i'm going to sch at 4 if i rem correctly... -ham,when is school starting. where will you stay. what's the weather like. and the food. do you have a social support system like friends in the school. all these things are important. -ham,"nah man, my car is meant to be crammed full of people" -ham,i enjoy watching and playing football and basketball. anything outdoors. and you? -ham,ok. but i finish at 6. -spam,please call our customer service representative on freephone 0808 145 4742 between 9am-11pm as you have won a guaranteed ??1000 cash or ??5000 prize! -ham,ok i msg u b4 i leave my house. -ham,"sir, i am waiting for your mail." -ham,"arms fine, how's cardiff and uni?" -ham,we can go 4 e normal pilates after our intro... -ham,ok... -ham,"that's the trouble with classes that go well - you're due a dodgey one ??_ expecting mine tomo! see you for recovery, same time, same place" -ham,i've been searching for the right words to thank you for this breather. i promise i wont take your help for granted and will fulfil my promise. you have been wonderful and a blessing at all times. -ham,k..give back my thanks. -ham,i am not sure about night menu. . . i know only about noon menu -ham,got c... i lazy to type... i forgot ?_ in lect... i saw a pouch but like not v nice... -ham,how would my ip address test that considering my computer isn't a minecraft server -ham,i'm in a movie... collect car oredi... -spam,enjoy the jamster videosound gold club with your credits for 2 new videosounds+2 logos+musicnews! get more fun from jamster.co.uk! 16+only help? call: 09701213186 -ham,"living is very simple.. loving is also simple.. laughing is too simple.. winning is tooo simple.. but, being 'simple' is very difficult...;-) :-)" -ham,how much is blackberry bold2 in nigeria. -spam,double mins & double txt & 1/2 price linerental on latest orange bluetooth mobiles. call mobileupd8 for the very latest offers. 08000839402 or call2optout/lf56 -ham,"sorry sir, i will call you tomorrow. senthil.hsbc" -ham,"that day ?_ say ?_ cut ur hair at paragon, is it called hair sense? do ?_ noe how much is a hair cut?" -ham,"fighting with the world is easy, u either win or lose bt fightng with some1 who is close to u is dificult if u lose - u lose if u win - u still lose." -ham,i'm fine. hope you are also -ham,good morning my dear shijutta........... have a great & successful day. -spam,85233 free>ringtone!reply real -ham,horrible bf... i now v hungry... -ham,am surfing online store. for offers do you want to buy any thing. -ham,"fyi i'm taking a quick shower, be at epsilon in like <#> min" -ham,"if i let you do this, i want you in the house by 8am." -ham,are your freezing ? are you home yet ? will you remember to kiss your mom in the morning? do you love me ? do you think of me ? are you missing me yet ? -spam,"win: we have a winner! mr. t. foley won an ipod! more exciting prizes soon, so keep an eye on ur mobile or visit www.win-82050.co.uk" -ham,if you're thinking of lifting me one then no. -ham,well at this right i'm gonna have to get up and check today's steam sales/pee so text me when you want me to come get you -ham,okay same with me. well thanks for the clarification -ham,re your call; you didn't see my facebook huh? -ham,3 pa but not selected. -ham,"helloooo... wake up..! \sweet\"" \""morning\"" \""welcomes\"" \""you\"" \""enjoy\"" \""this day\"" \""with full of joy\"".. \""gud mrng\"".""" -ham,dude ive been seeing a lotta corvettes lately -ham,"hiya , have u been paying money into my account? if so, thanks. got a pleasant surprise when i checked my balance -u c, i don't get statements 4 that acc" -ham,o was not into fps then. -ham,finish already... yar they keep saying i mushy... i so embarrassed ok... -spam,"your free ringtone is waiting to be collected. simply text the password \mix\"" to 85069 to verify. get usher and britney. fml mk17 92h. 450ppw 16""" -ham,look at the fuckin time. what the fuck you think is up -ham,"turns out my friends are staying for the whole show and won't be back til ~ <#> , so feel free to go ahead and smoke that $ <#> worth" -ham,no screaming means shouting.. -ham,x2 <#> . are you going to get that -ham,one day a crab was running on the sea shore..the waves came n cleared the footprints of the crab.. crab asked: being my frnd y r u clearing my beautiful footprints? waves replied: a fox was following ur footprints to catch you! thats y i cleared it off:) frndsship never lets u dwn :-) gud nyt.. -ham,in da car park -ham,kind of. took it to garage. centre part of exhaust needs replacing. part ordered n taking it to be fixed tomo morning. -ham,hey check it da. i have listed da. -ham,"that would be good ??_ i'll phone you tomo lunchtime, shall i, to organise something?" -ham,y de asking like this. -ham,its too late:)but its k.wish you the same. -ham,if i said anything wrong sorry de:-) -ham,no. to be nosy i guess. idk am i over reacting if i'm freaked? -ham,to day class is there are no class. -ham,"dear, take care. i am just reaching home.love u a lot." -ham,"no shit, but i wasn't that surprised, so i went and spent the evening with that french guy i met in town here and we fooled around a bit but i didn't let him fuck me" -ham,"fighting with the world is easy, u either win or lose bt fightng with some1 who is close to u is dificult if u lose - u lose if u win - u still lose." -ham,ya! when are ?_ taking ure practical lessons? i start in june.. -ham,did u download the fring app? -ham,i know girls always safe and selfish know i got it pa. thank you. good night. -ham,may b approve panalam...but it should have more posts.. -ham,ard 6 like dat lor. -ham,those were my exact intentions -ham,do well :)all will for little time. thing of good times ahead: -ham,"a boy loved a gal. he propsd bt she didnt mind. he gv lv lttrs, bt her frnds threw thm. again d boy decided 2 aproach d gal , dt time a truck was speeding towards d gal. wn it was about 2 hit d girl,d boy ran like hell n saved her. she asked 'hw cn u run so fast?' d boy replied \boost is d secret of my energy\"" n instantly d girl shouted \""our energy\"" n thy lived happily 2gthr drinking boost evrydy moral of d story:- i hv free msgs:d;): gud ni8""" -spam,cds 4u: congratulations ur awarded ??500 of cd gift vouchers or ??125 gift guaranteed & freeentry 2 ??100 wkly draw xt music to 87066 tncs www.ldew.com1win150ppmx3age16 -ham,"i shall book chez jules for half eight, if that's ok with you?" -ham,u meet other fren dun wan meet me ah... muz b a guy rite... -ham,am only searching for good dual sim mobile pa. -ham,"i'm nt goin, got somethin on, unless they meetin 4 dinner lor... haha, i wonder who will go tis time..." -ham,"please protect yourself from e-threats. sib never asks for sensitive information like passwords,atm/sms pin thru email. never share your password with anybody." -ham,i love working from home :) -ham,ok i am on the way to home hi hi -ham,i like to think there's always the possibility of being in a pub later. -ham,cant think of anyone with * spare room off * top of my head -spam,recpt 1/3. you have ordered a ringtone. your order is being processed... -ham,"finally it has happened..! aftr decades..! beer is now cheaper than petrol! the goverment expects us to \drink\"". . . but don't \""drive \""""" -ham,see you there! -spam,santa calling! would your little ones like a call from santa xmas eve? call 09077818151 to book you time. calls1.50ppm last 3mins 30s t&c www.santacalling.com -ham,i dunno lei... like dun haf... -ham,you do what all you like -ham,"k.. i yan jiu liao... sat we can go 4 bugis vill one frm 10 to 3 den hop to parco 4 nb. sun can go cine frm 1030 to 2, den hop to orc mrt 4 hip hop at 4..." -ham,here is my new address -apples&pairs&all that malarky -ham,a pure hearted person can have a wonderful smile that makes even his/her enemies to feel guilty for being an enemy.. so catch the world with your smile..:) goodmorning & have a smiley sunday..:) -ham,lol ok. i'll snatch her purse too. -ham,dunno lei ?_ all decide lor. how abt leona? oops i tot ben is going n i msg him. -ham,how are you holding up? -spam,"this is the 2nd time we have tried 2 contact u. u have won the ??750 pound prize. 2 claim is easy, call 087187272008 now1! only 10p per minute. bt-national-rate." -spam,t-mobile customer you may now claim your free camera phone upgrade & a pay & go sim card for your loyalty. call on 0845 021 3680.offer ends 28thfeb.t&c's apply -ham,"i thought i'd get him a watch, just cos thats the kind of thing u get4an18th. and he loves so much!" -spam,u are subscribed to the best mobile content service in the uk for ??3 per 10 days until you send stop to 82324. helpline 08706091795 -ham,how abt making some of the pics bigger? -ham,dont think so. it turns off like randomlly within 5min of opening -ham,am i that much bad to avoid like this? -spam,"loan for any purpose ??500 - ??75,000. homeowners + tenants welcome. have you been previously refused? we can still help. call free 0800 1956669 or text back 'help'" -ham,ok lar... joking wif u oni... -ham,"what part of \don't initiate\"" don't you understand""" -ham,ok thanx... -ham,"oh, the grand is having a bit of a party but it doesn't mention any cover charge so it's probably first come first served" -ham,pls speak with me. i wont ask anything other then you friendship. -ham,my love ... i hope your not doing anything drastic. don't you dare sell your pc or your phone ... -ham,o we cant see if we can join denis and mina? or does denis want alone time -ham,change again... it's e one next to escalator... -ham,i'm in class. will holla later -ham,ok lor... -ham,"had the money issue weigh me down but thanks to you, i can breathe easier now. i.ll make sure you dont regret it. thanks." -ham,"now u sound like manky scouse boy steve,like! i is travelling on da bus home.wot has u inmind 4 recreation dis eve?" -ham,i want <#> rs da:)do you have it? -ham,purity of friendship between two is not about smiling after reading the forwarded message..its about smiling just by seeing the name. gud evng musthu -ham,... are you in the pub? -ham,aiyar hard 2 type. u later free then tell me then i call n scold n tell u. -spam,we tried to contact you re our offer of new video phone 750 anytime any network mins half price rental camcorder call 08000930705 or reply for delivery wed -ham,mm that time you dont like fun -ham,just checking in on you. really do miss seeing jeremiah. do have a great month -ham,?? go home liao? ask dad to pick me up at 6... -ham,"aight, let me know when you're gonna be around usf" -spam,december only! had your mobile 11mths+? you are entitled to update to the latest colour camera mobile for free! call the mobile update co free on 08002986906 -ham,"its ok, if anybody asks abt me, u tel them..:-p" -spam,get a brand new mobile phone by being an agent of the mob! plus loads more goodies! for more info just text mat to 87021. -spam,"44 7732584351, do you want a new nokia 3510i colour phone deliveredtomorrow? with 300 free minutes to any mobile + 100 free texts + free camcorder reply or call 08000930705." -ham,but your brother transfered only <#> + <#> . pa. -ham,the whole car appreciated the last two! dad and are having a map reading semi argument but apart from that things are going ok. p. -ham,come to my home for one last time i wont do anything. trust me. -spam,thanks 4 your continued support your question this week will enter u in2 our draw 4 ??100 cash. name the new us president? txt ans to 80082 -ham,is that seriously how you spell his name? -ham,ujhhhhhhh computer shipped out with address to sandiago and parantella lane. wtf. poop. -ham,how much it will cost approx . per month. -ham,yes.he have good crickiting mind -spam,private! your 2004 account statement for 078498****7 shows 786 unredeemed bonus points. to claim call 08719180219 identifier code: 45239 expires 06.05.05 -ham,you know what hook up means right? -spam,07732584351 - rodger burns - msg = we tried to call you re your reply to our sms for a free nokia mobile + free camcorder. please call now 08000930705 for delivery tomorrow -ham,when you are big..| god will bring success. -ham,lol well don't do it without me. we could have a big sale together. -ham,s:)8 min to go for lunch:) -ham,"science tells that chocolate will melt under the sunlight. please don't walk under the sunlight. bcoz,i don't want to loss a sweet friend." -spam,"hot live fantasies call now 08707509020 just 20p per min ntt ltd, po box 1327 croydon cr9 5wb 0870 is a national rate call" -spam,block breaker now comes in deluxe format with new features and great graphics from t-mobile. buy for just ??5 by replying get bbdeluxe and take the challenge -ham,"u so lousy, run already come back then half dead... hee..." -ham,i???ll have a look at the frying pan in case it???s cheap or a book perhaps. no that???s silly a frying pan isn???t likely to be a book -ham,"yun ah.the ubi one say if ?_ wan call by tomorrow.call 67441233 look for irene.ere only got bus8,22,65,61,66,382. ubi cres,ubi tech park.6ph for 1st 5wkg days.??n" -ham,oh k...i'm watching here:) -ham,saw guys and dolls last night with patrick swayze it was great -ham,what year. and how many miles. -ham,he says hi and to get your ass back to south tampa (preferably at a kegger) -ham,don???t give a flying monkeys wot they think and i certainly don???t mind. any friend of mine and all that! -ham,"dear,me at cherthala.in case u r coming cochin pls call bfore u start.i shall also reach accordingly.or tell me which day u r coming.tmorow i am engaged ans its holiday." -ham,it's really getting me down just hanging around. -ham,nice line said by a broken heart- plz don't cum 1 more times infront of me... other wise once again i ll trust u... good 9t:) -ham,he neva grumble but i sad lor... hee... buy tmr lor aft lunch. but we still meetin 4 lunch tmr a not. neva hear fr them lei. ?? got a lot of work ar? -ham,"you are sweet as well, princess. please tell me your likes and dislikes in bed..." -ham,aah bless! how's your arm? -ham,ladies first and genus second k . -ham,"dude. what's up. how teresa. hope you have been okay. when i didnt hear from these people, i called them and they had received the package since dec <#> . just thot you'ld like to know. do have a fantastic year and all the best with your reading. plus if you can really really bam first aid for usmle, then your work is done." -ham,gud ni8.swt drms.take care -ham,am not interested to do like that. -ham,still work going on:)it is very small house. -ham,will do. have a good day -ham,still otside le..u come 2morrow maga.. -ham,ok....take care.umma to you too... -ham,at the funeral home with audrey and dad -ham,dear i have reache room -ham,check with nuerologist. -ham,right it wasnt you who phoned it was someone with a number like yours! -spam,500 free text msgs. just text ok to 80488 and we'll credit your account -ham,1. tension face 2. smiling face 3. waste face 4. innocent face 5.terror face 6.cruel face 7.romantic face 8.lovable face 9.decent face <#> .joker face. -ham,he said i look pretty wif long hair wat. but i thk he's cutting quite short 4 me leh. -ham,mmm thats better now i got a roast down me! i??d b better if i had a few drinks down me 2! good indian? -ham,i am in escape theatre now. . going to watch kavalan in a few minutes -ham,i think i've fixed it can you send a test message? -ham,from tomorrow onwards eve 6 to 3 work. -ham,misplaced your number and was sending texts to your old number. wondering why i've not heard from you this year. all the best in your mcat. got this number from my atlanta friends -ham,i had a good time too. its nice to do something a bit different with my weekends for a change. see ya soon -ham,well good morning mr . hows london treatin' ya treacle? -ham,"lol you forgot it eh ? yes, i'll bring it in babe" -ham,"al he does is moan at me if n e thin goes wrong its my fault&al de arguments r my fault&fed up of him of himso y bother? hav 2go, thanx.xx" -ham,captain vijaykanth is doing comedy in captain tv..he is drunken :) -ham,i am thinking of going down to reg for pract lessons.. flung my advance.. haha wat time u going? -ham,hmm .. bits and pieces lol ... *sighs* ... -ham,hey tmr maybe can meet you at yck -ham,"fun fact: although you would think armand would eventually build up a tolerance or some shit considering how much he smokes, he gets fucked up in like 2 hits" -ham,i'm hungry buy smth home... -ham,what's happening with you. have you gotten a job and have you begun registration for permanent residency -ham,apo all other are mokka players only -spam,"smsservices. for yourinclusive text credits, pls goto www.comuk.net login= 3qxj9 unsubscribe with stop, no extra charge. help 08702840625.comuk. 220-cm2 9ae" -ham,"hello.how u doing?what u been up 2?when will u b moving out of the flat, cos i will need to arrange to pick up the lamp, etc. take care. hello caroline!" -ham,when u love someone dont make them to love u as much as u do. but love them so much that they dont want to be loved by anyone except you... gud nit. -ham,that is wondar full flim. -spam,i am hot n horny and willing i live local to you - text a reply to hear strt back from me 150p per msg netcollex ltdhelpdesk: 02085076972 reply stop to end -ham,hi dude hw r u da realy mising u today -ham,den wat will e schedule b lk on sun? -ham,"k will do, addie & i are doing some art so i'll be here when you get home" -ham,yo theres no class tmrw right? -ham,so how's the weather over there? -ham,huh? 6 also cannot? then only how many mistakes? -spam,winner!! as a valued network customer you have been selected to receivea ??900 prize reward! to claim call 09061701461. claim code kl341. valid 12 hours only. -ham,"no, i was trying it all weekend ;v" -ham,"sorry, i'll call later" -ham,why must we sit around and wait for summer days to celebrate. such a magical sight when the worlds dressed in white. oooooh let there be snow. -ham,"yeah, give me a call if you've got a minute" -ham,"tick, tick, tick .... where are you ? i could die of loneliness you know ! *pouts* *stomps feet* i need you ..." -spam,married local women looking for discreet action now! 5 real matches instantly to your phone. text match to 69969 msg cost 150p 2 stop txt stop bcmsfwc1n3xx -ham,the guy did some bitching but i acted like i'd be interested in buying something else next week and he gave it to us for free -ham,i'm glad. you are following your dreams. -ham,"sez, hows u & de arab boy? hope u r all good give my love 2 evry1 love ya eshxxxxxxxxxxx" -ham,where are you ? what are you doing ? are yuou working on getting the pc to your mom's ? did you find a spot that it would work ? i need you -ham,"hey, looks like i was wrong and one of the kappa guys numbers is still on my phone, if you want i can text him and see if he's around" -ham,"hi, mobile no. <#> has added you in their contact list on www.fullonsms.com it s a great place to send free sms to people for more visit fullonsms.com" -ham,that's one of the issues but california is okay. no snow so its manageable -spam,urgent! we are trying to contact u. todays draw shows that you have won a ??2000 prize guaranteed. call 09058094507 from land line. claim 3030. valid 12hrs only -ham,yes we are chatting too. -ham,"fair enough, anything going on?" -ham,ok lor ?_ reaching then message me. -ham,hi..i got the money da:) -spam,no. 1 nokia tone 4 ur mob every week! just txt nok to 87021. 1st tone free ! so get txtin now and tell ur friends. 150p/tone. 16 reply hl 4info -ham,the greatest test of courage on earth is to bear defeat without losing heart....gn tc -ham,takin a shower now but yeah i'll leave when i'm done -ham,carlos is taking his sweet time as usual so let me know when you and patty are done/want to smoke and i'll tell him to haul ass -ham,sos! any amount i can get pls. -ham,rats. hey did u ever vote for the next themes? -ham,i went to project centre -ham,"i'm a guy, browsin is compulsory" -ham,blank is blank. but wat is blank? lol -ham,i'm home. -ham,"princess, i like to make love <#> times per night. hope thats not a problem!" -ham,nvm take ur time. -ham,"sorry, my battery died, i can come by but i'm only getting a gram for now, where's your place?" -ham,i absolutely love south park! i only recently started watching the office. -ham,printer is cool. i mean groovy. wine is groovying -ham,the message sent is askin for <#> dollars. shoul i pay <#> or <#> ? -ham,darren was saying dat if u meeting da ge den we dun meet 4 dinner. cos later u leave xy will feel awkward. den u meet him 4 lunch lor. -ham,\alright babe -ham,"bill, as in: are there any letters for me. i???m expecting one from orange that isn???t a bill but may still say orange on it." -ham,i will be gentle princess! we will make sweet gentle love... -ham,take us out shopping and mark will distract isaiah.=d -ham,cramps stopped. going back to sleep -ham,"yar lor he wan 2 go c horse racing today mah, so eat earlier lor. i ate chicken rice. u?" -ham,i fetch yun or u fetch? -ham,a guy who gets used but is too dumb to realize it. -ham,oh ho. is this the first time u use these type of words -ham,ok i'm gonna head up to usf in like fifteen minutes -ham,just finished. missing you plenty -ham,you can never do nothing -ham,thats cool. i want to please you... -ham,we don call like <#> times oh. no give us hypertension oh. -ham,hiya hows it going in sunny africa? hope u r avin a good time. give that big old silver back a big kiss from me. -ham,dun b sad.. it's over.. dun thk abt it already. concentrate on ur other papers k. -ham,he says hi and to get your ass back to south tampa (preferably at a kegger) -ham,"daddy, shu shu is looking 4 u... u wan me 2 tell him u're not in singapore or wat?" -ham,should i buy him a blackberry bold 2 or torch. should i buy him new or used. let me know. plus are you saying i should buy the <#> g wifi ipad. and what are you saying about the about the <#> g? -ham,do not b late love mum -ham,"hi, can i please get a <#> dollar loan from you. i.ll pay you back by mid february. pls." -ham,at bruce b downs & fletcher now -ham,where's mummy's boy ? is he being good or bad ? is he being positive or negative ? why is mummy being made to wait? hmmmm? -ham,"perhaps * is much easy give your account identification, so i will tomorrow at uni" -ham,yes. last practice -ham,"good friends care for each other.. close friends understand each other... and true friends stay forever beyond words, beyond time. gud ni8" -ham,yes fine -ham,whatsup there. dont u want to sleep -ham,waiting 4 my tv show 2 start lor... u leh still busy doing ur report? -ham,the wine is flowing and i'm i have nevering.. -ham,i'll be in sch fr 4-6... i dun haf da book in sch... it's at home... -ham,omg if its not one thing its another. my cat has worms :/ when does this bad day end? -ham,my house here e sky quite dark liao... if raining then got excuse not 2 run already rite... hee... -spam,okmail: dear dave this is your final notice to collect your 4* tenerife holiday or #5000 cash award! call 09061743806 from landline. tcs sae box326 cw25wx 150ppm -ham,no objection. my bf not coming. -ham,it didnt work again oh. ok goodnight then. i.ll fix and have it ready by the time you wake up. you are very dearly missed have a good night sleep. -ham,yup having my lunch buffet now.. u eat already? -ham,ok . . now i am in bus. . if i come soon i will come otherwise tomorrow -ham,please don't text me anymore. i have nothing else to say. -ham,can't take any major roles in community outreach. you rock mel -ham,huh means computational science... y they like dat one push here n there... -spam,"urgent! call 09066350750 from your landline. your complimentary 4* ibiza holiday or 10,000 cash await collection sae t&cs po box 434 sk3 8wp 150 ppm 18+" -ham,wish u many many returns of the day.. happy birthday vikky.. -ham,good evening! how are you? -ham,k.k:)advance happy pongal. -ham,stupid.its not possible -ham,"me not waking up until 4 in the afternoon, sup" -ham,"i promise to take good care of you, princess. i have to run now. please send pics when you get a chance. ttyl!" -ham,"naughty little thought: 'its better to flirt, flirt n flirt, rather than loving someone n gettin hurt, hurt n hurt...:-) gud nyt" -ham,have you been practising your curtsey? -ham,noice. text me when you're here -ham,i dont know why she.s not getting your messages -ham,"aight will do, thanks again for comin out" -ham,havent still waitin as usual... ?? come back sch oredi? -ham,how is your schedule next week? i am out of town this weekend. -spam,please call our customer service representative on 0800 169 6031 between 10am-9pm as you have won a guaranteed ??1000 cash or ??5000 prize! -ham,"k, can i pick up another 8th when you're done?" -ham,today is accept day..u accept me as? brother sister lover dear1 best1 clos1 lvblefrnd jstfrnd cutefrnd lifpartnr belovd swtheart bstfrnd no rply means enemy -ham,oh you got many responsibilities. -ham,yetunde i'm in class can you not run water on it to make it ok. pls now. -ham,i'm still pretty weak today .. bad day ? -ham,cud u tell ppl im gona b a bit l8 cos 2 buses hav gon past cos they were full & im still waitin 4 1. pete x -ham,oh :-)only 4 outside players allowed to play know -ham,change windows logoff sound.. -ham,do u konw waht is rael friendship im gving yuo an exmpel: jsut ese tihs msg.. evrey splleing of tihs msg is wrnog.. bt sitll yuo can raed it wihtuot ayn mitsake.. goodnight & have a nice sleep..sweet dreams.. -ham,"(no promises on when though, haven't even gotten dinner yet)" -spam,you are chosen to receive a ??350 award! pls call claim number 09066364311 to collect your award which you are selected to receive as a valued mobile customer. -ham,you are gorgeous! keep those pix cumming :) thank you! -spam,"will u meet ur dream partner soon? is ur career off 2 a flyng start? 2 find out free, txt horo followed by ur star sign, e. g. horo aries" -ham,"chile, please! it's only a <decimal> hour drive for me. i come down all the time and will be subletting feb-april for audition season." -ham,i'm in inside office..still filling forms.don know when they leave me. -ham,she doesnt need any test. -ham,thats cool! i am a gentleman and will treat you with dignity and respect. -spam,"call 09094100151 to use ur mins! calls cast 10p/min (mob vary). service provided by aom, just gbp5/month. aom box61,m60 1er until u stop. ages 18+ only!" -ham,sindu got job in birla soft .. -ham,ee msg na poortiyagi odalebeku: hanumanji 7 name 1-hanuman 2-bajarangabali 3-maruti 4-pavanaputra 5-sankatmochan 6-ramaduth 7-mahaveer ee 7 name <#> janarige ivatte kalisidare next saturday olage ondu good news keluviri...! maretare inde 1 dodda problum nalli siguviri idu matra <#> % true.. don't neglet. -ham,also remember to get dobby's bowl from your car -ham,good morning plz call me sir -ham,"\im at arestaurant eating squid! i will be out about 10:30 wanna dosomething or is that to late?\""""" -ham,fyi i'm gonna call you sporadically starting at like <#> bc we are not not doin this shit -ham,hi di is yijue we're meeting at 7 pm at esaplanade tonight. -ham,"awesome, think we can get an 8th at usf some time tonight?" -ham,"oh... i was thkin of goin yogasana at 10 den no nd to go at 3 den can rush to parco 4 nb... okie lor, u call me when ready..." -spam,"sms services. for your inclusive text credits, pls goto www.comuk.net login= 3qxj9 unsubscribe with stop, no extra charge. help 08702840625.comuk. 220-cm2 9ae" -spam,todays voda numbers ending 5226 are selected to receive a ?350 award. if you hava a match please call 08712300220 quoting claim code 1131 standard rates app -ham,they finally came to fix the ceiling. -ham,i know you are serving. i mean what are you doing now. -ham,ya had just now.onion roast. -ham,"\ah poor baby!hope urfeeling bettersn luv! probthat overdose of work hey go careful spk 2 u sn lots of lovejen xxx.\""""" -ham,thanx... -ham,how many licks does it take to get to the center of a tootsie pop? -spam,"urgent! your mobile no was awarded a ??2,000 bonus caller prize on 1/08/03! this is our 2nd attempt to contact you! call 0871-4719-523 box95qu bt national rate" -ham,i cant pick the phone right now. pls send a message -ham,"we know taj mahal as symbol of love. but the other lesser known facts 1. mumtaz was shahjahan's 4th wife, out of his 7 wifes. 2. shahjahan killed mumtaz's husband to marry her. 3. mumtaz died in her <#> th delivery. 4. he then married mumtaz's sister. question arises where the hell is the love?:-| -the great hari-" -ham,give me a sec to think think about it -ham,from someone not to smoke when every time i've smoked in the last two weeks is because of you calling or texting me that you wanted to smoke -ham,"not really dude, have no friends i'm afraid :(" -ham,"just sent you an email ??? to an address with incomm in it, is that right?" -ham,wish i were with you now! -spam,ur going 2 bahamas! callfreefone 08081560665 and speak to a live operator to claim either bahamas cruise of??2000 cash 18+only. to opt out txt x to 07786200117 -ham,"i can. but it will tell quite long, cos i haven't finish my film yet..." -ham,all was well until slightly disastrous class this pm with my fav darlings! hope day off ok. coffee wld be good as can't stay late tomorrow. same time + place as always? -ham,i am at the gas station. go there. -ham,oh ya... got hip hop open. haha i was thinking can go for jazz then zoom to cine... actually tonight i'm free leh... and there's a kb lesson tonight -ham,oh yah... we never cancel leh... haha -ham,hi! you just spoke to maneesha v. we'd like to know if you were satisfied with the experience. reply toll free with yes or no. -ham,finally the match heading towards draw as your prediction. -ham,"nope. since ayo travelled, he has forgotten his guy" -spam,filthy stories and girls waiting for your -spam,"had your contract mobile 11 mnths? latest motorola, nokia etc. all free! double mins & text on orange tariffs. text yes for callback, no to remove from records." -ham,"ya, i'm referin to mei's ex wat... no ah, waitin 4 u to treat, somebody shld b rich liao...so gd, den u dun have to work frm tmr onwards..." -spam,bloomberg -message center +447797706009 why wait? apply for your future http://careers. bloomberg.com -ham,you always make things bigger than they are -ham,wat makes some people dearer is not just de happiness dat u feel when u meet them but de pain u feel when u miss dem!!! -ham,oh yeah i forgot. u can only take 2 out shopping at once. -ham,"mostly sports type..lyk footbl,crckt.." -ham,sleeping nt feeling well -ham,wat makes some people dearer is not just de happiness dat u feel when u meet them but de pain u feel when u miss dem!!! -ham,why tired what special there you had -ham,who are you seeing? -ham,"no i'm good for the movie, is it ok if i leave in an hourish?" -ham,"sorry, i'll call later" -ham,well boy am i glad g wasted all night at applebees for nothing -ham,i love to cuddle! i want to hold you in my strong arms right now... -ham,i have a sore throat. it's scratches when i talk -ham,do u knw dis no. <#> ? -ham,"oops - am at my mum's in somerset... bit far! back tomo, see you soon x" -ham,"good evening sir, al salam wahleykkum.sharing a happy news.by the grace of god, i got an offer from tayseer,tissco and i joined.hope you are fine.inshah allah,meet you sometime.rakhesh,visitor from india." -ham,thanks for being there for me just to talk to on saturday. you are very dear to me. i cherish having you as a brother and role model. -ham,i'll talk to the others and probably just come early tomorrow then -ham,i to am looking forward to all the sex cuddling.. only two more sleeps -ham,"like <#> , same question" -spam,get the official england poly ringtone or colour flag on yer mobile for tonights game! text tone or flag to 84199. optout txt eng stop box39822 w111wx ??1.50 -ham,nope i waiting in sch 4 daddy... -ham,"he said that he had a right giggle when he saw u again! you would possibly be the first person2die from nvq, but think how much you could for!" -ham,jus finish blowing my hair. u finish dinner already? -spam,"free msg. sorry, a service you ordered from 81303 could not be delivered as you do not have sufficient credit. please top up to receive the service." -ham,"when people see my msgs, they think iam addicted to msging... they are wrong, bcoz they don\'t know that iam addicted to my sweet friends..!! bslvyl" -ham,nt yet chikku..simple habba..hw abt u? -ham,lol great now im getting hungry. -ham,hey girl. how r u? hope u r well me an del r bak! again long time no c! give me a call sum time from lucyxx -ham,ok.ok ok..then..whats ur todays plan -ham,ok.. ?? finishing soon? -ham,"hey sexy buns ! have i told you ? i adore you, loverboy. i hope you remember to thank your sister in law for those meatballs *grins* ... i love you, babe" -ham,enjoy ur life. . good night -ham,"the guy (kadeem) hasn't been selling since the break, i know one other guy but he's paranoid as fuck and doesn't like selling without me there and i can't be up there til late tonight" -spam,"ou are guaranteed the latest nokia phone, a 40gb ipod mp3 player or a ??500 prize! txt word: collect to no: 83355! ibhltd ldnw15h 150p/mtmsgrcvd18" -ham,yup -spam,"hi there, 2nights ur lucky night! uve been invited 2 xchat, the uks wildest chat! txt chat to 86688 now! 150p/msgrcvdhg/suite342/2lands/row/w1j6hl ldn 18yrs" -ham,hai priya are you right. what doctor said pa. where are you. -ham,i dont thnk its a wrong calling between us -ham,"if you want to mapquest it or something look up \usf dogwood drive\""" -spam,u are subscribed to the best mobile content service in the uk for ??3 per ten days until you send stop to 83435. helpline 08706091795. -ham,what is important is that you prevent dehydration by giving her enough fluids -ham,"babe ! how goes that day ? what are you doing ? where are you ? i sip my cappuccino and think of you, my love ... i send a kiss to you from across the sea" -ham,aight sorry i take ten years to shower. what's the plan? -ham,can u get pic msgs to your phone? -ham,no no. i will check all rooms befor activities -ham,how. its a little difficult but its a simple way to enter this place -ham,yes princess! i want to please you every night. your wish is my command... -ham,"thursday night? yeah, sure thing, we'll work it out then" -ham,"not sure yet, still trying to get a hold of him" -ham,i thk u dun haf 2 hint in e forum already lor... cos i told ron n darren is going 2 tell shuhui. -ham,y bishan lei... i tot ?_ say lavender? -ham,hi babe its me thanks for coming even though it didnt go that well!i just wanted my bed! hope to see you soon love and kisses xxx -spam,jamster! to get your free wallpaper text heart to 88888 now! t&c apply. 16 only. need help? call 08701213186. -ham,cos darren say ?_ considering mah so i ask ?_... -ham,be happy there. i will come after noon -ham,so that means you still think of teju -ham,have you had a good day? mine was really busy are you up to much tomorrow night? -ham,u repeat e instructions again. wat's e road name of ur house? -ham,lul im gettin some juicy gossip at the hospital. two nurses are talking about how fat they are gettin. and one thinks shes obese. oyea. -ham,shall i send that exe to your mail id. -spam,"this is the 2nd time we have tried 2 contact u. u have won the 750 pound prize. 2 claim is easy, call 08712101358 now! only 10p per min. bt-national-rate" -ham,good morning princess! how are you? -ham,i don't run away frm u... i walk slowly & it kills me that u don't care enough to stop me... -ham,much better now thanks lol -ham,hi. i'm always online on yahoo and would like to chat with you someday -spam,thanks for the vote. now sing along with the stars with karaoke on your mobile. for a free link just reply with sing now. -ham,actually i deleted my old website..now i m blogging at magicalsongs.blogspot.com -ham,lol what happens in vegas stays in vegas -ham,feel yourself that you are always happy.. slowly it becomes your habit & finally it becomes part of your life.. follow it.. happy morning & have a happy day:) -ham,okie -ham,k still are you loving me. -ham,love it! daddy will make you scream with pleasure! i am going to slap your ass with my dick! -ham,staff.science.nus.edu.sg/~phyhcmk/teaching/pc1323 -spam,you have won a nokia 7250i. this is what you get when you win our free auction. to take part send nokia to 86021 now. hg/suite342/2lands row/w1jhl 16+ -ham,never blame a day in ur life. good days give u happiness. bad days give u experience. both are essential in life! all are gods blessings! good morning.: -ham,if you don't respond imma assume you're still asleep and imma start calling n shit -ham,congrats kano..whr s the treat maga? -ham,aiyo a bit pai seh ?_ noe... scared he dun rem who i am then die... hee... but he become better lookin oredi leh... -ham,ya just telling abt tht incident.. -ham,good morning princess! happy new year! -ham,crazy ar he's married. ?? like gd looking guys not me. my frens like say he's korean leona's fave but i dun thk he is. aft some thinking mayb most prob i'll go. -ham,i hope your pee burns tonite. -spam,sorry i missed your call let's talk when you have the time. i'm on 07090201529 -ham,yo im right by yo work -ham,i don't want you to leave. but i'm barely doing what i can to stay sane. fighting with you constantly isn't helping. -ham,so can collect ur laptop? -ham,hey morning what you come to ask:-) pa... -ham,hey.. something came up last min.. think i wun be signing up tmr.. hee -ham,"hey...great deal...farm tour 9am to 5pm $95/pax, $50 deposit by 16 may" -ham,we live in the next <#> mins -spam,camera - you are awarded a sipix digital camera! call 09061221066 fromm landline. delivery within 28 days. -ham,tell me something. thats okay. -spam,"as a sim subscriber, you are selected to receive a bonus! get it delivered to your door, txt the word ok to no: 88600 to claim. 150p/msg, exp. 30apr" -ham,"yeah we wouldn't leave for an hour at least, how's 4 sound?" -ham,i am literally in bed and have been up for like <#> hours -ham,there bold 2 <#> . is that yours -ham,ok im not sure what time i finish tomorrow but i wanna spend the evening with you cos that would be vewy vewy lubly! love me xxx -spam,you have won a guaranteed ??200 award or even ??1000 cashto claim ur award call free on 08000407165 (18+) 2 stop getstop on 88222 php -ham,k:)k..its good:)when are you going? -ham,"i dun thk i'll quit yet... hmmm, can go jazz ? yogasana oso can... we can go meet em after our lessons den..." -ham,kallis is ready for bat in 2nd innings -ham,"sorry, was in the bathroom, sup" -ham,sun ah... thk mayb can if dun have anythin on... thk have to book e lesson... e pilates is at orchard mrt u noe hor... -ham,"'an amazing quote'' - \sometimes in life its difficult to decide whats wrong!! a lie that brings a smile or the truth that brings a tear....\""""" -ham,but my family not responding for anything. now am in room not went to home for diwali but no one called me and why not coming. it makes me feel like died. -ham,yo chad which gymnastics class do you wanna take? the site says christians class is full.. -ham,u coming 2 pick me? -ham,huh so fast... dat means u havent finished painting? -ham,"aight yo, dats straight dogg" -ham,you didnt complete your gist oh. -ham,"hello. no news on job, they are making me wait a fifth week! yeah im up for some woozles and weasels... in exeter still, but be home about 3." -spam,burger king - wanna play footy at a top stadium? get 2 burger king before 1st sept and go large or super with coca-cola and walk out a winner -spam,wanna have a laugh? try chit-chat on your mobile now! logon by txting the word: chat and send it to no: 8883 cm po box 4217 london w1a 6zf 16+ 118p/msg rcvd -ham,"you might want to pull out more just in case and just plan on not spending it if you can, i don't have much confidence in derek and taylor's money management" -ham,hey come online! use msn... we are all there -ham,how much did ur hdd casing cost. -ham,"oh rite. well im with my best mate pete, who i went out with 4 a week+ now were 2geva again. its been longer than a week." -ham,"haha, that was the first person i was gonna ask" -spam,tells u 2 call 09066358152 to claim ??5000 prize. u have 2 enter all ur mobile & personal details @ the prompts. careful! -ham,if you mean the website. yes. -ham,"well done, blimey, exercise, yeah, i kinda remember wot that is, hmm." -ham,u're welcome... caught u using broken english again... -ham,never y lei... i v lazy... got wat? dat day ?_ send me da url cant work one... -ham,my planning usually stops at \find hella weed -ham,ok lor. anyway i thk we cant get tickets now cos like quite late already. u wan 2 go look 4 ur frens a not? darren is wif them now... -spam,"hot live fantasies call now 08707509020 just 20p per min ntt ltd, po box 1327 croydon cr9 5wb 0870..k" -ham,what should i eat fo lunch senor -ham,how long does applebees fucking take -ham,\si.como no?!listened2the plaid album-quite gd&the new air1 which is hilarious-also bought??braindance??a comp.ofstuff on aphex??s ;abel -ham,i can't believe how attached i am to seeing you every day. i know you will do the best you can to get to me babe. i will go to teach my class at your midnight -ham,i accidentally brought em home in the box -ham,"when people see my msgs, they think iam addicted to msging... they are wrong, bcoz they don\'t know that iam addicted to my sweet friends..!! bslvyl" -ham,da is good good player.why he is unsold. -spam,87077: kick off a new season with 2wks free goals & news to ur mobile! txt ur club name to 87077 eg villa to 87077 -ham,"what's up bruv, hope you had a great break. do have a rewarding semester." -ham,siva is in hostel aha:-. -ham,who's there say hi to our drugdealer -ham,wot u up 2 j? -ham,hope you are feeling great. pls fill me in. abiola -ham,"probably not, still going over some stuff here" -spam,"free ringtone text first to 87131 for a poly or text get to 87131 for a true tone! help? 0845 2814032 16 after 1st free, tones are 3x??150pw to e??nd txt stop" -ham,fwiw the reason i'm only around when it's time to smoke is that because of gas i can only afford to be around when someone tells me to be and that apparently only happens when somebody wants to light up -spam,"your free ringtone is waiting to be collected. simply text the password \mix\"" to 85069 to verify. get usher and britney. fml mk17 92h. 450ppw 16""" -ham,"dizzamn, aight i'll ask my suitemates when i get back" -ham,i think if he rule tamilnadu..then its very tough for our people. -spam,free for 1st week! no1 nokia tone 4 ur mob every week just txt nokia to 87077 get txting and tell ur mates. zed pobox 36504 w45wq norm150p/tone 16+ -ham,no. its not specialisation. can work but its slave labor. will look for it this month sha cos no shakara 4 beggar. -ham,no did you check? i got his detailed message now -ham,i know! grumpy old people. my mom was like you better not be lying. then again i am always the one to play jokes... -ham,"honeybee said: *i'm d sweetest in d world* god laughed & said: *wait,u havnt met d person reading this msg* moral: even god can crack jokes! gm+gn+ge+gn:)" -ham,i called and said all to him:)then he have to choose this future. -ham,i've been barred from all b and q stores for life!?this twat in orange dungerees came up to me and asked if i wanted decking? so i got the first punch in!! -ham,i bought the test yesterday. its something that lets you know the exact day u ovulate.when will get 2u in about 2 to 3wks. but pls pls dont fret. i know u r worried. pls relax. also is there anything in ur past history u need to tell me? -ham,when should i come over? -ham,i'm thinking that chennai forgot to come for auction.. -ham,i'm really sorry i lit your hair on fire -ham,miss call miss call khelate kintu opponenter miss call dhorte lage. thats d rule. one with great phone receiving quality wins. -ham,hope you??re not having too much fun without me!! see u tomorrow love jess x -ham,"ok that would b lovely, if u r sure. think about wot u want to do, drinkin, dancin, eatin, cinema, in, out, about... up to u! wot about ?" -ham,"the guy at the car shop who was flirting with me got my phone number from the paperwork and called and texted me. i'm nervous because of course now he may have my address. should i call his boss and tell him, knowing this may get him fired?" -ham,aathi..where are you dear.. -ham,"say this slowly.? god,i love you & i need you,clean my heart with your blood.send this to ten special people & u c miracle tomorrow, do it,pls,pls do it..." -ham,hey you around? i've got enough for a half + the ten i owe you -ham,haven't eaten all day. i'm sitting here staring at this juicy pizza and i can't eat it. these meds are ruining my life. -ham,yup... ok i go home look at the timings then i msg ?_ again... xuhui going to learn on 2nd may too but her lesson is at 8am -ham,so is there anything specific i should be doing with regards to jaklin or what because idk what the fuck -ham,"honeybee said: *i'm d sweetest in d world* god laughed & said: *wait,u havnt met d person reading this msg* moral: even god can crack jokes! gm+gn+ge+gn:)" -spam,promotion number: 8714714 - ur awarded a city break and could win a ??200 summer shopping spree every wk. txt store to 88039 . skilgme. tscs087147403231winawk!age16 ??1.50perwksub -ham,okie -spam,you have 1 new message. call 0207-083-6089 -ham,kaiez... enjoy ur tuition... gee... thk e second option sounds beta... i'll go yan jiu den msg u... -ham,"frnd s not juz a word.....not merely a relationship.....its a silent promise which says ... \ i will be with you \"" wherevr.. whenevr.. forevr... gudnyt dear..""" -ham,i am in hospital da. . i will return home in evening -ham,should i tell my friend not to come round til like <#> ish? -spam,"win: we have a winner! mr. t. foley won an ipod! more exciting prizes soon, so keep an eye on ur mobile or visit www.win-82050.co.uk" -ham,can you call me plz. your number shows out of coveragd area. i have urgnt call in vasai & have to reach before 4'o clock so call me plz -ham,if u sending her home first it's ok lor. i'm not ready yet. -ham,"i sent my scores to sophas and i had to do secondary application for a few schools. i think if you are thinking of applying, do a research on cost also. contact joke ogunrinde, her school is one me the less expensive ones" -ham,"its ok, called mom instead have fun" -ham,that was random saw my old roomate on campus. he graduated -spam,"sms services. for your inclusive text credits, pls goto www.comuk.net login= ***** unsubscribe with stop. no extra charge. help:08700469649. po box420. ip4 5we" -ham,s.this will increase the chance of winning. -ham,i'll be late... -ham,i cant pick the phone right now. pls send a message -ham,oh sorry please its over -ham,?? no home work to do meh... -ham,hmmm...k...but i want to change the field quickly da:-)i wanna get system administrator or network administrator.. -ham,i tot u outside cos darren say u come shopping. of course we nice wat. we jus went sim lim look at mp3 player. -ham,"hi, wkend ok but journey terrible. wk not good as have huge back log of marking to do" -spam,gent! we are trying to contact you. last weekends draw shows that you won a ??1000 prize guaranteed. call 09064012160. claim code k52. valid 12hrs only. 150ppm -ham,"i noe la... u wana pei bf oso rite... k lor, other days den..." -ham,i was gonna ask you lol but i think its at 7 -ham,buzzzz! *grins* did i buzz your ass? buzz your chest ? buzz your cock ? where do you keep your phone ? is the vibrator on ? did you feel it shake ? -ham,goodmorning sleeping ga. -spam,http//tms. widelive.com/index. wml?id=820554ad0a1705572711&first=true??c c ringtone?? -ham,a bloo bloo bloo i'll miss the first bowl -ham,went fast asleep dear.take care. -ham,"yo, you at jp and hungry like a mofo?" -ham,minimum walk is 3miles a day. -ham,no calls..messages..missed calls -ham,"that's cool he'll be here all night, lemme know when you're around" -ham,"shit that is really shocking and scary, cant imagine for a second. def up for night out. do u think there is somewhere i could crash for night, save on taxi?" -ham,sorry da..today i wont come to play..i have driving clas.. -ham,"we are at grandmas. oh dear, u still ill? i felt shit this morning but i think i am just hungover! another night then. we leave on sat." -ham,yes..gauti and sehwag out of odi series. -ham,pls what's the full name of joke's school cos fees in university of florida seem to actually be <#> k. pls holla back -ham,bishan lar nearer... no need buy so early cos if buy now i gotta park my car... -spam,our brand new mobile music service is now live. the free music player will arrive shortly. just install on your phone to browse content from the top artists. -ham,talk to g and x about that -ham,i will send them to your email. do you mind <#> times per night? -ham,dear where you. call me -ham,eat jap done oso aft ur lect wat... ?? got lect at 12 rite... -ham,all these nice new shirts and the only thing i can wear them to is nudist themed ;_; you in mu? -spam,ur going 2 bahamas! callfreefone 08081560665 and speak to a live operator to claim either bahamas cruise of??2000 cash 18+only. to opt out txt x to 07786200117 -ham,er mw im filled tuth is aight -ham,"how are you, my love ? are you with your brother ? time to talk english with him ? *grins* say : hey muhommad, penny says hello from across the sea" -ham,mm umma ask vava also to come tell him can play later together -ham,"ditto. and you won't have to worry about me saying anything to you anymore. like i said last night, you do whatever you want and i'll do the same. peace." -ham,convey my regards to him -ham,was doing my test earlier. i appreciate you. will call you tomorrow. -ham,*deep sigh* ... i miss you :-( ... i am really surprised you haven't gone to the net cafe yet to get to me ... don't you miss me? -ham,sary just need tim in the bollox &it hurt him a lot so he tol me! -ham,ha... u jus ate honey ar? so sweet... -ham,.please charge my mobile when you get up in morning. -spam,tbs/persolvo. been chasing us since sept for??38 definitely not paying now thanks to your information. we will ignore them. kath. manchester. -ham,so are you guys asking that i get that slippers again or its gone with last year -ham,hmm yeah if your not too grooved out! and im looking forward to my pound special :) -ham,is that on the telly? no its brdget jones! -ham,i know complain num only..bettr directly go to bsnl offc nd apply for it.. -ham,its like that hotel dusk game i think. you solve puzzles in a area thing -ham,"thank you. and by the way, i just lost." -ham,i love ya too but try and budget your money better babe. gary would freak on me if he knew -ham,ummmmmaah many many happy returns of d day my dear sweet heart.. happy birthday dear -ham,what happen to her tell the truth -ham,i went to ur hon lab but no one is there. -spam,"thanks for your ringtone order, ref number r836. your mobile will be charged ??4.50. should your tone not arrive please call customer services on 09065069154" -spam,"congratulations! thanks to a good friend u have won the ??2,000 xmas prize. 2 claim is easy, just call 08718726971 now! only 10p per minute. bt-national-rate." -spam,todays voda numbers ending 1225 are selected to receive a ??50award. if you have a match please call 08712300220 quoting claim code 3100 standard rates app -ham,what time u wrkin? -spam,do you want a new video handset? 750 anytime any network mins? half price line rental? camcorder? reply or call 08000930705 for delivery tomorrow -ham,i'll meet you in the lobby -ham,lol now i'm after that hot air balloon! -ham,then we gotta do it after that -ham,short but cute: \be a good person -spam,your credits have been topped up for http://www.bubbletext.com your renewal pin is tgxxrz -ham,that sucks. so what do you got planned for your yo valentine? i am your yo valentine aren't i? -ham,is there a reason we've not spoken this year? anyways have a great week and all the best in your exam -ham,yes i started to send requests to make it but pain came back so i'm back in bed. double coins at the factory too. i gotta cash in all my nitros. -ham,ok... but they said i've got wisdom teeth hidden inside n mayb need 2 remove. -ham,let me know how it changes in the next 6hrs. it can even be appendix but you are out of that age range. however its not impossible. so just chill and let me know in 6hrs -ham,horrible gal. me in sch doing some stuff. how come u got mc? -spam,phony ??350 award - todays voda numbers ending xxxx are selected to receive a ??350 award. if you have a match please call 08712300220 quoting claim code 3100 standard rates app -ham,tension ah?what machi?any problem? -ham,"storming msg: wen u lift d phne, u say \hello\"" do u knw wt is d real meaning of hello?? . . . it's d name of a girl..! . . . yes.. and u knw who is dat girl?? \""margaret hello\"" she is d girlfrnd f grahmbell who invnted telphone... . . . . moral:one can 4get d name of a person" -ham,call me when you get the chance plz <3 -ham,what do u want when i come back?.a beautiful necklace as a token of my heart for you.thats what i will give but only to my wife of my liking.be that and see..no one can give you that.dont call me.i will wait till i come. -ham,ok. there may be a free gym about. -ham,"helloooo... wake up..! \sweet\"" \""morning\"" \""welcomes\"" \""you\"" \""enjoy\"" \""this day\"" \""with full of joy\"".. \""gud mrng\"".""" -ham,"a swt thought: \nver get tired of doing little things 4 lovable persons..\"" coz..somtimes those little things occupy d biggest part in their hearts.. gud ni8""" -ham,you are right. meanwhile how's project twins comin up -ham,boy you best get yo ass out here quick -ham,"damn, can you make it tonight or do you want to just wait til tomorrow" -ham,boo. how's things? i'm back at home and a little bored already :-( -ham,i am going to bed now prin -ham,ha... both of us doing e same thing. but i got tv 2 watch. u can thk of where 2 go tonight or u already haf smth in mind... -spam,hi 07734396839 ibh customer loyalty offer: the new nokia6600 mobile from only ??10 at txtauction!txt word:start to no:81151 & get yours now!4t& -ham,"ah, well that confuses things, doesnt it? i thought was friends with now. maybe i did the wrong thing but i already sort of invited -tho he may not come cos of money." -ham,i'm reaching home in 5 min. -ham,"sorry, i'll call later" -ham,i cant pick the phone right now. pls send a message -ham,piss is talking is someone that realise u that point this at is it.(now read it backwards) -spam,"urgent urgent! we have 800 free flights to europe to give away, call b4 10th sept & take a friend 4 free. call now to claim on 09050000555. ba128nnfwfly150ppm" -ham,thanks for sending this mental ability question.. -ham,"yeah hopefully, if tyler can't do it i could maybe ask around a bit" -ham,anyway holla at me whenever you're around because i need an excuse to go creep on people in sarasota -ham,ok... -ham,"7 wonders in my world 7th you 6th ur style 5th ur smile 4th ur personality 3rd ur nature 2nd ur sms and 1st \ur lovely friendship\""... good morning dear""" -ham,"hello baby, did you get back to your mom's ? are you setting up the computer now ? filling your belly ? how goes it loverboy ? i miss you already ... *sighs*" -ham,message:some text missing* sender:name missing* *number missing *sent:date missing *missing u a lot thats y everything is missing sent via fullonsms.com -ham,tell them no need to investigate about me anywhere. -ham,"ela kano.,il download, come wen ur free.." -ham,i???m going to try for 2 months ha ha only joking -ham,"it's cool, we can last a little while. getting more any time soon?" -ham,thinkin about someone is all good. no drugs for that -ham,yes when is the appt again? -ham,i wanted to ask ?_ to wait 4 me to finish lect. cos my lect finishes in an hour anyway. -ham,tell me they're female :v how're you throwing in? we're deciding what all to get now -spam,you have won a nokia 7250i. this is what you get when you win our free auction. to take part send nokia to 86021 now. hg/suite342/2lands row/w1jhl 16+ -ham,as if i wasn't having enough trouble sleeping. -ham,1's reach home call me. -ham,buy one egg for me da..please:) -ham,you have got tallent but you are wasting. -spam,missed call alert. these numbers called but left no message. 07008009200 -ham,thanx a lot... -ham,was actually about to send you a reminder today. have a wonderful weekend -ham,is that what time you want me to come? -ham,nope... juz off from work... -ham,i cant pick the phone right now. pls send a message -ham,this message is from a great doctor in india:-): 1) do not drink appy fizz. it contains cancer causing age -ham,dear good morning how you feeling dear -ham,"sir, i need axis bank account no and bank address." -ham,i am in tirupur. call you da. -ham,"that's what i love to hear :v see you sundayish, then" -ham,"call me, i am senthil from hsbc." -ham,thanks for ve lovely wisheds. you rock -ham,"thanx. yup we coming back on sun. finish dinner going back 2 hotel now. time flies, we're tog 4 exactly a mth today. hope we'll haf many more mths to come..." -ham,ok i've sent u da latest version of da project. -ham,"vikky, come around <time> .." -ham,white fudge oreos are in stores -ham,"aight, you close by or still down around alex's place?" -ham,ok. i.ll do you right later. -ham,no i don't have cancer. moms making a big deal out of a regular checkup aka pap smear -ham,today i'm not workin but not free oso... gee... thgt u workin at ur fren's shop ? -ham,talk with yourself atleast once in a day...!!! otherwise you will miss your best friend in this world...!!! -shakespeare- shesil <#> -ham,match started.india <#> for 2 -ham,thank you princess! i want to see your nice juicy booty... -ham,at home watching tv lor. -spam,hi - this is your mailbox messaging sms alert. you have 4 messages. you have 21 matches. please call back on 09056242159 to retrieve your messages and matches -ham,apart from the one i told you about yesterday? -ham,yes :)it completely in out of form:)clark also utter waste. -ham,"aight, tomorrow around <#> it is" -ham,congrats ! treat pending.i am not on mail for 2 days.will mail once thru.respect mother at home.check mails. -ham,guess who spent all last night phasing in and out of the fourth dimension -ham,fine. do you remember me. -ham,"got fujitsu, ibm, hp, toshiba... got a lot of model how to say..." -ham,please sen :)my kind advice :-)please come here and try:-) -ham,no. did you multimedia message them or e-mail? -ham,sian... aft meeting supervisor got work 2 do liao... u working now? -ham,only saturday and sunday holiday so its very difficult:) -ham,hi! you just spoke to maneesha v. we'd like to know if you were satisfied with the experience. reply toll free with yes or no. -spam,you are a winner u have been specially selected 2 receive ??1000 cash or a 4* holiday (flights inc) speak to a live operator 2 claim 0871277810810 -ham,g wants to know where the fuck you are -ham,today my system sh get ready.all is well and i am also in the deep well -ham,are you this much buzy -ham,thts wat wright brother did to fly.. -ham,tessy..pls do me a favor. pls convey my birthday wishes to nimya..pls dnt forget it. today is her birthday shijas -ham,cancel cheyyamo?and get some money back? -ham,sday only joined.so training we started today:) -ham,"the sign of maturity is not when we start saying big things.. but actually it is, when we start understanding small things... *have a nice evening* bslvyl" -ham,was the farm open? -ham,apps class varaya elaya. -ham,not a lot has happened here. feels very quiet. beth is at her aunts and charlie is working lots. just me and helen in at the mo. how have you been? -ham,then why you not responding -ham,now thats going to ruin your thesis! -ham,she's good. how are you. where r u working now -ham,depends on where u going lor. -ham,is avatar supposed to have subtoitles -ham,"oh, my love, it's soooo good to hear from you. omg i missed you so much today. i'm sorry your having problems with the provider but thank you for tming me" -spam,"had your mobile 10 mths? update to the latest camera/video phones for free. keep ur same number, get extra free mins/texts. text yes for a call" -ham,"i don't have anybody's number, i still haven't thought up a tactful way to ask alex" -ham,where u been hiding stranger? -ham,juz go google n search 4 qet... -ham,we are okay. going to sleep now. later -ham,dont think you need yellow card for uk travel. ask someone that has gone before. if you do its just <#> bucks -ham,and also i've sorta blown him off a couple times recently so id rather not text him out of the blue looking for weed -ham,ok ill send you with in <decimal> ok. -ham,nope wif my sis lor... aft bathing my dog then i can bathe... looks like it's going 2 rain soon. -ham,aiyah then i wait lor. then u entertain me. hee... -ham,ok... take ur time n enjoy ur dinner... -ham,and maybe some pressies -ham,ok lor. i ned 2 go toa payoh 4 a while 2 return smth u wan 2 send me there or wat? -ham,ok lor... -ham,lol please do. actually send a pic of yourself right now. i wanna see. pose with a comb and hair dryer or something. -ham,dunno y u ask me. -ham,i can take you at like noon -ham,watching tv lor... y she so funny we bluff her 4 wat. izzit because she thk it's impossible between us? -ham,"solve d case : a man was found murdered on <decimal> . <#> afternoon. 1,his wife called police. 2,police questioned everyone. 3,wife: sir,i was sleeping, when the murder took place. 4.cook: i was cooking. 5.gardener: i was picking vegetables. 6.house-maid: i went 2 d post office. 7.children: we went 2 play. 8.neighbour: we went 2 a marriage. police arrested d murderer immediately. who's it? reply with reason, if u r brilliant." -ham,"good afternoon, my love ... how goes your day ? how did you sleep ? i hope your well, my boytoy ... i think of you ..." -ham,tell me whos this pls:-) -ham,sorry i'm not free... -ham,just getting back home -ham,"dear friends, sorry for the late information. today is the birthday of our loving ar.praveesh. for more details log on to face book and see. its his number + <#> . dont miss a delicious treat." -ham,its a part of checking iq -spam,sorry! u can not unsubscribe yet. the mob offer package has a min term of 54 weeks> pls resubmit request after expiry. reply themob help 4 more info -ham,aiyah sorry lor... i watch tv watch until i forgot 2 check my phone. -ham,haf u eaten? wat time u wan me 2 come? -ham,just wait till end of march when el nino gets himself. oh. -ham,send his number and give reply tomorrow morning for why you said that to him like that ok -ham,"i'm tired of arguing with you about this week after week. do what you want and from now on, i'll do the same." -ham,oh ho. is this the first time u use these type of words -ham,"beautiful truth against gravity.. read carefully: \our heart feels light when someone is in it.. but it feels very heavy when someone leaves it..\"" good night""" -ham,"hello! just got here, st andrews-boy its a long way! its cold. i will keep you posted" -spam,ur balance is now ??500. ur next question is: who sang 'uptown girl' in the 80's ? 2 answer txt ur answer to 83600. good luck! -ham,what was she looking for? -ham,now press conference da:) -ham,"hiya, probably coming home * weekend after next" -ham,x course it 2yrs. just so her messages on messenger lik you r sending me -ham,all boys made fun of me today. ok i have no problem. i just sent one message just for fun -ham,lol yes. but it will add some spice to your day. -ham,zoe it just hit me 2 im fucking shitin myself il defo try my hardest 2 cum 2morow luv u millions lekdog -ham,"y cant u try new invention to fly..i'm not joking.," -spam,adult 18 content your video will be with you shortly -ham,hahaha..use your brain dear -ham,pass dis to all ur contacts n see wat u get! red;i'm in luv wid u. blue;u put a smile on my face. purple;u r realy hot. pink;u r so swt. orange;i thnk i lyk u. green;i realy wana go out wid u. yelow;i wnt u bck. black;i'm jealous of u. brown;i miss you nw plz giv me one color -ham,roger that. we???re probably going to rem in about 20 -ham,"it,,s a taxt massage....tie-pos argh ok! lool!" -ham,"1) go to write msg 2) put on dictionary mode 3)cover the screen with hand, 4)press <#> . 5)gently remove ur hand.. its interesting..:)" -spam,"win the newest ???harry potter and the order of the phoenix (book 5) reply harry, answer 5 questions - chance to be the first among readers!" -ham,lmao. take a pic and send it to me. -ham,:-) yeah! lol. luckily i didn't have a starring role like you! -ham,"idk. you keep saying that you're not, but since he moved, we keep butting heads over freedom vs. responsibility. and i'm tired. i have so much other shit to deal with that i'm barely keeping myself together once this gets added to it." -ham,ugh my leg hurts. musta overdid it on mon. -spam,you have won a guaranteed ??200 award or even ??1000 cashto claim ur award call free on 08000407165 (18+) 2 stop getstop on 88222 php. rg21 4jx -spam,"you are being contacted by our dating service by someone you know! to find out who it is, call from a land line 09050000928. pobox45w2tg150p" -ham,he's an adult and would learn from the experience. there's no real danger. i just dont like peeps using drugs they dont need. but no comment -spam,win a year supply of cds 4 a store of ur choice worth ??500 & enter our ??100 weekly draw txt music to 87066 ts&cs www.ldew.com.subs16+1win150ppmx3 -ham,"sorry, i'll call later" -ham,he's just gonna worry for nothing. and he won't give you money its no use. -ham,then we wait 4 u lor... no need 2 feel bad lar... -spam,"hot live fantasies call now 08707509020 just 20p per min ntt ltd, po box 1327 croydon cr9 5wb 0870..k" -spam,"text82228>> get more ringtones, logos and games from www.txt82228.com. questions: info@txt82228.co.uk" -ham,"didn't try, g and i decided not to head out" -ham,do you still have the grinder? -ham,"we are hoping to get away by 7, from langport. you still up for town tonight?" -ham,"haha, my friend tyler literally just asked if you could get him a dubsack" -ham,quite ok but a bit ex... u better go eat smth now else i'll feel guilty... -ham,she left it very vague. she just said she would inform the person in accounting about the delayed rent and that i should discuss with the housing agency about my renting another place. but checking online now and all places around usc are <#> and up -spam,"you have been selected to stay in 1 of 250 top british hotels - for nothing! holiday worth ??350! to claim, call london 02072069400. bx 526, sw73ss" -ham,"good afternoon, my love ! any job prospects ? are you missing me ? what do you do ? are you being lazy and bleak, hmmm ? or happy and filled with my love ?" -ham,ok... let u noe when i leave my house. -ham,"\alrite hunny!wot u up 2 2nite? didnt end up goin down town jus da pub instead! jus chillin at da mo in me bedroom!love jen xxx.\""""" -ham,"i've got ten bucks, jay is being noncomittal" -ham,hi :)finally i completed the course:) -ham,dad says hurry the hell up -ham,why nothing. ok anyway give me treat -ham,i got your back! do you have any dislikes in bed? -ham,hiya. how was last night? i've been naughty and bought myself clothes and very little ... ready for more shopping tho! what kind of time do you wanna meet? -ham,didn't you get hep b immunisation in nigeria. -ham,yo you guys ever figure out how much we need for alcohol? jay and i are trying to figure out how much we can safely spend on weed -ham,yeah just open chat and click friend lists. then make the list. easy as pie -ham,do you know when dad will be back? -ham,"i'm eatin now lor, but goin back to work soon... e mountain deer show huh... i watch b4 liao, very nice..." -ham,how much r ?_ willing to pay? -ham,anything... -ham,"i av a new number, . wil u only use this one,ta." -ham,there generally isn't one. it's an uncountable noun - u in the dictionary. pieces of research? -ham,aiyah u did ok already lar. e nydc at wheellock? -ham,"it could work, we'll reach a consensus at the next meeting" -ham,is there coming friday is leave for pongal?do you get any news from your work place. -ham,"wa, ur openin sentence very formal... anyway, i'm fine too, juz tt i'm eatin too much n puttin on weight...haha... so anythin special happened?" -ham,dude while were makin those weirdy brownies my sister made awesome cookies. i took pics. -ham,lol no. just trying to make your day a little more interesting -ham,"alright, we're all set here, text the man" -spam,cashbin.co.uk (get lots of cash this weekend!) www.cashbin.co.uk dear welcome to the weekend we have got our biggest and best ever cash give away!! these.. -spam,urgent! we are trying to contact you. last weekends draw shows that you have won a ??900 prize guaranteed. call 09061701939. claim code s89. valid 12hrs only -ham,what time you thinkin of goin? -ham,wife.how she knew the time of murder exactly -spam,eastenders tv quiz. what flower does dot compare herself to? d= violet e= tulip f= lily txt d e or f to 84025 now 4 chance 2 win ??100 cash wkent/150p16+ -ham,i cant wait to see you! how were the photos were useful? :) -ham,i think asking for a gym is the excuse for lazy people. i jog. -ham,i am seeking a lady in the street and a freak in the sheets. is that you? -ham,"sorry im getting up now, feel really bad- totally rejected that kinda me thing." -ham,"i got like $ <#> , i can get some more later though. get whatever you feel like" -ham,meeting u is my work. . . tel me when shall i do my work tomorrow -spam,"urgent! your mobile no 077xxx won a ??2,000 bonus caller prize on 02/06/03! this is the 2nd attempt to reach you! call 09066362206 asap! box97n7qp, 150ppm" -spam,you have an important customer service announcement from premier. -ham,"nothing really, just making sure everybody's up to speed" -ham,you see the requirements please -spam,"double mins and txts 4 6months free bluetooth on orange. available on sony, nokia motorola phones. call mobileupd8 on 08000839402 or call2optout/n9dx" -ham,now am free call me pa. -ham,yup -ham,are you plans with your family set in stone ? -ham,"sorry, left phone upstairs. ok, might be hectic but would be all my birds with one fell swoop. it's a date." -ham,"solve d case : a man was found murdered on <decimal> . <#> afternoon. 1,his wife called police. 2,police questioned everyone. 3,wife: sir,i was sleeping, when the murder took place. 4.cook: i was cooking. 5.gardener: i was picking vegetables. 6.house-maid: i went 2 d post office. 7.children: we went 2 play. 8.neighbour: we went 2 a marriage. police arrested d murderer immediately. who's it? reply with reason, if u r brilliant." -ham,and he's apparently bffs with carly quick now -ham,how are you. its been ages. how's abj -ham,well obviously not because all the people in my cool college life went home ;_; -ham,she.s good. she was wondering if you wont say hi but she.s smiling now. so how are you coping with the long distance -ham,"maybe westshore or hyde park village, the place near my house?" -ham,i am late. i will be there at -ham,im gonna miss u so much -ham,i don know account details..i will ask my mom and send you.my mom is out of reach now. -ham,"goodmorning,my grandfather expired..so am on leave today." -ham,should i send you naughty pix? :) -ham,"sorry man, accidentally left my phone on silent last night and didn't check it til i got up" -ham,raji..pls do me a favour. pls convey my birthday wishes to nimya. pls. today is her birthday. -ham,thanks for the temales it was wonderful. thank. have a great week. -ham,"ahhhh...just woken up!had a bad dream about u tho,so i dont like u right now :) i didnt know anything about comedy night but i guess im up for it." -spam,we tried to call you re your reply to our sms for a video mobile 750 mins unlimited text + free camcorder reply of call 08000930705 now -ham,sitting in mu waiting for everyone to get out of my suite so i can take a shower -ham,"good afternoon, babe. how goes that day ? any job prospects yet ? i miss you, my love ... *sighs* ... :-(" -ham,pls help me tell sura that i'm expecting a battery from hont. and that if should pls send me a message about how to download movies. thanks -ham,can you use foreign stamps for whatever you send them off for? -ham,lmao you know me so well... -spam,"you ve won! your 4* costa del sol holiday or ??5000 await collection. call 09050090044 now toclaim. sae, tc s, pobox334, stockport, sk38xh, cost??1.50/pm, max10mins" -ham,i'm doing da intro covers energy trends n pros n cons... brief description of nuclear fusion n oso brief history of iter n jet got abt 7 n half pages.. -ham,hi darlin im on helens fone im gonna b up the princes 2 nite please come up tb love kate -ham,he remains a bro amongst bros -ham,pls come quick cant bare this. -ham,mm have some kanji dont eat anything heavy ok -ham,"have a lovely night and when you wake up to see this message, i hope you smile knowing all is as should be. have a great morning" -ham,"think i might have to give it a miss. am teaching til twelve, then have lecture at two. damn this working thing." -ham,thanks for looking out for me. i really appreciate. diff --git a/spear/Implyloss/testing/Data/SMS/valid.csv b/spear/Implyloss/testing/Data/SMS/valid.csv deleted file mode 100644 index 1ca0cc7..0000000 --- a/spear/Implyloss/testing/Data/SMS/valid.csv +++ /dev/null @@ -1,501 +0,0 @@ -v1,v2 -ham,we took hooch for a walk toaday and i fell over! splat! grazed my knees and everything! should have stayed at home! see you tomorrow! -ham,thnx dude. u guys out 2nite? -ham,r we going with the <#> bus? -ham,full heat pa:-) i have applyed oil pa. -ham,"so many people seems to be special at first sight, but only very few will remain special to you till your last sight.. maintain them till life ends.. sh!jas" -ham,i want snow. it's just freezing and windy. -ham,"actually nvm, got hella cash, we still on for <#> ish?" -ham,then wat r u doing now? busy wif work? -ham,thank you princess! you are so sexy... -ham,hey what how about your project. started aha da. -ham,hcl chennai requires freshers for voice process.excellent english needed.salary upto <#> .call ms.suman <#> for telephonic interview -via indyarocks.com -ham,"i???ll leave around four, ok?" -spam,urgent ur ??500 guaranteed award is still unclaimed! call 09066368327 now closingdate04/09/02 claimcode m39m51 ??1.50pmmorefrommobile2bremoved-mobypobox734ls27yf -ham,yeah that's the impression i got -ham,jus finish watching tv... u? -ham,"jolly good! by the way, will give u tickets for sat eve 7.30. speak before then x" -ham,nope thats fine. i might have a nap tho! -ham,ok lor... -ham,yes. rent is very expensive so its the way we save. -ham,what???? hello wats talks email address? -ham,"good afternoon, my boytoy ... how are you feeling today ? better i hope? are you being my good boy? are you my obedient, slave? do you please your queen?" -ham,i will reach ur home in <#> minutes -ham,ok.. -ham,";-( oh well, c u later" -ham,its <#> k here oh. should i send home for sale. -ham,am also doing in cbe only. but have to pay. -ham,s da..al r above <#> -ham,"as i entered my cabin my pa said, '' happy b'day boss !!''. i felt special. she askd me 4 lunch. after lunch she invited me to her apartment. we went there." -ham,lol yes. our friendship is hanging on a thread cause u won't buy stuff. -ham,"height of \oh shit....!!\"" situation: a guy throws a luv letter on a gal but falls on her brothers head whos a gay" -ham,"\can i please come up now imin town.dontmatter if urgoin outl8r u no thecd isv.important tome 4 2moro\""""" -spam,lyricalladie(21/f) is inviting you to be her friend. reply yes-910 or no-910. see her: www.sms.ac/u/hmmross stop? send stop frnd to 62468 -ham,hi juan. im coming home on fri hey. of course i expect a welcome party and lots of presents. ill phone u when i get back. loads of love nicky x x x x x x x x x -ham,k tell me anything about you. -ham,ok. i asked for money how far -ham,ya that one is slow as poo -ham,ofcourse i also upload some songs -spam,ur ringtone service has changed! 25 free credits! go to club4mobiles.com to choose content now! stop? txt club stop to 87070. 150p/wk club4 po box1146 mk45 2wt -ham,do u want 2 meet up 2morro -ham,can. dunno wat to get 4 her... -ham,"cool, text me when you head out" -ham,"i am real, baby! i want to bring out your inner tigress..." -spam,"complimentary 4 star ibiza holiday or ??10,000 cash needs your urgent collection. 09066364349 now from landline not to lose out! box434sk38wp150ppm18+" -spam,sunshine quiz wkly q! win a top sony dvd player if u know which country liverpool played in mid week? txt ansr to 82277. ??1.50 sp:tyrone -ham,babe !!! i miiiiiiissssssssss you ! i need you !!! i crave you !!! :-( ... geeee ... i'm so sad without you babe ... i love you ... -ham,i have no money 4 steve mate! ! -spam,"wan2 win a meet+greet with westlife 4 u or a m8? they are currently on what tour? 1)unbreakable, 2)untamed, 3)unkempt. text 1,2 or 3 to 83049. cost 50p +std text" -ham,exactly. anyways how far. is jide her to study or just visiting -spam,important information 4 orange user 0789xxxxxxx. today is your lucky day!2find out why log onto http://www.urawinner.com there's a fantastic surprise awaiting you! -ham,bbq this sat at mine from 6ish. ur welcome 2 come -ham,i send the print outs da. -ham,dip's cell dead. so i m coming with him. u better respond else we shall come back. -ham,"haha awesome, i might need to take you up on that, what you doin tonight?" -ham,there's someone here that has a year <#> toyota camry like mr olayiwola's own. mileage is <#> k.its clean but i need to know how much will it sell for. if i can raise the dough for it how soon after landing will it sell. holla back. -ham,:-( sad puppy noise -ham,dont hesitate. you know this is the second time she has had weakness like that. so keep i notebook of what she eat and did the day before or if anything changed the day before so that we can be sure its nothing -ham,okay... we wait ah -ham,sir send to group mail check it. -ham,hey so this sat are we going for the intro pilates only? or the kickboxing too? -spam,urgent! your mobile number has been awarded with a ??2000 bonus caller prize. call 09058095201 from land line. valid 12hrs only -ham,<#> mins but i had to stop somewhere first. -ham,"cant believe i said so many things to you this morning when all i really wanted to say was good morning, i love you! have a beautiful morning. see you in the library later." -ham,hurt me... tease me... make me cry... but in the end of my life when i die plz keep one rose on my grave and say stupid i miss u.. have a nice day bslvyl -spam,"as a valued customer, i am pleased to advise you that following recent review of your mob no. you are awarded with a ??1500 bonus prize, call 09066364589" -ham,that would be great. we'll be at the guild. could meet on bristol road or somewhere - will get in touch over weekend. our plans take flight! have a good week -ham,he is world famamus.... -spam,"themob> check out our newest selection of content, games, tones, gossip, babes and sport, keep your mobile fit and funky text wap to 82468" -ham,am not working but am up to eyes in philosophy so will text u later when a bit more free for chat... -ham,hello. they are going to the village pub at 8 so either come here or there accordingly. ok? -ham,loosu go to hospital. de dont let it careless. -ham,first has she gained more than <#> kg since she took in. second has she done the blood sugar tests. if she has and its ok and her blood pressure is within normal limits then no worries -ham,"hmmm ... and imagine after you've come home from that having to rub my feet, make me dinner and help me get ready for my date ! are you sure your ready for that kind of life ?" -ham,"oh ! a half hour is much longer in syria than canada, eh ? wow you must get so much more work done in a day than us with all that extra time ! *grins*" -ham,may i call you later pls -ham,u can call now... -ham,wife.how she knew the time of murder exactly -ham,"it's not that you make me cry. it's just that when all our stuff happens on top of everything else, it pushes me over the edge. you don't underdtand how often i cry over my sorry, sorry life." -ham,so your telling me i coulda been your real valentine and i wasn't? u never pick me for nothing!! -ham,"tunji, how's the queen? how are you doing. this is just wishing you a great day. abiola." -ham,no da..today also i forgot.. -ham,tired. i haven't slept well the past few nights. -ham,dunno i juz askin cos i got a card got 20% off 4 a salon called hair sense so i tot it's da one ?_ cut ur hair. -ham,"yeah, don't go to bed, i'll be back before midnight" -ham,gibbs unsold.mike hussey -ham,its going good...no problem..but still need little experience to understand american customer voice... -ham,the fact that you're cleaning shows you know why i'm upset. your priority is constantly \what i want to do -spam,"you are a ??1000 winner or guaranteed caller prize, this is our final attempt to contact you! to claim call 09071517866 now! 150ppmpobox10183bhamb64xe" -ham,you all ready for * big day tomorrow? -ham,i will come with karnan car. please wait till 6pm will directly goto doctor. -spam,ur tonexs subscription has been renewed and you have been charged ??4.50. you can choose 10 more polys this month. www.clubzed.co.uk *billing msg* -spam,free msg: single? find a partner in your area! 1000s of real people are waiting to chat now!send chat to 62220cncl send stopcs 08717890890??1.50 per msg -ham,"\petey boy whereare you me and all your friendsare in thekingshead come down if you canlove nic\""""" -ham,"we have sent jd for customer service cum accounts executive to ur mail id, for details contact us" -ham,"cool, text me when you're ready" -ham,neva mind it's ok.. -ham,?? all write or wat.. -ham,ok thanx... take care then... -spam,free 1st week entry 2 textpod 4 a chance 2 win 40gb ipod or ??250 cash every wk. txt vpod to 81303 ts&cs www.textpod.net custcare 08712405020. -ham,here got lots of hair dresser fr china. -ham,also are you bringing galileo or dobby -ham,"gud gud..k, chikku tke care.. sleep well gud nyt" -ham,guessin you ain't gonna be here before 9? -ham,hi.:)technical support.providing assistance to us customer through call and email:) -ham,"watching cartoon, listening music & at eve had to go temple & church.. what about u?" -spam,warner village 83118 c colin farrell in swat this wkend @warner village & get 1 free med. popcorn!just show msg+ticket@kiosk.valid 4-7/12. c t&c @kiosk. reply sony 4 mre film offers -ham,yeah my usual guy's out of town but there're definitely people around i know -ham,i wanted to wish you a happy new year and i wanted to talk to you about some legal advice to do with when gary and i split but in person. i'll make a trip to ptbo for that. i hope everything is good with you babe and i love ya :) -ham,kallis wont bat in 2nd innings. -ham,will be out of class in a few hours. sorry -ham,5 nights...we nt staying at port step liao...too ex -spam,check out choose your babe videos @ sms.shsex.netun fgkslpopw fgkslpo -ham,"faith makes things possible,hope makes things work,love makes things beautiful,may you have all three this christmas!merry christmas!" -ham,alright took the morphine. back in yo. -ham,i got to video tape pple type in message lor. u so free wan 2 help me? hee... cos i noe u wan 2 watch infernal affairs so ask u along. asking shuhui oso. -ham,was playng 9 doors game and gt racing on phone lol -ham,"i can probably come by, everybody's done around <#> right?" -ham,i've been trying to reach him without success -ham,okay... i booked all already... including the one at bugis. -ham,lol enjoy role playing much? -ham,those cocksuckers. if it makes you feel better ipads are worthless garbage novelty items and you should feel bad for even wanting one -ham,"aight i'll grab something to eat too, text me when you're back at mu" -ham,u don't remember that old commercial? -ham,in xam hall boy asked girl tell me the starting term for dis answer i can den manage on my own after lot of hesitation n lookin around silently she said the! intha ponnungale ipaditan;) -ham,"sorry, i'll call later in meeting" -ham,"sure, whenever you show the fuck up >:(" -ham,i know but you need to get hotel now. i just got my invitation but i had to apologise. cali is to sweet for me to come to some english bloke's weddin -ham,awww dat is sweet! we can think of something to do he he! have a nice time tonight ill probably txt u later cos im lonely :( xxx. -ham,you only hate me. you can call any but you didnt accept even a single call of mine. or even you messaged -ham,ard 530 lor. i ok then message ?_ lor. -ham,id have to check but there's only like 1 bowls worth left -spam,ur cash-balance is currently 500 pounds - to maximize ur cash-in now send go to 86688 only 150p/msg. cc: 08718720201 po box 114/14 tcr/w1 -ham,one small prestige problem now. -ham,and do you have any one that can teach me how to ship cars. -spam,"six chances to win cash! from 100 to 20,000 pounds txt> csh11 and send to 87575. cost 150p/day, 6days, 16+ tsandcs apply reply hl 4 info" -ham,o. guess they both got screwd -ham,sorry da thangam.it's my mistake. -ham,well i wasn't available as i washob nobbing with last night so they had to ask nickey platt instead of me!; -ham,"good morning, im suffering from fever and dysentry ..will not be able to come to office today." -ham,purity of friendship between two is not about smiling after reading the forwarded message..its about smiling just by seeing the name. gud evng -ham,"yeah why not, is the gang all ready" -spam,congratulations ur awarded either ??500 of cd gift vouchers & free entry 2 our ??100 weekly draw txt music to 87066 tncs www.ldew.com 1 win150ppmx3age16 -ham,"night has ended for another day, morning has come in a special way. may you smile like the sunny rays and leaves your worries at the blue blue bay." -ham,any way where are you and what doing. -ham,do u think that any girl will propose u today by seing ur bloody funky shit fucking face...............asssssholeeee................ -ham,oh k. . i will come tomorrow -ham,tap & spile at seven. * is that pub on gas st off broad st by canal. ok? -ham,i'm gonna rip out my uterus. -ham,"good afternoon loverboy ! how goes you day ? any luck come your way? i think of you, sweetie and send my love across the sea to make you smile and happy" -ham,i keep ten rs in my shelf:) buy two egg. -ham,i know you mood off today -spam,"this is the 2nd attempt to contract u, you have won this weeks top prize of either ??1000 cash or ??200 prize. just call 09066361921" -ham,i will vote for wherever my heart guides me -ham,k...k:)why cant you come here and search job:) -ham,"forgot you were working today! wanna chat, but things are ok so drop me a text when you're free / bored etc and i'll ring. hope all is well, nose essay and all xx" -ham,let me know if you need anything else. salad or desert or something... how many beers shall i get? -ham,oh all have to come ah? -ham,got smaller capacity one? quite ex... -ham,text her. if she doesnt reply let me know so i can have her log in -spam,free top ringtone -sub to weekly ringtone-get 1st week free-send subpoly to 81618-?3 per week-stop sms-08718727870 -ham,true dear..i sat to pray evening and felt so.so i sms'd you in some time... -ham,"v-aluable. a-ffectionate. l-oveable. e-ternal. n-oble. t-ruthful. i-ntimate. n-atural. e-namous. happy \valentines day\"" in advance""" -ham,r u over scratching it? -ham,lol no. i just need to cash in my nitros. hurry come on before i crash out! -ham,done it but internet connection v slow and can???t send it. will try again later or first thing tomo. -ham,hi petey!noi??m ok just wanted 2 chat coz avent spoken 2 u 4 a long time-hope ur doin alrite.have good nit at js love ya am.x -spam,urgent! please call 09061213237 from landline. ??5000 cash or a luxury 4* canary islands holiday await collection. t&cs sae po box 177. m227xy. 150ppm. 16+ -ham,"haven't found a way to get another app for your phone, eh ? will you go to the net cafe ? did you take that job? geeee i need you babe. i crave to see you ..." -ham,if i was i wasn't paying attention -ham,remember to ask alex about his pizza -ham,aaooooright are you at work? -ham,"see you then, we're all christmassy here!" -ham,i want to see your pretty pussy... -spam,"themob>hit the link to get a premium pink panther game, the new no. 1 from sugababes, a crazy zebra animation or a badass hoody wallpaper-all 4 free!" -ham,its a site to simulate the test. it just gives you very tough questions to test your readiness. -ham,ok... -spam,"to review and keep the fantastic nokia n-gage game deck with club nokia, go 2 www.cnupdates.com/newsletter. unsubscribe from alerts reply with the word out" -ham,yes there were many sweets -ham,nope i'm not drivin... i neva develop da photos lei... -ham,he like not v shock leh. cos telling shuhui is like telling leona also. like dat almost all know liao. he got ask me abt ur reaction lor. -ham,er yep sure. props? -ham,then. you are eldest know. -ham,"happy new year to u and ur family...may this new year bring happiness , stability and tranquility to ur vibrant colourful life:):)" -ham,"motivate behind every darkness, there is a shining light waiting for you to find it... behind every best friend, there is always trust and love... bslvyl" -ham,"oh! shit, i thought that was your trip! loooooool ... that just makes so much more sense now ... *grins* and the sofa reference was ... the \sleep on a couch\"" link you sent me ... wasn't that how you went on your trip ? oh ... and didn't your babe go with you for that celebration with your rents?""" -ham,hey! there's veggie pizza... :/ -ham,"honey, can you pls find out how much they sell predicte in nigeria. and how many times can it be used. its very important to have a reply before monday" -ham,"ok, be careful ! don't text and drive !" -ham,sorry. you never hear unless you book it. one was kinda a joke--thet were really looking for skinny white girls. the other was one line--you can only do so much on camera with that. something like that they're casting on the look. -ham,same as u... dun wan... y u dun like me already ah... wat u doing now? still eating? -ham,"playin space poker, u?" -spam,private! your 2003 account statement for 07815296484 shows 800 un-redeemed s.i.m. points. call 08718738001 identifier code 41782 expires 18/11/04 -ham,no. but we'll do medical missions to nigeria -ham,"beautiful truth against gravity.. read carefully: \our heart feels light when someone is in it.. but it feels very heavy when someone leaves it..\"" goodmorning""" -ham,are you up for the challenge? i know i am :) -ham,"by the way, 'rencontre' is to meet again. mountains dont...." -ham,"a boy loved a gal. he propsd bt she didnt mind. he gv lv lttrs, bt her frnds threw thm. again d boy decided 2 aproach d gal , dt time a truck was speeding towards d gal. wn it was about 2 hit d girl,d boy ran like hell n saved her. she asked 'hw cn u run so fast?' d boy replied \boost is d secret of my energy\"" n instantly d girl shouted \""our energy\"" n thy lived happily 2gthr drinking boost evrydy moral of d story:- i hv free msgs:d;): gud ni8""" -ham,"enjoy the showers of possessiveness poured on u by ur loved ones, bcoz in this world of lies, it is a golden gift to be loved truly.." -ham,hows the pain dear?y r u smiling? -ham,"true. it is passable. and if you get a high score and apply for phd, you get 5years of salary. so it makes life easier." -ham,yo come over carlos will be here soon -ham,oh ok wait 4 me there... my lect havent finish -ham,no..its ful of song lyrics.. -spam,call freephone 0800 542 0578 now! -ham,"k, wait chikku..il send aftr <#> mins" -ham,"yo, call me when you get the chance, a friend of mine wanted me to ask you about a big order" -ham,it will stop on itself. i however suggest she stays with someone that will be able to give ors for every stool. -ham,"hello, hello, hi lou sorry it took so long 2 reply- i left mobile at friends in lancaster, just got it bak neway im sorry i couldn??t make ur b??day 2 hun!" -ham,gud mrng dear hav a nice day -ham,v skint too but fancied few bevies.waz gona go meet &othrs in spoon but jst bin watchng planet earth&sofa is v comfey; if i dont make it hav gd night -ham,"<#> , that's all? guess that's easy enough" -spam,"wan2 win a meet+greet with westlife 4 u or a m8? they are currently on what tour? 1)unbreakable, 2)untamed, 3)unkempt. text 1,2 or 3 to 83049. cost 50p +std text" -spam,you have won a guaranteed ??1000 cash or a ??2000 prize.to claim yr prize call our customer service representative on -ham,"yeah, where's your class at?" -ham,i am waiting machan. call me once you free. -ham,"hellogorgeous, hows u? my fone was on charge lst nitw wen u texd me. hopeu ad a nice wkend as im sure u did lookin 4ward 2 c-in u 2mrw luv jaz" -ham,gonna let me know cos comes bak from holiday that day. is coming. don't4get2text me number. -ham,i cant pick the phone right now. pls send a message -ham,no management puzzeles. -ham,call him and say you not coming today ok and tell them not to fool me like this ok -ham,what i'm saying is if you haven't explicitly told nora i know someone i'm probably just not gonna bother -ham,i'll text now! all creepy like so he won't think that we forgot -ham,"aight, see you in a bit" -ham,stupid auto correct on my phone -ham,u definitely need a module from e humanities dis sem izzit? u wan 2 take other modules 1st? -ham,if you're not in my car in an hour and a half i'm going apeshit -ham,sorry da. i gone mad so many pending works what to do. -ham,no she didnt. i will search online and let you know. -ham,happy new year my no.1 man -ham,"so many people seems to be special at first sight, but only very few will remain special to you till your last sight.. maintain them till life ends.. sh!jas" -ham,i'm reading the text i just sent you. its meant to be a joke. so read it in that light -ham,u studying in sch or going home? anyway i'll b going 2 sch later. -ham,aight ill get on fb in a couple minutes -ham,stop the story. i've told him i've returned it and he's saying i should not re order it. -ham,jay says that you're a double-faggot -ham,i've not sent it. he can send me. -ham,wen did you get so spiritual and deep. that's great -spam,"think ur smart ? win ??200 this week in our weekly quiz, text play to 85222 now!t&cs winnersclub po box 84, m26 3uz. 16+. gbp1.50/week" -ham,but i'm on a diet. and i ate 1 too many slices of pizza yesterday. ugh i'm always on a diet. -ham,is xy going 4 e lunch? -spam,had your mobile 11mths ? update for free to oranges latest colour camera mobiles & unlimited weekend calls. call mobile upd8 on freefone 08000839402 or 2stoptxt -ham,k. i will sent it again -spam,this message is brought to you by gmw ltd. and is not connected to the -ham,i'll probably be around mu a lot -ham,you got called a tool? -spam,"hi ya babe x u 4goten bout me?' scammers getting smart..though this is a regular vodafone no, if you respond you get further prem rate msg/subscription. other nos used also. beware!" -ham,hope you are having a good week. just checking in -ham,joy's father is john. then john is the ____ of joy's father. if u ans ths you hav <#> iq. tis s ias question try to answer. -ham,i think steyn surely get one wicket:) -ham,cbe is really good nowadays:)lot of shop and showrooms:)city is shaping good. -spam,"freemsg you have been awarded a free mini digital camera, just reply snap to collect your prize! (quizclub opt out? stop 80122300p/wk sp:rwm ph:08704050406)" -ham,so u gonna get deus ex? -spam,money!!! you r a lucky winner ! 2 claim your prize text money 2 88600 over ??1million to give away ! ppt150x3+normal text rate box403 w1t1jy -ham,wat makes u thk i'll fall down. but actually i thk i'm quite prone 2 falls. lucky my dad at home i ask him come n fetch me already. -ham,prabha..i'm soryda..realy..frm heart i'm sory -ham,quite late lar... ard 12 anyway i wun b drivin... -ham,"aight i've been set free, think you could text me blake's address? it occurs to me i'm not quite as sure what i'm doing as i thought i was" -ham,hey i've booked the pilates and yoga lesson already... haha -ham,hurry home. soup is done! -ham,"hmmm ... i thought we said 2 hours slave, not 3 ... you are late ... how should i punish you ?" -spam,good luck! draw takes place 28th feb 06. good luck! for removal send stop to 87239 customer services 08708034412 -spam,guess who am i?this is the first time i created a web page www.asjesus.com read all i wrote. i'm waiting for your opinions. i want to be your friend 1/1 -ham,you stayin out of trouble stranger!!saw dave the other day he??s sorted now!still with me bloke when u gona get a girl mr!ur mum still thinks we will get 2getha! -ham,k:)all the best:)congrats... -ham,and i don't plan on staying the night but i prolly won't be back til late -ham,gud mrng dear hav a nice day -ham,the evo. i just had to download flash. jealous? -ham,when i have stuff to sell i.ll tell you -ham,becoz its <#> jan whn al the post ofice is in holiday so she cn go fr the post ofice...got it duffer -ham,so when you gonna get rimac access -ham,auntie huai juan never pick up her phone -ham,"k, makes sense, btw carlos is being difficult so you guys are gonna smoke while i go pick up the second batch and get gas" -ham,i plane to give on this month end. -ham,yo dude guess who just got arrested the other day -spam,your unique user id is 1172. for removal send stop to 87239 customer services 08708034412 -ham,this is all just creepy and crazy to me. -ham,how do you guys go to see movies on your side. -ham,i think that tantrum's finished so yeah i'll be by at some point -ham,doing project w frens lor. -ham,come by our room at some point so we can iron out the plan for this weekend -ham,"best msg: it's hard to be with a person, when u know that one more step foward will make u fall in love.. & one step back can ruin ur friendship.. good night:-) ..." -ham,hmm ill have to think about it... ok you're forgiven! =d -ham,"that's fine, i'll bitch at you about it later then" -ham,oooh i got plenty of those! -ham,what's your room number again? wanna make sure i'm knocking on the right door -ham,missed your call cause i was yelling at scrappy. miss u. can't wait for u to come home. i'm so lonely today. -spam,private! your 2003 account statement for 07973788240 shows 800 un-redeemed s. i. m. points. call 08715203649 identifier code: 40533 expires 31/10/04 -ham,audrie lousy autocorrect -ham,yeah get the unlimited -ham,i wish u were here. i feel so alone -ham,watching ajith film ah? -ham,i'm aight. wat's happening on your side. -ham,k..k:)how about your training process? -ham,u come n search tat vid..not finishd.. -ham,"yeah i should be able to, i'll text you when i'm ready to meet up" -ham,"we spend our days waiting for the ideal path to appear in front of us.. but what we forget is.. \paths are made by walking.. not by waiting..\"" goodnight!""" -spam,"free msg: get gnarls barkleys \crazy\"" ringtone totally free just reply go to this message right now!""" -spam,private! your 2003 account statement for 07808 xxxxxx shows 800 un-redeemed s. i. m. points. call 08719899217 identifier code: 41685 expires 07/11/04 -ham,i got lousy sleep. i kept waking up every 2 hours to see if my cat wanted to come in. i worry about him when its cold :( -ham,"beautiful truth against gravity.. read carefully: \our heart feels light when someone is in it.. but it feels very heavy when someone leaves it..\"" good night""" -ham,wat's my dear doing? sleeping ah? -ham,my sis is catching e show in e afternoon so i'm not watching w her. so c u wan 2 watch today or tmr lor. -ham,ok. no wahala. just remember that a friend in need ... -ham,we are supposed to meet to discuss abt our trip... thought xuhui told you? in the afternoon. thought we can go for lesson after that -ham,k.k.how is your business now? -ham,whore you are unbelievable. -spam,want explicit sex in 30 secs? ring 02073162414 now! costs 20p/min gsex pobox 2667 wc1n 3xx -ham,"1) go to write msg 2) put on dictionary mode 3)cover the screen with hand, 4)press <#> . 5)gently remove ur hand.. its interesting..:)" -ham,are you happy baby ? are you alright ? did you take that job ? i hope your fine. i send you a kiss to make you smile from across the sea ... *kiss* *kiss* -ham,i know you are. can you pls open the back? -ham,babe ! what are you doing ? where are you ? who are you talking to ? do you think of me ? are you being a good boy? are you missing me? do you love me ? -ham,reading gud habit.. nan bari hudgi yorge pataistha ertini kano:-) -ham,"although i told u dat i'm into baig face watches now but i really like e watch u gave cos it's fr u. thanx 4 everything dat u've done today, i'm touched..." -ham,pick ur fone up now u dumb? -ham,what i meant to say is cant wait to see u again getting bored of this bridgwater banter -ham,ahhh. work. i vaguely remember that! what does it feel like? lol -ham,ok i'm waliking ard now... do u wan me 2 buy anything go ur house? -spam,urgent we are trying to contact you last weekends draw shows u have won a ??1000 prize guaranteed call 09064017295 claim code k52 valid 12hrs 150p pm -ham,heehee that was so funny tho -ham,hey what's up charles sorry about the late reply. -ham,"mmmmm ... i loved waking to your words this morning ! i miss you too, my love. i hope your day goes well and you are happy. i wait for us to be together again" -spam,call 09090900040 & listen to extreme dirty live chat going on in the office right now total privacy no one knows your [sic] listening 60p min 24/7mp 0870753331018+ -ham,does cinema plus drink appeal tomo? * is a fr thriller by director i like on at mac at 8.30. -ham,"easy mate, * guess the quick drink was bit ambitious." -ham,hey no i ad a crap nite was borin without ya 2 boggy with me u boring biatch! thanx but u wait til nxt time il ave ya -ham,"tunde, how are you doing. this is just wishing you a great day. abiola." -ham,no plans yet. what are you doing ? -ham,i'm home... -ham,"\shit babe.. thasa bit messed up.yeh illspeak 2 u2moro wen im not asleep...\"""" illspeak 2 u2moro wen im not asleep...\""""" -ham,ooooooh i forgot to tell u i can get on yoville on my phone -ham,"yo, i'm at my parents' gettin cash. good news: we picked up a downstem" -ham,quite lor. but dun tell him wait he get complacent... -ham,dude sux for snake. he got old and raiden got buff -ham,just got outta class gonna go gym. -ham,k:)eng rocking in ashes:) -ham,"my sister in law, hope you are having a great month. just saying hey. abiola" -ham,i gotta collect da car at 6 lei. -ham,"good afternoon, my love. how goes your day ? what are you up to ? i woke early and am online waiting for you ... hmmm ... italian boy is online i see . *grins*" -spam,reply to win ??100 weekly! what professional sport does tiger woods play? send stop to 87239 to end service -ham,so lets make it saturday or monday as per convenience. -ham,bring tat cd don forget -spam,free for 1st week! no1 nokia tone 4 ur mobile every week just txt nokia to 8077 get txting and tell ur mates. www.getzed.co.uk pobox 36504 w45wq 16+ norm150p/tone -ham,"if we hit it off, you can move in with me :)" -ham,super da:)good replacement for murali -spam,free msg:we billed your mobile number by mistake from shortcode 83332.please call 08081263000 to have charges refunded.this call will be free from a bt landline -ham,"derp. which is worse, a dude who always wants to party or a dude who files a complaint about the three drug abusers he lives with" -ham,i'm meeting darren... -ham,should i head straight there or what -spam,can u get 2 phone now? i wanna chat 2 set up meet call me now on 09096102316 u can cum here 2moro luv jane xx calls??1/minmoremobsemspobox45po139wa -ham,were somewhere on fredericksburg -ham,ok lor. msg me b4 u call. -spam,text pass to 69669 to collect your polyphonic ringtones. normal gprs charges apply only. enjoy your tones -ham,"i hav almost reached. call, i m unable to connect u." -ham,"sorry, i'll call later" -spam,do you want a new video handset? 750 any time any network mins? unlimited text? camcorder? reply or call now 08000930705 for del sat am -ham,yeah but which is worse for i -ham,hello which the site to download songs its urgent pls -ham,also that chat was awesome but don't make it regular unless you can see her in person -ham,"i'm not sure, i was just checking out what was happening around the area" -ham,great. so should i send you my account number. -ham,ah poop. looks like ill prob have to send in my laptop to get fixed cuz it has a gpu problem -ham,no..but heard abt tat.. -ham,nationwide auto centre (or something like that) on newport road. i liked them there -ham,what about this one then. -ham,from 5 to 2 only my work timing. -ham,"jay told me already, will do" -ham,"i???ve got some salt, you can rub it in my open wounds if you like!" -ham,what pa tell me.. i went to bath:-) -ham,so i could kiss and feel you next to me... -ham,let there be snow. let there be snow. this kind of weather brings ppl together so friendships can grow. -ham,"storming msg: wen u lift d phne, u say \hello\"" do u knw wt is d real meaning of hello?? . . . it's d name of a girl..! . . . yes.. and u knw who is dat girl?? \""margaret hello\"" she is d girlfrnd f grahmbell who invnted telphone... . . . . moral:one can 4get d name of a person" -spam,urgent! please call 09061213237 from a landline. ??5000 cash or a 4* holiday await collection. t &cs sae po box 177 m227xy. 16+ -ham,s.s:)i thinl role is like sachin.just standing. others have to hit. -ham,im realy soz imat my mums 2nite what about 2moro -ham,they have a thread on the wishlist section of the forums where ppl post nitro requests. start from the last page and collect from the bottom up. -spam,themob>yo yo yo-here comes a new selection of hot downloads for our members to get for free! just click & open the next link sent to ur fone... -spam,"double mins & 1000 txts on orange tariffs. latest motorola, sonyericsson & nokia with bluetooth free! call mobileupd8 on 08000839402 or call2optout/hf8" -ham,this girl does not stay in bed. this girl doesn't need recovery time. id rather pass out while having fun then be cooped up in bed -ham,ok. -spam,urgent! we are trying to contact u. todays draw shows that you have won a ??800 prize guaranteed. call 09050003091 from land line. claim c52. valid12hrs only -ham,"sorry, i'll call later in meeting" -ham,"k, wat s tht incident?" -ham,"hey doc pls i want to get nice t shirt for my hubby nice fiting ones my budget is <#> k help pls i will load d card abi hw,keep me posted luv. 2 mj" -ham,how much she payed. suganya. -ham,"give her something to drink, if she takes it and doesn't vomit then you her temp might drop. if she unmits however let me know." -spam,well done england! get the official poly ringtone or colour flag on yer mobile! text tone or flag to 84199 now! opt-out txt eng stop. box39822 w111wx ??1.50 -ham,i wanna watch that movie -ham,sorry i cant take your call right now. it so happens that there r 2waxsto do wat you want. she can come and ill get her medical insurance. and she'll be able to deliver and have basic care. i'm currently shopping for the right medical insurance for her. so just give me til friday morning. thats when i.ll see the major person that can guide me to the right insurance. -ham,in life when you face choices just toss a coin not becoz its settle the question but while the coin in the air u will know what your heart is hoping for. gudni8 -ham,"dear relieved of westonzoyland, all going to plan this end too!" -ham,we stopped to get ice cream and will go back after -ham,"nowadays people are notixiquating the laxinorficated opportunity for bambling of entropication.... have you ever oblisingately opted ur books for the masteriastering amplikater of fidalfication? it is very champlaxigating, i think it is atrocious.. wotz ur opinion???? junna" -ham,aslamalaikkum....insha allah tohar beeen muht albi mufti mahfuuz...meaning same here.... -ham,"awesome, lemme know whenever you're around" -ham,ya very nice. . .be ready on thursday -ham,twenty past five he said will this train have been to durham already or not coz i am in a reserved seat -ham,nobody can decide where to eat and dad wants chinese -ham,the 2 oz guy is being kinda flaky but one friend is interested in picking up $ <#> worth tonight if possible -ham,get ready to moan and scream :) -ham,645 -ham,he is a womdarfull actor -ham,"hello, my love. what are you doing? did you get to that interview today? are you you happy? are you being a good boy? do you think of me?are you missing me ?" -ham,"the table's occupied, i'm waiting by the tree" -ham,in the end she might still vomit but its okay. not everything will come out. -spam,ur cash-balance is currently 500 pounds - to maximize ur cash-in now send cash to 86688 only 150p/msg. cc: 08708800282 hg/suite342/2lands row/w1j6hl -ham,i sent you <#> bucks -spam,u have a secret admirer who is looking 2 make contact with u-find out who they r*reveal who thinks ur so special-call on 09065171142-stopsms-08718727870150ppm -ham,jay's getting really impatient and belligerent -ham,you busy or can i come by at some point and figure out what we're doing tomorrow -spam,had your mobile 11 months or more? u r entitled to update to the latest colour mobiles with camera for free! call the mobile update co free on 08002986030 -ham,lol or i could just starve and lose a pound by the end of the day. -ham,babe !!!! i love you !!!! *covers your face in kisses* -ham,what u talking bout early morning? it's almost noon where your at! -ham,7 at esplanade.. do ?_ mind giving me a lift cos i got no car today.. -ham,"i'm done. i'm sorry. i hope your next space gives you everything you want. remember all the furniture is yours. if i'm not around when you move it, just lock all the locks and leave the key with jenne." -spam,you have won a guaranteed ??1000 cash or a ??2000 prize. to claim yr prize call our customer service representative on 08714712379 between 10am-7pm cost 10p -ham,"awesome, that gonna be soon or later tonight?" -ham,my sister got placed in birla soft da:-) -ham,im fine babes aint been up 2 much tho! saw scary movie yest its quite funny! want 2mrw afternoon? at town or mall or sumthin?xx -spam,sms auction - a brand new nokia 7250 is up 4 auction today! auction is free 2 join & take part! txt nokia to 86021 now! hg/suite342/2lands row/w1j6hl -ham,wat time do u wan 2 meet me later? -ham,"\speak only when you feel your words are better than the silence...\"" gud mrng:-)""" -ham,joy's father is john. then john is the name of joy's father. mandan -ham,he telling not to tell any one. if so treat for me hi hi hi -ham,ok going to sleep. hope i can meet her. -ham,should i be stalking u? -ham,"yeah there's quite a bit left, i'll swing by tomorrow when i get up" -ham,sorry sent blank msg again. yup but trying 2 do some serious studying now. -ham,dare i ask... any luck with sorting out the car? -ham,u r the most beautiful girl ive ever seen. u r my baby come and c me in the common room -ham,"that???s the thing with apes, u can fight to the death to keep something, but the minute they have it when u let go, thats it!" -ham,"<#> is fast approaching. so, wish u a very happy new year happy sankranti happy republic day happy valentines day happy shivratri happy ugadi happy fools day happy may day happy independence day, happy friendship,mother,father,teachers,childrens day, & happy birthday 4 u. happy ganesh festival happy dasara happy diwali happy christmas <#> good mornings afternoons, evenings nights. rememberi am the first to wishing u all these...your's raj" -ham,"wishing you and your family merry \x\"" mas and happy new year in advance..""" -spam,dear 0776xxxxxxx u've been invited to xchat. this is our final attempt to contact u! txt chat to 86688 150p/msgrcvdhg/suite342/2lands/row/w1j6hl ldn 18yrs -ham,yeah so basically any time next week you can get away from your mom & get up before 3 -ham,"mah b, i'll pick it up tomorrow" -ham,no i am not having not any movies in my laptop -ham,yeah you should. i think you can use your gt atm now to register. not sure but if there's anyway i can help let me know. but when you do be sure you are ready. -ham,you flippin your shit yet? -ham,i'm ok wif it cos i like 2 try new things. but i scared u dun like mah. cos u said not too loud. -ham,at what time should i come tomorrow -ham,it is only yesterday true true. -ham,ugh hopefully the asus ppl dont randomly do a reformat. -ham,can... i'm free... -ham,"did he say how fantastic i am by any chance, or anything need a bigger life lift as losing the will 2 live, do you think i would be the first person 2 die from n v q?" -ham,so i'm doing a list of buyers. -ham,i love u 2 babe! r u sure everything is alrite. is he being an idiot? txt bak girlie -ham,in e msg jus now. u said thanks for gift. -ham,can ?_ call me at 10:10 to make sure dat i've woken up... -ham,then cant get da laptop? my matric card wif ?_ lei... -ham,:-) :-) -ham,black shirt n blue jeans... i thk i c ?_... -ham,"hello, as per request from <#> rs.5 has been transfered to you" -ham,good sleep is about rhythm. the person has to establish a rhythm that the body will learn and use. if you want to know more :-) -ham,really? i crashed out cuddled on my sofa. -ham,ok. i am a gentleman and will treat you with dignity and respect. -ham,how will i creep on you now? ;_; -spam,urgent! your mobile number has been awarded with a ??2000 prize guaranteed. call 09061790126 from land line. claim 3030. valid 12hrs only 150ppm -ham,our prasanth ettans mother passed away last night. just pray for her and family. -ham,no need to say anything to me. i know i am an outsider -ham,"sorry pa, i dont knw who ru pa?" -ham,i think it's all still in my car -ham,ok i also wan 2 watch e 9 pm show... -spam,"xmas offer! latest motorola, sonyericsson & nokia & free bluetooth or dvd! double mins & 1000 txt on orange. call mobileupd8 on 08000839402 or call2optout/4qf2" -ham,"sorry my roommates took forever, it ok if i come by now?" -ham,how long does it take to get it. -ham,sorry i've not gone to that place. i.ll do so tomorrow. really sorry. -spam,you are chosen to receive a ??350 award! pls call claim number 09066364311 to collect your award which you are selected to receive as a valued mobile customer. -ham,"no, i decided that only people who care about stuff vote and caring about stuff is for losers" -ham,ya it came a while ago -ham,are you willing to go for aptitude class. -ham,hey gorgeous man. my work mobile number is. have a good one babe. squishy mwahs. -ham,me hungry buy some food good lei... but mum n yun dun wan juz buy a little bit... -ham,i'm going out to buy mum's present ar. -ham,carry on not disturbing both of you -ham,"hello, yeah i've just got out of the bath and need to do my hair so i'll come up when i'm done, yeah?" -ham,you have registered sinco as payee. log in at icicibank.com and enter urn <#> to confirm. beware of frauds. do not share or disclose urn to anyone. -ham,"as i entered my cabin my pa said, '' happy b'day boss !!''. i felt special. she askd me 4 lunch. after lunch she invited me to her apartment. we went there." -ham,ok. -ham,true lov n care wil nevr go unrecognized. though somone often makes mistakes when valuing it. but they will definitly undrstnd once when they start missing it. -ham,and stop being an old man. you get to build snowman snow angels and snowball fights. -ham,howz pain?hope u r fine.. -ham,r u meeting da ge at nite tmr? -ham,we are pleased to inform that your application for airtel broadband is processed successfully. your installation will happen within 3 days. -ham,"mon okie lor... haha, best is cheap n gd food la, ex oso okie... depends on whether wana eat western or chinese food... den which u prefer..." -ham,dont show yourself. how far. put new pictures up on facebook. -ham,hows my favourite person today? r u workin hard? couldn't sleep again last nite nearly rang u at 4.30 -ham,where can download clear movies. dvd copies. -ham,"okies... i'll go yan jiu too... we can skip ard oso, go cine den go mrt one, blah blah blah..." -ham,see? i thought it all through -ham,well. balls. time to make calls -ham,shuhui has bought ron's present it's a swatch watch... -ham,yup... how ?_ noe leh... -ham,is there coming friday is leave for pongal?do you get any news from your work place. -ham,?? dun need to pick ur gf? -ham,"\happy valentines day\"" i know its early but i have hundreds of handsomes and beauties to wish. so i thought to finish off aunties and uncles 1st...""" -ham,do ?_ all wan 2 meet up n combine all the parts? how's da rest of da project going? -ham,he also knows about lunch menu only da. . i know -spam,claire here am havin borin time & am now alone u wanna cum over 2nite? chat now 09099725823 hope 2 c u luv claire xx calls??1/minmoremobsemspobox45po139wa -ham,baaaaaaaabe! wake up ! i miss you ! i crave you! i need you! -ham,i dont know oh. hopefully this month. diff --git a/spear/Implyloss/testing/Data/SMS/validation_processed.p b/spear/Implyloss/testing/Data/SMS/validation_processed.p deleted file mode 100644 index d6504ce..0000000 Binary files a/spear/Implyloss/testing/Data/SMS/validation_processed.p and /dev/null differ diff --git a/spear/Implyloss/testing/make_pickle.py b/spear/Implyloss/testing/make_pickle.py deleted file mode 100644 index 62e7774..0000000 --- a/spear/Implyloss/testing/make_pickle.py +++ /dev/null @@ -1,74 +0,0 @@ -import numpy as np -import pickle -import torch - -if __name__ == "__main__": - files = ["d_processed.p", "U_processed.p", "validation_processed.p", "test_processed.p"] - output = ['pickled_data/data_L.pkl', 'pickled_data/data_U.pkl', 'pickled_data/data_V.pkl', 'pickled_data/data_T.pkl'] - - #youtube - # files = ['Data/Youtube/'+file for file in files] - # #need to do subset selection here, but maybe done in core.py - # for num in range(len(files)): - # objs = [] - # with open(files[num], 'rb') as f: - # while 1: - # try: - # o = pickle.load(f) - # except EOFError: - # break - # if num == 2: - # objs.append(o[:100]) - # else: - # objs.append(o) - # objs[3] = objs[3].reshape((objs[3]).size, 1) - # objs[4] = objs[4].reshape((objs[4]).size, 1) - # print(len(objs)) - # temp_file = open(output[num], 'wb') - # for obj in objs: - # pickle.dump(obj, temp_file) - # pickle.dump(objs[2], temp_file) - # pickle.dump(np.zeros(10), temp_file) - # pickle.dump(np.array([1, 1, 1, 1, 0, 1, 0, 0, 0, 0]), temp_file) - # temp_file.close() - - #sms - files = ['Data/SMS/'+file for file in files] - #need to do subset selection here, but maybe done in core.py - for num in range(len(files)): - objs = [] - with open(files[num], 'rb') as f: - while 1: - try: - o = pickle.load(f) - except EOFError: - break - - if num == 2: - objs.append(o[-69:]) - else: - objs.append(o) - if num == 1: - - l_unsupervised_ = torch.tensor(objs[2]).long() - covered_indices = l_unsupervised_.sum(1).nonzero().squeeze() - - objs[0] = objs[0][covered_indices] - objs[1] = objs[1][covered_indices] - objs[2] = objs[2][covered_indices] - objs[3] = objs[3][covered_indices] - objs[4] = objs[4][covered_indices] - objs[5] = objs[5][covered_indices] - - - objs[3] = objs[3].reshape((objs[3]).size, 1) - objs[4] = objs[4].reshape((objs[4]).size, 1) - print(len(objs)) - temp_file = open(output[num], 'wb') - for obj in objs: - pickle.dump(obj, temp_file) - pickle.dump(objs[2], temp_file) - pickle.dump(np.zeros(73), temp_file) - pickle.dump(1-np.array([1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0]), temp_file) - temp_file.close() - diff --git a/spear/Implyloss/testing/pickled_data/data_L.pkl b/spear/Implyloss/testing/pickled_data/data_L.pkl deleted file mode 100644 index 4ae49f5..0000000 Binary files a/spear/Implyloss/testing/pickled_data/data_L.pkl and /dev/null differ diff --git a/spear/Implyloss/testing/pickled_data/data_T.pkl b/spear/Implyloss/testing/pickled_data/data_T.pkl deleted file mode 100644 index 9e126fe..0000000 Binary files a/spear/Implyloss/testing/pickled_data/data_T.pkl and /dev/null differ diff --git a/spear/Implyloss/testing/pickled_data/data_U.pkl b/spear/Implyloss/testing/pickled_data/data_U.pkl deleted file mode 100644 index 4496e4b..0000000 Binary files a/spear/Implyloss/testing/pickled_data/data_U.pkl and /dev/null differ diff --git a/spear/Implyloss/testing/pickled_data/data_V.pkl b/spear/Implyloss/testing/pickled_data/data_V.pkl deleted file mode 100644 index e1c8cad..0000000 Binary files a/spear/Implyloss/testing/pickled_data/data_V.pkl and /dev/null differ diff --git a/spear/Implyloss/my_train.py b/spear/Implyloss/train.py old mode 100755 new mode 100644 similarity index 88% rename from spear/Implyloss/my_train.py rename to spear/Implyloss/train.py index 7b74e4f..71996f3 --- a/spear/Implyloss/my_train.py +++ b/spear/Implyloss/train.py @@ -1,7 +1,10 @@ -from my_data_types import f_d, f_d_U -from my_utils import * +# from .my_data_types import f_d, f_d_U +# from .my_utils import * +# import .my_utils, my_data_types +from .data_types import f_d, f_d_U +from .utils import * + # import metrics_utils -import my_utils, my_data_types import json import time import tensorflow.compat.v1 as tf @@ -22,7 +25,8 @@ class HLSTrain(): Func Desc: This Class is designed to train the HLS model using the Implyloss Algorithm ''' - def __init__(self, hls, config=None): + def __init__(self, hls, + f_d_metrics_pickle, f_d_U_metrics_pickle, f_d_adam_lr, f_d_U_adam_lr, early_stopping_p, f_d_primary_metric, mode, data_dir): ''' Func Desc: Initializes the class member variables using the arguments provided @@ -30,16 +34,21 @@ def __init__(self, hls, config=None): Input: self hls - the hls model - config Sets: hls - config f_d_metrics_pickle ''' self.hls = hls - self.config = config - self.f_d_metrics_pickle = config.f_d_metrics_pickle #file path where metrics of trained model are stored + # self.config = config + self.f_d_metrics_pickle = f_d_metrics_pickle #file path where metrics of trained model are stored + self.f_d_U_metrics_pickle = f_d_U_metrics_pickle #file path where metrics of trained model are stored + self.f_d_adam_lr = f_d_adam_lr + self.f_d_U_adam_lr = f_d_U_adam_lr + self.early_stopping_p = early_stopping_p + self.f_d_primary_metric = f_d_primary_metric + self.mode = mode + self.data_dir = data_dir self.init_metrics() self.make_f_summary_ops() @@ -136,7 +145,7 @@ def train_f_on_d(self, datafeeder, num_epochs): for i in range(total_batch): batch_x, batch_y = datafeeder.get_f_d_next_batch() feed_dict = { - self.hls.f_d_adam_lr: self.config.f_d_adam_lr, + self.hls.f_d_adam_lr: self.f_d_adam_lr, self.hls.f_x: batch_x, self.hls.f_d_labels: batch_y } @@ -168,14 +177,14 @@ def train_f_on_d(self, datafeeder, num_epochs): patience = 0 #rest patience if primary metric improved else: patience += 1 - if patience > self.config.early_stopping_p: + if patience > self.early_stopping_p: print("bye! stopping early!......") break # Save checkpoint print() self.hls.mru_saver.save(global_step) print() - best_saver_f_d.save_if_best(metrics_dict[self.config.f_d_primary_metric]) + best_saver_f_d.save_if_best(metrics_dict[self.f_d_primary_metric]) print() print("Optimization Finished for f_d!") @@ -227,14 +236,14 @@ def train_f_on_d_U(self, datafeeder, num_epochs, loss_type): best_saver_f_d_U = self.hls.best_savers.get_best_saver(f_d_U) metrics_dict = {} #{'config': self.config} - if 'label_snorkel' == self.config.mode or 'pure_snorkel' == self.config.mode or 'gcross_snorkel' == self.config.mode: + if 'label_snorkel' == self.mode or 'pure_snorkel' == self.mode or 'gcross_snorkel' == self.mode: label_model = LabelModel(cardinality=self.hls.num_classes, verbose=True) - if os.path.isfile(os.path.join(self.config.data_dir,"saved_label_model")): - label_model = label_model.load(os.path.join(self.config.data_dir,"saved_label_model")) + if os.path.isfile(os.path.join(self.data_dir,"saved_label_model")): + label_model = label_model.load(os.path.join(self.data_dir,"saved_label_model")) else: print("LABEL MODEL NOT SAVED") exit() - if 'gcross' in self.config.mode or 'learn2reweight' in self.config.mode: + if 'gcross' in self.mode or 'learn2reweight' in self.mode: majority_model = MajorityLabelVoter(cardinality=self.hls.num_classes) with sess.as_default(): @@ -254,7 +263,7 @@ def train_f_on_d_U(self, datafeeder, num_epochs, loss_type): datafeeder.get_f_d_U_next_batch() feed_dict={ - self.hls.f_d_U_adam_lr: self.config.f_d_U_adam_lr, + self.hls.f_d_U_adam_lr: self.f_d_U_adam_lr, self.hls.f_d_U_x: batch_x, self.hls.f_d_U_l : batch_l, self.hls.f_d_U_m : batch_m, @@ -265,11 +274,11 @@ def train_f_on_d_U(self, datafeeder, num_epochs, loss_type): batch_lsnork = conv_l_to_lsnork(batch_l,batch_m) - if 'label_snorkel' == self.config.mode or 'pure_snorkel' == self.config.mode or 'gcross_snorkel' == self.config.mode: + if 'label_snorkel' == self.mode or 'pure_snorkel' == self.mode or 'gcross_snorkel' == self.mode: batch_snork_L = label_model.predict_proba(L=batch_lsnork) #snorkel_probs feed_dict[self.hls.f_d_U_snork_L] = batch_snork_L - if 'gcross' == self.config.mode or 'learn2reweight' == self.config.mode: + if 'gcross' == self.mode or 'learn2reweight' == self.mode: batch_snork_L = majority_model.predict(L=batch_lsnork) #majority votes batch_snork_L = np.eye(self.hls.num_classes)[batch_snork_L] #one hot rep feed_dict[self.hls.f_d_U_snork_L] = batch_snork_L @@ -308,14 +317,14 @@ def train_f_on_d_U(self, datafeeder, num_epochs, loss_type): patience = 0 #rest patience if primary metric improved else: patience += 1 - if patience > self.config.early_stopping_p: + if patience > self.early_stopping_p: print("bye! stopping early!......") break # Save checkpoint print() self.hls.mru_saver.save(global_step) print() - best_saver_f_d_U.save_if_best(metrics_dict[self.config.f_d_primary_metric]) + best_saver_f_d_U.save_if_best(metrics_dict[self.f_d_primary_metric]) print() global_step += 1 print("Optimization Finished for f_d_U!") @@ -333,8 +342,8 @@ def init_metrics(self): ''' self.metrics_file = { - f_d: self.config.f_d_metrics_pickle, - f_d_U: self.config.f_d_U_metrics_pickle, + f_d: self.f_d_metrics_pickle, + f_d_U: self.f_d_U_metrics_pickle, } self.best_metric = {} @@ -366,7 +375,7 @@ def get_metric(self, run_type, metrics_dict): Output: the required metrics_dict ''' - return metrics_dict[self.config.f_d_primary_metric] + return metrics_dict[self.f_d_primary_metric] def save_metrics(self, run_type, metrics_dict): ''' diff --git a/spear/Implyloss/trec_implyloss.ipynb b/spear/Implyloss/trec_implyloss.ipynb deleted file mode 100644 index 737602f..0000000 --- a/spear/Implyloss/trec_implyloss.ipynb +++ /dev/null @@ -1,54 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 2, - "id": "716d2f53", - "metadata": {}, - "outputs": [], - "source": [ - "#!/bin/bash " - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "5d68ce2f", - "metadata": {}, - "outputs": [ - { - "ename": "SyntaxError", - "evalue": "invalid syntax (, line 1)", - "output_type": "error", - "traceback": [ - "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m ./my_train_trec.sh\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n" - ] - } - ], - "source": [ - "./my_train_trec.sh" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.5" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/spear/Implyloss/my_utils.py b/spear/Implyloss/utils.py old mode 100755 new mode 100644 similarity index 100% rename from spear/Implyloss/my_utils.py rename to spear/Implyloss/utils.py diff --git a/spear/L2R/my_utils.py b/spear/L2R/my_utils.py deleted file mode 100644 index e6f5c2a..0000000 --- a/spear/L2R/my_utils.py +++ /dev/null @@ -1,46 +0,0 @@ -import pickle -import numpy as np -import torch -from torch.distributions.beta import Beta -import tensorflow as tf - -def get_data(path): - ''' - expected order in pickle file is NUMPY arrays x, l, m, L, d, r, s, n, k - x: [num_instances, num_features] - l: [num_instances, num_rules] - m: [num_instances, num_rules] - L: [num_instances, 1] - d: [num_instances, 1] - r: [num_instances, num_rules] - s: [num_instances, num_rules] - n: [num_rules] Mask for s - k: [num_rules] LF classes, range 0 to num_classes-1 - ''' - data = [] - with open(path, 'rb') as file: - contents = pickle.load(file) - for i in range(9): - if i == 0: - data.append(pickle.load(f)) - else if i == 6: - data.append(pickle.load(f).astype(np.float32)) - else: - data.append(pickle.load(f).astype(np.int32)) - return data - - import tensorflow as tf - -def updated_theta_copy(grads, variables, lr, mode): - vals = [] - if mode == 1: - for g,v in zip(grads,variables): - vals.append(v+lr*g) - elif mode == -1: - for g,v in zip(grads,variables): - vals.append(v-lr*g) - else: - print("invalid mode error!") - print(exit(1)) - - return vals diff --git a/spear/Cage/__init__.py b/spear/cage/__init__.py similarity index 100% rename from spear/Cage/__init__.py rename to spear/cage/__init__.py diff --git a/spear/Cage/core.py b/spear/cage/core.py similarity index 66% rename from spear/Cage/core.py rename to spear/cage/core.py index a297de3..b365ef4 100644 --- a/spear/Cage/core.py +++ b/spear/cage/core.py @@ -3,10 +3,11 @@ import pickle from os import path as check_path import numpy as np +from tqdm import tqdm from sklearn.metrics import accuracy_score from sklearn.metrics import f1_score -from ..utils.data_editer import get_data, get_classes, get_predictions +from ..utils.data_editor import get_data, get_classes, get_predictions from ..utils.utils_cage import probability, log_likelihood_loss, precision_loss, predict_gm_labels class Cage: @@ -24,21 +25,25 @@ def __init__(self, path_json, n_lfs): assert type(path_json) == str assert type(n_lfs) == np.int or type(n_lfs) == np.float + use_cuda = torch.cuda.is_available() + self.device = torch.device("cuda" if use_cuda else "cpu") + torch.backends.cudnn.benchmark = True + self.class_dict = get_classes(path_json) self.class_list = list((self.class_dict).keys()) self.class_list.sort() self.n_classes = len(self.class_dict) - self.class_map = {index : value for index, value in enumerate(self.class_list)} + self.class_map = {value: index for index, value in enumerate(self.class_list)} self.class_map[None] = self.n_classes self.n_lfs = int(n_lfs) self.n, self.k = None, None #continuous_mask, labels of LFs - self.pi = torch.ones((self.n_classes, self.n_lfs)).double() + self.pi = torch.ones((self.n_classes, self.n_lfs), device = self.device).double() (self.pi).requires_grad = True - self.theta = torch.ones((self.n_classes, self.n_lfs)).double() + self.theta = torch.ones((self.n_classes, self.n_lfs), device = self.device).double() (self.theta).requires_grad = True def save_params(self, save_path): @@ -51,6 +56,8 @@ def save_params(self, save_path): file_ = open(save_path, 'wb') pickle.dump(self.theta, file_) pickle.dump(self.pi, file_) + pickle.dump(self.n_classes, file_) + pickle.dump(self.n_lfs, file_) file_.close() return @@ -65,7 +72,12 @@ def load_params(self, load_path): file_ = open(load_path, 'rb') self.theta = pickle.load(file_) self.pi = pickle.load(file_) + assert self.n_classes == pickle.load(file_) + assert self.n_lfs == pickle.load(file_) file_.close() + + assert (self.pi).shape == (self.n_classes, self.n_lfs) + assert (self.theta).shape == (self.n_classes, self.n_lfs) return def fit_and_predict_proba(self, path_pkl, path_test = None, path_log = None, qt = 0.9, qc = 0.85, metric_avg = ['binary'], n_epochs = 100, lr = 0.01): @@ -73,7 +85,7 @@ def fit_and_predict_proba(self, path_pkl, path_test = None, path_log = None, qt Args: path_pkl: Path to pickle file of input data in standard format path_test: Path to the pickle file containing test data in standard format - path_log: Path to log file, default value is None. No log is producede if path_test is None + path_log: Path to log file. No log is produced if path_test is None. Default is None which prints accuracies/f1_scores is printed to terminal qt: Quality guide of shape (n_lfs,) of type numpy.ndarray OR a float. Values must be between 0 and 1. Default is 0.9 qc: Quality index of shape (n_lfs,) of type numpy.ndarray OR a float. Values must be between 0 and 1. Default is 0.85 metric_avg: List of average metric to be used in calculating f1_score, default is ['binary']. Use None for not calculating f1_score @@ -96,24 +108,24 @@ def fit_and_predict_proba(self, path_pkl, path_test = None, path_log = None, qt assert type(lr) == np.int or type(lr) == np.float data = get_data(path_pkl, True, self.class_map) - m = torch.abs(torch.tensor(data[2]).long()) - s = torch.tensor(data[6]).double() # continuous score + m = torch.abs(torch.tensor(data[2], device = self.device).long()) + s = torch.tensor(data[6], device = self.device).double() # continuous score if self.n == None: - self.n = torch.tensor(data[7]).double() # Mask for s/continuous_mask + self.n = torch.tensor(data[7], device = self.device).double() # Mask for s/continuous_mask else: - assert torch.all(torch.tensor(data[7]).double().eq(self.n)) + assert torch.all(torch.tensor(data[7], device = self.device).double().eq(self.n)) if self.k == None: - self.k = torch.tensor(data[8]).long() # LF's classes + self.k = torch.tensor(data[8], device = self.device).long() # LF's classes else: - assert torch.all(torch.tensor(data[8]).long().eq(self.k)) + assert torch.all(torch.tensor(data[8], device = self.device).long().eq(self.k)) s[s > 0.999] = 0.999 # clip s s[s < 0.001] = 0.001 # clip s assert self.n_lfs == m.shape[1] assert self.n_classes == data[9] - qt_ = torch.tensor(qt).double() if type(qt) == np.ndarray else (torch.ones(self.n_lfs).double() * qt) - qc_ = torch.tensor(qc).double() if type(qc) == np.ndarray else qc + qt_ = torch.tensor(qt, device = self.device).double() if type(qt) == np.ndarray else (torch.ones(self.n_lfs, device = self.device).double() * qt) + qc_ = torch.tensor(qc, device = self.device).double() if type(qc) == np.ndarray else qc metric_avg_ = list(set(metric_avg)) n_epochs_ = int(n_epochs) @@ -122,53 +134,62 @@ def fit_and_predict_proba(self, path_pkl, path_test = None, path_log = None, qt file = None if path_test != None and path_log != None: file = open(path_log, "a+") - file.write("CAGE log:\n") + file.write("CAGE log:\tn_classes: {}\tn_LFs: {}\tn_epochs: {}\tlr: {}\n".format(self.n_classes, self.n_lfs, n_epochs, lr)) + elif path_test != None: + print("CAGE log:\tn_classes: {}\tn_LFs: {}\tn_epochs: {}\tlr: {}".format(self.n_classes, self.n_lfs, n_epochs, lr)) y_true_test = None s_test, m_test = None, None if path_test != None: data = get_data(path_test, True, self.class_map) m_test, y_true_test, s_test = data[2], data[3], data[6] + assert m_test.shape[0] == y_true_test.shape[0] y_true_test = y_true_test.flatten() assert self.n_lfs == m_test.shape[1] assert self.n_classes == data[9] - assert torch.all(torch.tensor(data[7]).double().eq(self.n)) - assert torch.all(torch.tensor(data[8]).long().eq(self.k)) + assert torch.all(torch.tensor(data[7], device = self.device).double().eq(self.n)) + assert torch.all(torch.tensor(data[8], device = self.device).long().eq(self.k)) assert np.all(np.logical_and(y_true_test >= 0, y_true_test < self.n_classes)) - for epoch in range(n_epochs_): - optimizer.zero_grad() - loss = log_likelihood_loss(self.theta, self.pi, m, s, self.k, self.n_classes, self.n, qc_) - prec_loss = precision_loss(self.theta, self.k, self.n_classes, qt_) - loss += prec_loss - - y_pred = self.__predict_specific(m_test, s_test, qc_) - if path_test != None and path_log != None: - file.write("Epoch: {}\taccuracy_score: {}\n".format(epoch, accuracy_score(y_true_test, y_pred))) - if epoch == n_epochs_-1: - print("final_accuracy_score: {}".format(accuracy_score(y_true_test, y_pred))) - if (path_test != None and path_log != None) or epoch == n_epochs_-1: - for temp in metric_avg_: - if path_test != None and path_log != None: - file.write("Epoch: {}\taverage_metric: {}\tf1_score: {}\n".format(epoch, temp, f1_score(y_true_test, y_pred, average = temp))) + with tqdm(total=n_epochs_) as pbar: + for epoch in range(n_epochs_): + optimizer.zero_grad() + loss = log_likelihood_loss(self.theta, self.pi, m, s, self.k, self.n_classes, self.n, qc_, self.device) + prec_loss = precision_loss(self.theta, self.k, self.n_classes, qt_, self.device) + loss += prec_loss + + if path_test != None: + y_pred = self.__predict_specific(m_test, s_test, qc_) + if path_log != None: + file.write("Epoch: {}\ttest_accuracy_score: {}\n".format(epoch, accuracy_score(y_true_test, y_pred))) + else: + print("Epoch: {}\ttest_accuracy_score: {}".format(epoch, accuracy_score(y_true_test, y_pred))) if epoch == n_epochs_-1: - print("average_metric: {}\tf1_score: {}".format(temp, f1_score(y_true_test, y_pred, average = temp))) - - loss.backward() - optimizer.step() + print("final_test_accuracy_score: {}".format(accuracy_score(y_true_test, y_pred))) + for temp in metric_avg_: + if path_log != None: + file.write("Epoch: {}\ttest_average_metric: {}\ttest_f1_score: {}\n".format(epoch, temp, f1_score(y_true_test, y_pred, average = temp))) + else: + print("Epoch: {}\ttest_average_metric: {}\ttest_f1_score: {}".format(epoch, temp, f1_score(y_true_test, y_pred, average = temp))) + if epoch == n_epochs_-1: + print("test_average_metric: {}\tfinal_test_f1_score: {}".format(temp, f1_score(y_true_test, y_pred, average = temp))) + + loss.backward() + optimizer.step() + pbar.update() if path_test != None and path_log != None: file.close() - return (probability(self.theta, self.pi, m, s, self.k, self.n_classes, self.n, qc_)).detach().numpy() + return (probability(self.theta, self.pi, m, s, self.k, self.n_classes, self.n, qc_, self.device)).cpu().detach().numpy() def fit_and_predict(self, path_pkl, path_test = None, path_log = None, qt = 0.9, qc = 0.85, metric_avg = ['binary'], n_epochs = 100, lr = 0.01, need_strings = False): ''' Args: path_pkl: Path to pickle file of input data in standard format path_test: Path to the pickle file containing test data in standard format - path_log: Path to log file, default value is None. No log is producede if path_test is None + path_log: Path to log file. No log is produced if path_test is None. Default is None which prints accuracies/f1_scores is printed to terminal qt: Quality guide of shape (n_lfs,) of type numpy.ndarray OR a float. Values must be between 0 and 1. Default is 0.9 qc: Quality index of shape (n_lfs,) of type numpy.ndarray OR a float. Values must be between 0 and 1. Default is 0.85 metric_avg: List of average metric to be used in calculating f1_score, default is ['binary'] @@ -196,14 +217,14 @@ def __predict_specific(self, m_test, s_test, qc_): numpy.ndarray of shape (num_instances,) which are predicted labels. Note that here the class labels appearing may not be the ones used in the Enum [Note: no aggregration/algorithm-running will be done using the current input] ''' - s_temp = torch.tensor(s_test).double() + s_temp = torch.tensor(s_test, device = self.device).double() s_temp[s_temp > 0.999] = 0.999 s_temp[s_temp < 0.001] = 0.001 assert m_test.shape == s_test.shape assert m_test.shape[1] == self.n_lfs assert np.all(np.logical_or(m_test == 1, m_test == 0)) - m_temp = torch.abs(torch.tensor(m_test).long()) - return predict_gm_labels(self.theta, self.pi, m_temp, s_temp, self.k, self.n_classes, self.n, qc_) + m_temp = torch.abs(torch.tensor(m_test, device = self.device).long()) + return predict_gm_labels(self.theta, self.pi, m_temp, s_temp, self.k, self.n_classes, self.n, qc_, self.device) def predict_proba(self, path_test, qc = 0.85): ''' @@ -220,21 +241,21 @@ def predict_proba(self, path_test, qc = 0.85): assert (type(qc) == np.float and (qc >= 0 and qc <= 1)) or (type(qc) == np.ndarray and (np.all(np.logical_and(qc>=0, qc<=1)) ) )\ or (type(qc) == np.int and (qc == 0 or qc == 1)) data = get_data(path_test, True, self.class_map) - assert (data[2]).shape[1] == self.n_lfs - assert self.n == None or torch.all(torch.tensor(data[7]).double().eq(self.n)) - assert self.k == None or torch.all(torch.tensor(data[8]).long().eq(self.k)) - s_test = torch.tensor(data[6]).double() + assert (data[2]).shape[1] == self.n_lfs and data[9] == self.n_classes + temp_k = torch.tensor(data[8], device = self.device).long() + assert self.k == None or torch.all(temp_k.eq(self.k)) + temp_n = torch.tensor(data[7], device = self.device).double() + assert self.n == None or torch.all(temp_n.eq(self.n)) + s_test = torch.tensor(data[6], device = self.device).double() s_test[s_test > 0.999] = 0.999 s_test[s_test < 0.001] = 0.001 - m_test = torch.abs(torch.tensor(data[2]).long()) + m_test = torch.abs(torch.tensor(data[2], device = self.device).long()) qc_ = torch.tensor(qc).double() if type(qc) == np.ndarray else qc if self.n == None or self.k == None: - print("Warning: Predict is used before training any paramters in Cage calss") - return (probability(self.theta, self.pi, m_test, s_test, torch.tensor(data[8]).long(), self.n_classes, torch.tensor(data[7]).double(), qc_)).detach().numpy() - else: - return (probability(self.theta, self.pi, m_test, s_test, self.k, self.n_classes, self.n, qc_)).detach().numpy() - + print("Warning: Predict is used before training any paramters in Cage class. Hope you have loaded parameters.") + return (probability(self.theta, self.pi, m_test, s_test, temp_k, self.n_classes, temp_n, qc_, self.device)).cpu().detach().numpy() + def predict(self, path_test, qc = 0.85, need_strings = False): ''' Used to predict labels based on a pickle file with path path_test diff --git a/spear/JL/__init__.py b/spear/jl/__init__.py similarity index 100% rename from spear/JL/__init__.py rename to spear/jl/__init__.py diff --git a/spear/JL/core.py b/spear/jl/core.py similarity index 58% rename from spear/JL/core.py rename to spear/jl/core.py index e6a4f5a..698b7a0 100644 --- a/spear/JL/core.py +++ b/spear/jl/core.py @@ -1,6 +1,7 @@ import torch from torch.utils.data import TensorDataset, DataLoader import numpy as np +from tqdm import tqdm import pickle from os import path as check_path from copy import deepcopy @@ -9,7 +10,7 @@ from sklearn.metrics import precision_score as prec_score from sklearn.metrics import recall_score as recall_score -from ..utils.data_editer import get_data, get_classes, get_predictions +from ..utils.data_editor import get_data, get_classes, get_predictions from ..utils.utils_cage import probability, log_likelihood_loss, precision_loss, predict_gm_labels from ..utils.utils_jl import log_likelihood_loss_supervised, entropy, kl_divergence from .models.models import * @@ -37,29 +38,48 @@ class JL: ''' Joint_Learning class: [Note: from here on, feature model(fm) and feature-based classification model are used interchangeably. graphical model(gm) and CAGE algorithm terms are used interchangeably] + + Loss function number | Calculated over | Loss function: (useful for loss_func_mask in fit_and_predict_proba and fit_and_predict functions) + + 1, L, Cross Entropy(prob_from_feature_model, true_labels) + + 2, U, Entropy(prob_from_feature_model) + + 3, U, Cross Entropy(prob_from_feature_model, prob_from_graphical_model) + + 4, L, Negative Log Likelihood + + 5, U, Negative Log Likelihood(marginalised over true labels) + + 6, L and U, KL Divergence(prob_feature_model, prob_graphical_model) + + 7, _, Quality guide Args: path_json: Path to json file containing the dictionary of number to string(class name) map n_lfs: number of labelling functions used to generate pickle files n_features: number of features for each instance in the first array of pickle file aka feature matrix - n_hidden: Number of hidden layer nodes if feature model is 'nn', type is integer, default is 512 feature_model: The model intended to be used for features, allowed values are 'lr'(Logistic Regression) or 'nn'(Neural network with 2 hidden layer) string, default is 'nn' - + n_hidden: Number of hidden layer nodes if feature model is 'nn', type is integer, default is 512 ''' - def __init__(self, path_json, n_lfs, n_features, n_hidden = 512, feature_model = 'nn'): - torch.set_default_dtype(torch.float64) + def __init__(self, path_json, n_lfs, n_features, feature_model = 'nn', n_hidden = 512): assert type(path_json) == str assert type(n_lfs) == np.int or type(n_lfs) == np.float assert type(n_features) == np.int or type(n_features) == np.float assert type(n_hidden) == np.int or type(n_hidden) == np.float assert feature_model == 'lr' or feature_model == 'nn' + use_cuda = torch.cuda.is_available() + self.device = torch.device("cuda" if use_cuda else "cpu") + torch.backends.cudnn.benchmark = True + torch.set_default_dtype(torch.float64) + self.class_dict = get_classes(path_json) self.class_list = list((self.class_dict).keys()) self.class_list.sort() self.n_classes = len(self.class_dict) - self.class_map = {index : value for index, value in enumerate(self.class_list)} + self.class_map = {value: index for index, value in enumerate(self.class_list)} self.class_map[None] = self.n_classes self.n_lfs = int(n_lfs) @@ -68,15 +88,18 @@ def __init__(self, path_json, n_lfs, n_features, n_hidden = 512, feature_model = self.n_features = n_features self.k, self.continuous_mask = None, None - self.pi = torch.ones((self.n_classes, self.n_lfs)).double() + self.pi = torch.ones((self.n_classes, self.n_lfs), device = self.device).double() (self.pi).requires_grad = True - self.theta = torch.ones((self.n_classes, self.n_lfs)).double() + self.theta = torch.ones((self.n_classes, self.n_lfs), device = self.device).double() (self.theta).requires_grad = True if self.feature_based_model == 'lr': - self.feature_model = LogisticRegression(self.n_features, self.n_classes) + self.feature_model = LogisticRegression(self.n_features, self.n_classes).to(device = self.device) elif self.feature_based_model =='nn': - self.feature_model = DeepNet(self.n_features, self.n_hidden, self.n_classes) + self.feature_model = DeepNet(self.n_features, self.n_hidden, self.n_classes).to(device = self.device) + else: + print('Error: JL class - unrecognised feature_model in initialisation') + exit(1) self.fm_optimal_params = deepcopy((self.feature_model).state_dict()) self.pi_optimal, self.theta_optimal = (self.pi).detach().clone(), (self.theta).detach().clone() @@ -95,6 +118,11 @@ def save_params(self, save_path): pickle.dump(self.theta_optimal, file_) pickle.dump(self.pi_optimal, file_) pickle.dump((self.fm_optimal_params), file_) + pickle.dump(self.n_classes, file_) + pickle.dump(self.n_lfs, file_) + pickle.dump(self.n_features, file_) + pickle.dump(self.n_hidden, file_) + pickle.dump(self.feature_based_model, file_) file_.close() return @@ -113,34 +141,50 @@ def load_params(self, load_path): (self.feature_model).load_state_dict(fm_params) self.theta_optimal = pickle.load(file_) - self.pi_theta = pickle.load(file_) + self.pi_optimal = pickle.load(file_) self.fm_optimal_params = pickle.load(file_) + + assert self.n_classes == pickle.load(file_) + assert self.n_lfs == pickle.load(file_) + assert self.n_features == pickle.load(file_) + temp_n_hidden = pickle.load(file_) + temp_feature_based_model = pickle.load(file_) + assert self.feature_based_model == temp_feature_based_model + if temp_feature_based_model == 'nn': + assert self.n_hidden == temp_n_hidden + file_.close() + + assert (self.pi).shape == (self.n_classes, self.n_lfs) + assert (self.theta).shape == (self.n_classes, self.n_lfs) + assert (self.pi_optimal).shape == (self.n_classes, self.n_lfs) + assert (self.theta_optimal).shape == (self.n_classes, self.n_lfs) + return def fit_and_predict_proba(self, path_L, path_U, path_V, path_T, loss_func_mask, batch_size, lr_fm, lr_gm, use_accuracy_score, path_log = None, return_gm = False, n_epochs = 100, start_len = 7,\ - stop_len = 10, is_qt = True, is_qc = True, qt = 0.9, qc = 0.85, metric_avg = 'macro'): + stop_len = 10, is_qt = True, is_qc = True, qt = 0.9, qc = 0.85, metric_avg = 'binary'): ''' Args: path_L: Path to pickle file of labelled instances path_U: Path to pickle file of unlabelled instances path_V: Path to pickle file of validation instances path_T: Path to pickle file of test instances - loss_func_mask: list/numpy array of size 7 or (7,) where loss_func_mask[i] should be 1 if Loss function (i+1) should be included, 0 else. Checkout Eq(3) in :cite:p:`2020:JL` + loss_func_mask: list of size 7 where loss_func_mask[i] should be 1 if Loss function (i+1) should be included, 0 else. Checkout Eq(3) in :cite:p:`DBLP:journals/corr/abs-2008-09887` batch_size: Batch size, type should be integer lr_fm: Learning rate for feature model, type is integer or float lr_gm: Learning rate for graphical model(cage algorithm), type is integer or float use_accuracy_score: The score to use for termination condition on validation set. True for accuracy_score, False for f1_score - path_log: Path to log file + path_log: Path to log file to append log. Default is None which prints accuracies/f1_scores is printed to terminal return_gm: Return the predictions of graphical model? the allowed values are True, False. Default value is False n_epochs: Number of epochs in each run, type is integer, default is 100 - start_len: A parameter used in validation refers to the least epoch after which validation checks need to be performed, type is integer, default is 7 - stop_len: A parameter used in validation refers to the least number of continuous epochs of non incresing validation accuracy after which the training should be stopped, type is integer, default is 10 + start_len: A parameter used in validation, refers to the least epoch after which validation checks need to be performed, type is integer, default is 7 + stop_len: A parameter used in validation, refers to the least number of continuous epochs of non incresing validation accuracy after which the training should be stopped, type is integer, default is 10 is_qt: True if quality guide is available(and will be provided in 'qt' argument). False if quality guide is intended to be found from validation instances. Default is True is_qc: True if quality index is available(and will be provided in 'qc' argument). False if quality index is intended to be found from validation instances. Default is True qt: Quality guide of shape (n_lfs,) of type numpy.ndarray OR a float. Values must be between 0 and 1. Default is 0.9 qc: Quality index of shape (n_lfs,) of type numpy.ndarray OR a float. Values must be between 0 and 1. Default is 0.85 - metric_avg: Average metric to be used in calculating f1_score/precision/recall, default is 'macro' + metric_avg: Average metric to be used in calculating f1_score/precision/recall, default is 'binary' Return: If return_gm is True; the return value is two predicted labels of numpy array of shape (num_instances, num_classes), first one is through feature model, other one through graphical model. @@ -149,7 +193,7 @@ def fit_and_predict_proba(self, path_L, path_U, path_V, path_T, loss_func_mask, ''' assert type(path_L) == str and type(path_V) == str and type(path_V) == str and type(path_T) == str assert type(return_gm) == np.bool - assert len(loss_func_mask) == 7 + assert (type(loss_func_mask) == list) and len(loss_func_mask) == 7 assert type(batch_size) == np.int or type(batch_size) == np.float assert type(lr_fm) == np.int or type(lr_fm) == np.float assert type(lr_gm) == np.int or type(lr_gm) == np.float @@ -162,7 +206,7 @@ def fit_and_predict_proba(self, path_L, path_U, path_V, path_T, loss_func_mask, or (type(qt) == np.int and (qt == 0 or qt == 1)) assert (type(qc) == np.float and (qc >= 0 and qc <= 1)) or (type(qc) == np.ndarray and (np.all(np.logical_and(qc>=0, qc<=1)) ) )\ or (type(qc) == np.int and (qc == 0 or qc == 1)) - assert metric_avg in ['micro', 'macro', 'samples','weighted', 'binary'] + assert metric_avg in ['micro', 'macro', 'samples', 'weighted', 'binary'] batch_size_ = int(batch_size) n_epochs_ = int(n_epochs) @@ -178,6 +222,8 @@ def fit_and_predict_proba(self, path_L, path_U, path_V, path_T, loss_func_mask, data_V = get_data(path_V, True, self.class_map) data_T = get_data(path_T, True, self.class_map) + assert data_L[9] == self.n_classes and data_U[9] == data_L[9] and data_V[9] == data_L[9] and data_T[9] == data_L[9] + x_sup = torch.tensor(data_L[0]).double() y_sup = torch.tensor(data_L[3]).long() l_sup = torch.tensor(data_L[2]).long() @@ -212,13 +258,13 @@ def fit_and_predict_proba(self, path_L, path_U, path_V, path_T, loss_func_mask, assert self.n_features == x_sup.shape[1] assert self.n_lfs == l_sup.shape[1] if self. k == None: - self.k = torch.tensor(data_L[8]).long() # LF's classes + self.k = torch.tensor(data_L[8], device = self.device).long() # LF's classes else: - assert torch.all(torch.tensor(data_L[8]).double().eq(self.k)) + assert torch.all(torch.tensor(data_L[8], device = self.device).double().eq(self.k)) if self.continuous_mask == None: - self.continuous_mask = torch.tensor(data_L[7]).double() # Mask for s/continuous_mask + self.continuous_mask = torch.tensor(data_L[7], device = self.device).double() # Mask for s/continuous_mask else: - assert torch.all(torch.tensor(data_L[7]).double().eq(self.continuous_mask)) + assert torch.all(torch.tensor(data_L[7], device = self.device).double().eq(self.continuous_mask)) assert np.all(data_L[8] == data_U[8]) and np.all(data_L[8] == data_V[8]) and np.all(data_L[8] == data_T[8]) assert np.all(data_L[7] == data_U[7]) and np.all(data_L[7] == data_V[7]) and np.all(data_L[7] == data_T[7]) @@ -251,7 +297,7 @@ def fit_and_predict_proba(self, path_L, path_U, path_V, path_T, loss_func_mask, supervised_mask = torch.cat([torch.ones(l_sup.shape[0]), torch.zeros(l_unsup.shape[0])]) if is_qt: - qt_ = torch.tensor(qt).double() if type(qt) == np.ndarray else (torch.ones(self.n_lfs).double() * qt) + qt_ = torch.tensor(qt, device = self.device).double() if type(qt) == np.ndarray else (torch.ones(self.n_lfs, device = self.device).double() * qt) else: prec_lfs=[] for i in range(self.n_lfs): @@ -263,14 +309,18 @@ def fit_and_predict_proba(self, path_L, path_U, path_V, path_T, loss_func_mask, qt_ = torch.tensor(prec_lfs).double() if is_qc: - qc_ = torch.tensor(qc).double() if type(qc) == np.ndarray else qc + qc_ = torch.tensor(qc, device = self.device).double() if type(qc) == np.ndarray else qc else: - qc_ = torch.tensor(np.mean(s_valid, axis = 0)) + qc_ = torch.tensor(np.mean(s_valid, axis = 0), device = self.device) file = None if path_log != None: file = open(path_log, "a+") - file.write("JL log:\n") + file.write("JL log:\tn_classes: {}\tn_LFs: {}\tn_features: {}\tn_hidden: {}\tfeature_model:{}\tlr_fm: {}\tlr_gm:{}\tuse_accuracy_score: {}\tn_epochs:{}\tstart_len: {}\tstop_len:{}\n".format(\ + self.n_classes, self.n_lfs, self.n_features, self.n_hidden, self.feature_based_model, lr_fm, lr_gm, use_accuracy_score, n_epochs, start_len, stop_len)) + else: + print("JL log:\tn_classes: {}\tn_LFs: {}\tn_features: {}\tn_hidden: {}\tfeature_model:{}\tlr_fm: {}\tlr_gm:{}\tuse_accuracy_score: {}\tn_epochs:{}\tstart_len: {}\tstop_len:{}".format(\ + self.n_classes, self.n_lfs, self.n_features, self.n_hidden, self.feature_based_model, lr_fm, lr_gm, use_accuracy_score, n_epochs, start_len, stop_len)) #Algo starting optimizer_fm = torch.optim.Adam(self.feature_model.parameters(), lr = lr_fm) @@ -278,124 +328,151 @@ def fit_and_predict_proba(self, path_L, path_U, path_V, path_T, loss_func_mask, supervised_criterion = torch.nn.CrossEntropyLoss() dataset = TensorDataset(x_train, y_train, l, s, supervised_mask) - loader = DataLoader(dataset, batch_size = batch_size_, shuffle = True, pin_memory = True) + loader = DataLoader(dataset, batch_size = batch_size_, shuffle = True, drop_last = False, pin_memory = True) best_score_fm_test, best_score_gm_test, best_epoch, best_score_fm_val, best_score_gm_val = 0,0,0,0,0 best_prec_fm_test, best_recall_fm_test, best_prec_gm_test, best_recall_gm_test= 0,0,0,0 gm_test_acc, fm_test_acc = -1, -1 - stopped_early = False + stopped_epoch = -1 stop_early_fm, stop_early_gm = [], [] - for epoch in range(n_epochs_): - - self.feature_model.train() + with tqdm(total=n_epochs_) as pbar: + for epoch in range(n_epochs_): + + self.feature_model.train() + + for _, sample in enumerate(loader): + optimizer_fm.zero_grad() + optimizer_gm.zero_grad() - for _, sample in enumerate(loader): - optimizer_fm.zero_grad() - optimizer_gm.zero_grad() + for i in range(len(sample)): + sample[i] = sample[i].to(device = self.device) - supervised_indices = sample[4].nonzero().view(-1) - unsupervised_indices = (1-sample[4]).nonzero().squeeze() + supervised_indices = sample[4].nonzero().view(-1) + unsupervised_indices = (1-sample[4]).nonzero().squeeze() - if(loss_func_mask[0]): - if len(supervised_indices) > 0: - loss_1 = supervised_criterion(self.feature_model(sample[0][supervised_indices]), sample[1][supervised_indices]) + if(loss_func_mask[0]): + if len(supervised_indices) > 0: + loss_1 = supervised_criterion(self.feature_model(sample[0][supervised_indices]), sample[1][supervised_indices]) + else: + loss_1 = 0 else: loss_1 = 0 - else: - loss_1 = 0 - if(loss_func_mask[1]): - unsupervised_fm_probability = torch.nn.Softmax(dim = 1)(self.feature_model(sample[0][unsupervised_indices])) - loss_2 = entropy(unsupervised_fm_probability) - else: - loss_2 = 0 + if(loss_func_mask[1]): + unsupervised_fm_probability = torch.nn.Softmax(dim = 1)(self.feature_model(sample[0][unsupervised_indices])) + loss_2 = entropy(unsupervised_fm_probability) + else: + loss_2 = 0 - if(loss_func_mask[2]): - y_pred_unsupervised = predict_gm_labels(self.theta, self.pi, sample[2][unsupervised_indices], sample[3][unsupervised_indices], self.k, self.n_classes, self.continuous_mask, qc_) - loss_3 = supervised_criterion(self.feature_model(sample[0][unsupervised_indices]), torch.tensor(y_pred_unsupervised)) - else: - loss_3 = 0 + if(loss_func_mask[2]): + y_pred_unsupervised = predict_gm_labels(self.theta, self.pi, sample[2][unsupervised_indices], sample[3][unsupervised_indices], self.k, self.n_classes, self.continuous_mask, qc_, self.device) + loss_3 = supervised_criterion(self.feature_model(sample[0][unsupervised_indices]), torch.tensor(y_pred_unsupervised, device = self.device)) + else: + loss_3 = 0 - if (loss_func_mask[3] and len(supervised_indices) > 0): - loss_4 = log_likelihood_loss_supervised(self.theta, self.pi, sample[1][supervised_indices], sample[2][supervised_indices], sample[3][supervised_indices], self.k, self.n_classes, self.continuous_mask, qc_) - else: - loss_4 = 0 + if (loss_func_mask[3] and len(supervised_indices) > 0): + loss_4 = log_likelihood_loss_supervised(self.theta, self.pi, sample[1][supervised_indices], sample[2][supervised_indices], sample[3][supervised_indices], self.k, self.n_classes, self.continuous_mask, qc_, self.device) + else: + loss_4 = 0 - if(loss_func_mask[4]): - loss_5 = log_likelihood_loss(self.theta, self.pi, sample[2][unsupervised_indices], sample[3][unsupervised_indices], self.k, self.n_classes, self.continuous_mask, qc_) - else: - loss_5 = 0 + if(loss_func_mask[4]): + loss_5 = log_likelihood_loss(self.theta, self.pi, sample[2][unsupervised_indices], sample[3][unsupervised_indices], self.k, self.n_classes, self.continuous_mask, qc_, self.device) + else: + loss_5 = 0 + + if(loss_func_mask[5]): + if(len(supervised_indices) >0): + supervised_indices = supervised_indices.tolist() + probs_graphical = probability(self.theta, self.pi, torch.cat([sample[2][unsupervised_indices], sample[2][supervised_indices]]),\ + torch.cat([sample[3][unsupervised_indices],sample[3][supervised_indices]]), self.k, self.n_classes, self.continuous_mask, qc_, self.device) + else: + probs_graphical = probability(self.theta, self.pi,sample[2][unsupervised_indices],sample[3][unsupervised_indices],\ + self.k, self.n_classes, self.continuous_mask, qc_, self.device) + probs_graphical = (probs_graphical.t() / probs_graphical.sum(1)).t() + probs_fm = torch.nn.Softmax(dim = 1)(self.feature_model(sample[0])) + loss_6 = kl_divergence(probs_fm, probs_graphical) + else: + loss_6 = 0 - if(loss_func_mask[5]): - if(len(supervised_indices) >0): - supervised_indices = supervised_indices.tolist() - probs_graphical = probability(self.theta, self.pi, torch.cat([sample[2][unsupervised_indices], sample[2][supervised_indices]]),\ - torch.cat([sample[3][unsupervised_indices],sample[3][supervised_indices]]), self.k, self.n_classes, self.continuous_mask, qc_) + if(loss_func_mask[6]): + prec_loss = precision_loss(self.theta, self.k, self.n_classes, qt_, self.device) else: - probs_graphical = probability(self.theta, self.pi,sample[2][unsupervised_indices],sample[3][unsupervised_indices],\ - self.k, self.n_classes, self.continuous_mask, qc_) - probs_graphical = (probs_graphical.t() / probs_graphical.sum(1)).t() - probs_fm = torch.nn.Softmax(dim = 1)(self.feature_model(sample[0])) - loss_6 = kl_divergence(probs_fm, probs_graphical) + prec_loss = 0 + + loss = loss_1 + loss_2 + loss_3 + loss_4 + loss_5 + loss_6 + prec_loss + if loss != 0: + loss.backward() + optimizer_gm.step() + optimizer_fm.step() + + #gm test + y_pred = predict_gm_labels(self.theta, self.pi, l_test.to(device = self.device), s_test.to(device = self.device), self.k, self.n_classes, self.continuous_mask, qc_, self.device) + if use_accuracy_score: + gm_test_acc = accuracy_score(y_test, y_pred) + else: + gm_test_acc = f1_score(y_test, y_pred, average = metric_avg) + gm_test_prec = prec_score(y_test, y_pred, average = metric_avg) + gm_test_recall = recall_score(y_test, y_pred, average = metric_avg) + + #gm validation + y_pred = predict_gm_labels(self.theta, self.pi, l_valid.to(device = self.device), s_valid.to(device = self.device), self.k, self.n_classes, self.continuous_mask, qc_, self.device) + if use_accuracy_score: + gm_valid_acc = accuracy_score(y_valid, y_pred) else: - loss_6 = 0 + gm_valid_acc = f1_score(y_valid, y_pred, average = metric_avg) - if(loss_func_mask[6]): - prec_loss = precision_loss(self.theta, self.k, self.n_classes, qt_) + (self.feature_model).eval() + + #fm test + probs = torch.nn.Softmax(dim = 1)(self.feature_model(x_test.to(device = self.device))) + y_pred = np.argmax(probs.cpu().detach().numpy(), 1) + if use_accuracy_score: + fm_test_acc = accuracy_score(y_test, y_pred) + else: + fm_test_acc = f1_score(y_test, y_pred, average = metric_avg) + fm_test_prec = prec_score(y_test, y_pred, average = metric_avg) + fm_test_recall = recall_score(y_test, y_pred, average = metric_avg) + + #fm validation + probs = torch.nn.Softmax(dim = 1)(self.feature_model(x_valid.to(device = self.device))) + y_pred = np.argmax(probs.cpu().detach().numpy(), 1) + if use_accuracy_score: + fm_valid_acc = accuracy_score(y_valid, y_pred) else: - prec_loss = 0 - - loss = loss_1 + loss_2 + loss_3 + loss_4 + loss_5 + loss_6 + prec_loss - if loss != 0: - loss.backward() - optimizer_gm.step() - optimizer_fm.step() - - #gm test - y_pred = predict_gm_labels(self.theta, self.pi, l_test, s_test, self.k, self.n_classes, self.continuous_mask, qc_) - if use_accuracy_score: - gm_test_acc = accuracy_score(y_test, y_pred) - else: - gm_test_acc = f1_score(y_test, y_pred, average = metric_avg) - gm_test_prec = prec_score(y_test, y_pred, average = metric_avg) - gm_test_recall = recall_score(y_test, y_pred, average = metric_avg) - - #gm validation - y_pred = predict_gm_labels(self.theta, self.pi, l_valid, s_valid, self.k, self.n_classes, self.continuous_mask, qc_) - if use_accuracy_score: - gm_valid_acc = accuracy_score(y_valid, y_pred) - else: - gm_valid_acc = f1_score(y_valid, y_pred, average = metric_avg) - - #fm test - probs = torch.nn.Softmax(dim = 1)(self.feature_model(x_test)) - y_pred = np.argmax(probs.detach().numpy(), 1) - if use_accuracy_score: - fm_test_acc = accuracy_score(y_test, y_pred) - else: - fm_test_acc = f1_score(y_test, y_pred, average = metric_avg) - fm_test_prec = prec_score(y_test, y_pred, average = metric_avg) - fm_test_recall = recall_score(y_test, y_pred, average = metric_avg) - - #fm validation - probs = torch.nn.Softmax(dim = 1)(self.feature_model(x_valid)) - y_pred = np.argmax(probs.detach().numpy(), 1) - if use_accuracy_score: - fm_valid_acc = accuracy_score(y_valid, y_pred) - else: - fm_valid_acc = f1_score(y_valid, y_pred, average = metric_avg) - - if path_log != None: - file.write("{}: Epoch: {}\tgm_valid_score: {}\tfm_valid_score: {}\n".format(score_used, epoch, gm_valid_acc, fm_valid_acc)) - if epoch % 5 == 0: - file.write("{}: Epoch: {}\tgm_test_score: {}\tfm_test_score: {}\n".format(score_used, epoch, gm_test_acc, fm_test_acc)) - - if epoch > start_len_ and gm_valid_acc >= best_score_gm_val and gm_valid_acc >= best_score_fm_val: - if gm_valid_acc == best_score_gm_val or gm_valid_acc == best_score_fm_val: - if best_score_gm_test < gm_test_acc or best_score_fm_test < fm_test_acc: + fm_valid_acc = f1_score(y_valid, y_pred, average = metric_avg) + + (self.feature_model).train() + + if path_log != None: + file.write("{}: Epoch: {}\tgm_valid_score: {}\tfm_valid_score: {}\n".format(score_used, epoch, gm_valid_acc, fm_valid_acc)) + if epoch % 5 == 0: + file.write("{}: Epoch: {}\tgm_test_score: {}\tfm_test_score: {}\n".format(score_used, epoch, gm_test_acc, fm_test_acc)) + else: + print("{}: Epoch: {}\tgm_valid_score: {}\tfm_valid_score: {}".format(score_used, epoch, gm_valid_acc, fm_valid_acc)) + if epoch % 5 == 0: + print("{}: Epoch: {}\tgm_test_score: {}\tfm_test_score: {}".format(score_used, epoch, gm_test_acc, fm_test_acc)) + + if epoch > start_len_ and gm_valid_acc >= best_score_gm_val and gm_valid_acc >= best_score_fm_val: + if gm_valid_acc == best_score_gm_val or gm_valid_acc == best_score_fm_val: + if best_score_gm_test < gm_test_acc or best_score_fm_test < fm_test_acc: + best_epoch = epoch + self.pi_optimal = (self.pi).detach().clone() + self.theta_optimal = (self.theta).detach().clone() + self.fm_optimal_params = deepcopy((self.feature_model).state_dict()) + + best_score_fm_val = fm_valid_acc + best_score_fm_test = fm_test_acc + best_score_gm_val = gm_valid_acc + best_score_gm_test = gm_test_acc + + best_prec_fm_test = fm_test_prec + best_recall_fm_test = fm_test_recall + best_prec_gm_test = gm_test_prec + best_recall_gm_test = gm_test_recall + else: best_epoch = epoch self.pi_optimal = (self.pi).detach().clone() self.theta_optimal = (self.theta).detach().clone() @@ -410,32 +487,32 @@ def fit_and_predict_proba(self, path_L, path_U, path_V, path_T, loss_func_mask, best_recall_fm_test = fm_test_recall best_prec_gm_test = gm_test_prec best_recall_gm_test = gm_test_recall - else: - best_epoch = epoch - self.pi_optimal = (self.pi).detach().clone() - self.theta_optimal = (self.theta).detach().clone() - self.fm_optimal_params = deepcopy((self.feature_model).state_dict()) - - best_score_fm_val = fm_valid_acc - best_score_fm_test = fm_test_acc - best_score_gm_val = gm_valid_acc - best_score_gm_test = gm_test_acc - - best_prec_fm_test = fm_test_prec - best_recall_fm_test = fm_test_recall - best_prec_gm_test = gm_test_prec - best_recall_gm_test = gm_test_recall - stop_early_fm = [] - stop_early_gm = [] - - if epoch > start_len_ and fm_valid_acc >= best_score_fm_val and fm_valid_acc >= best_score_gm_val: - if fm_valid_acc == best_score_fm_val or fm_valid_acc == best_score_gm_val: - if best_score_fm_test < fm_test_acc or best_score_gm_test < gm_test_acc: + stop_early_fm = [] + stop_early_gm = [] + + if epoch > start_len_ and fm_valid_acc >= best_score_fm_val and fm_valid_acc >= best_score_gm_val: + if fm_valid_acc == best_score_fm_val or fm_valid_acc == best_score_gm_val: + if best_score_fm_test < fm_test_acc or best_score_gm_test < gm_test_acc: + best_epoch = epoch + self.pi_optimal = (self.pi).detach().clone() + self.theta_optimal = (self.theta).detach().clone() + self.fm_optimal_params = deepcopy((self.feature_model).state_dict()) + + best_score_fm_val = fm_valid_acc + best_score_fm_test = fm_test_acc + best_score_gm_val = gm_valid_acc + best_score_gm_test = gm_test_acc + + best_prec_fm_test = fm_test_prec + best_recall_fm_test = fm_test_recall + best_prec_gm_test = gm_test_prec + best_recall_gm_test = gm_test_recall + else: best_epoch = epoch self.pi_optimal = (self.pi).detach().clone() self.theta_optimal = (self.theta).detach().clone() self.fm_optimal_params = deepcopy((self.feature_model).state_dict()) - + best_score_fm_val = fm_valid_acc best_score_fm_test = fm_test_acc best_score_gm_val = gm_valid_acc @@ -445,39 +522,30 @@ def fit_and_predict_proba(self, path_L, path_U, path_V, path_T, loss_func_mask, best_recall_fm_test = fm_test_recall best_prec_gm_test = gm_test_prec best_recall_gm_test = gm_test_recall + stop_early_fm = [] + stop_early_gm = [] + + if len(stop_early_fm) > stop_len_ and len(stop_early_gm) > stop_len_ and (all(best_score_fm_val >= k for k in stop_early_fm) or \ + all(best_score_gm_val >= k for k in stop_early_gm)): + stopped_epoch = epoch + break else: - best_epoch = epoch - self.pi_optimal = (self.pi).detach().clone() - self.theta_optimal = (self.theta).detach().clone() - self.fm_optimal_params = deepcopy((self.feature_model).state_dict()) - - best_score_fm_val = fm_valid_acc - best_score_fm_test = fm_test_acc - best_score_gm_val = gm_valid_acc - best_score_gm_test = gm_test_acc - - best_prec_fm_test = fm_test_prec - best_recall_fm_test = fm_test_recall - best_prec_gm_test = gm_test_prec - best_recall_gm_test = gm_test_recall - stop_early_fm = [] - stop_early_gm = [] - - if len(stop_early_fm) > stop_len_ and len(stop_early_gm) > stop_len_ and (all(best_score_fm_val >= k for k in stop_early_fm) or \ - all(best_score_gm_val >= k for k in stop_early_gm)): - stopped_early = True - break - else: - stop_early_fm.append(fm_valid_acc) - stop_early_gm.append(gm_valid_acc) - - #epoch for loop ended - - - if stopped_early: - print('early stopping... best_epoch: {}'.format(best_epoch)) - else: + stop_early_fm.append(fm_valid_acc) + stop_early_gm.append(gm_valid_acc) + + pbar.update() + #epoch for loop ended + + + if stopped_epoch == -1: print('best_epoch: {}'.format(best_epoch)) + else: + print('early stopping at epoch: {}\tbest_epoch: {}'.format(stopped_epoch, best_epoch)) + + if use_accuracy_score: + print('score used: accuracy_score') + else: + print('score used: f1_score') print('best_gm_val_score:{}\tbest_fm_val_score:{}'.format(\ best_score_gm_val, best_score_fm_val)) @@ -499,37 +567,38 @@ def fit_and_predict_proba(self, path_L, path_U, path_V, path_T, loss_func_mask, (self.feature_model).load_state_dict(self.fm_optimal_params) (self.feature_model).eval() - fm_predictions = (torch.nn.Softmax(dim = 1)(self.feature_model(torch.tensor(data_U[0]).double()) )).detach().numpy() + fm_predictions = (torch.nn.Softmax(dim = 1)(self.feature_model(torch.tensor(data_U[0], device = self.device).double()) )).cpu().detach().numpy() (self.feature_model).train() if return_gm: - return fm_predictions, (probability(self.theta_optimal, self.pi_optimal, torch.tensor(data_U[2]).long(), torch.tensor(data_U[6]).double(), self.k, self.n_classes, self.continuous_mask, qc_)).detach().numpy() + return fm_predictions, (probability(self.theta_optimal, self.pi_optimal, torch.tensor(data_U[2], device = self.device).long(), torch.tensor(data_U[6], device = self.device).double(), \ + self.k, self.n_classes, self.continuous_mask, qc_, self.device)).cpu().detach().numpy() else: return fm_predictions def fit_and_predict(self, path_L, path_U, path_V, path_T, loss_func_mask, batch_size, lr_fm, lr_gm, use_accuracy_score, path_log = None, return_gm = False, n_epochs = 100, start_len = 7,\ - stop_len = 10, is_qt = True, is_qc = True, qt = 0.9, qc = 0.85, metric_avg = 'macro', need_strings = False): + stop_len = 10, is_qt = True, is_qc = True, qt = 0.9, qc = 0.85, metric_avg = 'binary', need_strings = False): ''' Args: path_L: Path to pickle file of labelled instances path_U: Path to pickle file of unlabelled instances path_V: Path to pickle file of validation instances path_T: Path to pickle file of test instances - loss_func_mask: list/numpy array of size 7 or (7,) where loss_func_mask[i] should be 1 if Loss function (i+1) should be included, 0 else. Checkout Eq(3) in :cite:p:`2020:JL` + loss_func_mask: list of size 7 where loss_func_mask[i] should be 1 if Loss function (i+1) should be included, 0 else. Checkout Eq(3) in :cite:p:`DBLP:journals/corr/abs-2008-09887` batch_size: Batch size, type should be integer lr_fm: Learning rate for feature model, type is integer or float lr_gm: Learning rate for graphical model(cage algorithm), type is integer or float use_accuracy_score: The score to use for termination condition on validation set. True for accuracy_score, False for f1_score - path_log: Path to log file + path_log: Path to log file to append log. Default is None which prints accuracies/f1_scores is printed to terminal return_gm: Return the predictions of graphical model? the allowed values are True, False. Default value is False n_epochs: Number of epochs in each run, type is integer, default is 100 - start_len: A parameter used in validation, type is integer, default is 7 - stop_len: A parameter used in validation, type is integer, default is 10 + start_len: A parameter used in validation, refers to the least epoch after which validation checks need to be performed, type is integer, default is 7 + stop_len: A parameter used in validation, refers to the least number of continuous epochs of non incresing validation accuracy after which the training should be stopped, type is integer, default is 10 is_qt: True if quality guide is available(and will be provided in 'qt' argument). False if quality guide is intended to be found from validation instances. Default is True is_qc: True if quality index is available(and will be provided in 'qc' argument). False if quality index is intended to be found from validation instances. Default is True qt: Quality guide of shape (n_lfs,) of type numpy.ndarray OR a float. Values must be between 0 and 1. Default is 0.9 qc: Quality index of shape (n_lfs,) of type numpy.ndarray OR a float. Values must be between 0 and 1. Default is 0.85 - metric_avg: Average metric to be used in calculating f1_score/precision/recall, default is 'macro' + metric_avg: Average metric to be used in calculating f1_score/precision/recall, default is 'binary' need_strings: If True, the output will be in the form of strings(class names). Else it is in the form of class values(given to classes in Enum). Default is False Return: @@ -563,40 +632,41 @@ def predict_gm_proba(self, path_test, qc = 0.85): or (type(qc) == np.int and (qc == 0 or qc == 1)) data = get_data(path_test, True, self.class_map) - s_test = torch.tensor(data[6]).double() + s_test = torch.tensor(data[6], device = self.device).double() s_test[s_test > 0.999] = 0.999 s_test[s_test < 0.001] = 0.001 - assert (data[2]).shape[1] == self.n_lfs + assert (data[2]).shape[1] == self.n_lfs and data[9] == self.n_classes assert (data[0].shape)[1] == self.n_features - assert self.continuous_mask == None or torch.all(torch.tensor(data[7]).double().eq(self.continuous_mask)) - assert self.k == None or torch.all(torch.tensor(data[8]).long().eq(self.k)) - m_test = torch.abs(torch.tensor(data[2]).long()) - qc_ = torch.tensor(qc).double() if type(qc) == np.ndarray else qc + temp_k = torch.tensor(data[8], device = self.device).long() + assert self.k == None or torch.all(temp_k.eq(self.k)) + temp_continuous_mask = torch.tensor(data[7], device = self.device).double() + assert self.continuous_mask == None or torch.all(temp_continuous_mask.eq(self.continuous_mask)) + m_test = torch.abs(torch.tensor(data[2], device = self.device).long()) + qc_ = torch.tensor(qc, device = self.device).double() if type(qc) == np.ndarray else qc if self.continuous_mask == None or self.k == None: - print("Warning: Predict is used before training any paramters in JL calss") - return (probability(self.theta_optimal, self.pi_optimal, m_test, s_test, torch.tensor(data[8]).long(), self.n_classes, torch.tensor(data[7]).double(), qc_)).detach().numpy() - else: - return (probability(self.theta_optimal, self.pi_optimal, m_test, s_test, self.k, self.n_classes, self.continuous_mask, qc_)).detach().numpy() - - def predict_fm_proba(self, path_test): + print("Warning: Predict is used before training any paramters in JL class. Hope you have loaded parameters.") + return (probability(self.theta_optimal, self.pi_optimal, m_test, s_test, temp_k, self.n_classes, temp_continuous_mask, qc_, self.device)).cpu().detach().numpy() + + def predict_fm_proba(self, x_test): ''' Used to find the predicted labels based on the trained parameters of feature model Args: - path_test: Path to the pickle file containing test data set + x_test: numpy array of shape (num_instances, num_features) containing data whose labels are to be predicted Return: numpy.ndarray of shape (num_instances, num_classes) where i,j-th element is the probability of ith instance being the jth class(the jth value when sorted in ascending order of values in Enum) [Note: no aggregration/algorithm-running will be done using the current input]. It is suggested to use the probailities of feature model ''' - data = get_data(path_test, True, self.class_map) - x_test = data[0] assert x_test.shape[1] == self.n_features + if self.continuous_mask == None or self.k == None: + print("Warning: Predict is used before training any paramters in JL class. Hope you have loaded parameters.") + (self.feature_model).load_state_dict(self.fm_optimal_params) (self.feature_model).eval() - fm_predictions = (torch.nn.Softmax(dim = 1)(self.feature_model(torch.tensor(x_test).double()))).detach().numpy() + fm_predictions = (torch.nn.Softmax(dim = 1)(self.feature_model(torch.tensor(x_test, device = self.device).double()))).cpu().detach().numpy() (self.feature_model).train() return fm_predictions @@ -617,12 +687,12 @@ def predict_gm(self, path_test, qc = 0.85, need_strings = False): assert type(need_strings) == np.bool return get_predictions(self.predict_gm_proba(path_test, qc), self.class_map, self.class_dict, need_strings) - def predict_fm(self, path_test, need_strings = False): + def predict_fm(self, x_test, need_strings = False): ''' Used to find the predicted labels based on the trained parameters of feature model Args: - path_test: Path to the pickle file containing test data set + x_test: numpy array of shape (num_instances, num_features) containing data whose labels are to be predicted need_strings: If True, the output will be in the form of strings(class names). Else it is in the form of class values(given to classes in Enum). Default is False Return: @@ -630,6 +700,6 @@ def predict_fm(self, path_test, need_strings = False): [Note: no aggregration/algorithm-running will be done using the current input]. It is suggested to use the probailities of feature model ''' assert type(need_strings) == np.bool - return get_predictions(self.predict_fm_proba(path_test), self.class_map, self.class_dict, need_strings) + return get_predictions(self.predict_fm_proba(x_test), self.class_map, self.class_dict, need_strings) diff --git a/spear/jl/models/__init__.py b/spear/jl/models/__init__.py new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/spear/jl/models/__init__.py @@ -0,0 +1 @@ + diff --git a/spear/JL/models/models.py b/spear/jl/models/models.py similarity index 100% rename from spear/JL/models/models.py rename to spear/jl/models/models.py diff --git a/spear/JL/subset_selection.py b/spear/jl/subset_selection.py similarity index 61% rename from spear/JL/subset_selection.py rename to spear/jl/subset_selection.py index a7b68fa..6842f16 100644 --- a/spear/JL/subset_selection.py +++ b/spear/jl/subset_selection.py @@ -1,11 +1,12 @@ -import apricot +from submodlib.functions.facilityLocation import FacilityLocationFunction + import numpy as np import torch from sklearn.metrics.pairwise import euclidean_distances import pickle -from os import path +from os import path as check_path -from ..utils.data_editer import get_data, get_classes +from ..utils.data_editor import get_data, get_classes from ..utils.utils_cage import predict_gm_labels from ..utils.utils_jl import find_indices, get_similarity_kernel @@ -23,28 +24,39 @@ def rand_subset(n_all, n_instances): assert type(n_all) == np.int or type(n_all) == np.float assert type(n_instances) == np.int or type(n_instances) == np.float assert np.int(n_all) > np.int(n_instances) - return np.random.choice(int(n_all), int(n_instances), replace = False) + return np.sort(np.random.choice(int(n_all), int(n_instances), replace = False)) def unsup_subset(x_train, n_unsup): ''' A function for unsupervised subset selection(the subset to be labeled) + Args: - x_train: A torch.Tensor of shape [n_instances, n_features].All the data, intended to be used for training + x_train: A numpy.ndarray of shape (n_instances, n_features). All the data, intended to be used for training n_unsup: number of instances to be found during unsupervised subset selection, type is integer Return: numpy.ndarray of indices(shape is (n_sup,), each element lies in [0,x_train.shape[0])), the result of subset selection ''' assert x_train.shape[0] > int(n_unsup) - assert type(x_train) == torch.Tensor - fl = apricot.functions.facilityLocation.FacilityLocationSelection(random_state = 0, n_samples = int(n_unsup)) - x_sub = fl.fit_transform(x_train) - indices = find_indices(x_train, x_sub) - return indices + assert type(x_train) == np.ndarray + + use_cuda = torch.cuda.is_available() + device = torch.device("cuda" if use_cuda else "cpu") + torch.backends.cudnn.benchmark = True + + #fl = apricot.functions.facilityLocation.FacilityLocationSelection(random_state = 0, n_samples = int(n_unsup)) + #x_sub = fl.fit_transform(x_train) + #indices = find_indices(torch.from_numpy(x_train).to(device=device), torch.from_numpy(np.array(x_sub)).to(device=device)) + + fl = FacilityLocationFunction(n = x_train.shape[0], mode = "dense", data = x_train, metric = "euclidean") + x_sub = fl.maximize(budget = int(n_unsup), optimizer = 'LazyGreedy', stopIfZeroGain = False, stopIfNegativeGain = False, verbose = False) + indices = np.array([i[0] for i in x_sub]) + + return np.sort(indices) def sup_subset(path_json, path_pkl, n_sup, qc = 0.85): ''' - A helper function for supervised subset selection(the subset to be labeled) whcih just returns indices + A helper function for supervised subset selection(the subset to be labeled) which just returns indices Args: path_json: Path to json file of number to string(class name) map @@ -63,78 +75,38 @@ def sup_subset(path_json, path_pkl, n_sup, qc = 0.85): class_list.sort() n_classes = len(class_dict) - class_map = {index : value for index, value in enumerate(class_list)} + class_map = {value : index for index, value in enumerate(class_list)} class_map[None] = n_classes + use_cuda = torch.cuda.is_available() + device = torch.device("cuda" if use_cuda else "cpu") + torch.backends.cudnn.benchmark = True + data = get_data(path_pkl, True, class_map) - m = data[2] + m = torch.abs(torch.tensor(data[2], device = device).long()) + s = torch.tensor(data[6], device = device).double() # continuous score assert m.shape[0] > int(n_sup) - s = data[6] - k = data[8] + k = torch.tensor(data[8], device = device).long() # LF's classes n_lfs = m.shape[1] - continuous_mask = data[7] - qc_temp = torch.tensor(qc).double() if type(qc) == np.ndarray else qc - params_1 = torch.ones((n_classes, n_lfs)).double() # initialisation of gm parameters, refer section 3.4 in the JL paper - params_2 = torch.ones((n_classes, n_lfs)).double() + continuous_mask = torch.tensor(data[7], device = device).double() # Mask for s/continuous_mask + qc_temp = torch.tensor(qc, device = device).double() if type(qc) == np.ndarray else qc + params_1 = torch.ones((n_classes, n_lfs), device = device).double() # initialisation of gm parameters, refer section 3.4 in the JL paper + params_2 = torch.ones((n_classes, n_lfs), device = device).double() - y_train_pred = predict_gm_labels(params_1, params_2, m, s, k, n_classes, continuous_mask, qc_temp) + y_train_pred = predict_gm_labels(params_1, params_2, m, s, k, n_classes, continuous_mask, qc_temp, device) kernel = get_similarity_kernel(y_train_pred) similarity = euclidean_distances(data[0]) sim_mat = kernel * similarity - fl = apricot.functions.facilityLocation.FacilityLocationSelection(random_state = 0, metric = 'precomputed', n_samples = n_sup) - sim_sub = fl.fit_transform(sim_mat) - indices = find_indices(sim_mat, sim_sub) - - return indices, data - -def replace_in_pkl(path, path_save, np_array, index): - ''' - A function to insert the true labels, after labeling the instances, to the pickle file - - Args: - path: Path to the pickle file containing all the data in standard format - path_save: Path to save the pickle file after replacing the 'L'(true labels numpy array) of data in path pickle file - np_array: The data which is to be used to replace the data in path pickle file with - index: Index of the numpy array, in data of path pickle file, to be replaced with np_array. Value should be in [0,8] - Return: - No return value. A pickle file is generated at path_save - ''' - assert type(index) == np.int and index >=0 and index < 9 - assert path.exists(path) #path is imported from os above - data = [] - with open(path, 'rb') as file: - for i in range(9): - data.append(pickle.load(file)) - assert type(data[i]) == np.ndarray - data.append(pickle.load(file)) - assert data[index].shape[0] == 0 or np_array.shape == data[index].shape - - save_file = open(path_save, 'wb') - for i in range(10): - if i == index: - pickle.dump(data[i], save_file) - else: - pickle.dump(np_array, save_file) - save_file.close() - - return - -def insert_true_labels(path, path_save, labels): - ''' - A function to insert the true labels, after labeling the instances, to the pickle file + #fl = apricot.functions.facilityLocation.FacilityLocationSelection(random_state = 0, metric = 'precomputed', n_samples = int(n_sup)) + #sim_sub = fl.fit_transform(sim_mat) + #indices = find_indices(torch.from_numpy(sim_mat).to(device=device), torch.from_numpy(np.array(sim_sub)).to(device=device)) - Args: - path: Path to the pickle file containing all the data in standard format - path_save: Path to save the pickle file after replacing the 'L'(true labels numpy array) of data in path pickle file - labels: The true labels of the data in pickle file - - Return: - No return value. A pickle file is generated at path_save - ''' - replace_in_pkl(path, path_save, labels, 3) + fl = FacilityLocationFunction(n = sim_mat.shape[0], mode = "dense", sijs = sim_mat, separate_rep = False) + sim_sub = fl.maximize(budget = int(n_sup), optimizer = 'LazyGreedy', stopIfZeroGain = False, stopIfNegativeGain = False, verbose = False) + indices = np.array([i[0] for i in sim_sub]) - return + return np.sort(indices), data def sup_subset_indices(path_json, path_pkl, n_sup, qc = 0.85): ''' @@ -166,7 +138,7 @@ def sup_subset_save_files(path_json, path_pkl, path_save_L, path_save_U, n_sup, qc: Quality index of shape (n_lfs,) of type numpy.ndarray OR a float. Values must be between 0 and 1. Default is 0.85 Return: - No return value. Instead two .pkl files are created. + numpy.ndarray of indices(shape is (n_sup,), each element lies in [0,num_instances)), the result of subset selection. Also two pickle files are saved at path_save_L and path_save_U ''' indices, data = sup_subset(path_json, path_pkl, n_sup, qc) @@ -177,14 +149,86 @@ def sup_subset_save_files(path_json, path_pkl, path_save_L, path_save_U, n_sup, save_file_U = open(path_save_U, 'wb') for i in range(10): - if i < 9: - pickle.dump(data[i][indices], save_file_L) - pickle.dump(data[i][false_mask], save_file_U) - elif i == 9: - pickle.dump(data[9], save_file_L) - pickle.dump(data[9], save_file_U) + if i < 7: + if data[i].shape[0] == 0: + pickle.dump(data[i], save_file_L) + pickle.dump(data[i], save_file_U) + else: + pickle.dump(data[i][indices], save_file_L) + pickle.dump(data[i][false_mask], save_file_U) + elif i >= 7: + pickle.dump(data[i], save_file_L) + pickle.dump(data[i], save_file_U) save_file_L.close() save_file_U.close() + return indices + + +def replace_in_pkl(path, path_save, np_array, index): + ''' + A function to insert the true labels, after labeling the instances, to the pickle file + + Args: + path: Path to the pickle file containing all the data in standard format + path_save: Path to save the pickle file after replacing the 'L'(true labels numpy array) of data in path pickle file + np_array: The data which is to be used to replace the data in path pickle file with + index: Index of the numpy array, in data of path pickle file, to be replaced with np_array. Value should be in [0,8] + Return: + No return value. A pickle file is generated at path_save + ''' + assert type(index) == np.int and index >=0 and index < 9 + assert check_path.exists(path) #path is imported from os above + data = [] + with open(path, 'rb') as file: + for i in range(9): + data.append(pickle.load(file)) + assert type(data[i]) == np.ndarray + data.append(pickle.load(file)) + + assert data[index].shape[0] == 0 or np_array.shape == data[index].shape + + save_file = open(path_save, 'wb') + for i in range(10): + if i == index: + pickle.dump(np_array, save_file) + else: + pickle.dump(data[i], save_file) + save_file.close() + + return + +def insert_true_labels(path, path_save, labels): + ''' + A function to insert the true labels, after labeling the instances, to the pickle file + + Args: + path: Path to the pickle file containing all the data in standard format + path_save: Path to save the pickle file after replacing the 'L'(true labels numpy array) of data in path pickle file + labels: The true labels of the data in pickle file. numpy.ndarray of shape (num_instances, 1) + + Return: + No return value. A pickle file is generated at path_save + ''' + assert check_path.exists(path) #path is imported from os above + data = [] + with open(path, 'rb') as file: + for i in range(9): + data.append(pickle.load(file)) + assert type(data[i]) == np.ndarray + data.append(pickle.load(file)) + + assert labels.shape[0] == data[0].shape[0] and labels.shape[1] == 1 + + save_file = open(path_save, 'wb') + for i in range(10): + if i == 3: + pickle.dump(labels, save_file) + elif i == 4: + pickle.dump(np.ones([labels.size ,1]), save_file) + else: + pickle.dump(data[i], save_file) + save_file.close() + return \ No newline at end of file diff --git a/spear/labeling/README.md b/spear/labeling/README.md deleted file mode 100644 index 76f4eec..0000000 --- a/spear/labeling/README.md +++ /dev/null @@ -1,12 +0,0 @@ -**Setup** - -Virtual environment - sudo pip3 install virtualenv - virtualvenv spear - -Installing packages - pip3 install -r requirements.txt - - -Setting up working directory - export PYTHONPATH=$PYTHONPATH:[PATH_TO CLONED_DIRECTORY] diff --git a/spear/labeling/__init__.py b/spear/labeling/__init__.py index 8203b8a..13914b7 100644 --- a/spear/labeling/__init__.py +++ b/spear/labeling/__init__.py @@ -3,4 +3,8 @@ from .preprocess import preprocessor from .prelabels import PreLabels from .lf import labeling_function, ABSTAIN -from .continuous_scoring import continuous_scorer \ No newline at end of file +from .continuous_scoring import continuous_scorer +from .lf_gen import LFgenerator +from .lf_gen import LFgenerator2 +from .utils.generation import HeuristicGenerator +from .utils.generation import Synthesizer \ No newline at end of file diff --git a/spear/labeling/analysis/core.py b/spear/labeling/analysis/core.py index ea7f41d..3bda3c8 100644 --- a/spear/labeling/analysis/core.py +++ b/spear/labeling/analysis/core.py @@ -318,6 +318,10 @@ def lf_summary( else: lf_names = list(range(m)) + # Remap the true labels values + if Y is not None: + Y = np.array([self.mapping[v] for v in Y]) + # Default LF stats d["Polarity"] = Series(data=self.lf_polarities(), index=lf_names) d["Coverage"] = Series(data=self.lf_coverages(), index=lf_names) @@ -329,7 +333,7 @@ def lf_summary( np.concatenate((Y.flatten(), self.L.flatten(), np.array([-1]))) ) confusions = [ - confusion_matrix(Y, self.L[:, i], labels)[1:, 1:] for i in range(m) + confusion_matrix(Y, self.L[:, i], labels=labels)[1:, 1:] for i in range(m) ] corrects = [np.diagonal(conf).sum() for conf in confusions] incorrects = [ diff --git a/spear/labeling/apply/core.py b/spear/labeling/apply/core.py index 45df260..151f9dd 100644 --- a/spear/labeling/apply/core.py +++ b/spear/labeling/apply/core.py @@ -105,7 +105,7 @@ def apply_lfs_to_data_point( if (y==ABSTAIN and z is not None): labels.append((index, j, y, z)) continue - assert(lf.label == y) + assert(lf._label == y) labels.append((index, j, y.value, z)) return labels diff --git a/spear/labeling/lf/core.py b/spear/labeling/lf/core.py index da5e9ae..c9b54b6 100644 --- a/spear/labeling/lf/core.py +++ b/spear/labeling/lf/core.py @@ -36,9 +36,9 @@ def __init__( self._pre = pre or [] self._cont_scorer = cont_scorer if self._cont_scorer is None: - self._is_cont=False + self._is_cont=0 else: - self._is_cont=True + self._is_cont=1 def _preprocess_data_point(self, x: DataPoint) -> DataPoint: """Preprocesses input by applying each preprocessing function in succession diff --git a/spear/labeling/lf_gen/Loaders/__init__.py b/spear/labeling/lf_gen/Loaders/__init__.py new file mode 100644 index 0000000..aab50d9 --- /dev/null +++ b/spear/labeling/lf_gen/Loaders/__init__.py @@ -0,0 +1 @@ +from .sms_loader import DataLoader \ No newline at end of file diff --git a/spear/labeling/lf_gen/Loaders/imdb_loader.py b/spear/labeling/lf_gen/Loaders/imdb_loader.py new file mode 100644 index 0000000..b6c15a3 --- /dev/null +++ b/spear/labeling/lf_gen/Loaders/imdb_loader.py @@ -0,0 +1,129 @@ +import numpy as np +import scipy +import json +from sklearn import model_selection as cross_validation + +from scipy import sparse +from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer +from sklearn.utils import shuffle +from nltk import word_tokenize +from nltk.stem import WordNetLemmatizer + + +class LemmaTokenizer(object): + def __init__(self): + self.wnl = WordNetLemmatizer() + def __call__(self, articles): + return [self.wnl.lemmatize(t) for t in word_tokenize(articles)] +def parse_file(filename): + + def parse(filename): + movies = [] + with open(filename) as f: + for line in f: + obj = json.loads(line) + movies.append(obj) + return movies + + f = parse(filename) +# with open('plots.txt','w') as k: +# for i,movie in enumerate(f): +# k.write(movie['Plot']+'\n') + + gt = [] + plots = [] + idx = [] + for i,movie in enumerate(f): + genre = movie['Genre'] + if 'Action' in genre and 'Romance' in genre: + continue + elif 'Action' in genre: + plots = plots+[movie['Plot']] + gt.append(1) + idx.append(i) + elif 'Romance' in genre: + plots = plots+[movie['Plot']] + gt.append(-1) + idx.append(i) + else: + continue + + return np.array(plots), np.array(gt) + +def split_data(X, plots, y, split_val=0.1): + np.random.seed(1234) + num_sample = np.shape(X)[0] + num_test = 500 + X, plots, y = shuffle(X, plots, y, random_state = 25) + + X_test = X[0:num_test,:] + X_train = X[num_test:, :] + plots_train = plots[num_test:] + plots_test = plots[0:num_test] + + y_test = y[0:num_test] + y_train = y[num_test:] + + # split dev/test + test_ratio = split_val + X_tr, X_te, y_tr, y_te, plots_tr, plots_te = \ + cross_validation.train_test_split(X_train, y_train, plots_train, test_size = test_ratio, random_state=25) + + return np.array(X_tr.todense()), np.array(X_te.todense()), np.array(X_test.todense()), \ + np.array(y_tr), np.array(y_te), np.array(y_test), plots_tr, plots_te, plots_test + + +class DataLoader(object): + """ A class to load in appropriate numpy arrays + """ + + def prune_features(self, val_primitive_matrix, train_primitive_matrix, thresh=0.01): + val_sum = np.sum(np.abs(val_primitive_matrix),axis=0) + train_sum = np.sum(np.abs(train_primitive_matrix),axis=0) + + #Only select the indices that fire more than 1% for both datasets + train_idx = np.where((train_sum >= thresh*np.shape(train_primitive_matrix)[0]))[0] + val_idx = np.where((val_sum >= thresh*np.shape(val_primitive_matrix)[0]))[0] +# print(train_idx, val_idx) + common_idx = list(set(train_idx) & set(val_idx)) + + return common_idx + + def load_data(self, dataset, data_path='/home/aziz/Documents/CS769/RobustAggregateLFs/robust-aggregate-lfs/reef/data/imdb/',split_val=0.1, feat = 'count'): + #Parse Files + plots, labels = parse_file(data_path+'budgetandactors.txt') + #read_plots('imdb_plots.tsv') + print('len(labels',len(labels)) + print(f'labels : {labels}') + # print(f'plots.shape : {plots.shape}, labels.shape : {labels.shape}') + # print(f'first plot : {plots[0]}') + # print(f'first label : {labels[0]}') + #Featurize Plots + if feat == 'count': + vectorizer = CountVectorizer(min_df=1, binary=True, stop_words='english', \ + decode_error='ignore', strip_accents='ascii', ngram_range=(1,2)) + elif feat == 'lemma': + vectorizer = CountVectorizer(min_df=1, binary=True, decode_error='ignore', ngram_range=(1,2) ,\ + tokenizer=LemmaTokenizer(),strip_accents = 'unicode', stop_words = 'english', lowercase = True) + else: + vectorizer = CountVectorizer(min_df=1, binary=True, stop_words='english', \ + decode_error='ignore', strip_accents='ascii', ngram_range=(1,2)) + + X = vectorizer.fit_transform(plots) + valid_feats = np.where(np.sum(X,0)> 2)[1] + X = X[:,valid_feats] + + #Split Dataset into Train, Val, Test + train_primitive_matrix, val_primitive_matrix, test_primitive_matrix, \ + train_ground, val_ground, test_ground, \ + train_plots, val_plots, test_plots = split_data(X, plots, labels, split_val) + + #Prune Feature Space + common_idx = self.prune_features(val_primitive_matrix, train_primitive_matrix) +# return train_primitive_matrix[:,common_idx], val_primitive_matrix[:,common_idx], test_primitive_matrix[:,common_idx], \ +# np.array(train_ground), np.array(val_ground), np.array(test_ground), \ +# train_plots, val_plots, test_plots + + return train_primitive_matrix[:,common_idx], val_primitive_matrix[:,common_idx], test_primitive_matrix[:,common_idx], \ + np.array(train_ground), np.array(val_ground), np.array(test_ground), vectorizer, valid_feats, common_idx, \ + train_plots, val_plots, test_plots diff --git a/spear/labeling/lf_gen/Loaders/loader.py b/spear/labeling/lf_gen/Loaders/loader.py new file mode 100644 index 0000000..0a8bbc8 --- /dev/null +++ b/spear/labeling/lf_gen/Loaders/loader.py @@ -0,0 +1,98 @@ +import numpy as np +import scipy +import json +from sklearn import model_selection as cross_validation + +from scipy import sparse +from sklearn.feature_extraction.text import CountVectorizer + +def parse_file(filename): + + def parse(filename): + movies = [] + with open(filename) as f: + for line in f: + obj = json.loads(line) + movies.append(obj) + return movies + + f = parse(filename) + gt = [] + plots = [] + idx = [] + for i,movie in enumerate(f): + genre = movie['Genre'] + if 'Action' in genre and 'Romance' in genre: + continue + elif 'Action' in genre: + plots = plots+[movie['Plot']] + gt.append(1) + idx.append(i) + elif 'Romance' in genre: + plots = plots+[movie['Plot']] + gt.append(-1) + idx.append(i) + else: + continue + + return np.array(plots), np.array(gt) + +def split_data(X, plots, y): + np.random.seed(1234) + num_sample = np.shape(X)[0] + num_test = 500 + + X_test = X[0:num_test,:] + X_train = X[num_test:, :] + plots_train = plots[num_test:] + plots_test = plots[0:num_test] + + y_test = y[0:num_test] + y_train = y[num_test:] + + # split dev/test + test_ratio = 0.2 + X_tr, X_te, y_tr, y_te, plots_tr, plots_te = \ + cross_validation.train_test_split(X_train, y_train, plots_train, test_size = test_ratio, random_state=25) + + return np.array(X_tr.todense()), np.array(X_te.todense()), np.array(X_test.todense()), \ + np.array(y_tr), np.array(y_te), np.array(y_test), plots_tr, plots_te, plots_test + + +class DataLoader(object): + """ A class to load in appropriate numpy arrays + """ + + def prune_features(self, val_primitive_matrix, train_primitive_matrix, thresh=0.01): + val_sum = np.sum(np.abs(val_primitive_matrix),axis=0) + train_sum = np.sum(np.abs(train_primitive_matrix),axis=0) + + #Only select the indices that fire more than 1% for both datasets + train_idx = np.where((train_sum >= thresh*np.shape(train_primitive_matrix)[0]))[0] + val_idx = np.where((val_sum >= thresh*np.shape(val_primitive_matrix)[0]))[0] + common_idx = list(set(train_idx) & set(val_idx)) + + return common_idx + + def load_data(self, dataset, data_path='./data/imdb/'): + #Parse Files + plots, labels = parse_file(data_path+'budgetandactors.txt') + #read_plots('imdb_plots.tsv') + print('len(labels',len(labels)) + #Featurize Plots + vectorizer = CountVectorizer(min_df=1, binary=True, \ + decode_error='ignore', strip_accents='ascii', ngram_range=(1,2)) + X = vectorizer.fit_transform(plots) + valid_feats = np.where(np.sum(X,0)> 2)[1] + X = X[:,valid_feats] + + #Split Dataset into Train, Val, Test + train_primitive_matrix, val_primitive_matrix, test_primitive_matrix, \ + train_ground, val_ground, test_ground, \ + train_plots, val_plots, test_plots = split_data(X, plots, labels) + + #Prune Feature Space + common_idx = self.prune_features(val_primitive_matrix, train_primitive_matrix) + return train_primitive_matrix[:,common_idx], val_primitive_matrix[:,common_idx], test_primitive_matrix[:,common_idx], \ + np.array(train_ground), np.array(val_ground), np.array(test_ground), \ + train_plots, val_plots, test_plots diff --git a/spear/labeling/lf_gen/Loaders/sms_loader.py b/spear/labeling/lf_gen/Loaders/sms_loader.py new file mode 100644 index 0000000..16770d5 --- /dev/null +++ b/spear/labeling/lf_gen/Loaders/sms_loader.py @@ -0,0 +1,126 @@ +#!/usr/bin/env python + +import numpy as np +import scipy +import json +from sklearn import model_selection as cross_validation +import re +from scipy import sparse +from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer +from sklearn.utils import shuffle +from nltk import word_tokenize +from nltk.stem import WordNetLemmatizer + + +class LemmaTokenizer(object): + def __init__(self): + self.wnl = WordNetLemmatizer() + def __call__(self, articles): + return [self.wnl.lemmatize(t) for t in word_tokenize(articles)] +def parse_file(filename): + def parse(filename): + tweet = [] + with open(filename) as f: + for line in f: + tweet.append(line) + return tweet[1:] + + tweets = parse(filename) + gt = [] + plots = [] + idx = [] + for i,twt in enumerate(tweets): + tweet = twt.split(',') + # print(tweet) + genre = tweet[0] + tweet_txt = re.sub(r"@\w+","", tweet[1]) + + if 'ham' in genre: + plots.append(tweet_txt) + gt.append(1) + idx.append(i) + elif 'spam' in genre: + plots.append(tweet_txt) + gt.append(-1) + idx.append(i) + else: + continue + + + return np.array(plots), np.array(gt) + +def split_data(X, plots, y, split_val = 0.1): + np.random.seed(1234) + num_sample = np.shape(X)[0] + num_test = 500 + X, plots, y = shuffle(X, plots, y, random_state = 25) + X_test = X[0:num_test,:] + X_train = X[num_test:, :] + plots_train = plots[num_test:] + plots_test = plots[0:num_test] + + y_test = y[0:num_test] + y_train = y[num_test:] + + # split dev/test + test_ratio = split_val + X_tr, X_te, y_tr, y_te, plots_tr, plots_te =cross_validation.train_test_split(X_train, y_train, plots_train, test_size = test_ratio, random_state=25) + + return np.array(X_tr.todense()), np.array(X_te.todense()), np.array(X_test.todense()), np.array(y_tr), np.array(y_te), np.array(y_test), plots_tr, plots_te, plots_test + + +class DataLoader(object): + """ A class to load in appropriate numpy arrays + """ + + def prune_features(self, val_primitive_matrix, train_primitive_matrix, thresh=0.01): + val_sum = np.sum(np.abs(val_primitive_matrix),axis=0) + train_sum = np.sum(np.abs(train_primitive_matrix),axis=0) + + #Only select the indices that fire more than 1% for both datasets + train_idx = np.where((train_sum >= thresh*np.shape(train_primitive_matrix)[0]))[0] + val_idx = np.where((val_sum >= thresh*np.shape(val_primitive_matrix)[0]))[0] + common_idx = list(set(train_idx) & set(val_idx)) + + return common_idx + + def load_data(self, dataset, data_path='/data/sms/', split_val=0.1, feat= 'count'): + + plots, labels = parse_file(data_path+'all.csv') + same = len(np.where(labels==1)[0]) + up = len(np.where(labels==-1)[0]) + upx = plots[np.where(labels==-1)[0]] + upy = labels[np.where(labels==-1)[0]] + times = same//up + ly = np.tile(upy, times) + labels = np.concatenate((labels, ly)) + lx = np.tile(upx, times) + plots = np.concatenate((plots, lx)) + # print(len(plots)) + #Featurize Plots + if feat == 'count': + vectorizer = CountVectorizer(min_df=1, binary=True, stop_words='english', decode_error='ignore', strip_accents='ascii', ngram_range=(1,2)) + elif feat =='lemma': + vectorizer = CountVectorizer(min_df=1, binary=True, decode_error='ignore', ngram_range=(1,2) ,\ + tokenizer=LemmaTokenizer(),strip_accents = 'unicode', stop_words = 'english', lowercase = True) + else: + vectorizer = CountVectorizer(min_df=1, binary=True, stop_words='english', decode_error='ignore', strip_accents='ascii', ngram_range=(1,2)) + + X = vectorizer.fit_transform(plots) + valid_feats = np.where(np.sum(X,0)> 2)[1] + X = X[:,valid_feats] + +# Split Dataset into Train, Val, Test + train_primitive_matrix, val_primitive_matrix, test_primitive_matrix, \ + train_ground, val_ground, test_ground, \ + train_plots, val_plots, test_plots = split_data(X, plots, labels, split_val) + + #Prune Feature Space + common_idx = self.prune_features(val_primitive_matrix, train_primitive_matrix) + # print('common_idx',len(common_idx)) + # return train_primitive_matrix[:,common_idx], val_primitive_matrix[:,common_idx], test_primitive_matrix[:,common_idx], np.array(train_ground), np.array(val_ground), np.array(test_ground),train_plots, val_plots, test_plots + return train_primitive_matrix[:,common_idx], val_primitive_matrix[:,common_idx], \ + test_primitive_matrix[:,common_idx], np.array(train_ground), np.array(val_ground), \ + np.array(test_ground), vectorizer, valid_feats, common_idx, \ + train_plots, val_plots, test_plots + diff --git a/spear/labeling/lf_gen/Loaders/sst5_loader.py b/spear/labeling/lf_gen/Loaders/sst5_loader.py new file mode 100644 index 0000000..b5bfaab --- /dev/null +++ b/spear/labeling/lf_gen/Loaders/sst5_loader.py @@ -0,0 +1,154 @@ +#!/usr/bin/env python + +import numpy as np +import scipy +import json +from sklearn import model_selection as cross_validation +import re +from scipy import sparse +from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer +from sklearn.utils import shuffle +from nltk import word_tokenize +from nltk.stem import WordNetLemmatizer + + +class LemmaTokenizer(object): + def __init__(self): + self.wnl = WordNetLemmatizer() + def __call__(self, articles): + return [self.wnl.lemmatize(t) for t in word_tokenize(articles)] + +def parse_file(filename): + + def parse(filename): + tweet = [] + print(filename) + with open(filename) as f: + for line in f: +# print(line) + tweet.append(line) + return tweet + + tweets = parse(filename) + gt = [] + plots = [] + idx = [] + for i,twt in enumerate(tweets): + tweet = twt.split('\t') +# print(tweet) + genre = tweet[0] + tweet_txt = tweet[1] +# tweet_txt = re.sub(r"@\w+","", tweet[1]) +# tweet_txt = ' '.join(tweet_txt.split(' ')[3:]) + + if '0' in genre: + plots.append(tweet_txt) + gt.append(-1) + idx.append(i) + elif '1' in genre: + plots.append(tweet_txt) + gt.append(1) + idx.append(i) + elif '2' in genre: + plots.append(tweet_txt) + gt.append(2) + idx.append(i) + elif '3' in genre: + plots.append(tweet_txt) + gt.append(3) + idx.append(i) + elif '4' in genre: + plots.append(tweet_txt) + gt.append(4) + idx.append(i) + else: + continue + + print('len of data',len(plots)) + return np.array(plots), np.array(gt) + +def split_data(X, plots, y, split_val=0.1): + np.random.seed(1234) + num_sample = np.shape(X)[0] + num_test = 500 + X, plots, y = shuffle(X, plots, y, random_state = 25) + X_test = X[0:num_test,:] + X_train = X[num_test:, :] + plots_train = plots[num_test:] + plots_test = plots[0:num_test] + + y_test = y[0:num_test] + y_train = y[num_test:] + + # split dev/test + test_ratio = split_val + X_tr, X_te, y_tr, y_te, plots_tr, plots_te =\ + cross_validation.train_test_split(X_train, y_train, plots_train, test_size = test_ratio, random_state=25) +# with open('trec_val.txt','w+') as f: +# for i,j in zip(plots_te, y_te): +# # x = ji +# f.write("%s:%s" % (j, i)) + + + return np.array(X_tr.todense()), np.array(X_te.todense()), np.array(X_test.todense()),\ + np.array(y_tr), np.array(y_te), np.array(y_test), plots_tr, plots_te, plots_test + + +class DataLoader(object): + """ A class to load in appropriate numpy arrays + """ + + def prune_features(self, val_primitive_matrix, train_primitive_matrix, thresh=0.001): + val_sum = np.sum(np.abs(val_primitive_matrix),axis=0) + train_sum = np.sum(np.abs(train_primitive_matrix),axis=0) + + #Only select the indices that fire more than 1% for both datasets + train_idx = np.where((train_sum >= thresh*np.shape(train_primitive_matrix)[0]))[0] + val_idx = np.where((val_sum >= thresh*np.shape(val_primitive_matrix)[0]))[0] + common_idx = list(set(train_idx) & set(val_idx)) + + return common_idx + + def load_data(self, dataset, data_path='~/auto_lfs/reef/data/sst5/',split_val=0.1): + + plots, labels = parse_file(data_path+'all.txt') + + def mytokenizer(text): + return text.split() + + #Featurize Plots + # niche ki line original code ka bhag hai + vectorizer = CountVectorizer(min_df=1, binary=True, decode_error='ignore', ngram_range=(1,2) ,\ + tokenizer=LemmaTokenizer(), lowercase = True) + # vectorizer = CountVectorizer(min_df=1, decode_error='ignore', strip_accents='ascii', ngram_range=(1,2)) + +# vocab = {'name':0,'name a':1,'how':2,'how does':3,'how to':4,'how can':5,'how should':6,'how would':7,'how could':8,'how will':9,'how do':10,'what':11,'what is':12,'what fastener':13,'how do you':14,'who':15,'who person':16,'who man':17,'who woman':18,'who human':19,'who president':20,'what person':21,'what man':22,'what woman':23,'what human':24,'what president':25,'how much':26,'how many':27,'what kind':28,'what amount':29,'what number':30,'what percentage':31,'capital':32,'capital of':33,'why':34,'why does':35,'why should':36,'why shall':37,'why could':38,'why would':39,'why will':40,'why can':41,'why do':42,'composed':43,'made':44,'composed from':45,'composed through':46,'composed using':47,'composed by':48,'composed of':49,'made from':50,'made through':51,'made using':52,'made by':53,'made of':54,'where':55,'which':56,'where island':57,'which island':58,'what island':59,'who owner':60,'who leads':61,'who governs':62,'who pays':63,'who owns':64,'what is tetrinet':65,'who found':66,'who discovered':67,'who made':68,'who built':69,'who build':70,'who invented':71,'why doesn':72,'used':73,'used for':74,'when':75,'when did':76,'when do':77,'when does':78,'when was':79,'how old':80,'how far':81,'how long':82,'how tall':83,'how wide':84,'how short':85,'how small':86,'how close':87,'fear':88,'fear of':89,'explain':90,'describe':91,'explain can':92,'describe can':93,'who worked':94,'who lived':95,'who guarded':96,'who watched':97,'who played':98,'who ate':99,'who slept':100,'who portrayed':101,'who served':102,'what part':103,'what division':104,'what ratio':105,'who is':106,'who will':107,'who was':108,'what do':109,'what does':110,'enumerate the':111,'list out the':112,'name the':113,'enumerate the various':114,'list out the various':115,'name the various':116,'at which':117,'at how many':118,'at what':119,'in which':120,'in how many':121,'in what':122,'at which age':123,'at which year':124,'at how many age':125,'at how many year':126,'at what age':127,'at what year':128,'in which age':129,'in which year':130,'in how many age':131,'in how many year':132,'in what age':133,'in what year':134,'which play':135,'which game':136,'which movie':137,'which book':138,'what play':139,'what game':140,'what movie':141,'what book':142,'which is':143,'which will':144,'which are':145,'which was':146,'who are':147,'by how':148,'by how much':149,'by how many':150,'where was':151,'where is':152,'studied':153,'patent':154,'man':155,'woman':156,'human':157,'person':158,'stand':159,'mean':160,'meant':161,'called':162,'unusual':163,'origin':164,'country':165,'queen':166,'king':167,'year':168,'novel':169,'speed':170,'abbreviation':171,'percentage':172,'share':173,'number':174,'population':175,'located':176,'thing':177,'instance':178,'object':179,'demands':180,'take':181,'leader':182,'citizen':183,'captain':184,'nationalist':185,'hero':186,'actor':187,'actress':188,'star':189,'gamer':190,'player':191,'lawyer':192,'president':193,'lives':194,'latitude':195,'longitude':196,'alias':197,'nicknamed':198} + +# vocab = {'abbreviation':0,'actor':1,'actress':2,'address':3,'age':4,'alias':5,'amount':6,'are':7,'around':8,'at':9,'ate':10,'book':11,'build':12,'built':13,'by':14,'called':15,'can':16,'capital':17,'captain':18,'citizen':19,'close':20,'company':21,'composed':22,'could':23,'country':24,'date':25,'day':26,'demands':27,'describe':28,'did':29,'discovered':30,'division':31,'do':32,'doctor':33,'does':34,'does ':35,'doesn':36,'engineer':37,'enumerate':38,'explain':39,'far':40,'fastener':41,'fastener ':42,'fear':43,'for':44,'found':45,'from':46,'game':47,'gamer':48,'governs':49,'group':50,'groups':51,'guarded':52,'hero':53,'hours':54,'how':55,'human':56,'hypertension':57,'in':58,'instance':59,'invented':60,'is':61,'is ':62,'island':63,'kind':64,'king':65,'latitude':66,'latitude ':67,'lawyer':68,'leader':69,'leads':70,'list':71,'lived':72,'lives':73,'located':74,'long':75,'longitude':76,'made':77,'man':78,'many':79,'mean':80,'meant':81,'minute':82,'model':83,'month':84,'movie':85,'much':86,'name':87,'name ':88,'nationalist':89,'near':90,'nicknamed':91,'novel':92,'number':93,'object':94,'of':95,'old':96,'organization':97,'origin':98,'out':99,'owner':100,'owns':101,'part':102,'patent':103,'pays':104,'percentage':105,'person':106,'play':107,'played':108,'player':109,'poet':110,'population':111,'portrayed':112,'president':113,'queen':114,'ratio':115,'run':116,'seconds':117,'served':118,'shall':119,'share':120,'short':121,'should':122,'should ':123,'situated':124,'slept':125,'small':126,'speed':127,'stand':128,'star':129,'studied':130,'study ':131,'surname':132,'surrounds':133,'take':134,'tall':135,'team':136,'teams':137,'tetrinet':138,'the':139,'thing':140,'through':141,'time':142,'to':143,'trust':144,'unusual':145,'used':146,'using':147,'various':148,'was':149,'was ':150,'watched':151,'what':152,'what ':153,'when':154,'where':155,'where ':156,'which':157,'who':158,'who ':159,'why':160,'wide':161,'will':162,'woman':163,'worked':164,'would':165,'year':166,'you':167} + # vocab = ["what is","does the","what 's","mean ?","are the","stand for","what does","for ?","in ?","other What","was the","what was","do you","does a","in the","the most","the first","is the","on a","did the","name ?","of the","name the","can i","is a","in what","by the","chancellor of","of ?","were the","from the","into the","What are","australia ?","book to","call the","do italians","italians call","the tallest","to help","was hitler","has the"] + # vectorizer = CountVectorizer(vocabulary=vocab, tokenizer = mytokenizer, ngram_range=(1,2))#, stop_words='english') + + X = vectorizer.fit_transform(plots) + + valid_feats = np.where(np.sum(X,0)> 2)[1] + X = X[:,valid_feats] + print(len(valid_feats), valid_feats) + +# Split Dataset into Train, Val, Test + train_primitive_matrix, val_primitive_matrix, test_primitive_matrix, \ + train_ground, val_ground, test_ground,\ + train_plots, val_plots, test_plots = split_data(X, plots, labels, split_val) + + #Prune Feature Space + common_idx = self.prune_features(val_primitive_matrix, train_primitive_matrix) + print('common_idx',len(common_idx)) +# return train_primitive_matrix[:,common_idx], val_primitive_matrix[:,common_idx], test_primitive_matrix[:,common_idx], np.array(train_ground), np.array(val_ground), np.array(test_ground),train_plots, val_plots, test_plots +# return train_primitive_matrix, val_primitive_matrix, test_primitive_matrix, \ +# np.array(train_ground), np.array(val_ground), np.array(test_ground), vectorizer, valid_feats, common_idx, \ +# train_plots, val_plots, test_plots + + return train_primitive_matrix[:,common_idx], val_primitive_matrix[:,common_idx], test_primitive_matrix[:,common_idx], \ + np.array(train_ground), np.array(val_ground), np.array(test_ground), vectorizer, valid_feats, common_idx, \ + train_plots, val_plots, test_plots + + diff --git a/spear/labeling/lf_gen/Loaders/trec_loader.py b/spear/labeling/lf_gen/Loaders/trec_loader.py new file mode 100644 index 0000000..95f0e4d --- /dev/null +++ b/spear/labeling/lf_gen/Loaders/trec_loader.py @@ -0,0 +1,163 @@ +#!/usr/bin/env python + +import numpy as np +import scipy +import json +from sklearn import model_selection as cross_validation +import re +from scipy import sparse +from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer +from sklearn.utils import shuffle +from nltk import word_tokenize +from nltk.stem import WordNetLemmatizer + + +class LemmaTokenizer(object): + def __init__(self): + self.wnl = WordNetLemmatizer() + def __call__(self, articles): + return [self.wnl.lemmatize(t) for t in word_tokenize(articles)] + +def parse_file(filename): + + def parse(filename): + tweet = [] + print(filename) + with open(filename) as f: + for line in f: +# print(line) + tweet.append(line) + return tweet + + tweets = parse(filename) + gt = [] + plots = [] + idx = [] + for i,twt in enumerate(tweets): + tweet = twt.split(':') +# print(tweet) + genre = tweet[0] + tweet_txt = tweet[1] +# tweet_txt = re.sub(r"@\w+","", tweet[1]) +# tweet_txt = ' '.join(tweet_txt.split(' ')[3:]) + + if 'NUM' in genre: + plots.append(tweet_txt) + gt.append(0) + idx.append(i) + elif 'LOC' in genre: + plots.append(tweet_txt) + gt.append(1) + idx.append(i) + elif 'HUM' in genre: + plots.append(tweet_txt) + gt.append(2) + idx.append(i) + elif 'DESC' in genre: + plots.append(tweet_txt) + gt.append(3) + idx.append(i) + elif 'ENTY' in genre: + plots.append(tweet_txt) + gt.append(4) + idx.append(i) + elif 'ABBR' in genre: + plots.append(tweet_txt) + gt.append(5) + idx.append(i) + else: + continue + + print('len of data',len(plots)) + return np.array(plots), np.array(gt) + +def split_data(X, plots, y, split_val=0.1): + np.random.seed(1234) + num_sample = np.shape(X)[0] + num_test = 500 + X, plots, y = shuffle(X, plots, y, random_state = 25) + X_test = X[0:num_test,:] + X_train = X[num_test:, :] + plots_train = plots[num_test:] + plots_test = plots[0:num_test] + + y_test = y[0:num_test] + y_train = y[num_test:] + + # split dev/test + test_ratio = split_val + X_tr, X_te, y_tr, y_te, plots_tr, plots_te =\ + cross_validation.train_test_split(X_train, y_train, plots_train, test_size = test_ratio, random_state=25) +# with open('trec_val.txt','w+') as f: +# for i,j in zip(plots_te, y_te): +# # x = ji +# f.write("%s:%s" % (j, i)) + + + return np.array(X_tr.todense()), np.array(X_te.todense()), np.array(X_test.todense()),\ + np.array(y_tr), np.array(y_te), np.array(y_test), plots_tr, plots_te, plots_test + + +class DataLoader(object): + """ A class to load in appropriate numpy arrays + """ + + def prune_features(self, val_primitive_matrix, train_primitive_matrix, thresh=0.001): + val_sum = np.sum(np.abs(val_primitive_matrix),axis=0) + train_sum = np.sum(np.abs(train_primitive_matrix),axis=0) + + #Only select the indices that fire more than 1% for both datasets + train_idx = np.where((train_sum >= thresh*np.shape(train_primitive_matrix)[0]))[0] + val_idx = np.where((val_sum >= thresh*np.shape(val_primitive_matrix)[0]))[0] + common_idx = list(set(train_idx) & set(val_idx)) + + return common_idx + + def load_data(self, dataset, data_path='/home/ayusham/auto_lfs/reef/data/trec/',split_val=0.1, feat = 'count'): + + plots, labels = parse_file(data_path+'all.txt') + + def mytokenizer(text): + return text.split() + + #Featurize Plots + # niche ki line original code ka bhag hai + if feat == 'count': + vectorizer = CountVectorizer(min_df=1, decode_error='ignore', strip_accents='ascii', ngram_range=(1,2)) + elif feat == 'lemma': + vectorizer = CountVectorizer(min_df=1, binary=True, decode_error='ignore', ngram_range=(1,2) ,\ + tokenizer=LemmaTokenizer(), lowercase = True) + else: + vectorizer = CountVectorizer(min_df=1, decode_error='ignore', strip_accents='ascii', ngram_range=(1,2)) + + +# vocab = {'name':0,'name a':1,'how':2,'how does':3,'how to':4,'how can':5,'how should':6,'how would':7,'how could':8,'how will':9,'how do':10,'what':11,'what is':12,'what fastener':13,'how do you':14,'who':15,'who person':16,'who man':17,'who woman':18,'who human':19,'who president':20,'what person':21,'what man':22,'what woman':23,'what human':24,'what president':25,'how much':26,'how many':27,'what kind':28,'what amount':29,'what number':30,'what percentage':31,'capital':32,'capital of':33,'why':34,'why does':35,'why should':36,'why shall':37,'why could':38,'why would':39,'why will':40,'why can':41,'why do':42,'composed':43,'made':44,'composed from':45,'composed through':46,'composed using':47,'composed by':48,'composed of':49,'made from':50,'made through':51,'made using':52,'made by':53,'made of':54,'where':55,'which':56,'where island':57,'which island':58,'what island':59,'who owner':60,'who leads':61,'who governs':62,'who pays':63,'who owns':64,'what is tetrinet':65,'who found':66,'who discovered':67,'who made':68,'who built':69,'who build':70,'who invented':71,'why doesn':72,'used':73,'used for':74,'when':75,'when did':76,'when do':77,'when does':78,'when was':79,'how old':80,'how far':81,'how long':82,'how tall':83,'how wide':84,'how short':85,'how small':86,'how close':87,'fear':88,'fear of':89,'explain':90,'describe':91,'explain can':92,'describe can':93,'who worked':94,'who lived':95,'who guarded':96,'who watched':97,'who played':98,'who ate':99,'who slept':100,'who portrayed':101,'who served':102,'what part':103,'what division':104,'what ratio':105,'who is':106,'who will':107,'who was':108,'what do':109,'what does':110,'enumerate the':111,'list out the':112,'name the':113,'enumerate the various':114,'list out the various':115,'name the various':116,'at which':117,'at how many':118,'at what':119,'in which':120,'in how many':121,'in what':122,'at which age':123,'at which year':124,'at how many age':125,'at how many year':126,'at what age':127,'at what year':128,'in which age':129,'in which year':130,'in how many age':131,'in how many year':132,'in what age':133,'in what year':134,'which play':135,'which game':136,'which movie':137,'which book':138,'what play':139,'what game':140,'what movie':141,'what book':142,'which is':143,'which will':144,'which are':145,'which was':146,'who are':147,'by how':148,'by how much':149,'by how many':150,'where was':151,'where is':152,'studied':153,'patent':154,'man':155,'woman':156,'human':157,'person':158,'stand':159,'mean':160,'meant':161,'called':162,'unusual':163,'origin':164,'country':165,'queen':166,'king':167,'year':168,'novel':169,'speed':170,'abbreviation':171,'percentage':172,'share':173,'number':174,'population':175,'located':176,'thing':177,'instance':178,'object':179,'demands':180,'take':181,'leader':182,'citizen':183,'captain':184,'nationalist':185,'hero':186,'actor':187,'actress':188,'star':189,'gamer':190,'player':191,'lawyer':192,'president':193,'lives':194,'latitude':195,'longitude':196,'alias':197,'nicknamed':198} + +# vocab = {'abbreviation':0,'actor':1,'actress':2,'address':3,'age':4,'alias':5,'amount':6,'are':7,'around':8,'at':9,'ate':10,'book':11,'build':12,'built':13,'by':14,'called':15,'can':16,'capital':17,'captain':18,'citizen':19,'close':20,'company':21,'composed':22,'could':23,'country':24,'date':25,'day':26,'demands':27,'describe':28,'did':29,'discovered':30,'division':31,'do':32,'doctor':33,'does':34,'does ':35,'doesn':36,'engineer':37,'enumerate':38,'explain':39,'far':40,'fastener':41,'fastener ':42,'fear':43,'for':44,'found':45,'from':46,'game':47,'gamer':48,'governs':49,'group':50,'groups':51,'guarded':52,'hero':53,'hours':54,'how':55,'human':56,'hypertension':57,'in':58,'instance':59,'invented':60,'is':61,'is ':62,'island':63,'kind':64,'king':65,'latitude':66,'latitude ':67,'lawyer':68,'leader':69,'leads':70,'list':71,'lived':72,'lives':73,'located':74,'long':75,'longitude':76,'made':77,'man':78,'many':79,'mean':80,'meant':81,'minute':82,'model':83,'month':84,'movie':85,'much':86,'name':87,'name ':88,'nationalist':89,'near':90,'nicknamed':91,'novel':92,'number':93,'object':94,'of':95,'old':96,'organization':97,'origin':98,'out':99,'owner':100,'owns':101,'part':102,'patent':103,'pays':104,'percentage':105,'person':106,'play':107,'played':108,'player':109,'poet':110,'population':111,'portrayed':112,'president':113,'queen':114,'ratio':115,'run':116,'seconds':117,'served':118,'shall':119,'share':120,'short':121,'should':122,'should ':123,'situated':124,'slept':125,'small':126,'speed':127,'stand':128,'star':129,'studied':130,'study ':131,'surname':132,'surrounds':133,'take':134,'tall':135,'team':136,'teams':137,'tetrinet':138,'the':139,'thing':140,'through':141,'time':142,'to':143,'trust':144,'unusual':145,'used':146,'using':147,'various':148,'was':149,'was ':150,'watched':151,'what':152,'what ':153,'when':154,'where':155,'where ':156,'which':157,'who':158,'who ':159,'why':160,'wide':161,'will':162,'woman':163,'worked':164,'would':165,'year':166,'you':167} + # vocab = ["what is","does the","what 's","mean ?","are the","stand for","what does","for ?","in ?","other What","was the","what was","do you","does a","in the","the most","the first","is the","on a","did the","name ?","of the","name the","can i","is a","in what","by the","chancellor of","of ?","were the","from the","into the","What are","australia ?","book to","call the","do italians","italians call","the tallest","to help","was hitler","has the"] + # vectorizer = CountVectorizer(vocabulary=vocab, tokenizer = mytokenizer, ngram_range=(1,2))#, stop_words='english') + + X = vectorizer.fit_transform(plots) + + valid_feats = np.where(np.sum(X,0)> 2)[1] + X = X[:,valid_feats] + print(len(valid_feats), valid_feats) + +# Split Dataset into Train, Val, Test + train_primitive_matrix, val_primitive_matrix, test_primitive_matrix, \ + train_ground, val_ground, test_ground,\ + train_plots, val_plots, test_plots = split_data(X, plots, labels, split_val) + common_idx = [] + #Prune Feature Space + # common_idx = self.prune_features(val_primitive_matrix, train_primitive_matrix) + # print('common_idx',len(common_idx)) +# return train_primitive_matrix[:,common_idx], val_primitive_matrix[:,common_idx], test_primitive_matrix[:,common_idx], np.array(train_ground), np.array(val_ground), np.array(test_ground),train_plots, val_plots, test_plots + return train_primitive_matrix, val_primitive_matrix, test_primitive_matrix, \ + np.array(train_ground), np.array(val_ground), np.array(test_ground), vectorizer, valid_feats, common_idx, \ + train_plots, val_plots, test_plots + + # return train_primitive_matrix[:,common_idx], val_primitive_matrix[:,common_idx], test_primitive_matrix[:,common_idx], \ + # np.array(train_ground), np.array(val_ground), np.array(test_ground), vectorizer, valid_feats, common_idx, \ + # train_plots, val_plots, test_plots + + diff --git a/spear/labeling/lf_gen/Loaders/twitter_loader.py b/spear/labeling/lf_gen/Loaders/twitter_loader.py new file mode 100644 index 0000000..cade3a1 --- /dev/null +++ b/spear/labeling/lf_gen/Loaders/twitter_loader.py @@ -0,0 +1,141 @@ + +#!/usr/bin/env python + +import numpy as np +import scipy +import json +from sklearn import model_selection as cross_validation +import re +from scipy import sparse +from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer +from sklearn.utils import shuffle +from nltk import word_tokenize +from nltk.stem import WordNetLemmatizer + + +class LemmaTokenizer(object): + def __init__(self): + self.wnl = WordNetLemmatizer() + def __call__(self, articles): + return [self.wnl.lemmatize(t) for t in word_tokenize(articles)] + +def parse_file(filename): + + def parse(filename): + tweet = [] + print(filename) + with open(filename) as f: + for line in f: +# print(line) + tweet.append(line) + return tweet + + tweets = parse(filename) + gt = [] + plots = [] + idx = [] + for i,twt in enumerate(tweets): + tweet = twt.split(',') + # print(tweet) + genre = tweet[1] + tweet_txt = re.sub(r"@\w+","", tweet[10]) + + if 'neutral' in genre: + plots.append(tweet_txt) + gt.append(1) + idx.append(i) + elif 'positive' in genre: + plots.append(tweet_txt) + gt.append(2) + idx.append(i) + elif 'negative' in genre: + plots.append(tweet_txt) + gt.append(-1) + idx.append(i) + else: + continue + + + print('len of data',len(plots)) + return np.array(plots), np.array(gt) + +def split_data(X, plots, y, split_val=0.1): + np.random.seed(1234) + num_sample = np.shape(X)[0] + num_test = 500 + X, plots, y = shuffle(X, plots, y, random_state = 25) + X_test = X[0:num_test,:] + X_train = X[num_test:, :] + plots_train = plots[num_test:] + plots_test = plots[0:num_test] + + y_test = y[0:num_test] + y_train = y[num_test:] + + # split dev/test + test_ratio = split_val + X_tr, X_te, y_tr, y_te, plots_tr, plots_te =\ + cross_validation.train_test_split(X_train, y_train, plots_train, test_size = test_ratio, random_state=25) + + return np.array(X_tr.todense()), np.array(X_te.todense()), np.array(X_test.todense()),\ + np.array(y_tr), np.array(y_te), np.array(y_test), plots_tr, plots_te, plots_test + + +class DataLoader(object): + """ A class to load in appropriate numpy arrays + """ + + def prune_features(self, val_primitive_matrix, train_primitive_matrix, thresh=0.001): + val_sum = np.sum(np.abs(val_primitive_matrix),axis=0) + train_sum = np.sum(np.abs(train_primitive_matrix),axis=0) + + #Only select the indices that fire more than 1% for both datasets + train_idx = np.where((train_sum >= thresh*np.shape(train_primitive_matrix)[0]))[0] + val_idx = np.where((val_sum >= thresh*np.shape(val_primitive_matrix)[0]))[0] + common_idx = list(set(train_idx) & set(val_idx)) + + return common_idx + + def load_data(self, dataset, data_path='~/auto_lfs/reef/data/twitter/',split_val=0.1, feat='count'): + + plots, labels = parse_file(data_path+'Tweets.csv') + + def mytokenizer(text): + return text.split() + + #Featurize Plots + # niche ki line original code ka bhag hai + # vectorizer = CountVectorizer(min_df=1, binary=True, decode_error='ignore', ngram_range=(1,2) ,\ + # tokenizer=LemmaTokenizer(), lowercase = True) + vectorizer = CountVectorizer(min_df=1, decode_error='ignore', strip_accents='ascii', ngram_range=(1,2)) + +# vocab = {'name':0,'name a':1,'how':2,'how does':3,'how to':4,'how can':5,'how should':6,'how would':7,'how could':8,'how will':9,'how do':10,'what':11,'what is':12,'what fastener':13,'how do you':14,'who':15,'who person':16,'who man':17,'who woman':18,'who human':19,'who president':20,'what person':21,'what man':22,'what woman':23,'what human':24,'what president':25,'how much':26,'how many':27,'what kind':28,'what amount':29,'what number':30,'what percentage':31,'capital':32,'capital of':33,'why':34,'why does':35,'why should':36,'why shall':37,'why could':38,'why would':39,'why will':40,'why can':41,'why do':42,'composed':43,'made':44,'composed from':45,'composed through':46,'composed using':47,'composed by':48,'composed of':49,'made from':50,'made through':51,'made using':52,'made by':53,'made of':54,'where':55,'which':56,'where island':57,'which island':58,'what island':59,'who owner':60,'who leads':61,'who governs':62,'who pays':63,'who owns':64,'what is tetrinet':65,'who found':66,'who discovered':67,'who made':68,'who built':69,'who build':70,'who invented':71,'why doesn':72,'used':73,'used for':74,'when':75,'when did':76,'when do':77,'when does':78,'when was':79,'how old':80,'how far':81,'how long':82,'how tall':83,'how wide':84,'how short':85,'how small':86,'how close':87,'fear':88,'fear of':89,'explain':90,'describe':91,'explain can':92,'describe can':93,'who worked':94,'who lived':95,'who guarded':96,'who watched':97,'who played':98,'who ate':99,'who slept':100,'who portrayed':101,'who served':102,'what part':103,'what division':104,'what ratio':105,'who is':106,'who will':107,'who was':108,'what do':109,'what does':110,'enumerate the':111,'list out the':112,'name the':113,'enumerate the various':114,'list out the various':115,'name the various':116,'at which':117,'at how many':118,'at what':119,'in which':120,'in how many':121,'in what':122,'at which age':123,'at which year':124,'at how many age':125,'at how many year':126,'at what age':127,'at what year':128,'in which age':129,'in which year':130,'in how many age':131,'in how many year':132,'in what age':133,'in what year':134,'which play':135,'which game':136,'which movie':137,'which book':138,'what play':139,'what game':140,'what movie':141,'what book':142,'which is':143,'which will':144,'which are':145,'which was':146,'who are':147,'by how':148,'by how much':149,'by how many':150,'where was':151,'where is':152,'studied':153,'patent':154,'man':155,'woman':156,'human':157,'person':158,'stand':159,'mean':160,'meant':161,'called':162,'unusual':163,'origin':164,'country':165,'queen':166,'king':167,'year':168,'novel':169,'speed':170,'abbreviation':171,'percentage':172,'share':173,'number':174,'population':175,'located':176,'thing':177,'instance':178,'object':179,'demands':180,'take':181,'leader':182,'citizen':183,'captain':184,'nationalist':185,'hero':186,'actor':187,'actress':188,'star':189,'gamer':190,'player':191,'lawyer':192,'president':193,'lives':194,'latitude':195,'longitude':196,'alias':197,'nicknamed':198} + +# vocab = {'abbreviation':0,'actor':1,'actress':2,'address':3,'age':4,'alias':5,'amount':6,'are':7,'around':8,'at':9,'ate':10,'book':11,'build':12,'built':13,'by':14,'called':15,'can':16,'capital':17,'captain':18,'citizen':19,'close':20,'company':21,'composed':22,'could':23,'country':24,'date':25,'day':26,'demands':27,'describe':28,'did':29,'discovered':30,'division':31,'do':32,'doctor':33,'does':34,'does ':35,'doesn':36,'engineer':37,'enumerate':38,'explain':39,'far':40,'fastener':41,'fastener ':42,'fear':43,'for':44,'found':45,'from':46,'game':47,'gamer':48,'governs':49,'group':50,'groups':51,'guarded':52,'hero':53,'hours':54,'how':55,'human':56,'hypertension':57,'in':58,'instance':59,'invented':60,'is':61,'is ':62,'island':63,'kind':64,'king':65,'latitude':66,'latitude ':67,'lawyer':68,'leader':69,'leads':70,'list':71,'lived':72,'lives':73,'located':74,'long':75,'longitude':76,'made':77,'man':78,'many':79,'mean':80,'meant':81,'minute':82,'model':83,'month':84,'movie':85,'much':86,'name':87,'name ':88,'nationalist':89,'near':90,'nicknamed':91,'novel':92,'number':93,'object':94,'of':95,'old':96,'organization':97,'origin':98,'out':99,'owner':100,'owns':101,'part':102,'patent':103,'pays':104,'percentage':105,'person':106,'play':107,'played':108,'player':109,'poet':110,'population':111,'portrayed':112,'president':113,'queen':114,'ratio':115,'run':116,'seconds':117,'served':118,'shall':119,'share':120,'short':121,'should':122,'should ':123,'situated':124,'slept':125,'small':126,'speed':127,'stand':128,'star':129,'studied':130,'study ':131,'surname':132,'surrounds':133,'take':134,'tall':135,'team':136,'teams':137,'tetrinet':138,'the':139,'thing':140,'through':141,'time':142,'to':143,'trust':144,'unusual':145,'used':146,'using':147,'various':148,'was':149,'was ':150,'watched':151,'what':152,'what ':153,'when':154,'where':155,'where ':156,'which':157,'who':158,'who ':159,'why':160,'wide':161,'will':162,'woman':163,'worked':164,'would':165,'year':166,'you':167} + # vocab = ["what is","does the","what 's","mean ?","are the","stand for","what does","for ?","in ?","other What","was the","what was","do you","does a","in the","the most","the first","is the","on a","did the","name ?","of the","name the","can i","is a","in what","by the","chancellor of","of ?","were the","from the","into the","What are","australia ?","book to","call the","do italians","italians call","the tallest","to help","was hitler","has the"] + # vectorizer = CountVectorizer(vocabulary=vocab, tokenizer = mytokenizer, ngram_range=(1,2))#, stop_words='english') + + X = vectorizer.fit_transform(plots) + + valid_feats = np.where(np.sum(X,0)> 2)[1] + X = X[:,valid_feats] + print(len(valid_feats), valid_feats) + +# Split Dataset into Train, Val, Test + train_primitive_matrix, val_primitive_matrix, test_primitive_matrix, \ + train_ground, val_ground, test_ground,\ + train_plots, val_plots, test_plots = split_data(X, plots, labels, split_val) + + #Prune Feature Space + common_idx = self.prune_features(val_primitive_matrix, train_primitive_matrix) + print('common_idx',len(common_idx)) +# return train_primitive_matrix[:,common_idx], val_primitive_matrix[:,common_idx], test_primitive_matrix[:,common_idx], np.array(train_ground), np.array(val_ground), np.array(test_ground),train_plots, val_plots, test_plots +# return train_primitive_matrix, val_primitive_matrix, test_primitive_matrix, \ +# np.array(train_ground), np.array(val_ground), np.array(test_ground), vectorizer, valid_feats, common_idx, \ +# train_plots, val_plots, test_plots + + return train_primitive_matrix[:,common_idx], val_primitive_matrix[:,common_idx], test_primitive_matrix[:,common_idx], \ + np.array(train_ground), np.array(val_ground), np.array(test_ground), vectorizer, valid_feats, common_idx, \ + train_plots, val_plots, test_plots + + diff --git a/spear/labeling/lf_gen/Loaders/youtube_loader.py b/spear/labeling/lf_gen/Loaders/youtube_loader.py new file mode 100644 index 0000000..25ae1bb --- /dev/null +++ b/spear/labeling/lf_gen/Loaders/youtube_loader.py @@ -0,0 +1,144 @@ +import numpy as np +import scipy +import json +from sklearn import model_selection as cross_validation +import re +from scipy import sparse +from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer +import glob +import pandas as pd +from sklearn.utils import shuffle + +from nltk import word_tokenize +from nltk.stem import WordNetLemmatizer +import spacy + + +class LemmaTokenizer(object): + def __init__(self): + self.wnl = WordNetLemmatizer() + def __call__(self, articles): + return [self.wnl.lemmatize(t) for t in word_tokenize(articles)] + +def load_youtube_dataset(datapath, load_train_labels: bool = False, split_dev: bool = True): + + # path = datapath + 'Youtube01-Psy.csv' + path = datapath + 'Youtube*.csv' + filenames = sorted(glob.glob(path)) + print(filenames) + dfs = [] + for i, filename in enumerate(filenames, start=1): + df = pd.read_csv(filename) + # Lowercase column names + df.columns = map(str.lower, df.columns) + # Remove comment_id field + df = df.drop("comment_id", axis=1) + # Add field indicating source video + df["video"] = [i] * len(df) + # Rename fields + df = df.rename(columns={"class": "label", "content": "text"}) + # Shuffle order + df = df.sample(frac=1, random_state=123).reset_index(drop=True) + dfs.append(df) +# print(dfs[:1]) + df_train = pd.concat(dfs[:4]) + labels = np.asarray(df_train['label']) + labels[np.where(labels==0)] = -1 + plots, labels = np.asarray(df_train['text']), labels + with open('yt_plots.txt','w') as f: + for i in plots: + f.write(i +'\n') + + return plots, labels + +# if split_dev: +# df_dev = df_train.sample(100, random_state=123) + +# if not load_train_labels: +# df_train["label"] = np.ones(len(df_train["label"])) * -1 +# df_valid_test = dfs[4] +# df_valid, df_test = train_test_split( +# df_valid_test, test_size=250, random_state=123, stratify=df_valid_test.label +# ) + +# if split_dev: +# return df_train, df_dev, df_valid, df_test +# else: +# return df_train, df_valid, df_test + +def split_data(X, plots, y, split_val = 0.1): + np.random.seed(1234) + num_sample = np.shape(X)[0] + num_test = 500 + X, plots, y = shuffle(X, plots, y, random_state = 25) + + X_test = X[0:num_test,:] + X_train = X[num_test:, :] + plots_train = plots[num_test:] + plots_test = plots[0:num_test] + + y_test = y[0:num_test] + y_train = y[num_test:] + + # split dev/test + test_ratio = split_val + X_tr, X_te, y_tr, y_te, plots_tr, plots_te = cross_validation.train_test_split(X_train, y_train, plots_train, test_size = test_ratio, random_state=25) + + print('Train ', len(y_tr), 'Valid ', len(y_te)) + return np.array(X_tr.todense()), np.array(X_te.todense()), np.array(X_test.todense()),np.array(y_tr), np.array(y_te), np.array(y_test), plots_tr, plots_te, plots_test + + +class DataLoader(object): + """ A class to load in appropriate numpy arrays + """ + + def prune_features(self, val_primitive_matrix, train_primitive_matrix, thresh=0.01): + val_sum = np.sum(np.abs(val_primitive_matrix),axis=0) + train_sum = np.sum(np.abs(train_primitive_matrix),axis=0) + + #Only select the indices that fire more than 1% for both datasets + train_idx = np.where((train_sum >= thresh*np.shape(train_primitive_matrix)[0]))[0] + val_idx = np.where((val_sum >= thresh*np.shape(val_primitive_matrix)[0]))[0] + common_idx = list(set(train_idx) & set(val_idx)) + + return common_idx + + def load_data(self, dataset, data_path='', split_val=0.1, feat = 'count'): + plots, labels = load_youtube_dataset(datapath=data_path) + #Featurize Plots + + if feat == 'count': + vectorizer = CountVectorizer(min_df=1, binary=True, stop_words='english', decode_error='ignore', strip_accents='ascii', ngram_range=(1,2)) + elif feat == 'lemma': + vectorizer = CountVectorizer(min_df=1, binary=True, decode_error='ignore', ngram_range=(1,2) ,\ + tokenizer=LemmaTokenizer(),strip_accents = 'unicode', stop_words = 'english', lowercase = True) + else: + vectorizer = CountVectorizer(min_df=1, binary=True, stop_words='english', decode_error='ignore', strip_accents='ascii', ngram_range=(1,2)) + + # nlp = spacy.load("en_core_web_sm") + # # doc = nlp(plots) + # phrases = set() + # for i in plots: + # doc = nlp(str(i)) + # for np in doc.noun_chunks: + # phrases.add(np) + # print('length of phrases', phrases) + # vectorizer = CountVectorizer(vocabulary = phrases, min_df=1, binary=True, stop_words='english' ,\ + # decode_error='ignore', strip_accents='ascii', ngram_range=(1,2)) + + # print(plots) + X = vectorizer.fit_transform(plots) + valid_feats = np.where(np.sum(X,0)> 2)[1] + X = X[:,valid_feats] + + #Split Dataset into Train, Val, Test + train_primitive_matrix, val_primitive_matrix, test_primitive_matrix, \ + train_ground, val_ground, test_ground,\ + train_plots, val_plots, test_plots = split_data(X, plots, labels, split_val) + + #Prune Feature Space + common_idx = self.prune_features(val_primitive_matrix, train_primitive_matrix) + return train_primitive_matrix[:,common_idx], val_primitive_matrix[:,common_idx], \ + test_primitive_matrix[:,common_idx], np.array(train_ground), np.array(val_ground), \ + np.array(test_ground), vectorizer, valid_feats, common_idx, \ + train_plots, val_plots, test_plots diff --git a/spear/labeling/lf_gen/__init__.py b/spear/labeling/lf_gen/__init__.py new file mode 100644 index 0000000..4120c6b --- /dev/null +++ b/spear/labeling/lf_gen/__init__.py @@ -0,0 +1,2 @@ +from .core import LFgenerator +from .core import LFgenerator2 \ No newline at end of file diff --git a/spear/labeling/lf_gen/core.py b/spear/labeling/lf_gen/core.py new file mode 100644 index 0000000..53a65f3 --- /dev/null +++ b/spear/labeling/lf_gen/core.py @@ -0,0 +1,656 @@ +from typing import Any, Callable, List, Tuple, Set, Mapping, Optional +import numpy as np +import matplotlib.pyplot as plt +import sys +from ..utils.generation.greedy_filtering_GraphCut import greedy_lf_generation +# from ..utils import labeling_function, ABSTAIN, preprocessor, continuous_scorer +from ..lf import labeling_function, ABSTAIN +from ..preprocess import preprocessor +from ..continuous_scoring import continuous_scorer +from ..utils.generation import HeuristicGenerator +from sklearn.feature_extraction.text import CountVectorizer +from sklearn.linear_model._logistic import LogisticRegression +from nltk.tokenize import word_tokenize +from nltk.stem import WordNetLemmatizer +from ..utils.generation import Synthesizer +from ..lf_set import LFSet +from ..prelabels import PreLabels +import pickle +import os +import re +import enum +import warnings +from sklearn import model_selection as cross_validation +from ..utils.generation.DeepLSTM import * +from ..utils.generation.others import * +warnings.filterwarnings("ignore") +import importlib + + +class LFgenerator : + + """Generator class for Labelling Functions + + Args: + dataset (str): dataset for which LFs are to be generated + model (str): model to use (dt/lr/knn). Defaults to dt + cardinality (int): Additional resources for the LF. Defaults to 1. + numloops (int): PThe number of loops to precess for. + model_feats (str): Features to use (lstm/count/lemma). Defaults to count. + """ + + def __init__( + self, + dataset:str, + model:str, + cardinality:int, + numloops:int, + model_feats:str) -> None : + """Instantiates LFgenerator class with the set of inputs + """ + self.dataset = dataset + self.model = model if model else 'dt' + self.cardinality = cardinality if cardinality else 1 + self.numloops = numloops + self.model_feats = model_feats if model_feats else 'count' + + + def __call__(self, dpath:str, savepath:str) -> List[Tuple[str, str]]: + """Function to generate and save LFs as numpy array firings + + Inputs : + dpath : File containing the data + savepath : Directory to save the generate LFs + + Returns : + List of tuples containng the Labling words and their corresponding labels + """ + + print(f'save path : {savepath}') + print('dataset is ', self.dataset) + loader_file = ".labeling.lf_gen.Loaders." + self.dataset+"_loader" + print(os.getcwd()) + + load = importlib.import_module(loader_file, package='spear') + dl = load.DataLoader() + train_primitive_matrix, val_primitive_matrix, test_primitive_matrix, train_ground,\ + val_ground, test_ground, vizer, val_idx, common_idx, train_text, val_text, test_text\ + = dl.load_data(dataset=self.dataset, data_path=dpath, split_val = 0.1, feat = self.model_feats) + self.matrix = (train_primitive_matrix, val_primitive_matrix, test_primitive_matrix) + + print('test length ', len(test_ground)) + print(f'train primitive matrix : {train_primitive_matrix.shape}') + + self.txt = (train_text, val_text, test_text) + self.gnd = (train_ground, val_ground, test_ground) + x = [vizer.get_feature_names_out()[val_idx[i]] for i in common_idx ] + + print('Size of validation set ', len(val_ground)) + print('Size of train set ', len(train_ground)) + print('Size of test set ', len(test_ground)) + + print('val_primitive_matrix.shape', val_primitive_matrix.shape) + + num_classes = len(np.unique(train_ground)) + overall = {} + vals=[] + mode = 'normal' + + # save_path = "LFs/"+ (self.dataset) + "/" + savepath + self.savepath = savepath + os.makedirs(self.savepath, exist_ok=True) + # save_path = "generated_data/" + dataset #+ "/" + mode + print('save_path', self.savepath) + val_file_name = mode + '_val_LFs.npy' + train_file_name = mode + '_train_LFs.npy' + test_file_name = mode + '_test_LFs.npy' + + keep_1st=3 + keep_2nd=1 + training_marginals = [] + HF = [] + + validation_accuracy = [] + training_accuracy = [] + validation_coverage = [] + training_coverage = [] + + idx = None + hg = HeuristicGenerator(train_primitive_matrix, val_primitive_matrix, test_primitive_matrix, + test_ground, val_ground, train_ground, b=0.5) + + for i in range(3,self.numloops): + if (i-2)%5 == 0: + print ("Running iteration: ", str(i-2)) + + #Repeat synthesize-prune-verify at each iterations + if i == 3: + hg.run_synthesizer(max_cardinality= self.cardinality, idx=idx, keep=keep_1st, model=self.model, mode = mode) + else: + hg.run_synthesizer(max_cardinality= self.cardinality, idx=idx, keep=keep_2nd, model=self.model, mode = mode) + hg.run_verifier() + + #Save evaluation metrics + val_lfs, train_lfs = [], [] + hf = [] + va,ta, vc, tc, val_lfs, train_lfs, test_lfs, hf = hg.evaluate() + HF = hf + validation_accuracy.append(va) + training_accuracy.append(ta) + training_marginals.append(hg.vf.train_marginals) + validation_coverage.append(vc) + training_coverage.append(tc) + + if i==(self.numloops-1): + np.save(os.path.join(self.savepath ,val_file_name), val_lfs) + np.save(os.path.join(self.savepath ,train_file_name), train_lfs) + np.save(os.path.join(self.savepath ,test_file_name), test_lfs) + print('labels saved') + + hg.find_feedback() + idx = hg.feedback_idx + print('Remaining to be labelled ', len(idx)) + + if idx == [] : + np.save(os.path.join(self.savepath ,val_file_name), val_lfs) + np.save(os.path.join(self.savepath ,train_file_name), train_lfs) + np.save(os.path.join(self.savepath ,test_file_name), test_lfs) + print('indexes exhausted... now saving labels') + break + + print ("Program Synthesis Train Accuracy: ", training_accuracy[-1]) + print ("Program Synthesis Train Coverage: ", training_coverage[-1]) + print ("Program Synthesis Validation Accuracy: ", validation_accuracy[-1]) + + + trx = np.load(os.path.join(self.savepath ,train_file_name)) + valx = np.load(os.path.join(self.savepath ,val_file_name)) + testx = np.load(os.path.join(self.savepath ,test_file_name)) + + yoyo = list(range(1,num_classes)) + yoyo.append(-1) + labels_lfs = [] + idxs = [] + for i in range(valx.shape[1]): + for j in yoyo: + if len(np.where(valx.T[i]==j)[0]) > 1: + labels_lfs.append(j) + idxs.append(i) + break + + trx = trx[:,idxs] + testx = testx[:,idxs] + valx = valx[:,idxs] + print(trx.shape, valx.shape, testx.shape) + + + + lx = np.asarray(labels_lfs) + lx[np.where(lx==-1)] = 0 + print('LFS are ', lx) + file_name = mode + '_k.npy' + np.save(os.path.join(self.savepath , file_name), lx) + + self.x = (trx, valx, testx, lx) + np.save(os.path.join(self.savepath,'normal_reef.npy'), training_marginals[-1]) + + retinfo = [] + + for j, i in zip(lx, hg.heuristic_stats().iloc[:len(idx)]['Feat 1']): + retinfo.append((str(j), x[int(i)])) + # f.write(str(j) + ',' + x[int(i)] + '\n') + # lfwords.append(x[int(i)]) + return retinfo + + + + def dump(self, retinfo:List[Tuple[str, str]]) -> None : + """Function to dump all the LF information in pickle files, to be stored in the defined save directory + + Args : + retinfo : List of tuples, returned by the call function + """ + + + (train_text, val_text, test_text) = self.txt + (train_ground, val_ground, test_ground) = self.gnd + (trx, valx, testx, lx) = self.x + (train_primitive_matrix, val_primitive_matrix, test_primitive_matrix) = self.matrix + num_classes = len(np.unique(train_ground)) + + def lsnork_to_l_m(lsnork, num_classes): + m = 1 - np.equal(lsnork, -1).astype(int) + l = m*lsnork + (1-m)*num_classes + return l,m + + if self.model_feats == 'lstm': + mkt = MakeTokens() + train_primitive_matrix, val_primitive_matrix, test_primitive_matrix, \ + vocab_size, embedding_vector_length, max_sentence_length =\ + mkt.make(train_text, val_text, test_text) + + upto = int(len(val_ground)/2 ) + d_L, U_L = val_ground[:upto], train_ground + d_x, U_x = val_primitive_matrix[:upto], train_primitive_matrix + d_l, U_l = valx[:upto,:], trx + + U_text = train_text + d_text = val_text[:upto] + val_text = val_text[upto:] + test_text = test_text + + # pickle_save = "LFs/"+ self.dataset + "/" + savepath + pickle_save = self.savepath + def write_txt(name, objs): + with open(os.path.join(pickle_save , name+'.txt'), 'w') as f: + for i in objs: + f.write(i+'\n') + + write_txt('U', U_text) + write_txt('d', d_text) + write_txt('val', val_text) + write_txt('test', test_text) + + d_d = np.array([1.0] * len(d_x)) + d_r = np.zeros(d_l.shape) + d_L[np.where(d_L==-1)[0]] = 0 + + d_l[np.where(d_l==-1)]=10 + d_l[np.where(d_l==0)]=-1 + d_l[np.where(d_l==10)]=0 + d_l, d_m = lsnork_to_l_m(d_l, num_classes) + + + file_name = 'normal' + '_d_processed.p' + with open(os.path.join(pickle_save, file_name),"wb") as f: + pickle.dump(d_x,f) + pickle.dump(d_l,f) + pickle.dump(d_m,f) + pickle.dump(d_L,f) + pickle.dump(d_d,f) + pickle.dump(d_r,f) + + + + U_d = np.array([1.0] * len(U_x)) + U_r = np.zeros(U_l.shape) + + U_L[np.where(U_L==-1)[0]] = 0 + + U_l[np.where(U_l==-1)]=10 + U_l[np.where(U_l==0)]=-1 + U_l[np.where(U_l==10)]=0 + U_l, U_m = lsnork_to_l_m(U_l, num_classes) + + file_name = 'normal' + '_U_processed.p' + with open(os.path.join(pickle_save, file_name),"wb") as f: + pickle.dump(U_x,f) + pickle.dump(U_l,f) + pickle.dump(U_m,f) + pickle.dump(U_L,f) + pickle.dump(U_d,f) + pickle.dump(U_r,f) + + + + val_L = val_ground[upto:] + val_x = val_primitive_matrix[upto:] + val_l = valx[upto:,:] + val_d = np.array([1.0] * len(val_x)) + val_r = np.zeros(val_l.shape) + val_L[np.where(val_L==-1)[0]] = 0 + + val_l[np.where(val_l==-1)]=10 + val_l[np.where(val_l==0)]=-1 + val_l[np.where(val_l==10)]=0 + val_l, val_m = lsnork_to_l_m(val_l, num_classes) + file_name = 'normal' + '_validation_processed.p' + with open(os.path.join(pickle_save,file_name),"wb") as f: + pickle.dump(val_x,f) + pickle.dump(val_l,f) + pickle.dump(val_m,f) + pickle.dump(val_L,f) + pickle.dump(val_d,f) + pickle.dump(val_r,f) + + test_L = test_ground + test_x = test_primitive_matrix + test_l = testx.copy() + test_d = np.array([1.0] * len(test_x)) + test_r = np.zeros(test_l.shape) + test_L[np.where(test_L==-1)[0]] = 0 + + test_l[np.where(test_l==-1)]=10 + test_l[np.where(test_l==0)]=-1 + test_l[np.where(test_l==10)]=0 + + test_l, test_m = lsnork_to_l_m(test_l, num_classes) + file_name = 'normal' + '_test_processed.p' + + with open(os.path.join(pickle_save,file_name),"wb") as f: + pickle.dump(test_x,f) + pickle.dump(test_l,f) + pickle.dump(test_m,f) + pickle.dump(test_L,f) + pickle.dump(test_d,f) + pickle.dump(test_r,f) + + + print('Final Size of d set , U set , validation set , test set', len(d_L), len(U_L), len(val_L), len(test_L)) + + lfwords = [el[1] for el in retinfo] + + with open (os.path.join(pickle_save, 'generatedLFs.txt'), 'w') as f: + for j, i in zip(lx, lfwords): + f.write(str(j) + ',' + i + '\n') + + print('final LFs are ', lx.shape) + # return x + + def __repr__(self) : + + return f'dataset {self.dataset}, model {self.model}, card {self.cardinality}, loops {self.numloops}, features {self.model_feats}' + + + +class LFgenerator2(): + + """Generator class(2) for Labelling Functions + + Args: + dataset (str): dataset for which LFs are to be generated + model (str): model to use (dt/lr/knn). Defaults to dt + filter (int): Number of filters. Defaults to 0. + feats(str) : Features to use (lstm/count/lemma). Defaults to count + numloops (int): Number of loops to precess for. + max_final_lfs (int): Number of LFs + + """ + + def __init__( + self, + dataset:str, + model:str, + filter:int, + feats:str, + numrules:int, + max_final_lfs:int) -> None : + """Instantiates LFgenerator2 class with list of labeling functions + """ + self.dataset = dataset + self.model = model if model else 'dt' + self.filter = filter if filter else 0 + self.feats = feats if feats else 'count' + self.numrules = numrules + self.max_final_lfs = max_final_lfs + + def __call__(self, dpath, savepath) : + """Function to generate and save LFs as numpy array firings + + Inputs : + dpath : File containing the data + savepath : Directory to save the generate LFs + + Returns : + List of tuples containng the Labling words and their corresponding labels + """ + + dataset = self.dataset + feats = self.feats + num_rules = int(self.numrules) + self.save_dir = savepath + max_lfs = int(self.max_final_lfs) + filter_check = int(self.filter) + if not filter_check: + num_rules = max_lfs + + print('dataset is ', dataset) + loader_file = ".labeling.lf_gen.Loaders." + dataset+"_loader" + # pickle_save = "LFs/"+ dataset + "/" + save_dir + pickle_save = self.save_dir + os.makedirs(pickle_save, exist_ok=True) + # dl = DataLoader() + load = importlib.import_module(loader_file, package='spear') + dl = load.DataLoader() + train_primitive_matrix, val_primitive_matrix, test_primitive_matrix, train_ground,\ + val_ground, test_ground, vizer, val_idx, common_idx, train_text, val_text,\ + test_text = dl.load_data(dataset=dataset, data_path=dpath, split_val = 0.1, feat = feats) + + self.matrix = (train_primitive_matrix, val_primitive_matrix, test_primitive_matrix) + self.gnd = (train_ground, val_ground, test_ground) + + num_classes = len(np.unique(train_ground)) + print('Size of validation set ', len(val_ground)) + print('Size of train set ', len(train_ground)) + print('Size of test set ', len(test_ground)) + + print('val_primitive_matrix.shape', val_primitive_matrix.shape) + + cw = classifierWeights(num_rules, feats) + rule_label_dict = cw.linear_applier(val_text, val_ground, val_primitive_matrix, vizer) + rules, featurizer = cw.returnRules() + + train_feats = featurizer(train_text) + val_feats = featurizer(val_text) + test_feats = featurizer(test_text) + self.feats = (train_feats, val_feats, test_feats) + + print(' train_feats.shape ' , train_feats.shape) + Y_L = np.zeros((train_feats.shape[0])) + # print(Y_L.shape) + imdb_noisy_labels = PreLabels(name="prelabels", data=train_text, data_feats = train_feats, + gold_labels=Y_L, rules=rules, labels_enum=ClassLabels, num_classes=num_classes) + + + + + def change_0_to_minus(): + train_L[train_L==0] = 100 + train_S[train_S==0] = 100 + train_L[train_L==-1] = 0 + train_S[train_S==-1] = 0 + train_L[train_L==100] = -1 + train_S[train_S==100] = -1 + + val_L[val_L==0] = 100 + val_S[val_S==0] = 100 + val_L[val_L==-1] = 0 + val_S[val_S==-1] = 0 + val_L[val_L==100] = -1 + val_S[val_S==100] = -1 + + + test_L[test_L==0] = 100 + test_S[test_S==0] = 100 + test_L[test_L==None] = 0 + test_S[test_S==None] = 0 + test_L[test_L==100] = -1 + test_S[test_S==100] = -1 + + + train_L, train_S = imdb_noisy_labels.get_labels() + train_L[train_L==0] = 100 + train_S[train_S==0] = 100 + train_L[train_L==None] = 0 + train_S[train_S==None] = 0 + train_L[train_L==100] = -1 + train_S[train_S==100] = -1 + print('val_text ', len(val_text)) + print('val_feats ', val_feats.shape) + + imdb_noisy_labels = PreLabels(name="prelabels", data=val_text, data_feats = val_feats, + gold_labels=val_ground, rules=rules, labels_enum=ClassLabels, num_classes=num_classes) + + val_L, val_S = imdb_noisy_labels.get_labels() + val_L[val_L==0] = 100 + val_S[val_S==0] = 100 + val_L[val_L==None] = 0 + val_S[val_S==None] = 0 + val_L[val_L==100] = -1 + val_S[val_S==100] = -1 + + print(val_L.shape , 'val_L.shape') + + imdb_noisy_labels = PreLabels(name="prelabels", data=test_text, data_feats = test_feats, + gold_labels=test_ground, rules=rules, labels_enum=ClassLabels, num_classes=num_classes) + + test_L, test_S = imdb_noisy_labels.get_labels() + test_L[test_L==0] = 100 + test_S[test_S==0] = 100 + test_L[test_L==None] = 0 + test_S[test_S==None] = 0 + test_L[test_L==100] = -1 + test_S[test_S==100] = -1 + + self.prelabs = (train_L, train_S, val_L, val_S, test_L, test_S) + + if not filter_check: + change_0_to_minus() + if filter_check : + val_ground[val_ground==0]=-1 + final_set = greedy_lf_generation(train_L, val_L, val_ground, max_lfs = max_lfs, w=0.5, gamma=0.2) + print('final set is', final_set) + lx = list(final_set.values()) + print('lx is ', lx) + change_0_to_minus() + val_ground[val_ground==-1]=0 + + file_name = 'normal_k.npy' + np.save(os.path.join(pickle_save, file_name), lx) + + str_lbls = list(rule_label_dict.keys()) + retinfo = [] + for i,j in final_set.items() : + retinfo.append((str(j), str(str_lbls[int(i)]))) + + final_idx = list(final_set.keys()) + train_L, train_S = train_L[:,final_idx], train_S[:,final_idx] + val_L, val_S = val_L[:,final_idx], val_S[:,final_idx] + test_L, test_S = test_L[:, final_idx], test_S[:, final_idx] + + else : + file_name = 'normal_k.npy' + lx = [] + # for i in rule_label_dict.values(): + print('label ', list(rule_label_dict.values())) + np.save(os.path.join(pickle_save, file_name), list(rule_label_dict.values())) + + retinfo = [(str(j), i) for i,j in rule_label_dict.items()] + + # self.rule_label = rule_label_dict + return retinfo + + + + + + + def dump(self, retinfo) : + """Function to dump all the LF information in pickle files, to be stored in the defined save directory + + Args : + retinfo : List of tuples, returned by the call function + """ + + (train_ground, val_ground, test_ground) = self.gnd + (train_feats, val_feats, test_feats) = self.feats + (train_L, train_S, val_L, val_S, test_L, test_S) = self.prelabs + (train_primitive_matrix, val_primitive_matrix, test_primitive_matrix) = self.matrix + num_classes = len(np.unique(train_ground)) + pickle_save = self.save_dir + + upto = int(len(val_ground)/2 ) + d_ground, val_ground = val_ground[:upto], val_ground[upto:] + d_x, val_x = val_feats[:upto], val_feats[upto:] + d_l, val_l = val_L[:upto,:], val_L[upto:,:] + d_s, val_s = val_S[:upto,:], val_S[upto:,:] + + + def lsnork_to_l_m(lsnork, num_classes): + m = 1 - np.equal(lsnork, -1).astype(int) + l = m*lsnork + (1-m)*num_classes + return l,m + + + ######## TXT FILE GEN ########### + + # str_lbls = list(self.rule_label.keys()) + # if int(self.filter) : + # with open(os.path.join(pickle_save, 'generatedLFs.txt'), 'w') as f: + # for (i,j) in retinfo: + # f.write(str(str_lbls[int(i)]) +',' + str(j) +'\n') + # else : + # with open (os.path.join(pickle_save, 'generatedLFs.txt'), 'w') as f: + # for (i,j) in retinfo: + # f.write(i +',' + str(j) +'\n') + + with open (os.path.join(pickle_save, 'generatedLFs.txt'), 'w') as f: + for (i,j) in retinfo: + f.write(j +',' + i +'\n') + + + ######## Labeled set ############ + + d_d = np.array([1.0] * len(train_feats)) + d_r = np.zeros(d_l.shape) + d_l, d_m = lsnork_to_l_m(d_l, num_classes) + + file_name = 'normal_d_processed.p' + with open(os.path.join(pickle_save, file_name),"wb") as f: + pickle.dump(d_x,f) + pickle.dump(d_l,f) + pickle.dump(d_m,f) + pickle.dump(d_ground,f) + pickle.dump(d_d,f) + pickle.dump(d_r,f) + + ######## Validation ############ + + val_d = np.array([1.0] * len(train_feats)) + val_r = np.zeros(val_l.shape) + val_l, val_m = lsnork_to_l_m(val_l, num_classes) + + file_name = 'normal_validation_processed.p' + with open(os.path.join(pickle_save, file_name),"wb") as f: + pickle.dump(val_x,f) + pickle.dump(val_l,f) + pickle.dump(val_m,f) + pickle.dump(val_ground,f) + pickle.dump(val_d,f) + pickle.dump(val_r,f) + + ######## Unlabeled ############ + + U_d = np.array([1.0] * len(train_feats)) + U_r = np.zeros(train_L.shape) + U_l, U_m = lsnork_to_l_m(train_L, num_classes) + + file_name = 'normal_U_processed.p' + with open(os.path.join(pickle_save, file_name),"wb") as f: + pickle.dump(train_feats,f) + pickle.dump(U_l,f) + pickle.dump(U_m,f) + pickle.dump(train_ground,f) + pickle.dump(U_d,f) + pickle.dump(U_r,f) + + ######## Test ############ + + test_d = np.array([1.0] * len(test_feats)) + test_r = np.zeros(test_L.shape) + test_l, test_m = lsnork_to_l_m(test_L, num_classes) + + file_name = 'normal_test_processed.p' + with open(os.path.join(pickle_save, file_name),"wb") as f: + pickle.dump(test_feats,f) + pickle.dump(test_l,f) + pickle.dump(test_m,f) + pickle.dump(test_ground,f) + pickle.dump(test_d,f) + pickle.dump(test_r,f) + + + def __repr__(self) : + + return f'dataset {self.dataset}, model {self.model}, filter {self.filter}, feats {self.feats} numRules {self.numrules}, MaxLFs {self.max_final_lfs}' + diff --git a/spear/labeling/prelabels/core.py b/spear/labeling/prelabels/core.py index 2b3f461..c8143a8 100644 --- a/spear/labeling/prelabels/core.py +++ b/spear/labeling/prelabels/core.py @@ -24,28 +24,42 @@ def __init__( self, name: str, data: DataPoints, - data_feats: DataPoints, rules: LFSet, + num_classes: int, + labels_enum, + data_feats: Optional[DataPoints] = np.array([]), gold_labels: Optional[DataPoints] = np.array([]), - labels_enum = None, - num_classes = -1, exemplars: DataPoints=np.array([]), ) -> None: """Instantiates PreLabels class with dataset and set of LFs to noisily label the dataset """ self.name = name self._data = data - self._data_feats = data_feats - self._gold_labels = gold_labels self._rules = rules - self._labels_enum = labels_enum self._num_classes = num_classes + self._labels_enum = labels_enum + self._data_feats = data_feats + self._gold_labels = gold_labels + self._R = exemplars self._L = None self._S = None - self._R = exemplars - self._enum = enum - assert(num_classes == len(labels_enum)) + assert num_classes == len(labels_enum) + + lab_vals = set(item.value for item in self._labels_enum) + assert len(lab_vals)==self._num_classes + + lab_nams = set(item.name for item in self._labels_enum) + assert 'ABSTAIN' not in lab_nams + + assert (self._data_feats.shape[0]==0) or (self._data_feats.shape[0]==self._data.shape[0]) + assert (len(self._gold_labels)==self._data.shape[0]) or (self._gold_labels.shape[0]==0) + unique_labs = set(np.unique(self._gold_labels)) + # print(unique_labs) + # print(lab_vals) + # assert unique_labs.issubset(lab_vals) + assert (self._R.shape[0]==0) or (self._R.shape[0]==self._data.shape[0] and self._R.shape[1]==len(self._rules)) + def get_labels(self): """Applies LFs to the dataset to generate noisy labels and returns noisy labels and confidence scores @@ -127,7 +141,7 @@ def generate_pickle(self, filename=None): r=self._R # exemplars s=self._S # continuous scores - n=np.array([lf._is_cont for lf in self._rules.get_lfs()], dtype=bool) # lf continuous or not + n=np.array([lf._is_cont for lf in self._rules.get_lfs()]) # lf continuous or not k=np.array([lf._label.value for lf in self._rules.get_lfs()]) # lf associated to which class output = [x,l,m,L,d,r,s,n,k,self._num_classes] diff --git a/spear/labeling/requirements.txt b/spear/labeling/requirements.txt deleted file mode 100644 index 5984eb6..0000000 --- a/spear/labeling/requirements.txt +++ /dev/null @@ -1,8 +0,0 @@ -gensim==3.8.3 -numpy==1.19.5 -pkg-resources==0.0.0 -scipy==1.5.4 -six==1.15.0 -smart-open==4.2.0 -tqdm==4.57.0 -typing==3.7.4.3 diff --git a/spear/labeling/testing/.ipynb_checkpoints/lftest-checkpoint.ipynb b/spear/labeling/testing/.ipynb_checkpoints/lftest-checkpoint.ipynb deleted file mode 100644 index 6b5d57a..0000000 --- a/spear/labeling/testing/.ipynb_checkpoints/lftest-checkpoint.ipynb +++ /dev/null @@ -1,139 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "3it [00:00, 4048.56it/s]" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "works fine\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\n" - ] - } - ], - "source": [ - "from labeling.lf import *\n", - "from labeling.apply import *\n", - "from labeling.preprocess import *\n", - "from labeling.continuous_scoring import *\n", - "from labeling.noisy_labels import *\n", - "from labeling.lf_set import *\n", - "import numpy as np\n", - "\n", - "pre_resources={\"r0\":1.0}\n", - "\n", - "@preprocessor(resources=pre_resources)\n", - "def square(x,**kwargs):\n", - " return {\"value\":x*x*kwargs[\"r0\"]}\n", - "\n", - "cf_resources={\"r1\":4, \"r2\":8, \"len1\":4}\n", - "lf_resources={\"r3\":4, \"len2\":5}\n", - "\n", - "@continuous_scorer(resources=cf_resources)\n", - "def score(x, **kwargs):\n", - " t1=np.exp(-1*np.linalg.norm(x['value']))\n", - " t2=(kwargs[\"r1\"]+kwargs[\"r2\"])/(kwargs[\"len1\"]*kwargs[\"len1\"])\n", - " t3=kwargs[\"r3\"]/kwargs[\"len2\"]\n", - " return t1*t2*t3\n", - "\n", - "@labeling_function(pre=[square], resources=lf_resources, cont_scorer=score, label=0)\n", - "def lf1(x, **kwargs):\n", - " if np.linalg.norm(x['value']) < 1 and kwargs[\"r3\"]==4:\n", - " if (kwargs['continuous_score']>0.01): # can use continuous score inside now\n", - " return 0\n", - " return -1\n", - "\n", - "@labeling_function(pre=[square], label=1) # no continuous scorer specified\n", - "def lf2(x, **kwargs):\n", - " if np.linalg.norm(x['value']) < 1:\n", - " return 1\n", - " return -1\n", - "\n", - "## creating a RuleSet object with desired Labeling functions ##\n", - "lfs = [lf1, lf2]\n", - "# rules = LFSet(\"myrules\", lfs)\n", - "rules = LFSet(\"testrules\")\n", - "rules.add_lf_list(lfs)\n", - "# rules.add_lf(lf1)\n", - "# rules.add_lf(lf2)\n", - "\n", - "## Data ##\n", - "dataX = np.array([[0.7659027, 0.07041862, 0.67856597, 0.58097795],\n", - "[0.98964838, 0.29277118, 0.67217224, 0.69125625],\n", - "[0.25344225, 0.72530643, 0.52627362, 0.08560926]])\n", - "dataY = np.array([0, 1, 1])\n", - "\n", - "## Creating NoisyLabels class ##\n", - "test_data_noisy_labels = NoisyLabels(\"testdata\", dataX, dataY, rules)\n", - "\n", - "## Getting Noisy Labels ##\n", - "L,S = test_data_noisy_labels.get_labels()\n", - "\n", - "## Generating pickle file ##\n", - "test_data_noisy_labels.generate_pickle()\n", - "\n", - "# Checking correctness ##\n", - "if (next(iter(rules.get_lfs())) == lf1):\n", - " Lc=np.array([[0, 1],[-1, -1],[ 0, 1]])\n", - " Sc=np.array([[0.26463369, -1.],[-1.,-1.],[ 0.32993693, -1.]])\n", - "else:\n", - " Lc=np.array([[1, 0],[-1, -1],[1, 0]])\n", - " Sc=np.array([[-1., 0.26463369],[-1.,-1.],[-1., 0.32993693]])\n", - "\n", - "\n", - "\n", - "f=open(\"testdata_pickle\",\"rb\")\n", - "noisy_data = pickle.load(f)\n", - "\n", - "if np.allclose(Lc, noisy_data[\"l\"]) and np.allclose(Sc, noisy_data[\"s\"]):\n", - " print(\"works fine\")\n", - "else:\n", - " print(\"something went wrong\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.5" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/spear/labeling/testing/.ipynb_checkpoints/tutorial-checkpoint.ipynb b/spear/labeling/testing/.ipynb_checkpoints/tutorial-checkpoint.ipynb deleted file mode 100644 index fada0a0..0000000 --- a/spear/labeling/testing/.ipynb_checkpoints/tutorial-checkpoint.ipynb +++ /dev/null @@ -1,264 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "ename": "ModuleNotFoundError", - "evalue": "No module named 'preprocessor'", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mlabeling\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcontinuous_scoring\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0;32mfrom\u001b[0m \u001b[0mpreprocessor\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 6\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mlabeling\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlf_set\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mcon_scorer\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mword_similarity\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'preprocessor'" - ] - } - ], - "source": [ - "\n", - "from labeling.lf import *\n", - "from labeling.preprocess import *\n", - "from labeling.continuous_scoring import *\n", - "\n", - "from preprocessor import *\n", - "from labeling.lf_set import *\n", - "from con_scorer import word_similarity\n", - "\n", - "import numpy as np\n", - "import re" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "SPAM = 1\n", - "HAM = 0\n", - "ABSTAIN = 2\n", - "THRESHOLD = 0.8\n", - "\n", - "trigWord1 = {\"free\",\"credit\",\"cheap\",\"apply\",\"buy\",\"attention\",\"shop\",\"sex\",\"soon\",\"now\",\"spam\"}\n", - "trigWord2 = {\"gift\",\"click\",\"new\",\"online\",\"discount\",\"earn\",\"miss\",\"hesitate\",\"exclusive\",\"urgent\"}\n", - "trigWord3 = {\"cash\",\"refund\",\"insurance\",\"money\",\"guaranteed\",\"save\",\"win\",\"teen\",\"weight\",\"hair\"}\n", - "notFreeWords = {\"toll\",\"Toll\",\"freely\",\"call\",\"meet\",\"talk\",\"feedback\"}\n", - "notFreeSubstring = {\"not free\",\"you are\",\"when\",\"wen\"}\n", - "firstAndSecondPersonWords = {\"I\",\"i\",\"u\",\"you\",\"ur\",\"your\",\"our\",\"we\",\"us\",\"youre\"}\n", - "thirdPersonWords = {\"He\",\"he\",\"She\",\"she\",\"they\",\"They\",\"Them\",\"them\",\"their\",\"Their\"}" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "ename": "NameError", - "evalue": "name 'convert_to_lower' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;34m@\u001b[0m\u001b[0mlabeling_function\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresources\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkeywords\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtrigWord1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mpre\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mconvert_to_lower\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mlabel\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mSPAM\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mLF1\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mc\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"keywords\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mintersection\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msplit\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mSPAM\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mNameError\u001b[0m: name 'convert_to_lower' is not defined" - ] - } - ], - "source": [ - "@labeling_function(resources=dict(keywords=trigWord1),pre=[convert_to_lower],label=SPAM)\n", - "def LF1(c,**kwargs): \n", - " if len(kwargs[\"keywords\"].intersection(c.split())) > 0:\n", - " return SPAM\n", - " else:\n", - " return ABSTAIN\n", - "\n", - "@labeling_function(resources=dict(keywords=trigWord2),pre=[convert_to_lower],label=SPAM)\n", - "def LF2(c,**kwargs):\n", - " if len(kwargs[\"keywords\"].intersection(c.split())) > 0:\n", - " return SPAM\n", - " else:\n", - " return ABSTAIN\n", - "\n", - "@labeling_function(resources=dict(keywords=trigWord3),pre=[convert_to_lower],label=SPAM)\n", - "def LF3(c,**kwargs):\n", - " if len(kwargs[\"keywords\"].intersection(c.split())) > 0:\n", - " return SPAM\n", - " else:\n", - " return ABSTAIN\n", - "\n", - "@labeling_function(resources=dict(keywords=notFreeWords),pre=[convert_to_lower],label=HAM)\n", - "def LF4(c,**kwargs):\n", - " if \"free\" in c.split() and len(kwargs[\"keywords\"].intersection(c.split()))>0:\n", - " return HAM\n", - " else:\n", - " return ABSTAIN\n", - "\n", - "@labeling_function(resources=dict(keywords=notFreeSubstring),pre=[convert_to_lower],label=HAM)\n", - "def LF5(c,**kwargs):\n", - " for pattern in kwargs[\"keywords\"]: \n", - " if \"free\" in c.split() and re.search(pattern,c, flags= re.I):\n", - " return HAM\n", - " return ABSTAIN\n", - "\n", - "@labeling_function(resources=dict(keywords=firstAndSecondPersonWords),pre=[convert_to_lower],label=HAM)\n", - "def LF6(c,**kwargs):\n", - " if \"free\" in c.split() and len(kwargs[\"keywords\"].intersection(c.split()))>0:\n", - " return HAM\n", - " else:\n", - " return ABSTAIN\n", - "\n", - "\n", - "@labeling_function(resources=dict(keywords=thirdPersonWords),pre=[convert_to_lower],label=HAM)\n", - "def LF7(c,**kwargs):\n", - " if \"free\" in c.split() and len(kwargs[\"keywords\"].intersection(c.split()))>0:\n", - " return HAM\n", - " else:\n", - " return ABSTAIN\n", - "\n", - "@labeling_function(label=SPAM)\n", - "def LF8(c,**kwargs):\n", - " if (sum(1 for ch in c if ch.isupper()) > 6):\n", - " return SPAM\n", - " else:\n", - " return ABSTAIN\n", - "\n", - "# @labeling_function()\n", - "# def LF9(c,**kwargs):\n", - "# return HAM\n", - "\n", - "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=trigWord1),pre=[convert_to_lower],label=SPAM)\n", - "def CLF1(c,**kwargs):\n", - " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", - " return SPAM\n", - " else:\n", - " return ABSTAIN\n", - "\n", - "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=trigWord2),pre=[convert_to_lower],label=SPAM)\n", - "def CLF2(c,**kwargs):\n", - " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", - " return SPAM\n", - " else:\n", - " return ABSTAIN\n", - "\n", - "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=trigWord3),pre=[convert_to_lower],label=SPAM)\n", - "def CLF3(c,**kwargs):\n", - " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", - " return SPAM\n", - " else:\n", - " return ABSTAIN\n", - "\n", - "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=notFreeWords),pre=[convert_to_lower],label=HAM)\n", - "def CLF4(c,**kwargs):\n", - " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", - " return HAM\n", - " else:\n", - " return ABSTAIN\n", - "\n", - "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=notFreeSubstring),pre=[convert_to_lower],label=HAM)\n", - "def CLF5(c,**kwargs):\n", - " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", - " return HAM\n", - " else:\n", - " return ABSTAIN\n", - "\n", - "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=firstAndSecondPersonWords),pre=[convert_to_lower],label=HAM)\n", - "def CLF6(c,**kwargs):\n", - " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", - " return HAM\n", - " else:\n", - " return ABSTAIN\n", - "\n", - "@labeling_function(cont_scorer=word_similarity,resources=dict(keywords=thirdPersonWords),pre=[convert_to_lower],label=HAM)\n", - "def CLF7(c,**kwargs):\n", - " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", - " return HAM\n", - " else:\n", - " return ABSTAIN\n", - "\n", - "@labeling_function(cont_scorer=lambda x: 1-np.exp(float(-(sum(1 for ch in x if ch.isupper()))/2)),label=SPAM)\n", - "def CLF8(c,**kwargs):\n", - " if kwargs[\"continuous_score\"] >= THRESHOLD:\n", - " return SPAM\n", - " else:\n", - " return ABSTAIN\n", - "\n", - "# @labeling_function()\n", - "# def CLF9(c,**kwargs):\n", - "# return HAM\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "LFS = [LF1,\n", - " LF2,\n", - " LF3,\n", - " LF4,\n", - " LF5,\n", - " LF6,\n", - " LF7,\n", - " LF8,\n", - " CLF1,\n", - " CLF2,\n", - " CLF3,\n", - " CLF4,\n", - " CLF5,\n", - " CLF6,\n", - " CLF7,\n", - " CLF8]\n", - "\n", - "rules = LFSet(\"SPAM_LF\")\n", - "rules.add_lf_list(LFS)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "X, Y = load_data_to_numpy()\n", - "R = np.zeros((X.shape[0],len(rules.get_lfs())))\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "sms_noisy_labels = NoisyLabels(\"sms\",X,Y,rules,R)\n", - "L,S = sms_noisy_labels.get_labels()\n", - "sms_noisy_labels.generate_pickle()" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.5" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/spear/labeling/testing/cont_score_test.py b/spear/labeling/testing/cont_score_test.py deleted file mode 100644 index ab8bca3..0000000 --- a/spear/labeling/testing/cont_score_test.py +++ /dev/null @@ -1,47 +0,0 @@ -from labeling.lf import * -from labeling.apply import * -from labeling.preprocess import * -from labeling.continuous_scoring import * -import numpy as np - -@preprocessor() -def square(x): - return {"value":x*x} - -@continuous_scorer() -def score(x): - return np.exp(-1*np.linalg.norm(x['value'])) - -@labeling_function(pre=[square], cont_scorer=score, label=0) -def lf1(x, **kwargs): - if np.linalg.norm(x['value']) < 1: - return 0 - return -1 - -@labeling_function(pre=[square], label=0) # no continuous scorer specified -def lf2(x, **kwargs): - if np.linalg.norm(x['value']) < 1: - return 1 - return -1 - - -lfs = [lf1, lf2] -rules = LFSet("myrules") -rules.add_lf_list(lfs) -data = np.array([[0.0983969,0.52830115, 0.90600643, 0.24581662], [0.80224391, 0.69694779, 0.2144578, 0.56402219]]) - -applier = LFApplier(lf_set=rules) -L,S=applier.apply(data) - -if (next(iter(rules.get_lfs())) != lf1): - Lc=np.array([[1, 0], [1, 0]]) - Sc=np.array([[-1., 0.41930488],[-1., 0.41977896]]) -else: - Lc=np.array([[0, 1], [0, 1]]) - Sc=np.array([[0.41930488, -1.],[0.41977896, -1.]]) - -if (np.allclose(S,Sc) and np.allclose(L,Lc)): - print("works fine") -else: - print("something went wrong") - diff --git a/spear/labeling/testing/enum_test.py b/spear/labeling/testing/enum_test.py deleted file mode 100644 index 904a46f..0000000 --- a/spear/labeling/testing/enum_test.py +++ /dev/null @@ -1,78 +0,0 @@ -from labeling.lf import * -from labeling.apply import * -from labeling.preprocess import * -from labeling.continuous_scoring import * -from labeling.noisy_labels import * -from labeling.lf_set import * -import numpy as np -import enum, pickle, json - -# define the ClassLabels enum -class ClassLabels(enum.Enum): - SPAM = 1 - HAM = 0 - -# some useful resources -pre_resources={"r0":1.0} -cf_resources={"r1":4, "r2":8, "len1":4} -lf_resources={"r3":4, "len2":5} - -# define preprocessor -@preprocessor(resources=pre_resources) -def square(x,**kwargs): - return {"value":x*x*kwargs["r0"]} - -# define continuous scorer -@continuous_scorer(resources=cf_resources) -def score(x, **kwargs): - t1=np.exp(-1*np.linalg.norm(x['value'])) - t2=(kwargs["r1"]+kwargs["r2"])/(kwargs["len1"]*kwargs["len1"]) - t3=kwargs["r3"]/kwargs["len2"] - return t1*t2*t3 - -# define labeling function -@labeling_function(pre=[square], resources=lf_resources, cont_scorer=score, label=ClassLabels.HAM) -def lf1(x, **kwargs): - if np.linalg.norm(x['value']) < 1 and kwargs["r3"]==4: - return ClassLabels.HAM - return ABSTAIN - -@labeling_function(pre=[square], label=ClassLabels.SPAM) # no continuous scorer specified -def lf2(x, **kwargs): - if np.linalg.norm(x['value']) < 5: - return ClassLabels.SPAM - return ABSTAIN - -# create set of labeling functions to use for labeling the data -lfs = [lf1, lf2] -rules = LFSet("myrules") -rules.add_lf_list(lfs) - -# the data -dataX = np.array([[0.48166037, 0.57330743, 0.06621459, 0.3704664], - [0.99777641, 0.87790733, 0.67211584, 0.46130919]]) -dataY = np.array([0, 1]) - - -# create NoisyLabels instance -test_data_noisy_labels = NoisyLabels("testdata", dataX, dataY, rules, ClassLabels, num_classes = 2) - -# get noisy labels and confidence matrices -L,S = test_data_noisy_labels.get_labels() - -# create the label number to label name mapping json -test_data_noisy_labels.generate_json("enumjson") - -# checking -with open("enumjson", 'r') as f: - json_object = json.load(f) -print(json_object) - -# create pickle file containing noisy labels -test_data_noisy_labels.generate_pickle("enumpkl") - -# checking -f=open("enumpkl","rb") -noisy_data = pickle.load(f) -print(noisy_data["l"]) -print(noisy_data["s"]) \ No newline at end of file diff --git a/spear/labeling/testing/enumpkl b/spear/labeling/testing/enumpkl deleted file mode 100644 index 619934c..0000000 Binary files a/spear/labeling/testing/enumpkl and /dev/null differ diff --git a/spear/labeling/testing/lf_apply_test.py b/spear/labeling/testing/lf_apply_test.py deleted file mode 100644 index 57ea3eb..0000000 --- a/spear/labeling/testing/lf_apply_test.py +++ /dev/null @@ -1,37 +0,0 @@ -from labeling.lf import * -from labeling.apply import * -from labeling.preprocess import * -import numpy as np - -@preprocessor() -def square(x, **kwargs): - return {"value":x*x} - - -@labeling_function(pre=[square], label=0) -def func(x, **kwargs): - if x['value'] == 0: - return 0 - else: - return 1 - -@labeling_function(pre=[square]) -def func1(x): - if x['value'] == 0: - return 0 - else: - return 1 - -lfs = [func,func1] -rules = LFSet("myrules") -rules.add_lf_list(lfs) - -[print(x) for x in lfs] - -data = np.ones((5,1)) -applier = LFApplier(lf_set=rules) -L,S=applier.apply(data) -if np.allclose(L,np.ones((5,2))): - print("="*10+"Basic lf and apply testing is successfull"+"="*10) -else: - print("="*10+"Something went wrong"+"="*10) \ No newline at end of file diff --git a/spear/labeling/testing/lf_set_test.ipynb b/spear/labeling/testing/lf_set_test.ipynb deleted file mode 100644 index cbda435..0000000 --- a/spear/labeling/testing/lf_set_test.ipynb +++ /dev/null @@ -1,78 +0,0 @@ -from labeling.lf import * -from labeling.apply import * -from labeling.preprocess import * -from labeling.continuous_scoring import * -from labeling.noisy_labels import * -from labeling.lf_set import * -import numpy as np - -pre_resources={"r0":1.0} - -@preprocessor(resources=pre_resources) -def square(x,**kwargs): - return {"value":x*x*kwargs["r0"]} - -cf_resources={"r1":4, "r2":8, "len1":4} -lf_resources={"r3":4, "len2":5} - -@continuous_scorer(resources=cf_resources) -def score(x, **kwargs): - t1=np.exp(-1*np.linalg.norm(x['value'])) - t2=(kwargs["r1"]+kwargs["r2"])/(kwargs["len1"]*kwargs["len1"]) - t3=kwargs["r3"]/kwargs["len2"] - return t1*t2*t3 - -@labeling_function(pre=[square], resources=lf_resources, cont_scorer=score, label=0) -def lf1(x, **kwargs): - if np.linalg.norm(x['value']) < 1 and kwargs["r3"]==4: - if (kwargs['continuous_score']>0.01): # can use continuous score inside now - return 0 - return -1 - -@labeling_function(pre=[square], label=1) # no continuous scorer specified -def lf2(x, **kwargs): - if np.linalg.norm(x['value']) < 1: - return 1 - return -1 - -## creating a RuleSet object with desired Labeling functions ## -lfs = [lf1, lf2] -# rules = LFSet("myrules", lfs) -rules = LFSet("testrules") -rules.add_lf_list(lfs) -# rules.add_lf(lf1) -# rules.add_lf(lf2) - -## Data ## -dataX = np.array([[0.7659027, 0.07041862, 0.67856597, 0.58097795], -[0.98964838, 0.29277118, 0.67217224, 0.69125625], -[0.25344225, 0.72530643, 0.52627362, 0.08560926]]) -dataY = np.array([0, 1, 1]) - - -## Creating NoisyLabels class ## -test_data_noisy_labels = NoisyLabels("testdata", dataX, dataY, rules) - -## Getting Noisy Labels ## -L,S = test_data_noisy_labels.get_labels() - -## Generating pickle file ## -test_data_noisy_labels.generate_pickle() - -# Checking correctness ## -if (next(iter(rules.get_lfs())) == lf1): - Lc=np.array([[0, 1],[-1, -1],[ 0, 1]]) - Sc=np.array([[0.26463369, -1.],[-1.,-1.],[ 0.32993693, -1.]]) -else: - Lc=np.array([[1, 0],[-1, -1],[1, 0]]) - Sc=np.array([[-1., 0.26463369],[-1.,-1.],[-1., 0.32993693]]) - - - -f=open("testdata_pickle","rb") -noisy_data = pickle.load(f) - -if np.allclose(Lc, noisy_data["l"]) and np.allclose(Sc, noisy_data["s"]): - print("works fine") -else: - print("something went wrong") \ No newline at end of file diff --git a/spear/labeling/testing/lf_set_test.py b/spear/labeling/testing/lf_set_test.py deleted file mode 100644 index 248b5ae..0000000 --- a/spear/labeling/testing/lf_set_test.py +++ /dev/null @@ -1,80 +0,0 @@ -from labeling.lf import * -from labeling.apply import * -from labeling.preprocess import * -from labeling.continuous_scoring import * -from labeling.noisy_labels import * -from labeling.lf_set import * - -from preprocessor import * - -import numpy as np - -pre_resources={"r0":1.0} - -@preprocessor(resources=pre_resources) -def square(x,**kwargs): - return {"value":x*x*kwargs["r0"]} - -cf_resources={"r1":4, "r2":8, "len1":4} -lf_resources={"r3":4, "len2":5} - -@continuous_scorer(resources=cf_resources) -def score(x, **kwargs): - t1=np.exp(-1*np.linalg.norm(x['value'])) - t2=(kwargs["r1"]+kwargs["r2"])/(kwargs["len1"]*kwargs["len1"]) - t3=kwargs["r3"]/kwargs["len2"] - return t1*t2*t3 - -@labeling_function(pre=[square], resources=lf_resources, cont_scorer=score, label=0) -def lf1(x, **kwargs): - if np.linalg.norm(x['value']) < 1 and kwargs["r3"]==4: - if (kwargs['continuous_score']>0.01): # can use continuous score inside now - return 0 - return -1 - -@labeling_function(pre=[square], label=1) # no continuous scorer specified -def lf2(x, **kwargs): - if np.linalg.norm(x['value']) < 1: - return 1 - return -1 - -## creating a RuleSet object with desired Labeling functions ## -lfs = [lf1, lf2] -# rules = LFSet("myrules", lfs) -rules = LFSet("testrules") -rules.add_lf_list(lfs) -# rules.add_lf(lf1) -# rules.add_lf(lf2) - -## Data ## -dataX = np.array([[0.7659027, 0.07041862, 0.67856597, 0.58097795], -[0.98964838, 0.29277118, 0.67217224, 0.69125625], -[0.25344225, 0.72530643, 0.52627362, 0.08560926]]) -dataY = np.array([0, 1, 1]) - -## Creating NoisyLabels class ## -test_data_noisy_labels = NoisyLabels("testdata", dataX, dataY, rules) - -## Getting Noisy Labels ## -L,S = test_data_noisy_labels.get_labels() - -## Generating pickle file ## -test_data_noisy_labels.generate_pickle() - -# Checking correctness ## -if (next(iter(rules.get_lfs())) == lf1): - Lc=np.array([[0, 1],[-1, -1],[ 0, 1]]) - Sc=np.array([[0.26463369, -1.],[-1.,-1.],[ 0.32993693, -1.]]) -else: - Lc=np.array([[1, 0],[-1, -1],[1, 0]]) - Sc=np.array([[-1., 0.26463369],[-1.,-1.],[-1., 0.32993693]]) - - - -f=open("testdata_pickle","rb") -noisy_data = pickle.load(f) - -if np.allclose(Lc, noisy_data["l"]) and np.allclose(Sc, noisy_data["s"]): - print("works fine") -else: - print("something went wrong") \ No newline at end of file diff --git a/spear/labeling/testing/lftest.ipynb b/spear/labeling/testing/lftest.ipynb deleted file mode 100644 index 757e0d9..0000000 --- a/spear/labeling/testing/lftest.ipynb +++ /dev/null @@ -1,130 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "ename": "ModuleNotFoundError", - "evalue": "No module named 'preprocessor'", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mlabeling\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnoisy_labels\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mlabeling\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlf_set\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 7\u001b[0;31m \u001b[0;32mfrom\u001b[0m \u001b[0mpreprocessor\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 8\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mnumpy\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'preprocessor'" - ] - } - ], - "source": [ - "from labeling.lf import *\n", - "from labeling.apply import *\n", - "from labeling.preprocess import *\n", - "from labeling.continuous_scoring import *\n", - "from labeling.noisy_labels import *\n", - "from labeling.lf_set import *\n", - "from preprocessor import *\n", - "import numpy as np\n", - "\n", - "pre_resources={\"r0\":1.0}\n", - "\n", - "@preprocessor(resources=pre_resources)\n", - "def square(x,**kwargs):\n", - " return {\"value\":x*x*kwargs[\"r0\"]}\n", - "\n", - "cf_resources={\"r1\":4, \"r2\":8, \"len1\":4}\n", - "lf_resources={\"r3\":4, \"len2\":5}\n", - "\n", - "@continuous_scorer(resources=cf_resources)\n", - "def score(x, **kwargs):\n", - " t1=np.exp(-1*np.linalg.norm(x['value']))\n", - " t2=(kwargs[\"r1\"]+kwargs[\"r2\"])/(kwargs[\"len1\"]*kwargs[\"len1\"])\n", - " t3=kwargs[\"r3\"]/kwargs[\"len2\"]\n", - " return t1*t2*t3\n", - "\n", - "@labeling_function(pre=[square], resources=lf_resources, cont_scorer=score, label=0)\n", - "def lf1(x, **kwargs):\n", - " if np.linalg.norm(x['value']) < 1 and kwargs[\"r3\"]==4:\n", - " if (kwargs['continuous_score']>0.01): # can use continuous score inside now\n", - " return 0\n", - " return -1\n", - "\n", - "@labeling_function(pre=[square], label=1) # no continuous scorer specified\n", - "def lf2(x, **kwargs):\n", - " if np.linalg.norm(x['value']) < 1:\n", - " return 1\n", - " return -1\n", - "\n", - "## creating a RuleSet object with desired Labeling functions ##\n", - "lfs = [lf1, lf2]\n", - "# rules = LFSet(\"myrules\", lfs)\n", - "rules = LFSet(\"testrules\")\n", - "rules.add_lf_list(lfs)\n", - "# rules.add_lf(lf1)\n", - "# rules.add_lf(lf2)\n", - "\n", - "## Data ##\n", - "dataX = np.array([[0.7659027, 0.07041862, 0.67856597, 0.58097795],\n", - "[0.98964838, 0.29277118, 0.67217224, 0.69125625],\n", - "[0.25344225, 0.72530643, 0.52627362, 0.08560926]])\n", - "dataY = np.array([0, 1, 1])\n", - "\n", - "## Creating NoisyLabels class ##\n", - "test_data_noisy_labels = NoisyLabels(\"testdata\", dataX, dataY, rules)\n", - "\n", - "## Getting Noisy Labels ##\n", - "L,S = test_data_noisy_labels.get_labels()\n", - "\n", - "## Generating pickle file ##\n", - "test_data_noisy_labels.generate_pickle()\n", - "\n", - "# Checking correctness ##\n", - "if (next(iter(rules.get_lfs())) == lf1):\n", - " Lc=np.array([[0, 1],[-1, -1],[ 0, 1]])\n", - " Sc=np.array([[0.26463369, -1.],[-1.,-1.],[ 0.32993693, -1.]])\n", - "else:\n", - " Lc=np.array([[1, 0],[-1, -1],[1, 0]])\n", - " Sc=np.array([[-1., 0.26463369],[-1.,-1.],[-1., 0.32993693]])\n", - "\n", - "\n", - "\n", - "f=open(\"testdata_pickle\",\"rb\")\n", - "noisy_data = pickle.load(f)\n", - "\n", - "if np.allclose(Lc, noisy_data[\"l\"]) and np.allclose(Sc, noisy_data[\"s\"]):\n", - " print(\"works fine\")\n", - "else:\n", - " print(\"something went wrong\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.5" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/spear/labeling/testing/pickle_test.py b/spear/labeling/testing/pickle_test.py deleted file mode 100644 index 02bd76d..0000000 --- a/spear/labeling/testing/pickle_test.py +++ /dev/null @@ -1,62 +0,0 @@ -from labeling.lf import * -from labeling.apply import * -from labeling.preprocess import * -from labeling.continuous_scoring import * -from labeling.noisy_labels import * - -import numpy as np - -pre_resources={"r0":1.0} - -@preprocessor(resources=pre_resources) -def square(x,**kwargs): - return {"value":x*x*kwargs["r0"]} - -cf_resources={"r1":4, "r2":8, "len1":4} -lf_resources={"r3":4, "len2":5} - -@continuous_scorer(resources=cf_resources) -def score(x, **kwargs): - t1=np.exp(-1*np.linalg.norm(x['value'])) - t2=(kwargs["r1"]+kwargs["r2"])/(kwargs["len1"]*kwargs["len1"]) - t3=kwargs["r3"]/kwargs["len2"] - return t1*t2*t3 - -@labeling_function(pre=[square], resources=lf_resources, cont_scorer=score, label=0) -def lf1(x, **kwargs): - if np.linalg.norm(x['value']) < 1 and kwargs["r3"]==4: - return 0 - return -1 - -@labeling_function(pre=[square], label=1) # no continuous scorer specified -def lf2(x, **kwargs): - if np.linalg.norm(x['value']) < 1: - return 1 - return -1 - -lfs = [lf1, lf2] -rules = LFSet("myrules") -rules.add_lf_list(lfs) - -dataX = np.array([[0.14912444, 0.83544616, 0.61849807, 0.43523642], - [0.14795163, 0.9986555, 0.27234144, 0.87403315]]) -dataY = np.array([0, 1]) - -test_data_noisy_labels = NoisyLabels("testdata", dataX, dataY, rules) -L,S = test_data_noisy_labels.get_labels() -test_data_noisy_labels.generate_pickle() - -if (next(iter(rules.get_lfs())) == lf1): - Lc=np.array([[0, 1],[-1, -1]]) - Sc=np.array([[0.2646661, -1.],[-1.,-1.]]) -else: - Lc=np.array([[1, 0],[-1, -1]]) - Sc=np.array([[-1., 0.2646661],[-1.,-1.]]) - -f=open("testdata_pickle","rb") -noisy_data = pickle.load(f) - -if np.allclose(Lc, noisy_data["l"]) and np.allclose(Sc, noisy_data["s"]): - print("works fine") -else: - print("something went wrong") \ No newline at end of file diff --git a/spear/labeling/testing/preprocessor_test.py b/spear/labeling/testing/preprocessor_test.py deleted file mode 100644 index 51f76d8..0000000 --- a/spear/labeling/testing/preprocessor_test.py +++ /dev/null @@ -1,14 +0,0 @@ -from labeling.preprocess import * - -@preprocessor() -def square(x): - return x*x - -print("Preprocessor function declaration is done") - -print(square) - -if square(5) == 5*5: - print("="*10+"Basic preprocessor testing is successfull"+"="*10) -else: - print("="*10+"Something went wrong"+"="*10) diff --git a/spear/labeling/testing/resources_testing.py b/spear/labeling/testing/resources_testing.py deleted file mode 100644 index 1ecd0f5..0000000 --- a/spear/labeling/testing/resources_testing.py +++ /dev/null @@ -1,56 +0,0 @@ -from labeling.lf import * -from labeling.apply import * -from labeling.preprocess import * -from labeling.continuous_scoring import * -import numpy as np - -pre_resources={"r0":1.0} - -@preprocessor(resources=pre_resources) -def square(x,**kwargs): - return {"value":x*x*kwargs["r0"]} - -cf_resources={"r1":4, "r2":8, "len1":4} -lf_resources={"r3":4, "len2":5} - -@continuous_scorer(resources=cf_resources) -def score(x, **kwargs): - t1=np.exp(-1*np.linalg.norm(x['value'])) - t2=(kwargs["r1"]+kwargs["r2"])/(kwargs["len1"]*kwargs["len1"]) - t3=kwargs["r3"]/kwargs["len2"] - return t1*t2*t3 - -@labeling_function(pre=[square], resources=lf_resources, cont_scorer=score, label=0) -def lf1(x, **kwargs): - if np.linalg.norm(x['value']) < 1 and kwargs["r3"]==4: - return 0 - return -1 - -@labeling_function(pre=[square], label=1) # no continuous scorer specified -def lf2(x, **kwargs): - if np.linalg.norm(x['value']) < 1: - return 1 - return -1 - -lfs = [lf1, lf2] -rules = LFSet("myrules") -rules.add_lf_list(lfs) - -dataX = np.array([[0.14912444, 0.83544616, 0.61849807, 0.43523642], - [0.14795163, 0.9986555, 0.27234144, 0.87403315]]) -dataY = np.array([0, 1]) -applier = LFApplier(lf_set=rules) -L,S=applier.apply(dataX) - -if (next(iter(rules.get_lfs())) == lf1): - Lc=np.array([[0, 1],[-1, -1]]) - Sc=np.array([[0.2646661, -1.],[-1.,-1.]]) -else: - Lc=np.array([[1, 0],[-1, -1]]) - Sc=np.array([[-1., 0.2646661],[-1.,-1.]]) - -if (np.allclose(S,Sc) and np.allclose(L,Lc)): - print("works fine") -else: - print("something went wrong") - diff --git a/spear/labeling/testing/testdata_pickle b/spear/labeling/testing/testdata_pickle deleted file mode 100644 index 71c471a..0000000 Binary files a/spear/labeling/testing/testdata_pickle and /dev/null differ diff --git a/spear/labeling/utils/generation/DeepLSTM.py b/spear/labeling/utils/generation/DeepLSTM.py new file mode 100644 index 0000000..c49fd37 --- /dev/null +++ b/spear/labeling/utils/generation/DeepLSTM.py @@ -0,0 +1,135 @@ +import torch.nn as nn +import torch.nn.functional as F +from keras.layers import Embedding +from keras.preprocessing import sequence +from keras.preprocessing.text import Tokenizer +from keras.utils import pad_sequences +from sklearn.linear_model import LogisticRegression +import torch +from torch.utils.data import TensorDataset, DataLoader +from tqdm import tqdm +import numpy as np +use_cuda = torch.cuda.is_available() +device = torch.device("cuda" if use_cuda else "cpu") +print(device) + +class MakeTokens(): + def __init__(self): + self.max_sentence_length = 500 + self.embedding_vector_length = 32 + + def make(self,train_text, val_text, test_text): + tokenizer = Tokenizer() + tokenizer.fit_on_texts(train_text) + tokenizer.fit_on_texts(val_text) + tokenizer.fit_on_texts(test_text) + X_train = tokenizer.texts_to_sequences(train_text) + X_val = tokenizer.texts_to_sequences(val_text) + X_test = tokenizer.texts_to_sequences(test_text) + + X_train = pad_sequences(X_train, maxlen=self.max_sentence_length) + X_val = pad_sequences(X_val, maxlen=self.max_sentence_length) + X_test = pad_sequences(X_test, maxlen=self.max_sentence_length) + vocab_size=len(tokenizer.word_index) + 1 + return X_train, X_val, X_test, vocab_size, self.embedding_vector_length, self.max_sentence_length + + +class DeepNet(nn.Module): + def __init__(self, input_size, hidden_size, output_size): + super(DeepNet, self).__init__() + self.linear_1 = nn.Linear(input_size, hidden_size) + self.linear_2 = nn.Linear(hidden_size, hidden_size) + # self.linear_3 = nn.Linear(hidden_size, hidden_size) + # self.linear_4 = nn.Linear(hidden_size, hidden_size) + self.out = nn.Linear(hidden_size, output_size) + self.sig = nn.Sigmoid() + + def forward(self, x): + out = F.relu(self.linear_1(x)) + out = F.relu(self.linear_2(out)) + # out = F.relu(self.linear_3(out)) + # out = F.relu(self.linear_4(out)) + out = self.out(out) + out = self.sig(out) + # print(out[0:5]) + return out#[:,0] + + +class DeepLSTM(nn.Module): + def __init__(self, vocab_size, embedding_vector_length, max_sentence_length, num_classes=1): + super(DeepLSTM, self).__init__() + self.hidden_size = 100 + self.embedding_vector_length = embedding_vector_length + self.max_sentence_length = max_sentence_length + self.emb = nn.Embedding(vocab_size, embedding_dim = self.embedding_vector_length) + self.lstm1 = nn.LSTM(input_size = embedding_vector_length, hidden_size = self.hidden_size, batch_first=True) + self.out = nn.Linear(self.hidden_size, num_classes) + self.sig = nn.Sigmoid() + + def forward(self, x): + emb = self.emb(x) + # print('emb.shape', emb.shape) + # x = emb.trans pose(0,1) + x,_ = self.lstm1(emb) + x = x[:,-1,:] + # print('x.shape', x.shape) + # x = x.view(-1, 50000) + x = self.out(x) + x = self.sig(x) + return x + + def get_embedding(self, x): + return self.emb(x).view(-1, self.max_sentence_length*self.embedding_vector_length) + +def lstm_simple(mode, X_train, y_train, X_test, y_test, vocab_size=768, embedding_vector_length = 32\ + , max_sentence_length=500, bs=32, epochs=15, num_feats = 500): + + + X_train = torch.tensor(X_train) + X_test = torch.tensor(X_test) + y_train = torch.tensor(y_train) + # print(y_train) + bs = bs + dataset = TensorDataset(X_train, y_train) + loader = DataLoader(dataset, batch_size=bs, shuffle=True) + if mode == "lstm" or mode =='feat_lstm': + model = DeepLSTM(vocab_size, embedding_vector_length, max_sentence_length).to(device=device) #n_features, n_hidden, n_classes + supervised_criterion = torch.nn.BCELoss() + elif mode == "nn": + model = DeepNet(num_feats, 512, 1).to(device=device) + supervised_criterion = torch.nn.BCELoss() + optimizer_lr = torch.optim.Adam(model.parameters(), lr= 0.0003) + # print(model.summary()) + + epochs = epochs + + for i in tqdm(range(epochs)): + model.train() + # loss = 0 + for batch_ndx, sample in enumerate(loader): + for i in range(len(sample)): + sample[i] = sample[i].to(device=device) + # sample[1] = sample[1].reshape(-1) + # print(sample[1]) + if mode =='lstm'or mode =='feat_lstm': + loss = supervised_criterion(model(sample[0]), sample[1]) + elif mode == 'nn': + loss = supervised_criterion(model(sample[0].float()), sample[1]) + # print(loss) + loss.backward() + optimizer_lr.step() + # print('Loss ', loss) + + + + if mode == "lstm" or mode =='feat_lstm': + probs = model(X_test.to(device=device)) + y_pred = probs.cpu().detach().numpy() #np.argmax(probs.cpu().detach().numpy(), 1) + elif mode =='nn': + probs = model(X_test.float().to(device=device)) + y_pred = probs.cpu().detach().numpy()#np.argmax(probs.cpu().detach().numpy(), 1) + + # model.fit(X_train, y_train, validation_data=(X_test, y_test), epochs=n, batch_size=bs) + + + return y_pred \ No newline at end of file diff --git a/spear/labeling/utils/generation/__init__.py b/spear/labeling/utils/generation/__init__.py new file mode 100644 index 0000000..0393e80 --- /dev/null +++ b/spear/labeling/utils/generation/__init__.py @@ -0,0 +1,4 @@ +from .heuristic_generator import HeuristicGenerator +from .synthesizer import Synthesizer +from .DeepLSTM import * +from .others import * \ No newline at end of file diff --git a/spear/labeling/utils/generation/greedy_filtering_GraphCut.py b/spear/labeling/utils/generation/greedy_filtering_GraphCut.py new file mode 100644 index 0000000..da4a978 --- /dev/null +++ b/spear/labeling/utils/generation/greedy_filtering_GraphCut.py @@ -0,0 +1,151 @@ + +import pandas as pd +import numpy as np +import matplotlib.pyplot as plt +import itertools +from itertools import combinations, chain +import math +from statistics import mean +import os +import pickle +from submodlib import FacilityLocationFunction +from submodlib import GraphCutFunction +from submodlib import SetCoverFunction + +import warnings +warnings.filterwarnings("ignore") + + +def greedy_lf_generation(train_metric, val_metric, val_ground, max_lfs, w=3, gamma = 0.3): + ''' + input: + train_metric : num_instance x num_LFs matrix + val_metric : num_instance x num_LFs matrix + val_ground : gold labels on validation set + max_lfs : maximum number of LFs to return as subset + + return : dictionary where key correspond to index of train_L and value is the corresponding label assigned by LF + + Stopping condition is either coverage on labeled set is 100% or max_lfs gets exhausted. + ABSTAIN should be equal to 0. + ''' + len_train_ground = train_metric.shape[0] + df2=pd.DataFrame(train_metric) + df4=pd.DataFrame(val_metric) + accuracy=[] + for i in range(val_metric.shape[1]): + correct_label=0 + total_labeled=0 + for j in range(val_metric.shape[0]): + if val_metric[j][i]==val_ground[j]: + correct_label+=1 + total_labeled+=1 + elif val_metric[j][i]!=0: + total_labeled+=1 + if total_labeled>0: + accuracy.append(correct_label/total_labeled) + else: + accuracy.append(0) + index=list([i for i in range(df2.shape[1])]) + + coverage_indi=[] + for j in list(itertools.combinations(index,1)): + a=list(j) + sum1=0 + total = df2[a].sum(axis=1) + for i in total: + if i!=0: + sum1 = sum1+1 + coverage_indi.append(sum1) + + def findworth(score,idxs,w): + accurac=0 + comb_v=[] + for i in idxs: + comb_v.append(score[i]) + accurac=sum(comb_v) + total=df2[idxs].sum(axis=1) + total1=df4[idxs].sum(axis=1) + cov_unlabel=0 + cov_label=0 + for i in list(total): + if i!=0: + cov_unlabel+=1 + for j in list(total1): + if j!=0: + cov_label+=1 + + worth=accurac + (w)*(cov_unlabel/len_train_ground) + return worth , cov_unlabel/len_train_ground, cov_label/len(val_ground), accurac + + def find_agreement(df, idxs): + conflict = 0 + for i in range(df.shape[0]): + s = np.array(df.iloc[i, idxs]) + uniques = np.unique(s) + if len(uniques) > 2: + conflict+=1 + else: + pass + conflicts = conflict / df.shape[0] + return 1 - conflicts + + def Matrix(i,j): + if i==j: + return 1 + else: + return findworth(accuracy, [i,j], w=3)[0] + gamma*find_agreement(df2, [i,j]) + + s_ij= np.eye(df4.shape[1]) + for i in range(df4.shape[1]): + for j in range(df4.shape[1]): + if i != j: + s_ij[i][j] = Matrix(i,j) + else: + pass + + s_ij_data= np.zeros((df4.shape[1],2)) + for i in range(df4.shape[1]): + s_ij_data[i][0]+=accuracy[i] + #print(coverage_indi[i]) + s_ij_data[i][1]+=coverage_indi[i] + + # obj = FacilityLocationFunction(n=df4.shape[1], mode='dense', separate_rep=None, n_rep=None, sijs=None, data=s_ij_data, data_rep=None, metric='cosine', num_neighbors=None, create_dense_cpp_kernel_in_python=True) + # greedyLis = obj.maximize(budget = 16, optimizer = 'NaiveGreedy',stopIfZeroGain=False, stopIfNegativeGain=False) + + obj = GraphCutFunction(n=df4.shape[1], mode = 'dense', lambdaVal=0.7, separate_rep=False, mgsijs=s_ij, data=None, metric='cosine', num_neighbors=None) + greedyLis = obj.maximize(budget = max_lfs, optimizer = 'NaiveGreedy',stopIfZeroGain=False, stopIfNegativeGain=False) + + + best_set = [] + for i in greedyLis: + best_set.append(i[0]) + print(best_set) + + df6=df2[best_set] + + num_classes = len(np.unique(val_ground)) + + my_labels=val_metric[:,best_set] + + el = list(range(1,num_classes)) + el.append(-1) + labels_lfs = [] + for i in range(my_labels.shape[1]): + for j in el: + if len(np.where(my_labels.T[i]==j)[0]) > 0: + labels_lfs.append(j) + break + + print("The best set is", best_set ,"\n Classes of Lfs are", labels_lfs) + print('len(final_set) ', len(best_set)) + print('len (labels_lfs)', len(labels_lfs)) + final = {} + + assert len(best_set) == len(labels_lfs) + labels_lfs = [0 if x == -1 else x for x in labels_lfs] + for i, j in zip(best_set, labels_lfs): + final[i] = j + return final + + diff --git a/spear/labeling/utils/generation/heuristic_generator.py b/spear/labeling/utils/generation/heuristic_generator.py new file mode 100644 index 0000000..d3d4837 --- /dev/null +++ b/spear/labeling/utils/generation/heuristic_generator.py @@ -0,0 +1,377 @@ +import numpy as np +import pandas as pd +from sklearn.metrics import f1_score +import random +from .synthesizer import Synthesizer +from .verifier import Verifier + +class HeuristicGenerator(object): + """ + A class to go through the synthesizer-verifier loop + """ + + def __init__(self, train_primitive_matrix, val_primitive_matrix, test_primitive_matrix, + test_ground, val_ground, train_ground=None, b=0.5): + """ + Initialize HeuristicGenerator object + + b: class prior of most likely class (TODO: use somewhere) + beta: threshold to decide whether to abstain or label for heuristics + gamma: threshold to decide whether to call a point vague or not + """ + + self.train_primitive_matrix = train_primitive_matrix + self.val_primitive_matrix = val_primitive_matrix + self.val_ground = val_ground + self.train_ground = train_ground + self.test_primitive_matrix = test_primitive_matrix + self.test_ground = test_ground + + self.num_classes = len(np.unique(self.train_ground)) + self.b = 1/(self.num_classes) + print('self.b', self.b) + + self.vf = None + self.syn = None + self.hf = [] + self.feat_combos = [] + self.val_lfs = [] + self.train_lfs = [] + self.all_idx = set() +# self.test_lfs = [] + + def apply_heuristics(self, heuristics, primitive_matrix, feat_combos, beta_opt): + """ + Apply given heuristics to given feature matrix X and abstain by beta + + heuristics: list of pre-trained logistic regression models + feat_combos: primitive indices to apply heuristics to + beta: best beta value for associated heuristics + """ + + def marginals_to_labels(hf,X,beta): +# print('X.shape',X.shape) +# marginals = hf.predict_proba(X)[:,-1] +# print(marginals.shape) + prob_classes = hf.predict_proba(X) #Ayush +# print(self.b + beta) +# print(prob_classes[0:10]) +# exit() +# labels_cutoff = np.zeros(prob_classes.shape[0]) #Ayush +# labels_cutoff = np.zeros(np.shape(marginals)) #normal +# print('X', X.shape, 'prob_classes.shape',prob_classes.shape) +# for i in range(prob_classes.shape[0]): #Ayush + marginals = np.max(prob_classes, axis=1) #Ayush +# cls = np.argmax(prob_classes[i,:])#+1 #Ayush + labels_cutoff = np.argmax(prob_classes, axis=1) + labels_cutoff[labels_cutoff == 0] = -1 + labels_cutoff[np.logical_and((self.b -beta) <= marginals, marginals <= (self.b + beta))] = 0#self.num_classes + +# labels_cutoff[marginals <= (self.b-beta)] = -1. #normal +# labels_cutoff[marginals >= (self.b+beta)] = 1. #normal +# labels_cutoff[marginals >= (self.b+beta)] = cls #Ayush + +# if marginals <= (self.b-beta): #ayush +# labels_cutoff[i] = -1 +# # labels_cutoff[i] = -1. #ayush +# if marginals >= (self.b + beta): +# if cls != 1: +# labels_cutoff[i] = -1 +# else: +# labels_cutoff[i] = cls + +# if marginals >= (self.b+beta): +# print('prob_classes[i,:], marginals,cls', prob_classes[i,:], marginals,cls, labels_cutoff[i],i) +# exit() + +# print(marginals.shape) +# print('self.b-beta',self.b-beta) +# print('self.b+beta',self.b+beta) +# labels_cutoff = np.zeros(np.shape(marginals)) +# labels_cutoff[marginals <= (self.b-beta)] = -1. +# labels_cutoff[marginals >= (self.b+beta)] = 1. + return labels_cutoff + + L = np.zeros((np.shape(primitive_matrix)[0],len(heuristics))) + try: + uu = [] + for i in feat_combos: + uu.append(i[0]) +# print('uu', uu) + except: + f = feat_combos + feat_combos = [] + feat_combos.append(f) + for i,hf in enumerate(heuristics): + if type(feat_combos[i]) is not tuple: + feat_combos[i] = (feat_combos[i],) + L[:,i] = marginals_to_labels(hf,primitive_matrix[:,feat_combos[i]],beta_opt[i]) + + self.labels = L + return L + + def prune_heuristics(self,heuristics,feat_combos,keep=1, mode='normal'): + """ + Selects the best heuristic based on Jaccard Distance and Reliability Metric + + keep: number of heuristics to keep from all generated heuristics + """ + + def calculate_jaccard_distance(num_labeled_total, num_labeled_L): +# print('num_labeled_total',num_labeled_total) +# print('num_labeled_L',num_labeled_L) + scores = np.zeros(np.shape(num_labeled_L)[1]) + for i in range(np.shape(num_labeled_L)[1]): + scores[i] = np.sum(np.minimum(num_labeled_L[:,i],num_labeled_total))/np.sum(np.maximum(num_labeled_L[:,i],num_labeled_total)) + return 1-scores + + L_val = np.array([]) + L_train = np.array([]) + beta_opt = np.array([]) + max_cardinality = len(heuristics) + for i in range(max_cardinality): +# print(len(heuristics[i]),'heuristics[i].shape') +# print(len(feat_combos[i]),'feat_combos[i].shape') + #Note that the LFs are being applied to the entire val set though they were developed on a subset... + beta_opt_temp = self.syn.find_optimal_beta(heuristics[i], self.val_primitive_matrix, feat_combos[i], self.val_ground) + L_temp_val = self.apply_heuristics(heuristics[i], self.val_primitive_matrix, feat_combos[i], beta_opt_temp) + self.val_lfs = L_temp_val + L_temp_train = self.apply_heuristics(heuristics[i], self.train_primitive_matrix, feat_combos[i], beta_opt_temp) + self.train_lfs = L_temp_train + + L_temp_test = self.apply_heuristics(heuristics[i], self.test_primitive_matrix, feat_combos[i], beta_opt_temp) + self.test_lfs = L_temp_test + + beta_opt = np.append(beta_opt, beta_opt_temp) + if i == 0: + L_val = np.append(L_val, L_temp_val) #converts to 1D array automatically + L_val = np.reshape(L_val,np.shape(L_temp_val)) + L_train = np.append(L_train, L_temp_train) #converts to 1D array automatically + L_train = np.reshape(L_train,np.shape(L_temp_train)) + else: + L_val = np.concatenate((L_val, L_temp_val), axis=1) + L_train = np.concatenate((L_train, L_temp_train), axis=1) + + #Use F1 trade-off for reliability + acc_cov_scores = [f1_score(self.val_ground, L_val[:,i], average='weighted') for i in range(np.shape(L_val)[1])] + acc_cov_scores = np.nan_to_num(acc_cov_scores) + + if self.vf != None: + #Calculate Jaccard score for diversity + train_num_labeled = np.sum(np.abs(self.vf.L_train.T), axis=0) + jaccard_scores = calculate_jaccard_distance(train_num_labeled,np.abs(L_train)) +# print(jaccard_scores) + else: + jaccard_scores = np.ones(np.shape(acc_cov_scores)) + + #Weighting the two scores to find best heuristic + combined_scores = 0.5*acc_cov_scores + 0.5*jaccard_scores + if mode == 'random': + tmp = np.argsort(combined_scores)[::-1] #ayush + sort_idx = random.sample(range(0,len(tmp)), keep) #ayush for random + else: + sort_idx = np.argsort(combined_scores)[::-1][0:keep] + # print('max_cardinality', sort_idx) + + return sort_idx + + + def run_synthesizer(self, max_cardinality=1, idx=None, keep=1, model='lr', mode='normal'): + """ + Generates Synthesizer object and saves all generated heuristics + + max_cardinality: max number of features candidate programs take as input + idx: indices of validation set to fit programs over + keep: number of heuristics to pass to verifier + model: train logistic regression ('lr') or decision tree ('dt') + """ + if idx == None: + primitive_matrix = self.val_primitive_matrix + ground = self.val_ground + else: + primitive_matrix = self.val_primitive_matrix[idx,:] + ground = self.val_ground[idx] + + + #Generate all possible heuristics + self.syn = Synthesizer(primitive_matrix, ground, b=self.b) + + #Un-flatten indices + def index(a, inp): + i = 0 + remainder = 0 + while inp >= 0: + remainder = inp + inp -= len(a[i]) + i+=1 + try: + return a[i-1][remainder] #TODO: CHECK THIS REMAINDER THING WTF IS HAPPENING + except: + import pdb; pdb.set_trace() + + #Select keep best heuristics from generated heuristics + hf, feat_combos = self.syn.generate_heuristics(model, max_cardinality) +# print(len(hf[0]), 'length of hf') + for m in range(max_cardinality): + if len(self.all_idx) > 0: + +# rmv = list(self.all_idx) + self.all_idx = list(self.all_idx) + # print('length of hf', len(hf[m])) +# print('hf[m]', hf[m]) +# print('self.all_idx', self.all_idx) + + tmp = np.asarray(self.all_idx) + rmv = np.where(tmp < len(hf[m])) + # print('sort_idx', rmv) + h = np.delete(hf[m],tmp[rmv]) + hf[m] = [] + for i in h: + hf[m].append(i) + + # feats = np.delete(feat_combos[m], tmp[rmv]) + # feat_combos[m] = [] + # for i in feats: + # feat_combos[m].append(i) + + # print('tmp[rmv] ', (tmp[rmv])) + if len(tmp[rmv]) > 0: + t = np.sort(tmp[rmv])[::-1] + for i in t: + del feat_combos[m][i] +# fcl = np.delete(feat_combos[m], tmp[rmv]) + +# print('feat_combos is ', feat_combos[m]) +# feat_combos[m]= [] +# if m == 0: +# for i in fcl: +# feat_combos[m].append((i,)) +# # feat_combos = feat_combos.tolist() +# print(feat_combos[m], 'feat_combos[m]') +# else: +# feat_combos[m] = fcl + + + + +# print(len(hf),'h') + sort_idx = self.prune_heuristics(hf,feat_combos, keep, mode) + self.all_idx = set(self.all_idx) + for i in sort_idx: + self.all_idx.add(i) +# print(len(self.all_idx), 'indices ',self.all_idx) + for i in sort_idx: +# print(feat_combos,'feat_combos') + self.hf.append(index(hf,i)) + self.feat_combos.append(index(feat_combos,i)) + + #create appended L matrices for validation and train set + beta_opt = self.syn.find_optimal_beta(self.hf, self.val_primitive_matrix, self.feat_combos, self.val_ground) + self.L_val = self.apply_heuristics(self.hf, self.val_primitive_matrix, self.feat_combos, beta_opt) + self.L_train = self.apply_heuristics(self.hf, self.train_primitive_matrix, self.feat_combos, beta_opt) + self.L_test = self.apply_heuristics(self.hf, self.test_primitive_matrix, self.feat_combos, beta_opt) + + def run_verifier(self): + """ + Generates Verifier object and saves marginals + """ + ###THIS IS WHERE THE SNORKEL FLAG IS SET!!!! + self.vf = Verifier(self.L_train, self.L_val, self.val_ground, has_snorkel=False) + self.vf.train_gen_model() + self.vf.assign_marginals() + + def gamma_optimizer(self,marginals): + """ + Returns the best gamma parameter for abstain threshold given marginals + + marginals: confidences for data from a single heuristic + """ + m = len(self.hf) + gamma = 0.5-(1/(m**(3/2.))) + return gamma + + def find_feedback(self): + """ + Finds vague points according to gamma parameter + + self.gamma: confidence past 0.5 that relates to a vague or incorrect point + """ + #TODO: flag for re-classifying incorrect points +# incorrect_idx = self.vf.find_incorrect_points(b=self.b) + + gamma_opt = self.gamma_optimizer(self.vf.val_marginals) + #gamma_opt = self.gamma + vague_idx = self.vf.find_vague_points(b=self.b, gamma=gamma_opt) + incorrect_idx = vague_idx + self.feedback_idx = list(set(list(np.concatenate((vague_idx,incorrect_idx))))) + + + def evaluate(self): + """ + Calculate the accuracy and coverage for train and validation sets + """ + self.val_marginals = self.vf.val_marginals + self.train_marginals = self.vf.train_marginals + + def calculate_accuracy(marginals, b, ground): + total = np.shape(np.where(marginals != 0.5))[1] + labels = np.sign(2*(marginals - 0.5)) +# print('ground is ', np.sum(labels == ground), ' labels are ', total) + return np.sum(labels == ground)/float(total) + + def calculate_coverage(marginals, b, ground): + total = np.shape(np.where(marginals != 0.5))[1] + labels = np.sign(2*(marginals - 0.5)) + return total/float(len(labels)) + +# print('self.train_marginals.shape', self.train_marginals.shape) +# print('self.val_marginals.shape', self.val_marginals) + self.val_accuracy = calculate_accuracy(self.val_marginals, self.b, self.val_ground) + self.train_accuracy = calculate_accuracy(self.train_marginals, self.b, self.train_ground) + self.val_coverage = calculate_coverage(self.val_marginals, self.b, self.val_ground) + self.train_coverage = calculate_coverage(self.train_marginals, self.b, self.train_ground) + return self.val_accuracy, self.train_accuracy, self.val_coverage, self.train_coverage , self.L_val, self.L_train, self.L_test, self.hf + + def heuristic_stats(self): + '''For each heuristic, we want the following: + - idx of the features it relies on + - if dt, then the thresholds? + ''' + + + def calculate_accuracy(marginals, b, ground): + total = np.shape(np.where(marginals != 0.5))[1] + labels = np.sign(2*(marginals - 0.5)) + return np.sum(labels == ground)/float(total) + + def calculate_coverage(marginals, b, ground): + total = np.shape(np.where(marginals != 0))[1] + labels = marginals + return total/float(len(labels)) + + stats_table = np.zeros((len(self.hf),7)) + for i in range(len(self.hf)): + stats_table[i,0] = int(self.feat_combos[i][0]) + try: + stats_table[i,1] = int(self.feat_combos[i][1]) + except: + stats_table[i,1] = -1. + try: + stats_table[i,2] = int(self.feat_combos[i][2]) + except: + stats_table[i,2] = -1. + + stats_table[i,3] = calculate_accuracy(self.L_val[:,i], self.b, self.val_ground) + stats_table[i,4] = calculate_accuracy(self.L_train[:,i], self.b, self.train_ground) + stats_table[i,5] = calculate_coverage(self.L_val[:,i], self.b, self.val_ground) + stats_table[i,6] = calculate_coverage(self.L_train[:,i], self.b, self.train_ground) + + #Make table + column_headers = ['Feat 1', 'Feat 2','Feat 3', 'Val Acc', 'Train Acc', 'Val Cov', 'Train Cov'] + pandas_stats_table = pd.DataFrame(stats_table, columns=column_headers) + return pandas_stats_table + + + + + diff --git a/spear/labeling/utils/generation/label_aggregator.py b/spear/labeling/utils/generation/label_aggregator.py new file mode 100644 index 0000000..2e92fee --- /dev/null +++ b/spear/labeling/utils/generation/label_aggregator.py @@ -0,0 +1,177 @@ +import numpy as np +from scipy import sparse + +def log_odds(p): + """This is the logit function""" + return np.log(p / (1.0 - p)) + +def odds_to_prob(l): + """ + This is the inverse logit function logit^{-1}: + l = \log\frac{p}{1-p} + \exp(l) = \frac{p}{1-p} + p = \frac{\exp(l)}{1 + \exp(l)} + """ + return np.exp(l) / (1.0 + np.exp(l)) + +def sample_data(X, w, n_samples): + """ + Here we do Gibbs sampling over the decision variables (representing our objects), o_j + corresponding to the columns of X + The model is just logistic regression, e.g. + P(o_j=1 | X_{*,j}; w) = logit^{-1}(w \dot X_{*,j}) + This can be calculated exactly, so this is essentially a noisy version of the exact calc... + """ + N, R = X.shape + t = np.zeros(N) + f = np.zeros(N) + + # Take samples of random variables + idxs = np.round(np.random.rand(n_samples) * (N-1)).astype(int) + ct = np.bincount(idxs) + + # Estimate probability of correct assignment + increment = np.random.rand(n_samples) < odds_to_prob(X[idxs, :].dot(w)) + increment_f = -1. * (increment - 1) + t[idxs] = increment * ct[idxs] + f[idxs] = increment_f * ct[idxs] + + return t, f + +def exact_data(X, w, evidence=None): + """ + We calculate the exact conditional probability of the decision variables in + logistic regression; see sample_data + """ + t = odds_to_prob(X.dot(w)) + if evidence is not None: + t[evidence > 0.0] = 1.0 + t[evidence < 0.0] = 0.0 + return t, 1-t + +def transform_sample_stats(Xt, t, f, Xt_abs=None): + """ + Here we calculate the expected accuracy of each LF/feature + (corresponding to the rows of X) wrt to the distribution of samples S: + E_S[ accuracy_i ] = E_(t,f)[ \frac{TP + TN}{TP + FP + TN + FN} ] + = \frac{X_{i|x_{ij}>0}*t - X_{i|x_{ij}<0}*f}{t+f} + = \frac12\left(\frac{X*(t-f)}{t+f} + 1\right) + """ + if Xt_abs is None: + Xt_abs = sparse_abs(Xt) if sparse.issparse(Xt) else abs(Xt) + n_pred = Xt_abs.dot(t+f) + m = (1. / (n_pred + 1e-8)) * (Xt.dot(t) - Xt.dot(f)) + p_correct = (m + 1) / 2 + return p_correct, n_pred + +class LabelAggregator(object): + """LabelAggregator Object that learns the accuracies for the heuristics. + + Copied from Snorkel v0.4 NaiveBayes Model with minor changes for simplicity""" + def __init__(self, bias_term=False): + self.w = None + self.bias_term = bias_term + + def train(self, X, n_iter=1000, w0=None, rate=0.01, alpha=0.5, mu=1e-6, \ + sample=False, n_samples=100, evidence=None, warm_starts=False, tol=1e-6, verbose=True): + """ + Perform SGD wrt the weights w + * n_iter: Number of steps of SGD + * w0: Initial value for weights w + * rate: I.e. the SGD step size + * alpha: Elastic net penalty mixing parameter (0=ridge, 1=lasso) + * mu: Elastic net penalty + * sample: Whether to sample or not + * n_samples: Number of samples per SGD step + * evidence: Ground truth to condition on + * warm_starts: + * tol: For testing for SGD convergence, i.e. stopping threshold + """ + self.X_train = X + + # Set up stuff + N, M = X.shape + if verbose: + print ("="*80) + print ("Training marginals (!= 0.5):\t%s" % N) + print ("Features:\t\t\t%s" % M) + print ("="*80) + Xt = X.transpose() + Xt_abs = np.abs(Xt) + w0 = w0 if w0 is not None else np.ones(M) + + # Initialize training + w = w0.copy() + g = np.zeros(M) + l = np.zeros(M) + g_size = 0 + + # Gradient descent + if verbose: + print ("Begin training for rate={}, mu={}".format(rate, mu)) + for step in range(n_iter): + + # Get the expected LF accuracy + t,f = sample_data(X, w, n_samples=n_samples) if sample else exact_data(X, w, evidence) + p_correct, n_pred = transform_sample_stats(Xt, t, f, Xt_abs) + + # Get the "empirical log odds"; NB: this assumes one is correct, clamp is for sampling... + l = np.clip(log_odds(p_correct), -10, 10) + + # SGD step with normalization by the number of samples + g0 = (n_pred*(w - l)) / np.sum(n_pred) + + # Momentum term for faster training + g = 0.95*g0 + 0.05*g + + # Check for convergence + wn = np.linalg.norm(w, ord=2) + g_size = np.linalg.norm(g, ord=2) + if step % 250 == 0 and verbose: + print ("\tLearning epoch = {}\tGradient mag. = {:.6f}".format(step, g_size)) + if (wn < 1e-12 or g_size / wn < tol) and step >= 10: + if verbose: + print ("SGD converged for mu={} after {} steps".format(mu, step)) + break + + # Update weights + w -= rate * g + + # Apply elastic net penalty +# print('w.shape',w.shape) + w_bias = w[-1] + soft = np.abs(w) - mu + ridge_pen = (1 + (1-alpha) * mu) + + # \ell_1 penalty by soft thresholding | \ell_2 penalty + w = (np.sign(w)*np.select([soft>0], [soft], default=0)) / ridge_pen + + # Don't regularize the bias term + if self.bias_term: + w[-1] = w_bias + + # SGD did not converge + else: + if verbose: + print ("Final gradient magnitude for rate={}, mu={}: {:.3f}".format(rate, mu, g_size)) + + # Return learned weights + self.w = w + + def marginals(self, X): + X = X.todense() + marginals = odds_to_prob(X.dot(self.w)) + # print('marginal in label_agg ', marginals.shape) + return np.array(marginals)[0] + + + + + + + + + + + + diff --git a/spear/labeling/utils/generation/others.py b/spear/labeling/utils/generation/others.py new file mode 100644 index 0000000..74441f2 --- /dev/null +++ b/spear/labeling/utils/generation/others.py @@ -0,0 +1,153 @@ +from sklearn.linear_model._logistic import LogisticRegression +from sklearn.feature_extraction.text import CountVectorizer +from ...preprocess import * +from ...lf import * +from ...lf_set import * +from nltk.stem import WordNetLemmatizer +import numpy as np +import enum + + + +class classifierWeights(): + + def __init__(self, num_rules=30, feats = 'count' ): + self.reg_type ='l2' + self.reg_strength = 1.0 + self.num_rules = num_rules + self.stepwise_inflation_factor = 1 + if feats =='count': + self.tokenizer = None + else: + self.tokenizer = LemmaTokenizer() + + + def linear_applier(self, texts, labels, featurize_X, vectorizer, valid_texts=None, valid_labs=None): + self.featurizer, cv = self.build_ngram_featurizer(texts) + model = LogisticRegression( + penalty=self.reg_type, C=self.reg_strength, fit_intercept=False, solver='liblinear', class_weight=None, random_state=25) + X = self.featurizer(texts) + # X = featurize_X + model.fit(X, labels) + # print('labels are ', labels) + n_classes = model.coef_.shape[0] + # print(' n_classes ', n_classes) + + name_rulefn_score = [] + + if n_classes == 1: + for idx, weight in enumerate(model.coef_[0]): + if weight == 0: + continue + if weight > 0: + name_rulefn_score.append( (idx, ClassLabels.HAM.value, weight) ) + else: + name_rulefn_score.append( (idx, ClassLabels.SPAM.value, weight) ) + + else: + for class_id in range(n_classes): + for idx, weight in enumerate(model.coef_[class_id]): + if weight <= 0: + continue + # print(idx, class_id, weight) + name_rulefn_score.append( (idx, class_id, weight) ) + # print(name_rulefn_score) + name_rulefn_score = sorted(name_rulefn_score, key=lambda x: abs(x[-1]), reverse=True) + name_rulefn_score = name_rulefn_score[:int(self.num_rules * self.stepwise_inflation_factor)] + + self.name_rulefn_score = name_rulefn_score + self.trained = True + + if self.stepwise_inflation_factor > 1.0: + rm_idxs = self.stepwise_filter(valid_texts, valid_labs, n_to_delete=(len(name_rulefn_score) - self.num_rules)) + for idx in rm_idxs: + del self.name_rulefn_score[idx] + + self.rule_strs = {} + idx2tok = {idx: ngram for ngram, idx in cv.vocabulary_.items()} + for i, lab, weight in self.name_rulefn_score: + # print(idx, idx2tok[i], lab, weight) + # self.rule_strs.append(f'{idx2tok[i]} => {lab}') + self.rule_strs[idx2tok[i]] = lab + + # print(self.rule_strs) + return self.rule_strs + + + def build_ngram_featurizer(self, texts): + + cv = CountVectorizer(tokenizer=self.tokenizer, ngram_range=(1,2), stop_words='english', min_df=1) # ['a', 'the', ',','.','!'] + cv.fit(texts) + + def featurize(texts): + corpus_counts = cv.transform(texts) + valid_feats = np.where(np.sum(corpus_counts, 0)> 2)[1] + # corpus_counts = corpus_counts[:, valid_feats].toarray() + corpus_counts = corpus_counts.toarray() + return corpus_counts + + return featurize, cv + + # enum to hold the class labels + + + def returnRules(self): + ABSTAIN = None + @preprocessor() + def convert_to_lower(x): + return x.lower().strip() + LFS = [] + # featurize, cv = self.build_ngram_featurizer(texts) + # X = self.featurizer(texts) + + for cand in self.rule_strs.keys(): + label = ClassLabels(self.rule_strs[cand]) ### same for all + pattern = cand + resources = {} + resources['pattern'] = pattern + resources['output'] = label + rule_name = pattern+'_lf' + @labeling_function(name=rule_name,resources=resources,pre=[convert_to_lower],label=label) + def f(x,**kwargs): + result=0 + try: + result = re.findall(kwargs["pattern"], x) + # print('result is ', result) + except: + # print('except ', kwargs["pattern"], x) + pass + if result: + return kwargs["output"] + else: + return ABSTAIN + + LFS.append(f) + + rules = LFSet("LF") + rules.add_lf_list(LFS) + + return rules, self.featurizer + +class ClassLabels(enum.Enum): + # DESCRIPTION = 0 + # ENTITY = 1 + # HUMAN = 2 + # ABBREVIATION = 3 + # LOCATION = 4 + # NUMERIC = 5 + + # zero = 0 + # one = 1 + # two = 2 + # three = 3 + # four = 4 + #five = 5 + + SPAM = 0 + HAM = 1 + +class LemmaTokenizer(object): + def __init__(self): + self.wnl = WordNetLemmatizer() + def __call__(self, articles): + return [self.wnl.lemmatize(t) for t in word_tokenize(articles)] \ No newline at end of file diff --git a/spear/labeling/utils/generation/synthesizer.py b/spear/labeling/utils/generation/synthesizer.py new file mode 100644 index 0000000..f32cdaa --- /dev/null +++ b/spear/labeling/utils/generation/synthesizer.py @@ -0,0 +1,178 @@ +import numpy as np +import itertools + +from sklearn.metrics import f1_score +from sklearn.linear_model import LogisticRegression +from sklearn.tree import DecisionTreeClassifier +from sklearn.neighbors import KNeighborsClassifier + +class Synthesizer(object): + """ + A class to synthesize heuristics from primitives and validation labels + """ + def __init__(self, primitive_matrix, val_ground,b=0.5): + """ + Initialize Synthesizer object + + b: class prior of most likely class + beta: threshold to decide whether to abstain or label for heuristics + """ + self.val_primitive_matrix = primitive_matrix + self.val_ground = val_ground + self.p = np.shape(self.val_primitive_matrix)[1] + + self.num_classes = len(np.unique(val_ground)) + self.b = 1/(self.num_classes) + def generate_feature_combinations(self, cardinality=1): + """ + Create a list of primitive index combinations for given cardinality + + max_cardinality: max number of features each heuristic operates over + """ + primitive_idx = range(self.p) + feature_combinations = [] + + for comb in itertools.combinations(primitive_idx, cardinality): + feature_combinations.append(comb) + + return feature_combinations + + def fit_function(self, comb, model): + """ + Fits a single logistic regression or decision tree model + + comb: feature combination to fit model over + model: fit logistic regression or a decision tree + """ + X = self.val_primitive_matrix[:,comb] + if np.shape(X)[0] == 1: + X = X.reshape(-1,1) + + # fit decision tree or logistic regression or knn + if model == 'dt': +# print(X,' is len(comb)') + dt = DecisionTreeClassifier(max_depth=len(comb)) + dt.fit(X,self.val_ground) + return dt + + elif model == 'lr': + lr = LogisticRegression() + lr.fit(X,self.val_ground) + return lr + + elif model == 'nn': + nn = KNeighborsClassifier(algorithm='kd_tree') + nn.fit(X,self.val_ground) + return nn + + def generate_heuristics(self, model, max_cardinality=1): + """ + Generates heuristics over given feature cardinality + + model: fit logistic regression or a decision tree + max_cardinality: max number of features each heuristic operates over + """ + #have to make a dictionary?? or feature combinations here? or list of arrays? + feature_combinations_final = [] + heuristics_final = [] + for cardinality in range(1, max_cardinality+1): + feature_combinations = self.generate_feature_combinations(cardinality) + + + heuristics = [] + for i,comb in enumerate(feature_combinations): +# print('feature_combinations', comb) + heuristics.append(self.fit_function(comb, model)) + + feature_combinations_final.append(feature_combinations) + heuristics_final.append(heuristics) + + return heuristics_final, feature_combinations_final + + def beta_optimizer(self,marginals, ground): # By ayush +# def beta_optimizer(self,marginals, ground): + """ + Returns the best beta parameter for abstain threshold given marginals + Uses F1 score that maximizes the F1 score + + marginals: confidences for data from a single heuristic + """ + + #Set the range of beta params + #0.25 instead of 0.0 as a min makes controls coverage better + beta_params = np.linspace(0.25,0.45,10) +# beta_params = np.linspace(0.05,0.25,5) + + f1 = [] + + for beta in beta_params: + # labels_cutoff = np.zeros(np.shape(marglabels_cutoff[np.where(labels_cutoff == 0)] = -1inals)) +# print(marginals) + margin = np.max(marginals, axis=1) #Ayush + labels_cutoff = np.argmax(marginals, axis=1) + labels_cutoff[labels_cutoff == 0] = -1 + labels_cutoff[np.logical_and((self.b -beta) <= margin, margin <= (self.b + beta))] = 0#self.num_classes + + +# labels_cutoff[marginals <= (self.b-beta)] = -1. +# labels_cutoff[marginals >= (self.b+beta)] = 1. +# print(marginals.shape) + +# for j in range(marginals.shape[0]): #Ayush +# if marginals[j] <= (self.b-beta): #ayush +# labels_cutoff[j] = -1 #ayush +# if marginals[j] >= (self.b + beta): #ayush +# # labels_cutoff[j] = 1 +# if cls[j] != 1: +# labels_cutoff[j] = -1 +# else: +# labels_cutoff[j] = 0 +# # print(marginals, cls) + f1.append(f1_score(ground, labels_cutoff, average='weighted')) + f1 = np.nan_to_num(f1) + return beta_params[np.argsort(np.array(f1))[-1]] + + + def find_optimal_beta(self, heuristics, X, feat_combos, ground): + """ + Returns optimal beta for given heuristics + + heuristics: list of pre-trained logistic regression models + X: primitive matrix + feat_combos: feature indices to apply heuristics to + ground: ground truth associated with X data + """ +# print('feat_combos in synth', feat_combos) + try: + uu = [] + for i in feat_combos: + uu.append(i[0]) +# print('uu', uu) + except: + f = feat_combos + feat_combos = [] + feat_combos.append(f) + beta_opt = [] + for i,hf in enumerate(heuristics): + +# marginals = hf.predict_proba(X[:,feat_combos[i]]) #normal + # print('X shape', X.shape, marginals.shape) + # print(marginals.shape) +# marginals = marginals[:,-1] #normal +# beta_opt.append((self.beta_optimizer(marginals, ground))) #normal +# if i not in uu: +# continue +# print('feat combos inside loop', type(feat_combos[i])) + if type(feat_combos[i]) is not tuple: + feat_combos[i] = (feat_combos[i],) +# if i ==1: +# print('X[:,feat_combos[i]].shape', X[:,feat_combos[i]].shape) + prob_cls = hf.predict_proba(X[:,feat_combos[i]]) #Ayush + +# marginals = np.max(prob_cls, axis=1) #Ayush +# cls = np.argmax(prob_cls, axis=1) #Ayush + beta_opt.append((self.beta_optimizer(prob_cls, ground))) # by ayush + return beta_opt + + + diff --git a/spear/labeling/utils/generation/verifier.py b/spear/labeling/utils/generation/verifier.py new file mode 100644 index 0000000..02baf42 --- /dev/null +++ b/spear/labeling/utils/generation/verifier.py @@ -0,0 +1,65 @@ +import numpy as np +from scipy import sparse +from .label_aggregator import LabelAggregator + +def odds_to_prob(l): + """ + This is the inverse logit function logit^{-1}: + l = \log\frac{p}{1-p} + \exp(l) = \frac{p}{1-p} + p = \frac{\exp(l)}{1 + \exp(l)} + """ + return np.exp(l) / (1.0 + np.exp(l)) + +class Verifier(object): + """ + A class for the Snorkel Model Verifier + """ + + def __init__(self, L_train, L_val, val_ground, has_snorkel=True): + self.L_train = L_train.astype(int) + self.L_val = L_val.astype(int) + self.val_ground = val_ground + + self.has_snorkel = has_snorkel + if self.has_snorkel: + from snorkel.learning import GenerativeModel + from snorkel.learning import RandomSearch + from snorkel.learning.structure import DependencySelector + + def train_gen_model(self,deps=False,grid_search=False): + """ + Calls appropriate generative model + """ + if self.has_snorkel: + #TODO: GridSearch + from snorkel.learning import GenerativeModel + from snorkel.learning import RandomSearch + from snorkel.learning.structure import DependencySelector + gen_model = GenerativeModel() + gen_model.train(self.L_train, epochs=100, decay=0.001 ** (1.0 / 100), step_size=0.005, reg_param=1.0) + else: + gen_model = LabelAggregator() + gen_model.train(self.L_train, rate=1e-3, mu=1e-6, verbose=False) + self.gen_model = gen_model + + def assign_marginals(self): + """ + Assigns probabilistic labels for train and val sets + """ + self.train_marginals = self.gen_model.marginals(sparse.csr_matrix(self.L_train)) + self.val_marginals = self.gen_model.marginals(sparse.csr_matrix(self.L_val)) + #print 'Learned Accuracies: ', odds_to_prob(self.gen_model.w) + + def find_vague_points(self,gamma=0.1,b=0.5): + """ + Find val set indices where marginals are within thresh of b + """ + val_idx = np.where(np.abs(self.val_marginals-b) <= gamma) + return val_idx[0] + + def find_incorrect_points(self,b=0.5): + """ Find val set indices where marginals are incorrect """ + val_labels = 2*(self.val_marginals > b)-1 + val_idx = np.where(val_labels != self.val_ground) + return val_idx[0] \ No newline at end of file diff --git a/spear/utils/__init__.py b/spear/utils/__init__.py index 1f7ef07..95d3bed 100644 --- a/spear/utils/__init__.py +++ b/spear/utils/__init__.py @@ -1 +1 @@ -from .data_editer import get_data, get_classes, get_enum \ No newline at end of file +from .data_editor import get_data, get_classes, get_enum \ No newline at end of file diff --git a/spear/utils/data_editer.py b/spear/utils/data_editor.py similarity index 90% rename from spear/utils/data_editer.py rename to spear/utils/data_editor.py index 74f1daa..df084a5 100644 --- a/spear/utils/data_editer.py +++ b/spear/utils/data_editor.py @@ -7,6 +7,15 @@ from os import path as check_path def is_dict_trivial(dict): + ''' + A helper function that checks if the dictionary have key and value equal values for all keys except if its null + + Args: + dict: the dictionary + + Return: + True if all keys(which are not None) are equal to respective values. False otherwise + ''' for key, value in dict.items(): if not(key == None): try: @@ -42,12 +51,12 @@ def get_data(path, check_shapes = True, class_map = None): n_classes: total number of classes - In case the numpy array is not available, it is stored as np.zeros(0) + In case the numpy array is not available(can be possible for x, L, d, r, s), it is stored as numpy.zeros(0) Args: path: path to pickle file with data in the format above check_shapes: if true, checks whether the shapes of numpy arrays in pickle file are consistent as per the format mentioned above. Else it doesn't check. Default is True. - class_map: dictionary of class numbers(sorted, mapped to [0,n_classes-1]) are per the Enum defined in labeling part. l,L are modified before returning, using class_map. Default is None which doesn't do any mapping + class_map: dictionary of class numbers(sorted, mapped to [0,n_classes-1]) are per the Enum defined in labeling part. l,L are modified(needed inside algorithms) before returning, using class_map. Default is None which doesn't do any mapping Return: A list containing all the numpy arrays mentioned above. The arrays l, L are modified using the class_map @@ -70,7 +79,7 @@ def get_data(path, check_shapes = True, class_map = None): assert (data[4].shape == (data[1].shape[0],1)) or (data[4].shape[0] == 0) #d, l assert data[7].shape == (data[1].shape[1],) #n, l assert data[8].shape == (data[1].shape[1],) #k, l - assert data[1].shape[0] == data[0].shape[0] #x, l + assert (data[0].shape[0] == 0) or data[1].shape[0] == data[0].shape[0] #x, l assert np.all(np.logical_or(data[2] == 0, data[2] == 1)) #m assert (data[4].shape[0] == 0) or (np.all(np.logical_or(data[4] == 0, data[4] == 1))) #d assert (data[5].shape[0] == 0) or (np.all(np.logical_or(data[5] == 0, data[5] == 1)) )#r @@ -82,11 +91,11 @@ def get_data(path, check_shapes = True, class_map = None): is_dict_trivial_ = is_dict_trivial(class_map) if not(is_dict_trivial_): data[1] = np.vectorize(class_map.get)(data[1]) - if not (data[3].shape[0] == 0): + if not(data[3].shape[0] == 0): data[3] = np.vectorize(class_map.get)(data[3]) else: data[1][data[1] == None] = data[9] - if not (data[3].shape[0] == 0): + if not(data[3].shape[0] == 0): data[3][data[3] == None] = data[9] data[6][data[6] == None] = 0 # s will have None values if LF is not continuous @@ -137,7 +146,7 @@ def get_predictions(proba, class_map, class_dict, need_strings): final_labels = np.vectorize(remap_dict.get)(final_labels) if need_strings: class_dict_with_abstain = (class_dict).copy() - class_dict_with_abstain[None] = 'Abstain' + class_dict_with_abstain[None] = 'ABSTAIN' return np.vectorize(class_dict_with_abstain.get)(final_labels) else: return final_labels diff --git a/spear/utils/deep_net.py b/spear/utils/deep_net.py new file mode 100644 index 0000000..f637a40 --- /dev/null +++ b/spear/utils/deep_net.py @@ -0,0 +1,14 @@ +import torch.nn as nn +import torch.nn.functional as F + +class DeepNet(nn.Module): + def __init__(self, input_size, hidden_size, output_size): + super(DeepNet, self).__init__() + self.linear_1 = nn.Linear(input_size, hidden_size) + self.linear_2 = nn.Linear(hidden_size, hidden_size) + self.out = nn.Linear(hidden_size, output_size) + + def forward(self, x): + out = F.relu(self.linear_1(x)) + out = F.relu(self.linear_2(out)) + return self.out(out) \ No newline at end of file diff --git a/spear/utils/gpu_weighted_cage.py b/spear/utils/gpu_weighted_cage.py new file mode 100644 index 0000000..237ba9b --- /dev/null +++ b/spear/utils/gpu_weighted_cage.py @@ -0,0 +1,114 @@ +import torch +from torch.distributions.beta import Beta +import math + +def probability_y(pi_y): + pi = torch.exp(pi_y) + return pi / pi.sum() + + +def phi(theta, l, device): + return theta * torch.abs(l).double() + + +def calculate_normalizer(theta, k, n_classes, device): + z = 0 + for y in range(n_classes): + m_y = torch.exp(phi(theta[y], torch.ones(k.shape, device=device), device)) + z += (1 + m_y).prod() + return z + + +def probability_l_y(theta, l, k, n_classes, weights, device): + probability = torch.zeros(l.shape[0], n_classes, device=device) + z = calculate_normalizer(weights.view(1, -1)*theta, k, n_classes, device) + for y in range(n_classes): + probability[:, y] = torch.exp(phi(weights.view(1, -1)*theta[y], l, device).sum(1)) / z + return probability.double() + + +def probability_s_given_y_l(pi, s, y, l, k, continuous_mask, weights, ratio_agreement=0.85, model=1, theta_process=2): + eq = torch.eq(k.view(-1, 1), y).double().t() + r = ratio_agreement * eq.squeeze() + (1 - ratio_agreement) * (1 - eq.squeeze()) + params = torch.exp(pi) + probability = 1 + for i in range(k.shape[0]): + m = Beta(weights[i]* (r[i] * params[i] - 1) +1, weights[i]*((params[i] * (1 - r[i]))-1) + 1) + probability *= (torch.exp(m.log_prob(s[:, i].double())) * l[:, i].double() + (1 - l[:, i]).double()) * continuous_mask[i] + (1 - continuous_mask[i]) + return probability + + +def probability(theta, pi_y, pi, l, s, k, n_classes, continuous_mask, weights, device): + p_l_y = probability_l_y(theta, l, k, n_classes, weights, device) + p_s = torch.ones(s.shape[0], n_classes, device=device).double() + for y in range(n_classes): + p_s[:, y] = probability_s_given_y_l(pi[y], s, y, l, k, continuous_mask, weights) + return p_l_y * p_s + # print((prob.T/prob.sum(1)).T) + # input() + # return prob + # return (prob.T/prob.sum(1)).T + + +def log_likelihood_loss(theta, pi_y, pi, l, s, k, n_classes, continuous_mask, weights, device): + eps = 1e-8 + return - torch.log(probability(theta, pi_y, pi, l, s, k, n_classes, continuous_mask, weights, device).sum(1)).sum() / s.shape[0] + + +def log_likelihood_loss_supervised(theta, pi_y, pi, y, l, s, k, n_classes, continuous_mask, weights, device): + eps = 1e-8 + prob = probability(theta, pi_y, pi, l, s, k, n_classes, continuous_mask, weights, device) + prob = (prob.t() / prob.sum(1)).t() + return torch.nn.NLLLoss()(torch.log(prob), y) + + +def precision_loss(theta, k, n_classes, a, weights, device): + n_lfs = k.shape[0] + prob = torch.ones(n_lfs, n_classes, device=device).double() + z_per_lf = 0 + for y in range(n_classes): + m_y = torch.exp(phi(theta[y] * weights, torch.ones(n_lfs, device=device), device)) + #m_y = torch.exp(phi(theta[y], torch.ones(n_lfs, device=device), device)) + per_lf_matrix = torch.tensordot((1 + m_y).view(-1, 1), torch.ones(m_y.shape, device=device).double().view(1, -1), 1) - torch.eye(n_lfs, device=device).double() + prob[:, y] = per_lf_matrix.prod(0).double() + z_per_lf += prob[:, y].double() + prob /= z_per_lf.view(-1, 1) + correct_prob = torch.zeros(n_lfs, device=device) + for i in range(n_lfs): + correct_prob[i] = prob[i, k[i]] + loss = (1 / math.exp(1)) * (a * torch.log(correct_prob).double() + (1 - a) * torch.log(1 - correct_prob).double()) + #loss = (1/math.exp(1)) * (a * torch.exp(weights) * torch.log(correct_prob).double() + (1 - a) * torch.exp(weights) * torch.log(1 - correct_prob).double()) + return -loss.sum() + +# def precision_loss(theta, k, n_classes, a, weights, device): +# n_lfs = k.shape[0] +# prob = torch.ones(n_lfs, n_classes, device=device).double() +# z_per_lf = 0 +# for y in range(n_classes): +# #m_y = torch.exp(phi(theta[y] * weights, torch.ones(n_lfs))) +# m_y = torch.exp(phi(theta[y], torch.ones(n_lfs, device=device), device)) +# per_lf_matrix = torch.tensordot((1 + m_y).view(-1, 1), torch.ones(m_y.shape, device=device).double().view(1, -1), 1) - torch.eye(n_lfs, device=device).double() +# prob[:, y] = per_lf_matrix.prod(0).double() +# z_per_lf += prob[:, y].double() +# prob /= z_per_lf.view(-1, 1) +# correct_prob = torch.zeros(n_lfs, device=device) +# for i in range(n_lfs): +# correct_prob[i] = prob[i, k[i]] +# #loss = (1 / math.exp(1)) * (a * torch.log(correct_prob).double() + (1 - a) * torch.log(1 - correct_prob).double()) +# loss = (1/math.exp(1)) * (a * torch.exp(weights) * torch.log(correct_prob).double() + (1 - a) * torch.exp(weights) * torch.log(1 - correct_prob).double()) +# return -loss.sum() + + # n_lfs = k.shape[0] + # prob = torch.ones(n_lfs, n_classes).double() + # z_per_lf = 0 + # for y in range(n_classes): + # m_y = torch.exp(phi(theta[y] * weights, torch.ones(n_lfs))) + # per_lf_matrix = torch.tensordot((1 + m_y).view(-1, 1), torch.ones(m_y.shape).double().view(1, -1), 1) - torch.eye(n_lfs).double() + # prob[:, y] = per_lf_matrix.prod(0).double() + # z_per_lf += prob[:, y].double() + # prob /= z_per_lf.view(-1, 1) + # correct_prob = torch.zeros(n_lfs) + # for i in range(n_lfs): + # correct_prob[i] = prob[i, k[i]] + # loss = a * torch.log(correct_prob).double() + (1 - a) * torch.log(1 - correct_prob).double() + # return -loss.sum() diff --git a/spear/utils/logistic_regression.py b/spear/utils/logistic_regression.py new file mode 100644 index 0000000..a3a73fb --- /dev/null +++ b/spear/utils/logistic_regression.py @@ -0,0 +1,9 @@ +import torch.nn as nn + +class LogisticReg(nn.Module): + def __init__(self, input_size, output_size): + super(LogisticReg, self).__init__() + self.linear = nn.Linear(input_size, output_size) + + def forward(self, x): + return self.linear(x) diff --git a/spear/utils/losses.py b/spear/utils/losses.py new file mode 100644 index 0000000..25ce5d0 --- /dev/null +++ b/spear/utils/losses.py @@ -0,0 +1,105 @@ +import torch +import numpy as np +from torch import optim +from sklearn.metrics import f1_score +import torch.nn as nn +from torch.nn import MultiLabelMarginLoss as mlml +from random import sample + +def svm_supervised(w, b, y, x): + y = torch.tensor(y)#2 * y - 1) + #print('y.shape ',y[0]) + #y = torch.reshape(y, (list(y.size())[0],1)) +# print('y.shape ',y.shape) + #y = nn.functional.pad(y,pad=(0,41), value=-1) + #print('y.shape afte rpadd',y.shape) + #y = y.long() + # print('x.shape ',x.shape) + # print('w.shape ',w.shape) + # print('b.shape ',b.shape) + wx = x.matmul(w) + b + # print('wx.shape ',wx.shape) + #print('y.shape ',y[0]) + #wx = wx.float() + #lo = mlml() + #loss = lo(wx,y) + #print(loss) + #return loss + # print('wxx shape', y) + ywx = (wx*y[:,None]).sum(1) + # print('ywx shap', ywx.shape) + sy = torch.tensor([0] * y.shape[0]).double() + #stacked_tensor = torch.stack([1 - ywx, sy]) + sty = 1-(ywx - wx) + mx = torch.max(sty, sy) + #print('stacked ka shape', mx.shape)#max(0)[0].sum()) + return torch.sum(mx, 0)/y.shape[0] + torch.norm(w)*torch.norm(w) + #return 0.5 * torch.norm(w) * torch.norm(w) + stacked_tensor.max(0)[0].sum() / y.shape[0] + + +def entropy(probabilities): + entropy = - (probabilities * torch.log(probabilities)).sum(1) + return entropy.sum() / probabilities.shape[0] + +def entropy_pre(probabilities): + entropy = - (probabilities * torch.log(probabilities)).sum(1) + return entropy/ probabilities.shape[0] + + +def cross_entropy(probabilities, y): + return - torch.log(probabilities[:, y].sum() / y.shape[0]) + + +def kl_divergence(probs_p, probs_q): + return (probs_p * torch.log(probs_p / probs_q)).sum() / probs_p.shape[0] + +def vat_loss(model, x, y, xi=1e-6, eps=2.5, n_iters=1): + d = torch.Tensor(x.shape).double().normal_() + for i in range(n_iters): + d = xi * _l2_normalize(d) + d = Variable(d, requires_grad=True) + y_hat = model(x + d) + delta_kl = kl_div_with_logit(y.detach(), y_hat) + delta_kl.backward() + + d = d.grad.data.clone().cpu() + model.zero_grad() + + d = _l2_normalize(d) + d = Variable(d) + r_adv = eps * d + # compute lds + y_hat = model(x + r_adv.detach()) + delta_kl = kl_div_with_logit(y.detach(), y_hat) + return delta_kl + + +def kl_div_with_logit(q_logit, p_logit): + + q = F.softmax(q_logit, dim=1) + logq = F.log_softmax(q_logit, dim=1) + logp = F.log_softmax(p_logit, dim=1) + + qlogq = ( q *logq).sum(dim=1).mean(dim=0) + qlogp = ( q *logp).sum(dim=1).mean(dim=0) + + return qlogq - qlogp + +def getDiverseInstances(ent, budget,n_lfs, count): #ent is dict of {lfs, [indices]} + if count < budget : + print("budget cannot exceed total instances") + return + each = int(budget/n_lfs) + print('each is ', each) + bud = each * n_lfs + indic = [] + for j in ent.keys(): + if each > len(ent[j]): + indic.extend(ent[j]) + else: + #print(type(ent[j])) + x = sample(list(ent[j]), each) + #print(x, each) + indic.extend(x) + + return indic diff --git a/spear/utils/utils_cage.py b/spear/utils/utils_cage.py index acfbdc2..2554d86 100644 --- a/spear/utils/utils_cage.py +++ b/spear/utils/utils_cage.py @@ -6,21 +6,22 @@ import torch from torch.distributions.beta import Beta -def phi(theta, l): +def phi(theta, l, device): ''' Graphical model utils: A helper function Args: theta: [n_classes, n_lfs], the parameters l: [n_lfs] - + device: 'cuda' if drivers are available, else 'cpu' + Return: a tensor of shape [n_classes, n_lfs], element wise product of input tensors(each row of theta dot product with l) ''' - return theta * torch.abs(l).double() + return theta * torch.abs(l).double().to(device=device) -def calculate_normalizer(theta, k, n_classes): +def calculate_normalizer(theta, k, n_classes, device): ''' Graphical model utils: Used to find Z(the normaliser) in CAGE. Eq(4) in :cite:p:`2020:CAGE` @@ -28,18 +29,19 @@ def calculate_normalizer(theta, k, n_classes): theta: [n_classes, n_lfs], the parameters k: [n_lfs], labels corresponding to LFs n_classes: num of classes/labels + device: 'cuda' if drivers are available, else 'cpu' Return: a real value, representing the normaliser ''' z = 0 for y in range(n_classes): - m_y = torch.exp(phi(theta[y], torch.ones(k.shape))) + m_y = torch.exp(phi(theta[y], torch.ones(k.shape), device)) z += (1 + m_y).prod() return z -def probability_l_y(theta, m, k, n_classes): +def probability_l_y(theta, m, k, n_classes, device): ''' Graphical model utils: Used to find probability involving the term psi_theta(in Eq(1) in :cite:p:`2020:CAGE`), the potential function for all LFs @@ -48,14 +50,15 @@ def probability_l_y(theta, m, k, n_classes): m: [n_instances, n_lfs], m[i][j] is 1 if jth LF is triggered on ith instance, else it is 0 k: [n_lfs], k[i] is the class of ith LF, range: 0 to num_classes-1 n_classes: num of classes/labels + device: 'cuda' if drivers are available, else 'cpu' Return: a tensor of shape [n_instances, n_classes], the psi_theta value for each instance, for each class(true label y) ''' - probability = torch.zeros((m.shape[0], n_classes)) - z = calculate_normalizer(theta, k, n_classes) + probability = torch.zeros((m.shape[0], n_classes), device = device) + z = calculate_normalizer(theta, k, n_classes, device) for y in range(n_classes): - probability[:, y] = torch.exp(phi(theta[y], m).sum(1)) / z + probability[:, y] = torch.exp(phi(theta[y], m, device).sum(1)) / z return probability.double() @@ -87,7 +90,7 @@ def probability_s_given_y_l(pi, s, y, m, k, continuous_mask, qc): return probability -def probability(theta, pi, m, s, k, n_classes, continuous_mask, qc): +def probability(theta, pi, m, s, k, n_classes, continuous_mask, qc, device): ''' Graphical model utils: Used to find probability of given instances for all possible true labels(y's). Eq(1) in :cite:p:`2020:CAGE` @@ -100,18 +103,19 @@ def probability(theta, pi, m, s, k, n_classes, continuous_mask, qc): n_classes: num of classes/labels continuous_mask: [n_lfs], continuous_mask[i] is 1 if ith LF has continuous counter part, else it is 0 qc: a float value OR [n_lfs], qc[i] quality index for ith LF. Value(s) must be between 0 and 1 + device: 'cuda' if drivers are available, else 'cpu' Return: a tensor of shape [n_instances, n_classes], the probability for an instance being a particular class ''' - p_l_y = probability_l_y(theta, m, k, n_classes) - p_s = torch.ones(s.shape[0], n_classes).double() + p_l_y = probability_l_y(theta, m, k, n_classes, device) + p_s = torch.ones(s.shape[0], n_classes, device = device).double() for y in range(n_classes): p_s[:, y] = probability_s_given_y_l(pi[y], s, y, m, k, continuous_mask, qc) return p_l_y * p_s -def log_likelihood_loss(theta, pi, m, s, k, n_classes, continuous_mask, qc): +def log_likelihood_loss(theta, pi, m, s, k, n_classes, continuous_mask, qc, device): ''' Graphical model utils: Negative of log likelihood loss. Negative of Eq(6) in :cite:p:`2020:CAGE` @@ -124,15 +128,16 @@ def log_likelihood_loss(theta, pi, m, s, k, n_classes, continuous_mask, qc): n_classes: num of classes/labels continuous_mask: [n_lfs], continuous_mask[i] is 1 if ith LF has continuous counter part, else it is 0 qc: a float value OR [n_lfs], qc[i] quality index for ith LF. Value(s) must be between 0 and 1 + device: 'cuda' if drivers are available, else 'cpu' Return: - a real value, summation over (the log of probability for an instance, marginalised over y(true labels)) + a real value, negative of summation over (the log of probability for an instance, marginalised over y(true labels)) ''' eps = 1e-8 - return - torch.log(probability(theta, pi, m, s, k, n_classes, continuous_mask, qc).sum(1) + eps).sum() / s.shape[0] + return - torch.log(probability(theta, pi, m, s, k, n_classes, continuous_mask, qc, device).sum(1) + eps).sum() / s.shape[0] -def precision_loss(theta, k, n_classes, a): +def precision_loss(theta, k, n_classes, a, device): ''' Graphical model utils: Negative of the regularizer term in Eq(9) in :cite:p:`2020:CAGE` @@ -141,27 +146,28 @@ def precision_loss(theta, k, n_classes, a): k: [n_lfs], k[i] is the class of ith LF, range: 0 to num_classes-1 n_classes: num of classes/labels a: [n_lfs], a[i] is the quality guide for ith LF. Value(s) must be between 0 and 1 + device: 'cuda' if drivers are available, else 'cpu' Return: a real value, negative of regularizer term ''' n_lfs = k.shape[0] - prob = torch.ones(n_lfs, n_classes).double() + prob = torch.ones(n_lfs, n_classes, device = device).double() z_per_lf = 0 for y in range(n_classes): - m_y = torch.exp(phi(theta[y], torch.ones(n_lfs))) - per_lf_matrix = torch.tensordot((1 + m_y).view(-1, 1), torch.ones(m_y.shape).double().view(1, -1), 1) \ - - torch.eye(n_lfs).double() + m_y = torch.exp(phi(theta[y], torch.ones(n_lfs, device = device), device)) + per_lf_matrix = torch.tensordot((1 + m_y).view(-1, 1), torch.ones(m_y.shape, device = device).double().view(1, -1), 1) \ + - torch.eye(n_lfs, device = device).double() prob[:, y] = per_lf_matrix.prod(0).double() z_per_lf += prob[:, y].double() prob /= z_per_lf.view(-1, 1) - correct_prob = torch.zeros(n_lfs) + correct_prob = torch.zeros(n_lfs, device = device) for i in range(n_lfs): correct_prob[i] = prob[i, k[i]] loss = a * torch.log(correct_prob).double() + (1 - a) * torch.log(1 - correct_prob).double() return -loss.sum() -def predict_gm_labels(theta, pi, m, s, k, n_classes, continuous_mask, qc): +def predict_gm_labels(theta, pi, m, s, k, n_classes, continuous_mask, qc, device): ''' Graphical model utils: Used to predict the labels after the training is done @@ -174,8 +180,9 @@ def predict_gm_labels(theta, pi, m, s, k, n_classes, continuous_mask, qc): n_classes: num of classes/labels continuous_mask: [n_lfs], continuous_mask[i] is 1 if ith LF has continuous counter part, else it is 0 qc: a float value OR [n_lfs], qc[i] quality index for ith LF. Value(s) must be between 0 and 1 + device: 'cuda' if drivers are available, else 'cpu' Return: numpy.ndarray of shape (n_instances,), the predicted class for an instance ''' - return np.argmax(probability(theta, pi, m, s, k, n_classes, continuous_mask, qc).detach().numpy(), 1) \ No newline at end of file + return np.argmax(probability(theta, pi, m, s, k, n_classes, continuous_mask, qc, device).cpu().detach().numpy(), 1) \ No newline at end of file diff --git a/spear/utils/utils_jl.py b/spear/utils/utils_jl.py index 297af73..1c1c10a 100644 --- a/spear/utils/utils_jl.py +++ b/spear/utils/utils_jl.py @@ -4,9 +4,10 @@ from .utils_cage import probability -def log_likelihood_loss_supervised(theta, pi, y, m, s, k, n_classes, continuous_mask, qc): + +def log_likelihood_loss_supervised(theta, pi, y, m, s, k, n_classes, continuous_mask, qc, device): ''' - Joint Learning utils: Negative log likelihood loss, used in loss 4 in :cite:p:`2020:JL` + Joint Learning utils: Negative log likelihood loss, used in loss 4 in :cite:p:`DBLP:journals/corr/abs-2008-09887` Args: theta: [n_classes, n_lfs], the parameters @@ -17,17 +18,18 @@ def log_likelihood_loss_supervised(theta, pi, y, m, s, k, n_classes, continuous_ n_classes: num of classes/labels continuous_mask: [n_lfs], continuous_mask[i] is 1 if ith LF has continuous counter part, else it is 0 qc: a float value OR [n_lfs], qc[i] quality index for ith LF + device: 'cuda' if drivers are available, else 'cpu' Return: a real value, summation over (the log of probability for an instance) ''' - prob = probability(theta, pi, m, s, k, n_classes, continuous_mask, qc) + prob = probability(theta, pi, m, s, k, n_classes, continuous_mask, qc, device) prob = (prob.t() / prob.sum(1)).t() return nn.NLLLoss()(log(prob), y) def entropy(probabilities): ''' - Joint Learning utils: Entropy, Used in loss 2 in :cite:p:`2020:JL` + Joint Learning utils: Entropy, Used in loss 2 in :cite:p:`DBLP:journals/corr/abs-2008-09887` Args: probabilities: [num_unsup_instances, num_classes], probabilities[i][j] is probability of ith instance being jth class @@ -40,7 +42,7 @@ def entropy(probabilities): def kl_divergence(probs_p, probs_q): ''' - Joint Learning utils: KL divergence of two probabilities, used in loss 6 in :cite:p:`2020:JL` + Joint Learning utils: KL divergence of two probabilities, used in loss 6 in :cite:p:`DBLP:journals/corr/abs-2008-09887` Args: probs_p: [num_instances, num_classes] @@ -57,7 +59,7 @@ def find_indices(data, data_sub): A helper function for subset selection Args: - data: the complete data + data: the complete data, torch tensor of shape [num_instances, num_classes] data_sub: the subset of 'data' whose indices are to be found. Should be of same shape as 'data' Return: diff --git a/spear/utils/weighted_cage.py b/spear/utils/weighted_cage.py new file mode 100644 index 0000000..113ca1e --- /dev/null +++ b/spear/utils/weighted_cage.py @@ -0,0 +1,95 @@ +import torch +from torch.distributions.beta import Beta +import math + +def probability_y(pi_y): + pi = torch.exp(pi_y) + return pi / pi.sum() + + +def phi(theta, l): + return theta * torch.abs(l).double() + + +def calculate_normalizer(theta, k, n_classes): + z = 0 + for y in range(n_classes): + m_y = torch.exp(phi(theta[y], torch.ones(k.shape))) + z += (1 + m_y).prod() + return z + + +def probability_l_y(theta, l, k, n_classes, weights): + probability = torch.zeros((l.shape[0], n_classes)) + z = calculate_normalizer(weights.view(1, -1)*theta, k, n_classes) + for y in range(n_classes): + probability[:, y] = torch.exp(phi(weights.view(1, -1)*theta[y], l).sum(1)) / z + return probability.double() + + +def probability_s_given_y_l(pi, s, y, l, k, continuous_mask, weights, ratio_agreement=0.85, model=1, theta_process=2): + eq = torch.eq(k.view(-1, 1), y).double().t() + r = ratio_agreement * eq.squeeze() + (1 - ratio_agreement) * (1 - eq.squeeze()) + params = torch.exp(pi) + probability = 1 + for i in range(k.shape[0]): + m = Beta(weights[i]* (r[i] * params[i] - 1) +1, weights[i]*((params[i] * (1 - r[i]))-1) + 1) + probability *= (torch.exp(m.log_prob(s[:, i].double())) * l[:, i].double() + (1 - l[:, i]).double()) * continuous_mask[i] + (1 - continuous_mask[i]) + return probability + + +def probability(theta, pi_y, pi, l, s, k, n_classes, continuous_mask, weights): + p_l_y = probability_l_y(theta, l, k, n_classes, weights) + p_s = torch.ones(s.shape[0], n_classes).double() + for y in range(n_classes): + p_s[:, y] = probability_s_given_y_l(pi[y], s, y, l, k, continuous_mask, weights) + return p_l_y * p_s + # print((prob.T/prob.sum(1)).T) + # input() + # return prob + # return (prob.T/prob.sum(1)).T + + +def log_likelihood_loss(theta, pi_y, pi, l, s, k, n_classes, continuous_mask, weights): + eps = 1e-8 + return - torch.log(probability(theta, pi_y, pi, l, s, k, n_classes, continuous_mask, weights).sum(1)).sum() / s.shape[0] + + +def log_likelihood_loss_supervised(theta, pi_y, pi, y, l, s, k, n_classes, continuous_mask, weights): + eps = 1e-8 + prob = probability(theta, pi_y, pi, l, s, k, n_classes, continuous_mask, weights) + prob = (prob.t() / prob.sum(1)).t() + # print('prob ka shape', prob.shape) + return torch.nn.NLLLoss()(torch.log(prob), y) + # return - torch.log(probability(theta, pi_y, pi, l, s, k, n_classes, continuous_mask)[:, y] + eps).mean()# / s.shape[0] + + +def precision_loss(theta, k, n_classes, a, weights): + n_lfs = k.shape[0] + prob = torch.ones(n_lfs, n_classes).double() + z_per_lf = 0 + for y in range(n_classes): + m_y = torch.exp(phi(theta[y] * weights, torch.ones(n_lfs))) + per_lf_matrix = torch.tensordot((1 + m_y).view(-1, 1), torch.ones(m_y.shape).double().view(1, -1), 1) - torch.eye(n_lfs).double() + prob[:, y] = per_lf_matrix.prod(0).double() + z_per_lf += prob[:, y].double() + prob /= z_per_lf.view(-1, 1) + correct_prob = torch.zeros(n_lfs) + for i in range(n_lfs): + correct_prob[i] = prob[i, k[i]] + loss = (1/math.exp(1)) * (a * torch.exp(weights) * torch.log(correct_prob).double() + (1 - a) * torch.exp(weights) * torch.log(1 - correct_prob).double()) + return -loss.sum() + # n_lfs = k.shape[0] + # prob = torch.ones(n_lfs, n_classes).double() + # z_per_lf = 0 + # for y in range(n_classes): + # m_y = torch.exp(phi(theta[y] * weights, torch.ones(n_lfs))) + # per_lf_matrix = torch.tensordot((1 + m_y).view(-1, 1), torch.ones(m_y.shape).double().view(1, -1), 1) - torch.eye(n_lfs).double() + # prob[:, y] = per_lf_matrix.prod(0).double() + # z_per_lf += prob[:, y].double() + # prob /= z_per_lf.view(-1, 1) + # correct_prob = torch.zeros(n_lfs) + # for i in range(n_lfs): + # correct_prob[i] = prob[i, k[i]] + # loss = a * torch.log(correct_prob).double() + (1 - a) * torch.log(1 - correct_prob).double() + # return -loss.sum() diff --git a/spear/wisdom/__init__.py b/spear/wisdom/__init__.py new file mode 100644 index 0000000..a4b2d7d --- /dev/null +++ b/spear/wisdom/__init__.py @@ -0,0 +1 @@ +from .core import Reweight diff --git a/spear/wisdom/core.py b/spear/wisdom/core.py new file mode 100644 index 0000000..0ae9e7b --- /dev/null +++ b/spear/wisdom/core.py @@ -0,0 +1,564 @@ +from typing import Any, Callable, List, Tuple, Set, Mapping, Optional +import torch +import sys +import numpy as np +from ..utils.logistic_regression import * +from ..utils.deep_net import * +import warnings +warnings.filterwarnings("ignore") +from argparse import ArgumentParser +# from cage import * +from sklearn.feature_extraction.text import TfidfVectorizer +from ..utils.losses import * +import pickle +from torch.utils.data import TensorDataset, DataLoader +import os + +from ..utils.gpu_weighted_cage import * +import higher +import copy + +class Reweight : + + """Re-weighting of generated Labelling Functions : WISDOM + + Args: + datapath (str): path of stored LFs as pickle files + num_classes (int): Number of classes + feat_model (str): 'nn' or 'lr'. Defaults to 'nn' + metric (str): Metric to use ('accuracy, 'f1'). Defaults to 'f1 + model_feats (str): Features to use (lstm/count/lemma). Defaults to count. + """ + + def __init__(self, datapath:str, num_classes:int, feat_model:str = 'nn', metric:str = 'f1') -> None : + """Instantiates Reweight class with the set of inputs + """ + self.datapath = datapath + self.num_classes = num_classes + self.feat_model = feat_model if feat_model else 'nn' + self.metric = metric if metric else 'f1' + + def __call__(self, num_runs, batch_size=32, lr_lr=0.0003, gm_lr=0.01) -> None : + """Function to reweigh LFs, weights are stored in the parent directory + Args : + num_runs(int) : Number of runs + batch_size(int) : (Defaults to 32) + lr_lr(int) : lr learning rate (Defaults to 0.0003) + gm_lr(int) : gm learning rate (Defaults to 0.01) + """ + + def rewt_lfs1(sample, lr_model, theta, pi_y, pi, wts): + device = torch.device("cpu") + wts_param = torch.nn.Parameter(wts, requires_grad=True) + lr_model.register_parameter("wts", wts_param) + theta_param = torch.nn.Parameter(theta, requires_grad=True) + lr_model.register_parameter("theta", theta_param) + pi_y_param = torch.nn.Parameter(pi_y, requires_grad=True) + lr_model.register_parameter("pi_y", pi_y_param) + pi_param = torch.nn.Parameter(pi, requires_grad=True) + lr_model.register_parameter("pi", pi_param) + # print(lr_model.linear.weight) + if self.feat_model == 'lr': + optimizer = torch.optim.Adam([ + {'params': lr_model.linear.weight},# linear_1.parameters()}, + # {'params': lr_model['params']['linear.bias']}, + # {'params':lr_model.linear_2.parameters()}, + # {'params':lr_model.out.parameters()}, + {'params': [lr_model.theta, lr_model.pi, lr_model.pi_y], 'lr': 0.01, 'weight_decay':0} + ], lr=1e-4) + elif self.feat_model =='nn': + optimizer = torch.optim.Adam([ + {'params': lr_model.linear_1.parameters()}, + {'params':lr_model.linear_2.parameters()}, + {'params':lr_model.out.parameters()}, + {'params': [lr_model.theta, lr_model.pi, lr_model.pi_y], 'lr': 0.01, 'weight_decay':0} + ], lr=1e-4) + with higher.innerloop_ctx(lr_model, optimizer) as (fmodel, diffopt): + supervised_criterion = torch.nn.CrossEntropyLoss() + optimizer.zero_grad() + supervised_indices = sample[4].nonzero().view(-1) + unsupervised_indices = (1 - sample[4]).nonzero().squeeze() + + if len(supervised_indices) > 0: + loss_1 = supervised_criterion(fmodel(sample[0][supervised_indices]), sample[1][supervised_indices]) + else: + loss_1 = 0 + unsupervised_lr_probability = torch.nn.Softmax(dim=1)(fmodel(sample[0][unsupervised_indices]).view(-1, self.num_classes)) + loss_2 = 0 + y_pred_unsupervised = np.argmax( + probability(fmodel.theta, fmodel.pi_y, fmodel.pi, sample[2][unsupervised_indices], sample[3][unsupervised_indices], self.k, self.num_classes, + self.continuous_mask, fmodel.wts, device=device).cpu().detach().numpy(), 1) + loss_3 = supervised_criterion(fmodel(sample[0][unsupervised_indices]), torch.tensor(y_pred_unsupervised, device=device)) + + if len(supervised_indices) > 0: + loss_4 = log_likelihood_loss_supervised(fmodel.theta, fmodel.pi_y, fmodel.pi, sample[1][supervised_indices], + sample[2][supervised_indices], sample[3][supervised_indices], self.k, + self.num_classes, + self.continuous_mask, fmodel.wts, device) + else: + loss_4 = 0 + + loss_5 = 0 + prec_loss = precision_loss(fmodel.theta, self.k, self.num_classes, self.a1, fmodel.wts, device=device) + probs_graphical = probability(fmodel.theta, fmodel.pi_y, fmodel.pi, sample[2], sample[3], self.k, self.num_classes, self.continuous_mask, fmodel.wts, device) + probs_graphical = (probs_graphical.t() / probs_graphical.sum(1)).t() + probs_lr = torch.nn.Softmax(dim=1)(fmodel(sample[0])) + loss_6 = kl_divergence(probs_graphical, probs_lr) + loss = loss_1 + loss_2 + loss_4 + loss_6 + loss_3 + loss_5 + prec_loss + # print('loss --> ', loss.item()) + diffopt.step(loss) + # print('x_valid.shape',x_valid.shape) + # print('y_valid.shape',y_valid.shape) + gm_val_loss = log_likelihood_loss_supervised(fmodel.theta, fmodel.pi_y, fmodel.pi, \ + y_valid.to(device),l_valid.to(device), s_valid.to(device), self.k, self.num_classes,self.continuous_mask, fmodel.wts, device) + sup_val_loss = supervised_criterion(fmodel(x_valid.to(device)), y_valid.to(device)) + valid_loss = lam1 * sup_val_loss + (1-lam1)*gm_val_loss + # + 1e-20 * torch.norm(list(fmodel.parameters(time=0))[0], p=1) + grad_all = torch.autograd.grad(valid_loss, list(fmodel.parameters(time=0))[0], \ + only_inputs=True)[0] + if torch.norm(grad_all, p=2) != 0: + temp_wts = torch.clamp(wts-5*(grad_all/torch.norm(grad_all, p=2)), min=0, max=1) + else: + temp_wts = wts + return temp_wts + + use_cuda = torch.cuda.is_available() + device = torch.device("cpu") + print(device) + torch.backends.cudnn.benchmark = True + + torch.set_default_dtype(torch.float64) + torch.set_printoptions(threshold=20) + dset_directory = self.datapath + feat_model = self.feat_model + num_classes = self.num_classes + metric = self.metric + # feat_model = feat_model + qg_available = 0 + lr_fnetwork = lr_lr + lr_gm = gm_lr + name_dset = dset_directory.split("/")[-1].lower() + print('dset is ', name_dset) + # conf.learning_rate = lr_fnetwork #wandb + mode = 'normal' + + objs = [] + # wrunname = name_dset + "_" + mode +"_reweight"#wandb + # wandb.run.name = wrunname #wandb + # if name_dset =='youtube' or name_dset=='census': + if metric=='accuracy': + from sklearn.metrics import accuracy_score as score + print('inside accuracy') + else: + from sklearn.metrics import f1_score as score + from sklearn.metrics import precision_score as prec_score + from sklearn.metrics import recall_score as recall_score + metric_avg = 'macro' + + lam1 = 1 + + fname = dset_directory + "/" + mode + "_d_processed.p" + print('fname is ', fname) + with open(fname, 'rb') as f: + while 1: + try: + o = pickle.load(f) + except EOFError: + break + objs.append(o) + + x_supervised = torch.tensor(objs[0]).double() + y_supervised = torch.tensor(objs[3]).long() + l_supervised = torch.tensor(objs[2]).long() + s_supervised = torch.tensor(objs[2]).double() + + objs = [] + fname = dset_directory + "/" + 'normal' + "_U_processed.p" + + with open(fname, 'rb') as f: + while 1: + try: + o = pickle.load(f) + except EOFError: + break + objs.append(o) + + excl= [] + idx=0 + for x in objs[1]: + if(all(x==int(self.num_classes))): + excl.append(idx) + idx+=1 + print('no of excludings are ', len(excl)) + + x_unsupervised = torch.tensor(np.delete(objs[0],excl, axis=0)).double() + y_unsupervised = torch.tensor(np.delete(objs[3],excl, axis=0)).long() + l_unsupervised = torch.tensor(np.delete(objs[2],excl, axis=0)).long() + s_unsupervised = torch.tensor(np.delete(objs[2],excl, axis=0)).double() + + print('Length of U is', len(x_unsupervised)) + + objs = [] + fname = dset_directory + "/" + "normal" + "_validation_processed.p" + + with open(fname, 'rb') as f: + while 1: + try: + o = pickle.load(f) + except EOFError: + break + objs.append(o) + + x_valid = torch.tensor(objs[0]).double() + y_valid = torch.tensor(objs[3]).long() + l_valid = torch.tensor(objs[2]).long() + s_valid = torch.tensor(objs[2]).double() + + objs1 = [] + fname = dset_directory + "/" + 'normal' + "_test_processed.p" + + with open(fname, 'rb') as f: + while 1: + try: + o = pickle.load(f) + except EOFError: + break + objs1.append(o) + x_test = torch.tensor(objs1[0]).double() + y_test = torch.tensor(objs1[3]).long() + l_test = torch.tensor(objs1[2]).long() + s_test = torch.tensor(objs1[2]).double() + + + n_features = x_supervised.shape[1] + + fname = dset_directory + '/' + "normal" + '_k.npy' + self.k = torch.from_numpy(np.load(fname)).to(device=device).long() + ##Needs to be removed## + n_lfs = len(self.k) + print('LFs are ',self.k) + print('no of lfs are ', n_lfs) + + # a = torch.ones(n_lfs).double() * 0.9 + # print('before ',a) + if qg_available: + self.a1 = a = torch.from_numpy(np.load(dset_directory+'/prec.npy')).to(device=device).double() + else: + # a = torch.ones(n_lfs).double() * 0.9 + + prec_lfs=[] + for i in range(n_lfs): + correct = 0 + for j in range(len(y_valid)): + if y_valid[j] == l_valid[j][i]: + correct+=1 + prec_lfs.append(correct/len(y_valid)) + self.a1 = a = torch.tensor(prec_lfs, device=device).double() + + + self.continuous_mask = torch.zeros(n_lfs, device=device).double() + + for i in range(s_supervised.shape[0]): + for j in range(s_supervised.shape[1]): + if s_supervised[i, j].item() > 0.999: + s_supervised[i, j] = 0.999 + if s_supervised[i, j].item() < 0.001: + s_supervised[i, j] = 0.001 + + for i in range(s_unsupervised.shape[0]): + for j in range(s_unsupervised.shape[1]): + if s_unsupervised[i, j].item() > 0.999: + s_unsupervised[i, j] = 0.999 + if s_unsupervised[i, j].item() < 0.001: + s_unsupervised[i, j] = 0.001 + + for i in range(s_valid.shape[0]): + for j in range(s_valid.shape[1]): + if s_valid[i, j].item() > 0.999: + s_valid[i, j] = 0.999 + if s_valid[i, j].item() < 0.001: + s_valid[i, j] = 0.001 + + for i in range(s_test.shape[0]): + for j in range(s_test.shape[1]): + if s_test[i, j].item() > 0.999: + s_test[i, j] = 0.999 + if s_test[i, j].item() < 0.001: + s_test[i, j] = 0.001 + + + l = torch.cat([l_supervised, l_unsupervised]) + s = torch.cat([s_supervised, s_unsupervised]) + x_train = torch.cat([x_supervised, x_unsupervised]) + y_train = torch.cat([y_supervised, y_unsupervised]) + supervised_mask = torch.cat([torch.ones(l_supervised.shape[0]), torch.zeros(l_unsupervised.shape[0])]) + + + # conf.n_units = num_runs + final_score_gm, final_score_lr, final_score_gm_val, final_score_lr_val = [],[],[],[] + final_score_lr_prec, final_score_lr_recall, final_score_gm_prec, final_score_gm_recall = [],[],[],[] + for lo in range(0,num_runs): + pi = torch.ones((self.num_classes, n_lfs), device=device).double() + pi.requires_grad = True + + theta = torch.ones((self.num_classes, n_lfs), device=device).double() * 1 + theta.requires_grad = True + + pi_y = torch.ones(self.num_classes, device=device).double() + pi_y.requires_grad = True + + if feat_model == 'lr': + lr_model = LogisticRegression(n_features, self.num_classes).to(device=device) + elif feat_model =='nn': + n_hidden = 512 + lr_model = DeepNet(n_features, n_hidden, self.num_classes).to(device=device) + else: + print('Please provide feature based model : lr or nn') + exit() + + optimizer = torch.optim.Adam([{"params": lr_model.parameters()}, {"params": [pi, pi_y, theta]}], lr=0.001) + optimizer_lr = torch.optim.Adam(lr_model.parameters(), lr=lr_fnetwork) + optimizer_gm = torch.optim.Adam([theta, pi, pi_y], lr=lr_gm, weight_decay=0) + # optimizer = torch.optim.Adam([theta, pi, pi_y], lr=0.01, weight_decay=0) + supervised_criterion = torch.nn.CrossEntropyLoss() + + dataset = TensorDataset(x_train, y_train, l, s, supervised_mask) + + loader = DataLoader(dataset, batch_size=batch_size, shuffle=True) + + print('num runs are ', num_runs) + best_score_lr,best_score_gm,best_epoch_lr,best_epoch_gm,best_score_lr_val, best_score_gm_val = 0,0,0,0,0,0 + best_score_lr_prec,best_score_lr_recall ,best_score_gm_prec,best_score_gm_recall= 0,0,0,0 + + stop_pahle, stop_pahle_gm = [], [] + + # weights = torch.ones(k.shape[0])*(1/k.shape[0]) + weights = torch.ones(self.k.shape[0], device=device)*0.5 + + for epoch in range(100): + lr_model.train() + #print(epoch) + for batch_ndx, sample in enumerate(loader): + for i in range(len(sample)): + sample[i] = sample[i].to(device=device) + if feat_model == 'lr': + lr_model1 = LogisticRegression(n_features, self.num_classes).to(device=device) + elif feat_model =='nn': + n_hidden = 512 + lr_model1 = DeepNet(n_features, n_hidden, self.num_classes).to(device=device) + # lr_model1 = DeepNet(n_features, n_hidden, self.num_classes) + lr_model1.load_state_dict(copy.deepcopy(lr_model.state_dict())) + theta1 = copy.deepcopy(theta) + pi_y1 = copy.deepcopy(pi_y) + pi1 = copy.deepcopy(pi) + weights = rewt_lfs1(sample, lr_model1, theta1, pi_y1, pi1, weights) + optimizer_lr.zero_grad() + optimizer_gm.zero_grad() + + unsup = [] + sup = [] + supervised_indices = sample[4].nonzero().view(-1) + # unsupervised_indices = indices ## Uncomment for entropy + unsupervised_indices = (1-sample[4]).nonzero().squeeze() + + + if len(supervised_indices) > 0: + loss_1 = supervised_criterion(lr_model(sample[0][supervised_indices]), sample[1][supervised_indices]) + else: + loss_1 = 0 + + loss_2=0 + # print(theta) + y_pred_unsupervised = np.argmax(probability(theta, pi_y, pi, sample[2][unsupervised_indices],\ + sample[3][unsupervised_indices], self.k, self.num_classes,self.continuous_mask, weights, device=device).cpu().detach().numpy(), 1) + loss_3 = supervised_criterion(lr_model(sample[0][unsupervised_indices]),\ + torch.tensor(y_pred_unsupervised, device=device)) + + loss_4 = 0 + loss_5 =0 + + if(len(supervised_indices) >0): + supervised_indices = supervised_indices.tolist() + probs_graphical = probability(theta, pi_y, pi, torch.cat([sample[2][unsupervised_indices], sample[2][supervised_indices]]),\ + torch.cat([sample[3][unsupervised_indices],sample[3][supervised_indices]]), self.k, self.num_classes, self.continuous_mask, weights, device=device) + else: + probs_graphical = probability(theta, pi_y, pi,sample[2][unsupervised_indices],sample[3][unsupervised_indices],\ + self.k, self.num_classes, self.continuous_mask, weights, device=device) + probs_graphical = (probs_graphical.t() / probs_graphical.sum(1)).t() + probs_lr = torch.nn.Softmax()(lr_model(sample[0])) + loss_6 = kl_divergence(probs_lr, probs_graphical) + # loss_6 = kl_divergence(probs_graphical, probs_lr) #original version + # loss_6 = - torch.log(1 - probs_graphical * (1 - probs_lr)).sum(1).mean() + prec_loss = precision_loss(theta, self.k, self.num_classes, a, weights, device=device) + + loss = loss_1 + loss_2 + loss_3 + loss_4 + loss_6+loss_5 + prec_loss + # print('loss is',loss_1, loss_2, loss_3, loss_4, loss_5, loss_6, prec_loss) + if loss != 0: + loss.backward() + optimizer_gm.step() + optimizer_lr.step() + # wname = "Run_"+str(lo)+" Train Loss" #wandb + # wandb.log({wname:loss, 'custom_step':epoch}) #wandb + y_pred = np.argmax(probability(theta, pi_y, pi, l_test.to(device), s_test.to(device), self.k, self.num_classes, self.continuous_mask, weights, device=device).cpu().detach().numpy(), 1) + + if metric=='accuracy': + lr_prec,lr_recall,gm_prec,gm_recall = 0,0,0,0 + gm_acc = score(y_test, y_pred) + else: + gm_acc = score(y_test, y_pred, average=metric_avg) + gm_prec = prec_score(y_test, y_pred, average=metric_avg) + gm_recall = recall_score(y_test, y_pred, average=metric_avg) + + y_pred = np.argmax(probability(theta, pi_y, pi, l_valid.to(device), s_valid.to(device), self.k, self.num_classes, self.continuous_mask, weights, device=device).cpu().detach().numpy(), 1) + # gm_valid_acc = score(y_valid, y_pred, average="macro") + if metric=='accuracy': + lr_prec,lr_recall,gm_prec,gm_recall = 0,0,0,0 + gm_valid_acc = score(y_valid, y_pred) + else: + gm_valid_acc = score(y_valid, y_pred, average="macro") + + probs = torch.nn.Softmax()(lr_model(x_test.to(device))) + y_pred = np.argmax(probs.cpu().detach().numpy(), 1) + # lr_acc =score(y_test, y_pred, average="macro") + # if name_dset =='youtube' or name_dset=='census' or name_dset =='sms': + if metric=='accuracy': + lr_prec,lr_recall,gm_prec,gm_recall = 0,0,0,0 + lr_acc =score(y_test, y_pred) + + else: + lr_acc =score(y_test, y_pred, average=metric_avg) + lr_prec = prec_score(y_test, y_pred, average=metric_avg) + lr_recall = recall_score(y_test, y_pred, average=metric_avg) + #LR Valid + + probs = torch.nn.Softmax()(lr_model(x_valid.to(device))) + y_pred = np.argmax(probs.cpu().detach().numpy(), 1) + # if name_dset =='youtube' or name_dset=='census' or name_dset =='sms': + if metric=='accuracy': + lr_valid_acc =score(y_valid, y_pred) + lr_prec,lr_recall,gm_prec,gm_recall = 0,0,0,0 + else: + lr_valid_acc =score(y_valid, y_pred, average=metric_avg) + + wname = "Run_"+str(lo)+" LR valid score" + wnamegm = 'Run_' + str(lo) + ' GM valid score' + # wandb.log({wname:lr_valid_acc, + # wnamegm:gm_valid_acc,'custom_step':epoch}) + if epoch > 5 and gm_valid_acc >= best_score_gm_val and gm_valid_acc >= best_score_lr_val: + # print("Inside Best hu Epoch: {}\t Test GM accuracy_score: {}".format(epoch, gm_acc )) + # print("Inside Best hu Epoch: {}\tGM accuracy_score(Valid): {}".format(epoch, gm_valid_acc)) + if gm_valid_acc == best_score_gm_val or gm_valid_acc == best_score_lr_val: + if best_score_gm < gm_acc or best_score_lr < lr_acc: + best_epoch_lr = epoch + best_score_lr_val = lr_valid_acc + best_score_lr = lr_acc + + best_epoch_gm = epoch + best_score_gm_val = gm_valid_acc + best_score_gm = gm_acc + + best_score_lr_prec = lr_prec + best_score_lr_recall = lr_recall + best_score_gm_prec = gm_prec + best_score_gm_recall = gm_recall + else: + best_epoch_lr = epoch + best_score_lr_val = lr_valid_acc + best_score_lr = lr_acc + + best_epoch_gm = epoch + best_score_gm_val = gm_valid_acc + best_score_gm = gm_acc + + best_score_lr_prec = lr_prec + best_score_lr_recall = lr_recall + best_score_gm_prec = gm_prec + best_score_gm_recall = gm_recall + + stop_pahle = [] + stop_pahle_gm = [] + checkpoint = {'theta': theta,'pi': pi} + # torch.save(checkpoint, save_folder+"/gm_"+str(epoch) +".pt") + checkpoint = {'params': lr_model.state_dict()} + # torch.save(checkpoint, save_folder+"/lr_"+ str(epoch)+".pt") + + if epoch > 5 and lr_valid_acc >= best_score_lr_val and lr_valid_acc >= best_score_gm_val: + # print("Inside Best hu Epoch: {}\tTest LR accuracy_score: {}".format(epoch, lr_acc )) + # print("Inside Best hu Epoch: {}\tLR accuracy_score(Valid): {}".format(epoch, lr_valid_acc)) + if lr_valid_acc == best_score_lr_val or lr_valid_acc == best_score_gm_val: + if best_score_lr < lr_acc or best_score_gm < gm_acc: + best_epoch_lr = epoch + best_score_lr_val = lr_valid_acc + best_score_lr = lr_acc + + best_epoch_gm = epoch + best_score_gm_val = gm_valid_acc + best_score_gm = gm_acc + + best_score_lr_prec = lr_prec + best_score_lr_recall = lr_recall + best_score_gm_prec = gm_prec + best_score_gm_recall = gm_recall + else: + best_epoch_lr = epoch + best_score_lr_val = lr_valid_acc + best_score_lr = lr_acc + + best_epoch_gm = epoch + best_score_gm_val = gm_valid_acc + best_score_gm = gm_acc + + best_score_lr_prec = lr_prec + best_score_lr_recall = lr_recall + best_score_gm_prec = gm_prec + best_score_gm_recall = gm_recall + stop_pahle = [] + stop_pahle_gm = [] + checkpoint = {'theta': theta,'pi': pi} + # torch.save(checkpoint, save_folder+"/gm_"+str(epoch) +".pt") + checkpoint = {'params': lr_model.state_dict()} + # torch.save(checkpoint, save_folder+"/lr_"+ str(epoch)+".pt") + + if len(stop_pahle) > 10 and len(stop_pahle_gm) > 10 and (all(best_score_lr_val >= k for k in stop_pahle)): + print('Early Stopping at', best_epoch_gm, best_score_gm, best_score_lr) + print('Validation score Early Stopping at', best_epoch_gm, best_score_lr_val, best_score_gm_val) + break + else: + # print('inside else stop pahle epoch', epoch) + stop_pahle.append(lr_valid_acc) + stop_pahle_gm.append(gm_valid_acc) + print('Best Epoch LR', best_epoch_lr) + print('Best Epoch GM', best_epoch_gm) + print("Run \t",lo, "Epoch, GM, LR \t", best_score_gm, best_score_lr) + print("Run \t",lo, "GM Val, LR Val \t", best_score_gm_val, best_score_lr_val) + final_score_gm.append(best_score_gm) + final_score_lr.append(best_score_lr) + final_score_lr_prec.append(best_score_lr_prec) + final_score_lr_recall.append(best_score_lr_recall) + + final_score_gm_prec.append(best_score_gm_prec) + final_score_gm_recall.append(best_score_gm_recall) + + final_score_gm_val.append(best_score_gm_val) + final_score_lr_val.append(best_score_lr_val) + + print("===================================================") + print("TEST Averaged scores LR", np.mean(final_score_lr)) + print("TEST Precision averaged scores LR", np.mean(final_score_lr_prec)) + print("TEST Recall averaged scores LR", np.mean(final_score_lr_recall)) + print("===================================================") + print("TEST Averaged scores GM", np.mean(final_score_gm)) + print("TEST Precision averaged scores GM", np.mean(final_score_gm_prec)) + print("TEST Recall averaged scores GM", np.mean(final_score_gm_recall)) + print("===================================================") + print("VALIDATION Averaged scores are GM,LR", np.mean(final_score_gm_val), np.mean(final_score_lr_val)) + print("TEST STD GM,LR", np.std(final_score_gm), np.std(final_score_lr)) + print("VALIDATION STD GM,LR", np.std(final_score_gm_val), np.std(final_score_lr_val)) + wt = weights.cpu().numpy() + np.save(os.path.join(dset_directory, 'weights'), wt) + print('Sorted weights ', wt.argsort()) + + + def __repr__(self) : + + return f'datapath {self.datapath}, number of classes {self.num_classes}' \ No newline at end of file diff --git a/spear_logo.png b/spear_logo.png new file mode 100644 index 0000000..082da5d Binary files /dev/null and b/spear_logo.png differ diff --git a/spear_logo.svg b/spear_logo.svg new file mode 100644 index 0000000..c0f5e9f --- /dev/null +++ b/spear_logo.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + SemisuPervisEd dAta pRogramming + SPEAR + + + + + + + + diff --git a/spear_pipeline.svg b/spear_pipeline.svg new file mode 100644 index 0000000..0bd7e39 --- /dev/null +++ b/spear_pipeline.svg @@ -0,0 +1 @@ + \ No newline at end of file