Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
ElenaTomsk
4 / 4 / 0
Регистрация: 11.10.2014
Сообщений: 99
#1

Как ввести слово и получить его формы во всех падежах?

11.04.2016, 22:03. Просмотров 334. Ответов 13
Метки нет (Все метки)

Здравствуйте.

Стоит задача, ввести слово и получить его формы во всех падежах. Решение найти не получается абсолютно. Есть внешние dll, которые вроде бы должны это делать, но...
Что пробовала:
http://multitran.ru/DownLoad/lemm.zip здесь есть пример только на c, как его к дельфи прикрутить, совершенно непонятно. Автор не знает, спрашивала.
http://macrocosm.narod.ru/download/winmcr3.0.zip
здесь есть пример в том числе и для дельфи, но версии 5. Под XE6 совершенно не работает, автор, судя по всему, вообще пропал.
Может, кто-то знает еще какие-то рабочие варианты?

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

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.04.2016, 22:03
Ответы с готовыми решениями:

Напечатать заданное слово во всех падежах
Задано существительное первого склонения, оканчивающееся на букву «а»....

Как из dll получить указатель формы приложения и развернуть его из панели задач?
Доброго времени суток. Помогите, как из dll обратиться к приложению, из...

Как из dll получить указатель формы приложения и развернуть его из панели задач?
Всем доброго времени суток. Как из dll получить указатель формы приложения и...

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

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

13
Razdolbait
25 / 25 / 22
Регистрация: 18.09.2014
Сообщений: 213
11.04.2016, 22:31 #2
Если это какое-то конкретное слово (слова) то можно и самой написать. А вот если задача стоит просклонять ЛЮБОЕ слово - то только по словарю. Огромному словарю. По которому можно определить какому типу склонения это слово подчиняется. Много правил и много исключений в них. Писал библиотеку для преобразования числа в сумму прописью - знаю о чем говорю. Моя задача была ГОРАЗДО проще
0
ElenaTomsk
4 / 4 / 0
Регистрация: 11.10.2014
Сообщений: 99
12.04.2016, 06:35  [ТС] #3
По счастью, не совсем так. Есть урезанные версии коммерческих разработок, есть правила русского языка, мы их знаем. Есть исключения, они тоже формализуются.
Например, Сергей Слепов со своим "морфером" задачу склонения решил, в том числе и вашу, с суммой прописью, но у него все платно.

Мне бы хотелось научиться использовать то, что бесплатно. Т.е. удалось бы прикрутить что-то из того, на что ссылки давала, было бы замечательно, там главная проблема в том, как подключать эти библиотеки.
Может, тему надо было иначе назвать: "как подключить dll"?
0
Razdolbait
25 / 25 / 22
Регистрация: 18.09.2014
Сообщений: 213
12.04.2016, 09:38 #4
Особо не вникал, но рыть надо в
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
// * * * Объявление функций mcr.dll
 
// Инициализировать словарь
   function InitMcr: Integer; stdcall; cdecl; external '..\MCR.DLL' name 'InitMcr';
 
// Загрузить словарь (path)
   function LoadMcr(const path:PChar): Integer; stdcall; cdecl; external '..\MCR.DLL' name 'LoadMcr';
 
// Сохранить словарь (path)
function SaveMcr(const path:PChar): Integer; stdcall; cdecl; external '..\MCR.DLL' name 'SaveMcr';
 
// Найти идентификаторы слова s и занести их в структуру Tids
function FindWID(const s:PChar; p:pTids): Integer; stdcall; cdecl; external '..\MCR.DLL' name 'FindWID';
 
// Возвращение в структуру TWs словоформы и его грамматических характеристик через идентификатор
        // all=true - вернуть всю парадигму (только для не ReadOnly словарей)
        // gh_only=true - вернуть только граматические характеристики
function GetBId(const lnk:integer; en:byte;gh_only,all:boolean;p:pTWs): Integer; stdcall; cdecl; external '..\MCR.DLL' name 'GetBid';
 
//Нахождение словоформ по заданной грамматической характеристике (только для не ReadOnly словарей)
        //lnk - номер парадигмы
        //const_gh - код постоянной грамматическрй характеристики (const_gh=0 - любая)
        //var_gh - переменная гр. характеристика
        //all=false - вернуть только первую найденную словоформу
function GetBgh(const lnk:integer; const_gh:byte; var_gh:byte; all:boolean; p:pTWs): Integer; stdcall; cdecl; external '..\MCR.DLL' name 'GetBGH';
 
 
//просмотр оставшегося места памяти. a1,a2,a3 если любое из этих значений близко к 100%, то словарь скоро переполнится
function FreeSpace(a1,a2,a3:pInt): Integer; stdcall; cdecl; external '..\MCR.DLL' name 'FreeSpace';
 
//Проверка является ли словарь доступным для чтения, для ReadOnly словарей нельзя считывать парадигму всего слова, доступны только грам.хар-ки и лемма
function RODict: boolean; stdcall; cdecl; external '..\MCR.DLL' name 'ReadOnlyDict';
 
//Версия подгруженного словаря
function GetVer: PChar; stdcall; cdecl; external '..\MCR.DLL' name 'Ver';
 
//Добавить парадигму
function AddPara(outdata: pTWs): integer; stdcall; cdecl; external '..\MCR.DLL' name 'AddParadigma';
 
 
//Грамматические характеристики хранятся как числа (byte)  см. TWstr
//Эти функции позволяют перевести эти числа в строки для наглядности
function CTS(const constid:byte):PChar; stdcall; cdecl; external '..\MCR.DLL' name 'ConstIdToStr';
function VTS(const constid,varid:byte):PChar; stdcall; cdecl; external '..\MCR.DLL' name 'VarIdToStr';
это из второго архива. Разобраться что за функции и для чего предназначены.
Но если библиотека может понадобиться в будущем (а не только сдать и забыть) то лучше переписать.

