使用TF-IDF或Word2Vec从职位描述中提取技能

我遇到一种情况,需要从可用的职位描述中提取特定申请者的技能,并将其存储为一个全新的列。数据框X看起来如下:

Job_ID        Job_Desc 1             申请人应具备包括熟练掌握Python和SQL的技术能力2             申请人应具备包括熟练掌握Python和SQL以及R的技术能力

结果输出应如下所示:

Job_ID       Skills1            Python,SQL2            Python,SQL,R

我使用了tf-idf计数向量化来获取Job_Desc列中最重要的词,但仍然无法在输出中获得所需的技能数据。是否可以使用Word2Vec的跳字模型或连续词袋模型来实现这一目标?

我的代码如下所示:

from sklearn.feature_extraction.text import CountVectorizercv=CountVectorizer(max_df=0.50)word_count_vector=cv.fit_transform(X)from sklearn.feature_extraction.text import TfidfTransformertfidf_transformer=TfidfTransformer(smooth_idf=True,use_idf=True)tfidf_transformer.fit(word_count_vector)def sort_coo(coo_matrix):tuples = zip(coo_matrix.col, coo_matrix.data)return sorted(tuples, key=lambda x: (x[1], x[0]), reverse=True)def extract_topn_from_vector(feature_names, sorted_items, topn=10):"""get the feature names and tf-idf score of top n items"""#use only topn items from vectorsorted_items = sorted_items[:topn]score_vals = []feature_vals = []for idx, score in sorted_items:    fname = feature_names[idx]    #keep track of feature name and its corresponding score    score_vals.append(round(score, 3))    feature_vals.append(feature_names[idx])#create a tuples of feature,score#results = zip(feature_vals,score_vals)results= {}for idx in range(len(feature_vals)):    results[feature_vals[idx]]=score_vals[idx]return resultsfeature_names=cv.get_feature_names()doc=X[0]tf_idf_vector=tfidf_transformer.transform(cv.transform([doc]))sorted_items=sort_coo(tf_idf_vector.tocoo())keywords=extract_topn_from_vector(feature_names,sorted_items,10)print("\n=====Title=====")print(X[0])print("\n===Keywords===")for k in keywords:   print(k,keywords[k])

回答:

我认为仅靠TF-IDF、Word2Vec或其他简单的无监督算法无法单独识别您所需的“技能”类型。

您可能需要一个大型的手工策划的技能列表——至少作为一种自动评估声称能提取技能的方法的方式。

有了策划的列表,Word2Vec之类的东西可能有助于建议同义词、替代形式或相关技能。(对于已知的技能X,以及您文本上的大型Word2Vec模型,与X相似的术语很可能是类似的技能——但不保证,因此您可能仍然需要人工审查/策划。)

如果您有足够大的数据集,将文本映射到结果——例如,将候选人描述文本(简历)映射到人类审查者是否选择他们进行面试,或雇用他们,或他们在工作中是否成功,您可能能够识别出某些工作角色中高度预测适合的术语。这些术语可能常常是事实上的“技能”。但发现这些相关性可能是一个更大的学习项目。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注