Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

Генератор языков

Автор shinkarom, августа 12, 2009, 15:05

0 Пользователи и 1 гость просматривают эту тему.

Bhudh

Цитата: shinkarom от октября 22, 2013, 15:20Оказывается, Delphi 2010 не полностью поддерживает Unicode.
ОМГ.
Lazarus поддерживает UTF-8 искаропки.
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо


Bhudh

Если это класс, конструирующий текстовые файлы — то текстовые файлы поддерживают UTF-8 ещё раньше.
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

shinkarom

Дело с кодировками решено. Оказывается, нужно было сохранить файл в кодировке UTF-16.
Правда, переход на фонемы будет немного медленным. Это связано с недостатком идей по поводу использования пробелов, вопросительных знаков и т. д. в проектируемом мной классе TPhonemeString.
Мой блог //allthetongues.hol.es

arseniiv

Цитата: shinkarom от октября 22, 2013, 15:20
Оказывается, Delphi 2010 не полностью поддерживает Unicode.
Как так? Разве ещё в 2005 всё не закончилось?

Цитата: shinkarom от октября 22, 2013, 18:01
Даже в классе TIniFile?
Лучше его не использовать, İ℧. С API INI-файлов в виндовсе вроде бы с уникодом не всё хорошо до сих пор. Хотя точный ответ не знаю.

Цитата: shinkarom от октября 22, 2013, 18:12
Это связано с недостатком идей по поводу использования пробелов, вопросительных знаков и т. д. в проектируемом мной классе TPhonemeString.
Что за пробелы и вопросительные знаки?

shinkarom

Раньше было просто. bebeb - строка, она транслитерируется в бэбэб. Bebeb abab - тоже хорошо, это бэбэб абаб.
Теперь же будет класс TPhonemeString, в котором список объектов типа TPhoneme.

TPhoneme.Create('b'); //это так, гипотетический пример
TPhoneme.Create('e');
TPhoneme.Create('b');
TPhoneme.Create('e');
TPhoneme.Create('b');

abab по такому же принципу.
А вот пробел не является фонемой, это произвольный символ. Как же сделать поддержку таких не фонемных символов (допустим, апострофа) в строке из фонем?
Мой блог //allthetongues.hol.es

arseniiv

Апостроф заделать фонемой (или апостроф для ударения? Ударение — это свойство слога, его по-другому лучше кодировать, но в крайнем случае слоговые фонемы можно делать в «ударном» и «неударном» вариантах). А пробел зачем? Если пробелы разделяют слова, то пусть и разделяют слова как два списка фонем или даже чего-то большего, чем списки фонем — это уже как вам надо.

Кстати, у ваших фонем есть какие-то особые свойства кроме их написания? Если нет, можно их и строками представлять. Если есть, можно их предварительно загрузить в TDictionary<String, TPhoneme> (если не ошибаюсь в синтаксисе — имеется в виду словарь со значениями-фонемами и ключами-строками), а потом не создавать много одинаковых фонем, а доставать из словаря.

shinkarom

1. В английском языке слова it и it's различаются в значении, так что апостроф не только для ударения.
2. Я, конечно, могу делать bebeb abab как два отдельных объекта TPhonemeString, но тогда начнутся сложности с транслитерацией целого предложения, поскольку придется транслитерировать два слова по отдельности, потом соединять транслитерации пробелом. Хотя, подумав, я смогу сделать класс TTransliterableSentence.
3. Я сейчас выложу программу и вы все сами увидите. (Мне просто нужно делать бэкапы, которые не будут удалены и через четыре года.)
Мой блог //allthetongues.hol.es

shinkarom

Мой блог //allthetongues.hol.es

arseniiv

Цитата: shinkarom от октября 22, 2013, 20:55
1. В английском языке слова it и it's различаются в значении, так что апостроф не только для ударения.
Лучше б для ударения использовался тогда соответствующий символ уникода ˈ. К тому же, фонематический состав it's и its одинаковый: /ɪts/, это омофоны.

