【问题标题】:Simple NLP in JavaJava中的简单NLP
【发布时间】:2015-07-24 14:12:57
【问题描述】:

我需要开发一个 Java 应用程序,它将根据用户定义的条件/过滤器扫描/搜索给定的字符串并返回 true 或 false。用户标准/过滤器将是

关键字 正则表达式 并且用户可以定义多个 AND & OR 过滤器,也可以定义 NOT。下面是一些例子:

Contains "Test" AND Contains "Java" OR Contains "Stackoverflow"
Not Contains "Warning"
Contains "Regex here"

由于它是单列并且我在后端有 Oracle 数据库,因此执行此操作的一种方法是允许用户在普通 SQL where 子句语法中定义条件,而不是在应用程序中执行搜索,我可以将其传递给数据库如下:

SELECT col1 from (select 'String to search Java Test' as col1 from dual) DUMMY where col1 like 'String%' and col1 like '%Java%';

不确定这是否是最好的方法,或者是否有任何好的 NLP 库可以做到这一点。希望有任何反馈意见

【问题讨论】:

    标签: java oracle nlp


    【解决方案1】:

    您可以使用Lucene 将字符串索引到内存中,并使用Lucene query grammar 进行搜索。

    有一个完整的例子:lucene-in-memory-text-search-example

    【讨论】:

    • 您能否详细说明这对我的要求有何帮助。它不只是搜索一些文本吗?我需要将用简单英语编写的过滤器转换为我可以在 Java 中使用的东西
    • 我认为你可以使用原始的lucene语法进行搜索,但首先你需要索引你的搜索内容。您的用户需要了解 lucene 语法。您也可以定义自己的 DSL 来转换为 lucene 语法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-27
    • 2013-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多