

# 研究前如何檢查 TikTok 字幕用字

把已聲明樣本中的 TikTok 字幕用字，與經人手核對的音頻參照比較，以便在研究前找出用字錯誤和意思錯誤。

## 原生逐字稿設定與對照

Actor 是收集網絡數據的託管程式，Task 是已儲存的輸入設定。目前的 Task 樣本輸入包含一個 startUrls 陣列，當中有一條 Hank Green 影片網址 `https://www.tiktok.com/@hankgreen1/video/7047596209028074758` ，以及一個空白的 preferredLanguages 清單 `[]`。把整份樣本清單換成你打算使用的一條已知公開影片地址，並放入 startUrls。只有當你的研究已聲明英語規則時，才使用 preferredLanguages `["en"]`。使用空白清單 `[]`，會選取任何語言的第一條公開字幕軌。先執行這次單片試行，以核實目標來源有公開字幕。語義錯誤是指會影響你的研究編碼的意思改變。

TikTok Transcript 目前的公開版本 0.1.36 接受的 startUrls，可包含 1 至 100 條已知公開影片網址、短連結或數字影片 ID。它不會搜尋個人主頁、關鍵字或聲音頁面。preferredLanguages 欄位按優先次序選取現有公開軌。空白清單使用第一條公開軌。它不會翻譯、不會為未擷取的音頻製作逐字稿、不會收集留言，也不會推斷內容編碼。

數據集的每一列代表一項已提交輸入，包括不可計費的狀態結果。確切欄位是 inputIndex、inputUrl、videoId、videoUrl、authorHandle、durationSeconds、languageCode、text，以及包含 startSeconds、endSeconds 和 text 的 segments，另加 status、statusReason、isBillable 和 scrapedAt。直接使用傳回的 startSeconds 和 endSeconds。影片 ID 須保留為字串。字幕語言可使用地區值，例如 eng-US。附有失敗狀態的 null 或空白逐字稿，並不代表說話中的靜音。

狀態包括 succeeded、no_public_captions、language_unavailable、duplicate_input、not_tiktok、invalid_input、unsupported_url、video_unavailable、not_public、blocked_or_challenged，以及擷取或字幕失敗。成功必須有非空白文字。isBillable 為 true，表示一次成功的原生逐字稿結果事件。其他列仍然是證據。平台用量與結果事件分開，所以不要把整次執行稱為免費。執行記帳欄位包括 inputsReceived、resultRows、billableTranscriptRows、nonBillableResultRows、duplicateVideosSkipped 和 statusCounts。

單片英語對照已成功，並具有所要求的確切影片 ID、非空白文字，以及十二個符合已核對時間數據結構的片段。這項結果只確立該來源有公開字幕路徑。它並不確立所有影片的涵蓋範圍、完美的口語用字準確度，或編碼有效性。只有當英語是你已聲明的研究語言時，才把 preferredLanguages 設為 en，開始你自己的單片試行。

## 完整審核方法

1. 先說明你的研究需要從用字取得甚麼，例如某項指示、聲稱或否定。在已聲明的樣本規則、語言和時間範圍下，選擇已知影片。缺失的字幕不能得到零錯誤分數。
2. 保持原生字幕文字、字幕時間資料、來源身分，以及另外的時間紀錄不變。從成功且非空白的軌開始。記錄 languageCode 和 status。只比較已指明、而且音頻可以清楚覆核的時段。這是語音用字審核，不是整段影片內容的準確度。
3. 聆聽所選時段的影片音頻，並在不看字幕的情況下寫下人手參照逐字稿。重新核對任何不確定的字，或請第二位覆核者一併聆聽。如果音頻不清楚或聽不見，按你已聲明的規則標記並移除那些字，不要猜測。人手參照逐字稿是已核對的比較紀錄，但人手覆核者仍然可能出錯。
4. 把文字正規化聲明為計分前對工作文字作出的明確、標準化改動。把所有文字轉成小寫，移除標準標點，並以空格把字拆成普通詞元。在工作文字中保留數字、否定詞（例如 not）、確切詞形，以及填充詞（例如 um 或 ah）。不要去掉詞尾，也不要把字轉成詞典詞根。把原始文字和工作文字並排放置，以追蹤每一項改動。
5. 按次序把參照用字與字幕用字對齊。替換是對齊後不同的字。刪除是字幕中沒有的參照字。插入是參照中沒有的字幕字。記錄確切的對齊列。
6. 把 N 定義為參照字數，把 S、D 和 I 定義為替換、刪除和插入的對齊錯誤數。用字錯誤比率等於（S 加 D 加 I）除以 N。乘以 100 即得百分比。N 必須為正數。插入可以使比率超過 100%。
7. 對於合併樣本，以總錯誤數除以總參照字數，得出匯集用字比率。同時保留每條影片的結果。缺失或未計分的樣本要分開顯示。便利樣本不能確立所有影片的準確度。
8. 為否定、數字、名稱、單位、說話者歸屬，或影響研究編碼的遺漏，加上語義錯誤筆記。一個字的錯誤可以顛倒意思。決定要修正另一份分析副本、排除或覆核一段文字，還是使用人手編碼。保留修正、時間、來源和出處。不要覆寫原始字幕。

