LoginSignup
18
19

More than 5 years have passed since last update.

Ubuntu on Windowsってデータ分析系エンジニアにとって実は超便利~Mecab(linux版)をいれてみた~

Posted at

はじめに

2016年4月のMiceosoftイベント Build 2016で発表されたBash on Ubuntu on Windowsですが、
発表した瞬間、会場ではハンパない歓声だったそうです。MSのエバンジェリストの人がいってました。
でも僕は「ふ~ん」くらいの感じで特に凄さがわからず、「別でLinux使えばいいじゃん」って感じで冷めた目でライブ中継をみてました。

でも、Windows InsiderファーストでリリースされているAnivesary Update相当のBuild 14385をインストールして、Bash on Ubuntu on Windowsを使ってみて、印象がかわりました。
これってめっちゃ便利じゃん!

なにが便利って、Windows のコマンドプロンプトのように超軽い感じでUbuntuがコンソールで動きます。
Windowsメインに使っている人にとってLinuxを別で用意するっていうと選択肢としては、
①AzureなどのCloudにLinuxのVMを作る
②Hyper-VでLinuxのVMをつくる
まぁ、だいたいこの二つだよね。
想像つくと思いますが、この二つって以外と面倒くさいです。
Cloudだと、VM起動停止しないとコストがかかるので、起動待ちが待ちきれくてストレスフル。
Hyper-Vは、端末のCPUとメモリを食うのであんまりやりたくない。(Hyper-VはWindowsの起動遅くなるし)
それを完璧に解決してくれているのが、Ubuntu on Windows。

コマンドプロンプトと同じく一瞬で起動します。
雰囲気でいうと、Visual Studioを立ち上げるのは遅くてイラッとするけど、
テキストエディターだと軽くてストレスがない感じに似ている。

そして、Windows側とファイルの共有も簡単にできて、いい感じです。
まだあまり研究できてないですが、
とりあえず、MecabとTensorFlowをいれてみましたが、動作は問題なさそうです。

データ分析系エンジニアにとって何が嬉しいか

データ分析でよく使われるようなツールって、
Linux版がメインになっていることが多いですよね。
例えば、RやPython、Mecab、Tensorflowなどなどなど。
これらはWindowsにも移植されてるのでいいじゃん?と思うかもしれないですが、
実はWindowsだと動かない機能が結構あったり、インターネットにLinux版の情報しかなかったりして、
めちゃめちゃ使いにくいです。
やっぱLinuxメインのツールは、不毛な障害調査を避けるためにもLinuxで使うべきだと僕は思ってます。
このUbuntu on Windowsはそのハードルを大きく下げてくれます。
そういう理由で、データ分析系エンジニアにとってうれしい機能だと思います。

Mecab(Linux版)をいれてみる

MecabってWindows版だと困ること多くないですか?
僕だけかな。。。
例えば有名なコーパスの「mecab-ipadic-neologd」ってWindowsで簡単に使えないよね?
以前、これを使うために2,3日悩んでMecab側のソースを一部変更したりしてやっと使えるようにした記憶があります。
でもLinuxだと難なく動きます。
あとなぜかユーザー辞書が使えなかったり、、、不明なエラーがよくでたり。。。

こういうのってLinuxで使っておけば無駄な調査の時間を省けるはずです。
なので、割り切ってもうLinuxでやることにしてます。

1.まずWindows 10のBuildバージョンをBash on Ubuntu on Windowsが使えるバージョンにする
僕が試したのは、Build 14385です。

2.コントロールパネルの「Windows機能の有効化または無効化」を起動し、
Windows Subsystem for linux(Bata)を選択して、インストール。
※再起動が必要です。

image

3.すると「Bash on Ubuntu on Windows」というアプリが、スタートメニューにでてきます。

image

4.起動するとコンソールが起動します。初めて起動したときは、Ubuntuのインストール処理が動作します。
5.インストールされると以下のようなコンソールになります。

image

6.そして、Mecabをインストール。ここからは、Ubuntuにインストールする手順と同じです。
なので、インターネット上に山のようにインストール手順があります。

$ cd /home/tomohiku
$ sudo apt-get install mecab libmecab-dev mecab-ipadic
$ sudo aptitude install mecab-ipadic-utf8
$ sudo apt-get install python-mecab

・参考サイト
https://gist.github.com/YoshihitoAso/9048005

※Linuxってパッケージマネージャがあって便利ですよねー。

7.Pythonもインストールする

$ sudo apt-get install python2.7

8.インストール後、テキストエディターのnanoでPythonコードを書いて、Mecabを使う

$ cd /home/tomohiku
$ nano

・Pythonコード

mecab.py
# coding: utf-8
import sys
import MeCab

m = MeCab.Tagger ("-Ochasen")

print ("私の名前はトモです。")
print m.parse("私の名前はトモです。")

9.Pythonを実行する

$ python mecab.py

image

まだ、ときどき文字化けしたり、文字が切れたりします。
この辺りのバグが早くなくなることに期待ですね。

おわりに

Microsoftは、CEOが代わってからOSSを受け入れ、自らのエコシステムに取り込むようになってきています。
たがしかし、OSSってLinux版が多いので、有名なソフトウェアは頑張ってWindows版を作ってリリースし、
対応していっていたのですが、すごく大変そうでした。
HDInsightとかはその最たるものかな。

なので、そもそもLinuxをWindows上で動かしてしまえば、いいんじゃね?
っていう思考でこの Bash on Ubuntu on Windows を作ったのかなと想像してます。
もちろんそれだけじゃないと思いますが。

今回触ってみて思ったのですが、LinuxのアプリがWindowsで動くってのは、
やってみるとめちゃくちゃ便利そう。
WindowsのVisual Studioから、LinuxのRエンジンやPythonエンジンを使ったり、
Visual StudioからLinuxのApacheにデプロイしたりできるようになるのかな。

Windowsの親しみやすさと、
LinuxのOSS実行環境が組み合わさると
わりといいもんだなと実感できた実験でした。

18
19
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
18
19