18
ここここ Web こここここ ここ ここ こ 195 19 こ こ 3 こ ここここここここここここここ ここ こ

「ことわけ Web 」 内部仕様書

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

Page 1: 「ことわけ Web 」 内部仕様書

「ことわけ Web 」内部仕様書

平成19年5月 19 日 第 3 版東京大学理学部生物化学図書室

前田 朗

Page 2: 「ことわけ Web 」 内部仕様書

コンテンツ• システム構成

– システム構成と、個々について簡単に説明• 基本データ型

– 各モジュール間でのデータの受け渡しに使う仕様をまとめたもの。

• モジュール化する部分• URI の設計

Page 3: 「ことわけ Web 」 内部仕様書

第1章.システム構成

MySQL( RDB)

Lighttpd (with FastCGI)

連想検索エンジンGETA

インターフェイスC プログラム

茶筅

オリジナルPerl コード

TermExtactほか Perl

モジュール

赤のブロックが要作成のコード緑も SQL でDBを要構築

Catalyst(PerlベースのWeb フレームワーク)

Template Toolkitによる HTML 雛形

Algorithm::Cluster

Page 4: 「ことわけ Web 」 内部仕様書

Lighttpd

• Apacheより軽量(高速)な Webサーバプログラム

• FastCGI との組み合わせで高速レスポンスを目指す

Page 5: 「ことわけ Web 」 内部仕様書

Catalyst

• Perl ベースの Web フレームワーク– MVC モデル (Model, View, Controller

の分割)による Web アプリケーションが作成可能

– Perl 版” Ruby on Rails” ともいわれる• MVC モデルの実装 (Model と View は選択可能 )

– Model --- MySQL– Vew ----- TempleteToolkit

– Controller -- Perl

Page 6: 「ことわけ Web 」 内部仕様書

MySQL• オープンソースのリレーショナルデータベー

ス• バージョン  5 を使用• UNIX ユーザ mysql で動作させる• MySQL ユーザ termcluster • データベース termcluster • テーブルは 3 種(詳細は別紙)

– プロジェクト・テーブル (Project)– 文書テーブル (Document)– クラスタ・テーブル (Cluster)

Page 7: 「ことわけ Web 」 内部仕様書

TermExtact

• 「言選 Web 」のコアである専門用語自動抽出 Perl モジュール

• 「茶筅」(形態素解析器)と連携して専門用語抽出を使う

• 重要度のオプションに、 TF(Term Frequency) を使う

Page 8: 「ことわけ Web 」 内部仕様書

GETA

• NIIが開発した、連想検索エンジン。クラスタリング用の C 言語ライブラリ(libcs) も付属しており、これを使う。

• 第2版の GETA を使う(第3版はインストールが難しい)

• GETAのユーザプログラムは、 C 言語で自作する必要あり

Page 9: 「ことわけ Web 」 内部仕様書

Algorithm::Cluster

• C 言語のクラスタリングライブラリ” Cluster 3.0” の Perl インターフェイス

• GETA では実装していない、 K-means 法やSOM( 自己組織化マップ)が作成できる

• 単語文書行列を Perl の2次元配列の形で用意する必要がある

• GETAと違い、 TF*IDF の処理を自分でコーディングする必要あり。

Page 10: 「ことわけ Web 」 内部仕様書

第2章.基本データ型1. MySQL のデータベーススキーマ

プロジェクトテーブルと文書テーブル

2. 文書中の用語と頻度 (TF) のリスト3. クラスタリング結果

Page 11: 「ことわけ Web 」 内部仕様書

クラス図

プロジェクト 文書プロジェクト IDプロジェクト名パスワードメールアドレス氏名所属クラスタリング結果パラメータコメント

プロジェクトID文書名テキスト本文用語リスト

1 0..*

[脚注 ] クラスは、 RDBのテーブルにて表現

用語リストからクラスタリング結果を求める

クラスタ

プロジェクトIDクラスタ No用語リスト

10..*

各プロジェクトのクラスタリング結果を収める

Page 12: 「ことわけ Web 」 内部仕様書

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 型

「作成日時」でインデックス作成(ソートに使用)

Page 13: 「ことわけ Web 」 内部仕様書

Document (文書)テーブル名称 列名 制約プロジェクトID

project_id 英数 20 文字以内。インデックス用意。

文書名 documentt_name

日本語で 255 バイト以内必須項目

用語リスト Term_list テキスト型。 JSONで用語と TF の組にしたリストを格納

登録 No Registry_no

英数 255 文字以内。最初の登録時のみ使用

作成日時 Create_date 作成日時 Datetime 型

更新日時 Update_date

更新日時 timeptamp型

「プロジェクト ID 」 + 「文書名」の組をユニークキーにする

Page 14: 「ことわけ Web 」 内部仕様書

Cluster (クラスタ)テーブル

名称 列名 制約プロジェクトID

project_id 英数 20 文字以内インデックス用意。

クラスタ No cluster_no 整数

用語リスト Term_list テキスト型。 JSONで用語リストを格納

「プロジェクト ID 」 + 「クラスタ No 」の組をユニークキーにする

Page 15: 「ことわけ Web 」 内部仕様書

文書中の用語と頻度 (TF) のリスト(基本データ型 2)

• JSON ( JavaScript Object Notation)を使い、言語に依存しない形( RFC 4627 )でDBに格納する

• 用語と頻度のハッシュ(連想配列)をシリアライズ(直列化)

Page 16: 「ことわけ Web 」 内部仕様書

クラスタリング結果(基本データ型 3)

• ただの配列データだが、 JSON を使い、言語に依存しない形でDBに格納する

Page 17: 「ことわけ Web 」 内部仕様書

潜在的意味解析• 当面実装しない• Perl モジュール PDF を用いて、潜在的

意味解析に必要な固有値解析 (LSA) を行えるとことまでは調査すみ

Page 18: 「ことわけ Web 」 内部仕様書

URI ベース設計

URI アクション/ メインページ

/user/login ログイン画面

/user/project プロジェクト登録画面

/user/password パスワード変更

/termextract 用語リスト表示画面(1)

/termextract/ ドキュメント名 / 用語リスト表示画面(2)

/culuster/disp/ クラスタ no/ ページ / クラスタリング結果表示

/download ダウンロード設定画面