向大家请教一下,本人最近刚刚接触编程,学习的 Python,目前有一个想法想要学习:
就是现在有很多组各不相同的标签,然后想计算两组之间的相似程度,找到重合度最高的。这种算法要学习什么算法呢?有没有 Python 的解决方案?
就是现在有很多组各不相同的标签,然后想计算两组之间的相似程度,找到重合度最高的。这种算法要学习什么算法呢?有没有 Python 的解决方案?
|
lithiumiiDec 3, 2019
1
不懂算法,盲猜一个 pca ( Principal component analysis?
|
|
2
@lithiumii 好的我去看看
|
|
how2codeDec 3, 2019
3
说 PCA 的拉出去 251...
最简单的应该是关键词 TF IDF + cosine similarity |
|
ZRSDec 3, 2019
4
直接每个 label 单独一维算 cosine 相似度吧
|
|
how2codeDec 3, 2019
5
|
|
kleshDec 3, 2019
7
看看 Jaccard Similarity 或 Overlap Coefficient 够不够用?
a = {'foo', 'bar', 'hello', 'world'} b = {'foo', 'bar', 'hello', 'world', 'test'} c = a.intersection(b) d = a.union(b) print('js(a, b)=', float(len(c))/float(len(d))) print('oc(a, b)=', float(len(c))/float(min(len(a), len(b)))) |
|
MohansonDec 3, 2019 via Android
8
将对象表示为多维特征向量,然后欧几里德距离搞定
|
|
ecloudDec 3, 2019
9
如果仅仅是数人头的话,用统计学就能搞定
如果要考虑出现的位置上下文关系什么的,那就干脆把每个字节的 ASCII 码作为纵坐标,字节作为横坐标,形成一个波函数 然后对波形进行拟合,scipy 简直不要太好用了 |
|
nimabDec 3, 2019 via Android
10
document distance
|
|
dr1q65MfKFKHnJr6Dec 3, 2019
11
#9 楼略靠谱,关键是相似度怎么量化比较~
虽然,我不懂算法。 |
|
ClericPyDec 3, 2019
12
猛的就想起 <集体智慧编程> 头两章来了... 欧式距离 皮尔逊相关度什么的... 实习的时候玩过这些, 后来发现还是余弦向量简单又实惠...
|
|
MengQuadraDec 3, 2019
13
数据区分度大大并且量多话可以用 simhash, 比起其他需要保证输入向量大小相同的方法来说更灵活
|
|
TimePPTDec 3, 2019
14
先定义你想要的相似度是啥?
lst_a = ['皇上', '皇后', '大臣'] lst_b = ['国王', '王后', '大臣'] 这俩列表的标签文本字符层面的重叠相似度只有一个签,但要考虑语义相似度可是三个签 |
|
15
@TimePPT 就是只需要文本字符层面的相似度,不考虑语义,标签是固定的
|
|
TimePPTDec 3, 2019
16
@TaihongZhang 那有啥纠结的,量不大,全部放在两个 set 里直接取个交集不就完了
|
|
cambriaDec 3, 2019
17
楼主只是个初学者,你们都快把支持向量机搬出来了。。。
@TimePPT 的方法靠谱 python 里有个 set 的数据结构,支持 & 运算符求交集运算,如果不用加权直接计数就可以了 |
|
photon006Dec 3, 2019
18
皮尔逊相关系数
|