• 沒有找到結果。

第三節陳述補償式 工作媒合系統(compensatory matching system)的發展

N/A
N/A
Protected

Academic year: 2021

Share "第三節陳述補償式 工作媒合系統(compensatory matching system)的發展"

Copied!
34
0
0

加載中.... (立即查看全文)

全文

(1)

第五章 研究實施

本章旨在說明本研究的實施方式,也就是發展七種不同型式的工 作媒合系統。首先在第一節中陳述單純關鍵字工作媒合系統 (simple keyword-matching system)的發展。第二節陳述結構化關鍵字工作媒合 系統 (structured keyword-matching system)的發展。第三節陳述補償式 工作媒合系統(compensatory matching system)的發展。第四節陳述比 例式工作媒合系統 (proportional matching system)的發展。第五節陳 述加權補償式工作媒合系統 (weighted compensatory matching system) 的 發 展 。 第 六 節 陳 述 里 程 碑 式 工 作 媒 合 系 統 (milestone matching system) 的 發 展 。 第 七 節 陳 述 綜 合 式 工 作 媒 合 系 統 (comprehensive matching system)的發展。最後在第八節作一小結。

第一節 單純關鍵字工作媒合系統的發展

一、發展工作需求的資料庫綱要

工作媒合系統必須要有求才與求職的資料,這兩者的資料結構要 盡量相同,以方便進行媒合。本研究參考了國內的人力資源網站 (104 人力銀行,2007;1111 人力銀行,2007)有關的求才與求職的資料結 構,配合本研究的需求,訂定了儲存求才與求職的基本資料庫表,其 綱要如表 5-1 所示,兩者的欄位名稱完全相同,只是資料表的名稱不 同而已。除了基本資料以外,本研究參考先導研究 (溫瑞烘、莊謙本,

2007;Ven & Chuang, 2007)的分類方式,將軟體開發人員所需要的技 能分成六個領域,分別是作業系統技能、電腦語言技能、標記語言技

(2)

能、資料庫技能、分散式技能與其他技能等,這樣的考量可以讓本研 究使用先導研究所蒐集的資料來當作測試資料集,也可以利用先導研 究的結果來作為輸出排序的依據。

5-1 求才者與求職者的資料表綱要

求才者 欄位名稱 求職者

工作代碼 Code 履歷代碼

提供職務名稱 Title 應徵職務名稱

工作年資需求 Experience 過去工作年資 最高學歷需求 Education 獲得最高學歷

提供待遇範圍 Salary 希望待遇範圍

作業系統需求 OsSkill 擁有的作業系統技能

電腦語言需求 CompLanSkill 擁有的電腦語言技能 標記語言需求 MarkLanSkill 擁有的標記語言技能

資料庫需求 DbSkill 擁有的資料庫技能

分散式技能需求 DistSkill 擁有的分散式技能 其他技能需求 OtherSkill 擁有的其他技能 資料來源:本研究

訂定了求才與求職的資料庫表的綱要之後,再以 MySQL 的資料 定義語言來建立這兩個資料庫表的命令如下所示,求才者所需要的資 料庫表命名為「工作需求表 JobOffer」,而求職者所需要的資料庫表 命名為「履歷表 Resume」,其主要鍵為工作代碼或履歷表代碼,可以 作為唯一識別之用。

(3)

CREATE TABLE JobOffer -- 工作需求表儲存工作需求資料 (

Code INT UNSIGNED NOT NULL, -- 代碼 PostDate Date NOT NULL, -- 張貼日期 Title VARCHAR(255) NOT NULL, -- 職務名稱 Experience TINYINT UNSIGNED NOT NULL, -- 年資 Education VARCHAR(255) NOT NULL, -- 最高學歷 Salary VARCHAR(255), -- 待遇範圍 OsSkill VARCHAR(255), -- 作業系統 CompLanSkill VARCHAR(255), -- 電腦語言 MarkLanSkill VARCHAR(255), -- 標記語言 DbSkill VARCHAR(255), -- 資料庫 DistSkill VARCHAR(255), -- 分散式技能 OtherSkill VARCHAR(255), -- 其他技能 PRIMARY KEY(Code)

);

求才者與求職者的資料必須透過工作入口網站所提供的功能,分 別讓求才者輸入工作需求的資料、也可以讓求職者輸入個人資料與所 獲得的技能,另外一種方式是透過事先建立好的文字檔案,以 MySQL 的命令 LOAD DATA INFILE 的方式載入。

二、發展單純關鍵字工作媒合系統

所有的人力銀行的系統都提供單純關鍵字媒合的功能,也就是針

(4)

對特定的欄位以關鍵字來查詢,但是大部份的查詢欄位只限於職務名 稱或公司名稱,少數可以使用技能名稱來查詢。以職務名稱來查詢可 能造成使用者的困擾,因為職務名稱的唯一根據是行政院於民國 89 年所公佈的職業分類典 (中華民國職業分類典,民 89),但大部份的 求職者不可能瞭解職務的分類方式,只好嘗試錯誤式的使用不同的關 鍵字來查詢。另一方面,求才者在輸入職務名稱的時候,也未必會依 照職業分類典的職務名稱來進行查詢,可能會按照公司所自定的職務 名稱,這些都可能影響查詢的結果。另外,以技能名稱為關鍵字來查 詢時,也往往受到關鍵字選擇的影響。例如 Windows 系列的作業系 統 由 Windows 95、Windows 98、Windows NT、Windows XP、到 Windows Vista 等,其技能的內涵大同小異。其他如 ASP 與 Active Server Page、JSP 與 Java Server Page 等,都是同義詞。求職者與求才 者可能以自己的習慣來登錄或選擇關鍵字,也會影響查詢的效能。

以單純關鍵字查詢的結果往往有數百筆到數千筆回覆,大多按照 訊息張貼的日期由大至小排序,完全達不到篩選的功能。求職者要一 筆一筆檢視求才者的工作需求與其他條件,來判斷自己是否能夠勝 任。同樣的,求才者也必須一筆一筆檢視履歷表,判斷應徵者的能力 是否合乎工作上的需求。這整個過程非常的沒有效率,如果有一個機 制,可以按照某種重要的特徵來排序,就可以提升篩選的效率。

