短単位自動解析用辞書を作る(4)
学習用コーパスを用意する
『UniDic』の学習には最低限、『現代日本語書き言葉均衡コーパス(BCCWJ)』や『日本語話し言葉コーパス(CSJ)』が必要です。
しかしこれらのコーパスはお高く、アカデミックでない一般(非営利)ですと、
BCCWJ: 20万円
CSJ: 25万円
となっています。(2023/7月現在)
しかも最新版の『UniDic』(ver. 202302) は明示されていませんがおそらく上記以外の国語研内部で開発しているコーパスも学習に使っています。これは『UniDic』が国語研内部でのコーパス開発を促進する目的で整備されていることに由来します。
このままでは最初に立てたモチベーションの 2. 最新版『解析用UniDic』に問題があるので手元で直したい が実現できません。手元に学習用データがないのですから。
このデータがない問題を解決するために、2つの行動方針を立てます。
1つめは単純です。大量の Web テキストを『UniDic』を使って自動解析し、その結果を Gold アノテーションとして学習に使います。大規模 Web テキストデータは pre-training のデータとして、いまでは簡単に手に入ります。
もちろん自動解析結果は誤りを含みます。ですが『MeCab』が線形 CRF なので、誤りには目で見てわかる偏り/傾向があります。それをそのまま学習することは要は、『UniDic』が目指している斉一な出力傾向の獲得につながりますし、『UniDic』の性能を越えることも特に目指していませんから、『UniDic』が誤るところは同じように誤っても問題ありません。また学習したいのは各語の生起コストと連接コストで、前者のノイズは正則化でつぶせますし、後者は前々回説明した right-id/left-id まで抽象化されているので、学習に使うデータの規模が大きければノイズを無視できるでしょう。
Web テキストを学習に使う以上、自動解析の出力傾向は『UniDic』元々のものとは変わってしまいます。各語の生起コストが違いますから。そのため『UniDic』の目的、「国語研内で作成しているコーパス構築の促進及び同様のコーパスのアノテーションを研究者各自が所持するテキストデータに対して実現する」からは乖離しますが、それで問題ない。というのが方針2です。NLPにおける形態素解析器の用途はいまやサブワード化の前処理くらいの扱いで、それすらも不要と言われています。要不要はさておき現状、形態素解析器が最も多く解析対象とするのは Web テキストです。なのでそのための短単位自動解析用辞書を目的にします。
上記を受け、第1回で立てたモチベーションをアップデートします。
今回使用したのは Wikipedia(Google Colab の tensorflow-datasets から export した『Wiki40-b』)と 『CC-100』 それぞれ日本語データです。
『Wiki40-b』は train/dev/test をすべて使用します。こういう感じの形式なので ↓
_START_ARTICLE_
Seventeen (日本の雑誌)
_START_SECTION_
概要
_START_PARAGRAPH_
1968年6月に、総合少女週刊誌『マーガレット』のお姉さん雑誌『週刊セブンティーン』として創刊、アメリカで1944年に創刊された『Seventeen』の日本版として出発した。掲載内容はファッション・少女漫画・芸能など多岐にわたる。_NEWLINE_通巻1000号となる1988年1月3日号より、誌名の表記をアルファベットの『SEVENTEEN』としてリニューアル。判型は大きいサイズ、刊行は月2回の隔週刊(毎月1日・15日)に変更し、漫画部分が無くなった。 漫画雑誌としての部分は『月刊ティアラ』として新創刊され、引き継がれた。その後、ライバル誌だった小学館の『プチセブン』の廃刊後、急速に売り上げを伸ばし、「ティーンのNo.1雑誌」と銘打っている。_NEWLINE_2001年から徐々に芸能人の記事や表紙掲載が減り、表紙は当雑誌の専属モデルを起用、誌面にも多数の現役女子高生読者モデルを登場させ、女子中高生向けファッション雑誌に特化するようになった。_NEWLINE_創刊40周年を機に2008年10月号より月刊化。表記も『Seventeen』に変更した。_NEWLINE_上位誌は1971年創刊の『non-no』であるが、2004~09年にかけては系統の異なる上位誌として『PINKY』も発売された。
_START_SECTION_
月刊セブンティーン
_START_PARAGRAPH_
1969年に『別冊セブンティーン』として創刊(1969年12月号)。毎月24日発売。掲載内容は、少女漫画の他にファッションや芸能もあった。1973年6月号より『月刊セブンティーン』へ名称を変更し、新創刊する。『週刊』の「週セ」に対し、「月セ」と呼ばれ、以下のヒット作を生み出したが、1986年12月号を最後に廃刊。従来「月刊セブンティーン特別編集」とされていた『ヤングユー』が隔月刊から月刊になった。
_START_ARTICLE_、_START_SECTION_、_START_PARAGRAPH_ は削除。_NEWLINE_ は¥n に置換します。これ以上の分割はしません。句点で切るナイーブ文分割などもせず、段落であろうが現状の行を1本のトークン列(1文)と見なします。また記事タイトルやセクションタイトルも残しました。ユーザがわざわざきれいに文認定した文だけを入力単位にしてくれるとは限りませんから。ただし制御文字が入っていると後々都合が悪いので、文字コードのカテゴリで「C」から始まる文字を含んでいる行は削除しました。空行も削除しています。(コード)
『CC-100』もダウンロードして解凍した状態の行単位で使用します。(↓)
空行や文字コードのカテゴリで「C」から始まる文字を含んでいる行の削除はこの後のフィルタリング時に行なっています。
午後から雨が心配だったので遠出はせず、『ふれあいロード』を走って来ました!
確実に春が近づいてることを肌で感じることが出来ました 着々と整備されてる圏央道を越えるとお世話になってるボウリング場が見えて来ました。
うぅ〜〜、私が途中でトイレに行きたくなってしまい、通り道にあったケンタに変更しちゃいました。
実は、1年程前にエルモサの右目の黒目の端によ〜く見ないと分からない程の小さな斑を見つけてたんです。
その時点で先生からはおそらく『角膜ジストロフィー』であろうとの診断をもらっていました。
エルモサの場合は1年程経過して徐々にではあるんですけど、少し大きくなってきちゃいました
ただ、これまでお散歩仲間からは指摘とかされたことはないので、こちらから言わなければそんなに目立つ程ではないんですけどね。
昔はヒアルロン酸の目薬なども処方されてたようですが、これが効く事はないそうです。
なので、エルディとのお散歩でも訪れたことがありません。 カタクリの花が5分咲きとの情報から今回コースの1つに取り入れてみました。
前々から走ってみたかったんだけど、いつも陸上部らしき学生さんがものすごいスピードで駆け抜けていくのを目の当たりにしてちょっとビビっておりました
彼らには絶対お目にかかりたくないので、この春はこれで打ち止めになっちゃうかもね。
全然苦にならず、やっぱりこんな風に自然の中を走るのってダイスキなんだなぁ、私・・・と再確認できちゃった
これは加齢に伴い増えていき、背骨の可動域が狭まって腰痛等の原因になることもあるらしい。
銀時にとってその十年は、長いようで短かったように思う。過ぎてみれば、の話なのだが。
結果、
Wiki40-b: 9,412,374 行
CC-100 : 458,387,942 行
を得ました。
『CC-100』はウェブクロールで集められたテキストデータなので、記号が多かったり、プログラムコードが含まれていたり、日本語以外が含まれていたり、日本語形態素解析器の学習用データとしてはノイジーです。
そこで前処理として、『CC-100』、『Wiki40-b』の両方に
nwc-toolkit 由来のフィルタリング(行の削除)(コード)
URL/メールアドレスを含む行の削除(コード)
mojimoji を使った半角→全角変換(kana=True, ascii=True, digit=True)(コード)
を行なっています。『UniDic』収録単語はすべて全角化されており、半角文字は未知語処理されるため、3つの目の半角→全角変換を入れています。
フィルタリングの後の行数は以下の通り。
Wiki40-b: 1,951,372 行
CC-100 : 371,934,849 行
前処理の後、『Wiki40-b』は『BCCWJ』における新聞に位置づけ(規範的な日本語の学習)とし『unidic-cwj-202302』を使った短単位形態論情報の自動アノテーション。『CC-100』は Wikipedia よりも口語に近い表現が含まれるため、『unidic-csj-202302』を使った短単位形態論情報の自動アノテーションをそれぞれ実施しました。
2種類の辞書の解析を混ぜるのは、前述した用途の変更に起因するもので、書き言葉/話し言葉という特定用途に特化する必要がなくなったからです。2種類の解析結果を使うことで、学習の収束を遅らせる効果も狙っています。
これで学習用データの準備は終わりました。
次回は、上記の学習用データを使って前回説明した学習を実行するお話を書きます。