「〇〇で歌ってみた」に基づく音韻検索データセットの検証

# 概要
音韻が類似したテキストを検索する技術（音韻検索）は、空耳やダジャレの自動生成などで役立つ可能性があります。
しかし、音韻検索の評価用データセットはあまり多くありません。  

そこで、今回「〇〇で歌ってみた」(特に野球選手名で歌われた替え歌)の歌詞を活用し、音韻検索システムを評価するためのデータセットを構築してみました。本記事では、そのデータセットの概要や、実際にいくつかの音韻距離アルゴリズムで検索実験を行った結果をご紹介します。

# 背景
- **音韻検索技術**  
  空耳やダジャレなどの言語ユーモアの生成を自動化・支援する上で「音韻が似ている語句を見つけ出す」ことは重要です。しかし、この分野には十分に整備されたベンチマークデータが少ないです。

- **既存のデータセットの課題**  
  ダジャレを用いたデータセットは存在しますが、ダジャレ文では文脈や単語の意味などが影響し、純粋な音韻だけで判断された単語ペアとは異なる要素が混在します。その結果、音韻類似度を評価する手法の細かなチューニング等に使いにくいです。

- **「〇〇で歌ってみた」の活用**  
  一方、「〇〇で歌ってみた」は**元歌詞の音韻(モウラ)を、特定ジャンルの単語(駅名や野球選手名など)だけで置き換えて再現する替え歌**です。  
  文脈の影響はゼロではないですが、ほとんど音韻のみに基づいて単語が選ばれるため、ダジャレよりも**音韻検索のベンチマークとして利用価値が高い**のではないか、と考えました。

本研究では、その中でも野球選手名だけを使った「やきゅうた」のコンクール作品を元に評価データセットを作成し、実際に使ってみた結果を報告します。

