让 Nutch 支援中文分词 方法教学 Nutch 1.0 + IKAnalyzer 3.1.6 中文分词库_中文分词方法

其他范文 时间:2020-02-28 23:06:43 收藏本文下载本文
【www.daodoc.com - 其他范文】

让 Nutch 支援中文分词 方法教学 Nutch 1.0 + IKAnalyzer 3.1.6 中文分词库由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“中文分词方法”。

讓 Nutch 支援中文分詞 方法教學Nutch 1.0 + IK-Analyzer 3.1.6 中文分詞庫

1.前言

2.何謂中文分詞

3.方法

1.修改程式碼

2.重編 nutch

3.開始使用

4.完成1.選項:加入字典檔

2.資訊不正確或麻煩

前言

Nutch 1.0 + IK-Analyzer 3.1.6 中文分詞庫 的詳細方法 本篇參考,並且修正與補充 何謂中文分詞

中文自動分詞指的是使用計算機自動對中文文本進行詞語的切分,即像英文那樣使得中文句子中的詞之間有空格以標識。中文自動分詞被認為是中文自然語言處理中的一個最基本的環節。

簡單來說,以“今天天氣真好”這段字而言,若搜尋“氣真”沒有中文分詞的結果為:1筆 => 今天天氣真好

 有中文分詞:0筆(因為詞庫為今天、天天、天氣、真、真好、好) 下面的例子即為,透過完成括充中文分詞(ik-analyzer)之後的nutch搜尋引擎,對“國家高速網路中心”的首頁(http://www.daodoc.com.tw/tw/)作資料爬取,並以此為搜尋資料庫。

搜尋“中心”兩字 有74筆資料,但搜尋單一一個“心”字只有 4筆資料;反觀若是沒有經過中文分詞,則單搜尋“心”必定比搜尋“中心”的資料更多

1.搜尋 中心 這個字串

2.單搜尋 心 這個字

3.搜尋 “冀此” 或單獨 “冀” 都沒有資料

ps : 搜尋“希冀”才會有資料

方法

你下載nutch-1.0 並解壓縮的資料如:$nutch-1.0/夾目錄位址,也是用來重編nutch的/home/user/nutch-1.0/資料夾原有的nutch資料夾,接著會被擴充$my_nutch_dir/opt/nutchez/nutch/ika中文詞庫

原本被用來放nutch網頁(在tomcat$my_tomcat_dir/opt/nutchez/tomcat內)的資料夾

修改程式碼

 安裝必要工具(java 已經安裝)

sudo apt-get install javacc unrar ant

 修改NutchAnalysis.jj 約130行左右的程式碼(原本為:|

>)

cd $nutch-1.0/

vim src/java/org/apache/nutch/analysis/NutchAnalysis.jj

|)+ >

用編譯器 javacc 編譯出七個java檔

 CharStream.javaNutchAnalysisTokenManager.java

TokenMgrError.java

 NutchAnalysisConstants.javaParseException.java  NutchAnalysis.javaToken.java

cd $nutch-1.0/src/java/org/apache/nutch/analysis 

javacc-OUTPUT_DIRECTORY=./ika/ NutchAnalysis.jj

