焦点要闻:使用Java实现关键词匹配
2023-03-16 06:04:12 来源:腾讯云
(资料图片仅供参考)
谁若想在困厄时得到援助,就应在平日待人以宽。一萨迪
概述:
在计算机科学领域中,关键词匹配指的是在一个文本或数据集中查找特定的单词或短语。关键词匹配可以应用于多个场景中,例如搜索引擎、垃圾邮件过滤、内容审查等。
理念:
在关键词匹配中,我们需要将关键词和待匹配的文本进行比较。最简单的方式是使用字符串匹配算法,例如暴力匹配算法和KMP算法。但是这些算法在处理大量文本时效率较低,因此我们需要使用更高效的算法。
场景:
例如:公众号关键词回复,在很多时候我们只要定义好大概的关键词内容,用户输入的内容携带关键词,就会返回相应的内容,大大减少了我们运营的时间,用户体验也会更好,及时的响应,只有特殊的问题需要人工处理,只要关键词匹配的够多够好,就可以替代人工的回复。
实现:
在Java中,我们可以使用正则表达式来实现关键词匹配。正则表达式是一种强大的文本处理工具,它可以用于描述字符串的模式,例如特定的字符序列、数字、空格等。Java中的正则表达式使用java.util.regex包进行支持。
//初始化数据 private static final List wordRespList = new ArrayList<>(); static { XwxKeyWordResp xwxKeyWordResp3 = new XwxKeyWordResp(); xwxKeyWordResp3.setKeyWord("查看问卷报酬,问卷报酬,微信提现,提现,红包,领红包,奖励,领取奖励,领奖,报酬,查看报酬,查看问卷奖励,问卷奖励,红包提现,数据报酬,查看数据报酬,领取报酬,领取红包,奖金,怎么领取,如何提现"); wordRespList.add(xwxKeyWordResp3); } /** * 根据用户输入内容匹配关键词 * * @param xwxKeyWordResp:关键词内容类 * @param text :用户输入内容 * @return boolean * @author king * @date 2023/3/15 11:02 */ public static boolean textMatching(XwxKeyWordResp xwxKeyWordResp, String text) { AtomicBoolean isOk = new AtomicBoolean(false); List keywordList = Arrays.stream(xwxKeyWordResp.getKeyWord().split(",")).collect(Collectors.toList()); keywordList.forEach(keyword -> { Pattern pattern = Pattern.compile(".*" + keyword + ".*"); Matcher matcher = pattern.matcher(text); if (matcher.matches()) { isOk.set(true); } }); return isOk.get(); } @Test void streamTextMatching() { //初始时间 long startTime = System.currentTimeMillis(); String text = "我怎么进行提现,才是最快的速度?"; List filterList = wordRespList.stream().filter(item -> textMatching(item, text)).collect(Collectors.toList()); filterList.forEach(System.out::println); //结束时间 long endTime = System.currentTimeMillis(); //打印 System.out.println("程序运行时间:" + (endTime - startTime) + "ms"); } 测试用例:
XwxKeyWordResp{keyWord="查看问卷报酬,问卷报酬,微信提现,提现,红包,领红包,奖励,领取奖励,领奖,报酬,查看报酬,查看问卷奖励,问卷奖励,红包提现,数据报酬,查看数据报酬,领取报酬,领取红包,奖金,怎么领取,如何提现", keyWordType=null, status=null, respType=null, title="null", description="null", url="null", imgUrl="null", content="null"}程序运行时间:3ms总结:
在这个程序中,我们首先定义了一个文本字符串和一个要匹配的关键词。然后,我们使用Pattern.compile()方法创建一个正则表达式模式,并使用Matcher类的find()方法在文本字符串中查找关键词。
流程:
关键词匹配的流程如下:
定义要匹配的文本和关键词。 创建正则表达式模式对象。 使用Matcher类的matches()方法查找关键词。 如果找到了关键词,执行相应的操作;否则执行其他操作。总之,关键词匹配是一种非常有用的技术,可以用于多个场景中。在Java中,我们可以使用正则表达式来实现关键词匹配,这是一种高效而且强大的技术。
关键词:
为你推荐

陕西两万五千吨市政桥梁完成“转身”

兰州40家A级旅游景区暂时关闭 开放时间暂定

北京丰台初步排查确诊病例密接、次密接258人 组织3万余