# データセットの作成手順
## 1. 対象コンクールと資料
対象としたのは「[第4回野球選手名で歌ってみたトーナメント杯](https://uzapeso.blog.fc2.com/blog-category-15.html)」に提出された46作品です。参加者が**同じ課題曲**を替え歌にするトーナメント形式で行われるため、  
- 同じ元歌詞を複数作詞者がどう変換したかが集まる  
- 替え歌フレーズの重複をチェックしやすい  

といったメリットがあり、データセット構築に適しています。

## 2. 元歌詞と替え歌歌詞の事前処理
- **元歌詞の文節位置・音韻カナ表記**  
  日本語形態素解析や簡易ルールを用いて文節・単語区切りを抽出し、それをカナ表記に変換しました。一部に英語フレーズなど変換困難な部分があったため、それらは削除しました。  
- **替え歌歌詞のカナ表記**  
  野球選手名辞書を用い、フルネームや登録名を取得してカナ表記に統一しました。ルールベースでの推定に失敗した箇所は手動で補正しました。

## 3. 元歌詞と替え歌単語の対応付け
元歌詞のモウラ列と、対応する替え歌歌詞のモウラ列を、母音・子音の編集距離が最小になるよう動的計画法でアライメントを取りました（[参考](https://qiita.com/shimajiroxyz/items/68561dfa1153c33d96f6)）。  

この対応関係をベースに、**元歌詞のフレーズ**とそれを**どういう野球選手名に変換したか**  
のペアを多数収集しました。

## 4. データフィルタリングと最終リスト化
- **自然な区切りだけ採用**  
  開始が文節区切りと、終了が単語区切りと、それぞれ合致しているフレーズのみ利用しました。  
- **変換回数しきい値**  
  同じ元歌詞フレーズに対して、**3回以上**同じ替え歌単語が使われた場合のみ採用しました（安定した人気がある変換とみなせるように）。  
- **候補単語リスト**  
  公開されている日本人野球選手（引退含む）の名字、登録名、フルネームなどを全てカナで取得し、**検索の候補**としました。

こうして最終的に、  
- **クエリ（元歌詞フレーズ）**：150件  
- **候補単語リスト**：13,076件  
が揃いました。JSONのイメージは以下のようになります。

```json
{
  "queries": [
    {
      "query": "アイ",
      "positive": ["アイ"]
    },
    {
      "query": "アウマル",
      "positive": ["タクマル"]
    },
    {
      "query": "アケ",
      "positive": ["アベ", "カケイ"]
    },
    ...
  ],
  "words": [
    "アーノルド",
    "クリスアーノルド",
    "アーリン",
    "ロビーアーリン",
    "アイ",
    "アイエイジロウ",
    ...
  ]
}
```

---

# 実験条件と手法
今回の検証では、以下の6パターンの音韻距離アルゴリズムを比較しました。  
1. **mora**: モーラ列に対する単純な編集距離（あ/か/さなど）  
2. **phoneme**: 音素列（子音+母音）レベルでの編集距離  
3. **vc_0.5**: 母音列と子音列それぞれで編集距離を計算し、同等重み(0.5:0.5)で合算  
4. **vc_0.8**: 同上で母音をより重視（0.8:0.2）
5. **kanasim_0.5**: [kanasim](https://github.com/jiroshimaya/kanasim/tree/main) ライブラリを用いた、音素の類似度に応じた重み付き編集距離（母音:子音=0.5:0.5）  
6. **kanasim_0.8**: 同上で母音をより重視(0.8:0.2)

### 期待される結果
- `mora` < `phoneme` < `vc` < `kanasim` の順に細かく音韻近さを評価できるため、**検索精度が向上する**と考えられます。  
- 母音を重視した `vc_0.8` や `kanasim_0.8` は、それぞれ対応する0.5版より精度が高くなる、と予想しました。

---

# 検証結果

検索結果上位10件における再現率（recall）を指標に評価したところ、結果は以下の通りとなりました。

| 条件           | 検索精度(recall) |
|----------------|------------------|
| mora           | 0.455           |
| phoneme        | 0.672           |
| vc_0.5         | 0.676           |
| vc_0.8         | 0.743           |
| kanasim_0.5    | 0.788           |
| **kanasim_0.8**| **0.830**       |

期待していた通り、母音・子音の扱いを細かくするほど高い精度が得られ、`kanasim_0.8` が最も高いrecallを示しました。

---

# 考察

## 1. データセットの有用性
今回のように、「〇〇で歌ってみた」の替え歌からフレーズ変換ペアを収集すると、**純粋に音韻のみを基準**とした検索タスクを比較的素直に定義できます。  
実験結果は事前の仮説通りになっており、このデータセットが**音韻検索の基礎的な性能評価**に有用である可能性を示唆しています。

### 2. 細かな評価やバイアスの存在
一方で、より厳密に見ていくと、以下のような課題やバイアスも見られます。

- **年代や知名度による偏り**  
  替え歌の作詞時期と候補単語リストの作成時期が異なると、新しい選手がクエリに対応していない、あるいは昔すぎる選手は誰も使わないなどの不均衡が存在します。年度ごとにフィルタリングできるようにするなどの工夫が必要です。

- **ゼロにはできない文脈の影響**  
  上記とも関連しますが、同じ球団の選手を近くに配置するなど、「〇〇で歌ってみた」であっても音韻以外の要素が単語の選択に影響することはありえます。このために、音韻が近い選手名が正解データに含まれないケースも多少ありました。より高い品質を目指すためには、自動生成したあとで人間によるチェックが必要かもしれません。

- **替え歌における音韻類似度の癖**  
  替え歌では母音と音節数が揃うことが特に重視される傾向があり、汎用的な音韻類似度とは少し違う指標になっている可能性があります。

---

# まとめと今後の展望
本記事では、「〇〇で歌ってみた」替え歌（やきゅうた）のデータを用いて音韻検索システムの評価用データセットを試作・検証しました。
結果として、**複数の音韻距離アルゴリズム間での違い**を、想定通りに捉えられたため、**音韻検索の評価ベースとしての利用**がある程度期待できると考えられます。

ただし、選手名の認知度や使用ルールなど独自のバイアスも入り込んでいる可能性があるため、**汎用の音韻検索ベンチマークとしては追加のフィルタリングや拡張が必要**かもしれません。

今後は、
- 年度別の候補単語リスト整備
- さらに多様なジャンルの「〇〇で歌ってみた」を取り込み
- 歌唱時のアクセントやリズムの違いも考慮

など、データの拡充・分析手法の拡張を進めることで、より広範に使える音韻検索データセットを目指したいと思います。