大的老的启发式仓库

集成: git github
Hlib 5379136345
文档:更新工件资源管理器信息最佳电子竞技即时竞猜平台。
3周前
5 e101b0d8d
升级到新的api:使启发式返回OneOrMoreLabels类型;重命名文件,使它们与启发式名称相同
2个月前
5 e101b0d8d
升级到新的api:使启发式返回OneOrMoreLabels类型;重命名文件,使它们与启发式名称相同
2个月前
70年a5408903
把bohr-framework升级到0.4.10 (# 197
1年前
4 cc932160e
添加DVC预提交钩子
1年前
8 dd7c80d2e
Pylint -黑色兼容性(# 80
1年前
b28a1b48f2
添加license (# 118
1年前
ad620756f3
另一个README迭代
1个月前
4 ad6fd42a2
最新的启发式
8个月前
5379136345
文档:更新工件资源管理器信息最佳电子竞技即时竞猜平台。
3周前
b32c3c3f8d
玻尔- 0.5
1年前
b32c3c3f8d
玻尔- 0.5
1年前
d3317bae62
家务:更新更新。Json用于对非主要deps进行分组
1年前
数据管道

你的版本控制数据管道可以在这里!学习如何创建一个与我们的教程

README.rst

你必须登录才能留言。登录
1
2
3.
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20.
21
22
23
24
25
26
27
28
29
30.
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
One hundred.
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156

                
  1. 古老的启发式知识库
  2. ----------------------------------
  3. |GitHub许可| |可维护性| |GitHub make-a-pull-requests|
  4. BOHR是一个用于软件工程工件准备(标记、分组、链接、过滤)的启发方法的**存储库,例如提交、bug报告、代码片段等。软件工程(SE)和挖掘软件仓库(MSR)领域的研究人员通常需要准备这些工件,将从软件仓库(如GitHub、StackOverflow)中挖掘的工件转换为数据集,以便用于经验实验和训练机器学习模型。例如,可以将从GitHub挖掘的提交分类为bug修复等,以便创建一个训练数据集来训练机器学习模型。
  5. 手工准备每个工件是昂贵的,而且不能很好地扩展。因此,BOHR提供了一种定义启发式(短函数)的方法来自动完成工作。尽管使用启发式通常不如让专家分析每个工件准确,但我们声称,使用大量不同的启发式并“巧妙地”将它们组合起来,与使用单一启发式相比,可以显著减少噪声。启发式的组合方式取决于任务的类型,但最常见的方法之一是使用' snorkel ' _,最先进的'弱监督 ' _工具使用的算法。
  6. ..内容:内容:* * * *
  7. 反向链接:没有
  8. 任务和启发式的例子
  9. =======================================
  10. 提交分类
  11. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  12. 一个例子是将从GitHub挖掘的提交分类为“bug修复”和“非bug修复”,以便创建一个训练数据集来训练机器学习模型。
  13. ..python代码:
  14. #……其他进口
  15. 从bohrapi。核心导入启发式
  16. 从bohrlabels。核心导入OneOrManyLabels
  17. 从bohrapi。工件导入提交
  18. 从bohrlabels。导入CommitLabel
  19. @Heuristic(提交)
  20. def bugless_if_many_files_changes(commit: commit) -> OneOrManyLabels:
  21. 如果len(commit.commit_files) > 15:
  22. CommitLabel返回。NonBugFix
  23. 其他:
  24. 回来没有
  25. 在线身份分组
  26. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  27. 需要注意的重要事项:
  28. #。启发式用' ' Heuristic ' '装饰器标记,它所应用的工件类型作为参数传递给启发式;
  29. #。工件实例作为函数参数向启发式公开;工件对象的属性可以用于实现逻辑;
  30. #。由启发式分配给工件的标签是在传递的工件对象上执行的结果;启发式必须分配BOHR标签层次结构中定义的标签之一,如果它在数据点上弃权,则分配“None”。
  31. 待定:稍后在什么地方插入?
  32. ** *简化了**添加新的启发式**和**评估其有效性的过程**;
  33. ** *标记向BOHR注册的数据集**,一旦添加启发式,**自动更新标签**;
  34. *跟踪生成的数据集和模型的每个版本所使用的启发式方法,并且,一般来说,通过使用' DVC ' _确保它们是**可复制的**和**容易访问的**。
  35. 主要概念(可能在README中不需要,而在文档中需要)
  36. ====================================
  37. 玻尔标准是一个“启发式”的知识库,因此,启发式是玻尔标准中的一个主要概念。接受相同或不同类型的工件或多个工件的子程序(python函数)。
  38. 工件是BOHR的抽象,它表示软件工程工件——SE活动的产物,例如。编码,提交,软件项目,软件仓库,发布报告。*Dataset*是同一类型工件的集合。
  39. *Task*是一个抽象概念,描述了研究人员在BOHR方面正在研究的问题。任务的输入和输出是数据集。任务类型是标记、分组、链接和过滤。通过指定应用启发式的工件类型、启发式的可能输出、如何组合启发式的策略、用于评估启发式有效性的测试数据集和指标来定义任务。
  40. *实验*是尝试使用一组特定的启发式(和训练数据,如果需要)来解决一个任务。
  41. 波尔工作流
  42. ===================================
  43. 1一个。对于给定的任务,利用社区开发的现有启发式
  44. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  45. “波尔克隆https://github.com/giganticode/bohr-workdir-bugginess”
  46. 这将把对应于<任务>的所谓BOHR工作目录克隆到<路径>
  47. 3检查现有的带标签的数据集是否适合您的目的。
  48. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  49. 每个任务都附带一个经过训练的分类器和由该分类器标记的默认数据集。检查默认数据集是否适合您的目的。
  50. ' ' cd buggness -work-dir && Bohr pull default ' '
  51. 将显示加载数据集的路径。
  52. 4.用默认分类器为自己的数据集贴上标签。
  53. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  54. ' ' $ Bohr dataset add ~/new_commit_dataset.csv ' '
  55. ' ' $ Bohr任务添加数据集错误new_commit_dataset——repro ' '
  56. 5.开发一个新的启发式
  57. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  58. ``$ vi heuristics/commit_files.py``
  59. 6.通过在独立测试集中检查启发式的覆盖率和准确性来调试和调优启发式
  60. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  61. “$ Bohr repro”
  62. 7.使用新的启发式向远程BOHR存储库提交一个拉请求
  63. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  64. “$ Bohr upload”
  65. 作为ci管道的一部分,在独立测试集上训练标签模型并计算指标。如果指标得到了改进,新的启发式被添加到BOHR中,并可供其他研究人员使用。
  66. 8.添加一个新任务
  67. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  68. ' ' $ Bohr任务添加纠缠提交\ ' '
  69. “…- l TangledCommit.NonTangled TangledCommit。纠结的\ ' '
  70. “…——再生产”“
  71. 安装
  72. ==============
  73. 待办事项:添加其他回购的链接
  74. 预印本和出版物
  75. =============================
  76. 如果您在您的研究中使用BOHR,请引用我们:
  77. ..代码块::
  78. @inproceedings {babii2021mining,
  79. title={用协同启发式库挖掘软件库},
  80. {Babii, Hlib和Prenner, Julian Aron和Stricker, Laurin和Karmakar, Anjan和Janes, Andrea和robes, Romain},
  81. 书名={2021年IEEE/ACM第43届软件工程国际会议:新思想和新成果(ICSE-NIER)},
  82. 页面= {106 - 110},
  83. 年= {2021},
  84. 组织= {IEEE}
  85. ..|GitHub license| image:: https://img.shields.io/github/license/giganticode/bohr.svg
  86. :目标:https://github.com/giganticode/bohr/blob/master/LICENSE
  87. ..GitHub make-a-pull-requests| image:: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square
  88. :目标:http://makeapullrequest.com
  89. ..|可维护性|映像::https://codeclimate.com/github/giganticode/bohr/badges/gpa.svg
  90. :目标:https://codeclimate.com/github/giganticode/bohr
  91. :alt:代码气候
提示!

新闻p要查看以前的文件或,n查看下一个文件

评论

加载……