みやびの技術メモ

技術的な面でちょこっと手間取ったところを置いておきたいなぁ・・・。いろいろと間違いがあると思うので注意。

めっちゃ久しぶりにブログを更新するからOSでも入れます

お久しぶりです。ブログ、やっぱり全く更新しない状態が続きましたね。

なんかいろいろやったけどブログにまとめて無いですねぇ。筆不精。

 

せっかくですしそろそろまた更新しようと思って書いています。タイトルにもあるとおり、ArchLinuxを入れます。(パーティションが気に食わなかったり色々変更したくなったりして、今回3回めのArchInstallBattle)

使っているPCはGateway製のLT41P-f12D/fです。これ、ちっちゃいPCでとてもかわいいんですがなかなかクセモノでした。

①特殊キーがデフォルトなのでファンクションキーが(Fn)キーを押さないと使えずUEFI-BIOSメニューを起動するのに手間取った(UEFI-BIOSの設定で変更できる)

②買った状態ではUEFIの細々した設定が表示されなくて焦った

Gatewayの公式サイトからアップデートをして、LEGACYモードにしてようやく起動に成功しました。UEFIモードのまま起動できないかと色々思案したんですが、no bootable deviceと出て起動できませんでしたね。なんだか悔しい。

Drivers & Downloads

(Gatewayからアップデートファイルはダウンロード出来ます)

 

さて、そんなこんなでインストールする前に謎の辛さを感じましたが、無事

ビギナーズガイド - ArchWiki

を参照してインストールできました。

ブート方式は

BIOS-GPTでGrubを使います。ブートパーティションを忘れずに設定。

パーティション(500GのHDD)は

/boot 300M

swap 5G

/ 200G

/tmp 5G

/home 残り

みたいな感じになりました。swapとかtmpとか適当に与えすぎた気もするけどまぁ容量ギリギリになるほど使ったことがないので良いかなぁ。

 

とりあえずインストールガイドの通りに一通り設定した後、またarchを育てていきたいと思います。とりあえずデスクトップ環境は入れないで色々弄りたいと思います。

rubyでmecabを使う用のライブラリのようなものを書いてみた

この記事はほとんど私用です。

rubytwitter用のbotを作ったので、それに使おうということで機能が一般に使う向けではない気がします。

 

keyword check

こんな感じで作ってみました。

find_word(text,path)
入力されたtextを形態素解析して、名詞を抽出します。
抽出した名詞はlogfileに保存されます。
また、抽出した名詞がpathで示されたfileの中に存在するか検証して、
存在する場合にはture,存在しない場合にはfalseを返します。

find_max(path)
word times(wordは単語自体、timesは数字)
というフォーマットに沿った形式の.txtで示されたファイルを読み込んで、
timesが最も大きいwordの長さとtimes自体を返します。(リスト型)

find_min(path)
上記の最小バージョン

clean_word(path)
pathで示されたlogfileのフォーマットを揃えます。
長すぎる単語、アルファベットや数字を除外し、
重複する単語を一つにまとめます。

Ubuntuのランチャーを復旧する(ubuntu 14.04)

はい、Ubuntuのランチャー設定がぶっ飛んで表示されなくなったので直しました。

何やらunityの設定がバグってしまったようなのですが、compizを適当にいじってしまったのが原因だったようです。

とりあえず直すことはできたので、その方法を書いておきます。

(これが正しい直し方かどうかは分かりませんが…)

 

Ubuntu 14.04でログイン後ランチャーもツールバーも表示されない問題の復旧 - M12i.

 

このページを参考にしていたのですが、なぜか端末を表示することができなかったので、詰んだかと思いました。そこで、荒療治ですが、unityの設定を消去してリセットしました。

まったく分からないで弄ってしまったのでうまくいかない可能性があるので、その辺は自己責任で…。

それではいきましょう。

 

ctrl+alt+F1でコンソール画面にして、ランチャーが消えてしまったユーザにログインします。

ここで、

$ sudo nano~/.config/compiz-1/compizconfig/config

というように設定ファイルを見てみると、

[general_ubuntu]
profile =

という風になっていたので、

[general_ubuntu]
profile = unity

と変えます(これに意味があったのかは分からない)

 

その後、

$cd ~/.config/dconf

$sudo rm user

として、設定ファイルを削除します。

$sudo shutdown -r now

として再起動したら、ランチャーは初期化されて表示されました。

