m6dd8m commited on
Commit
b718f01
Β·
verified Β·
1 Parent(s): d787d0f

switch to v5 + han-only drop

Browse files
__pycache__/app.cpython-311.pyc CHANGED
Binary files a/__pycache__/app.cpython-311.pyc and b/__pycache__/app.cpython-311.pyc differ
 
__pycache__/span_postproc.cpython-311.pyc CHANGED
Binary files a/__pycache__/span_postproc.cpython-311.pyc and b/__pycache__/span_postproc.cpython-311.pyc differ
 
app.py CHANGED
@@ -15,9 +15,9 @@ from pydantic import BaseModel
15
  from huggingface_hub import list_repo_files
16
  from optimum.onnxruntime import ORTModelForTokenClassification
17
  from transformers import AutoTokenizer, pipeline
18
- from span_postproc import trim_span_offsets, is_stopword, nfc
19
 
20
- MODEL_REPO = "m6dd8m/wl-ko-ner-v2" # ONNX κ°€μ€‘μΉ˜ (operator 곡개)
21
  TOK_REPO = "monologg/koelectra-base-v3-discriminator" # ν† ν¬λ‚˜μ΄μ € (νŒŒμΈνŠœλ‹ν•΄λ„ 동일)
22
 
23
  # 1) repo μ•ˆμ˜ .onnx μžλ™ 탐지 β€” fp32 μš°μ„ .
@@ -46,6 +46,8 @@ def _spans(entities, text):
46
  s, en = int(e["start"]), int(e["end"])
47
  if typ in _TRIM:
48
  s, en, surf = trim_span_offsets(text, s, en) # CHEAP-1 ν•œμžκ΄„ν˜Έ 트리밍 (surface+offset)
 
 
49
  else:
50
  surf = e["word"]
51
  surf = (surf or "").strip()
 
15
  from huggingface_hub import list_repo_files
16
  from optimum.onnxruntime import ORTModelForTokenClassification
17
  from transformers import AutoTokenizer, pipeline
18
+ from span_postproc import trim_span_offsets, is_stopword, nfc, has_hangul
19
 
20
+ MODEL_REPO = "m6dd8m/wl-ko-ner-v5" # ONNX κ°€μ€‘μΉ˜ (v5 멀티봇 + Q3 ν›„μ²˜λ¦¬)
21
  TOK_REPO = "monologg/koelectra-base-v3-discriminator" # ν† ν¬λ‚˜μ΄μ € (νŒŒμΈνŠœλ‹ν•΄λ„ 동일)
22
 
23
  # 1) repo μ•ˆμ˜ .onnx μžλ™ 탐지 β€” fp32 μš°μ„ .
 
46
  s, en = int(e["start"]), int(e["end"])
47
  if typ in _TRIM:
48
  s, en, surf = trim_span_offsets(text, s, en) # CHEAP-1 ν•œμžκ΄„ν˜Έ 트리밍 (surface+offset)
49
+ if not has_hangul(surf): # ν•œκΈ€ 0 = ν•œμž 주석 μž”μž¬(pipeline 뢄리) β†’ λ“œλ‘­
50
+ continue
51
  else:
52
  surf = e["word"]
53
  surf = (surf or "").strip()
span_postproc.py CHANGED
@@ -31,6 +31,11 @@ def _is_hangul(c):
31
  return "κ°€" <= c <= "힣"
32
 
33
 
 
 
 
 
 
34
  def _is_cjk(c):
35
  """CJK ν†΅ν•©ν•œμž(+ν™•μž₯ A/ν˜Έν™˜). ν•œκΈ€ prefix λ’€ ν•œμž 주석 νŒμ •μš©."""
36
  o = ord(c)
@@ -102,7 +107,12 @@ def postprocess(preds):
102
  seen = set()
103
  for p in preds:
104
  surf, typ = p[0], p[1]
105
- s = trim_affix(surf) if typ in _TRIM_TYPES else (surf or "").strip()
 
 
 
 
 
106
  if not s:
107
  continue
108
  if is_stopword(s, typ):
@@ -157,8 +167,8 @@ if __name__ == "__main__":
157
 
158
  # 톡합: μ„¬μ„œ( κ°€ νŠΈλ¦¬λ°λ˜μ–΄ gold 와 λ§€μΉ­λ˜λŠ”μ§€ + offset 트리밍
159
  print("\n[post] 톡합 ν›„μ²˜λ¦¬:")
160
- pp = postprocess([("μ„¬μ„œ(", "LC"), ("ν•˜λ‚˜", "PS"), ("κ·Έλ‚ ", "DT"), ("에단 ν‚΄", "PS")])
161
- exp_pp = [("μ„¬μ„œ", "LC"), ("에단 ν‚΄", "PS")]
162
  flag = "OK" if pp == exp_pp else "XX"
163
  ok += pp == exp_pp
164
  print(f" [{flag}] postprocess(...) = {pp} (κΈ°λŒ€ {exp_pp})")
 
31
  return "κ°€" <= c <= "힣"
32
 
33
 
34
+ def has_hangul(s):
35
+ """λ¬Έμžμ—΄μ— ν•œκΈ€ 음절이 ν•˜λ‚˜λΌλ„ μžˆλ‚˜ β€” ν•œμž-only/κ΄„ν˜Έ μž”μž¬(예: pipeline 이 μͺΌκ°  '陝θ₯Ώ') νŒλ³„μš©."""
36
+ return any(_is_hangul(c) for c in (s or ""))
37
+
38
+
39
  def _is_cjk(c):
40
  """CJK ν†΅ν•©ν•œμž(+ν™•μž₯ A/ν˜Έν™˜). ν•œκΈ€ prefix λ’€ ν•œμž 주석 νŒμ •μš©."""
41
  o = ord(c)
 
107
  seen = set()
108
  for p in preds:
109
  surf, typ = p[0], p[1]
110
+ if typ in _TRIM_TYPES:
111
+ s = trim_affix(surf)
112
+ if not has_hangul(s): # 트리밍 ν›„ ν•œκΈ€ 0 = ν•œμž/κ΄„ν˜Έ μž”μž¬(pipeline 이 μͺΌκ°  '陝θ₯Ώ' λ“±) β†’ λ“œλ‘­
113
+ continue
114
+ else:
115
+ s = (surf or "").strip()
116
  if not s:
117
  continue
118
  if is_stopword(s, typ):
 
167
 
168
  # 톡합: μ„¬μ„œ( κ°€ νŠΈλ¦¬λ°λ˜μ–΄ gold 와 λ§€μΉ­λ˜λŠ”μ§€ + offset 트리밍
169
  print("\n[post] 톡합 ν›„μ²˜λ¦¬:")
170
+ pp = postprocess([("μ„¬μ„œ(", "LC"), ("陝θ₯Ώ", "LC"), ("ν•˜λ‚˜", "PS"), ("κ·Έλ‚ ", "DT"), ("에단 ν‚΄", "PS")])
171
+ exp_pp = [("μ„¬μ„œ", "LC"), ("에단 ν‚΄", "PS")] # 陝θ₯Ώ(ν•œμžonly)Β·ν•˜λ‚˜(PS)Β·κ·Έλ‚ (DT) λ“œλ‘­
172
  flag = "OK" if pp == exp_pp else "XX"
173
  ok += pp == exp_pp
174
  print(f" [{flag}] postprocess(...) = {pp} (κΈ°λŒ€ {exp_pp})")