mv./ika/*./;rm-rf./ika/

 編譯剛編出來的.java

vim $nutch-1.0/src/java/org/apache/nutch/analysis/NutchAnalysis.java  在第48行加入ParseException:

public static Query parseQuery(String queryString, Configuration conf)throws IOException,ParseException

在第54行加入ParseException:

throws IOException,ParseException { 

 下載 IKAnalyzer3.1.6GA.jar 解壓縮

o nutch 1.0 用的是 lucene 2.4.0 hadoop 0.19

o 因此ik分詞器最新僅能用 3.1.6ga(3.2.0GA 以上版本只支援

lucene 2.9以上版本)

cd $nutch-1.0/

wget http://ik-analyzer.googlecode.com/files/IKAnalyzer3.1.6GA_AllInOne.rar mkdir ika

unrar x./IKAnalyzer3.1.6GA_AllInOne.rar ika/

 分別放到以下三個資料夾

用來重新編譯nutch

用來給 nutch 進行 crawl時所匯

入函式庫$nutch-1.0/lib/$my_nutch_dir/lib/

用來給網頁的搜尋介面使用的函$my_tomcat_dir/webapps/ROOT/WEB-INF/lib式庫

cp ika/IKAnalyzer3.1.6GA.jar lib/

cp $nutch-1.0/lib/IKAnalyzer3.1.6GA.jar $my_nutch_dir/lib/ cp $nutch-1.0/lib/IKAnalyzer3.1.6GA.jar

$my_tomcat_dir/webapps/ROOT/WEB-INF/lib  修改 NutchDocumentAnalyzer.java 程式碼

cd $nutch-1.0/

vim src/java/org/apache/nutch/analysis/NutchDocumentAnalyzer.java 將

public TokenStream tokenStream(String fieldName, Reader reader){Analyzer analyzer;

if(“anchor”.equals(fieldName))

analyzer = ANCHOR_ANALYZER;

else

analyzer = CONTENT_ANALYZER;

return analyzer.tokenStream(fieldName, reader);

}

修改成public TokenStream tokenStream(String fieldName, Reader reader){Analyzer analyzer = new org.wltea.analyzer.lucene.IKAnalyzer();return analyzer.tokenStream(fieldName, reader);

}

 修改 build.xml,在 下(約195行),加入

cd $nutch-1.0/

vim build.xml

重編 nutch

 重新編譯 nutch-1.0

ant

 完成則多一個資料夾 build,o build/ 目錄裡面的 nutch-job-1.0.job 就是重編後的核心

ant jar;ant war

 分別產生 build/nutch-xxx.jar 與 build/nutch-xxx.war

開始使用

 最後,將nutch-job-1.0.jar複製到我的nutchez資料夾內取代使用

o(下面的步驟小心的把原本的job作備份,也可以不用,改用新編

出來的直接取代)

cd $nutch-1.0/

mv $my_nutch_dir/nutch-1.0.job $my_nutch_dir/nutch-1.0-ori.job

cp build/nutch-1.0.job $my_nutch_dir/nutch-1.0-ika-waue-100715.job ln-sf $my_nutch_dir/nutch-1.0-ika-waue-100715.job

$my_nutch_dir/nutch-1.0.job

 把nutch-1.0.war(原本nutch附的即可),解壓縮後放在你的tomcat

目錄內(以下用 $my_tomcat_dir 代表我tomcat的實際目錄)的/webapps/ROOT/中,並且再把“IKAnalyzer3.1.6GA.jar”、新編的“nutch-1.0.jar” 放進 $my_tomcat_dir/webapps/ROOT/WEB-INF/lib 還有 $my_nutch_dir/lib/ 內

cd $nutch-1.0/

cp $nutch-1.0/build/ $my_nutch_dir/lib/

cd $my_tomcat_dir/webapps/ROOT/WEB-INF/lib

cp $nutch-1.0/build/nutch-1.0.jar./

cp $nutch-1.0/lib/IKAnalyzer3.1.6GA.jar./  最後用nutch 的 crawl 抓取網頁,搜索的結果就是按ik分過的中文詞完成

 爬取後的資料就會依照中文分詞來分。中文分詞之後的結果並不會比較多,反而更少。但是精簡過後的搜尋結果

才能提供更準確的搜尋內容。

選項:加入字典檔

將 nutch-*.job 的檔案,用zip 工具解開,並將以下兩個檔案放入nutch-*.job 中即可

 IKAnalyzer.cfg.xml

IK Analyzer/mydic.dic mydic.doc

 國家高速

 國家高速網路

 國家高速網路與計算中心

資訊不正確或麻煩

接著將 build/claes 內的程式碼打包起來,建立nutch-1.0-ika.jar 函式庫(麻煩,根本不需要)

 cd $nutch-1.0/build/claes

 jar cvf nutch-1.0-ika.jar. cp nutch-1.0-ika.jar /opt/nutchez/nutch/lib/   即使用原始的nutch所crawl下來的資料,將 重編後的nutch-1.0.jar nutch-1.0.job IKAnalyzer3.1.6 正確放到你原本的nutch搜尋網頁中,重新啟動tomcat後,也可直接享用有分詞的結果(不正確)

將 IKAnalyzer3.1.6GA.jar 的 /org/wltea/analyzer/dic/ 資料夾內,放入你要得字典檔,可以參考同資料夾內的 main.dic(不正確,沒用) Attachments

(162.6 kB)added by waueago.(13.7 kB)added by waueago. Download in other formats:

下载让 Nutch 支援中文分词 方法教学 Nutch 1.0 + IKAnalyzer 3.1.6 中文分词库word格式文档
下载让 Nutch 支援中文分词 方法教学 Nutch 1.0 + IKAnalyzer 3.1.6 中文分词库.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

    热门文章
      整站推荐
        点击下载本文