ใช้อัลกอริทึม matching ตัวไหน ที่เหมาะสมสำหรับเว็บไซต์จัดหางานครับ
กำลังทำโปรเจ็คจบ ป.ตรี วิศวกรรมคอมพิวเตอร์ อยู่ครับ

ปัญหา
อาจารย์อยากให้เว็บไซต์จัดหางานแสดงผลการค้นหาที่มีการแมทชิ่งกันระหว่าง resume(จดหมายสมัครงาน) และตำแหน่งงาน แล้ว "สามารถบอกได้ว่าคุณสมบัติของ Resume กับคุณสมบัติตำแหน่งงานนั้นใกล้เคียงกันกี่เปอร์เซ็น"

ผมลองสืบค้นอยู่หลายวันจากกูเกิลและวิทยานิพนธ์ของคนอื่นๆ ซึ่งหายากมาก ทั้งของไทยและต่างประเทศ(แต่ไม่ถนัด Eng อ่านวิทยานิพนธ์แบบงงๆ) พอจะสืบทราบได้ว่ามีอัลกอริทึมที่พอจะใช้ได้จากวิชา Data Mining (ซึ่งไม่เคยลงเรียน)
ได้แก่

  1. Support Vector Machine ที่ค้นเจอนิยมใช้กับการประมวลภาพ
  2. Naive Bayes ยังไม่ได้ศึกษา แต่ค้นเจองานวิจัยของไทยที่ใช้สำหรับแก้ไขปัญหาเลือกอาชีพที่เหมาะสม
  3. Decision Tree พอมีงานวิจัยหรือวิทยานิพนธ์ของไทย ที่ใช้ในการแก้ไขปัญหาเลือกคณะเรียนในมหาลัย
  4. K nearest neighbor algorithm(KNN) งานวิจัยมีพอสมควร แต่มักใช้ในแก้ไขปัญหา คำ งานเครือข่าย ข้อมูลสูญหาย
  1. ไม่ทราบว่า จากอัลกอริทึมทั้งหมดข้างบน นี้ตัวไหนที่พอจะออกแบบฐานข้อมูล Resume และตำแหน่งงาน ให้สามารถ บอกเปอร์เซ็นต์ความใกล้เคียงของตำแหน่งงานได้บ้าง

  2. และดูแล้วมีความเหมาะสมสำหรับการทำแมชชิ่งในเว็บไซต์จัดหางานครับ หรือมีอัลริทึมตัวอื่นแนะนำบ้างครับ?

ผมลองเอา k nearest nieghbor ไปเสนออาจารย์ อาจารย์ตอบมาแบบไม่ฟันธง ว่า KNN ไม่น่าจะเวิร์คให้หาตัวอื่นดู
แต่จะใช้ KNN ก็ได้ แต่ต้องปรับเรื่อง wieght ของคุณสมบัติ Resume หรือตำแหน่งงาน และข้อเสีย เรื่อง KNN ใช้เวลาคำนวณนานมากเมื่อฟิลด์มาก ครับ

ขอบคุณครับ สำหรับทุกท่านที่สละเวลาตอบคำถาม

Hiring! บริษัทที่น่าสนใจ

Carmen Software company cover
Carmen Software
Hotel Financial Solutions
Next Innovation (Thailand) Co., Ltd. company cover
Next Innovation (Thailand) Co., Ltd.
We are web design with consulting & engineering services driven the future stronger and flexibility.
KKP Dime company cover
KKP Dime
KKP Dime บริษัทในเครือเกียรตินาคินภัทร
Kiatnakin Phatra Financial Group company cover
Kiatnakin Phatra Financial Group
Financial Service
Fastwork Technologies company cover
Fastwork Technologies
Fastwork.co เว็บไซต์ที่รวบรวม ฟรีแลนซ์ มืออาชีพจากหลากหลายสายงานไว้ในที่เดียวกัน
Thoughtworks Thailand company cover
Thoughtworks Thailand
Thoughtworks เป็นบริษัทที่ปรึกษาด้านเทคโนโยลีระดับโลกที่คว้า Great Place to Work 3 ปีซ้อน
Iron Software company cover
Iron Software
Iron Software is an American company providing a suite of .NET libraries by engineer for engineers.
CLEVERSE company cover
CLEVERSE
Cleverse is a Venture Builder. Our team builds several tech companies.
Nipa Cloud company cover
Nipa Cloud
#1 OpenStack cloud provider in Thailand with our own data center and software platform.
Bangmod Enterprise company cover
Bangmod Enterprise
The leader in Cloud Server and Hosting in Thailand.
CIMB THAI Bank company cover
CIMB THAI Bank
MOVING FORWARD WITH YOU - CIMB is the leading ASEAN Bank
Bangkok Bank company cover
Bangkok Bank
Bangkok Bank is one of Southeast Asia's largest regional banks, a market leader in business banking
MuvMi (Urban Mobility Tech Co.,Ltd.) company cover
MuvMi (Urban Mobility Tech Co.,Ltd.)
Shape the future of urban mobility towards affordable, clean, and safe solutions
T.N. Digital Solution Co., Ltd. company cover
T.N. Digital Solution Co., Ltd.
TNDS has been involving in every first move of banking’s major digital transformation.
KBTG - KASIKORN Business-Technology Group company cover
KBTG - KASIKORN Business-Technology Group
KBTG - "The Technology Company for Digital Business Innovation"
Siam Commercial Bank Public Company Limited company cover
Siam Commercial Bank Public Company Limited
"Let's start a brighter career future together"
Icon Framework co.,Ltd. company cover
Icon Framework co.,Ltd.
Global Standard Platform for Real Estate แพลตฟอร์มสำหรับธุรกิจอสังหาริมทรัพย์ครบวงจร มาตรฐานระดับโลก
REFINITIV company cover
REFINITIV
The Financial and Risk business of Thomson Reuters is now Refinitiv
H LAB company cover
H LAB
Re-engineering healthcare systems through intelligent platforms and system design.
The Gang Technology Co., Ltd. company cover
The Gang Technology Co., Ltd.
We're a Digital Agency that helps our customers transform their business into digital with ease.
LTMH company cover
LTMH
LTMH มุ่งเน้นการพัฒนาผลิตภัณฑ์ที่สามารถช่วยพันธมิตรของเราให้บรรลุเป้าหมาย
Seven Peaks company cover
Seven Peaks
We Drive Digital Transformation
Wisesight (Thailand) Co., Ltd. company cover
Wisesight (Thailand) Co., Ltd.
The Best Choice For Handling Social Media · High Expertise in Social Data · Most Advanced and Secure
MOLOG Tech company cover
MOLOG Tech
We are Modern Logistic Platform, Specialize in WMS, OMS and TMS.
Data Wow Co.,Ltd company cover
Data Wow Co.,Ltd
We enable our clients to realize increased productivity by solving their most complex issues by Data
LINE Company Thailand company cover
LINE Company Thailand
LINE, the world's hottest mobile messaging platform, offers free text and voice messaging + Call
LINE MAN Wongnai company cover
LINE MAN Wongnai
Join our journey to becoming No.1 food platform in Thailand

