| 12 | #include <util/stream/file.h> |
| 13 | |
| 14 | void TNlpTokenizer::Tokenize(const wchar16* str, |
| 15 | size_t size, |
| 16 | const TTokenizerOptions& opts) { |
| 17 | bool semicolonBreaksSentence = opts.LangMask == TLangMask(LANG_GRE); |
| 18 | TSentBreakFilter sentBreakFilter(opts.LangMask); |
| 19 | THolder<TNlpParser> parser; |
| 20 | switch (opts.Version) { |
| 21 | case 2: |
| 22 | parser = MakeHolder<TVersionedNlpParser<2>>(TokenHandler, sentBreakFilter, Buffer, opts.SpacePreserve, |
| 23 | BackwardCompatible, semicolonBreaksSentence, opts.UrlDecode); |
| 24 | break; |
| 25 | case 3: |
| 26 | parser = MakeHolder<TVersionedNlpParser<3>>(TokenHandler, sentBreakFilter, Buffer, opts.SpacePreserve, |
| 27 | BackwardCompatible, semicolonBreaksSentence, opts.UrlDecode, opts.KeepAffixes); |
| 28 | break; |
| 29 | default: |
| 30 | parser = MakeHolder<TDefaultNlpParser>(TokenHandler, sentBreakFilter, Buffer, opts.SpacePreserve, |
| 31 | BackwardCompatible, semicolonBreaksSentence, opts.UrlDecode); |
| 32 | break; |
| 33 | } |
| 34 | try { |
| 35 | parser->Execute(str, size, &TextStart); |
| 36 | } catch (const ITokenHandler::TAllDoneException&) { |
| 37 | // do nothing |
| 38 | } |
| 39 | } |
| 40 | |
| 41 | #ifndef CATBOOST_OPENSOURCE |
| 42 | void TNlpTokenizer::Tokenize(const char* text, |
no test coverage detected