解析结果包含多个不同的domain,如何解析?
勤奋的车和家 发布于2016-10 浏览:1711 回复:5
0
收藏


SDK版本号:2.1.20

OS:Android


语音“ 播放歌曲” 解析结果如下:


{"content":{"item":["播放歌曲"],"json_res":"{\"parsed_text\":\"播放 歌曲\",\"raw_text\":\"播放歌曲\",\"results\":[{\"domain\":\"music\",\"intent\":\"play\",\"object\":{\"_type\":\"歌曲\",\"type\":\"歌曲\"},\"score\":0.950},{\"domain\":\"player\",\"intent\":\"set\",\"object\":{\"_action_type\":\"播放歌曲\",\"action_type\":\"play\"},\"score\":0.950},{\"domain\":\"vehicle_instruction\",\"intent\":\"open\",\"object\":{\"_equipment\":\"media_player\",\"equipment\":\"media_player\"},\"score\":0.950}]}\n"},"result":{"corpus_no":6340156472458283668,"err_no":0,"idx":-15,"res_type":3,"sn":"1ba760c2-311d-4999-9ba9-37d8afbd196e"}}


domain 解析出来多个,每个domain相关的字段根据 语意会有不同的变化,

问题: 

1)如何 用代码来解析 不同的domain相关的数据?

2)如何处理 domain中 变化的字段?因为要根据解析结果来操作具体的执行。


收藏
点赞
0
个赞
共5条回复 最后由用户已被禁言回复于2022-04
#15用户已被禁言回复于2022-04

https://ai.baidu.com/search/%E6%9E%9C%E6%95%A2%E8%80%81%E8%A1%97%E4%BA%A8%E5%88%A9%E9%9B%86%E5%9B%A2%E5%AE%98%E7%BD%91TL262%C2%B7C%EF%BC%AFM%E6%B7%84%E5%8D%9A%E7%99%BE%E5%A7%93%E7%BD%91%EF%BC%AE%EF%BC%A5/cases/1 https://read.douban.com/tag/%E7%BC%85%E7%94%B8%E5%8D%8E%E7%BA%B3%E5%9B%BD%E9%99%85%E6%89%8B%E6%9C%BAapp%E5%BE%AE%E4%BF%A1%E5%BC%80%E6%88%B7%E7%94%B5%E8%AF%9D%E6%B8%B8%E6%88%8F%E7%BD%91%E5%9D%80B2024%C2%B7CN%E8%B4%B5%E9%98%B3%E7%A7%BB%E5%8A%A8%EF%BC%BB http://mip.chinaz.com/?query=%E5%90%89%E6%9E%97%E5%90%89%E6%9E%97%E7%9C%9F%E4%BA%BA%E5%B9%B3%E5%8F%B0%E3%80%90TL262%C2%B7C%EF%BC%AFM%E6%AC%A2%E8%BF%8E%E6%82%A8%E3%80%91%E5%AE%9A%E8%A5%BF%E7%BD%91%E9%80%9A%EF%BD%93%EF%BC%A5 http://so.iqiyi.com/so/q_%E9%93%B6%E9%92%BB%E5%A8%B1%E4%B9%90%E5%BC%80%E6%88%B7%E5%AE%98%E7%BD%91%E5%BE%AE%E4%BF%A1%E7%9B%B4%E8%90%A5%E5%BC%80%E6%88%B7%3ATL262%C2%B7%EF%BC%A3%EF%BC%AF%EF%BC%AD%E5%BB%8A%E5%9D%8A%E7%99%BE%E5%A7%93%E7%BD%91%EF%BC%A7%EF%BC%BB%EF%BC%B2?source=hot https://www.ziyuan.tv/search/%E7%BC%85%E7%94%B8%E9%91%AB%E7%99%BE%E5%88%A9%E7%AE%80%E4%BB%8B%E5%BC%80%E6%88%B7B2024.cN%E6%9D%AD%E5%B7%9E%E8%8A%82%E7%9B%AE%E8%A1%A8%EF%BD%8E

0
#5c5812回复于2016-10

建议直接通过JSONObject类来解析 不要向Java类反序列化或映射

0
#4勤奋的车和家回复于2016-10

获取第一个结果如何解析呢?


一般来说都是将 json串转化为一个相关的json类。

我们可以知道json的domain 标记的值,但是 同一个domain中数据格式又不一样(同一个场景的不同输入,播放忘情水,和播放刘德华的忘情水, 解析的格式就不同,,其他场景 下也可能解析结果 里面的字段也不一致。),有没有好的办法来处理 解析出来的结果呢?


就是说同一个domain 格式不同 对应的类就不同,那么如何准确判断把json转化为正确的类呢





0
#3c5812回复于2016-10


您好,针对您的问题建议只使用第一个结果

0
#2勤奋的车和家回复于2016-10

其他设置


intent.putExtra(SoundAnalysisConstant.EXTRA_SOUND_START, R.raw.bdspeech_recognition_start);
intent.putExtra(SoundAnalysisConstant.EXTRA_SOUND_END, R.raw.bdspeech_speech_end);
intent.putExtra(SoundAnalysisConstant.EXTRA_SOUND_SUCCESS, R.raw.bdspeech_recognition_success);
intent.putExtra(SoundAnalysisConstant.EXTRA_SOUND_ERROR, R.raw.bdspeech_recognition_error);
intent.putExtra(SoundAnalysisConstant.EXTRA_SOUND_CANCEL, R.raw.bdspeech_recognition_cancel);

// intent.putExtra(SoundAnalysisConstant.EXTRA_GRAMMAR, "assets:///baidu_speech_grammar.bsg");
intent.putExtra(SoundAnalysisConstant.EXTRA_NLU, "enable");
// intent.putExtra(SoundAnalysisConstant.EXTRA_OFFLINE_SLOT_DATA, buildTestSlotData());
intent.putExtra(SoundAnalysisConstant.EXTRA_SAMPLE, SoundAnalysisConstant.SAMPLE_16K);
// intent.putExtra(SoundAnalysisConstant.EXTRA_LANGUAGE, "cmn-Hans-CN");
// intent.putExtra(SoundAnalysisConstant.EXTRA_PROP, "100060, 10001, 10008, 100014, 100019, 100020");


0
TOP
切换版块