CONTENTS コンテンツ

ポケモン図鑑の説明文を生成しよう!(10)

生成AIを使おう!

2024.06.27

 生成AIで架空のポケモンを作るためのデータベースを作る過程で必要になったSQLについて一通り学んだところ。今回はデータベースの加工に戻ろう。加工のために提示されていたSQL文はこんな感じ。

入力:入れ子質問について、クエリの例文を作ってください。私がそのクエリでやりたいことを自然言語に翻訳するので、採点してください

出力:

データベースから10文字以下の行を削除するには、以下のようなSQLクエリを使用します。Pythonコードに組み込んで実行する方法を示します。

SQLクエリ

まず、SQLiteで10文字以下の行を削除するSQLクエリは次のようになります:

DELETE FROM pokemon WHERE LENGTH(description) <= 10;

Pythonコード

次に、このクエリをPythonコードに組み込んで実行する方法を示します。

import sqlite3

# データベースに接続
conn = sqlite3.connect('pokemon_data.db')
c = conn.cursor()

# 10文字以下の行を削除する
c.execute('DELETE FROM pokemon WHERE LENGTH(description) <= 10')

# データベースをコミットしてクローズ
conn.commit()
conn.close()

 この程度の簡単な文章ならなんとなくわかった気になったけど、これがSQL学習編を挟んだ成果なのかどうか分からない。まぁ今なんとなくわかっていれば良しとしよう。これでバージョンだけが書かれた文章が消え、各行がポケモン図鑑の説明文となっているデータベースが作成された。csv出力してマイGPTに取り込もう。

id name description branch_id
1 繝輔す繧ョ繝€繝・縺・∪繧後◆縺ィ縺阪°繧・縺帙↑縺九↓ 縺励g縺上・縺、縺ョ 繧ソ繝阪′ 縺ゅ▲縺ヲ 縺吶%縺励▼縺、 縺翫♀縺阪¥ 縺昴□縺、縲・1

 文字化けしてる…

入力:

DB Browserのエクスポート機能でcsv出力したところ、以下のように文字化けしていました。原因と対策を教えてください。
id name description branch_id
1 繝輔す繧ョ繝€繝・縺・∪繧後◆縺ィ縺阪°繧・縺帙↑縺九↓ 縺励g縺上・縺、縺ョ 繧ソ繝阪′ 縺ゅ▲縺ヲ 縺吶%縺励▼縺、 縺翫♀縺阪¥ 縺昴□縺、縲・1

出力:

CSVファイルの文字化けは、通常、エンコーディングの不一致が原因です。日本語の文字が正しく表示されない場合、エクスポート時または開く際のエンコーディングが正しく設定されていない可能性があります。

原因と対策

原因

  1. エクスポート時のエンコーディング設定:
    • DB Browserでエクスポートする際のエンコーディング設定が適切でない可能性があります。
  2. ファイルを開く際のエンコーディング設定:
    • CSVファイルを開く際に、適切なエンコーディングが指定されていないと、文字化けが発生します。

対策

  1. DB Browserでのエクスポート設定を確認する:
    • エクスポートする際に、エンコーディングを「UTF-8」に設定します。DB Browser for SQLiteでは、エクスポート時にエンコーディングを指定するオプションがあるので、以下の手順に従ってください:
    1. File メニューから Export を選択します。
    2. Table(s) as CSV file を選択します。
    3. Encoding オプションを「UTF-8」に設定します。
  2. CSVファイルを適切なエンコーディングで開く:
    • CSVファイルを開くアプリケーション(Excelなど)で、エンコーディングを「UTF-8」に設定して開きます。以下はExcelでの手順です:
    1. Excelを開き、データ タブを選択します。
    2. テキスト/CSVから を選択します。
    3. ファイルを選択し、インポートウィザードでエンコーディングを「65001: Unicode (UTF-8)」に設定します。

再実行手順

  1. DB BrowserでCSVをUTF-8エンコーディングでエクスポートする:
    • 上記の手順に従ってエクスポート設定を確認し、CSVファイルをエクスポートします。
  2. ExcelでCSVをUTF-8エンコーディングで開く:
    • エクスポートしたCSVファイルをExcelで開く際に、エンコーディングを「UTF-8」に設定してインポートします。

これにより、CSVファイルの文字化けを防ぐことができます。上記の手順を試してみてください。

 対策2でcsvの開き方変えるだけで解決した。ありがたや。これで既存のポケモン図鑑の説明文のデータは用意できたので、これをマイGPTに取り込んで文章を考えさせてみよう。

次回に続く

この記事をシェアする