班長:65K2步槍大部分解開始
兵:大部分解開始
取下彈匣,檢查托彈鈑是否正常。 正常
分解槍背帶 …
阿 … 不是 這個大部分解啦,在搞什麼 ?
我們在上一篇有提到抓回來的 PTT 文章長什麼樣子,既然有了資料,那是不是可以先來看看這些資料能做什麼?其實在第三天的文章『Day 03: 高手真的在名間』就有提到我們曾經找出過什麼資料:
1)誰表的文章最多?
2)誰發表的文章被推文數最多?
在這裡就針對這兩個數字去說明我們用了哪些方法來找的。
1)誰表的文章最多?
要誰發表的文章最多,首先當然是要知道文章是被誰發表過,所以先針對文章內的 author 做個統計。 現在需要計算這兩個數據,然後把它互相對比對一下就可以了:
好用的程式碼不用嗎?當然直接拿我先寫好的 code 當範例啊 ?
https://github.com/deternan/PTT_Stock/blob/master/src/main/java/ptt/statistics/Statistical_AuthorsList.java
在這個範例檔有些地方要配合你自己的環境進行調整:
folder_source :存放已經下載的 ptt 文章位置
folder_output :結果輸出位置
首先,用 for 迴圈把所有的檔案讀取一次
File folder = new File(folder_source);
File[] listOfFiles = folder.listFiles();
for (File file : listOfFiles){
<執行 functions>
}
在 <執行 function> 的部分,就是擷取文章內的 author。function 裡面有需多該執行的 method,首先執行ReadFile(<檔案路徑>) 會將檔案暫存為字串,會再接續 Parsing(<字串>) 進行 author 的截取。先用 allAuthor_temp 這個把擷取出的作者代號存入,之後用CountDuplicatedList() 計算每個 author 的累計數量,再來使用 Java 內建的 LinkedHashMap 直接做排序,將 author 代號與數量輸出至 allAuthor_array 和 allAuthorStastic_array 中 ; 這時候就已經完成全部作者代號 (author) 的收集了。
好,這時候 allAuthorStastic_array 這個向量中已經幫我們排序好由大到小順序的作者數量,這就是每個作者發表文章的數量。同樣的,我也先把作者清單也列出來給大家使用
https://github.com/deternan/PTT_Stock/blob/master/output/AuthorList_20190508.txt
說明一下檔案後面數字的意思,因為PTT每天都會產生新文章出來,所以後面數值就是哪一天輸出後的結果,這個檔案是我在 2019年05月08日 輸出的,所以用 20190508 當結尾。
因為我們用了 MapSort 來累計作者出現在哪些文章中,所以只要把某作者代號當成一個 key,只要某文章出現該作者帶好,則 value就+1,如此 MapSort 就可以幫我們算出作者發表過了多少文章。這邊是我找出的數量:
https://github.com/deternan/PTT_Stock/blob/master/output/AuthorStatistical.txt
好!解決了作者名稱,再來就是去累計每篇文章到底都是哪些作者所發表的,如此再比對一下就可以知道了。
在第一階段的程式碼可以到這裡下載:
也可以直接看一下處理過後的結果:
MessageStatistical_20190518.txt
我們用前面提到的作者清單跟這一份輸出資料做一下交叉的比對,然後累積起這些數量即可得到此數值。程式碼的部分也已經完成,可以直接使用:
Statistical_NumofPushByAllAuthor.java
這裡依序用三個方法執行:
當依據完成三個方法後,可以得到這個輸出檔:
輸出的左邊是作者代號,右邊是被推文的數量。以上依序完成了這兩個數據,下一次繼續講另外兩個也應該注意的數字囉。
免責聲明:本文章提到的股市指數與說明皆為他人撰寫文章內容,包括:選股條件,買入條件,賣出條件和風險控制參數,只適用於文章內的解釋與說明,此提示及建議內容僅供參考之用,並不構成投資研究、認購、招攬或邀約任何人士投資任何投資產品或交易策略,亦不應視為投資建議。