File size: 2,278 Bytes
93081dd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
import torch
from transformers import AutoTokenizer, AutoModelForSequenceClassification
# Đường dẫn tới mô hình trên Hugging Face Hub
model_name = "trangannh/ptit-job-recommendation"
# Khởi tạo tokenizer và mô hình từ tên mô hình trên Hugging Face
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)
# Hàm dự đoán công việc dựa trên kỹ năng cứng, kỹ năng mềm và ngành nghề
def recommend_jobs(input_hard_skills, input_soft_skills, input_major, top_n=3):
# Chuẩn bị input cho mô hình
inputs = {
"hard_skills": input_hard_skills,
"soft_skills": input_soft_skills,
"major": input_major
}
# Tiền xử lý và mã hóa input
encoded_input = tokenizer.encode_plus(
inputs["hard_skills"], # Kỹ năng cứng
inputs["soft_skills"], # Kỹ năng mềm
inputs["major"], # Ngành nghề
add_special_tokens=True,
return_tensors="pt"
)
# Dự đoán
with torch.no_grad():
outputs = model(**encoded_input)
# Lấy giá trị dự đoán và sắp xếp theo thứ tự giảm dần
logits = outputs.logits[0].tolist()
sorted_indices = sorted(range(len(logits)), key=lambda k: logits[k], reverse=True)
# Lấy top N công việc gợi ý
recommended_jobs = []
for i in range(min(top_n, len(sorted_indices))):
job_index = sorted_indices[i]
recommended_jobs.append(tokenizer.decode(job_index))
return recommended_jobs
# Hướng dẫn sử dụng
if __name__ == "__main__":
# Input từ người dùng (có thể làm thay đổi để phù hợp với nhu cầu thực tế)
input_hard_skills = input("Nhập kỹ năng cứng của bạn: ")
input_soft_skills = input("Nhập kỹ năng mềm của bạn: ")
input_major = input("Nhập ngành nghề của bạn: ")
# Gợi ý công việc
recommended_jobs = recommend_jobs(input_hard_skills, input_soft_skills, input_major)
# In kết quả
print(f"Các công việc được gợi ý cho bạn:")
for i, job in enumerate(recommended_jobs, start=1):
print(f"{i}. {job}")
|