見出し画像

生成AIを用いて人物プロファイリングと風景写真から物語を生成する

概要

本稿では、生成AIを用いた小説執筆における、人物設定のプロファイリングへのオブジェクト指向の導入と風景写真の入力を通した、人間の営みを想像した物語を生成するコンセプトを提案する。プロファイリングでは、人物の経験をデータとして捉えて、幼少期の原体験から現在に至るまでを時系列で整理し、現在の精神状態や行動の特異性を因果推論する。このモデルを小説の人物設定に応用することで、よりリアルで立体的なキャラクターを創出することを目指す。今回は、ChatGPTを用いてデモンストレーションを行い、コンセプトの検証を行う。

1. はじめに

小説において、魅力的な人物描写は読者を物語に引き込む重要な要素である。また、現代のプログラミング技術やデータサイエンスの発展により、人物の行動や心理をモデル化することが可能となりつつある。本研究では、小説家としての人物設定のノウハウと、プログラマー・研究者としてのデジタルヒューマン構築技術のコンセプトを融合し、新たな物語生成手法を提案して、デモンストレーションを行う。

2. 関連研究

AIを用いた小説生成と人物プロファイリング、風景写真からの物語の生成手法に関連する先行研究は以下のように整理できる。

2.1 AIによる小説生成

小説の自動生成に関する研究は、1970年代から活発に行われてきた。Kleinらによる“Automatic Novel Writer” [1] は、その先駆けとして知られている。その後、Meehanの“TALE-SPIN” [2], [3]、Lebowitzの“Universe” [4], [5]、Turnerの“MINSTREL” [6], [7] など、多くの物語生成システムが提案された。
2010年代に入り、深層学習(ディープラーニング)が注目を集めるようになった。特に、Krizhevskyら [8] による画像認識分野での成果は、自然言語処理にも大きな影響を与えた。Roemmeleは、RNN(リカレントニューラルネットワーク)を用いた物語執筆支援が有望であることを示し [9]、執筆支援アプリケーション“Creative Help”を提案した [10]。
2017年には、Transformer [11] が提案され、その後の大規模言語モデルの基盤となった。Fanら [12] は、Transformerを用いた階層的な物語生成を実現し、Radfordら [13] はGPT-2を提案してその高い文章生成能力を示した。
日本においては、「きまぐれ人工知能プロジェクト 作家ですのよ」 [14] が2012年に開始され、星新一氏の作品を分析し、AIによる創作を試みている。同プロジェクトの作品が、第3回「星新一賞」で審査を通過したことも報告されている [15]。
他にも、様々な小説生成システムが開発されている[16-18]。特に、菊池らは、登場人物の個性を会話に反映させた一定水準以上の短編小説を生成できるシステムの開発を行った[19]。

2.2  オブジェクト指向による人物プロファイリング

自動小説生成は、近年の人工知能や自然言語処理の発展に伴い、活発な研究分野となっている。物語の自動生成においては、物語構造のモデル化や、登場人物の行動パターンの設計などが重要な課題として挙げられる。
従来の研究では、物語生成のための様々な手法が提案されている。プロップの物語論を基にした物語構造の形式化[20]や、計画生成アルゴリズムを用いた物語展開の自動化[21]がその例である。また、登場人物の性格や感情をモデル化し、物語にダイナミズムを与える試みも行われている[22]。
一方、オブジェクト指向の概念を物語生成に適用するアプローチも存在する。氷川[23]は、TRPG(テーブルトークロールプレイングゲーム)のシナリオ設計にオブジェクト指向の技術を応用し、シナリオの構成要素を交換可能な「オブジェクト」として捉える手法を提案している。この手法では、シナリオの登場人物やシーンをクラスとして定義し、継承や多態性といったオブジェクト指向の特性を活用することで、シナリオの再利用性や拡張性を高めている。
また、紙魚砂[24]は、TRPGを通じてオブジェクト指向の概念を学ぶ試みを紹介し、物語の要素をオブジェクトとして扱うことで、物語構造の理解を深めることができるとしている。
さらに、デザインパターンを物語生成に応用する研究も行われている。テンプレートメソッドパターンやストラテジパターンといったデザインパターンを用いることで、物語の構成要素を柔軟に組み替えることが可能となり、自動生成の効率化に寄与する[25]。

2.3 風景写真からの物語生成

