Вверх ↑
Этот топик читают: Гость
Ответов: 257
Рейтинг: -2
#16: 2013-10-29 20:42:06 ЛС | профиль | цитата
тут просто еще какой момент, может быть составлен запрос не просто "замена правого рычага", а к примеру " замена подшипника передней ступицы". В этом случае главное слово которое нужно выделить - "подшипник". И по падежам, может быть "стук в правом переднем рычаге". Опять же, нужно выделить " правый передний рычаг". А вообще у вас очень крутой компонент, если он это может
карма: 0

0
Ответов: 2059
Рейтинг: 132
#17: 2013-10-29 21:43:16 ЛС | профиль | цитата
mudfactory
к примеру " замена подшипника передней ступицы".

Тут как раз всё просто.
Разложу по полочкам сам алгоритм.
имеем:

замена
замена
25 21 19 1 35
подшипника
подшипник
26 22 19 1 35
передней
передний
26 21 19 3 35
ступицы
ступица
26 21 19 1 35

Можно триады распихать в три списка строк - меньще коммутаций.
и имеем:

замена < подшипника noun_es gen_es
подшипника < ступицы noun_es gen_es
передней > ступицы adj_es noun_es

1. запрос "замена" = замена < подшипника замене подчинён подшипник.
проверяем сточку 26 22 19 1 35 на наличее 3 (прилагательное) нет - поехали дальше
т.е того слова от которого указывает стрелочка.
2. запрос "подшипник" = подшипника < ступицы подшипнику подчинена ступица.
проверяем сточку 26 21 19 1 35 на наличее 3 нет - поехали дальше
3. запрос "ступица" = передней > ступицы
проверяем сточку 26 21 19 3 35 на наличее 3 есть - приехали.
А уж как выводить, - это дело третье. Все подряд, или первое слово и последнее.
Как это делается:
Связь слов получаем через точки doGetConnect - получаем списк в точке Count_Connect
подчинённых слов или наоборот, нас интересует подчинеие.
перебираем этот список через точку doIConnect. В точке onNumWordConnect получаем номера интересующих нас слов. В точке Connchr читаем знак подчинения < + >, + равнозначность.
Запихиваем эти номера в точку doNumWord и с модом 2 в точке Mode и получаем такие строки
26 21 19 3 35 в точке onNumWord, это равносильно чтению строки из третьего списка строк по индексу, если решили строить схему со списками строк. Всё.
карма: 6

0
Ответов: 257
Рейтинг: -2
#18: 2013-10-29 23:58:20 ЛС | профиль | цитата
вам то да просто) Я ничего не понимаю куда там и что. Если не сложно, можно работающий примерчик
карма: 0

0
Ответов: 2059
Рейтинг: 132
#19: 2013-10-30 21:30:04 ЛС | профиль | цитата
mudfactory
Примерно вот так:
code_32214.txt
Сильно со схемой не заморачивался.
По хорошему ещё нухно организовать очередь, или стек для запоминания точек ветвления.
Нет защиты переполнения счётчика, если вводимое слово не найдено в первом списке.
В поле ввода нужно ввести слово заново!
Вывод такой - нужна ещё одна верхняя точка для номера слова в предложении, чтобы морфология и синтаксис работали не зависимо.
Нужно сделать дополнительные элементы, чтобы небыло этого безобразия из рассыпухи элементов.


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


карма: 6

0
файлы: 1code_32214.txt [5.4KB] [547]
Ответов: 2059
Рейтинг: 132
#20: 2013-11-03 11:24:38 ЛС | профиль | цитата
Добавлен новый компонент ComparisonAttributes.
Компонент работает в паре с компонентом Morphology и позволяет сравнивать атрибуты слов текста по их индексу с маской запроса с выбраным модом.
Пример:
code_32243.txt
Перед запуском, нужно обновить элемент и установить новый.
карма: 6

