명세 · 검색 질의
검색 질의와 실행 옵션
기본 검색 계획
옵션이 없으면 활용형을 확장하고 사전에서 품사를 자동 분석한 뒤, 품사별 smart 경계를 적용합니다. 검색 질의는 NFC로 정규화합니다. 구를 이루는 atom 사이는 Unicode scalar 24개까지 허용합니다.
expand=inflection
pos=auto
boundary=smart
unicode-normalization=nfc
max-gap=24
자동 분석은 같은 표제어에서 가능한 품사를 합집합으로 보존합니다. 명시한 품사는 이 집합을 제한하며, 문자열 모양만 보고 동사나 형용사를 임의로 선택하지 않습니다.
형태 확장
| 값 | 검색 범위 | 예시 |
|---|---|---|
literal | 입력 문자열만 사용하며 형태 분석은 생략 | 걸어 → 걸어 |
inflection | 조사, 어미, 이형태와 불규칙 활용을 포함 | 걷다 → 걷고 · 걸어 · 걸었다 |
derivation | 활용과 생산적 접사에 따른 파생 표제어를 포함 | 검증 → 검증하다 · 검증했다 |
--literal은 --expand literal --pos literal의 단축 옵션입니다. 파생에는 -적, -하다, -되다, -시키다, -스럽다, -답다, -롭다, -화 규칙을 적용합니다. 파생 결과가 용언이면 해당 표제어에 활용 규칙도 적용합니다.
경계 정책
| 값 | 판정 | 용도 |
|---|---|---|
smart | 조사·어미 소비와 세부 품사 구성 요소를 국소 검증 | 정밀도 중심의 기본 검색 |
token | core 시작과 완성된 token 끝의 Unicode 경계를 요구 | 독립 token 검색 |
any | 좌우 경계 없이 형태 프로그램의 부분 span을 보존 | 재현율 중심 자동화 |
n:요리를 중국요리에서 찾을 때 smart는 명사 구성 요소인 요리를 허용하고, 구성 요소 경계를 가로지르는 국요는 거부합니다. any는 구조 경계를 요구하지 않습니다.
품사 체계
--pos auto는 core 형태 사전, enriched 용언 metadata, user lexicon, 생산적 접미 패턴과 full POS lexicon의 분석을 정해진 우선순위로 모읍니다. 다음 coarse POS 중 하나를 명시할 수도 있습니다.
noun (n:) pronoun (pro:) numeral (num:)
verb (v:) adjective (adj:) determiner (det:)
adverb (adv:) particle (j:) interjection (intj:)
literal (lit:)
동사와 형용사는 서로 다른 종결·연결·관형사형 어미 집합을 사용합니다. 조사는 앞말의 받침 조건에 맞는 이형태를 적용합니다. 사전에 없는 입력은 형태만으로 용언이라 추정하지 않으므로 필요한 경우 품사를 명시해야 합니다.
정규화, 구 거리와 대안
--unicode-normalization nfc는 검색 질의와 후보를 NFC로 비교합니다. none은 입력 byte 표현을 보존합니다. 검색 결과의 span은 항상 원문 offset을 가리킵니다.
구 검색은 각 atom을 독립적으로 찾은 뒤 원문 순서대로 결합합니다. --max-gap은 앞 atom의 token 끝과 다음 atom의 token 시작 사이에 허용할 Unicode scalar 수이며, 기본값은 24입니다. atom이 하나면 전역 --pos를 사용할 수 있습니다. 여러 atom에는 각각 품사 태그를 지정해야 합니다.
따옴표와 escape 밖의 |는 여러 atom 중 하나를 찾습니다. 연산자 앞뒤 공백은 선택 사항입니다. CLI에서는 셸이 pipe로 해석하지 않도록 질의 전체를 따옴표로 묶습니다. 각 대안은 하나의 atom이어야 하며 공백 구와 섞을 수 없습니다. Literal |는 \| 또는 "|"로 작성합니다. --max-gap은 disjunction에 적용되지 않습니다.
입력과 출력
파일 순회는 ignore 규칙을 따릅니다. --hidden, --no-ignore, --glob, --type으로 대상 파일을 조정하고, --encoding으로 UTF-8 이외의 입력을 지정합니다.
kfind --glob '*.md' --hidden 검증 .
kfind --encoding euc-kr 걷다 legacy.txt
kfind --json --sort path 걷다 src
kfind --explain-query --pos verb 걷다
기본 출력은 크기가 제한된 스트림으로 기록합니다. --sort path는 경로 순서를 일정하게 유지하기 위해 모든 파일 결과를 버퍼링합니다. --json은 UTF-8 원문 span과 생성 근거를 JSON Lines로 출력합니다. --explain-query는 말뭉치를 검색하지 않고 컴파일된 분석과 후보 프로그램을 설명합니다.