Main

Introduction

C++ による文字列処理を補助するためのツールを公開しています.現在は,文字列の整列・照合用のライブラリと,はてなダイアリーキーワード抽出用正規表現をキーワード一覧に展開するライブラリがあります.

Downloads

動作確認は Visual Studio 2008 もしくは MinGW gcc 3.4.5 でおこなっています.

Updates

Contents

はてなキーワード抽出用正規表現の展開プログラム

はてなダイアリーには,キーワードに対して自動的にリンクを生成する機能があります.また,外部でも同様の機能を利用できるように,はてなダイアリーキーワードを抽出するための正規表現を公開しています.しかし,キーワードの数がとても多い上に,正規表現は機能過多なこともあり,処理効率を考慮すると使いにくいと感じます.

そこで,正規表現をキーワードの一覧に展開するプログラムを作成してみました.

文字列処理ライブラリ

詳細情報

各機能の詳細については,別ページを参照してください.(といいつつ準備中)

文字列クラス

C++ の標準ライブラリ std::string は便利なのですが,状況によっては機能不足あるいは機能過多と感じることがあります.そこで,2 つの文字列クラスを提供します.

メモリの管理や文字列の編集はサポートしませんが,気楽に使えるという利点があります.

文字列整列

マルチキークイックソートを用いて文字列を高速に整列するためのテンプレート関数を提供します.状況によっては std::sort より高速に動作します.

以下のような型を整列することができます.

文字列照合

辞書に登録されているキーワードを文字列から検出するためのクラスnanika::string_filter を提供します.各キーワードにレコード(例えば ID など)を割り当てることはできませんが,キーワードのフィルタリングや自動リンクなどに利用可能です.

ダブル配列(Double-Array)による Directed Acyclic Word Graph(DAWG)を採用しているため,形態素辞書やはてなダイアリーのキーワード一覧,Wikipedia のタイトル一覧を用いる場合,辞書ソース(テキストファイル)よりもバイナリ辞書の方が小さくなります.

以下のような機能を提供します.

分かち書きプログラム

辞書のみを使って分かち書きをおこなうプログラムです.解析を一切しないため,速いだけのアレゲな代物になっていますが,用途によっては使えるかもしれません.

容量の問題で,バイナリ辞書は UTF-8 用のみを添付してあります.

To Do

References