301件の実データを MorphFoundry で解析するダッシュボード
旧サイトのアーカイブ `data.csv`(カテゴリ / 記事URL / 公開日 / 説明文 / メディアパス)301件を読み込み、
MorphFoundry と UniDic 軽量辞書(263,040件)で説明文を解析するダッシュボードです。
いきなりフル辞書(876,802件)を読み込んだらブラウザが凍結し、Worker やフォールバック実装で泥沼に——そんな実体験を踏まえて、
軽量辞書を既定にした構成と、「なぜそうなったのか」を丸ごと記録しています。
ジョブの流れ
- `data.csv`(301件)を Fetch → CSV パース → ブラウザ内で保持
- `demo9-realdata-csv-worker.js` へ解析ジョブを委譲し、MorphFoundry + UniDic 軽量辞書で名詞を抽出
- 25件ごとに進捗メッセージを受け取り、ログ&ステータス欄へ反映
- 名詞の出現頻度を降順ソートし、上位20件をダッシュボード表示
トラブルシュートで学んだこと
最初はフル辞書(876,802件 / 約152MB)を読み込んで「Worker に投げれば平気だろう」と思っていました。
ところが現実は、Worker も巨大辞書を抱え込んでしまい、解析開始直後にブラウザ全体が固まる始末。
Progress を細かく送ったり、フォールバック抽出を用意したりと実装を何周も書き換えた末、
根本原因が「辞書が大きすぎた」というオチにたどり着きました。
そこで `lex.csv` から約3割(263,040件 / 約46MB)だけを抽出した `unidic-lite.json` を作成し直したところ、
Worker でもサクサク動くように。今はデフォルトで軽量辞書を使い、必要に応じてフル版へ切り替える運用に落ち着いています。
辞書サイズの比較
- フル辞書: 876,802件 / 約152MB(ブラウザではロードだけで数秒〜十数秒)
- 軽量辞書: 263,040件 / 約46MB(ブラウザ解析が数秒〜十数秒で収まる)
Node.js やバッチ解析ではフル版を活用しつつ、ブラウザ/Worker環境では軽量版を第一候補にするとトラブルを避けやすいです。
利用手順
- 下記ステータス欄で CSV が読み込まれたことを確認する。
- 「301件の説明文を解析する」ボタンを押し、Worker がジョブを処理するのを待つ。
- 進捗ログに `(現在件数/総件数, %)` が表示され、完了するとトップ20の名詞とカテゴリ数が更新される。
- `data.csv` を差し替えれば、同じフローで別データも解析できる。
関連ファイルと技術
- morphfoundry.js … MorphFoundry 本体(Viterbi風形態素解析エンジン)
- dictionaries/unidic-full.json … UniDic 現代書き言葉のフル辞書(参照用)
- dictionaries/unidic-lite.json … フル辞書から約3割(263,040件)を抽出した軽量版(本デモで使用)
- demo9-realdata-csv-worker.js … Web Worker 実装。辞書ロードと解析をバックグラウンドで実施
- data.csv … 旧サイトの実運用データ(カテゴリ / パス / 日付 / 説明文 / メディア)
- 主な技術: Web Worker、Fetch API、位相的データ集計、MorphFoundry API(
createMorphFoundry,analyze,listDictionaries)
データ概要
-件数(CSV行数)
-カテゴリ数
-日付レンジ
使用する辞書
UniDic lite263,040 エントリ(JSON変換済み)
解析対象: 説明文(4列目)。固有名詞を含む全名詞を抽出し、頻度上位20件を可視化します。
操作
辞書ロード前です。ボタンを押すと解析を開始します。
ライセンスと利用上の注意
MorphFoundry は Apache License 2.0、辞書の元データである UniDic 現代書き言葉(CSV 版)も
国立国語研究所が Apache License 2.0 で配布しています。
当デモに含まれる `unidic-lite.json` / `unidic-full.json` は `lex.csv` を `unidic-converter.js` で JSON 化した派生物です。
再配布・公開を行う際は、UniDic に同梱されているライセンス文書を必ず一緒に配布し、クレジットを明記してください。
教育・研究目的での使用であれば Apache 2.0 の許諾範囲に収まりますが、商用や大規模配布の前にはライセンス条項を再確認することをおすすめします。
TOP 20 KEYWORDS
- 解析待ち –