Text Mining Course Final Project

Programming, Data Collection, Sentiment Analysis · course

Voir tous les documents en programmation

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)