Hatena Engineer Seminar #5 での発表スライド
渋日記@shibu.jp 渋川よしきの日記です。ソフトウェア開発とか、ライフハックを中心に記事を書いていきます。 一般的な Web Programmer ならば、HTTP Status code はすべて暗記していると聞きました。 しかし、僕は初心者なので、なかなか覚えきれていないので、HTTPのステータスコードをさがすのに便利なツールを用意しました。httpstatusです。インストールはJSX(npm install jsx)とgitが使える環境で: $ git clone https://github.com/shibukawa/oktavia $ cd oktavia $ make です。使い方はコマンドの後ろに検索ワードを書けばいいのですが、Googleの検索と同じようなクエリーも少しだけサポートしています。本当はダブルクオーテーションでくくるとそのフレーズを完全に含む検索もいれ
というわけで大変便利なライブラリwat-arrayを使ってFM-Indexを簡単に実装してみるよ。本格的なライブラリは既にFM-Index++という良いものがあるので、本記事では仕組みの解説を目的とする。 参考資料: FM-index++を公開しました - tb_yasuの日記 An alphabet-friendly FM-index (P. Ferragina, G. Manzini, V. Makinen, G. Navarro, 2004) なお、本記事では前回の記事で実装した(ってほどでもないけど)text2bwt()とLF()を使っている。 話題のwat-arrayを使ってBurrows-Wheeler変換(BWT)してみた - EchizenBlog-Zwei 今回もテキストとしてmississippi#を使う。まずテキストから任意のキーの出現回数を得る関数get_rows(
渋日記@shibu.jp 渋川よしきの日記です。ソフトウェア開発とか、ライフハックを中心に記事を書いていきます。 HTML5アドベントカレンダー向けのエントリーです。ブラウザでできることがどんどん増えています。2013年に一部で熱狂的な話題となった本の高速文字列解析の世界 を読んで意識が高まったので、勢いにまかせてブラウザで動く検索エンジンを作ってみました。写真は著者の岡野原さんにお会いしたときにいただいたサインです。 ブラウザ上の検索エンジンと転置インデックスと東アジアの微妙な関係 全然調べていないので、歴史とかよくわからないのですが、僕が始めてブラウザ上で動く検索エンジンと出会ったのは、Sphinxです。SphinxはPythonで書かれたドキュメントツールです。ドキュメントツールというとJavaDocを始めとして各種あります。大きく、自然言語中心のもの(Texとか)と、APIリファレ
職場でHyperEstraierを使わせてもらっているので、自分が引っかかっていろいろ試したことなど、この日記に何度か書いてきました。 でも、トピックごとにばらばらに書き散らしていただけだったので、ここらで一度、基本的な手順のまとめなど書いてみます。 なぜHyperEstraierか ファイルサーバにいろいろな文書ファイルが降り積もってくると、どうしても必要なファイルを見つけ出すのが困難になってきて、「googleみたいに」検索して探したくなります。これを実現するのが全文検索エンジンと呼ばれるソフトウェアですが、それこそgoogle自身が販売している”イントラネットにつなげばgoogleで検索ができる”代物から、数十万オーダーの市販品、そして無償で利用できるオープンソースのプロダクトまで、いろいろとあります。 オープンソースの全文検索エンジンとしては、長くNamazuが定番でしたが、200
これまでに、N-gramと形態素解析の2つの検索エンジンの、見出し語の切り出し方法を説明しました。今回は、2つの見出し語の切り出し方法を比較し、それぞれの得意な点、不得意な点を明らかにしていきます。 2つの手法の概要 はじめに、2つの手法をおさらいしてみます。 形態素解析 検索対象のテキストを形態素解析を行い分かち書きを行う 分かち書きした単位を見出し語として転置インデックスを作成する 転置インデックスを元に検索を行う N-gram 検索対象のテキストをN文字単位の文字列片に分解する 分解した文字列片を見出し語として転置インデックスを作成する 検索語をN文字単位の文字列片に分け検索を行う 文字列の出現位置情報を利用すれば、漏れのない完全一致の検索が可能 大きな違いは、「転置インデックスの見出し語をどのように作るか」というプロセスが異なる点です。形態素解析は構文解析を行って分かち書きを行う
ソフトウェア的な索引では見出し語に対して、その見出し語が使われている文書(ファイル名、文書ID等)のリストを保存します。検索時は索引から見出し語を見つけ、その見出し語が使われている文書のリストを取得するだけなので、高速に検索が行えます。 全文照合方式と索引方式には、それぞれメリットとデメリットがあります。全文照合方式は、検索のたびに対象のテキストデータをメモリ上に読み込んで照合処理を行うため、大量の検索対象の場合、どうしても検索時間がかかるという欠点があります。 索引方式は、高速に検索が行える反面、あらかじめ索引を作成しておかなければなりません。索引の作成処理は、かなり負荷の高い処理になってしまいます。 このため、全文照合方式と索引方式には、それぞれ向き、不向きがあります。利用する場面に応じて使い分けるのがポイントです。検索対象が少量で検索回数も少ないなら全文照合方式、検索対象が大量で頻繁
検索エンジンの作り方教えます。グーグル自走カーのスタンフォード大教授が無料オンライン大学「Udacity」開校(動画)2012.01.30 13:006,446 satomi 昨秋、大学学部レベルのコンピュータサイエンス課程を無料で提供し、日本でも話題をふりまいたスタンフォード大。あれを担当したセバスチャン・スラン(Sebastian Thrun)教授が大学を辞め、なんとコンピュータサイエンス専門の無料オンライン大学「Udacity」をスタートしました! セバスチャン・スラン教授といえば、あのグーグルの自走カーをつくったお方。グーグルのフェロー(特別研究員)でもあります。 去年2月/TEDにて(日本語訳) 氏は秋の人工頭脳(AI)入門コースをスタンフォード大とオンラインの両方とも並行して担当したんですが、ロイターによると「オンラインコースの方が指導が密で教え方も良いため、リアルの大学のクラ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く