本研究在先導研究中已經獲得每一種技能的重要性指標值,指標 值越大者表示越是重要,並且是當前大部份企業界所需要的技能。因 此,只要將合乎關鍵字查詢的每一筆紀錄的技能重要性指標值累加起 來,就可以作為關鍵字查詢輸出的排序依據,也就可以讓求才者與求

(5)

職者作為篩選的依據,此技能需求表主要是由兩個欄位組成:技能的 名稱與其重要性指標值,如下所示:

CREATE TABLE SkillRequire (

ContextId INTEGER NOT NULL, -- 環境識別碼 SkillName VARCHAR(255) NOT NULL, -- 技能名稱 Ratio FLOAT NOT NULL, -- 重要性指標值 PRIMARY KEY(ContextId, SkillName)

);

本研究所發展的單純關鍵字工作媒合系統的介面如圖 5-1 所示,

總共有三種不同的選項及一個關鍵字輸入欄位,分述如下:

5-1 單純關鍵字工作媒合系統的介面 (資料來源:本研究)

1、查詢標的選擇:分成查詢人才與查詢工作,前者查詢履歷資料表 Resume,後者則查詢工作需求表 JobOffer。

2、語意延伸查詢選擇:可以選擇不使用 ontology 或使用 ontology。

(6)

前者只做單純的關鍵字與六個技能欄位之間的比對,而後者還會 進一步利用資訊能力本體來做語意延伸查詢。其方法是利用資料 Lexon 來找出關鍵字的所有同義詞,再以這些同義詞為關鍵字 進行查詢。

3、輸出方式選擇:可以選擇不排序輸出或排序輸出,前者將查詢結 果按照張貼日期來輸出,使用者必須以瀏覽的方式,一一檢視是 否 合 乎 需 求 。 後 者 則 是 利 用 先 導 研 究 所 獲 得 的 技 能 重 要 性 指 標 值,來作為輸出的排序依據,其方法是取出每一筆符合關鍵字查 詢 的 所 有 技 能 , 再 利 用 所 取 得 的 技 能 名 稱 來 查 詢 技 能 需 求 表 SkillRequire,並累計其重要性指標值 Ratio,最後按照指標值的總 和由大至小輸出。因此,愈先輸出的資料具有較多的重要技能,

可以作為選擇人才或選擇工作的依據。

4、技能關鍵字輸入:本研究的目的在彰顯關鍵字查詢時使用本體與 不使用本體之間的差異,因此,並未將查詢職務名稱列入,只以 查詢技能為例。所輸入的關鍵字先經過前置處理,包括去除前後 包覆的雙引號、去除前後的空白或 Tab 字元等。最後在關鍵字的 前後加入萬用字元%以便進行模糊查詢,假設儲存關鍵字的變數 為$Keyword,則 MySQL 的 SQL 查詢命令格式如下:

SELECT * FROM JobOffer WHERE FieldName LIKE $Keyword;

第二節 結構化關鍵字工作媒合系統的發展

一、發展結構化關鍵字工作媒合所需的資料庫綱要

(7)

結構化關鍵字媒合是利用關鍵字來搜尋整個結構,也就是要分別 搜尋每一個欄位,但是這樣的作法會使得搜尋的效率降低,為了改善 這個缺點,本研究把每一筆工作需求表 JobOffer 的主要鍵保留,並且 將其他欄位的資料連接起來,中間使用空白隔開,使其變成一個長的 字串;每一筆履歷表 Resume 也採取相同的轉換方式。因此另外需要 兩個資料表來儲存轉換後的結果,JobOffer 所對應的結構化資料表為 JobOfferText;Resume 所對應的結構化資料表為 ResumeText。兩者之 間可以透過一個線上轉換程式來完成,也就是當求才者輸入或修改一 筆工作需求完成後,除了寫入 JobOffer 與 Resume 之外,並呼叫此轉 換程式,將 JobOffer.Code 或 Resume.Code 兩個主要鍵保留,將其他 所 有 欄 位 的 資 料 連 接 起 來 , 欄 位 之 間 以 空 白 隔 開 , 並 寫 入 到 JobOfferText 中。同理,當求職者輸入或修改一筆履歷表完成後,也 是採取相同的處理方式,但寫入到 Resume 與 ResumeText 中。這兩 個資料表的結構完全相同,如下所示,Code 欄儲存工作代碼或是履 歷代碼,Buffer 欄位的型態為 BLOB,用來儲存轉換後的長字串,兩 個資料表之間的關聯欄位為 JobOffer.Code 與 JobOfferText.Code、或 Resume.Code 與 ResumeText.Code。

CRETATE TABLE JobOfferText (

Code INT UNSIGNED NOT NULL, -- 代碼 Buffer BLOB, -- 長字串

PRIMARY KEY(Code) );

(8)

二、發展結構化關鍵字工作媒合系統

結構化關鍵字媒合系統的介面如圖 5-2 所示,查詢標的選擇分成 查詢人才與查詢工作;語意延伸查詢的選擇分成不使用 ontology 與使 ontology;輸出方式的選擇分成不排序輸出與排序輸出,其處理方 式和前一節單純關鍵字媒合系統的處理方式一樣。當使用者輸入關鍵 字之後,經過前置處理去除前後包覆的雙引號、去除前後的空白或 Tab 字元等,並在此關鍵字的前後加入字元 ‘%’,就可以使用 MySQL SQL 查詢,即:

SELECT * FROM JobOffertText WHERE Buffer LIKE $Keyword;

SELECT * FROM ResumeText WHERE Buffer LIKE $Keyword;

查詢到的每一筆資料再透過 JobOfferText.Code 與 JobOffer.Code、或 ResumeText.Code 與 Resume.Code 相互關聯,就可以找到原本的資 料,再按照所選擇的輸出方式依次輸出各欄位的內容。

5-2 結構化關鍵字工作媒合系統的介面 (資料來源:本研究)

(9)

第三節 補償式工作媒合系統的發展

一、補償相似度的計算方式

