当前位置: 首页 > ai >正文

简单的基于关键词匹配的 QA 系统示例

下面为你展示使用 Java 开发一个简单的基于关键词匹配的 QA 系统的示例。此系统会把关键词和对应的答案存储在一个 Map 里,接着通过匹配用户输入的关键词来返回相应答案。

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;public class QASystem {// 初始化知识库private static final Map<String, String> knowledgeBase = new HashMap<>();static {knowledgeBase.put("天气", "今天天气晴朗");knowledgeBase.put("价格", "产品价格是199元");knowledgeBase.put("售后", "售后电话:400-xxx,7天无理由退换");}// 获取答案的方法public static String getAnswer(String question) {for (Map.Entry<String, String> entry : knowledgeBase.entrySet()) {if (question.contains(entry.getKey())) {return entry.getValue();}}return "对不起,我暂时无法回答这个问题。";}public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("请输入你的问题:");String question = scanner.nextLine();String answer = getAnswer(question);System.out.println(answer);scanner.close();}
}

代码解释

  1. 知识库初始化:借助 static 代码块对 knowledgeBase 这个 Map 进行初始化,把关键词和对应的答案存进去。
  2. 获取答案方法getAnswer 方法会遍历 knowledgeBase,查看用户输入的问题是否包含关键词,若包含就返回对应的答案,若不包含则返回默认回复。
  3. 主方法:在 main 方法中,运用 Scanner 类来获取用户输入的问题,接着调用 getAnswer 方法得到答案并输出。

拓展建议

  • 模糊匹配:可以使用第三方库(如 Apache Commons Text)来实现模糊匹配,从而处理用户输入中存在错别字或语序不同的情况。
  • 使用正则表达式:利用正则表达式来匹配更灵活的关键词模式。
  • 数据库存储:把知识库存到数据库中,这样就能更方便地进行管理和更新。
http://www.xdnf.cn/news/4494.html

相关文章:

  • ICode国际青少年编程竞赛—Python—4级训练场—复杂嵌套循环
  • 多线程的出现解决了什么问题?深入解析多线程的核心价值
  • 力扣——25 K个一组翻转链表
  • 写个远程操作Android的调试程序
  • 【Linux篇】多线程编程中的互斥与同步:深入理解锁与条件变量的应用
  • Nginx 性能调优与深度监控
  • 7. HTML 表格基础
  • 第三章、RL Games:High performance RL library
  • femap许可回收流程
  • mysql修改root密码
  • 东方泵业,室外消火栓泵 2#故障灯亮,报警生响
  • 蓝桥杯2025年第十六届省赛真题-水质检测
  • 【shardingsphere分布式主键无效】
  • Linux 系统命令使用指南1
  • 2025最新出版 Microsoft Project由入门到精通(二)
  • WPF 触发器 Trigger
  • java每日精进 5.07【框架之数据权限】
  • 【C++游戏引擎开发】第33篇:物理引擎(Bullet)—射线检测
  • 小数的二进制表示
  • 【卡特兰数】不同的二叉搜索树
  • 学习笔记:黑马程序员JavaWeb开发教程(2025.3.30)
  • (25.05)Ubuntu 20.04上安装和运行ORB-SLAM3(非ROS)
  • 操作指南*
  • 数通HCIE的通过率怎么样?
  • no main manifest attribute, in xxx.jar
  • 软件系统的可观测性 Observability
  • 【AI】模型与权重的基本概念
  • 《Python星球日记》 第45天:KNN 与 SVM 分类器
  • 从电话到V信语音:一款App实现全场景社交脱身
  • 28.成功解决i2c_transfer返回-6的问题并linux驱动mpu6050(适合一切linux学习者)