Skip to content
Find trends in publicly accessible data and make an assumption about what is happening at a point in time.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
id
.gitignore
LICENSE
README.md
config.py
id.py
requirements.txt

README.md

Intention Detection

Find trends in publicly accessable data and make an assumption about what is happening at a point in time.

About:

This project is in VERY early stages of development and is nowhere near where the final goal. Due to this, the scope is broad we encourage new ideas 💪 such as new sources/methods for gathering data and processing it!

Having the ability to predict events and summarize what is happening around you is powerful. While this kind of project has been done before, either by governments or companies, an open source solution shaped by the community with the modular ability to extend data specific to the user's needs simpily dosen't exist (with the ease of access).

The goal for ID is to be scalable, utilizing modern data analysis methods such as machine learning, to present the user with accurate calculations guessing future events (or even what's happening at the current time). An end result would be a stunning UI displaying relevant results, ease of use (anyone with an above average computer can use the software) and excellent analytics - with good sources of information to feed it. These are just some crucial components for the success of ID.

In the meanwhile, a reasonable example of usage could be: ID seeing the influx of social media coverage on #GameOfThrones and concludes this is hype regarding the release of season 8.

The current program is split into three parts:

      📥 Gathering Data via social media such as Twitter

      🔍 Analyzing this data, using various methods, such as AI

      📊 Displaying the data live, in a very efficient and visually pleasing manor (local web server)

Currently, the web server consists of live updating content (using Ajax) such as a Twitter Feed, Sentiment Scatter Plot, and Hashtag Pie Chart. This is just for proof of concept and the future UI would not display such raw data.

Usage:

Step 1) Clone the Repo

git clone https://github.com/SillySam/ID.git
cd id
python3 -m pip install -r requirements.txt

Step 2) Configure

Before you can run the software you need to add API keys into the config.py file!

Getting your keys
  • Twitter API Firstly you'll need to get file a API request with Twitter to use this. Once the application is completed, create an App, then click 'details', followed by the 'Keys and Tokens' tab, containing all necessary keys (Access token & access token secret may need to be generated). Copy and paste your keys into the config.py file and run!

    Note: To ensure that the software complies with Twitter's Terms and Conditions, the database file id.db must be deleted within 24 hours of creation. In the future, the software will store the tweet's URL instead (which complies with the terms).

  • uClassify Right now this is needed for Sentiment Analysis but is only temporarily! Go to uClassify to get a key. Removing this API from the project and replacing it with our own trained model is a high priority.

File Structure:

. (root dir)

      id.py - The main program itself (what the user runs)

      config.py - User's personal credentials to access essential APIs

      id.db (generated on run) - The data collected from APIs

./id/

      analyse.py - Analyses the data

      gather.py - Through various methods, data collection happens here

./id/webserver

      app.py - Server's main file - all web responses are handled here

      /templates - HTML/Frontend stuffs

      /static - CSS and JS files (assets for UI)

Contribution:

Please jump on-board and offer your skills!

Feel free to make suggestions (by opening an issue) or submitting pull requests. As mentioned before, this project is just at the beginning stage and with some input and traction from the amazing GitHub community, this will be give the average person access to insightful and powerful information.

And yes, the code at this moment is quite simple and the structure isn't extensible so if you want to take another approach (E.g total file restructure), let me know why and I'll probably agree with you - nothing is concrete, and when striving to be the best software around, it's important to listen to all suggestions to make it perfect.

You can’t perform that action at this time.