鉴于2个代码片段,我想检查它们是否在功能上相似。通过功能相似性,我的意思是当提供相同的输入时它们应该产生相同的输出。 我使用以下命令从给定的代码段中提取功能集:
在形成令牌之后,我使用主题建模算法,如潜在Dirichlet分配,概率潜在语义索引等,以查找给定代码片段中的主题并将其与其他代码片段的主题相匹配。虽然我知道这是一个难题,但这种方法的准确性远远低于我的预期。
如果能够获得更有效的更好算法/技术的任何指示/想法,那就太棒了。
编辑:我不期待采用通用方法。任何能够以一定精度给出近似结果的方法都可以。
答案 0 :(得分:3)
请参阅https://en.wikipedia.org/wiki/Rice%27s_theorem - 无法确定代码段是否计算特定功能,因此您也无法确定两个代码段是否计算相同的功能。因此,无法实现您想要的通用算法。你可能会发现某些东西在某些情况下或某种语言的特定子集中起作用,但从一般情况下都不会发生。