問題点はソフトの登録と日本語入力のmozc設定が消えていたことぐらいですかね…。

もっとちゃんとした方法があったのだろうか…。

mecabを導入してみる(ubuntu14.04)

日本語の形態素解析ソフトであるmecabを導入します。

 

導入の流れ

1 mecab本体のインストール

2 mecabが使う辞書のインストール

3 動作確認

 

1 mecab本体のインストール

MeCab: Yet Another Part-of-Speech and Morphological Analyzer

mecab本家様はこちらのURLですので、ダウンロードの欄からSourceをダウンロードします。

ダウンロードが終わったら、下記のコマンドを端末でひとつずつ打っていきます。

$ cd hogehoge #ダウンロードしたファイルがある場所に移動する

$ tar zxfv mecab-X.X.tar.gz #ダウンロードしたフォルダを展開

$ cd mecab-X.X #展開したフォルダ内に移動

$ ./configure #configureを実行 makefileができてインストールの準備をします

$ make #コンパイル

$ make check #make出来ているか確認

$ sudo make install #インストール

/*makeコマンドらへんを調べて見たのですが、make check+sudo make install の代わりにsudo checkinstall的なコマンドでも出来そうですね(未確認)

初心者なのでまだまだ勉強不足が…。*/

 

これで本体の導入が出来ました。次に、辞書をインストールします。

2 mecabのHP(上のURL)からIPA辞書をダウンロード

(複数の辞書の種類がありそれぞれ特徴があるのですが、今回は推奨とされているものを選びました)

$ cd hoge

$ tar zxfv mecab-ipadic-2.7.0-XXXX.tar.gz

$ cd mecab-ipadic-2.7.0-XXXX

$ ./configure --with-charset=utf8 #utf8しか使わないので、設定して実行します

$ make

$ sudo make install

これで必要なものはインストールできたのですが、このままではmecabを呼び出してもエラーが出ました。

$mecab

`require': libmecab.so.1: cannot open shared object file:...
とかlibmecab.so.2に変わったエラーとかが出てくる可能性があります。
これは何やら参照するディレクトリの設定が悪いらしいので、変更します。

$ sudo nano /etc/ld.so.conf #nanoで/etc/ld.so.confを変更する
一番下の行に、
/usr/local/lib
を追加して保存します。
(>>で追記でもいいと思うけど>にした日にゃ死にたくなるので注意)
$ sudo ldconfig
これで上手く行ったと思います。


3動作確認

$ mecab #mecabを起動する
猫ってかわいいよね
猫    名詞,一般,*,*,*,*,猫,ネコ,ネコ
って    助詞,格助詞,連語,*,*,*,って,ッテ,ッテ
かわいい    形容詞,自立,*,*,形容詞・イ段,基本形,かわいい,カワイイ,カワイイ
よ    助詞,終助詞,*,*,*,*,よ,ヨ,ヨ
ね    助詞,終助詞,*,*,*,*,ね,ネ,ネ
EOS

こんな感じで、文章を入力すると、分解して返してくれます。
やったね。あとはrubyとつないだりすればtwitterで人口無能みたいなことが出来そうです。

rubyへのつなぎ方はまたそのうち書きます。


補足1 辞書の追加


こんな時もあります。
にゃんこもふりたい
に    助詞,格助詞,一般,*,*,*,に,ニ,ニ
ゃんこもふりたい    名詞,一般,*,*,*,*,*
EOS
にゃんこにならない…。
こんな時は辞書を追加します。
辞書にはシステム辞書とユーザー定義辞書と2つの種類があるのですが、
今回はシステム辞書を更新したいと思います。
まずは追加したい語のcsvファイルを作ります。
名詞は活用しないからいいけど、動詞は活用するすべてを記述するのでつらみ。

newwords.csv
/*こんな感じのcsvファイル

他のファイルと合わせてEUCJPで書かないとだめ

もしUTF8とかで書いてしまったら、端末のnkfコマンドで変換する

表層形,左文脈ID,右文脈ID,コスト(出てきやすさ。適当に決めた),品詞,品詞細分類1,品詞細分類2,品詞細分類3,活用形,活用型,原形,読み,発音』

文脈IDは省略可能とか言いつつ省略するとエラー。*を入れても自動でスキップされるので、今のところ手動で入れるしかないかも
頑張って似ている単語を探して、その文脈IDを入れる
*/
にゃんこ,1285,1285,2000,名詞,一般,*,*,*,*,にゃんこ,ニャンコ,ニャンコ
もふる,772,772,7000,動詞,自立,*,*,五段・ラ行,基本形,もふる,モフル,モフル
もふら,780,780,7000,動詞,自立,*,*,五段・ラ行,未然形,もふる,モフラ,モフラ
もふん,782,782,7000,動詞,自立,*,*,五段・ラ行,未然特殊,もふる,モフン,モフン
もふろ,778,778,7000,動詞,自立,*,*,五段・ラ行,未然ウ接続,もふる,モフロ,モフロ
もふり,788,788,7000,動詞,自立,*,*,五段・ラ行,連用形,もふる,モフリ,モフリ
もふっ,786,786,7000,動詞,自立,*,*,五段・ラ行,連用タ接続,もふる,モフッ,モフッ
もふれ,768,768,7000,動詞,自立,*,*,五段・ラ行,仮定形,もふる,モフレ,モフレ
もふれ,784,784,7000,動詞,自立,*,*,五段・ラ行,命令e,もふる,モフレ,モフレ
もふりゃ,770,770,7000,動詞,自立,*,*,五段・ラ行,仮定縮約1,もふる,モフリャ,モフ $
もふん,774,774,7000,動詞,自立,*,*,五段・ラ行,体言接続特殊,もふる,モフン,モフン
もふ,776,776,7000,動詞,自立,*,*,五段・ラ行,体言接続特殊2,もふる,モフ,モフ

このファイルを辞書のフォルダの中にぶち込んで、補足2の辞書の入れなおしをすれば完了。もう一度形態素解析をしてみます。

にゃんこもふりたい
にゃんこ    名詞,一般,*,*,*,*,にゃんこ,ニャンコ,ニャンコ
もふり    動詞,自立,*,*,五段・ラ行,連用形,もふる,モフリ,モフリ
たい    助動詞,*,*,*,特殊・タイ,基本形,たい,タイ,タイ
EOS
どやっ。

てな感じで追加していきます。そのうち自動でIDを振るプログラムでも書きますかねぇ。

探せばありそう。


補足2 辞書の入れなおし


文字コードの指定を忘れているとプログラムで参照した時に文字化けします。
デフォルトがEUC-JPだったみたいで、utf-8に打ち直します。
utf-8に入れなおす手順です。
$ cd hoge
$ cd mecab-ipadic-2.7.0-XXXX
$ make clean
以下辞書インストールの$./configure ...からやる

GitHubを使ってみる(ubuntu14.04)

GitHubの設定をします。

GitHubはwebでソフトウェアを管理するのに便利なツールなのですが、ほとんど使ったことがなかったので設定をします

 

流れとしては

1 gitをPCにインストールする

2 githubのアカウントを設定する

3 SSHkeyの設定をする

4 gitにあげる

みたいな感じですかね。

 それでは早速やってみたいと思います。

 

1 gitをPCにインストールする

$sudo apt-get install git

 

2 githubのアカウントを設定する

続いてブラウザの方でGitHubのアカウントを取得します。(ここは割愛)

アカウントを作ったら、新しくリポジトリ(保存先)を作ります。

これはリモートの保存先で、いわばクラウドの送り先というべきなのでしょうか・・・?

f:id:miyabi3180:20141106203457p:plain

名前を決めて作成します。

 

3 SSHKeyの設定をする

githubと接続するためにsshkeyを作成します。

Generating SSH keys

上記のhelpを見ながらやれば間違いはないと思います。

 

4 gitにあげる

まずは、コミットユーザ(更新するユーザ)の設定をします。

$ git config --global user.name "username"

$ git config --global user.email "email@hoge.com"

もちろん自分の情報を" "内部に書いてください。

 

この後の流れはこちら

$cd hoge #更新したいファイル/フォルダが存在するディレクトリに移動

$ git init #レポジトリの生成

$git add hogehoge #hogehogeを更新したいですという宣言

$git comit -m "first add" #ローカルの中での更新完了

$git remote add origin https://github.com/username/repository_name.git

#リモートのrepository_nameの部分に更新しますよという宣言

$git push -u origin master #リモートに更新

つまり、ローカルを始めに更新して、ローカルの更新結果をリモートにも更新するという流れ。

多分こういう理解で良いのだと思う。

いろいろと大変そうだけど使いこなせばなかなか強力そうですね。