我需要根据人类技能和输入技能的相似程度对他们的技能进行排名。所以,如果我输入“荷兰语”,我想要这样的列表:
0.97 Dutch
0.86 Dutch lessons
0.55 Frisian
0.50 Flemish
0.27 German language我有一个大约4500名人类技能的数据库(从“C语言编程”到“烤杏仁蛋糕”),有600个手工分类。我已经可以找到相应的文章关于BabelNet和拉领域,类别和相关术语。
使用来自BabelNet的数据的示例技巧:
name:"photography"
categories:
0:"Photography"
1:"French_inventions"
2:"Optics"
3:"1822_introductions"
manualCategory:"art & music"
domains:
ART_ARCHITECTURE_AND_ARCHAEOLOGY:1
compounds:
0:"digital_photography"
1:"landscape_photography"
2:"photographic_developing"
3:"motion_photography"
4:"nature_photography"
...
48:"photographic_plates"
otherForms:
0:"still_photography"
1:"photo"
2:"photos"
3:"photographed"
4:"photographers"
...
20:"Photographer"你能给我建议一下方法吗?或者至少要朝正确的方向前进?
发布于 2016-06-30 02:19:23
很晚了,但我很惊讶这个问题没有得到更多的答复。“余弦相似”是一种很好的尝试技巧,尽管简单地让用户用硬字符串搜索,然后按受欢迎程度排序也不是那么糟糕(例如,“荷兰语”带来了包含“荷兰语”的所有内容,尽管我会放弃中文字的比赛,所以“球”不会返回“足球”,而是会返回“舞厅舞蹈”)。
我想说的是,在任何方法中,一个主要的问题将是重复以前用户输入的(非标准化的)技能,而这些技能并不完全标准化。您也可以尝试用搜索时替换不同同义词的版本替换候选技能,例如,如果大部分内容来自欧洲人,“足球教练”也可以作为“足球教练”存储。
有时极端精确可能不是最好的目标,尽管.您可能希望鼓励用户探索他们从来不知道的新技能!不知道你需要什么..。
不管你做什么,都值得建立一套半手工制作的查询和相关结果测试集,这样你就可以看到性能是否糟糕(Google的精确性和搜索结果的召回)。
https://datascience.stackexchange.com/questions/11322
复制相似问题