第三章 研究模型
本研究經由第二章文獻探討及研究後,提出本研究之研究模型如圖3-1 所示:
圖3-1:研究模型結構圖 資料來源:本研究
本研究模型如圖3-1 所示,主要分成兩大區塊,一為前置處理,另一為資訊擷取。
斷詞程式
企業評價非財務性資料項資料 資料整合程式
企業評價非財務性 資料項列表
資訊擷取
Excel 擷取程式 年報(PDF 格式) 年報(Html、Excel 格式)
格式轉換
預處理程式 中研院
斷詞處理系統 前置處理
資訊擷取
前置處理主要負責 PDF 格式轉換、表格處理及內容格式預處理等;資訊擷取則負責後 續的資訊擷取步驟,包括有企業評價相關非財務性資料項資料的資訊擷取、斷詞處理、
Excel 表格資料擷取、最後的資料整合。經由該兩大區塊後,最後所得的資料再上傳至 資料庫儲存。
(1) 前置處理:前置處理包含了年報格式轉換、表格處理、內容預處理,詳細說明 如下:
a. 格式轉換:年報資料為 PDF 文件格式,由於 PDF 格式的存取為首要解決 的問題,必須先轉換以進行後續的資訊擷取過程。PDF 的文件格式轉換,
目前可行的方法有自行撰寫或透過第三方程式可解決。自行撰寫費時費 工,且容易有程式容易出錯,適用性低,僅有彈性大為其優點。第三方程 式 則 分 為 免 費 軟 體 及 付 費 軟 體 , 免 費 軟 體 目 前 有 PDF BOX (http://www.pdfbox.org/)等軟體,但其目前僅支援單字元,其優點為穩定性 較自行撰寫高,但其彈性較自行撰寫差;付費軟體目前有Adobe Acrobat、
Solid Converter PDF Professional 等軟體可供使用,Adobe Acrobat 可轉換成 其他如RTF、HTML、JPEG、WORD、XML 等文件格式,Solid Converter PDF Professional 則可以將其轉換為 RTF、WORD、WORD XML 等,亦可 將其內之影像或表格擷取出來。優點為穩定性最好,轉換上亦較為方便簡 單,但由於其為商業軟體,故在彈性上及適用性較為薄弱。綜合上述優缺 點,我們先使用第三方程式轉換格式後,再自行撰寫程式以進行資訊擷 取。由於資料格式對於程式的分析及存取影響很大,所以我們採用了 Adobe Acrobat 來將年報 PDF 資料轉換成目前較為通用的超文字標記語言
(HTML,HyperText Markup Language)格式再進行資訊擷取。
b. 表格處理:由於表格資料不入一般文字資料,其表格的模型會影響最後的
理,減少程式撰寫的過程,提高擷取的效率。我們採用了Solid Converter PDF Professional 來將年報 PDF 檔案中的表格資料擷取出來,並轉換成 EXCEL 檔案格式。
c. 內容預處理:由於年報資料經由轉換後,必定會有部份因轉換演算法不同 所留下的資料格式問題需要再經過處理。在此遇到的問題有編碼改變,段 落格式的改變等問題需要解決,我們透過自行撰寫程式來處理相關的內 容。
(2) 資訊擷取:此為企業評價相關非財務性資料項資料擷取的重要過程,其中包括 了資訊擷取、斷詞處理、Excel 表格資料擷取、最後的資料整合等過程,分述 如下:
a. 資訊擷取:資訊擷取過程我們將資料分為表格及非表格資料分別進行處 理,其中表格資料交由Excel 表格資料擷取部份來處理。非表格資料則以 企業評價相關非財務性資料項之關鍵詞,來進行資訊擷取。但擷取過程我 們分為兩次,一為斷詞前之資訊擷取,一為斷詞後之資訊擷取。斷詞前之 資訊處主要目的為減少斷詞的資料量,並加快第二次的擷取過程及加快程 式的運算過程;斷詞後則為透過斷詞對詞意加以驗證及擷取,避免部份詞 意不符的資料結果被擷取出來,造成錯誤輸入及錯誤結果產生。
b. 斷詞處理:為經過斷詞的資料,僅針對文字上得比對,如此會有許多不符 字義,但因有共同詞而被擷取出來。透過斷詞處理可以幫助我們針對語意 的部份進行更進一步的處理,並刪除那些字義不符的資料,增加資料的正 確性。
c. Excel 表格擷取:此部份主要為處理表格部份資料,透過第三方的 Excel 表格擷取後,使用企業評價相關非財務性資料項的關鍵詞來進行資訊擷 取。由於表格為結構化的資料,故此一部份的擷取上會較非表格上來的容
易一些,且表格資料多為資料顯示,不會有過多的非結構化的內容,所以 我們在這階段沒有進行斷詞處理。
d. 資料整合:在資訊擷取完畢後,我們將資料進行整合處理,將各個年報的 企業評價相關非財務性資料項資料依照表格及非表格的分類儲存至資料 庫,供後續的資料呈現及其他使用者進行第二次的資訊處理。
3.1 PDF 文件格式轉換
3.1.1 PDF 轉 HTML
PDF Reference 一開頭即表示,PDF 格式的目的即在於提供使用者方便及可靠的交 換或瀏覽電子文件,而不因作業環境而有所改變。PDF 使用與 PostScript 相同的影像模 型,採用頁面描述語言來描述文字及圖形,並不受設備及解析度的影響。
PDF 規範從 1993 年開始,從 1.0.6 版到現在最新的 1.7 版,而這版則是新增了過去 沒有的表格功能。使 PDF 文中的表格的也能經由格式化的設定呈現,而不似過往表格 格線皆以圖形或線條表示。這不僅宣告了,將來 PDF 必定可以依照原稿樣式反組譯回 去。但在這之前,PDF 早已沿用多年,過去仍舊有許多文件以舊版格式呈現;甚至將來 也會有一段過渡期,因 PDF 產生工具、程式碼未隨之改變,或由於使用者為了某些因 素,如:智慧財產權等,而刻意操作,使表格仍舊會以圖型化呈現。所以 PDF 的資料 擷取,並未因改版而變的簡單,但新版確實提供使用者的不少便利性。
而在第二章中,我們也提到了最重要的資訊存在本文(Body)中的內容流(Content Stream),所以這部份的資訊擷取變的相當重要。在進行資訊擷取之前,需要先將 PDF 轉換為我們可以讀取的格式。轉換過程除了自行撰寫外,尚有透過第三方軟體。本研究 將採用Adobe Acrobat 內建函式進行 PDF 轉換成 HTML。此法在轉換上,優點為可將大 部分圖文內容按照原排版格式轉換成功,不受字集編碼限制,但缺點為轉換較為耗時,
PDF 轉換完成後再進行資料處理,其中表格部份會於文件載入時預先排除。
超文字標記語言(HTML, HyperText Markup Language ),主要用來提供瀏覽器應該 如何呈現網頁的內容的相關資訊。HTML 為標記語言,主要透過以左右的三角括號(<,
>)的註記(TAG)來進行網頁內文的格式及版面等基本設定,以<tag>開頭,</tag>結 尾。如圖3-2 所示,其內所列為一網頁的基本組成元件,html 表示著網頁的開始與結束;
head 表示其內所包含的為網頁的表頭,內有顯示標題(title)、支援瀏覽器等相關資訊;
body 則為網頁的實際內容。透過這樣階層式的格式,建構出整個網頁的架構。
圖3-2:HTML 基本組成元件 資料來源:本研究
表3-1 所示為 PDF 轉 HTML 之 Pseudo Code,其輸入為年報 PDF 格式,輸出為年 報HTML 格式,採用的轉換方式為 Adobe Acrobat 內建函式進行轉換。
表3-1:PDF 轉 HTML Pseudo Code Input:年報 PDF 格式
Adobe Acrobat 內建函式轉換 Output:年報 HTML 格式
資料來源:本研究
<html>
<head>
<title>
網頁標題
</title>
</head>
<body>
網頁內容
</body>
</html>
3.1.2 PDF 表格轉 Excel
雖然經過了 PDF 轉換器的轉換後,但是表格仍然無法正確轉換出來,一來是因為 PDF 本身對於表格的儲存方式,即是以圖形方式儲存表格格線,所以在轉換時,自然不 會對表格做處理。儘管新版(1.7 版)的 PDF 規範,已新增表格化語法,甚至支援巢狀式 表格。但是在舊有資源,及已開發之工具方面,若沒有特別需求,並不會為了 PDF 改 版,而跟著改變。另外也有人是持著智慧財產權的觀念,而不跟著改版。
但是對於那些公開之 PDF 資料,要以舊有格式供人轉換,似乎仍不可行。由第二 章文獻可知,有人以圖形辨識的方式進行辨識,亦有人以版面區塊來進行辨識表格,但 在 技 術 上 還 不 是 那 麼 成 熟 。 因 此 我 們 使 用 第 三 方 商 業 軟 體 Solid Converter PDF Professional,將 PDF 中的表格資料輸出成 Excel 檔,再讀取 Excel 檔進行後續文字處理。
採用第三方程式的優點為不需自行撰寫程式來應付往後不同的 PDF 版本問題,且可減 少撰寫程式時的錯誤,提昇程式的效率。
表3-2 所示為 PDF 表格轉 Excel 之 Pseudo Code,其輸入為年報 PDF 格式,輸出為 年報之表格Excel 格式,轉換演算法為 Solid Converter PDF Professional 程式進行轉換。
表3-2:PDF 表格轉 Excel Pseudo Code Input:年報 PDF 格式
Solid Converter PDF Professional 擷取表格資料 Output:表格 Excel 格式
資料來源:本研究
3.2 預處理程式
在年報載入之前,由於資料雖為HTML 格式,但由於 PDF 轉換過程中,會有許多 格式或者文字編碼上的改變,所以在此需要將此可能引起程式判讀錯誤的資料先行轉 換。
原始HTML 資料如圖 3-3 所示,內含許多無法辨識的文字,必須透過程式轉換其萬 國碼(Unicode)為繁體中文碼(Big5),才可進行程式的辨識處理,及最後的結果呈現。
圖3-4 為圖 3-3 之原始 HTML 檔案經過程式轉換後之結果,透過程式轉換其編碼後,以 供後續程式進行資訊擷取。
圖3-3:原始 HTML 檔案
資料來源:彩晶(6116)年報 PDF 轉 HTML
圖3-4:Unicode 轉 Big5 後之 HTML 檔案 資料來源:彩晶(6116)年報 HTML 轉換文字編碼
由圖3-4 可看出仍含有許多無關內容的格式設定未去除,故在此尚要處理的動作有 下列:
(1) Unicode 轉換:由於轉換時會將內文資料轉換成 Unicode,因此必須透過程式將 其轉換成中文編碼Big5。Unicode 格式為“&#xxxxx; ”,透過格式轉換成 Big5 碼,如:“股票代號 ”經轉換後為“股票代號”。
(2) 符號轉換:有許多特殊符號不包含在 Unicode 中,屬於 Html 語法等特殊符號,
如:“<” → “>”,必須先做轉換。另外由於中研院的斷詞系統在處理符號時 有部分規定,也必須先行轉換。
(3) 表格移除:由於表格部分我們採用了第三方軟體來處理,所以在此部分必須將 其移除,由於HTML 的表格為<TABLE>起始至</TABLE>為結尾,所以作法為
(4) HTML Tag 移除:在資訊擷取過程中,大部分的 HTML Tag 對我們沒有用處,
所以在送入程式擷取前,先進行資料簡化,以減少程式運算時間。例如:<P>、
<B>等段落或粗體字等註記。
表3-3 所示為預處理程式 Pseudo Code,輸入為年報 HTML 格式,輸出為轉換編碼 及去除HTML TAG 之年文字檔,演算法為自行撰寫。
表3-3:預處理程式 Pseudo Code Input:年報 HTML 格式
Sub preProcess() //載入 HTML //移除 Table //轉換 Big5 碼 //符號轉換 //移除 HTML Tag End sub
Output:年報文字檔(轉換 Big5 編碼並去除 HTML Tag)
資料來源:本研究
3.3 資訊擷取主程式
資訊擷取主程式主要處理的內容為將預處理完的非表格資料進行第一次的資訊擷 取。在此會讀入企業評價相關非財務性資料項的關鍵詞列表,透過這個關鍵詞列表來進 行資訊擷取。由於非財務性的資料格是屬於非結構化的資料,多為敘述性資料,所以單 一資料項可能包含一個或多個關鍵詞,擷取的資料也多為敘述性文字,抓取的內容為含 有關鍵詞的句子或段落。
3.3.1 企業評價相關非財務性資料項列表
在本研究中,資訊擷取所要抓取的對象為企業評價相關的非財務性資料項資料。而 我們的非財務性資料項列表皆來自於企業評價的評價模型,經過我們的整理並排除財務 性資料項後,我們採用表3-4 所列資料項作為企業評價相關非財務性資料項列表的基本 資料項。表3-4 主要資料項來自於收益基礎法之評價模型中的預估未來利益、風險溢酬 組成元素模型(RRCM)、Jeff Jones 法-決定定價乘數、Value-Netex 模式中的各個因子。
表3-4:企業評價相關非財務性資料項列表
項次 資料項名稱
1 法令層面 2 產品屬性 3 品質
4 特有的配方 5 互賴關係 6 特殊關係
7 產業營收成長率 8 財務健全程度
9 管理人員能力與管理深度 10 管理深度
11 市場規模和市場佔有率
12 管理者對公司營運概況與可能面對的風險之看法 13 過去獲利
14 事業類型 15 產業前景 16 管理能力
資料來源:本研究 3.3.2 企業評價相關非財務性資料項關鍵詞
關鍵詞的定義,以基本的資料項列表為主,我們透過台積電及聯電的基本非財務性 資料為訓練集合(Training Set)來訂出各個資料項的關鍵詞,最後選出較為一般性之關鍵 詞作為基本的關鍵詞列表。
表3-5 為關鍵詞部份列表,經由下列關鍵詞的比對及分析,最後擷取出所需的資料 項資料結果:
表3-5:非財務性資料項關鍵詞列表(部分)
資料項名稱 資料項關鍵詞
法令層面 法令層面
法令層面 財務會計準則公報
產品屬性 產品屬性
品質 品質
特有的配方 特有的配方
特有的配方 智慧財產權
特有的配方 專利權
資料來源:本研究
表3-6 為資訊擷取主程式之 Pseudo Code,其輸入為年報 HTML 格式,輸出為資料 項資料候選列表,演算法為自行撰寫。
表3-6:資訊擷取主程式 Pseudo Code Input:年報 HTML 格式
Sub Main()
//載入年報文字檔(轉換 Big5 編碼並去除 HTML Tag) //載入非財務性資料項關鍵詞文字檔 //進行資訊擷取 ItemSearch(){
If (Serch First Keyword){
If ( Check other keyword) Store Data.
End If End If
Output Data.
} End sub
Output:資料項資料候選文字檔
資料來源:本研究 3.4 斷詞程式
自然語言的處理中,最基本的處理單元是詞。而中文又不如英文等是以字為主體,
中文詞彙通常沒有特定的分隔字元,所以在斷詞上更困難。目前國內斷詞處理系統,以 中研院的中文斷詞系統最佳。
中研院斷詞系統其斷詞是以詞類(PoS, Part-of-Speech)來做標記。先將句字全部拆解 為字元標記詞類後,再依照其以語料庫訓練出來的規則(Rules),進行未知詞偵測。而後 將偵測到可合併為詞的字以例外符號註記起來,最後依照例外符號將字組合起來,即完 成斷詞處理。如:將“資訊檢索檢資訊",傳入斷詞系統中,傳回的結果為 “資訊(Na) 檢索(VC) 檢(Na) 資訊(Na)",其中 Na 表示名詞,VC 表示動作及物動詞。
透過斷詞過後,假設今天抓取的資料項關鍵詞為“法規”,而送入的資料內有“民 法規定”一詞,未經過斷詞前,該句子會被抓取入資料項候選,但經過斷詞後,該詞會 斷為“民法”和“規定”,這時透過第二次的擷取,就可以將此一錯誤的資料排除在正確 的資料項資料外。透過斷詞系統可以幫我們檢查字義的部份是否符合,而不會有大量的 無關資料被擷取出來。
在此程式主要為傳送資料至中研院斷詞系統,取得回傳資料後,進行第二次資訊擷 取過程。與第一次資訊擷取過程不同的是,在此載入的資料項關鍵詞亦是經過斷詞後的 結果,而輸入亦是第一次擷取資料再經過斷詞後的結果。經由以上的兩次資訊擷取後,
我們可以將中文文字中的不確定性(Ambiguous)消除,並抓取到最精準的資料。與中文 斷詞系統間是XML 資料格式做傳遞。
圖3-5:中研院斷詞系統用戶端 XML 格式
資料來源:中研院中文斷詞系統(http://ckipsvr.iis.sinica.edu.tw/)
表 3-7 所示為斷詞程式Pseudo Code,其輸入為資料項資料候選文字檔,輸出為資 料項資料文字檔,演算法為自行撰寫,程式中會進行第二次的資訊擷取。
表3-7:斷詞程式 Pseudo Code Input:資料項資料候選文字檔
Sub Main()
//載入資料項資料候選文字檔 //傳送資料至中研院斷詞系統 //取得回傳資料 //進行第二次資料擷取
ItemSearch(){
If (Serch First Keyword){
If ( Check other keyword) Store Data.
End If End If Output Data. }
End sub
Output:資料項資料文字檔
資料來源:本研究
<?xml version="1.0" ?>
<wordsegmentation version="0.1">
<option showcategory="1" /><authentication username="iis" password="iis" />
<text> “欲斷詞文章”</text>
</wordsegmentation>
3.5 Excel 擷取程式
前述為非表格資料的擷取,而表格資料,由於是轉為Excel 格式儲存,在擷取方式 則是採用Apache POI Project 中的 POI-HSSF API (http://poi.apache.org/hssf/index.html),
其為一以 JAVA 所撰寫而成的函式庫,透過該程式抓取 Excel 工作表內的所有資料,並 透過同樣的非財務性資料項關鍵詞列表,來進行資訊擷取,但由於表格資料的性質與非 表格資料上的差異,加上由於該轉換過程僅轉換表格,所以在標題的部份皆遺失(如圖 3-6),透過表格內的內容及透過原本的關鍵詞沒辦法準確的抓取到相關的資料項內容。
圖3-6:失去主標題,無法得知資料內容(實為市場佔有率之統計表) 資料來源:日月光(2311)年報表格轉換
所以因為以上的原因,我們額外替部分資料項資料建立表格關鍵詞,如資料項中的
“管理人員能力與管理深度”,為了抓取符合該資料的董監事資料及經理人資料,透過 分析表格資料,訂出了表3-8 的關鍵詞。資料擷取方式演算法則同於非表格資料所使用 之擷取程式。
表3-9 為 Excel 擷取程式 Pseudo Code,其輸入為年報表格資料 EXCEL 格式,其輸 出為企業評價相關非財務性資料項表格資料,演算法為自行撰寫。
表3-8:非財務性資料項表格關鍵詞列表(部分) 資料項名稱 關鍵詞
管理人員能力與管 理深度
職 稱
姓名 主要學/經歷 -
管理人員能力與管 理深度
職 稱
姓名 主要經(學)歷 -
管理人員能力與管 理深度
條 件
姓名 是否具有五年以上工作經驗及下 列專業資格
符合獨立性 情形 財務健全程度 年
度
會計師 姓名
查核意見 -
資料來源:本研究
表3-9:Excel 擷取程式 Pseudo Code Input:年報表格資料(Excel 格式)
Sub Main()
//載入年報表格資料 //載入表格非財務性資料項關鍵詞列表 //進行資料擷取
ItemSearch(){
If (Serch First Keyword){
If ( Check other keyword) Store Data.
End If End If
Output Data. } End sub
Output:表格非財務性資料項資料文字檔
資料來源:本研究
3.6 資料整合程式
經由以上的步驟後,將經過資料擷取的表格及非表格資料儲存至資料庫中。表3-10 為資料整合程式Pseudo Code,其輸入為非財務性資料項資料,因資料儲存至資料庫中,
沒有任何的資料格式輸出,演算法為自行撰寫。
表3-10:資料整合程式 Pseudo Code Input:非財務性資料項資料
Sub Main()
//載入非財務性資料項資料 //存入資料庫中儲存
End sub Output:N/A
資料來源:本研究