File tree 2 files changed +5
-3
lines changed
2 files changed +5
-3
lines changed Original file line number Diff line number Diff line change @@ -309,7 +309,7 @@ namespace kiwi
309
309
uint8_t senseId = 0 ; /* *< 의미 번호 */
310
310
float score = 0 ; /* *< 해당 형태소의 언어모델 점수 */
311
311
float typoCost = 0 ; /* *< 오타가 교정된 경우 오타 비용. 그렇지 않은 경우 0 */
312
- uint32_t typoFormId = 0 ; /* *< 교정 전 오타의 형태에 대한 정보 (typoCost가 0인 경우 의미 없음 ) */
312
+ uint32_t typoFormId = 0 ; /* *< 교정 전 오타의 형태에 대한 정보 (typoCost가 0인 경우 PreTokenizedSpan의 ID값 ) */
313
313
uint32_t pairedToken = -1 ; /* *< SSO, SSC 태그에 속하는 형태소의 경우 쌍을 이루는 반대쪽 형태소의 위치(-1인 경우 해당하는 형태소가 없는 것을 뜻함) */
314
314
uint32_t subSentPosition = 0 ; /* *< 인용부호나 괄호로 둘러싸인 하위 문장의 번호. 1부터 시작. 0인 경우 하위 문장이 아님을 뜻함 */
315
315
const Morpheme* morph = nullptr ; /* *< 기타 형태소 정보에 대한 포인터 (OOV인 경우 nullptr) */
Original file line number Diff line number Diff line change @@ -898,16 +898,18 @@ namespace kiwi
898
898
{
899
899
ret.clear ();
900
900
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)
902
902
{
903
+ while (cur != last && nodes[i].startPos >= cur->end ) ++cur;
904
+ if (cur == last) break ;
905
+
903
906
if (cur->begin <= nodes[i].startPos && nodes[i].endPos <= cur->end )
904
907
{
905
908
ret.emplace_back (cur - first);
906
909
}
907
910
else
908
911
{
909
912
ret.emplace_back (-1 );
910
- if (nodes[i].startPos >= cur->end ) ++cur;
911
913
}
912
914
}
913
915
ret.resize (nodes.size (), -1 );
You can’t perform that action at this time.
0 commit comments