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

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

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

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

Вадимий

Цитата: addewyd от августа 31, 2009, 16:03
Тем не менее. При создании генератора следует исходить из формального определения понятия "язык". 13 лет, 63 -- неважно.

Почему-то подавляющее большинство творцов считают, что главное (и, часто, единственное) из чего состоит язык -- фонетика и лекскика. И давай словей генерить...
А это самая малозначащая составляющая.
А грамматика? Она ведь тоже генерится.
Язык если состо из только лексик и фонетик  кажд предложени выгляд так когда это бы  хорош не.

Если бы моя программа делала лишь лексику и фонетику, я бы создал отдельную тему под названием "Генератор лексики с фонетикой". Поняли?

wienski

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

addewyd

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

И вообще она не генерируется. Она задана изначально.

addewyd

Да, да. Японский. Хороший язык. Труден мне, скобок не хватает. Аж целое придаточное предложение могут в падеж склонить, а то и в два сразу. Вот и разберись, что к чему ))

Вадимий

Цитата: wienski от августа 31, 2009, 16:21
Это пока генератор языков, похожих на русский, немецкий и английский. Языки бывают интереснее.
Кстати, советую для общего развития поучить японский :) Спрягающиеся прилагательные и сотни местоимений никого не оставят равнодушным :)
Offtop
Нау'чите?


wienski


chyapay

почему бы как-то не оптимизировать программу? Я имею в виду, вкорне. Сделать так, чтобы язык был сформирован наиболее рациональным способом из возможных. Для этого нужно сначала на бумажке все расписать. Вот что такое язык. Каковы его параметры, как изменится язык от изменения количества и качества параметров. Какие допустимые количество и значения параметров. Обобщайте, обобщайте. Когда вы будете понимать язык как f(x1,x2,...,xn) только тогда можна приступать к программированию. Начните прежде всего с логики. Назовите основные функции языка. Подумайте какими способами их можно реализовать. Из этих функций придумаете основные части речи. а частей речи можеть быть много. опять же, обобщайте. Пускай есть n частей речи, тогда какие туда функции должны входить а от каких можно отказаться, при заданном n.  пример: n=3:  существительное, прилагательное, глагол, n=4: существительное, прилагательное, глагол, местоимение. и т.д. Так же обобщаем со звуками, абстрагируемся от буков вообще. Звук, фонема, это суть число, в программе. А как это число будет реализоваться у вас во рту - это нас пока не касается. И с этого числа, с помощью дополнительного модуля-писалки сделать какой-либо письменный знак. Понимаете? Максимально абстрактно, максимально продуманно и универсально. Думайте как опытные программисты. слово - это  массив тех же чисел.

Вадимий

Цитата: chyapay от августа 31, 2009, 16:43
Для этого нужно сначала на бумажке все расписать. Вот что такое язык. Каковы его параметры, как изменится язык от изменения количества и качества параметров. Какие допустимые количество и значения параметров.
Это всё хорошо, но... Я только шестой класс закончил, в седьмой поступаю, лингвистике не научен. Поможете?

Цитата: chyapay от августа 31, 2009, 16:43
Звук, фонема, это суть число, в программе. А как это число будет реализоваться у вас во рту - это нас пока не касается.
Естественно, занимаясь (Пусть как хобби и неумело) программированием, я это знаю.

Цитата: chyapay от августа 31, 2009, 16:43
слово - это  массив тех же чисел.
Из символов, это уже символы представлены числами.

Вадимий

Цитата: addewyd от августа 31, 2009, 16:23
Во всех произведениях я вижу только одну грамматику и её незначительные вариации.
Крайние разновидности отличаются не более, чем грамматика си от грамматики паскаля :)

