| 465 | // ---------------------------------------------------------------------------------------- |
| 466 | |
| 467 | segmenter_type train_sparse ( |
| 468 | const std::vector<std::vector<sparse_vect> >& samples, |
| 469 | const std::vector<ranges>& segments, |
| 470 | segmenter_params params |
| 471 | ) |
| 472 | { |
| 473 | pyassert(is_sequence_segmentation_problem(samples, segments), "Invalid inputs"); |
| 474 | |
| 475 | int mode = 0; |
| 476 | if (params.use_BIO_model) |
| 477 | mode = mode*2 + 1; |
| 478 | else |
| 479 | mode = mode*2; |
| 480 | if (params.use_high_order_features) |
| 481 | mode = mode*2 + 1; |
| 482 | else |
| 483 | mode = mode*2; |
| 484 | if (params.allow_negative_weights) |
| 485 | mode = mode*2 + 1; |
| 486 | else |
| 487 | mode = mode*2; |
| 488 | |
| 489 | mode += 8; |
| 490 | |
| 491 | segmenter_type res; |
| 492 | res.mode = mode; |
| 493 | switch(mode) |
| 494 | { |
| 495 | case 8: { structural_sequence_segmentation_trainer<segmenter_type::fe8> trainer; |
| 496 | configure_trainer(samples, trainer, params); |
| 497 | res.segmenter8 = trainer.train(samples, segments); |
| 498 | } break; |
| 499 | case 9: { structural_sequence_segmentation_trainer<segmenter_type::fe9> trainer; |
| 500 | configure_trainer(samples, trainer, params); |
| 501 | res.segmenter9 = trainer.train(samples, segments); |
| 502 | } break; |
| 503 | case 10: { structural_sequence_segmentation_trainer<segmenter_type::fe10> trainer; |
| 504 | configure_trainer(samples, trainer, params); |
| 505 | res.segmenter10 = trainer.train(samples, segments); |
| 506 | } break; |
| 507 | case 11: { structural_sequence_segmentation_trainer<segmenter_type::fe11> trainer; |
| 508 | configure_trainer(samples, trainer, params); |
| 509 | res.segmenter11 = trainer.train(samples, segments); |
| 510 | } break; |
| 511 | case 12: { structural_sequence_segmentation_trainer<segmenter_type::fe12> trainer; |
| 512 | configure_trainer(samples, trainer, params); |
| 513 | res.segmenter12 = trainer.train(samples, segments); |
| 514 | } break; |
| 515 | case 13: { structural_sequence_segmentation_trainer<segmenter_type::fe13> trainer; |
| 516 | configure_trainer(samples, trainer, params); |
| 517 | res.segmenter13 = trainer.train(samples, segments); |
| 518 | } break; |
| 519 | case 14: { structural_sequence_segmentation_trainer<segmenter_type::fe14> trainer; |
| 520 | configure_trainer(samples, trainer, params); |
| 521 | res.segmenter14 = trainer.train(samples, segments); |
| 522 | } break; |
| 523 | case 15: { structural_sequence_segmentation_trainer<segmenter_type::fe15> trainer; |
| 524 | configure_trainer(samples, trainer, params); |
nothing calls this directly
no test coverage detected