“敬体(です・ます調)”を、”常体(だ・である調)”に一気に置換したい!【GAS・Googleドキュメント】

ブログ

みなさんこんにちは!クフルダモノーツYoshito Kimura(k1mu)です!

 

なんだか、GAS(Google Apps Script)のGoogleドキュメントに関するネット上の情報が少ない…気がします。

今回は、Googleドキュメントで手軽に“敬体”の文章を“常体”に置換したくて試行錯誤したまとめです。

誰かの参考になれば幸いです…!

Google Apps Scriptの使い方

まず、Googleドキュメントの左上のツールからスクリプトエディタを開きます。

replaceText()メソッドを使う

GASを使って文字の置換を行うためには、replaceText()メソッドを使います。

replaceText("変換したい言葉", "変換した後の言葉")

メソッドの一覧↓

Document Service  |  Apps Script  |  Google Developers

コードを書く

とりあえずコードを書いてみました。

DocumentApp.openById()の中には、開きたいドキュメントの
「https://docs.google.com/document/d/ここの文字列/edit」
を入力します。

function ZyoutaiGo(){

//GoogleドキュメントをIDで開く場合
var doc = DocumentApp.openById("ここにidを書く");

//GoogleドキュメントをURLで開く場合
//var doc = DocumentApp.openByUrl("ここにurlを書く");

//開いたドキュメントを「変数doc」に代入
var doc = DocumentApp.getActiveDocument()


//「変数doc」からBody要素を取得し「変数body」に代入
var body = doc.getBody();

//置換していく
body.replaceText("見ること.できる", "見られる");
body.replaceText("書くこと.できる", "書ける");
body.replaceText("読むこと.できる", "読める");
body.replaceText("食べること.できる", "食べられる");
body.replaceText("行うこと.できる", "行える");
body.replaceText("喋ること.できる", "喋られる");
body.replaceText("挙げること.できる", "挙げられる");
body.replaceText("知ること.できる", "知れる");
body.replaceText("起こすこと.できる", "起こせる");
body.replaceText("行うこと.できる", "行える");

body.replaceText("すること.できる", "できる");
body.replaceText("やること.できる", "やれる");
body.replaceText("すること.できます", "できる");
body.replaceText("させること.できます", "できる");
body.replaceText("やること.できます", "やれる");
body.replaceText("すること.できません", "できない");
body.replaceText("やること.できません", "やれない");
body.replaceText("できるようにすること", "可能にすること");
body.replaceText("しているわけではありません", "していない");
body.replaceText("されているわけではありません", "されていない");
body.replaceText("できるようになった", "可能になった");

body.replaceText("されることを", "を");
body.replaceText("されることに", "に");
body.replaceText("されることは", "は");
body.replaceText("されることも", "も");
body.replaceText("することを", "を");
body.replaceText("することに", "に");
body.replaceText("することは", "は");
body.replaceText("することも", "も");
body.replaceText("でしたら", "なら");

body.replaceText("というような", "");
body.replaceText("ということ", "」");
body.replaceText("というもの", "」");
body.replaceText("という", "");

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

body.replaceText("見えます", "見える");
body.replaceText("見せます", "見せる");
body.replaceText("捨てます", "捨てる");
body.replaceText("食べます", "食べる");
body.replaceText("入れます", "入れる");
body.replaceText("伝えます", "伝える");
body.replaceText("経ます", "経る");
body.replaceText("尋ます", "尋ねる");
body.replaceText("考えます", "考える");
body.replaceText("考えます", "考える");


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

body.replaceText("ありませんでした", "なかった");
body.replaceText("わけではありませんが、", "わけではない。しかし、");
body.replaceText("わけではありませんが", "わけではないが");

body.replaceText("につきましては", "は");
body.replaceText("におかれては", "は");
body.replaceText("におかれましては", "は");
body.replaceText("ついては", "は");
body.replaceText("ですから", "つまり");
body.replaceText("ですが、", "だ。しかし、");
body.replaceText("でした", "だ");
body.replaceText("おきましょう", "おく");
body.replaceText("しましょう", "しよう");
body.replaceText("できません", "できない");
body.replaceText("しますが、", "する。しかし、");
body.replaceText("しますが", "するが");
body.replaceText("していきましょう", "していこう");
body.replaceText("していません", "していない");

body.replaceText("ようです", "ようだ");
body.replaceText("ようでしょう", "ようだろう");
body.replaceText("ようでした", "ようだった");
body.replaceText("そうです", "そうだ");
body.replaceText("そうでしょう", "そうだろう");
body.replaceText("そうでした", "そうだった");

body.replaceText("しております", "している");
body.replaceText("させていただいた", "した");
body.replaceText("構いません", "構わない");
body.replaceText("かまいません", "かまわない");


body.replaceText("ご住所", "住所");
body.replaceText("ご注文", "注文");
body.replaceText("ご連絡", "連絡");
body.replaceText("ご報告", "報告");
body.replaceText("ご説明", "説明");
body.replaceText("ご利用", "利用");
body.replaceText("ご請求", "請求");
body.replaceText("お客様", "客");


body.replaceText("されませんが、", "されない。しかし、");
body.replaceText("されませんが", "されないが");
body.replaceText("されません", "されない");
body.replaceText("されているのです", "されている");

body.replaceText("してください", "せよ");
body.replaceText("しましたが、", "した。しかし、");
body.replaceText("しましたが", "したが");
body.replaceText("しました", "した");

body.replaceText("しまいましたが、", "しまった。しかし、");
body.replaceText("しまいましたが", "しまったが");
body.replaceText("しまいました", "しまった");

body.replaceText("なりましたが", "なったが");
body.replaceText("ましたが、", "た。しかし、");
body.replaceText("ましたが", "したが");

body.replaceText("ますが、", "る。しかし、");
body.replaceText("ですが", "だが");
body.replaceText("ますが", "るが");

body.replaceText("したいです", "したい");
body.replaceText("たいです", "たい");

body.replaceText("しれませんが、", "しれない。しかし、");
body.replaceText("しれませんが", "しれないが");
body.replaceText("しましたね", "した");

body.replaceText("やりましたね", "やった");
body.replaceText("ということです", "ことだ");
body.replaceText("ことです", "ことだ");

body.replaceText("ください", "ほしい");
body.replaceText("ておきます", "ておく");
body.replaceText("いますか", "いるだろうか");
body.replaceText("ますか", "いるのだろうか");

body.replaceText("ありがとうございました", "ありがとう");
body.replaceText("ありがとうございます", "ありがとう");
body.replaceText("おはようございます", "おはよう");
body.replaceText("よろしく", "");
body.replaceText("いたします", "する");

body.replaceText("います", "いる");
body.replaceText("いました", "いた");
body.replaceText("なりません", "ならない");
body.replaceText("します", "する");
body.replaceText("させました", "させた");

body.replaceText("なりました", "なった");
body.replaceText("ありません", "ない");
body.replaceText("のです。", "のだ。");

body.replaceText("てみました", "てみた");
body.replaceText("でしょうか", "だろうか");

body.replaceText("いるのです", "いるのだ");
body.replaceText("いるのでした", "いるのだった");

body.replaceText("ますよね", "るだろう");
body.replaceText("ですよね", "だろう");
body.replaceText("ですね", "だな");
body.replaceText("でした", "だった");

body.replaceText("ません", "ない");
body.replaceText("られます", "られる");
body.replaceText("ります", "る");
body.replaceText("ます。", "る。");
body.replaceText("です。", "だ。");
body.replaceText("です", "");

}

