使用Java实现关键词匹配 环球快播

2023-03-16 10:19:23 | 来源:腾讯云


(资料图)

谁若想在困厄时得到援助,就应在平日待人以宽。一萨迪

概述:

在计算机科学领域中,关键词匹配指的是在一个文本或数据集中查找特定的单词或短语。关键词匹配可以应用于多个场景中,例如搜索引擎、垃圾邮件过滤、内容审查等。

理念:

在关键词匹配中,我们需要将关键词和待匹配的文本进行比较。最简单的方式是使用字符串匹配算法,例如暴力匹配算法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中,我们可以使用正则表达式来实现关键词匹配,这是一种高效而且强大的技术。

上一篇 下一篇

相关新闻

使用Java实现关键词匹配 环球快播

当前播报:用纸折的女生小钱包教程_用纸折的女生小钱包

微胖女生的福利,显瘦又显高,超好看哦!

资讯推荐:又见香精大米 香精勾兑的泰国香米

惠云钛业获批设立“广东省博士工作站”并举行揭牌仪式 2023-03-15 世界今头条

【高端访谈】发挥外资行桥梁纽带作用 持续深耕中国市场——专访德意志银行亚太区首席执行官慕文泽

全球视讯!电脑设置定时开关机时间_电脑设置定时开关机

前沿生物:公司已商业化产品艾可宁为多肽类药物,公司生产基地具有多肽类产品的生产能力|全球热文

天天热门:浩物股份:公司子公司内江市鹏翔投资有限公司旗下4S店主要分布在天津

世界时讯:交社保的时间不够 是等摇新房还是先上车二手房?

每日视讯:钻皮出羽是什么意思_钻皮出羽的意思

天天通讯!松树林格自然村_关于松树林格自然村简述

清明前后食用甘蔗要谨慎!霉变红心甘蔗不要吃

手腕上大动脉的具体位置_手腕上大动脉在哪

每日速递:福建漳州首批集中供地收官:建发以13.8亿元摘得两宗地块

最新新闻

使用Java实现关键词匹配 环球快播

当前播报:用纸折的女生小钱包教程_用纸折的女生小钱包

微胖女生的福利,显瘦又显高,超好看哦!

资讯推荐:又见香精大米 香精勾兑的泰国香米

惠云钛业获批设立“广东省博士工作站”并举行揭牌仪式 2023-03-15 世界今头条

【高端访谈】发挥外资行桥梁纽带作用 持续深耕中国市场——专访德意志银行亚太区首席执行官慕文泽

全球视讯!电脑设置定时开关机时间_电脑设置定时开关机

前沿生物:公司已商业化产品艾可宁为多肽类药物,公司生产基地具有多肽类产品的生产能力|全球热文

天天热门:浩物股份:公司子公司内江市鹏翔投资有限公司旗下4S店主要分布在天津

世界时讯:交社保的时间不够 是等摇新房还是先上车二手房?

每日视讯:钻皮出羽是什么意思_钻皮出羽的意思

天天通讯!松树林格自然村_关于松树林格自然村简述

清明前后食用甘蔗要谨慎!霉变红心甘蔗不要吃

手腕上大动脉的具体位置_手腕上大动脉在哪

每日速递:福建漳州首批集中供地收官:建发以13.8亿元摘得两宗地块

环球快资讯:送组词_挑组词

改造20848户!土左旗2023年燃煤散烧综合整治项目工程举行开工仪式

信维通信:3月13日融资买入1.05亿元,融资融券余额15.13亿元 每日热文

热头条丨争四激烈!意甲积分榜:米兰仍排第四,第二到第五只差3分

存户排队提款,美国又有一家银行要暴雷?FDIC已入驻,第一共和银行资金电汇交易已停止_全球快讯

微速讯:硅谷银行金融集团CEO在暴雷之前套现公司股票

江苏南京江北新区首届中学生模拟法庭大赛完美收官

索菲亚2023营销战略解码 剑指整家定制市占率!_全球观点

成都车展价格快递甲壳虫最高优惠7.5万-环球观速讯

吃什么都觉得苦是什么原因怎么办_吃什么都觉得苦是什么原因

您现在可以在Gmail中将电子邮件作为附件发送 环球观点

每日速读!1-3!亚洲杯4强已诞生3席,国足遗憾出局,裁判多次吹罚惹争议

业内人士透露,韩国LG新能源CEO权映寿周日开启在中国的5日商务行程,预计将前往公司在南京的电动汽车电池工厂

以钢结构智造推动绿色建造高质量发展|今日观点

世界速读:霍顿-塔克37+8+10凯斯勒17+16 爵士力克黄蜂