iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 25
1
AI & Data

人工智慧 vs.工人智慧系列 第 25

Day 25:第一招 改進資訊辨識成果

這邊要講怎麼改善資料的辨識。

什麼叫做資料的辨識? 前面一直提到說所有的資料是靠人工標記後當作之後使用的資料集,那在標記的過程中常常遇到一些狀況是包括哪些呢?以及如何改善呢?以下我們把遇到的狀況依據屬性列出,並說明如何改善。

「資料自動辨識」
公司名稱辨識
坦白說,這個部分的問題是我自己造成的問題。怎麼說?因為在名詞自動辨識的部分是我自己開發的程式,如果沒辨識好,那就是 code 的功能還不夠完整。

最常見的狀況是公司名稱部分相同,例如:

  • 聯發 (1456) 與 聯發科 (2545)
  • 力新 (5202) 與 奇力新 (2456)
  • 長榮 (2603) 、長榮航 (2618)與 長榮海 (2603)

以及因為 PTT 文章內的結構安排,最常把『正文』(4606) 這間公司抓出來。標題是在講『宏碁』這個會抓的到沒問題,但在 “content” 內有個

1. 標的: 2352 2. 分類: 多 3. 分析/正文: ....

https://ithelp.ithome.com.tw/upload/images/20190926/20119726m1DbC8AGGc.png

每次我都被『正文』給氣死!!因為這樣就等於這篇文章抓到了『宏碁』與『正文』兩間公司,這樣要去抓股價的時候就會不知道該抓誰的股價出來了?

解決方法:
為了避免這樣的困擾,我們在擷取公司名稱的時候加入了一些 rules,也就是會以“標題”上的公司為優先。如果出現了一間以上的公司名稱,則以標題有出現的為主。例如這一篇就會去抓『宏碁』(1710) 這間公司的股價,而不會去抓『正文』(4606)。

Title 不完整
前面提到會以 title 為主, 但就是偏偏有些人不寫清楚,例如有人就只會寫代號在 title

"article_title": 2308 看多

對,就是只留了一個 數值 在標題。這時候你可能會說那就抓代號不就好了,沒錯啊,如果只要抓代號可以處理就好辦了,但偏偏都是事與願違,例如:

"article_title": 3008 目標 2820

這句就有點難解讀了。人類依據語句應該可以看出來 3008 是『大立光』目標只剩下 2820 元,但偏偏 2820 是『華票』。

所以說,這樣 rules 又被打亂了。

解決方法:
一樣是為了避免這樣的困擾,又加入了新的 rules,例如發現可能超過一間以上公司的話,那會進去 context 繼續擷取全部可能的公司出來,然後累積看哪間公司出現最多,那就以它為主。例如下圖的範例在標題並未出現任何公司名稱,但內文出現了『永豐餘』(1907) 和『榮成』(1909) 兩間公司,那這時候因為『永豐餘』次數較多,所以股價的呈現就會去抓『永豐餘』這間公司。

https://ithelp.ithome.com.tw/upload/images/20190926/20119726BSdrobJLZD.png

公司名稱的不同寫法
公司名稱也常發生特殊的寫法,也就是暱稱的部分。例如:
宏達電 (2498):紅茶店
華碩 (2357):石頭
鴻海 (2317):海公公

這些算是在 PTT 股市版的另類說法,如果你本身在股市版待的夠久的話,理解這些術語應該不是問題,不過也並非每個人都可以信手捻來的馬上知道這些意義,所以如果是你自己要標記資料的話應該就會遇到問題。

解決方法:
這部分沒有特別加入什麼解決方式,存粹用經驗來判斷。原本是打算加入一些已知的對應資料進去當作 rules 來判斷,但因為本身自己理解不多,就暫時沒加入。所以如果本身無法判斷出這些特殊的公司名稱,那就跳過該篇文章就好。

「手工標記」
股價變動過高, 忽高忽低
Day 12:小天地裡的遊戲規則 有提到我們會抓取該公司後三個月的股價平均值用當作標記這篇文章好壞的一個參考。但往往股價的變化很快,例如某篇文章提到該公司是看“多”,或許一個月之後是符合預期,但第二個月後反而癲倒,發生股價往下的狀況,最難判斷的是第三個月又回到如預期漲上去的狀況。

https://ithelp.ithome.com.tw/upload/images/20190926/20119726lGl4siPMM4.png

以這篇『科研』(1786) 為例,第一個月真的如文章所說的漲了上去 (從 66漲到84 ),但第二個月卻跌回來( 84 跌到 65 ),但第三個月卻漲回到了 75。像這種三個月內有各自起伏高低的狀況,真的很難決定到底該如何標記。

*解決方法:
這種狀況我們還是要依據文章內的說法來判斷。例如雖然這間公司股價三個月內起起伏伏,但因為文章內提到了“短多”,代表雖然寫說看好公司會漲,但只是短期內,而一個月內也的確漲上去了,那我們就會標記這篇文章屬於 positive。

要注意的是,如果文章沒特別強調公司股價起伏的時間範圍,像這種起伏不定的狀況我們還是都只標記為 undefined,因為我們還是希望資料可以有完整個證據才進行標記。*


「來源問題」
最後這個部分是屬於下載回資料與內容本身的問題。

PTT 原始資料
Day 05 : 先來當個爬蟲 有寫到怎麼抓取 PTT 上的原始資料,其實抓回來後會發現有些資料還是會有缺失,例如內文是“空值” (也就是沒文字),但這也是無法避免的狀況。這種情況無解,就當作少了一篇來源。


好了,以上就是有關資料要處理時面對到的問題,這邊也把一些解決方法寫了上去。文章有點長,是因為問題有點多 ?
一切從零開始以及邊做邊改就是會有這樣的狀況,但也沒關係。兵來將擋、水來土掩;遇到問題就想辦法它解決就好,這才是最重要的!!


免責聲明:本文章提到的股市指數與說明皆為他人撰寫文章內容,包括:選股條件,買入條件,賣出條件和風險控制參數,只適用於文章內的解釋與說明,此提示及建議內容僅供參考之用,並不構成投資研究、認購、招攬或邀約任何人士投資任何投資產品或交易策略,亦不應視為投資建議。


上一篇
Day 24:我錯了, 怎麼改
下一篇
Day 26:第二招 分類器最佳化
系列文
人工智慧 vs.工人智慧30

尚未有邦友留言

立即登入留言