формы Бэкуса-Наура (БНФ) русского языка

12
response
На сайте с 01.12.2004
Offline
324
4049

в общем, весь вчерашний вечер погружался в лингвистику. чессно скажу - моск пухнет.

так вот. помимо прочего, вышел на преусловутые формы Бэкуса-Наура. Это такие штучечки, способ записи правил естесственного, либо искуственного языка, например (самое распространенное в сети):

<предложение> := <подлежащее><сказуемое>

читается как "предложение является (например - прим. мое) подлежащим, за которым следует сказумое". Т.е. как я понял, это одно из множества правил, описывающих корректно построенное предложение на конкретном языке.

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

Может кто что знает по поводу, или объяснит мне, что я неправильно понял идею этих самых БНФ? Или мож знакомые лингвисты у вас есть? ) мои-то чет фигово учились, не знают, о чем речь )

Конечно, я думал о том, что можно проанализировать какое-то количество текстов и в итоге набрать множество подобных правил, но хотелось бы врубицца все-таки в теорию, и понять, правильно или как я вообще все это понимаю.

Короче, есть лингвисты среди нас? )

Однопоточный парсер ключевых слов Магадан (http://magadanparser.ru) (со свистелками) Многопоточный парсер ключевых слов Солнечный (http://sunnyparser.ru) (без свистелок)
Mad Cat
На сайте с 29.01.2006
Offline
89
#1

Нам это в универе на втором курсе читали :) и я нифига не лингвист, я прикладной математик.

Рекомендую поискать учебники или методички по "теории программирования" или "основам программирования", там БНФ и нормализованные БНФ должны быть описаны.

Я попробую поискать у себя, может в цифре что-то найду, поделюсь.

Профессиональное тестирование ПО и web-сервисов (http://www.testlab2.com)
response
На сайте с 01.12.2004
Offline
324
#2
Mad Cat:
Нам это в универе на втором курсе читали :)

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

Mad Cat:

Рекомендую поискать учебники или методички по "теории программирования" или "основам программирования", там БНФ и нормализованные БНФ должны быть описаны.

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

Mad Cat:

Я попробую поискать у себя, может в цифре что-то найду, поделюсь.

ага, спасибо. но это хотя бы то, что мне нужно по постановке задачи? )

Mad Cat
На сайте с 29.01.2006
Offline
89
#3
response:
но это хотя бы то, что мне нужно по постановке задачи? )

Не хочу расстраивать но по-моему нет. 😕

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

Вроде как определение говорит что БНФ - это способ описания формального языка.

Имея мета-алфавит

  • < – левое ограничение выражения
  • > – правое ограничение выражения
  • ::= – "определено как"
  • | – или

и алфавит описываемого языка (возьмем к примеру 0, 1, 2, 3, 4, 5, 6, 7, 8, 9) можно построить определение понятия "натуральное число".

Выглядеть это будет примерно так:

  • <нуль> ::= 0
  • <ненулевая цифра> ::= 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
  • <цифра> ::= <нуль> | <ненулевая цифра>
  • <последовательность цифр> ::= <нуль> | <ненулевая цифра> | <цифра><последовательность цифр>
  • <натуральное число> ::= <цифра> | <ненулевая цифра><послідовність цифр>

Т.е. описать таким образом генерацию осмысленного текста - задача имхо за пределами реальности.

response
На сайте с 01.12.2004
Offline
324
#4
Mad Cat:

Т.е. описать таким образом генерацию осмысленного текста - задача имхо за пределами реальности.

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

имея набор правил построения корректного предложения, мы отсекаем заведомо некорректные предложения.

Например, имея одно правило <предложение> := <сущ><прил>., мы строим, к примеру, предложение "Кошка серая.", но при этом избегаем построения варианта "Кошка на.", ибо правило <предложение> := <сущ><предлог>. у нас не определено, соотв. запрещено.

Я думаю яндекс в своей весне (рефераты) пользуется чем-то подобным.

mih4
На сайте с 15.04.2007
Offline
142
#5
response:

Я думаю яндекс в своей весне (рефераты) пользуется чем-то подобным.

