Mosesに挑戦(日本語編)

前回は仏英翻訳だったので,今回は英日翻訳に挑んでみた. コーパス データはTanaka Corpus - EDRDG Wikiを使わせていただく.データの中身は以下のフォーマット. A: ムーリエルは20歳になりました。 Muiriel is 20 now.#ID=1282_4707 B: は 二十歳(はた…

Mosesに挑戦(実行編)

前回でMosesをインストールすることができたので,今回はチュートリアルにそって構築する. SMTに有効な要素 まずは統計的機械翻訳に必要な要素を理解する必要がある. Mosesのチュートリアルには以下の要素によって機械翻訳が正しくモデル化できる書いてあ…

Mosesに挑戦(続き)

おさらい 前回では,MosesをインストールするためにGIZA++,IRST,SRILMをインストールした.今回はMoses,Boostをインストールする. Boostのインストール Boostを入れるためにまずは本家からソースを手に入れる.その後はチュートリアル通りに進めていく.…

Mosesに挑戦

研究でMosesを使う必要がでてきたのでメモ.MosesはSMTを利用するために必要. さすがに自分で実装する能力はないのでMosesに頼る.Mosesに関する資料はここに置いてある. マニュアルはこのPDF. Mosesに必要だと思われるライブラリ Moses Boost GIZA++ Mec…

データを追加して確認するときのリストと辞書型の速度比較

前回,データを検索する場合,リストをsetした場合と辞書型ではsetのほうが早かったけど,データの追加までを考えるとどうなのか気になったので調べた. プログラム #-*- coding:utf-8 -*- import time def test_a(list): for i in range(10000): list.appen…

データを探索するときのsetと辞書型の速度比較

前回のリストと辞書型の比較のあとsetを使えば高速化できることを思い出したので,再計測 プログラム #-*- coding:utf-8 -*- import time a = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k'] b = {'a':1, 'b':1, 'c':1, 'd':1, 'e':1, 'f':1, 'g'…

データを探索するときのリストと辞書型の速度比較

データを探索するときのリストと辞書を速度比較してみた. プログラム 以下のプログラムで調べた #-*- coding:utf-8 -*- import time a = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k'] b = {'a':1, 'b':1, 'c':1, 'd':1, 'e':1, 'f':1, 'g':1, …

TwitterのStreaming APIを使ってみた

PythonでStreaming APIを使ったので、そのときのことをメモ。 目的 今回の目的は、リプライ かつ 日本語のツイートを取得することでした。 だから、guess_languageというライブラリを利用しています。 また、ファイルが大きくなるのを防ぐために1000ツイート…

Oauth認証でツイートの情報を取得

少し前にtweet_idを指定して該当のtweetを取得する方法を紹介しましたが、今回はそれをOauth認証で。認証することで、APIの利用制限も緩くなるらしいので、必須! ここではpython-twitterを利用しています。 def getMentionWithOauth(tweetId): import twitt…

キーワードでツイートを検索する方法

研究でキーワードからツイートを集める必要があったのでメモ下では「"キーワード"+日付」をファイル名にしています。 保存するデータはツイートIDやユーザーIDなど。 urlopenは403エラーを返すことがあるので、正常に終了させたい人は例外処理を書いてくだ…

ニュースをつぶやくTwitterアカウント一覧

IT

今回紹介するアカウントはカテゴリに依存しないニュースをつぶやくTwitterアカウントです。 日本経済新聞 電子版 @nikkeionline読売新聞YOL @Yomiuri_Onlineasahi @asahiNHKニュース @nhk_news毎日jpニュース速報 @mainichijpnewsロイター.co.jp @Reuters_…

「グーグルで必要なことは、みんなソニーが教えてくれた」を読んで

就活中でソニーに興味があったので読んでみた. グーグルの元社長である辻野さんがソニーにいた頃の思い出と,グーグル時代の思い出を書きながら,比較する内容になっている. ソニー初期 ソニーには”エンジニアの人達の目が輝いていた”や”自分達の製品は世…

「成功のコンセプト」を読んで

楽天の三木谷社長の著書. これには楽天で大切にしている5つのコンセプトについて書いてある. 高校時代の剣道部で得た教訓ととても似ているので、照らし合わせながら思い起こす. 常に改善、常に前進 毎日毎日の努力が重要であるということ. これは万物に…

ポイントという名の足枷

ポイントはあると嬉しいけれど,それが足枷となることがある. ポイントが良い働きをするとき 商品を買ったとき ポイントが悪い働きをするとき 商品を誰かに紹介するともらえるとき なぜか 前者は商品を買うという行為が目的となっていて,ポイントはあくま…

Force-Directed Graphを触ってみた

Force-Directed Graphとは? Wikipediaの力学モデル (グラフ描画アルゴリズム)によると 力学モデルによるグラフ描画(力指向アルゴリズム)は、グラフを美しく描画するためのアルゴリズムの一つである。 ノードに大きさ,辺に重みを与えることができて,それ…

「スティーブ・ジョブズ 驚異のプレゼン」を読んで

