#freeze
*研究紀要2010(小学校)資料2 [#h52620dc]
**小学校学習指導要領解説の読み取り [#ef248c5e]
-キーワード『コンピュータ』『インターネット』『ネットワーク』『問題解決』『情報』
-方法
++小学校学習指導要領解説のPDFをフリーソフトxdoc2txtを使用し、プレーンテキストを抽出。
++キーワード検索スクリプト2にて、キーワードを含む行を検索。
++文脈上、キーワードを含む文章が、「ICTに関連する学習活動であるかどうか」妥当性を検証
**プレーンテキストの抽出 [#we04fc2a]
実行方法: xdoc2txt -f *.pdf
注意:PDFはパスワードなしで暗号化されているので、同フォルダにcryptlib.dllを用意する必要がある。
**キーワード検索スクリプト1(keyword1.rb) [#f87aa7cb]
#
# keyword1.rb - ファイルをキーワード毎に検索し、ヒットした場合、文を標準出力へ
# 1文にキーワードが複数ある場合は、単語毎に出力されるので、重複あり
# ruby keyword1.rb shakai.txt > kekka-shakai.csv
#
$KCODE="Shift_JIS"
keywords = ["コンピュータ","インターネット","ネットワーク","問題解決","情報"]
count = Hash.new(0)
puts "ファイル名,キーワード,文"
open(ARGV[0]) {|io|
keywords.each { | keyword |
re = Regexp.new(keyword)
while line = io.gets("。")
if re =~ line
count[$&] += 1
print "#{ARGV[0]},"
print "#{$&},"
puts line.gsub(/\s+/,'')
end
end
io.rewind
}
}
print "\n□□□各キーワードの出現回数□□□\n"
count.each{| key , value |
print "#{key} , #{value } \n"
}
**キーワード検索スクリプト2(keyword2.rb) 調査では、こちらのスクリプトを使用した。 [#k0b5ed27]
#
# keyword2.rb - ファイルをキーワード群で検索し、ヒットした場合、文を標準出力へ
# 1文にキーワードが複数ある場合は、最初にヒットした単語で出力、重複なし
# ruby keyword2.rb shakai.txt > kekka-shakai.csv
#
$KCODE="Shift_JIS"
keywords = /コンピュータ|インターネット|ネットワーク|問題解決|情報/s
puts "ファイル名,キーワード,文"
open(ARGV[0]) {|io|
while line = io.gets("。")
if keywords =~ line
print "#{ARGV[0]},"
print "#{$&},"
puts line.gsub(/\s+/,'')
end
end
}
**キーワード検索スクリプト3(keyword3.rb) ヒットした場合ハイライトさせる [#ob487359]
#
# keyword3.rb - ファイルをキーワード群で検索し、ヒットした場合ハイライトさせる
# ruby keyword3.rb shakai.txt > kekka-shakai.txt
#
$KCODE="Shift_JIS"
keywords = /コンピュータ|インターネット|ネットワーク|問題解決|情報/ms
open(ARGV[0]) {|io|
while line = io.gets("。")
line.gsub!(keywords){| matched |
'&color(red,yellow){' + matched + '};'
}
print line.gsub!(/\n^/,"\~\n")
end
}