คือถ้าเป็นเรื่อง Data Mining เนี้ยถ้าเอาจริงๆแล้วมันต้องมี training set ครับ แปลว่ามันต้องเรียนรู้ข้อมูลก่อน (ข้อ 2 กับ 3) แต่ผมดูจากโจทย์ของคุณแล้วผมว่าไม่น่าจะมี training set เพราะว่าจริงๆแล้ว Data Mining มันก็จะแบ่งหลักๆได้เป็น Association (พวก Frequent Item-set), Classification, Clustering, Prediction แต่จากข้อมูลที่ให้มามันไม่ค่อยเข้าจะข่ายเรื่อง Data Mining ครับ

เรื่อง KNN มันจะตอบโจทย์ว่า ถ้าเลือกตำแหน่งงานมาอันนึงแล้วหานิสิตที่มีลักษณ์ใกล้เคียงกับตำแหน่งงานมากที่สุด (ก็ตามชื่อ Algorithm เลย)หรือในทางกลับกัน จะเหมาะสมกว่าครับ แต่ไอวิธีคิดข้างในของ KNN เนี้ย เราเอามาประยุกต์ใช้ นั่นก็คือเรืองของ distance นั่นเอง
ปล. จริงๆ KNN มันก็เป็นส่วนนึงของ Classification เหมือนกัน แต่ผมมองว่ามันก็ใช้งานอย่างอื่นได้อีก

ดังนั้นที่เราต้องทำมันก็แค่กำหนด function อันนึงที่เอาไว้บอกว่า คุณสมบัติของนิสิต กับ ตำแหน่งงานดังกล่าว มันต่างกันแค่ไหน (ห่างกันแค่ไหน) / เราอาจจะใช้ Algorithm ธรรมดาๆอย่าง Euclidean distance มาก็ได้
แต่พวกนี้ระวังเรื่องข้อมูลที่มีหลายมิติหน่อย(หมายถึงมีหลาย attribute ที่นำมาพิจารณา) เพราะว่ามันจะช้ามากๆครับ

distance = calculate_dis(ข้อมูลนิสิต, ข้อมูลตำแหน่งงาน) ประมาณนี้ครับ

dluffy Mon, 24/06/2013 - 13:28

ขอบคุณ คุณ Meen มากครับสำหรับคำอธิบาย

คำอธิบายช่วยได้เยอะทีเดียวครับ

ผมว่าก่อนอื่นลองศึกษา data mining แบบกว้่างๆ ก่อน (เช่น categorization, association, clustering และอื่นๆ) อาจจะเริ่มจากอ่าน textbook ก่อนก็ได้ แล้วค่อยไปอ่านลงลึกในรายละเอียดของแต่ละ technique เพราะผมมองว่าปัญหาตอนนี้คือยังตีโจทย์ไม่ออก ว่าจะใช้เทคนิคประเภทไหน (แค่ประเภทเฉยๆ ยังไม่เลือกว่าเทคนิคไหน) ทำให้ไม่รู้จะยังไงต่อดี

ก็ต้องลองคิดก่อนครับว่าโจทย์ที่ต้องทำจริงๆ คืออะไร แล้วแต่ละ step ต้องทำยังไงหรือใช้เทคนิคอะไรบ้าง เช่น สมมติว่าคิดไว้แล้วว่าเนี่ยเป็นปัญหาประเภท find similarity แบบนี้ก็ค่อยมาดูว่าจะใช้เทคนิคอะไร เช่น KNN ได้มั้ย แล้วต้องมีการ pre-process ข้อมูลก่อนมั้ย

ผมคิดว่านอกจาก data mining technique แล้วลองศึกษาพวก text mining ดูด้วยครับ เพราะการนำ technique พวกนี้มา apply กับ text บางทีมันจะต่างออกไป

ป.ล. ลองศึกษาดู Natural Language Processing (NLP) ดูด้วยก็ได้ครับ อาจจะได้ไอเดียอะไรที่เอา apply หรือ extend เพิ่มเติมได้