クロール中に Excel, Word, PowerPoint, PDF から文章を自動的に抽出する方法


Nutch では Jakarta POI を用いたパーザが標準で用意されているため、簡単な設定だけでクロール中に発見された Excel、Word、PowerPoint、PDFのファイル中から文章を抽出してインデキシングできるようになります。
日本語の文章も抽出できるので、Solrに取り込むことで日本語での検索もできるようになります。


設定は以下の2つです。

  • plugin のインクルード
    • conf/nutch-site.xmlを編集
  • urlfilter の修正
    • conf/crawl-urlfilter.txtを編集

plugin のインクルード

conf/nutch-site.xmlを編集してExcel、Word、PowerPoint、PDFのパーザプラグインを追加します。
nutch-site.xmlはインストール時はファイルはあるものの中身は空っぽ同然なので
デフォルトのままの場合は、nutch-default.xml を nutch-site.xml にコピーしてから修正します。

$ cd $NUTCH_HOME/conf
$ cp nutch-default.xml nutch-site.xml
$ vi nutch-site.xml
# plugin.includes の value に msword, msexcel, mspowerpoint, pdf を追加
  <name>plugin.includes</name>
   <!-- value>protocol-http|urlfilter-regex|parse-(text|html|js)|index-(basic|anc
hor)|query-(basic|site|url)|response-(json|xml)|summary-basic|scoring-opic|urlno
rmalizer-(pass|regex|basic)</value -->
   <value>protocol-http|urlfilter-regex|parse-(text|html|js|msword|msexcel|ms
powerpoint|pdf)|index-(basic|anchor)|query-(basic|site|url)|response-(json|xml)|summ
ary-basic|scoring-opic|urlnormalizer-(pass|regex|basic)</value>

urlfilter の修正

デフォルトでは拡張子が xls, pptのページはクロールがスキップされるように設定されているのでこれをスキップしないようにcrawl-urlfilter.txtを修正します。

$ cd $NUTCH_HOME/conf
$ vi crawl-urlfilter.txt
# skip image and other suffixes we can't yet parse
#  xls, pptをスキップ対象から削除します。
#-\.(gif|GIF|jpg|JPG|png|PNG|ico|ICO|css|sit|eps|wmf|zip|ppt|mpg|xls|gz|rpm|tgz|
mov|MOV|exe|jpeg|JPEG|bmp|BMP)$
-\.(gif|GIF|jpg|JPG|png|PNG|ico|ICO|css|sit|eps|wmf|zip|mpg|gz|rpm|tgz|mov|MOV|e
xe|jpeg|JPEG|bmp|BMP)$


このあとクロールすることで、Excel、Word、PowerPoint、PDFのファイル中から文章を抜き出してインデキシングされるようになります。


Nutch 標準のパーザで対応できるのは Microsoft Office のバージョン 2003 までのようです。
Microsoft Office 2007 は Excel、Word、PowerPointのいずれもうまくできませんでした。
あと、PowerPoint は 2003 でも一部文字化けしてしまうことがあるようです。


ではでは


いよいよ夏がちかづいてきた。海外リゾートに強いのはアメリカン・エキスプレス・ゴールド・カード。海外いけない場合は Wii Sports Resort でも買って。

アメリカン・エキスプレス