総研大2023
20230522†
BCCWJのXMLタグセット†
TEI (Text Encoding Initiative)†
XMLアノテーションの実際†
- サンプルテキスト(青空文庫の夏目漱石「こころ」)をXMLに
- タグ付き正規表現を使った置換の応用
- ただし、正規表現では、XMLのような入れ子のタグに完全にマッチする表現力はない*1
「太陽コーパス」でのXMLの活用例†
Himawariでの利用†
20230514†
書き言葉コーパスの例(テキスト化+XMLアノテーション+形態論情報付与)†
正規表現とは†
- 正規表現 >用語
- 文字を表すための特殊な文字(メタ文字)を使って文字列のパターンを表現する
- テキストエディタでは置換・検索・grepで利用できる (エディタ以外にもさまざまなアプリケ-ションやコンピュータ言語で利用されている)
- 特殊な文字(メタ文字)はすべて半角
正規表現のいろいろ†
- 授業資料/正規表現
- 文字クラス [ ]
- 文字クラスの否定(補集合)[^ ]
- 繰り返し ? + *
- グループ化 ()
- or(論理和) |
- 文頭 ^、文末 $
正規表現の応用†
- カタカナ語
- 送りがなの揺れ(行う/行なう)
- 会話文中("「"で始まる文中)の用例を検索する
- 同一文中での共起
タグ付き正規表現†
- 走[らりるれろ] でgrepした結果を置換するにはどうしたらいいか
- 次のように置換するととんでもないことに…
- 検索文字列:走[らりるれろっ]
- 置換文字列:★走[らりるれろっ]
- タグ付き正規表現:カッコ(半角丸カッコ)と\1(\2,\3…)を使う
- 授業資料/タグつき正規表現
最長一致の原則(greedy matching)†
- 正規表現は、パターンが一致する最も長い範囲にマッチする
- 例:あ+ → 【\1】
- ああああああああ → 【ああああああああ】
そのせいで…
- 例:「(.+)」 → 【\1】
- 「こんにちは」「さようなら」 → 【こんにちは」「さようなら】
- 括弧の組ごとに置換するためには「([^」]+)」 → 【\1】 のように書かなければならない
- 「こんにちは」「さようなら」 → 【こんにちは】【さようなら】
- よりかんたんに指定するには(最短一致,ものぐさ指定)
- 「(.+?)」「(.*?)」のように、繰り返し指定の+*の後に「?」をつける
検索文字列の中での後方参照†
- 検索語の中で\1を使う
- (..)\1 「ころころ」「毎日毎日」など二文字の繰り返しにマッチ
- (.ろ)\1 「ころころ」「どろどろ」「へろへろ」などにマッチ
- (..)\1\1
- (...)\1
正規表現に関する参考資料†
ゲームの紹介†
- 正規表現を学ぶ狩りに出ようRegex Hunting
XML入門†
20230508†
紙の資料からコーパスまで ~テキストの電子化とアノテーションの高度化†
- (紙の)本文
- (紙の)総索引(コンコーダンス)
- 電子テキスト:テキスト (199x年代~)
- 構造化テキスト:テキスト+XMLによる構造化タグ (200x年代~)
- 単語情報付きのコーパス:テキスト+XMLによる構造化タグ+形態論情報 (201x年代~)
コーパスのファイル形式とアプリケーション†
- ファイル形式と実例
- 電子テキスト:プレーンテキスト
- 構造化テキスト:XMLファイル
- 単語情報付きデータ:単語情報を埋め込んだXML /XMLファイル+CSVファイル
- それぞれの利用アプリケーション
- 電子テキスト:テキストエディタ+grepなど
- 構造化テキスト:全文検索システム「ひまわり」、XMLエディタ(Oxygen, VSCode)、XPath・XSLT
- 単語情報付きデータ:中納言(オンライン)/Chaki.Net(PC上)
20230501(オンデマンド) テキストデータ整備の準備†
- 【課題1】VS codeのインストールと設定
- 拡張機能 Japanese Language Packの追加
- ファイルオープン時にエンコーディングを自動判別するよう設定
- 拡張機能 XML Language Support by Red Hatの追加
- 【課題2】サンプルテキスト(青空文庫の夏目漱石「こころ」)をダウンロードしてVS codeで開き、UTF-8で保存しなおす
- 【課題3】VS Codeで正規表現を使ってサンプルテキストのふりがなタグを置換で削除
拡張正規表現では可能