第55回 プログラミング・シンポジウム 2014.1

物語の内容想起支援インタフェースの開発
田中 翔太郎†1,a)

岡部 誠†1,†2,b)

尾内 理紀夫†1,c)

概要：本稿では，物語の内容を効率良く想起するインタフェースの開発について報告する．単語の出現頻度や単語間の関係を視覚化することで内容理解を支援するシステムは多数存在するが，新しい人物が現れたり，人物関係が変化したりするといった物語の特徴を考慮したシステムは存在しない．ユーザは，テキストデータを入力し，自動で抽出された人物情報をマウスで編集することで，登場人物の関係図や人物の入った文を閲覧できる．本インタフェースを使用することで，過去に読んだ本を最初から読み返すことな
く内容を想起できる．
キーワード：物語，関係図，ユーザインタフェース，人物抽出

An Interface for Reminding of the Content of the Story
Tanaka Shotaro†1,a)Okabe Makoto†1,†2,b)Onai Rikio†1,c)

Abstract: In this paper, we developed an interface to support reminding of the content of the story eﬃciently. There are many systems that can help us understand the content by visualizing the word relations
and word appearance frequency. However, there is no such system that focused on the characteristics of thestory, e.g. new character appearance, changes on relationships. First, the user inputs text data, then edits
characters’ names which are extracted automatically by the system. As a result, the user can browse therelationship diagram or sentences including the character’s name. By using our developed user interface, we
can remind of the content of the story easily than just simply reading them again.
Keywords: Story, Relationship Diagram, User Interface, Person Name Extraction

そこで我々は，物語の内容を効率良く想起するためのイ

1. はじめにンタフェースを開発した．ユーザは，自動で抽出された人

過去に読んだ物語の内容を想起したいとき，最初から読物情報をマウス操作で編集することで，登場人物の関係図

み返すのは時間がかかる．実際，物語は短編でも 3 万字程を閲覧できる．登場人物の関係図は，ユーザが指定した区

度あり，長編では 35 万字にもなる．読了時間の目安として間ごとに閲覧できるため，新しい人物が現れたり，人物関は，小説投稿サイト*1

が毎分 500 字読めると想定して計算係が変化したりすることも確認できる．加えて，表示するしている．また，読了時間推定システムの研究 [5] は，1 万ノードを選択したり，指定した人物が登場する本文に素早字に対する読了時間がユーザや読む作品ごとに異なるもの

くアクセスしたりすることも可能である．我々のインタの概ね 10 分から 20 分であると示した．これは，毎分 500

フェースを活用して，登場人物の関係を視覚的に確認する

字から 1000 字に相当する．つまり，35 万字の長編を読む

ことで，続編を読むために最初から読み直したり，確認のためには一般に 5 時間 50 分から 11 時間 40 分を要する．

ために 1 ページごとに探索したりすることなく，内容を効†1

率良く想起できる．

†2
a)
b)
c)
*1

現在，電気通信大学
Presently with The University of Electro-Communications
現在，JST CREST
tanaka@onailab.com
m.o@acm.org
rikioonai@gmail.com
http://syosetu.com/

本稿では，第 2 章で本インタフェースを使用する想定場面を述べ，物語の内容想起支援に必要な情報を整理す
る．第 3 章で関連研究を挙げ，既存研究との比較を行う．
第 4 章にインタフェースの概要を例とともに順を追って示

7

第55回 プログラミング・シンポジウム 2014.1

し，第 5 章でインタフェースの詳細を述べる．第 6 章でモ

2 つ目は，登場人物の関係の変化が物語の筋書きに密接にジュールの概要について述べ，第 7 章でモジュールの詳細

関係しているためである．日本のおとぎ話のひとつであるを述べる．第 8 章でインタフェースの出力例を示し，第 9「桃太郎」を例にすると，桃太郎とサルは最初から仲間で章でまとめる．

はないし，桃太郎は生まれたときから鬼と戦っていたわけでもない．桃太郎が成長し，道中でイヌ，サル，キジを仲2. 物語の内容想起支援

間にし，最後に鬼と戦うことになる．このことからも，物ユーザが本インタフェースを利用する場面のひとつとし語が進行していくと共に，登場人物の関係も変化しているて，以下のような場面を想定している．

ことが分かる．3 つ目は，登場人物は物語のジャンルによ

ユーザは村上春樹の 1Q84 シリーズの 1 巻 *2 を過去に読らず重要な情報となるためである．物語のジャンルとしてんだことがあるが，その内容を忘れてしまった．今回 1Q84

