🚀 Current Version: v0.3.0(否定処理 + 強調語対応)
https://bowo-prasetyo.github.io/japanese-sentiment-analyzer/#/
日本語テキストを対象にしたルールベースの感情分析ツールです。 ブラウザのみで動作し、辞書(JSON)を編集することで簡単に拡張できます。
- 🟢 サーバ不要(100%フロントエンド)
- 🟢 Vue 3 + Vue Router によるモダンUI
- 🟢 JSONベース辞書でロジックとデータを分離
- 🟢 3層モデル(単語 → 感情 → 極性)
- 🟢 ヒット単語の可視化(Explainable AI)
- 🟢 カテゴリ別スコア分析
- 🟢 否定表現対応(〜ない)
- 🟢 強調語対応(とても、めっちゃ等)
- 🟢 GitHub Pagesでそのまま公開可能
単語 → 感情カテゴリ → 極性スコア
例:
嬉しい → 喜び → +1
ムカつく → 怒り → -1
本ツールは、単なる判定だけでなく分析過程を可視化します。
- 判定結果(ポジティブ / ネガティブ / 中立)
- 総合スコア
- ヒット数
- ヒット単語一覧(カテゴリ・極性・変換付き)
- カテゴリ別スコア(感情の内訳)
判定: ネガティブ
スコア: -1.5
ヒット単語:
嬉し(喜び / +1 → -1 否定 ×1.5 = -1.5)
カテゴリ別スコア:
喜び: -1.5
👉 「なぜそうなったか」だけでなく、 👉 「どう変換されたか(否定・強調)」まで分かる
project/
├── index.html # Vue UI + スタイル
├── app.js # Vueアプリ本体
├── engine/
│ └── analyzer.js # 感情分析ロジック
├── data/
│ └── config.json # 感情辞書
├── pseudo-api/ # 擬似API
│ ├── index.html
│ └── api.js
├── README.md
└── LICENSE
ローカルサーバを起動:
python -m http.serverブラウザで:
http://localhost:8000
GitHub Pagesを利用(公開版): 👉 https://bowo-prasetyo.github.io/japanese-sentiment-analyzer/#/
- テキストを入力
- 「分析」ボタンをクリック
- 結果・スコア・ヒット単語・カテゴリ別スコアを確認
ブラウザのみで動作する擬似APIを提供しています。
https://bowo-prasetyo.github.io/japanese-sentiment-analyzer/pseudo-api/?text=今日は嬉しい
{"result":"ポジティブ","score":1,"hits":1}- 静的HTMLをロード
- JavaScriptが解析を実行
- JSONを画面に出力
URL → HTML → JS実行 → JSON表示
Pseudo APIは本物のAPIではありません:
| 項目 | Pseudo API | 本物API |
|---|---|---|
| レスポンス | HTML(JSでJSON表示) | JSON |
| Content-Type | text/html | application/json |
| curl対応 | ❌ | ✔ |
| JS実行 | 必須 | 不要 |
- POST不可
- URL長制限あり
- JS実行必須
const result = await page.evaluate(() => document.body.textContent);
const json = JSON.parse(result);{
"groups": { ... },
"polarity": {
"喜び": 1,
"怒り": -1
},
"words": {
"喜び": ["嬉し", "最高"],
"怒り": ["ムカつ"]
},
"negations": ["ない", "なく", "なかった", "ません", "ぬ", "ん"],
"intensifiers": {
"とても": 1.5,
"めっちゃ": 2
}
}"喜び": ["神", "神すぎる"]"negations": ["ない", "なかった", "ません"]"intensifiers": {
"超": 2,
"かなり": 1.3
}- 部分一致(
text.includes()) - 語幹ベース検出(例:嬉し → 嬉しい)
- 否定表現検出(後方ウィンドウ + includes)
- 強調語検出(前方ウィンドウ)
- スコア合計による判定
- ヒット単語の可視化
- カテゴリ別スコア集計
- 形態素解析なし
- 複雑な否定(例:嬉しいわけではない)未対応
- 文脈理解なし
- 多義語・重複ヒットあり
- 強調スコープの曖昧性あり
- 否定スコープ改善(高度化)
- 弱化表現対応(少し、ちょっと)
- グラフ可視化
- API化(サーバレス)
- 精度改善(重複・優先度制御)
MIT License
Bowo Prasetyo