Kesinの知見置き場

知見を共有していきたいじゃないですか

Wikipediaから位置情報のデータベースを作る

Wikipediaの記事から位置情報をマイニングするスクリプトをPythonで作りました! Wikipediaの建物や場所の記事のタイトル右端にある位置情報と情報ボックス内の位置情報から抽出しています。Wikipediaは日々更新されているので、2012年にオープンしたばかり…

MapKitでピンに合わせて地図の表示領域を自動調節する

iOS

前回の記事の続きです 執筆時ではXcode4.4.1でARCを使うコードとなっています。Objective-CやXcodeの進化は速いのでこのバージョンより新しい(古い)Xcodeではこの記事の通りにやっても動かない可能性があります。ご注意ください。 ピンが全て表示されるよう…

MapKitでのピンの追加・削除、直線の描画

iOS

iOSアプリの入門書などでMapKitを使って地図を表示する方法は広く紹介されていますが、地図にピンを追加したり、削除したりする方法があまり載っていなかったので紹介したいと思います。 執筆時ではXcode4.4.1でARCを使うコードとなっています。Objective-C…

iOSアプリでアドレスブックを利用する

iOS

以前参加したインターンシップでiPhoneのアドレスブックからメールアドレスを選択してメールを送るという機能を実装したのですが、アドレスブックにアクセスする方法の情報が書籍にもネットにも意外に少なかったので紹介したいと思います。 執筆時ではXcode4…

Foursquare APIでVenueの写真を取得する

以前参加したインターンシップでFoursquare APIを使用してチェックイン場所の写真を取得しようとしたところ、APIが新しくなったらしくて予想外に苦労したのでやり方を紹介します。 位置情報系のアプリを作ろうとしたときに地図に付けたピンだけではちょっと…

StoryboardとSegueの基本

iOS

Xcode4.2からStoryboardという画面(ビュー)のレイアウトと別の画面への遷移をコードを書かずにグラフィカルに作成することができる機能が追加されました。自分はXcode4.4からiPhoneアプリの開発を始めたので、昔はどのように画面のレイアウトや遷移を設定…

Cent0S6でNFSのマウントに苦労した

大学の研究室の計算機サーバからファイルサーバをNFSでマウントするのに苦労したのでメモ。 ファイルサーバ側がdebianのsarge(古い…)で前からある計算機サーバ(debian lenny, CentOS5)では問題なくマウントできるのに、新しい計算機サーバ(CentOS6)だ…

OpenCV2でSIFT, SURFによる画像の対応付け

大学の講義で画像間の対応付けプログラムを作成するという課題が出されて、無事提出できたのでメモしておこうと思います。このような画像工学のプログラムは初めてで、特にMacOSX + Xcode4 + OpenCV2のサンプルが少なくて色々苦労しました。簡単ではあります…

NumPyとCythonを組み合わせると爆速!

前回の記事の最後にcythonとnumpyを組み合わせても速くならなかったと書いてしまったのですが、@frontier45 さんから公式のチュートリアルをちゃんと読みましょう。と教えていただいたので、自分の勉強がてらブログにも書いておきます。使用するコードは何の…

Pythonを高速化するCythonを使ってみた

突然ですが私はPythonが好きです。でもPythonは遅いです。 何が遅いかというと、致命的なことに四則演算が遅いです。でも他の動的型付け言語でスクリプト言語と呼ばれるPerl, Ruby, Javascript も C, Javaのようなコンパイルを行う静的型付け言語に比べれば…

SuffixArrayを作ってみた(Python)

前回の続き 自然言語処理はじめました - Ngramを数え上げまくるを見てSuffixArrayを使ったNgram取得をやってみたくなりました!前回SuffixArray構築に必須の文字列のソートアルゴリズムのマルチキークイックソートが実装できたのでいよいよSuffixArrayを実装…

マルチキークイックソート

自然言語処理はじめました - Ngramを数え上げまくるを見てSuffixArrayを使ったNgram取得をやってみたくなりました! SuffixArrayの構築には文字列のソートが必要なのでまずはここから始めます。 文字列のソートにはクイックソートを文字列のソートに応用した…

NumPy, SciPyをちゃんとインストールする(CentOS+Python2.7+easy_install)

研究室に新しくRedHatの計算機が来るそうなので、自分のMacBookにVirtualBoxを使用してCentOSを入れて自分の環境づくり&来年入って来る後輩にPythonを布教するための練習メモ。 目標:システムとは別のPythonをソースからインストール。yumでATLAS、easy_in…

Pool.imap()について

前回multiprocessingのPoolクラスの使い方を書いたのですが、執筆当時はイテレータについてよく分かってなくて、imap()が投げっぱなしだったのでそれについての補足です。 1. イテレータについて imap()の補足をする前にイテレータについて説明します。Wikip…

Python multiprocessing

前回Pythonでの並列化についてちょっと書いているうちに興味が湧いてきたのでもう少し掘り下げてみます。 Python2.6から標準モジュールになったmultiprocessingのリファレンスから並列に実行させるクラスについて色々試してみました。プロセッサ間の連携や共…

マルチコアで形態素解析を行う2(multiprocessing編)

前回の続きで今回はPythonで形態素解析をマルチコアで行うプログラムを実際に書いてみます。私自身multiprocessingモジュールはまだ全然理解できていませんが、並列に実行するプログラムを書くには Processクラス Poolクラス を使う必要があるようです。おそ…

マルチコアで形態素解析を行う1(プロファイリング編)

Pythonにはプロファイラというものが標準で付いていることを知りました。プロファイラを使用すると関数ごとの呼び出し回数や処理時間が計測できるので、どの部分が処理時間の足を引っ張ってるのかが簡単に分かります。無駄なループなどをコードとにらめっこ…

RSSで自然言語処理を体験する

自然言語処理って何? 大学の研究では自然言語処理というものを扱っています。 と言われても自然言語処理って何?という人がほとんど(自分も今年の4月まで知りませんでした)だと思いますので、自然言語処理について紹介していきたいと思います。自然言語処…

実行に時間がかかるスクリプトを並列実行するには

linuxで実行に時間がかかるスクリプトをいくつも実行する場合、マルチコアCPUならば並列実行して時間を短縮することができます。その方法とは、 % コマンド1 & コマンド2これだけです。&を付けると別プロセスでバックグラウンドで実行するので簡単に並列化…

標準機能でショートカットを追加して便利に

普段使用しているアプリで、この操作をキーボードショートカットでできたら便利だと思い、改めてメニューを確認したらショートカットが白紙でガッカリしたという経験がありませんか? 実はMacではどんなソフトでもキーボードショートカットを変更・追加する…

MacOS Xに初めからバンドルされてる「辞書」

記念すべき第1回目の記事ですが、思い切りマイナーなところからいきたいと思います。今回紹介するのはMacを買うと初めから付いてくる純正アプリの「辞書」です。 え?そんなアプリあったっけ?と思われる方もいるかもしれません。実際、私はこのアプリを他…