## Сегментирование исходного текста

- Сегментирование на уровне структуры текста

- Сегментирование на уровне предложений

  - Правила сегментирования

  - Настройка правил сегментирования

    - Приоритет

    - Создание правил сегментирования

    - Разрывы и исключения

    - Несколько простых примеров

- Использование регулярных выражений

Программы памяти переводов работают с текстовыми единицами, которые называются «сегменты». OmegaT сегментирует текст двумя способами: по абзацам и по предложениям. Чтобы выбрать тип сегментирования, в главном меню выберите Проект → Свойства... и используйте находящийся там переключатель. Сегментирование по абзацам сейчас считается устаревшим и для большинства проектов следует выбирать сегментирование по предложениям. Если выбрано сегментирование по предложениям, его правила можно настроить, выбрав в главном меню Настройки → Сегментирование....

В процессе разработки программы на создание адекватных правил сегментирования было потрачено много времени, так что они подходят для большинства случаев сегментирования, и свои правила писать не придётся. С другой стороны, в требующих того случаях возможность создать собственные правила сегментирования очень полезна, поскольку позволяет переводить только то, что нужно, исключая опасность изменения того, что изменять не следует.

Внимание! Изменение настроек фильтров при открытом проекте может вызвать потерю внесённых изменений. Если вы изменяете настройки сегментирования при работе с проектом, то чтобы изменения вступили в силу, придётся перезагрузить проект.

## Сегментирование на уровне структуры текста

Сначала OmegaT обрабатывает текст с применением структурного сегментирования. На этом этапе текст сегментируется согласно его структуре.

Например, текстовые файлы могут сегментироваться по разрывам строк, пустым строкам или вообще не сегментироваться. Файлы с форматированием (документы OpenOffice.org, HTML-файлы и т.д.) сегментируются по тэгам уровня блоков (абзацев). Переводимые атрибуты объектов в XHTML или HTML можно извлечь как отдельные сегменты.

## Сегментирование на уровне предложений

После сегментирования исходного файла на логические фрагменты, OmegaT начинает их сегментирование по предложениям.

### Правила сегментирования

Процесс сегментирования можно описать следующим образом: представьте курсор, который движется по тексту, проходя один символ за раз. Для каждой позиции курсора в заданном порядке применяется каждое из правил, которое проверяет, подходит ли шаблон До к тексту слева и шаблон После к тексту справа от курсора. Если правило подходит, программа прекращает проверку правил (по правилу исключения) или создаёт новый сегмент (по правилу разрыва).

Сегментирование по предложениям реализовано по стандарту Segmentation Rules eXchange (SRX). Однако,поддерживаются ещё не все возможности SRX. Невозможно импортировать и экспортировать правила в формате SRX. Тем не менее, если вы понимаете принцип работы SRX — вы уже имеете достаточно подробное представление о том, как OmegaT осуществляет сегментирование.

Существуют два типа правил:

- Правила разрыва разделяют исходный текст на сегменты. Например, предложение «Стоило ли это делать? Не уверен.» должно быть разделено на два сегмента, то есть, должно быть определено правило разрыва для «`?`».

- Правила исключения определяют, какие части текста НЕ должны сегментироваться. Несмотря на точку, словосочетание «Mrs. Dalloway» не нужно разделять на два сегмента, поэтому нужно определить правило исключения для строки Mrs (а также Mr, Dr, prof и т.д.) с точкой справа.

Стандартных правил разрыва должно быть достаточно для большинства европейских языков и японского. Тем не менее, у вас есть возможность определить для ваших языков новые правила исключения, чтобы получить более осмысленные и адекватные сегменты.

### Настройка правил сегментирования

### Приоритет

Все наборы правил сегментирования с подходящим языковым шаблоном применяются в заданном порядке, так что правила для конкретного языка имеют более высокий приоритет, чем стандартные правила. Например, правила для канадского французского (FR-CA) будут иметь более высокий приоритет, чем правила для французского (FR.*) и чем стандартные (.*) правила. Соответственно, при переводе с канадского французского ваш проект будет использовать правила, определённые для этого языка, общие правила для французского и стандартные правила, и именно в таком порядке.

### Создание правил сегментирования

Чтобы расширить или изменить существующий набор правил, просто выберите его в таблице. В нижней части окна появятся правила этого набора.

Чтобы создать набор правил для нового языкового шаблона, нажмите на кнопку Добавить в верхней части диалогового окна. Внизу таблицы в верхней части окна появится пустая строка (возможно, придётся подвигать полосу прокрутки, чтобы найти её). Измените названия набора правил и шаблона языка. Синтаксис шаблона языка подчиняется правилам регулярных выражений. Если ваш набор правил относится к паре «язык-страна», рекомендуется передвинуть его наверх, используя кнопку Вверх.

### Разрывы и исключения

Переключатель Разрыв/Исключение определяет, является ли правило разрывом (галочка поставлена) или исключением (галочки нет). Регулярные выражения «До» и «После» определяют, что должно находиться слева и справа от курсора для срабатывания правила.

### Несколько простых примеров

Что нужно | До | После | Примечание
начинать новый сегмент после точки ('`.`') и до пробела | `\.` | `\s` | «`\.`» обозначает символ «`.`», «`\s`» обозначает пробел
не создавать сегмент после «Mr.» | `Mr\.` | `\s` | Это правило исключения, поэтому галочка с переключателя должна быть убрана
начинать новый сегмент после «ã€‚» (японская точка) | `ã€‚` |  | Обратите внимание, поле После — остаётся пустым
не создавать сегмент после M., Mr., Mrs.и Ms. | `Mr??s??\.` | `\s` | Правило исключения - см. использование «?» в регулярных выражениях («нежадные» идентификаторы)

## Составление регулярных выражений

Мы используем в правилах сегментирования те регулярные выражения, которые поддерживаются Java. Краткая справка доступна в приложении Составление регулярных выражений. Если вам нужна дополнительная информация, см. http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html.

В сети можно найти простые руководства по регулярным выражениям (к примеру: http://www.regular-expressions.info/quickstart.html).

Авторские права | Наверх | Предметный указатель