は，恋愛，ミステリー，SF などが考えられる．恋愛においシリーズの 2 巻を読むにあたり，1 巻の内容を想起したいては登場人物の恋愛関係，ミステリーにおいては伏線，SFが，最初から読み返すのは面倒である．インターネットでにおいては舞台背景など，物語のジャンルごとに重要な情検索して調べるにしても，出版社のホームページ *3 には結報は異なる．しかし，特定のジャンルに限った情報に注目

末まで書かれておらず，Wikipedia*4 などではこれから読すると，インタフェースの利用範囲が限定的になるというむ 2 巻の内容まで知ってしまう恐れがある．そこでユーザ問題がある．そこで，ジャンルによらずに登場する「人物」

は本インタフェースを用いて，2 巻を読むにあたって必要に注目して人物関係を視覚化する．

な内容を効率良く想起する．

本インタフェースでは，「登場人物の関係」を視覚化する

内容想起支援に必要な情報は，物語の筋書き，登場人物

ことで，効率の良い内容想起支援を目指す．システムは，の設定，登場人物の関係，舞台背景，伏線，重要な台詞な物語のテキストから自動的に人物候補を抽出する．ユーザ

ど多数考えられる．ここで，物語の筋書きを確認するためは，抽出された人物候補をインタフェース上で確認し，マの関連技術として，文章の自動要約がある．Mihalcea らはウスによる簡単な操作で修正する．次に，システムが自動自動要約を今まで使われてきた要約技術を改良して物語に的に人物間の関連度の強さを計算し，インタフェース上に応用した [2]．しかし，作成される要約の文章量が大きく，登場人物の関係図を表示する．ユーザは，登場人物の関係

自動で得られた要約そのものを読むのに時間がかかるとい図を任意の区間ごとに見たり，人物を含む文章を見たりす

う問題がある．日本語の物語に適用した例としては，談話ることで，登場人物の関係を確認し，過去に読んだ物語を理解モデルに基づいた重要文抽出による自動要約 [7] があ想起する．

る．これは，対象を 30 文から 50 文程度の短い物語として本章では，想定場面のひとつとしてシリーズ物の続編をおり，1Q84 シリーズの 1 巻のような長編の物語には適用

読むときを取り上げたが，本インタフェースは読書を中断できない．別のアプローチとしては，単語に影響区間を付したときにも活用できる．通勤時間などを活用した読書，加することで物語の抽出を行う研究 [9] がある．これは，トイレ休憩や電話対応などで，読書を中断せざるを得なく物語から自動で抽出したキーワードとその影響区間を示し

なる場面は多い．読書を再開する際，入力として読んだとた表を提示することで，ユーザが過去に読んだ物語の一場ころまでのテキストデータを与えることで，内容を効率良面を想起できることを示した．しかし，実験では「はなさく確認できる．さらに，本インタフェースは登場人物の関

かじいさん」という短い物語を使用しており，長編の物語

係図を出力するため，物語を読んでいる途中で内容が分かではユーザが確認するキーワード数が膨大になるといったらなかったときにも利用できる．例えば，推理小説で「犯問題が生じる．

人は○○だった」という表現を読んだとき，「○○」がどこ本研究では，内容想起支援に特に重要な情報を「登場人で登場したどんな人物か分からないと物語を楽しめない．

物の関係」と考えた．ここで理由を 3 つ挙げる．1 つ目は，また，三国志のように，字面や発音が類似する登場人物が先に述べた 1Q84 の想定場面において，登場人物の情報が複数登場する場合，登場人物の情報の整理が面倒である．

必要となるためである．通常，1 巻の登場人物は 2 巻でも登場人物の関係図を閲覧することで，過去に読んだページ

引き続き登場し，「主人公の名前」，「主人公と友好関係にあをひとつずつ探索することなく，登場人物の情報の整理がる人物」，「主人公と敵対関係にある人物」などを把握する可能となる．

ことで，2 巻を円滑に読むことが可能となる．実際，市販

3. 関連研究されている物語の一部では，巻頭に登場人物の名前や年齢，
所属，他の人物との関係性などを整理して記載している．

単語の出現頻度や単語間の関係を視覚化することで，内容理解を支援するシステムは多数存在する．Viégas らは,

*2
*3
*4

村上春樹：1Q84 BOOK 1，新潮社 (2009)http://www.shinchosha.co.jp/book/353422/
http://ja.wikipedia.org/wiki/1Q84

単語の出現頻度で文字サイズに重み付けし, ランダムに配置することで視覚化した [4]．しかし, 単語間の関係が分か

