我希望在我的 Rails 应用程序中添加一些文本解析,并且在过去的几天里一直在寻找有关如何使其工作的任何教程或提示。
我对 Java 完全陌生,但没有什么比双脚跳更有趣的了。
我怀疑以下代码不属于我的控制器,并且应该在模型中,但我只是看看此时我是否将所有部分都放在了正确的位置。
我从这个 SO question 中借用了这段代码,在 jruby 中实现了自定义 java 类,因为我找不到任何类型的示例代码。
#my 需要/imports/includes,包含多个版本以确保安全 需要'java' #包括Java 需要'/media/sf_Ruby192/java_progs/parser/stanford-parser.jar' #require '/media/sf_Ruby192/java_progs/parser/' 需要“红宝石” include_class 'edu.stanford.nlp.parser.lexparser.LexicalizedParser' 类 ParseController < ApplicationController 定义索引 lp = LexicalizedParser.new #检查常规Java是否正常工作 列表 = java.util.ArrayList.new 一个=“1” b = "2" list.add(a) list.add(b) d = 列表[0] 返回渲染:文本 => 列表 结尾 结尾
不幸的是,我得到了错误
java.lang.NullPointerException:空
当我包括
lp = LexicalizedParser.new
我做错了吗?当我注释掉 lp = ... 时,我得到了列表输出,所以 jruby 正在工作,我可以在我的 rails 应用程序中编写 java 并获取输出。
有人可以指出我正确的方向,也许可以告诉我这段代码有什么问题,但希望实际上让我直接了解我应该如何使用 jruby 和 rails。希望对斯坦福解析器也有一些意见(我知道,有很多问题要问)。我发现的文档或示例代码似乎很少。