物語生成システムの研究は、コンピュータを用いて自動的に物語を生成する技術の開発を目指している。この分野では、風景や画像を入力として物語を生成するアプローチも探究されている。画像を入力として物語を生成する研究が進められている。これらのシステムは、画像認識技術を用いて風景や物体を識別し、それらの要素を基に物語のプロットや設定を構築する。また、テキストだけでなく、画像や音声などの複数のモダリティを組み合わせた物語生成システムの開発も行われている。風景画像と組み合わせることで、より豊かな物語体験を創出することを目指している。
物語生成のプロセスを人間の認知メカニズムの観点から研究するアプローチも存在する。風景から物語を生成する際の認知プロセスを、イメージスキーマ理論を用いて説明しようとする研究がある。この理論は、人間が空間や物理的経験をどのように概念化するかを説明する。最後に、人間が風景を見て物語を想像するプロセスをモデル化し、そのメカニズムをコンピュータシステムに応用しようとする研究も進められている。

2.4 新規性

小説の生成における従来のアプローチでは、特定のフェーズに特化した構築が多く、小説の作成を目的としたもの、入力データに写真を用いたものは見当たらない。

3. 手法

3.1 高解像度な人物プロファイリングの構築

オブジェクト指向による人物のプロファイリングの例を、以下に示す。

  • 基本属性: 年齢、性別、出身地、家族構成など。

  • 社会的背景: 教育歴、職業、社会的地位、人間関係。

  • 心理的特性: 性格、価値観、信念、トラウマ。

  • 行動パターン: 日常的な習慣、反応パターン、決断の傾向。

class Person:
    """
    Class to represent a person's profile.
    
    Attributes:
        name (str): The name of the person.
        age (int): The age of the person.
        address (str): The address of the person.
        occupation (str): The occupation of the person.
        interests (list of str): A list of the person's interests.
        skills (list of str): A list of the person's skills.
    """
    
    def __init__(self, name: str, age: int, address: str, occupation: str):
        """
        Initializes the Person object with basic information.
        
        Args:
            name (str): The name of the person.
            age (int): The age of the person.
            address (str): The address of the person.
            occupation (str): The occupation of the person.
        """
        self.name = name
        self.age = age
        self.address = address
        self.occupation = occupation
        self.interests = []
        self.skills = []
    
    def add_interest(self, interest: str):
        """
        Adds an interest to the person's profile.
        
        Args:
            interest (str): An interest to be added to the person's profile.
        """
        self.interests.append(interest)
    
    def add_skill(self, skill: str):
        """
        Adds a skill to the person's profile.
        
        Args:
            skill (str): A skill to be added to the person's profile.
        """
        self.skills.append(skill)
    
    def update_address(self, new_address: str):
        """
        Updates the address of the person.
        
        Args:
            new_address (str): The new address to update.
        """
        self.address = new_address
    
    def get_profile(self) -> dict:
        """
        Returns the complete profile of the person in dictionary form.
        
        Returns:
            dict: The person's profile with name, age, address, occupation, interests, and skills.
        """
        return {
            'name': self.name,
            'age': self.age,
            'address': self.address,
            'occupation': self.occupation,
            'interests': self.interests,
            'skills': self.skills
        }

# Example usage:
person1 = Person(name="John Doe", age=30, address="123 Main St", occupation="Software Engineer")
person1.add_interest("Reading")
person1.add_interest("Traveling")
person1.add_skill("Python")
person1.add_skill("Machine Learning")

# Update the address
person1.update_address("456 New Ave")

# Get the full profile
profile = person1.get_profile()
print(profile)

これらの要素をオブジェクト指向のクラスとインスタンスとしてモデル化し、継承や多態性を用いて複雑な人物像を構築する。

3.2 因果推論モデルの構築

人物の幼少期から現在までの経験をデータポイントとして収集し、時系列データとして整理する。これに基づき、以下の手順で因果推論モデルを構築する。

  1. データ収集: 人物の重要なライフイベントや経験をリストアップ。

  2. 時系列分析: ライフイベントを時系列に配置し、各イベント間の因果関係を仮定。

  3. 推論: 現在の精神状態や行動特性をモデルから推論。

3.3 風景からの物語生成との統合

風景写真を入力として、その中に潜む可能性のある人間の営みや感情を抽出する。具体的には、以下のプロセスを経る。

  1. 風景の分析: 自然言語処理や画像認識を用いて風景の特徴を抽出。

  2. シナリオの仮定: 抽出した特徴から可能なシナリオを複数生成。

  3. 人物プロファイルの適用: 生成したシナリオに先述の人物プロファイルを適用し、物語を構築。

