見出し画像

文章添削と敬体→常体変換の新時代: AIとGASを活用したツール「添削GPT」の紹介

この記事では、AIに文章を添削してもらう、文章を敬体から常体に変換するツールを提供しています。ツール自体は個人的に自由にお使いいただいて構いませんが、第三者への直接配布は避け、代わりにこの記事のURLを共有してください。バグが見つかった場合は、随時修正し、このページに掲載したいと思います。また、ファイルそのものを無断で他サイトに転載することはご遠慮いただきたいと思います。また、使用が変更になって急に使えなくなる場合もありますので、ツール・APIの使用に関してはあくまでも自己責任でお願いします。

文章添削支援ツール「添削GPT」
下のリンクからコピーしてお使いください。

1.はじめに

今回のコンセプトは、「文章の添削、敬体(です、ます)から常体(だ、である)への変換を楽したい」を実現することです。

人工知能の活用は「添削」機能のみ、
「敬体から常体への変換」は、Google Apps Script(以下GAS)で以下のスクリプトを実行して処理しています。

function replaceZyotai(input_text) {
   const replaceTextBox = [    [')', ')'],
      [')', ')'],
    ['(', '('],

    ['見ること.できる', '見られる'],
    ['書くこと.できる', '書ける'],
    ['読むこと.できる', '読める'],
    ['食べること.できる', '食べられる'],
    ['行うこと.できる', '行える'],
    ['喋ること.できる', '喋られる'],
    ['挙げること.できる', '挙げられる'],
    ['知ること.できる', '知れる'],
    ['起こすこと.できる', '起こせる'],
    ['行うこと.できる', '行える'],

    ['すること.できる', 'できる'],
    ['やること.できる', 'やれる'],
    ['すること.できます', 'できる'],
    ['させること.できます', 'できる'],
    ['やること.できます', 'やれる'],
    ['すること.できません', 'できない'],
    ['やること.できません', 'やれない'],
    ['できるようにすること', '可能にすること'],
    ['しているわけではありません', 'していない'],
    ['されているわけではありません', 'されていない'],
    ['できるようになった', '可能になった'],

    ['されることを', 'を'],
    ['されることに', 'に'],
    ['されることは', 'は'],
    ['されることも', 'も'],
    ['することを', 'を'],
    ['することに', 'に'],
    ['することは', 'は'],
    ['することも', 'も'],
    ['でしたら', 'なら'],

    ['というような', ''],
    ['ということ', '」'],
    ['というもの', '」'],
    ['という', ''],

    ['負います', '負う'],
    ['負いません', '負わない'],
    ['着ます', '着る'],
    ['過ぎます', '過ぎる'],
    ['閉じます', '閉じる'],
    ['落ちます', '落ちる'],
    ['煮ます', '煮る'],
    ['浴びます', '浴びる'],
    ['見ます', '見る'],
    ['含みます', '含む'],
    ['用います', '用いる'],
    ['作ります', '作る'],
    ['返します', '返す'],
    ['立ちます', '立つ'],
    ['付きます', '付く'],
    ['づきます', 'づく'],
    ['帰ります', '帰る'],
    ['並びます', '並ぶ'],
    ['並びます', '並ぶ'],
    ['囲みます', '囲う'],
    ['呼びます', '呼ぶ'],
    ['使います', '使う'],
    ['行いません', '行わない'],
    ['行います', '行う'],
    ['おこないました', 'おこなった'],
    ['言います', '言う'],
    ['言いません', '言わない'],
    ['いきます', 'いく'],
    ['いいます', 'いう'],
    ['除きます', '除く'],
    ['分かります', '分かる'],
    ['分かりません', '分からない'],
    ['思います', '思う'],
    ['思いません', '思わない'],
    ['感じます', '感じる'],
    ['出来ます', '出来る'],
    ['できます', 'できる'],
    ['受け取ります', '受け取る'],
    ['従います', '従う'],
    ['知っています', '知っている'],
    ['知りません', '知らない'],
    ['限りません', '限らない'],
    ['限ります', '限る'],
    ['きました', 'きた'],
    ['学びました', '学んだ'],
    ['行いました', '行った'],

    ['見えます', '見える'],
    ['見せます', '見せる'],
    ['捨てます', '捨てる'],
    ['食べます', '食べる'],
    ['入れます', '入れる'],
    ['伝えます', '伝える'],
    ['経ます', '経る'],
    ['尋ます', '尋ねる'],
    ['考えます', '考える'],
    ['考えます', '考える'],


    ['していただく', 'してもらう'],
    ['させていただきます', 'させてもらう'],
    ['ご覧になる', '見る'],
    ['ご覧ください', '見よ'],
    ['ご参照ください', '参照せよ'],
    ['ご注意ください', '注意せよ'],
    ['ご確認ください', '確認せよ'],
    ['お聞かせください', '述べよ'],
    ['ご連絡ください', '連絡せよ'],
    ['ご了承ください', '了承せよ'],
    ['ご説明ください', '説明せよ'],
    ['お帰りください', '帰宅せよ'],
    ['ご依頼ください', '依頼せよ'],
    ['お知らせください', '知らせよ'],
    ['お問い合わせください', '問い合わせよ'],
    ['お願いいたします', '頼む'],
    ['お願いします', '頼む'],
    ['ご利用いただきます', '利用してもらう'],
    ['お読みいただきますよう', '読むよう'],
    ['お読みいただくよう', '読むよう'],
    ['お読みになり', '読み'],
    ['頂きます', '頂く'],
    ['いただきます', 'いただく'],
    ['いただくこと', 'もらうこと'],
    ['場合がございます', '場合がある'],
    ['場合もございます', '場合もある'],

    ['ありませんでした', 'なかった'],
    ['わけではありませんが、', 'わけではない。しかし、'],
    ['わけではありませんが', 'わけではないが'],

    ['につきましては', 'は'],
    ['におかれては', 'は'],
    ['におかれましては', 'は'],
    ['ついては', 'は'],
    ['ですから', 'つまり'],
    ['ですが、', 'だ。しかし、'],
    ['でした', 'だ'],
    ['おきましょう', 'おく'],
    ['あります', 'ある'],
    ['あるでしょう', 'あるだろう'],
    ['するでしょう', 'するだろう'],
    ['しましょう', 'しよう'],
    ['できません', 'できない'],
    ['しますが、', 'する。しかし、'],
    ['しますが', 'するが'],
    ['していきましょう', 'していこう'],
    ['していません', 'していない'],

    ['ようです', 'ようだ'],
    ['ようでしょう', 'ようだろう'],
    ['ようでした', 'ようだった'],
    ['そうです', 'そうだ'],
    ['そうでしょう', 'そうだろう'],
    ['そうでした', 'そうだった'],

    ['しております', 'している'],
    ['させていただいた', 'した'],
    ['構いません', '構わない'],
    ['かまいません', 'かまわない'],


    ['ご住所', '住所'],
    ['ご注文', '注文'],
    ['ご連絡', '連絡'],
    ['ご報告', '報告'],
    ['ご説明', '説明'],
    ['ご利用', '利用'],
    ['ご請求', '請求'],
    ['お客様', '客'],


    ['されませんが、', 'されない。しかし、'],
    ['されませんが', 'されないが'],
    ['されません', 'されない'],
    ['されているのです', 'されている'],

    ['してください', 'せよ'],
    ['しましたが、', 'した。しかし、'],
    ['しましたが', 'したが'],
    ['しました', 'した'],
    ['ました', 'た'],
    ['りました', 'った'],    

    ['しまいましたが、', 'しまった。しかし、'],
    ['しまいましたが', 'しまったが'],
    ['しまいました', 'しまった'],

    ['なりましたが', 'なったが'],
    ['ましたが、', 'た。しかし、'],
    ['ましたが', 'したが'],

    ['ますが、', 'る。しかし、'],
    ['ですが', 'だが'],
    ['ますが', 'るが'],

    ['したいです', 'したい'],
    ['たいです', 'たい'],

    ['しれませんが、', 'しれない。しかし、'],
    ['しれませんが', 'しれないが'],
    ['しましたね', 'した'],

    ['やりましたね', 'やった'],
    ['ということです', 'ことだ'],
    ['ことです', 'ことだ'],

    ['ください', 'ほしい'],
    ['ておきます', 'ておく'],
    ['いますか', 'いるだろうか'],
    ['ますか', 'いるのだろうか'],

    ['ありがとうございました', 'ありがとう'],
    ['ありがとうございます', 'ありがとう'],
    ['おはようございます', 'おはよう'],
    ['よろしく', ''],
    ['いたします', 'する'],

    ['います', 'いる'],
    ['いました', 'いた'],
    ['なりません', 'ならない'],
    ['します', 'する'],
    ['させました', 'させた'],

    ['なりました', 'なった'],
    ['ありません', 'ない'],
    ['のです。', 'のだ。'],

    ['てみました', 'てみた'],
    ['でしょうか', 'だろうか'],

    ['いるのです', 'いるのだ'],
    ['いるのでした', 'いるのだった'],

    ['ますよね', 'るだろう'],
    ['ですよね', 'だろう'],
    ['ですね', 'だな'],
    ['でした', 'だった'],

    ['ません', 'ない'],
    ['られます', 'られる'],
    ['られました', 'られた'],
    ['ります', 'る'],
    ['ます。', 'る。'],
    ['です。', 'だ。'],
    ['です', '']
];
  for (let i = 0; i < replaceTextBox.length; i++) {
    const regExp = new RegExp(replaceTextBox[i][0], "g");
    const after = replaceTextBox[i][1];
    input_text = input_text.replace(regExp, after);
  };

  return input_text;
}

