ミニプロジェクト

ミニプロジェクト
「辞書」
simitaka@SING
親:mitsuya
目的
• 複数の辞書を利用
• 状況ごとに辞書を選択
• ユーザの学習支援
設計
設計概要
CD-ROM
×
WEB辞書
DOG
辞書クライアント
NDTPサーバ
設計概要
○
CD-ROM
WEB辞書
DOG
辞書クライアント
NDTPサーバ
設計概要
CD-ROM
WEB辞書
NDTPサーバ
犬
辞書クライアント
キャッシュ
辞書選択ポリシ
• 優先順位をユーザが設定
• 状況によって対応
検索結果のキャッシュ
• 調べた単語の意味、回数をクライアントで
保持
– オフラインで実行可能
– パフォーマンス向上
• 学習支援への利用
– 検索回数の表示
– 覚えたページを破いて食べる
• 辞書データは変わらない
実装
対応した辞書
• CD-ROM搭載サーバ
– エコーサーバの応用
• ALCのWeb辞書
– http://www.alc.co.jp/
– CGI
CD-ROMデータ利用
CD-ROM
• EPWING 形式
• EB Libraryを利用
– CD-ROM 書籍にアクセスするための関数
必要なデータ取得まで
①CD-ROMとのbind
eb_bind()
EB_Book 型のオブジェクト
必要なデータ取得まで
②副本の選択
副本0: [国語辞典]
副本1: [英和辞典]
EB_Book 型のオブジェクト
副本の選択
必要なデータ取得まで
③検索
副本0: [国語辞典]
副本1: [英和辞典]
EB_Book 型のオブジェクト
D
O
G
必要なデータ取得まで
④テキストデータの取得
副本0: [国語辞典]
副本1: [英和辞典]
EB_Book 型のオブジェクト
犬
ALCのWEB辞書の利用
結果の抽出方法
•二つのスタックを使う
•タグ
•要素
<html>
<head>
<title>SPACE ALC</title>
</head>
<body>
辞書です。<br>
以上
</body>
</html>
結果の抽出方法
•二つのスタックを使う
•タグ
•要素
<html>
<head>
<title>SPACE ALC</title>
</head>
<body>
辞書です。<br>
以上
</body>
</html>
スタック
/title
title
SPACE ALC
head
html
タグのスタック
要素のスタック
スタック
/head
head
html
タグのスタック
要素のスタック
スタック
br
body
辞書です。
html
タグのスタック
要素のスタック
スタック
/body
body
以上
html
タグのスタック
要素のスタック
スタック
/html
html
タグのスタック
要素のスタック
スタック
タグのスタック
要素のスタック
文字コード変換
• Shift-JISからEUCへ
• popen()関数を使いnkfで変換して表示
キャッシュ機能
• 検索ワードをキャッシュ
– ファイル名 : .jisyo
• 今まで何回調べたか表示
• 5回同じ単語で「ばーか」
デモ
評価
•
•
•
•
複数辞書の利用 ○
状況に応じた辞書選択 ○
学習機能 △
SING新人は毎日使っている ◎
今後の予定
• キャッシュ機能の拡張性
• 他の辞書プロトコルの追加
• 学習要素
– クイズ
リリース
http://www.sfc.wide.ad.jp/~simitaka/minipro/
2001f/