Цитата Сообщение от ElenaTomsk Посмотреть сообщение
Сергей Слепов со своим "морфером" задачу склонения решил, в том числе и вашу, с суммой прописью, но у него все платно
Вот поэтому и писал сам) Бесплатно. Знаю как работает. И разрабатывал именно под свой регион и валюту
0
ElenaTomsk
4 / 4 / 0
Регистрация: 11.10.2014
Сообщений: 99
12.04.2016, 11:41  [ТС] #5
Там и рыла. Даже нарыла, что если в InitMcr прописать вместо Integer - INT64, то библиотека начинает грузиться. Беда только в том, что кроме загрузки ничего не работает, не возвращает она значения.
Но точно знаю, что эта библиотека рабочая, был код на c#, который ее использовал. Увы, он погиб безвозвратно.
0
mss
12.04.2016, 12:38
  #6

Не по теме:

Цитата Сообщение от ElenaTomsk Посмотреть сообщение
ввести слово и получить его формы во всех падежах..точно знаю, что эта библиотека рабочая
Прелюбопытно, и как эта чудо-библиотека просклоняет, скажем, фамилию "Дрищенко" ?)

0
Razdolbait
25 / 25 / 22
Регистрация: 18.09.2014
Сообщений: 213
12.04.2016, 13:45 #7
Цитата Сообщение от mss Посмотреть сообщение
Прелюбопытно, и как эта чудо-библиотека просклоняет, скажем, фамилию "Дрищенко" ?)
Так и я о том же) Только тактичнее))
0
ElenaTomsk
4 / 4 / 0
Регистрация: 11.10.2014
Сообщений: 99
12.04.2016, 13:53  [ТС] #8
Там используется словарь Зализняка. Сомневаюсь, что в нем есть эта фамилия.
0
mss
2631 / 2256 / 275
Регистрация: 24.12.2010
Сообщений: 13,725
12.04.2016, 14:01 #9

Не по теме:

Цитата Сообщение от ElenaTomsk Посмотреть сообщение
Сомневаюсь, что в нем есть эта фамилия



Ну а какой смысл в такой программе, если она будет спотыкаться на таких простых, казалось бы, словах ?)

Добавлено через 1 минуту

Не по теме:

Цитата Сообщение от Razdolbait Посмотреть сообщение
Только тактичнее
Ой да я вас умоляю)

Два хохла, один, читая газету, говорит другому:
- Дивись, Голожопенко, яка смешна фамилия - "Зайцiв"

Вот это нетактично)
А шо в дрищенке нетактичного ?)

0
Razdolbait
25 / 25 / 22
Регистрация: 18.09.2014
Сообщений: 213
12.04.2016, 14:31 #10
Цитата Сообщение от mss Посмотреть сообщение
А шо в дрищенке нетактичного ?)
Дрищенко совершенно не при чем)
Просто я не спеша подводил автора темы к мысли что данная задумка не имеет смысла. Либо надо убить кучу СВОЕГО времени и нервов, а не искать готовое.
А ты прямо в лоб и с размаха)
0
mss
2631 / 2256 / 275
Регистрация: 24.12.2010
Сообщений: 13,725
12.04.2016, 14:39 #11

Не по теме:

Цитата Сообщение от Razdolbait Посмотреть сообщение
прямо в лоб и с размаха
Зато какое удовольствие !)



Добавлено через 2 минуты

Не по теме:

Razdolbait, подтянуть бы тебе скилл на тему правописания частиц "не" и "ни", а то не возьмут в космонавты)



Добавлено через 15 секунд

Не по теме:

Razdolbait, подтянуть бы тебе скилл на тему правописания частиц "не" и "ни", а то не возьмут в космонавты)

0
ElenaTomsk
4 / 4 / 0
Регистрация: 11.10.2014
Сообщений: 99
12.04.2016, 14:59  [ТС] #12
А вот по теме есть что сказать? Как сделать, чтобы эти dll заработали, а попытаться показать себя новым Петросяном?
0
NIKOLAYY
819 / 717 / 339
Регистрация: 22.09.2012
Сообщений: 4,994
12.04.2016, 23:16 #13
По идее нужен словарь, который гдето что то вычерпывает по своим критериям.
1
ElenaTomsk
4 / 4 / 0
Регистрация: 11.10.2014
Сообщений: 99
13.04.2016, 09:36  [ТС] #14
Я неправильно ситуацию описала. Уже есть несколько готовых dll, в частности, вот тут: Как подключить к Дельфи и добиться работы от данных dll? довольно сильно продвинулись, но не до конца. AOT еще хорошо работают вроде бы, но сама я не могу, мало знаний.

Хочется вот чего: подключить какую-то из уже известных dll. По нажатию кнопки при введенном слове пытаться определить его
падежи с использованием этих dll. Получилось если, то замечательно, а если нет, то и руками человек введет. В общем, смысл: как подключить и вызывать dll? Как заинтересованное лицо дам и ссылки, и файлы и все на свете, и я не хочу, чтобы все сделали за меня, только показали правильные пути, это видно по той теме, на которую я ссылку дала. Спасибо всем, кто поможет.
0
13.04.2016, 09:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.04.2016, 09:36

Что такое указатель на фаил в делфи, как его получить и с чем его готовить
У меня вопрос я получаю имя файла вот тут procedure...

Получить другой файл, образованный из первого заменой всех его прописных букв одноименными строчными
Сформировать символьный файл. Получить другой файл, образованный из первого...

Напечатайте слово во всех падежах
Задано существительное первого склонения, оканчивающееся на букву «а»....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru