# Blockly を利用したタグ付きコーパス検索パタン構築ツール

岡田魁人
岡山大学大学院自然科学研究科
pdrj11bt@s.okayama-u.ac.jp

## 1 はじめに

本研究はブラウザ上でプログラムを組み立てる ことができる Blocklyを利用してタグ付きコーパス から目的とする表現を取り出すための言語パタン の構築を補助するツールについて記述する. 基本的 な言語パタン抽出の応用としてコンコーダンサや 質問応答などでの内部処理が挙げられる。まず，コ ンコーダンサについて説明する。 コンコーダンサと は，コーパスを分析するソフトのことである．自然言語処理の分野において，語の特徴や傾向性を明ら かにするためにコーパスが利用される.コーパスを 利用するには，大量の電子資料や専用マニュアルを 読む必要があり，直接読むことは学習コストが高く なるなどの問題がある。 そこで，語の出現状況をわ かりやすく示すコンコーダンサを使うことが一般的である. テキストコーパス内の文字列や単語を検索し, 検索単語を中心として, 前後の文脈とともに 示される KWIC 形式のように表示するコンコーダ ンサは既に数多く存在する [1][2]. しかし既存のコ ンコーダンサでは，表層上の文字列や単語検索以外 に, 例えば同義語や類義語, 同じ意味を示す文など の柔軟な検索に対応していない. コンコーダンサ以外に，日本語のタグ付きコーパスを柔軟に検索でき るツールはほとんど存在しない [3][4]. 図 1 に「走 る」を検索した場合の KWIC の例を示す。

図1「走る」を検索した場合の KWIC の例

一方，テキストに対して，意味役割付与システム から得られる解析結果を用いれば，述語の概念など

\author{
竹内孔一 \\ 岡山大学大学院自然科学研究科 \\ takeuc-k@okayama-u.ac.jp
}

意味タグをもとにした検索が実現できる. 例えば，竹内研では意味役割付与解析システム $\left(\mathrm{ASA}^{1)}\right)$ が構築されている. ASA の結果を用いて，「表情の出現」 という概念を持った動詞を検索をすると，図 2 のよ うに述語の概念分類に沿った例文を取り出すことが 可能である.

図 2 「表情の出現」という概念を検索した場合の提案シ ステムの表示例

次に，質問応答システムにおいて言語パタンを利用する研究事例が挙げられる. IBM が開発した質問応答システム Watson では，あらかじめ質問に対す る答えを構文のパタンとして構築している [5]. 意味役割が付与されたコーパスに対し，KWIC のみで はなく，柔軟に検索できるツールがあれば，パタン 構築を素早く仕上げることができる。

よって本研究では前節の背景を踏まえて，意味役割付与されたタグ付きコーパスに対し，柔軟な検索 に対応し，コンコーダンサの機能を持ち，さらに質問応答システムに見られる前処理をも行えるよう な多機能ツールを構築する。本システムは 2 つモ ジュールから構成されており，1つがユーザインタ フェースの部分，もう1つはパタンマッチの部分で ある。本論文では，前者のユーザインタフェースの 構築について記述する。

## 2 関連研究

関連研究として,「茶器」[3] がある。「茶器」は,品詞，文節，係り受けといった統語情報などタグ付 けされたコーパスを柔軟に検索することができ，関

1) http://www.cl.cs.okayama-u.ac.jp/study/project/asa/asa-scala/
係データベースを用いて検索システムとして実装し たものがあり [6]，ドイツ語の Treebank を対象にし た同様のものがある [7]. また，木構造のタグ付与 データに対して検索するツールが提案されている [8]. 最終的には品詞，文節等のチャンク，係り受け 等の統語情報を含むタグ付けコーパスに対して，柔軟な検索機能を備えるだけでなく, 各種統計解析機能や辞書とコーパスの連携，タグ付けエラーの修正 などの機能を持ったタグ付きコーパスの検索/管理 システムを目指しているものである [9].

## 3 言語パタンマッチシステム

本提案システムは，ユーザインタフェース部分に Blockly2)を採用して，言語パタン構築モジュールを 実装する. Blocklyを採用することで，言語パタン をより直感的に組むことができる.

## 3.1 項構造ベースの言語パタンマッチ

$
\begin{aligned}
& \text { ・X は Y の「著者」だ } \\
& \text { =>X は Y を「書いた」 } \\
& \text { ・Xの「親」は Y } \\
& \text { =>X は Y の「子供」だ } \\
& \text { ・Y はXの「店員」だ } \\
& \text { =>Y はXで「働いて」いる }
\end{aligned}
$

図 3 項構造と動詞への言い換え例

本提案システムにおける言語パタンマッチについ て説明する. 前提として, ASAにより意味役割付与 されたコーパスを検索の対象とする．語には，語そ のものに関係性を表すようなものがある [10]. 例え ば図 3 のような構文パタンがある.

