読者です 読者をやめる 読者になる 読者になる

ほとラボ

It works!

画像処理による日本語文章の難易度判定システム

あけましておめでとうございます。
新年早々ネタエントリです。

難しそうなエントリですが、専門用語使ってドヤ顔しているだけでやっていることは全然難しくないです。


結果だけ言ってしまうと、こんなの作った。

テキストを入力すると、その文章の難しさを判定してくれる。

研究の背景と目的

研究室の先輩が昔、マハラノビス距離を用いた日本語文章の難易度判定システムの提案 という研究をしていた。 それはそれで興味深い研究なのだが、もっと自然言語処理という枠からはみ出した斬新なアプローチの仕方があってもいいのではないかと考えた。

先行研究では 漢字の割合, 漢語表現の割合, 平均文節数 を特徴量として難易度判定を行っているが、我々が文章を読んだときに「難しい」と感じる要素は本当にそれだけだろうか。 文章の難しさというのは、どんな単語や言い回しが使われているかではなく、もっとシンプルなところにあるのではないか。

例えば、普段ラノベや漫画しか読まない中学生が、つい背伸びをしてみたくなって小難しい小説を購入してしまったとする。 彼がその本の最初のページを開いて文章をパッと眺めた際に「うわっ、濃い...」と思った場合、彼はその文章を読みづらいと感じるのではないだろうか。

つまり、文章の難易度とは濃さである。

そこで本研究(?)では、文章の濃さ に着目して日本語文章の難易度判定システムを構築した。

提案手法

1. 入力文字列を画像に変換する

2. 文字ごとの濃度を求める


色の平均を取り、文字の濃度とする。

3. 文章の濃度を求める


文字毎の濃度の平均を取り、文章の濃度とする。

4. 難易度判定

"鬱だ死のう"の文章難易度は: 超難しいね!!((((゚Д゚;))))

文章の濃度を元に、難易度判定を行う

判定基準

小学校から高校までの国語の教科書に載っている文章の濃度を計算した。 それらを特徴量として「小学校低学年」「小学校高学年」「中学校」「高校」の4段階のレベル分けをする分類器を構成した。

冒頭の難易度判定フォームではレベルに応じて以下の表のように表記している。

レベル 表記
小学校低学年 かんたんだね( ´ー`)
小学校高学年 普通(・_・)
中学校 難しいね!(゚Д゚;)
高校 超難しいね!!((((゚Д゚;))))

教科書の文章を用いた分類が有効なのかどうかは正直微妙だが、作品毎の濃度をグラフにしてみたところ、一応それらしいグラフになったので使えないことは無いだろうと思った。


(※ 1〜6が小学校,7〜9が中学校,10が高校の教科書)

検証

普通ならクロスバリデーションなどの方法で検証を行うべきところだが、面倒臭かったので 学習データをそのままテストデータとして突っ込んでみたところ、 精度59.2% という結果を得た。

雑なやり方をした割にはまずまずといった結果だろうか。

おしり

同じ研究室の人達が「何を特徴量として使うべきか」と悶々と悩んでいる様子だったので、 「自由な発想でなんでもやってみたらいいじゃん! そう、たとえ(専攻の)自然言語処理じゃなくても!!!」 というメッセージも込めてふざけてみた次第。

しかしながらオチを考えていなかった。
ネタエントリとしてあるまじき狼藉。

散開!!