8

第55回 プログラミング・シンポジウム 2014.1

らないという問題がある. Collins らは，単語の出現回数やIS-A 関係を放射状に表示することで視覚的な要約を提供した [1]．また，van Ham らは文章を高速に解析し，ユーザの指定した A of B や A and B といった関係を有向グラフ
で視覚化した [3]．これらの手法は単語間の関係を視覚化しているものの，前者は WordNet の IS-A 関係を利用しているため固有名詞が多く登場する物語に適用できない，後者は「X of Y」といった正規表現で抽出しているため, 日
本語の物語にそのまま適用できないという問題がある．
本インタフェースでは，「登場人物の関係」を視覚化するにあたり，物語のテキストから自動的に登場人物を抽出す
る．米田らは，頻度と述語情報を利用して未知の人物にも対応可能な抽出手法を提案した [11]．この手法は，短編小図 1

説 30 作品を対象にした実験において，適合率 60.3%，再現

入力画面

率 91.9%，F 値 71.5%という良い性能を得た．しかし，登場人物を抽出する対象から会話文を除外するため，会話文のみに登場するニックネームなどを抽出できない．また，この手法を利用する場合，学習データから自動で抽出した数百個の人物候補が人物かどうかをあらかじめ手動で判断しておく必要がある．そこで本研究では，日本語解析ツー
ル MeCab*5 と CaboCha*6 の固有表現解析の結果に，頻度情報を考慮した tf-idf を活用した登場人物の抽出結果を加えることで，登場人物の抽出を容易に実現した．人物以外が誤って抽出されても，ユーザが簡単なマウス操作で「関係図に表示しない人物」に指定することで，登場人物の関係図から人物以外の単語を除外できる．登場人物の関係を視覚化する研究としては，共起頻度に基いて関係図を描画する研究 [10] や登場人物の会話に着目して関係図を描画す
る研究 [6] が存在する. これらの手法は，人物関係を計算する際，「ふかえり」に対する「深田絵里子」といった同一人
物を表す別表現を考慮できない．そこで本研究では，同一人物を表す別表現を「言い換え表現」と定義し，この言い

図 2

換え表現をユーザのマウスによる簡単な操作のみで指定で人物情報の編集画面

きるようにした．これにより，人物関係の計算に言い換えタを入力として与える前に，章と章の境目にあらかじめ 2

表現を反映させた．また，本インタフェースでは入力した個以上の改行を挿入する．そして，インタフェースの入力

物語に対して関係図を 1 つ出力するのではなく，ユーザが画面 (図 1) から，物語のタイトルとテキストデータを入指定した区間の関係図を閲覧できる．これにより，新しい力する．テキストデータはテキストボックスに貼り付けて登場人物が現れたり, 人物関係が変化したりすることも確も，「ファイルを選択」でファイルを指定しても良い．必要

認可能となった．

な情報の入力を終えて「送信」を押すと，人物情報の編集
画面に遷移する (図 2)．ここでは，自動で抽出された人物

4. インタフェース概要

が，「関係図に表示する人物」，「言い換え表現」，「関係図ここでは，本インタフェースを使用する流れを 1Q84 シに表示しない人物」の 3 つに分類されて配置されている．

リーズの 1 巻を例に順を追って示す．まず，ユーザは過去

ユーザはこれらの情報を見て，分類を変更したい人物があに読んだ 1Q84 シリーズの 1 巻のテキストデータを用意す

ればマウスによる簡単な操作で適当な位置に再配置する．

る．通常，物語は複数の章に分けられており，1Q84 シリー

人物情報の編集を終えて画面下部にある「送信」を押す

ズの 1 巻は全部で 24 章からなる．ユーザはテキストデーと，想起支援画面に遷移する (図 3)．想起支援画面では，*5*6

ユーザが指定した区間の登場人物の関係図を閲覧するこ

http://mecab.sourceforge.net/
http://code.google.com/p/cabocha/とができる．また，登場人物の関係図のノードをダブルク

9第55回 プログラミング・シンポジウム 2014.1

図 3

想起支援画面リックすると，新しいウインドウが開き，ノードに書かれていた人物名の入った本文を章ごとに閲覧できる．ユーザ
はこれらの情報を閲覧することで，1Q84 シリーズの 1 巻の登場人物や人物関係の確認を行い，2 巻を読むにあたって必要な内容を得る．

5. インタフェース詳細
ここでは，前章に引き続き村上春樹の 1Q84 シリーズの

図 4

人物情報の編集画面 (編集中の様子)

