知識情報演習Ⅲ(後半第3回) 辻 慶太 http://slis.sakura.ne.jp/cje3.

Slides:



Advertisements
Similar presentations
XML ゼミ 独習 XML ~ 第 6 章 XHTML~ 6.1 XHTML の概要 6.2 XHTML の構造 谷津 哲平.
Advertisements

1 検索 ● 検索: 特定の文字列を探す ⓪検索を行う範囲を限定するときは、範囲選択をする。 ① 「ホーム」タブ⇒「編集」⇒「検索」タブとクリックする。 ②「検索する文字列」欄に検索したい文字を入力する。 ③「次を検索する」をクリックする。 ③ ‘ 「検索された項目の強調表示」⇒「すべて強調表示」とクリックすると、
1 WORD の起動法と終了法 ● WORD の起動法 (1) デスクトップの Microsoft Word アイ コンをダブルクリックする。 * (2) 「スタート」 ― 「すべてのプログラ ム」 ― 「 Microsoft Word 」と選ぶ。 (3) Word で作成された文書があるとき は、そのアイコンをダブルクリック.
情報アプリケーション1 2006 年 10 月 12 日 第四回資料 担当 重定 如彦. 目次 データの送信とフォーム クイズ CGI 複数のパーツのデータの分割方法 配列変数.
情報処理 第8回第8回第8回第8回. 目次 (1) スタイルの利用 – スタイルの概要 – スタイルの適用 (1) – 「スタイル」ウィンドウを開く – スタイルの適用 (2) – スタイル適用のセオリー – すべてのスタイルを表示 – スタイルの書式を変える (1) – スタイルの書式を変える (2)
電子書籍の検索機能の改善 木下研究室 201002713 鴫原 善寿. 背景 スマートフォンなどの携帯端末の普及と ともに電子書籍に注目が浴びた。中でも amazon の kindle など電子書籍の専用端末も 現れた。 電子書籍はデータなので本棚もいらず、 持ち運びも容易になるなど様々な恩恵を もたらした。
コーパス言語学実践 2006 年度 2 学期 第 9 回. 2 本日の内容 これまでと同様の作業 – プログラムで処理するケースの紹介.
プログラミング言語論 第10回(演習) 情報工学科 木村昌臣   篠埜 功.
情報基礎演習I(プログラミング) 第9回 6月22日 水曜5限 江草由佳
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第3回 配列(1) 情報・知能工学系 山本一公
本日のスケジュール 14:45~15:30 テキストの講義 15:30~16:15 設計レビュー 16:15~16:30 休憩
知能機械工学科 担当:長谷川晶一 TA:新・後藤・ナンバ
2017/3/2 情報処理 第8回.
知識情報演習Ⅲ(後半第5回) 辻 慶太
プログラミング入門 (教科書1~3章) 2005/04/14(Thu.).
コンピュータリテラシー 第3回授業の復習 基本的なUNIXコマンド
情報基礎演習B 後半第5回 担当 岩村 TA 谷本君.
Linux リテラシ 2006 第2回 基本コマンド2.
Excel による データベース入門 Ver /9.
2017/3/7 情報処理 第8回.
知識情報演習Ⅲ(後半第1回) 辻 慶太(水)
JavaによるCAI学習ソフトウェアの開発
システムプログラミング 第5回 情報工学科 篠埜 功 ヒアドキュメント レポート課題 main関数の引数 usageメッセージ
ISD実習E 2009年6月1日 read関数 read-macro back-quote 文字列のread 課題
ファイルシステムとコマンド.
プログラミング演習II 2004年10月19日(第1回) 理学部数学科・木村巌.
第6章 2重ループ&配列 2重ループと配列をやります.
情報教育論 第9回 仮定文の仕組み 政策・メディア研究科 岡田 健.
テキストの類似度計算
INSERT(x,p,L)の例 (一部) 磯 直行 2009年5月5日
初年次セミナー 第2回 文字の出力.
情報処理概論Ⅰ 2007 第9回 2007/6/20 情報処理概論Ⅰ 第9回.
ターム分布の確率モデル Zipfの法則:使用頻度の大きな語は語彙数が少なく,使用頻度の小さな語は語彙数が多い
マイクロソフト Access での SQL 演習 第1回 SQL問い合わせ(クエリ)
10 Microsoft Word(1) 10.1 Microsoft Word v.Xの概要 起動 終了
プログラム実行時情報を用いたトランザクションファンクション抽出手法
情報処理3 第5回目講義         担当 鶴貝 達政 11/8/2018.
情報工学科 3年生対象 専門科目 システムプログラミング 第5回、第6回 ヒアドキュメント レポート課題 情報工学科 篠埜 功.
IIR輪講復習 #1 Boolean retrieval
定兼邦彦 今井浩 東京大学理学系研究科 情報科学専攻
独習XML 第2章 XML文書の構成要素 2.1 XMLの文字と文字列 2.2 コメント
単語登録(1) ◎MS-IMEの「単語登録」に、単語、語句、記号など自分がよく使うものを登録しておくと、便利である。
2016年度 植物バイオサイエンス情報処理演習 第6回 情報処理(4) データを加工する・2
知識情報演習Ⅲ(後半第2回) 辻 慶太
情報処理概論Ⅰ 2007 第10回 2007/6/27 情報処理概論Ⅰ 第10回.
情報処理概論Ⅰ 2007 第5回 2019/4/7 情報処理概論Ⅰ 第5回.
類似度を用いた WWW のリンク構造の解析 谷 研究室    栗原 伸行.
環境システム科学演習(後半) FORTRAN & C(以降FORTRANと省略して呼びます)は富士通
情報処理Ⅱ 第2回:2003年10月14日(火).
知識情報演習Ⅲ(後半第3回) 辻 慶太
情報基礎演習I(プログラミング) 第11回 7月12日 水曜5限 江草由佳
B演習(言語処理系演習)第2回 田浦.
統計ソフトウエアRの基礎.
2017年度 植物バイオサイエンス情報処理演習 第11回 系統樹
プログラミング演習I 2003年7月2日(第11回) 木村巌.
vc-3. ダンプリスト,配列 (Visual Studio C++ の実用知識を学ぶシリーズ)
構造的類似性を持つ半構造化文書における頻度分析
設計情報の再利用を目的とした UML図の自動推薦ツール
プログラミング基礎a 第4回 C言語によるプログラミング入門 条件判断と反復
独習XML ~第1章 XMLの基礎~ 1.1 XML文書の基礎 1.2 XMLとHTML
情報処理概論Ⅰ 2007 第6回 2019/5/16 情報処理概論Ⅰ 第6回.
vc-1. Visual Studio C++ の基本操作 (Visual Studio C++ の実用知識を学ぶシリーズ)
vc-3. ダンプリスト,配列 (Visual Studio C++ の実用知識を学ぶシリーズ)
情報処理 第7回:Wordを用いた文書の作成 その1 May 31, 2019.
プログラミング基礎a 第3回 C言語によるプログラミング入門 データ入力
情報処理Ⅱ 2007年12月3日(月) その1.
プログラミング演習II 2004年11月 2日(第3回) 理学部数学科・木村巌.
プログラミング基礎a 第3回 C言語によるプログラミング入門 データ入力
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
Presentation transcript:

