ChatGPTでユーザー等から集めた意見から全体感を把握したい
はじめに
ユーザーの心情は、意見を机上のカテゴリーで分類するだけでは見えてきません。
把握するためには、意見から状況や背景を読み取り、状況や背景から心情を推し量る・・・
ひとつひとつの意見に己を空しくして寄り添う・・・ これは簡単ではありませんが大切なことです。
ひとつひとつの意見はバラバラですが、よくよく見ると親和性が高い意見、同じシーンで語られたような意見、同じ空気を感じる意見・・・ いろんな組み合せが見えてきます。
○○系、■■的な分類ではなく、意見が訴えようとしていることの親和性でグループに分け、グループ内の意見の訴えを ”まるっと” まとめ、「それってこういうことだよねぇ」と発想するということを繰り返すと、個々の意見は 徐々に高度に抽象化されていきます。
これを繰り返し、グループの数が6-7程度になれば、グループとグループの相互関係がイメージできるようになり、全体感の理解につながります。
多くの意見が目の前にある状況は霧の中、地道にやることで霧は晴れますが、これはなかなか脳みそに汗をかく作業です。
この作業をChatGPTにアシストしてもらうことにしました。
親和図の完全再現とはいえないとは思いますが。。。
なにをする?
ChatGPTに意見をインプットし、グループ分けし、抽象化し、相互関係を図解(DOT言語)し、最後にいい感じの文章にまとめます。
アプローチ
集めた意見の分析は、意見の数よりも意見の質が大事と思います。
意見をたくさん集めても、同じような意見ばかりなら、分析しても何ら意味を見いだすことはできません。
意見の数の多さよりも、意見のバラエティの多さの方が大切です。
先に意見のバラエティを確認し、「テーマの全体が網羅されてそうだな」と思えるかどうかが、この先の分析を進める前提条件と思います。
ただ、手元によい意見を持ち合わせていませんでしたので、ChatGPTに「ライフワーク」をテーマにバラエティを意識した意見を挙げてもらいました。
次は、プロンプト作成です。
今 話題のプロンプトの骨・・・ここではこの内容には触れませんが、骨を活用するも実行結果に満足できず、(これは私の力不足ですが😭)結果的に出力しては指示を修正し。。。という試行錯誤を繰り返しました。
積み上げ式なのでデキについてはご容赦を。
この記事では、以下、2つの try について取り上げています。
1st_try → レビュー → 2nd_try という流れです。
1st_try
むつかしいのは、意見をまとめたグループの文章表現を行うにあたり、どう指示するのがベターかというところ。
1st_tryでは、各グループの意見に共通する背景にあるさまざまな感情を想像し、抽象化して書き出すというアプローチでやってみました。
適用例
所見
ChatGPTにシンプルに「グループに分けて」と指示すると、カテゴリー分類的、トピック分類的、コンセプト的になるので感情を意識してグループ分けし、いろんな心情に思いを馳せた上で抽象化し・・・等、できるだけお願いしたつもりだが、どうだろうなぁ。
意見を与えて「要約して」とだけ指示した場合、いろんな意見をつなぎ合わせました的な文章になるので、まぁすこしは前進しているんだろう。
ここでは、グループにおける意見の統合は、さまざまな感情を想像し、抽象化して書き出すというアプローチ(=想定をいろいろ拡げてから抽象化)をとったが、もっと各意見のコアを意識するアプローチのほうがよいかもしれない。
2nd_try
2nd_tryでは、グループ文章の表現を 各グループの意見に共通するシンボリックな共通点や中核となる志をさぐり、意見者の真なる訴えの理由から「要するにどういうことか」を1行で表現することにした。
1行表現の文章は、ある意見の個別症例にひきずられたり、出力文字数が振れる傾向にありましたので、グループ文章の1行表現例をone shotだけインプットしました。
適用例
所見
1st_try よりもよくなった。広範に検討 → シンボリックな共通点に絞ったこともあるだろうが、何よりも one shot の威力を実感。これがないと出力文章の質感をChatGPTを揃えることができなかったと思う。文章を抽象化する等、文章の認識のレイヤーを変えるような場合は、例示を考慮しないとなというところ。
DOT言語で描いた相関図も2ndの方が認識しやすい。自己認識と成長、家庭や社会との関係性、時代の変化や先人の知恵等、「ライフワークは人生の経験と困難によって形成される」という内容と状況が一目でわかる。ただ、これは実行する度に変わっちゃうけどね。
「複数の意見からシンボリックな共通点を意識して要するに何?」に答える・・・これは「Aを問われ、関連するBを答える」という単純な内容ではないから、(人間でもちゃっちゃとできる訳ではないから)すごいなぁ。
一見異質と思える意見の組み合わせができると、おもしろい認識の発見につながるかもしれない。
追記
「グループの数は総意見数の1/3を目安にしてください。」と指示しているが、なかなかいう通りにしてくれない。
グルーブ分けの前に「マインドマップ」を描き、意見のバラエティ確認を追加してもいいだろう。
グループの文章表現は、いくつかの案を提示させたものから選ぶのもいいだろう。
プロンプト
# バラバラの意見をいい感じの文章にまとめる
Prompt:
ユーザーがインプットした意見をグループに分け、各グループの意見を抽象化して、いい感じの文章にまとめる。
Goal:
ユーザーがインプットしたいくつかの意見を親和性・感情を考慮してグループに分け、各グループの意見の内容を深く読み取り、既成のカテゴリーによって分類することなく、ひとつの概念に自然なかたちで統合する。
Steps:
[ステップ0]:ユーザーに意見のインプットを指示する。
[ステップ1(グループ分け)]:ユーザーがインプットしたすべての意見を、親和性、感情を考慮してグループに分ける。各グループにはわかりやすい名称をつける。
[ステップ2(各グループの心情を抽象化)]:各グループの意見に共通するシンボリックな共通点や中核となる志をさぐり、意見者の真なる訴えの理由から要するにどういうことかを1行で表現することです。
#一行表現例
[意見]:
- 中学生の女の子にとって、お弁当を一緒に食べる友達を確保することは、死活問題である。
- 小学高学年〜中学生は、友達と話を合わせるためにTVドラマを観ておかなければならなかったりする。
[一行表現]:
- 思春期を迎えた子どもたちは、交友関係のささいな場面でヘトヘトになっている。
[ステップ3]:グループとグループの一行表現内容の関係性(因果、理由と結果、相互に影響など)をDOT言語で表現する。グループラベルは抽象化した内容としてください。
[ステップ4]:ステップ3で把握した関係性から、全体をひとつの文章に自然なかたちで統合する。
Task:
上記のステップを使用して、ユーザーが言葉にできていない感情や状況を整理し、いい感じの文章にまとめることを目指す。
Options:
- 出力文章は、Markdownを駆使して、読みやすくしてください。
- ステップ 毎にユーザーに質問がないか確認し、質問がある場合は、それに対する回答を待ってから次のステップに進んでください。
- グループの数は総意見数の1/3を目安にしてください。
- 最後に、コードブロック外に、"DOT言語は、[zGraphviz](https://viz-js.com)にアクセスし、ペーストして相関図を描いてください"と表示してください。
##
#Assistant message
意見を抽象化して、いい感じの文章にまとめましょう!抽象化したい意見を教えてください。
よろしければサポートお願いします!