Skip to content

ClasCat® AI Research

クラスキャット – 生成 AI, AI エージェント, MCP

Menu
  • ホーム
    • ClassCat® AI Research ホーム
    • クラスキャット・ホーム
  • OpenAI API
    • OpenAI Python ライブラリ 1.x : 概要
    • OpenAI ブログ
      • GPT の紹介
      • GPT ストアの紹介
      • ChatGPT Team の紹介
    • OpenAI platform 1.x
      • Get Started : イントロダクション
      • Get Started : クイックスタート (Python)
      • Get Started : クイックスタート (Node.js)
      • Get Started : モデル
      • 機能 : 埋め込み
      • 機能 : 埋め込み (ユースケース)
      • ChatGPT : アクション – イントロダクション
      • ChatGPT : アクション – Getting started
      • ChatGPT : アクション – アクション認証
    • OpenAI ヘルプ : ChatGPT
      • ChatGPTとは何ですか?
      • ChatGPT は真実を語っていますか?
      • GPT の作成
      • GPT FAQ
      • GPT vs アシスタント
      • GPT ビルダー
    • OpenAI ヘルプ : ChatGPT > メモリ
      • FAQ
    • OpenAI ヘルプ : GPT ストア
      • 貴方の GPT をフィーチャーする
    • OpenAI Python ライブラリ 0.27 : 概要
    • OpenAI platform
      • Get Started : イントロダクション
      • Get Started : クイックスタート
      • Get Started : モデル
      • ガイド : GPT モデル
      • ガイド : 画像生成 (DALL·E)
      • ガイド : GPT-3.5 Turbo 対応 微調整
      • ガイド : 微調整 1.イントロダクション
      • ガイド : 微調整 2. データセットの準備 / ケーススタディ
      • ガイド : 埋め込み
      • ガイド : 音声テキスト変換
      • ガイド : モデレーション
      • ChatGPT プラグイン : イントロダクション
    • OpenAI Cookbook
      • 概要
      • API 使用方法 : レート制限の操作
      • API 使用方法 : tiktoken でトークンを数える方法
      • GPT : ChatGPT モデルへの入力をフォーマットする方法
      • GPT : 補完をストリームする方法
      • GPT : 大規模言語モデルを扱う方法
      • 埋め込み : 埋め込みの取得
      • GPT-3 の微調整 : 分類サンプルの微調整
      • DALL-E : DALL·E で 画像を生成して編集する方法
      • DALL·E と Segment Anything で動的マスクを作成する方法
      • Whisper プロンプティング・ガイド
  • Gemini API
    • Tutorials : クイックスタート with Python (1) テキスト-to-テキスト生成
    • (2) マルチモーダル入力 / 日本語チャット
    • (3) 埋め込みの使用
    • (4) 高度なユースケース
    • クイックスタート with Node.js
    • クイックスタート with Dart or Flutter (1) 日本語動作確認
    • Gemma
      • 概要 (README)
      • Tutorials : サンプリング
      • Tutorials : KerasNLP による Getting Started
  • Keras 3
    • 新しいマルチバックエンド Keras
    • Keras 3 について
    • Getting Started : エンジニアのための Keras 入門
    • Google Colab 上のインストールと Stable Diffusion デモ
    • コンピュータビジョン – ゼロからの画像分類
    • コンピュータビジョン – 単純な MNIST convnet
    • コンピュータビジョン – EfficientNet を使用した微調整による画像分類
    • コンピュータビジョン – Vision Transformer による画像分類
    • コンピュータビジョン – 最新の MLPモデルによる画像分類
    • コンピュータビジョン – コンパクトな畳込み Transformer
    • Keras Core
      • Keras Core 0.1
        • 新しいマルチバックエンド Keras (README)
        • Keras for TensorFlow, JAX, & PyTorch
        • 開発者ガイド : Getting started with Keras Core
        • 開発者ガイド : 関数型 API
        • 開発者ガイド : シーケンシャル・モデル
        • 開発者ガイド : サブクラス化で新しい層とモデルを作成する
        • 開発者ガイド : 独自のコールバックを書く
      • Keras Core 0.1.1 & 0.1.2 : リリースノート
      • 開発者ガイド
      • Code examples
      • Keras Stable Diffusion
        • 概要
        • 基本的な使い方 (テキスト-to-画像 / 画像-to-画像変換)
        • 混合精度のパフォーマンス
        • インペインティングの簡易アプリケーション
        • (参考) KerasCV – Stable Diffusion を使用した高性能画像生成
  • TensorFlow
    • TF 2 : 初級チュートリアル
    • TF 2 : 上級チュートリアル
    • TF 2 : ガイド
    • TF 1 : チュートリアル
    • TF 1 : ガイド
  • その他
    • 🦜️🔗 LangChain ドキュメント / ユースケース
    • Stable Diffusion WebUI
      • Google Colab で Stable Diffusion WebUI 入門
      • HuggingFace モデル / VAE の導入
      • LoRA の利用
    • Diffusion Models / 拡散モデル
  • クラスキャット
    • 会社案内
    • お問合せ
    • Facebook
    • ClassCat® Blog
