第1日(7/22):文字・テキスト・検索と集計
イントロダクション
授業で利用する主なソフトウェア†
コーパスについて†
この授業ではBCCWJ(モニター公開版)のほか、青空文庫・国会会議録などの広義のコーパス(テキストファイル)も視野に入れて話をしていきます。
- 狭義のコーパス
- 言語研究を目的として収集され、言語研究のための情報が付けられたコンピュータ上で利用可能な大規模な言語データ。
- Kotonoha (BCCWJ / CSJ / 太陽コーパス)
- 広義のコーパス
- コンピュータ上で利用可能な大規模な言語データ。必ずしも言語研究向きではないが、言語研究に利用可能。
- さまざまなテキストアーカイブ(新潮文庫の百冊 / 青空文庫 / 国会会議録)
- Web上のデータ
- 検索サイトの利用
- WAC(Web as Corpus)
BCCWJの紹介
上記の*印の内容については授業でも取り上げます。
文字コード
日本で広く使われてきた文字コード
(伝統的な文字コード。かつて多くのパソコンで使われてきた。現在は携帯電話でも利用される)
- 文字集合 JIS X0208:1997(なんども改定があった)
- Shift_JIS(符号化方式)
- EUC-JP(符号化方式)
- JIS 2022(符号化方式)
ユニコード
(新しい国際的な文字集合。各国のコード表を含み込んでいるので膨大な数の文字を含む。最近のパソコンの内部処理はUnicodeで行われる。)
- 文字集合 Unicode Ver.4.0(バージョンがいろいろある)
- UTF-8(符号化方式)
- UTF-16(符号化方式)LE/BE(エンディアンによる違い)
- 単にUnicodeといった場合、たいていUTF-16LEを指す(LE=リトルエンディアン、パソコンは一般的にリトルエンディアン)
- UTF-16では、通常ファイルの先頭にBOMといわれる特殊記号がつけられる(UTF-8では付けないのが普通)
BCCWJの文字コード
- 文字集合 JIS X0213 (X0208に漢字・非漢字を追加)
(X0213の符号化方式はShift_JISほか様々な規定があるが、今のパソコンでは使いにくい)→符号化方式としてUnicode系のUTF-16LE・UTF-8を使う(使用する文字をJIS X0213の範囲に制限)
- UniDicではUTF-8が基本(MeCab/ChaSenでUnicodeが扱える文字コード)
文字コードを巡る様々な問題
- ここでは取り上げませんが、日本語学を学ぶ人には知っておいてもらいたい。参考文献参照。
- 文字化け
- 「文字が足りない?」
- 「どこまでが同じ文字か」包摂基準
- 「他の文字表との整合性」
(参考)今昔文字鏡
- 「太陽コーパス」(文字集合はX0208。ただし包摂基準を一部変更して適用)では外字の表現にこの番号と文字画像ファイルを利用
- 基本的に文字の見た目を扱うもので、包摂基準などがない
- 大漢和番号(諸橋)を含み込む
- 著作権の問題、PDFへの埋め込み制限など。
テキストファイル
テキストファイルと拡張子†
- スタイル行番号(ワープロ的行番号)と論理行番号(エディタ的行番号)
テキストエディタを使う
ショートカットキー†
(補足)おすすめテキストエディタ†
正規表現
- 正規表現 >用語
- 文字を表すための特殊な文字(メタ文字)
- 置換・検索・grepで利用できる
- 記号はすべて半角
- 特殊文字そのものを表す場合には\でエスケープする(特殊な意味を打ち消す) 例:1\+2
正規表現のいろいろ†
- 授業資料/正規表現☆
- 文字クラス [ ]
- 文字クラスの否定(補集合)[^ ]
- 繰り返し ? + *
- グループ化 ()
- or(論理和) |
- 文頭 ^、文末 $
正規表現の応用†
- カタカナ語
- 送りがなの揺れ(行う/行なう)
- 全然~ない。
- 会話文中(「で始まる)
タグ付き正規表現(復習)†
- 走[らりるれろ] でGrepした結果を置換するにはどうしたらいいか
- 次のように置換するととんでもないことに…
- 検索文字列:走[らりるれろ]
- 置換文字列:★走[らりるれろ]
- タグ付き正規表現・カッコ(半角丸カッコ)と\1(\2,\3…)を使う
検索語の中での後方参照†
- 検索語の中で\1を使う
- (.ろ)\1 「ころころ」「どろどろ」「へろへろ」などにマッチ
最長一致の原則(greedy matching)†
- 正規表現は、パターンが一致する最も長い範囲にマッチする
- 例:「(.+)」 → 【\1】
- 「こんにちは」「さようなら」 → 【こんにちは」「さようなら】
- 「([^」]+)」 → 【\1】 のように書けばよい
- 「こんにちは」「さようなら」 → 【こんにちは】【さようなら】
- 最短一致を指定するには(ものぐさ指定)
- 「(.+?)」「(.*?)」のように、繰り返し指定の後に「?」をつける
正規表現に関する本†
- amazonで検索
- 正規表現にはアプリケーションソフトやプログラミング言語ごとに多くの方言があるので注意
#amazon(4873111706)
#amazon(4873113598)
全文検索ソフト:「ひまわり」
「ひまわり」で使用できる正規表現†
- 授業資料/Himawariの正規表現
- 検索語/キー:普通の文字と、列挙型の文字クラス([あいう]のようなもの。[あ-う]のような範囲指定は不可)
- 前文脈/後文脈:ほぼ全ての正規表現
前文脈 | キー | 後文脈 | タイトル | 著者 | 著者ID | 生没年 | 原著者 | 原著者ID | 仮名遣い | コーパス名 |
検索結果の集計:「Excel」
表計算ソフト Excel入門
Excelを使った集計†
- ピボットテーブル・ピボットグラフを使う
- グラフの種類について
- 用例の分類と集計
- 分類記号を入れる列を用意し、自分で入力する
- ピボットテーブルで入力した分類を使う
- 関数を使う
- NDCの最上位だけを取り出すには
- 生年を10年ごとの生まれた年代に変換するには
(補足)テキストエディタと組み合わせて使う†
- Excelの列をテキストエディタに貼り付けて編集することができる
- エディタと組み合わせて工夫することでExcelだけでは簡単にできない処理が可能
- 特定の列をエディタにコピーして正規表現を使った置換を行う
第2日(7/23):マークアップ言語・形態素解析・データベース
マークアップ言語:XML
- 「現代日本語書き言葉均衡コーパス」(BCCWJ)も「太陽コーパス」も「話し言葉コーパス」(CSJ)もXML
- 「ひまわり」の検索対象データもXML
ミニコーパスを作る:「えだまめ」
「ひまわり」用のデータを作るには†
既存のデータを「ひまわり」用に変換する†
形態素解析:「Mecab」と「UniDic」
- 形態素解析とは
- 配付資料:シリーズ国語研究の現場から「日本語研究と自動形態素解析」
形態素解析用ソフトウェア
- 形態素解析器(解析エンジン・プログラム)
- 解析辞書
- 茶まめ(解析用GUIツール)
UniDicの特長
- 見出し語が短単位という斉一な単位に揃えられている
- 見出し語が階層化されており表記の揺れや語形の変異にかかわらず同一の見出しを与えることができる
- アクセントや音変化の情報を付与することができる
UniDicはChaSen, MeCabのどちらの解析器でも利用可能(MeCabがおすすめ)。
茶まめで形態素解析・Excelで集計
- 茶まめで解析してみる(解析器はMeCab+解析辞書はUniDic)
- Excelに出力する
- ピボットテーブルで集計する
データベースの利用:「Access」
データベースに取り込む:
- Accessで新規データベースを作成(mdbファイル)
- インポート
- 連番を付ける
データを取り出す・集計する
連続する形態素を取り出す・集計する
- 次の形態素の連番を付ける
- 列を用意する
- 更新クエリ
- 連続する形態素を抜き出す
- 解析結果テーブル自身をずらして結合する
- 前後の形態素で条件指定した選択クエリ
発展