2013-08-07 2 views
0

Я хочу форматировать параллельный текст, чтобы слова и предложения были выровнены на двух или более языках. Большинство структурированных текстовых форматов, которые я нашел, основаны на XML и используются средствами перевода или программным обеспечением Библии. Я хочу найти или создать формат, подходящий для чтения текстов на иностранном языке. У читателя будет возможность выбирать слова и видеть их эквивалент на исходном или целевом языке.Структурированный формат для двуязычных текстов?

Я думал об использовании многомерных массивов со словами, выровненными по индексу. Но проблема в том, что существует много слов и фраз, которые не имеют однозначного сопоставления. Итак, я подумал об использовании реляционной базы данных, такой как SQLite. Я мог бы иметь таблицу для каждого языка с каждым словом, индексированным по id, и соединять таблицы для выравнивания. Но тогда вопрос заключается в том, как представлять знаки препинания, абзацы и другое необходимое форматирование.

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

ответ

1

Предположительно у вас есть один или несколько текстовых файлов, один на языке А, один на языке В и т. Д., Причем последний является переводом первого. С этим допущением:

Вы можете пометить свои текстовые файлы с уникальными пронумерованными тегами вокруг слов, фраз и/или знаков препинания, например: «Дорогой сэр, как вы сегодня?» в перевод на немецкий язык становится: «Sehr geehrter Herr, Wie Geht эс реж хойте?»:

<Language-English:<11:<4:<1:Dear> <2:Sir><3:,>> <10:<7:<5:How are> <6:you>> <8:today><9:?>>>> 

<Language-Deutsch:<11:<4:<1:Sehr geehrter> <2:Herr><3:,>> <10:<7:<5:wie geht> <6:es>> <8:dir heute><9:?>>>> 

Моего немецким довольно ржавая, так что я не могу иметь тегов вполне корректно, но они все равно должны показать, что я имею в разум.

Как вы можете видеть, все предложение и его части имеют свои собственные теги. При отображении текста каждая пара <n:> будет удалена и может быть заменена подчеркиванием или какой-либо другой формой выделения, чтобы указать группы. Конечно, может быть несколько подчеркиваний/подчеркиваний (в этом примере должно быть до четырех). При нажатии на (и визуальное подчеркивание) выделения в тексте на языке А соответствующая подсветка (ы) в языке B (и других языках, если присутствует) также будет подчеркнута.

Естественно, скорее всего, работа переводчика-человека будет выполнять разметку, поскольку автоматизация фактического перевода и применение тегов в этот момент является нетривиальной задачей.

Однако пользовательский интерфейс, где элементы на каждом языке могут быть одновременно выделены, а затем помечены как эквивалентные, может облегчить процесс создания отмеченного файла (ов).

Что касается других соображений (массивов и баз данных), они, похоже, являются чем-то вроде чрезмерного усложнения. Вам все равно придется как-то разметки ваших текстов, чтобы они могли быть загружены в эти структуры, поскольку слова или даже фразы на одном языке не обязательно имеют транслитерацию 1: 1 эквиваленту на другом языке) и обычно могут Легко переводиться машиной. Когда у вас есть разметка, говорить о массиве/словаре/базе данных/других структурах становится немного неактуальным и беспокоит только программиста UI.

EDIT:

При дальнейшем рассмотрении, метки не могут быть полностью вложен, и могут быть разделены, так что вам, возможно, потребуется пара тегов <n::n>, чтобы частично перекрывающихся и расщепленные помеченных областей. Например.:

<1:The:1> <2:black:2> <1:dog:1> <3:and <4:the dog:3>'s puppies:4> 

имеет фрагменты: «Собака», «черный», «и собака», и «щенков собаки».

Edit 2:

Вы могли поддерживать мульти-тексты только имея тег пары уникальные идентификаторы во всех языках:

EN: "The Knight's coat of arms was defaced" 
DE: "Das Wappen des Ritters wurde verunstaltet" 
FR: "Le blason du Chevalier a été abîmé" 

<1:The Knight's:1> <2:coat of arms:2> <5:<3:was:3> <4:defaced:4>:5>. 
<2:Das Wappen:2> <1:des Ritters:1> <3:wurde:3> <4:verunstaltet:4>. 
<2:Le blason:2> <1:du Chevalier:1> <5:a été abîmé:5>. 

Как вы можете видеть теги 1, 2, 3 & 4 применимы на английский и немецкий, а теги 1, 2 & 5 применимы к английскому и французскому языкам. Теги могут быть легко разделены и частично перекрываются.

+0

Я не думал о тегах в тегах. Это интересная идея, но потребуется специальный парсер. Кроме того, этот формат будет поддерживать только битекс, потому что слова/фразы тесно связаны с целевым языком. Мне нравится простота этой идеи. Другие структуры данных действительно более сложны, но могут обеспечить большую гибкость или другие функции. –

+0

Да, потребуется настраиваемый парсер и пользовательский интерфейс. Вы не указали, что он должен был использовать компоненты вне полки. –

+0

См. Раздел «Редактирование 2» для многопоточной поддержки. –

Смежные вопросы