Menu

TensorFlow Word2Vec で「源氏物語」解析

Posted on 10/05/2016 by Sales Information

TensorFlow Word2Vec で「源氏物語」解析

TensorFlow Word2Vec による日本語テキスト解析

自然言語処理の基本と言える Word2Vec については TensorFlow のチュートリアル 単語のベクトル表現 / Word2Vec がありますが、まだ日本語テキストで試していなかったので青空文庫の源氏物語(訳: 與謝野晶子)を題材に解析してみました。桐壺から夢浮橋の帖までの全テキストを使用しています。

Wikipedia によれば …
『源氏物語』は平安時代中期に成立した日本の長編物語、小説である。文献初出は1008年(寛弘五年)でこの頃には相当な部分までが成立していたと思われる。
母系制が色濃い平安朝中期(概ね10世紀頃)を舞台に、天皇の親王として出生し、才能・容姿ともにめぐまれながら臣籍降下して源氏姓となった光源氏の栄華と苦悩の人生、およびその子孫らの人生を描く。通説とされる三部構成説に基づくと、各部のメインテーマは以下とされ、長篇恋愛小説としてすきのない首尾を整えている。

  • 第一部:光源氏が数多の恋愛遍歴を繰り広げつつ、王朝人として最高の栄誉を極める前半生
  • 第二部:愛情生活の破綻による無常を覚り、やがて出家を志すその後半生と、源氏をとりまく子女の恋愛模様
  • 第三部:源氏没後の子孫たちの恋と人生

 
日本語テキストを Word2Vec に持ち込む場合には形態素解析がつきまといます。今回は自然言語処理ツールキットの定番 NLTK をベースに改良しましたが、MeCab なども試すべきかもしれません。

取りあえず、源氏物語のテキストを形態素解析してトークン化してリストを入力として、Word2Vec の基本実装 word2vec_basic.py を実行してみました。視覚化されたグラフが以下です(画像はクリックして拡大できます)。官職名の距離が近いことなどが見て取れます。 :
w2vec_genji2

Word2Vec で Cos 距離

視覚化だけでなく単語間の具体的な cos (コサイン)距離を測るために、元祖 Word2Vec を利用しました。
以下はその例で「光源氏」「無常」「嫉妬」「寵愛」それぞれの単語と距離が近い単語を pick up しています :

 

Word: 光源氏 Position in vocabulary: 1761
単語

コサイン距離
優秀

0.837391
趣味

0.790800
貴公子

0.788980
すぐれ

0.788795
及ぶ

0.788473
最上

0.780777
人物

0.778179
方面

0.774576
最も

0.765890
競争心

