blueradiance commited on
Commit
4cabd11
·
verified ·
1 Parent(s): 6f9c264

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -15
app.py CHANGED
@@ -49,11 +49,12 @@ def apply_name_tags(text: str, names: list, start_index: int = 100) -> tuple[str
49
 
50
 
51
 
52
- # 📦 PART 2: 호칭/조사 확장기 + 태그 매핑 보정기
 
53
 
54
  import re
55
 
56
- # 호칭 + 조사 리스트
57
  COMMON_SUFFIXES = [
58
  # 📁 가정/관계 기반
59
  '어머니', '아버지', '엄마', '아빠', '형', '누나', '언니', '오빠', '동생',
@@ -74,34 +75,34 @@ COMMON_SUFFIXES = [
74
  '의사', '간호사', '간병인', '기사님', '어르신', '님', '씨'
75
  ]
76
 
 
77
  COMMON_JOSA = [
78
- # 🧱 기본 주격/목적격/보격 조사
79
  '이', '가', '을', '를', '은', '는', '의', '도',
80
 
81
- # 📍 처소/이유/방향
82
- '에', '에서', '에게', '으로', '로', '부터', '까지', '한테',
83
 
84
- # 🌀 강조/비교/대조
85
- '보다', '마저', '조차', '까지도', '조차도', '밖에', '만큼', '만큼은', '이라도', '이든지', '이나마',
 
86
 
87
- # 🎯 연결/강조/기타
88
- '이며', '이나', '이거나', '이라서', '이니까', '이라면', '이지만', '처럼', '대로', '하고', '그리고',
89
 
90
- # 🧩 보조표현형 어미
91
  '이기도', '이었던', '이었지만', '이어서', '이었다면', '인', '일', '임', '이란', '이라는',
92
 
93
- # 📦 특수형 조사 (복합 + 종결형)
94
  '같은', '같아서', '까지는', '뿐만 아니라', '와는', '와도', '하고도', '으로서', '으로써'
95
  ]
96
 
97
-
98
  def expand_variation_patterns(text: str, mapping: dict) -> str:
99
  """
100
  👓 태그된 텍스트에서 성+이름+호칭+조사 형태를 다시 태깅
101
- 예: '고은비학생이' → 'N100이'
102
  """
103
  for tag, base in mapping.items():
104
- prefix = r'[\s\(\["'‘“]*' # 시작 구두점/공백
105
  suffix = f"(?:{'|'.join(COMMON_SUFFIXES)})?"
106
  josa = f"(?:{'|'.join(COMMON_JOSA)})?"
107
  pattern = re.compile(rf'{prefix}{re.escape(base)}{suffix}{josa}', re.IGNORECASE)
@@ -111,7 +112,6 @@ def expand_variation_patterns(text: str, mapping: dict) -> str:
111
  def boost_mapping_from_context(text: str, mapping: dict) -> dict:
112
  """
113
  📌 태깅된 텍스트에서 각 태그의 실제 확장된 표현 감지해 mapping 보정
114
- 예: '고은비학생이' → 'N100', 매핑: N100 → '고은비학생이'
115
  """
116
  updated = {}
117
  for tag, base in mapping.items():
 
49
 
50
 
51
 
52
+
53
+ # 📦 PART 2 (Extended & Fixed): 호칭/조사 확장기 + 태그 매핑 보정기 - 특수문자 오류 수정판
54
 
55
  import re
56
 
57
+ # 확장된 호칭 리스트
58
  COMMON_SUFFIXES = [
59
  # 📁 가정/관계 기반
60
  '어머니', '아버지', '엄마', '아빠', '형', '누나', '언니', '오빠', '동생',
 
75
  '의사', '간호사', '간병인', '기사님', '어르신', '님', '씨'
76
  ]
77
 
78
+ # ✅ 실전급 조사 리스트
79
  COMMON_JOSA = [
80
+ # 기본 조사
81
  '이', '가', '을', '를', '은', '는', '의', '도',
82
 
83
+ # 처소/방향/대상
84
+ '에', '에서', '에게', '께서', '으로', '로', '부터', '까지', '한테',
85
 
86
+ # 강조/대조/비교
87
+ '보다', '보다도', '마저', '조차', '조차도', '까지도', '밖에', '만큼', '만큼은',
88
+ '이라도', '이든지', '이나마', '이건', '이란', '이라서', '이지만',
89
 
90
+ # 연결형 조사
91
+ '이며', '이나', '이거나', '이니까', '이라면', '처럼', '대로', '하고', '그리고', '', '',
92
 
93
+ # 보조/종결형 어미
94
  '이기도', '이었던', '이었지만', '이어서', '이었다면', '인', '일', '임', '이란', '이라는',
95
 
96
+ # 특수형 조사/조합형
97
  '같은', '같아서', '까지는', '뿐만 아니라', '와는', '와도', '하고도', '으로서', '으로써'
98
  ]
99
 
 
100
  def expand_variation_patterns(text: str, mapping: dict) -> str:
101
  """
102
  👓 태그된 텍스트에서 성+이름+호칭+조사 형태를 다시 태깅
 
103
  """
104
  for tag, base in mapping.items():
105
+ prefix = r'[\s\(\["\']*' # 유니코드 특수문자 제거한 정식 표현
106
  suffix = f"(?:{'|'.join(COMMON_SUFFIXES)})?"
107
  josa = f"(?:{'|'.join(COMMON_JOSA)})?"
108
  pattern = re.compile(rf'{prefix}{re.escape(base)}{suffix}{josa}', re.IGNORECASE)
 
112
  def boost_mapping_from_context(text: str, mapping: dict) -> dict:
113
  """
114
  📌 태깅된 텍스트에서 각 태그의 실제 확장된 표현 감지해 mapping 보정
 
115
  """
116
  updated = {}
117
  for tag, base in mapping.items():