---
# System prepended metadata

title: Progress_BD21

---

# Progress_BD21

### Developed Tool
疫情期間社會輿情洞察工具

### Goal
以情感分析做意見挖掘，觀察新聞如何影響網路輿情對疫情及疫苗的信心，並協助尚未施打者對抗推薦系統造成的片面信心認知: 以美國地區為例

疫苗資料蒐集包含`Johnson&Johnson`、`Moderna`、`Pfizer/BioNTech`

### Finished
1. 近三週內的美國地區Tweets在疫情方面的情感變化 (公眾對疫情的信心)
2. 每日Tweets對於疫情所談論的主題分類及分群
3. 每日各廠牌疫苗的接種數量視覺化
4. 三週內Tweets的文字雲
5. 每日總接種數量、各廠牌接種量的趨勢分析以百分比漲跌做成折線圖
6. 利用pie chart呈現各廠牌疫苗的總接種比率 
7. 計算情感漲跌幅的相對比率，以折線圖呈現(包含整體情感、各疫苗品牌情感)利用比率篩選助於建立觀察區間感知功能
8. 建立自動挑選區間功能: 取代人工自動挑選感興趣區間 (取情感起伏幅度大於均值的區間和疫苗施打劑數起伏大於均值的區間 (取Moderna和Pfizer交集)
9. 自動爬取時間範圍+標題所得到的多篇新聞摘要
10. 以神經網路取代人工搜尋特定時間區間發生的多篇新聞事件，自動生成summary
11. GUI提供關鍵字、日期時間輸入
12. topic modeling 輸出html
13. 儲存 fine-tuned LM

### Changelog
1. 由情感起伏大的區間來看該區間發生什麼事
    - 由主題建模得到時間範圍內討論的主題和關鍵字
    - 情感起伏(正向變動/負向變動)的時間範圍內疫苗接種量變化
2. 下週會再用Omicron出現後的data，討論大眾對疫情的信心是否有新的變化: 
    - 驗證近期新聞一直報導 **Omicron只會產生輕症** 會不會擊潰大眾信心
3. Omicron出現後公眾對各廠牌疫苗的信心和接種量變化
4. 原由近2個月、近2周進行分析，觀察的時間範圍改成:
    1. 近3週（2021-11-01 ~ 2021-11-20)
    2. Omicron出現後2週內 ~~(2021-11-26 ~ 2021-12-09)~~ (2021-11-30 ~ 2021-12-14)
5. 情感變負面時，哪個主題被討論的比較多

### Known
1. 謠言和事實討論都會在Twitter上流動，例如從 2021-11-03 的情感起伏和主題建模可以進一步得知，美國CDC當日准允 5歲~11歲之間的兒童可以接種Pfizer低劑量的疫苗。
2. 可以透過主題建模得到的關鍵字搜尋特定時間區間內發生的事件
3. Omicron出現前，公眾對於疫苗的可信度已大致偏向正向情緒

