PTT-Stock/README.md at master - GitHub
文章推薦指數: 80 %
PTT中的Stock 版長期為熱門看板,同時約有千人至萬人不等同時在線,時常會有板友分享自己的選股標的、市場看法等。
我們認為這些看法或是群眾的互動有可能是有價值的, ...
Skiptocontent
{{message}}
kuo23
/
PTT-Stock
Public
Notifications
Star
1
Fork
3
Code
Issues
0
Pullrequests
0
Actions
Projects
0
Wiki
Security
Insights
More
Code
Issues
Pullrequests
Actions
Projects
Wiki
Security
Insights
Permalink
master
Branches
Tags
Couldnotloadbranches
Nothingtoshow
Loading
{{refName}}
default
Couldnotloadtags
Nothingtoshow
{{refName}}
default
Loading
PTT-Stock/README.md
Gotofile
Gotofile
T
Gotoline
L
Copypath
Copypermalink
Cannotretrievecontributorsatthistime
巨量資料分析導論-期末報告
PTT討論與股價的關係
一、研究動機
1.PTT介紹
2.研究目標
二、如何爬蟲PTT
1.套件介紹
2.爬標題
3.爬內文
三、文本分析
1.SnowNLP套件介紹
2.自訂語庫
3.參數定義與權重設計
參數定義
權重設計
四、實證結果與準確度
五、改進
Reference
458lines(381sloc)
15.3KB
Raw
Blame
OpenwithDesktop
Viewraw
Viewblame
巨量資料分析導論-期末報告
PTT討論與股價的關係
組員:
產碩108洪意茹
財管107郭銘翔
財管107李權原
一、研究動機
1.PTT介紹
批踢踢實業坊,簡稱批踢踢、PTT,是一個臺灣電子布告欄(BBS)。
建立在台灣學術網路的資源之上,以學術性質為原始目的,提供線上言論空間。
目前在批踢踢實業坊與批踢踢兔註冊總人數約150萬人,尖峰時段兩站超過15萬名使用者同時上線,擁有超過2萬個不同主題的看板,每日超過2萬篇新文章及50萬則推文被發表,是台灣使用人次最多的網路論壇之一。
2.研究目標
PTT中的Stock版長期為熱門看板,同時約有千人至萬人不等同時在線,時常會有板友分享自己的選股標的、市場看法等。
我們認為這些看法或是群眾的互動有可能是有價值的,像是績效比較好的知名版友發布標的時可能造成哄抬股價的"抬轎"現象,又或是有板友提出領先市場的見解,又或是PTT對於市場而言是反指標。
我們想要研究這些網站資訊是否能作為一項投資策略的依據。
二、如何爬蟲PTT
1.套件介紹
使用套件
requests:產生Http請求,下載網站資料
BeautifulSoup:讀取HTML原始碼,自動進行解析並產生一個BeautifulSoup物件,此物件中包含了整個HTML文件的結構樹。
又由於PTT是屬於bbs留言板,網站架構簡單,也沒有驗證機器人,比較好爬。
2.爬標題
從網頁版開始爬:
PTT的網頁板將每篇留言版的文章轉成網頁架構,每篇文章都有獨立的網址,很好爬。
把每天貼文的推文數、標題、內文連結、日期爬下來。
defget_articles(url):
r=requests.get(url,"html.parser",cookies={'over18':'1'})
r.encoding="UTF-8"
soup=BeautifulSoup(r.text,'lxml')
divs=soup.find_all("div","r-ent")
articles=[]
foriinrange(0,len(divs)):
push=0
ifdivs[i].find("div","nrec").string:
try:
push=int(divs[i].find("div","nrec").string)
exceptValueError:
pass
ifdivs[i]("a"):
date=divs[i].find("div","date").string.strip()
href=urllib.parse.urljoin('https://www.ptt.cc/',divs[i].find('a')['href'])
title=divs[i].find('a').string
content=get_content(href)
articles.append({
'date':date,
'push':push,
'title':title,
'link':href,
'content':content
})
returnpd.DataFrame(articles)[['date','push','title','link','content']]
執行的結果
get_articles('https://www.ptt.cc/bbs/Stock/index.html')
日期
推文數
標題
連結
內文
0
6/24
11
[新聞]中華電信再招考271人年薪至少16個月
https://www.ptt.cc/bbs/Stock/M.1529844863.A.6E...
※[本文轉錄自cjol信箱]作者:orz44444(台灣會亂是因為修羅...
1
6/24
19
[新聞]傳比特大陸將砍50%訂單券商:台積電Q3
https://www.ptt.cc/bbs/Stock/M.1529847007.A.F9...
1.原文連結:http://news.ltn.com.tw/news/busin...
2
6/24
20
[新聞]茂迪屏縣種電跨出不利耕地綠能區
https://www.ptt.cc/bbs/Stock/M.1529847524.A.69...
-------------------------------發文提醒---------...
3
6/24
5
Re:[新聞]傳比特大陸將砍50%訂單券商:台積電Q3
https://www.ptt.cc/bbs/Stock/M.1529851666.A.A0...
2330從2018年4月26日的222點到現在6月22日,這中間最高不超過233...
4
6/24
17
Re:[標的]2049上銀
https://www.ptt.cc/bbs/Stock/M.1529853748.A.01...
各位前輩晚安2049上銀因爲S大關係,版上不少人上車其中不乏被...
5
6/24
18
[新聞]光磊滿手單大舉擴產
https://www.ptt.cc/bbs/Stock/M.1529854152.A.44...
1.原文連結:https://goo.gl/4a6GNV2.原文內容:近...
6
6/25
0
[公告]lilylemon違反板規4-4水桶一週
https://www.ptt.cc/bbs/Stock/M.1529856101.A.7D...
主旨:lilylemon違反板規4-4水桶一週說明:經板主巡視版面,lily...
7
6/25
6
Re:[請益]宏達電為什麼不會倒??
https://www.ptt.cc/bbs/Stock/M.1529856261.A.1D...
※引述《gokuhwanlai(你今天范特西了嗎?)》之銘言::個人有個疑問....
8
6/25
9
[標的]1909榮成
https://www.ptt.cc/bbs/Stock/M.1529856532.A.61...
--------------------------------------------...
9
6/25
0
[公告]alberchi違反板規4-2警告一次
https://www.ptt.cc/bbs/Stock/M.1529857094.A.0E...
1.主旨:alberchi違反板規4-2警告一次2.說明:經板主巡視板...
10
6/25
3
[新聞]日出手管制比特幣爆賣壓
https://www.ptt.cc/bbs/Stock/M.1529857926.A.7E...
1.原文連結:http://tinyurl.com/yby7jjus...
11
6/25
0
[標的]本週程式選股結果
https://www.ptt.cc/bbs/Stock/M.1529860487.A.52...
1.標的:本週程式選股結果2.分類:有的多/有的空3.分析/正文...
12
6/25
1
[標的]本週股票多空表
https://www.ptt.cc/bbs/Stock/M.1529860517.A.7D...
1.標的:本週股票2.分類:有的多/有的空3.分析/正文:...
13
6/25
2
Re:[請益]100萬元用來投資股票、創業或留學較好呢?
https://www.ptt.cc/bbs/Stock/M.1529860635.A.06...
※引述《pipiboygay(喜歡男人的男生)》之銘言::非常辛苦的還完全部的...
14
6/25
6
Re:[標的]2049上銀
https://www.ptt.cc/bbs/Stock/M.1529860690.A.62...
我在S大發上銀文的前一天有在起漲點社團問2049我想買零股因為四月的時候...
15
1/25
43
[公告]精華區導覽Q&A
https://www.ptt.cc/bbs/Stock/M.1422199105.A.84...
關鍵字查詢:使用"/"於本文搜尋1.請將頁面跳離關鍵字區2.輸入"/"出...
16
12/18
0
[公告]Stock板規(20151218修訂)
https://www.ptt.cc/bbs/Stock/M.1450418190.A.2F...
main_contenterror
17
6/22
0
[閒聊]2018/06/22盤後閒聊
https://www.ptt.cc/bbs/Stock/M.1529647207.A.8D...
難道今天只有我賠錢?https://i.imgur.com/k8N7Q6o.jpg...
3.爬內文
在爬完文章列表還有文章內容後,還要爬每篇文章的下方推文,這些推文可以幫助我們了解鄉民對於這篇文章的看法,更重要的是情緒的判讀。
例:
爬完推文如下
Crawler_PTT_Push('https://www.ptt.cc/bbs/Stock/M.1529844863.A.6E8.html')
push
message
time
0
推
:要噴了
06/2420:57
1
推
:CHT真的超爽
06/2421:06
2
推
:噴個鬼啊XD
06/2421:06
3
推
:快進場
06/2421:09
4
推
:以前就這樣啦@@
06/2421:09
5
推
:我以為對員工越壞的越會噴xD
06/2421:19
6
推
:真是血汗
06/2421:29
7
推
:中華電不會噴
06/2421:30
8
推
:之前從100噴到113現在回檔了
06/2422:32
9
→
:爛公司已報名
06/2422:55
10
推
:看到那些老賊的嘴臉不爭氣的報名了……有讀書
06/2500:44
11
→
:會可以參加嗎
06/2500:44
12
推
:馬的正職根本超少一堆血汗派遣
06/2500:51
以上爬完資料後,再對這些文字資料進行文本分析。
三、文本分析
1.SnowNLP套件介紹
SnowNLP是一個python套件,可以用來處理中文文本,主要功能內容包括:中文分詞、情感分析、提取關鍵詞、提取大綱等等。
本次報告內容著重在使用情感分析的部分,套件的內建指令會對文本打0-1的分數,0-0.5為負面,0.5-1為正面;內建語庫則是針對買賣購物。
2.自訂語庫
情緒分析參考的字典語庫本來用套件的內建的字典,但是由於以下原因,我們決定自訂語庫:
內建字典收錄詞彙很多,我們認為加入自定義的股票版關鍵字對於情緒分析的影響並不大。
股票版的鄉民用詞具有蠻高的重複性,每則推文表達多空用詞接近,我們認為可以快速提高準確度。
舉例
多方用詞:起飛、電梯向上、大漲、火熱、低調噓、短線看多等等
空方用詞:倒貨、出貨、睡公園、快逃R、電梯向下、怕
我們透過爬蟲放入多篇個股相關的新聞、常見推文等作為股票版用語的訓練,幫助我們準確的分析股票版鄉民的意見。
#應回傳0-1之間的情緒值,經我們字典訓練意為多空判斷值
emotion_analysis('起飛囉')
>0.773593997384181
emotion_analysis('出貨文')
>0.29646853146853172
emotion_analysis('持續成長')
>0.9278816405829792
3.參數定義與權重設計
參數定義
情感分析原始分數
自製標籤
0-0.5
負面,設為-1
0.5-1
正面,設為1
權重設計
每一篇貼文都有標題、本文、留言、推文數等架構,我們可以先分成兩大部分。
標題與本文:通常標題會與本文相關。
由於本文的組成較為複雜,因此我們會先對本文截取一個摘要,並分別對摘要以及標題進行情感分析,此部分權重為0.6。
推文:每一則推文我們都個別做情感分析,再透過推為1、噓為-1(因為噓文的人通常是在反串)、箭頭為0來做為分數加總的正負號依據。
舉例來說:
噓:全力做多ㄏㄏ
經過情感分析判斷這則留言是看多,但此留言為噓文,因此會透過加負號的概念讓分數轉為看空。
而此部分的權重為0.4。
將兩部分加總後,即可得到該則貼文的情感分析分數,然後再依推文數加權平均當天所有貼文的分數作為當天的總分,分數會落在-1到1之間,進而得到對於隔天多空預測之分類,例如小於0為預測隔天大盤會跌,大於0為預測隔天大盤會漲,漲跌分類為跟前一天大盤收盤價直接比較。
四、實證結果與準確度
預測出來的每天都是負的,也就是說我們每天做出來都覺得明天大盤會跌QQ,分析後覺得有可能的原因如下,
第一,雖然本文看多,但若底下很多人都留言負面的話,就會對分數計算會有加成效果,會導致分數無法真實呈現。
第二,因為我們只預測隔天,所以若做出來準確度高的話就表示大盤是momentum,但結果顯示大盤並不是喔~,所以可能預測天數也有關係。
第三,PTT的設計制度會有反串與跟風等等現象,且真正具專業度與公信力的評論相對較稀有,導致雜訊變多。
後來我們有微調分數,向右平移0.5,目的是為了讓門檻降低,類似標準化的概念,也就是說如果原始分數靠近0.5(跌但機率小),則有機會變成小漲。
在調整前準確度(47%)(等於每天都看空大盤的勝率)
調整後準確度(53%)(略大於一邊壓)
五、改進
字典庫應該可以擴充更多資料,加強準確度
標題的分類可以加入探勘
預測標的可以貼近原構想,例如炒作股、飆股等,大盤可能會雜訊多
或是改爬專業度較高的網站,例如cMoney等
Reference
簡報連結
參考資料:SnowNLP使用範例
Go
Youcan’tperformthatactionatthistime.
Yousignedinwithanothertaborwindow.Reloadtorefreshyoursession.
Yousignedoutinanothertaborwindow.Reloadtorefreshyoursession.
延伸文章資訊
- 1PTT-Stock/README.md at master - GitHub
PTT中的Stock 版長期為熱門看板,同時約有千人至萬人不等同時在線,時常會有板友分享自己的選股標的、市場看法等。 我們認為這些看法或是群眾的互動有可能是有價值的, ...
- 2Stock - Re: [心得] 真的不能看ptt買股票耶= =
他又丟50萬進去了: 現在從9點到現在他不發一語我也不敢自己傳line給他: 應該開個ptt反ETF 獲利穩穩隨便都10%起跳 首先該問的是: 你為何要看PTT STOCK ...
- 3Re: [請益] 歐印股票怎麼賣- Stock - PTT情感投資事業版
不過1000多張要賣蠻久的已羨慕-- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.226.101.34 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/S...
- 4看板Stock 文章列表- 批踢踢實業坊
批踢踢實業坊 › 看板Stock 關於我們 聯絡資訊 · 看板 精華區 · 最舊 ‹ 上頁 下頁› 最新. 41. [情報] 110年11月17日櫃買法人買賣金額統計表. centaurjr.
- 5看板Stock - [股板] 徵求板主詳見置底[學術]
PTT網頁版 · 登入/註冊. menu ... 看板名稱查詢 · 批踢踢PTT 搜尋引擎. [ Stock ] [股板] 徵求板主詳見置底 (5043人氣). +收藏. 最新 · 熱門 · 分...