Author Topic: succotashe ridel  (Read 180 times)

0 Members and 1 Guest are viewing this topic.

Offline basta

  • Posts: 2872
  • Gender: Male
on: July 4, 2019, 21:05
Наконец-то, проект, который не стыдно показать уважаемой публике, поскольку есть подробнейшее словесное описание с примерами и исходный код парсера. Целей у проекта три.
1. Язык должен иметь грамматику, похожую на стандартную европейскую.
2. Текст на этом языке должен быть похож на Интерлингву IALA, хотя бы отдалённо.
3. Текст должен быстро парситься компьютером.

Самым доступным для меня оказался парсер типа LALR, как у Ложбана. Надо сказать, что алгоритм LALR очень глупый и много чего запрещает. Например, он ругается на многозначность, если грамматика допускает пропуск разных синтаксических ролей в непосредственной близости, потому что ему не понятно, какая это пустота - от одной роли или от другой. Но результат меня удовлетворил даже несмотря на ограничения.

Парсер не смотрит в словарь, не понимает и не переводит значения слов. Он только рисует отступами абстрактное синтаксическое дерево и узнаёт части речи по окончаниям или по словам целиком, которых не много. Но если в предложении будет хоть одна грамматическая ошибка, ничего кроме лаконичного "syntax error" Вы не получите. По-хорошему надо показывать место ошибки и угадывать варианты, которые мог иметь в виду пользователь, как это делал парсер Ложбана, но для меня это не так важно, поэтому пока реализация этой функции откладывается.

Описание там: https://github.com/rgj40q/laughing-succotash/blob/master/doc.md
Исходный код там же: https://github.com/rgj40q/laughing-succotash/

Отче наш:

patri nostrel inil celes tet
e nomine tuel sanctificiaza une
e regne tuel veneza
e voluntate tuel faciaza une
inin le cele comef en superin le terre etiamef
e te daiza ain nose hodien pane nostrel quotidianel
e te pardoniza ain nose debites nostrel
e comen etiamem nose ones pardonit ain debitores nostreh
e te nonen induciza nose inin tentatione
sed te liberiza nose din le male
e amenot

Выхлоп парсера:

Code: [Select]
[text]
    [sentence]
        [argument]
            [noun phrase]
                patri: noun, singular
                [appositive phrase]
                    nostrel: appositive, intransitive
                [appositive phrase]
                    inil: appositive, transitive
                    [subargument]
                        [noun subphrase]
                            celes: noun, plural
        tet: verb, intransitive, present
    e: conjunction for sentence
    [sentence]
        [argument]
            [noun phrase]
                nomine: noun, singular
                [appositive phrase]
                    tuel: appositive, intransitive
        sanctificiaza: verb, transitive, imperative, passive
        [argument]
            [noun phrase]
                une: noun, singular
    e: conjunction for sentence
    [sentence]
        [argument]
            [noun phrase]
                regne: noun, singular
                [appositive phrase]
                    tuel: appositive, intransitive
        veneza: verb, intransitive, imperative
    e: conjunction for sentence
    [sentence]
        [argument]
            [noun phrase]
                voluntate: noun, singular
                [appositive phrase]
                    tuel: appositive, intransitive
        faciaza: verb, transitive, imperative, passive
        [argument]
            [noun phrase]
                une: noun, singular
        [adverbA phrase]
            inin: adverb A, transitive
            [subargument]
                le: article
                [noun subphrase]
                    cele: noun, singular
                    [adverbB subphrase]
                        comef: subadverb B, intransitive
        en: conjunction for adverb A
        [adverbA phrase]
            superin: adverb A, transitive
            [subargument]
                le: article
                [noun subphrase]
                    terre: noun, singular
                    [adverbB subphrase]
                        etiamef: subadverb B, intransitive
    e: conjunction for sentence
    [sentence]
        [argument]
            [noun phrase]
                te: noun, singular
        daiza: verb, transitive, imperative
        [adverbA phrase]
            ain: adverb A, transitive
            [subargument]
                [noun subphrase]
                    nose: noun, singular
        [adverbA phrase]
            hodien: adverb A, intransitive
        [argument]
            [noun phrase]
                pane: noun, singular
                [appositive phrase]
                    nostrel: appositive, intransitive
                [appositive phrase]
                    quotidianel: appositive, intransitive
    e: conjunction for sentence
    [sentence]
        [argument]
            [noun phrase]
                te: noun, singular
        pardoniza: verb, transitive, imperative
        [adverbA phrase]
            ain: adverb A, transitive
            [subargument]
                [noun subphrase]
                    nose: noun, singular
        [argument]
            [noun phrase]
                debites: noun, plural
                [appositive phrase]
                    nostrel: appositive, intransitive
    e: conjunction for sentence
    [sentence]
        [adverbA phrase]
            comen: adverb A, intransitive
            [adverbB phrase]
                etiamem: adverb B, intransitive
        [argument]
            [noun phrase]
                nose: noun, singular
        [argument]
            [noun phrase]
                ones: noun, plural
        pardonit: verb, transitive, present
        [adverbA phrase]
            ain: adverb A, transitive
            [subargument]
                [noun subphrase]
                    debitores: noun, plural
                    [appositive subphrase]
                        nostreh: subappositive, intransitive
    e: conjunction for sentence
    [sentence]
        [argument]
            [noun phrase]
                te: noun, singular
        [adverbA phrase]
            nonen: adverb A, intransitive
        induciza: verb, transitive, imperative
        [argument]
            [noun phrase]
                nose: noun, singular
        [adverbA phrase]
            inin: adverb A, transitive
            [subargument]
                [noun subphrase]
                    tentatione: noun, singular
    sed: conjunction for sentence
    [sentence]
        [argument]
            [noun phrase]
                te: noun, singular
        liberiza: verb, transitive, imperative
        [argument]
            [noun phrase]
                nose: noun, singular
        [adverbA phrase]
            din: adverb A, transitive
            [subargument]
                le: article
                [noun subphrase]
                    male: noun, singular
    e: conjunction for sentence
    [sentence]
        amenot: verb, impersonal, present