Тут надо брать во внимание кроме структуры предложения еще частоту уподребления слова в определенном языке.Чем больше по обьему не спецефический текст, тем более он будет включать в себя наиболеее употребляемые слова.Для этого можно поискать частотные словари.Допустим в английском наиболее употребляемые 1000 слов занимает 65% текста. В свете этого если тупо использовать алгоритм "весны" то бан тебе обеспечен.:)

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

response
На сайте с 01.12.2004
Offline
324
#6
mih4:
Тут надо брать во внимание кроме структуры предложения еще частоту уподребления слова в определенном языке.Чем больше по обьему не спецефический текст, тем более он будет включать в себя наиболеее употребляемые слова.Для этого можно поискать частотные словари.Допустим в английском наиболее употребляемые 1000 слов занимает 65% текста. В свете этого если тупо использовать алгоритм "весны" то бан тебе обеспечен.:)
доправил сейчас, в гугле по запросу частотный словарь по русскому языку очень много релевантной инфы,

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

кстати, в процессе кравлинга нашел вот такой сайтег: http://aot.ru .

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

Как минимум упрощается задача грамотной подстановки кеев в имеющиеся тексты.

кстати, есть еще интересная софтина, может кто не видел еще, от яндекса: http://company.yandex.ru/technology/products/mystem/mystem.xml

ёгурт
На сайте с 24.10.2006
Offline
89
#7

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

Да, и потом в сети столько контента, юзай не хочу...

Нас банят с улыбкой.
mih4
На сайте с 15.04.2007
Offline
142
#8

Вспомнил еще одну штучку.Когда-то при союзе купил книгу по занимательной всячине(уже и не вспомню).Так вот, там была большая таблица по генерации псевдо текста очень умного.Несколько колонок в которых отражена структура предложения.Ниже в колонках собраны слова.Поочередно беря из каждой колонки из случайных строк слово,мы получаем цельное предложение каждый раз разное.Можно составить словари для разных тем(имеется ввиду существительные),для адалта можно тоже довавить отдельные глаголы:).Сделать допустим штук 5-10 шаблонов-структур предложений, которые будут случайным образом менятся.И соответственно если в каждой колонке будет глаголов и существительных,прилагательных по 100, то вариации лежат в огромных пределах.

Проще написать что либо с математическим алгоритмом.Можно навводить разных условий,типа с если берем глагол такой-то, то случайным образом с ним всегда идет существительное такое-то-50%,такие-то 20%,остальные -3%.

Где-то в языковых можно найти процентаж сопутствующих слов.

когда работая еще на спектруме,пытался делать программу на бейсике по анализу выигрышей в лотарею.:)КАК вспомню,вздрогну.Тогда по теориям вероятности пришлось кучу литературы штудировать.

response
На сайте с 01.12.2004
Offline
324
#9
mih4:
Вспомнил еще одну штучку.Когда-то при союзе купил книгу по занимательной всячине(уже и не вспомню).Так вот, там была большая таблица по генерации псевдо текста очень умного.Несколько колонок в которых отражена структура предложения.Ниже в колонках собраны слова.Поочередно беря из каждой колонки из случайных строк слово,мы получаем цельное предложение каждый раз разное.Можно составить словари для разных тем(имеется ввиду существительные),для адалта можно тоже довавить отдельные глаголы:).Сделать допустим штук 5-10 шаблонов-структур предложений, которые будут случайным образом менятся.И соответственно если в каждой колонке будет глаголов и существительных,прилагательных по 100, то вариации лежат в огромных пределах.
Проще написать что либо с математическим алгоритмом.Можно навводить разных условий,типа с если берем глагол такой-то, то случайным образом с ним всегда идет существительное такое-то-50%,такие-то 20%,остальные -3%.

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

Если хочешь, можно сообразить че-нить на двоих, реализовав систему собственных условий и создав словариков. Один не скоро забацаю, если ваще осилю 😂

response
На сайте с 01.12.2004
Offline
324
#10
ёгурт:
дерзайте, только научить скрипт писать осмысленный текс, тянет Нобелевскую премию, а не использования разработки для генерации сайтов.
Да, и потом в сети столько контента, юзай не хочу...

да речи об осмысленном тексте не идет. Суть в возможности генерировать дофига контента, не скатываясь при этом к "шлюхи питера был красивым" :)

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий