

# 如何核對一則 Reddit 回覆在談什麼

先讀一則 Reddit 回覆的父留言所提供的上文，找出它的特定對象，再分別標註對每個對象的立場。你可以從社群討論建立一份整理妥當的情緒資料集。這個方法說明，在測試任何模型之前，如何準備 Reddit 留言。

## 收集設定

要取得原始數據，請使用名為 Actor 的託管數據收集程式。Reddit Comments scraper 可協助你拉取公開討論串。把任務預設改為使用一條已知討論串 URL。把每則貼文的留言上限設在 1 至 500 之間，預設值是 100。這個起步任務請用 3 列作為上限。輸入欄 postUrls 需要 1 至 50 條已知公開討論串，而 maxCommentsPerPost 是每則貼文 1 至 500，預設 250 在這次試點改為 3。

每列留言都有確切欄位名稱：postId、commentId、parentId、depth、body、status、unavailableFields 和 observedAt。保留確切名稱，不要改成加空格的別名。資料集 status 只有 ok、deleted 或 removed。部分完成的執行、失敗的執行，或輸入狀態，都與列的 status 分開。

執行輸出數據包括 commentsSaved、duplicatesSkipped、hiddenBranchesRemaining、completionReason、status、isComplete 和 inputResults。每個輸入的欄位包括 commentsFound、commentsSaved、status 和 reason。今次試點中，三個有 body 的 ID，其 parentId 和 depth 為 null，hiddenBranchesRemaining 為 null；整體或輸入結果是 partial，即使處理旗標是 isComplete=true。這不是完整上文，也不是分類器質素的證明。如果需要配對的父留言，請做一次已獲授權的人手公開核對，或把上文保持為未知。切勿猜測相鄰的列。

## 界定對象和標籤

在閱讀任何文字之前，先界定你的對象集合和標籤單位。這裡一個單位是一則留言加上一個對象，不是一則留言，也不是一個人。用淺白規則指定五個標籤：

- 正面：表達贊同。
- 負面：表達不贊同。
- 中立：陳述事實，沒有立場。
- 混合：同時持有正面和負面看法。
- 不確定：對象或立場不清楚。

對象是文字所談的特定人物、產品、政策或行動。

## 分析留言的八個步驟

1. 在閱讀之前，先界定你的問題、對象集合和標籤單位。
2. 保留來源列和輸出數據。保留留言身分、文字、狀態和缺失數據。另做一份工作用標籤表，不要把猜測的情緒寫進原始欄位。
3. 如有配對的父留言上文，先讀該上文。找出明確提到的對象和代詞。如果不能安全地確定代詞所指，就把對象和上文保持為不確定。把諷刺當作需要覆核的理由，而不是自動的負面標籤。
4. 拆開涉及多個對象的陳述。一則留言可以稱讚速度，同時不喜歡價格變動。不要指定一個全面的偏好。
5. 保存留言 ID、對象、證據段落、上文來源、標籤和理由。把他人被引用的字句與作者自己的立場分開。沒有上文時，不要把一條問題標成投訴。
6. [請第二位閱讀者為一小份共同子集編碼](/zh-Hant/articles/%E5%85%A9%E5%90%8D-reddit%E7%95%99%E8%A8%80%E7%B7%A8%E7%A2%BC%E5%93%A1-%E4%B8%80%E8%87%B4%E6%80%A7/)。記錄原始一致結果，並註明哪些規則造成分歧。沒有有理據的參照標準時，不要聲稱高準確度。修訂你的規則，並為受影響的個案重新標籤。
7. 分別報告按留言－對象單位的計數，以及不重複 comment ID 的計數。多對象留言會增加多於留言數目的標籤列。把不確定標籤和未能取得的 body 留在分母之外，並保持可見。這個分母只計算對象與立場都已判定的單位，不包括不確定單位。
8. 交付一份對象立場表、一本編碼手冊，以及分歧筆記。這會準備一份可供查核的資料集。它不提供產品優先次序、代表性意見或自動回覆行動。

這個例子中的所有文字和 ID 都是虛構的。假設父留言上文 P 問及產品 A 的新月費，以及產品 B 的上手。

