#author("2024-06-24T16:54:00+09:00","default:ogiwiki","ogiwiki") #author("2024-07-13T04:14:31+09:00;2024-06-24T16:54:00+09:00","default:ogiwiki","ogiwiki") [[総研大2024]] -月曜4限 *2024/06/24 (小木曽担当最終回) [#zb38e877] ***(前回補足)短単位解析(Web茶まめ)とデータベース [#yedc369c] -大納言形式での出力 --[[じんもんこん2023:形態素解析ツール Web茶まめによるコーパス作成支援>https://www.ogiso.net/wiki/index.php?plugin=attach&pcmd=open&file=IPSJ-CH2023039.pdf&refer=%E7%B7%8F%E7%A0%94%E5%A4%A72024%2F%E8%A8%80%E8%AA%9E%E8%B3%87%E6%BA%90%E5%AD%A6]] (http://id.nii.ac.jp/1001/00231264/) --ocx:タグ版([[ocx_kokoro.xml>https://www.dropbox.com/scl/fi/gn0210fi7wtgzho3mopwj/ocx_kokoro.xml?rlkey=uc6y3s7vnv1jgqwdb1sirokac&dl=1]]) -DTD [[kokoro.dtd>https://www.dropbox.com/scl/fi/vo2wg69cg5eo8yzmezxv9/kokoro.dtd?rlkey=68yjdz0jn496tl861qvd80trw&dl=1]] <!ELEMENT ocx:doc (title|author|h1|h2|p|speech|pagebreak|ocx:s)*> <!ATTLIST ocx:doc sampleID CDATA #REQUIRED> <!ATTLIST ocx:doc corpusName CDATA #REQUIRED> <!ATTLIST ocx:doc xmlns:ocx CDATA #REQUIRED> <!ELEMENT ocx:ruby (#PCDATA|gaiji)*> <!ATTLIST ocx:ruby rt CDATA #REQUIRED> <!ELEMENT ocx:s EMPTY> -XML Schema [[kokoro.xsd>https://www.dropbox.com/scl/fi/nttl0sgirtp8643hwmzz5/kokoro.xsd?rlkey=hoio9c1dl7zjuh59c6k1o80sp&dl=1]] --参考:https://www.xmlmaster.org/article/d01/c05/ -ocx:解析結果 [[解析結果>https://www.dropbox.com/scl/fi/61lqugnci3d0lurwbejdh/webchamame_20240624032459.zip?rlkey=mkfbdlrv1r4xeqblis78ef9d1&dl=1]] --形態論情報はスタンドオフアノテーション ***語数表と調整頻度 [#v2dabeac] -BCCWJ --短単位語数表Excel http://doi.org/10.15084/00003226 --長単位語数表Excel http://doi.org/10.15084/00003224 -[[CEJC>https://www2.ninjal.ac.jp/conversation/cejc.html]] -[[CHJ>https://clrd.ninjal.ac.jp/chj/chj-wc.html]] --短単位語数表Excel(バージョン2024.03) https://clrd.ninjal.ac.jp/chj/doc/CHJ_SUW_WC_202403.xlsx --長単位語数表Excel(バージョン2024.03) https://clrd.ninjal.ac.jp/chj/doc/CHJ_LUW_WC_202403.xlsx -[[SHC>https://clrd.ninjal.ac.jp/shc/stats.html]] --短単位語数表CSV https://clrd.ninjal.ac.jp/shc/doc/SHC_WC_202305.csv ***ランダムサンプリング調査 [#j4516bb3] -大量に用例があり、調査内容からすべて対象にできない場合 -ランダムに並べ替え→先頭n例を調査対象に --ランダムな数字の列: =RAND() --ランダムな数字の列をコピーして「値として貼り付ける」と数字が固定される ***Excelの文字列関数 [#l2b3c58d] -[[授業資料/EXCELの文字列関数]]参照 ***VLOOKUP関数の利用 [#w4b76b16] -[[授業資料/VLOOKUP関数]]参照 -辞書引き集計 [#k380e1c9] -辞書引き集計 --自分で作った(または誰かが用意してくれた)辞書データ(コーパスの見出し語に対する追加情報)を利用する ---例:形容詞の意味分類付与 ---(参考)分類語彙表 https://clrd.ninjal.ac.jp/goihyo.html ---[[サンプルデータ(味・においの形容詞)>https://www.dropbox.com/s/dydpbmu59jed2sj/%E5%BD%A2%E5%AE%B9%E8%A9%9E_%E5%91%B3%EF%BC%8F%E3%81%AB%E3%81%8A%E3%81%84.xlsx?dl=1]] ***コーパスの語彙表 [#sb08c3df] --語数表とは違ってどの語が何例ずつあるか集計した表(巨大な表で開くのがたいへんなので注意。本当はデータベースに入れて使ったほうがいい) --BCCWJ ---短単位語彙表(Version 1.1) https://doi.org/10.15084/00003219 ---長単位語彙表(Version 1.1) https://doi.org/10.15084/00003213 --CHJ ---『日本語歴史コーパス』統合語彙表(バージョン2024.03) https://doi.org/10.15084/0002000263 --SHC ---『昭和・平成書き言葉コーパス』短単位語彙表(バージョン2023.05) https://doi.org/10.15084/0002000043 --CEJC ---https://www2.ninjal.ac.jp/conversation/cejc/cejc-wc.html ***語彙表とコロケーション強度 [#ne9e4500] -[[授業資料/コロケーション強度]]参照 --例:「玉葱」と共起する動詞 ---[[collocation_sample.xlsx>https://www.dropbox.com/s/t1i0ii6r0hns3oe/collocation_sample.xlsx?dl=1]] ***特徴語抽出 [#x2b8a85b] -Excelマクロ -[[授業資料/対数尤度比による特徴語抽出]]参照 *2024/06/17 [#f5c68231] ***DTDと検証(validation) [#x9f6bd86] -DTD (Document Type Definition)とは --参考:https://www.javadrive.jp/xml/dtd/ -前回のkokoro.xmlのDTDを作ってみる <!DOCTYPE doc [ <!ELEMENT doc (title, author, (info|div)*)> <!ELEMENT title (#PCDATA)> <!ELEMENT author (#PCDATA)> <!ATTLIST doc title CDATA #REQUIRED> <!ATTLIST doc author CDATA #REQUIRED> <!ELEMENT div (title,(section|p|info)*)> <!ATTLIST div title CDATA #REQUIRED> <!ELEMENT p (#PCDATA|r|gaiji)*> <!ELEMENT section (#PCDATA)> <!ELEMENT info EMPTY> <!ATTLIST info text CDATA #REQUIRED> <!ELEMENT r (#PCDATA|gaiji)*> <!ATTLIST r rt CDATA #REQUIRED> <!ELEMENT gaiji (#PCDATA)> <!ATTLIST gaiji text CDATA #REQUIRED> ]> ***XPath, XSLT [#ue7eb930] -[[VSCode XML Tools>https://marketplace.visualstudio.com/items?itemName=DotJoshJohnson.xml]] ※XPathによる検索ができる拡張 -[[XPath>https://atmarkit.itmedia.co.jp/aig/01xml/xpath.html]]とは --https://developer.mozilla.org/ja/docs/Web/XPath -[[XSLT>https://atmarkit.itmedia.co.jp/aig/01xml/xslt.html]]とは --https://developer.mozilla.org/ja/docs/Web/XSLT ***XMLファイルと形態論情報DB [#a9a85f44] -スライド参照 ***XMLファイルの形態素解析 [#y86e0dd5] -Web茶まめ --https://chamame.ninjal.ac.jp/ ***書き言葉コーパスの例(テキスト化+XMLアノテーション+形態論情報付与) [#y9cb1a76] -明六雑誌コーパス:https://ccd.ninjal.ac.jp/cmj/meiroku/ **参考:[[日本語テキスト処理基礎講座2023]] [#p4ae70a7] -[[日本語テキスト処理基礎講座2023/①テキストエディタと正規表現]] -[[日本語テキスト処理基礎講座2023/③XMLの基礎]] -次回(小木曽担当最終回):Excel *2024/06/10 [#u0176f35] ***XMLアノテーションの実際 [#kca1a500] -サンプルテキスト(青空文庫の夏目漱石「こころ」)をXMLに --練習用サンプルデータ[[kokoto.txt>https://www.dropbox.com/s/r89ahi6goxy5a2c/kokoro.txt?dl=1]] -タグ付き正規表現を使った置換の応用 --ただし、正規表現では、XMLのような入れ子のタグに完全にマッチする表現力はない((拡張正規表現では可能)) ***Himawariでの利用 [#x9afc7c7] -[[全文検索システム「ひまわり」>http://www2.ninjal.ac.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]](山口昌也先生) -kokoro.xmlをHimawariで使ってみる --設定ファイルとインデキシング -コーパスのXMLファイルをUTF-16LE(LF改行)で保存しておくこと! --[[soseki_config.xml>https://www.dropbox.com/s/s9u3pyp181n48dd/soseki_config.xml?dl=1]] *2024/06/03 [#g84e1276] ***正規表現の利用例:中納言の検索結果を整える [#mc00a8d6] エディタに検索結果の列を貼り付けて置換で整形 -前後文脈をキーを含む文だけにする .+# → #.+ → -品詞大分類だけを利用する -.+ → -BCCWJのジャンルを整える --(新) 1 哲学/198.37|(旧) 1 哲学/198 -前後文脈でマッチした語を抜き出す --(広く)|,深く,|かつ|システマティック|に **XML [#k4b517ce] -(参考) XML入門 https://www.javadrive.jp/xml/ ***BCCWJのXMLタグセット [#yff8b80d] -https://clrd.ninjal.ac.jp/bccwj/c-xml.html ***TEI (Text Encoding Initiative) [#u02355e5] -https://tei-c.org/ --参考資料:[[TEI入門に最適なウェブ資料>https://www.dh.ku-orcas.kansai-u.ac.jp/?p=750]](関西大・東アジアDHポータル) --[[chapter 8 歴史データのさまざまな応用 -Text Encoding Initiative の現在-(永崎研宣)★『歴史情報学の教科書』>https://bungaku-report.com/blog/2019/03/chapter-8-text-encoding-initiative.html]] *2024/05/27 [#l5ad0c5f] -news: [[「Excel」に正規表現の新関数が3つ導入へ ~「XLOOKUP」「XMATCH」にも対応予定>https://forest.watch.impress.co.jp/docs/news/1593174.html]] 2024年5月21日 ***補足:VSCodeのGrep検索 [#eec39aca] +フォルダを開く +検索 +"エディターで開く" **正規表現(続き) [#lff029c2] ***正規表現とは [#d216d4e0] -''正規表現'' [[>用語>http://e-words.jp/w/E6ADA3E8A68FE8A1A8E78FBE.html]] --文字を表すための特殊な文字(メタ文字)を使って文字列のパターンを表現する --テキストエディタでは置換・検索・grepで利用できる (エディタ以外にもさまざまなアプリケ-ションやコンピュータ言語で利用されている) --特殊な文字(メタ文字)はすべて半角 //--特殊な文字そのものを表す場合には\でエスケープする(特殊な意味を打ち消す) 例:1\+2 ***正規表現のいろいろ [#q514651f] -[[授業資料/正規表現]] --文字クラス [ ] --文字クラスの否定(補集合)[^ ] ----- --繰り返し ? + * ---正規表現は、パターンが一致する最も長い範囲にマッチする(greedy matching) --最短一致の繰り返し +? *? --グループ化 () --or(論理和) | --文頭 ^、文末 $ ***正規表現の応用 [#c7a3ea2d] -カタカナ語 --カタカナ(外来語)の形容動詞語幹 -送りがなの揺れ(行う/行なう) -会話文中("「"で始まる文中)の用例を検索する -同一文中での共起 --全然~ない。 --もし~なら(ば) -【課題】VS Codeで正規表現を使ってサンプルテキストのふりがなタグを置換で削除 //---|?(\P{sc=Han}+)《(.+?)》 ***テキストデータ(青空文庫の夏目漱石作品)の配布 [#bd04ed6f] -★[[soseki2.zip>https://www.dropbox.com/s/gw1j25svf2s9tki/soseki2.zip?dl=1]] //--[[青空文庫 夏目漱石「こころ」>https://www.aozora.gr.jp/cards/000148/card773.html]] ***タグ付き正規表現 [#z9ef50e5] -走[らりるれろ] でgrepした結果を置換するにはどうしたらいいか --次のように置換するととんでもないことに… ---検索文字列:走[らりるれろっ] ---置換文字列:★走[らりるれろっ] -タグ付き正規表現:カッコ(半角丸カッコ)と\1(\2,\3…)を使う -[[授業資料/タグつき正規表現]] ***検索文字列の中での後方参照 [#ra28185d] -検索語の中で\1を使う --(..)\1 「ころころ」「毎日毎日」など二文字の繰り返しにマッチ --(.ろ)\1 「ころころ」「どろどろ」「へろへろ」などにマッチ --(..)\1\1 --(...)\1 ***正規表現に関する参考資料 [#w86de08b] -サクラエディタの正規表現:https://sakura-editor.github.io/help/HLP000089.html -正規表現に関する本 [[amazonで検索>https://www.amazon.co.jp/s?k=%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE]] -ゲームの紹介: --[[正規表現を学ぶ狩りに出ようRegex Hunting>https://www.regex-hunting.com/]] -補足:Wordのワイルドカードと正規表現 --https://note.com/jinbunxshakai/n/n8070db080041 *2024/05/20 [#t32b08bc] **日本語電子化資料の歴史 [#h7f8c43e] ***紙の資料からコーパスまで ~テキストの電子化とアノテーションの高度化 [#s7dfd61c] +(紙の)本文 +(紙の)総索引(コンコーダンス) +電子テキスト:テキスト (199x年代~) --[[授業資料/テキストデータ紹介]] +構造化テキスト:テキスト+XMLによる構造化タグ (200x年代~) --[[太陽コーパス>https://ccd.ninjal.ac.jp/cmj/taiyou/]]など +単語情報付きのコーパス:テキスト+XMLによる構造化タグ+形態論情報 (201x年代~) --[[現代日本語書き言葉均衡コーパス(BCCWJ)>https://ccd.ninjal.ac.jp/bccwj/]]など --[[日本語歴史コーパス(CHJ)>https://ccd.ninjal.ac.jp/chj/]]など ***コーパスのファイル形式とアプリケーション [#v16f2d86] -ファイル形式と実例 ++電子テキスト:プレーンテキスト ++構造化テキスト:XMLファイル ++単語情報付きデータ:単語情報を埋め込んだXML /XMLファイル+CSVファイル --(発展)XMLの限界とスタンドオフアノテーション -それぞれの利用アプリケーション ++電子テキスト:テキストエディタ+grepなど ++構造化テキスト:全文検索システム[[「ひまわり」>https://www2.ninjal.ac.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]]、XMLエディタ(Oxygen, VSCode)、XPath・XSLT ++単語情報付きデータ:中納言(オンライン)/[[Chaki.Net>https://ja.osdn.net/projects/chaki/]](ローカル) **テキストエディタ [#w98ab816] -[[授業資料/テキストエディタ]] -VisualStudio Codeのインストールと設定 --拡張機能 Japanese Language Packの追加 ---参考:https://web.yokkaichi-u.ac.jp/yucc/archives/1542 --ファイルオープン時にエンコーディングを自動判別するよう設定 ---https://www.javadrive.jp/vscode/setting/index3.html --拡張機能 XML Language Support by Red Hatの追加 ***テキストデータと文字コード [#n2e44ea1] -[[授業資料/テキストデータとは]] -練習用サンプルデータ[[kokoto.txt>https://www.dropbox.com/s/r89ahi6goxy5a2c/kokoro.txt?dl=1]] -【課題】サンプルテキスト(青空文庫の夏目漱石「こころ」)をダウンロードしてVS codeで開き、UTF-8で保存しなおす ***正規表現について [#bd19b83c] -[[授業資料/正規表現]] --文字クラス [ ] --文字クラスの否定(補集合)[^ ]