#author("2025-06-16T16:11:49+09:00","default:ogiwiki","ogiwiki") #author("2025-06-16T17:00:01+09:00","default:ogiwiki","ogiwiki") [[総研大2025]] -月曜4限 -[[シラバス>https://cplan-web.soken.ac.jp/Kyoin/web/Syllabus/WebSyllabusSansho/UI/WSL_SyllabusKakunin.aspx?P1=40JLS00301&P2=2025&P3=20250401]] *2025/06/16 (小木曽担当最終回)[#me2cea85] ***ひまわり用データの作成(続) [#b8c79696] -例:メール文データ --https://www.dropbox.com/scl/fi/1ptosdhcttid3k5txmgxw/_-_.xml?rlkey=t6guj0ez3beuvdvp3g9i4wp0x&dl=1 ***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 ***XPathを使った検索 [#c3a0208a] -VSCodeのコマンドパレットから検索できる(XML拡張) -[[Wikipedia XPath>https://ja.wikipedia.org/wiki/XML_Path_Language]] -参考:https://www.techscore.com/tech/XML/XPath/XPath1/xpath01 -参考:[[XPath>https://atmarkit.itmedia.co.jp/aig/01xml/xpath.html]]とは --https://developer.mozilla.org/ja/docs/Web/XPath -XPathの構文 /軸::ノードテスト[述語]/~ --例1:/A/child::B/child::*/child::C[position()=1] --例2:/雑誌/child::記事[@著者名="上田万年"]/descendant-or-self::node()/child:注[@種類='誤字'] -省略構文 ファイルのPathに似た書き方になる。普通は省略構文で書く --例1:/A/B/*/C[1] --例2:/雑誌/記事[@著者名="上田万年"]//注[@種類='誤字'] -軸 axis --基準点(コンテクストノード)からみた方向・親子関係を指定する(child, descendant, parent, descendant-or-self, preceding-sibling...) -ノードテスト node test --名前またはノードの種類を指定する(要素名, *, text(), node()) -述語 predicate --[]の中に条件を記述して対象を絞り込む。条件式や簡単な関数(([[XPath2.0>http://xmlconsortium.org/wg/tech/WD-xpath20-20020816-Japan-without-Appendix.htm]]でいろんな関数や正規表現が使えるようになった))が使える *2025/06/09 [#j4df8762] **小テスト返却 [#we91b634] **XMLで言語資源を作る(続) [#fad826ab] ***ひまわり用データの作成 [#ud4df72b] -本文:corpus.xml (UTF-16LE BOMつき, LF改行)((VS CodeでLF改行・UTF-16LEで保存すればOK)) -設定ファイル:config_tebukuro.xml #ref(config_tebukuro.xml) -本文HTML表示用スタイルシート:xslt -参考:[[全文検索システム『ひまわり』/簡単な検索用データの作成方法>https://csd.ninjal.ac.jp/lrc/?%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/%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]] ***文書型定義(DTD)と検証(validation) [#x9f6bd86] -DTD (Document Type Definition)とは --https://e-words.jp/w/DTD.html --参考:https://www.javadrive.jp/xml/dtd/ -XML Schema (XSD) --https://e-words.jp/w/XML_Schema.html ***tebukuro.xmlのDTDを作ってみる [#bc617b6b] <!ELEMENT doc (title, author, body)> <!ATTLIST doc title CDATA #REQUIRED> <!ATTLIST doc author CDATA #REQUIRED> <!ELEMENT title (#PCDATA)> <!ELEMENT author (#PCDATA)> <!ELEMENT body (#PCDATA|speech|r|br)*> <!ELEMENT speech (#PCDATA|r|br)*> <!ATTLIST speech speaker CDATA #IMPLIED> <!ELEMENT r (#PCDATA)*> <!ATTLIST r rt CDATA #REQUIRED> <!ELEMENT br EMPTY> --tebukuro.dtd #ref(tebukuro.dtd) --tebukuro.xsd #ref(tebukuro.xsd) --Oxygen(https://www.oxygenxml.com/)で可視化したスキーマ #ref(tebukuro_schema.png) ***自分の研究用データのXML文書化 [#ea9798d7] -例:メール文データ *2025/06/02 [#ze01d462] **&color(red){正規表現小テスト}; [#a38015c5] **全文検索システム「ひまわり」とXML [#a2814a7f] -[[全文検索システム「ひまわり」>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]] --ただのテキストファイル(プレーンテキスト)ではなく、XML形式にして、インデックスを付けた専用のデータを利用 --自分で専用のデータを作ることもできるが、できあがって公開されているパッケージを利用するのが普通 ***「ひまわり」のインストール [#o7207f74] +[[ひまわり のダウンロードページ>https://csd.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/%A5%C0%A5%A6%A5%F3%A5%ED%A1%BC%A5%C9/%A1%D8%A4%D2%A4%DE%A4%EF%A4%EA%A1%D9ver.1.7]]からプログラム本体(zipファイル)をダウンロード +zipファイルを右クリックしてプロパティを見る→「セキュリティ」の右の「許可する」をチェックして「OK」 +ダブルクリックして開き、中のフォルダをまるごとインストール先にコピー +フォルダ内のhimawari.exeをダブルクリックで起動(MacはHimawari.jar、または最初からMac版をインストール) ***「青空文庫パッケージ」のインストール [#q65dfc0e] +青空文庫パッケージのダウンロード ++[[ひまわり用「青空文庫」パッケージのダウンロードページ>https://csd.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/%A5%C0%A5%A6%A5%F3%A5%ED%A1%BC%A5%C9/%A1%D8%C0%C4%B6%F5%CA%B8%B8%CB%A1%D9%A5%D1%A5%C3%A5%B1%A1%BC%A5%B8#g26eb865]]から「日本文学/小説(ndc913) 」をダウンロードして保存 +himawari.exeを起動 ++Himawari画面のファイル→インストールをえらび、青空文庫パッケージのzipファイルを指定 ++しばらく待つと完了(場合によっては数分から10分程度はかかる) +要らなくなったUSBメモリ上の青空文庫パッケージzipファイルは不要なので削除する ***HimawariとXMLを使ったコーパス [#d295bd54] -例:[[明六雑誌コーパス>https://clrd.ninjal.ac.jp/cmj/meiroku/index.html]] --https://doi.org/10.15084/00003337 **XMLで言語資源を作る [#f5fa011d] ***XMLアノテーションの実際 [#kca1a500] --VSCodeの拡張機能 XML Language Support by Red Hatを入れておくこと ---https://marketplace.visualstudio.com/items?itemName=redhat.vscode-xml -例として([[青空文庫の新美南吉「手袋を買いに」>https://www.aozora.gr.jp/cards/000121/card637.html]])をXMLに -タグ付き正規表現を使った置換の応用 --ただし、通常の正規表現には、XMLのような入れ子のタグを完全にマッチさせる表現力はない *2025/05/26 [#w4fed924] **タグ付き正規表現 [#z9ef50e5] -走[らりるれろ] でgrepした結果を置換するにはどうしたらいいか --次のように置換するととんでもないことに… ---検索文字列:走[らりるれろっ] ---置換文字列:★走[らりるれろっ] -タグ付き正規表現:カッコ(半角丸カッコ)と$1($2,$3…)を使う -[[授業資料/タグつき正規表現]] ***正規表現の利用例:中納言の検索結果を整える [#mc00a8d6] エディタに検索結果の列を貼り付けて置換で整形 -前後文脈をキーを含む文だけにする .+# → #.+ → -品詞大分類だけを利用する -.+ → -BCCWJのジャンルを整える --(新) 1 哲学/198.37|(旧) 1 哲学/198 -前後文脈でマッチした語を抜き出す --(広く)|,深く,|かつ|システマティック|に ***正規表現に関する参考資料 [#w86de08b] -VS Codeの正規表現:https://learn.microsoft.com/ja-jp/dotnet/standard/base-types/regular-expression-language-quick-reference -正規表現に関する本 [[amazonで検索>https://www.amazon.co.jp/s?k=%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE]] -補足 --Wordのワイルドカードと正規表現 https://note.com/jinbunxshakai/n/n8070db080041 --[[「Excel」に正規表現の新関数が3つ導入へ ~「XLOOKUP」「XMATCH」にも対応予定>https://forest.watch.impress.co.jp/docs/news/1593174.html]] 2024年5月21日 **マークアップ言語とXML [#m0258747] -(参考) XML入門 https://www.javadrive.jp/xml/ -[[XMLの基礎>https://www.ogiso.net/wiki/index.php?%E6%97%A5%E6%9C%AC%E8%AA%9E%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E5%87%A6%E7%90%86%E5%9F%BA%E7%A4%8E%E8%AC%9B%E5%BA%A72023/%E2%91%A2XML%E3%81%AE%E5%9F%BA%E7%A4%8E]] ***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]] *2025/05/19 [#j06ce971] -練習用サンプルデータ[[kokoto.txt>https://www.dropbox.com/s/r89ahi6goxy5a2c/kokoro.txt?dl=1]] ***VSCodeのGrep検索 [#eec39aca] +フォルダを開く +検索 +"エディターで開く" **正規表現 [#ef04311f] ***正規表現とは [#d216d4e0] -''正規表現'' --文字を表すための特殊な文字(メタ文字)を使って文字列のパターンを表現する --テキストエディタでは置換・検索・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]] ***検索文字列の中での後方参照 (タグ付き正規表現)[#ra28185d] -検索語の中でマッチした部分を()でキャプチャし、\1として使う --(..)\1 「ころころ」「毎日毎日」など二文字の繰り返しにマッチ --(.ろ)\1 「ころころ」「どろどろ」「へろへろ」などにマッチ --(..)\1\1 --(...)\1 *2025/05/12 [#wd4d9036] **日本語電子化資料の歴史 [#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://github.com/chakidev]]・temari(ローカル) **テキストエディタ [#w98ab816] -[[授業資料/テキストエディタ]] -フリーソフトウェア(無償)のMicrosoft [[Visual Studio Code>https://code.visualstudio.com/]](VSCode)を使います。 ***インストールと最初の設定 [#jf88f4f2] -VS Codeのインストール ++WindowsのスタートメニューからMicrosoft Storeを起動 ++VSCodeを検索 ++インストール をクリック -または ++ブラウザでhttps://code.visualstudio.com/ へ ++Download for Windowsをクリック ++~.exeをダブルクリックして指示に従う -VisualStudio Codeのインストールと設定 --拡張機能 Japanese Language Packの追加 ---https://marketplace.visualstudio.com/items?itemName=MS-CEINTL.vscode-language-pack-ja --ファイルオープン時にエンコーディングを自動判別するよう設定 ---https://www.javadrive.jp/vscode/setting/index3.html --拡張機能 XML Language Support by Red Hatの追加 ---https://marketplace.visualstudio.com/items?itemName=redhat.vscode-xml ***テキストデータと文字コード [#n2e44ea1] -[[授業資料/テキストデータとは]] -練習用サンプルデータ[[kokoto.txt>https://www.dropbox.com/s/r89ahi6goxy5a2c/kokoro.txt?dl=1]] -【課題】サンプルテキスト(青空文庫の夏目漱石「こころ」)をダウンロードしてVS codeで開き、UTF-8で保存しなおす ***正規表現について [#bd19b83c] -[[授業資料/正規表現]] --文字クラス [ ] --文字クラスの否定(補集合)[^ ]