コーパス (G検定)

コーパス

1. 定義と概要

コーパスとは、書籍・新聞・ウェブページなどの実際のテキストデータを大量に収集し、検索や分析ができるよう体系的に構造化したデータベースのことです。文法・意味に関する情報を書き加えるアノテーション(テキストに品詞や意味などの説明タグを付ける作業)を付与した「アノテーション付きコーパス」と、付与していない「生コーパス(タグ付けをしていない、集めたままのテキストデータ)」に大別されます。

代表例として、国立国語研究所(日本語の研究を専門に行う公的な研究機関)が構築した現代日本語書き言葉均衡コーパス(BCCWJ)があります。書籍・雑誌・新聞・白書・ブログ・ネット掲示板など多様なジャンルから約1億430万語を収録しています。

従来の自然言語処理は、言語学者が文法規則を人手で記述するルールベースの手法が中心でした。しかし、表現の多様性や例外への対応には限界がありました。文脈によって同じ言い回しでも意味やニュアンスが変わるため、あらかじめ規則をすべて書き尽くすのは容易ではありませんでした。

そこで、単語の出現頻度や共起関係(複数の単語が同じ文脈で一緒に使われる関係)など実例データの統計的な性質を利用する統計的自然言語処理(単語の出現頻度など数値的な特徴を使って言語を処理する手法の系統)や機械学習ベースの手法が普及しました。その元データとなる大量の実例テキスト、つまりコーパスが不可欠な言語資源として位置づけられるようになった経緯があります。

2. 試験対策ポイント

重要な論点になるのは、コーパスを構成する要素とその分類です。コーパスはテキストデータ本体に、出典や著者などのメタデータ(データの出典・作成日・作成者などデータ自体に関する付随情報)、品詞や構文情報などのアノテーションが組み合わさって構成されます。

分類の軸は2つあります。アノテーションの有無で分ける軸と、収録言語で分ける軸です。

分類の軸 種類 中身
アノテーションの有無 アノテーション付きコーパス(タグ付きコーパス) 品詞や構文情報などのタグを付与したもの
アノテーションの有無 生コーパス タグを付けていない、集めたままのテキスト
収録言語 モノリンガルコーパス 単一言語のみを集めたもの
収録言語 パラレルコーパス(対訳コーパス) 同じ内容を複数言語で対にして集めたもの

モノリンガルコーパスとは、1つの言語だけで作られたコーパスのことです。パラレルコーパス(対訳コーパス)とは、同じ内容を複数の言語で対にして集めたデータのことです。原文と訳文の対応関係を大量に含むため、機械翻訳の学習データとして使われます。

代表的な日本語コーパスとして、国立国語研究所が構築した現代日本語書き言葉均衡コーパス(BCCWJ)が挙げられます。書籍・雑誌・新聞・白書・ブログなど多様なジャンルから偏りなくサンプルを抽出した均衡コーパス(特定のジャンルに偏らないようバランスよく集めたコーパス)で、約1億430万語を収録しています。

形態素解析(文章を単語の最小単位に分割し、品詞を判定する処理)済みのタグが付与されている点も特徴です。均衡コーパスという性質上、特定のジャンルに偏った書き言葉ではなく、日本語の実態に近い姿を反映したデータになっています。

大規模言語モデル(膨大な文章データを学習し、人間のような文章を生成・理解できるAIモデル)は、事前学習(あらかじめ大量のテキストを使って言語の使い方を学ばせる工程)という段階でコーパスを利用します。この段階では、Common Crawl(インターネット上のウェブページを定期的に自動収集している非営利団体のデータ)等から構築した大規模なウェブコーパスが学習データとして使われます。

具体的にはCC-100やC4のように前処理を経て整えられたコーパスが用いられ、コーパスの質と量がモデルの性能を左右する要因のひとつという関係にあります。

3. 関連概念との比較・相違点

自然言語処理(NLP)との最大の違いは、分野名かデータかという点にあります。自然言語処理はコンピュータに人間の言語を処理させる分野の総称であるのに対し、コーパスはその処理対象となる大規模な言語データそのものを指します。3つの用語の位置づけを並べると、次のようになります。

