なんだか、ネット上にGAS(Google Apps Script)のGoogleドキュメントに関するの情報が少ない…気がします。
今回は、Googleドキュメントで手軽に“敬体”の文章を“常体”に置換したくて試行錯誤したまとめです。
誰かの参考になれば幸いです…!
Google Apps Scriptの使い方
まず、Googleドキュメントの左上の拡張機能からApps Scriptをクリック。
プロジェクトが作成されるまで待ちます。
プロジェクトが作成されたら「コード.gs」にコードを書いていきます。
replaceText()メソッドを使う
GASを使って文字の置換を行うためには、replaceText()メソッドを使います。
replaceText("変換したい言葉", "変換した後の言葉")
GASはJavaScriptをベースにした言語なので、似た書き方ですね。
GASのメソッドの一覧↓
コードを書く
とりあえず、置換するためのコードを書いてみました。
// 敬体を常体に直す関数
function ZyotaiGo() {
//GoogleドキュメントをIDで開く場合
let doc = DocumentApp.openById("XXXXXXXXXXXXXXXXXXXXX");
//GoogleドキュメントをURLで開く場合
//let doc = DocumentApp.openByUrl("ここにurlを書く");
//「変数doc」からBody要素を取得し「変数body」に代入
let body = doc.getBody();
//for文で配列の中身にマッチするものを全て置換していく
for (let i = 0; i < replaceTextBox.length; i++) {
body.replaceText(replaceTextBox[i][0], replaceTextBox[i][1]);
};
};
常体を敬体に直す関数「ZyotaiGo(命名は適当)」です。
DocumentApp.openById()
DocumentApp.openById()の中には、開きたいドキュメントの
を入力します。
「置換前のテキスト」と「置換後のテキスト」を格納する配列
上記の関数のfor文の中で使う配列を定義します。
「置換前のテキスト」と「置換後のテキスト」を格納する配列(replaceTextBox)に、よく使われそうな表現をパッと思いつく限り書きました。
//「置換前のテキスト」と「置換後のテキスト」を格納する配列を定義
const replaceTextBox = [
[')', ')'],
['(', '('],
['見ること.できる', '見られる'],
['書くこと.できる', '書ける'],
['読むこと.できる', '読める'],
['食べること.できる', '食べられる'],
['行うこと.できる', '行える'],
['喋ること.できる', '喋られる'],
['挙げること.できる', '挙げられる'],
['知ること.できる', '知れる'],
['起こすこと.できる', '起こせる'],
['行うこと.できる', '行える'],
['すること.できる', 'できる'],
['やること.できる', 'やれる'],
['すること.できます', 'できる'],
['させること.できます', 'できる'],
['やること.できます', 'やれる'],
['すること.できません', 'できない'],
['やること.できません', 'やれない'],
['できるようにすること', '可能にすること'],
['しているわけではありません', 'していない'],
['されているわけではありません', 'されていない'],
['できるようになった', '可能になった'],
['されることを', 'を'],
['されることに', 'に'],
['されることは', 'は'],
['されることも', 'も'],
['することを', 'を'],
['することに', 'に'],
['することは', 'は'],
['することも', 'も'],
['でしたら', 'なら'],
['というような', ''],
['ということ', '」'],
['というもの', '」'],
['という', ''],
['負います', '負う'],
['負いません', '負わない'],
['着ます', '着る'],
['過ぎます', '過ぎる'],
['閉じます', '閉じる'],
['落ちます', '落ちる'],
['煮ます', '煮る'],
['浴びます', '浴びる'],
['見ます', '見る'],
['含みます', '含む'],
['用います', '用いる'],
['作ります', '作る'],
['返します', '返す'],
['立ちます', '立つ'],
['付きます', '付く'],
['づきます', 'づく'],
['帰ります', '帰る'],
['並びます', '並ぶ'],
['並びます', '並ぶ'],
['囲みます', '囲う'],
['呼びます', '呼ぶ'],
['使います', '使う'],
['行いません', '行わない'],
['行います', '行う'],
['おこないました', 'おこなった'],
['言います', '言う'],
['言いません', '言わない'],
['いきます', 'いく'],
['いいます', 'いう'],
['除きます', '除く'],
['分かります', '分かる'],
['分かりません', '分からない'],
['思います', '思う'],
['思いません', '思わない'],
['感じます', '感じる'],
['出来ます', '出来る'],
['できます', 'できる'],
['受け取ります', '受け取る'],
['従います', '従う'],
['知っています', '知っている'],
['知りません', '知らない'],
['限りません', '限らない'],
['限ります', '限る'],
['きました', 'きた'],
['見えます', '見える'],
['見せます', '見せる'],
['捨てます', '捨てる'],
['食べます', '食べる'],
['入れます', '入れる'],
['伝えます', '伝える'],
['経ます', '経る'],
['尋ます', '尋ねる'],
['考えます', '考える'],
['考えます', '考える'],
['していただく', 'してもらう'],
['させていただきます', 'させてもらう'],
['ご覧になる', '見る'],
['ご覧ください', '見よ'],
['ご参照ください', '参照せよ'],
['ご注意ください', '注意せよ'],
['ご確認ください', '確認せよ'],
['お聞かせください', '述べよ'],
['ご連絡ください', '連絡せよ'],
['ご了承ください', '了承せよ'],
['ご説明ください', '説明せよ'],
['お帰りください', '帰宅せよ'],
['ご依頼ください', '依頼せよ'],
['お知らせください', '知らせよ'],
['お問い合わせください', '問い合わせよ'],
['お願いいたします', '頼む'],
['お願いします', '頼む'],
['ご利用いただきます', '利用してもらう'],
['お読みいただきますよう', '読むよう'],
['お読みいただくよう', '読むよう'],
['お読みになり', '読み'],
['頂きます', '頂く'],
['いただきます', 'いただく'],
['いただくこと', 'もらうこと'],
['場合がございます', '場合がある'],
['場合もございます', '場合もある'],
['ありませんでした', 'なかった'],
['わけではありませんが、', 'わけではない。しかし、'],
['わけではありませんが', 'わけではないが'],
['につきましては', 'は'],
['におかれては', 'は'],
['におかれましては', 'は'],
['ついては', 'は'],
['ですから', 'つまり'],
['ですが、', 'だ。しかし、'],
['でした', 'だ'],
['おきましょう', 'おく'],
['あるでしょう', 'あるだろう'],
['しましょう', 'しよう'],
['できません', 'できない'],
['しますが、', 'する。しかし、'],
['しますが', 'するが'],
['していきましょう', 'していこう'],
['していません', 'していない'],
['ようです', 'ようだ'],
['ようでしょう', 'ようだろう'],
['ようでした', 'ようだった'],
['そうです', 'そうだ'],
['そうでしょう', 'そうだろう'],
['そうでした', 'そうだった'],
['しております', 'している'],
['させていただいた', 'した'],
['構いません', '構わない'],
['かまいません', 'かまわない'],
['ご住所', '住所'],
['ご注文', '注文'],
['ご連絡', '連絡'],
['ご報告', '報告'],
['ご説明', '説明'],
['ご利用', '利用'],
['ご請求', '請求'],
['お客様', '客'],
['されませんが、', 'されない。しかし、'],
['されませんが', 'されないが'],
['されません', 'されない'],
['されているのです', 'されている'],
['してください', 'せよ'],
['しましたが、', 'した。しかし、'],
['しましたが', 'したが'],
['しました', 'した'],
['しまいましたが、', 'しまった。しかし、'],
['しまいましたが', 'しまったが'],
['しまいました', 'しまった'],
['なりましたが', 'なったが'],
['ましたが、', 'た。しかし、'],
['ましたが', 'したが'],
['ますが、', 'る。しかし、'],
['ですが', 'だが'],
['ますが', 'るが'],
['したいです', 'したい'],
['たいです', 'たい'],
['しれませんが、', 'しれない。しかし、'],
['しれませんが', 'しれないが'],
['しましたね', 'した'],
['やりましたね', 'やった'],
['ということです', 'ことだ'],
['ことです', 'ことだ'],
['ください', 'ほしい'],
['ておきます', 'ておく'],
['いますか', 'いるだろうか'],
['ますか', 'いるのだろうか'],
['ありがとうございました', 'ありがとう'],
['ありがとうございます', 'ありがとう'],
['おはようございます', 'おはよう'],
['よろしく', ''],
['いたします', 'する'],
['います', 'いる'],
['いました', 'いた'],
['なりません', 'ならない'],
['します', 'する'],
['させました', 'させた'],
['なりました', 'なった'],
['ありません', 'ない'],
['のです。', 'のだ。'],
['てみました', 'てみた'],
['でしょうか', 'だろうか'],
['いるのです', 'いるのだ'],
['いるのでした', 'いるのだった'],
['ますよね', 'るだろう'],
['ですよね', 'だろう'],
['ですね', 'だな'],
['でした', 'だった'],
['ません', 'ない'],
['られます', 'られる'],
['ります', 'る'],
['ます。', 'る。'],
['です。', 'だ。'],
['です', '']
];
先に変換したいものを上に書く。
スクリプトは上から順次実行されるで、
['変換したい言葉', '変換した後の言葉']
の並び順は、先に変換したいものを上に持ってきています。
なぜなら、たとえば『「返します。」から「返す。」への変換』より先に『「ます。」から「る。」への変換』を実行すると「返します。」が「返しる。」になるからです。
「~ですが、」を「だ。しかし、」にする。
上記のスクリプトには、置換した文章が読みやすくなる命令も含まれています。
たとえば、「~ですが、」を「だ。しかし、」に置換する命令や
['見ること.できる', '見られる']
などがそれです。
コード全体(コピペOK)
つまり、合わせるとこう↓なります。
(そのまま「コード.gs」にコピペすれば動くはずです。)
// 常体を敬体に直す関数
function ZyotaiGo() {
//GoogleドキュメントをIDで開く場合
let doc = DocumentApp.openById("XXXXXXXXXXXXXXXXXXXXX");
//GoogleドキュメントをURLで開く場合
//let doc = DocumentApp.openByUrl("ここにurlを書く");
//「変数doc」からBody要素を取得し「変数body」に代入
let body = doc.getBody();
//for文で配列の中身にマッチするものを全て置換していく
for (let i = 0; i < replaceTextBox.length; i++) {
body.replaceText(replaceTextBox[i][0], replaceTextBox[i][1]);
};
};
//----------------------
//「置換前のテキスト」と「置換後のテキスト」を格納する配列を定義
const replaceTextBox = [
[')', ')'],
['(', '('],
['見ること.できる', '見られる'],
['書くこと.できる', '書ける'],
['読むこと.できる', '読める'],
['食べること.できる', '食べられる'],
['行うこと.できる', '行える'],
['喋ること.できる', '喋られる'],
['挙げること.できる', '挙げられる'],
['知ること.できる', '知れる'],
['起こすこと.できる', '起こせる'],
['行うこと.できる', '行える'],
['すること.できる', 'できる'],
['やること.できる', 'やれる'],
['すること.できます', 'できる'],
['させること.できます', 'できる'],
['やること.できます', 'やれる'],
['すること.できません', 'できない'],
['やること.できません', 'やれない'],
['できるようにすること', '可能にすること'],
['しているわけではありません', 'していない'],
['されているわけではありません', 'されていない'],
['できるようになった', '可能になった'],
['されることを', 'を'],
['されることに', 'に'],
['されることは', 'は'],
['されることも', 'も'],
['することを', 'を'],
['することに', 'に'],
['することは', 'は'],
['することも', 'も'],
['でしたら', 'なら'],
['というような', ''],
['ということ', '」'],
['というもの', '」'],
['という', ''],
['負います', '負う'],
['負いません', '負わない'],
['着ます', '着る'],
['過ぎます', '過ぎる'],
['閉じます', '閉じる'],
['落ちます', '落ちる'],
['煮ます', '煮る'],
['浴びます', '浴びる'],
['見ます', '見る'],
['含みます', '含む'],
['用います', '用いる'],
['作ります', '作る'],
['返します', '返す'],
['立ちます', '立つ'],
['付きます', '付く'],
['づきます', 'づく'],
['帰ります', '帰る'],
['並びます', '並ぶ'],
['並びます', '並ぶ'],
['囲みます', '囲う'],
['呼びます', '呼ぶ'],
['使います', '使う'],
['行いません', '行わない'],
['行います', '行う'],
['おこないました', 'おこなった'],
['言います', '言う'],
['言いません', '言わない'],
['いきます', 'いく'],
['いいます', 'いう'],
['除きます', '除く'],
['分かります', '分かる'],
['分かりません', '分からない'],
['思います', '思う'],
['思いません', '思わない'],
['感じます', '感じる'],
['出来ます', '出来る'],
['できます', 'できる'],
['受け取ります', '受け取る'],
['従います', '従う'],
['知っています', '知っている'],
['知りません', '知らない'],
['限りません', '限らない'],
['限ります', '限る'],
['きました', 'きた'],
['見えます', '見える'],
['見せます', '見せる'],
['捨てます', '捨てる'],
['食べます', '食べる'],
['入れます', '入れる'],
['伝えます', '伝える'],
['経ます', '経る'],
['尋ます', '尋ねる'],
['考えます', '考える'],
['考えます', '考える'],
['していただく', 'してもらう'],
['させていただきます', 'させてもらう'],
['ご覧になる', '見る'],
['ご覧ください', '見よ'],
['ご参照ください', '参照せよ'],
['ご注意ください', '注意せよ'],
['ご確認ください', '確認せよ'],
['お聞かせください', '述べよ'],
['ご連絡ください', '連絡せよ'],
['ご了承ください', '了承せよ'],
['ご説明ください', '説明せよ'],
['お帰りください', '帰宅せよ'],
['ご依頼ください', '依頼せよ'],
['お知らせください', '知らせよ'],
['お問い合わせください', '問い合わせよ'],
['お願いいたします', '頼む'],
['お願いします', '頼む'],
['ご利用いただきます', '利用してもらう'],
['お読みいただきますよう', '読むよう'],
['お読みいただくよう', '読むよう'],
['お読みになり', '読み'],
['頂きます', '頂く'],
['いただきます', 'いただく'],
['いただくこと', 'もらうこと'],
['場合がございます', '場合がある'],
['場合もございます', '場合もある'],
['ありませんでした', 'なかった'],
['わけではありませんが、', 'わけではない。しかし、'],
['わけではありませんが', 'わけではないが'],
['につきましては', 'は'],
['におかれては', 'は'],
['におかれましては', 'は'],
['ついては', 'は'],
['ですから', 'つまり'],
['ですが、', 'だ。しかし、'],
['でした', 'だ'],
['おきましょう', 'おく'],
['あるでしょう', 'あるだろう'],
['しましょう', 'しよう'],
['できません', 'できない'],
['しますが、', 'する。しかし、'],
['しますが', 'するが'],
['していきましょう', 'していこう'],
['していません', 'していない'],
['ようです', 'ようだ'],
['ようでしょう', 'ようだろう'],
['ようでした', 'ようだった'],
['そうです', 'そうだ'],
['そうでしょう', 'そうだろう'],
['そうでした', 'そうだった'],
['しております', 'している'],
['させていただいた', 'した'],
['構いません', '構わない'],
['かまいません', 'かまわない'],
['ご住所', '住所'],
['ご注文', '注文'],
['ご連絡', '連絡'],
['ご報告', '報告'],
['ご説明', '説明'],
['ご利用', '利用'],
['ご請求', '請求'],
['お客様', '客'],
['されませんが、', 'されない。しかし、'],
['されませんが', 'されないが'],
['されません', 'されない'],
['されているのです', 'されている'],
['してください', 'せよ'],
['しましたが、', 'した。しかし、'],
['しましたが', 'したが'],
['しました', 'した'],
['しまいましたが、', 'しまった。しかし、'],
['しまいましたが', 'しまったが'],
['しまいました', 'しまった'],
['なりましたが', 'なったが'],
['ましたが、', 'た。しかし、'],
['ましたが', 'したが'],
['ますが、', 'る。しかし、'],
['ですが', 'だが'],
['ますが', 'るが'],
['したいです', 'したい'],
['たいです', 'たい'],
['しれませんが、', 'しれない。しかし、'],
['しれませんが', 'しれないが'],
['しましたね', 'した'],
['やりましたね', 'やった'],
['ということです', 'ことだ'],
['ことです', 'ことだ'],
['ください', 'ほしい'],
['ておきます', 'ておく'],
['いますか', 'いるだろうか'],
['ますか', 'いるのだろうか'],
['ありがとうございました', 'ありがとう'],
['ありがとうございます', 'ありがとう'],
['おはようございます', 'おはよう'],
['よろしく', ''],
['いたします', 'する'],
['います', 'いる'],
['いました', 'いた'],
['なりません', 'ならない'],
['します', 'する'],
['させました', 'させた'],
['なりました', 'なった'],
['ありません', 'ない'],
['のです。', 'のだ。'],
['てみました', 'てみた'],
['でしょうか', 'だろうか'],
['いるのです', 'いるのだ'],
['いるのでした', 'いるのだった'],
['ますよね', 'るだろう'],
['ですよね', 'だろう'],
['ですね', 'だな'],
['でした', 'だった'],
['ません', 'ない'],
['られます', 'られる'],
['ります', 'る'],
['ます。', 'る。'],
['です。', 'だ。'],
['です', '']
];
ZyotaiGo();
あとはここの「実行」を押せばGASを実行できます。
うまくいけば、下の実行ログに「実行完了」と出るはずです。
試してみた
適当なウィキペディアの文章を、このスクリプトにかけてみました。
ウィキペディアは、ジンボ・ウェールズが2001年1月15日に個人的なプロジェクトとして開始しました。2003年6月以降は非営利団体であるウィキメディア財団によって運営されています。資金面ではウィキペディアは多くの方々からの寄付によって支えられています(wikimedia:寄付を参照)。
Wikipedia:ウィキペディアについて
ウィキペディアは現在、250を超える言語版で進行中です(Wikipedia:多言語プロジェクトとしてのウィキペディアを参照)。全言語版総計で既に2500万項目以上の記事が作成されています。
するとワンクリックで…
ウィキペディアは、ジンボ・ウェールズが2001年1月15日に個人的なプロジェクトとして開始した。2003年6月以降は非営利団体であるウィキメディア財団によって運営されている。資金面ではウィキペディアは多くの方々からの寄付によって支えられている(wikimedia:寄付を参照)。
ウィキペディアは現在、250を超える言語版で進行中(Wikipedia:多言語プロジェクトとしてのウィキペディアを参照)。全言語版総計で既に2500万項目以上の記事が作成されている。
こんな感じ。
そこそこ良い仕上がりになった気がします。
ちなみに
こちらの文章校正ウェブアプリ↓に、ほぼ同じ処理を入れてみたので試してみてください。
まとめと使いどころ
とはいえ、あまり正確ではない
このやり方は、片っ端から置換をかけてるだけの力技です。
正確に置換させるなら形態素解析や機械学習が必要なのかもしれません。
しかし、上のコードでも一つずつカチャカチャ打ち直すより遥かに素早く直せると思います。
あと、結果が気に入らなければ自分で中身を書き替えれるので、カスタマイズも可能です。
軽く文章の直しがしたい時に良いんじゃないでしょうか。
意外な使い道
実は、文章の直し以外にもサービスの利用規約みたいなニュアンスよりも内容をしっかり捉えたい文章に使うと便利な気がします。
たとえば、次の文章はこちらから引っ張ってきた利用規約のテンプレートの一部です。
この利用規約(以下,「本規約」といいます。)は,_____(以下,「当社」といいます。)がこのウェブサイト上で提供するサービス(以下,「本サービス」といいます。)の利用条件を定めるものです。登録ユーザーの皆さま(以下,「ユーザー」といいます。)には,本規約に従って,本サービスをご利用いただきます。
第1条(適用)
本規約は,ユーザーと当社との間の本サービスの利用に関わる一切の関係に適用されるものとします。
https://kiyaku.jp/hinagata/gp.html
当社は本サービスに関し,本規約のほか,ご利用にあたってのルール等,各種の定め(以下,「個別規定」といいます。)をすることがあります。これら個別規定はその名称のいかんに関わらず,本規約の一部を構成するものとします。
本規約の規定が前条の個別規定の規定と矛盾する場合には,個別規定において特段の定めなき限り,個別規定の規定が優先されるものとします。
これがワンクリックで…
この利用規約(以下,「本規約」という。)は,_____(以下,「当社」という。)がこのウェブサイト上で提供するサービス(以下,「本サービス」という。)の利用条件を定めるものだ。登録ユーザーの皆さま(以下,「ユーザー」という。)には,本規約に従って,本サービスを利用してもらう。
第1条(適用)
本規約は,ユーザーと当社との間の本サービスの利用に関わる一切の関係に適用されるものとする。
当社は本サービスに関し,本規約のほか,利用にあたってのルール等,各種の定め(以下,「個別規定」という。)をすることがある。これら個別規定はその名称のいかんに関わらず,本規約の一部を構成するものとする。
本規約の規定が前条の個別規定の規定と矛盾する場合には,個別規定において特段の定めなき限り,個別規定の規定が優先されるものとする。
みたいになります。
敬体より常体の方が、文字数が少なくなって読みやすく感じます。
参考にさせていただいたページ
https://kozu-osaka.jp/cms/wp-content/uploads/2020/11/cd153e142bea0cf2edca6bafdd743481.pdf