Лингвофорум

Теоретический раздел => Прикладная лингвистика => Компьютерная лингвистика => Topic started by: Квас on April 24, 2012, 23:58

Title: Компьютерная аббревиация
Post by: Квас on April 24, 2012, 23:58
Сабж обозначает общую проблему создания таких сокращений, которые при печати раскрывались бы в полные слова. Язык — русский. Цель — создание удобного инструмента для использования при наборе сокращений.

В качестве приложения хочется получить несложную функцию, которая для данного слова по некоторой его грамматической характеристике порождала бы парадигму автозамен. Пример: для слова «компьютер» указывается 2 склонение и сокращения «кр» для корня, тогда функция должна порождать парадигму

::кр::компьютер
::кра::компьютера
::кру::компьютеру
...

Беда, естественно, в окончаниях. Кажется разумным разделять слово на основу (в буквенном смысле) и окончание. Для основы вводится аббревиатура, к которой на печати присоединяются нужные окончания; весь компендиум должен раскрываться в полное слово.

Последний раз я со склонениями-спряжениями ещё в школе встречался, поэтому хочется поддержки ЛФ. :)

Существительные

Разбить на три склонения, первое дополнительно на твёрдое и мягкое (а/я), второе — на мужской и средний род, каждый из которых на твёрдое/мягкое подсклонение. В окончаниях можно для «е» всегда давать вариант «ё», потому что печатающий всё равно набирает окончание сам. В род. мн. можно присоединять все окончания: -0, -ов, -ев, -ёв, -ей.

Что я пропустил существенного? Слова типа «имя», но их мало. Ещё что-то?

Прилагательные

Наверно, достаточно твёрдое/мягкое склонения (о,а/е,я), а в им. ед. м. р. сделать -ый, ой.

Глагол пока вообще страшно помыслить. У нас есть какие-то стандартные формы, по которым остальные можно вычислить?
Title: Компьютерная аббревиация
Post by: Валентин Н on April 25, 2012, 00:33
Что-то ничо не понятно. Зачем вам на склонения разбивать‽
Title: Компьютерная аббревиация
Post by: Квас on April 25, 2012, 00:37
Что-то ничо не понятно.

