我正在使用 Stanford Core NLP gem 编写一个简单的应用程序。
我的简单 HTML 表单在“/new”处有一个文本框,我在控制器中呈现视图,如下所示:
def create
@text = Text.new(text_params)
if @text.save
redirect_to text_path(@text)
else
render "new"
end
end
def show
@text = Text.find(params[:id])
@text = @text.pos_tagger(@text)
end
只是为了检查我是否可以从 NLP 核心 gem 中获得一些输出,这是我的文本模型:
class Text < ActiveRecord::Base
def pos_tagger (text)
require 'stanford-core-nlp'
pipeline = StanfordCoreNLP.load(:tokenize, :ssplit, :pos, :lemma, :parse, :ner, :dcoref)
text = StanfordCoreNLP::Annotation.new(text)
newtext = pipeline.annotate(text)
return newtext
end
end
当我运行该应用程序时,一切都很好,直到我进入显示页面,当我收到以下错误时:
由 TextsController#show 处理为 HTML 参数:{"id"=>"5"} 文本加载 (0.4ms) SELECT "texts".* FROM "texts" WHERE "texts"."id" = ? 限制 1 [["id", "5"]] 跟踪/BPT 陷阱:5
并且应用程序退出。
我究竟做错了什么?