<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    march alex's blog
    hello,I am march alex
    posts - 52,comments - 7,trackbacks - 0
    在之前簡要介紹過深度優先搜索廣度優先搜索這兩個算法。
    同時我們之前也講過Java中隊列的使用。
    基于百度的推薦程序的基礎上,我們可以開展大規模搜索了,也就是說:
        今天,我寫的東西是 DFS/BFS 和 推薦 的 結合。
    我將會把網頁信息的挖取加上搜索從而達到得到更多信息的效果。
    舉個例子,比如我在百度搜索“一句話木馬”,百度會推薦給我一些信息,如“廣外女生木馬”,然后我再繼續搜“廣外女生木馬”,會得到一個“網絡神偷”的推薦詞;這個推薦詞是不包含在搜“一句話木馬”的推薦詞里面的,但是也是我感興趣的,所以我通過廣度優先搜索或者深度優先搜索來進行這種大規模的網絡上的搜索。
    RelateDigger類用于實現該功能。
    其中的bfs方法體現了廣度優先搜索的功能;dfs方法體現了深度優先搜索的功能。
    使用digInBFS方法進行大規模的bfs網頁挖取推薦信息功能。
    使用digInDFS方法進行大規模的dfs網頁挖取推薦信息功能。
    我用max_count限制廣度優先搜索搜索到的關鍵詞的最大數量,用max_depth限制搜索的深度。大家可以根據自己的需求更改這兩個常量。
    用HashMap來記錄得到的關鍵詞。
    代碼如下:
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.LinkedList;
    import java.util.Queue;


    public class RelateDigger {
        public static HashMap <String,Integer> map;
        
        private static final int max_count = 100;
        private static int count;
        
        private static final int max_depth = 3;
        
        private static void init() {
            count = 0;
            map = new HashMap<String, Integer>();
        }
        private static void dfs(String u, int depth) throws Exception {
            System.out.println("digging in " + u);
            String[] res = FindRelate.getRelate(u);
            int n = res.length;
            for(int i=0;i<n;i++) {
                String v = res[i];
                if(map.containsKey(v)) continue;
                map.put(v, new Integer(1));
                if(depth >= max_depth) return;
                dfs(v, depth+1);
            }
            return;
        }
        public static void digInDFS(String word) throws Exception {
            init();
            map.put(word, new Integer(1));
            dfs(word, 0);
            Iterator<String> iter = map.keySet().iterator();
            while(iter.hasNext()) {
                String key = iter.next();
                System.out.print(key);
                if(iter.hasNext()) System.out.print(",");
            }
        }
        private static void bfs(String u) throws Exception {
            Queue<String> queue = new LinkedList<String>();  
            queue.offer(u);
            while((u=queue.poll())!=null){
                System.out.println("digging in " + u);
                String[] res = FindRelate.getRelate(u);
                int n = res.length;
                for(int i=0;i<n;i++) {
                    String v = res[i];
                    if(map.containsKey(v)) continue;
                    map.put(v, new Integer(1));
                    count ++;
                    queue.offer(v);
                    if(count >= max_count) return;
                }
            }
        }
        public static void digInBFS(String word) throws Exception {
            init();
            map.put(word, new Integer(1));
            count ++;
            bfs(word);
            Iterator<String> iter = map.keySet().iterator();
            while(iter.hasNext()) {
                String key = iter.next();
                System.out.print(key);
                if(iter.hasNext()) System.out.print(",");
            }
        }
        
        public static void main(String[] args) throws Exception {
            digInDFS("一句話木馬");
            digInBFS("珠穆朗瑪峰");
        }
    }
    其中digInDFS得到的結果為:
    null,中國十大最難懂方言,必應詞典,盜號木馬,震蕩波病毒,充值軟件,盜號,網絡神偷,塔佐蠕蟲,中越黑客大戰,黑客教程,蛀船蟲,中國黑客聯盟,小球病毒,宏病毒,中華吸血鬼,特洛伊木馬,qq木馬,鬼影病毒,后門木馬,動漫日語,中國紅客聯盟,CIH病毒,李俊,有道詞典,黑光病毒,伯樂木馬,百度殺毒,手機透視器,黑客教父,qq盜號木馬,機器狗病毒,米特尼克,qq槍手,冰河木馬,c病毒,火焰病毒,g病毒,免費黑客網,百度翻譯,華夏黑客聯盟,廣外女生木馬,oldboot,cih病毒,特洛伊:木馬屠城,玻璃蛇,網游大盜,學術翻譯,灰鴿子木馬,三角木馬,熊貓燒香,女巫的椅子,江民炸彈,黑客工具,網上學英語,米米病毒,金山詞霸,灰鴿子遠程控制軟件,莫里斯蠕蟲,百度衛士,僵尸世界大戰2,遠程控制軟件,懸玉環,食骨蠕蟲,千斤頂,超級工廠病毒,灰鴿子,靈格斯,磁碟機病毒,騎木馬驢,機器狗,震蕩波,幸運破解器,黑客基地,維羅妮卡病毒,nabau,一句話木馬,蠕蟲病毒,沖擊波病毒,黑客技術教程,大小姐木馬,木馬病毒,大麻病毒,不死木馬,2001中美黑客大戰,下村勉,trojan.generic,金豬報喜,qq尾巴,歡樂時光病毒,geohot,asp木馬,手機骷髏病毒,中國鷹派,世界十大黑客,海詞詞典,黑客,王江民,潘多拉,殺毒軟件,citrus,qq大盜,計算機病毒,g幼體,羅塞塔石碑,黑客技術,卡巴斯基免費版,喪尸,萬能登陸器,高危型人乳頭瘤病毒,鐵蓮花
    digInBFS得到的結果為:
    德令哈外星人遺址,百慕大三角,麥田怪圈,中國三大海峽,太陽墓,中國四大無人區,海底金字塔,中國最美十大名山,中國梯,巴黎性博物館,中國死海,玫瑰湖,天門山,大藍洞,貢嘎山,51區,西藏,普羅旺斯,中華十大名山,山西十大景區,克爾黑洞,暗物質,美國大峽谷空中走廊,魔鬼城,安納布爾納峰,羌塘,哭島,全球被遺棄的31個景點,外星人,白洞,史瓦西黑洞,羅布泊,中國五大淡水湖,恐怖谷理論,道教四大名山,性博物館,托木爾峰,中國四大名塔,幽靈島,乞力馬扎羅山,霍金,四大道教名山,喜馬拉雅山脈,怪坡,黑洞,可可西里,無底洞,毛里求斯,藏王,中國四大古鎮,藏北無人區,巧克力山,玉珠峰,撒哈拉之眼,大西國,愛因斯坦,奧林匹斯山,黃泉大道,天門山玻璃棧道,球狀閃電,帕巴拉神廟,中華侏羅紀公園,鳳凰山ufo事件,神農架,卡瓦格博,中國十大古城,珠峰大本營,亞特蘭蒂斯,昆侖山死亡谷,查亞峰,魔鬼塔,巨人之路,貴州時光隧道,潘洛斯階梯,處女峰,怒江72拐,希勒湖,喬戈里峰,倒懸空寺,魚人島,慕士塔格峰,日本龍三角,地心人,列寧峰,全球十大驚悚地點,不可能圖形,死亡谷,巴比倫通天塔,珠穆朗瑪峰,馬爾代夫太陽島,天下第一橋,藍洞,9.8新疆ufo事件,沈陽怪坡,雁蕩山,中國四大古城,四姑娘山,三山五岳,墨脫水電站,黑林錯覺
    posted on 2015-03-07 22:20 marchalex 閱讀(221) 評論(0)  編輯  收藏 所屬分類: java小程序
    主站蜘蛛池模板: 国国内清清草原免费视频99| 日本高清免费网站| 国产成人精品日本亚洲专一区| 精品免费国产一区二区三区| 日亚毛片免费乱码不卡一区 | 亚洲天天在线日亚洲洲精| 青草草色A免费观看在线| 免费人成动漫在线播放r18 | 国产片免费在线观看| 最近更新免费中文字幕大全| 亚洲a视频在线观看| 国产亚洲老熟女视频| 免费观看激色视频网站bd| 高潮毛片无遮挡高清免费 | 中文字幕免费播放| 国产成人精品日本亚洲18图| 久久久久亚洲爆乳少妇无| 免费人成网站在线观看10分钟| 色多多www视频在线观看免费| 亚洲宅男天堂a在线| 国产亚洲精品无码专区| 在线观看免费大黄网站| 日韩中文字幕免费视频| 人人爽人人爽人人片A免费| 亚洲mv国产精品mv日本mv| 久久久久久久综合日本亚洲| 在线观看免费大黄网站| **实干一级毛片aa免费| 国产精品免费αv视频| 亚洲中文字幕乱码一区| 亚洲成av人在线视| 亚洲国产精品人人做人人爱| 免费无码又爽又刺激聊天APP| 成在人线av无码免费高潮喷水| 亚洲AV第一成肉网| 亚洲国产精品人久久电影| 亚洲国产精品无码专区影院| 免费人成年轻人电影| 免费电视剧在线观看| 91精品免费不卡在线观看| 成人影片一区免费观看|