| commentID | 配對的上文來源 | 對象 | 來源原文段落 | 標籤 | 理由 |
| --- | --- | --- | --- | --- | --- |
| C1 | 上文 P | 產品 A | 「我仍然喜歡 A」 | 正面 | 對產品 A 表達正面立場 |
| C1 | 上文 P | 價格變動（A） | 「新價格很差」 | 負面 | 對價格變動表達負面立場 |
| C2 | 上文 P | 上手（B） | 「B 很容易上手」 | 正面 | 稱讚上手容易 |
| C2 | 上文 P | 速度（A） | 「對我們團隊來說，A 更快」 | 正面 | 在團隊條件下稱讚速度 |
| C3 | 上文 P（已確認） | 加價 | 「好啊，又加價」 | 負面 | 諷刺投訴，已由父留言上文 P 確認 |
| C4 | 未知 | 未知 | 「它可以離線使用嗎？」 | 不確定 | 沒有父留言上文，對象未能辨認 |

請注意，C5 的 body 狀態是 removed。它在情緒表之外，作為一項可用性紀錄，沒有情緒標籤。

## 逐步演算的虛構例子

留言 C1 說：「我仍然喜歡 A，但新價格很差。」這給出兩個單位。產品 A 是正面。A 的價格變動是負面。不要把一個全面的負面立場指定給產品 A。

留言 C2 說：「B 很容易上手；對我們團隊來說，A 更快。」這把 B 的上手標為正面，把 A 的速度標為正面，並帶有團隊條件。沒有說出整體優勝者。

留言 C3 說：「好啊，又加價。」這個加價對象只有在父留言上文 P 已確認時才計入。經人手覆核後，標為負面或諷刺；否則保持不確定。

留言 C4 說：「它可以離線使用嗎？」這裡有一個未能確定所指的代詞，而且沒有父留言上文。對象未知，所以標為不確定。不要把一條問題變成負面的離線意見。

留言 C5 的 body 已被移除，所以不作分析。[在表中保留它的可用性位置](/zh-Hant/articles/reddit-%E5%AF%A9%E6%A0%B8%E7%A0%94%E7%A9%B6%E8%A8%98%E9%8C%84%E7%BC%BA%E5%A4%B1%E6%96%87%E5%AD%97/)。

在 C3 有已確認的父留言上文時，標籤表有六個留言－對象單位，來自四則 body 可用的留言。即 C1 兩個、C2 兩個、C3 一個、C4 一個。

對象與立場都已判定的單位共五個。三個是正面，分別是 C1 的 A、C2 的 B 和 C2 的 A。兩個是負面，分別是 C1 的價格和 C3 的價格。C4 這一個單位是不確定。

正面分數是 3 除以 5，即只佔對象與立場都已判定的對象單位的 60%。它不是留言者的 60%，也不是社群意見的 60%。已觀察的位置有五個，body 可用的留言有四則，C5 因 removed 而在情緒之外。

## 編碼一致與限制

兩位虛構編碼者為五個對象與立場都已判定的單位標註。他們最初的一致是 5 個中的 4 個，即 80%。他們在 C3 的分歧關乎諷刺和上文。他們覆核實際的父留言條件，並同意一條規則。這並不確立一般的 80% 準確度。如果 C3 的父留言缺失，它必須保持不確定。已判定單位所用的分母會降至 4。這個分母只計算這些單位，不把不確定單位計入。不要從相鄰列捏造父留言確認。

最終成品顯示可追溯至來源紀錄的參照，並把每個對象分開列出。C4 和 C5 則在未知與未能取得的分類帳中。它不提供主題頻率表或功能優先次序表。真實討論遵循類似的社群模式。你可以查看[一則真實的情緒項目討論](https://www.reddit.com/r/webscraping/comments/15x92f1/how_do_i_scrape_comments_from_reddit_posts/)，以了解進一步的背景。

## 下一步

開啟 [Reddit Comment Sentiment Analysis Dataset Task](https://apify.com/chronometrica/reddit-comments-scraper/examples/reddit-comment-sentiment-dataset)，使用 [Reddit Comments Scraper Actor](https://apify.com/chronometrica/reddit-comments-scraper)，配一條小型已知討論串，保留上文未知項，並在測試任何情緒模型之前，為每個留言－對象單位編碼。

## 來源與延伸閱讀

- [Reddit Comments Scraper Actor](https://apify.com/chronometrica/reddit-comments-scraper)
- [Reddit Comment Sentiment Analysis Dataset Task](https://apify.com/chronometrica/reddit-comments-scraper/examples/reddit-comment-sentiment-dataset)
- [YouTube 字幕擷取指南](https://chronometrica.com/zh-Hant/articles/%E5%8F%96%E5%BE%97-youtube-%E9%80%90%E5%AD%97%E7%A8%BF-%E6%AA%A2%E6%9F%A5%E7%BC%BA%E5%B0%91%E5%AD%97%E5%B9%95/)
- [Reddit 網頁抓取討論](https://www.reddit.com/r/webscraping/comments/15x92f1/how_do_i_scrape_comments_from_reddit_posts/)