Русские вычислители

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Русские вычислители » Вычислители по-русски » Считаю, что русские падежи и склонения должны подлежать обработке.


Считаю, что русские падежи и склонения должны подлежать обработке.

Сообщений 1 страница 19 из 19

1

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

Отредактировано ВежливыйЛис (23.06.2016 14:42:30)

0

2

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

0

3

ВежливыйЛис написал(а):

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


Что такое «тулчейн»? В русском языке такого слова нет. Как это переводится?

0

4

Считаю, что русские падежи и склонения должны подлежать обработке.


А почему вы так считаете? Раскройте мысль: что это даст, чего не даст отсутствие этого, и пр.

0

5

падеж - это грамматическая категория
  https://ru.wikipedia.org/wiki/Падеж
грамматическая категория
  - это система грамматических значений (граммем),
  система, задающая разбиение совокупности словоформ на непересекающиеся классы
  Так, категория числа в русском языке включает в себя взаимоисключающие граммемы «единственное число» и «множественное число»
Грамматическое значение
  — значение, выражаемое словоизменительной морфемой (грамматическим показателем)
морфема
  наименьшая единица языка, имеющая некоторый смысл
  Деление морфем на части приводит только к выделению незначимых элементов — фонем
Фоне́ма
  (др.-греч. φώνημα — «звук») — минимальная смыслоразличительная единица языка.
  при замене одной фонемы на другую получится другое слово (<д>ом — <т>ом);
  при изменении порядка следования фонем также получится другое слово (<сон> — <нос>);
  при удалении фонемы также получится другое слово (т<р>он — тон).
  Фонема как абстрактная единица языка соответствует звуку речи как конкретной единице, в которой фонема материально реализуется.
Речевой звук
  звук   не имеет  смыслового значения
  --
  звук, образуемый произносительным аппаратом человека
  (глотка, ротовая полость с языком, лёгкие, носовая полость, губы, зубы)
  звуки речи подразделяются на шумы и тоны
  Тоновые звуки образуются при участии голосовых связок, шумовые — препятствиями в полости рта.
  По наличию этих составляющих можно провести первую классификацию речевых звуков:
    Гласные — тоновые
    Глухие согласные — шумовые
    Сонорные согласные — тоновые со слабой примесью шума
    Звонкие согласные — шумовые с участием тона
  звук является наименьшей основной единицей языка наряду со словом, словосочетанием и предложением.
Слог
  В связной речи звуки не произносятся отдельно друг от друга.
  Мельчайшие единицы, на которые членится речевой поток, называются слогами.

  где здесь буквы и символы?

Транскрипция
   точная запись звуков речи
   При записи транскрипции слова надо
   обозначить каждый звук отдельной буквой, поставить знак ударения, знак мягкости [‘].
Буквы
   это графические знаки, с помощью которых звуки речи обозначаются при письме.
   Полного соответствия между буквами и звуками нет. Всего 33 буквы.
   Между буквами и звуками нет однозначного соответствия.
     Один звук может передаваться разными буквами:
     в словах циркуль [цыркул’ ], улыбаться [улыбаца ] звук [ц ] передается буквой ц и буквами тс (тьс).
     Одна буква может означать разные звуки:
     Например, корова — [карОва]
   Вследствие этого, в слове может не совпадать написание и звучание (например несовпадать количество букв и звуков).
