C_C++

(C언어) 표절 검사 프로그램 Plagiarism check program

고니자니 2024. 1. 22. 14:24
반응형

하단에 파이썬으로 만든 표절검사 프로그램의 링크가 있으니 참고바랍니다.

 

여기서 만들 표절 검사 프로그램은 텍스트 문서를 비교하여 유사점을 식별 합니다. 다음은 Levenshtein 거리 알고리즘을 사용하여 두 텍스트 사이의 유사성을 측정하는 C언어의 간단한 예입니다.

#include <stdio.h>
#include <string.h>

int min(int a, int b, int c) {
    int min = a;
    if (b < min) min = b;
    if (c < min) min = c;
    return min;
}

int levenshtein_distance(const char* s1, const char* s2) {
    int len1 = strlen(s1);
    int len2 = strlen(s2);

    int matrix[len1 + 1][len2 + 1];  // 비주얼스튜디오에서는 이 부분에서 오류가 날 수 있습니다.

    for (int i = 0; i <= len1; ++i) {
        for (int j = 0; j <= len2; ++j) {
            if (i == 0) {
                matrix[i][j] = j;
            }
            else if (j == 0) {
                matrix[i][j] = i;
            }
            else {
                int cost = (s1[i - 1] != s2[j - 1]);
                matrix[i][j] = min(matrix[i - 1][j] + 1, matrix[i][j - 1] + 1, matrix[i - 1][j - 1] + cost);
            }
        }
    }

    return matrix[len1][len2];
}

double similarity_percentage(const char* s1, const char* s2) {
    int distance = levenshtein_distance(s1, s2);
    int maxLength = strlen(s1) > strlen(s2) ? strlen(s1) : strlen(s2);
    return 100 * (1 - (double)distance / maxLength);
}

int check_plagiarism(const char* text1, const char* text2, double threshold) {
    double similarity = similarity_percentage(text1, text2);
    if (similarity >= threshold) {
        return 1; // Plagiarism detected
    }
    else {
        return 0; // No plagiarism detected
    }
}

int main() {
    const char* document1 = "This is a sample text for testing plagiarism.";
    const char* document2 = "This is a sample text for testing.";

    int isPlagiarized = check_plagiarism(document1, document2, 70);

    if (isPlagiarized) {
        printf("Plagiarism detected! Similarity: %.2f%%\n", similarity_percentage(document1, document2));
    }
    else {
        printf("No plagiarism detected.\n");
    }

    return 0;
}

 

비주얼스튜디오에서는 오류가 날 수 있는 부분의 코드를 확인하십시오.

여기서는 Dev C++을 이용해서 컴파일하고 실행했습니다.

(C언어) 표절 검사 프로그램 Plagiarism check program

 

 

 

파이썬 코드:

https://coding-abc.kr/268

 

(파이썬) 표절 검사 프로그램 Plagiarism check program

여기서 만들 표절 검사 프로그램은 텍스트 문서를 비교하여 유사점을 식별 합니다. 다음은 Levenshtein 거리 알고리즘을 사용하여 두 텍스트 사이의 유사성을 측정하는 Python의 간단한 예입니다. def

coding-abc.kr

 

728x90
반응형