首页 新闻 搜索 专区 学院

求找出相似度高的url算法

0
悬赏园豆:200 [待解决问题]

比如有个数组,里面有几千个url。

如何找出相似的url,并分组? 求思路

url1: www.abc.com/xxx/123.html
url2: www.abc.com/xxx/456.html
url3: www.abc.com/xxx/abc.html

url4: www.sina.com
url5: www.baidu.com
url6: www.nanfang.com

。。。。。。。。。。

计算之后:

1、2、3为一组,4、5、6为一组

 

keep complex...的主页 keep complex... | 初学一级 | 园豆:2
提问于:2014-08-15 16:44
< >
分享
所有回答(11)
0

如果是以一级网址为分组依据的话,直接取前面部分用linq 做group by,然后得到每一组的数量。数量大于1的为一组,等于1的全部分到一组。

XiaoFaye | 园豆:3082 (老鸟四级) | 2014-08-15 16:55

非常感谢你的关注,

我指的是相似,而不是相同。

还是有一些区别的,原本的想法是根据站点特征、目录深度、一级目录、尾页等等几个维度

计算出权值,根据权值分组。

支持(0) 反对(0) keep complex... | 园豆:2 (初学一级) | 2014-08-16 10:40
0

请问何为相似,请先提供规则。你不会说看着差不多的就是一组吧?

爱编程的大叔 | 园豆:30633 (高人七级) | 2014-08-15 16:55

url本身是包含结构和特征的,比如站点,目录。

我的想法是根据站点特征、目录深度、一级目录、尾页等等几个维度

计算出权值,再分组,

想是这么想,但就是不知怎么动笔写算法。

笔者水平有限,盼大牛帮忙

支持(0) 反对(0) keep complex... | 园豆:2 (初学一级) | 2014-08-16 10:35

@keep complex...: 您这是奔图灵奖去的啊,研究出来了可以去百度找吴恩达当他的小伙伴了。

谁能帮上你的忙啊。

支持(0) 反对(0) 爱编程的大叔 | 园豆:30633 (高人七级) | 2014-08-16 10:41

@爱编程的大叔: --!

大哥,没要求那么有精度,大致可以就行了,

支持(0) 反对(0) keep complex... | 园豆:2 (初学一级) | 2014-08-16 10:55

@keep complex...: 如果要求不高的话,就是PAPER WORK了,无关算法。

1、域名是否相同,.com/.org/.net, 这个看你定义是怎么样,权值大的话,就给个10000,20000这样的,只要是不同顶级域名的,就认为不相近。

2、www.abc.com /   wwwwww.adfasdfasdfasdfasdadfasd.com 你当他相近否?

....

一种算法是不管其他的,每个URL自己计算出分值,将分值与URL放在同一个关联空间内,

然后将分值进行比较,

10000~20000分的算同一个区间的,20000~30000分的是另一个区间的,

如果你有10个维度的话,那就是1000000000,没有仔细算有几个零了。

按维度梯级向下,然后你分组的时候,可以看是要卡在8位零还是5位零的位置。

支持(0) 反对(0) 爱编程的大叔 | 园豆:30633 (高人七级) | 2014-08-16 11:01
0

4\5\6相似吗?哈哈。。。。

LiuKaiFa | 园豆:1491 (小虾三级) | 2014-08-16 08:43

相似,都是类似于www.某某.com的形式。

编辑距离算法可以大致算出,但url本身很多结构,计算出来有很多部符合要求

支持(0) 反对(0) keep complex... | 园豆:2 (初学一级) | 2014-08-16 10:37
1

我觉得你这个相似的定义有点模糊,怎么样才能判定为相似?这不是需求决定的吗?

晓菜鸟 | 园豆:2594 (老鸟四级) | 2014-08-16 14:51
1

有待研究。

Firen | 园豆:5483 (大侠五级) | 2014-08-17 07:47
0

先建立特征空间吧,比如长度,在建立个分类模型,用模型来判断

yemuzi | 园豆:224 (菜鸟二级) | 2014-08-17 09:01
0

我有一个想法:可以将URL看成树形结构,域名都作为顶级节点。例如上面的:

www.abc.com/

  www.abc.com/xxx 

    www.abc.com/xxx/123.html

    www.abc.com/xxx/456.html

    www.abc.com/xxx/abc.html
www.sina.com
www.baidu.com
www.nanfang.com

 

按照这个设想,可以利用递归方式来把这个分组实现。

 

乐享程序员 | 园豆:930 (小虾三级) | 2014-08-17 11:35
0
1565783227 | 园豆:227 (菜鸟二级) | 2014-08-18 11:40
0

给我全部分  我给你算法

【秦时明月】 | 园豆:803 (小虾三级) | 2014-08-18 23:06

呵呵

支持(0) 反对(0) 乐享程序员 | 园豆:930 (小虾三级) | 2014-08-20 16:29
0

给我一个豆子,哥来帮顶

遗忘海岸 | 园豆:53 (初学一级) | 2014-08-25 08:10
0

感觉可以先进行词法(token)分析,生成词法树,然后根据以下规则进行分析:

1、分析叶子节点,如果叶子节点有相同的父节点则认为相识

2、剔除已完成叶子节点,如果叶子节点有相同的祖父节点则认为相识

3、递归处理完成所有叶子节点都只有根节点是相同的,这时候就根据树的深度从1到到n分析

wgz | 园豆:1254 (小虾三级) | 2014-09-08 11:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册