Upload
elijah-hunter
View
24
Download
0
Embed Size (px)
DESCRIPTION
「ことわけ Web 」 内部仕様書. 平成19年5月 19 日 第 3 版 東京大学理学部生物化学図書室 前田 朗. コンテンツ. システム構成 システム構成と、個々について簡単に説明 基本データ型 各モジュール間でのデータの受け渡しに使う仕様をまとめたもの。 モジュール化する部分 URI の設計. 第1章.システム構成. TermExtact ほか Perl モジュール. Catalyst(Perlベースの Web フレームワーク). MySQL ( RDB). 茶筅. オリジナル Perl コード. Algorithm:: Cluster. - PowerPoint PPT Presentation
Citation preview
「ことわけ Web 」内部仕様書
平成19年5月 19 日 第 3 版東京大学理学部生物化学図書室
前田 朗
コンテンツ• システム構成
– システム構成と、個々について簡単に説明• 基本データ型
– 各モジュール間でのデータの受け渡しに使う仕様をまとめたもの。
• モジュール化する部分• URI の設計
第1章.システム構成
MySQL( RDB)
Lighttpd (with FastCGI)
連想検索エンジンGETA
インターフェイスC プログラム
茶筅
オリジナルPerl コード
TermExtactほか Perl
モジュール
赤のブロックが要作成のコード緑も SQL でDBを要構築
Catalyst(PerlベースのWeb フレームワーク)
Template Toolkitによる HTML 雛形
Algorithm::Cluster
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章.基本データ型1. MySQL のデータベーススキーマ
プロジェクトテーブルと文書テーブル
2. 文書中の用語と頻度 (TF) のリスト3. クラスタリング結果
クラス図
プロジェクト 文書プロジェクト IDプロジェクト名パスワードメールアドレス氏名所属クラスタリング結果パラメータコメント
プロジェクトID文書名テキスト本文用語リスト
1 0..*
[脚注 ] クラスは、 RDBのテーブルにて表現
用語リストからクラスタリング結果を求める
クラスタ
プロジェクトIDクラスタ No用語リスト
10..*
各プロジェクトのクラスタリング結果を収める
Project (プロジェクト)テーブル
名称 列名 制約プロジェクトID
project_id ユニークキー。英数 20文字以内
プロジェクト名
project_name
日本語 255 バイト以内必須項目
パスワード password 英数 8 文字以内。必須
メールアドレス
e_mail 英数 255 バイト以内。必須項目
氏名 name 日本語 255 バイト以内
所属 belonging 日本語 255 バイト以内
コメント comment 日本語で TEXT 型
クラスタリングパラメータ
params 日本語 ,varchar 型で 255
ステータス Status プロジェクトの状態を示す 0 (登録前 ) 1 (登録済 ) 9 (停止 )
名称 列名 制約登録 No Registry_
no英数 256 文字以内。最初の登録時のみ使用
作成日時 Create_date
作成日時 Datetime型
更新日時 Update_date
更新日時 timeptamp 型
「作成日時」でインデックス作成(ソートに使用)
Document (文書)テーブル名称 列名 制約プロジェクトID
project_id 英数 20 文字以内。インデックス用意。
文書名 documentt_name
日本語で 255 バイト以内必須項目
用語リスト Term_list テキスト型。 JSONで用語と TF の組にしたリストを格納
登録 No Registry_no
英数 255 文字以内。最初の登録時のみ使用
作成日時 Create_date 作成日時 Datetime 型
更新日時 Update_date
更新日時 timeptamp型
「プロジェクト ID 」 + 「文書名」の組をユニークキーにする
Cluster (クラスタ)テーブル
名称 列名 制約プロジェクトID
project_id 英数 20 文字以内インデックス用意。
クラスタ No cluster_no 整数
用語リスト Term_list テキスト型。 JSONで用語リストを格納
「プロジェクト ID 」 + 「クラスタ No 」の組をユニークキーにする
文書中の用語と頻度 (TF) のリスト(基本データ型 2)
• JSON ( JavaScript Object Notation)を使い、言語に依存しない形( RFC 4627 )でDBに格納する
• 用語と頻度のハッシュ(連想配列)をシリアライズ(直列化)
クラスタリング結果(基本データ型 3)
• ただの配列データだが、 JSON を使い、言語に依存しない形でDBに格納する
潜在的意味解析• 当面実装しない• Perl モジュール PDF を用いて、潜在的
意味解析に必要な固有値解析 (LSA) を行えるとことまでは調査すみ
URI ベース設計
URI アクション/ メインページ
/user/login ログイン画面
/user/project プロジェクト登録画面
/user/password パスワード変更
/termextract 用語リスト表示画面(1)
/termextract/ ドキュメント名 / 用語リスト表示画面(2)
/culuster/disp/ クラスタ no/ ページ / クラスタリング結果表示
/download ダウンロード設定画面