ナイーブベイズでネガポジ判定をする.

2週間前ぶりの更新です.ナイーブベイズについて,メモっておきます. ナイーブベイズ分類器は,教師付きの学習をさせ,ベイズの定理を使って文章などを分類するものです.多変数ベルヌーイモデルと,多項モデルの2つがありますが,テキスト分類では多項モデルのほうが精度がいいみたいなので,多項モデルを使うことにします.ここでは,8つのツイートを学習の元にして,あるツイートがネガティブなものかどうかを判定するサンプルを書いておきます. 始めに学習用として,適当なツイートを取ってきて,自力でネガポジの判定をしておきます. ポジ:twitterは良いものです. ポジ:twitter最高やん. ポジ:facebookも悪くはない. ポジ:facebookは最高に良い. ネガ:twitterは最高ではない. ネガ:twitterは悪いのだ. ネガ:facebookは良くない. ネガ:facebookはもうダメだ. そして,形態素解析をして,整理します. ポジ:twitter 良い ポジ:twitter 最高 ポジ:facebook 悪い ない ポジ:facebook 最高 良い ネガ:twitter 最高 ない ネガ:twitter 悪い ネガ:facebook 良い ない ネガ:facebook ダメ 次にポジティブなツイート数(Np),ネガティブなツイート数(Nn)を数えます. また,ポジティブの中に含まれる単語の数(Nword,p)を全単語について数えます.ネガティブも同様に数えます. Np= 4 Nn = 4 Ntwitter,p = 2 Ntwitter,n = 2 Nfacebook,p= 2 Nfacebook,n= 2 N最高,p = 2 N最高,n = 1 N良い,p = 2 N良い,n = 1 N悪い,p = 1 N悪い,n = 1 Nない,p = 1 Nない,n = 2 Nダメ,p = 0 Nダメ,n = 1 そして,ポジティブな確率(Pp),ネガティブな確率(Pn),ポジティブという条件のもとでwordを含む確率(qword,p),ネガティブという条件のもとでwordを含む確率(qword,n)を求めます.(ホントはもっと複雑です.) Pp = Np / (Np + Nn) = 4/(4+4) = 0....

October 30, 2012

apacheに不正アクセス?

今日logwatchからのメールを見てみると,httpdのところが以下のような感じになってました.(一部変更しています) --------------------- httpd Begin ------------------------ A total of 3 sites probed the server 119.63.AAA.BBB 119.63.AAA.CCC 119.63.AAA.DDD A total of 2 possible successful probes were detected (the following URLs contain strings that match one or more of a listing of strings that indicate a possible exploit): /?tag=\xe7\xa9\xba\xe3\x81\x8d\xe5\xae\xb9\xe9\x87\x8f HTTP Response 200 /?feed=rss2&tag=\xe9\x81\x94\xe6\x88\x90 HTTP Response 200 A total of 3 sites probed the server ... 3つのサイトがこのサーバを調べて, A total of 2 possible successful probes were detected (the following URLs contain strings that match one or more of a listing of strings that indicate a possible exploit): ....

October 14, 2012

改行コードで苦戦しました.

linuxでスクリプトを動かして得たテキストデータをwindowsで使おうとしたときに結構苦戦してしまいました.linuxでutf8を使うようになってから,基本的にはどの環境でもutf8を使うようにしていますが,文字コードを揃えても,改行コードが間違ってれば正しく動きません.そんなことは完全に頭から抜けていてかなり無駄な時間を過ごしてしまいました. windows : CR+LF unix系 : LF です.同じutf8でも改行コードが違っていればぜんぜん違います.今後プログラムを書くときは"\r\n"なのか,"\n"なのか,気を付けるようにしないと.だた,文字コードもそんなに分かってる訳じゃないからなー.

October 12, 2012

「あーりんだよぉボタン」Ver.2へ更新しました.

昨日10/9 【ももクロ】あーりんだよぉボタンをVer.2へ更新しました. アプリのコメントであったように,重複があったパターンをなくして,さらにボリュームアップさせました.大きな変更がなく,短い期間で更新できて良かったです.611という数字にもこだわってみました.バグがなく,動いてくれるといいです. アプリの更新回数が多いと検索順位が上がるとかなんとか聞いたけど,ほんまかいな.

October 10, 2012

「あーりんだよぉボタン」1500ダウンロード達成

