You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dart相似度匹配聊天机器人多意图响应异常问题求助

解决Dart聊天机器人多类别匹配问题

当前你的问题核心是原有逻辑仅取相似度最高的单一类别返回响应,要实现多类别匹配,需对每个短语类别单独做相似度评估,判断是否达到匹配阈值,再收集所有符合条件的响应。以下是具体实现方案:

1. 重构类别结构

先把每个短语类别(问候、道别等)封装成包含短语列表和对应响应的实体,方便统一处理:

class ChatCategory {
  final String name;
  final List<String> phrases;
  final String response;

  ChatCategory({
    required this.name,
    required this.phrases,
    required this.response,
  });
}

2. 实现多类别匹配逻辑

不再只筛选单一最高相似度类别,而是遍历所有类别,计算用户输入与该类别下所有短语的最高相似度,若超过预设阈值则标记为匹配:

import 'package:string_similarity/string_similarity.dart';

// 定义相似度阈值(可根据需求调整,比如0.5)
const double similarityThreshold = 0.5;

List<String> getMultiCategoryResponses(String userInput, List<ChatCategory> categories) {
  List<String> matchedResponses = [];

  for (var category in categories) {
    // 计算用户输入与当前类别所有短语的最高相似度
    double maxSimilarity = 0.0;
    for (var phrase in category.phrases) {
      // 统一转小写避免大小写干扰相似度计算
      double similarity = userInput.toLowerCase().similarityTo(phrase.toLowerCase());
      if (similarity > maxSimilarity) {
        maxSimilarity = similarity;
      }
    }

    // 若相似度超过阈值则加入响应列表
    if (maxSimilarity >= similarityThreshold) {
      matchedResponses.add(category.response);
    }
  }

  return matchedResponses;
}

3. 测试示例

初始化类别数据并测试多输入场景:

void main() {
  // 初始化各类别数据
  List<ChatCategory> categories = [
    ChatCategory(
      name: '问候',
      phrases: ['hello', 'hi', 'hey'],
      response: '你好!很高兴见到你😊',
    ),
    ChatCategory(
      name: '道别',
      phrases: ['good bye', 'bye', 'see you'],
      response: '再见!期待下次见面👋',
    ),
  ];

  // 测试输入"Hello good bye"
  String userInput = "Hello good bye";
  List<String> responses = getMultiCategoryResponses(userInput, categories);

  // 输出所有匹配的响应,也可通过join拼接成单句
  for (var response in responses) {
    print(response);
  }
}

关键说明

  • 阈值调整:similarityThreshold需根据实际场景调试,严格匹配可设为0.6,宽松匹配可设为0.4。
  • 响应组合:若需要将多个响应合并成一句话,可使用responses.join(' ')完成拼接。
  • 性能优化:如果类别短语数量较多,可提前将所有短语转成小写缓存,避免重复转换。

内容的提问来源于stack exchange,提问作者Mustafa Abu Shraikh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 16:04:57