Nlp TF-IDF和余弦相似性的替代方案(比较不同格式的文档)

Nlp TF-IDF和余弦相似性的替代方案(比较不同格式的文档),nlp,data-mining,tf-idf,cosine-similarity,Nlp,Data Mining,Tf Idf,Cosine Similarity,我一直在从事一个小型的个人项目,该项目需要用户的工作技能,并根据这些技能为他们推荐最理想的职业。我使用一个工作列表数据库来实现这一点。目前,该准则的作用如下: 1) 处理每个工作列表的文本,以提取列表中提到的技能 2) 对于每个职业(如“数据分析师”),将该职业的工作列表的处理文本合并到一个文档中 3) 计算职业文档中每项技能的TF-IDF 在此之后,我不确定应该使用哪种方法根据用户技能列表对职业进行排名。我见过的最流行的方法是将用户的技能也作为文档处理,然后计算技能文档的TF-IDF,并使用类

我一直在从事一个小型的个人项目,该项目需要用户的工作技能,并根据这些技能为他们推荐最理想的职业。我使用一个工作列表数据库来实现这一点。目前,该准则的作用如下:

1) 处理每个工作列表的文本,以提取列表中提到的技能

2) 对于每个职业(如“数据分析师”),将该职业的工作列表的处理文本合并到一个文档中

3) 计算职业文档中每项技能的TF-IDF

在此之后,我不确定应该使用哪种方法根据用户技能列表对职业进行排名。我见过的最流行的方法是将用户的技能也作为文档处理,然后计算技能文档的TF-IDF,并使用类似于余弦相似度的东西来计算技能文档和每个职业文档之间的相似度

对我来说,这似乎不是理想的解决方案,因为在比较两个相同格式的文档时,最好使用余弦相似性。因此,TF-IDF似乎根本不是适用于用户技能列表的合适指标。例如,如果用户将其他技能添加到他们的列表中,则每个技能的TF将下降。事实上,我不关心用户技能列表中技能的频率——我只关心他们是否拥有这些技能(也许他们对这些技能了解得有多深)

似乎更好的衡量标准应该是:

1) 对于用户拥有的每项技能,在职业文档中计算该技能的TF-IDF

2) 对于每个职业,汇总用户所有技能的TF-IDF结果

3) 根据上述总和对职业进行排名


我的思路对吗?如果是这样的话,是否有任何算法可以沿着这些思路工作,但比简单求和更复杂?谢谢你的帮助

您解释的第二种方法会奏效。但是有更好的方法来解决这类问题。 首先,您应该了解一点语言模型,然后离开向量空间模型。 在第二步中,根据您的问题类型(类似于专家查找/分析),您应该学习基线语言模型框架来实现解决方案。 您可以稍加修改即可实现,这样公式就可以适应您的问题。 此外,阅读本书将使您更好地了解使用上述框架进行专家评测的情况。
您可以在网站上找到一些关于专家查找/分析的好主意、资源和项目

我将采用SSRM[1]方法,使用WordNet(提取数据库[2])作为语义词典来扩展查询(工作文档)——这样您就不必只局限于直接进行单词与单词匹配。SSRM有自己的相似性度量(我相信这篇文章是开放获取的,如果不是,请检查这一点:,这里列出了许多相似性计算模型)。或者,如果你的语料库足够大,你可以尝试LSA/LSI[3,4](本页也有介绍)——而不使用外部词汇。但是,如果是英语,WordNet的语义图在各个方向都非常丰富(hyponims、synonims、hypernims…concepts/SinSet)

底线是:对于这样的具体领域,我会避免使用简单的SVM/TF-IDF。我在TF-IDF/VSM上测量了SSRM的严重边缘(测量为宏观平均F1,5级单标签分类,窄域)

[1] A.Hliaoutakis,G.Varelas,E.Voutsakis,G.M.Petrakis,E.Milios,语义相似度信息检索,国际语义杂志。网络信息系统。2 (2006) 55–73. 内政部:10.4018/jswis.2006070104

[2] J.E.Petralba,从WordNet中提取的数据库内容,用于自然语言处理和文字游戏,载于:2014年《国际形态亚洲语言进程》,2014年:第199-202页。内政部:10.1109/IALP.2014.6973502

[3] p.W.Foltz,基于文本研究的潜在语义分析,Behav。研究方法、仪器、计算机。28 (1996) 197–202. 内政部:10.3758/BF03204765


[4] A.Kashyap,L.Han,R.Yus,J.Sleeman,T.Satyapanich,S.Gandhi,T.Finin,使用LSA的鲁棒语义文本相似性,机器学习和语言资源,荷兰斯普林格,2016年。doi:10.1007/s10579-015-9319-2。

非常感谢您提供的链接——简单地浏览一下,它们似乎就是我要找的。我对你的解决方案投了赞成票,但我没有足够的声誉让它出现。再次感谢!