Text Mining Course (15h)
2017/2018
Final Project
December 05, 2017
Overview
This is a group project (2-4 tudents per group), in which you are to implement a sentiment analyzer in
Python for some entity of your choice and using social media comments written in Tunisian Arabic.
You can use basically the same document representation and classification techniques given in TP2 (i.e.
Bag-of-words, logistic regression, naive bayes), which are all straightforward. However, you will have
the following 2 more challenging tasks: (i) find/collect raw data (social media comments) on your own;
and (ii) use tokenization, word normalization, and vocabulary construction techniques that are well-
suited for the Tunisian dialect. (which are usually different than techniques for the English language).
Detailed Tasks
1) Submit via email a proposal that contains :
Publicité
a) The names of group members and their email addresses. 2-4 students per group.
b) Your chosen entity. See examples below.
c) The data source(s) from which you plan to obtain people's comments/conversations about
your entity of choice. You need to have at least two different sources of data (e.g. Facebook
page and Twitter account).
2) Collect at least 500 comments from social media according to the following conditions:
a) The data collection must be done automatically (not manually!), using either a Web scraper
program (e.g. scrapy) or via a special API provided by the social media site (e.g. Facebook's
Graph API, Youtube API, Twitter API).
b) The data must come from at least two different sources (e.g. a Facebook page and a Twitter
account).
c) All comments must be as recent as possible (not older than one year).
d) Each comment must be either "positive" (like the entity) or "negative" (dislike the entity).
e) The number of positive and negative comments should be nearly equal.
Publicité
f) The collected data should be stored in a four-column .csv file in the following format:
comment_text sentiment_category date source_url
g) The collected data should be uploaded into the class's shared google drive for verification
by the professor.
3) Write source code in a Python notebook for building the sentiment analyzer using different
document representation and classification techniques.
4) Write a report containing a summary and interpretation of your final results. You can either do
this in a separate Word or Latex document, or at the end of the Python notebook (with proper
nice formatting of course).
Deadlines
Dec. 13 Submit project proposal via email. ([email protected])
Jan. 03 Upload your data to the class's shared google drive
Jan. 12 Submit source code and report via email. ([email protected])
Jan. 17-19 Live demonstrations ("validation")
Publicité
Grading
20% data collection (at least 500 positive/negative comments)
35% Python source code and correctness
20% final report
10% live demonstration
15% repect for deadlines (full grade only if everything is submitted on time)
Hints about data collection
Example entities
Sports teams
Football players
•
•
• Artists
•
Publicité
•
• Radio or TV channel (e.g. Elhiwar Ettounsi, Shems FM)
• Radio or TV program (e.g. Nsibti Laziza, A7la Sbe7)
• Brand or company (e.g. Tunisie Telecom, Orange, Ooreedoo)
Political party
Politician (e.g. BCS, Samia Abbou)
Example sources of data
Public Facebook pages
•
• Youtube channels
• Twitter accounts
• Web pages (e.g. www.mosaiquefm.net)