假设一个域有一个 url 列表,具有不同级别的路径深度和相似性
url1/some/where/here
url1/some/where-2/here
url1/some-3/where/here
...
...
url1/some/where/here/right/now/1
url1/some/where/here/right/now/2
url1/some/where/here/right/now/3
url1/some/where/here/right-1/now/1
url1/some/where/here/right-1/now/2
url1/some/where/here/right-1/now/3
url1/some/where/here/right-2/now/1
url1/some/where/here/right-2/now/2
url1/some/where/here/right-2/now/3
url1/some/where/here/right-2/now/4
...
我可以使用什么算法根据 URL 字符串的密度(斜杠数量)和相似性(文本距离,Levenshtein)来聚类 URL 字符串?
所以输出将被分组:
url1/some/where/here
url1/some/where-2/here
url1/some-3/where/here
url1/some/where/here/right/now/1
url1/some/where/here/right/now/2
url1/some/where/here/right/now/3
url1/some/where/here/right-1/now/1
url1/some/where/here/right-1/now/2
url1/some/where/here/right-1/now/3
url1/some/where/here/right-2/now/1
url1/some/where/here/right-2/now/2
url1/some/where/here/right-2/now/3
url1/some/where/here/right-2/now/4
url1/some-3/where/here/133
一些特征: - url 字符串越密集(或更深),它就越相关,并且可能在序列中重复。- 类似的网址块一个接一个地重复。不同的 url 似乎离大量相似的 url 更远。
DBSCAN 在这里合适吗?
(密度,LV 距离)
我想擦除最后一个字符直到斜线,然后在后续字符串中搜索匹配项。如果匹配是列表中的下一个 url,它们很可能是一个块。如果在列表的下方找到匹配项,则它可能不是任何块的一部分。
url1/some/where
这几乎随处可见,因此不是任何块的一部分。 url1/some/where/here/right/now/
找到 2 个后续匹配,在候选之后立即找到。 url1/some/where/here/right-2/now/
找到 3 个随后出现的匹配项。所以它们被分块在一起。 url1/some-3/where
在底部找到另一个匹配项,由于距离,它们都不是任何块的一部分。这种方法是否有名称或类似的名称?