知識情報演習Ⅲ(後半第3回) 辻 慶太 http://slis.sakura.ne.jp/cje3

索引付けの手順概要(復習) 索引語の抽出 不要語の削除 接辞処理 索引語の重み付け 索引ファイルの編成 文字バイグラム,単語,フレーズなど  文字バイグラム,単語,フレーズなど 不要語の削除 接辞処理 索引語の重み付け  検索手法(検索モデル)によっては不要  例えば,論理式によるブーリアンモデルでは不要 索引ファイルの編成 extract.prl stopword.prl stemming.prl tf.prl idf.prl

索引語の重み付け (以下は前回のppt と同じ) ある文書を特徴付ける索引語には高い重みを与える 伝統的な手法に TF.IDF法がある TF: 索引語頻度 IDF: 逆文書頻度 完全一致(ブーリアンモデル)では不要

索引語頻度 Term Frequency(TF) ある文書によく出現する索引語は,その文書を特徴付けるという仮説に基づいている 文書 d における索引語 t の出現頻度 索引語を「ターム」とも呼ぶ(単語とは限らない) TFは文書と索引語が与えられて決まる尺度

TFの例 犬 … 犬犬 犬 … ネコ … ネコ … 犬 犬 文書A 文書B

逆文書頻度 Inverse Document Frequency(IDF) 多くの文書に出現する索引語は,特定の文書を弁別する能力が低い 少数の文書にしか現れない索引語を重視する  N: コレクション中の文書総数  df(t): 索引語 t が出現する文書数 索引語だけで決まる尺度(TFとの違いに注意)

