Size: a a a

Compiler Development

2019 October 08

DL

Dmitry Lunin in Compiler Development
Brenoritvrezorkre
То есть, если мы хотим определить близость двух фраз относительно их употребления (встречаемости в тексте) — тогда мы берём и используем методы дистрибутивной семантики. Если мы хотим определить значения (meaning) фраз, то мы от дистрибутивной семантики здесь ничего не получим.
Ну а что такое по-вашему значения фраз? "Настоящая" семантика по сути тоже дистрибутивная, просто Вы можете слова ещё ассоциировать с объектами реального мира, а ML-алгоритм не может, потому что у него их в выборке нет
источник

B

Brenoritvrezorkre in Compiler Development
Peter Sovietov
Стадия синтаксического анализа в компиляторах давно уже устоялась, хорошо формализована и не следует, скорее всего, ожидать здесь каких-то прорывов. В свое время компиляторщики как раз заимствовали методы из вычислительной лингвистики. Сами же компиляторщики для лингвистов ничего, пожалуй, в ответ не придумали.
Тогда другой глупый вопрос, всегда хотелось узнать.

Есть ли реализации языков и их компиляторов с использованием не порождающих грамматик, а порождающих семантик?
источник

B

Brenoritvrezorkre in Compiler Development
Dmitry Lunin
Ну а что такое по-вашему значения фраз? "Настоящая" семантика по сути тоже дистрибутивная, просто Вы можете слова ещё ассоциировать с объектами реального мира, а ML-алгоритм не может, потому что у него их в выборке нет
Нет, настоящая семантика так не работает. Можете посмотреть работы по формальной (обычно модельной) семантике, в том числе естественных языков.
источник

B

Brenoritvrezorkre in Compiler Development
Алексей
ну вроде как есть какие-то системы с машинным обучением, которые как раз на семантику смотрят и там вроде как word2vec или аналоги используются в качестве начального этапа анализа, насколько я знаю
Ну я не отрицаю, что дистрибутивная семантика — хорошее изобретение, но по сути это не семантика. Омонимы, то есть.
источник

А

Алексей in Compiler Development
Brenoritvrezorkre
Нет, настоящая семантика так не работает. Можете посмотреть работы по формальной (обычно модельной) семантике, в том числе естественных языков.
а можно в двух предложениях примерно объяснить как работает настоящая семантика естественных языков?
источник

А

Алексей in Compiler Development
особенно в плане настоящности этой самой семантики
источник

DF

Dollar Føølish in Compiler Development
+
источник

DF

Dollar Føølish in Compiler Development
Читать работы ето долго
источник

DF

Dollar Føølish in Compiler Development
И ненужно скорее всего
источник

B

Brenoritvrezorkre in Compiler Development
Можно.

Семантика (как дисциплина) — это то, что изучает, как "семантические значения предложений определяют истинностные значения в контекстах и обстоятельствах оценки" (с) Льюис.

То есть, задан язык и задано исчисление. Мы берём некоторое предложение и пытается определить, какая структура может быть задана для этого предложения, чтобы можно было определить способ назначения ему истинности, ложности и т.п. через тот или иной набор семантических операций относительно их сатисфакции.

Это модельная семантика.

Либо, иначе, это то же самое, но не относительно назначения истинностных значений, а относительно то, какие структуры используются в терминах доказательств. Это пруф-теоретическая семантика: https://plato.stanford.edu/entries/proof-theoretic-semantics/

Есть ещё довольно много семантик самых разных происхождений и с самыми разными установками, но суть там одна: как область объектных значений соответствует области языковых значений.
источник

PS

Peter Sovietov in Compiler Development
Brenoritvrezorkre
Тогда другой глупый вопрос, всегда хотелось узнать.

Есть ли реализации языков и их компиляторов с использованием не порождающих грамматик, а порождающих семантик?
По поводу языков не очень понятно, что и как должно происходить в этом случае. Допустим, у нас семантическим представлением является IIVM IR. И что за язык можно сгенерировать на этой основе? :) В целом же, работы есть следующего, например, толка: задана модель процессора — нужно автоматически построить модуль генератора кода компилятора на этой основе. Тут как раз генерируется грамматика и правила преобразования.
источник

B

Brenoritvrezorkre in Compiler Development
Дистрибутивная семантика этого не определяет.
источник

B

Brenoritvrezorkre in Compiler Development
Peter Sovietov
По поводу языков не очень понятно, что и как должно происходить в этом случае. Допустим, у нас семантическим представлением является IIVM IR. И что за язык можно сгенерировать на этой основе? :) В целом же, работы есть следующего, например, толка: задана модель процессора — нужно автоматически построить модуль генератора кода компилятора на этой основе. Тут как раз генерируется грамматика и правила преобразования.
Ну суть порождающих семантик в том, что у Хомского семантика задавалась только в самом конце, после синтаксического разбора, а в порождающих семантиках мы задаём множество структур на каждом этапе порождения.
источник

PS

Peter Sovietov in Compiler Development
Brenoritvrezorkre
Ну суть порождающих семантик в том, что у Хомского семантика задавалась только в самом конце, после синтаксического разбора, а в порождающих семантиках мы задаём множество структур на каждом этапе порождения.
Ну, я Вам привел конкретный пример с ADL-синтезом в компиляторе, это как раз подход от семантики к порождению языка и правил преобразований. Отвлеченно я не готов рассуждать :)
источник

B

Brenoritvrezorkre in Compiler Development
То есть, тут вы бы — не знаю вашей терминологии — сразу бы проводили и синтаксический анализ, и семантический.
источник

А

Алексей in Compiler Development
Brenoritvrezorkre
Можно.

Семантика (как дисциплина) — это то, что изучает, как "семантические значения предложений определяют истинностные значения в контекстах и обстоятельствах оценки" (с) Льюис.

То есть, задан язык и задано исчисление. Мы берём некоторое предложение и пытается определить, какая структура может быть задана для этого предложения, чтобы можно было определить способ назначения ему истинности, ложности и т.п. через тот или иной набор семантических операций относительно их сатисфакции.

Это модельная семантика.

Либо, иначе, это то же самое, но не относительно назначения истинностных значений, а относительно то, какие структуры используются в терминах доказательств. Это пруф-теоретическая семантика: https://plato.stanford.edu/entries/proof-theoretic-semantics/

Есть ещё довольно много семантик самых разных происхождений и с самыми разными установками, но суть там одна: как область объектных значений соответствует области языковых значений.
а область объектных значений может быть к примеру векторным пространством?
источник

B

Brenoritvrezorkre in Compiler Development
Это в любом случае не вектор слов или фраз.
источник

PS

Peter Sovietov in Compiler Development
Brenoritvrezorkre
Ну суть порождающих семантик в том, что у Хомского семантика задавалась только в самом конце, после синтаксического разбора, а в порождающих семантиках мы задаём множество структур на каждом этапе порождения.
К слову, а метод грамматического сжатия Вы бы к какому варианту отнесли? :)
источник

B

Brenoritvrezorkre in Compiler Development
Я слишком нуб в компиляторных вопросах.
источник

PS

Peter Sovietov in Compiler Development
Brenoritvrezorkre
Я слишком нуб в компиляторных вопросах.
Нет-нет, тут ничего специфичного нет. Это известный подход общего назначения (хотя в компиляторах иногда его тоже можно встретить):

https://en.wikipedia.org/wiki/Grammar-based_code
источник