*第1日(7/22):文字・テキスト・検索と集計 -[[自己紹介]] --国立国語研究所 http://www.kokken.go.jp (9月いっぱいまで) --国語研コーパスの紹介([[KOTONOHA>http://www.kokken.go.jp/kotonoha/]]) -受講者アンケート --関心分野・時代 --PC歴 -[[日蝕の情報>http://www.nao.ac.jp/phenomena/20090722/index.html]] **イントロダクション ***授業で利用する主なソフトウェア [#i06478d2] //|''[[秀丸エディタ>http://hide.maruo.co.jp/software/hidemaru.html]]''|テキストエディタ|検索・整形| |''[[K2Editor>http://k2top.jpn.org/index.php?K2Editor]]''|テキストエディタ|検索・整形| |''[[ひまわり>http://www.kokken.go.jp/lrc/index.php?%C1%B4%CA%B8%B8%A1%BA%F7%A5%B7%A5%B9%A5%C6%A5%E0%A1%D8%A4%D2%A4%DE%A4%EF%A4%EA%A1%D9]]''|全文検索ソフト|検索・分析| |''[[MeCab>http://mecab.sourceforge.net/]]''|形態素解析器|形態素解析| |''[[UniDic>http://download.unidic.org]]''|形態素解析辞書|~| |''[[Excel>http://office.microsoft.com/ja-jp/excel/default.aspx]]''|表計算ソフト|集計・分析・グラフ作成| |''[[Access>http://office.microsoft.com/ja-jp/access/default.aspx]]''|データベースソフト|集計・分析| //|''[[Word>http://office.microsoft.com/ja-jp/word/default.aspx]]''|ワープロ|レポート作成| ***コーパスについて [#k44345b6] この授業ではBCCWJ(モニター公開版)のほか、青空文庫・国会会議録などの広義のコーパス(テキストファイル)も視野に入れて話をしていきます。 :狭義のコーパス|言語研究を目的として収集され、言語研究のための情報が付けられたコンピュータ上で利用可能な大規模な言語データ。 --Kotonoha (BCCWJ / CSJ / 太陽コーパス) :広義のコーパス|コンピュータ上で利用可能な大規模な言語データ。必ずしも言語研究向きではないが、言語研究に利用可能。 --さまざまなテキストアーカイブ(新潮文庫の百冊 / 青空文庫 / 国会会議録) --Web上のデータ ---検索サイトの利用 ---WAC(Web as Corpus) -[[BCCWJモニター版について>http://www.kokken.go.jp/kotonoha/ex_8.html]] **BCCWJの紹介 -[[「現代日本語書き言葉均衡コーパス」(BCCWJ)>http://www.kokken.go.jp/kotonoha/]] --特定領域 [[日本語コーパス>http://www.tokuteicorpus.jp/]] -BCCWJはどのように作られているか --[[サンプリング>http://www.kokken.go.jp/kotonoha/ex_3.html]] --[[電子化>http://www.kokken.go.jp/kotonoha/ex_4.html]] ---文字入力* ---マークアップ(XML)* --[[形態論情報の付与>http://www.kokken.go.jp/kotonoha/ex_5.html]] ---形態素解析(短単位)* ---チャンキング(長単位) 上記の*印の内容については授業でも取り上げます。 -[[BCCWJ検索デモサイト>http://www.kotonoha.gr.jp/demo/]] --簡単な調査はこれで十分な場合がありますが、授業ではより高度な利用方法を扱います。 **文字コード -文字集合と文字符号化方式の組み合わせ ***日本で広く使われてきた文字コード (伝統的な文字コード。かつて多くのパソコンで使われてきた。現在は携帯電話でも利用される) -文字集合 JIS X0208:1997(なんども改定があった) --Shift_JIS(符号化方式) --EUC-JP(符号化方式) --JIS 2022(符号化方式) ***ユニコード (新しい国際的な文字集合。各国のコード表を含み込んでいるので膨大な数の文字を含む。最近のパソコンの内部処理はUnicodeで行われる。) -文字集合 Unicode Ver.4.0(バージョンがいろいろある) --UTF-8(符号化方式) --UTF-16(符号化方式)LE/BE([[エンディアン>http://ja.wikipedia.org/wiki/%E3%82%A8%E3%83%B3%E3%83%87%E3%82%A3%E3%82%A2%E3%83%B3]]による違い) ---単にUnicodeといった場合、たいていUTF-16LEを指す(LE=リトルエンディアン、パソコンは一般的にリトルエンディアン) ---UTF-16では、通常ファイルの先頭にBOMといわれる特殊記号がつけられる(UTF-8では付けないのが普通) ***BCCWJの文字コード -文字集合 JIS X0213 (X0208に漢字・非漢字を追加) --UTF-16LE(符号化方式) (X0213の符号化方式はShift_JISほか様々な規定があるが、今のパソコンでは使いにくい)→符号化方式としてUnicode系のUTF-16LE・UTF-8を使う(使用する文字をJIS X0213の範囲に制限) -UniDicではUTF-8が基本(MeCab/ChaSenでUnicodeが扱える文字コード) ***文字コードを巡る様々な問題 -ここでは取り上げませんが、日本語学を学ぶ人には知っておいてもらいたい。参考文献参照。 --[[授業資料/文字コード関連リンク]] --文字化け ---参考:[[文字化けはなぜ起きるか>http://pc.nikkeibp.co.jp/article/NPC/20080116/291169/]](日経パソコンPC online) --「文字が足りない?」 --「どこまでが同じ文字か」包摂基準 --「他の文字表との整合性」 ---常用漢字表と文字コード ***(参考)今昔文字鏡 -「太陽コーパス」(文字集合はX0208。ただし包摂基準を一部変更して適用)では外字の表現にこの番号と文字画像ファイルを利用 --基本的に文字の見た目を扱うもので、包摂基準などがない --大漢和番号(諸橋)を含み込む -著作権の問題、PDFへの埋め込み制限など。 **テキストファイル -テキストデータとはどんなものか --[[授業資料/テキストデータとは]] --[[授業資料/テキストデータ紹介]](広義のコーパス) ***テキストファイルと拡張子 [#c15ea011] -[[拡張子(wikipedia)>http://ja.wikipedia.org/wiki/%E6%8B%A1%E5%BC%B5%E5%AD%90]] --拡張子辞典:http://jisyo.com/viewer/list/list.html --TXT,CSV,HTM・・・ -プレーンテキストと構造化テキスト **テキストエディタ:[[K2Editor>http://k2top.jpn.org/index.php?K2Editor]] -テキストエディタとはどんなものか --[[授業資料/テキストエディタ]] -スタイル行番号(ワープロ的行番号)と論理行番号(エディタ的行番号) --cf. 見た目 と 構造 ***テキストエディタを使う -[[K2Editorの使い方(PDF)>http://home.ogiso.net/wiki/pukiwiki.php?plugin=attach&pcmd=open&file=k2editor2009.pdf&refer=%BC%F8%B6%C8%BB%F1%CE%C1]] -検索と置換 --検索で初出行を調べる --置換で用例数を数える -grepとタグジャンプ --grep --タグジャンプ --grep結果の保存 -[[授業資料/grepと置換でKWICを作る]] ***ショートカットキー [#f0022be4] -[[授業資料/覚えておきたいショートカットキー]]☆ ***(補足)おすすめテキストエディタ [#oa8d82a7] -フリーウェア --K2Editor http://k2top.jpn.org/index.php?K2Editor 【SJIS】 --Apsalyテキストエディタ http://www.vector.co.jp/soft/win95/writing/se423509.html 【SJIS】 --サクラエディタ http://sakura-editor.sourceforge.net/ 【SJIS】unicode版開発中 -シェアウェア --EmEditor http://jp.emeditor.com/ 4,200円 --秀丸エディタ http://hide.maruo.co.jp/software/hidemaru.html 4,200円 ***正規表現 -''正規表現'' [[>用語>http://e-words.jp/w/E6ADA3E8A68FE8A1A8E78FBE.html]] --文字を表すための特殊な文字(メタ文字) --置換・検索・grepで利用できる --記号はすべて半角 --特殊文字そのものを表す場合には\でエスケープする(特殊な意味を打ち消す) 例:1\+2 ***正規表現のいろいろ [#q514651f] -[[授業資料/正規表現]]☆ --文字クラス [ ] --文字クラスの否定(補集合)[^ ] --繰り返し ? + * --グループ化 () --or(論理和) | --文頭 ^、文末 $ ***正規表現の応用 [#c7a3ea2d] --カタカナ語 --送りがなの揺れ(行う/行なう) --''全然~ない。'' --会話文中(''「''で始まる) ***タグ付き正規表現(復習) [#f4ef75c5] -走[らりるれろ] でGrepした結果を置換するにはどうしたらいいか --次のように置換するととんでもないことに… ---検索文字列:走[らりるれろ] ---置換文字列:★走[らりるれろ] -タグ付き正規表現・カッコ(半角丸カッコ)と\1(\2,\3…)を使う -[[授業資料/タグつき正規表現]]☆ -(参考)タグ付き正規表現の応用:[[grepと置換でKWICを作る>授業資料/grepと置換でKWICを作る]] ***検索語の中での後方参照 [#j9966c0d] -検索語の中で\1を使う --(.ろ)\1 「ころころ」「どろどろ」「へろへろ」などにマッチ ***最長一致の原則(greedy matching) [#y047e9bd] -正規表現は、パターンが一致する最も長い範囲にマッチする --例:''「(.+)」'' → ''【\1】'' ---「こんにちは」「さようなら」 → 【こんにちは」「さようなら】 --''「([^」]+)」'' → ''【\1】'' のように書けばよい ---「こんにちは」「さようなら」 → 【こんにちは】【さようなら】 -最短一致を指定するには(ものぐさ指定) --''「(.+?)」「(.*?)」''のように、繰り返し指定の後に「?」をつける ***正規表現に関する本 [#a3414e4f] -[[amazonで検索>http://www.amazon.co.jp/s/ref=nb_ss_gw?__mk_ja_JP=%83J%83%5E%83J%83i&url=search-alias%3Daps&field-keywords=%90%B3%8BK%95%5C%8C%BB&Go.x=0&Go.y=0&Go=Go]] -正規表現にはアプリケーションソフトやプログラミング言語ごとに多くの方言があるので注意 #amazon(4873111706) #amazon(4873113598) #clear **全文検索ソフト:「ひまわり」 -「ひまわり」 [[国立国語研究所/言語データベースとソフトウェア/ひまわり>http://www.kokken.go.jp/lrc/index.php?%C1%B4%CA%B8%B8%A1%BA%F7%A5%B7%A5%B9%A5%C6%A5%E0%A1%D8%A4%D2%A4%DE%A4%EF%A4%EA%A1%D9]] -「ひまわり」を授業フォルダに入れ、青空文庫などを検索できるようにしてあります。 ***「ひまわり」で使用できる正規表現 [#t52b1fee] -[[授業資料/Himawariの正規表現]] -検索語/キー:普通の文字と、列挙型の文字クラス([あいう]のようなもの。[あ-う]のような範囲指定は不可) -前文脈/後文脈:ほぼ全ての正規表現 --例:[寂淋]し |前文脈|キー|後文脈|タイトル|著者|著者ID|生没年|原著者|原著者ID|仮名遣い|コーパス名| **検索結果の集計:「Excel」 ***表計算ソフト Excel入門 -並べ替え -オートフィルタ --オートフィルタの「オプション」 ***Excelを使った集計 [#l7da4009] -ピボットテーブル・ピボットグラフを使う --参考:http://office.microsoft.com/ja-jp/excel/CH062528071041.aspx -グラフの種類について --http://office.microsoft.com/ja-jp/help/HA012337371041.aspx --扱う対象・方法に適したグラフを選択する 上記URL参照 -用例の分類と集計 ++分類記号を入れる列を用意し、自分で入力する ++ピボットテーブルで入力した分類を使う --ミタヨウダ/ミタイダ -関数を使う --[[NDC>http://ja.wikipedia.org/wiki/%E6%97%A5%E6%9C%AC%E5%8D%81%E9%80%B2%E5%88%86%E9%A1%9E%E6%B3%95]]の最上位だけを取り出すには --生年を10年ごとの生まれた年代に変換するには ---=left([生没年],3)*10 ***(補足)テキストエディタと組み合わせて使う [#uc1f5bff] -Excelの列をテキストエディタに貼り付けて編集することができる -エディタと組み合わせて工夫することでExcelだけでは簡単にできない処理が可能 --特定の列をエディタにコピーして正規表現を使った置換を行う *第2日(7/23):マークアップ言語・形態素解析・データベース **マークアップ言語:XML -「現代日本語書き言葉均衡コーパス」(BCCWJ)も「太陽コーパス」も「話し言葉コーパス」(CSJ)もXML -「ひまわり」の検索対象データもXML **ミニコーパスを作る:「えだまめ」 -自分でミニコーパスを作るには -マークアップ言語 --[[HTML>http://ja.wikipedia.org/wiki/HyperText_Markup_Language]] ---ごく簡単なHTMLの説明:http://www.kanzaki.com/docs/htminfo.html --[[XML>http://ja.wikipedia.org/wiki/Extensible_Markup_Language]] ---たのしいXML:http://www6.airnet.ne.jp/manyo/xml/ ***「ひまわり」用のデータを作るには [#l26f68db] -[[ひまわり用のデータの作り方>http://www.kokken.go.jp/lrc/index.php?%C1%B4%CA%B8%B8%A1%BA%F7%A5%B7%A5%B9%A5%C6%A5%E0%A1%D8%A4%D2%A4%DE%A4%EF%A4%EA%A1%D9%2F%B4%CA%C3%B1%A4%CA%B8%A1%BA%F7%CD%D1%A5%C7%A1%BC%A5%BF%A4%CE%BA%EE%C0%AE%CA%FD%CB%A1]](自分でXML文書を設計・作成、設定ファイルを作成する) --◎自由に情報がつけられる / △やや難 -[[ひまわり用データ作成ツール「えだまめ」>http://www.kokken.go.jp/lrc/index.php?%A1%D8%A4%D2%A4%DE%A4%EF%A4%EA%A1%D9%BB%D9%B1%E7%A5%C4%A1%BC%A5%EB%2F%A4%A8%A4%C0%A4%DE%A4%E1]](テキストファイルから自動変換により作成する) --[[「えだまめ」の使い方>http://www.kokken.go.jp/lrc/index.php?%A1%D8%A4%D2%A4%DE%A4%EF%A4%EA%A1%D9%BB%D9%B1%E7%A5%C4%A1%BC%A5%EB%2F%A4%A8%A4%C0%A4%DE%A4%E1%2F%BB%C8%A4%A4%CA%FD]] --△自分で付けられる情報は「パス」のみ / ◎簡単 ---(自動でできたXMLファイルと設定ファイルを編集して、必要な情報を付けることはできる) ***既存のデータを「ひまわり」用に変換する [#tfcee628] -[[ソフトウェア/しおまめ]](新潮文庫の100冊シリーズ変換) -[[青空文庫のDVD-ROMを変換>http://www.kokken.go.jp/lrc/index.php?%C1%B4%CA%B8%B8%A1%BA%F7%A5%B7%A5%B9%A5%C6%A5%E0%A1%D8%A4%D2%A4%DE%A4%EF%A4%EA%A1%D9%2F%C0%C4%B6%F5%CA%B8%B8%CB%A4%CE%CA%B8%BD%F1%A4%F2%A1%D8%A4%D2%A4%DE%A4%EF%A4%EA%A1%D9%A4%C7%CD%F8%CD%D1%A4%B9%A4%EB%CA%FD%CB%A1%A3%B2]] #amazon(4899840721) #clear **形態素解析:「Mecab」と「UniDic」 -形態素解析とは --配付資料:シリーズ国語研究の現場から「日本語研究と自動形態素解析」 ***形態素解析用ソフトウェア -形態素解析器(解析エンジン・プログラム) --[[茶筌(ChaSen)>http://chasen-legacy.sourceforge.jp/]] --[[和布蕪(MeCab)>http://mecab.sourceforge.net/]] -解析辞書 --[[NAIST-jdic (IPADIC)>http://sourceforge.jp/projects/naist-jdic/]] --[[UniDic>http://download.unidic.org]] ---[[近代文語UniDic>http://www.kokken.go.jp/lrc/index.php?UniDic%2F%B6%E1%C2%E5%CA%B8%B8%ECUniDic]] -茶まめ(解析用GUIツール) ***UniDicの特長 +見出し語が[[短単位>http://www.kokken.go.jp/kotonoha/ex_5.html]]という斉一な単位に揃えられている +見出し語が[[階層化され>http://www.tokuteicorpus.jp/dist/modules/system/modules/menu/main.php?page_id=3468&op=change_page]]ており表記の揺れや語形の変異にかかわらず同一の見出しを与えることができる +アクセントや音変化の情報を付与することができる UniDicはChaSen, MeCabのどちらの解析器でも利用可能(MeCabがおすすめ)。 ***茶まめで形態素解析・Excelで集計 +茶まめで解析してみる(解析器はMeCab+解析辞書はUniDic) +Excelに出力する +ピボットテーブルで集計する **データベースの利用:「Access」 -関係データベースとは --[[Wikipedia>http://ja.wikipedia.org/wiki/%E9%96%A2%E4%BF%82%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9]] -[[形態素解析結果をAccessで使う>http://home.ogiso.net/wiki/pukiwiki.php?plugin=attach&pcmd=open&file=%B7%C1%C2%D6%C1%C7%B2%F2%C0%CF%B7%EB%B2%CC%A4%F2Access%A4%C7%BB%C8%A4%A6.pdf&refer=%BC%F8%B6%C8%BB%F1%CE%C1]](PDF)☆ ***データベースに取り込む: +Accessで新規データベースを作成(mdbファイル) +インポート --文字コード(コードページをUTF-8に指定する) +連番を付ける ***データを取り出す・集計する -選択クエリ --列を選択 --行を選択 -表の結合 --内部結合と外部結合 --表を結合して選択 -集計 --カウント(何例あるか) --合計・平均・・・ ***連続する形態素を取り出す・集計する +次の形態素の連番を付ける ++列を用意する ++更新クエリ +連続する形態素を抜き出す ++解析結果テーブル自身をずらして結合する ++前後の形態素で条件指定した選択クエリ **発展 -[[授業資料/コンピュータ言語]] --Perl(Ruby,Python) --SQL --R --XML/XSLT