1 巻を例として，人物情報の編集画面および想起支援画面
物の書かれた要素をダブルクリックすることでも可能であの詳細を述べる．

る．図 4 は，関係図に表示しない人物として分類されていた「深田絵里子」を「ふかえり」の言い換え表現に追加し5.1 人物情報の編集画面
人物情報の編集画面 (図 2) において，左から 2 列目がている様子である．この人物情報の編集を行うことで，文関係図に表示する人物，左から 3 列目が言い換え表現，左字列のマッチングでは抽出できない「ふかえり」に対するから 5 列目が関係図に表示しない人物である．ユーザは，「深田絵里子」といった言い換え表現の追加が可能となる．

表中の人物の書かれた要素をドラッグして適当な位置にド

また，「空気さなぎ」，「ショルダーバッグ」などの人物でなロップすることで，自動で行われた分類を編集する．関係い単語が人物として抽出された場合，これらの人物を関係図に表示する人物と関係図に表示しない人物の移動は，人図に表示しない人物に指定することで，登場人物の関係図に人物以外の単語が含まれることを防止できる．

10

第55回 プログラミング・シンポジウム 2014.1

図 7

人物「ふかえり」を含む文を閲覧している様子

登場人物の関係図の各ノードはドラッグして移動することができる．これにより，ノード間を結ぶエッジがノード
図 5

1 章から 3 章における登場人物の関係図の後ろに隠れてしまっても閲覧可能になる．図 3 において，ノードをダブルクリックすると図 7 のような新しいウインドウが開き，そのノードに書かれていた人物の入った文を章ごとに閲覧できる．物語の内容を想起するために重要な単語のひとつである人物の入った文を閲覧すること
で，内容を効率良く確認できる．実際，短編小説の要約を
効率良く作成するために，章ごとに tf-idf の高い単語を含む本文を閲覧することが有効であると確認されている [8]．
人物の入った文を閲覧する画面では，ダブルクリックした
ノードに書かれていた人物は赤色，その言い換え表現はピ
ンク色，それ以外の人物は青色で強調される．また，人物を 2 名以上含む文は，全体が太字で強調される．表示する章の切り替えは，図 7 の上部にあるバーを動かすか，バーの下にある章番号の書かれたタブをクリックすることで行う．図 7 は「ふかえり」を含む文を閲覧している様子である．ここで，全体が太字で強調されている文を以下に示す．

図 6• しかしそれはそれとして，あの戎野先生がふかえりの1 章から 7 章における登場人物の関係図

保護者になっているとは思ってもみなかったな．

• 「小松さんの能力を疑うわけじゃありませんが，ふか5.2 想起支援画面
想起支援画面 (図 3) において，画面の上部にあるのが関

えりはそこらへんの普通の女の子とは違います．

係図を表示する章の区間を指定するバー，中央にあるのがこの 2 文のうち，1 つ目の文のみで，「ふかえり」の保護者が「戎野」であることが確認できる．

登場人物の関係図，右部にあるのが登場人物一覧である．
区間を指定するバーは，登場人物の関係図を表示する最初

また，表示するノードを任意に選択することが可能であの章と最後の章を指定できる．ユーザは，バーを動かすこる．表示するノードの選択は，登場人物一覧にあるチェッとで区間を変更し，その結果，登場人物の関係図が変化すクボックスを切り替えることで可能である．例えば，「川る．図 5 は 1 章から 3 章までの登場人物の関係図である．

奈天吾 (天吾)」と記述されている左側のチェックボックス

ここで，バーを動かして区間を 1 章から 7 章に変更するこをオフにすると，登場人物の関係図から「川奈天吾」と書とで，図 6 のように 1 章から 7 章までの登場人物の関係をかれているノードを除去する (図 8)．なお，登場人物一覧

閲覧可能となる．これにより，新たに「タマル」が登場しにおける括弧内は言い換え表現である．この機能を使用すたり，「川奈天吾」と「ふかえり」につながりができたりす

ることで，物語の主要でない人物のノードを除去したり，ることが確認できる．これは，物語の内容とも一致していある人物が存在しないときの関係図を見たりすることがでる．実際，タマルは 7 章で初めて名前が登場し，川奈天吾

きる．

とふかえりは 4 章で初めて会っている．

11

第55回 プログラミング・シンポジウム 2014.1

図 9モジュール概要図7.1 人物の抽出
テキストデータからの人物の抽出は，2 段階に分けて行う．まず，日本語解析ツール MeCab と CaboCha の固有表
現解析を利用する．固有表現解析による人物の判定では，一部人物でない単語も人物として判定されてしまうが，今
図 8

