콘텐츠로 이동

Zio.Text

저장소를 보지 않는 묶음입니다. 받은 글자만 가지고 계산합니다 — 데이터베이스 쪽(Zio.node · Zio.entity · Zio.code · Zio.mongo)이 “어디를 볼 것인가” 를 답한다면, 이쪽은 “이 글자가 저 글자와 같은 말인가” 를 답합니다.

사람이 적은 표기는 늘 흔들립니다 — 한화비젼, GS 더 프레시, 인사채용. 이것을 기초코드의 정식 표기에 맞추는 일이 어느 산업에서나 똑같이 생기고, 그때마다 스킬이 자모 분해와 닮음 계산을 다시 짜게 됩니다. 그래서 SDK 가 답니다.

저장소를 보지 않고 받은 글자만 가지고 계산합니다. Zio.node·Zio.entity·Zio.code·Zio.mongo 는 “어디를 볼 것인가” 를 답하는 자리라, 계산 도우미는 주제 이름 아래 묶습니다.

Method Description
Zio.text.similar(a, b) 두 글자가 얼마나 닮았는지 0.0 ~ 1.0 으로 돌려줍니다. 대소문자·공백·기호를 지우고, 한글은 자모로 펴서 견줍니다.
Zio.text.suggest(value, pool, limit=3, threshold=0.55) 닮은 이름을 골라 줍니다. pool 이 목록이면 그 값이 그대로 후보가 되고, dict 면 {표기: 내놓을 이름}별칭을 재료로 쓰되 정식명만 내놓을 때 이 모양을 씁니다.
Zio.text.similar("하나비전", "한화비전") # 0.842
Zio.text.similar("엠코", "앰코") # 0.75
Zio.text.suggest("하나비전", ["한화비전", "하나시스", "쿠팡"])
# → ['한화비전', '하나시스']
# 별칭을 재료로, 정식명을 후보로
Zio.text.suggest("인사채용", {"채용": "경영관리", "인력": "경영관리",
"경영관리": "경영관리"})
# → ['경영관리']

두 가지를 봅니다. 잡는 것이 서로 다릅니다

섹션 제목: “두 가지를 봅니다. 잡는 것이 서로 다릅니다”
규칙 무엇을 잡나
닮음 한화비젼 → 한화비전 오타·표기흔들림. 자모로 펴서 잽니다 — 한화비젼한화비전 은 글자로는 0.75 지만 자모로는 0.9 입니다.
포함 채용 ⊂ 인사채용 줄임말·합성어. 한쪽이 다른 쪽 안에 통째로 들어 있으면 문턱을 안 봅니다.

포함이 먼저입니다. 글자가 통째로 들어 있는 것이 자모 몇 개가 겹치는 것보다 확실한 근거입니다. 점수를 매겨 섞지 않습니다 — 그 가중치를 지금 있는 표에 맞춰 고르게 되고, 다른 표에서 깨집니다.

되묻는 것 자체는 비용이 아닙니다. 후보가 없으면 사람이 직접 적어야 하고 거기서 새 오타가 생깁니다(한화비젼 을 고치려다 한화비젼(주)). 엉뚱한 것이 하나 섞여도 안 누르면 그만입니다. 반대로 이것은 뜻을 판단하지 않습니다 — 글자에 단서가 없으면 (출고, 정보통신공사) 빈손입니다. 그때부터는 사람 몫입니다.