+ # 字オブジェクトどうしを比して、
+ # 合の重なり具合をす。
+ my($a, $b) = @_;
+ my($aonly, $bonly, $common) = (0, 0, 0);
+ for my $i (&cup(keys %$a, keys %$b)) {
+ if ($a->{$i} eq $b->{$i}) {
+ $common++;
+ } else {
+ $aonly++ if (exists $a->{$i});
+ $bonly++ if (exists $b->{$i});
+ }
+ }
+ if ($common == 0) {
+ return $EXCLUSIVE; # 他
+ } elsif ($aonly == 0 and $bonly == 0) {
+ return $EQSET; # 全一致
+ } elsif ($aonly == 0) {
+ return $PROPER_SUBSET; # $aは$bの合
+ } elsif ($bonly == 0) {
+ return $PROPER_SUPERSET; # $bは$aの合
+ } else {
+ return $HAVE_INTERSECTION;
+ }
+}
+
+sub rate_of_coincidence {
+ # 字オブジェクトどうしの属性の一致を出す。