Humanize Chinese AI Text v3.0
중국어 AI 생성 텍스트를 감지하고 재작성하는 완전한 도구 체인입니다. 독립 실행형(통합 CLI 또는 개별 스크립트)으로 사용하거나 LLM 프롬프트 가이드로 활용할 수 있습니다.
v3.0 주요 개선점: HC3 정확도 51→73%(+22%p); 문장 길이 CV Cohen's d=1.22의 최강 통계 특징; 40개 패러프레이즈 템플릿 + 122개 학술 대체어; 통합 CLI + --quick 18배 속도.
CLI 도구
통합 CLI (권장)
./humanize detect text.txt -v # 감지 + 상세 정보
./humanize rewrite text.txt -o output.txt --quick # 빠른 재작성 (18x 속도)
./humanize academic paper.txt -o output.txt --compare # 학술 표절 감소 + 이중 점수 비교
./humanize style text.txt --style xiaohongshu # 스타일 변환
./humanize compare text.txt -a # 전후 비교
개별 스크립트 방식 (동일 기능)
모든 스크립트는 scripts/ 디렉토리에 있으며, 순수 Python으로 작성되어 의존성이 없습니다.
# AI 패턴 감지 (20+ 규칙 차원 + 8개 통계 특징, 0-100점)
python scripts/detect_cn.py text.txt
python scripts/detect_cn.py text.txt -v # 상세 + 가장 의심스러운 문장
python scripts/detect_cn.py text.txt -s # 점수만 출력
python scripts/detect_cn.py text.txt -j # JSON 출력
# 재작성 (세 가지 수준: conservative/moderate/full)
python scripts/humanize_cn.py text.txt -o clean.txt
python scripts/humanize_cn.py text.txt --scene social -a # 소셜 + 공격적 모드
python scripts/humanize_cn.py text.txt --quick # 18x 속도, 단순 대체
python scripts/humanize_cn.py text.txt --cilin # CiLin 동의어 확장 활성화
# 스타일 변환 (먼저 자동 humanize 후 스타일 적용)
python scripts/style_cn.py text.txt --style zhihu -o out.txt
# 전후 비교
python scripts/compare_cn.py text.txt --scene tech -a
# 학술 논문 AIGC 표절 감소 (11개 차원 + 확산도 + 이중 점수)
python scripts/academic_cn.py paper.txt -o clean.txt --compare
python scripts/academic_cn.py paper.txt -o clean.txt -a --compare # 공격적 모드
python scripts/academic_cn.py paper.txt -o clean.txt --quick # 빠른 모드
점수 기준
| 점수 | 등급 | 의미 |
|---|---|---|
| 0-24 | 낮음 | 기본적으로 사람이 쓴 것처럼 보임 |
| 25-49 | 중간 | 일부 AI 흔적 있음 |
| 50-74 | 높음 | AI 생성 가능성 높음 |
| 75-100 | 매우 높음 | 거의 확실히 AI 생성 |
매개변수 빠른 참조
| 매개변수 | 설명 |
|---|---|
-v | 상세 모드, 의심스러운 문장 표시 |
-s | 점수만 출력 |
-j | JSON 출력 |
-o | 출력 파일 |
-a | 공격적 모드 |
--seed N | 고정 랜덤 시드 |
--scene | general / social / tech / formal / chat |
--style | casual / zhihu / xiaohongshu / wechat / academic / literary / weibo |
--compare | 전후 비교 (학술 이중 점수) |
--quick | 빠른 모드 (통계 최적화 생략, 18x 속도) |
--cilin | CiLin 동의어 확장 활성화 (humanize, 38873 단어) |
--no-humanize | style 변환 전에 AI 단어 제거하지 않음 |
워크플로우
# 1. 감지
./humanize detect document.txt -v
# 2. 재작성 + 비교
./humanize compare document.txt -a -o clean.txt
# 3. 검증
./humanize detect clean.txt -s
# 4. 선택 사항: 스타일 변환
./humanize style clean.txt --style zhihu -o final.txt
HC3-Chinese 벤치마크
v3.0의 모든 임계값은 HC3-Chinese의 300+300 인간/AI 샘플에 대한 Cohen's d 보정을 기반으로 합니다.
- 문장 길이 변동 계수 CV: d = 1.22 (가장 강력한 단일 신호)
- 짧은 문장 비율 (< 10자): d = 1.21
- 퍼플렉서티: d = 0.47
- GLTR top-10 bucket: d = 0.44
- DivEye 왜도/첨도: d = 0.41 / 0.29
- 쉼표 밀도: d = -0.47
100개 샘플 회귀 테스트: 73% 올바른 분리율 / 9.9점 차이 / 평균 4.2점 감소.
LLM 직접 사용 가이드
사용자가 "AI 느낌 제거", "AIGC 감소", "텍스트 인간화", "인간다운 문장으로 변경"을 요청할 때, CLI 도구를 실행할 수 없는 경우 다음 절차를 수동으로 수행하십시오.
1단계: AI 작성 패턴 감지
텍스트에서 다음 패턴을 심각도별로 스캔합니다.
🔴 고위험 패턴 (한눈에 AI임을 알 수 있음)
세 단계 패턴:
- 먼저... 다음으로... 마지막으로
- 한편으로... 다른 한편으로
- 첫째... 둘째... 셋째
기계적 연결어: 주목할 점은, 종합하면, 쉽게 알 수 있다, 요컨대, 이와 동시에, 이로부터 알 수 있듯이, 뿐만 아니라, 다시 말해, 더 중요한 것은, 부인할 수 없는, 명백한, 말할 것도 없이, 궁극적으로
공허하고 거창한 단어: 역량 강화, 완결성, 디지털 전환, 협업 시너지, 비용 절감 효율화, 심층 융합, 전방위, 다차원, 체계적, 고품질 발전, 새로운 질적 생산력
🟠 중간 위험 패턴
AI 고빈도 단어: 도움, 부각, 드러내다, 근본 논리, 그립, 도달, 침전, 회고, 반복, 파괴, 전복
채우기용 빈말: 특히 언급할 가치가 있는 것은, 주지하다시피, 의심의 여지 없이, 구체적으로 말하면, 간단히 말해
템플릿 문장:
- ...의 지속적인 발전과 함께
- 오늘날 ... 시대에
- ...의 배경 하에서
- ...의 중요한 구성 요소로서
- 이것은 ...일 뿐만 아니라 ...이기도 하다
균형 잡힌 논술 공식: 비록 ...이지만 ... 동시에, ...도 있고 ...도 있으며 ...도 있다
🟡 낮은 위험 패턴
- 망설임 표현 과다 ("어느 정도", "일정 부분"이 5회 이상 등장)
- 나열 중독 (자주 ①②③④⑤ 사용)
- 구두점 남용 (많은 세미콜론, 대시)
- 수사법 남발 (과도한 대구와 평행 구조)
⚪ 스타일 신호
- 단락 길이가 매우 일관됨
- 문장 길이가 단조로움
- 감정 표현이 평범함
- 시작 방식이 반복됨
- 정보 엔트로피가 낮음 (단어 예측 가능)
2단계: 재작성 전략
다음 순서대로 처리합니다.
1. 세 단계 패턴 제거 "먼저... 다음으로... 마지막으로"를 해체하고 자연스러운 전환으로 대체합니다. 모든 논점에 번호를 매길 필요는 없습니다.
2. AI 공식 표현 대체
- 종합하면 → 요컨대 / 결국 / (그냥 삭제)
- 주목할 점은 → (그냥 삭제, 뒤에 오는 말로 충분히 설명 가능)
- 역량 강화 → 도움 / 지원 / 향상
- 디지털 전환 → 정보화 개조 / 기술 업그레이드
- 쉽게 알 수 있다 → 볼 수 있다 / (삭제)
- 도움 → 돕다 / 추진하다
3. 문장 구조 재구성
- 너무 짧은 문장은 통합 ("그는 피곤했다. 그는 쉬기로 했다." → "그는 피곤해서 그냥 좀 쉬기로 했다.")
- 너무 긴 문장은 분할 ("하지만", "그러나", "동시에" 같은 전환점에서 분리)
- 균일한 리듬 깨기 (긴 문장과 짧은 문장을 교차하여 사용)
4. 반복 단어 줄이기 같은 단어가 3회 이상 나타나면 동의어로 바꿉니다. 예를 들어 "진행하다"는 "하다", "수행하다", "전개하다", "착수하다"로 바꿀 수 있습니다.
5. 인간미 주입
- 상황이 허락한다면 구어체 표현을 한두 문장 추가
- 추상적인 개괄 대신 구체적인 예시 사용
- 가끔 반문이나 감탄사 추가
- 모든 단락을 총-분-총 구조로 만들지 않음
6. 단락 리듬 각 단락의 길이가 거의 동일한 패턴을 깨뜨립니다. 어떤 단락은 2문장, 어떤 단락은 5문장으로 마치 사람이 쓴 것처럼 자연스러운 길이 변화를 줍니다.
3단계: 학술 논문 특별 처리
텍스트가 학술 논문인 경우 재작성 규칙이 다릅니다. 구어체로 만들 수 없으며 학술적 엄격함을 유지해야 합니다.
학술 전용 감지 차원:
- AI 학술 어휘 ("본 논문은", "중대한 의의가 있다", "심층 분석을 수행했다")
- 과도한 수동태 사용 ("널리 응용된다", "간주된다")
- 단락 구조의 과도한 정형화 (각 단락이 총-분-총)
- 연결어 밀도 이상
- 동의어 표현 부족 ("연구"가 8회 등장)
- 인용 통합 수준 낮음 (각 인용이 "XX(2020)는 ...을 지적했다" 형태)
- 데이터 논술의 템플릿화 ("표에서 알 수 있듯이")
- 과도한 나열 (①②③④ 빈번)
- 결론의 지나친 완벽함 (한계만 언급하지 않고 장점만 강조)
- 지나치게 확정적인 어조 ("필연적", "의심의 여지 없이")
학술 재작성 전략:
-
AI 학술 공식 대체 (학술성 유지):
- 본 논문은 → 본 논문은 시도한다 / 본 연구는 주목한다
- 중대한 의의가 있다 → 주목할 만하다 / 일정한 참고 가치가 있다
- 연구에 따르면 → 선행 연구에 따르면 / 기존 문헌에 따르면 / 필자가 관찰한 바에 따르면
- 심층 분석을 수행했다 → 예비적 논의를 했다 / 토론을 전개했다
- 현저한 성과를 거두었다 → 일정한 효과를 보았다 / 초기 성과를 거두었다
-
수동태 줄이기:
- 널리 응용된다 → 많이 활용된다 / 여러 분야에서 응용된다
- 간주된다 → 일반적으로 여겨진다 / 보통 간주된다
-
학술적 헤징(Hedging) 주입: 지나치게 확정적인 판단 앞에 "아마도", "일정 부분", "현재로서는", "초기 단계에서"를 추가
-
저자 주체성 강화:
- 연구에 따르면 → 필자는 생각한다 / 본 연구는 발견한다
- 간주될 수 있다 → 필자는 ...으로 간주하는 경향이 있다
-
한계점 보완: 결론 부분에 한계가 언급되지 않았다면 "물론, 본 연구에도 일정한 한계가 있다..."를 한 문장 추가
-
구조적 균일성 파괴: 단락 길이를 조정하여 모든 단락이 동일하지 않도록 합니다. 너무 짧은 단락은 통합하고 너무 긴 단락은 분할합니다.
4단계: 검증
재작성 완료 후 CLI 도구로 효과를 검증합니다.
./humanize detect output.txt -s
목표 (v3.0 강화 감지기 기반):
- 일반 텍스트: 50점 미만 (MEDIUM 구간)
- 학술 논문: 40점 미만 (학술 전용), 일반 점수 35점 미만
- 실제 ChatGPT 출력 기준선은 일반적으로 5-25점이며, 재작성 후 3-10점 감소하면 성공
- 정형화된 AI 샘플 텍스트 (논문 템플릿/팔고)는 50+점 감소 가능
참고: v3.0 detect_cn에 문장 길이 CV + 짧은 문장 비율 + 쉼표 밀도의 세 가지 강력한 지표가 추가되어, 동일한 텍스트라도 점수가 v2.x보다 약간 높을 수 있습니다 (더 정확). 이는 정상적인 현상입니다.
설정 설명
모든 감지 패턴과 대체 규칙은 scripts/patterns_cn.json에 있으며 사용자 정의가 가능합니다.
- 새로운 AI 어휘 추가
- 가중치 조정
- 대체 규칙 추가
- 정규 표현식 매칭 수정
외부 설정 필드
critical_patterns — 높은 가중치 감지 (세 단계 패턴, 연결어, 공허한 단어)
high_signal_patterns — 중간 가중치 감지 (AI 고빈도 단어, 템플릿 문장)
replacements — 대체 어휘 사전 (정규식 + 일반 텍스트)
academic_patterns — 학술 전용 감지 및 대체
scoring — 가중치 및 임계값 설정