フォト
無料ブログはココログ

MyList

« 「やりがいのある仕事」という幻想 | トップページ | aitendo FRISK-MP3 (2) »

2013年8月 9日 (金)

分かりやすい説明(3)

 ユニバーサルコミニュケーションデザイン協会(UCDA)が分かりやすい文章を数値で評価する試みを行っている。
 レベルを優先度1~3として、平易度や1文の平均長、最長、漢字使用率などを示している。

情報の分類と優先度

レベル 優先度3(平易度3) 優先度2(平易度2) 優先度1(平易度1)
内容 生命にかかわる情報 社会生活に必要な情報 複雑な作業
・医薬品のアレルギー
・副作用情報"
・生命保険・損害保険の保険内容
・投資信託のリスク情報
・医薬品の成分名
・生命保険・損害保険の重説
・投資信託の運用情報
周知方法 全ての生活者に
理解できること
わかりやすく、詳細に
説明すること
概要を伝え、詳細情報を
入手できること
平易度 日本語能力試験3級程度 日本語能力試験2級程度 日本語能力試験1級程度
1文の文字数 ・平均文字20字
・最長で20字
・平均文字29字
・最長で45字"
・平均文字41字
・最長で65字
漢字使用率 漢字・語彙・文法レベルは
日本語能力試験3級程度
20% 52%

(出展:文章DC9開発者座談会 第2回 (全3回) わかりやすさはこう測る、わかりやすい文章はこう書く http://www.ucda.jp/jp/wakari/06/

 自分が書いた文章はどうなのだろうと思い、1文の平均長、最長、漢字使用率をカウントするスクリプトをawkで書いてみた。

 分かりやすい説明 (2013/7/7)、分かりやすい説明(2) (2013/7/15)を調べてみると。

  1文の平均文字数 最長文字数 漢字使用率
優先度1(平易度1) 41 65 52%
分かりやすい説明(2013/7/7) 40.7 103 34.4%
分かりやすい説明(2)(2013/7/15) 48.5 145 33.2%

 優先度1レベルで評価すると、漢字使用率、1文の平均文字数はそこそこだけれど、最長文字数が長いことが分かる。

 優先度2レベルで書こうとするとかなり大変そうだ。
日本語能力試験1級の読む能力の目安は、日本語を母国語としない人が

  • 幅広い話題について書かれた新聞の論説、評論など、論理的にやや複雑な文章や抽象度の高い文章などを読んで、文章の構成や内容を理解することができる。
  • さまざまな話題の内容に深みのある読物を読んで、話の流詳細な表現意図を理解することができる。

ことを要求している。 読者を日本人に限定するならば、優先度1レベル程度で記述・説明するとかなり分かりやすい説明になるのではないだろうか。

 優先度2レベルで記述・説明すると、とても丁寧になる一方で、知識がある人にとっては冗長な説明になりそうだ。


wakariyasui.awk

#!/usr/local/bin/gawk -f
#

# 漢字判定
# function iskanji(char, r)
#  arg : char : 文字
#  ret : 1 : 漢字
#        0 : 漢字以外
function iskanji(char, r){
    if(("亜"<=char)&&(char<="瑤"))
        r = 1
    else
        r = 0
    if (2<=DEBUG) printf("iskanij():%d %s\n", r, char);
    return r;
}

BEGIN {
    len = 0:        # カウント中の文の文字数
    str = "";       # カウント中文字列
    max = 0;        # 最長文字数
    maxstr = "";    # 最長文字列
    kanji = 0;      # 漢字数
    chr   = 0;      # 総文字数
}

# 先頭のスペースを削除
{   sub(/^[ \t ]+/, "", $0);
}

# 空行
# 空行は文末として扱う
/^[ \t]*$/ {
    if (len!=0) {
        bun++;
        if (max<len) {
            max = len;
        }
        len = 0;
    }
    next;
}

# 1行処理
{
    for (i=1;i<=length($0);i++) {
        c = substr($0,i,1);
        if (iskanji(c)) kanji++; #漢字?
        if (len!=0 && c=="。") { #文末?
            bun++;
            if (max<len) { #最長文更新
                max = len;
                maxstr = str;
            }
            len = 0;
            str = "";
        } else {
            len++;
            str = str c;
        }
    }
    chr += length($0);
}

END {
    printf("文字数:%d 漢字:%d 漢字率:%g%%\n", chr, kanji, kanji/chr*100);
    printf("文: %d 1文平均長: %g 最長: %d\n", bun, chr/bun, max);
    if (1<=DEBUG) printf("\"%s\"\n", maxstr);
}

※見出しや箇条書きはうまく処理できないので改行を入れたり句点を入れる。
※マルチバイト拡張されたawkを使うこと


分かりやすい説明(3) (2013/8/9)
分かりやすい説明(2)(2013/7/15)
分かりやすい説明(2013/7/7)

« 「やりがいのある仕事」という幻想 | トップページ | aitendo FRISK-MP3 (2) »

よしなしごと」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: 分かりやすい説明(3):

« 「やりがいのある仕事」という幻想 | トップページ | aitendo FRISK-MP3 (2) »