Слоги
   последовательность звуковых сегментов, выступающая как
   единое произносительное и структурное целое, своего рода речевой квант.
   в качестве единицы письма и чтения выступает не буква, а слог,
   т.е. сочетание букв для обозначения согласного и гласного звуков, где буквы взаимно обусловлены.
   внутри слога действуют так называемые правила коартикуляции,
   т.е. совмещения во времени неантагонистических признаков соседних звуков.
   Двузначность букв связана со слоговым принципом функционирования русской графики.
   Сущность этого принципа заключается в том, что
   Слоговый принцип используется
   для обозначения твёрдости и мягкости согласных, а также при обозначении согласного звука [й].
   в артикуляционной системе слог реализуется не как механическая сумма составляющих его звуков, а
   как цельный комплекс движений, т.е. задается единым блоком нейрофизиологических команд к мышцам (Л.А.Чистович).
   В частности, артикуляция гласного накладывается на артикуляцию предшествующего согласного:

   так, в слове куб вытягивание губ, свойственное у, происходит уже на звуке к.
   Аналогичным образом, при «таймировании» (задании длительностей звуков) учитывается их положение в слоге:
   наличие комплекса согласных после гласного ведет к сокращению последнего, а отсутствие конечных согласных – к удлинению.
   С точки зрения речевой аэродинамики слог есть минимальный звуковой отрезок,
   на который приходится нарастание и спад величины воздушного потока («дыхательный импульс»).
   В акустическом сигнале «дыхательному импульсу» отвечает восходяще-нисходящая дуга звукового давления – «волна звучности» (или сонорности).

   Тут интересно взаимоотношение слогов и морфем. Являются ли слоги морфемами и если да, то почему? не являются.
   В большинстве языков мира членение слова на минимальные значимые единицы (морфемы) и на слоги не скоррелировано.
   Сравним морфологическое и слоговое строение русского слова отыскалась: от+иск+а+л+а+сь [а=тыc=ка=лас'].
   Границы морфем и слогов здесь не соотнесены: части одной морфемы оказываются внутри разных слогов, соединяясь с частями соседних морфем,
   т.е. имеет место слоговое переразложение морфем.
слова
   делятся на слоги.

Большинство языков мира имеют фиксированную слоговую структуру: возможные комбинации фонем в слоге жестко регламентированы.
В английском тоже нет однозначного соответствия между буквами и звуками.
Каждый язык обладает своими собственными правилами соединения фонем в слоги.
Одни соединения приемлемы в языке, другие - нет.

Ну ок, а почему в компьютерных науках слоги отсутствуют в цепочке терминов между буквами и словами?
Или морфему можно сравнить с токеном?

Ихние ("ихние" это не то же самое, что "их", это слово специально используется для выражения презрения) компиляторы
со слогами не работают! буквы -> токены -> фразы
Но мы-то знаем, что без словоизменения невозможно без слёз читать/писать по-русски!

http://files.school-collection.edu.ru/dlrstore/417eba40-23bc-f99f-5f68-505e7449c445/Image973.gif
Инициаль противопоставляется финали. Финаль подразделяется на медиаль (ее представляют полугласные), централь (представлена гласными) и терминаль (представлена полугласными или носовыми).

СЛОВОИЗМЕНЕ́НИЕ
   В грамматике: изменение слов в склонении по падежам (имён), в спряжении по лицам (глаголов).

Отредактировано ВежливыйЛис (09.07.2016 19:37:54)

0

6

ВежливыйЛис написал(а):

Ну ок, а почему в компьютерных науках слоги отсутствуют в цепочке терминов между буквами и словами?
Или морфему можно сравнить с токеном?

- Хе... Всё правильно. Несоответствие между письмом и "слогом" везде. Во всех языках. В "транскрипциях" - ваще бардак...
- Ну не было в древности ни осциллографов, (характериографы), ни частотомеров, али подобных емя приборов. Иначе предыдущие многократные реформы языка и его отражения в письме не преминули бы проявиться. А без убедительных доказательств "прожектные" формы прогресса всегда уступали "трактатнымъ". Вот и выдумывали "транскрипции", как костыли... (кто во что горазд)))
- Не, если по большому рассудить - описать все оттенки произношения почти невозможно. Значит, надо упрощать, группировать, обобщать:
Есть твёрдая, (взрослая) группа внегласных, (глухих), - "п, т, t?, к" (+ в этносах "язычковое-к") \ со-гласных, - "б, д, d?, г, // щелевых внегласных, (глухих), - "ф, с, ш, х" \ щелевых со-гласных - "в, з, ж, (гх)", а есть мягкая, (детская) - "пь, ть, кь" и т. д. Эти же звуки станут "щёлкающими" или "обжигающими", если их воспроизводить, втягивая воздух...
Есть открытая, (взрослая) группа гласных - "у, о, а, э, ы", а есть мягкая, (детская), но это не всегда алфавитное произношение "ю, ё, я, е, и"...
(тюк, тётка, тяпка, темень, кит/ п`ю, п`ёт, п`янница, п`едестал, ч`и-либо)...
Если любое "новое" - глубоко забытое "старое" - то вводим "носитель" звукоряда... (как вариант)


Есть носовые со-гласные, (я бы их и назвал "сонорными") - "м", (п - через нос), "н", (т - через нос), "g?", (к - через нос)
Есть цикличная "п" = губная "р", (чаще упоминается в литературе, как "тпру, кобыла!"), есть цикличная "т" ="р", есть цикличная язычковая "г" ("картавая", язычковая-р), есть обтекаемая "т" = "л"...
- Что имеем на "выходе"?
Разновидности птtк, бдdг; первые - под "носителем", (подводные, "утонувшие", а потому и "глухие"), вторые - над "носителем". (надводные, потому и "озвученные")
Остаётся обобщить эти 8 символов, оставив лишь 4 и заменить их на упрощенные.
Разновидности  уоаэы, - в "разрыве" носителя, где "у" - нижний обрубок синусоиды, "а" - верхний.

Отредактировано sandro (23.08.2016 10:35:01)

0

7

ВежливыйЛис написал(а):

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

Отредактировано ВежливыйЛис (23.06.2016 12:42:30)


Соглашусь если сможете сформулировать как она должна их обрабатывать.

0

8

рст256
Закидываем в чёрный ящик данные и свой вопрос или команду, а он нам ответ.
От ящика нужно немного:
1) получение основы слова
2) получение слова по падежу и основе.
3) определения падежа.
4) определение части речи.

2) Решается словарём и набором алгоритмов по каждому классу.
1) Обратная задача к пункту 2. Перебираем окончания и откусываем до тех пор пока не найдём в словаре или не станет минимальным.
3) Решается просто берём основу и перебором падежей по методу из пункта 2.
Можно улучшить по наличию смежных слов.
4) Словарь плюс окончания плюс нечёткая логика вполне себе работают хорошо.

0

9

Павиа написал(а):

рст256
Закидываем в чёрный ящик данные и свой вопрос или команду, а он нам ответ.
От ящика нужно немного:
1) получение основы слова
2) получение слова по падежу и основе.
3) определения падежа.
4) определение части речи.

2) Решается словарём и набором алгоритмов по каждому классу.
1) Обратная задача к пункту 2. Перебираем окончания и откусываем до тех пор пока не найдём в словаре или не станет минимальным.
3) Решается просто берём основу и перебором падежей по методу из пункта 2.
Можно улучшить по наличию смежных слов.
4) Словарь плюс окончания плюс нечёткая логика вполне себе работают хорошо.


Видел сегодня Валентина?
Это "Валентин" в род.п. или "Валентина" в им.п.?
И для ответа нужно точно определить какая это часть речи, т.е. морфологический разбор минимум.
Но тогда уже давайте ставить задачу как "распознавание команд на естественном языке", а иначе это смахивает на забивание гвоздей электронными микроскопами.

И вопрос был о семантической обработке. Т.е. для чего будет использована информация о том же падеже? Просто для проверки на грамматические ошибки по правилам русского языка?

Отредактировано рст256 (21.01.2017 02:31:37)

0

10

рст256
Так надо с чего-то начинать.

0

11

Павиа написал(а):

рст256
Так надо С чего-то начинать.

Тогда думаю стоит начать С концепции "Именной группы"(ИГ), и ее семантики.

Т.е. ИГ в ЯП является своего рода свойством некого объекта, пример кода:

Код:
строка С = "";

напечатать длину С; // 0
С = С + "123";
напечатать длину С; // 3
напечатать предыдущую длину С; // 0
С = С + "4";
напечатать длину С; // 4
напечатать предыдущую длину С; // 3
напечатать исходную длину С; // 0
{
   С = С + "5";
   напечатать длину С; // 5
   напечатать предыдущую длину С; // 4
   напечатать исходную длину С; // 4
   С = С + "6";
   напечатать длину С; // 6
   напечатать предыдущую длину С; // 5
   напечатать исходную длину С; // 4
}
напечатать длину С; // 6
напечатать предыдущую длину С; // 3
напечатать исходную длину С; // 0
С = С + "    ";
напечатать длину С; // 10
напечатать предыдущую длину С; // 6

удалить пробелы в конце С
напечатать длину С; // 6
напечатать предыдущую длину С; // 10
С = С + "7";
напечатать длину С; // 7
напечатать предыдущую длину С; // 6
напечатать длину С до удаления пробелов; // 10

С = подстрока с 1 по 3 из С + С;
напечатать длину С; // 11
напечатать предыдущую длину С; // 7

удалить пробелы в начале С
напечатать длину С; // 7
напечатать длину С до удаления пробелов; // 11
напечатать длину С до удаления пробелов в конце; // 10

Отредактировано рст256 (29.01.2017 04:38:56)

0

12

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

0

13

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

Такая задача в Валентине ставилась и решалась посредством "множественности конструкций" - многочисленным синтаксическим сахаром.
Например список команд (конструкций) для создания переменной:
СОЗДАЕМ ЛОКАЛЬНУЮ ПЕРЕМЕННУЮ
СОЗДАДИМ ЛОКАЛЬНУЮ ПЕРЕМЕННУЮ 
СОЗДАТЬ ЛОКАЛЬНУЮ ПЕРЕМЕННУЮ
ДОБАВИТЬ ЛОКАЛЬНУЮ ПЕРЕМЕННУЮ
ДОБАВИМ ЛОКАЛЬНУЮ ПЕРЕМЕННУЮ
ДОБАВЛЯЕМ ЛОКАЛЬНУЮ ПЕРЕМЕННУЮ

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

0

14

Видел сегодня Валентина?
Это "Валентин" в род.п. или "Валентина" в им.п.?

Это однозначно родительный падеж мужского рода. Иначе надо менять порядок слов.

0

15

ставилась и решалась посредством "множественности конструкций" - многочисленным синтаксическим сахаром.<...>Естественно никакого анализа не происходило

Это значительно увеличивает нагрузку (необходимость описать каждое словосочетание в нескольких падежах) и избыточность кода. Помимо этого, никак не проверяется ошибка неправильного указания падежей в конструкции, что может легко вводить в заблуждение:
ПРИСВОИТЬ ВАЛЕНТИНУ ЮРИЮ
и
ПРИСВОИТЬ ВАЛЕНТИНЕ ЮРИЯ
имеют одинаковый смысл с точки зрения В-ны, но совершенно противоположный с точки зрения русского, ошибки в окончаниях неизбежны и распространены.
Как минимум, требуется дополнить порядок слов требованием падежа, как максимум - передавать смысл через падеж, а не порядок слов.

P.S.: давно не писали, а как дела с ВАЛЕНТИНОЙ-2?
Даже обсуждения её не осталось в архиве(

0

16

Падежи важны.
Для анализа таких сырых тестов можно применять смыслоуловители.

С начало происходит расщепление слов на цепочки слов. Идёт смена языка с обыденного на искусственный язык. Такой, который точно и строго отображает ход мысли.
Потом происходит увязывания цепочек. Во время этой операции отрубаются лишние хвосты. Затем получившийся граф улучшают путём сжатия.  Сжатие осуществляется путём замены по образцам.

Потом убирается слова не несущие смысловую нагрузку. В сухом остатке Остаётся структура описывающая мысль.
Более развёрнуто здесь:
https://habrahabr.ru/company/abbyy/blog/271601/

0

17

Это значительно увеличивает нагрузку (необходимость описать каждое словосочетание в нескольких падежах) и избыточность кода.

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

Помимо этого, никак не проверяется ошибка неправильного указания падежей в конструкции, что может легко вводить в заблуждение:

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

ПРИСВОИТЬ ВАЛЕНТИНУ ЮРИЮ

ОБЪЕКТ ЮРИЙ ПРИСВОИТЬ СУБЪЕКТУ ВАЛЕНТИНА
Ну или что-то в этом роде (я не думал особо, просто перестроил Ваш вариант). Вся эта избыточность в естественных языках введена как раз для того чтобы упростить понимание.

P.S.: давно не писали, а как дела с ВАЛЕНТИНОЙ-2?

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

Даже обсуждения её не осталось в архиве(

Я поругался с создателем этого форума на тему русскости  :hobo:

Потом убирается слова не несущие смысловую нагрузку.

Иногда это проще сделать сначала. Тут надо смотреть в общем.

0

18

Это увеличивает нагрузку только при первом проходе

Я про трудоёмкость разработки. Придётся дописывать необходимые варианты.

А там избыточность это обязательное свойство языка.

Не совсем. Избыточность возникает если падеж не несёт смысловой нагрузки.

ОБЪЕКТ ЮРИЙ ПРИСВОИТЬ СУБЪЕКТУ ВАЛЕНТИНА

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

Я поругался с создателем этого форума на тему русскости

Поэтому костяк и перешёл в основном на remdev org

0

19

Я про трудоёмкость разработки. Придётся дописывать необходимые варианты.

Ну нет, это просто добавляется. Просто синтаксис нужно хранить отдельно от семантики. Это даже первая Валентина умела.

Кстати, очень хороший пример, а раньше, насколько помню, не было показано как обходить падежи.

Просто я занимался этим вопросом и реализовывал в Валентине (первой и наработкой ко второй).
Сейчас синтаксис представляется обычным текстовым файлом и выглядит примерно так:

Constr
id=0
Remark=Однострочный комментарий
Word1=Описание Комментарий Ремарка #
Word2=1

Id характеризует идентификатор конструкции, привязку синтаксиса к семантике. То есть лексер когда распознает, он во внутреннем представлении в p-коде указывает уже идентификатор конструкции и ее параметры.
Remark - краткое описание, назначение оператора/команды/инструкции. Используется для автоматической генерации общего описания набора конструкций в форме, приближенной к БНФ (это первая Валентина тоже умела). Ну и можно использовать например для всплывающей подсказки в редакторе.
Word1-Word8 - лексемы. В данном случае допускается 4 варианта инструкции
Описание
Комментарий
Ремарка
и линуксный комментарий #
В Word2 записано, что следующие лексемы нужно воспринимать как первый параметр конструкции (то есть туда будет записываться собственно сам комментарий).
Теперь чтобы добавить новый комментарий, допустим // достаточно открыть файл и в word1 через пробел дописать // и возможно если Вы хотите чтобы читалось не только // привет, но и //привет, в общей секции дописать токен //. Это специальные "слова" которые если встречаются в сплошном тексте не разделенные пробелами, считаются как отдельные лексемы. Как видите если подумать и спроектировать может получиться. Не все конечно возможно, но менять синтаксис можно в некоторых пределах.

0


Вы здесь » Русские вычислители » Вычислители по-русски » Считаю, что русские падежи и склонения должны подлежать обработке.


форум на 24bb Создать форум бесплатно