Глоссарий — это не поиск и замена: сначала определите границы слов, регистр и исключения
Сопоставление глоссария — это не простой поиск и замена: если границы слов, заглавные буквы и исключения не обрабатываются должным образом, возникнут неправильные или отсутствующие замены. В этой статье используется стандартная библиотека Python re для написания примера проверки, прилагается контрольный список приемки и объясняется, как проверить перевод с помощью терминологической функции OmniDoc.
— В примере используется стандартная библиотека re для сопоставления независимых API, без учета регистра и не сопоставления соседних букв, цифр и знаков подчеркивания.
- Результаты сопоставления следует использовать в качестве зарезервированных кандидатских позиций, а исходный текст не следует переписывать напрямую. Рецензент решит, стоит ли его заменять.
— API и api_gateway в примере не совпадают, а китайские термины в примере не рассматриваются.
- При оценке терминологических возможностей OmniDoc десенсибилизированные образцы, содержащие текст, идентификаторы кода и словоизменения, можно сверить с переводом.
Глоссарий может выглядеть так, будто он просто заменяет одно слово другим, но на практике границы слов, регистр, флексии и идентификаторы кода влияют на результаты. Если с ним обращаться неправильно, его могут заменить по ошибке или пропустить место, где его следует заменить.
Эта статья предназначена для редакторов и разработчиков, которым необходимо поддерживать терминологию для переводов или документации. Ниже используется стандартная библиотека Python для написания консервативного примера проверки, дается контрольный список приемки и объясняется, как проверить перевод с помощью терминологической функции OmniDoc. Прочитав его, вы сможете решить, какие слова должны быть кандидатами, какие следует защитить и как превратить глоссарий в соглашение, которое команда сможет вычеркивать.
Пример продемонстрирован на синтетических образцах. Код был проверен в изолированной среде, но это не является гарантией подлинности всех файлов или работоспособности продукта. Перед обработкой важных документов сохраните оригиналы и проверьте их в соответствии с границами и пунктами приема, указанными ниже.
Как заменить глоссарий, не допустив ошибок? Вывод в одно предложение
Сначала найдите кандидатов, а затем решите, стоит ли заменять их, исходя из глоссария и контекста. Не выполняйте глобальный поиск и замену напрямую.
| твоя ситуация | Рекомендуемые практики | причина |
|---|---|---|
В документе появляется независимый API. | В качестве кандидатов, проверенных по глоссарию и контексту. | Слова, содержащие одинаковые буквы, не обязательно следует заменять все. |
Появляются изменения слов, такие как APIs. | Явно поддерживать правила словоформы | Независимое совпадение в этом примере не приведет к совпадению с APIs. |
Появляются идентификаторы кода, такие как api_gateway. | Защищайте, не переписывайте напрямую | Идентификаторы обычно защищены |
| Работать с китайской терминологией | Используйте причастия или правила, подходящие для китайского языка. | Правила границ английских слов не могут быть напрямую применены к китайскому языку. |
Для каждого языка требуется собственное соглашение о сопоставлении
В этой статье приводится сознательно консервативный пример английского языка: API сам по себе игнорирует соответствие регистра, а буквы, цифры и символы подчеркивания не совпадают, когда они находятся рядом. Пример реализован с использованием стандартной библиотеки Python re.
Обратите внимание, что это соглашение не является полным правилом сегментации слов для естественных языков и не учитывает множественное, притяжательное значение или устранение неоднозначности контекста.
Тест со строками, которые находятся близко, но не должны задевать
При тестировании не только смотрите, что должно попасть, но и вставляйте строки, которые близки, но не должны попадать, например APIs и api_gateway.
import re
def english_candidates(text, term):
if not term:
raise ValueError("empty term")
pattern = re.compile(r"(?<!\w)" + re.escape(term) + r"(?!\w)", re.IGNORECASE)
return [(m.start(), m.end(), m.group()) for m in pattern.finditer(text)]
text = "API and api; APIs, rapid, api_gateway."
found = english_candidates(text, "API")
assert [item[2] for item in found] == ["API", "api"]
assert all(text[start:end] == raw for start, end, raw in found)
assert english_candidates("api_gateway", "API") == []
assert english_candidates("APIs", "API") == []
assert english_candidates("(API)", "API")[0][2] == "API"
try:
english_candidates(text, "")
except ValueError:
pass
else:
raise AssertionError("empty glossary term accepted")
Соответствующий кандидат не является командой замены
Код сохраняет местоположение и исходный текст и не изменяет текст напрямую. Таким образом, рецензент может различать текст, ссылки и области кода, а также видеть, следует ли сохранить исходные слова.
Позиции-кандидаты в HTML или Word также необходимо сопоставить с узлами структуры. Вы не можете просто взять позицию всей склеенной строки и записать ее обратно в исходный текст.
| сцена | В этом случае выберите | Дальнейшая стратегия |
|---|---|---|
| Автономный API | Как кандидат | Обзор по глоссарию и контексту |
| APIs | Несоответствие | Чётко определите правила ведения словоформ |
| api_gateway | Несоответствие | Идентификаторы обычно защищены |
| Китайская терминология | Заявлено о освещении | Используйте сегментацию слов или правила, подходящие для китайского языка |
Чувствительность к регистру имеет границы
Привычки Unicode в регистрах и языке не всегда индивидуальны. Эта статья сосредоточена на простых английских терминах и не может быть обобщена как распознаватель терминов, применимый ко всем языкам.
Крупные глоссарии также должны учитывать перекрывающиеся кандидаты, самые длинные совпадения и вопросы управления версиями, чтобы избежать постоянных противоречивых предложений в одном абзаце.
📊 Сравнение ядра
| Методы обработки | Метод | Основное влияние |
|---|---|---|
| Глобальный поиск и замена | Напрямую заменить все совпадающие тексты | Легко ошибочно заменить содержимое в основном тексте, ссылках и кодовых областях |
| Обзор кандидатов | Позиция и оригинальный текст сохраняются, а рецензия подлежит пересмотру | Он различает основной текст, ссылки и кодовые области, а также показывает, следует ли сохранять исходное слово |
Сделайте глоссарий проверяемой конвенцией
Официальный сайт OmniDoc (запись продукта) представляет функцию глоссария. Во время оценки вы можете выбрать анонимные образцы с основным текстом, идентификаторами кода и изменениями формы слова и сравнить их с переводом, чтобы проверить, подходит ли терминология в правильный контекст.
Ценность глоссария не в том, чтобы механически заменить больше слов, а в том, чтобы сделать формулировочные условности команды более стабильными.
🎯 Какой способ тебе подходит?
Если ты ......
- Документы, которые необходимо обрабатывать с идентификаторами кода: сначала защитить область кода, затем проверить кандидаты.
- Термины с изменением формы слов: Заранее соблюдайте правила формы слов и не ожидайте, что независимые совпадения перезапишут
APIs. - Обрабатывайте китайскую терминологию: не применяйте правила границы английских слов; используйте сегментацию слов или правила, подходящие для китайского.
- Крупные учебники: также должны работать с перекрывающимися кандидатами, самыми длинными совпадениями и управлением версиями.
❓ Часто задаваемые вопросы (FAQ)
1. Почему сопоставление глоссариев нельзя напрямую заменить глобально?
Потому что слова, содержащие одну и ту же букву, не обязательно нуждаются в замене. Например, APIs — это словесная флексия, а api_gateway — идентификатор кода.
2. Может ли этот пример справиться с формами множественного и притяжательного числа?
Нет. Это намеренно консервативный пример английского языка, не отвечающий за множественное число, притяжание или различия.
3. Можно ли написать кандидатские позиции напрямую на весь текст?
Кандидатные позиции в HTML или Word сначала нужно сопоставить с структурными узлами; нельзя просто записать позиции всей конкатенированной строки.
4. На что стоит обращать внимание в больших глоссариях?
Необходимо учитывать перекрывающиеся кандидаты, самое длинное сопоставление и управление версиями, чтобы избежать повторного появления противоречивых предложений в одном абзаце.
📝 Краткое содержание
Ценность глоссария заключается в том, чтобы сделать формулировки команды более устойчивыми. Во время оценки сравнение десенсибилизированной выборки с переводом более надёжно, чем прямая замена.
Опыт сейчас: загрузите документ, чтобы начать перевод, сохраняя оригинальное форматирование