回は人物と判定された単語すべてを人物候補とする．だた

表示するノードを切り替えている様子

し，連続して人物と判定された単語については，1 つの人物候補として扱うことにする．例えば，「大塚環は二塁手
でチームの要で，キャプテンもつとめていた．」という一文では「大塚」と「環」とが人物と判定されるが，これを

6. モジュール概要「大塚環」として扱う．また，「さん」，「様」といった頻出モジュール概要を画面遷移とともに図 9 に示す．モの敬称がついた人物については，敬称を外した状態と同一

ジュールは大きく分けて，人物の抽出，関連度の計算，想視する．例えば，「青豆さん」については，敬称「さん」を起支援画面の出力の 3 つである．人物の抽出では，テキス外した「青豆」と同一視した． 次に，固有表現解析ではトデータを解析して抽出した人物を，関係図に表示する人

抽出できない人物を tf-idf を活用して抽出する．固有表現

物，言い換え表現，関係図に表示しない人物の 3 つに分類

解析では，既存の辞書には存在しない人物「ふかえり」はする．関連度の計算では，ユーザが修正した人物の分類を

形態素解析がうまくいかず，人物として抽出できない．ま受け取り，係り受け解析からルールベースで抽出された主た，固有名詞が登場せず「バーテンダー」や「老婦人」な語，目的語，述語とマッチングをとることで，人物間の関どと表現されている場合も対応できない．そこで，テキス連度を計算する．想起支援画面の出力では，関連度の計算

トデータ n 文字ごとに切り出して tf-idf を計算し，その上結果をもとに物語の内容を視覚化する．想起支援画面にお位語を取り出す．tf-idf の高い文字列が必ずしも人物とはいて，ユーザが人物の分類を再修正する場合は人物情報の限らないが，物語文においては tf-idf が高い文字列が人物

編集画面に戻る．また，ユーザが関係図を表示する章の区であることが多い．人物以外が誤って抽出されても，ユー間や関係図に表示する人物を変更した場合，関連度の計算

ザが人物情報の編集画面で操作することで，登場人物の関を再び行い，想起支援画面を更新する．

係図に人物以外の単語が含まれることを防止できる．
ここで，tf-idf の計算方法を述べる．文字列 t の出現頻度

7. モジュール詳細である tf (t) は，文字列 t の出現回数を全文字列数で割ったものである．また，文書頻度の逆数である idf (t) は物語の

ここでは，人物の抽出，関連度の計算，想起支援画面の章の数を 1.1 倍した値を，文字列 t が 1 回以上出現する章の出力について詳細を述べる．

12

第55回 プログラミング・シンポジウム 2014.1

数で割った値の自然対数である．物語の章の数を 1.1 倍と表 1

計算結果 (上位 15 個)

しているのは，すべての章に出現する文字列の idf (t) が 0

文字列

tf-idfとなることを防ぐために設定した．tf-idf は，tf (t) と idf (t)天吾

0.00252-

青豆

0.00230-

青豆は0.00165

末尾が「は」

天吾は0.00161

末尾が「は」

列を優先して抽出するために，文字列の長さが長いほど値た。

0.00157

記号を含むが大きくなるように設定した．これにより，「ふかえり」の豆は0.00152

末尾が「は」

部分文字列である「ふかえ」や「かえり」の tf-idf を相対

吾は0.00147

末尾が「は」

的に小さくする．

った

0.00124

先頭が促音

ふかえり

0.00116-

ふかえ

0.00107

上位に存在する語の部分文字列

かえり0.00107

上位に存在する語の部分文字列

えり

0.00098

上位に存在する語の部分文字列

てい0.00095

平仮名 2 文字のみで構成

今回は物語中の人物の大半が 2 文字から 8 文字で表され

老婦人

0.00093-ると仮定して，切り出す文字列 n を 2 から 8 までの整数

ない

0.00091

平仮名 2 文字のみで構成の積に，切り出した文字列の長さに依存する重み w(n) をかけたものである (式 1，2)．重み w(n) は，より長い文字

tf idf (t, n) = w(n) × tf (t) × idf (t)w(n) = 0.1(n + 9)

(1)
(2)

除外理由

とした．そして，tf-idf を計算して結果を降順に並び替え，
表 2

上位の文字列を人物候補とする．ただし，人物の可能性が抽出した人物 (上位 20 個)

文字列

tf-idf

固有表現解析での抽出

天吾

0.00252