0
файлы: 1code_32243.txt [10.5KB] [898]
Ответов: 257
Рейтинг: -2
#21: 2013-11-05 02:23:05 ЛС | профиль | цитата
Что то в примере у вас вообще ничего не понятно. Таблица какая-то, а ваших компонентов нет. Зато вроде нашел схему в аргиве с новым компонентом, но она не запускается выдает ошибку runtime error, хотя судя по всему с этим компонентом наконец то можно будет искать правый передний рычаг по запросу "замена правого переднего рычага")

Разобрался как запустить чтоб без ошибки.
карма: 0

0
Гость
Ответов: 17029
Рейтинг: 0
#22: 2013-11-05 09:53:36 правка | ЛС | профиль | цитата


Редактировалось 5 раз(а), последний 2021-06-22 14:18:29
карма: 0

0
Ответов: 2059
Рейтинг: 132
#23: 2013-11-05 10:05:06 ЛС | профиль | цитата
mudfactory
Пояснения к схеме:
0. Сначала нужно обновить компонент Morphology!!!
1. Любой новый текст должен быть сначала обработан - кнопка "Parse" (точка doSetText).
2. При смене номера предложения в поле "№ предложения", надо нажать кнопку "OK".
Иначе будет появляться ошибка. В одном предложении 10 слов, а в другом два.
3. В поле атрибуты не должно присутствовать два пробела между числами и в начале тоже не должно присутствовать пробела. Надо делать выбор части речи, числа и падежа вместе в одном запросе, или по одному-двум параметрам следя за пробелами. Это пример и никаких мер за правильностью ввода не сделано.
4. Если вместе с параметром (2)- глагол, будет стоять падеж (25..30), то ничего найдено не будет, - потому что у глаголов нет падежей!
5. Конечно не все значения атрибутов присутствуют в примере, иначе пришлось делать 47 радиокнопок.
Поэтому, надо вводить параметры вручную, - согласно таблице.
карма: 6

0
Ответов: 257
Рейтинг: -2
#24: 2013-11-05 20:21:50 ЛС | профиль | цитата
flint2, чувствую что без вашей помощи не разберусь. Как мне сделать чтоб он показал существительное и все прилагательные к нему? При том что предложение одно?

Вообще было бы круто еслиб был компонент который выводил слова в предложении - верхняя точка (сюда строка подается), входная начинает перебор, выходные: 1.выдает существительное 2.выдает прилагательное 3. выдает глагол . И нижние точки которые сожержат существительные (если несколько), прилагательные и т.д.. Точка с предлогами включается в свойствах элемента.

Второй элемент выводил бы простые формы слов (или можно по падежам)

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

0
Ответов: 2059
Рейтинг: 132
#25: 2013-11-05 23:21:49 ЛС | профиль | цитата
mudfactory

Вообще было бы круто еслиб был компонент который выводил слова в предложении - верхняя точка (сюда строка подается), входная начинает перебор, выходные: 1.выдает существительное 2.выдает прилагательное 3. выдает глагол . И нижние точки которые сожержат существительные (если несколько), прилагательные и т.д.. Точка с предлогами включается в свойствах элемента.

В таком случае пары сотн точек не хватит. Слишком громоздко будет + какая схема коммутации-обслуги.
Кроме существительного, глагола и прилагательного есть: наречие, числительное, местоимение, частица, союз, предлог, причастие, деепричастие, вводное слово (по счастью), неизменяемое слово и предикатив или слово, состоящее из цифр + знаки пунктуации. И на всё это по точке?
выходные: 1.выдает существительное

6 падежей, 3 рода, 2 числа, одушислённоенеодушислённое, 3 лица (1,2,3).
С глаголом всё ещё страшнее: сниться = 40 36 31 22 19 2 33 34 35 41
Туча спряжений, финитная форма , инфинитив, 3 времени, 2 числа, 3 рода, 3 лица, повелительноеизъявительное наклонение, активныйпассивный залог, краткая форма.
С прилагательным не проще. Так что с кучей точек вариант не прокатывает.
Проще искать по такой маске 40 36 31 22 19 2 33 34 35 41, причём если вся эта лабуда не интересует, а нужно знать существительное или глагол - просто 1 или 2.
При том что предложение одно?

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

