「ことわけWeb」 内部仕様書 平成19年5月19日 第3版 東京大学理学部生物化学図書室 前田 朗 コンテンツ • システム構成 – システム構成と、個々について簡単に説明 • 基本データ型 – 各モジュール間でのデータの受け渡しに使う 仕様をまとめたもの。 • モジュール化する部分 • URIの設計 第1章.システム構成 TermExtact ほかPerl モジュール Catalyst(Perlベースの Webフレームワーク) 茶筅 オリジナル Perlコード Algorithm:: Cluster 連想検索エンジン GETA MySQL (RDB) インターフェイス Cプログラム Template Toolkit によるHTML雛形 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章.基本データ型 1. MySQLのデータベーススキーマ プロジェクトテーブルと文書テーブル 2. 文書中の用語と頻度(TF)のリスト 3. クラスタリング結果 クラス図 文書 プロジェクト プロジェクトID プロジェクト名 パスワード メールアドレス 氏名 所属 クラスタリング結果 パラメータ コメント 1 0..* 用語リストからクラスタリング結果を求める 1 クラスタ 0..* 各プロジェクトのクラスタリング結果を収める [脚注] クラスは、RDBのテーブルにて表現 プロジェクトID 文書名 テキスト本文 用語リスト プロジェクトID クラスタNo 用語リスト Project (プロジェクト)テーブル 名称 列名 制約 名称 列名 プロジェクトID project_id ユニークキー。英数20文 字以内 登録No プロジェクト名 project_nam e 日本語255バイト以内 必須項目 Registry_ 英数256文字以内。最 初の登録時のみ使用 no 作成日時 Create_dat e パスワード password 英数8文字以内。必 須 更新日時 メールアドレス e_mail 英数255バイト以内。必 須項目 Update_d 更新日時 ate timeptamp型 氏名 name 日本語255バイト以内 所属 belonging 日本語255バイト以内 コメント comment 日本語でTEXT型 クラスタリン グパラメータ params 日本語,varchar型で255 ステータス Status プロジェクトの状態を 示す 0 (登録前) 1 (登録済) 9 (停止) 制約 作成日時 Datetime型 「作成日時」でインデックス 作成(ソートに使用) Document (文書)テーブル 名称 列名 制約 プロジェクトID project_id 英数20文字以内。 インデックス用意。 文書名 documentt_n ame 日本語で255バイト以内 必須項目 用語リスト Term_list テキスト型。JSONで 用語とTFの組にした リストを格納 登録No Registry_n o 英数255文字以内。最初 の登録時のみ使用 作成日時 Create_date 作成日時 Datetime型 更新日時 Update_dat e 更新日時 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 ダウンロード設定画面
© Copyright 2025 ExpyDoc