Giter Site home page Giter Site logo

nlp-slack's Introduction

W6 Project - Chat Sentiment Analysis Service

โ€‹ Description: You want to analyze the public chat messages (like slack public channels) of your team and create sentiment metrics of the different people on your team. The goal of this project is to analyze the conversations of your team to ensure they are happy ๐Ÿ˜ƒ.

You will practice in this project:

  • API (bottle)
  • NLTK sentiment analysis
  • Docker, Heroku and Cloud databases
  • Recommender systems

Project Goals

โ€‹ Main goal: Analyze the conversations coming from a chat like slack โ€‹

  • (L1๐Ÿง) Write an API in bottle just to store chat messages in a database like mongodb or mysql.
  • (L2๐Ÿฅณ) Extract sentiment from chat messages and perform a report over a whole conversation
  • (L3๐Ÿ˜Ž) Deploy the service with docker to heroku and store messages in a cloud database.
  • (L4๐Ÿคญ) Recommend friends to a user based on the contents from chat documents using a recommender system with NLP analysis.
  • (L5๐Ÿ”ฅ) Do it real, use slack API to get messages and analyze the messages of our datamad1019 channel.
    • https://api.slack.com/ โ€‹

TODO's - API Endpoints

โ€‹ You have to create an api with all this endpoints: โ€‹

1. User endpoints

  • (POST) /user/create
    • Purpose: Create a user and save into DB
    • Params: username the user name
    • Returns: user_id
  • (GET) /user/<user_id>/recommend
    • Purpose: Recommend friend to this user based on chat contents
    • Returns: json array with top 3 similar users โ€‹

2. Chat endpoints:

  • (GET) /chat/create
    • Purpose: Create a conversation to load messages
    • Params: An array of users ids [user_id]
    • Returns: chat_id
  • (GET) /chat/<chat_id>/adduser
    • Purpose: Add a user to a chat, this is optional just in case you want to add more users to a chat after it's creation.
    • Params: user_id
    • Returns: chat_id
  • (POST) /chat/<chat_id>/addmessage
    • Purpose: Add a message to the conversation. Help: Before adding the chat message to the database, check that the incoming user is part of this chat id. If not, raise an exception.
    • Params:
      • chat_id: Chat to store message
      • user_id: the user that writes the message
      • text: Message text
    • Returns: message_id
  • (GET) /chat/<chat_id>/list
    • Purpose: Get all messages from chat_id
    • Returns: json array with all messages from this chat_id
  • (GET) /chat/<chat_id>/sentiment
    • Purpose: Analyze messages from chat_id. Use NLTK sentiment analysis package for this task
    • Returns: json with all sentiments from messages in the chat โ€‹ โ€‹

Links - API dev in python

Links - NLP & Text Sentiment Analysis

Links - Heroku & Docker & Cloud Databases

nlp-slack's People

Contributors

blancaalcala avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.