4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GoAdvent Calendar 2024

Day 10

Gemini APIを使って漢字をひらがなに変換する

Last updated at Posted at 2024-12-09

概要

前回、Go言語の勉強のため「ぱ行で会話するための変換プログラムを作成」しました。(下記参照)

しかし「漢字をひらがなに変換する処理」が未実装だったので、Googleが開発した生成型人工知能チャットボットのGeminiのAPIを利用して実装していきたいと思います。

準備

  • 下記URLからGemini APIのAPIキーを取得してください

  • GCPでGemini APIが有効になっているか確認してください

プログラムコード

それでは、今回書いたプログラムです。
意外とコード量は少なく済みました。

package main

import (
	"context"
	"fmt"

	"github.com/google/generative-ai-go/genai"
	"google.golang.org/api/option"
)

func main() {
	ctx := context.Background()
	text := "お寿司を食べる"

	// Gemini APIクライアントを作成する
	client, err := genai.NewClient(ctx, option.WithAPIKey("{YOUR API KEY}")) // 取得したAPIキーを指定
	if err != nil {
		fmt.Println("Geminiクライアントの作成に失敗しました")
	}
	defer client.Close()

	// モデルとプロンプトの準備
	model := client.GenerativeModel("gemini-1.5-flash") // Geminiのモデルを指定
	prompt := genai.Text("以下の漢字の部分をひらがなに変換してください: " + text)
	res, err := model.GenerateContent(ctx, prompt)
	if err != nil {
		fmt.Println("Gemini APIの呼び出しに失敗しました")
	}
	// 変換結果を出力
	fmt.Println(res.Candidates[0].Content.Parts[0])
}

ちなみに以下の漢字の部分をひらがなに変換してくださいの部分を変えてあげるだけで違うプログラムになります。なんか不思議な感覚です。

結果

そして変換結果です。なかなか制度が高いのではないでしょうか。

変換前 変換後
お寿司を食べる おすしをたべる
以心伝心 いしんでんしん
東京特許許可局 とうきょうとっきょきょかきょく
会議の最中に最中を食べたい かいぎのさいちゅうにさいちゅうをたべたい
祇園精舎の鐘の声、諸行無常の響きあり。娑羅双樹の花の色、盛者必衰の理をあらはす。 ぎおんしょうじゃのかねのこえ、しょぎょうむじょうのひびきあり。さらそうじゅのはなのいろ、じょうしゃひっすいのをあらわす。

終わりに

今回は、Go言語Gemini APIを使ってひらがな変換機能を作りました。
精度は100%ではありませんが、質問の仕方を変えたり、変換後の文章をどのように使うかでカバーできそうです。

今度は前回の記事とプログラムと合体させて1つのアプリケーションを作成したいと思います。

以上、ここまで読んでいただきありがとうございました。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?