下の方にたくさんある

replaceText("変換したい言葉", "変換した後の言葉")

は、とりあえずよく使われそうなものを書きました。

コード作成時の工夫

こんな感じでスプレッドシートでセルを分けて

textjoin関数(オレンジ色の列に入れている)などを利用して書いたコードを、スクリプトエディタに貼り付けると、書いている途中で並び替えができてラクでした。

他のもっと良い方法もあるかもしれません。

先に変換したいものを上に書く。

スクリプトは上から順次実行されるで

body.replaceText("変換したい言葉", "変換した後の言葉")

の並びは、先に変換したいものを上に持ってきています。

なぜなら、たとえば『「返します。」から「返す。」への変換』より先に『「ます。」から「る。」への変換を実行すると「返します。」「返しる。」になってしまうからです。

「~ですが、」を「だ。しかし、」にする。

上記のスクリプトには、置換した文章が読みやすくなる命令も含まれています。

たとえば、「~ですが、」を「だ。しかし、」に置換する命令や

body.replaceText("見ること.できる", "見られる");

などがそれです。(「.」は正規表現)

試してみた

適当なウィキペディアの文章を、このスクリプトにかけてみました。

ウィキペディアは、ジンボ・ウェールズが2001年1月15日に個人的なプロジェクトとして開始しました。2003年6月以降は非営利団体であるウィキメディア財団によって運営されています。資金面ではウィキペディアは多くの方々からの寄付によって支えられています(wikimedia:寄付を参照)。
ウィキペディアは現在、250を超える言語版で進行中です(Wikipedia:多言語プロジェクトとしてのウィキペディアを参照)。全言語版総計で既に2500万項目以上の記事が作成されています。

