【问题标题】:How can i use natty-master?我如何使用 natty-master?
【发布时间】:2013-05-17 13:31:24
【问题描述】:

我应该在我的 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();
       }
    }

}

【问题讨论】:

    标签: java android nlp natty


    【解决方案1】:

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

    1. 您必须在您的根目录下创建名为libs 的文件夹 项目(与srcres 等一起)。
    2. 将第 3 方 jar 复制到 libs
    3. 右键单击项目并执行刷新,ADT 将发现库并将其添加为 Android 依赖项。

    现在是图书馆。 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

    【讨论】:

    • 不错的答案。这个周末我刚刚遇到了类似的问题,因为我在 Maven 构建之外尝试了 natty-0.8。我在运行时需要的唯一两个依赖项是antlr-runtime-3.2.jarical4j-1.0.2.jar。 Natty 是我迄今为止尝试过的一个不错的库。
    • 我又有问题了。我写了这段代码,它在java项目中正常工作。但是当我在 android 设备上尝试它时,我在运行开始时将错误视为“它已停止”。可能是什么原因?
    • 这是一般错误消息。任何事情都可能是原因。尝试使用您的工具:阅读 logcat,检查 Eclipse 的控制台视图,在代码中放置一些断点,然后在调试模式下运行您的应用程序。如果不提供像异常堆栈跟踪这样的最小输入,没有人可以帮助您。我将使用完整解决方案的链接扩展我的答案,希望您会发现它们有用。
    猜你喜欢
    • 2015-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-27
    • 1970-01-01
    • 2021-09-08
    • 1970-01-01
    • 2011-10-23
    相关资源
    最近更新 更多