質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

1回答

1556閲覧

ブラウザ上で完結する多言語翻訳機を実装したい

deigo

総合スコア200

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2020/07/19 17:40

前提・実現したいこと

やりたいこと=チャット上に入力された不特定の言語を、あらかじめ設定した特定の言語に、遅延なし制限なしで変換する。

ブラウザ上で翻訳する手段を考えています。
対象は多言語が書き込まれるチャットのようなもので、
書き込まれた文をクライアントで設定した言語に変換する想定です。
イメージとしてはGoogle翻訳のように、入力された言語の判別は自動でやってくれるのが望ましいです。
WEBAPIでの実装は速度問題とアクセスの頻度から不可です。

現在考えている手段としては、ブラウザ上でTensorflow.jsを使用して、別途Deeplearningで学習したモデルをとりこめば可能だろうと思っていますが、
配布されているモデルはどれもPython環境で作成されたもので、直接は使用できません。
JSONに変換するためにtensorflowjs converterを使用するも、エラーが発生してうまく変換できません。

import tensorflowjs as tfjs module_url = 'https://tfhub.dev/google/universal-sentence-encoder-multilingual/3' model = hub.load(module_url) tfjs.converters.save_keras_model(model, 'tfjs', quantization_dtype_map=np.uint8) 338 """ 339 temp_h5_path = tempfile.mktemp() + '.h5' --> 340 model.save(temp_h5_path) 341 topology_json, weight_groups = ( 342 h5_merged_saved_model_to_tfjs_format(temp_h5_path)) AttributeError: '_UserObject' object has no attribute 'save'

コマンドでの変換も、tensorflowjs converterの対応が追い付いていないらしく失敗しました。

!pip install tensorflowjs !tensorflowjs_converter --input_format tf_hub --signature_name serving_default 'https://tfhub.dev/google/LaBSE/1' ./my_tfjs_model Traceback (most recent call last): File "/usr/local/bin/tensorflowjs_converter", line 8, in <module> sys.exit(pip_main()) File "/usr/local/lib/python3.6/dist-packages/tensorflowjs/converters/converter.py", line 735, in pip_main main([' '.join(sys.argv[1:])]) File "/usr/local/lib/python3.6/dist-packages/tensorflowjs/converters/converter.py", line 739, in main convert(argv[0].split(' ')) File "/usr/local/lib/python3.6/dist-packages/tensorflowjs/converters/converter.py", line 692, in convert control_flow_v2=args.control_flow_v2) File "/usr/local/lib/python3.6/dist-packages/tensorflowjs/converters/tf_saved_model_conversion_v2.py", line 661, in convert_tf_hub_module control_flow_v2=control_flow_v2) File "/usr/local/lib/python3.6/dist-packages/tensorflowjs/converters/tf_saved_model_conversion_v2.py", line 494, in convert_tf_saved_model weight_shard_size_bytes=weight_shard_size_bytes) File "/usr/local/lib/python3.6/dist-packages/tensorflowjs/converters/tf_saved_model_conversion_v2.py", line 143, in optimize_graph ', '.join(unsupported)) ValueError: Unsupported Ops in the model before optimization StatefulPartitionedCall

調査したモデルは下記の2つ

https://tfhub.dev/google/LaBSE/1 https://tfhub.dev/google/universal-sentence-encoder-multilingual-large/3

解決したいこと
・tensorflowjsで利用可能なモデルの入手ができない。
・Deeplerningの知見がないのでそもそも実現可能なのかどうかがわからない。
・上記で実現不可能な場合、実現可能な方法が知りたい。

ご回答よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mike2mike4

2020/07/19 17:49

私は機械学習に暗いのでお答えできませんが、 辞書はどこに持つおつもりでしょうか?
miyabi_takatsuk

2020/07/20 02:44

Google翻訳のAPIなどは検討されましたか?
deigo

2020/07/20 03:42 編集

APIでの実装は試しましたが、リクエストに制限があるものがほとんどで途中から翻訳ができなくなったり、そもそも不特定のリクエストを想定しなければならないのでAPIでの実装は不可としました。
guest

回答1

0

chromeならtextareaに入力させてdivに書き出せば勝手に翻訳してくれませんか?

javascript

1<textarea></textarea> 2<div id="view"></div> 3<script> 4document.querySelector('textarea').addEventListener('input',e=>{ 5 document.querySelector('#view').textContent=e.target.value; 6}); 7</script>

投稿2020/07/20 01:27

yambejp

総合スコア114839

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

deigo

2020/07/20 02:42 編集

ご回答ありがとうございます。 確認しましたが翻訳するような動きはしてないっぽいです。 入力したものそのまま出てきます。
yambejp

2020/07/20 02:44

画面上で右クリックして「日本語に翻訳」をえらんでください (環境によるとは思いますが)
deigo

2020/07/20 05:05

確認しました。 日本語に翻訳 で入力した文字が日本語で翻訳して表示されましたが 内部的にはGoogleのAPIを呼び出しているようですが、このAPIには秒間当たりの回数制限があったように思います。(これと同一かは不明ですがGoogleAPIで実装を試みたとき、回数制限エラーで一時的に翻訳できない状態になりました。) この方法は制限を突破する手段がありますか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問