中文

Sosed:一种用于发现相似软件项目的工具

软件工程 2020-07-07 v1

摘要

在本文中,我们介绍 Sosed,一种用于发现相似软件项目的工具。我们使用 fastText 为 200 种语言中的 120,000 个 GitHub 仓库计算子词元(subtoken)在稠密空间中的嵌入。随后,我们对嵌入进行聚类,以识别反映源代码主题语义相似的子词元组。我们使用一个包含 900 万个 GitHub 项目的数据集作为参考搜索库。为识别相似项目,我们比较各项目子词元间的聚类分布。该工具接收任意项目作为输入,提取 16 种最流行编程语言中的子词元,计算聚类分布,并在搜索库中找出分布最接近的项目。我们用简短描述标注子词元聚类,以使 Sosed 能够产生可解释的输出。Sosed 可在 https://github.com/JetBrains-Research/sosed/ 获取。工具演示见 https://www.youtube.com/watch?v=LYLkztCGRt8。多语言子词元提取器可单独在 https://github.com/JetBrains-Research/buckwheat/ 获取。

关键词

引用

@article{arxiv.2007.02599,
  title  = {Sosed: a tool for finding similar software projects},
  author = {Egor Bogomolov and Yaroslav Golubev and Artyom Lobanov and Vladimir Kovalenko and Timofey Bryksin},
  journal= {arXiv preprint arXiv:2007.02599},
  year   = {2020}
}

备注

4 pages, 1 figure