Is there a good natural language processing librar

2019-01-01 12:24发布

问题:

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

回答1:

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.



回答2:

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.



回答3:

For other JVM languages see

  • Scala: Scala NLP - Breeze and Epic (related spark-project.org )
  • Clojure: clojure-opennlp


标签: java nlp