Spaces:
Sleeping
Sleeping
Upload 111 files
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- dividing_into_different_subsets_mbpp/.idea/.gitignore +8 -0
- dividing_into_different_subsets_mbpp/.idea/deployment.xml +56 -0
- dividing_into_different_subsets_mbpp/.idea/dividing_into_different_subsets_mbpp.iml +8 -0
- dividing_into_different_subsets_mbpp/.idea/inspectionProfiles/profiles_settings.xml +6 -0
- dividing_into_different_subsets_mbpp/.idea/misc.xml +7 -0
- dividing_into_different_subsets_mbpp/.idea/modules.xml +8 -0
- dividing_into_different_subsets_mbpp/.idea/workspace.xml +79 -0
- dividing_into_different_subsets_mbpp/3/EI/CC_EI.csv +9 -0
- dividing_into_different_subsets_mbpp/3/EI/EI.json +0 -0
- dividing_into_different_subsets_mbpp/3/EI/calculate_humaneval_result.py +125 -0
- dividing_into_different_subsets_mbpp/3/EI/count_num.py +10 -0
- dividing_into_different_subsets_mbpp/3/EI/even.py +47 -0
- dividing_into_different_subsets_mbpp/3/EI/mbpp.json +0 -0
- dividing_into_different_subsets_mbpp/3/EI/mbpp_with_token+cc.json +0 -0
- dividing_into_different_subsets_mbpp/3/EI/sub_mbpp.json +0 -0
- dividing_into_different_subsets_mbpp/3/EI/token_counts_EI.csv +10 -0
- dividing_into_different_subsets_mbpp/3/QS/CC_QS.csv +9 -0
- dividing_into_different_subsets_mbpp/3/QS/QS.json +0 -0
- dividing_into_different_subsets_mbpp/3/QS/calculate_humaneval_result.py +125 -0
- dividing_into_different_subsets_mbpp/3/QS/even.py +50 -0
- dividing_into_different_subsets_mbpp/3/QS/flagged/log.csv +2 -0
- dividing_into_different_subsets_mbpp/3/QS/mbpp.json +0 -0
- dividing_into_different_subsets_mbpp/3/QS/sub_mbpp.json +0 -0
- dividing_into_different_subsets_mbpp/3/QS/token_counts_QS.csv +9 -0
- dividing_into_different_subsets_mbpp/4/EI/CC_EI.csv +10 -0
- dividing_into_different_subsets_mbpp/4/EI/EI.json +0 -0
- dividing_into_different_subsets_mbpp/4/EI/calculate_humaneval_result.py +143 -0
- dividing_into_different_subsets_mbpp/4/EI/even.py +51 -0
- dividing_into_different_subsets_mbpp/4/EI/mbpp.json +0 -0
- dividing_into_different_subsets_mbpp/4/EI/mbpp_with_token+cc.json +0 -0
- dividing_into_different_subsets_mbpp/4/EI/sub_mbpp.json +0 -0
- dividing_into_different_subsets_mbpp/4/EI/token_counts_EI.csv +10 -0
- dividing_into_different_subsets_mbpp/4/QS/CC_QS.csv +10 -0
- dividing_into_different_subsets_mbpp/4/QS/QS.json +0 -0
- dividing_into_different_subsets_mbpp/4/QS/calculate_humaneval_result.py +143 -0
- dividing_into_different_subsets_mbpp/4/QS/even.py +65 -0
- dividing_into_different_subsets_mbpp/4/QS/mbpp.json +0 -0
- dividing_into_different_subsets_mbpp/4/QS/mbpp_with_token+cc.json +0 -0
- dividing_into_different_subsets_mbpp/4/QS/sub_mbpp.json +0 -0
- dividing_into_different_subsets_mbpp/4/QS/token_counts_QS.csv +10 -0
- dividing_into_different_subsets_mbpp/5/EI/CC_EI.csv +9 -0
- dividing_into_different_subsets_mbpp/5/EI/EI.json +0 -0
- dividing_into_different_subsets_mbpp/5/EI/calculate_humaneval_result.py +167 -0
- dividing_into_different_subsets_mbpp/5/EI/even.py +54 -0
- dividing_into_different_subsets_mbpp/5/EI/mbpp.json +0 -0
- dividing_into_different_subsets_mbpp/5/EI/mbpp_with_token+cc.json +0 -0
- dividing_into_different_subsets_mbpp/5/EI/sub_mbpp.json +0 -0
- dividing_into_different_subsets_mbpp/5/EI/token_counts_EI.csv +9 -0
- dividing_into_different_subsets_mbpp/5/QS/CC_QS.csv +9 -0
- dividing_into_different_subsets_mbpp/5/QS/QS.json +0 -0
dividing_into_different_subsets_mbpp/.idea/.gitignore
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# 默认忽略的文件
|
2 |
+
/shelf/
|
3 |
+
/workspace.xml
|
4 |
+
# 基于编辑器的 HTTP 客户端请求
|
5 |
+
/httpRequests/
|
6 |
+
# Datasource local storage ignored files
|
7 |
+
/dataSources/
|
8 |
+
/dataSources.local.xml
|
dividing_into_different_subsets_mbpp/.idea/deployment.xml
ADDED
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<project version="4">
|
3 |
+
<component name="PublishConfigData" remoteFilesAllowedToDisappearOnAutoupload="false">
|
4 |
+
<serverData>
|
5 |
+
<paths name="[email protected]:37457 password">
|
6 |
+
<serverdata>
|
7 |
+
<mappings>
|
8 |
+
<mapping local="$PROJECT_DIR$" web="/" />
|
9 |
+
</mappings>
|
10 |
+
</serverdata>
|
11 |
+
</paths>
|
12 |
+
<paths name="[email protected]:37457 password (2)">
|
13 |
+
<serverdata>
|
14 |
+
<mappings>
|
15 |
+
<mapping local="$PROJECT_DIR$" web="/" />
|
16 |
+
</mappings>
|
17 |
+
</serverdata>
|
18 |
+
</paths>
|
19 |
+
<paths name="[email protected]:37457 password (3)">
|
20 |
+
<serverdata>
|
21 |
+
<mappings>
|
22 |
+
<mapping local="$PROJECT_DIR$" web="/" />
|
23 |
+
</mappings>
|
24 |
+
</serverdata>
|
25 |
+
</paths>
|
26 |
+
<paths name="[email protected]:37457 password (4)">
|
27 |
+
<serverdata>
|
28 |
+
<mappings>
|
29 |
+
<mapping local="$PROJECT_DIR$" web="/" />
|
30 |
+
</mappings>
|
31 |
+
</serverdata>
|
32 |
+
</paths>
|
33 |
+
<paths name="[email protected]:37457 password (5)">
|
34 |
+
<serverdata>
|
35 |
+
<mappings>
|
36 |
+
<mapping local="$PROJECT_DIR$" web="/" />
|
37 |
+
</mappings>
|
38 |
+
</serverdata>
|
39 |
+
</paths>
|
40 |
+
<paths name="[email protected]:37457 password (6)">
|
41 |
+
<serverdata>
|
42 |
+
<mappings>
|
43 |
+
<mapping local="$PROJECT_DIR$" web="/" />
|
44 |
+
</mappings>
|
45 |
+
</serverdata>
|
46 |
+
</paths>
|
47 |
+
<paths name="[email protected]:33796 password">
|
48 |
+
<serverdata>
|
49 |
+
<mappings>
|
50 |
+
<mapping local="$PROJECT_DIR$" web="/" />
|
51 |
+
</mappings>
|
52 |
+
</serverdata>
|
53 |
+
</paths>
|
54 |
+
</serverData>
|
55 |
+
</component>
|
56 |
+
</project>
|
dividing_into_different_subsets_mbpp/.idea/dividing_into_different_subsets_mbpp.iml
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<module type="PYTHON_MODULE" version="4">
|
3 |
+
<component name="NewModuleRootManager">
|
4 |
+
<content url="file://$MODULE_DIR$" />
|
5 |
+
<orderEntry type="jdk" jdkName="Python 3.8 (16)" jdkType="Python SDK" />
|
6 |
+
<orderEntry type="sourceFolder" forTests="false" />
|
7 |
+
</component>
|
8 |
+
</module>
|
dividing_into_different_subsets_mbpp/.idea/inspectionProfiles/profiles_settings.xml
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<component name="InspectionProjectProfileManager">
|
2 |
+
<settings>
|
3 |
+
<option name="USE_PROJECT_PROFILE" value="false" />
|
4 |
+
<version value="1.0" />
|
5 |
+
</settings>
|
6 |
+
</component>
|
dividing_into_different_subsets_mbpp/.idea/misc.xml
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<project version="4">
|
3 |
+
<component name="Black">
|
4 |
+
<option name="sdkName" value="Python 3.8 (16)" />
|
5 |
+
</component>
|
6 |
+
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.8 (16)" project-jdk-type="Python SDK" />
|
7 |
+
</project>
|
dividing_into_different_subsets_mbpp/.idea/modules.xml
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<project version="4">
|
3 |
+
<component name="ProjectModuleManager">
|
4 |
+
<modules>
|
5 |
+
<module fileurl="file://$PROJECT_DIR$/.idea/dividing_into_different_subsets_mbpp.iml" filepath="$PROJECT_DIR$/.idea/dividing_into_different_subsets_mbpp.iml" />
|
6 |
+
</modules>
|
7 |
+
</component>
|
8 |
+
</project>
|
dividing_into_different_subsets_mbpp/.idea/workspace.xml
ADDED
@@ -0,0 +1,79 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<project version="4">
|
3 |
+
<component name="AutoImportSettings">
|
4 |
+
<option name="autoReloadType" value="SELECTIVE" />
|
5 |
+
</component>
|
6 |
+
<component name="ChangeListManager">
|
7 |
+
<list default="true" id="296a4530-732e-4c33-96c5-67af904f859e" name="更改" comment="" />
|
8 |
+
<option name="SHOW_DIALOG" value="false" />
|
9 |
+
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
10 |
+
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
11 |
+
<option name="LAST_RESOLUTION" value="IGNORE" />
|
12 |
+
</component>
|
13 |
+
<component name="FileTemplateManagerImpl">
|
14 |
+
<option name="RECENT_TEMPLATES">
|
15 |
+
<list>
|
16 |
+
<option value="Python Script" />
|
17 |
+
</list>
|
18 |
+
</option>
|
19 |
+
</component>
|
20 |
+
<component name="ProjectColorInfo"><![CDATA[{
|
21 |
+
"associatedIndex": 7
|
22 |
+
}]]></component>
|
23 |
+
<component name="ProjectId" id="2nsh3www4h2kuEzmrz6ssDck37R" />
|
24 |
+
<component name="ProjectViewState">
|
25 |
+
<option name="hideEmptyMiddlePackages" value="true" />
|
26 |
+
<option name="showLibraryContents" value="true" />
|
27 |
+
</component>
|
28 |
+
<component name="PropertiesComponent"><![CDATA[{
|
29 |
+
"keyToString": {
|
30 |
+
"Python.count_num.executor": "Run",
|
31 |
+
"Python.even.executor": "Run",
|
32 |
+
"RunOnceActivity.OpenProjectViewOnStart": "true",
|
33 |
+
"RunOnceActivity.ShowReadmeOnStart": "true",
|
34 |
+
"last_opened_file_path": "E:/python-testn/pythonProject3/hh_2/dividing_into_different_subsets_mbpp/8/QS",
|
35 |
+
"node.js.detected.package.eslint": "true",
|
36 |
+
"node.js.detected.package.tslint": "true",
|
37 |
+
"node.js.selected.package.eslint": "(autodetect)",
|
38 |
+
"node.js.selected.package.tslint": "(autodetect)",
|
39 |
+
"nodejs_package_manager_path": "npm",
|
40 |
+
"settings.editor.selected.configurable": "com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable",
|
41 |
+
"vue.rearranger.settings.migration": "true"
|
42 |
+
}
|
43 |
+
}]]></component>
|
44 |
+
<component name="RecentsManager">
|
45 |
+
<key name="CopyFile.RECENT_KEYS">
|
46 |
+
<recent name="E:\python-testn\pythonProject3\hh_2\dividing_into_different_subsets_mbpp\8\QS" />
|
47 |
+
<recent name="E:\python-testn\pythonProject3\hh_2\dividing_into_different_subsets_mbpp\8\EI" />
|
48 |
+
<recent name="E:\python-testn\pythonProject3\hh_2\dividing_into_different_subsets_mbpp\7\QS" />
|
49 |
+
<recent name="E:\python-testn\pythonProject3\hh_2\dividing_into_different_subsets_mbpp\7\EI" />
|
50 |
+
<recent name="E:\python-testn\pythonProject3\hh_2\dividing_into_different_subsets_mbpp\6\QS" />
|
51 |
+
</key>
|
52 |
+
</component>
|
53 |
+
<component name="SharedIndexes">
|
54 |
+
<attachedChunks>
|
55 |
+
<set>
|
56 |
+
<option value="bundled-python-sdk-d68999036c7f-b11f5e8da5ad-com.jetbrains.pycharm.pro.sharedIndexes.bundled-PY-233.14475.56" />
|
57 |
+
</set>
|
58 |
+
</attachedChunks>
|
59 |
+
</component>
|
60 |
+
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="应用程序级" UseSingleDictionary="true" transferred="true" />
|
61 |
+
<component name="TaskManager">
|
62 |
+
<task active="true" id="Default" summary="默认任务">
|
63 |
+
<changelist id="296a4530-732e-4c33-96c5-67af904f859e" name="更改" comment="" />
|
64 |
+
<created>1729767497954</created>
|
65 |
+
<option name="number" value="Default" />
|
66 |
+
<option name="presentableId" value="Default" />
|
67 |
+
<updated>1729767497954</updated>
|
68 |
+
<workItem from="1729767500446" duration="2417000" />
|
69 |
+
</task>
|
70 |
+
<servers />
|
71 |
+
</component>
|
72 |
+
<component name="TypeScriptGeneratedFilesManager">
|
73 |
+
<option name="version" value="3" />
|
74 |
+
</component>
|
75 |
+
<component name="com.intellij.coverage.CoverageDataManagerImpl">
|
76 |
+
<SUITE FILE_PATH="coverage/dividing_into_different_subsets_mbpp$count_num.coverage" NAME="count_num 覆盖结果" MODIFIED="1729768553330" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/3/EI" />
|
77 |
+
<SUITE FILE_PATH="coverage/dividing_into_different_subsets_mbpp$even.coverage" NAME="even 覆盖结果" MODIFIED="1729769627764" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/8/QS" />
|
78 |
+
</component>
|
79 |
+
</project>
|
dividing_into_different_subsets_mbpp/3/EI/CC_EI.csv
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Model,CC_subset_1,CC_subset_2,CC_subset_3
|
2 |
+
CodeGemma-2b,44.83,22.0,0.0
|
3 |
+
CodeGemma-7b-it,52.78,44.0,0.0
|
4 |
+
CodeGemma-7b,59.7,38.67,0.0
|
5 |
+
DeepSeekCoder-1.3b-base,41.15,28.67,0.0
|
6 |
+
DeepSeekCoder-6.7b-base,60.04,50.0,50.0
|
7 |
+
DeepSeekCoder-6.7b-instruct,65.03,55.17,100.0
|
8 |
+
codeqwen2.5-1.5b,70.0,52.94,50.0
|
9 |
+
codeqwen2.5-7b,78.16,52.94,50.0
|
dividing_into_different_subsets_mbpp/3/EI/EI.json
ADDED
The diff for this file is too large to render.
See raw diff
|
|
dividing_into_different_subsets_mbpp/3/EI/calculate_humaneval_result.py
ADDED
@@ -0,0 +1,125 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import json
|
2 |
+
import os
|
3 |
+
import csv
|
4 |
+
# 定义文件所在的目录
|
5 |
+
input_dir = 'E:\python-testn\pythonProject3\hh_2\evaluate_result_mbpp'
|
6 |
+
|
7 |
+
# 获取目录中的所有文件
|
8 |
+
files = os.listdir(input_dir)
|
9 |
+
|
10 |
+
with open("token_counts_EI.csv","w", newline='') as csvfile:
|
11 |
+
writer = csv.writer(csvfile)
|
12 |
+
writer.writerow(["Model", "token_subset_1", "token_subset_2","token_subset_3"])
|
13 |
+
|
14 |
+
|
15 |
+
|
16 |
+
|
17 |
+
with open("CC_EI.csv", "w", newline='') as csvfile:
|
18 |
+
writer = csv.writer(csvfile)
|
19 |
+
writer.writerow(["Model", "CC_subset_1", "CC_subset_2","CC_subset_3"])
|
20 |
+
|
21 |
+
|
22 |
+
|
23 |
+
for file_name in files:
|
24 |
+
# 构建完整的文件路径
|
25 |
+
input_file_path = os.path.join(input_dir, file_name)
|
26 |
+
first_underscore_index = file_name.find('_')
|
27 |
+
|
28 |
+
# 找到最后一个 - 的位置
|
29 |
+
last_dash_index = file_name.rfind('-')
|
30 |
+
model_name = file_name[first_underscore_index + 1:last_dash_index]
|
31 |
+
print(model_name)
|
32 |
+
with open(input_file_path,"r",encoding="utf-8") as file:
|
33 |
+
data1=json.load(file)
|
34 |
+
|
35 |
+
with open("EI.json", "r", encoding="utf-8") as file:
|
36 |
+
data2=json.load(file)
|
37 |
+
sum0=0
|
38 |
+
count0=0
|
39 |
+
sum1=0
|
40 |
+
count1=0
|
41 |
+
sum2=0
|
42 |
+
count2=0
|
43 |
+
|
44 |
+
for item1 in data1:
|
45 |
+
task_id = item1["task_id"] # 假设 task_id 是 item1 中的一个属性
|
46 |
+
value = item1["pass@1"] # 假设 value 是 item1 中的一个属性
|
47 |
+
|
48 |
+
# 在 data2 中找到与 task_id 相同的对象
|
49 |
+
item2 = next((item for item in data2 if item["task_id"] == task_id), None)
|
50 |
+
|
51 |
+
if item2 is not None:
|
52 |
+
if item2["token_diff"] == 0:
|
53 |
+
index=item1["task_id"]
|
54 |
+
print(item2["token_diff"],index,value)
|
55 |
+
sum0=sum0+value
|
56 |
+
count0=count0+1
|
57 |
+
if item2["token_diff"] == 1:
|
58 |
+
index = item1["task_id"]
|
59 |
+
print(item2["token_diff"], index, value)
|
60 |
+
sum1=sum1+value
|
61 |
+
count1=count1+1
|
62 |
+
if item2["token_diff"] == 2:
|
63 |
+
index = item1["task_id"]
|
64 |
+
print(item2["token_diff"], index, value)
|
65 |
+
sum2=sum2+value
|
66 |
+
count2=count2+1
|
67 |
+
|
68 |
+
mean0=round(sum0/count0*100,2)
|
69 |
+
|
70 |
+
mean1=round(sum1/count1*100,2)
|
71 |
+
mean2=round(sum2/count2*100,2)
|
72 |
+
#print("count_result!!")
|
73 |
+
print(count0,count1,count2)
|
74 |
+
print(mean0,mean1,mean2)
|
75 |
+
with open("token_counts_EI.csv", mode='a', newline='', encoding='utf-8') as file:
|
76 |
+
writer = csv.writer(file)
|
77 |
+
writer.writerow([model_name,mean0,mean1,mean2])
|
78 |
+
|
79 |
+
sum0 = 0
|
80 |
+
count0 = 0
|
81 |
+
sum1 = 0
|
82 |
+
count1 = 0
|
83 |
+
sum2 = 0
|
84 |
+
count2 = 0
|
85 |
+
for item1 in data1:
|
86 |
+
task_id = item1["task_id"] # 假设 task_id 是 item1 中的一个属性
|
87 |
+
value = item1["pass@1"] # 假设 value 是 item1 中的一个属性
|
88 |
+
|
89 |
+
# 在 data2 中找到与 task_id 相同的对象
|
90 |
+
item2 = next((item for item in data2 if item["task_id"] == task_id), None)
|
91 |
+
|
92 |
+
if item2 is not None:
|
93 |
+
if item2["CC_diff"] == 0:
|
94 |
+
index = item1["task_id"]
|
95 |
+
print(item2["CC_diff"],index,value)
|
96 |
+
sum0=sum0+value
|
97 |
+
count0=count0+1
|
98 |
+
if item2["CC_diff"] == 1:
|
99 |
+
index = item1["task_id"]
|
100 |
+
print(item2["CC_diff"], index, value)
|
101 |
+
sum1=sum1+value
|
102 |
+
count1=count1+1
|
103 |
+
if item2["CC_diff"] == 2:
|
104 |
+
index = item1["task_id"]
|
105 |
+
print(item2["CC_diff"], index, value)
|
106 |
+
sum2=sum2+value
|
107 |
+
count2=count2+1
|
108 |
+
|
109 |
+
|
110 |
+
|
111 |
+
mean0=round(sum0/count0*100,2)
|
112 |
+
|
113 |
+
mean1=round(sum1/count1*100,2)
|
114 |
+
mean2=round(sum2/count2*100,2)
|
115 |
+
print("count_result!!")
|
116 |
+
print(count0,count1,count2)
|
117 |
+
print(mean0,mean1,mean2)
|
118 |
+
|
119 |
+
with open("CC_EI.csv", mode='a', newline='', encoding='utf-8') as file:
|
120 |
+
writer = csv.writer(file)
|
121 |
+
writer.writerow([model_name,mean0,mean1,mean2])
|
122 |
+
|
123 |
+
|
124 |
+
|
125 |
+
|
dividing_into_different_subsets_mbpp/3/EI/count_num.py
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import json
|
2 |
+
with open("mbpp_with_token+cc.json","r",encoding="utf-8") as f:
|
3 |
+
data = json.load(f)
|
4 |
+
i=0
|
5 |
+
for item in data:
|
6 |
+
item["id"]=i
|
7 |
+
i=i+1
|
8 |
+
print(i)
|
9 |
+
with open('mbpp.json', 'w', encoding='utf-8') as file:
|
10 |
+
json.dump(data, file, ensure_ascii=False, indent=4)
|
dividing_into_different_subsets_mbpp/3/EI/even.py
ADDED
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import json
|
2 |
+
|
3 |
+
# 读取数据
|
4 |
+
with open("sub_mbpp.json", "r", encoding="utf-8") as f:
|
5 |
+
data = json.load(f)
|
6 |
+
|
7 |
+
# 定义划分区间数
|
8 |
+
num_intervals = 3
|
9 |
+
|
10 |
+
# 计算每个特征的值范围
|
11 |
+
|
12 |
+
|
13 |
+
token_min = min(item['token'] for item in data)
|
14 |
+
token_max = max(item['token'] for item in data)
|
15 |
+
token_interval_size = (token_max - token_min) / num_intervals
|
16 |
+
|
17 |
+
cyclomatic_complexity_min = min(item['cc'] for item in data)
|
18 |
+
cyclomatic_complexity_max = max(item['cc'] for item in data)
|
19 |
+
cyclomatic_complexity_interval_size = (cyclomatic_complexity_max - cyclomatic_complexity_min) / num_intervals
|
20 |
+
count1=0
|
21 |
+
count2=0
|
22 |
+
count3=0
|
23 |
+
|
24 |
+
# 根据等距划分数据
|
25 |
+
for item in data:
|
26 |
+
|
27 |
+
# 计算 token 特征的区间
|
28 |
+
token_diff = int((item['token'] - token_min) // token_interval_size)
|
29 |
+
item['token_diff'] = min(token_diff,num_intervals-1)
|
30 |
+
|
31 |
+
|
32 |
+
# 计算 cyclomatic_complexity 特征的区间
|
33 |
+
CC_diff = int((item['cc'] - cyclomatic_complexity_min) // cyclomatic_complexity_interval_size)
|
34 |
+
item['CC_diff'] = min(CC_diff,num_intervals-1) # 确保区间索引在范围内
|
35 |
+
if item['CC_diff']==0:
|
36 |
+
count1=count1+1
|
37 |
+
if item['CC_diff'] ==1:
|
38 |
+
count2 = count2 + 1
|
39 |
+
if item['CC_diff']==2:
|
40 |
+
count3=count3+1
|
41 |
+
# 恢复原始顺序
|
42 |
+
data.sort(key=lambda x: x['id'])
|
43 |
+
print(count1,count2,count3)
|
44 |
+
|
45 |
+
# 将更新后的数据写回JSON文件
|
46 |
+
with open('EI.json', 'w', encoding='utf-8') as file:
|
47 |
+
json.dump(data, file, ensure_ascii=False, indent=4)
|
dividing_into_different_subsets_mbpp/3/EI/mbpp.json
ADDED
The diff for this file is too large to render.
See raw diff
|
|
dividing_into_different_subsets_mbpp/3/EI/mbpp_with_token+cc.json
ADDED
The diff for this file is too large to render.
See raw diff
|
|
dividing_into_different_subsets_mbpp/3/EI/sub_mbpp.json
ADDED
The diff for this file is too large to render.
See raw diff
|
|
dividing_into_different_subsets_mbpp/3/EI/token_counts_EI.csv
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Model,token_subset_1,token_subset_2,token_subset_3
|
2 |
+
CodeGemma-2b,45.23,23.64,40.0
|
3 |
+
CodeGemma-7b-it,54.15,31.82,40.0
|
4 |
+
CodeGemma-7b,60.58,35.91,40.0
|
5 |
+
DeepSeekCoder-1.3b-base,43.15,12.73,20.0
|
6 |
+
DeepSeekCoder-6.7b-base,60.53,47.73,60.0
|
7 |
+
DeepSeekCoder-6.7b-instruct,64.75,60.98,80.0
|
8 |
+
codeqwen2.5-1.5b,70.57,57.14,25.0
|
9 |
+
codeqwen2.5-7b,77.93,67.86,50.0
|
10 |
+
|
dividing_into_different_subsets_mbpp/3/QS/CC_QS.csv
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Model,CC_subset_1,CC_subset_2,CC_subset_3
|
2 |
+
CodeGemma-2b,52.97,45.82,31.41
|
3 |
+
CodeGemma-7b-it,59.88,53.21,43.29
|
4 |
+
CodeGemma-7b,66.3,58.18,50.35
|
5 |
+
DeepSeekCoder-1.3b-base,49.82,37.82,33.29
|
6 |
+
DeepSeekCoder-6.7b-base,67.88,56.97,53.53
|
7 |
+
DeepSeekCoder-6.7b-instruct,67.09,66.88,59.88
|
8 |
+
codeqwen2.5-1.5b,71.21,74.24,62.22
|
9 |
+
codeqwen2.5-7b,84.09,75.0,71.85
|
dividing_into_different_subsets_mbpp/3/QS/QS.json
ADDED
The diff for this file is too large to render.
See raw diff
|
|
dividing_into_different_subsets_mbpp/3/QS/calculate_humaneval_result.py
ADDED
@@ -0,0 +1,125 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import json
|
2 |
+
import os
|
3 |
+
import csv
|
4 |
+
# 定义文件所在的目录
|
5 |
+
input_dir = 'E:\python-testn\pythonProject3\hh_2\evaluate_result_mbpp'
|
6 |
+
|
7 |
+
# 获取目录中的所有文件
|
8 |
+
files = os.listdir(input_dir)
|
9 |
+
|
10 |
+
with open("token_counts_QS.csv","w", newline='') as csvfile:
|
11 |
+
writer = csv.writer(csvfile)
|
12 |
+
writer.writerow(["Model", "token_subset_1", "token_subset_2","token_subset_3"])
|
13 |
+
|
14 |
+
|
15 |
+
|
16 |
+
|
17 |
+
with open("CC_QS.csv", "w", newline='') as csvfile:
|
18 |
+
writer = csv.writer(csvfile)
|
19 |
+
writer.writerow(["Model", "CC_subset_1", "CC_subset_2","CC_subset_3"])
|
20 |
+
|
21 |
+
|
22 |
+
|
23 |
+
for file_name in files:
|
24 |
+
# 构建完整的文件路径
|
25 |
+
input_file_path = os.path.join(input_dir, file_name)
|
26 |
+
first_underscore_index = file_name.find('_')
|
27 |
+
|
28 |
+
# 找到最后一个 - 的位置
|
29 |
+
last_dash_index = file_name.rfind('-')
|
30 |
+
model_name = file_name[first_underscore_index + 1:last_dash_index]
|
31 |
+
print(model_name)
|
32 |
+
with open(input_file_path,"r",encoding="utf-8") as file:
|
33 |
+
data1=json.load(file)
|
34 |
+
|
35 |
+
with open("QS.json", "r", encoding="utf-8") as file:
|
36 |
+
data2=json.load(file)
|
37 |
+
sum0=0
|
38 |
+
count0=0
|
39 |
+
sum1=0
|
40 |
+
count1=0
|
41 |
+
sum2=0
|
42 |
+
count2=0
|
43 |
+
|
44 |
+
for item1 in data1:
|
45 |
+
task_id = item1["task_id"] # 假设 task_id 是 item1 中的一个属性
|
46 |
+
value = item1["pass@1"] # 假设 value 是 item1 中的一个属性
|
47 |
+
|
48 |
+
# 在 data2 中找到与 task_id 相同的对象
|
49 |
+
item2 = next((item for item in data2 if item["task_id"] == task_id), None)
|
50 |
+
|
51 |
+
if item2 is not None:
|
52 |
+
if item2["token_diff"] == 0:
|
53 |
+
index=item1["task_id"]
|
54 |
+
print(item2["token_diff"],index,value)
|
55 |
+
sum0=sum0+value
|
56 |
+
count0=count0+1
|
57 |
+
if item2["token_diff"] == 1:
|
58 |
+
index = item1["task_id"]
|
59 |
+
print(item2["token_diff"], index, value)
|
60 |
+
sum1=sum1+value
|
61 |
+
count1=count1+1
|
62 |
+
if item2["token_diff"] == 2:
|
63 |
+
index = item1["task_id"]
|
64 |
+
print(item2["token_diff"], index, value)
|
65 |
+
sum2=sum2+value
|
66 |
+
count2=count2+1
|
67 |
+
|
68 |
+
mean0=round(sum0/count0*100,2)
|
69 |
+
|
70 |
+
mean1=round(sum1/count1*100,2)
|
71 |
+
mean2=round(sum2/count2*100,2)
|
72 |
+
#print("count_result!!")
|
73 |
+
print(count0,count1,count2)
|
74 |
+
print(mean0,mean1,mean2)
|
75 |
+
with open("token_counts_QS.csv", mode='a', newline='', encoding='utf-8') as file:
|
76 |
+
writer = csv.writer(file)
|
77 |
+
writer.writerow([model_name,mean0,mean1,mean2])
|
78 |
+
|
79 |
+
sum0 = 0
|
80 |
+
count0 = 0
|
81 |
+
sum1 = 0
|
82 |
+
count1 = 0
|
83 |
+
sum2 = 0
|
84 |
+
count2 = 0
|
85 |
+
for item1 in data1:
|
86 |
+
task_id = item1["task_id"] # 假设 task_id 是 item1 中的一个属性
|
87 |
+
value = item1["pass@1"] # 假设 value 是 item1 中的一个属性
|
88 |
+
|
89 |
+
# 在 data2 中找到与 task_id 相同的对象
|
90 |
+
item2 = next((item for item in data2 if item["task_id"] == task_id), None)
|
91 |
+
|
92 |
+
if item2 is not None:
|
93 |
+
if item2["CC_diff"] == 0:
|
94 |
+
index = item1["task_id"]
|
95 |
+
print(item2["CC_diff"],index,value)
|
96 |
+
sum0=sum0+value
|
97 |
+
count0=count0+1
|
98 |
+
if item2["CC_diff"] == 1:
|
99 |
+
index = item1["task_id"]
|
100 |
+
print(item2["CC_diff"], index, value)
|
101 |
+
sum1=sum1+value
|
102 |
+
count1=count1+1
|
103 |
+
if item2["CC_diff"] == 2:
|
104 |
+
index = item1["task_id"]
|
105 |
+
print(item2["CC_diff"], index, value)
|
106 |
+
sum2=sum2+value
|
107 |
+
count2=count2+1
|
108 |
+
|
109 |
+
|
110 |
+
|
111 |
+
mean0=round(sum0/count0*100,2)
|
112 |
+
|
113 |
+
mean1=round(sum1/count1*100,2)
|
114 |
+
mean2=round(sum2/count2*100,2)
|
115 |
+
print("count_result!!")
|
116 |
+
print(count0,count1,count2)
|
117 |
+
print(mean0,mean1,mean2)
|
118 |
+
|
119 |
+
with open("CC_QS.csv", mode='a', newline='', encoding='utf-8') as file:
|
120 |
+
writer = csv.writer(file)
|
121 |
+
writer.writerow([model_name,mean0,mean1,mean2])
|
122 |
+
|
123 |
+
|
124 |
+
|
125 |
+
|
dividing_into_different_subsets_mbpp/3/QS/even.py
ADDED
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import json
|
2 |
+
with open("sub_mbpp.json", "r", encoding="utf-8") as f:
|
3 |
+
data = json.load(f)
|
4 |
+
|
5 |
+
# token_counts=[33,33,34]
|
6 |
+
# token_counts_I=token_counts[0]*0.01*974
|
7 |
+
# token_counts_II=token_counts[1]*0.01*974
|
8 |
+
# token_counts_III=164-token_counts_I-token_counts_II
|
9 |
+
#
|
10 |
+
# cyclomatic_complexity=[33,33,34]
|
11 |
+
# cyclomatic_complexity_I=cyclomatic_complexity[0]*0.01*974
|
12 |
+
# cyclomatic_complexity_II=cyclomatic_complexity[1]*0.01*974
|
13 |
+
# cyclomatic_complexity_III=164-cyclomatic_complexity_II-cyclomatic_complexity_I
|
14 |
+
|
15 |
+
token_counts=[33,33,34]
|
16 |
+
token_counts_I=token_counts[0]*0.01*500
|
17 |
+
token_counts_II=token_counts[1]*0.01*500
|
18 |
+
token_counts_III=164-token_counts_I-token_counts_II
|
19 |
+
|
20 |
+
cyclomatic_complexity=[33,33,34]
|
21 |
+
cyclomatic_complexity_I=cyclomatic_complexity[0]*0.01*500
|
22 |
+
cyclomatic_complexity_II=cyclomatic_complexity[1]*0.01*500
|
23 |
+
cyclomatic_complexity_III=164-cyclomatic_complexity_II-cyclomatic_complexity_I
|
24 |
+
|
25 |
+
|
26 |
+
|
27 |
+
data.sort(key=lambda x: x['token'])
|
28 |
+
for i, item in enumerate(data):
|
29 |
+
if i < token_counts_I:
|
30 |
+
item['token_diff'] = 0
|
31 |
+
elif i < token_counts_I + token_counts_II:
|
32 |
+
item['token_diff'] = 1
|
33 |
+
else:
|
34 |
+
item['token_diff'] = 2
|
35 |
+
|
36 |
+
data.sort(key=lambda x: x['cc'])
|
37 |
+
for i, item in enumerate(data):
|
38 |
+
if i < cyclomatic_complexity_I:
|
39 |
+
item['CC_diff'] = 0
|
40 |
+
elif i < cyclomatic_complexity_I + cyclomatic_complexity_II:
|
41 |
+
item['CC_diff'] = 1
|
42 |
+
else:
|
43 |
+
item['CC_diff'] = 2
|
44 |
+
|
45 |
+
|
46 |
+
data.sort(key=lambda x: x['id'])
|
47 |
+
# 将更新后的数据写回JSON文件
|
48 |
+
with open('QS.json', 'w', encoding='utf-8') as file:
|
49 |
+
json.dump(data, file, ensure_ascii=False, indent=4)
|
50 |
+
|
dividing_into_different_subsets_mbpp/3/QS/flagged/log.csv
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
1 |
+
df,Line Plot,flag,username,timestamp
|
2 |
+
"{""headers"": [""Model"", ""line_subset_1"", ""line_subset_2"", ""line_subset_3""], ""data"": [[""CodeFuse-DeepSeek-33b"", 81.82, 72.22, 76.36], [""Nxcode-CQ-7B"", 92.09, 88.33, 81.45], [""codegemma-2b"", 44.09, 17.5, 19.64], [""codegemma-7b"", 52.45, 35.19, 31.64], [""codegemma-7b-it"", 66.36, 49.26, 43.73], [""deepseek-coder-1.3b-base"", 47.45, 26.39, 23], [""deepseek-coder-6.7b-base"", 63.36, 39.35, 34.18], [""deepseek_coder-6.7b-instruct"", 85, 66.85, 62.82], [""deepseek_coder_33b-base"", 68, 48.89, 41.27], [""deepseek_coder_33b-instruct"", 82.09, 62.31, 53.91], [""codeqwen1.5-7b"", 59.73, 48.7, 45.64]], ""metadata"": null}",,,,2024-09-22 18:55:59.262701
|
dividing_into_different_subsets_mbpp/3/QS/mbpp.json
ADDED
The diff for this file is too large to render.
See raw diff
|
|
dividing_into_different_subsets_mbpp/3/QS/sub_mbpp.json
ADDED
The diff for this file is too large to render.
See raw diff
|
|
dividing_into_different_subsets_mbpp/3/QS/token_counts_QS.csv
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Model,token_subset_1,token_subset_2,token_subset_3
|
2 |
+
CodeGemma-2b,50.3,46.79,33.06
|
3 |
+
CodeGemma-7b-it,54.67,55.76,45.88
|
4 |
+
CodeGemma-7b,62.67,56.85,55.18
|
5 |
+
DeepSeekCoder-1.3b-base,44.0,44.24,32.71
|
6 |
+
DeepSeekCoder-6.7b-base,64.85,61.21,52.35
|
7 |
+
DeepSeekCoder-6.7b-instruct,66.88,64.15,62.8
|
8 |
+
codeqwen2.5-1.5b,71.97,70.45,65.19
|
9 |
+
codeqwen2.5-7b,83.33,77.27,70.37
|
dividing_into_different_subsets_mbpp/4/EI/CC_EI.csv
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Model,CC_subset_1,CC_subset_2,CC_subset_3,CC_subset_4
|
2 |
+
CodeGemma-2b,45.35,32.38,20.0,0.0
|
3 |
+
CodeGemma-7b-it,53.58,44.13,40.0,0.0
|
4 |
+
CodeGemma-7b,60.23,47.62,40.0,0.0
|
5 |
+
DeepSeekCoder-1.3b-base,40.37,42.22,20.0,0.0
|
6 |
+
DeepSeekCoder-6.7b-base,60.23,55.56,40.0,50.0
|
7 |
+
DeepSeekCoder-6.7b-instruct,64.82,60.34,80.0,100.0
|
8 |
+
codeqwen2.5-1.5b,70.39,62.86,20.0,100.0
|
9 |
+
codeqwen2.5-7b,78.49,68.57,20.0,100.0
|
10 |
+
|
dividing_into_different_subsets_mbpp/4/EI/EI.json
ADDED
The diff for this file is too large to render.
See raw diff
|
|
dividing_into_different_subsets_mbpp/4/EI/calculate_humaneval_result.py
ADDED
@@ -0,0 +1,143 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import json
|
2 |
+
import os
|
3 |
+
import csv
|
4 |
+
# 定义文件所在的目录
|
5 |
+
input_dir = 'E:\python-testn\pythonProject3\hh_2\evaluate_result_mbpp'
|
6 |
+
|
7 |
+
# 获取目录中的所有文件
|
8 |
+
files = os.listdir(input_dir)
|
9 |
+
|
10 |
+
with open("token_counts_EI.csv","w", newline='') as csvfile:
|
11 |
+
writer = csv.writer(csvfile)
|
12 |
+
writer.writerow(["Model", "token_subset_1", "token_subset_2","token_subset_3","token_subset_4"])
|
13 |
+
|
14 |
+
|
15 |
+
|
16 |
+
|
17 |
+
with open("CC_EI.csv","w", newline='') as csvfile:
|
18 |
+
writer = csv.writer(csvfile)
|
19 |
+
writer.writerow(["Model", "CC_subset_1", "CC_subset_2","CC_subset_3","CC_subset_4"])
|
20 |
+
|
21 |
+
|
22 |
+
|
23 |
+
for file_name in files:
|
24 |
+
# 构建完整的文件路径
|
25 |
+
input_file_path = os.path.join(input_dir, file_name)
|
26 |
+
first_underscore_index = file_name.find('_')
|
27 |
+
|
28 |
+
# 找到最后一个 - 的位置
|
29 |
+
last_dash_index = file_name.rfind('-')
|
30 |
+
model_name = file_name[first_underscore_index + 1:last_dash_index]
|
31 |
+
print(model_name)
|
32 |
+
with open(input_file_path,"r",encoding="utf-8") as file:
|
33 |
+
data1=json.load(file)
|
34 |
+
|
35 |
+
with open("EI.json","r",encoding="utf-8") as file:
|
36 |
+
data2=json.load(file)
|
37 |
+
sum0=0
|
38 |
+
count0=0
|
39 |
+
sum1=0
|
40 |
+
count1=0
|
41 |
+
sum2=0
|
42 |
+
count2=0
|
43 |
+
sum3 = 0
|
44 |
+
count3 = 0
|
45 |
+
|
46 |
+
for item1 in data1:
|
47 |
+
task_id = item1["task_id"] # 假设 task_id 是 item1 中的一个属性
|
48 |
+
value = item1["pass@1"] # 假设 value 是 item1 中的一个属性
|
49 |
+
|
50 |
+
# 在 data2 中找到与 task_id 相同的对象
|
51 |
+
item2 = next((item for item in data2 if item["task_id"] == task_id), None)
|
52 |
+
|
53 |
+
if item2 is not None:
|
54 |
+
#按照token个数划分后的评估结果
|
55 |
+
if item2["token_diff"] == 0:
|
56 |
+
index=item1["task_id"]
|
57 |
+
print(item2["token_diff"],index,value)
|
58 |
+
sum0=sum0+value
|
59 |
+
count0=count0+1
|
60 |
+
if item2["token_diff"] == 1:
|
61 |
+
index = item1["task_id"]
|
62 |
+
print(item2["token_diff"], index, value)
|
63 |
+
sum1=sum1+value
|
64 |
+
count1=count1+1
|
65 |
+
if item2["token_diff"] == 2:
|
66 |
+
index = item1["task_id"]
|
67 |
+
print(item2["token_diff"], index, value)
|
68 |
+
sum2=sum2+value
|
69 |
+
count2=count2+1
|
70 |
+
if item2["token_diff"] == 3:
|
71 |
+
index = item1["task_id"]
|
72 |
+
print(item2["token_diff"], index, value)
|
73 |
+
sum3=sum3+value
|
74 |
+
count3=count3+1
|
75 |
+
mean0 = round(sum0 / count0 * 100, 2)
|
76 |
+
|
77 |
+
mean1 = round(sum1 / count1 * 100, 2)
|
78 |
+
mean2 = round(sum2 / count2 * 100, 2)
|
79 |
+
mean3 = round(sum3 / count3 * 100, 2)
|
80 |
+
print("count_result!!")
|
81 |
+
print(count0, count1, count2, count3)
|
82 |
+
print(mean0, mean1, mean2, mean3)
|
83 |
+
with open("token_counts_EI.csv", mode='a', newline='', encoding='utf-8') as file:
|
84 |
+
writer = csv.writer(file)
|
85 |
+
writer.writerow([model_name,mean0,mean1,mean2,mean3])
|
86 |
+
|
87 |
+
sum0 = 0
|
88 |
+
count0 = 0
|
89 |
+
sum1 = 0
|
90 |
+
count1 = 0
|
91 |
+
sum2 = 0
|
92 |
+
count2 = 0
|
93 |
+
sum3 = 0
|
94 |
+
count3 = 0
|
95 |
+
for item1 in data1:
|
96 |
+
task_id = item1["task_id"] # 假设 task_id 是 item1 中的一个属性
|
97 |
+
value = item1["pass@1"] # 假设 value 是 item1 中的一个属性
|
98 |
+
|
99 |
+
# 在 data2 中找到与 task_id 相同的对象
|
100 |
+
item2 = next((item for item in data2 if item["task_id"] == task_id), None)
|
101 |
+
|
102 |
+
if item2 is not None:
|
103 |
+
|
104 |
+
|
105 |
+
#按照圈复杂度划分后的评估结果
|
106 |
+
if item2["CC_diff"] == 0:
|
107 |
+
index = item1["task_id"]
|
108 |
+
print(item2["CC_diff"],index,value)
|
109 |
+
sum0=sum0+value
|
110 |
+
count0=count0+1
|
111 |
+
if item2["CC_diff"] == 1:
|
112 |
+
index = item1["task_id"]
|
113 |
+
print(item2["CC_diff"], index, value)
|
114 |
+
sum1=sum1+value
|
115 |
+
count1=count1+1
|
116 |
+
if item2["CC_diff"] == 2:
|
117 |
+
index = item1["task_id"]
|
118 |
+
print(item2["CC_diff"], index, value)
|
119 |
+
sum2=sum2+value
|
120 |
+
count2=count2+1
|
121 |
+
if item2["CC_diff"] == 3 :
|
122 |
+
index=item1["task_id"]
|
123 |
+
print(item2["CC_diff"], index, value)
|
124 |
+
sum3=sum3+value
|
125 |
+
count3=count3+1
|
126 |
+
|
127 |
+
|
128 |
+
|
129 |
+
mean0=round(sum0/count0*100,2)
|
130 |
+
|
131 |
+
mean1=round(sum1/count1*100,2)
|
132 |
+
mean2=round(sum2/count2*100,2)
|
133 |
+
mean3=round(sum3/count3*100,2)
|
134 |
+
print("count_result!!")
|
135 |
+
print(count0,count1,count2,count3)
|
136 |
+
print(mean0,mean1,mean2,mean3)
|
137 |
+
|
138 |
+
|
139 |
+
with open("CC_EI.csv", mode='a', newline='', encoding='utf-8') as file:
|
140 |
+
writer = csv.writer(file)
|
141 |
+
writer.writerow([model_name,mean0,mean1,mean2,mean3])
|
142 |
+
|
143 |
+
|
dividing_into_different_subsets_mbpp/4/EI/even.py
ADDED
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import json
|
2 |
+
|
3 |
+
# 读取数据
|
4 |
+
with open("sub_mbpp.json", "r", encoding="utf-8") as f:
|
5 |
+
data = json.load(f)
|
6 |
+
|
7 |
+
# 定义划分区间数
|
8 |
+
num_intervals = 4
|
9 |
+
|
10 |
+
|
11 |
+
|
12 |
+
token_min = min(item['token'] for item in data)
|
13 |
+
token_max = max(item['token'] for item in data)
|
14 |
+
token_interval_size = (token_max - token_min) / num_intervals
|
15 |
+
|
16 |
+
cyclomatic_complexity_min = min(item['cc'] for item in data)
|
17 |
+
cyclomatic_complexity_max = max(item['cc'] for item in data)
|
18 |
+
cyclomatic_complexity_interval_size = (cyclomatic_complexity_max - cyclomatic_complexity_min) / num_intervals
|
19 |
+
count1=0
|
20 |
+
count2=0
|
21 |
+
count3=0
|
22 |
+
count4=0
|
23 |
+
|
24 |
+
# 根据等距划分数据
|
25 |
+
for item in data:
|
26 |
+
|
27 |
+
|
28 |
+
# 计算 token 特征的区间
|
29 |
+
token_diff = int((item['token'] - token_min) // token_interval_size)
|
30 |
+
item['token_diff'] = min(token_diff,num_intervals-1)
|
31 |
+
if item['token_diff'] == 0:
|
32 |
+
count1 = count1 + 1
|
33 |
+
if item['token_diff'] == 1:
|
34 |
+
count2 = count2 + 1
|
35 |
+
if item['token_diff'] == 2:
|
36 |
+
count3 = count3 + 1
|
37 |
+
if item['token_diff'] == 3:
|
38 |
+
count4 = count4 + 1
|
39 |
+
|
40 |
+
|
41 |
+
# 计算 cyclomatic_complexity 特征的区间
|
42 |
+
CC_diff = int((item['cc'] - cyclomatic_complexity_min) // cyclomatic_complexity_interval_size)
|
43 |
+
item['CC_diff'] = min(CC_diff,num_intervals-1) # 确保区间索引在范围内
|
44 |
+
|
45 |
+
# 恢复原始顺序
|
46 |
+
data.sort(key=lambda x: x['id'])
|
47 |
+
print(count1,count2,count3,count4)
|
48 |
+
|
49 |
+
# 将更新后的数据写回JSON文件
|
50 |
+
with open('EI.json', 'w', encoding='utf-8') as file:
|
51 |
+
json.dump(data, file, ensure_ascii=False, indent=4)
|
dividing_into_different_subsets_mbpp/4/EI/mbpp.json
ADDED
The diff for this file is too large to render.
See raw diff
|
|
dividing_into_different_subsets_mbpp/4/EI/mbpp_with_token+cc.json
ADDED
The diff for this file is too large to render.
See raw diff
|
|
dividing_into_different_subsets_mbpp/4/EI/sub_mbpp.json
ADDED
The diff for this file is too large to render.
See raw diff
|
|
dividing_into_different_subsets_mbpp/4/EI/token_counts_EI.csv
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Model,token_subset_1,token_subset_2,token_subset_3,token_subset_4
|
2 |
+
CodeGemma-2b,47.37,31.65,28.0,33.33
|
3 |
+
CodeGemma-7b-it,54.03,48.17,28.0,33.33
|
4 |
+
CodeGemma-7b,59.68,56.0,36.0,33.33
|
5 |
+
DeepSeekCoder-1.3b-base,44.57,29.04,10.0,33.33
|
6 |
+
DeepSeekCoder-6.7b-base,63.17,48.7,40.0,66.67
|
7 |
+
DeepSeekCoder-6.7b-instruct,65.45,60.71,77.78,66.67
|
8 |
+
codeqwen2.5-1.5b,69.9,66.67,85.71,33.33
|
9 |
+
codeqwen2.5-7b,78.26,74.44,57.14,66.67
|
10 |
+
|
dividing_into_different_subsets_mbpp/4/QS/CC_QS.csv
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Model,CC_subset_1,CC_subset_2,CC_subset_3,CC_subset_4
|
2 |
+
CodeGemma-2b,55.2,46.56,40.96,30.4
|
3 |
+
CodeGemma-7b-it,60.0,58.24,46.88,43.04
|
4 |
+
CodeGemma-7b,68.48,60.0,55.36,48.96
|
5 |
+
DeepSeekCoder-1.3b-base,49.28,43.04,36.48,32.16
|
6 |
+
DeepSeekCoder-6.7b-base,65.6,65.6,52.0,54.4
|
7 |
+
DeepSeekCoder-6.7b-instruct,68.07,70.83,60.16,59.32
|
8 |
+
codeqwen2.5-1.5b,70.0,74.0,69.0,63.64
|
9 |
+
codeqwen2.5-7b,87.0,75.0,77.0,68.69
|
10 |
+
|
dividing_into_different_subsets_mbpp/4/QS/QS.json
ADDED
The diff for this file is too large to render.
See raw diff
|
|
dividing_into_different_subsets_mbpp/4/QS/calculate_humaneval_result.py
ADDED
@@ -0,0 +1,143 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import json
|
2 |
+
import os
|
3 |
+
import csv
|
4 |
+
# 定义文件所在的目录
|
5 |
+
input_dir = 'E:\python-testn\pythonProject3\hh_2\evaluate_result_mbpp'
|
6 |
+
|
7 |
+
# 获取目录中的所有文件
|
8 |
+
files = os.listdir(input_dir)
|
9 |
+
|
10 |
+
with open("token_counts_QS.csv","w", newline='') as csvfile:
|
11 |
+
writer = csv.writer(csvfile)
|
12 |
+
writer.writerow(["Model", "token_subset_1", "token_subset_2","token_subset_3","token_subset_4"])
|
13 |
+
|
14 |
+
|
15 |
+
|
16 |
+
|
17 |
+
with open("CC_QS.csv","w", newline='') as csvfile:
|
18 |
+
writer = csv.writer(csvfile)
|
19 |
+
writer.writerow(["Model", "CC_subset_1", "CC_subset_2","CC_subset_3","CC_subset_4"])
|
20 |
+
|
21 |
+
|
22 |
+
|
23 |
+
for file_name in files:
|
24 |
+
# 构建完整的文件路径
|
25 |
+
input_file_path = os.path.join(input_dir, file_name)
|
26 |
+
first_underscore_index = file_name.find('_')
|
27 |
+
|
28 |
+
# 找到最后一个 - 的位置
|
29 |
+
last_dash_index = file_name.rfind('-')
|
30 |
+
model_name = file_name[first_underscore_index + 1:last_dash_index]
|
31 |
+
print(model_name)
|
32 |
+
with open(input_file_path,"r",encoding="utf-8") as file:
|
33 |
+
data1=json.load(file)
|
34 |
+
|
35 |
+
with open("QS.json","r",encoding="utf-8") as file:
|
36 |
+
data2=json.load(file)
|
37 |
+
sum0=0
|
38 |
+
count0=0
|
39 |
+
sum1=0
|
40 |
+
count1=0
|
41 |
+
sum2=0
|
42 |
+
count2=0
|
43 |
+
sum3 = 0
|
44 |
+
count3 = 0
|
45 |
+
|
46 |
+
for item1 in data1:
|
47 |
+
task_id = item1["task_id"] # 假设 task_id 是 item1 中的一个属性
|
48 |
+
value = item1["pass@1"] # 假设 value 是 item1 中的一个属性
|
49 |
+
|
50 |
+
# 在 data2 中找到与 task_id 相同的对象
|
51 |
+
item2 = next((item for item in data2 if item["task_id"] == task_id), None)
|
52 |
+
|
53 |
+
if item2 is not None:
|
54 |
+
#按照token个数划分后的评估结果
|
55 |
+
if item2["token_diff"] == 0:
|
56 |
+
index=item1["task_id"]
|
57 |
+
print(item2["token_diff"],index,value)
|
58 |
+
sum0=sum0+value
|
59 |
+
count0=count0+1
|
60 |
+
if item2["token_diff"] == 1:
|
61 |
+
index = item1["task_id"]
|
62 |
+
print(item2["token_diff"], index, value)
|
63 |
+
sum1=sum1+value
|
64 |
+
count1=count1+1
|
65 |
+
if item2["token_diff"] == 2:
|
66 |
+
index = item1["task_id"]
|
67 |
+
print(item2["token_diff"], index, value)
|
68 |
+
sum2=sum2+value
|
69 |
+
count2=count2+1
|
70 |
+
if item2["token_diff"] == 3:
|
71 |
+
index = item1["task_id"]
|
72 |
+
print(item2["token_diff"], index, value)
|
73 |
+
sum3=sum3+value
|
74 |
+
count3=count3+1
|
75 |
+
mean0 = round(sum0 / count0 * 100, 2)
|
76 |
+
|
77 |
+
mean1 = round(sum1 / count1 * 100, 2)
|
78 |
+
mean2 = round(sum2 / count2 * 100, 2)
|
79 |
+
mean3 = round(sum3 / count3 * 100, 2)
|
80 |
+
print("count_result!!")
|
81 |
+
print(count0, count1, count2, count3)
|
82 |
+
print(mean0, mean1, mean2, mean3)
|
83 |
+
with open("token_counts_QS.csv", mode='a', newline='', encoding='utf-8') as file:
|
84 |
+
writer = csv.writer(file)
|
85 |
+
writer.writerow([model_name,mean0,mean1,mean2,mean3])
|
86 |
+
|
87 |
+
sum0 = 0
|
88 |
+
count0 = 0
|
89 |
+
sum1 = 0
|
90 |
+
count1 = 0
|
91 |
+
sum2 = 0
|
92 |
+
count2 = 0
|
93 |
+
sum3 = 0
|
94 |
+
count3 = 0
|
95 |
+
for item1 in data1:
|
96 |
+
task_id = item1["task_id"] # 假设 task_id 是 item1 中的一个属性
|
97 |
+
value = item1["pass@1"] # 假设 value 是 item1 中的一个属性
|
98 |
+
|
99 |
+
# 在 data2 中找到与 task_id 相同的对象
|
100 |
+
item2 = next((item for item in data2 if item["task_id"] == task_id), None)
|
101 |
+
|
102 |
+
if item2 is not None:
|
103 |
+
|
104 |
+
|
105 |
+
#按照圈复杂度划分后的评估结果
|
106 |
+
if item2["CC_diff"] == 0:
|
107 |
+
index = item1["task_id"]
|
108 |
+
print(item2["CC_diff"],index,value)
|
109 |
+
sum0=sum0+value
|
110 |
+
count0=count0+1
|
111 |
+
if item2["CC_diff"] == 1:
|
112 |
+
index = item1["task_id"]
|
113 |
+
print(item2["CC_diff"], index, value)
|
114 |
+
sum1=sum1+value
|
115 |
+
count1=count1+1
|
116 |
+
if item2["CC_diff"] == 2:
|
117 |
+
index = item1["task_id"]
|
118 |
+
print(item2["CC_diff"], index, value)
|
119 |
+
sum2=sum2+value
|
120 |
+
count2=count2+1
|
121 |
+
if item2["CC_diff"] == 3 :
|
122 |
+
index=item1["task_id"]
|
123 |
+
print(item2["CC_diff"], index, value)
|
124 |
+
sum3=sum3+value
|
125 |
+
count3=count3+1
|
126 |
+
|
127 |
+
|
128 |
+
|
129 |
+
mean0=round(sum0/count0*100,2)
|
130 |
+
|
131 |
+
mean1=round(sum1/count1*100,2)
|
132 |
+
mean2=round(sum2/count2*100,2)
|
133 |
+
mean3=round(sum3/count3*100,2)
|
134 |
+
print("count_result!!")
|
135 |
+
print(count0,count1,count2,count3)
|
136 |
+
print(mean0,mean1,mean2,mean3)
|
137 |
+
|
138 |
+
|
139 |
+
with open("CC_QS.csv", mode='a', newline='', encoding='utf-8') as file:
|
140 |
+
writer = csv.writer(file)
|
141 |
+
writer.writerow([model_name,mean0,mean1,mean2,mean3])
|
142 |
+
|
143 |
+
|
dividing_into_different_subsets_mbpp/4/QS/even.py
ADDED
@@ -0,0 +1,65 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import json
|
2 |
+
with open("sub_mbpp.json","r",encoding="utf-8") as f:
|
3 |
+
data = json.load(f)
|
4 |
+
|
5 |
+
|
6 |
+
# token_counts=[25,25,25,25]
|
7 |
+
# token_counts_I=token_counts[0]*0.01*974
|
8 |
+
# token_counts_II=token_counts[1]*0.01*974
|
9 |
+
# token_counts_III=token_counts[2]*0.01*974
|
10 |
+
# token_counts_IV=token_counts[3]*0.01*974
|
11 |
+
#
|
12 |
+
#
|
13 |
+
#
|
14 |
+
# cyclomatic_complexity=[25,25,25,25]
|
15 |
+
# cyclomatic_complexity_I=cyclomatic_complexity[0]*0.01*974
|
16 |
+
# cyclomatic_complexity_II=cyclomatic_complexity[1]*0.01*974
|
17 |
+
# cyclomatic_complexity_III=cyclomatic_complexity[2]*0.01*974
|
18 |
+
# cyclomatic_complexity_IV=cyclomatic_complexity[3]*0.01*974
|
19 |
+
token_counts=[25,25,25,25]
|
20 |
+
token_counts_I=token_counts[0]*0.01*500
|
21 |
+
token_counts_II=token_counts[1]*0.01*500
|
22 |
+
token_counts_III=token_counts[2]*0.01*500
|
23 |
+
token_counts_IV=token_counts[3]*0.01*500
|
24 |
+
|
25 |
+
|
26 |
+
|
27 |
+
cyclomatic_complexity=[25,25,25,25]
|
28 |
+
cyclomatic_complexity_I=cyclomatic_complexity[0]*0.01*500
|
29 |
+
cyclomatic_complexity_II=cyclomatic_complexity[1]*0.01*500
|
30 |
+
cyclomatic_complexity_III=cyclomatic_complexity[2]*0.01*500
|
31 |
+
cyclomatic_complexity_IV=cyclomatic_complexity[3]*0.01*500
|
32 |
+
|
33 |
+
|
34 |
+
|
35 |
+
|
36 |
+
data.sort(key=lambda x: x['token'])
|
37 |
+
for i, item in enumerate(data):
|
38 |
+
if i < token_counts_I:
|
39 |
+
item['token_diff'] = 0
|
40 |
+
elif i < token_counts_I + token_counts_II:
|
41 |
+
item['token_diff'] = 1
|
42 |
+
elif i < token_counts_I + token_counts_II+token_counts_III:
|
43 |
+
item['token_diff'] = 2
|
44 |
+
else:
|
45 |
+
item['token_diff'] = 3
|
46 |
+
|
47 |
+
data.sort(key=lambda x: x['cc'])
|
48 |
+
for i, item in enumerate(data):
|
49 |
+
if i < cyclomatic_complexity_I:
|
50 |
+
item['CC_diff'] = 0
|
51 |
+
elif i < cyclomatic_complexity_I + cyclomatic_complexity_II:
|
52 |
+
item['CC_diff'] = 1
|
53 |
+
elif i < cyclomatic_complexity_I + cyclomatic_complexity_II+cyclomatic_complexity_III:
|
54 |
+
item['CC_diff'] = 2
|
55 |
+
|
56 |
+
else:
|
57 |
+
item['CC_diff'] = 3
|
58 |
+
|
59 |
+
|
60 |
+
|
61 |
+
data.sort(key=lambda x: x['id'])
|
62 |
+
# 将更新后的数据写回JSON文件
|
63 |
+
with open('QS.json', 'w', encoding='utf-8') as file:
|
64 |
+
json.dump(data, file, ensure_ascii=False, indent=4)
|
65 |
+
|
dividing_into_different_subsets_mbpp/4/QS/mbpp.json
ADDED
The diff for this file is too large to render.
See raw diff
|
|
dividing_into_different_subsets_mbpp/4/QS/mbpp_with_token+cc.json
ADDED
The diff for this file is too large to render.
See raw diff
|
|
dividing_into_different_subsets_mbpp/4/QS/sub_mbpp.json
ADDED
The diff for this file is too large to render.
See raw diff
|
|
dividing_into_different_subsets_mbpp/4/QS/token_counts_QS.csv
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Model,token_subset_1,token_subset_2,token_subset_3,token_subset_4
|
2 |
+
CodeGemma-2b,51.52,44.8,46.08,30.72
|
3 |
+
CodeGemma-7b-it,50.4,57.28,54.4,46.08
|
4 |
+
CodeGemma-7b,62.08,58.08,58.72,53.92
|
5 |
+
DeepSeekCoder-1.3b-base,44.8,44.32,44.96,26.88
|
6 |
+
DeepSeekCoder-6.7b-base,63.2,62.4,63.2,48.8
|
7 |
+
DeepSeekCoder-6.7b-instruct,66.67,67.2,61.54,62.81
|
8 |
+
codeqwen2.5-1.5b,71.0,75.0,63.0,67.68
|
9 |
+
codeqwen2.5-7b,83.0,77.0,75.0,72.73
|
10 |
+
|
dividing_into_different_subsets_mbpp/5/EI/CC_EI.csv
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Model,CC_subset_1,CC_subset_2,CC_subset_3,CC_subset_4,CC_subset_5
|
2 |
+
CodeGemma-2b,46.95,35.62,19.0,0.0,0.0
|
3 |
+
CodeGemma-7b-it,54.79,46.25,38.0,0.0,0.0
|
4 |
+
CodeGemma-7b,60.95,54.79,29.0,50.0,0.0
|
5 |
+
DeepSeekCoder-1.3b-base,42.37,36.67,25.0,0.0,0.0
|
6 |
+
DeepSeekCoder-6.7b-base,61.05,58.33,35.0,50.0,50.0
|
7 |
+
DeepSeekCoder-6.7b-instruct,66.49,58.89,52.63,50.0,100.0
|
8 |
+
codeqwen2.5-1.5b,69.44,73.44,28.57,33.33,100.0
|
9 |
+
codeqwen2.5-7b,78.7,73.44,57.14,0.0,100.0
|
dividing_into_different_subsets_mbpp/5/EI/EI.json
ADDED
The diff for this file is too large to render.
See raw diff
|
|
dividing_into_different_subsets_mbpp/5/EI/calculate_humaneval_result.py
ADDED
@@ -0,0 +1,167 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import json
|
2 |
+
import os
|
3 |
+
import csv
|
4 |
+
# 定义文件所在的目录
|
5 |
+
input_dir = 'E:/python-testn/pythonProject3/hh_2/evaluate_result_mbpp'
|
6 |
+
|
7 |
+
# 获取目录中的所有文件
|
8 |
+
files = os.listdir(input_dir)
|
9 |
+
|
10 |
+
with open("token_counts_EI.csv","w", newline='') as csvfile:
|
11 |
+
writer = csv.writer(csvfile)
|
12 |
+
writer.writerow(["Model", "token_subset_1", "token_subset_2","token_subset_3","token_subset_4","token_subset_5"])
|
13 |
+
|
14 |
+
|
15 |
+
|
16 |
+
with open("CC_EI.csv", "w", newline='') as csvfile:
|
17 |
+
writer = csv.writer(csvfile)
|
18 |
+
writer.writerow(["Model", "CC_subset_1", "CC_subset_2","CC_subset_3","CC_subset_4","CC_subset_5"])
|
19 |
+
|
20 |
+
|
21 |
+
|
22 |
+
for file_name in files:
|
23 |
+
# 构建完整的文件路径
|
24 |
+
input_file_path = os.path.join(input_dir, file_name)
|
25 |
+
first_underscore_index = file_name.find('_')
|
26 |
+
|
27 |
+
# 找到最后一个 - 的位置
|
28 |
+
last_dash_index = file_name.rfind('-')
|
29 |
+
model_name = file_name[first_underscore_index + 1:last_dash_index]
|
30 |
+
print(model_name)
|
31 |
+
with open(input_file_path,"r",encoding="utf-8") as file:
|
32 |
+
data1=json.load(file)
|
33 |
+
|
34 |
+
with open("EI.json", "r", encoding="utf-8") as file:
|
35 |
+
data2=json.load(file)
|
36 |
+
sum0=0
|
37 |
+
count0=0
|
38 |
+
sum1=0
|
39 |
+
count1=0
|
40 |
+
sum2=0
|
41 |
+
count2=0
|
42 |
+
sum3 = 0
|
43 |
+
count3 = 0
|
44 |
+
sum4=0
|
45 |
+
count4=0
|
46 |
+
|
47 |
+
|
48 |
+
for item1 in data1:
|
49 |
+
task_id = item1["task_id"] # 假设 task_id 是 item1 中的一个属性
|
50 |
+
value = item1["pass@1"] # 假设 value 是 item1 中的一个属性
|
51 |
+
|
52 |
+
# 在 data2 中找到与 task_id 相同的对象
|
53 |
+
item2 = next((item for item in data2 if item["task_id"] == task_id), None)
|
54 |
+
|
55 |
+
if item2 is not None:
|
56 |
+
|
57 |
+
# #按照token个数划分后的评估结果
|
58 |
+
if item2["token_diff"] == 0:
|
59 |
+
index=item2["task_id"]
|
60 |
+
print(item2["token_diff"],index,value)
|
61 |
+
sum0=sum0+value
|
62 |
+
count0=count0+1
|
63 |
+
if item2["token_diff"] == 1:
|
64 |
+
index=item2["task_id"]
|
65 |
+
print(item2["token_diff"], index, value)
|
66 |
+
sum1=sum1+value
|
67 |
+
count1=count1+1
|
68 |
+
if item2["token_diff"] == 2:
|
69 |
+
index=item2["task_id"]
|
70 |
+
print(item2["token_diff"], index, value)
|
71 |
+
sum2=sum2+value
|
72 |
+
count2=count2+1
|
73 |
+
if item2["token_diff"] == 3:
|
74 |
+
index=item2["task_id"]
|
75 |
+
print(item2["token_diff"], index, value)
|
76 |
+
sum3=sum3+value
|
77 |
+
count3=count3+1
|
78 |
+
if item2["token_diff"] == 4:
|
79 |
+
index=item2["task_id"]
|
80 |
+
print(item2["token_diff"], index, value)
|
81 |
+
sum4 = sum4 + value
|
82 |
+
count4 = count4 + 1
|
83 |
+
mean0 = round(sum0 / count0 * 100, 2)
|
84 |
+
|
85 |
+
mean1 = round(sum1 / count1 * 100, 2)
|
86 |
+
mean2 = round(sum2 / count2 * 100, 2)
|
87 |
+
mean3 = round(sum3 / count3 * 100, 2)
|
88 |
+
mean4 = round(sum4 / count4 * 100, 2)
|
89 |
+
print("count_result!!")
|
90 |
+
print(count0, count1, count2, count3, count4)
|
91 |
+
print(mean0, mean1, mean2, mean3, count4)
|
92 |
+
with open("token_counts_EI.csv", mode='a', newline='', encoding='utf-8') as file:
|
93 |
+
writer = csv.writer(file)
|
94 |
+
writer.writerow([model_name,mean0,mean1,mean2,mean3,mean4])
|
95 |
+
|
96 |
+
|
97 |
+
|
98 |
+
sum0 = 0
|
99 |
+
count0 = 0
|
100 |
+
sum1 = 0
|
101 |
+
count1 = 0
|
102 |
+
sum2 = 0
|
103 |
+
count2 = 0
|
104 |
+
sum3 = 0
|
105 |
+
count3 = 0
|
106 |
+
sum4 = 0
|
107 |
+
count4 = 0
|
108 |
+
|
109 |
+
for item1 in data1:
|
110 |
+
task_id = item1["task_id"] # 假设 task_id 是 item1 中的一个属性
|
111 |
+
value = item1["pass@1"] # 假设 value 是 item1 中的一个属性
|
112 |
+
|
113 |
+
# 在 data2 中找到与 task_id 相同的对象
|
114 |
+
item2 = next((item for item in data2 if item["task_id"] == task_id), None)
|
115 |
+
|
116 |
+
if item2 is not None:
|
117 |
+
#按照圈复杂度划分后的评估结果
|
118 |
+
if item2["CC_diff"] == 0:
|
119 |
+
index=item2["task_id"]
|
120 |
+
print(item2["CC_diff"],index,value)
|
121 |
+
sum0=sum0+value
|
122 |
+
count0=count0+1
|
123 |
+
if item2["CC_diff"] == 1:
|
124 |
+
index=item2["task_id"]
|
125 |
+
print(item2["CC_diff"], index, value)
|
126 |
+
sum1=sum1+value
|
127 |
+
count1=count1+1
|
128 |
+
if item2["CC_diff"] == 2:
|
129 |
+
index=item2["task_id"]
|
130 |
+
print(item2["CC_diff"], index, value)
|
131 |
+
sum2=sum2+value
|
132 |
+
count2=count2+1
|
133 |
+
if item2["CC_diff"] == 3 :
|
134 |
+
index=item2["task_id"]
|
135 |
+
print(item2["CC_diff"], index, value)
|
136 |
+
sum3=sum3+value
|
137 |
+
count3=count3+1
|
138 |
+
if item2["CC_diff"] == 4 :
|
139 |
+
index=item2["task_id"]
|
140 |
+
print(item2["CC_diff"], index, value)
|
141 |
+
sum4=sum4+value
|
142 |
+
count4=count4+1
|
143 |
+
|
144 |
+
|
145 |
+
|
146 |
+
mean0=round(sum0/count0*100,2)
|
147 |
+
|
148 |
+
mean1=round(sum1/count1*100,2)
|
149 |
+
mean2=round(sum2/count2*100,2)
|
150 |
+
mean3=round(sum3/count3*100,2)
|
151 |
+
mean4=round(sum4/count4*100,2)
|
152 |
+
print("count_result!!")
|
153 |
+
print(count0,count1,count2,count3,count4)
|
154 |
+
print(mean0,mean1,mean2,mean3,count4)
|
155 |
+
# with open("token_counts_EI.csv", mode='a', newline='', encoding='utf-8') as file:
|
156 |
+
# writer = csv.writer(file)
|
157 |
+
# writer.writerow([model_name,mean0,mean1,mean2,mean3,mean4])
|
158 |
+
|
159 |
+
# with open("line_counts_EI.csv", mode='a', newline='', encoding='utf-8') as file:
|
160 |
+
# writer = csv.writer(file)
|
161 |
+
# writer.writerow([model_name,mean0,mean1,mean2,mean3,mean4])
|
162 |
+
#
|
163 |
+
with open("CC_EI.csv", mode='a', newline='', encoding='utf-8') as file:
|
164 |
+
writer = csv.writer(file)
|
165 |
+
writer.writerow([model_name,mean0,mean1,mean2,mean3,mean4])
|
166 |
+
|
167 |
+
|
dividing_into_different_subsets_mbpp/5/EI/even.py
ADDED
@@ -0,0 +1,54 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import json
|
2 |
+
|
3 |
+
# 读取数据
|
4 |
+
with open("sub_mbpp.json", "r", encoding="utf-8") as f:
|
5 |
+
data = json.load(f)
|
6 |
+
|
7 |
+
# 定义划分区间数
|
8 |
+
num_intervals = 5
|
9 |
+
|
10 |
+
|
11 |
+
token_min = min(item['token'] for item in data)
|
12 |
+
token_max = max(item['token'] for item in data)
|
13 |
+
token_interval_size = (token_max - token_min) / num_intervals
|
14 |
+
|
15 |
+
cyclomatic_complexity_min = min(item['cc'] for item in data)
|
16 |
+
cyclomatic_complexity_max = max(item['cc'] for item in data)
|
17 |
+
cyclomatic_complexity_interval_size = (cyclomatic_complexity_max - cyclomatic_complexity_min) / num_intervals
|
18 |
+
count1=0
|
19 |
+
count2=0
|
20 |
+
count3=0
|
21 |
+
count4=0
|
22 |
+
count5=0
|
23 |
+
|
24 |
+
# 根据等距划分数据
|
25 |
+
for item in data:
|
26 |
+
# 计算 line 特征的区间
|
27 |
+
|
28 |
+
|
29 |
+
# 计算 token 特征的区间
|
30 |
+
token_diff = int((item['token'] - token_min) // token_interval_size)
|
31 |
+
item['token_diff'] = min(token_diff,num_intervals-1)
|
32 |
+
if item['token_diff'] == 0:
|
33 |
+
count1 = count1 + 1
|
34 |
+
if item['token_diff'] == 1:
|
35 |
+
count2 = count2 + 1
|
36 |
+
if item['token_diff'] == 2:
|
37 |
+
count3 = count3 + 1
|
38 |
+
if item['token_diff'] == 3:
|
39 |
+
count4 = count4 + 1
|
40 |
+
if item['token_diff'] == 4:
|
41 |
+
count5 = count5 + 1
|
42 |
+
|
43 |
+
|
44 |
+
# 计算 cyclomatic_complexity 特征的区间
|
45 |
+
CC_diff = int((item['cc'] - cyclomatic_complexity_min) // cyclomatic_complexity_interval_size)
|
46 |
+
item['CC_diff'] = min(CC_diff,num_intervals-1) # 确保区间索引在范围内
|
47 |
+
|
48 |
+
# 恢复原始顺序
|
49 |
+
data.sort(key=lambda x: x['id'])
|
50 |
+
print(count1,count2,count3,count4,count5)
|
51 |
+
|
52 |
+
# 将更新后的数据写回JSON文件
|
53 |
+
with open('EI.json', 'w', encoding='utf-8') as file:
|
54 |
+
json.dump(data, file, ensure_ascii=False, indent=4)
|
dividing_into_different_subsets_mbpp/5/EI/mbpp.json
ADDED
The diff for this file is too large to render.
See raw diff
|
|
dividing_into_different_subsets_mbpp/5/EI/mbpp_with_token+cc.json
ADDED
The diff for this file is too large to render.
See raw diff
|
|
dividing_into_different_subsets_mbpp/5/EI/sub_mbpp.json
ADDED
The diff for this file is too large to render.
See raw diff
|
|
dividing_into_different_subsets_mbpp/5/EI/token_counts_EI.csv
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Model,token_subset_1,token_subset_2,token_subset_3,token_subset_4,token_subset_5
|
2 |
+
CodeGemma-2b,49.09,37.09,28.0,50.0,0.0
|
3 |
+
CodeGemma-7b-it,54.98,50.05,37.0,50.0,0.0
|
4 |
+
CodeGemma-7b,60.22,57.79,38.0,70.0,0.0
|
5 |
+
DeepSeekCoder-1.3b-base,44.87,36.88,17.0,25.0,0.0
|
6 |
+
DeepSeekCoder-6.7b-base,62.91,55.28,50.0,75.0,50.0
|
7 |
+
DeepSeekCoder-6.7b-instruct,66.92,60.42,68.42,100.0,50.0
|
8 |
+
codeqwen2.5-1.5b,72.12,65.81,69.23,66.67,0.0
|
9 |
+
codeqwen2.5-7b,80.97,72.9,61.54,66.67,50.0
|
dividing_into_different_subsets_mbpp/5/QS/CC_QS.csv
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Model,CC_subset_1,CC_subset_2,CC_subset_3,CC_subset_4,CC_subset_5
|
2 |
+
CodeGemma-2b,49.4,50.6,48.6,34.2,33.6
|
3 |
+
CodeGemma-7b-it,57.2,60.0,55.6,41.0,46.4
|
4 |
+
CodeGemma-7b,66.0,66.2,58.4,49.4,51.0
|
5 |
+
DeepSeekCoder-1.3b-base,46.4,47.8,37.6,33.2,36.2
|
6 |
+
DeepSeekCoder-6.7b-base,64.0,67.0,59.0,51.0,56.0
|
7 |
+
DeepSeekCoder-6.7b-instruct,65.96,69.07,64.29,63.27,60.22
|
8 |
+
codeqwen2.5-1.5b,70.0,70.0,80.0,58.75,67.09
|
9 |
+
codeqwen2.5-7b,86.25,73.75,81.25,72.5,70.89
|
dividing_into_different_subsets_mbpp/5/QS/QS.json
ADDED
The diff for this file is too large to render.
See raw diff
|
|