はじめに
kaggleなどで英語データを収集している際、日本語に翻訳したくなるケースはないでしょうか?
患者データの所感が英語だったり、記事データの内容が英語だったりしますよね。。。。
一記事程度であれば、google翻訳だったり、ChatGPTを使って対応できますが、文字制限がありますし、何十件、何百件とあると面倒くなります。そして、最後に行き着くのはコード作成だと思います。
なんとなくコードの想像は付くけど、なんかコードが長くなりそう。。。
あー、どうしよかな??と悩み始めたそこの貴方!
そのタスク、snowflakeならば1クエリで終わります。
前提と準備
- snowflakeアカウントは作成済みで、accountadminで作業することとします。
- 今回の記事では、こちらのBBC newsのデータを試しに利用します。中身は⇩な感じです。
手順の確認
1. 取り込み、翻訳語データ格納用のデータベース、スキーマの作成
2. CSVファイルの取り込みとテーブル作成
3. 翻訳クエリの作成と実行
1. データ格納用のデータベース、スキーマの作成
以下、クエリをワークシート上で実行します。
CREATE database bbc_news;
CREATE schema news;
2. CSVファイルの取り込みとテーブル作成
今回は簡単にGUI上でテーブル作成をしちゃいます。
作成したnewsスキーマを右クリックして。データロードを選択します。
kaggleからダウンロードしたCSVファイルを指定して
テーブル名をNEWSにしてあげて
カラムは自動で検出して設定してくれるので、ヘッダー設定のみ最初の行にはヘッダー...をにして、ロードを選択すれば
ロード完了!
次に翻訳後のデータを格納するテーブルをロードしたテーブル構造をコピーして作成します。
CREATE OR REPLACE TABLE news_jp LIKE news;
ここで一度、ロードしたデータを見てみましょう!
titleに記事名、DESCRIPTIONに記事内容が記載されていることを確認してください!
SELECT * FROM news LIMIT 50;
3. 翻訳クエリの作成と実行
今回はsnowflakeのTRANSLATE関数を利用して翻訳します。
実行するコードは以下の1クエリです。
insert into news_jp
SELECT
SNOWFLAKE.CORTEX.TRANSLATE(TITLE, 'en', 'ja'),
PUBDATE,
GUID,
LINK,
SNOWFLAKE.CORTEX.TRANSLATE(DESCRIPTION, 'en', 'ja')
FROM news
LIMIT 50;
翻訳語の中身を見てみましょう!日本語訳された記事の内容が表示されればOKです!(翻訳したTITLEとDESCRIPTIONのみを抽出してます。)
SELECT TITLE, DESCRIPTION FROM news_jp LIMIT 50;
最後に
GUI操作と簡単なSQLで翻訳を行うことができました!
snowflakeには他にもLLMを簡単に使えるCOMPLETE関数などもあり、
SQLで生成AIや需要予測、クラスタリングができますので是非、試してみてください!!