用語 位置づけ コーパスとの関係
自然言語処理(NLP) 人間の言語をコンピュータに処理させる分野の総称 処理の対象になるデータ
統計的自然言語処理 コーパスの統計量を利用して言語を処理する手法の系統 手法が参照する元データ
コーパス 収集・構造化された大規模な言語データ データそのもの

自然言語処理とコーパスは同じ文脈で語られることが多いものの、指しているものは別の階層にあります。たとえば「自然言語処理を学ぶ」とは言えても、「コーパスを学ぶ」という言い方は一般的ではありません。むしろ「コーパスを使って自然言語処理の手法を学ぶ」という表現になる点からも、分野とデータという階層の違いがうかがえます。

統計的自然言語処理との違いは、手法かデータかという点です。コーパスから得られる単語の出現頻度や共起関係といった統計的な性質が、統計的自然言語処理における判断材料になるという関係にあります。手法とその元になるデータという関係にあるため、どちらか一方だけでは自然言語処理は成立しません。

4. ビジネス・実務での活用シナリオ

機械翻訳の分野では、原文と訳文を対にして集めたパラレルコーパスを学習に用います。原文と訳文の対応関係を大量に学習することで、文脈に応じた自然な訳語の選択が可能になり、翻訳精度が高まります。単語単位の置き換えだけでは対応しきれない言い回しの違いも、対にしたデータから学習できる点が特徴です。

検索エンジンやチャットボット(人間と自動で対話するプログラム)の開発では、大量のコーパスから頻出する言い回しや単語の共起関係を学習します。ユーザーの入力に近い表現パターンをあらかじめ把握しておくことで、検索結果の関連度や応答の精度が高まります。表記のゆれや言い換え表現への対応幅も、学習に使うコーパスの規模と多様性に左右されます。

医療や法律など特定分野のテキストを集めたドメイン特化コーパス(特定の業界・分野に絞って収集したコーパス)を構築する取り組みも進んでいます。専門用語や独特の言い回しを多く含むデータで学習することで、一般的なコーパスだけでは対応しきれない専門分野の文脈にも強いモデルを開発できます。汎用的なコーパスのみで学習したモデルでは、専門分野特有の言い回しや略語を正しく扱えない場面が生じるためです。

5. 要点まとめ

  • コーパスは大量のテキストデータを構造化したデータベースで、アノテーション付きコーパスと生コーパスに大別されます。
  • モノリンガルコーパスとパラレルコーパス(対訳コーパス)の違い、代表的な日本語コーパスであるBCCWJ(約1億430万語・均衡コーパス)の特徴が、ここでの要点です。
  • 大規模言語モデルの事前学習ではCommon Crawl等から構築した大規模コーパスが使われ、コーパスの質と量がモデルの性能を左右します。

6. 確認問題

問1コーパスは、品詞情報や構文情報などのタグ(アノテーション)を付与した「アノテーション付きコーパス」と、タグを付けていない「生コーパス」に大別される。

解答・解説をみる

○ 正しい

コーパスはアノテーションの有無でこの2種類に分けられます。アノテーションには形態素解析結果や構文解析結果、意味情報などが含まれます。

問2自然言語処理(NLP)とは、コーパスに収録された個々のテキストデータそのものを指す用語である。

解答・解説をみる

× 誤り

自然言語処理はコンピュータに人間の言語を処理させる分野の総称であり、コーパスはその処理対象となる言語データを指します。正しくは、自然言語処理が分野の名称、コーパスがその処理対象となるデータという関係です。分野名とデータを取り違えた記述にあたります。

問3大規模言語モデルの事前学習には、Common Crawl等から構築された大規模なウェブコーパスが用いられる。

解答・解説をみる

○ 正しい

Common Crawl(インターネット上のウェブページを定期的に自動収集しているデータ)は、CC-100やC4のように前処理を経てコーパス化され、事前学習に用いられます。