一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

一個(gè)簡單的關(guān)鍵字過濾算法

早上看到老趙的《一個(gè)較完整的關(guān)鍵字過濾解決方案(上)》文章,講到怎樣在項(xiàng)目中嵌入過濾方案的問題,以及提到 xingdsumtec 兩位大師發(fā)表的系列互拼的文章,在此我也忍不住談?wù)勛约河龅降膯栴}以及一個(gè)的簡化版的算法。

因?yàn)檫^濾關(guān)鍵字機(jī)制到處可見,于是聰明的網(wǎng)友就會(huì)想到各種各樣的方法突破,例如:

1、中文會(huì)用繁體字的方法避開關(guān)鍵字掃描
2、在關(guān)鍵字中間插入無意思的特殊字符,例如 * & # @ 等,而且個(gè)數(shù)可變
3、使用諧音或拆字法變換關(guān)鍵字

在實(shí)現(xiàn)自己的算法時(shí)也有些問題:

4、隨著時(shí)間推移,關(guān)鍵字列表會(huì)越來越大,有些論壇常用的正則表達(dá)式N次掃描的方法顯得效率很低。
5、關(guān)鍵字有不同的嚴(yán)重級(jí)別,有些需要禁止,有些只需要替換,還有一些可能記錄一下即可。


針對(duì)這些問題,可采用的應(yīng)對(duì)方法:

1、加載關(guān)鍵字列表時(shí),將所有的關(guān)鍵字轉(zhuǎn)換成繁體字一份,以掃描繁體版的關(guān)鍵字;
這個(gè)轉(zhuǎn)換工作只需一句就可以實(shí)現(xiàn)了:
s=Microsoft.VisualBasic.Strings.StrConv(word, Microsoft.VisualBasic.VbStrConv.TraditionalChinese, 0);

2、在掃描原文本時(shí),如果遇到關(guān)鍵字的首個(gè)文字,忽略其后的特殊字符,直到下一個(gè)有意義的文字為止,當(dāng)然這里需要在定義關(guān)鍵字列表時(shí)指定哪些才需要這樣掃描,并不是所有關(guān)鍵字都采用這種方式;
例如有關(guān)鍵字 “你好”經(jīng)常會(huì)被人輸入成“你x好”或者“你xxxxx好”,那么在關(guān)鍵字列表里就需要定義成“你*好”,在匹配關(guān)鍵字時(shí),如果遇到星號(hào)就忽略原文本下一個(gè)為特殊的字符。

3、遇到諧音和拆字時(shí),沒什么好辦法了,只好將這些諧音詞和拆分詞也加入到關(guān)鍵字列表。

4、不用正則表達(dá)式或者 String.IndexOf方法,可以將所有關(guān)鍵字的首字相同的組成一個(gè)一個(gè)小組,然后在將首字放到一個(gè)散列表(HashTable/Dictionary),在掃描原文本時(shí)先在散列表里掃描,如果碰到了首字再掃描同組的關(guān)鍵字,這樣簡單處理一下效率可以提高很多。

還有一個(gè)比用散列表更好的方法,將散列表改成一個(gè)大小為char.MaxValue的數(shù)組,然后將首個(gè)文字轉(zhuǎn)成int,即char->int,然后將關(guān)鍵詞集合放到相應(yīng)下標(biāo)里。這樣在掃描原文本時(shí),將被掃描的字符轉(zhuǎn)成int,然后試探數(shù)組相應(yīng)下標(biāo)的元素是否不為NULL。這樣比用散列表會(huì)更快一些。

5、在定義關(guān)鍵字時(shí),同時(shí)給一個(gè)“級(jí)別”屬性,例如使用 E,R,B分別表示只記錄、替換、禁止等情況。
于是關(guān)鍵字的列表如下所示:
你滾 E
他niang的 R
成*人*網(wǎng)*站 B

這里貼一下關(guān)鍵的部分代碼:

Code

NET技術(shù)一個(gè)簡單的關(guān)鍵字過濾算法,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 色多多成视频人在线观看 | 欧美成人三级视频 | 国产91一区二这在线播放 | 91最新网站 | 六月丁香婷婷激情国产 | 99热在线只有精品 | 91成人在线 | 伊人网站在线观看 | 久久伊人中文字幕有码 | 丝袜诱惑一区二区 | 大量出精汇编免费看 | 男女一区二区三区免费 | 青青热久久国产久精品 | 亚洲欧美一区二区三区四区 | 久久国产精品国产自线拍免费 | 一本久道久久综合多人 | 亚洲女人影院想要爱 | 婷婷亚洲综合五月天小说在线 | 9299yy看片淫黄大片在线 | 在线一区二区观看 | 国产91中文剧情在线观看 | 91精品国产91久久久久久青草 | 欧美激情视频在线观看一区二区三区 | 久久99精品一级毛片 | 5252色欧美在线男人的天堂 | 国产美女激情视频 | 久久久久久久久久免观看 | 69国产成人综合久久精品91 | 美女扒开屁股给男人看无遮挡 | 国产在线精品福利大全 | 午夜视频黄色 | 欧洲精品码一区二区三区免费看 | 久久66久这里精品99 | 久久久久久一级毛片免费野外 | 美女视频一区二区三区 | japanese黑人极品高清 | 成人免费视频在线观看 | 中文字幕一区婷婷久久 | 极品美女一级毛片免费 | 国产乱子伦一区二区三区 | 伊人网综合 |