IDFの例 idf(動物) = 1 idf(犬) = 1.32 idf(ネコ) = 2.32 idf(ロボット) = 3.32 動物 ネコ N = 5 df 動物=5,犬=4,ネコ=2,ロボット=1 動物=6,犬=5 idf(動物) = 1 idf(犬) = 1.32 idf(ネコ) = 2.32 idf(ロボット) = 3.32 idfの最小値 「動物」では全文書が検索されてしまい,弁別性が低い

Perlにおけるハッシュ 配列と違って文字列をキーとして使える 1つのキーで値を特定できるデータ 複数のキーで値を特定できるデータ 例: 索引語 dog の IDF が 2.5 $idf{’dog’} = 2.5; 複数のキーで値を特定できるデータ 例: 索引語 dog の文書D001における TF が 10 $tf{’dog’}{’D001’} = 10;

キーが1つの場合 $idf{key} %idf = (’dog’ => 2.5, ’cat’ => 1.6, ’year’ => 3.3); %idf key value dog 2.5 cat 1.6 year 3.3 … $idf{’dog’} = 2.5; $idf{’cat’} = 1.6; $idf{’year’} = 3.3;

キーが複数の場合 $tf{key}{key2} %{$tf{’dog’}} というハッシュ key2 value D001 10 D002 3 %tf key value dog ● cat year … … $tf{’dog’}{’D002’} = 3; … ハッシュの名前 key2 value D002 14 %{$tf{’cat’}} %{$tf{’year’}} … …