## 演算例子與對齊

全部計分都以人手對虛構例子進行，並沒有執行 NIST 計分運行。

虛構對齊 A 的 5 字參照文字是「i water the red plant」，字幕文字是「i water a red plan」。

| 參照用字 | 字幕用字 | 錯誤類型 |
| --- | --- | --- |
| i | i | 正確 |
| water | water | 正確 |
| the | a | 替換 |
| red | red | 正確 |
| plant | plan | 替換 |

虛構對齊 A 的 S 等於 2，D 等於 0，I 等於 0。用字錯誤比率是 2 除以 5，等於 40%。

虛構對齊 B 的 10 字參照文字是「we do not add water until the tray is level」，字幕文字是「we do add water until the tray is level」。

| 參照用字 | 字幕用字 | 錯誤類型 |
| --- | --- | --- |
| we | we | 正確 |
| do | do | 正確 |
| not | [已刪除] | 刪除 |
| add | add | 正確 |
| water | water | 正確 |
| until | until | 正確 |
| the | the | 正確 |
| tray | tray | 正確 |
| is | is | 正確 |
| level | level | 正確 |

虛構對齊 B 的 S 等於 0，D 等於 1，I 等於 0，位置在 not 這個字。其餘每個參照字都對齊一次。用字錯誤比率是 1 除以 10，等於 10%。

雖然用字比率較低，這次刪除卻顛倒了指示。記錄一項關鍵否定錯誤，並把該段標為待覆核。

影片錯誤百分比的未加權平均數是 (40+10)/2=25%。兩條影片的匯集用字錯誤比率是 (2+1)/(5+10)=3/15=20%。未加權平均得出 25%，因為不論長度，它都對每條影片套用相同權重。匯集計算得出 20%，因為它按整個樣本的總參照字數加權。

| 樣本 | 參照 N | 替換 | 刪除 | 插入 | 用字錯誤比率 | 語義筆記 |
| --- | --- | --- | --- | --- | --- | --- |
| 虛構 A | 5 | 2 | 0 | 0 | 40% | 名詞和冠詞已改變 |
| 虛構 B | 10 | 0 | 1 | 0 | 10% | 關鍵否定已刪除 |
| 虛構 C | 1 | 0 | 0 | 4 | 400% | 多加了字 |
| 失敗列 | 未知 | 未知 | 未知 | 未知 | 未計分 | 缺失字幕軌 |
| 匯集 A 加 B | 15 | 2 | 1 | 0 | 20% | 合併用字總數 |

例子 C 的參照是「water」（N 等於 1），字幕是「please add clean water now」，有 0 次替換、0 次刪除和 4 次插入，即 4 除以 1，用字錯誤比率為 400%。失敗的字幕列具有未知錯誤數，並保持未計分，這與 0% 錯誤不同。

## 下一步

先做一份獨立音頻參照，把它的用字對齊與字幕文字核對，並在[於研究中使用該文字](/zh-Hant/articles/%E6%BA%96%E5%82%99-tiktok-%E5%85%A7%E5%AE%B9%E5%88%86%E6%9E%90-%E5%AD%97%E5%B9%95%E6%96%87%E5%AD%97/)之前，同時記錄用字錯誤和對研究關鍵的意思錯誤。使用[TikTok Transcript Scraper Actor](https://apify.com/chronometrica/tiktok-transcript-scraper)，配合[TikTok Transcript API Dataset Task](https://apify.com/chronometrica/tiktok-transcript-scraper/examples/tiktok-transcript-api-dataset)的預設設定，執行逐字稿收集。

## 來源與延伸閱讀

- [NIST SCTK 用字錯誤計分文件：](https://github.com/usnistgov/SCTK/blob/master/doc/sclite.htm#word-error-scoring)
- [NIST SCTK 輸出例子：](https://github.com/usnistgov/SCTK/blob/master/doc/outputs.htm)
- [NIST 語音識別工具索引：](https://www.nist.gov/itl/tted/mltg/tools)
- [公開數據集例子：](https://apify.com/chronometrica/tiktok-transcript-scraper/examples/tiktok-transcript-api-dataset)