1
我與wit.ai的小鴨(https://duckling.wit.ai/)工作中傳遞參數到小鴨Clojure的功能,但是我依賴於從我的Java應用程序中調用小鴨。我沒有Clojure的經驗...從Java應用程序
我能夠運行Duckling的解析方法,但我無法弄清楚如何傳遞日期/時間作爲時間和日期解析的上下文。
下面是函數:
(defn parse
"Public API. Parses text using given module. If dims are provided as a list of
keywords referencing token dimensions, only these dimensions are extracted.
Context is a map with a :reference-time key. If not provided, the system
current date and time is used."
([module text]
(parse module text []))
([module text dims]
(parse module text dims (default-context :now)))
([module text dims context]
(->> (analyze text context module (map (fn [dim] {:dim dim :label dim}) dims) nil)
:winners
(map #(assoc % :value (engine/export-value % {})))
(map #(select-keys % [:dim :body :value :start :end :latent])))))
在測試語料庫,它在該文件的頂部上下文數據。這在測試語料庫時被傳遞到解析函數。
{:reference-time (time/t -2 2013 2 12 4 30 0)
:min (time/t -2 1900)
:max (time/t -2 2100)}
這裏是我的Java代碼:
public void extract(String input) {
IFn require = Clojure.var("clojure.core", "require");
require.invoke(Clojure.read("duckling.core"));
Clojure.var("duckling.core", "load!").invoke();
LazySeq o = (LazySeq) Clojure.var("duckling.core", "parse").invoke("en$core", input, dims);
}
我的問題是,我怎麼在插入一個特定的日期/時間作爲參數解析功能?
編輯1再看看它,它看起來像這是一個日期時間對象。小鴨取決於CLJ-時間0.8.0,但我無法弄清楚如何呼喚CLJ-時間在Java中創建相同的對象。