Wikipedia:ウィキペディアについて

するとワンクリックで…

ウィキペディアは、ジンボ・ウェールズが2001年1月15日に個人的なプロジェクトとして開始した。2003年6月以降は非営利団体であるウィキメディア財団によって運営されている。資金面ではウィキペディアは多くの方々からの寄付によって支えられている(wikimedia:寄付を参照)。
ウィキペディアは現在、250を超える言語版で進行中(Wikipedia:多言語プロジェクトとしてのウィキペディアを参照)。全言語版総計で既に2500万項目以上の記事が作成されている。

こんな感じ。

gifファイル版

そこそこ良い仕上がりになった気がします。

まとめと使いどころ

このやり方は、片っ端から置換をかけてるだけの力技です。
もっと正確に置換させるなら形態素解析機械学習などが必要なのかもしれません。

しかし、上のコードでも一つずつカチャカチャ打ち直すより遥かに素早く直せると思います。

あと、結果が気に入らなければ自分で中身を書き替えられるので、カスタマイズも可能です。

ちょっとした文章の直しがしたい時に良いんじゃないでしょうか。

 

それから、文章の直し以外にもサービスの利用規約みたいなニュアンスよりも内容をしっかり捉えたい文章に使うと読みやすくなって便利な気がします。

たとえば、次の文章はこちらから引っ張ってきた利用規約のテンプレートの一部です。

この利用規約(以下,「本規約」といいます。)は,_____(以下,「当社」といいます。)がこのウェブサイト上で提供するサービス(以下,「本サービス」といいます。)の利用条件を定めるものです。登録ユーザーの皆さま(以下,「ユーザー」といいます。)には,本規約に従って,本サービスをご利用いただきます。

第1条(適用)

本規約は,ユーザーと当社との間の本サービスの利用に関わる一切の関係に適用されるものとします。
当社は本サービスに関し,本規約のほか,ご利用にあたってのルール等,各種の定め(以下,「個別規定」といいます。)をすることがあります。これら個別規定はその名称のいかんに関わらず,本規約の一部を構成するものとします。
本規約の規定が前条の個別規定の規定と矛盾する場合には,個別規定において特段の定めなき限り,個別規定の規定が優先されるものとします。

https://kiyaku.jp/hinagata/gp.html

これがワンクリックで…

この利用規約(以下,「本規約」という。)は,_____(以下,「当社」という。)がこのウェブサイト上で提供するサービス(以下,「本サービス」という。)の利用条件を定めるものだ。登録ユーザーの皆さま(以下,「ユーザー」という。)には,本規約に従って,本サービスを利用してもらう。

第1条(適用)
本規約は,ユーザーと当社との間の本サービスの利用に関わる一切の関係に適用されるものとする。
当社は本サービスに関し,本規約のほか,利用にあたってのルール等,各種の定め(以下,「個別規定」という。)をすることがある。これら個別規定はその名称のいかんに関わらず,本規約の一部を構成するものとする。
本規約の規定が前条の個別規定の規定と矛盾する場合には,個別規定において特段の定めなき限り,個別規定の規定が優先されるものとする。

みたいになります。

参考にさせていただいたページ

Googleドキュメント内のテキストを置換したい replaceText
日々Google Apps Scriptを書く中で、気づいたことや作ったものなどを更新しています。
Googleドキュメントにアクセスする(1/6):初心者のためのGoogle Apps Scriptプログラミング入門 - libro
Googleドキュメントにアクセスする(1/6):初心者のた&#12...

https://kozu-osaka.jp/cms/wp-content/uploads/2020/11/cd153e142bea0cf2edca6bafdd743481.pdf

タイトルとURLをコピーしました