この例からわかるように，ある一文から作者と作品名を抜き出すことや，係り受けの関連を取り出す こと，また，単純に文字列や単語そのものも含めて ユーザが構築した言語パタンをもとに対応したパタ ンマッチ処理を実行することを本論文では言語パタ ンマッチと定義する.

## 3.2 言語パタンマッチシステムの機能

本提案システムには様々な機能が必要となる.様々な視点からコーパスの検索が可能であること，


および検索結果の表示や再加工を行えるよう適切な データやプログラムに変換する処理を行う必要が生 じる．検索要求は，単語の経りそのもの，単語の一部，単語の原形，品詞などの文法情報，意味タグが 付与された構文構造 (prolog の木に分解) [11], 係り 受けの関係，およびそれらを組み合わせたものであ り，以下言語パタンと述べる際にはこれらを含めた ものとする。下記に，システムに求める機能につい て記述して整理する。

## 検索

ユーザが構築した言語パタンに応じた適切な検索が行える。

## 言語パタンの構築

視覚的に言語パタンを組むことができる。ユー ザが必要とする言語パタンを組み合わせて実現 できるような多種の検索要素を提供でき，単語 や品詞だけでなく，ASAにより付与される概念 フレームなど意味的なタグについても検索でき る検索要素も提供できることが好ましい.

## 言語パタンの保存

上記の機能で構築した言語パタンを保存でき る. 保存した言語パタンは txt ファイルとして ダウンロードができるため，ユーザ間で共有す ることができる.

## 言語パタンの読み込み

ユーザが組み立てた言語パタンを読み込む。こ れにより他の人が作成した言語パタンも利用で きる.

## 検索結果の出力

検索結果を表示するだけでなく，検索結果を例 えば二次加工がしやすい json 形式や csv 形式の ファイルに書き込み，ダウンロードができる。

## 3.3 言語パタンマッチの全体像

提案システムの実装には，npm (Node Package Manager）を用いる3)．ここで，システムの処理の流 れを視覚化するためフローチャートを図 4 に示す.以下ではフロントエンドとバックエンドの各処理に ついて説明する。

## 3.3.1 フロントエンド: ユーザによる操作の処理

ユーザの操作項目についての説明をする．最初 に解析対象とするテキストデータを読み込ませる。

3) https://www.npmjs.com/

図 4 提案システムのフローチャート

解析対象は複数のファイルを登録することができ， チェックボックスで切り替えることができる. 次 に，クエリ作成を行う．クエリとは，検索要求を組 み合わせて構築する言語パタンのことである. クエ リはデータ読み込みから作成することもできる．実行ボタンを押すことで言語パタンマッチから表示に 必要なデータ加工までの処理が実行される.

## 3.3.2 バックエンド: タグ付与と検索処理

本論文ではテキストを解析するシステムとして意味役割付与システム ASAを利用する。ユーザがま ず最初に検索したいテキストをシステムに入力した 場合，ASAによる解析を行った後，係り受け，形態素，述語の概念フレーム，意味役割をすべて Prolog 形式の探索木に変更する [11]. 次にフロントエンド 側で言語パタンが構築され, 検索要求がだされたと きに，検索言語を受け取り prolog の機能を利用し て，マッチしたテキスト部分をフロント側に送る.検索の際，文，係り受けのチャンク，形態素の単位 で探索木を構成しているが，今のところ，検索結果 の単位は文の集合を返している。

## 3.4 言語パタンマッチシステムの拡張性

今回実装するシステムの言語パタン構築部分は, バックエンドで処理する言語処理ツール用にカスタ マイズしている.よって，他の言語処理ツールを適用する場合にはそれに合わせたタグ体系に合わせる ことで，複雑な解析も Blocly を利用することで手軽 に行えるようになる。

## 4 動作確認実験

本提案システムについて，以下で示すデータセッ 卜を用いて動作実験を行う. 動作実験の目標とし て, 図 3 の例として述べた著者と作品の組み合わせ を抜き出すこととする。

## 4.1 検索対象例文

検索対象例分として図 5 に示すように，著者と作品名を文で表した例文を 10 文用意した。例にもあ るように「図書館戦争を書いた有川浩」など連体修飾の例も入れている。また，パタンにマッチしない 文も入れている.

泥棒に財布を盗まれる。有川浩が図書館戦争を書いた。昨日、友達と喧嘩した。今日、新しいコンピュータを買うつもりだ。羅生門は芥川龍之介の小説だ。親に好きな靴を捨てられた。明日、学校で誕生日パーティーが開かれる。大学の隣に、新しいスーパーが建つ。初めて先生に褒められた。図書館戦争を書いた有川浩

図 5 検索対象例文

## 4.2 言語パタン

