0

不同的软件项目有不同的编码约定;即使在同一个项目中,也可能使用不同的语言并且会有不同的约定。使用源代码中的标识符标记搜索文档(出现在源文件之外)有什么好处?

例如,如果源具有self._def_passwdthis.defPasswd,则文档树上的查询应努力匹配默认密码

到目前为止,我一直在尝试按 Levenshtein 距离进行排序,这对于较小的编辑距离非常有效,但是当我增加阈值时会出现太多误报,这对文档中的空白是有问题的。

8 0.666667 announcement getContent AnnouncementBean.java(Token.Name.Function )
8 0.666667 announcement getPercent DataObservation.java (Token.Name.Function)
8 0.666667 announcement GroupBean GroupBean.java (Token.Name.Class)

其中第一个值是 Levenshtein 距离,第二个值是距离除以匹配单词的长度。我想

  1. 研究 Jaccard,Tanimoto 算法
  2. 智能/建议有点代码
  3. 在某处,有一些关于生物家伙用于匹配序列的算法的帖子
  4. 根据http://en.wikipedia.org/wiki/Naming_convention_%28programming%29提出正则表达式链式规则

最后一个实际上是最后一个选项。您认为哪些其他算法可以为这类东西提供更好的结果?

4

1 回答 1

0

尝试使用加权编辑距离,在这里您可以通过键盘中的距离对常用缩写、可能的字符错误的知识进行编码。例如,您可以将 [ao] 等元音的权重设为零,密码将等于 pswrd。其他选项是建立字级编辑距离并在此处使用同义词。我还构建了 EditDistance,它可以同时处理单词和字符。

于 2011-03-21T18:44:34.223 回答