用 LLM 分辨「口碑文」和真心負評:關鍵字字典抓不到什麼,你可以怎麼補
一句話: 口碑操作是真實存在的產業,關鍵字字典抓得到「這則貼文用詞正不正面」,但抓不到「這批貼文放在一起會不會太整齊」——那需要 LLM 讀過一批貼文的時間、用詞、跨帳號模式之後才看得出來,而且就算看得出來,也只是信號、不是證據。
口碑操作不是想像出來的
在 Threads 上搜「口碑」,會直接搜到公開徵才的貼文。像 @wawajump_jump 這則:「尋找 長期合作 ✨口碑回文✨ 主要是社群代發、口碑留言 社群:Threads、Dcard、FB、BBH、Mo01、FG 等」——同一組人同時在經營 Threads、Dcard、FB、巴哈姆特、Mobile01、FashionGuide 六個社群的「口碑留言」業務,不是單一平台的個案。也有品牌方直接在 Threads 上問合作,例如 @yuc_0612 這則:「請問有人在做 threads 口碑行銷嗎?想合作」。
而做過行銷公關的人,也在分享怎麼從消費者角度反過來辨識這些操作。@th6li9 這則 提到做這行的人養成的「職業病」:快速辨別口碑文、不輕易相信 KOL、看穿促銷話術背後的設計。換句話說,業界內部知道怎麼看,但這套判斷力不是每個做輿情監控的人都有,也很難靠人工逐則貼文複製。
如果你在用爬蟲抓論壇聲量做輿情分析,這件事會直接影響你的結論:一堆安排好的正面留言會把「聲量」灌水、把「情緒」推高,讓你誤判風向;反過來,一波集中出現的負評也可能是對手操作,而不是真實的用戶不滿。兩種情況都需要在「情緒分數」之外多一層判斷。
關鍵字字典做得到什麼、做不到什麼
我們自己的 asia-social-listening actor 內建情緒分析,用的是輕量規則式關鍵字詞表(繁中、英文各約十個正/負面詞),分數 = (正面命中 − 負面命中) / (正面 + 負面 + 1),門檻 ±0.15 切 positive/neutral/negative——這是它 README 裡寫明的,不是 AI/LLM 模型。
這種字典式判斷有它的用處:便宜、即時、抓大致風向夠用。但它有兩個天生的盲點:
- 看不懂反串:中文網路的酸文、反串留言,字面上可能全是「正面詞」,實際上是在嘲諷。字典只數詞不懂語境,容易誤判。
- 看不出「這批貼文太整齊」:字典是逐則獨立判斷,不會比對同一時段、不同帳號的貼文之間有沒有異常相似的用詞、結構或口吻——而這正是安排好的口碑操作最容易露餡的地方。
要補上這兩塊,得換一種做法:不是逐則判斷「這句話正不正面」,而是把一批貼文放在一起,讓 LLM 讀出貼文與貼文之間的模式。
LLM 能多看到什麼、看不到什麼
學界處理「協同操作」(coordinated / astroturfing campaign)偵測時,用的訊號通常分三類:時間、內容、網路結構。一篇用 LLM 做協同宣傳偵測的論文(arXiv:2501.11849)就指出,協同活動常見「爆發式時間模式」——短時間內大量轉發/發文同步出現;以及內容面的訊號,例如語氣一致性、文字相似度。論文原話形容轉發時間:「coordinated campaigns 的轉發常常是同步的爆發(rapid bursts)」。
值得注意的是第三類訊號(網路結構)連論文自己都拿不到。同一篇論文寫得很明白:Since 𝕏 does not provide information about the original re-tweeting actions, we predict the propagation trees——平台不提供真正的轉發關係,所以作者是用 RT 提及、追蹤關係、追蹤者數加權機率去推測重建轉發樹,不是拿到現成的帳號互動圖。
這件事對我們反而是好消息:這個題目上沒有人有乾淨的關係圖,大家都在用部分訊號拼。 asia-social-listening 給你的是去重後的 mention 列表(mention_id/author/text/created_at/platforms/sentiment/is_duplicate/duplicate_of 等欄位),沒有帳號的追蹤關係或歷史發文紀錄,所以我們連「推測轉發樹」這步都不做——能用 LLM 補上的是三類訊號裡的「文字內容」和「時間分布」兩塊。差別不在於學界有神奇資料而我們沒有,而在於他們多花了一層推論去逼近結構訊號,我們選擇不猜。
具體可以用的訊號:
| 訊號 | 關鍵字字典抓得到嗎 | LLM 讀一批貼文抓得到嗎 |
|---|---|---|
| 單則貼文用詞正負面 | ✅ | ✅ |
| 反串(字面正面、語意嘲諷) | ❌ | 部分可以(讀語境) |
| 完全複製的重複貼文 | ❌(但 actor 的 is_duplicate 用文字雜湊比對可以) | ✅ |
| 同一套話術、不同帳號改寫用詞 | ❌ | 部分可以(讀跨貼文的結構相似度) |
| 短時間內同品牌詞大量出現、跨平台同步 | ❌ | ✅(created_at + platforms 可比對) |
| 帳號歷史、追蹤關係、是否為新帳號 | ❌ | ❌(actor 沒有這些欄位,需要另外調查) |
怎麼設計這個分類器
用 asia-social-listening 抓完一批 mention 之後,實際的流程是這樣:
Step 1 — 先讓內建 dedup 做它擅長的事:deduplication: true 時,完全重複或跨平台原文轉貼的貼文會被標 is_duplicate: true,這些是最低成本的「複製貼上」訊號,不用勞煩 LLM。
Step 2 — 把剩下的、非重複的 mention 依時間分桶:例如同一天、同一個 brand_matched,按 created_at 分成幾個時間窗,讓 LLM 看的是「這個時間窗裡的一批貼文」而不是單則。
Step 3 — 用結構化提示讓 LLM 讀整批、給信號分級,而不是下結論:
// 範例提示(示意,實際請接你慣用的 LLM API)
{
"system": "你會收到同一時段、同一品牌關鍵字的多則社群貼文(含作者、平台、時間、內文)。任務是標出「值得人工複查」的協同操作信號,不是判定真偽。輸出每則貼文的 coordination_signal(low/medium/high)與 reasons(陣列,只列你觀察到的具體訊號,例如:用詞結構與另一則高度相似、大量不同帳號在短時間內用近似句型稱讚同一賣點)。沒有足夠訊號就標 low,不要臆測帳號身份或動機。",
"input": "<這個時間窗裡的 mention 列表 JSON>"
}
回傳的 coordination_signal 拿來排序、篩出高分那批做人工複查,而不是自動下架或公開點名——這點很重要,下面 FAQ 會再講。
兩種做法對照
關鍵字字典(sentimentAnalysis) | LLM 批次分類 | |
|---|---|---|
| 成本 | 內建、免費(含在 mention 計費裡) | 額外的 LLM API 費用(依貼文量、模型而定) |
| 速度 | 即時 | 需要額外一次 API 呼叫(可批次處理省成本) |
| 抓得到反串 | 否 | 部分可以 |
| 抓得到跨帳號同套話術 | 否 | 部分可以(讀文字相似度) |
| 抓得到帳號歷史/網路結構 | 否 | 否(需另外接資料源) |
| 輸出的確定性 | 高(規則固定,可重現) | 機率性信號,需人工複查 |
| 適合誰 | 只要「大致風向」的快篩 | 要進一步排查可疑聲量、有資源做人工複查 |
三條路,挑一條開始
從最省事到最自由
FAQ
關鍵字字典抓不到什麼? 抓不到反串、抓不到不同帳號用不同措辭發同一套話術——它只看單則文字裡的正負面詞命中數,不會比對「這批貼文放在一起會不會太整齊」。
LLM 分類器可以百分之百抓到花錢的口碑文嗎? 不行,這只是機率信號,不是證據。連學界處理協同操作偵測都強調要搭配時間、內容相似度等多重訊號一起看(見 arXiv:2501.11849),單看一則貼文很難判定。建議當成排序、篩出來給人工複查的工具,不要拿來公開指控特定商家或個人。
asia-social-listening 內建的情緒分析是不是就在做這件事? 不是。它的情緒分析是輕量規則式關鍵字詞表(繁中/英文各十個正負面詞),不是 AI 模型,回傳的只有正/中/負,不會判斷是不是安排好的。要做本文這種分類要另外接 LLM。
這樣抓得到 Threads、Dcard 上的口碑操作嗎? asia-social-listening v1 監控的是連登、PTT、HardwareZone、Telegram 四個平台,不含 Threads、Dcard、FB、巴哈、Mobile01。要涵蓋巴哈或 Mobile01 的聲量,要另外接 bahamut-scraper 或 mobile01-scraper 一起跑。
這樣抓合法嗎? 我們只抓公開內容、不抓需登入的資料,並遵守各站的服務條款與當地法規。
作者 Chad 實際經營 40+ 隻上架 Apify actor(含本文的 asia-social-listening),這些成本與欄位數字都來自真正在跑的資料管線;學界研究與競品資料都附了來源連結,未證實的推測不寫。