0

Watson のRetrieve & Rankサービスを使用してソリューションを実装しています。

ツール インターフェイスを使用する場合、ドキュメントをアップロードすると、リストとして表示されます。図 1に示すように、ドキュメント内の任意のタイトルをクリックして、ドキュメント内のすべてのタイトル ( Answer Units ) を開くことができます。と写真 2。

Java 経由でドキュメントをアップロードしようとすると、ドキュメントが認識されず、パーツ ( Answer units as documents )、各パーツが新しいドキュメントとしてアップロードされます。

ドキュメントの一部だけでなくドキュメント全体をアップロードする方法を教えてください。

Java でのアップロード機能のコードは次のとおりです。

    public Answers ConvertToUnits(File doc, String collection) throws ParseException, SolrServerException, IOException{
    DC.setUsernameAndPassword(USERNAME,PASSWORD);
    Answers response = DC.convertDocumentToAnswer(doc).execute();
    SolrInputDocument newdoc = new SolrInputDocument();
    WatsonProcessing wp = new WatsonProcessing();
    Collection<SolrInputDocument> newdocs = new ArrayList<SolrInputDocument>();

    for(int i=0; i<response.getAnswerUnits().size(); i++)
    {
        String titulo = response.getAnswerUnits().get(i).getTitle();
        String id = response.getAnswerUnits().get(i).getId();
        newdoc.addField("title", titulo);
        for(int j=0; j<response.getAnswerUnits().get(i).getContent().size(); j++)
        {
            String texto = response.getAnswerUnits().get(i).getContent().get(j).getText();
            newdoc.addField("body", texto);

        }
        wp.IndexDocument(newdoc,collection);
        newdoc.clear();
    }
    wp.ComitChanges(collection);
    return response;
}


      public void IndexDocument(SolrInputDocument newdoc, String collection) throws SolrServerException, IOException
  {
      UpdateRequest update = new UpdateRequest();
      update.add(newdoc);
      UpdateResponse addResponse = solrClient.add(collection, newdoc);
  }
4

1 に答える 1

1

次の行で構成オプションを指定できます。

Answers response = DC.convertDocumentToAnswer(doc).execute();

私はこのようなことがうまくいくはずだと思います:

String configAsString = "{ \"conversion_target\":\"answer_units\", \"answer_units\": { \"selector_tags\": [] } }";

JsonParser jsonParser = new JsonParser();
JsonObject customConfig = jsonParser.parse(configAsString).getAsJsonObject();    

Answers response = DC.convertDocumentToAnswer(doc, null, customConfig).execute();

私は試していないので、構文が正確ではないかもしれませんが、うまくいけば、これで正しい軌道に乗ることができます。

基本的に、私がここでやろうとしているのは、selector_tags構成でオプションを使用することです (これに関するドキュメントについては、 https: //www.ibm.com/watson/developercloud/doc/document-conversion/customizing.shtml#htmlau を参照してください)。ドキュメントを分割するタグを指定します。タグが含まれていない空のリストを指定すると、まったく分割されず、必要に応じて単一の回答単位で出てきます。

(ドキュメントをアップロードするときに [ドキュメントを個別の回答に分割する] オプションのチェックを外すことで、ツール インターフェイスからもこれを行うことができることに注意してください)

于 2016-08-30T16:56:11.940 に答える