모사율 테스터 (사회복지 리포트)
개요
윤연정 사회복지 리포트 작성 가이드라인 — "신문/사이트 그대로 인용 금지, 토대로만" — 를 정량화한 모사율(plagiarism rate) 측정 도구. 어절 N-gram 핑거프린트 방식(CopyKiller 표준)을 한선씨와 bash 두 언어로 구현해 상호 검증한다.
무엇을 했는지
- 측정원리.md 작성 — 어절 N-gram 핑거프린트 6단계 알고리즘, N 의미(4=엄격/6=표준/8=관대), 정규화 강도 옵션, 결과 해석 기준
- 조정.json — N=6, 임계치=70%, 정규화강도=중, 참고문헌제외=true
- 측정기.한선 (정통 실행기) — JSON 라이브러리·디렉토리 순회·N-gram 매칭·결과 저장 모두 한선씨로.
crownyc run /tmp/측정기.toau한 줄로 8개 리포트 자동 측정 - 측정.sh (검증용 bash 실행기) — 외부 도구 비교용. bash와 한선씨 버전을 둘 다 보존(2026-05-25 원칙 확정)
- 출처 자료 6종 등록 — 권중돈/통계청/보건복지부/김영종/김기환/한국학교사회복지사협회
- 8개 리포트 측정 완료 — A모드 4종 + B+모드 4종
핵심 측정 원리
[1] 정규화 (구두점·따옴표·줄바꿈 → 공백)
[2] 어절 토큰화 (공백 단위)
[3] N-gram 생성 (N=6 어절 윈도우)
[4] 출처 N-gram 집합 구축
[5] 매칭: 일치 N-gram / 전체 = 모사율 %
[6] 위반 구간 표시 (최대 20개)
N=6 의미: 6어절(약 18~24자) 연속 일치를 "복사"로 본다. CopyKiller·Turnitin 표준.
측정 결과 (2026-05-25)
| 리포트 | bash | 한선씨 | 판정 |
|---|---|---|---|
| A모드 01 노인복지론 | 13% | 15% | ✅ 안전 |
| A모드 02 사회복지행정론 | 0% | 0% | ✅ 안전 |
| A모드 03 의료사회복지론 | 0% | 0% | ✅ 안전 |
| A모드 04 학교사회복지론 | 0% | 0% | ✅ 안전 |
| B+모드 01~04 | 0% | 0% | ✅ 안전 |
bash vs 한선씨: 7/8 완벽 일치, 1건 2%p 차이(한선씨가 참고문헌 표제부 제거를 더 깔끔히 함).
조정 방법
bash# 엄격 모드 (N=4, 50% 임계치)
N=4 임계치=50 /Users/ef/CrownyOS/crownyc/crownyc run /tmp/측정기.toau
# 단일 리포트
리포트=../리포트/01_노인복지론_과제.txt /Users/ef/CrownyOS/crownyc/crownyc run /tmp/측정기.toau
또는 조정.json 수정.
관련 파일
모사율_테스터/
├── 측정원리.md ← 어절 N-gram 핑거프린트 원리
├── 사용법.md ← 실행 방법
├── 조정.json ← N·임계치·정규화 옵션
├── 측정기.한선 ← 정통 실행기 (한선씨 단독)
├── 모사율_테스터.한선 ← 핵심엔진 (측정.sh가 사용)
├── 측정.sh ← 검증용 bash 실행기
├── 출처/ ← 6개 강의·통계·교재 출처
└── 결과/ ← 측정 결과 (bash/한선씨 각각)
위치: /Users/ef/CrownyDoc/projects/2026-05-25-윤연정-사회복지리포트4종/모사율_테스터/
잔여 이슈
- 출처 보강 필요 — 현재는 흔히 인용되는 정의·통계 텍스트만 등록. 실제 강의 PPT/노트, 교재 인용문, 신문기사 본문을 추가 등록하면 측정 정확도가 올라간다
- 한선씨 맵 크기 한계 — 자기-매칭 테스트에서 ~97% (729/753) 일치. 100%가 아닌 이유는 한선씨 VM의 맵 키 한계로 추정. false negative ~3%
- 의역 모사 탐지 미지원 — N-gram 매칭은 어순 변형/유의어 치환을 잡지 못함. 의미 유사도(임베딩)는 v2 과제
- 참고문헌 컷 방식 차이 — bash(sed 행 단위) vs 한선씨(문자 위치). 1번 리포트에서 2%p 차이 발생. 한선씨가 더 정확
원칙 확정 (2026-05-25)
- 도구는 한선씨 실행프로그램이 정통이다(
측정기.한선→crownyc run) - bash 래퍼는 삭제하지 않고 보존 — 상호 검증용으로 활용
- 한글 식별자·파일명은 그대로 두며, bash 한계 때문에 영문화하지 않는다 (그 경우 bash 자체를 빼라)