出力テキストの評価指標・前処理
CER (Character Error Rate)
WER (Word Error Rate)
ROUGE 系
ROUGEを訪ねて三千里:より良い要約の評価を求めて Python - Qiita
kotoba-whisper, ReazonSpeech, Nue-ASRの文字起こし性能を比較してみた | 株式会社AI Shift
Whisperを用いた音声認識の文字起こし精度 | Hakky Handbook
rouge や bleu は sumeval 使っている
rouge-scoreライブラリが日本語テキストからROUGEを算出できないのはなぜ? デフォルトでは英数字以外を除く挙動でした - nikkie-ftnextの日記
Smoothly BLEU Python - Qiita
NLTK BLEUのSmoothing Functionはどれくらいスムージングしているのか Python - Qiita
How to evaluate Speech Recognition models
いい記事、図もわかりやすいしストップワードの有無や表記揺れの話もある
エラーの数とエラーの大きさの話
固有名詞は Jaro-Winkler 距離でやる話、Jon ↔ John, Jon ↔ Andrew は 1 wordでも違う
文字列の類似度 | GMOアドパートナーズ TECH BLOG byGMO
複数の文章を評価するときは元の長さの加重平均とれよという話
公開データセットにノイズ付加して評価する話
Combining Speech Recognition and Diarization in one model
WER, CER, and MER: Measuring textual similarity with substitution, deletion, and insertion errors · Testing with Kolena
色々まとまってる
評価
jitsi/jiwer: Evaluate your speech-to-text system with similarity measures such as word error rate (WER)
CER など
chakki-works/sumeval: Well tested & Multi-language evaluation framework for text summarization.
ROUGE、BLEU など
長く更新されてないのは気になる
google-research/rouge at master · google-research/google-research
rouge-score · PyPI
rouge の実装、大規模言語モデル入門で参照されてる
mjpost/sacrebleu: Reference BLEU implementation that auto-downloads test sets and reports a version string to facilitate cross-lab comparisons
bleu の実装
Tiiiger/bert_score: BERT score for text generation
🤗 Evaluate
色々な評価指標呼び出せる
huggingface/evaluate: 🤗 Evaluate: A library for easily evaluating machine learning models and datasets.
HuggingFace Evaluate を試す|npaka
A quick tour
うーん bert_score も↑の Tiiger/bert_score ラップしているだけだな
All TorchMetrics — PyTorch-Metrics 1.4.0.post0 documentation
ここにもいろいろある & 説明がよい
Benchmark
Real-World Speech-to-text API Leaderboard | Voice Writer
前処理・正規化
音声認識における「表記ゆれ」とは? - AmiVoice Techblog
音声の精度を測定して改善する  |  Cloud Speech-to-Text Documentation  |  Google Cloud
機械学習を用いたテキスト正規化手法の最新動向 高精度を実現する仕組み - ログミーTech
pythonによる日本語前処理備忘録 | DATUM STUDIO株式会社
キーワード検索システムでの表記ゆれ対策6つ【python】 自然言語処理 - Qiita
【自然言語処理入門】日本語ストップワードの考察【品詞別】
neologdn
ikegami-yukino/neologdn: Japanese text normalizer for mecab-neologd
日本語テキストの前処理:neologdn、大文字小文字、Unicode正規化 - tuttieee’s blog
機械的な変換
SudachiPy
SudachiPy による自然言語処理の正規化|npaka
書き起こし評価なんかだと normalized_form にしてしまってもよいかも
LLM 出力で係り受けが変なことは稀だから無視してしまう
送り仮名や微妙な活用の差は吸収して評価できたりしない?
長いテキストを評価するにはどうすればいいんだろう?
例えば 30 分のミーティングの書き起こしを評価する
CER ならまあ素朴にやってもよいか
ROGUE や BERT Score はどうする?
Ground Truth と出力のシーケンスをどうマッチさせる?
要約的なタスク以外に使おうとしているのが変という話かも
順序維持したままシーケンスをマッチさせて評価したい
シーケンス自体の粒度の問題もある
LLM 評価
https://site.wandb.ai/wp-content/uploads/2024/04/LLM-Evaluation-Whitepaper.pdf