Outline

Revision as of 2023-08-07 03:46

 
--- parent: ../WebTool title: TranslatePreprocessor: 段落を保持するグーグル翻訳ペースト前処理機 date: 2019-12-10 tags: アプリ, ツール, Web --- 英語論文PDF内の英文を[グーグル翻訳](https://translate.google.com/?hl=ja)にペーストする際, 同じ段落にもかかわらず改行が含まれており, 正しく翻訳できません. これまで多くの方法が提案されています^[ref-1]^[ref-2]^[ref-3]が, 基本的に改行を削除しているだけで, //複数の段落が一つの段落になる問題があります//. そこで, //段落を保持したまま改行を取り除く//前処理機を紹介します. 入力した文章を行ごとに処理し, 行文字が他と比べて少ない場合は, 改行をそのままにします. 英語PDFからの文字列を対象としていますが, 処理としては, 文字数と改行コードを見ているだけなので, 日本語などほかの言語にも対応しています. === //入力//      <-厳しい   甘い->\\ 段落判定: <input id="paragraph-threshold" type="range" min=0 max=1 step=0.05 value=0.8 oninput="Update()" />\\ <textarea id='input' style="width: 100%; resize: vertical;" rows=20 oninput="Update()"></textarea> ↓ //出力// <textarea id="output" style="width: 100%; resize: vertical;" rows=20></textarea> <script> var input = document.getElementById("input"); var output = document.getElementById("output"); var thresholdInput = document.getElementById("paragraph-threshold"); function Update() { var lines = input.value.replace(/\r\n|\r/g, "\n").split("\n"); if (lines.length <= 0) { output.value = ""; return; } var outText = ""; var alpha = 0.5; var thresh = thresholdInput.value; var thMax = 1.8; var lineLengthAvg = lines[0].length; for (var i = 0; i < lines.length; i++) { outText += lines[i]; if(i + 1 < lines.length){ // 次の行があるとき outText += " "; var nextLineLength = lines[i + 1].length; if (nextLineLength >= lineLengthAvg * thMax) { // 平均より多い行長さ. `-`による行の連続の可能性 nextLineLength /= Math.round(nextLineLength / lineLengthAvg); } lineLengthAvg += alpha * (nextLineLength - lineLengthAvg); var currentLineLength = lines[i].length; if(currentLineLength >= lineLengthAvg * thMax) { currentLineLength /= Math.round(currentLineLength / lineLengthAvg); } if (currentLineLength <= lineLengthAvg * thresh) { outText += "\n\n"; } } } output.value = outText; } function ClickLink(element) { var link = element.getAttribute('data-url'); var text = encodeURIComponent(output.value); link += text; window.open(link, '_blank'); } </script> ↓ <a data-url="https://translate.google.com/?view=home&op=translate&sl=en&tl=ja&text=" href="javascript:void(0);" onclick="ClickLink(this)">英→日Google翻訳</a><br /> <a data-url="https://www.deepl.com/translator#en/ja/" href="javascript:void(0);" onclick="ClickLink(this)">英→日DeepL翻訳</a> 更新履歴: * 2020-06-16 ハイフン`-`による行の連続に対応 * 2020-06-10 翻訳ページに飛ぶ際, 翻訳内容が入力済みに変更 * 2019-12-10 Release ------ [ref-1]: "[論文をGoogle翻訳にかける時に便利なWebApp「Shaper」を公開しました](http://dream-exp.hatenablog.com/entry/2017/07/22/shaper)". \ 地力不足の地蔵からの脱却. (accessed: 2019/12/10) [ref-2]: "[google翻訳のための英語論文(pdf文書)の文末整形ツール(javascript)](https://www.robotech-note.com/entry/2016/11/22/120020)". \ 技術メモ集. (accessed: 2019/12/10) [ref-3]: "[PDFをコピペした時の改行を消す方法](https://qiita.com/amata525/items/7cda251abb65acc972c8)". \ Qitta. (accessed: 2019/12/10)
Retrieved from "https://contentsviewer.work/Master/WebTool/TranslatePreprocessor/TranslatePreprocessor?cmd=history&rev=1691347578"