Add packages to requirements.txt - dependencies for scikit-learn

Numpy
Scipy
Scikit-learn
Import libraries for scikit-learn into score.py
Add notes and small modifications to hashtag extraction and json functions at the top of score.py

Json function will have to change to get data from database, rather than json files
Added parameters and updated docstring in extract_hashtags to reflect a separate list of labels that will be created at the same time that hashtags list is populated.
Added vectorize and classifier functions to score.py, to instantiate and train classifier. Untested at present.

Created functions and added docstrings.
Use CountVectorizer from sklearn to count occurrences within features list (hashtags)
Instantiate a Bernoulli Naive Bayes classifer.
Create cross-validator with Stratified Kfold method to split data in K parts.
Print precision and recall averages.
Return classifier.
Modified extract_hashtags function to label every hashtag, even those in the same tweet. In main(), init main HASHTAGS and LABELS lists.

Indented label_list.append within extract_hashtags to create a label for every hashtag.
Deleted code that referenced LIB_HASHTAGS and CONS_HASHTAGS, simplified to a single hashtags list with accompanying labels list.
ipython notebook files
Debugging in ipy notebook - WIP
Moved ipynb files into tests directory. Finished debugging classifier in ipy notebook. Updated score.py

TODO: make sure I understand metrics, recall, precision. I was getting an error with precision.append(p[1]) originally, maybe due to wrong indentation.

Add X as parameter to init_and_train_classifier.
Added note about parameter X to docstring of init_and_train_classifier
Slight modification to precision/recall to test my understanding (print statements)
Added dummy score module for insertion into friends.py as method on User class.

Update name of route function in flask_server.py
Change import statement to from friends import User, allowing me to refer to User directly.
Add USER_SCORE attribute to User class. Update USER_SCORE from flask_server.py by calling score_user()

WIP
WIP attempt to show individual friends and scores in HTML template.

Add jinja logic to show each friend in friendlist (not working)
Add for loop in flask_server to score each friend and add to list. (not working)
Need to review Cursor in tweepy.
Changed User get_friends method to return .items() instead of .pages(), allowing flask to iterate for friend in friendlist.

changed .pages() to .items(), list of friend IDs now iterable in flask server
print friend for friend in friendlist
set friend.USER_SCORE using dummy scoring script
Add manual pagination function to flask app, import itertools.

Using itertools library, divide friends_ids into pages of 100 friends ids each.
This is because lookup_users function (Twitter GET request) can only process 100 ids per request.
Manual pagination works.
Fixed exception error, updated name of friends_ids variable in flask and friends.py, test in ipython nb

Renamed friend_ids to friends_ids, because my continual use of 'friends_ids' kept causing NameErrors
Renamed function in friends.py
In flask, my except statement was not showing errors, as an exception would simply cause page to render
Renamed jinja variable to "display" so that errors can display on the html page as well
Display = friends if 'try' succeeds, display = error if exception
Moved pagination function into User class.

Took pagination function out of flask and put it into user class, keeping operations on user friends contained within User.
Renamed 'ids' parameter to f_ids in keeping with my own naming convention elsewhere in friends.py
Write docstrings for paginate_friends, lookup_friends, and get_top_influencers User methods.

Include notes on API limits. I'm leaving these as parameters to methods, however, in case API rate limits change.
Clean up commented-out code in flask_server, create user object for each friend in page

When iterating through pages of paginated friends, create a User instance for ech friend and give it a score.
When rendering index.html, pass in friendlist as a list of friend scores, rather than as a list of friend objects.
Update docstrings in friends.py and correct indentation