2021年11月15日月曜日

学年別の基本語彙一覧を作った

なんとなく知りたかったので、学年別の基本語彙一覧を作りました。 ようするに graded-enja-corpusmGSL の日本語版です。



作り方

どこまで真面目に作るかの問題があるのですが、シンプルに作るなら以下の方法で良さそうです。 手作業のメンテが不要なのが良い。
  1. 日本語ウェブコーパス 2010 の 1gram を正規化して語彙に変換
  2. 機械的に多少ノイズ除去
  3. SudachiDictinappropriate-words-ja で地名と人名と禁止語を削除
  4. 品詞判定で不要語を削除
  5. 表層形から原形に直した上で頻度順にソート
  6. 漢字レベルに合わせて形態素を分類

地名や人名のフィルターに SudachiDict を使ってますが、Neologd でも良いかも知れません。 もっとも Neologd は 2gram 以上でないと意味がないので、SudachiDictで 良いんじゃないかな。 処理自体は 2gram にも対応できますが、してません。 2gram を処理すると複合語をさらに抽出できる可能性がありますが、作りたかったのは「語彙一覧」ではなく「基本語彙一覧」です。 別にいらないかなと。 技術的には IPADic では UniDic を使ったほうが厳密ではないか、など色々細かい話はあるけど、まあ無視できるレベルでしょう。 IPADic の粒度のほうが実用上は便利です。

語彙と基本語彙

「語彙」という言葉には曖昧性があり、慣用句を含むこともありますが、 「基本語彙」と書いた時には形態素の原形を指している気がします。 「基本語彙」がわかっていれば「語彙」も、慣用句などの特殊ケースを除いて意味がわかるはずです。 今回作った一覧表は、先生が学年ごとにどれくらい「基本語彙」を覚えるべきか確認したり、 生徒が学年別にサラッと眺めて「基本語彙」を覚えてもらうために作りました。

扱いの難しいもの=接頭辞、接尾辞

この辞書には、固有名詞や複合名詞の他にも、単体では意味の通じない接頭辞や接尾辞は含まれません。 具体例を挙げると「一ヶ月」は複合語、「ヶ月」が接尾辞なので含まれません。 そこをどこまで真面目に含めるかという話はあるのですが、 (1) 接頭辞や接尾時は明らかに実用上ノイズのほうが多く、(2) 後からデータを活用しにくくなるので、削除することにしました。 接尾時や接頭辞は基本語彙じゃないの?と言われると、ぐぬぬ…ですが、別に辞書を作ったほうが平和と思ったので、勘弁。

接頭辞や接尾辞も考慮した辞書を作るには、2gram で複合名詞化すればいいです。 ただ基本語彙ではないように思うので、今回はやってません。 ひらがなはどこまでやっても微妙な出力ですが、こればかりは仕方なさそう。

0 件のコメント: