全部产品

对话知识抽取

更新时间:2020-10-30 14:37

对话知识抽取服务适用于客服-消费者在线聊天场景,从对话内容中抽取出客服问-客户答、客户问-客服答等客服话术和用户问题,可用于后续的用户热点问题分析或构建客服话术库,优化客服机器人。使用示例如下。

Java代码示例

  1. class MsgDO{
  2. private String role;
  3. private String content;
  4. public MsgDO(String role,String content) {
  5. this.role = role;
  6. this.content = content;
  7. }
  8. public String getRole() {
  9. return role;
  10. }
  11. public void setRole(String role) {
  12. this.role = role;
  13. }
  14. public String getContent() {
  15. return content;
  16. }
  17. public void setContent(String content) {
  18. this.content = content;
  19. }
  20. }
  21. DefaultProfile defaultProfile = DefaultProfile.getProfile("cn-hangzhou","your-access-id-key","your-access-id-secret");
  22. IAcsClient client = new DefaultAcsClient(defaultProfile);
  23. Map<String, Object> obj = new HashMap<String, Object>();
  24. List<MsgDO> msgs = new ArrayList<MsgDO>();
  25. msgs.add(new MsgDO("客服","喂,你好。"));
  26. msgs.add(new MsgDO("客户","喂,你好。"));
  27. msgs.add(new MsgDO("客服","我是菜鸟驿站的服务专员。你有包裹送到菜鸟驿站这边了,请问有空了,方便来拿吗。"));
  28. msgs.add(new MsgDO("客户","哪里的菜鸟驿站。"));
  29. msgs.add(new MsgDO("客服","稍等给您报一下驿站的地址。我们在卢春小区2-16号小区门口诊所隔壁。"));
  30. msgs.add(new MsgDO("客服","地址,待会会短信发给您,您看有空的时候随时来拿可以吗。"));
  31. msgs.add(new MsgDO("客户","嗯。"));
  32. msgs.add(new MsgDO("客户","驿站在哪里呀。"));
  33. msgs.add(new MsgDO("客服","这样,您可以看一下短信中的地址是否方便过来,有问题再联系我好吗。"));
  34. msgs.add(new MsgDO("客户","好。"));
  35. obj.put("msgs",msgs);
  36. RunPreTrainServiceRequest request = new RunPreTrainServiceRequest();
  37. request.setServiceName("NLP-dialog-knowledge");
  38. request.setPredictContent(JSON.toJSONString(obj));
  39. RunPreTrainServiceResponse response = client.getAcsResponse(request);
  40. System.out.println(response.getPredictResult());

Python代码示例

  1. # 安装依赖
  2. pip install aliyun-python-sdk-core
  3. pip install aliyun-python-sdk-nlp-automl
  1. # -*- coding: utf8 -*-
  2. import json
  3. from aliyunsdkcore.client import AcsClient
  4. from aliyunsdkcore.acs_exception.exceptions import ClientException
  5. from aliyunsdkcore.acs_exception.exceptions import ServerException
  6. from aliyunsdknlp_automl.request.v20191111 import RunPreTrainServiceRequest
  7. # Initialize AcsClient instance
  8. client = AcsClient(
  9. "<your-access-key-id>",
  10. "<your-access-key-secret>",
  11. "cn-hangzhou"
  12. );
  13. content = {
  14. "msgs": [
  15. {
  16. "role": "客服",
  17. "content": "喂,你好。"
  18. },
  19. {
  20. "role": "客户",
  21. "content": "喂,你好。"
  22. },
  23. {
  24. "role": "客服",
  25. "content": "我是菜鸟驿站的服务专员。你有包裹送到菜鸟驿站这边了,请问有空了,方便来拿吗。"
  26. },
  27. {
  28. "role": "客户",
  29. "content": "哪里的菜鸟驿站。"
  30. },
  31. {
  32. "role": "客服",
  33. "content": "稍等给您报一下驿站的地址。我们在某某小区2-16号小区门口诊所隔壁。"
  34. },
  35. {
  36. "role": "客服",
  37. "content": "地址,待会会短信发给您,您看有空的时候随时来拿可以吗。"
  38. },
  39. {
  40. "role": "客户",
  41. "content": "嗯。"
  42. },
  43. {
  44. "role": "客户",
  45. "content": "驿站在哪里呀。"
  46. },
  47. {
  48. "role": "客服",
  49. "content": "这样,您可以看一下短信中的地址是否方便过来,有问题再联系我好吗。"
  50. },
  51. {
  52. "role": "客户",
  53. "content": "你帮我把我的手机到我这里来拿眼镜的那笔。"
  54. },
  55. {
  56. "role": "客服",
  57. "content": "嗯,好的,您凭短信过来拿包裹就好了,有问题您再联系我们。"
  58. }
  59. ]
  60. }
  61. # Initialize a request and set parameters
  62. request = RunPreTrainServiceRequest.RunPreTrainServiceRequest()
  63. request.set_ServiceName('NLP-dialog-knowledge')
  64. request.set_PredictContent(json.dumps(content))
  65. # Print response
  66. response = client.do_action_with_exception(request)
  67. resp_obj = json.loads(response)
  68. predict_result = json.loads(resp_obj['PredictResult'])
  69. print(predict_result)