Буду рад почитать Ваши комментарии, не хотелось бы остаться писателем в стол, так сказать.  :)
Wer wartet mit Besonnenheit // der wird belohnt zur rechten Zeit.

Offline Mona

  • Posts: 1040
  • Gender: Male
Reply #1 on: August 21, 2019, 22:19
Парсер в моей голове посчитал слово "e", первые три штуки не союзом (conjunction for sentence), а частицей со смыслом пожелания, рус. "да". Дальше вроде действительно идут союзы рус. "и", но из четырех два лишние, их там не должно быть просто по тексту. Ну и, разумеется, перед словом "аминь" этот "e" мозолит глаза.

А так - вроде работает как-то. Хочется, правда, спросить компьютер: нафига тебе этот текст парсить, если ты в нем ничего не понимаешь?

Как в том анекдоте:
- Официант! Я что-то не пойму, это чай или кофе?
- А какая тебе, XYZ, разница, раз ты не поймешь?

Offline Wolliger Mensch

  • Global Moderator
  • *
  • Posts: 53880
  • Gender: Male
  • Haariger Affe
    • Подушка
«Вот интересно, каких лингвистических жемчуг можно найти в море отодвинутых книг», Ян Гавлиш.
«Впредь прошу помнить, что придумал игру не для любых ассоциаций, а для семантически оправданных. Например, чтó это такое: „рулетке“ — „выпечке“?? Тем более, что сей ляпсус я сам совершил…», Марбол
«Ветхий Завет написан на иврите и частично на армейском», Vesle Anne
«МЛ(ять)КО … ПЛ(ять)NЪ», Тася
«Вот откроет этот спойлер, например, Марго, ничего не подозревая, а потом будут по всему форуму блюющие смайлики…», Авал

Offline Awwal12

  • Super Moderator
  • *
  • Posts: 63061
  • Gender: Male
Reply #3 on: August 21, 2019, 23:46
Offtop
При взгляде на название что-то мой "жёполизк" вспомнился. Прошу прощения.
Фашиствующий имперец, асексуал и многожёнец, татарофоб, заслуженный функционер РПЦ. Слушает радио "Радонеж" и терпеть не может счастливых людей.

"Да здравствуют ДОЯРКИ!! Потому что доярки - это раса сверхчеловеков. За ними будущее планеты. Они переживут даже атомную войну, потому что доярки вечны, ибо хтоничны. И дадут потомство, которое тоже будет доярами и доярками. Ура, товарищи!.." (c) Awwal12

Offline Wolliger Mensch

  • Global Moderator
  • *
  • Posts: 53880
  • Gender: Male
  • Haariger Affe
    • Подушка
Reply #4 on: August 22, 2019, 00:41
Offtop
При взгляде на название что-то мой "жёполизк" вспомнился. Прошу прощения.

Зипджолзик? :o ;D
«Вот интересно, каких лингвистических жемчуг можно найти в море отодвинутых книг», Ян Гавлиш.
«Впредь прошу помнить, что придумал игру не для любых ассоциаций, а для семантически оправданных. Например, чтó это такое: „рулетке“ — „выпечке“?? Тем более, что сей ляпсус я сам совершил…», Марбол
«Ветхий Завет написан на иврите и частично на армейском», Vesle Anne
«МЛ(ять)КО … ПЛ(ять)NЪ», Тася
«Вот откроет этот спойлер, например, Марго, ничего не подозревая, а потом будут по всему форуму блюющие смайлики…», Авал

Offline Awwal12

  • Super Moderator
  • *
  • Posts: 63061
  • Gender: Male
Фашиствующий имперец, асексуал и многожёнец, татарофоб, заслуженный функционер РПЦ. Слушает радио "Радонеж" и терпеть не может счастливых людей.

"Да здравствуют ДОЯРКИ!! Потому что доярки - это раса сверхчеловеков. За ними будущее планеты. Они переживут даже атомную войну, потому что доярки вечны, ибо хтоничны. И дадут потомство, которое тоже будет доярами и доярками. Ура, товарищи!.." (c) Awwal12

Offline Wolliger Mensch

  • Global Moderator
  • *
  • Posts: 53880
  • Gender: Male
  • Haariger Affe
    • Подушка
Reply #6 on: August 22, 2019, 09:46

Вот и я о том же — сходство названий не случайно… ;D
«Вот интересно, каких лингвистических жемчуг можно найти в море отодвинутых книг», Ян Гавлиш.
«Впредь прошу помнить, что придумал игру не для любых ассоциаций, а для семантически оправданных. Например, чтó это такое: „рулетке“ — „выпечке“?? Тем более, что сей ляпсус я сам совершил…», Марбол
«Ветхий Завет написан на иврите и частично на армейском», Vesle Anne
«МЛ(ять)КО … ПЛ(ять)NЪ», Тася
«Вот откроет этот спойлер, например, Марго, ничего не подозревая, а потом будут по всему форуму блюющие смайлики…», Авал

 

With Quick-Reply you can write a post when viewing a topic without loading a new page. You can still use bulletin board code and smileys as you would in a normal post.

Note: this post will not display until it's been approved by a moderator.
Name: Email:
Verification:
Type the letters shown in the picture
Listen to the letters / Request another image
Type the letters shown in the picture:
√49 Напишите ответ строчными буквами:
«Сто одёжек, все без застёжек» — что это?: