Analyzing arguments during a debate using Natural Language Processing in Python
Abhinav Gupta (~abhinav2) |
This talk will guide you through the application of Python NLP Techniques to analyze arguments during a debate and define a strategy to figure out the winner of the debate on the basis of strength and relevance of the arguments.
Let’s take an example to explain it you : Suppose that, you are discussing with your friend whether PyCon is popular in India or not. The discussion will start with you taking a stance for the topic (Let us assume that you believe, PyCon is popular in India). Then, the discussion can progress in four different ways:
- You remain firm on your stance throughout the complete discussion (You are presenting instances related to Popularity of PyCon in India)
- You change your stance due to influence from other opinions (You are not able to provide strong counter-arguments or you simply stopped counter-arguing) .
- You remain neutral.
- You talk off the topic or deviate from it. (While talking about PyCon, you start comparing it with other summits like Collision Conference and you end up discussing about popularity of Collision Conference instead of PyCon).
Through this talk, I will demonstrate how to detect each of these instances using NLP and also how to judge the outcome of this discussion (whether you have won it or not). This will focus on two main NLP techniques: Semantic Similarity and Sentiment Analysis, apart from the use of basic NLTK library functions.
Python Packages to be used:
- NLTK (http://www.nltk.org/)
- TextBlob (http://textblob.readthedocs.org/en/dev/)
- Stanford NLTK Parser (http://nlp.stanford.edu/software/)
I will explain some basic concepts before demonstrating their implementation in this tutorial. They include:
- Basics of NLTK which are used in this tutorial.
- Semantics and how to measure Semantic Similarity
- Sentiment Analysis
Though I will be covering most of the basics, a prior experience will help you to easily grasp new concepts. I have given some links to start with in Content URL’s.
Having said that, a prior knowledge of the basic Natural Language Processing in Python would be needed such as:
What is Natural Language Processing?
NLTK Library : Stopwords, Tokenizing, Stemming
The final deck which I am going to use in PyCon is now available on SlideShare at : http://www.slideshare.net/vicknickkgp/analyzing-arguments-during-a-debate-using-natural-language-processing-in-python
A brief introduction to these topics can be found in the following links:
- Natural Language Processing: http://bit.ly/1EIw2B9
- Parts of Speech Tagging :
- Semantic Similarity : http://bit.ly/1d65YtU
- Sentiment Analysis : http://www.lct-master.org/files/MullenSentimentCourseSlides.pdf
I am a fresh graduate and completed my Bachelors and Masters in Technology from Indian Institute of Technology, Kharagpur. I started my journey in the field of Machine Learning 1.5 years ago with the help of Andrew Ng’s Video Lectures followed by working on recommendation systems. Thereafter, my internship at Zomato, centering around Natural Language Processing (Determining Review Highlights from Restaurant Reviews and What Dishes to Order from a Restaurant) helped me to hone my skills in Python and NLP. Recently, I was working on Development of an Automated Argumentation Framework for school students.
Most of my work is either for an organization or for research purposes (mainly private repo’s) due to which I am not much active on GitHub. I have provided my social profile links. Please let me know if you have any queries.
About : https://about.me/abhinavkgp