【发布时间】:2022-01-17 21:17:53
【问题描述】:
我有一个包含大约 150 000 条记录的职位列表数据集。我使用 NER 使用包含 30 000 个技能的字典从描述中提取技能。每个技能都表示为一个唯一的标识符。
我的数据示例:
job_title job_id skills
1 business manager 4 12 13 873 4811 482 2384 48 293 48
2 java developer 55 48 2838 291 37 484 192 92 485 17 23 299 23...
3 data scientist 21 383 48 587 475 2394 5716 293 585 1923 494 3
然后,我使用这些数据训练一个 doc2vec 模型,其中职位(准确地说是他们的 id)用作标签,技能向量用作词向量。
def tagged_document(df):
for index, row in df.iterrows():
yield gensim.models.doc2vec.TaggedDocument(row['skills'].split(), [str(row['job_id'])])
data_for_training = list(tagged_document(data[['job_id', 'skills']]))
model_d2v = gensim.models.doc2vec.Doc2Vec(dm=0, dbow_words=1, vector_size=80, min_count=3, epochs=100, window=100000)
model_d2v.build_vocab(data_for_training)
model_d2v.train(data_for_training, total_examples=model_d2v.corpus_count, epochs=model_d2v.epochs)
它基本上可以正常工作,但我对某些职位有疑问。我试图从他们那里收集更多数据,但我仍然对他们有不可预知的行为。
例如,我有一个职位“商业运营总监”,它表示为具有 11 到 96 项技能(平均 32 项)的 41 条数据记录。当我得到最相似的词(在我的情况下是技能)时,我得到以下信息:
docvec = model_d2v.docvecs[id_]
model_d2v.wv.most_similar(positive=[docvec], topn=5)
capacity utilization 0.5729076266288757
process optimization 0.5405482649803162
goal setting 0.5288119316101074
aeration 0.5124399662017822
supplier relationship management 0.5117508172988892
这些是前 5 项技能,其中 3 项看起来很相关。然而,最上面的与“曝气”一起看起来不太有效。问题是,没有一个职位记录具有这些技能。这似乎是输出中的噪音,但为什么它获得了最高相似度分数之一(虽然通常不高)? 这是否意味着该模型无法为这类职位勾勒出非常具体的技能? 能不能减少“吵”的技能数量?有时我会看到更多相关技能的相似度得分较低,但通常低于 0.5。
另一个具有相似数据量的正确行为示例: BI 分析师,29 条记录,技能数量从 4 到 48(平均 21)。顶级技能看起来还不错。
business intelligence 0.6986587047576904
business intelligence development 0.6861011981964111
power bi 0.6589289903640747
tableau 0.6500121355056763
qlikview (data analytics software) 0.6307920217514038
business intelligence tools 0.6143202781677246
dimensional modeling 0.6032138466835022
exploratory data analysis 0.6005223989486694
marketing analytics 0.5737696886062622
data mining 0.5734485387802124
data quality 0.5729933977127075
data visualization 0.5691111087799072
microstrategy 0.5566076636314392
business analytics 0.5535123348236084
etl 0.5516749620437622
data modeling 0.5512707233428955
data profiling 0.5495884418487549
【问题讨论】:
标签: nlp gensim word2vec word-embedding doc2vec