9/20にAndroid向けのアプリとして,【ももクロ】あーりんだよぉボタンをgoogle playで公開しました.元々は@nyah920のアイデアであり,開発も一緒に行なっていました.1000ダウンロードの時点でなにか書こうと思っていたけど,気がつけば1500ダウンロードまで増えていました.ホントに驚いています.Androidアプリてこんなに増えるもんなんやな. コメントに 2個目と最後の「あーりんだよぉ☆」は同じじゃないですか? とあるように,まだまだ改善の余地がたくさんあるので,これから修正していくつもりです. 最後にアプリの紹介をしておきます. 【ももクロ】あーりんだよぉボタン - google play ボタンを押すだけのとてもシンプルなゲームです.気の済むまでお楽しみください. ももクロ好きの方,特にあーりん推しの方には楽しんでいただけると思います.

October 7, 2012

迷惑メールフィルタには気を付ける.

先週ぐらいからlogwatchからメールが来なくなっていました.logwatchの設定ファイルは正しく設定されているし,crontabはちゃんと仕事しているしで原因がわかりませんでした.結局Gmailの迷惑メールフィルタに入ってしまっていたのが原因でした.それまで普通に受信トレイに入っていたので,突然迷惑メールになってしまって全く気づかなかったです(汗 logwatchをGmailで受信している人は気をつけといたほうがいいです.

October 1, 2012

phpでmecabを使う.

形態素解析をしなければならなくなったので,今日形態素解析エンジンのmecabをインストールして,phpから使えるようにしました.以下はその手順です.特にphp_mecabのとこでハマってしまいました. “make check"のときに =================== 1 of 3 tests failed =================== make[2]: *** [check-TESTS] Error 1 make[2]: Leaving directory `/usr/local/src/mecab-0.98/tests' make[1]: *** [check-am] Error 2 make[1]: Leaving directory `/usr/local/src/mecab-0.98/tests' make: *** [check-recursive] Error 1 のようなエラーを吐きましたが,あまり気にしないで大丈夫みたいです. cd /usr/local/src wget http://mecab.googlecode.com/files/mecab-ipadic-2.7.0-20070801.tar.gz tar zxfv mecab-ipadic-2.7.0-20070801.tar.gz cd mecab-ipadic-2.7.0-20070801 ./configure --with-charset=utf8 make make install ここまでインストールすると,こんな感じでmecabコマンドが使えるようになります. % mecab 高知市内でコーチしないで 高知 名詞,固有名詞,地域,一般,*,*,高知,コウチ,コーチ 市内 名詞,一般,*,*,*,*,市内,シナイ,シナイ で 助詞,格助詞,一般,*,*,*,で,デ,デ コーチ 名詞,一般,*,*,*,*,* し 動詞,自立,*,*,サ変・スル,未然形,する,シ,シ ない 助動詞,*,*,*,特殊・ナイ,連用デ接続,ない,ナイ,ナイ で 助詞,接続助詞,*,*,*,*,で,デ,デ EOS うちの環境ではmakeのときにエラーが出ました. さくらインターネットのレンタルサーバでMeCab Extensionを利用する方法 ↑のページに丁寧に解説があります.そこ通りにmecab....

September 26, 2012

logwatchでログを監視する.

自分でサーバを立てたら,攻撃されない様に常にログを監視しないといけないんだけど,一々確認するのは面倒なので,logwatchというソフトを使ってます.logwatchをインストールすると,毎日夜中にログをまとめてメールしてくれてます.これは実際に届いたメールです.(だいぶ修正してるけど) インストール手順は以下の通りです. sudo yum install iptables cat /etc/logwatch/conf/logwatch.conf おそらく # Local configuration options go here (defaults are in /usr/share/logwatch/default.conf/logwatch.conf) みたいに書いてると思うのでそのファイルを変更します. sudo vim /usr/share/logwatch/default.conf/logwatch.conf ここでMailTo = ほにゃらら@gmail.comみたいに送信先のメールアドレスを登録しておきます.とりあえずこれで毎日夜中にメールが来るようになります. それと今日バイト休みだったのでさっきまでatcoderやってました.(http://arc008.contest.atcoder.jp/) A,Bは簡単に解けたけどCはさっぱりわからず,Dのタコヤキオイシクナールは入力例は通ったのでいけそうだったけど,なんか間違ってたみたい.競技むずいわー

September 22, 2012

TortoiseGitのメモ.

何もgitのない環境からgithubを使い始めるまでをメモっときます. TortoiseGitをダウンロード,インストールする.(http://code.google.com/p/tortoisegit/wiki/Download) msysgitをダウンロード,インストールする.(http://code.google.com/p/msysgit/downloads/list) 右クリック->TortoiseGit->Settings->GeneralでGit.exe Pathにmsysgitのgitフォルダのパスを指定する.(例 C:\msysgit\git) すべてのプログラム->TortoiseGit->Puttygenでputty形式のsshの公開鍵と秘密鍵を作って,パスワードをつけ,適当なフォルダに保存する. (例 C:\Users\user1\.ssh) github->Account Setting->SSH Keysにさっきの公開鍵を追加する. Git cloneする.このとき,Load Putty Keyにさっき作った秘密鍵を指定する.URLの欄はgit@で始まるもの. 使い倒す.

September 19, 2012

Androidのリソース管理が分からない.

最近androidアプリの開発をやってます. MediaPlayerは一回目はうまくいくのに二回目ではリソースが読み込まれない(^_^;) 他にもMediaPlayerはほんまに嫌になるくらい. error(1,-17) info/warning(1,44) とか吐きまくります. https://groups.google.com/forum/?fromgroups=#!topic/android-group-japan/vlIEg60aRxE 結局これを参考にしてonDestory()の中でsystem.exit(0)して終わらせてしまいました.ホントはActivityのライフサイクルとかMediaPlayerの状態遷移をしっかり調べるべきなんだろうな.

September 18, 2012

スキャンした過去問が薄い時.

過去問とかをスキャンするときに,古いスキャナーでは濃さを指定できなくて文字が薄くなることがあります.そこで,スキャンしたけど文字が薄くて読めないという時に使えるスクリプトを書きました.ただpdfを二値化するだけですがこんな感じで結構使えます. 準備としてImageMagickをインストールしておきます. wget ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz tar xvf ImageMagick.tar.gz cd ImageMagick-6.7.9-6/ ./configure make make install インストール出来たら,以下のコードを適当なファイルに書き込む.(ここではScanDataConvert.rbとする.)それと,depth = 63000 のところはしきい値なので,適当に書き換えてください. #!/usr/bin/ruby #文字の濃さ(63000) depth = 63000 #文字コード指定 $KCODE = "UTF8" if ARGV[0] == nil || ARGV[1] == nil exit end #作業スペース workspace = "/tmp/workspace/" #作業スペース作成 com = "mkdir #{workspace}" `#{com}` p com #pdfファイルを分割する com = "pdftoppm " + ARGV[0] +" "+workspace+"aaa" `#{com}` p com com = "mogrify -format jpg "+workspace+"*.ppm" `#{com}` p com #各ファイルを加工する com = "convert -threshold "+depth....

September 17, 2012

サーバー初期設定のメモ

さくらのVPS のスペックとCentosインストール後の初期設定についてメモしておきたいと思います. まー調べたらいくらでも出てくるんだけどね. スペック(さくらのVPS 1G) メモリ 1G ディスク容量 100G CPU 仮想2コア ネームサーバ 5ゾーン ネットワーク 100Mbps共有回線 OS centos 6 x86_64 初期設定 root以外に新しくユーザをつくる. パスワードを設定して作ったユーザがsudo出来るようにwheelグループに入れておく.[bash] useradd user1 passwd password1 usermod -G wheel user1 vi /etc/pam.d/su [/bash] ここでsudo出来るユーザを限定するため/etc/pam.d/suの中で#auth required pam_wheel.so use_uidのコメントをのけておく. rootでのログインを禁止する. [bash] vi /etc/ssh/sshd_config service sshd restart [/bash] /etc/ssh/sshd_configの中で,#PermitRootLogin yesのコメントを外してnoにする. sshを公開鍵認証にする. はじめにクライアント側(PuTTYとかTeraTermとか)で公開鍵と秘密鍵の2つを作っておく.以下のコマンドはuser1で実行する. [bash] mkdir ~/.ssh chmod 700 ~/.ssh vi ~/.ssh/authorized_keys <= ここで公開鍵を書き込む. chmod 600 ~/.ssh/authorized_keys vi /etc/ssh/sshd_config service sshd restart [/bash] sshd_configでは#PubkeyAuthentication yesのコメントを外す. #PasswordAuthentication yesのコメントを外してnoにする. sshのポートを変更する. [bash] vi /etc/ssh/sshd_config service sshd restart [/bash] ここで,#Port 22のコメントを外して好きなポートに変える.

September 16, 2012

auショップに行って来た.

iPhone5の予約をするため,auショップに行って来ました.4時過ぎに行って,9番目の予約でした. そこまでは順調だったんだけど,名義が本人では無い人が予約するには自分の身分証明書の他に名義主の身分証明書のコピーもいるみたい.頭が回ってなかった(汗) これからiphone5の予約に行く人は気をつけてください.それと自分の名義主は出掛けてくるので帰ってくるのは日曜日. 予約はそれ以降・・・ まーしょうがないや

September 14, 2012

iPhone5が欲しい.

昨日の夜中に発表があったみたいです.時間があるときにiTunesで発表を見ようと思います.やっぱりiphone欲しいなー 二年縛りからも開放され,夏休み終了と同時に今まで使っていたガラケーが壊れてしまったのでちょうどいいタイミングです. iPhone5は4sと比べて CPUが強力になった A6(処理速度2倍,グラフィック2倍) ディスプレイが大きくなった 4インチ1136 x 640 バッテリーが保つようになった みたいです.だた,よく分からないことのほうが多いです. auのはテザリング出来るみたいだけど,使う機会があるのか. テザリングの通信制限はあるのか. てかLTEってなに. 結局auとsoftbankどっちがいいの. iOS6の新機能ってなに. なんでLightningていう新しい独自のコネクタをつくったの. あのイヤホンはそんなにすごいの. 明日9/14(金)16時から予約開始なので,早めにいってほうがいいかも. softbankに乗り換える理由もないのでこのままauになりそうだ.

September 13, 2012

さくらVPSを使い始める.

最近自宅サーバが悲鳴を上げていたので,思い切ってさくらVPSに移行します.このブログもさくらVPSで動いています.回線速度も速くかなり快適です.これからちょっとずつ移行していきます.登録さえしてしまえば後は自宅サーバとおんなじように使えていい感じ.それとbobuhiro11.netという新しいドメインを買って来ました.

September 7, 2012

メモリの空き容量を調べる.

[shell]# free   total       used       free     shared    buffers     cached Mem:        255408     251664       3744          0       2196      20300...

September 5, 2012

オブジェクト指向コーディング規約

オブジェクト指向できていますか? from Moriharu Ohzu   参考になるスライドを見つけたので紹介します.オブジェクト指向型言語を使うときにただなんとなくクラスを設計するのではなく,1つのクラスに1つの機能を純度100%で凝縮しようというものです.スライドを参考に作ればオブジェクト指向が深く理解できるようになるかも.そして,コードの品質があがるかも.スライドP73と同じですが,このコーディング規約をまとめておきます. 1つのメソッドにつき,インデントは1段階まで else句を使用しないこと すべてのプリミティブ型をラップする 1行につきドットは1つまで 名前を省略しない すべてのエンティティを小さくする 1つのクラスにつきインスタンス変数は2つまで ファーストクラスコレクションを使用する Getter Setterを使用しない 引用元:オブジェクト指向できていますか?

September 3, 2012

編入試験結果

編入試験から一ヶ月も経ったけど更新してなかった(汗) 無事徳島大学,筑波大学,大阪大学と合格することが出来ました.来年からは阪大基礎工学部に行くことになります.それと,わかる範囲で阪大編入生の方をフォローさせてもらいました.よろしくお願いします.

August 29, 2012

編入試験の参考書

筑波大学の編入試験まであと一週間になりました.そこで今までやってきた参考書を振り返りたいと思います. [英語] ・速読英単語必修編 ・基礎英語長文問題精講 ・ドラゴイングリッシュ [数学] ・高専の教科書(赤,黄,緑) ・数学/徹底演習 ・編入数学徹底研究 [物理] ・物理のエッセンス二冊 ・演習力学 すべての参考書を二週ずつやりました.専門分野の勉強をあまりしていないので,あと一週間は有名なアルゴリズムの復習と過去問の対策をしたいと考えています.

July 1, 2012

過去問やるか

今日は3つの大学の合格発表がありました.全体としては合格率はそんなに高くないので学力で受ける人が増えそうです. 自分の勉強はちょうど参考書が終わったところなので,過去問に取り掛かります. 受ける予定の大学はまだ3つ残っていてどれから手をつけるか迷いましたが,やっぱり目の前の試験に集中すべきだと思うので一番早い大学の過去問対策をします.

June 15, 2012