關鍵字的媒合是一種二分法的媒合,當應徵者具有雇主要求的技 能時,該媒合就是成功,否則就是媒合失敗。這種媒合方式完全不考 慮技能的程度,但是雇主在徵求人才時,可能會要求技能的程度,但 是未必就可以立即找到完全合乎需求的人才。當應徵者的技能程度超 過了雇主的要求時,雇用這種人才可以立即投入工作,減少職前訓練 的時間與花費。因此,雇主可以考慮按照超過的比例給予補償,當應 徵者的技能程度未達雇主的要求時,雇用這種人才會增加職前訓練的 時間與花費。因此,雇主也可以考慮不足的程度給予扣分,這就是補 償式工作媒合的概念。

在技能程度的分級方面,Sure, Maedche, & Staab (2000)的分級方 式原有四個等級,其中的第 0 級表示沒有任何知識與技能。本研究參 Sure 等人 (2000)的分級方式,但不使用第 0 級,因為沒有任何知 識與技能根本就不需要列出該項技能。因此,技能程度總共分成三 級,分別使用 1 表示初學程度、2 表示普通程度、3 表示專家程度,

或相當於 30%、60%、與 90%的比例。技能程度的資料係在技能名稱 之後以%n 來表示,n 值界於 1 到 3。

在 補 償 式 媒 合 相 似 度 的 計 算 方 面 , 本 研 究 分 別 參 考 了 Sure, Maedche, 與 Staab (2000)及 Biesalski, Breiter, 與 Abecker (2005) 的 計算方式,但是將計算公式精簡表示如下:

(10)

) (

, 1

2 , 1

i j n

i i

m

j j i

rymatch

compensato R J

J J R

Similarity ×

= ∑∑

=

=

此處 Ji是某個工作技能需求的程度,而 Rj是應徵者具有相同技能的 程度。因此,分母部分是技能需求程度的平方和,雇主所要求的技能 都必須投入計算,分子部份則是兩個相對應技能程度的乘積,超出雇 主要求的技能則不列入計算。表 5-2 為補償式相似度的計算範例,以 第 三 列 的 資 料 為 例 , 工 作 需 求 的 技 能 與 程 度 為 Java%1, C++%2, ASP%3。因此,分母部份為三種技能程度的平方和 12+22+32=14;應 徵者的技能與程度為 Java%2, C++%1, Delphi%1,與工作需求相互匹 配的技能只有 Java%2 與 C++%1,因此,分子部份為這兩種技能對應 程度乘積之和 1*2+2*1=4,計算所得的補償式媒合相似度為 0.286。

5-2 補償式相似度的計算範例

工作需求的技能 應徵者的技能 補償式媒合相似度

Java%1 Java%3 1 3

3 1

2 =

×

Java%3,C++%2 Java%2,C++%1

615 . 2 0

3

1 2 2 3

2

2 =

+

+

×

Java%1,C++%2,ASP%3 Java%2,C++%1, Delphi%1

286 . 3 0 2 1

1 2 2 1

2 2

2 =

+ +

+

資料來源:本研究

在實作上,本研究另外訂定了兩個資料庫表,JobOfferComp 儲 存雇主所要求的工作需求,其結構和 JobOffer 相同。ResumeComp 則

(11)

儲存應徵者的履歷資料,其結構也和 Resume 相同。為了測試補償式 工作媒合系統,本研究利用工作需求表 JobOffer 與履歷表 Resume,

以 隨 機 方 式 產 生 每 一 個 技 能 的 程 度 , 並 寫 入 到 JobOfferComp 與 ResumeComp 中。JobOfferComp 的資料結構如下:

CREATE TABLE JobOfferComp -- 工作需求表(補償式媒合) (

Code INT UNSIGNED NOT NULL, -- 代碼 PostDate Date NOT NULL, -- 張貼日期 Title VARCHAR(255) NOT NULL, -- 職務名稱 Experience TINYINT UNSIGNED NOT NULL, -- 年資 Education VARCHAR(255) NOT NULL, -- 最高學歷 Salary VARCHAR(255), -- 待遇範圍 OsSkill VARCHAR(255), -- 作業系統 CompLanSkill VARCHAR(255), -- 電腦語言 MarkLanSkill VARCHAR(255), -- 標記語言 DbSkill VARCHAR(255), -- 資料庫 DistSkill VARCHAR(255), -- 分散式技能 OtherSkill VARCHAR(255), -- 其他技能 PRIMARY KEY(Code)

);

二、發展補償式工作媒合系統

補償式工作媒合系統的介面如圖 5-3 所示,查詢標的選擇分成查 詢人才與查詢工作、語意延伸查詢的選擇分成不使用 ontology 與使用

(12)

ontology,查詢的結果都是以排序方式輸出。在技能的部份,本研究 利 用 先 導 研 究 的 結 果 (溫 瑞 烘 & 莊 謙 本 , 2007; Ven & Chuang, 2007),只列出了六種技能分類中較為重要的技能提供選擇,因為本 研究的目的在彰顯不使用本體與使用本體作延伸查詢的差異。

5-3 中除了技能的名稱之外,還多了技能程度的輸入,當使用 者確定了需求之後,所有的技能及其程度首先被組合成為一個字串,

每一個技能之間以逗號隔開,例如:

windows%3,linux%2,sql server%3,mysql%2,java%2,c++%3 再進一步取得 JobOfferComp 或 ResumeComp 的紀錄,並將其技能與 程度組成相同的格式,以便進行補償相似度的計算。

5-3 補償式工作媒合系統的介面 (資料來源:本研究)

5-3 為不使用 ontology 作語意式延伸查詢時補償相似度計算的 演算法,參數$Skill1 與$Skill2 分別代表要計算補償式相似度的兩個

(13)

技能集合,首先將$Skill1 分離出技能名稱與技能程度,並存入陣列

$Sk1 中,利用技能名稱當作$Sk1 的索引、技能程度當作$Sk1 的值,

例如$Sk1[“windows”]=3,表示需要 Windows 的技能,其程度為專精 級。同理將$Skill2 分離後儲存到$Sk2 中,再利用兩個迴圈依次判斷

$Sk1 與$Sk2 的技能名稱是否相同作為計算的依據。

5-3 補償相似度計算的演算法

Algorithm CompensatorySimilarity($Skill1,$Skill2) { $SumSquare=0.0;

$SumProduct=0.0;

Separate $Skill1 into array $Sk1 using skill name as array index and skill level as array value

Separate $Skill2 into array $Sk2 using skill name as array index and skill level as array value

foreach ($Sk1 as $Key1 => $Value1) {

$SumSquare=$SumSquare+$Value1*$Value1;

foreach ($Sk2 as $Key2 => $Value2) if ($Key1==$Key2)

$SumProduct=$SumProduct+$Value1*$Value2;

}

if ($SumSquare!=0) $Ratio=$SumProduct/$SumSquare;

else $Ratio=0.0;

return $Ratio;

}

資料來源:本研究

(14)

當使用者要利用 ontology 作語意式延伸查詢時,其方法就是利用 儲存本體的資料表 Lexon,來找出$Sk1 中每一個技能的同義詞集合,

也找出$Sk2 中每一個技能的同義詞集合。只要兩個同義詞集合中出 現相同的名稱,其媒合就是成功,因此可以將表 5-3 的

if ($Key1==$Key2)修改成 if (SameSynonym($Key1,$Key2))就可以達 成目的,此處 SameSynonym($Key1,$Key2)是用來判斷兩個參數之間 是否具有相同的同義詞。

第四節 比例式工作媒合系統的發展

一、比例相似度的計算方式

本研究參考 Biesalski, Breiter, 與 Abecker (2005)的比例式媒合方 法,但是在技能程度的分級上,把 Biesalski 等人 (2005)原來的四級 改成三級,也就是分成初學、普通與專精,其對應的分數等級為 1、

2 與 3,或相當於 30%、60%、與 90%的比例。這樣的分級可以使得 求才者與應徵者比較容易估計技能的程度,也和本研究前一個發展的 補償式工作媒合系統具有相同的技能程度分級。

比例相似度的計算公式如下所示:

S

i s sim

I S

similarity s Si I

al proportion

al proportion

= ,

) , ( )