以前作ったスクリプトで、エクセルマクロとしてインターネットで公開されていたものを、ChatGPTを使ってGASに変換したのですが、ソース元のサイトが見つけられず…

ちなみに、文章の敬体を常体に変換する機能だけを使う場合は、次に説明するAPIの登録は必要ありません。GPTによる添削機能を使用しない場合、「添削してほしい文章」列にあるテキストをそのまま常体へ変換します。

2. APIの利用料金(無料期間あり)

このツールは、一部OpenAIのAPIを使用します。APIとは、アプリケーションプログラミングインターフェース(Application Programming Interface)の略で、ソフトウェア同士が互いに連携・通信するための規約や手続きのセットです。APIを使用することで、あるアプリケーションが他のアプリケーションの機能やデータを簡単に利用できるようになります。例えば、OpenAI APIを利用することで、OpenAIが開発したAI技術を自分のアプリケーションやウェブサービスに組み込むことができます。

使用料

使用料は、利用するモデルやトークン数によって異なります。詳しくは、OpenAIの料金ページをご覧ください。

無料期間

OpenAI APIは、3ヶ月間無料で利用できます。この期間中に、以下の特典を受けられます。

  • $5分のクレジット: 各種モデルを試すために使用できます。

  • すべてのモデルへのアクセス: OpenAIが提供するすべてのAIモデルを試すことができます。

