*日本語テキスト処理のためのPC基礎講座 ~言語処理やプログラミング以前の基礎知識 **2018/04/17 テキストデータと正規表現 ***テキストデータ -[[テキストファイル>https://ja.wikipedia.org/wiki/%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB]] ---[[授業資料/テキストデータとは]] ---拡張子 txt,csv,tsv,htm,xml ---サンプルデータ [[soseki2.zip>https://dl.dropboxusercontent.com/u/134600/soseki2.zip]] --[[テキストエディタ>https://ja.wikipedia.org/wiki/%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF]] ---[[サクラエディタ>http://www.ogiso.net/wiki/index.php?plugin=attach&pcmd=open&file=sakura2.zip&refer=%A5%C6%A5%AD%A5%B9%A5%C8%BD%E8%CD%FD%A4%CE%B4%F0%C1%C3]] ---[[授業資料/テキストエディタ]] ---論理行番号 ---検索,置換,grep,タグジャンプ ---[[ショートカットキー>授業資料/覚えておきたいショートカットキー]] -[[文字コード>https://ja.wikipedia.org/wiki/%E6%96%87%E5%AD%97%E3%82%B3%E3%83%BC%E3%83%89]]=符号化文字集合 --[[テレタイプ>https://ja.wikipedia.org/wiki/%E3%83%86%E3%83%AC%E3%82%BF%E3%82%A4%E3%83%97%E7%AB%AF%E6%9C%AB]]の話から ---[[制御記号>https://ja.wikipedia.org/wiki/%E5%88%B6%E5%BE%A1%E6%96%87%E5%AD%97]] ---[[改行コード>https://ja.wikipedia.org/wiki/%E6%94%B9%E8%A1%8C%E3%82%B3%E3%83%BC%E3%83%89]] CR, LF, CRLF --[[文字集合(character set)>https://ja.wikipedia.org/wiki/%E6%96%87%E5%AD%97%E9%9B%86%E5%90%88]] --[[符号化方式(character encoding)>https://ja.wikipedia.org/wiki/%E6%96%87%E5%AD%97%E7%AC%A6%E5%8F%B7%E5%8C%96%E6%96%B9%E5%BC%8F]] --やや古いがよく使われる文字コード:[[Shift_JIS>https://ja.wikipedia.org/wiki/Shift_JIS]], [[CP932>https://ja.wikipedia.org/wiki/Microsoft%E3%82%B3%E3%83%BC%E3%83%89%E3%83%9A%E3%83%BC%E3%82%B8932]], [[EUC-JP>https://ja.wikipedia.org/wiki/EUC-JP]] --[[Unicode>https://ja.wikipedia.org/wiki/Unicode]]の符号化方式[[UTF-8>https://ja.wikipedia.org/wiki/UTF-8]], [[UTF-16>https://ja.wikipedia.org/wiki/UTF-16]] ---(LE(Little Endian), BE(Big Endian)) ---[[BOM(Byte Order Mark)>https://ja.wikipedia.org/wiki/%E3%83%90%E3%82%A4%E3%83%88%E3%82%AA%E3%83%BC%E3%83%80%E3%83%BC%E3%83%9E%E3%83%BC%E3%82%AF]] ---[[BMP(基本多言語面)>https://ja.wikipedia.org/wiki/%E5%9F%BA%E6%9C%AC%E5%A4%9A%E8%A8%80%E8%AA%9E%E9%9D%A2]]とサロゲートペア --(参考) http://www.kanzaki.com/docs/jcode.html --(参考) https://codezine.jp/article/detail/1592 ※ -[[正規表現>https://ja.wikipedia.org/wiki/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE]](grepからタグ付き正規表現まで) --[[授業資料/正規表現]] ---文字クラス [ ] ---文字クラスの否定(補集合)[^ ] ---繰り返し(最長一致) ? + * ※ ---繰り返し最短一致 +? *? ※ ---n回以上m回以下のくり返し {n,m} ※ ---グループ化 () ---or(論理和) | ---文頭 ^、文末 $ --[[タグ付き正規表現>授業資料/タグつき正規表現]] ---カッコ(半角丸カッコ)と\1(\2,\3…)を使う ---タグ付けへの応用例 (「.+?」) -> <quote>\1</quote> ※ --後方参照 ---マッチした部分を検索語の中で再利用する 例: (..)\1 ------ ***どっちが「きれいなデータ」だろうか? 太陽コーパス 近代語 書き言葉 日本語話し言葉コーパス 現代語 話し言葉 現代日本語書き言葉均衡コーパス 現代語 話し言葉 日本語歴史コーパス 古代~近代語 書き言葉 太陽コーパス 近代語 書き言葉 日本語話し言葉コーパス 現代語 話し言葉 現代日本語書き言葉均衡コーパス 現代語 話し言葉 日本語歴史コーパス 古代~近代語 書き言葉 ***見た目と論理構造 -テキスト、スプレッドシート(Excel)、マークアップ(XML)などのデータ設計あらゆることに共通した課題