日本語テキストにおける用例を表示する

 言語研究においては、単語の頻度を数えるだけでなく、それらの単語がどのような文脈で用いられているかを精査することが重要です。そのような場合、コーパス言語学では、KWIC (KeyWord In Context) という形式で用例の一覧を表示することがあります。以前、KWIC形式で用例を表示するという記事で、英語テキストにおける用例の抽出をしました。今回は、日本語テキストにおける用例の抽出をします。
 今回の分析データは、『機動戦士ガンダム 逆襲のシャア』の台本 (Char.txt) です。*1 まずは、RMeCabパッケージでテキストを形態素解析し、単語ベクトルを作成します。

# パッケージの読み込み
library(RMeCab)
# 単語ベクトルの作成
corpus.jp <- RMeCabText("Char.txt")
word.vector.jp <- unlist(sapply(corpus.jp, "[[", 1))

 単語ベクトルができれば、あとは、英語のテキストを処理する場合と同じ手順で用例抽出ができます。以下の例では、「ニュータイプ」という単語を検索対象とし、その前後5語までを表示することとします。

# 検索語の生起位置を取得
word.positions <- which(word.vector.jp == "ニュータイプ")
# 検索語の前後何語まで表示するかを指定
context <- 5
# KWICコンコーダンスの作成
for(i in 1:length(word.positions)){
   start <- word.positions[i] - context
   end <- word.positions[i] + context
   before <- word.vector.jp[start : (start + context - 1)]
   after <- word.vector.jp[(start + context + 1) : end]
   keyword <- word.vector.jp[start + context]
   cat("--------------------", i, "--------------------", "\n")
   cat(before, "[", keyword, "]", after, "\n")
}

 上記のスクリプトを実行すると、以下のような結果が表示されます。「ファンネル」が「ファン」と「ネル」の2語に分割されていたり、形態素解析誤りが若干ありますが、検索語がどのような文脈で用いられているかを確認するという目的は十分に果たせるでしょう。

-------------------- 1 -------------------- 
ん でし た お前 は [ ニュータイプ ] 研究所 で 強化 し て 
-------------------- 2 -------------------- 
支度 を 急げ はい 、 [ ニュータイプ ] 研究所 所長 、 いえ 、 
-------------------- 3 -------------------- 
? ううん 。 それ を [ ニュータイプ ] っていう ん だ ? そう 
-------------------- 4 -------------------- 
の と 違う な 。 [ ニュータイプ ] は 、 物 とか 人 
-------------------- 5 -------------------- 
が みんな 共感 し あえる [ ニュータイプ ] に なれる よう に って 
-------------------- 6 -------------------- 
。 だから あたし は 、 [ ニュータイプ ] だって 言わ れ て いる 
-------------------- 7 -------------------- 
て も 俺 は 、 [ ニュータイプ ] 研究所 出身 だって やっかま れ 
-------------------- 8 -------------------- 
しかし 、 人類 全体 を [ ニュータイプ ] に する 為 に は 
-------------------- 9 -------------------- 
は 、 やさし さ が [ ニュータイプ ] の 武器 だ と 勘違い 
-------------------- 10 -------------------- 
見つけ た 。 あれ が [ ニュータイプ ] 同士 の 共感 だろ う 
-------------------- 11 -------------------- 
ファン ネル を コントロール できる [ ニュータイプ ] です そう だろ う な 
-------------------- 12 -------------------- 
だろ ? だから 俺 は [ ニュータイプ ] に 強化 し て もらっ 
-------------------- 13 -------------------- 
だ ああ 。 だけど 、 [ ニュータイプ ] 研究所 の 強化 じゃ クェス 
-------------------- 14 -------------------- 
何 言う の 俺 は [ ニュータイプ ] だ は は は は 
-------------------- 15 -------------------- 
だ 大佐 に 取り入っ て [ ニュータイプ ] 研 の 所長 と 、 
-------------------- 16 -------------------- 
感じ 方 、 本物 の [ ニュータイプ ] かも しれ ん 。 いい 
-------------------- 17 -------------------- 
ん の です 来 た [ ニュータイプ ] だ 強化 人間 だって 、 
-------------------- 18 -------------------- 
じゃ ない か って 、 [ ニュータイプ ] 研究所 の 連中

*1:非公式なデータなので、書き起こしの正確性は保証できません。あくまで、テキスト処理の例としてお読みください。