我怎么能使用natty-master?

时间:2013-05-17 13:31:25

标签: java android nlp natty

我应该在我的android项目中使用natty-master。但我无法导入它。如果没有maven我怎么能使用natty?我发现这些代码,我添加了罐子,但它不起作用。

import java.util.Date;

import java.util.List;

import java.util.Map;

import com.joestelmach.natty.*;

public class natty {

public static void main(String[] args) {

    Parser parser = new Parser();

    List<DateGroup> groups = parser.parse("the day before next thursday");
    for(DateGroup group:groups)  {
    Date dates = group.getDates().get(0);           
    int line = group.getLine();
    int column = group.getPosition();
    String matchingValue = group.getText();
    String syntaxTree = group.getSyntaxTree().toStringTree();
        Map parseMap = group.getParseLocations();
    boolean isRecurreing = group.isRecurring();
    Date recursUntil = group.getRecursUntil();
       }
    }

}

1 个答案:

答案 0 :(得分:3)

我为你调查了一下。
我假设您正在使用Eclipse与当前版本的ADT插件。 首先,让我们确保您正确添加罐子:

  1. 您必须在您的根目录级别创建名为libs的文件夹     项目(与srcres等一起)。
  2. 将第三方罐子复制到libs
  3. 右键单击项目并执行Refresh,ADT将发现libs并将其添加为Android Dependencies。
  4. 现在为图书馆。 Maven列出的natty-07.jar的所有依赖关系都是:

    antlr-2.7.7.jar
    antlr-runtime-3.2.jar
    backport-util-concurrent-3.1.jar
    commons-codec-1.5.jar
    commons-lang-2.6.jar
    commons-logging-1.1.1.jar
    ical4j-1.0.2.jar
    stringtemplate-3.2.jar
    

    是的,你必须将2.3 MB的依赖项复制到libs 我不认为它们在运行时都是必需的,但我无法分辨哪些是至关重要的 使用ProGuard可能会减少其中一些,但这是另一个故事。

    我使用minSdkVersion =“8”和targetSdkVersion =“17”创建了快速的脏应用程序。然后将您提供的示例代码放入Activity中,并针对输入"the day before next thursday"运行它。结果我得到了一个日期[Wed May 22 16:52:49 GMT 2013]的单一组,这是好的,因为今天是5月17日星期五。


    编辑2013-06-02
    基本代码:
    http://pastebin.com/XrF5k10M
    完整解决方案:
    https://www.dropbox.com/sh/qk2cs51twrpobuz/YaFZWiG5jP/StackOverflow/16610375/NattyApp.zip