Blocklyを用いて実現した Prolog で構築した言語パタンを図 6 に示す. author ブロックとして author(_author,_work) という述語を宣言し，緑の ブロックで囲われているエリアに述語の定義を記述する。_author と_work は項であり，検索結果が入 る. author ブロック内では author を取り出す具体的な構造が各ブロックで記述されている。例えば 「type (X0, verb)」は品詞のタイプとして verb のもの を探索木から取り出し，その要素を変数 X0 にセッ トする。また， semantic は概念フレーム， main は主辞，role は意味役割を表す.ここで定義した author ブロックを利用して，さらに他の言語パターンを取 り出す際に利用することができる.

図 6 著者作品を抽出するための Prolog 言語パタン

## 4.3 動作結果

上記のデータセットに対してパタンマッチした結果の例を図 6 に示す. 図 6 では，検索にマッチした 文を表示していて「書く」や「〜の小説だ」といっ たパタンにマッチした文が取り出されている。単に 文が取り出されているわけでなく内部が項構造とし て構築されているため，変数である_author には「有川浩」「芥川龍之介」，_work には「図書館戦争」「羅生門」が取り出されており，必要であれば，その部分だけをとりだすこともできる.

く/>結果
有川浩が図書館戦争を書いた。
羅生門は芥川龍之介の小説だ。
図書館戦争を書いた有川浩

図 7 動作実験のスナップショット

## 5 おわりに

本論文では意味役割や概念フレームなどがテキス 卜に探索木として付与されている場合にユーザが構築した言語パタンをブロックベースのプログラムと して組むことが出来るシステムについて記述した。実装として Blockly のライブラリを用いてブラウザ ベースの Web アプリケーションとしてシステムを 構成した. 実装に際して，言語処理の分野でよく利用される次の 2 つの機能の実現を目標とした. 1 つ
はコンコーダンサの機能，そしてもう 1 つは質問応答システムに見られるような構文パタンを検索，処理を行うツールとしての機能である。実際に活用さ れるツールにするために，上記機能を満たすだけで なく，アプリケーションとして改善していく必要が あるだろう．今後は，機能追加に加え，既存機能の 改良，英語版対応および UI/UX の最適化を検討して いる。

## 謝辞

本研究の遂行にあたって JSPS 科研費 19K00552 の 支援を受けた。

## 参考文献

[1] 小木曽智信, 中村壮範. 通時コーパス用『中納言』:Webベースの古典語コンコーダンサー.

[2] 中條清美, 西垣知佳子アントニ・ローレンス. フ リーウェア WebParaNews オンライン・コンコーダ ンサーの英語授業における活用. 日本大学生産工学部研究報告 B (文系), Vol. 47, pp. 49-63, 2014.

[3] 松本裕治, 高岡一馬, 浅原正幸, 乾健太郎, 橋本喜代太, 投野由紀夫, 大谷朗, 森田敏生ほか. タグ付きコー パスの格納/検索ツール「茶器」. 言語処理学会第 10 回年次大会発表論文集, pp. 405-408, 2004.

[4] 田中良. 多言語対応コンコーダンサー『HASHI』:日本語と日本語教育と社会言語学の研究を中心に. 2015.

[5] Adam Lally, John M Prager, Michael C McCord, Branimir K Boguraev, Siddharth Patwardhan, James Fan, Paul Fodor, and Jennifer Chu-Carroll. Question analysis: How Watson reads a clue. IBM Journal of Research and Development, Vol. 56, No. 3.4, pp. 2-1, 2012.

[6] 工藤拓, 松本裕治. Rdb を利用したタグ付きコーパス 検索支援環境の構築. 情報処理学会自然言語処理研究会 2001-NL-144, pp. 135-142, 2001.

[7] Laura Kallmeyer. A query tool for syntactically annotated corpora. In Proceedings of the 2000 Joint SIGDAT conference on Empirical methods in natural language processing and very large corpora: held in conjunction with the 38th Annual Meeting of the Association for Coтputational Linguistics-Volume 13, pp. 190-198. Association for Computational Linguistics, 2000.

[8] Kohsuke Yanai, Misa Sato, Toshihiko Yanase, Kenzo Kurotsuchi, Yuta Koreeda, and Yoshiki Niwa. Struap: A tool for bundling linguistic trees through structure-based abstract pattern. In Proceedings of the 2017 EMNLP System Demonstrations, pp. 31-36, 2017.

[9] 浅原正幸, 米田隆一, 山下亜希子, 伝康晴, 松本裕治.語長変換を考慮したコーパス管理システム. 情報処理学会論文誌 Vol.43,No.7, pp. 2091-2097, 2002.

[10] 西山佑司. ひつじ書房, 2003.

[11] 小笠原崇, 竹内孔一. 意味役割付与テキストに対する prolog ベースの探索木による言語パタンマッチシス テム構築. 言語処理学会第 27 回年次大会, 2021.
 岡田魁人 岡山大学大学院自然科学研究科 pdrj11bt@s.okayama-u.ac.jp  