Skip to content

data-visualization-lectures/word-cloud

Repository files navigation

Japanese Word Cloud (React + Vite)

ブラウザで日本語文章を貼り付けると Kuromoji.js で形態素解析し、SVG ベースのワードクラウドを生成するアプリです。src/App.tsx が UI 本体で、src/lib/textProcessing.ts が頻度計算、src/hooks/useKuromojiTokenizer.ts が辞書ロードを担当しています。

Kuromoji の読み込み方法

現在は public/vendor/kuromoji/ にスクリプトと辞書を同梱し、src/hooks/useKuromojiTokenizer.tsimport.meta.env.BASE_URL を考慮した相対パスから読み込んでいます。

  • public/vendor/kuromoji/kuromoji.jspublic/vendor/kuromoji/dict/node_modules/kuromoji からコピーした成果物です。依存バージョンを更新した際は、必ず同じ手順で再コピーしてコミットしてください。(例:cp node_modules/kuromoji/build/kuromoji.js public/vendor/kuromoji/ / cp -R node_modules/kuromoji/dict public/vendor/kuromoji/
  • こうすることで GitHub Pages / Netlify / Vercel などセルフホスト環境でも CDN 依存なしで動作します。
  • 必要に応じて withBasePath() の引数(vendor/kuromoji/...)を書き換えることで別パスへの配置にも対応できます。
  • Vite の dev/preview サーバーは .gz 辞書をそのまま配信するために vite.config.ts のカスタムプラグインで Content-Encoding: identity を設定しています。通常の静的ホスティングでも追加設定なしで同じ挙動になります。

形態素解析で取得できる属性

kuromoji が返す IpadicFeatures には以下のようなフィールドが含まれます。src/lib/textProcessing.ts ではこの情報を元に品詞フィルタリングや基本形(basic_form)への正規化を行っています。

  • surface_form / basic_form: 元の表記と辞書上の基本形。
  • pos, pos_detail_1pos_detail_3: 名詞・動詞などの品詞と階層的な詳細分類。
  • conjugated_type, conjugated_form: 活用の種類とその形。
  • reading, pronunciation: カタカナ読み・発音(語により欠損あり)。
  • そのほか word_id, word_type, word_position など辞書参照用のメタデータ。

これらの属性を活用することで、不要な品詞の除外や読み情報を利用した表記ゆれ吸収など、追加の可視化ロジックにも拡張しやすくなっています。

開発・ビルド

npm install
npm run dev   # Vite dev サーバー(辞書配信ヘッダーを忘れずに)
npm run build # 本番ビルド

http://localhost:5173/ http://localhost:5173/?auth_debug

URL Parameters

アプリケーションは以下のURLパラメータをサポートしています。

  • project_id: 指定されたUUIDのプロジェクトを自動的にサーバーから読み込み、表示します。
    • 例: https://word-cloud.dataviz.jp/?project_id=a55cbec0-8338-4656-bf7f-a39dd4873518

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors