唯物是真 @Scaled_Wurm

プログラミング(主にPython2.7)とか機械学習とか

2013-01-01から1年間の記事一覧

久しぶりにProject Eulerの問題を解いた(265, 301)

最近Project Eulerが話題になっていたので、久しぶりにやってみた 解いてる人数が多そうな問題の中から比較的問題番号の大きい物を選んで解いた。127問解いていて、日本人の中では150位(/2470)らしい ……それにしてもいつの間にか150問解いても100位以内にす…

論文感想: "Exploiting Topic based Twitter Sentiment for Stock Prediction" (ACL 2013 short)

"Exploiting Topic based Twitter Sentiment for Stock Prediction" 概要 Twitterから株価の指標の上下を予測する話。 似たような話は前からあるけど、この論文ではトピックモデル(前の日のトピックを考慮したDirichlet Process Mixture)を使ってよい結果を…

TopCoder SRM 590 Div 1 o-- 1211->1280

367th, +0/-0 challenge Volatility 370->362 初めてDiv 1でレートが上がったかもしれない(弱部屋の誰も500解けてなかったんでチャレンジ成功してれば部屋で1位ぐらいの僅差だった システムテストで250が落ちてる人が何人かいたので、チャンスはあったのにな…

論文感想: "Good, Great, Excellent: Global Inference of Semantic Intensities"(TACL vol.1)

Good, Great, Excellent: Global Inference of Semantic Intensities 図表、式は論文中から引用 概要 似た意味の形容詞の強弱の順序付けをするタスク 例えば「寒い」「涼しい」「冷たい」「痛い」などの形容詞が与えられた時に、その強弱関係は「涼しい<寒…

はてなブログのAPIが公開されたらしいので簡単に触ってみた(Python)

はてなブログAtomPub APIを公開しました。サードパーティのブログ投稿ツールを利用・作成できます - はてなブログ開発ブログ とのことで触ってみた はてなのAPIを扱うのは初めて。Python以外の言語のサンプルを見るとAtomを扱えるライブラリがあれば簡単に書…

クラソル(CrowdSolving)の第3回コンペに参加中(途中経過: 1/16位)

まだ期間の途中ですが以下のに参加してます 【チャレンジコンペ】記事間のリンク推定 | クラソル | CrowdSolving 記事の間にリンクがあるかを予測するタスクで、上位になると一応賞金が出るらしいです過学習っぽいせいか(?)、仮順位表上では1位なので嬉しい…

論文感想: "TopicSpam: a Topic-Model based approach for spam detection" (ACL 2013 short)

"TopicSpam: a Topic-Model based approach for spam detection" 概要 spam detectionとなっているけれど、以前紹介した以下の論文と同様に、偽のレビューの検出を行っている 論文感想: "Finding Deceptive Opinion Spam by Any Stretch of the Imagination"…

最近読んだ本

わかりやすいアウトプットをするための本 数学文章作法 基礎編 (ちくま学芸文庫)作者: 結城浩出版社/メーカー: 筑摩書房発売日: 2013/04/11メディア: 文庫この商品を含むブログ (21件) を見る リーダブルコード ―より良いコードを書くためのシンプルで実践的…

TopCoder SRM 588 Div 2 oo- 1180->1211

またDiv 1になりました 250: KeyDungeonDiv2 いくつかのドアがあり、それぞれいくつかの赤の鍵穴と緑の鍵穴がある。 また赤の鍵と緑の鍵と白の鍵の個数が与えられる赤の鍵と緑の鍵はそれぞれの色の鍵穴に対してだけ使用できる。 白の鍵はどの鍵穴に対しても…

知り合いがコミケ84に出るらしいので勝手に紹介 + サークルチェックいくつか

今週末(土日月)はコミックマーケットですね知り合いが出るらしいので勝手に紹介します あといくつかサークルチェックしたので載せときます 3日目東ホ54a「エンドレスシラフ」 知り合いは同人のSTGを作っていて、今回はファンディスク的なものを出すらしいで…

TopCoder, Codeforcesである回に登録して参加しないときレートは下がるのか?

Registerしたあとに用事ができたりして参加できないときにどうなるのか疑問だったので調べました。 どこかに書いてあるんだとは思うんですが、探しても見つからなかったので実際やってみました TopCoder レーティング変化なし Codeforces レーティング変化な…

TopCoder SRM 587 Div 2 xoo 1119->1180

250: InsertZ ある文字列からzを取り除いたものが別の文字列と一致するかどうかを確かめるだけの問題のはずなのだが、なぜか間違えていて撃墜された 500: JumpFurther 1からNまでの数字それぞれについて総和に足していくか足さないかを選べる。 途中である数…

Lossy Countingの変種を実装してみた

前に以下の記事でLossy Countingを実装しましたが、より省メモリな変種があるらしいのでそちらも書いてみました Lossy Countingを実装してみた - 省メモリな頻度計測 - 唯物是真 @Scaled_Wurm 以下の論文のAlgorithm 2の擬似コードそのままです。 "Methods f…

Lossy Countingを実装してみた - 省メモリな頻度計測

大規模データで頻度を数えると、欲しいのはよく登場するアイテムの情報なのに、ほとんど出現しないアイテムの種類数が非常に多くて、それらがメモリを大量に必要としてしまうという問題があるこれに対してアイテムの種類数の最大値に制限を加えたり、頻度に…

小説家になろうの作品タイトルは長文化しているのか?

いささか旧聞ですが「ライトノベルのタイトルが長文化しているのではないか?」という話題がありました ラノベタイトルの文字の長さ決着編 - World Digger 2013年発売のラノベタイトルの割合を出してみた - Togetter Web小説投稿サイトである小説家になろう…

matplotlibで積み上げ棒グラフ

積み上げ棒グラフ(stacked bar chart)は、棒グラフを積み重ねた以下のような形のグラフです matplotlibのbar関数ではオフセットを指定できるので、オフセットを足しながら棒グラフをかいていけば積み上げ棒グラフができます from pylab import * def bar_sta…

python 2.7でPython 3風に書きたい

Python 3以降との違いを調べていたときのメモ Python 2.7でも試せるもの 以下にPython 2.7でimportをすればPython 3風に書けるものを列挙しておきます from __future__ import division Python 2.7では割り算「/」の結果は切り捨てでしたが、Python 3以降で…

正規分布間のKLダイバージェンスの導出

多変量(多次元)正規分布のKLダイバージェンスの求め方 - EchizenBlog-Zwei 上の記事を読んで勉強になったのですが、数式がテキストで読みづらかったのと、多変量でない1次元の正規分布の導出の段階でよくわからなかったので調べて記事にまとめました 注意 数…

grepで先読みとか戻り読みの正規表現

先読みとか戻り読みの正規表現はgrepでは使えないかと思っていました。 ですが"-P"のオプション(Perl互換)を指定すれば使えるんですね(grepの種類などによるかもしれませんがちなみに先読みとか戻り読みについては以下の記事が簡潔でわかりやすかったです 正…

MathJaxでの数式表示を試す

はてなブログの数式機能の出力が見やすくなかったので、MathJaxを使って数式を表示させてみますMathJaxはJavaScriptによるライブラリで、Webページ中の「$$」などに挟まれた部分を自動的に数式に変換して表示してくれます 数式上の右クリックでTexやmathmlの…

論文感想: "The lie detector: explorations in the automatic recognition of deceptive language" (IJCNLP 2009 Short)

"The lie detector: explorations in the automatic recognition of deceptive language" 与えられた文章が嘘かどうかを識別するタスクAmazon Mechanical Turkで大勢の人に、本当の意見と嘘の意見を書いてもらってデータセットにしている。 ナイーブベイズや…

LIBSVMの特徴量の重みを見る - LIBSVMのモデルの読み方

以前LIBSVMで特徴量の重みを見る方法について記事でURLを紹介したのですが、リンク先の記事とコードがなくなっているみたいなので、改めて記事にしておきます。 SVMでの特徴量の重み 非常に単純化して説明すると、線形カーネルのSVMは次のような式の符号の正…

論文感想: "Personalized PageRank vectors for tag recommendations: inside FolkRank" (RecSys 2011)

Personalized PageRank vectors for tag recommendations 概要 ユーザーとアイテムとタグのデータが与えられた時に、ユーザーとアイテムに対するタグの推薦を行う方法としてFolkRankというアルゴリズムがよく使われている(らしい)。 このアルゴリズムを近似…

TopCoder SRM 583 Div 2 ○○- 1160->1254

28th, +3/-1 challenge 青くなれたのでしばらく休憩 250: SwappingDigits 与えられた数値のある2つの桁を入れ替えたときに最小になる数値を答える。 計算量に余裕があるので総当りで解いた。 longに収まりきらなかったのでBigIntegerを利用 import java.math…

AtCoder Regular Contest #014 ooox

82位。いつの間にか2級になっていた Welcome to AtCoder Regular Contest #014 - AtCoder Regular Contest #014 | AtCoder A: 君が望むなら世界中全てのたこ焼きを赤と青に染め上げよう - AtCoder Regular Contest #014 | AtCoder 数値が偶数ならBLUE、奇数…

ニコニコ動画のデータセットが公開されたらしい

研究用にニコニコ動画のコメント約300GBを公開‐ニコニコインフォ 情報学研究データリポジトリ ニコニコ動画コメント等データ 国立情報学研究所のダウンロードサービスでニコ動のデータセットが公開されていたので、とりあえずダウンロードしてみました ダウ…

TopCoder SRM 582 Div 2 ○○- 1126->1160

102th, 0/0 challenge また青コーダー(レート1200以上)に近づいて来ました 250: SemiPerfectSquare 与えられた正整数N( 総当りするだけ。 public class SemiPerfectSquare { public String check(int N) { for(int i = 1; i < Math.sqrt(N) + 1; i++) { for(…

『エンジニアのための時間管理術』☆☆☆☆

「エンジニアのための」というタイトルになってはいるものの元々はシステム管理者向けの本らしいです。 色々なことが書いてありましたが、個人的に印象的だったものをいくつか下に書いときます。 作業をルーチン化する 「毎週日曜に給油する」などと決めてお…

matplotlibで日本語入りのグラフを書く

pythonではmatplotlibがグラフの描画によく使われます。 しかし、デフォルトの設定では以下のように豆腐みたいに文字化けしてしまいます from pylab import * text(0.2, 0.4, u'日本語', size=100) show() この問題を回避するには以下のように直接日本語フォ…

SEXI 2013(18禁の情報の検索やデータマイニングのワークショップ)の論文読んだ

SEXI 2013 | Workshop on Search and Exploration of X-Rated Information at WSDM 2013 WSDM (Web Search and Data Mining) 2013でSEXI(Search and Exploration of X-rated Information)というワークショップが開催されて一部で話題になった このワークショ…