搜索
编程论坛
→
开发语言
→
『 数据结构与算法 』
→ 求屏蔽词判断算法!!!
标题:
求屏蔽词判断算法!!!
只看楼主
clowder
等 级:
新手上路
帖 子:3
专家分:0
注 册:2010-4-14
结帖率:
0
楼主
已结贴
√
问题点数:20 回复次数:5
求屏蔽词判断算法!!!
假设有一个很长的屏蔽词数组 string[] badwords={};
对网络任意输入的文本strText,希望将strText文本中包含屏蔽词数组中的词语的替换成"**";
请求高效算法!因为该屏蔽词数组实在庞大,如果做到最高效是关键,而此应用应该是到处都有,请行家高手指点!
public string ConvertText( string[] badwords, string text )
{
//算法
}
搜索更多相关主题的帖子:
算法
判断
2010-04-14 08:16
mywaylgh
来 自:厨房
等 级:
蝙蝠侠
威 望:
5
帖 子:188
专家分:729
注 册:2010-3-10
第
2
楼
得分:6
对这样的问题,个人只有map, hash_map以及unordered_map 的经验
更好的算法也同样期待
人生就像茶几 上面放着许多杯具
人生也像厨房 里面总有一些洗具
2010-04-14 11:37
clowder
等 级:
新手上路
帖 子:3
专家分:0
注 册:2010-4-14
第
3
楼
得分:0
回复 2楼 mywaylgh
说说你的思路,如何使用map等东西来处理这个问题?
2010-04-14 11:49
mywaylgh
来 自:厨房
等 级:
蝙蝠侠
威 望:
5
帖 子:188
专家分:729
注 册:2010-3-10
第
4
楼
得分:0
估计不是你想要的结果
以 map为例,基本算法如下,从速度看,unorder_map最快,不过....很多编译器并不支持
1.按badword中词汇长度存为哈希表。
如: map <string,int> badword_2;//存入两个字的词组
map <string,ing> badword_3;//存入三个自的词组
存入方式为如 badword_2["词组“] = 1;....
2.两个字,三个字。。。的扫描文本并判断是否是badword
如,两个字扫描时,用:
if(badword_2.find(c)==badword_2.end()) 表示非badword
else 替换
3.输出文本
你可以试试,看看效率如何。
人生就像茶几 上面放着许多杯具
人生也像厨房 里面总有一些洗具
2010-04-14 13:15
cnfarer
等 级:
版主
威 望:
179
帖 子:3330
专家分:21157
注 册:2010-1-19
第
5
楼
得分:6
建议看看:
LUCENE(来自开源项目)
,它可能给你帮助!!!
★★★★★
为人民服务
★★★★★
2010-04-14 21:00
asdjc
来 自:武汉
等 级:
侠之大者
威 望:
7
帖 子:98
专家分:487
注 册:2010-1-22
第
6
楼
得分:6
我倒是有一个思路:
1.先对badwords={}进行霍夫曼编码(用树形结构显示,首字符编码,次字符编码...);
2.对string[]进行匹配划分为各个字符串(根据语义吧);
3.对string[]逐个字符串提取并与1.中的树形结构进行比对。比对成功改*****,失败比对下一个;
这是我的思路,参考哈。
2010-04-16 07:12
6
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-302923-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.143724 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved