#author("2024-06-17T16:38:59+09:00","default:ogiwiki","ogiwiki") [[総研大2024]] -月曜4限 *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/ -解析用スクリプト --[[kokoro.xmlの短単位解析結果>https://www.dropbox.com/sh/rg4dy47nkgbkk4v/AAA2DQXOAGbxNdwg7edD1BqNa?dl=1]] ***書き言葉コーパスの例(テキスト化+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] -[[授業資料/正規表現]] --文字クラス [ ] --文字クラスの否定(補集合)[^ ]