Types.h
Kiwi C++ API에 쓰이는 주요 타입들을 모아놓은 헤더 파일
- Author
bab2min (bab2min@gmail.com)
- Version
0.20.0
- Date
2024-07-01
Defines
-
KIWI_DEFINE_ENUM_FLAG_OPERATORS(Type)
Functions
-
KIWI_DEFINE_ENUM_FLAG_OPERATORS(kiwi::BuildOption)
-
namespace kiwi
Typedefs
-
typedef char16_t kchar_t
-
template<typename _Ty>
using Vector = std::vector<_Ty> std::vector의 내부용 타입. mimalloc 옵션에 따라 mi_stl_allocator로부터 메모리를 할당받는다.
Note
Vector는 std::vector와 동일한 역할을 수행하지만, mimalloc 사용시 Vector가 좀 더 빠른 속도로 메모리를 할당 받을 수 있음. Vector와 std::vector는 섞어 쓸 수 없다. Kiwi 내부에서만 사용할 것이라면 Vector를, 외부로 반환해야할 값이라면 std::vector를 사용할 것.
-
template<typename _K, typename _V, typename _Hash = Hash<_K>>
using UnorderedMap = std::unordered_map<_K, _V, _Hash> std::unordered_map의 내부용 타입. mimalloc 옵션에 따라 mi_stl_allocator로부터 메모리를 할당받는다.
See also
Note
UnorderMap은 std::unordered_map과 동일한 역할을 수행하지만, mimalloc 사용시 UnorderMap이 좀 더 빠른 속도로 메모리를 할당 받을 수 있음.
-
using KString = std::basic_string<kchar_t>
std::u16string의 내부용 타입. mimalloc 옵션에 따라 mi_stl_allocator로부터 메모리를 할당받는다.
See also
Note
KString은 std::u16string과 동일한 역할을 수행하지만, mimalloc 사용시 KString이 좀 더 빠른 속도로 메모리를 할당 받을 수 있음.
-
using U16StringView = nonstd::u16string_view
-
using TokenResult = std::pair<std::vector<TokenInfo>, float>
분석 완료된 형태소의 목록(
std::vector<TokenInfo>
)과 점수(float
)의 pair 타입
-
using U16Reader = std::function<std::u16string()>
Enums
-
enum class POSTag : uint8_t
형태소 품사 태그와 관련된 열거형
Note
나머지 품사 태그에 대한 정보는 README.md 를 참조할 것.
Values:
-
enumerator unknown
미설정
-
enumerator nng
-
enumerator nnp
-
enumerator nnb
-
enumerator vv
-
enumerator va
-
enumerator mag
-
enumerator nr
-
enumerator np
-
enumerator vx
-
enumerator mm
-
enumerator maj
-
enumerator ic
-
enumerator xpn
-
enumerator xsn
-
enumerator xsv
-
enumerator xsa
-
enumerator xsm
-
enumerator xr
-
enumerator vcp
-
enumerator vcn
-
enumerator sf
-
enumerator sp
-
enumerator ss
-
enumerator sso
-
enumerator ssc
-
enumerator se
-
enumerator so
-
enumerator sw
-
enumerator sb
-
enumerator sl
-
enumerator sh
-
enumerator sn
-
enumerator w_url
-
enumerator w_email
-
enumerator w_mention
-
enumerator w_hashtag
-
enumerator w_serial
-
enumerator w_emoji
-
enumerator jks
-
enumerator jkc
-
enumerator jkg
-
enumerator jko
-
enumerator jkb
-
enumerator jkv
-
enumerator jkq
-
enumerator jx
-
enumerator jc
-
enumerator ep
-
enumerator ef
-
enumerator ec
-
enumerator etn
-
enumerator etm
-
enumerator z_coda
-
enumerator z_siot
-
enumerator user0
-
enumerator user1
-
enumerator user2
-
enumerator user3
-
enumerator user4
-
enumerator p
분할된 동사/형용사를 나타내는데 사용됨
-
enumerator max
POSTag의 총 개수를 나타내는 용도
-
enumerator pv
-
enumerator pa
-
enumerator irregular
불규칙 활용을 하는 동/형용사를 나타내는데 사용됨
-
enumerator vvi
-
enumerator vai
-
enumerator vxi
-
enumerator xsai
-
enumerator pvi
-
enumerator pai
-
enumerator unknown
-
enum class CondVowel : uint8_t
선행 형태소의 종성 여부 조건과 관련된 열거형
Values:
-
enumerator none
조건이 설정되지 않음
-
enumerator any
자음, 모음 여부와 상관 없이 등장 가능
-
enumerator vowel
선행 형태소가 받침이 없는 경우만 등장 가능
-
enumerator vocalic
선행 형태소가 받침이 없거나 ㄹ받침인 경우만 등장 가능
-
enumerator vocalic_h
선행 형태소가 받침이 없거나 ㄹ, ㅎ 받침인 경우만 등장 가능
-
enumerator non_vowel
vowel
의 부정
-
enumerator non_vocalic
vocalic
의 부정
-
enumerator non_vocalic_h
vocalic_h
의 부정
-
enumerator applosive
불파음 받침(ㄴㄹㅁㅇ을 제외한 모든 받침)
-
enumerator none
-
enum class CondPolarity : uint8_t
선행 형태소의 양/음성 조건(모음 조화)과 관련된 열거형
Values:
-
enumerator none
조건이 설정되지 않음
-
enumerator positive
선행 형태소가 양성(ㅏ,ㅑ,ㅗ)인 경우만 등장 가능
-
enumerator negative
선행 형태소가 음성(그 외)인 경우만 등장 가능
-
enumerator non_adj
선행 형태소가 형용사가 아닌 경우만 등장 가능 (모음조화와 관련없지만 효율성을 위해 여기에 삽입)
-
enumerator none
-
enum class BuildOption
KiwiBuilder 생성시 사용되는 비트 플래그
See also
Values:
-
enumerator none
-
enumerator integrateAllomorph
이형태 통합 여부를 설정한다. 이 옵션을 사용시
아/EC, 어/EC, 여/EC
와 같은 형태소들이어/EC
로 통합되어 출력된다.
-
enumerator loadDefaultDict
기본 사전(default.dict)의 로딩 여부를 설정한다. 기본 사전은 위키백과 및 나무위키의 표제어로 구성되어 있다.
-
enumerator loadTypoDict
오타 사전(typo.dict)의 로딩 여부를 설정한다.
-
enumerator loadMultiDict
복합명사 사전(multi.dict)의 로딩 여부를 설정한다. 복합명사 사전은 복합명사의 구성 형태소를 저장하고 있다.
-
enumerator default_
-
enumerator none
Functions
-
struct BasicToken
Public Functions
-
class Exception : public std::runtime_error
Subclassed by kiwi::FormatException, kiwi::IOException, kiwi::SwTokenizerException, kiwi::UnicodeException, kiwi::UnknownMorphemeException
-
template<class Ty>
struct Hash
-
template<>
struct Hash<CondPolarity> Public Functions
-
inline size_t operator()(CondPolarity v) const
-
inline size_t operator()(CondPolarity v) const
-
struct PretokenizedSpan
Public Functions
-
inline PretokenizedSpan(uint32_t _begin = 0, uint32_t _end = 0, const std::vector<BasicToken> &_tokenization = {})
-
inline PretokenizedSpan(uint32_t _begin = 0, uint32_t _end = 0, const std::vector<BasicToken> &_tokenization = {})
-
struct TokenInfo
- #include <Types.h>
분석 완료된 각 형태소들의 정보를 담는 구조체
Public Functions
-
TokenInfo() = default
-
inline TokenInfo(const std::u16string &_str, POSTag _tag = POSTag::unknown, uint16_t _length = 0, uint32_t _position = 0, uint32_t _wordPosition = 0, float _score = 0)
-
inline uint32_t endPos() const
Public Members
-
std::u16string str
형태
-
uint32_t position = 0
시작 위치(UTF16 문자 기준)
-
uint32_t wordPosition = 0
어절 번호(공백 기준)
-
uint32_t sentPosition = 0
문장 번호
-
uint32_t lineNumber = 0
줄 번호
-
uint16_t length = 0
길이(UTF16 문자 기준)
-
uint8_t senseId = 0
의미 번호
-
ScriptType script
유니코드 영역에 기반한 문자 타입
- union kiwi::TokenInfo
-
float score = 0
해당 형태소의 언어모델 점수
-
float typoCost = 0
오타가 교정된 경우 오타 비용. 그렇지 않은 경우 0
-
uint32_t typoFormId = 0
교정 전 오타의 형태에 대한 정보 (typoCost가 0인 경우 PreTokenizedSpan의 ID값)
-
uint32_t pairedToken = -1
SSO, SSC 태그에 속하는 형태소의 경우 쌍을 이루는 반대쪽 형태소의 위치(-1인 경우 해당하는 형태소가 없는 것을 뜻함)
-
uint32_t subSentPosition = 0
인용부호나 괄호로 둘러싸인 하위 문장의 번호. 1부터 시작. 0인 경우 하위 문장이 아님을 뜻함
-
TokenInfo() = default
-
typedef char16_t kchar_t