  The ubiquitous adoption of Large Language Generation Models (LLMs) in
programming has underscored the importance of differentiating between
human-written code and code generated by intelligent models. This paper
specifically aims to distinguish code generated by ChatGPT from that authored
by humans. Our investigation reveals disparities in programming style,
technical level, and readability between these two sources. Consequently, we
develop a discriminative feature set for differentiation and evaluate its
efficacy through ablation experiments. Additionally, we devise a dataset
cleansing technique, which employs temporal and spatial segmentation, to
mitigate the dearth of datasets and to secure high-caliber, uncontaminated
datasets. To further enrich data resources, we employ "code transformation,"
"feature transformation," and "feature customization" techniques, generating an
extensive dataset comprising 10,000 lines of ChatGPT-generated code. The
salient contributions of our research include: proposing a discriminative
feature set yielding high accuracy in differentiating ChatGPT-generated code
from human-authored code in binary classification tasks; devising methods for
generating extensive ChatGPT-generated codes; and introducing a dataset
cleansing strategy that extracts immaculate, high-grade code datasets from
open-source repositories, thus achieving exceptional accuracy in code
authorship attribution tasks.