3.4 プロンプト

提案手法を用いるための、プロンプトの例を示す。


あなたは小説家として、高解像度な人物プロファイリングと風景からの物語生成を行います。以下の手順に従ってください。 

1. **人物プロファイリングの構築:**
    - **基本属性:**
        - 名前:佐藤遥(さとう はるか)
        - 年齢:28歳
        - 性別:女性
        - 出身地:長野県の山間部
        - 家族構成:父、母、妹
    - **社会的背景:**
        - 教育歴:東京の美術大学卒業
        - 職業:フリーランスのイラストレーター
        - 人間関係:大学時代の友人と同居、恋人なし
    - **心理的特性:**
        - 性格:内向的だが観察力が鋭い
        - 価値観:自然との共生、人間の本質に興味がある
        - 信念:自分の作品で人々の心を動かしたい
        - トラウマ:幼少期に親友を事故で失った
    - **行動パターン:**
        - 日常的な習慣:早朝の散歩、スケッチ、読書
        - 反応パターン:緊張すると無口になる、興味があると積極的
        - 決断の傾向:慎重に情報を集めてから決断

2. **因果推論モデルの構築:**
    - 佐藤遥の幼少期から現在までの重要なライフイベントを時系列で整理し、それぞれが彼女の現在の精神状態や行動特性にどう影響しているかを因果推論してください。
        - **6歳:** 親友の死 → 他人との深い関係を避けるようになる
        - **18歳:** 美術大学入学 → 自分の世界を表現することに目覚める
        - **22歳:** 大学卒業、フリーランス開始 → 社会との接点を模索
        - **26歳:** 両親の離婚 → 家族の絆について考えるようになる

3. **風景からの物語生成:**
    - 写真から風景描写を読み、その中に潜む人間の営みや感情を想像し、佐藤遥のプロファイルを適用して物語を作成してください。 


4. **物語の執筆:**
    - 上記で構築した人物プロファイルと因果推論モデル、風景からの想像を統合し、小説の一節(500~1000文字程度)を書いてください。
    - 物語は佐藤遥の内面の葛藤や成長、過去のトラウマとの向き合いを反映させてください。
    - 読者が彼女の心理状態や行動の背景を理解できるように、詳細な描写を心がけてください。

**出力形式:**

- **人物プロファイルの要約**
- **因果推論モデルの説明**
- **小説の一節**
テスト写真

4. 結果

出力結果を、以下に示す。

4.1 パーソナリティの抽象化

佐藤遥は、幼少期に親友を事故で失ったというトラウマを抱え、他人との深い関係を避けるようになりました。この経験は彼女の内向的な性格や、人間関係に慎重な態度を形成する要因となっています。

18歳で美術大学に入学したことが、彼女に自分の内面を表現する方法を見つけさせ、イラストという手段を通じて自身の感情や世界観を外に向けて表現することができるようになりました。

22歳で大学を卒業し、フリーランスとしてのキャリアをスタートさせると、社会との接触を通して自分の作品が他人にどう影響を与えるのかを模索し始めます。この時点で、彼女の孤立志向は変わらないものの、他者との繋がりを徐々に求めるようになってきています。

26歳で両親が離婚したことは、家族の絆や人間関係に対する彼女の考え方に新たな視点を与えました。この経験により、彼女は家族や人との関わり方について再考するようになり、自分自身の価値観や信念をさらに深めました。

GPT4 o1

4.2 風景からの物語生成

写真には、風鈴が6つ並んで吊り下げられた風景が映し出されています。背後に広がるぼやけた緑と建物の影が、涼しげな夏の一瞬を切り取っており、風鈴の音が静かに耳に響いてくるようです。佐藤遥は、この風鈴の音を通して自身の過去の記憶と対話します。風鈴の一つ一つに異なる感情が宿り、彼女の内なる静けさがこの音に反映されています。

GPT4 o1

4.3 小説の一節

佐藤遥は、縁側に座り、風鈴の音を静かに聴いていた。夏の空気は透き通り、風が音もなく彼女の頬を撫でていく。ガラスの風鈴がかすかな音を立てるたびに、遥の心は過去へと引き戻される。