3. OpenAIでアカウントを作成・APIキーの取得

以下のnoteに、APIを使用するためのアカウントの作成、APIキー取得までの流れが詳しく説明されています。

4. スクリプトの実行を承認


ドキュメントをコピー

カスタムメニューをクリックして、「APIキーの保存」をクリックしてください。

添削GPT→APIキーの保存をクリック

はじめて「添削GPT」のカスタムメニューを使うと、「このドキュメントに許可されたスクリプトを実行するには、あなたの許可が必要です。」と表示されます。「続行」をクリックしてください。

「続行」をクリックすると、 グーグルアカウントへのログイン後、「このアプリはGoogleで確認されていません」とポップアップが出ます。左下の「詳細」をクリックし、「添削GPT(安全ではないページ)に移動をクリックして進んでください。

「添削GPTがGoogleアカウントへのアクセスをリクエストしています」とポップアップが出ます。下部の「許可」をクリックしてください。

5. スプレッドシートにAPIキーを保存

許可をクリックしたら、もう一度カスタムメニューをクリックして、「APIキーの保存」をクリックしてください。

「APIキー」というポップアップダイアログが出るので、「値」のところに、先ほど取得したAPIキーをペーストして「Save」をクリックしてください。また、APIキーは第三者に知られないようにしてください。

