cabocha feature set

by yhlee95
created with TinyPad



////////////////////////////////////////

// 기호, 여는괄호, 닫는괄호..............

// GAP 정보도 되고 자신의 정보도 되고...

///////////////////////////////////////////

if (pat_kutouten == (*tree)[i].surface) {

ostrs << " G_PUNC:" << pat_kutouten.which();

ostrs << " F_PUNC:" << pat_kutouten.which();

}

 

if (pat_open_bracket == (*tree)[i].surface) {

ostrs << " G_OB:" << pat_open_bracket.which();

ostrs << " F_OB:" << pat_open_bracket.which();

}

 

if (pat_close_bracket == (*tree)[i].surface) {

ostrs << " G_CB:" << pat_close_bracket.which();

ostrs << " F_CB:" << pat_close_bracket.which();

}

 

 

//****************Head Word******************

////surface form

////POS -- 4 subcategories

////Conjugation type & form

 

ostrs << " F_H0:" << hsurface;

for (char **p = hpos_list; *p; ++p)

ostrs << " F_H" << (int)(p - hpos_list) + 1 << ":" << *p;

 

if (hctype[0]) ostrs << " F_H5:" << hctype;

if (hcform[0]) ostrs << " F_H6:" << hcform;

 

 

 

//****************Function Word******************

////surface form

////POS -- 4 subcategories

////Conjugation type & form

 

ostrs << " F_F0:" << fsurface;

for (char **p = fpos_list; *p; ++p)

ostrs << " F_F" << (int)(p - fpos_list) + 1 << ":" << *p;

 

if (fctype[0]) ostrs << " F_F5:" << fctype;

if (fcform[0]) ostrs << " F_F6:" << fcform;

 

//********** 시작, 끝 정보***************************

if (cid == 0) ostrs << " F_BOS:1";

if (i == size) ostrs << " F_EOS:1";

 

 

 

==========================================

==========================================

===========================================

 

 

//************TYPE A: child's function word of taget words*************

//// fpos 사용

//// function word의 정보 사용

//11 조사, 부사, 연체사, 접속사 일때는

//11 surface form

//22 활용형태가 존재하면, conjugation form이 있을때

//22 conjugation form

//33 나머지 경우는

//33 funtion word's POS

if (pat_dyn_a == fpos) ostrs << " A:" << fsurface;

else if (fcform[0]) ostrs << " A:" << fcform;

else ostrs << " A:" << fpos;

 

 

//***********TYPE B: tagret의 head's hpos 사용************

// hpos 사용

ostrs << " B:" << hpos;

 

 

 

//**********GAP 정보***************************

//**********fpos가 조사일 경우에만 ******************

if (pat_case == fpos) ostrs << " G_CASE:" << fsurface;