【要約】感情分析を載せてみたら、78% の日は根拠が 1 語以下だった — 自作機能を 4,000 行消すまでに測った 2 つの数字 [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
開発者が自作の日記アプリに実装した感情分析機能において、出力結果の信頼性に疑念を抱いた。実データを用いた検証の結果、以下の課題が浮き彫りになった。
- ・判断材料となる感情語が、全データの78%で1語以下しか存在しない。
- ・感情の推移が、実際には文章の長さの推移と強く相関している。
- ・正解ラベルが存在しないため、従来の精度評価手法が適用できない。
// Approach
開発者は、正解が不明な状況下で機能の存続を判断するため、統計的な再現性の検証を採用した。以下の手順で分析と設計変更を行った。
- ・全データに対する出力分布の集計を行い、語彙の偏りや文字数との相関を特定した。
- ・折半法を用い、データを分割した際の結果の相関を測定して再現性を確認した。
- ・「推定」を諦め、事実に基づいた「カウント」方式へ機能を再設計した。
// Result
開発者は、不確実な推定機能を廃止し、出現回数を記録するバッジ機能へ移行した。これにより、以下の成果を得た。
- ・コード量を約6,000行(25,745行から19,600行へ)削減した。
- ・保存データ容量を26MBから7.5MBへ大幅に圧縮した。
- ・データの弱点に左右されない、信頼性の高い指標を提供可能にした。
Senior Engineer Insight
> 精度評価が困難なNLPタスクにおいて、再現性を指標に据える判断は極めて実戦的だ。推定(Estimation)からカウント(Counting)へのドメイン変更は、データの不確実性を設計で吸収する優れたアプローチである。また、リファクタリング時に「残す機能」の欠陥まで点検する姿勢は、大規模システムにおけるデグレード防止の観点からも高く評価できる。