, (

其中 s 是求才者的技能需求,i 是求職者的技能供應,S 是技能需求的

(15)

集合,I 是技能供應的集合。simproportional(s,i)是求才者技能需求與求職 者技能供應程度之間的相似度,其中的 s 與 i 必須是相同的技能,│S│

是技能需求的總數。當應徵者的技能程度大於或等於雇主的要求時,

所獲得的相似度分數為 1,但當應徵者的技能程度小於雇主的要求 時,則按照比例的方式給予分數,例如第 1 級與第 2 級的相似度為 (3-(2-1))/3 為 0.667。第 1 級與第 3 級的相似度為(3-(3-1))/3 為 0.333。

因此,比例式相似度的計算就是所獲得的總分數除以技能的總數。例 如雇主要求的技能與程度為[Java%3,C++%2,VB%3,Delphi%1],而應 徵 者 的 技 能 與 程 度 為[Java%3,C++%1,VB%1] , 則 比 例 相 似 度 為 (1+0.667+0.333)/4=0.5。

二、發展比例式工作媒合系統

比例相似度計算的演算法如表 5-4 所示,與表 5-3 的補償式演算 法極為類似,係利用兩個迴圈依次取得參數$Skill1 與$Skill2 中的每 一 個 技 能 名 稱$Key1 與 $Key2 , 與 其 對 應 的 技 能 程 度 $Value1 與

$Value2。當兩個技能名稱$Key1 與$Key2 相同時,再比較其技能程 度,如果$Value2 大於或等於$Value1 時,獲得比例相似度 1,否則計 算相似度(3-($Value1-$Value2))/3,最後利用比例相似度的加總得分除 以技能總數。

當使用者要利用 ontology 作語意式延伸查詢時,還是利用儲存本 體的資料表 Lexon,並找出$Sk1 中每一個技能的同義詞集合,也找出

$Sk2 中每一個技能的同義詞集合,只要兩個同義詞集合中出現相同 的名稱,就可以計算其比例相似度。

(16)

5-4 比例相似度計算的演算法

Algorithm ProportionalSimilarity($Skill1,$Skill2) {

$SumProduct=0.0;

$SkillCount=0;

Separate $Skill1 into array $Sk1 using skill name as array index and skill level as array value

Separate $Skill2 into array $Sk2 using skill name as array index and skill level as array value

foreach ($Sk1 as $Key1 => $Value1) { $SkillCount=$SkillCount+1

foreach ($Sk2 as $Key2 => $Value2) if ($Key1==$Key2)

if ($Value2>=$Value1)

$SumProduct=$SumProduct+1;

else

$SumProduct=$SumProduct+(3-($Value1-$Value2))/3 }

if ($SkillCount!=0) $Ratio=$SumProduct/$SkillCount;

else $Ratio=0.0;

return $Ratio;

}

資料來源:本研究

比 例 式 工 作 媒 合 系 統 所 需 要 用 到 的 資 料 表 仍 然 是 Lexon 、 JobOfferComp、與 ResumeComp,其使用者介面如圖 5-4 所示,使用

(17)

者可以選擇查詢人才或查詢工作;在技能的選擇上,則可以選擇技能 的項目與程度;在延伸查詢方面,可以選擇不使用 ontology、或使用 ontology 作語意式的延伸查詢。

5-4 比例式工作媒合系統的介面 (資料來源:本研究)

第五節 加權補償式工作媒合系統的發展

一、發展加權補償式工作媒合系統所需的資料庫綱要

前面幾節所發展的工作媒合系統,係把每一種技能都視為同等的 重要。但是每一種工作一定有其核心的技能,雇主在徵求人才時,可 能對核心技能的要求比較嚴格,對於非核心技能的要求比較鬆散。這 樣的工作媒合系統,就必須允許使用者輸入不同的重要性加權。前述 所發展的兩種工作媒合系統,即補償式工作媒合系統、與比例式工作 媒合系統,都可以加上重要性加權。本研究將補償式工作媒合系統加

(18)

上重要性加權,來形成加權補償式工作媒合系統。

加權補償式工作媒合系統需要兩個新的資料庫表,一個用來儲存 雇主的工作需求,一個用來儲存應徵者的履歷表,其資料結構和前述 JobOffer、Resume、JobOfferComp、與 ResumeComp 等相同,只是 資 料 表 的 名 稱 不 同 而 已 , 分 別 命 名 為 JobOfferWeitComp 與 ResumeWeitComp,其格式如下:

CREATE TABLE JobOfferWeitComp – 加權工作需求表 (加權補償式) (

Code INT UNSIGNED NOT NULL, -- 代碼 PostDate Date NOT NULL, -- 張貼日期 Title VARCHAR(255) NOT NULL, -- 職務名稱 Experience TINYINT UNSIGNED NOT NULL, -- 年資 Education VARCHAR(255) NOT NULL, -- 最高學歷 Salary VARCHAR(255), -- 待遇範圍 OsSkill VARCHAR(255), -- 作業系統 CompLanSkill VARCHAR(255), -- 電腦語言 MarkLanSkill VARCHAR(255), -- 標記語言 DbSkill VARCHAR(255), -- 資料庫 DistSkill VARCHAR(255), -- 分散式技能 OtherSkill VARCHAR(255), -- 其他技能 PRIMARY KEY(Code)

);

(19)

二、加權補償式相似度的計算方式

加權補償式工作媒合系統的技能程度表示法,和補償式工作媒合 系統與比例式工作媒合系統相同,仍然分成三級。而重要性加權值的 表示係在技能程度之後加上加權值%n,n 可以使用百分數來表示,並 界定為 1 到 100,所有技能項目的加權總和不得超過 100;加權值也 可以使用小數來表示,但加權總和不能超過 1。

加權補償式媒合相似度的計算公式如下,係由本研究的補償式媒 合相似度的計算公式延伸而來:

) (

, 1

2 , 1

i j n

i i i

m

j j i i

match mpensatory

weightedco R J

W J

W J R

Similarity

×

×

= ×

∑∑

=

=

此處 Ji 是某個工作技能需求的程度,Wi 是某個工作技能需求的重要 性加權值,而 Rj 是應徵者具有相同技能的程度。因此,分母部份是 技能需求程度的平方和乘上重要性加權值,雇主所要求的技能都必須 投入計算。分子部份則是兩個相對應技能程度與重要性加權值的乘 積,超出雇主要求的技能不列入計算。

5-5 是加權補償式媒合相似度的計算範例,以第一列的資料為 例 , 工 作 需 求 的 技 能 、 程 度 與 加 權 值 分 別 為 Java%3%80 與 C++%2%20,表示需要 Java 專精程度且重要性佔 80%與需要 C++普 通程度而重要性佔 20%。因此,分母部份為 32*80+22*20=800;應徵 者的技能中與工作需求相互匹配的技能有 Java%2 與 C++%1。因此,

(20)

分子部份為 3*2*80+2*1*20=520,計算所得的補償式媒合相似度為 0.65。第二列的例子則是改用小數來表示重要性加權,其計算方式完 全相同。

5-5 加權補償式相似度的計算範例

工作需求的技能 應徵者的技能 加權補償式媒合相似度 Java%3%80,C++%2

%20

Java%2,C++%

1

65 . 20 0

* 2 80

* 3

20

* 1 2 80

* 2

* 3

2

2 =

+

+

Java%1%0.2,C++%

2%0.2,ASP%3%0.6

Java%2,C++%

1,Delphi%1

125 . 6 0 . 0

* 3 2 . 0

* 2 2 . 0

* 1

2 . 0

* 1 2 2 . 0

* 2 1

2 2

2 =

+ +

+

資料來源:本研究

三、發展加權補償式工作媒合系統

5-6 為不使用 ontology 作語意式延伸查詢時加權補償相似度計 算的演算法,參數$Skill1 與$Skill2 分別代表要計算加權補償式相似 度的兩個技能集合,首先將$Skill1 分離出技能名稱、技能程度與技能 加權,並存入陣列$Sk1 與$Weight1 中,利用技能名稱當作$Sk1 與

$Weight1 的索引、技能程度當作$Sk1 的值、技能重要性加權當作

$Weight1 的值,例如$Sk1[“windows”]=3、$Weight1[“windows”]=20,

表示需要 Windows 的技能,其程度為專精級,其加權為 20%。同理 將$Skill2 分離出技能名稱、技能程度與技能加權,後儲存到$Sk2 與

$Weight2 中,再利用兩個迴圈依次判斷$Sk1 與$Sk2 的技能名稱是否 相同作為計算的依據。

(21)

5-6 加權補償式相似度計算的演算法

Algorithm WeightedCompensatorySimilarity($Skill1,$Skill2) { $SumSquare=0.0;

$SumProduct=0.0;

Separate $Skill1 into array $Sk1 and $Weight1 using skill name as array index, skill level and weight as array values for $Sk1 and

$Weight1 respectively

Separate $Skill2 into array $Sk2 and $Weight2 using skill name as array index, skill level and weight as array values for $Sk2 and

$Weight2 respectively

foreach ($Sk1 as $Key1 => $Value1) { $Value3=$Weight1[$Key1];

$SumSquare=$SumSquare+$Value1*$Value1*$Value3;

foreach ($Sk2 as $Key2 => $Value2) { if ($Key1==$Key2)

$SumProduct=$SumProduct+$Value1*$Value2*$Value3;

} }

if ($SumSquare!=0) $Ratio=$SumProduct/$SumSquare;

else $Ratio=0.0;

return $Ratio; } 資料來源:本研究

當使用者要利用 ontology 作語意式延伸查詢時,其方法是利用儲 存本體的資料表 Lexon,來找出$Sk1 中每一個技能的同義詞集合,也

(22)

找出$Sk2 中每一個技能的同義詞集合,只要兩個同義詞集合中出現 相同的名稱,其媒合就是成功,因此可以將表 5-6 的

if ($Key1==$Key2)修改成 if (SameSynonym($Key1,$Key2))就可以達 成目的,此處 SameSynonym($Key1,$Key2)是用來判斷兩個參數之間 是否具有相同的同義詞。

5-5 加權補償式工作媒合系統的介面 (資料來源:本研究)

加權補償式工作媒合系統的使用者介面如圖 5-5 所示,查詢標的 的 選 擇 分 成 查 詢 人 才 與 查 詢 工 作 , 前 者 查 詢 加 權 履 歷 資 料 表 ResumeWeitComp,後者則查詢加權工作需求表 JobOfferWeitComp;

在查詢欄位的選擇方面,可以選擇不同的技能項目、技能程度、及輸 入加權值;在語意延伸查詢選擇方面,可以選擇不使用 ontology 或使

(23)

ontology,前者只利用技能的名稱作媒合,而後者會進一步利用資 訊能力本體來做語意延伸查詢,其方法是利用資料表 Lexon 來找出技 能的同義詞進行媒合。

第六節 里程碑式工作媒合系統的發展

一、里程碑式相似度的計算方式

本研究所要發展的里程碑式工作媒合系統,其相似度的計算方式 係根據 Zhong, Zhu, Li 與 Yu (2002)所提出的概念加以修改,Zhong 等人 (2002)的相似度計算方式如下:

1、兩個概念 c1 與 c2 的語意相似度等於 1-兩個概念之間的距離,即 )

