怎么高效率的判断一大段文章中是否有关键字

问题描述

数据库设计为关键字(如:傻X)、状态(如:1:禁止关键字2:替换关键字)我写了一个独立的方法,先查询出关键字表中的所有关键字然后一个个遍历看是否在字符串中包含如果存在关键字并且状态为1,则return-1判断为包含禁止关键字如果存在关键字并且状态为2,则把字符串中的关键字替换为*但是现在这样判断,性能很差,怎么提高性能速度呢?哪位大神帮忙解答下

解决方案

解决方案二:
关键字表大约有几千个关键字
解决方案三:
这效率高不了你总要每个字,每个词的去跟字典比对
解决方案四:
其实是拿着字典里的每个关键字去这一大堆文字里找,看能不能找到不管用什么算法,效率也是高不起来.
解决方案五:
引用3楼Z65443344的回复:

其实是拿着字典里的每个关键字去这一大堆文字里找,看能不能找到不管用什么算法,效率也是高不起来.

总有个办法能够有快速一点的吧.......
解决方案六:
linq并行计算,或者多线程。
解决方案七:
没有办法。除非文章本身已经被分词了,然后你拿着每一个单词到你的数据库中去匹配,这样有可能让你的大文章的判断速度提高100倍。但时很显然,当文章并不长时,这样反而更慢。
解决方案八:
然后你拿着每一个单词到你的数据库中去匹配-->然后你拿着每一个单词到你的hash表中去匹配
解决方案九:
从已知关键字构造出一颗trie树(网上有现成的代码)对文章做一趟扫描,能在trie树中匹配到的字组合就是
解决方案十:
唯一能够提高效率的,估计就是多线程了……
解决方案十一:
6楼是正道,低成本高收益。不过应该会快1000倍而不是100倍(楼主说了关键字有1000个)。文本很短时反正已经很快了,慢一点没关系。
解决方案十二:
这个真的没有什么好办法
解决方案十三:
文章1关键词集合2循环遍历文章1中每个字符去关键词集合2中找匹配就开始匹配后面的比如文章:今天天气不错关键词集合天气不错遍历到天时候今天的天第二个无法匹配。就放弃天气的天。匹配就修改。不知道这样会不会快点。估计也快不了多少。也可以直接正则全部替换。
解决方案十四:
如果我记得没错的话Lucene.net就是干这个事的
解决方案十五:
直接indexof吧,没捷径数据库就用like

时间: 2024-09-16 13:59:13

怎么高效率的判断一大段文章中是否有关键字的相关文章

判断一段字符中是否含有电话号码的方法

<script LANGUAGE="javascript"><!--function checkNum(str){return !/\d{6}/.test(str)}function check(){if (document.form.tell.value==""){  alert("請輸入電話號碼!");  document.form.tell.focus();  return false;}else{  var Letter

如何用ASP将一大段文字中的HTML的标识去掉

<%Function FilterHTML(strToFilter)Dim strTempstrTemp = strToFilterWhile Instr(1,strTemp,"<") AND Instr(1, strTemp, ">")strTemp = Left(strTemp, Instr(1, strTemp, "<")-1) & Right(strTemp, Len(strTemp)-Instr(1,st

文章中大量的关键字替换问题,急!

问题描述 一个文章发布系统,要在文章发布后需要将大量的关键字进行替换(也就是为关键字加链接),如:<inputname="皇冠"type="text">ttt<div>aa皇冠3.0L奥迪</div>sdasdqaaaa替换后:<inputname="皇冠"type="text">ttt<div>aa<ahref="12">皇冠<

excel表格中如何编辑一大段文字?

  excel表格中如何编辑一大段文字?           方法 1.首先我们打开excel,然后选中一块文字输入区域,这个区域就是我们将要盛放大段文字的地方. 2.右键单击这个区域,弹出右键菜单,在右键菜单中,我们选择设置单元格格式. 3.在单元格格式中,我们点击对齐,在对齐面板中,我们勾选合并单元格,然后点击确定,就完成了合并. 4.如下图就是我们合并得到的一个文字输入区域. 5.在这个区域中我们输入一大段文字.我们可以看到问题出现了,这一大段文字超出了表格,那么怎样让这一段文字都显示出来

怎么判断用户输入的文章中的其中一部分是代码?

问题描述 请问怎么判断用户输入的文章中的其中一部分是编程语言代码?怎么判断是代码的开始,代码的结束?我想为代码部分做特别显示,例如做一个框框,再加行号等等 解决方案 解决方案二:你学csdn在回复的时候就让用户自己标注哪些是代码模块多好解决方案三:学学csdn--解决方案四:在网页中自动判断代码从哪里开始可不行,csdn也是用户手工输入的代码,然后给代码指定css格式而已.特别的显示需要使用css,请参考csdn.解决方案五:[code][/code]只能这么干解决方案六:在输入的时候弄个标记,

搜索引擎是如何判断有价值的文章

有很多人咨询过笔者(Mr.Zhao),百度如何判断伪原创和原创?百度喜欢什么样的文章?什么样的文章比较例如获得长尾词排名?等等诸如此类的问题.面对这些问题,我常常不知如何回答.如果我给一个比较大方向一些的答案,例如要重视用户体验.要有意义等等,那么提问者会觉得我在应付他,他们往往抱怨说这些太模糊.可是我也没法再给出具体的内容,毕竟我不是百度,具体算法我又何德何能的为你们指点江山呢?   为此,我开始写这个"如果是我"系列的文章.在这一系列文章里,我假设如果是我绞尽脑汁的来为网民提供较好

如果是我 我如何判断有价值的文章

有很多人问过我,说Mr.Zhao啊,百度如何判断伪原创和原创?百度喜欢什么样的文章?什么样的文章比较例如获得长尾词排名?等等诸如此类的问题.面对这些问题,我常常不知如何回答.如果我给一个比较大方向一些的答案,例如要重视用户体验.要有意义等等,那么提问者会觉得我在应付他,他们往往抱怨说这些太模糊.可是我也没法再给出具体的内容,毕竟我不是百度,具体算法我又何德何能的为你们指点江山呢? 为此,我开始写这个"如果是我"系列的文章.在这一系列文章里,我假设如果是我绞尽脑汁的来为网民提供较好的搜索

asp画中画广告插入在每篇文章中的实现方法

尽管很多人给出了给每篇文章加上画中画广告的方法,但是这些所谓的方法,都不能真正地实现文字环绕在广告周围的"画中画"效果,只能左对其或者右对齐.现在要讨论的这个方法才能真正实现像新浪网.搜狐网那样的画中画广告效果. 首先说一下错误的div+CSS方法,希望大家别被误导: <div id="outer" style="float:left;"> <div id="inner" style="float:

asp画中画广告插入在每篇文章中的实现方法_应用技巧

尽管很多人给出了给每篇文章加上画中画广告的方法,但是这些所谓的方法,都不能真正地实现文字环绕在广告周围的"画中画"效果,只能左对其或者右对齐.现在要讨论的这个方法才能真正实现像新浪网.搜狐网那样的画中画广告效果. 首先说一下错误的div+CSS方法,希望大家别被误导: <div id="outer" style="float:left;"> <div id="inner" style="float: