LoginSignup
5
7

More than 5 years have passed since last update.

wp2txtでハマった話

Last updated at Posted at 2016-05-04

何をしたかったか

 去年あたりから有名な、Word2Vecを触ることになった。

 Word2Vecはどんなものかというと、単語の意味を文脈(単語の前後にある一連の単語)から判断し、100~200次元くらいの空間に射影するのだとか。単語がベクトルを持ち、このベクトルの向きがその単語の意味に相当するので、意味の足し引きなどができるようになるそう。Word2Vecについて詳しくは↓
米googleの研究者が開発したWord2Vecで自然言語処理(独自データ)

 Word2Vecは文脈から判断するために、分かち書きされた大量の文書データを必要とするそうだ。

 日本語のデータを分かち書きするには、MeCabというアプリケーションが使われる。MeCabは辞書を元に確率的に解析して、文書の中で分けるのに最適な部分を見つけてくるのだとか。辞書にない言葉は認識できないので、分かち書きしたい文書のジャンルによっては、そのジャンルの辞書が必要だ。

 そこで試しにWikipediaのダンプデータから辞書を作ったり、コーパスを作ったりしたい。

 まずwp2txtというrubyのgemを使って、wikiのダンプをパースするのだが、このwp2txtでハマった。以下はその時のメモ代わり。

環境

 Windows 8.1上で vagrant + VirtualBox を使って仮想OS Ubuntu14.04 を導入してある。また、UbuntuはPythonが2系なのが気に入らないので、3系の環境をAnacondaで構築。さらにRubyも一応入れてあるところからスタート。
そのときの努力はここ

wp2txtのワナ

 本家(githubレポジトリ)には一行でインストールできると書いてある。

$ gem install wp2txt

しかしエラー。。。

root@ubuntu-1404:/home/vagrant# gem install wp2txt
Building native extensions.  This could take a while...
ERROR:  Error installing wp2txt:
        ERROR: Failed to build gem native extension.

    current directory: /var/lib/gems/2.3.0/gems/nokogiri-1.6.7.2/ext/nokogiri
/usr/bin/ruby2.3 -r ./siteconf20160503-3778-1cu9phe.rb extconf.rb
mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h

extconf failed, exit code 1

Gem files will remain installed in /var/lib/gems/2.3.0/gems/nokogiri-1.6.7.2 for inspection.
Results logged to /var/lib/gems/2.3.0/extensions/x86_64-linux/2.3.0/nokogiri-1.6.7.2/gem_make.out

ちゃんと読むと、nokogiriとやらで詰まっていること、mkmfがヘッダを見つけられなかったことが分かる。

bundleで入れようとしたり(1, 2)、なぜかrailsを入れようとしてみたり(wp2txtと同様、nokogiriで全く同じエラーを吐く)したがまあダメ。
mkmfが無い場合はruby-devをインストールが惜しかったがこれもダメだった。

- 解決

結局Stack Overflow(本家の)を読んで解決した。

Error while installing json gem 'mkmf.rb can't find header files for ruby'

rubyのバージョンを確認すると次の通りだった。

root@ubuntu-1404:/# ruby -v
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-linux-gnu]

よって

root@ubuntu-1404:/home/vagrant# sudo apt-get install ruby2.3-dev

とすると、

root@ubuntu-1404:/# gem install wp2txt
Fetching: wp2txt-0.8.0.gem (100%)
Successfully installed wp2txt-0.8.0
Parsing documentation for wp2txt-0.8.0
Installing ri documentation for wp2txt-0.8.0
Done installing documentation for wp2txt after 0 seconds
1 gem installed

となって解決。
ちなみに、原因はいろいろあるよう。

その他参考にしたページ

やりたいことが全く同じ
http://eyepodtouch.net/?p=77

wp2txtをこれで知った
http://saiyu.cocolog-nifty.com/zug/2014/02/word2vec-1867.html

青空文庫で試してる例
http://tjo.hatenablog.com/entry/2014/06/19/233949

nokogiriをビルドできない
http://qiita.com/chobi9999/items/7b66677b3bf3da8acc14

5
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
7