彼女が初めて風鈴の音を聞いたのは、6歳の夏だった。親友の美咲と一緒に、山の中で駆け回り、笑い合ったあの日。あの事故が起きたのは、まさにその夏の終わりだった。以来、風鈴の音は彼女にとって懐かしさと同時に、深い悲しみを呼び起こす音となった。美咲がいなくなってから、遥は人と深く関わることを恐れるようになった。それは、また誰かを失う痛みを避けたいという、本能的な防衛だった。

東京の美術大学に進学した頃、彼女は絵を描くことでその痛みから逃げようとした。描くたびに心の奥にある感情が少しずつ形を持ち、キャンバスに広がっていく。絵は、彼女自身の心を鏡のように映し出す手段となった。しかし、どれだけ描いても、風鈴の音が心を締め付けることは変わらなかった。

「もう、逃げるのはやめよう。」

風鈴の音が、彼女の中で柔らかく揺れた。その瞬間、遥はふと気づいた。絵を描くことは、過去を乗り越えるための手段ではなく、過去を抱きしめるためのものだったのかもしれない。彼女の心に残る美咲の笑顔も、あの夏の日も、絵を通して永遠に生き続けるのだ。

佐藤遥は、風鈴に目を向けた。それは、過去の痛みだけでなく、未来への希望も共に運ぶ音だった。彼女はそっと筆を取り、キャンバスに新しい風景を描き始めた。それは、彼女自身の心が解放される瞬間だった。

GPT4 o1

4.4 コメント

この物語は、佐藤遥の内面の葛藤と成長、そして過去のトラウマとの向き合いを描いたものです。風鈴の音が彼女の記憶とリンクし、彼女がそれをどう乗り越え、再び前を向いて進んでいくかを象徴的に表現しています。

GPT4 o1

5. 考察

本研究では、小説執筆における人物設定を高解像度なプロファイリングとしてオブジェクト指向の観点から定義し、さらに風景写真から人間の営みを想像して物語を生成する手法を提案した。結果として、より立体的で深みのあるキャラクター描写と、読者を物語に引き込む一節の生成に成功した。

まず、人物プロファイリングの構築において、基本属性、社会的背景、心理的特性、行動パターンといった多面的な要素を詳細に設定した。これにより、キャラクターの行動や心理状態が過去の経験や価値観と一貫性を持ち、読者にとって説得力のある人物像を形成できた。オブジェクト指向の手法を用いることで、クラスやインスタンスの継承・多態性を活用し、複雑な人物関係や成長過程を効率的にモデル化できた点も有効であった。

次に、因果推論モデルの構築では、キャラクターの幼少期から現在までのライフイベントを時系列で整理し、それぞれの経験が現在の心理状態や行動特性にどのように影響を与えているかを明確にした。これにより、キャラクターの内面の葛藤や成長を物語の中で自然に表現することが可能となり、読者がキャラクターに共感しやすくなった。

また、風景からの物語生成との統合により、視覚的な要素から物語の舞台設定や雰囲気を効果的に取り入れることができた。具体的には、風鈴が吊り下げられた風景写真から情景描写を行い、その中にキャラクターの内面的な変化や過去との対比を織り交ぜることで、物語に深みと臨場感を与えた。

しかし、本手法にはいくつかの課題も残されている。まず、人物プロファイリングや因果推論モデルの構築には専門的な知識と時間を要するため、自動化やテンプレート化による効率化が今後の課題である。また、風景からの情報抽出においては、主観的な解釈が入りやすく、一貫性のある物語生成のためには客観的な評価基準やアルゴリズムの開発が必要である。

さらに、提案手法の適用範囲を広げるために、異なるジャンルやテーマの物語への応用可能性についても検討が必要である。読者の多様なニーズに応えるために、キャラクターや物語構造のパターンを豊富に用意し、柔軟に組み合わせられるシステムの構築が望まれる。

今後の展望として、人工知能や機械学習を活用した自動物語生成システムへの応用が考えられる。特に、深層学習モデルを用いて大量の物語データからパターンを学習し、より自然で創造的な物語を生成することが期待できる。また、読者からのフィードバックをリアルタイムで反映し、物語を動的に進化させるインタラクティブな小説の可能性も示唆される。

以上より、本研究の手法は小説執筆における新たなアプローチとして有用であり、物語生成の効率化と品質向上に寄与するものである。しかし、実用化に向けてはさらなる研究と技術開発が必要であり、今後の課題として取り組んでいく所存である。

6. 結論