И вообще она не генерируется. Она задана изначально.
Это так. Пока различаются в грамматике (кроме окончаний и тому подобного) только падежи, времена и числа  :(, но это дело поправимое. Скоро поправлю. (Пока chyapay не поможет мне с суперновой программой).

chyapay

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

addewyd

Цитата: Вадимий от августа 31, 2009, 17:05
ЦитироватьИ вообще она не генерируется. Она задана изначально.
Это так.
Так это ж самое главное. Остальное -- мелочи.


arseniiv

Вот хорошо shinkarom придумал, в кой раз говорю, с буквами. Но плохо, что они фиксированы. А можно так (warning, уникод, WideString!), см. вложенный "фонетический" файл. Он содержит строки с буквами, начинающиеся с : или ; и звуки на следующих строках. Первую строку файла будем пропускать, потому что если из блокнота сохранить в формате UTF-8, там три первых символа служебные - если первую строку не трогать, они нам ничего не испортят. Во второй строке написаны все использованные звуки, они пусть записываются в специальный массив. Если строка с буквой начинается с :, то мы просто добавляем её в алфавит или нет; а если она начинается с ;, то мы "разыграем" её, только если добавлена предыдущая - это чтобы не было такого, что изменённая буква в алфавит входит, а простого варианта нету - как-то тогда не очень смотрелось бы. Звуки для букв мы выбираем из следующей для буквы строки (они), но если выбранного звука нет в массиве (который сделали из 2й строки), то надо выбрать другой звук. Когда звук выбран, надо найти его в массиве и удалить оттуда. Всё это чтобы буквы звучали по-разному. Я ещё вложил дельфийский модуль с реализацией всего этого. С грамматикой простым выбором не всегда получится, тут я пока ничего не скажу... Только, увы, тогда программа должна перейти на уникод вся. Например, писа́ть в файл вместо вывода (можно найти уникодную библиотеку TntControls и установить).
Я добавил ещё поддержку гласных - может пригодиться программе узнать, какая буква какая, а ещё функцию для создания слов по частотам букв (которые определяются случайно, а для гласных они больше). Гласные буквы вместо : и ; начинаются с . и ,

Т.к. грамматические категории и всякое с грамматикой связанное прочвляется с разных сторон, лучше это ввести в алгоритм, хотя, чтоб не усложнять, можно отдельно сделать функции "выбрать части речи", "выбрать роды и числа" и т.д. как выбираются падежи из списка. Род-число можно было бы тоже поместить в список, но тогда может получиться женский род без мужского, или средний род без каких-либо других (а тогда он не нужен). А ещё можно выражать или не выражать род во мн. числе. Тут я имею ввиду изменяемый род (не как у существительных РЯ, а как у прилагательных и им подобных). И подобных нюансов много. А что ещё можно выбрать из списка: основную модель предложения - SVO, VSO или шесть остальных - или свободную - всё равно это не будет отражаться ни на чём в программе пока, кроме отображения грамматики. Свободный или несвободный порядок слов; определение перед или после определяемого, или тоже свободно.

arseniiv

Цитата: addewyd от августа 31, 2009, 17:25
Так это ж самое главное. Остальное -- мелочи.
Что поделать, если эти мелочи требуют фантазии? Согласитесь, пока ни один из нас не видел алгоритмов с фантазией (и скорее всего не увидит никогда, жаль :( )... Иначе приходится использовать много разветвлений, притом все данные записывая в программе, а не отдельно от неё, т.к. данные сильно связаны с алгоритмом - в итоге легче получить что-то неработающее, чем работающее и выдающее большую кучу интересно подобранных результатов.
К тому же, неинтересно додумывать язык, в котором всё готово. Можно сгенерировать основу - то, что так трудно обычно придумывается человеком - а потом доделать воображением...

Вадимий

Цитата: arseniiv от сентября  1, 2009, 14:46
Вот хорошо shinkarom придумал, в кой раз говорю, с буквами. Но плохо, что они фиксированы. А можно так (warning, уникод, WideString!), см. вложенный "фонетический" файл. Он содержит строки с буквами, начинающиеся с : или ; и звуки на следующих строках. Первую строку файла будем пропускать, потому что если из блокнота сохранить в формате UTF-8, там три первых символа служебные - если первую строку не трогать, они нам ничего не испортят. Во второй строке написаны все использованные звуки, они пусть записываются в специальный массив. Если строка с буквой начинается с :, то мы просто добавляем её в алфавит или нет; а если она начинается с ;, то мы "разыграем" её, только если добавлена предыдущая - это чтобы не было такого, что изменённая буква в алфавит входит, а простого варианта нету - как-то тогда не очень смотрелось бы. Звуки для букв мы выбираем из следующей для буквы строки (они), но если выбранного звука нет в массиве (который сделали из 2й строки), то надо выбрать другой звук. Когда звук выбран, надо найти его в массиве и удалить оттуда. Всё это чтобы буквы звучали по-разному. Я ещё вложил дельфийский модуль с реализацией всего этого. С грамматикой простым выбором не всегда получится, тут я пока ничего не скажу... Только, увы, тогда программа должна перейти на уникод вся. Например, писа́ть в файл вместо вывода (можно найти уникодную библиотеку TntControls и установить).
Я добавил ещё поддержку гласных - может пригодиться программе узнать, какая буква какая, а ещё функцию для создания слов по частотам букв (которые определяются случайно, а для гласных они больше). Гласные буквы вместо : и ; начинаются с . и ,

Т.к. грамматические категории и всякое с грамматикой связанное прочвляется с разных сторон, лучше это ввести в алгоритм, хотя, чтоб не усложнять, можно отдельно сделать функции "выбрать части речи", "выбрать роды и числа" и т.д. как выбираются падежи из списка. Род-число можно было бы тоже поместить в список, но тогда может получиться женский род без мужского, или средний род без каких-либо других (а тогда он не нужен). А ещё можно выражать или не выражать род во мн. числе. Тут я имею ввиду изменяемый род (не как у существительных РЯ, а как у прилагательных и им подобных). И подобных нюансов много. А что ещё можно выбрать из списка: основную модель предложения - SVO, VSO или шесть остальных - или свободную - всё равно это не будет отражаться ни на чём в программе пока, кроме отображения грамматики. Свободный или несвободный порядок слов; определение перед или после определяемого, или тоже свободно.
Ниасилил :(.

arseniiv

Ну вот :what:
Ещё напишу позже.
Лучше не читайте, что я написал про то, как алфавит генерится - оно и в модуле видно, который там в архиве. А то я сначала одно написал, а потом сделал чуть с отличиями

С вечера писал, а утром отладил и ещё придумал с частотами букв... Вот

myst

Может, кто-нибудь мне внятно в двух словах объяснит суть замысла?

Вадимий

Цитата: myst от сентября  1, 2009, 16:20
Может, кто-нибудь мне внятно в двух словах объяснит суть замысла?
Того, о чём говорил Arseniiv?

myst

Цитата: Вадимий от сентября  1, 2009, 16:28
Того, о чём говорил Arseniiv?
Что вы вообще затеяли. Что за генератор, что он генерирует, из чего?

arseniiv

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

Цитата: Вадимий от сентября  1, 2009, 16:28
Того, о чём говорил Arseniiv?
Кстати, я совсем непонятно всё написал, или хоть что-то понятно? А то не знаю, что уподробнить...

myst

Цитата: arseniiv от сентября  2, 2009, 14:18
Идеальный генератор пишет подробное описание всех конструкций языка (так, чтобы можно было его выучить).
Из чего генерирует-то?


Вадимий

Цитата: addewyd от сентября  2, 2009, 14:35
Цитата: myst от сентября  2, 2009, 14:32
Из чего генерирует-то?
из букаф, наверное...
И падежей, и чисел, и членов предложения. Прошу об этом не забывать.

addewyd

Цитата: Вадимий от сентября  2, 2009, 14:40
И падежей, и чисел, и членов предложения
Это всё необязательные для языка вещи...

Вадимий

Цитата: addewyd от сентября  2, 2009, 14:46
Цитата: Вадимий от сентября  2, 2009, 14:40
И падежей, и чисел, и членов предложения
Это всё необязательные для языка вещи...
А идинстиннйэ апизацилыйе эта букфы!!!!

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

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

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

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

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