

# 檢查缺失的 TikTok 字幕如何改變研究樣本

先審核全部已選影片，再在明確的缺失結果假設下，顯示結果可能改變的幅度。若字幕是否可得與內容或樣本組別有關，缺失字幕可以改變內容研究的結果。回傳的成功子集不能證明缺失是隨機的。

Actor 是託管的資料收集程式，task 是已儲存的輸入預設。二元編碼為每段影片指定 0 或 1。

## 工具限制與原生欄位

TikTok Transcript 現行公開組建 0.1.36 接受 startUrls，內含 1 至 100 個已知公開影片 URL、短連結或數字影片 ID。它不搜尋個人檔案、關鍵字或聲音頁面。preferredLanguages 按偏好次序選取現有公開字幕軌；清單為空時，則使用第一條公開字幕軌。它不翻譯、不轉錄未擷取的音訊、不收集留言，也不推斷內容編碼。

每一個已提交輸入對應一列資料集，包括不可計費的狀態結果。確切欄位包括 inputIndex、inputUrl、videoId、videoUrl、authorHandle、durationSeconds、languageCode、text、帶有 startSeconds、endSeconds 與 text 的 segments、status、statusReason、isBillable，以及 scrapedAt。影片 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，以及擷取或字幕失敗。成功須有非空白 text。isBillable 為 true 表示一次成功的原生逐字稿結果事件，但其他列仍然是證據。平台用量與結果事件分開，因此不要把整次執行稱為免費。OUTPUT 欄位 inputsReceived、resultRows、billableTranscriptRows、nonBillableResultRows、duplicateVideosSkipped 與 statusCounts 是執行帳目，不是樣本代表性。

現行的單片英語對照已成功，所用的是所要求的確切影片 ID、非空白 text，以及十二個具有已檢查時間結構的片段。這只證明該來源有一條公開字幕路徑，不是全部影片、不是口語用字完全準確，也不是編碼有效。把整個樣本清單換成一條預定的已知影片；只有做英語研究時，才把 preferredLanguages 設為 `["en"]`，否則留空，以使用第一條公開字幕軌。

## 為缺失資料設定界限的八個步驟

1. 由[已選影片分類帳](/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/)開始，包括每一條預定的已知影片。去除已知影片 ID 的重複，但不要捨棄輸入結果的證據。計算之前，先聲明目標總體，並為每段影片指定一個二元內容編碼。
2. 把各類結果分開：已驗證且符合資格的字幕、字幕不存在、所要求的語言不可用、暫時或來源存取失敗、不支援的輸入、重複，以及驗證未解決。來源失敗不是該影片沒有字幕的證據。按已聲明的規則，排除真正無效或超出範圍的輸入；不要把它們混入範圍內的缺失結果。
3. 把 N 定義為符合資格的已選不重複影片，K 為已有經核實編碼結果的影片，P 為經核實的正向編碼，M 為符合資格的未知結果，等於 N 減 K。核對這些數字。把失敗或空白字幕視為未知編碼，而不是負向。驗證錯誤也可以使結果成為未知。
4. 只有當 K 大於 0 時，才報告觀察到的成功子集分數，即 P 除以 K，並如此標示。只有當 N 大於 0 時，才報告缺失分數，即 M 除以 N。這是不同的分母。若沒有經核實的結果，不要除以 0，也不要作出內容聲稱。
5. 為已選且符合資格的樣本，計算不設假設的二元界限：下限 P/N 假設每個未知都是編碼 0，上限 (P+M)/N 假設每個未知都是編碼 1。說明這些是此已選樣本的邏輯範圍，不是信賴區間、為真的概率，或全 TikTok 估計。信賴區間在某個模型下描述抽樣不確定性；這個區間描述未知結果。
6. 若計劃比較組別，為每組計算同一份分類帳與界限。若範圍重疊，缺失結果可以顛倒或抹去表面次序；單靠重疊不是統計顯著性檢定。記錄在所有容許指派下仍然成立的聲稱，並對照依賴假設才成立的聲稱。
7. 若已知道那些來源屬性，按已聲明的語言、創作者或時期，比較字幕是否可得。差異是描述性信號，不是某機制的證明。在範圍有限的流程下修正無效輸入，並檢查來源失敗。不要用譯文或生成文字取代不可得的影片內容，除非同時更改並記錄量度方法。
8. 在有支持的範圍內陳述研究結論。若界限對研究決定而言太寬，應尋求已驗證的結果，或收窄問題。不要只選取容易成功的字幕，從而在不說明的情況下擴大資料集。

## 原創虛構逐步演算例子

以下所有例子使用原創虛構資料，並非來自真實 TikTok 來源。

一項虛構研究選取二十段符合資格的不重複影片。十二段有已驗證的編碼結果，其中七段為正向。八段結果因各自不同的字幕、存取或驗證原因，仍然未知。

觀察到的分數是 7/12=58.3%。缺失分數是 8/20=40%。已選樣本界限是 7/20=35% 與 (7+8)/20=75%。因此，在任意未知結果下，35% 至 75% 是邏輯上的編碼比例範圍，不是估計的準確度區間。不要把 58.3% 報告為已核實的完整已選樣本比例。

### 虛構分類帳與組別界限

| 組別 | 已選 N | 已知 K | 正向 P | 未知 M | 已知分數 | 下限 | 上限 |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 組別 A | 10 | 8 | 5 | 2 | 62.5% | 50% | 70% |
| 組別 B | 10 | 4 | 2 | 6 | 50.0% | 20% | 80% |
| 合計 | 20 | 12 | 7 | 8 | 58.3% | 35% | 75% |

只看已知結果時，組別 A 大於組別 B 的次序並不穩健。把組別 A 的未知指派為負向、組別 B 的未知指派為正向，得到 50% 對 80%。相反的指派得到 70% 對 20%。核對組別 A 加組別 B：已選二十、已知十二、正向七、未知八。

### 缺失原因分類帳

| 組別 | 原生狀態 | 人手驗證 | 資格歸屬 | 未知計數 |
| --- | --- | --- | --- | --- |
| A | no_public_captions | 未知 | 符合資格 | 1 |
| A | blocked_or_challenged | 未知 | 符合資格 | 1 |
| B | no_public_captions | 未知 | 符合資格 | 2 |
| B | language_unavailable | 未知 | 符合資格 | 2 |
| B | blocked_or_challenged | 未知 | 符合資格 | 1 |
| B | succeeded | 驗證未解決 | 符合資格 | 1 |

無效或超出範圍的輸入，以及重複觀察，不在符合資格的不重複 N 之內，不是額外的未知影片。

## 下一步

開始資料分析時，先用 [TikTok Transcript Scraper](https://apify.com/chronometrica/tiktok-transcript-scraper) actor 與 [Batch TikTok Transcript Extraction](https://apify.com/chronometrica/tiktok-transcript-scraper/examples/batch-tiktok-transcript-extraction) task 審核已選影片分類帳，核對 N、K、P 與 M，然後才做任何組別比較。

## 來源與延伸閱讀

- [CompSocial 關於 TikTok Transcript 擷取的 Reddit 討論](https://www.reddit.com/r/CompSocial/comments/1h1zijh/help_needed_scraping_tiktok_video_transcripts_for/)