6. 「添削してほしい文章」列にテキストを入力する。

一番上の緑色の部分には、GPT-3.5への細かい添削指示をプロンプトとして載せています。そのままでも問題なく動作しますが、必要があればプロンプトを変更して使用してください。

B列には、「氏名または項目」と書かれた列があります。この列に入力されているテキストは、添削には使用しないので、必要に応じて使用してください。

C列には「添削してほしい文章」列があります。ここに、AIに添削してほしい文章を入力するか、別の文書からコピペして使用してください。一応サンプルとしていくつかの文章をすでに入力してあります。実際に使用する際にはサンプルの文章は削除してお使いください。

7. GPTを使用して文章を添削

使い方

カスタムメニューから、「GPT-3.5による添削処理」をクリックすると、処理が開始します。スクリプトを実行すると、「次の行も処理しますか?」とポップアップが出ます。

「OK」を選択…次の行から続けて処理を行っていきます。
「いいえ」を選択…現在の行のみ処理して、スクリプトを終了します。

OKをクリックすると自動で処理が継続されます。

下のように、修正前の文章も一緒に生成されてしまう時があるので、その場合は、不必要な部分を削除してください。

ウェブサイトを成長させたいのであれば、WEBの全てを知り尽くしたwebマーケターに任せましょう。

修正後:
ウェブサイトを成長させたいのであれば、WEBの全てを熟知したwebマーケターに任せましょう。

時折不要な出力がされる
不必要なテキストが生成された場合は、削除して修正後の文章のみにする。

添削性能の評価

添削処理では、文の基本的な部分についてはうまく機能しています。特に、主語と述語が一致しているかどうかのチェックに関しては良い結果が見られます。これは、文が述べる内容と文の主要な部分が適切にマッチしているかどうかを意味します。また、「急激に」といった副詞の配置も適切に修正できているようです。

しかし、文章の添削処理にはいくつかの課題もあります。たとえば、「している」と「されている」のような能動形と受動形の使い分けに関しては、時折うまく修正されないことがあります。これは、文が示すアクションが誰によって行われているか(能動形)と、誰に対して行われているか(受動形)の判断が難しいためであると考えられます。また、表記のゆれ(表記の不統一)についての修正も安定していません、

総じて、この添削処理は基本的な文法チェックには優れていますが、より複雑な文体の調整や表記の一貫性に関しては改善の余地があります。

8. 文章の敬体を常体に変換

カスタムメニューから、「敬体を常体に変換」をクリックすると、処理が開始します。APIを登録せず、人工知能による添削機能を使用しない場合は、「添削してほしい文章」にあるテキストを使って変換します。

見づらいですが、左側から「添削してほしい文章」「GPT-3.5による添削」「敬体を常体に変換」となっています。主語と述語のねじれ、文の長さや構造などが修正され、さらに常体の文章に変換されています。

9.おわりに

今回は、人工知能に添削してもらうツールを作成しました。基本的な文章の添削をAIが行うことによって、人為的ミスをできるだけ防ぐことができたらと思います。作成にあたって、APIの使用とGASへの適用は、下記のサイトを参考にしました。

また、スクリプトの作成にあたっては、当然ですがGPT-4を使用しました。

添削処理においては、OpenAIのGPTモデルを用いて文脈や文法を理解し、より自然な日本語表現に修正するアプローチを取りました。GPTモデルは、文の内容や文法について深い理解を示すことができますが、特定の文体や繊細な表現に関してはまだ課題が残ります。

敬体から常体への変換については、Google Apps Scriptの強力な文字列処理機能を使用しました。これにより、テキストの変換処理を迅速かつ効率的に行うことが可能です。このスクリプトは、日常的に使用される敬語表現をカジュアルな表現に変換することに重点を置いています。

今後は、これらの機能をさらに改善し、より正確で自然な日本語表現を実現することが目標です。また、ユーザーからのフィードバックを積極的に取り入れ、機能の改善を図っていきたいと考えています。