研究紀要2010(小学校)資料2†
小学校学習指導要領解説の読み取り†
- キーワード『コンピュータ』『インターネット』『ネットワーク』『問題解決』『情報』
- 方法
- 小学校学習指導要領解説のPDFをフリーソフトxdoc2txtを使用し、プレーンテキストを抽出。
- キーワード検索スクリプト2にて、キーワードを含む行を検索。
- 文脈上、キーワードを含む文章が、「ICTに関連する学習活動であるかどうか」妥当性を検証
プレーンテキストの抽出†
実行方法: xdoc2txt -f *.pdf
注意:PDFはパスワードなしで暗号化されているので、同フォルダにcryptlib.dllを用意する必要がある。
キーワード検索スクリプト1(keyword1.rb)†
#
# 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) 調査では、こちらのスクリプトを使用した。†
#
# 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) ヒットした場合ハイライトさせる†
#
# 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
}