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

网站建设课程总结seo关键词教程

网站建设课程总结,seo关键词教程,宁夏电建网站,沈阳哪个男科医院好一、简介 在文本处理中,常常需要在一段文本里查找多个关键字是否存在,例如敏感词过滤、关键词匹配等场景。Hutool - DFA 模块基于确定性有限自动机(Deterministic Finite Automaton,DFA)模型,为我们提供了…
一、简介

在文本处理中,常常需要在一段文本里查找多个关键字是否存在,例如敏感词过滤、关键词匹配等场景。Hutool - DFA 模块基于确定性有限自动机(Deterministic Finite Automaton,DFA)模型,为我们提供了高效的多关键字查找功能。DFA 模型是一种状态机,它通过预先构建一个状态转移表,能够在一次遍历文本的过程中,快速判断是否存在多个关键字,时间复杂度为 O ( n ) O(n) O(n),其中 n n n 是文本的长度,这使得它在处理大规模文本和大量关键字时具有很高的效率。

二、引入依赖

若使用 Maven 项目,在 pom.xml 中添加以下依赖:

<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.16</version>
</dependency>

如果是 Gradle 项目,在 build.gradle 中添加:

implementation 'cn.hutool:hutool-all:5.8.16'
三、基本使用步骤
1. 创建 DFA 匹配器
import cn.hutool.dfa.FoundWord;
import cn.hutool.dfa.WordTree;
import java.util.ArrayList;
import java.util.List;public class DFAExample {public static void main(String[] args) {// 创建 WordTree 对象,用于构建 DFA 模型WordTree wordTree = new WordTree();// 添加关键字List<String> keywords = new ArrayList<>();keywords.add("苹果");keywords.add("香蕉");keywords.add("葡萄");wordTree.addWords(keywords);}
}

在上述代码中,首先创建了一个 WordTree 对象,它是 Hutool - DFA 中用于构建 DFA 模型的核心类。然后,创建一个包含多个关键字的列表,并使用 addWords 方法将这些关键字添加到 WordTree 中,从而完成 DFA 模型的构建。

2. 进行关键字查找
import cn.hutool.dfa.FoundWord;
import cn.hutool.dfa.WordTree;
import java.util.ArrayList;
import java.util.List;public class DFAExample {public static void main(String[] args) {// 创建 WordTree 对象,用于构建 DFA 模型WordTree wordTree = new WordTree();// 添加关键字List<String> keywords = new ArrayList<>();keywords.add("苹果");keywords.add("香蕉");keywords.add("葡萄");wordTree.addWords(keywords);// 待查找的文本String text = "我喜欢吃苹果和香蕉。";// 查找文本中包含的关键字List<FoundWord> foundWords = wordTree.matchAll(text);for (FoundWord foundWord : foundWords) {System.out.println("找到关键字:" + foundWord.getWord() + ",起始位置:" + foundWord.getStartIndex() + ",结束位置:" + foundWord.getEndIndex());}}
}

在这个代码片段中,定义了一段待查找的文本,然后使用 matchAll 方法在文本中查找之前添加的关键字。matchAll 方法会返回一个 FoundWord 对象的列表,每个 FoundWord 对象包含了找到的关键字、关键字在文本中的起始位置和结束位置。通过遍历这个列表,我们可以输出找到的关键字及其位置信息。

四、高级用法
1. 忽略大小写匹配
import cn.hutool.dfa.FoundWord;
import cn.hutool.dfa.WordTree;
import java.util.ArrayList;
import java.util.List;public class CaseInsensitiveDFAExample {public static void main(String[] args) {WordTree wordTree = new WordTree();List<String> keywords = new ArrayList<>();keywords.add("Apple");wordTree.addWords(keywords);String text = "I like apple.";// 忽略大小写进行匹配List<FoundWord> foundWords = wordTree.matchAll(text, true);for (FoundWord foundWord : foundWords) {System.out.println("找到关键字:" + foundWord.getWord() + ",起始位置:" + foundWord.getStartIndex() + ",结束位置:" + foundWord.getEndIndex());}}
}

matchAll 方法中,第二个参数设置为 true 表示忽略大小写进行匹配。这样,即使文本中的关键字大小写与添加的关键字不一致,也能被正确匹配。

2. 最长匹配原则
import cn.hutool.dfa.FoundWord;
import cn.hutool.dfa.WordTree;
import java.util.ArrayList;
import java.util.List;public class LongestMatchDFAExample {public static void main(String[] args) {WordTree wordTree = new WordTree();List<String> keywords = new ArrayList<>();keywords.add("苹果");keywords.add("红苹果");wordTree.addWords(keywords);String text = "我喜欢吃红苹果。";// 开启最长匹配List<FoundWord> foundWords = wordTree.matchAll(text, false, true);for (FoundWord foundWord : foundWords) {System.out.println("找到关键字:" + foundWord.getWord() + ",起始位置:" + foundWord.getStartIndex() + ",结束位置:" + foundWord.getEndIndex());}}
}

matchAll 方法中,第三个参数设置为 true 表示使用最长匹配原则。在上述示例中,文本中包含“红苹果”,由于开启了最长匹配,只会匹配到“红苹果”,而不会匹配到“苹果”。

五、注意事项
  • 关键字添加顺序:关键字的添加顺序不影响匹配结果,因为 DFA 模型是基于状态转移的,所有关键字会被统一构建到状态转移表中。
  • 性能考虑:DFA 模型在处理大规模文本和大量关键字时具有较高的性能,但在构建 DFA 模型时,需要消耗一定的内存和时间。因此,在实际应用中,应根据具体情况合理管理关键字的数量。
  • 字符编码:确保文本和关键字使用相同的字符编码,避免因编码问题导致匹配失败。

通过使用 Hutool - DFA,开发者可以方便地实现高效的多关键字查找功能,无论是敏感词过滤、信息检索还是其他文本处理场景,都能轻松应对。

http://www.dtcms.com/wzjs/268408.html

相关文章:

  • 2017政府网站设计方案贴吧推广400一个月
  • 怎么建设网站赚钱网络营销环境的分析主要是
  • 奥美广告公司seo是什么意思的缩写
  • 富阳区建设局网站多少seo基础入门教程
  • 企业个人网站百度风云榜热搜
  • 佛山网站建设运营杭州网站建设 seo
  • 用php做的网站实例情感链接
  • 114黄页的特点阿亮seo技术
  • 手机和电脑网站分开做福州模板建站哪家好
  • 做网站要多少钱 知乎网络营销的步骤
  • 做电商的进货网站大学生网络营销策划方案书
  • 网站频繁改版腾讯竞价广告
  • 网站利用微信拉取用户做登录页营销策划有限公司经营范围
  • 云数据库可以做网站吗外贸谷歌推广
  • php和java哪个做网站浩长沙seo代理
  • 鼎成中考开卷通有关网站做的电子书临安网站seo
  • 网站开发实战asp制作视频教程搜索引擎优化是指什么意思
  • 宝塔自助建站源码宁波seo软件免费课程
  • 绿色能源网站模板泉州网站建设优化
  • 外面网站怎么做网站优化seo是什么
  • 学校网站素材武汉seo网站排名优化公司
  • 网站的特征包括哪些方面怎么做网站平台
  • 网站怎么查是哪家网络公司做的seo入门课程
  • 杭州北京网站建设公司哪家好天津seo排名效果好
  • 免费做二建题的网站百度渠道开户
  • 杭州网站建设出 名营销服务机构
  • 东莞专业做网站的公司有哪些企业如何建立网站
  • 小说网站做兼职厦门seo关键词排名
  • 在哪学习建网站缅甸最新新闻
  • 网站做照片世界足球排名最新