東北大學計算機應用技術研究所Web信息處理小組

          urrr... These guys do research ?!

          2009年6月4日 #

          搭建基于Nutch1.0的搜索引擎說明文檔

           

          一、簡介

            Nutch是一個開源的Web搜索引擎。

                 主要分為兩個部分:爬蟲crawler和查詢searcher,兩者之間的接口是索引。

           

          二、需要的軟件

          • JDK1.6

          • Tomcat6.0

          • cygwin

          • nutch1.0

          三、安裝與配置

          1. JDK

          • 下載地址:http://www.sun.com

          • 安裝目錄:C:\Java\jdk1.6.0_14

          • 修改環境變量:

          JAVA_HOME= C:\Java\jdk1.6.0_14

          CLASSPATH= C:\Java\jdk1.6.0_14\lib\dt.jar; C:\Java\jdk1.6.0_14\lib\tool.jar

          PATH= %JAVA_HOME%\bin

          • 測試:

          Java -version

          2. Tomcat6.0

          • 下載地址:

          http://tomcat.apache.org/download-60.cgi?Preferred=http%3A%2F%2Fapache.freelamp.com

          • 安裝目錄:C:\tomcat6

          • 安裝測試:

                        a)  啟動tomcat:在DOS下,cd C:\tomcat6\bin\startup.bat

                        b)  瀏覽器地址欄輸入:

                     http://localhost:8080/

                           出現tomcat主頁則成功

              • 更改C:\tomcat6\conf \tomcat-users.xml內容

              <tomcat-users>

                <role rolename="manager"/>

                <user username="tomcat" password="tomcat" roles="manager"/>

              </tomcat-users>

              3. Cygwin

              • 下載地址:

              http://www.cygwin.cn/

              • 使用原因:

                         運行Nutch自帶的腳本命令需要Linux的環境,使用cygwin來模擬該環境。cygwin是在windows平臺上運行的unix模擬環境。

                    • 安裝目錄:C:\cygwin

                                   注意:在選擇下載站點需要輸入如下網址,并在最后選擇本地磁盤安裝:

                                          http://www.cygwin.cn/pub/

                      • 測試:

                      進入cygwin

                      4. Nutch

                      • 下載地址:

                      http://www.apache.org/dyn/closer.cgi/lucene/nutch/

                      • 版本:nutch-1.0

                      • 解壓后到:C:\nutch-1.0

                      • 設置Nutch的環境變量:

                      NUTCH_JAVA_HOME= C:\Java\jdk1.6.0_14

                      • 修改環境變量PATH :

                        PATH= %JAVA_HOME%\bin; % NUTCH_JAVA_HOME %\bin

                        • 在C:\nutch-1.0下建立url.txt文件來制定爬去列表

                              在txt文件中寫入需要爬取的網站地址http://dblp.lab/

                              • 測試:

                                    開啟Cygwin

                                  cd cygdriver/c/nutch-1.0

                                  bin/nutch

                                  若出現若干命令,則說明Nutch配置成功

                                  四、抓取網頁數據

                                  1. 指定爬蟲規則

                                  • 修改Nutch-1.0/conf/crawl-urlfilter.txt

                                  # accept hosts in MY.DOMAIN.NAME

                                  +^http://dblp.lab/

                                  • 修改Nutch-1.0/conf/nutch-site.xml

                                  <configuration>

                                    <property>

                                    <name>http.agent.name</name>

                                    <value>my nutch agent</value>

                                    </property>

                                    <property>

                                    <name>http.agent.version</name>

                                    <value>1.0</value>

                                    </property>

                                  </configuration>

                                  2. 開始爬取

                                  3. 打開Cygwin

                                  4. 在命令行輸入

                                  cd /cygdrive/c/nutch-1.0

                                  5. 執行命令

                                  Bin/nutch crawl url.txt -dir crawled -depth 3 - threads 4 >&crawl.log

                                     其中:dir是指定爬取內容所存放的目錄,depth表示以要爬取網站頂級網址為起點的爬行深度,threads指定并發的線程數

                                  6. 爬取中......(采集網頁并建立索引)

                                  7. 結束后在Nutch目錄下產生爬取內容的文件夾crawled和日志文件夾logs

                                  五、部署Web前端

                                  1. 將nutch-1.0.war拷貝到webapps目錄下

                                  2. 通過瀏覽器訪問如下網址,war包會自解壓

                                  http://localhost:8080/nutch-1.0/

                                  3. 修改nutch的web配置

                                         更改c:\tomcat6\webapps\nutch-1.0\WEB-INF\classes\nutch-site.xml ,將內容更改為索引生成的目錄

                                  <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="nutch-conf.xsl"?>

                                  <!-- Put site-specific property overrides in this file. -->

                                  <nutch-conf>

                                  <property>

                                    <name>searcher.dir</name>

                                    <value>C:\nutch-1.0\crawled</value>

                                  </property>

                                  </nutch-conf>

                                  六、解決中文亂碼問題

                                           修改文件C:\tomcat6\conf\server.xml

                                  <Connector port="8080" maxThreads="150" minSpareThreads="25"

                                  maxSpareThreads="75" enableLookups="false" redirectPort="8443"

                                  acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true"

                                  URIEncoding="UTF-8" useBodyEncodingForURI="true" protocol="HTTP/1.1" />

                                   

                                  七、搭建完成

                                  1. 啟動Tomcat

                                  2. 通過瀏覽器訪問

                                  http://localhost:8080/nutch-1.0/

                                  (by 王海明)

                                  posted @ 2009-06-04 11:21 wipt 閱讀(2865) | 評論 (8)編輯 收藏

                                  2009年5月11日 #

                                  搜狗拼音輸入法研究

                                  輸入法是基于詞庫的,詞庫中除了詞條信息意外還有詞頻(也是最重要的了),詞頻表達用戶使用詞條概率,所以以概率解決問題較多。不管是包含多少種詞庫,詞頻信息必不可少,盡管有時還要對詞頻進行加權處理,如用戶詞庫的詞頻肯定不會像系統詞庫的詞頻那么高,將二者進行排序時不能直接利用現有詞頻,要加權處理。尤其在智能組詞那塊,要形成短語,短句,就要找到頻率最大的組句路徑,會有計算公式。

                                  將用戶需求進行分解:盡量覆蓋用戶的詞匯當然是好,但是隨之會產生問題,詞庫的臃腫化和計算的代價加大,就要剔除掉不必要的詞條信息了,可我們怎么知道哪些才是用戶需要的呢,通過獲取用戶輸入環境找到符合用戶需求的最小詞匯,才是王道。這樣詞庫構成基本分為系統共有詞庫+輔助詞庫,布局合理,其中后者是動態加載和更新的,很智能化。

                                  個性化:提高用戶體驗離不開個性化,適合大家的有可能適合自己,適合自己的不一定適合大家,個體之間存在差異,捕捉用戶的使用習慣,找到個性部分很重要,用戶詞庫,個性詞等技術基本解決部分問題。引用原文的話:“記錄用戶輸入的字詞,學習某個用戶適用的詞匯;通過一段時間地不斷學習,將詞庫逐漸收斂到某個用戶輸入的最佳狀態,從而形成用戶詞庫。通過動態調頻,使其逐漸適應該用戶,當用戶是唯一時,很好地提升效率”,很到位。

                                  策略問題:如搜狗輸入法有很多用戶,利用用戶的信息,反過來又回饋給用戶,這樣反復過程,最終要達到一個收斂平衡的狀態。

                                  資源的重要性:搜狗寶貴的東西是語料庫,各種想法實施的先決條件。

                                  詳細的PPT在:http://d.onto.ac.cn/wipt/sogou.zip(教育網服務器)

                                  (by 韓艷景)

                                  posted @ 2009-05-11 08:42 wipt 閱讀(1866) | 評論 (2)編輯 收藏

                                  僅列出標題  
                                  主站蜘蛛池模板: 盘山县| 霍城县| 广平县| 专栏| 伊金霍洛旗| 绥化市| 沭阳县| 临西县| 乐都县| 兴宁市| 郑州市| 奇台县| 东兰县| 栖霞市| 辛集市| 湛江市| 额敏县| 林甸县| 洞口县| 育儿| 滨海县| 巢湖市| 西昌市| 阿勒泰市| 凌源市| 当阳市| 安宁市| 延川县| 汉源县| 黔南| 阜平县| 漳浦县| 永新县| 建阳市| 黑龙江省| 鄂伦春自治旗| 罗山县| 丰台区| 清新县| 平和县| 河北区|