summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rwxr-xr-xclassification/tools/analyze_results.py48
-rw-r--r--results/classifier/118/analysis.csv23
-rw-r--r--results/classifier/deepseek-2-tmp/analysis.csv7
-rw-r--r--results/classifier/deepseek-2-tmp/categories.csv19
4 files changed, 97 insertions, 0 deletions
diff --git a/classification/tools/analyze_results.py b/classification/tools/analyze_results.py
new file mode 100755
index 00000000..663c1f55
--- /dev/null
+++ b/classification/tools/analyze_results.py
@@ -0,0 +1,48 @@
+from argparse import ArgumentParser
+from os import path, listdir
+
+parser = ArgumentParser()
+
+parser.add_argument('-b', '--bugs', required = True)
+parser.add_argument('-d', '--search_directory', required = True)
+
+args = parser.parse_args()
+
+def list_files_recursive(directory, basename = False):
+    result = []
+    for entry in listdir(directory):
+        full_path = path.join(directory, entry)
+        if path.isdir(full_path):
+            result = result + list_files_recursive(full_path, basename)
+        else:
+            if basename:
+                result.append(path.basename(full_path))
+            else:
+                result.append(full_path)
+    return result
+
+def output_csv(dictionary, full_path):
+    with open(path.join(full_path, 'analysis.csv'), "w") as file:
+        file.write("category, count\n")
+        for key, value in dictionary.items():
+            file.write(f"{key}, {value}\n")
+
+def main():
+    result = {}
+    mistranslation_bugs = list_files_recursive(args.bugs, True)
+    bugs = list_files_recursive(args.search_directory, False)
+
+    for mistranslation_bug in mistranslation_bugs:
+        for bug in bugs:
+            if mistranslation_bug == path.basename(bug):
+                category = path.basename(path.dirname(bug))
+                if category in result:
+                    result[category] += 1
+                else:
+                    result[category] = 1
+                continue
+
+    output_csv(result, args.search_directory)
+
+if __name__ == "__main__":
+    main()
diff --git a/results/classifier/118/analysis.csv b/results/classifier/118/analysis.csv
new file mode 100644
index 00000000..a0afa543
--- /dev/null
+++ b/results/classifier/118/analysis.csv
@@ -0,0 +1,23 @@
+category, count
+none, 8
+review, 16
+semantic-x86, 6
+all, 6
+register, 2
+architecture-x86, 4
+architecture-ppc, 3
+graphic, 1
+performance, 1
+debug, 2
+kernel, 1
+assembly-x86, 2
+mistranslation, 1
+TCG, 1
+unknown, 1
+architecture-i386, 1
+user-level, 1
+device, 1
+x86, 1
+architecture, 1
+architecture-risc-v, 1
+risc-v, 1
diff --git a/results/classifier/deepseek-2-tmp/analysis.csv b/results/classifier/deepseek-2-tmp/analysis.csv
new file mode 100644
index 00000000..d3a2e693
--- /dev/null
+++ b/results/classifier/deepseek-2-tmp/analysis.csv
@@ -0,0 +1,7 @@
+category, count
+mistranslation, 19
+manual-review, 2
+assembly, 1
+KVM, 1
+hypervisor, 1
+other, 1
diff --git a/results/classifier/deepseek-2-tmp/categories.csv b/results/classifier/deepseek-2-tmp/categories.csv
new file mode 100644
index 00000000..5d4346a2
--- /dev/null
+++ b/results/classifier/deepseek-2-tmp/categories.csv
@@ -0,0 +1,19 @@
+category, count
+vnc, 47
+performance, 85
+network, 319
+graphic, 321
+device, 698
+permissions, 33
+other, 569
+manual-review, 560
+boot, 123
+kernel, 37
+hypervisor, 413
+KVM, 107
+files, 202
+debug, 67
+assembly, 35
+mistranslation, 415
+peripherals, 204
+socket, 31