私はApache cTAKESを使用しています。出力はJSONで必要です。私がしようとしているGoogleのgsonここでは、UIMAでJSON形式で出力する
public static void main(final String... args) throws IOException, UIMAException, SAXException {
final String note = "Serum Cholesterol 154 150 250 mgs/dl\n-\nSerum Triglycerides 67 90 200 mgs /dl\n-\nSerum HDL: Cholesterol 38 35 55 mgs /dl\n-\nSerum LDL: Cholesterol 49 85 150 mgs/d1\n-\nSerum VLDL: Cholesterol 13 10 40 mgs/dl\n-\nTotal Cholesterol/HDL Ratio: 3.90\";
final JCas jcas = JCasFactory.createJCas();
jcas.setDocumentText(note);
final AnalysisEngineDescription aed = getFastPipeline();
SimplePipeline.runPipeline(jcas, aed);
Collection<TOP> codes = JCasUtil.selectAll(jcas);
List<TOP> list = new ArrayList<>(codes)
TOP [] res = list.toArray(new TOP[list.size()]);
// System.out.println(Arrays.toString(res));
String json = new Gson().toJson(res);
System.out.println(json);
}
これは、次のエラーで返され、
Exception in thread "main" java.lang.IllegalArgumentException: class org.apache.uima.jcas.tcas.DocumentAnnotation_Type declares multiple JSON fields named fsGenerator
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:122)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:72)
at com.google.gson.Gson.getAdapter(Gson.java:353)
at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:55)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:89)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:195)
at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68)
at com.google.gson.internal.bind.ArrayTypeAdapter.write(ArrayTypeAdapter.java:93)
at com.google.gson.Gson.toJson(Gson.java:586)
at com.google.gson.Gson.toJson(Gson.java:565)
at com.google.gson.Gson.toJson(Gson.java:520)
at com.google.gson.Gson.toJson(Gson.java:500)
at org.apache.ctakes.clinicalpipeline.ExtractNEs.main(ExtractNEs.java:146)
どれガイダンスは大きな助けになるでしょう。 おかげ
「TOP」とは何ですか?与えられた例外メッセージで、多分これは助けます:http://stackoverflow.com/questions/16476513/class-a-declares-multiple-json-fields – PeterMmm
TOPはorg.apache.uima.jcas.cas.TOP – monsy