可のもの，末尾が「は」，「が」，「の」のもの，平仮名 2 文字

青豆

0.00230可

ふかえり

0.00116

不可のみで構成されるものなどである．さらに，上位に存在す

老婦人

0.00093

不可る文字列の部分文字列となっている場合についても人物候

あゆみ

0.00070

可補から除外する．ここで，人物候補とする文字列の数が多小松

0.00066

可いと人物以外の文字列が多数抽出され，人物候補とする文

さきがけ

0.00056(人物でない)教団

0.00040(人物でない)究では，1Q84 シリーズの 1 巻の他に，ジャンルの異なる

深田

0.00040

可タマル

0.00038

可

数作品で予備実験を行った結果を踏まえ，上位 20 個を人

空気さなぎ

0.00038(人物でない)物候補として固有表現解析で抽出された結果に追加した．

女主人

0.00036不可

表 1 は，1Q84 シリーズの 1 巻について計算した結果のう

ギリヤーク

0.00036(人物でない)ち，tf-idf の高い上位 15 個である．人物として判定された

リトル・ピープル

0.00032(人物でない)不可

低い文字列は人物候補から除外する．人物の可能性が低い
文字列とは，句読点といった記号を含むもの，先頭が促音

字列の数が少ないと主要な登場人物を抽出できない．本研先生

0.00030

ヤナーチェック

0.00029

不可

ギリヤーク人0.00027(人物でない)「ふかえ」，「かえり」，「えり」については，より tf-idf の日曜日

0.00027(人物でない)高い「ふかえり」の部分文字列のため除外する．表 2 は，

書き直0.00027(人物でない)最終的に抽出した人物 20 個である．tf-idf を活用すること

集金

0.00027(人物でない)

「天吾」
，
「青豆」
，
「ふかえり」，「老婦人」以外の文字列については，人物候補から除外した理由を記述した．例えば，

で，固有表現解析では抽出できなかった「ふかえり」，「老婦人」，「女主人」，「先生」，「ヤナーチェック」を人物候補る人物に対して，その人物を部分文字列とする人物が 1 つとして抽出できた．一方で，作中に登場するグループを表のみ存在する場合，文字数の長いものを関係図に表示する

す「さきがけ」，「教団」などが誤って人物候補として抽出

人物，短いものを言い換え表現とする．例えば，人物としされた．

て「川奈天吾」と「天吾」が抽出されたとき，もし，「天続けて，抽出した人物を関係図に表示する人物，言い換

吾」という文字列を含む人物が「川奈天吾」以外に存在しえ表現，関係図に表示しない人物の 3 つに分類する．固有なければ，「川奈天吾」を関係図に表示する人物，「天吾」

表現解析で抽出した人物候補については，登場回数が一定を言い換え表現とする．

数を超えるものを関係図に表示する人物とし，tf-idf を活

7.2 関連度の計算用して抽出した人物候補については，そのすべてを関係図に表示する人物とする．ただし，2 つ方法で分類先が異な抽出した人物間の関連度の計算を章ごとに行う．関連度

る場合は、tf-idf を活用して抽出した結果を優先する．言を計算するにあたって，入力として受け取ったテキストをい換え表現については，文字列を比較することで行う．あ

文ごとに分割する．一般的に，文末は句点，閉じ括弧，感嘆13第55回 プログラミング・シンポジウム 2014.1

符，疑問符のいずれかである．そこで，これらの文字を文で，E0 (B)，EN +1 (B) はそれぞれ 0 と定める．今回は同一末の根拠とする．次に，分割した文ごとに CaboCha で構

場面で人物が共起する回数に比較して，人物を 2 名含む典

文解析を行い，ルールベースで主語，目的語，述語を抽出型的な文の数が少ないことを考慮し，Ek (B) に Ek−1 (B)する．本研究では，「人物 A が人物 B に○○した．
」や「人と Ek+1 (B) の 3 倍の重み付けをした．また，各人物を表

物 A は人物 B を××した．」のような文を多く含むほど，す表現には，その言い換え表現も含めることにする．例え人物 A と人物 B の関連度が強いと考えた．例えば，「天吾ば，人物「ふかえり」を表す表現としては，「ふかえり」のはふかえりを新宿駅まで送った．
」という文からは，「天吾」

他に，その言い換え表現である「深田絵里子」も含める．

と「ふかえり」の関係が抽出できる．しかし，人物を 2 名E含む典型的な文は，物語の中で多く登場するわけではない．

rk (A, B) =  k−1

