CSE 461 Software Engineering
Spring 2020
IIIT Hyderabad
Course Project: NLP toolkit as a service
GNU General Purpose License v3.0
Team 8
Saumitra Yadav | Neha Motlani | Sunil Gundapu
Ananya Mukherjee | Prashant Kodali | Hiranmai Sri Adibhatla
Project Abstract | Project High Level Design
Due to the inherent nature of the field of NLP, any application development or research projects, involves trying out multiple algorithms / models. Trying out these algorithms can involve lots of work, and if everybody is doing it, it is lot of double work. And, if someone is low on compute resources, it restricts a programmer from exploring those models or algorithms.
To address this problem, our team set out on developing a platform which enables users to share and acess this knowledge within an institution and across teams.
-
- for hosting details regarding all the services available.
- for developers to try a particular service
- A place to gather details of the APIs that developer can hit to access these services, if he/she intends to use these services in their application.
- Allows developers to publish their applications/services.
- Flask, a python based web framework, is used for implementing the frontend, and for acessing each of the implemented service.
-
Individual services:
-
developed and published by developers.
-
individual services are run and hosted by the individuals. the frontend doesn't involve hosting a service.
-
Flask is used to exposing APIs of each of the services listed below. However, that is not a limitation, as long as the service implemnted can take input as json and send a json as a response.
-
Following services have been implemented and integrated with frontend by our Team
- Tokenization
- Text Representations
- Transliteration
- Named Entity Recongniation
- Sentiment Analysis
- Summarization
- Machine Translation
Please access these individual pages for more details on each of these pages.
-
UML class diagram for giving an abstract idea and describing static structure of 'NLP toolkit as a service' project is given below. It shows classes, their attributes, operations and relationships among objects.
Normal User and Admin are inherited from class USER. whichService() method of Normal User is used to call objects of services as APIs to do certain jobs and these services have an association relationship with Normal User.