2 , 1 ( 1 ) 2 , 1

(c c d c c

simc = c ,此處 dc(c1,c2)為概念 c1 與 c2 之間的距離。

2、兩個概念 c1 與 c2 之間的距離等於這兩個概念至其共同父節點距 離之和,即dc(c1,c2)=dc(c1,cp)+dc(c2,cp),此處 cp 是概念 c1 與 c2 的共同父節點。

3、每一個本體上的節點都可以設定一個 milestone 值,計算方式如下:

) ( 1

2 2 1 )

(n ln

milestone = × ,這裏 l(n)表示節點的深度,根節點的深度

0,因此,根節點的 milestone(0)=0.5、第一階節點的 milestone (1)=0.25 、 第 二 階 節 點 的 milestone (2)=0.125 、 第 三 階 節 點 的 milestone (3)=0.0625 等。

4、一個概念 c1 至其父節點的距離等於父節點的 milestone 值減去 c1 milestone 值,即 dc(c1,cp)=milestone(level of cp)-milestone(level of c1)。

(24)

Zhong, Zhu, Li, 與 Yu (2002)的相似度計算方式,係以本體isa架 構的繼承特性作為基礎,因此,越下層的相似度會變得越來越大。以 圖5-6為例,第一層節點B與C的相似度為1-((0.5-0.25+0.5-0.25))=0.5、

第 二 層 節 點D 與 E 的 相 似 度 為 0.75 、 第 三 層 節 點 G 與 H 的 相 似 度 為 0.875、依次遞增。

假設第0層根節點的屬性有m個,根據isa的繼承特性,則第一層 的節點必定繼承此m個屬性,另外可以定義屬於自己的屬性。假設每 一層再定義一個屬於自己的屬性,也就是說第一層節點的屬性有m+1 個,第n層節點的屬性就有m+n個。因此,第n層的兩個節點之間的相 似度應為:

1-(milestone(n)-milestone(n-1)+milestone(n)-milestone(n-1))

=1-2*(milestone(n)-milestone(n-1))

當n逐漸增大時,milestone(n)-milestone(n-1)將趨近於0,也就是說,

Zhong等人 (2002)的milestone相似度是以遞增的方式增加,到了第七 層時就會趨近於1。

A

B C

D F

0.5

0.25

0.125

0.25

0.125

5-6 里程碑式的本體樹 (資料來源:本研究) E

G H I

0.0625 0.0625 0.0625

(25)

本研究認為Zhong等人 (2002)的里程碑式相似度有兩個缺點:

1、相似度偏高:大部份的相似度計算必須是兩個相同的技能,而且 技能的程度要完全一樣,才能獲得相似度1。以本研究的比例相似 度而言,如果技能名稱相同但技能程度相差一個等級,其比例相 似度為0.667;如果技能名稱相同但技能程度相差二個等級,則其 比例相似度為0.333。而Zhong等人 (2002)的本體樹上的節點是完 全不相同的技能,但是其相似度會由第一階的相似度0.5、到第二 階的0.75、到第三階的0.875、並且依次遞增,與其他型式的相似 度比較起來明顯偏高,這樣的結果很可能造成誤導,認為兩個技 能之間的相似度真的很高。

2、技能本體非完全isa架構:兩個技能之間如果具有isa的架構,表示 一個技能是完全繼承自另一個技能,並且具有額外的功能。因此,

如果一個技能本體是完全屬於 isa的架構,則自根節點以下的所有 技能應該是完全繼承自根節點,但是在實務上卻無法建立這樣的 技能本體。

比較合理的技能本體應該是partof的架構,也就是說,下一階層 的技能繼承了上一階層技能的部份功能或全部功能,並且擁有額外的 功能。這些額外的功能才是該技能的主體。以程式語言為例,Visual Basic繼承了Basic的許多功能,在Visual Basic的環境下仍然可以執行 Basic的程式,但是Visual Basic又有自己額外的功能,這些額外的功 能 可 以 在 視 窗 環 境 下 執 行Visual Basic的程式,所以才被稱為Visual Basic;同理,VBScript也繼承了Visual Basic的部份功能,但也具備自 有的功能。因此,合理的技能本體架構應該是part of的整體與部份的 關係,而非完全的isa關係。

(26)

再以圖5-6為例,假設該本體是屬於一個技能本體,並且其架構 是屬於partof的整體部份關係,則技能B與技能C分別繼承了技能A的 部份特性,技能D與技能E也分別繼承了技能B的部份特性,技能D與 技能E也一定繼承了技能A的部份特性。整體而言,B與C繼承自A的 特性,會高於D與E繼承自A的特性。因此,D與E的相似度會小於B與 C的相似度,G與H的相似度會小於D與E的相似度,並且越往下一個 層級所繼承的部份會越小,也就是說,具有part of特性的技能本體,

其相似度應該是逐次遞減而非遞增。

基於前面的論述,本研究修正Zhong等人 (2002)的里程碑式相似 度為:

1 ) (

) 2 , 1 ( ) 1

