豪鬼メモ

一瞬千撃

Wikipediaの共起語を使ってシソーラス検索をしよう

前回、Wikipediaの記事を解析して、単語の共起語のデータベースを作った。今回は、共起語データベースを解析して類語を推定する。すなわち、共起語データベースをシソーラスとみなして、関連語の検索を行う。

Read more

Wikipediaを解析して共起語抽出をしよう

DBMで単語辞書を作る連載の2回目だ。今回作る辞書検索システムの看板機能は、類語検索である。そして、類語を自動的に推定するための一手法として、共起語を使う方法がある。ここでは、Wikipediaコーパスとして、共起語を抽出する。

Read more

DBMを使った検索エンジンの作り方

キーワード検索システムとか全文検索システムとか検索エンジンとか呼ばれる仕組みの肝は転置索引とか転置インデックスとか呼ばれるデータベースである。それは、検索語をキーとして、その検索語に該当する文書のIDのリストを値とする連想配列に他ならない。つまり、検索エンジンの肝はDBMである。この記事では、転置索引の効率的な構築方法について考察する。

Read more

reallocによる配列拡張の償却時間計算量

reallocを使ってメモリアロケーションのサイズを少しずつ伸ばしていく際に、償却時間計算量はO(N)になるだろうか、それともO(N^2)だろうか。結論としては、普通にやるとO(N^2)になる。ただし、セオリー通りにアプリケーション側で工夫するとO(N)にできる。性能テストをしてきちんと確認しておこう。

Read more

DBMで単語辞書を作ろう

データベースマネージャTkrzwを無事にリリースしたはよいが、ドッグフードは自分で食わないといけない。DBMを作るとまず最初にやりたくなるのが、それを使った単語辞書を作ることである。仕事柄、英和辞書と和英辞書はよく使うのだが、自分で作ったものを毎日便利に使っている。時間効率と空間効率に優れたDBMは辞書データを扱うのにうってつけだ。ということで、PythonでとDBMライブラリを使って単語辞書を実装していこう。

Read more

レンタルVPSにUbuntu 20をインストールする手順

レンタルのVPSで自分のLinuxサーバを運用しているわけだが、その再インストールと再設定を行った。新しいドメイン名を取得して、新しいOSを入れて、Webサーバを立てて、開発環境を構築する。これはその手順の自分用のメモだが、似たようなことをしたい人には役立つかもしれない。

Read more

データベースライブラリTkrzwの初版リリース

データベースライブラリであるTkrzwの初版をリリースした。Kyoto Cabinetの正式な後継製品である。本家のサイトはここである。設計目標の通り、高速かつ堅牢で多目的に使える実装になったと思っている。私の下手な英文を読ませるのも忍びないので、ここに概要を書いておこう。

f:id:fridaynight:20200628005917p:plain:w200

Read more

開発作業と椅子と尻

頭脳労働者諸氏が家に籠もって仕事をするようになって早数ヶ月、その末席に連なる私も、自室の椅子に座って一日中作業をするのが日常になった。環境の変化によって多かれ少なかれ体調を崩す人もいることだろう。腰痛とか肩こりとか頭痛とか鬱とか。私の場合、痔になった。その原因と対策に関するメモ。

Read more

DBMのローカルシャーディング

データベースの文脈において、シャーディングとは普通はデータベースを行で水平分割して複数の計算機に割り当てることを意味する。今回は敢えてそれをローカルで行う機能について考えてみたい。つまり、単一の計算機上でデータベースファイルを複数に分けて運用するのだ。

Read more