四川95岁战斗英雄何开仲有个心愿:想见见山东老战友

增产快!电力生产加速 能源供应偏紧将得到缓解

夏粮和早稻实现双增产 前三季度农林牧渔业增加值同比增

云南瑞丽江桥“守门员”:疫情防控不漏一人

“久病床前真孝子” 浙江男子照顾瘫痪母亲十载

黑龙江:儿童福利机构养育儿童保障标准提至1750元

山西新绛南关村民:因洪水离开家的日子

“十年磨一剑” 黑色矸石山终闻花果香

国家一级保护动物猎隼受伤 内蒙古警方送医救治

一罪犯强行脱逃下落不明 吉林省吉林监狱发布悬赏通告

涉案金额逾3000万 广西一“洗钱”团伙受审

青藏高原有雨雪天气 西南地区江南华南等地有明显降雨

湖南长沙县发现1例外省输入新冠肺炎确诊病例

青海互助:打造全国最大高原草莓种苗繁育中心

照片修复师:每修复一张照片越珍惜与亲人相处的时光

贵州率先在中国实现地质矿产勘查全过程数字化

浙江岱山通报一船沉没 2人获救11人失联
推荐内容
- 陕西两万五千吨市政桥梁完成“转身”
- 河北邯郸发生天然气泄漏事故致3人死亡
- 兰州40家A级旅游景区暂时关闭 开放时间暂定
- 湖北警方打掉两跨省“跑分”洗钱犯罪团伙
- 新冠肺炎疫情下如何保护孩子?张文宏建议设儿童专
- 海南儋州出现1例治愈后的境外输入病例复阳人员
- 男童脊柱侧弯压迫心肺 医生耗时7小时矫正
- 宁夏将开展18岁以上重点人群加强免疫接种工作
- 北京新增1例京外关联本地确诊病例 病例所在街道
- 北京丰台初步排查确诊病例密接、次密接258人 组
- 四川95岁战斗英雄何开仲有个心愿:想见见山东老战
- 增产快!电力生产加速 能源供应偏紧将得到缓解
- 夏粮和早稻实现双增产 前三季度农林牧渔业增加值
- 云南瑞丽江桥“守门员”:疫情防控不漏一人
- 宁夏吴忠核酸阳性者已确诊
- 宁夏吴忠市发现一例外省来吴核酸检测阳性人员
- “久病床前真孝子” 浙江男子照顾瘫痪母亲十载
- 内蒙古额济纳旗5名确诊病例行动轨迹:在同一饭店
- 北京疾控:近期去过这些地方的相关人员请主动报备
- 北京新增1例京外关联输入本地确诊病例
- 增强为民服务能力——做群众最盼事 解群众最难题
- 魏复盛:干一些平凡的实事
- 中缅边境畹町海关查获涉嫌走私海马干4381尾
- 黑龙江:儿童福利机构养育儿童保障标准提至1750元
- 山西新绛南关村民:因洪水离开家的日子
- “十年磨一剑” 黑色矸石山终闻花果香
- 适老化的游戏准备好了吗?电子游戏别忽视老年人
- 国家一级保护动物猎隼受伤 内蒙古警方送医救治
- 西安鄠邑发布2名密接者活动轨迹
- 宁夏吴忠发现一例外省来吴核酸检测阳性人员
- 上海籍阳性夫妻内蒙古行程涉及3个景区、1个民宿、
- 内蒙古额济纳旗启动IV级应急响应 排查出密接者197人
- 内蒙古二连浩特市两地调整为中风险地区
- 泥若二审宣判来了 知名游戏主播山泥若被判刑3年
- 河北邯郸发生天然气泄漏 3人窒息死亡
- 北京丰台报告1例甘肃来京人员新冠病毒核酸检测阳性
- 内蒙古二连浩特两个社区调整为中风险地区
- 一罪犯强行脱逃下落不明 吉林省吉林监狱发布悬赏
- 兰州6人核酸检测呈阳性 主城区局地调整为中风险区
- 涉案金额逾3000万 广西一“洗钱”团伙受审
产业
-
2023-03-16
-
2023-03-16
-
2023-03-15
-
中晶科技:募投项目部分规格抛光硅片已陆续通过相关客户认证 计划进行小批量试生产
2023-03-15
-
2023-03-15
油气
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10




