文本中关键字匹配算法

本文介绍了一种通过增加存储空间来减少程序执行时间的关键字匹配算法。在C#中实现,通过创建一个字符数组,利用二进制表示关键字可能出现的位置,建立倒排索引,以提高文本中关键字搜索的效率。同时提到了可以依据类似KMP算法的思想进行快速判定。
摘要由CSDN通过智能技术生成


给定一定数量的关键字,对任一篇文本,寻找文本中包含哪些关键字

例如关键字集合如下:


而待检测的文本如下:


当前算法的目的就是从test.txt中快速的检索有没有给定的keyWord.txt中的关键字

具体的代码下载地址是:http://download.csdn.net/detail/sinat_22013331/9551006,这部分代码是用C#写的,如果要java或者其他语言的版本,可以对照着改动一些。



这个文本处理需要一个算法, 普通的文本处理直接去遍历所有的关键字,但是这种算法太复杂,时间复杂度太高。

之前的文章中有说过,实际用到的算法,为了加快执行速度,都是在时间和空间上做的兑换,用存储空间的增加来换取执行时间的减小。

这里同样可以,通过增加存储空间来减少程序执行时间。


可以选择开一个数组,数组的长度是char类型的最大长度加一。

数组的相应字符对应位置上的数值用二进制表示。假设关键字的长度最长为15,则可以用两个字节的数字来表示,也就是一个short类型。

假设数字为 0000 0000 0010 0110, 也就是38。则表示当前这个字

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值