Skip to content

Commit 95f1e24

Browse files
authored
Merge pull request #164 from bab2min/dev_kiwipiepy_issue168
Fixed missing PreTokenizedSpan bugs
2 parents 37bfa60 + 1867139 commit 95f1e24

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed

Diff for: include/kiwi/Types.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,7 @@ namespace kiwi
309309
uint8_t senseId = 0; /**< 의미 번호 */
310310
float score = 0; /**< 해당 형태소의 언어모델 점수 */
311311
float typoCost = 0; /**< 오타가 교정된 경우 오타 비용. 그렇지 않은 경우 0 */
312-
uint32_t typoFormId = 0; /**< 교정 전 오타의 형태에 대한 정보 (typoCost가 0인 경우 의미 없음) */
312+
uint32_t typoFormId = 0; /**< 교정 전 오타의 형태에 대한 정보 (typoCost가 0인 경우 PreTokenizedSpan의 ID값) */
313313
uint32_t pairedToken = -1; /**< SSO, SSC 태그에 속하는 형태소의 경우 쌍을 이루는 반대쪽 형태소의 위치(-1인 경우 해당하는 형태소가 없는 것을 뜻함) */
314314
uint32_t subSentPosition = 0; /**< 인용부호나 괄호로 둘러싸인 하위 문장의 번호. 1부터 시작. 0인 경우 하위 문장이 아님을 뜻함 */
315315
const Morpheme* morph = nullptr; /**< 기타 형태소 정보에 대한 포인터 (OOV인 경우 nullptr) */

Diff for: src/Kiwi.cpp

+4-2
Original file line numberDiff line numberDiff line change
@@ -898,16 +898,18 @@ namespace kiwi
898898
{
899899
ret.clear();
900900
auto* cur = first;
901-
for (size_t i = 0; i < nodes.size() && cur != last; ++i)
901+
for (size_t i = 0; i < nodes.size(); ++i)
902902
{
903+
while (cur != last && nodes[i].startPos >= cur->end) ++cur;
904+
if (cur == last) break;
905+
903906
if (cur->begin <= nodes[i].startPos && nodes[i].endPos <= cur->end)
904907
{
905908
ret.emplace_back(cur - first);
906909
}
907910
else
908911
{
909912
ret.emplace_back(-1);
910-
if (nodes[i].startPos >= cur->end) ++cur;
911913
}
912914
}
913915
ret.resize(nodes.size(), -1);

0 commit comments

Comments
 (0)