0.763227
次点: 芸術、重々しい、素質、貴婦人、才気、帝王 etc.
Word: 無常 Position in vocabulary: 1443
単語

コサイン距離
人生

0.873624
世

0.826600
いとわしく

0.799423
体験

0.796729
はかな

0.774706
この世

0.772246
いとわしい

0.761853
あやまち

0.753774
報い

0.746610
いたさ

0741317
次点: 無限、生命、厭世、後世、信仰 etc.
 
 

Word: 嫉妬 Position in vocabulary: 885
単語

コサイン距離
気に入ら

0.823713
男性

0.820702
異性

0.801180
信頼

0.795489
軽侮

0.782988
憎悪

0.780449
愛

0.772462
行為

0.770650
精神

0.768954
尊重

0.767844
Word: 寵愛 Position in vocabulary: 1879
単語

コサイン距離
東宮

0.806865
後宮

0.776469
内親王

0.762031
重々しく

0.758517
競争

0.758219
後見

0.757598
候補

0.750942
先帝

0.742261
大切

0.738606
後援

0.738517
 

 
光源氏がどのような人物像として描かれているか一目瞭然ですし、無常・嫉妬・寵愛のような固有名詞でない単語の場合でも性質が良く表れています。
結論として、日本語テキストの場合でも Word2Vec は機能するようです。

補記

word2vec_basic.py の embedding 層のサイズと window サイズをそれぞれ 512, 2 に変更して得られた画像は以下になります。注意深く観察すれば改良されていることが分かりますが、二次元画像に射影すると分かりにくいかもしれません :
w2vec_genji-e512_w2b

 

以上

クラスキャット

最近の投稿

  • LangGraph 0.5 on Colab : Get started : human-in-the-loop 制御の追加
  • LangGraph 0.5 on Colab : Get started : Tavily Web 検索ツールの追加
  • LangGraph 0.5 on Colab : Get started : カスタム・ワークフローの構築
  • LangGraph 0.5 on Colab : Get started : クイックスタート
  • LangGraph on Colab : SQL エージェントの構築

タグ

AutoGen (13) ClassCat Press Release (20) ClassCat TF/ONNX Hub (11) DGL 0.5 (14) Eager Execution (7) Edward (17) FLUX.1 (16) Gemini (20) HuggingFace Transformers 4.5 (10) HuggingFace Transformers 4.6 (7) HuggingFace Transformers 4.29 (9) Keras 2 Examples (98) Keras 2 Guide (16) Keras 3 (10) Keras Release Note (17) Kubeflow 1.0 (10) LangChain (45) LangGraph (24) MediaPipe 0.8 (11) Model Context Protocol (16) NNI 1.5 (16) OpenAI Agents SDK (8) OpenAI Cookbook (13) OpenAI platform (10) OpenAI platform 1.x (10) OpenAI ヘルプ (8) TensorFlow 2.0 Advanced Tutorials (33) TensorFlow 2.0 Advanced Tutorials (Alpha) (15) TensorFlow 2.0 Advanced Tutorials (Beta) (16) TensorFlow 2.0 Guide (10) TensorFlow 2.0 Guide (Alpha) (16) TensorFlow 2.0 Guide (Beta) (9) TensorFlow 2.0 Release Note (12) TensorFlow 2.0 Tutorials (20) TensorFlow 2.0 Tutorials (Alpha) (14) TensorFlow 2.0 Tutorials (Beta) (12) TensorFlow 2.4 Guide (24) TensorFlow Deploy (8) TensorFlow Get Started (7) TensorFlow Graphics (7) TensorFlow Probability (9) TensorFlow Programmer's Guide (22) TensorFlow Release Note (18) TensorFlow Tutorials (33) TF-Agents 0.4 (11)
2016年10月
月 火 水 木 金 土 日
 12
3456789
10111213141516
17181920212223
24252627282930
31  
« 9月   11月 »
© 2025 ClasCat® AI Research | Powered by Minimalist Blog WordPress Theme