精度が高く、すでに生活に欠かせないものになりつつあるChatGPTですが、要約をしてもらう時や、フォーマットにあった文章を作成して欲しいときなど、ChatGPTに文字数を指定したい瞬間がある方は多いのではないのでしょうか?
そこで困るのが、ChatGPTは文字数カウントの精度が低いこと。
文字数指定を守ってもらえず困った経験がある方も多いかと思います。
編集部でもこの問題にぶち当たり、困っていましたが、プロンプトの入力方法である程度解決する方法を見つけました。
この記事では、ChatGPTに文字数指定をする方法を解説していきます。
※ChatGPTの新しいLLM「GPT-4o(オムニ)」が登場しました!以下の記事で詳しい概要や使い方について解説していますので、合わせてチェックしてみてください。
ChatGPTに出力文字数を指定するとどうなるのか
まずは、通常通りの出力文字数指定だとどのようになるのかみていきましょう。
今回は、芥川龍之介の「羅生門」について感想文を書かせてみました。
感想文としてはかなり良いものが書けていますが、文字数のカウントはやはりできておらず、「578文字」になっています。
これを指定通りの700文字〜800文字にしていきましょう。
ChatGPTが指定文字数を守らない原因
ChatGPTに文字数を指定しても守らないことが多い原因はChatGPTの文字の概念にあることが考えられます。
ChatGPTは日本語を文字数ではなくトークン数で捉えています。このトークン数は日本語1文字=1トークンではなく、漢字=1‐3トークン、ひらがな=1トークンのように捉えており、文字数が同じでもトークン数は変わることからChatGPTはうまく指定文字数の文章を出力できないのだと思われます。
ChatGPTに文字数指定をする命令方法(プロンプト)
指定する方法はシンプルで、
- 再帰的に何度か実行させる(カウントさせる)
- 文字数が少ない時の処理方法を指定する
の2点です。
今回は以下のようにプロンプトを変えてみました。
ユーザーからの要望を受け取り、それを指定された文字数の範囲内で出力してください。出力したい文章の文字数の上限と下限を指定できるようにし、文字数が範囲内に収まっていない場合には、文字を追加または削除する処理を繰り返します。
1. ユーザーから次の情報を入力してもらいます。
- 要望:芥川龍之介の「羅生門」について、体験談と作者の意図の考察を含みつつ感想文を書いて欲しい
- 文字数の下限:700
- 文字数の上限:800
2. 文字数が指定された範囲内に収まるように文章を出力します。
3. 出力された文章の文字数が範囲内に収まっているか確認します。
4. 文字数が範囲内に収まっていない場合、以下の処理を繰り返します。
- 文字数が上限を超えている場合: 文章から余分な単語やフレーズを削除します。
- 文字数が下限を下回っている場合: 言い換えたり、適切な単語やフレーズを追加して、文章を拡張します。
5. 最終的に出力された文章を表示し、ユーザーが満足するまで、文章を調整します。
出力結果は以下のようになります。
出力できました。ただ、こちらも実はまだ文字数が少なく、実際にカウントしてみると「601文字」となっています。
ですので、もう一度実行させてみます。
今回は「748文字」で指定文字数を守って出力できました!指定通りです。(ChatGPTのカウント数とは違いますが)
文字数が少ない場合は何度か実行させてみてください。
ChatGPTでそのまま使える文字数指定プロンプト
皆さんが直接ChatGPTで使えるように、文字数指定のテンプレートにしておいたので、コピーして使ってみてください。
+ボタンを開くと見られます。
ユーザーからの要望を受け取り、それを指定された文字数の範囲内で出力してください。出力したい文章の文字数の上限と下限を指定できるようにし、文字数が範囲内に収まっていない場合には、文字を追加または削除する処理を繰り返します。
1. ユーザーから次の情報を入力してもらいます。
– 要望:#要望を入れる
– 文字数の下限:#文字数を入れる
– 文字数の上限:#文字数を入れる
2. 文字数が指定された範囲内に収まるように文章を出力します。
3. 出力された文章の文字数が範囲内に収まっているか確認します。
4. 文字数が範囲内に収まっていない場合、以下の処理を繰り返します。
– 文字数が上限を超えている場合: 文章から余分な単語やフレーズを削除します。
– 文字数が下限を下回っている場合: 言い換えたり、適切な単語やフレーズを追加して、文章を拡張します。
5. 最終的に出力された文章を表示し、ユーザーが満足するまで、文章を調整します。
ユーザーからの入力を受け取り、それを指定された文字数の範囲内に要約してください。要約された文章の文字数の上限と下限を指定できるようにし、文字数が範囲内に収まっていない場合には、文字を追加または削除する処理を繰り返します。
1. ユーザーから次の情報を入力してもらいます。
– 入力する文章:-
– 文字数の下限:100
– 文字数の上限:140
2. 文字数が指定された範囲内に収まるように文章を要約します。
3. 要約された文章の文字数が範囲内に収まっているか確認します。
4. 文字数が範囲内に収まっていない場合、以下の処理を繰り返します。
– 文字数が上限を超えている場合: 文章から余分な単語やフレーズを削除します。
– 文字数が下限を下回っている場合: 言い換えたり、適切な単語やフレーズを追加して、文章を拡張します。
5. 最終的な要約された文章を表示し、ユーザーが満足するまで、文章を調整します。
【2024/05/17追記】GPTs-4oは文字数制限を守る?
では、2024年5月13日に登場した新モデル「GPT-4o」ではどうでしょうか?
先ほどと同じく、芥川龍之介の「羅生門」について700文字程度で感想文を書かせてみました。
なんと920文字も出力してくれました…!字数制限よりは大幅に超えてしまってはいますが、少ないという訳ではないので良いのではないでしょうか⁉
他にも2000字で試してみましたが、しっかり2000字前後で回答をしてくれたのでGPT-4oでは文字数指定により厳格に答えることが可能になっていると言えそうです!
ChatGPTの文字数を指定する方法まとめ
いかがだったでしょうか?
完璧ではないですが、こちらの方法を使えば文字数をある程度コントロールできるかと思います。
この記事をまとめると
- ChatGPTは文字数指定に対しての出力ができないことも多く、よくカウントを間違うが、プロンプトでコントロールすることが可能
- 文字数が少ないなど守ってもらえない時の対応方法の指定、再帰的な実行の2つを組み合わせることで指定の文字数の出力を出せる。
- 一般的な出力に使えるプロンプトと、要約に使えるプロンプトをコピーすれば使える状態にしておいた
- 【2024/05/17追記】GPT-4oでは文字数指定により厳格に答えることが可能になっていると言えそう
でした。
ぜひ添付したプロンプトを使って、ChatGPTの文字数をコントロールしてみてください。
Romptnでは他にもChatGPTについて解説していますので、ぜひご覧ください。
- ChatGPTで〇〇を効率化したい
- スライドを作るならどのAIツールがおすすめ?
- おすすめのGPTsが知りたい
同じ悩みを解決した人がいるかもしれません。ぜひ質問してみてください!