Technology:如何用 NLP 從數據中找到改善招聘廣告效果的方法
Home » Technology » Technology:如何用 NLP 從數據中找到改善招聘廣告效果的方法
預計閱讀時間︰5 分鐘
招聘 IT 人才是一件困難的事。根據多年的經驗,刊登一個招聘廣告往往只會收到少量的求職信。不論是在香港還是台灣的情況也是一樣。身邊認識的 IT 界老闆們也遇著相同的情況。看來要吸引在 IT 界的人才,需要花多一點心思。
收集數據
FIMMICK 在台灣 104 人力銀行刊登招聘廣告的初期也遇到應徵者少的問題。那時我們想要改善這個情況。在研究過後,發現到一條傳回 JSON 數據的 API。裡面的訊息很豐富:
其中的 applyCnt 值很吸引,那是代表廣告有多少人申請過。公司在新店區,地點算是偏僻的區域,原本以為這個是求職量少的原因。可是,從 applyCnt 看新店區的其他工作,同樣是「前端工程師」,別人的有 25 人申請;我們只得 3 人。有趣的是別人提供的工資是 NT$32000-$60000;我們卻是 NT$40000-$60000,絕對不比別人少。大家可能認為別家是大公司吧,然而她只是一般的小公司。在客觀條件也差不多的情況下,看來是廣告中的內容不夠吸引。為了証明這一點,我們再拿其他 applyCnt 大於 10 的記錄來對比,發現這些廣告都是以要點形式寫成,並且不多於 6 點。按照這個發現把招聘廣告修改後,收到 12 份申請。雖然未能像別人一樣超過 20 份申請,效果的確有所提升。
最近 FIMMICK 在招聘「Analyst Programmer」,有了台灣經驗,我們希望能在香港的 JobsDB 上應用。不過,她沒有像 104 的 API,也沒有開放申請數字,於是我們嘗試另一種方法:我們假設廣告內容是最影響申請的因素,在沒有申請數字的情況下,決定從所有相同職位的廣告內容中,找出最多公司選用的片語,看看能否對撰寫招聘廣告有所幫助。那麼,內容是怎樣得來?既然沒有 JSON,那就只能在網頁代碼中擷取回來。
分析
最後方的數字是頁數。如此的話,只要編寫一個迴圈程序,把頁數加進去就能下載相關頁面內容。得到的 HTML 碼中不難發現廣告內容是以 JSON 形式儲存。因此,可以利用 Regular Expression 或 substring 方法把 JSON 內容裁剪出來並放入 $jsonText,然後進行解釋:
$textArray = array();
$json = json_decode($jsonText, true);
$jobArray = $json[“result”][“jobs”];
foreach ($jobArray as $jobDictionary) {
$sellingPoints = $jobDictionary[“sellingPoints”];
$textArray = array_merge($textArray, $sellingPoints);
}
現在,所有賣點文字一行一行地儲存在 $textArray。把它們變成一條長字串,輸入到「結巴分詞」(https://github.com/fxsjy/jieba) 中便能得到結果。以下程式是列出首 30 個最高分的片語:
require_once(“./vendor/autoload.php”);
use Fukuball\Jieba\Jieba;
use Fukuball\Jieba\Finalseg;
use Fukuball\Jieba\JiebaAnalyse;
Jieba::init();
Finalseg::init();
JiebaAnalyse::init();
$content = implode(” “, $textArray);
$wordDictionary = JiebaAnalyse::extractTags($content, 30);
var_dump($wordDictionary);
require_once(“./vendor/autoload.php”);
use Fukuball\Jieba\Jieba;
use Fukuball\Jieba\Finalseg;
use Fukuball\Jieba\JiebaAnalyse;
Jieba::init();
Finalseg::init();
JiebaAnalyse::init();
$content = implode(” “, $textArray);
$wordDictionary = JiebaAnalyse::extractTags($content, 30);
var_dump($wordDictionary);
得到的結果是:
“Analyst Programmer” Result:
Array(
[development] => 0.35149594095426
[experience] => 0.30983716276709
[work] => 0.28119675276341
[system] => 0.25255634275973
[java] => 0.24734899548633
[years] => 0.1484093972918
[web] => 0.14059837638171
[days] => 0.13669286592666
[good] => 0.13018368183491
[working] => 0.12888184501656
[application] => 0.12888184501656
[.net] => 0.11456164001472
[computer] => 0.11195796637802
[c#] => 0.11065612955968
[programmer] => 0.11065612955968
[degree] => 0.10805245592298
[sql] => 0.10805245592298
[science] => 0.10675061910463
[project] => 0.10284510864958
[day] => 0.095034087739486
[analyst] => 0.092430414102788
[attractive] => 0.087223066829391
[package] => 0.083317556374344
[design] => 0.078110209100947
[javascript] => 0.075506535464249
[career] => 0.072902861827551
[diploma] => 0.070299188190853
[oracle] => 0.068997351372504
[programming] => 0.067695514554154
[software] => 0.067695514554154
)
想像得出內容大多是學歷在 Diploma 以上,有多年工佢經驗,從事網頁應用的開發,開及平台為 .Net,語言為 Java 及 C#。
總結
利用數據分析能改善招聘廣告內容的吸引度。它雖然未必能大幅度提升效能,但卻是一個不錯的選擇。對於初學者而言,是一個學習應用 NLP 的入門例子。把它加以改善,應用在不同的場合,便能提升編程投術,增強競爭力。FIMMICK 目前在香港及台灣招聘編程人才,有興趣的讀者不妨過來了解一下。
相關服務
相關文章



Technology:如何用 NLP 從數據中找到改善招聘廣告效果的方法
IT 的招聘工作實在很不容易,經常遇到求職者少的問題。明明在相同地區、相同職位、相同工資,但有些公司的成效都比其他好得多。我們利用了數據收集及 NLP 語意分析,分別在台灣及香港加以印證,達到原來三倍的績效!