The anonymity of the internet has made it easy for online harassers to act as a crowd using multiple accounts. Even if a toxic user gets banned from a system, nothing stops the user from creating a new account and returning to the system. We created nOlaf under the premise of a service already having a list of harassers, banned accounts, and victims of harassment. Ideally, nOlaf will eventually be used to monitor the activity of users interacting with a victim who recently experienced online harassment on that platform.

What it does

nOlaf works assuming that a list of harassers, banned accounts, and victims exist. With the help of Watson, nOlaf generates a character score of a user's twitter personality, and this data is displayable as a graph online.

How we built it

nOlaf was written in python3 while the front-end user interface was written in HTML and node.js. nOlaf uses Watson's tone analyzer to create a personality profile of a user based on a chosen user's recent tweets. The tweets are read using an open source python wrapper of the twitter API. Finally, the python script outputs a file that the node.js app reads to plot the data in a graph.

Challenges we ran into

We came up with many ways to detect fake users, but all of them always gave room for some users to get away with what they were doing. nOlaf is still not a comprehensive tool to detect all returning harassers, and it would be great to see nOlaf develop smarter ways to weed out these malicious users. We also attempted to have the python script read through a list of banned usernames and upload the data onto an Amazon Web Service database, and have the data pullable from an interactive node.js webapp, but time and our limited experience interfered with this plan, so we settled for a local demo of what the app may look like.

Accomplishments that we're proud of

We are very excited about the potential an application like nOlaf has to reduce the amount of online harassment from a single user. As new programmers, figuring out how Watson, twitter and node.js works and then creating a service out of these is something we are very proud of.

What we learned

We learned a lot about how to use different APIs, and also particularly about how Watson's tone analyzer works. Thinking about different ways to detect a repeated user also made us think about creative ways to solve this problem, and we learned that it isn't an easy problem to solve, with many different possible detection methods.

What's next for nOlaf

We would love to see nOlaf get smarter using some more sophisticated statistical analysis, using user location to zoom into a more specific zone, and other new strategies to accurately pick out a user on multiple accounts. We are also hoping to scale the project, borrowing from technologies like Cycle and AWS, to see how nOlaf can work with a constantly changing set of data to get a better picture of what a particular user might act like.

Share this project: