Skip to content

Computational Ad Hominem Detection model using word2vec, doc2vec, POS tags and a combined neural network of Bidirectional GRUs. Web demo built with Flask and VueJS.

Notifications You must be signed in to change notification settings

ericmassip/G0B34a_knowledge_and_the_web

 
 

Repository files navigation

Detecting ad hominem attacks

Published paper "Computational ad hominem detection" at ACL2019 (SRW): https://www.aclweb.org/anthology/P19-2028/

This project was for the 2018-2019 course 'Knowledge and the Web' at KU Leuven.

The term "fake news" is associated with journalism that deliberately spreads deceitful or inaccurate information. In the past years, the use of the term has increased drastically, interfering in major areas within a community. The importance is such that Italian schools have implemented "fake news detection" as part of the school curriculum. In the political sphere, it is not uncommon to see allegations of fake news and misinformation. Those calls that often target sources, reporters and organizations, instead of assessing the arguments themselves. This paper will discuss the possibility to detect fallacies, primarily on the ad hominem. Ad hominem literally means "to the person", and the term is used when an argument directs to the person instead of assessing the argument itself.

The datasets are sourced from UKPLab/argotario and UKPLab/naacl2018-before-name-calling-habernal-et-al.

Classifier

During the project, several classifiers and network architectures were reviewed. The results are incorporated in the paper. The final, best performing network is a bidirectional GRU neural network, with the following features:

These features are combined into a classification network, resulting in a labeling as ad hominem or no ad hominem.

Network description

The network had the following confusion matrix as output, when it was trained on X and tested on 8018 paragraphs.

Confusion matrix

Web demo available in https://fallacies.ipieter.be:

Web demo

Getting started with the project

Running the backend server

This project uses Pipenv. So start with to create a virtual folder on your machine.

pipenv install

Afterwards, use:

pipenv shell

And if you want to exit the env, use:

exit

Running the frontend

# install dependencies
npm install

# serve with hot reload at localhost:8080
npm run dev

# build for production with minification
npm run build

For detailed explanation on how things work, consult the docs for vue-loader.

About

Computational Ad Hominem Detection model using word2vec, doc2vec, POS tags and a combined neural network of Bidirectional GRUs. Web demo built with Flask and VueJS.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 95.7%
  • TeX 1.9%
  • Python 1.0%
  • Vue 1.0%
  • JavaScript 0.2%
  • R 0.2%