190 likes | 320 Views
「ことわけ Web 」 内部仕様書. 平成19年5月 19 日 第 3 版 東京大学理学部生物化学図書室 前田 朗. コンテンツ. システム構成 システム構成と、個々について簡単に説明 基本データ型 各モジュール間でのデータの受け渡しに使う仕様をまとめたもの。 モジュール化する部分 URI の設計. 第1章.システム構成. TermExtact ほか Perl モジュール. Catalyst(Perlベースの Web フレームワーク). MySQL ( RDB). 茶筅. オリジナル Perl コード. Algorithm:: Cluster.
E N D
「ことわけWeb」内部仕様書 平成19年5月19日 第3版 東京大学理学部生物化学図書室 前田 朗
コンテンツ • システム構成 • システム構成と、個々について簡単に説明 • 基本データ型 • 各モジュール間でのデータの受け渡しに使う仕様をまとめたもの。 • モジュール化する部分 • URIの設計
第1章.システム構成 TermExtact ほかPerl モジュール Catalyst(Perlベースの Webフレームワーク) MySQL (RDB) 茶筅 オリジナル Perlコード Algorithm:: Cluster Template Toolkit によるHTML雛形 インターフェイス Cプログラム 連想検索エンジン GETA Lighttpd (with FastCGI) 赤のブロックが要作成のコード 緑もSQLでDBを要構築
Lighttpd • Apacheより軽量(高速)なWebサーバプログラム • FastCGIとの組み合わせで高速レスポンスを目指す
Catalyst • PerlベースのWebフレームワーク • MVCモデル(Model, View, Controller の分割)によるWebアプリケーションが作成可能 • Perl版”Ruby on Rails”ともいわれる • MVCモデルの実装(ModelとViewは選択可能) • Model --- MySQL • Vew ----- TempleteToolkit • Controller -- Perl
MySQL • オープンソースのリレーショナルデータベース • バージョン 5 を使用 • UNIXユーザ mysql で動作させる • MySQLユーザ termcluster • データベースtermcluster • テーブルは3種(詳細は別紙) • プロジェクト・テーブル (Project) • 文書テーブル (Document) • クラスタ・テーブル(Cluster)
TermExtact • 「言選Web」のコアである専門用語自動抽出Perlモジュール • 「茶筅」(形態素解析器)と連携して専門用語抽出を使う • 重要度のオプションに、TF(Term Frequency)を使う
GETA • NIIが開発した、連想検索エンジン。クラスタリング用のC言語ライブラリ(libcs)も付属しており、これを使う。 • 第2版のGETAを使う(第3版はインストールが難しい) • GETAのユーザプログラムは、C言語で自作する必要あり
Algorithm::Cluster • C言語のクラスタリングライブラリ”Cluster 3.0”のPerlインターフェイス • GETAでは実装していない、K-means法やSOM(自己組織化マップ)が作成できる • 単語文書行列をPerlの2次元配列の形で用意する必要がある • GETAと違い、TF*IDFの処理を自分でコーディングする必要あり。
第2章.基本データ型 • MySQLのデータベーススキーマ • プロジェクトテーブルと文書テーブル • 文書中の用語と頻度(TF)のリスト • クラスタリング結果
クラス図 プロジェクト 文書 プロジェクトID 文書名 テキスト本文 用語リスト プロジェクトID プロジェクト名 パスワード メールアドレス 氏名 所属 クラスタリング結果 パラメータ コメント 1 0..* 用語リストからクラスタリング結果を求める クラスタ 1 0..* プロジェクトID クラスタNo 用語リスト 各プロジェクトのクラスタリング結果を収める [脚注] クラスは、RDBのテーブルにて表現
Project (プロジェクト)テーブル 「作成日時」でインデックス 作成(ソートに使用)
Document (文書)テーブル 「プロジェクトID」+「文書名」の組を ユニークキーにする
Cluster(クラスタ)テーブル 「プロジェクトID」+「クラスタNo」の組を ユニークキーにする
文書中の用語と頻度(TF)のリスト(基本データ型 2)文書中の用語と頻度(TF)のリスト(基本データ型 2) • JSON(JavaScript Object Notation)を使い、言語に依存しない形(RFC 4627)でDBに格納する • 用語と頻度のハッシュ(連想配列)をシリアライズ(直列化)
クラスタリング結果(基本データ型 3) • ただの配列データだが、JSONを使い、言語に依存しない形でDBに格納する
潜在的意味解析 • 当面実装しない • PerlモジュールPDFを用いて、潜在的意味解析に必要な固有値解析(LSA)を行えるとことまでは調査すみ