Introducing OneNLP - First Natural language processing IDE so far!
AI NLP has never been this easier, Auth0 x Hashnode Submission!
Natural language processing (NLP) is the capacity of a computer software to interpret spoken and written human language, often known as natural language. It's an artificial intelligence component.
Through OneNLP you can easily perform all NLP Task visually and with lots of customizations without writing a single line of code & easily DEBUG at any instant to see how the things really works.
NLP Tasks has never been this easier.
Inspiration
In this auth0 + hashnode hackathon , i am so excited to create something that can help many beginner students to learn NLP in a very student friendly manner!
According to Business Wire AI Market Artificial Intelligence Market has grown over USD 62.35 billion in 2020 that is a big number.
But even with this much growth learning NLP is so boring for any beginner , in this awesome hackathon , i've seen so many brilliant frontend app created so far.
So , i have thought why not to create something that can solve a real world problem!
Being a CS Student this AI & Machine learning seems a very interesting topic to me so, but its not that easy to learn at first , so i decided to create something that will surely help many fellow students!
Don't know NLP ?
Even school or College students can use this IDE to get summary , change thier content using AI , generate the summary , get what's most used in thier assignments and also save the text prompts into cloud!
But before lets see what is auth0 as this app is powered by Auth0's secure authentication.
Get it here
GitHub Repo: https://github.com/prodexia/onenlp
Live Demo: https://onenlp.coder1s.repl.co
See it in action
Try now by using this prompt text:
A subset of machine learning is closely related to computational statistics, which focuses on making predictions using computers, but not all machine learning is statistical learning. The study of mathematical optimization delivers methods, theory and application domains to the field of machine learning.
from wikipedia & see how it works, go ahead.
What is Auth0 ?
Auth0 is a flexible, drop-in solution to add authentication and authorization services to your applications. Your team and organization can avoid the cost, time, and risk that come with building your own solution to authenticate and authorize users.
Honestly, its super easy to integrate auth0 with almost any tech stack!
If you want to add a secure authentication system in your app then you can use this link Auth0 get started doc.
Submission for Auth0 & Hashnode hackathon.
Now, let's come to the project.
The login page is provided by Auth0
What is OneNLP ?
OneNLP is a first Natural language processing (NLP) focused integrated development environment (IDE) , through which you may perform various NLP tasks easily & visually without having to write much code and get much more insights.
Apart from nlp , this can be also useful to get insights from your text content which is necessary for SEO tasks , writing research papers , articles etc.
Moreover , if you are a developer you may also use the core library and import it in any machine learning project.
This is packed with a good UI Web app and it also has a fully functional plug-able standalone library that can be easily plugged into any project with any tech stacks.
So, yes you aren't sticked to only this application but you got more!
The Plan
First pass a text prompt at the left editor and then press the NLP IT button , after that the text is processed in the backend side , initialization of core OneNLP library takes place , it performs all basic word tokenization
, removal of stopwords , sentence tokenization, extracting antonym etc and then the processed text appears the right output container.
From this point you may perform all the other tasks such as sentiment analysis, summary generation, dependency parsing etc.
This reduces time & efforts , and provides you all round insights.
Quick intro
OneNLP lets you perform all known easy or comples NLP tasks visually , you may easily debug at any instant and learn how the things work on behind. It helps you to perform the tasks without writing a single line of code.
Perform sentiment analysis , get usage of words or opposite words , easily swap words with a click!
Just import the library and starts coding your next nlp project.
Below is the snapshot of the apps features.
Walk through of the OneNLP
Now let's explore some features of this app, we will be going through on one by one feature.
Let's take a glimpse of how things works under the hood with this example.
In Rule-based matching first you write a expression with entities,
[{"LOWER": "hello"}, {"IS_PUNCT": True}, {"LOWER": "world"}]
and then pass it into Matcher()
function, and if the pattern found the function returns the start & end index of the result output.
import spacy
from spacy.matcher import Matcher
nlp = spacy.load("en_core_web_sm")
matcher = Matcher(nlp.vocab)
pattern = [{"LOWER": "hello"}, {"IS_PUNCT": True}, {"LOWER": "world"}]
matcher.add("HelloWorld", [pattern])
doc = nlp("Hello, world! Hello world!")
matches = matcher(doc)
for match_id, start, end in matches:
string_id = nlp.vocab.strings[match_id]
span = doc[start:end]
print(match_id, string_id, start, end, span.text)
Okay , so why this thing can't be automated XD ??
So i guess, now you get the real motive of OneNLP , with this tool you can automate this with much easier manner and can debug the whole process visually, & everything is opensourced.
Here is a very good illustrative that describes the processing of Dependency parsing.
Fully modern UI IDE.
Yes , there are tooltips added on almost every button with a short description of what it does.
Floating widget to change the required words easily.
Suppose you wanna change any word in the generated output you may simply click on it and swap the word according to your wish.
Summary generation.
Easily generate summary of any text easily and save time, even usefull for all college students!
Save your content in form of snippet on cloud!
Easily save the content in the cloud which you can resume afterwards , it improves productivity!
Manage your content with ease using dashboard
Here you can easily delete or visit your saved content for example this can be science Research paper or assignment.
Built for developers that is it comes with a Plugable standalone library.
Yes in the project's structure you get a package named onenlp.py
which you can import in your any project that contains all the pre built functions.
The library is fully opensourced.
Let's see how you will initialize the library.
from .onenlp import OneNLP
hurray! You can now use all the pre built analysis functions.
Rest APIs prototypes to power your development.
Here is a list of all endpoints that returns the result in JSON format.
Perform Sentiment Analysis with a click.
For example here you can perform Naïve Bayes sentiment classification , which you can optimize using attributes.
Get synonym and antonym.
Click on a word and after that press the opposite btn to get the antonymn of the word.
Get definitions of each word.
You can also get the usage of a selected word instantly.
Spacy Phrase Matcher.
Just pass in the spacy matcher POS tags expression and see the magic happens!
Get the Most common words & Perform all the POS Tagging with ease.
Easily grab nouns, verbs , adverbs and lots more.
Perform dependency parsing and get visualization insights
Perform dependency analysis , for that select a sentence and press the run button and you get the dependency parsing of all your sentence!
Tech Stacks used
NLTK
TextBlob
Spacy
Python
Django
Javascript
HTML/CSS
Conclusion
With this , it was all my 1 month hard work , looking forward to see if it helps all my CS friends to develop interest in NLP.
Once again thanks to auth0 & hashnode for organizing this wonderful hackathon.
GitHub Repo: https://github.com/prodexia/onenlp
Live Demo: https://onenlp.coder1s.repl.co
Created in Auth0 & Auth0Hackathon.