2 , 1

( +

= n l

c c c d

c

simc c ,此處l(n)為c1與c2中的較大深度

此時第一層的相似度變成0.25,第二層的為0.25,第三層為0.21875,

到了第四層的相似度為0.1875。這樣的修正合乎兩個標準:一是與其 他型式的相似度比較起來不會過大,不致於造成誤導,又可以利用里 程碑式的媒合方式,列出不同技能名稱之間的相似度;另外一個是里 程碑式相似度是遞減的方式,吻合part of的本體特性。

在實作階段,本研究直接利用Lexon資料表來追蹤本體的資料,

以圖5-6的本體為例,儲存在Lexon的格式如表5-7所示,其中isa係表 示is a part of的特性。假設要計算節點D與E的里程碑相似度,可以利 用SQL指令查詢到D isa B,再繼續追蹤到B isa A,由於A已經是根節 點,追蹤的過程終止。同理可以獲得查詢路徑E isa B、B isa A。所拜 訪過的節點分別儲存在兩個陣列中,如下所示:

(27)

$ListNode1[]={D, B, A} 與 $ListNode2[]={E, B, A}

接下來就可以指定里程碑值給每一個拜訪的節點,即:

$Milestone1[]={0.125, 0.25, 0.5} 與 $Milestone2[]={0.125, 0.25, 0.5}

再利用$ListNode1與$ListNode2來找出共同的父節點B與深度2,里程 碑相似度的值就可以計算出來,即:

(1-(0.25-0.125+0.25-0.125))/(2+1)=0.25

5-7 圖 5-6 的 Lexon 表示

ContextId TermLabel1 RoleLabel TermLabel2 x B isa A x C isa A x D isa B x E isa B x F isa C x G isa D x H isa D x I isa F 資料來源:本研究

二、發展里程碑式工作媒合系統

完整的里程碑式相似度計算的演算法如表 5-8 所示,參數$Term1 與$Term2 是要計算相似度的兩個概念,首先利用兩個 SQL 指令來查 詢$Term1 與$Term2 之間、或$Term2 與$Term1 之間是否為同義詞,

(28)

5-8 里程碑式相似度計算的演算法

Algorithm MilestoneSimilarity($Id,$Term1,$Term2) {

$Sql="SELECT * FROM Lexon WHERE ContextId=$Id AND TermLabel1='$Term1' AND RoleLabel='hassynonym' AND TermLabel2='$Term2' "

if (execute_sql_succeed($Sql)) return 1.0; // both are synonyms $Sql="SELECT * FROM Lexon WHERE ContextId=$Id AND

TermLabel1='$Term2' AND RoleLabel='hassynonym' AND TermLabel2='$Term1' "

if (execute_sql_succeed($Sql)) return 1.0 // both are synonyms $ListNode1=SearchPath($Id,$Term1)

$ListNode2=SearchPath($Id,$Term2)

$Level=max(count($ListNode1),count($ListNod2)) $Milestone1=AssignMilestone($ListNode1)

$Milestone2=AssignMilestone($ListNode2)

$i,$j=FindCommonParent($ListNode1,$ListNode2) $Distance1=$Milestone1[$i]-$Milestone1[0]

$Distance2=$Milestone2[$j]-$Milestone2[0]

$Similarity=1-($Distance1+$Distance2) $Similarity=$Similarity/$Level

return $Similarity;

}

資料來源:本研究

如果是同義詞則傳回相似度 1,否則利用 SearchPath 來搜尋由$Term1

(29)

到根節點的所有節點,以及由$Term2 到根節點的所有節點,再分別 存入$ListNode1 與$ListNode2 中。接著以 AssignMilestone 來計算

$ListNode1 中每一個節點的 milestone 值與$ListNode2 中每一個節點 milestone 值,並且分別存入$Milestone1 與$Milestone2。再找出較 大的深度$Level,最後利用 FindCommonParent 來找出共同的父節點 在$ListNode1 與$ListNode2 所在的位置$i 與$j,並計算里程碑相似度。

在實務上,求才者往往要求應徵者具備多項技能,應徵者也往往 擁有多重技能。但是前述的演算法只計算了兩個技能之間的里程碑相 似度,而在多項技能媒合的情況下,必須一對一的計算相似度,再依 次選擇具有最大相似度的技能配對,以圖 5-6 的本體為例,假設求才 者要求的技能為[A, B, D, F]、應徵者具備的技能為[A, D],經過一對 一的求出相似度之後,儲存在$ListNode1、$ListNode2 與$Similarity 的情形如表 5-9 所示。然後選擇具有最大相似度值之配對 A-A,再刪 ListNode1 中所有的 A 與 ListNode2 中所有的 A。再選擇具有最大 相似度值之配對 D-D,再刪除 ListNode1 中所有的 D 與 ListNode2 中 所有的 D,最後剩下 ListNode1 中的 B 與 F 沒有配對。因此,所獲得 的配對及相似度為 A-A-1.0 與 D-D-1.0。

5-9 里程碑式相似度的配對選擇

1 2 3 4 5 6 7 8 ListNode1 A A B B D D F F

ListNode2 A D A D A D A D

Similarity 1.0 0.125 0.125 0.042 0.125 1.0 0.125 0.083 資料來源:本研究

(30)

里程碑式工作媒合系統的使用者介面如圖 5-7 所示,可以分成查 詢人才與查詢工作。在技能部份可以選擇不同的技能與輸入其重要性 加權,然後使用里程碑式相似度進行媒合,也就是所有的媒合都使用 能力本體,媒合的結果也由大至小排序輸出。

5-7 里程碑式工作媒合系統的介面 (資料來源:本研究)

第七節 綜合式工作媒合系統的發展

一、數值之間相似度的計算

求才者在發佈工作訊息的時候,可能在待遇的部份會註明面議、

依公司規定、給予一個待遇數值、或給予一個待遇範圍。同樣的,求 職者也可能提出相同的要求,供需之間的要求可能不相同。因此,兩

(31)

個數值之間也可以計算相似度。假設求才者願意提供的待遇為$N1,

求職者希望的待遇為$N2。以求才者的角度而言,當求才者所提供的 待遇大於等於應徵者的要求時,也就是當$N1 大於等於$N2 時的相似 度為 1。如果求職者所要求的待遇逐漸大於求才者所提供的待遇時,

其相似度會逐漸下降。基於相似度不小於 0 的概念,當兩者的差距 大於某一個門檻值時,相似度就變成 0 而不再下降。門檻值的計算可 以設定一個最大的偏移比例 (maximum deviation fraction),並且利用

$N1 乘以該偏移比例。因此,數值相似度的計算公式為:

$ThreshHold=$N1*$MaxDevFraction // 計算門檻值 Similaritynumeric=1-($N2 - $N1)/ $ThreshHold //計算數值相似度 如果雇主或應徵者所提出的待遇是一個範圍時,只要先求出待遇範圍 的平均值,再以相同的方式計算相似度。表 5-10 所示是數值逐漸增 加,而相似度逐漸下降的演算法。

5-10 數值遞增相似度遞減的演算法

Algorithm DecreasedSimilarityUpward($N1,$N2) { if ($N1==null || $N2==null) return 1.0;

if ($N1 >= $N2) return 1.0;

$this->ThreshHold=$N1 * $this->MaxDevFraction;

if (($N2-$N1) >= $this->ThreshHold) return 0.0;

return 1-($N2 - $N1) / $this->ThreshHold;

}

資料來源:本研究

5-10 的相似度會在$N2 大於$N1 時逐漸下降,在另一方面,

(32)

工作年資的相似度正好相反,當應徵者的工作年資大於等於雇主所要 求的年資時,相似度為 1。當應徵者的年資小於所要求的年資時,其 相似度會逐漸下降,直到所設定的門檻值為止。因此,也可以設計一 個類似的演算法 Algorithm DecreasedSimilarityDownward 來計算相似 度,也就是數值遞減時相似度遞減的演算法,如表 5-11 所示。

5-11 數值遞減相似度遞減的演算法

Algorithm DecreasedSimilarityDownward($N1,$N2) {

if ($N1==null || $N2==null) return 1.0; // 其中一個為空值 if ($N2 >= $N1) return 1.0;

$this->ThreshHold=$N1 * $this->MaxDevFraction;

if (($N1-$N2) >= $this->ThreshHold) return 0.0;

return 1-($N1 - $N2) / $this->ThreshHold;

}

資料來源:本研究

二、職務名稱之間相似度的計算

以職務名稱來查詢可能造成使用者的困擾,已於本章第一節第二 小節中陳述,不單是因為職務名稱欠缺完全標準化的根據,還可能因 為個人使用習慣的不同影響到查詢的結果。何況許多的職務的名稱雖 然不同,但是所需要的技能內涵卻很接近。因此,職務名稱之間也可 以計算相似度,這種相似度的計算以里程碑式相似度較為適合,只要 根據本研究所建立的職務名稱本體,採用里程碑式相似度的計算方 式,就可以算出兩個職務名稱之間的相似度。

(33)

三、發展綜合式工作媒合系統

綜合式工作媒合系統的介面如圖 5-8 所示,包括四種相似度的計 算:職務名稱之間的相似度、工作經驗之間的相似度、待遇之間的相 似度、與技能之間的相似度。

5-8 綜合式工作媒合系統的介面 (資料來源:本研究)

職務名稱之間的相似度以職務名稱本體作為基礎,採用里程碑式 相似度。工作經驗之間的相似度與待遇的相似度採用數值相似度,但 兩者的計算方式不同,當應徵者工作經驗的年資小於雇主要求的年資 時,相似度逐漸下降,因此,採用數值遞減相似度遞減的演算法。反 之,當應徵者要求的薪資高於雇主的提供時,相似度逐漸下降,因此,

(34)

採用數值遞增相似度遞減的演算法。在技能部份的相似度,係以資訊 能力本體作為基礎,採用里程碑式相似度。除此之外,介面上還允許 使用者輸入額外的數個技能,技能與技能之間以逗點隔開。每一個輸 入的技能經過搜尋之後,如果不存在本體之中,這些技能會被記錄在 一個檔案之中,可以作為加入資訊能力本體的依據。

第八節 本章小結

本章詳細說明了本研究的實施方式,總共發展了七種不同的工作 媒合系統,分別為單純關鍵字工作媒合系統、結構化關鍵字工作媒合 系統、補償式工作媒合系統、比例式工作媒合系統、加權補償式工作 媒合系統、里程碑式工作媒合系統與綜合式工作媒合系統。前面五種 工作媒合系統可以選擇使用本體或不使用本體,用來比較媒合回覆率 與相似度總分的差異情形。第六種工作媒合系統-里程碑式工作媒合 系統,則完全植基於能力本體,利用本體的繼承特性來計算技能之間 的相似度,使得語法上完全不相關,但語意上卻存在相關的隱藏性資 料被彰顯出來。第七種工作媒合系統-綜合式工作媒合系統,除了技 能之間採用里程碑式的本體相似度外,更進一步考量職務名稱、工作 年資與薪資的相似度計算,使用者還可以輸入額外的技能來查詢,如 果資訊能力本體並未包括所輸入的技能,則技能會被記錄下來,作為 修正能力本體的依據。

數據

圖 5-2  結構化關鍵字工作媒合系統的介面  (資料來源:本研究)
表 5-4  比例相似度計算的演算法
表 5-8  里程碑式相似度計算的演算法

參考文獻

相關文件

1.名冊各欄位如申請單位名 稱、編號、姓名、性別、國 籍或地區、出生日期、護照 號碼、申請聘僱期間、最高 學歷、每月薪資或酬勞、職

(另可於本市公立帅兒園及非營利帅兒園招生 E 化作業系統上查詢).1.

職務名稱 人數 主要資格條件 待遇 工作內容 工作地點

物流人員 國貿人員 業務助理 食品解說員 11 先進工業股份有限公司 日班作業員 夜班作業員 儲備幹部 工讀生 品檢作業員. 12 厚達電子股份有限公司

2.報名路徑:進入「台灣就業通」網站首頁→選擇首頁中「找課程」→「職前訓練 網」→「課程查詢」→「查詢/報名」→查詢條件(擇一輸入關鍵字即可)設定:「開

編號 主持人 計畫名稱 委員審查意見 大會審查6. 結果

編號 主持人 計畫名稱 審查 結果 Prednisone 以及安慰劑併用 Prednisone

勞動部勞動力發展署桃竹苗分署(以下簡稱甲方),依職場互助式教保服務實施辦