PredictContent内容示例

  1. {
  2. "msgs": [
  3. {
  4. "role": "客服",
  5. "content": "喂,你好。"
  6. },
  7. {
  8. "role": "客户",
  9. "content": "喂,你好。"
  10. },
  11. {
  12. "role": "客服",
  13. "content": "我是菜鸟驿站的服务专员。你有包裹送到菜鸟驿站这边了,请问有空了,方便来拿吗。"
  14. },
  15. {
  16. "role": "客户",
  17. "content": "哪里的菜鸟驿站。"
  18. },
  19. {
  20. "role": "客服",
  21. "content": "稍等给您报一下驿站的地址。我们在某某小区2-16号小区门口诊所隔壁。"
  22. },
  23. {
  24. "role": "客服",
  25. "content": "地址,待会会短信发给您,您看有空的时候随时来拿可以吗。"
  26. },
  27. {
  28. "role": "客户",
  29. "content": "嗯。"
  30. },
  31. {
  32. "role": "客户",
  33. "content": "驿站在哪里呀。"
  34. },
  35. {
  36. "role": "客服",
  37. "content": "这样,您可以看一下短信中的地址是否方便过来,有问题再联系我好吗。"
  38. },
  39. {
  40. "role": "客户",
  41. "content": "你帮我把我的手机到我这里来拿眼镜的那笔。"
  42. },
  43. {
  44. "role": "客服",
  45. "content": "嗯,好的,您凭短信过来拿包裹就好了,有问题您再联系我们。"
  46. }
  47. ]
  48. }

PredictResult内容示例

  1. {
  2. "code": 1000,
  3. "data": {
  4. "cost": "14.822ms",
  5. "knowledges": [
  6. {
  7. "hits": [
  8. [
  9. "哪里的菜鸟驿站。",
  10. "稍等给您报一下驿站的地址。我们在某某小区2-16号小区门口诊所隔壁。"
  11. ],
  12. [
  13. "驿站在哪里呀。",
  14. "这样,您可以看一下短信中的地址是否方便过来,有问题再联系我好吗。"
  15. ]
  16. ],
  17. "name": "用户问-客服答"
  18. },
  19. {
  20. "hits": [
  21. [
  22. "我是菜鸟驿站的服务专员。你有包裹送到菜鸟驿站这边了,请问有空了,方便来拿吗。",
  23. "哪里的菜鸟驿站。"
  24. ]
  25. ],
  26. "name": "客服问-用户答"
  27. }
  28. ]
  29. },
  30. "message": "OK",
  31. "tracerID": "2020-10-30 06:17:55.485426"
  32. }

入参说明

参数 说明
msgs 客服-客户在线聊天过程中的消息列表
role 说话人的角色,当前仅客服、客户两种角色
content 说话人的说话内容

出参说明

参数 说明
knowledges 抽取到的知识
name 知识类型名称,当前包括客服问-客户答、客户问-客服答两种类型
hits 命中当前知识类型的具体内容列表,例如name=“客服问-客户答”时,hit是为对话中所有命中该模式的对话内容列表,每个元素都是“客服问内容-客户答内容”