I would like to make a calendar application that accepts plain english input better than those that exist. I have found Stanford's NLP which seems cool, but I was wondering if it's helpful to this kind of task. I can't find examples of people using it for anything. Should an app actually understand the language? It seems like the natural english calendars that exist are looking for keywords / patterns and trying to parse that way, but I think an app could do better than that.
My real question: Could someone tell me how to find examples of people using the NLP or a different (publicly available) english parser to make a really useful app?
Email filters. Email filters are one of the most basic and initial applications of NLP online. It started out with spam filters, uncovering certain words or phrases that signal a spam message.
At Grammarly, we are passionate about improving human communication. Core to this mission has been our work in natural language processing (NLP). We rely on our team's deep expertise in NLP, machine learning (ML), and linguistics to create a delightful product for Grammarly's 30 million daily active users.
Dialogue systems and summarization are the examples of NLP applications where deep parsing is used. Information extraction and text mining are the examples of NLP applications where deep parsing is used. It is also called full parsing. It is also called chunking.
Parsing in natural language is termed as “to analyze the input sentence in terms of grammatical constituents, identifying the parts of speech, syntactic relations”. Parsing is a process of determining how a string of terminals(sentence) is generated from its constituents, by breaking down of sentence into tokens.
Check out NLTK.
NLTK is a leading platform for building Python programs to work with human language data. It provides easy-to-use interfaces to over 50 corpora and lexical resources such as WordNet, along with a suite of text processing libraries for classification, tokenization, stemming, tagging, parsing, and semantic reasoning.
Example of parsing with NLTK:
>>> import nltk
>>> rd_parser = nltk.RecursiveDescentParser(grammar)
>>> sent = 'Mary saw a dog'.split()
>>> for t in rd_parser.nbest_parse(sent):
... print t
(S (NP Mary) (VP (V saw) (NP (Det a) (N dog))))
NLTK is provided with a great free book, which is available online: http://nltk.googlecode.com/svn/trunk/doc/book/book.html
A nice overview from IBM: http://www.ibm.com/developerworks/linux/library/l-cpnltk/index.html
PS: Another SO question that is similar to yours: Using integers/dates as terminals in NLTK parser
A couple years on there is significant emergent technology in NLP around NodeJS. See here for more of an overview of the situation: http://www.quora.com/Are-there-any-JavaScript-natural-language-processing-projects
But, here is the example to the +1 question, because I too was looking for the same question... just a few years later.
Working Example of NLP... in JavaScript?
Here was my answer...
Steps 1 - Boilerplate Node Server:
install npm
npm install nodebootstrap
nodebootstrap naturalNode
cd naturalNode && npm install
node app
//This should give you a node bootstrap app running at localhost:3000
For full info on easy Node server setup go here: https://github.com/stonebk/nodeboilerplate
STEP 2 - Include Natural Library:
Head to GitHub Natural Library to check out what it can do...
https://github.com/NaturalNode/natural
Run:
npm install natural
(within your bootstrap server named naturalNode)
STEP 3 - Run an Example:
Include the example code from the link above into the app.js bootstrap file.
var natural = require('natural'),
tokenizer = new natural.WordTokenizer();
console.log(tokenizer.tokenize("your dog has fleas."));
// [ 'your', 'dog', 'has', 'fleas' ]
Now when you run your server you have full access to the natural library, and the ability to extend it with front-end interface.
Let me know if any instruction is missing...
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With