Я этого и боялся. :(

Зачем вам на склонения разбивать‽

Я не хочу прописывать руками всю парадигму. Я хочу сказать компьютеру: «компьютер кр 2мт» (слово—сокращение основы—2 склонение, м. р., твёрдое), а он сам сделал бы парадигму и запустил автозамены. Если это дело повесить на хоткей, должно получиться достаточно ненапряжно для практического использования.
Title: Компьютерная аббревиация
Post by: Валентин Н on April 25, 2012, 00:53
Я хочу сказать компьютеру: «компьютер кр 2мт» (слово—сокращение основы—2 склонение, м. р., твёрдое), а он сам сделал бы парадигму и запустил автозамены.
Вот теперь понятно!
А как он должен угадать какую форму вставлять в предложение?
Title: Компьютерная аббревиация
Post by: Квас on April 25, 2012, 01:06
А как он должен угадать какую форму вставлять в предложение?

Окончание должен печатать человек.

«У моего кра много памяти. Я покопался в кре и достал из него провод.»
Title: Компьютерная аббревиация
Post by: Квас on April 25, 2012, 01:15
В принципе, можно не мудрствуя лукаво делать автозамены только для основ, но раскрывать их табом или другой ненужной клавишей. Но почему-то в данный момент не хочется.
Title: Компьютерная аббревиация
Post by: Квас on April 25, 2012, 14:21
Такое обстоятельство: после шипящих и велярных могут выступать и «твёрдые», и «мягкие» окончания. Наверно, лучше просто лепить к основе все возможные и невозможные окончания: твёрдые, мягкие, -ь, -й. С «дерево/деревья», правда, всё равно пролёт.

Ещё надо подумать о сокращении словосочетаний. Вот здесь надо интеллектуально склонять.
Title: Компьютерная аббревиация
Post by: Hellerick on April 25, 2012, 14:45
Не знаю, о какой софтверной реализации автозамен вы думаете, но было бы круто прикрутить автоматическое согласование прилагательных.
Title: Компьютерная аббревиация
Post by: Квас on April 25, 2012, 15:43
Не знаю, о какой софтверной реализации автозамен вы думаете

Интерфейс может быть примерно следующим: выделяется слово «компьютер», нажимается какая-нибудь волшебная клавиша, вводится сокращение «кр», и после этого «кр» разворачивается в «компьютер», а «кра» разворачивается в «компьютера». Реализовать всё это очень просто, нужно просто автоматическое создание некоторого числа автозамен для каждой такой аббревиатуры. Вопрос только лингвистический: как научить компьютер склонять и спрягать слова с наименьшими трудозатратами для пользователя.

было бы круто прикрутить автоматическое согласование прилагательных.

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

Меня интересует в таком разрезе. Предположим, я пишу текст о динамических системах. Мне естественно ввести сокращение «дкаясма», которое раскрывалось бы в «динамическая система». При этом надо, чтобы сама собой создалась автозамена «дкиесмы», которая раскрывалась бы в «динамические системы». К сожалению, окончание прилагательного тоже надо выписывать, потому что иначе неясно, во что должно раскрываться «дсмы». Наверно, и нет смысла вводить одну аббревиатуру для согласованного словосочетания. :???
Title: Компьютерная аббревиация
Post by: Валентин Н on April 25, 2012, 20:19
Окончание должен печатать человек.

«У моего кра много памяти. Я покопался в кре и достал из него провод.»
Если окончания должен писать человек, тогда что должен склонять автомат???

как научить компьютер склонять и спрягать слова с наименьшими трудозатратами для пользователя.
зачем — вы же сами будуте дописывать окончания.
Title: Компьютерная аббревиация
Post by: Квас on April 25, 2012, 22:24
Окончание должен печатать человек.

«У моего кра много памяти. Я покопался в кре и достал из него провод.»
Если окончания должен писать человек, тогда что должен склонять автомат???

Вместо «кра» компьютер должен написать «компьютера». А вместо «крокодил» компьютер не должен писать «компьютерокодил». То есть одновременно с автозаменой
::кр::компьютер
должны автоматически появляться некоторые другие, как например
::кра::компьютера

То есть цель — автоматизировать такие сокращения, которые на бумаге делаются через дефис. А о падежах и связи слов в предложении должен, конечно, человек заботиться.
Title: Компьютерная аббревиация
Post by: Квас on April 25, 2012, 22:28
как научить компьютер склонять и спрягать слова с наименьшими трудозатратами для пользователя.
зачем — вы же сами будуте дописывать окончания.

Это в тексте. Но скрипт с автозаменами должен порождаться автоматически. Руками прописывать всю парадигму
::кр::компьютер
::кра::компьютера
::кру::компьютеру
::кром::компьютером
::кре::компьютере
::кры::компьютеры
::кров::компьютеров
::крам::компьютерам
::крами::компьютерами
::крах::компьютерах
неэффективно.
Title: Компьютерная аббревиация
Post by: Валентин Н on April 25, 2012, 22:44
Я ничо не понял. в какой миг скрипт должен писать парадигму‽‽‽
Вы пишете кр, а полчуаете компьютер, окончание сами дописываете если надо.
Скрипт что тдолжен делать‽‽‽
Вы хотите писать ВСЕГДА кр‽ А чтоб скрипт сам окончания писал‽
Title: Компьютерная аббревиация
Post by: Квас on April 25, 2012, 23:25
Я ничо не понял. в какой миг скрипт должен писать парадигму‽‽‽
Вы пишете кр, а полчуаете компьютер, окончание сами дописываете если надо.
Скрипт что тдолжен делать‽‽‽
Вы хотите писать ВСЕГДА кр‽ А чтоб скрипт сам окончания писал‽

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

2. Я делаю некоторый финт ушами (нажимаю сочетание клавиш, щёлкаю мышкой — не суть важно), появляется окошко с полем ввода, в которое я записываю что-то навроде «компьютер сущ. 2 скл. кр» и нажимаю Enter. После нажатия клавиши Enter программа заносит в скрипт со списком автозамен парадигму
::кр::компьютер
::кра::компьютера
::кру::компьютеру
::кром::компьютером
::кре::компьютере
::кры::компьютеры
::кров::компьютеров
::крам::компьютерам
::крами::компьютерами
::крах::компьютерах

3. После этого при работающем скрипте мне достаточно написать «крах», чтобы получить «компьютерах». Профит: экономятся буквы «омпьюте», что совсем неплохо. (Правда, если в тексте я буду писать и о крахах, конкретно эту замену нельзя признать удачной.)

Детали интерфейса и реализации меня сейчас не интересуют — это под силу даже любителю. Меня волнует лингвистический аспект.
Title: Компьютерная аббревиация
Post by: Валентин Н on April 26, 2012, 00:47
Зачем это всё? В вводите слово компютер-кр и всё. Этого достаточно.
Title: Компьютерная аббревиация
Post by: Квас on April 26, 2012, 00:56
Зачем это всё? В выодите слово компютер-кр и всё. Этого достаточно.

Тогда «крокодил» превращается в «компьютерокодил», а «секрет» — в «секомпьютерет». Одно дело автозамена из отдельного слова, другое — автозамена, которая раскрывается и внутри слов.

В принципе, можно сделать «кр<пробел>»⇒«компьютер<без пробела>» или «кр<Tab>»⇒«компьютер». Но мне сейчас интересно попробовать сделать без лишних клавиш. Мне кажется, это интуитивней.
Title: Компьютерная аббревиация
Post by: Валентин Н on April 26, 2012, 01:10
А нельзя сделать пробелКРпробел?
Title: Компьютерная аббревиация
Post by: Квас on April 26, 2012, 01:18
А нельзя сделать пробелКРпробел?

Можно, я и пишу:
В принципе, можно сделать «кр<пробел>»⇒«компьютер<без пробела>» или «кр<Tab>»⇒«компьютер». Но мне сейчас интересно попробовать сделать без лишних клавиш. Мне кажется, это интуитивней.
Title: Компьютерная аббревиация
Post by: Валентин Н on April 26, 2012, 01:22
Но мне сейчас интересно попробовать сделать без лишних клавиш. Мне кажется, это интуитивней.
Причём тут лишние клавиши???
Я имею ввиду чтоб кр переделывался в комп-р только если до и после него знаки препинания стоят, вы же их в любом случае ставите.

У меня сломался кр, старый был. Тогда крокодил ни как не переделается.
Title: Компьютерная аббревиация
Post by: Квас on April 26, 2012, 01:42
Но мне сейчас интересно попробовать сделать без лишних клавиш. Мне кажется, это интуитивней.
Причём тут лишние клавиши???
Я имею ввиду чтоб кр переделывался в комп-р только если до и после него знаки препинания стоят, вы же их в любом случае ставите.

У меня сломался кр, старый был. Тогда крокодил ни как не переделается.

Нельзя же обходиться только именительным/винительным. В этом, собственно, и есть существенное отличие автозамен в русском и в английском.
Title: Компьютерная аббревиация
Post by: Валентин Н on April 26, 2012, 18:42
Правильно говорят: "пока сам не попробуешь — не поймёшь". Попробовал прогнать через транслитератор "компьютер-кр" и понял вашу проблему.
У меня вот какая идея появилась, жаль, что из-за недоработок тр-ла её там нельзя применить.
Суть: можно сделать замену " крХ" на " компьютерХ" где Х это список окончаний (а, ов, ом, у, ами,,,).
И этот Х можно добавлять и к другим словам тоже, н-р: " мпХ" на " метрополитенХ".
Вместо Х можно писать род и номер склонения, н-р: 2м.
Title: Компьютерная аббревиация
Post by: Квас on April 26, 2012, 19:43
Суть: можно сделать замену " крХ" на " компьютерХ" где Х это список окончаний (а, ов, ом, у, ами,,,).

ДА! Иными словами, надо сразу создавать несколько замен, причём автоматически.

н-р: 2м.

Вот тут начинаются сложности. Потому что есть стол, есть конь, а есть нож — наборы окончаний у всех разные. Вот я думаю, что проще всего приделывать все возможные и невозможные окончания второго склонения:
::сл::стол
::сла::стола
::слём::столём
::сль::столь
::слей::столей
and so on and so forth. Тогда будет из чего выбирать.
Title: Компьютерная аббревиация
Post by: Валентин Н on April 26, 2012, 20:08
Вы просто сделйте несколько списков окончаний и цепляйте их к конкретным словам.
Например в моём траснлитераторе могло бы быть так:

var 2м = "ом*ами*у*ам*а*е*ов*ах* *,*.";
Array(" ","кр","компьютер",2м)

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

Но у меня такой не будет работать, тк в группы можно пихать только отдельные знаки, но не знакосочетания, увы.
Title: Компьютерная аббревиация
Post by: Квас on April 26, 2012, 22:42
Вы просто сделйте несколько списков окончаний и цепляйте их к конкретным словам.

Да, мысль такая и есть.

Дело в том, что в русском, оказывается, слишком много парадигм, и выяснять «на лету», к какой именно принадлежит то или иное слово, неэффективно. Ведь по задумке большинство сокращений окказиональны, делаются под конкретный текст.

Существительные логично раскидать по склонениям, потому что вроде как из школы остались в голове. Но во втором склонении различаются мужской и средний род, основа на твёрдый и мягкий согласный — уже четыре подсклонения. И это ещё не всё: например,

нож, ножа (тв.), но ножи (мягк.)
край — особое окончание -й в им. п.

Не говоря о род. мн.

(Разумеется, окончания и твёрдость/мягкость я понимаю в орфографическом смысле.)

Нужен разумный компромисс: вешать на каждое слово заведомо лишние окончания, но не слишком много лишнего.
Title: Компьютерная аббревиация
Post by: Валентин Н on April 26, 2012, 22:49
Ну вам-то какие слова сокращать? какие-то длинные, а они стандартно склоняются.
Title: Компьютерная аббревиация
Post by: Квас on April 26, 2012, 22:50
какие-то длинные, а они стандартно склоняются.

Гм. Об этом не думал, а ведь правда.