6
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?

「誰でもわかる大規模言語モデル入門 」末次拓斗著 第9章 サンプルコードを変えてみた 

Posted at

最近、購入したこちらの本の、サンプルコードをいろいろといじってみたので、忘備録として残します。
素直にコードも動いて、どういうことができるのか分かりやすかったので、非常におススメです!

「誰でもわかる大規模言語モデル入門 」末次拓斗著

サンプルコード

第9章:LLM を使用したレビュー分析プログラムの開発

まず、japanize-matplotlibをインストールしてもエラーがでてきます。(インストールできるが、走らせるとエラーが出る)
こちらの記事を参考に、matplotlib-fontjaにしたら、うまくいきました。

japanize-matplotlibはpython 3.12ではエラーが出る→matplotlib-fontjaが代替

それから、この章では結果をまとめてグラフに表示しているが、実際に、どのように各レビュー分が評価されているのか、詳細が分かりません。
それで、このようにデータフレームで表示させてみました。

pd.DataFrame(reviews_json)

image.png

さらに、本来であれば、Amazonや価格.comには★で5段評価がついているが、このレビュー分にはない。 代わりにプロンプトで、100点満点でそのレビュー分の満足度を推測してもらいました。
以下の関数で「そして、全体の満足度を0-100で推測してください。100が最高です。」というところと、「 "推測満足度": 80」というのを3カ所、追加しました。

#---------------------------------------------------
# #9.レビューテキストから要素を抽出する関数
#---------------------------------------------------
def extract_review_elements(model, review_text):
    prompt = f"""
    以下のテキストから高評価要素と低評価要素を分析してください。
    そして、全体の満足度を0-100で推測してください。100が最高です。

    テキスト: 音質は素晴らしかった。長時間使用しても疲れず、耳にもフィットして快適でした。
    {{
        "高評価要素": ["音質", "装着感"],
        "低評価要素": [],
        "推測満足度": 80
    }}

    テキスト: 迫力がなく音がスカスカ。音漏れが酷く電車などの公共の場で使えないレベル。
    {{
        "高評価要素": [],
        "低評価要素": ["音質", "音漏れ"],
        "推測満足度": 20
    }}

    テキスト: 値段を考えると音質はまあまあ良い。でも耳が痛くなるのが難点。長時間は使えない。あと届いた箱がつぶれていたのが残念。
    {{
        "高評価要素": ["音質"],
        "低評価要素": ["装着感", "梱包"],
        "推測満足度": 60
    }}

    テキスト: {review_text}
    """
    response = generate_content(model, prompt)
    try:
        json_result = json.dumps(json.loads(response), ensure_ascii=False, indent=4)
    except json.JSONDecodeError as e:
        return f"Error: Invalid JSON format. {str(e)}"
    return json_result

この点数付けは、人間がやってもばらつくが、それでもこのGeminiが出した点数はそこそこ納得感があると私は思いました。(以下、一番右の列参照)

image.png

そのうち、アマゾンや価格.comの実際のレビューを使って、試してみたいと思いました。

6
2
3

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
6
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?