投稿

ラベル(LanguageApp)が付いた投稿を表示しています

「翻訳しないをする」GAS LanguageApp.translate

イメージ
 機械翻訳を行なっていると、部分的に翻訳したく無い箇所がある事に気がつく。  私の場合、翻訳精度を上げるために固有名詞リストを作り、翻訳にかける前に固有名詞をシリアルコードに全置換して、LanguageApp.translateで翻訳後にシリアルコードを該当言語の固有名詞に全置換するスクリプトを組んでいたのだが、翻訳後にシリアルコード部分にスペースが混入したり、さらには数字が欠落することがあった。  コードがおかしくなると当然ながら置換に失敗してしまう。  数十回に一回の割合であったが、翻訳後にシリアルコードが残ってしまうのでは大問題であった。 例 ABCD0011 このようなコードがあったとする  以下の三行のような形で余分なスペースの混入や数字の欠落が見られた。 ABCD 0011 ABCD001 ABC D0011  このような変わってはいけない文字列は翻訳対象から除外するべきであろう。  しかし、翻訳対象から外す方法はLanguageApp.translateの説明を読んでもどこにも書いていない。 https://developers.google.com/apps-script/reference/language/language-app  翻訳対象から除外する方法としてトリプルブラケットで囲むという方法があると以前そちらの方面の人から聞いていたが、少なくともLanguageApp.translateでは効果がなかった。  様々な記号で囲んでテストしてみたが、翻訳対象から除外することは出来なかった。 もうほとんど諦め気分で検索を繰り返していた時、そんな時にhtmlのページ翻訳から翻訳対象を外す方法を目にした。 <span translate="no"> text... </span>  こうして翻訳対象から外したい文字列を囲むことでWeb上に公開したページに関して閲覧者がページ翻訳を行ったとしても指定箇所だけは翻訳されずに残るという事だ。  公開したWebページの話しなので、LanguageApp.translateには関係無い。そう思った。  しかし、何か解決策がないかとリファレンスを何度も見返していた。  よくよく見返すと使用方法は2種類記載がある。  1つめはこれ...

Googleスプレッドシート GASで翻訳関数を敢えて作る

イメージ
Googleスプレッドシート(Google sheets)は無料で使えるWebアプリ。 従来の表計算ソフト(Excel,LibreOffice Calc,etc)のようにローカル環境にインストールする必要がなくウェブブラウザがあれば利用できる。 また、従来の表計算ソフトには無いGoogleならではの関数や機能がたくさんあり、表計算ソフトの新しい使い方を提示している。 特にウェブ関連の関数はとても便利だと感じる。 importxml関数は文字通りxmlを指定してシートにデータを挿入する関数であるが、これを使うとWikipediaの記事をAPIで取得してシートに貼り付けるといった事が簡単に実現できる。 また、googletranslate関数はセルの内容を指定した言語に翻訳する関数で、こちらもとても便利。 A2に『ドラえもん』と入っていたとして、英語に翻訳したければこうする。 =googletranslate(A2,"ja","en") 『Doraemon』と表示された。 もうちょっと長い文章を翻訳させてみよう。 A2に『宇宙船サジタリウス』と入っているとしてimportxmlでwikipedia APIを呼び出して要約を取得する。 =IMPORTXML("https://ja.wikipedia.org/w/api.php?format=xml&action=query&srlimit=10&list=search&srsearch="&A2,"//p/@snippet") 『"『宇宙船サジタリウス』(うちゅうせんサジタリウス)は、1986年1月10日から1987年10月3日までテレビ朝日系列で、毎週金曜19:30 - 20:00(JST)に全77話が放送された、日本アニメーション制作の日本のオリジナルSFアニメである。 藤倉電線(現・フジクラ) →"』 この文章をgoogletranslate関数で翻訳すると以下のようになる。 『"""Spaceship Sagittarius"" (spacecraft Sagittarius) is a T...