Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there a good natural language processing library [closed]

Tags:

java

nlp

I need to implement some NLP in my current module. I am looking for some good library that can help me here. I came across 'LingPipe' but could not completely follow on how to use it.
Basically, we need to implement a feature where the application can decipher customer instructions (delivery instructions) typed in plain english. Eg:

  • Will pick up at 12:00 noon tomorrow
  • Request delivery after 10th June
  • Please do not send before Wednesday
  • Add 10 more units of XYZ to the order
like image 833
Vini Avatar asked May 15 '09 19:05

Vini


People also ask

Which library is used in NLP?

NLTK is the main library for building Python projects to work with human language data.

What is better than NLTK?

While NLTK provides access to many algorithms to get something done, spaCy provides the best way to do it. It provides the fastest and most accurate syntactic analysis of any NLP library released to date. It also offers access to larger word vectors that are easier to customize.

Is Python good for NLP?

There are many things about Python that make it a really good programming language choice for an NLP project. The simple syntax and transparent semantics of this language make it an excellent choice for projects that include Natural Language Processing tasks.


2 Answers

LingPipe is very nice and well documented. You can also take a look at:

  • OpenNLP
  • Stanford NLP
  • Apache UIMA
  • GATE
  • CogComp-NLP
  • FrameNet

The last one specifically might be of interest to you, although I don't know whether there are any readily available Java implementations (and maybe that's too big of a gun for your problem anyway :-)

Paul's idea of using a DSL is probably easier and faster to implement, and more reliable to use for your customers. I, too, would recommend looking into that first.

like image 79
n3rd Avatar answered Sep 23 '22 10:09

n3rd


I think whether or not you choose to use NLP might depend on the specific requirements for your system. Is it a requirement that free-form english should be accepted, or will only a certain set of instructions be accepted? It might be easier to build a domain specific language that supports what your users need to convey than to do full-on semantic analysis of free-form text.

In the Java space, Groovy has some support for building DSLs.

like image 44
Paul Morie Avatar answered Sep 22 '22 10:09

Paul Morie