実際，関連度の計算を上記の情報のみを使用して行ったと(B) + 3Ek (B) + Ek+1 (B)0ころ，登場回数の多い人物の関係は抽出できたが，登場回(if A in subjectk )(4)(otherwise)

関連度の計算は，関係図に表示する人物すべての組み合

数の少ない人物の関係は抽出できなかった．そこで，人物

わせについて章ごとに行い，計算結果を保存する．また，

A と人物 B が同一場面で共起する回数が多いときについて

関連度とは別に，各人物を表す表現の登場回数も保存すも，人物 A と人物 B の関連度が強いと考えた．同一場面る．複数の章にまたがった関連度，例えば 1 章から 3 章にの範囲については，前後の文，形式段落，意味段落などがおける人物 A と人物 B の関連度は，各章で求めた関連度考えられ，馬場ら [10] は，「登場人物の入れ替わり」，「場R(A, B) の和を用いる．

所の変化」，「時間の経過」を指標として人手で分割した意
味段落を同一場面として関連度を計算した．本研究では，

7.3 想起支援画面の出力

ユーザによる手作業を最小限に留めるために，同一場面と登場人物の関係図の描画は，arbor.js*7 を拡張することでして前後の文を利用する．ここで前後の文とは，ある文に行った．arbor.js は，JavaScript ライブラリである jQuery

注目したときの 1 つ前の文および１つ後ろの文のことであに依存するオープンソースのグラフ描画ライブラリで，ノーる．これにより，会話文と地の文の両方を読まないと分かドの位置決定やノードに対する操作が可能である．ノード

らない場合やひとつの出来事を複数の文に分割して説明しの位置決定には力学モデルを用い，エッジの長さを可能なている場合についても関連度に反映可能となる．例えば，

限り均一にし，エッジ同士が可能な限り交差しないように「『ねえ、タマルさん、最近月を見たことはある？』と青豆している．登場人物の関係図では，人物 A が登場しているは尋ねた．
」からは，会話文で登場する「タマル」と地の文ときに人物 A と書かれたノードが描画され，他の人物とで登場する「青豆」の関係が抽出できる．また，「青豆もその関連度が 1 以上あるときにそのノードとエッジで結ばれれを口に入れた．二人がそうするのを見届けてから，つばる．ここで，ノードの大きさは登場人物の関連度の総和にさも同じようにそれを食べた．
」からは，連続した 2 つの文

応じて 3 段階に分けた．つまり，多くの人物と関連を持っに登場する「青豆」と「つばさ」の関係が抽出できる．

ていたり，関連度の強い人物がいたりすると大きく表示さここで，ある章に全部で N 個の文が存在するとき，そのれる．また，登場人物一覧の文字サイズは，その人物を表章における人物 A と人物 B の関連度 R(A, B) の計算方法

す表現の登場回数に応じて 3 段階に分けた．このとき，登を述べる．R(A, B) は，k 番目の文における人物 A から見

場回数の多い人物ほど大きく表示されるようにする．なた人物 B との関係 rk (A, B) の 1 番目から N 番目の文まで

お，登場回数の少ない人物は，主要でない人物の可能性がの総和と，k 番目の文における人物 B から見た人物 A との高いため，初期状態ではグラフに表示しないことにした．

関係 rk (B, A) の 1 番目から N 番目の文までの総和で表さ

8. インタフェースの出力例

れる (式 3)．

ここまでは，1Q84 シリーズの 1 巻を例に挙げた．本章
N∑
R(A, B) =(rk (A, B) + rk (B, A))

では，他の作品の例として，東野圭吾「マスカレード・ホテ(3)ル」*8 のテキストデータを入力として与えた場合を掲載す

k=1

る．マスカレード・ホテルでは，意味段落ごとに通し番号

k 番目の文における人物 A から見た人物 B との関係が付与されており，今回は通し番号を章と章の境目とする．

rk (A, B) は，k 番目の文の主語 (subjectk ) に人物 A を表

図 10 は，東野圭吾「マスカレード・ホテル」を入力としす表現が存在するとき，人物 B を表す表現の存在状態にて与え，本論文執筆者の一人が人物情報の編集画面で 2 分依存する関数 Ek (B) を用いて計算される (式 4)．ここで，程度操作したときに得られる結果である．右の登場人物一Ek (B) は k 番目の文の主語，述語，目的語のいずれかに覧では，人物として「ｘ４」が抽出されている．「ｘ４」は

人物 B を表す表現が存在すれば 1，存在しなければ 0 とす

*7

る．ただし，0 番目の文，N + 1 番目の文は存在しないの*8

14