А если там их (существительных) несеолько? По науке надо бы от глагола.
Завтра нарисую схемку с пояснениями в ней.
Единственно что видится логичным, так это компонент трассирующий цепочки подчинения или сочинения, т.е те цепочки, в которые входит интересующее нас слово. Но завтра наверное не смогу его сделать.
карма: 6

0
Ответов: 257
Рейтинг: -2
#26: 2013-11-06 00:44:31 ЛС | профиль | цитата
Ну зачем так сложно. Может в специфических областях конечно потребуется, но вот реальный пример из жизни, где нужно получить существительное и слова относящиеся к нему, опять же про рычаг, будь он не ладен:

стучит в правом переднем рычаге - ищем существительное "рычаг", с другой точки прилагательные "правом" "переднем", дальше форматстрингом переводя предварительно в простые формы "правый передний рычаг".
карма: 0

0
Ответов: 2059
Рейтинг: 132
#27: 2013-11-06 14:35:09 ЛС | профиль | цитата
mudfactory
Разобрался как запустить чтоб без ошибки.

На всякий случай изменил пут к словарям в ini файле, стало ".".
Тепер не должно возникать вопросов.
Архивы перезалил. Можно просто поправить ini или в самом компаненте путь по умолчанию.
Как мне сделать чтоб он показал существительное и все прилагательные к нему?

Вот схема:
code_32267.txt

Ну зачем так сложно.

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

В компоненте Morphology на точку Mode надо подать "1".

карма: 6

0
файлы: 1code_32267.txt [3.6KB] [539]
Ответов: 257
Рейтинг: -2
#28: 2013-11-06 18:31:48 ЛС | профиль | цитата
Спасибо, пример работает. Но это нужно знать заранее какое слово там существительное, что на практике не реально. Из набранного предложения существительное и прилагательные к нему он так и не выводит без ручного указания на то какое слово там существительноею и выдает ошибку runtime error. Рабочий вариант предполагает всего два поля - в первое пишем предложение, во второе выводится существительное и прилагательные к нему (в простой форме)
карма: 0

0
Ответов: 2059
Рейтинг: 132
#29: 2013-11-06 19:20:22 ЛС | профиль | цитата
выдает ошибку runtime error.

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

А как иначе? Чего то я совсем ничего не пойму.
предполагает всего два поля - в первое пишем предложение, во второе выводится существительное и прилагательные к нему (в простой форме)

Это вообще не могу понять. В предложении исходные данные, а где вопрос и по какому критерию чего искать?
Это просто сделать, плясать нужно от глагола, я уже об этом говорил.
Задачу нужно формулировать хотя бы в терминах "если - то - иначе".
Тогда будет понятно, что сначала нужно найти глагошл, а потом все относящиеся к нему существительные и т.д.
Как мне сделать чтоб он показал существительное и все прилагательные к нему?

Вот такой был вопрос.
Подобный случай был, когда в СССР ещё не существовало PC.
Я сделал самодельный Apple с выводом на телевизор.
Сосед посмотрел и говорит на полном серьёзе, - "А пусть компьютер скажет: будет премия у нас в этом месяце, или нет?".
карма: 6

0
Ответов: 257
Рейтинг: -2
#30: 2013-11-06 19:56:17 ЛС | профиль | цитата
компонент может перебрать все слова в предложении и найти все существительные, все прилагательные и т.д.? Вводим предложение в поле. Нужно найти сначала все существительные в нем, если это возможно, то найти связанные с этими существительными прилагательные. Вот в виде цифр это делается тремя компонентами , перебор массива, if и собственно таблица строк. В виде слов если это вашим компонентом не сделать, тогда смысл теряется что-либо искать, зачем мне найденые прилагательные, если я должен в ручную вводить существительное? Я так же могу вручную и пралагательные вписать. Нужно находить это без указания или ввода какого-либо дополнительного слова. По какому критерию искать? -

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

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)