1年前に軽く読み流した本だったけど,この度もう一度読み直した. 感想として,3つの点について書く. 救世主的な目的意識を持つ これはジョブズがペプシコの社長,ジョン・スカリーを口説いた言葉に集約されると思う. 「一生,砂糖水を売り続ける気かい…

気になったWWW2012の論文

WWW2012のAccepted paperが発表されたので,気になった論文をメモ. Spotting Fake Reviewer Groups in Consumer Reviews Arjun Mukherjee and Bing Liu ステマしてるグループを発見 Learning Causality for News Events Prediction Kira Radinsky, Sagie Da…

tweet_idを指定して該当のtweetを取得する方法

研究でtweet_idからテキストを取得する機会があったのでメモ. import json import urllib2 def getTweetFromId(tweet_id): """引数をtweet_idとしてツイートを出力する""" url = 'https://api.twitter.com/1/statuses/show/' + tweetId + '.json' fp = urll…

ある文字列がどのファイルにあるか調べるときに使うコマンド

IT

何度も忘れてしまうのでメモ find /usr/local/ -type f -print | xargs grep Mongoこのコマンドでは"/usr/local/"下に"Mongo"という文字列を含むファイルを出力してくれます. さらにその文字列を含む行まで出力します.便利ですが,ログが大量にある場合は…

"UnicodeEncodeError: 'ascii' codec can't encode characters"と言われたら

Pythonを使っていてよく出会うのが、UnicodeEncodeError: 'ascii' codec can't encode charactersというエラー.これについてはPythonのUnicodeEncodeErrorを知るに詳しく書いてある.Unicodeは内部表現であって,これをエンコードすることで,sjisにもutf8…

Pythonでdictionaryの中身をソートして出力する

何度も忘れてしまうのでメモkeyの値でソートして出力する場合 d = {'A':500, 'B':200, 'C':300, 'D':100, 'E':400} for k, v in sorted(d.items()): print k, v A 500 B 200 C 300 D 100 E 400 valueの値でソートして出力する場合 for k, v in sorted(d.item…

Pythonでリストの何番目の値が最大か調べる

何度も忘れてしまうのでメモ list = [1, 2, 3] max(xrange(len(list)), key=lambda i: list[i]) #2

Pythonの多次元配列を初期化する

何度も忘れてしまうのでメモ #1次元配列 [0 for i in range(5)] #[0, 0, 0, 0, 0] #2次元配列 [[0 for i in range(3)] for i in range(3)] #[[0, 0, 0], [0, 0, 0], [0, 0, 0]] やっちゃいけないのは b = [[0] * 3] * 3 b[1][1] = 1 #[[0, 1, 0], [0, 1, 0…

MeCabに辞書を追加

自然言語処理を研究しているにも関わらず,初めての辞書追加. 単語の追加方法を参考にしながら作業を進める.しかし,エラー context_id.cpp(88) [it != left_.end()] cannot find LEFT-ID for 名詞,固有名詞,一般,*,*,*,* まずは検索すると,ちょっとだけM…

本屋に行ってきた(続き)

前回書いたエントリの続きです。 ネットで本屋の良さを出すにはどうすればいいか ネットの弱さは表示できる情報に制限があることだと思います。 ジョブズ本を買うプロセスで考えてみたいと思います。 1.検索窓にジョブズを入力した画面 もちろんジョブズ関…

本屋に行ってきた

年末年始でいろいろな本を買おうと思って、本屋に行って来ました。 その時に考えたことを書きたいと思います。 なぜ本屋に行ったぐらいで日記を書くのか? 私は最近はAmazonか楽天でしか本を買っていなかったからです。 IT系の本は普通の本屋に売っているこ…

線形分類してみた

研究室の輪読でPRMLを読んでいるため、線形分類を実際に実装してみました。 参考にしたURLは、パターン認識と機械学習(PRML)まとめです。とても参考になります。 線形SVM 点は正例、負例ともにガウス分布に従っていて、mean1 = [-1, 2]、mean2 = [1, -1]、…

小規模ECサイトのレコメンド[実装編]

前回は理論について考えました。今回は実装の方法を考えます。前回書いたとおり、データ数が少ないために、なるべくリアルタイムに処理をします。 1日1回夜中にバッチ処理で計算するよりも、正確な情報を与えることができます。 基本的な考え方 1.初めて…

小規模ECサイトのレコメンド[理論編]

現在のようにHadoopが使えるようになった今、大規模サイトではバッチで分散処理をすべきです。 しかし、小規模サイトの場合、そもそも計算するべきログが少ないため、わざわざ分散処理をするまでもありません。 ある程度リアルタイムに処理することを考えま…

プルダウンリストとカレンダーを連携させる

日付を選ぶ機能を実装するときにプルダウンリストとカレンダーの両方を使う方法です。理想はこんな感じ。 機能としては2つ必要です ・カレンダーでの変更をプルダウンに反映 ・プルダウンの変更をカレンダーに反映(こちらは必要な方だけ)以下にプログラム…