http://arborjs.org/
東野圭吾：マスカレード・ホテル，集英社 (2011)

第55回 プログラミング・シンポジウム 2014.1

参考文献
[1]

[2]

[3]

[4]
図 10

東野圭吾「マスカレード・ホテル」を入力とした場合[5]

作中の事件の容疑者であり，重要な人物であるが，固有表
現解析では抽出できない．提案した tf-idf を活用した抽出により，重要な人物「ｘ４」を抽出できたことが確認でき[6]

る．関係図に表示する登場人物が多くなったときに，ノードが重なって読み取りにくい点については，今後の課題で

[7]

ある．

9. おわりに[8]

本研究では，「内容想起支援のためのインタフェース」と[9]

して「登場人物の関係」の理解を支援するシステムを開発した．登場人物の関係を視覚化するにあたって，人物の抽
出手法および人物間の関連度の計算手法を提案し，実装し[10]た．人物の抽出手法においては，既存の固有表現解析の結果に tf-idf を活用した抽出結果を加えることで，手作業で[11]

学習データを用意することなく，未知の人物や固有名詞以外で表現される人物の抽出が可能となった．人物間の関連度の計算手法においては，人物を 2 名含む典型的な文と前後の文の共起情報を利用した．自動で抽出・分類した人物
情報をユーザがマウスによる簡単な操作で修正することで，「ふかえり」に対する「深田絵里子」といった単純な文字列比較では対応できない言い換え表現を関連度の計算に反映させることが可能となった．ユーザは，マウスによる
簡単な操作のみで，物語の登場人物の関係を任意の区間ごとに閲覧し，新しい人物が現れたり，人物関係が変化した
りすることを確認可能である．本インタフェースを使用することで，過去に読んだ本を最初から読み返すことなく内容を想起できる．
今後の課題としては，登場人物の関係の詳細の抽出である．人物 A と人物 B の関連度のみでなく，
「友人」
，
「仕事
仲間」といった人間関係を抽出してユーザに提示すること
で，より効率の良い内容想起支援を目指す．また，物語の内容想起支援における本インタフェースの有効性をユーザ
スタディを通して確認し，ユーザからのフィードバックをもとに，物語を想起する上で必要な情報とその提示方法について，さらなる検討を行う．

15

Collins, C., Carpendale, S. and Penn., G.: Docuburst:
Visualizing document content using language structure,
Computer Graphics Forum, Vol. 28, No. 3, pp. 1039–
1046 (2009).
Mihalcea, R. and Ceylan, H.: Explorations in Automatic Book Summarization., EMNLP-CoNLL, pp. 380–389 (2007).
van Ham, F., Wattenberg, M. and Viégas, F.: Mapping text with phrase nets, Visualization and Computer
Graphics, IEEE Transactions on, Vol. 15, No. 6, pp.
1169–1176 (2009).
Viégas, F., Wattenberg, M. and Feinbergn, J.: Participatory visualization with wordle, Visualization and Computer Graphics, IEEE Transactions on, Vol. 15, No. 6,
pp. 1137–1144 (2009).
伊藤雄一， 縣啓治，高嶋和毅：ヨミログ：読書ログによる個人に応じた読了時間推定システム，情報処理学会シンポジウムインタラクション 2012 論文集，pp. 129–136(2012).
神代大輔，高村大也， 奥村学：物語テキストにおけるキャラクタ関係図自動構築，言語処理学会第 14 回年次大会発表論文集，pp. 380–383 (2008).
村上聡，榎津秀次，古宮誠一：物語自動要約手法の提案：
談話理解モデルに基づいた重要文抽出，電子情報通信学会
技術研究報告. KBSE, 知能ソフトウェア工学， Vol. 104,
No. 724, pp. 49–54 (2005).
田中翔太郎， 岡部誠，尾内理紀夫：物語の要約を支援するインタフェース，WISS2011, pp. 30–35 (2011).
藤井崇介，土井晃一郎，山本章博：単語の出現区間推定を利用した物語構造の抽出，電子情報通信学会技術研究報告. KBSE, 知能ソフトウェア工学， Vol. 106, No. 473,
pp. 43–48 (2007).
馬場こづえ， 藤井敦：小説テキストを対象とした人物
情報の抽出と体系化，言語処理学会第 13 回年次大会発表
論文集，pp. 574–577 (2007).
米田崇明，篠崎隆宏，堀内靖雄， 黒岩眞：述語情報を利用した小説の登場人物の抽出，言語処理学会第 18 回年次
大会発表論文集，pp. 855–858 (2012).