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

YamChaとかMeCabとか使って顔文字抽出

NLP

概要 Ruby,YamCha,MeCabで顔文字抽出を作りました。前に情報特別演習(筑波大学の実践的な授業)でやっていたものより精度が良かったので、こっちを先に公開します。先に言っておくと、残念ながら私のオリジナルではありません。

TRIE木全体を1つの論理式で表す

あらすじ reTRIEval treeの名の通り、恐るべき検索効率を誇るTRIE木。これをPrologで実装しようとした所、最終的には「単語集合を1つの節に変換するRubyのスクリプト」ができあがったので、記録として書いておきます。なお、この記事はTRIE木もRubyもProlog…

Prologで4ナイト入れ替え問題を実装

4 Knights Problem? 4 Knights Problemという問題があります。「ナイト 入れ替え チェス」などとググれば、簡単にヒットしますが、簡単に説明すると、3x3のマスの四隅に白・黒のチェスのナイトが2つずつ置かれていて、それを動かして、白と黒の位置を交換す…

パンくずリストを生成するJavaScript

はじめに とても常識的なプログラムを書きました。パンくずリストを生成するJavaScriptです。 ファイルごとの名前をハッシュ形式で指定し、実行時に読み込んで生成しています。例えば、下記の定義において、www.haroperi.info/emoticonは、はろぺり研>顔文…

顔文字をMeCabで形態素解析する

NLP

顔文字を形態素解析? テキストコミュニケーションにおける「身振り手振り言語」とも言われる顔文字は、目・鼻・口などの顔のパーツから構成されています。ところで顔文字をパーツごとに分割し、パーツの種類(品詞)を推定するというタスクは、形態素解析と…

曲線に曲げる折り紙

概要 球形の折り紙を作る研究をしている筑波大学の三谷先生という方がいる。 実はそんなに興味はないんだけど、オムニバス形式の講義で先生の話を聞く機会があり、かつ折り紙は好きなので。

双方向性のある階乗

はじめに 双方向性のあるプログラムを書くのはなかなか難しい。階乗を計算する双方向性のあるプログラムをPrologで書いたので、公開する。

Rubyで自分自身のSTDERRを読む

What's this? Reading own STDERR in Ruby

Macでコンピュータに日本語を喋らせるための何か

Waht's this? 標準入力から受け取った日本語テキストを読み上げる Requirements MeCab SayKana Source code #!/usr/bin/ruby mouth = open("|mecab -O yomi|SayKana >/dev/null", 'w') while l = gets l.chomp! mouth.puts l if l && l != '' end Latest ver…