ハッシュの内容を出力するプログラムの例 dog 2.5 cat 1.6 foreach $term (sort keys %idf) { キーが1つ dog 2.5 cat 1.6 ... year 3.3 foreach $term (sort keys %idf) { print ”$term $idf{$term}\n”; } キーが2つ foreach $x (sort keys %{$tf{’dog’}}) { print ”$x $tf{’dog’}{$x}\n”; } D001 10 D002 3 ...

演習1 まず,演習のページにある tf_idf.prl の内容を入力して実行せよ コピーペーストできないPDFファイルなので,全て自分で入力すること その方がプログラムをよく読むでしょう 印刷はできます 次に,重み tf(t,d)×idf(t) を計算して出力するように修正せよ 実際には,最後の方に何行か追加すればよい

索引付けプログラムの実装: 方針 索引付けの段階ごとにプログラムを作る 小さめのプログラムを複数作ることで,実装を段階的に行う 大きなプログラムを作ると,中間データの保存が煩雑になる うまく動かない場合に問題の所在が分かりづらい 複数のプログラムを連結させる方法 方法1: 中間ファイルを作る 方法2: パイプライン処理を行う

索引付けの手順概要(復習) 索引語の抽出 不要語の削除 接辞処理 索引語の重み付け 索引ファイルの編成 文字バイグラム,単語,フレーズなど 検索手法(検索モデル)によっては不要 例えば,論理式によるブーリアンモデルでは不要 索引ファイルの編成 extract.prl stopword.prl stemming.prl tf.prl idf.prl

連結方法1: 中間ファイルを作る 文書群ファイル documents.txt 入力 出力 chuukan1 extract.prl stopword.prl 中間ファイルを確認しながら実装を進められる chuukan3 stemming.prl tf.prl chuukan4 索引ファイル index idf.prl 中間ファイル % perl extract.prl documents.txt > chuukan1 % perl stopword.prl chuukan1 > chuukan2 % perl stemming.prl chuukan2 > chuukan3 % perl tf.prl chuukan3 > chuukan4 % perl idf.prl chuukan4 > index 本来不要なファイルがたくさんできる

連結方法2: パイプライン処理を行う 文書群ファイル documents.txt 入力 extract.prl 出力 入力 stopword.prl 出力 前のプログラムが標準出力に出したデータを次のプログラムが標準入力から受け取る 入力 stemming.prl 出力 tf.prl 入力 索引ファイル index 出力 idf.prl 入力 複数のコマンドを縦棒でつなぐ(改行せずに1行で書く) % perl extract.prl documents.txt | perl stopword.prl | perl stemming.prl | perl tf.prl | perl idf.prl > index

参考 パイプライン処理を行い,かつ中間ファイルも作るには,「tee」というコマンドを間に挟む % perl extract.prl documents.txt | tee chuukan1 | perl stopword.prl …(以下,略) 上の例では,chuukan1 というファイルができる

文書群ファイルの形式 <DOC> <NUM>D001</NUM> <DOC> 1つの文書 <TEXT> He is a student. … Students are … student … She is not a student. … </TEXT> </DOC> <NUM>D002</NUM> Two dogs are … The dog is … … <DOC> 1つの文書 <NUM> 文書番号 <TEXT> 本文 英文の文書を対象とする 演習のページにある documents.txt を使うとよい 必要に応じて小さい(または大きい)ファイルを自分で作成してもよい

extract.prl の仕様 文書群ファイルを入力し,空白を区切りとして索引語を抽出する 索引語を小文字に統一する 索引語の末尾に付いたカンマとピリオドを削除する 以下の形式で出力する D001 he D001 is D001 a D001 student … D002 two D002 dogs 1行に「文書番号 索引語」 文書番号と索引語は半角スペース1つで区切る

stopword.prl の仕様 × extract.prl の出力を入力し,不要語を削除する 不要語のリスト(自分で適宜追加してよい)  a, an, and, in, of, the D001 he D001 is D001 a D001 student … D002 two D002 dogs D001 he D001 is D001 student … D002 two D002 dogs ×

stemming.prl の仕様 stopword.prl の出力を入力し,接辞処理を行う 接辞処理の規則(自分で適宜追加してよい) 複数形への対応(末尾の s や es を削除) 過去形への対応(末尾の ed を削除) 副作用が起きても気にしない D001 he D001 is D001 student … D002 two D002 dogs D001 he D001 i D001 student … D002 two D002 dog

tf.prl の仕様 stemming.prl の出力を入力し,文書ごとに索引語の頻度(TF)をかぞえる 文書総数をかぞえてファイルの先頭行に出力する D001 he D001 i D001 student D002 dog D003 dog 文書の総数 (IDFの計算に必要) 10 D001 he 1 D001 i 1 D001 student 3 D002 dog 2 D003 dog 1

idf.prl の仕様 tf.prl の出力を入力し,索引語のIDFを計算する TF×IDFによって索引語の重みを計算する 文書の総数は出力しない 索引ファイルが完成 10 D001 he 1 D001 i 1 D001 student 3 … D002 dog 2 D003 dog 1 D001 he 1 2.6 2.6 D001 i 1 1 1 D001 student 3 3.3 13.2 … D002 dog 2 2.2 4.4 文書番号 索引語 TF IDF 重み

演習2 extract.prl から idf.prl まで一通り実装せよ 終わった人は,担当教員かTAの確認を受けること 文書数や1文書の長さが異なるいろいろな文書群ファイルを使って動作確認せよ 終わった人は,担当教員かTAの確認を受けること 確認が済んだら,後半第2回のスライドを参考にして,オンライン処理のプログラムを実装せよ 今回作成した extract.prl, stopword.prl, stemming.prl をそのまま使えるように工夫せよ