Цитата: shinkarom от октября 22, 2013, 20:55
2. Я, конечно, могу делать bebeb abab как два отдельных объекта TPhonemeString, но тогда начнутся сложности с транслитерацией целого предложения, поскольку придется транслитерировать два слова по отдельности, потом соединять транслитерации пробелом. Хотя, подумав, я смогу сделать класс TTransliterableSentence.
Если объекты естественным образом могут вкладываться друг в друга довольно длинными цепочками, тут лучше не экономить; будет плохо с (даже своей же, при создании новых версий) поддержкой кода, в котором смешаны вещи, которые лучше разделить. Фразу, состоящую из нескольких слов имеет смысл хранить даже не как массив фонемных строк, а как массив таких строк и текстовых разделителей (кроме пробелов могут быть и всякие пунктуации! Хотя бы ', ').

shinkarom

1. Насчет апострофов: зато у слов he'll и hell разный фонемный состав.
2. Это и была моя идея. Я создам специальный класс, а потом сделаю, чтобы и фонемы и строки происходили от одного интерфейса.
Мой блог //allthetongues.hol.es

Bhudh

Цитата: shinkarom от октября 23, 2013, 15:44зато у слов he'll и hell разный фонемный состав.
А также морфемный и лексический.
shinkarom, he'll это два слова: местоимение he и сокращённый модальный глагол ʼll.
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо


Mercurio

Цитата: shinkarom от ноября 13, 2013, 15:38
Обновление.
Zeoe lotule mak. - Девушка читает книгу.  :green:
Čo a e. - Девушка читает книгу. Вот это ваще огонь))
Non nobis, Domine, non nobis, sed nomini tuo da gloriam

shinkarom

Мой блог //allthetongues.hol.es

Mercurio

Цитата: shinkarom от ноября 13, 2013, 16:03
Элемент иронии я замечаю, интернет юзер?
Все в порядке, никакой иронии. Я и сам конлангер, а тут программа такое выдает, не удержался. Вы молодец, продолжайте в том же духе.
Non nobis, Domine, non nobis, sed nomini tuo da gloriam

shinkarom

Нужны советы, замечания. Я сам такое не вытяну, зная о лингвистике очень мало.
Мой блог //allthetongues.hol.es

Mercurio

Цитата: shinkarom от ноября 13, 2013, 16:08
Нужны советы, замечания. Я сам такое не вытяну, зная о лингвистике очень мало.
Да я тоже не лингвист, но проект очень интересный. С удовольствием буду наблюдать.
Non nobis, Domine, non nobis, sed nomini tuo da gloriam

shinkarom

Я еще раз повторяю: нужны советы или замечания. Мне необходим именно такой тип фидбэка. Нужно, чтобы кто-то подталкивал меня в каком-то направлении.
Мой блог //allthetongues.hol.es

Hellerick

Проверка на совпадение слов в словаре осуществляется? А то у меня два одинаковых выскочило.

shinkarom

Раньше осуществлялась. По-видимому, перевод движка на новую систему что-то сделал алгоритм неработоспособным. Но вы не волнуйтесь, в реальных языках тоже есть омонимы и многозначные слова.
Сейчас я работаю над добавлением ударения (последний слог, предпоследний слог и. т. д.)
Мой блог //allthetongues.hol.es

arseniiv

Цитата: Mercurio от ноября 13, 2013, 16:11
<...> буду наблюдать.
Увы, кстати, +1.

Цитата: shinkarom от ноября 13, 2013, 16:28
По-видимому, перевод движка на новую систему что-то сделал алгоритм неработоспособным.
Если что, может быть, вы сравниваете массивы или объекты, содержащие слова, по ссылке — тогда надо сравнивать их покомпонентно, потому что два массива с одинаковым набором элемента (или объекта с одинаковыми значениями соответствующих свойств) — не обязательно один и тот же массив/объект, и могут располагаться по разным адресам в памяти; сравнение на равенство массивов/объектов сравнивает их адреса. Можно, конечно, сделать так, чтобы равные объекты имели одинаковый адрес, но автоматически такого нет.

shinkarom

Обновление.
-добавлено ударение
-добавлены числительные
-убран баг с дубликатами
Мой блог //allthetongues.hol.es

shinkarom

Небольшое обновление.
Начинаю работать над фонотактикой.
Советы и обсуждение, пожалуйста.
Мой блог //allthetongues.hol.es


Быстрый ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.

Имя:
Имейл:
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр