大阪教育大学  国語教育講座  野浪研究室  戻る  counter

tips 10 スキャナとOCRソフトによるマークシート処理

紙送り機構がついた高速スキャナ(せめて1分10枚 10ppm ないと、嫌になってしまうだろう)と
連続処理機能を持ったOCRソフトがあれば、実用可能かな。

1 次のような用紙を印刷しておく。

該当する番号を●になるように濃く塗りつぶしてください。
学籍番号氏名
□十万の位�@ �A �B �C �D �E �F �G �H ◎ 
□万の位�@ �A �B �C �D �E �F �G �H ◎
□千の位�@ �A �B �C �D �E �F �G �H ◎
□百の位�@ �A �B �C �D �E �F �G �H ◎
□十の位�@ �A �B �C �D �E �F �G �H ◎
□一の位�@ �A �B �C �D �E �F �G �H ◎
1【 �@ �A �B �C �D �E �F �G �H ◎ 】
2【 �@ �A �B �C �D �E �F �G �H ◎ 】
3【 �@ �A �B �C �D �E �F �G �H ◎ 】
4【 �@ �A �B �C �D �E �F �G �H ◎ 】
5【 �@ �A �B �C �D �E �F �G �H ◎ 】
6【 �@ �A �B �C �D �E �F �G �H ◎ 】
7【 �@ �A �B �C �D �E �F �G �H ◎ 】
8【 �@ �A �B �C �D �E �F �G �H ◎ 】
9【 �@ �A �B �C �D �E �F �G �H ◎ 】
10【 �@ �A �B �C �D �E �F �G �H ◎ 】
11【 �@ �A �B �C �D �E �F �G �H ◎ 】
12【 �@ �A �B �C �D �E �F �G �H ◎ 】
13【 �@ �A �B �C �D �E �F �G �H ◎ 】
14【 �@ �A �B �C �D �E �F �G �H ◎ 】
15【 �@ �A �B �C �D �E �F �G �H ◎ 】
16【 �@ �A �B �C �D �E �F �G �H ◎ 】
17【 �@ �A �B �C �D �E �F �G �H ◎ 】
18【 �@ �A �B �C �D �E �F �G �H ◎ 】
19【 �@ �A �B �C �D �E �F �G �H ◎ 】
20【 �@ �A �B �C �D �E �F �G �H ◎ 】
21【 �@ �A �B �C �D �E �F �G �H ◎ 】
22【 �@ �A �B �C �D �E �F �G �H ◎ 】
23【 �@ �A �B �C �D �E �F �G �H ◎ 】
24【 �@ �A �B �C �D �E �F �G �H ◎ 】
25【 �@ �A �B �C �D �E �F �G �H ◎ 】
26【 �@ �A �B �C �D �E �F �G �H ◎ 】
27【 �@ �A �B �C �D �E �F �G �H ◎ 】
28【 �@ �A �B �C �D �E �F �G �H ◎ 】
29【 �@ �A �B �C �D �E �F �G �H ◎ 】
30【 �@ �A �B �C �D �E �F �G �H ◎ 】
31【 �@ �A �B �C �D �E �F �G �H ◎ 】
32【 �@ �A �B �C �D �E �F �G �H ◎ 】
33【 �@ �A �B �C �D �E �F �G �H ◎ 】
34【 �@ �A �B �C �D �E �F �G �H ◎ 】
35【 �@ �A �B �C �D �E �F �G �H ◎ 】
36【 �@ �A �B �C �D �E �F �G �H ◎ 】
37【 �@ �A �B �C �D �E �F �G �H ◎ 】
38【 �@ �A �B �C �D �E �F �G �H ◎ 】
39【 �@ �A �B �C �D �E �F �G �H ◎ 】
40【 �@ �A �B �C �D �E �F �G �H ◎ 】
41【 �@ �A �B �C �D �E �F �G �H ◎ 】
42【 �@ �A �B �C �D �E �F �G �H ◎ 】
43【 �@ �A �B �C �D �E �F �G �H ◎ 】
44【 �@ �A �B �C �D �E �F �G �H ◎ 】
45【 �@ �A �B �C �D �E �F �G �H ◎ 】
46【 �@ �A �B �C �D �E �F �G �H ◎ 】
47【 �@ �A �B �C �D �E �F �G �H ◎ 】
48【 �@ �A �B �C �D �E �F �G �H ◎ 】
49【 �@ �A �B �C �D �E �F �G �H ◎ 】
50【 �@ �A �B �C �D �E �F �G �H ◎ 】

2 用紙にマークして、OCRソフト(「読取革命v7」使用)にかける

十万の位�@�A�B�C�D�E�F�G�H○
 万の位�@�A�B�C�D�E�F�G�H○
 干の位�@�A�B�C�D�E�F�G�H○
 百の位�@�A�B�C�D�E�F�G�H○
 十の位�@�A�B�C�D�E�F�G�H○
 −の位�@�A�B�C�D�E�F�G�H●
1【�@�A�B�C�D�E●�G�H○】
2【�@�A�B�C�D●�F�G�H○】
3【�@�A�B�C●�E�F�G�H○】
4【�@�A�B●�D�E�F�G�H○】
5【�@�A●�C�D�E�F�G�H○】
6【�@●�B�C�D�E�F�G�H○】
7【●�A�B�C�D�E�F�G�H○】

以下略

おお、ちゃんと読みとってる。

3 mawk32用のスクリプトを書く

$0~/位/{ 
	split($0,a,"位"); 
	temp=jsubstr(a[2],1,10); 
	n=num(temp); 
	printf n; 
} 
$0~/【/{ 
	split($0,a,/[【】]/); 
	s=num(a[2]); 
	printf"\t%s",s; 
	if (a[1]==50){print""} 
} 
function num(a){ 
	ichi=jindex(a,"●"); 
	if(ichi==0){r="?"} 
	else{r=ichi} 
	if(ichi==10){r=0} 
	return(r) 
} 

処理すると

?????0	7	6	5	4	3	2	1	?
 

とタブ区切りのデータ列を出力した。
いっさいエラー処理をしていないので、ご注意。


大阪教育大学  国語教育講座  野浪研究室  頁頭  戻る

mailto: nonami@cc.osaka-kyoiku.ac.jp
スパムメール対策として、フリ−メールは受信拒否しています。