Class: TranslationDiff::Segmenters::Pragmatic
- Inherits:
-
Object
- Object
- TranslationDiff::Segmenters::Pragmatic
- Defined in:
- lib/translation_diff/segmenters/pragmatic.rb
Overview
Default segmenter: scores 76/80 on the Golden Rules corpus vs Simple's 47/80 (golden_rules_test.rb).
Defined Under Namespace
Classes: Error
Constant Summary collapse
- DEFAULT_LANGUAGE =
Without a language, Russian mis-segments: it treats "Проф." as a full sentence and stops there.
"en".freeze
- SINGLE_NEWLINE =
A lone "\n" is incidental source formatting, not a paragraph break; a run of two or more is left alone.
/(?<!\n)\n(?!\n)/
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.build(_config) ⇒ Object
14 |
# File 'lib/translation_diff/segmenters/pragmatic.rb', line 14 def self.build(_config) = new |
Instance Method Details
#split_offsets(text, language: nil) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/translation_diff/segmenters/pragmatic.rb', line 16 def split_offsets(text, language: nil) return [0] unless split_candidate?(text) shadow = shadow_newlines(text) sentences = segment(shadow, language) return [0] if sentences.size <= 1 offsets = recover_offsets(shadow, sentences) assert_valid_offsets(text, offsets) offsets end |