### TBD
1. 由文字雲組成動圖呈現每日談論的關鍵字 (日後presentation可能需要)
2. 由近期少數天內的情感變化預測未來3天內的接種數量 (無法做，因為還涉及國家政策影響且情感數字無法量化)
3. 資料筆數和其他來源統計 (#tweets, duration, #topics, trends)

### Steps
1. 資料預處理
2. 以Tweets訓練語言模型，對特定時間範圍內的推文做情感分析
3. 以訓練好的語言模型對Tweets做主題建模
4. 以接種數量資料、廠牌接種資料做分析
5. 以主題建模得到的關鍵字所對應的多篇新聞做摘要生成，得到時間範圍內發生的事件摘要
6. 統計情感變化百分比率、各疫苗品牌接種量變化百分比，取超過均變化量的時間區間做為觀察區間
7. 以主題建模得到的關鍵字爬取多篇新聞做多文本摘要生成，得到時間範圍內發生的事件摘要

### Experiments
**以 `2021-11-01 ~ 2021-11-20` 資料為例，新資料輸入後亦同**

0. 將Tweets資料做預處理(去除停用詞、hashtag、其他冗余標籤、文字清理)
1. 以Tweets資料訓練深度學習語言模型(LM) → LM有能分析情感的能力
2. 以LM對step 0 處理好的資料做情感分析 (0: neutral; 1: positive; -1: negative) → 產生時間範圍內(2021-11-01 ~ 2021-11-20)的情感折線圖
3. 用 step 0 處理好的資料做Topic Modeling → 得到每日討論的topic frequency 和各topic下討論的關鍵字 (依相似度排序)
4. 以WHO公布美國每日接種劑數和各廠牌接種劑數做趨勢圖，計算每日接種量的probability，畫出漲跌的折線圖
5. 以情感分析生成的折線圖，計算每日變化的probability
6. 找出 *情感起伏明顯的時間區間*、*接種量起伏明顯的區間*、*特定品牌疫苗接種量起伏明顯的區間*，查看區間內的topic包含哪些關鍵字
7. 利用區間內的關鍵字找出當時發生的新聞，得到新聞是如何影響大眾對疫情/疫苗的信心
8. step 6 的區間尋找原訂人工觀察，這幾天將把程式可以自動感知，並自動回傳觀察區間
9. step 7 提到的新聞內容，之後會將程式能自動爬抓新聞，再利用LM對多篇新聞自動生成摘要
10. 透過step 9，可以節省大量人力做摘要的時間，不需人工花大量時間閱讀多篇新聞
11. 因此，人工需完成的部分，只包含整理LM生成的摘要語義，改寫成自己觀察後的看法
12. 近日將會直接跑Omicron的資料 (已完成)

### Illustration of our model (EN)
![](https://i.imgur.com/QDvv9Wf.png)

### Illustration of our model (zh-TW)
![](https://i.imgur.com/dwFMEMN.png)


### Duration: 2021-11-01 ~ 2021-11-20
[System [2021-11-01 ~ 2021-11-20]](https://colab.research.google.com/github/theQuert/inlpfun/blob/master/Demo/Analysis_of_Covid19_Vaccination_tweets.ipynb)

### Duration: 2021-11-30 ~ 2021-12-14
[System [2021-11-30 ~ 2021-12-14]](https://colab.research.google.com/github/theQuert/inlpfun/blob/master/Demo/Analysis_of_Covid19_Vaccination_tweets_omicron.ipynb)

### Summarization System
[Summarization System](https://colab.research.google.com/github/theQuert/inlpfun/blob/master/Demo/summary_parser_MDS.ipynb)

### Graphs (Nov.)
- [Pie Chart for vaccine brands](https://github.com/theQuert/inlpfun/blob/master/Demo/BD21_graph/pie_chart.png)
- [Probability of daily vaccinations (all)](https://github.com/theQuert/inlpfun/blob/master/Demo/BD21_graph/daily_prob_1.png)
- [Probability of daily vaccinations (brands)](https://github.com/theQuert/inlpfun/blob/master/Demo/BD21_graph/daily_prob_brands_1.png)
- [Result of Sentiment Analysis (U.S.A)](https://github.com/theQuert/inlpfun/blob/master/Demo/BD21_graph/sentiment_1_usa.png)
- [Result of Sentiment Analysis (Pfizer)](https://github.com/theQuert/inlpfun/blob/master/Demo/BD21_graph/sentiment_1_pfizer.png)
- [Result of Sentiment Analysis (Moderna)](https://github.com/theQuert/inlpfun/blob/master/Demo/BD21_graph/sentiment_1_moderna.png)
- [Topic Word Scores](https://thequert.github.io/pages/Demo/scores_fig/)
- [Topic Word Scores (Static)](https://github.com/theQuert/inlpfun/blob/master/Demo/BD21_graph/topic_scores.png)
- [Clusters of Topics with Keywords](https://thequert.github.io/pages/Demo/topic_fig/)
- [Topics Discussed Over Time](https://thequert.github.io/pages/Demo/topic_over_time/)

### Graphs (Omicron)
- [Probability of daily vaccinations (all)](https://github.com/theQuert/inlpfun/blob/master/Demo/BD21_graph/daily_prob_2.png)
- [Probability of daily vaccinations (brands)](https://github.com/theQuert/inlpfun/blob/master/Demo/BD21_graph/daily_prob_brands_2.png)
- [Result of Sentiment Analysis (U.S.A)](https://github.com/theQuert/inlpfun/blob/master/Demo/BD21_graph/sentiment_2_usa.png)
- [Result of Sentiment Scores (Pfizer)](https://github.com/theQuert/inlpfun/blob/master/Demo/BD21_graph/sentiment_2_pfizer.png)
- [Result of Sentiment Scores (Moderna)](https://github.com/theQuert/inlpfun/blob/master/Demo/BD21_graph/sentiment_2_moderna.png)
- [Variance of Sentiment (Pfizer)](https://github.com/theQuert/inlpfun/blob/master/Demo/BD21_graph/sents_var_pfizer.png)
- [Variance of Sentiment (Moderna)](https://github.com/theQuert/inlpfun/blob/master/Demo/BD21_graph/sents_var_moderna.png)
- [Topic Word Scores](https://thequert.github.io/pages/Demo_omicron/scores_fig/)
- [Clusters of Topics with Keywords](https://thequert.github.io/pages/Demo_omicron/topic_fig/)
- [Topics Discussed Over Time](https://thequert.github.io/pages/Demo_omicron/topic_over_time/)
- [Topic Graph for Demo](https://github.com/theQuert/inlpfun/blob/master/Demo/BD21_graph/topic_graph_2.png)
- [Demo Graph for Summary Tool_1](https://github.com/theQuert/inlpfun/blob/master/Demo/BD21_graph/summary_demo_full_1.png)
- [Demo Graph for Summary Tool_2](https://github.com/theQuert/inlpfun/blob/master/Demo/BD21_graph/summary_demo_full_2.png)
- [WordCloud Example](https://github.com/theQuert/inlpfun/blob/master/Demo/BD21_graph/wordcloud.png)
- [Flowchart (zh-TW)](https://github.com/theQuert/inlpfun/blob/master/Demo/BD21_graph/flowchart_zhTW.png)

### Detail of flowchart
- [Flowchart - Sentiment](https://github.com/theQuert/inlpfun/blob/master/Demo/BD21_graph/BD21_zhTW_sentiment.png)
- [Flowchart - Summarization](https://github.com/theQuert/inlpfun/blob/master/Demo/BD21_graph/BD21_zhTW_summ.png)
- [Flowchart - Topic Modeling](https://github.com/theQuert/inlpfun/blob/master/Demo/BD21_graph/BD21_zhTW_topic.png)
- [Flowchart - Trend](https://github.com/theQuert/inlpfun/blob/master/Demo/BD21_graph/BD21_zhTW_trend.png)

### Statistics
- 爬取時間範圍: 2021-12-01 ~ 2021-12-14
- Tweets數量過濾後約保留33,168則貼文，透過Twitter API蒐集包含hashtag #Omicron的推文
- 接種總數據、各疫苗品牌數據來源: OurWorldinData (全球變化數據實驗室) & WHO每日公布之數據

### QA
- 新聞真假: 工具只提供觀察，關於主流或有偏頗性媒體不在討論範圍內(屬新聞及傳播領域)
- 不計入嬌生疫苗: pie chart的接種比率與JJ的輿情情感起伏極小
- 角度: 政府 / 預計接種者 / 已接種者 / 藥廠
- 時間的延遲性問題
- Topic 起伏大卻未被列入觀察區間的原因

### Changes
- 情感分數為0的原因: 因為是取每日相關推文的平均情感分數，可能原因包含
    (1)先前訓練模型情感分數只有-1, 0, 1。模型只對推文極端positive/negative有反應，因此neutral的內容本身較多 
    (2)平均情感分數為0的當天可能同時出現positive, negative，致使平均情感分數為0 
    (3)好處是，我們剛好只想篩選變化起伏的特定日期，模型的不靈敏有助於過濾掉情緒小起伏的區間。
- 情感分數的變化是取`變化量`，因為做變化率計算會有分母為0的問題
- 觀察區間: 
`2021-12-01`, `2021-12-04`, `2021-12-07`, `2021-12-08`, `2021-12-10`, `2021-12-13`, `2021-12-14`
- 不同疫苗品牌接種數量變化率的圖修正完畢
- P.8的嬌生原因要拿掉
- P.13只保留Pfizer, Moderna變化圖 (圖的label字體中文無法顯示)
- 已更新P.20的文字雲圖
- 中文版流程圖
- 數據量&數據來源
- 參考資料: [頁面](https://thequert.github.io/pages/references/)
- 論文-推薦系統影響使用者產生的主觀錯誤偏差：
Analysing the Effect of Recommendation Algorithms on the Amplification of Misinformation