Java 有没有好的自然语言处理库

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/870460/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-11 20:28:23  来源:igfitidea点击:

Is there a good natural language processing library

javanlp

提问by Vini

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:

我需要在我当前的模块中实现一些 NLP。我正在寻找一些可以帮助我的好图书馆。我遇到了“LingPipe”,但无法完全了解如何使用它。
基本上,我们需要实现一个功能,应用程序可以破译用纯英文输入的客户说明(交货说明)。例如:

  • 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
  • 明天中午12:00来接
  • 要求在 6 月 10 日之后交货
  • 请不要在周三之前发送
  • 将 10 个单位的 XYZ 添加到订单中

采纳答案by n3rd

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

LingPipe非常好并且有据可查。你也可以看看:

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 :-)

您可能会对最后一个特别感兴趣,尽管我不知道是否有任何现成的 Java 实现(而且对于您的问题来说,这可能是一把太大的枪:-)

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.

Paul 使用 DSL 的想法可能更容易、更快速地实现,并且更可靠地为您的客户使用。我也建议先研究一下。

回答by Paul Morie

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 languagethat supports what your users need to convey than to do full-on semantic analysis of free-form text.

我认为您是否选择使用 NLP 可能取决于您的系统的具体要求。是否要求接受自由形式的英语,还是只接受特定的指令集?构建一种支持用户需要传达的内容的领域特定语言可能比对自由格式文本进行全面的语义分析更容易。

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

在 Java 领域,Groovy 对构建 DSL有一些支持。

回答by oluies

For other JVM languages see

对于其他 JVM 语言,请参阅