オブジェクト指向による高解像度な人物プロファイリングと、風景からの物語生成を統合することで、よりリアルで魅力的な小説を執筆する手法を提案した。本手法は、人物の内面と外部環境を統合的に扱うことで、物語の質を向上させる可能性を持つ。

参考文献

  1. S. Klein et al., “Automatic novel writer: A status report,” Dept. Computer Sciences, Univ. Wisconsin-Madison, 1973.

  2. J. R. Meehan, “The metanovel: Writing stories by computer,” Ph.D. dissertation, Yale Univ., 1976.

  3. J. R. Meehan, “TALE-SPIN, an interactive program that writes stories,” in Proc. 5th Int. Joint Conf. Artificial Intelligence, 1977, pp. 91–98.

  4. M. Lebowitz, “Creating characters in a story-telling universe,” Poetics, vol. 13, no. 3, pp. 171–194, 1984.

  5. M. Lebowitz, “Story-telling as planning and learning,” Poetics, vol. 14, no. 6, pp. 483–502, 1985.

  6. S. R. Turner, “Minstrel: A computer model of creativity and storytelling,” Ph.D. dissertation, Univ. California, 1993.

  7. S. R. Turner, The creative process: A computer model of storytelling and creativity. Psychology Press, 1994.

  8. A. Krizhevsky, I. Sutskever, and G. E. Hinton, “ImageNet classification with deep convolutional neural networks,” in Advances in Neural Information Processing Systems, vol. 25, 2012.

  9. M. Roemmele, “Writing stories with help from recurrent neural networks,” in Proc. AAAI Conf. Artificial Intelligence, vol. 30, no. 1, 2016.

  10. M. Roemmele and A. S. Gordon, “Creative help: A story writing assistant,” in Proc. 8th Int. Conf. Interactive Digital Storytelling, 2015, pp. 81–92.

  11. A. Vaswani et al., “Attention is all you need,” in Advances in Neural Information Processing Systems, vol. 30, 2017.

  12. A. Fan, M. Lewis, and Y. Dauphin, “Hierarchical neural story generation,” in Proc. 56th Annu. Meeting Assoc. Computational Linguistics, 2018, pp. 889–898.

  13. A. Radford et al., “Language models are unsupervised multitask learners,” OpenAI Blog, vol. 1, no. 8, p. 9, 2019.

  14. 「きまぐれ人工知能プロジェクト 作家ですのよ」、2012年。[オンライン]。Available: https://www.fun.ac.jp/~kimagure_ai/ 

  15. 「第3回『星新一賞』に関する報告」、2016年。[オンライン]。Available: https://www.fun.ac.jp/~kimagure_ai/news/160306.html 

  16. 松原仁, 佐藤理史, 赤石美奈, 角薫, 迎山和司, 中島秀之, 瀬名秀明, 村井源, 大塚裕子. "コンピュータに星新一のようなショートショートを創作させる試み." 2013年度人工知能学会全国大会論文集, 2013, pp. 1-2.

  17. 鳥山不二夫, 大澤博隆. "AI 達は物語を生み出すか." 2016年度人工知能学会全国大会論文集, 2016, pp. 1-3.

  18. 松山涼平, 佐藤理史, 松崎拓也. "テーマに基づく短編小説自動生成システム." 言語処理学会第24回年次大会発表論文集, 2018, pp. 1284-1287.

  19. 菊池航汰, 松原仁. "会話に個性を持たせた短編小説の自動生成." 公立はこだて未来大学, 東京大学. 情報処理学会第85回全国大会論文集, 2023, pp. 2-771.

  20. V. Propp, Morphology of the Folktale, University of Texas Press, 1968. ↩

  21. M. Lebowitz, "Story-telling as Planning and Learning," Poetics, vol. 14, no. 6, pp. 483–502, 1985. ↩

  22. M. Mateas and A. Stern, "Structuring Content in the Façade Interactive Drama Architecture," in Proc. Artificial Intelligence and Interactive Digital Entertainment (AIIDE), 2005, pp. 93–98. ↩

  23. 霧霞 氷川, "オブジェクト指向シナリオ設計," TRPGシナリオ作成大全4, pp. 41–58, 2013. 

  24. 紙魚砂, "オブジェクト指向シナリオ," 紙魚砂日記, 2004. [Online]. Available: http://simizuna.exblog.jp/1435516 ↩

  25. E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1994. ↩

made by OpenAI o1
雰囲気だけの論文もどきは10分で生成できる。査読を通すか学会で揉まれるかしないと価値が出ない。