Roughly 4 in 10 Americans have been victims of online harassment, and 62% of Americans believe it is a major problem. In most cases, these experiences simply include behaviors and actions that are trivial and simply serve as nuisances of social media.
But nearly 20% of Americans have been subjected to severe forms of online harassment, such as physical threats, prolonged cyber harassment, or sexual harassment, and little is being done to protect people and provide them education on the ways to combat such issues.
Individuals, especially young people, are constantly at a loss of what to do in these circumstances; this comes to their own detriment and allows harassers to continue making people feel inevitably unsafe online. Thus, we built ChatGuard.
What it does
ChatGuard is a platform for anyone being harassed online to address their concerns, understand the true gravity of the situation, take action, and prevent others from being targeted as well. Our application first provides a platform for users to upload images of circumstances in which they are being harassed online. Using these images, ChatGuard will judge the severity of their situation and provide them with further recommendations. In addition, ChatGuard.
How we built it
The first step in our process is the conversation analysis, which utilizes pytesseract to power optical character recognition for transcribing uploaded screenshots of text conversations.
The text is fed into a valence aware dictionary for sentiment reasoning NLP model, which blends a sentiment lexicon approach as well as grammatical rules and syntactical conventions for expressing sentiment polarity and intensity. This results in an overall verdict of the situation, a severity level, and a display of questionable terms used in the conversation, powered by spacy, ultimately allowing our algorithm to recommend the most effective and appropriate action to take from there.
This is all deployed on a Flask backend, which serves as an API for our client-side React.js to communicate with.
Additionally, users have the liberty to complete a supplemental questionnaire, inspired by the National Center for Biotechnology Information's sexual harassment research in 2018, designed to enhance our assessment of the situation.
Finally, if appropriate based on the user’s perceived severity, they may create a profile for the individual, in the form of a simple post, stored in our application’s SQLite database, to assist others in identifying whether their harasser has previously engaged in similar acts. Various pieces of information, such as a profile picture description and topics discussed, could be of great value to others trying to comprehend their situations and will allow them to take prompt action.
Challenges we ran into
There were many challenges that we encountered along the way, however, with our determination we overcame them. The majority of the challenges that we faced were found in the backend portion of our application. There were many issues with the Pytesseract python library to read text from images. This took us a while to fix, however, we managed to get it working. Installing and using the python SpaCy library was another challenge. Our virtual environments were not configured correctly, leading to a lot of python and pip errors. There were other small bugs that we were able to fix in the backend. The rest of the issues and bugs came from the CSS.
Our main challenge was time, as we had to complete the hackathon over the span of around 7 hours (some of our teammates had to leave for vacation the rest few days, but we managed to work continuously and get it done).
Accomplishments that we're proud of
We are proud of every component of our website. It took a very long time to implement the object character recognition feature. We encountered numerous errors, but with a lot of determination, we were able to fix them. We are also very proud of our excellent UI that makes our website appear more formal and professional. Finally, we are proud that our website will make a very big impact on so many people who are experiencing sexual harassment.
What we learned
Over the course of ChatGuard, we learned various things. We learned more about OCR and how it works internally. We learned more about sentiment analysis, as well as hyperparameters in deep learning and neural networks. The rendering process of React.js was something else that we had to learn in order to fix bugs and issues with the state, etc.
What's next for ChatGuard
We plan to expand ChatGuard so that everyone has access to our website. We will add more features like a login page where people will be able to interact with others. We also plan on contacting several non-profit organizations that can mentor us with important information on sexual assault and help us improve ChatGuard for everyone.