Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (2): [1] 2 »   

> Описание: Программа в разработке
Kibor
Отправлено: 12 Марта, 2025 - 22:19:40
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8359
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 359




Демонстрация работы алгоритма при обработке естественного языка и его синтаксического анализа без нейронных сетей.
Тест первого алгоритма для нахождения связей и построение полного синтаксического графа.

Скачать программу(для просмотра ссылки Вам необходимо авторизоваться)
 
 Top
Kibor
Отправлено: 14 Марта, 2025 - 20:30:48
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8359
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 359




Добавил видео на rutube(для просмотра ссылки Вам необходимо авторизоваться)
 
 Top
Kibor
Отправлено: 30 Марта, 2025 - 22:04:46
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8359
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 359




Продолжение реализации алгоритма на C++ без нейросетей для разбора естественного языка.
Улучшение синтаксического анализатора.
Начало семантического.(для просмотра ссылки Вам необходимо авторизоваться)
rutube(для просмотра ссылки Вам необходимо авторизоваться)
 
 Top
Kibor
Отправлено: 28 Мая, 2025 - 20:09:34
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8359
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 359




В этом видео я демонстрирую промежуточные результаты работы над моим C++ алгоритмом, который разбирает естественный язык, извлекая смысл на уровне синтаксиса и глубокой семантики. В отличие от нейронных сетей, моя система создает объяснимый синтаксически-семантический граф, раскрывая точные связи и зависимости в тексте.
Это фундаментальный шаг на пути к созданию разумного чат-бота, способного понимать сложные запросы пользователя и вести осмысленный диалог на основе любой загруженной уникальной текстовой информации, будь то книга, документация или личные заметки. Цель — обеспечить точные, не 'галлюцинирующие' ответы и глубокое понимание контекста, недостижимое для обычных методов.


Нажмите для увеличения


rutube -(для просмотра ссылки Вам необходимо авторизоваться)
 
 Top
Kibor
Отправлено: 30 Мая, 2025 - 09:27:44
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8359
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 359




на данный момент новая версия еще не выложена. На сервере старая.

Общее описание работы алгоритма.


Есть базы по которым алгоритм изначально может сделать разметку. Данные базы собраны с разнообразных открытых источников, дополнены, реализованы в нужном мне формате и вшиты в программу.
Данные базы покрывают 1 500 000 слов, которых хватает для обработки практически любого текста. Предусмотрен механизм добавления редких терминов на лету.

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

Семантическая база также была собрана из различных источников. В качестве основы использовались векторные модели лексических представлений, доступные в открытом доступе.
Каждая из них была очищена от шума и нерелевантных данных, приведена к единому векторному пространству с учётом семантической совместимости и внутренней логики распределения понятий.
В результате была сформирована согласованная и структурированная векторная база, тесно интегрированная с синтаксической.
Это обеспечило семантическое и грамматическое покрытие 1 500 000 словоформ — с учётом лемм, их грамматических признаков, синтаксических ролей и семантических характеристик.

После завершения формирования грамматико-семантической базы я реализовал семантическую структуру системы, опираясь на вручную собранные данные из различных семантических словарей и специализированных ресурсов.
Эти данные легли в основу автоматической классификации лексики, построенной на взаимодействии синтаксической информации и векторных представлений слов.
Принцип работы алгоритма заключается в том, что он использует ядро категорий, сформированное на основе ручной выборки, и далее распространяет семантическую классификацию на всю лексическую базу, включая слова, которые отсутствовали в исходных словарях.
Каждое слово автоматически сопоставляется с наиболее релевантной категорией, с учётом контекстной близости, грамматических признаков и взаимных связей между словами.
Благодаря такому подходу, каждая категория включает не только вручную размеченные леммы, но и автоматически классифицированные слова, что обеспечило широкое и точное покрытие — как по объёму, так и по глубине семантики.

Пример Синтаксической:
 Цитата:
мяч:мяч,W:1528236
мяча:мяч,W:1528237
...
спрашивавшее:спрашивать,W:1528623
спрашивавшееся:спрашиваться,W:1528645
...

...
P:noun,G:neut,C:accs_gent_nomn,N:sing,F:orgn
P:noun,G:femn_neut,C:ablt_accs_datv_gent_loct_nomn,N:plur_sing,F:abbr
P:noun,G:femn,N:sing,C:ablt_accs_gent
P:noun,C:accs_loct_nomn,N:plur,F:geox
P:adj_noun,G:neut,C:accs_nomn,N:sing,F:geox
P:noun,N:plur,C:ablt_accs_datv_gent_loct_nomn,F:abbr_geox
...



Как работает алгоритм (кратко и упрощенно):
Синтаксическая част:
1 Алгоритм на основе существующих баз и грамматических (не жестких, не шаблонных) правил размечают текст. На данном этапе алгоритм руководствуется базой и ближним контентов для корректировки падежей, разрешением омоформ и тд.
2 Выделяются подлежащие, сказуемые и тд.
3 Строятся синтаксические связи. Разбираются сложные дальние связи. Разрешаются анафоры (определяется какое местоимение на что указывает) и строится предварительный граф.
3 Отрабатывает алгоритм грамматической валидации, который выявляет графовые синтаксические несоответтвия и исправляет их (корректирует падежи омоформы и тд.)
4 Заново переразмечается текст.

Семантическая часть:
1 Происходит определение семантической принадлежности каждого слова по отдельности к определенной семантической категории.
Так же определяется семантическая роль связи.

Это надо для того, что бы алгоритм в тексте:

Маша пошла в универсам и купила хлеб, а Петя ел пирог. Вася в магазине купил молоток.

алгоритм мог найти ответы на вопросы:

Кто приобрел харчи?
Кто сожрал сдобу?
Кто обзавелся инструментом?
Где прикупили продукты?


Пример. Сравним два предложения.
1 Люди на перроне ждали поезда
2 Люди на перроне смотрели как поезда проносятся мимо

Как мы видим в обоих этих предложениях есть слово омоформа "поезда".
В первом предложение оно является дополнением, во втором подлежащим.

Расмотрим как определяет это алгоритм:

Семантические категории в {} выведены алгоритмом для визуализации. В алгоритме они значительно глубже.

1) Люди на перроне ждали поезда

Его визуальный граф созданный этим алгоритмом

Нажмите для увеличения


Вот текстовая визуализация работы алгоритма

 Цитата:
человек (сущ) на (предл) перрон (сущ) ждать (гл) поезд (сущ)

=================== Исправленный вариант:

люди на перроне ждали поезда

======================== Знаки препинания:

Люди на перроне ждали поезда

=========== ПОСЛЕ УТОЧНЕНИЯ ПАДЕЖЕЙ ===========

Люди - ( сущ муж мн имен одуш ) на - ( предл ) перроне - ( сущ муж ед предл неодуш ) ждали - ( гл мн прош перех несов ) поезда - ( сущ муж ед вин неодуш )

======================== Части речи:

(ПОДЛЕЖАЩЕЕ) - Люди,
(СКАЗУЕМОЕ) - ждали,
(ДЕЕПРИЧАСТИЕ) -
(ДОПОЛНЕНИЕ) - перроне, поезда,
(ОПРЕДЕЛЕНИЕ) -
(ОБСТОЯТЕЛЬСТВА) -
(СОЮЗЫ) -
(ПРЕДЛОГИ) - на,
(ЧАСТИЦЫ) -
(Х) -

===================

0 [ПОДЛ] люди -> [ кто (субъект) - что_делали (действие_прошлое) ] -> [СКАЗ] ждали '95' - 0 -> 3 { человек = человек -> общество_социум_цивилизация -> духовный_мир -> произведения_жанры_общее -> божественное_начало_деяния } { ждать = ожидаемый -> выждать -> поджидать -> пространственное_бытие -> надежда -> эмоции -> бояться }
0 [ПОДЛ] люди -> [ кто (субъект) - где (место) ] -> [ДОП] перроне '90' - 0 -> 2 { человек = человек -> общество_социум_цивилизация -> духовный_мир -> произведения_жанры_общее -> божественное_начало_деяния } { перрон = моторизированный_транспорт -> характеристики_пространства -> дебаркадер -> станция }
0 [ПОДЛ] люди -> [ кто (субъект) - х (???] ] -> [Х] на '100' - 0 -> 1 { человек = человек -> общество_социум_цивилизация -> духовный_мир -> произведения_жанры_общее -> божественное_начало_деяния } { на = предлог }
1 [Х] на -> [ х (???] - кто (субъект) ] -> [ПОДЛ] люди '100' - 1 -> 0 { на = предлог } { человек = человек -> общество_социум_цивилизация -> духовный_мир -> произведения_жанры_общее -> божественное_начало_деяния }
1 [Х] на -> [ х (???] - что_делали (действие_прошлое) ] -> [СКАЗ] ждали '90' - 1 -> 3 { на = предлог } { ждать = ожидаемый -> выждать -> поджидать -> пространственное_бытие -> надежда -> эмоции -> бояться }
1 [Х] на -> [ х (???] - где (место) ] -> [ДОП] перроне '100' - 1 -> 2 { на = предлог } { перрон = моторизированный_транспорт -> характеристики_пространства -> дебаркадер -> станция }
2 [ДОП] перроне -> [ где (место) - кто (субъект) ] -> [ПОДЛ] люди '90' - 2 -> 0 { перрон = моторизированный_транспорт -> характеристики_пространства -> дебаркадер -> станция } { человек = человек -> общество_социум_цивилизация -> духовный_мир -> произведения_жанры_общее -> божественное_начало_деяния }
2 [ДОП] перроне -> [ где (место) - х (???] ] -> [Х] на '100' - 2 -> 1 { перрон = моторизированный_транспорт -> характеристики_пространства -> дебаркадер -> станция } { на = предлог }
3 [СКАЗ] ждали -> [ что_делали (действие_прошлое) - кто (субъект) ] -> [ПОДЛ] люди '95' - 3 -> 0 { ждать = ожидаемый -> выждать -> поджидать -> пространственное_бытие -> надежда -> эмоции -> бояться } { человек = человек -> общество_социум_цивилизация -> духовный_мир -> произведения_жанры_общее -> божественное_начало_деяния }
3 [СКАЗ] ждали -> [ что_делали (действие_прошлое) - что (объект) ] -> [ДОП] поезда '100' - 3 -> 4 { ждать = ожидаемый -> выждать -> поджидать -> пространственное_бытие -> надежда -> эмоции -> бояться } { поезд = моторизированный_транспорт -> характеристики_пространства -> станция -> веревка }
3 [СКАЗ] ждали -> [ что_делали (действие_прошлое) - х (???] ] -> [Х] на '90' - 3 -> 1 { ждать = ожидаемый -> выждать -> поджидать -> пространственное_бытие -> надежда -> эмоции -> бояться } { на = предлог }
4 [ДОП] поезда -> [ что (объект) - что_делали (действие_прошлое) ] -> [СКАЗ] ждали '100' - 4 -> 3 { поезд = моторизированный_транспорт -> характеристики_пространства -> станция -> веревка } { ждать = ожидаемый -> выждать -> поджидать -> пространственное_бытие -> надежда -> эмоции -> бояться }

=============================================




2) Люди на перроне смотрели как рядом проносятся поезда


Его визуальный граф созданный этим алгоритмом

Нажмите для увеличения


Вот текстовая визуализация работы алгоритма

 Цитата:
человек (сущ) на (предл) перрон (сущ) смотреть (гл) как (союз) рядом (нар) проноситься (гл) поезд (сущ)

=================== Исправленный вариант:

люди на перроне смотрели как рядом проносятся поезда

======================== Знаки препинания:

Люди на перроне смотрели /~,~\ как рядом проносятся поезда

=========== ПОСЛЕ УТОЧНЕНИЯ ПАДЕЖЕЙ ===========

Люди - ( сущ муж мн имен одуш ) на - ( предл ) перроне - ( сущ муж ед предл неодуш ) смотрели - ( гл мн прош перех несов ) как - ( союз неразд ) рядом - ( нар ) проносятся - ( гл мн наст неперех несов ) поезда - ( сущ муж ед имен неодуш )

======================== Части речи:

(ПОДЛЕЖАЩЕЕ) - Люди, поезда,
(СКАЗУЕМОЕ) - смотрели, проносятся,
(ДЕЕПРИЧАСТИЕ) -
(ДОПОЛНЕНИЕ) - перроне,
(ОПРЕДЕЛЕНИЕ) -
(ОБСТОЯТЕЛЬСТВА) - рядом,
(СОЮЗЫ) - как,
(ПРЕДЛОГИ) - на,
(ЧАСТИЦЫ) -
(Х) -


===================

0 [ПОДЛ] люди -> [ кто (субъект) - что_делали (действие_прошлое) ] -> [СКАЗ] смотрели '95' - 0 -> 3 { человек = человек -> общество_социум_цивилизация -> духовный_мир -> произведения_жанры_общее -> божественное_начало_деяния } { смотреть = восприятие -> просмотреть -> наблюдать -> световые_явления -> сватовство_свадьба_похороны -> родственная_связь }
0 [ПОДЛ] люди -> [ кто (субъект) - где (место) ] -> [ДОП] перроне '90' - 0 -> 2 { человек = человек -> общество_социум_цивилизация -> духовный_мир -> произведения_жанры_общее -> божественное_начало_деяния } { перрон = моторизированный_транспорт -> характеристики_пространства -> дебаркадер -> станция }
0 [ПОДЛ] люди -> [ кто (субъект) - х (???] ] -> [Х] на '100' - 0 -> 1 { человек = человек -> общество_социум_цивилизация -> духовный_мир -> произведения_жанры_общее -> божественное_начало_деяния } { на = предлог }
1 [Х] на -> [ х (???] - кто (субъект) ] -> [ПОДЛ] люди '100' - 1 -> 0 { на = предлог } { человек = человек -> общество_социум_цивилизация -> духовный_мир -> произведения_жанры_общее -> божественное_начало_деяния }
1 [Х] на -> [ х (???] - что_делали (действие_прошлое) ] -> [СКАЗ] смотрели '90' - 1 -> 3 { на = предлог } { смотреть = восприятие -> просмотреть -> наблюдать -> световые_явления -> сватовство_свадьба_похороны -> родственная_связь }
1 [Х] на -> [ х (???] - где (место) ] -> [ДОП] перроне '100' - 1 -> 2 { на = предлог } { перрон = моторизированный_транспорт -> характеристики_пространства -> дебаркадер -> станция }
2 [ДОП] перроне -> [ где (место) - кто (субъект) ] -> [ПОДЛ] люди '90' - 2 -> 0 { перрон = моторизированный_транспорт -> характеристики_пространства -> дебаркадер -> станция } { человек = человек -> общество_социум_цивилизация -> духовный_мир -> произведения_жанры_общее -> божественное_начало_деяния }
2 [ДОП] перроне -> [ где (место) - что_делали (действие_прошлое) ] -> [СКАЗ] смотрели '100' - 2 -> 3 { перрон = моторизированный_транспорт -> характеристики_пространства -> дебаркадер -> станция } { смотреть = восприятие -> просмотреть -> наблюдать -> световые_явления -> сватовство_свадьба_похороны -> родственная_связь }
2 [ДОП] перроне -> [ где (место) - х (???] ] -> [Х] на '100' - 2 -> 1 { перрон = моторизированный_транспорт -> характеристики_пространства -> дебаркадер -> станция } { на = предлог }
3 [СКАЗ] смотрели -> [ что_делали (действие_прошлое) - кто (субъект) ] -> [ПОДЛ] люди '95' - 3 -> 0 { смотреть = восприятие -> просмотреть -> наблюдать -> световые_явления -> сватовство_свадьба_похороны -> родственная_связь } { человек = человек -> общество_социум_цивилизация -> духовный_мир -> произведения_жанры_общее -> божественное_начало_деяния }
3 [СКАЗ] смотрели -> [ что_делали (действие_прошлое) - где (место) ] -> [ДОП] перроне '100' - 3 -> 2 { смотреть = восприятие -> просмотреть -> наблюдать -> световые_явления -> сватовство_свадьба_похороны -> родственная_связь } { перрон = моторизированный_транспорт -> характеристики_пространства -> дебаркадер -> станция }
3 [СКАЗ] смотрели -> [ что_делали (действие_прошлое) - х (???] ] -> [Х] на '90' - 3 -> 1 { смотреть = восприятие -> просмотреть -> наблюдать -> световые_явления -> сватовство_свадьба_похороны -> родственная_связь } { на = предлог }
3 [СКАЗ] смотрели -> [ что_делали (действие_прошлое) - х (???] ] -> [Х] как '1' - 3 -> 4 { смотреть = восприятие -> просмотреть -> наблюдать -> световые_явления -> сватовство_свадьба_похороны -> родственная_связь } { как = союз }
4 [Х] как -> [ х (???] - что (субъект) ] -> [ПОДЛ] поезда '90' - 4 -> 7 { как = союз } { поезд = моторизированный_транспорт -> характеристики_пространства -> станция -> веревка }
4 [Х] как -> [ х (???] - что_делают (действие_настоящее) ] -> [СКАЗ] проносятся '90' - 4 -> 6 { как = союз } { проноситься = действие_физическое_движение -> направление_движения -> проявление -> разнонаправленное_движение -> конечное_движение }
4 [Х] как -> [ х (???] - что_делали (действие_прошлое) ] -> [СКАЗ] смотрели '1' - 4 -> 3 { как = союз } { смотреть = восприятие -> просмотреть -> наблюдать -> световые_явления -> сватовство_свадьба_похороны -> родственная_связь }
4 [Х] как -> [ х (???] - где (место) ] -> [ОБСТ] рядом '100' - 4 -> 5 { как = союз } { рядом = направление -> предлог -> стоящий -> обстоятельство_место }
5 [ОБСТ] рядом -> [ где (место) - что (субъект) ] -> [ПОДЛ] поезда '90' - 5 -> 7 { рядом = направление -> предлог -> стоящий -> обстоятельство_место } { поезд = моторизированный_транспорт -> характеристики_пространства -> станция -> веревка }
5 [ОБСТ] рядом -> [ где (место) - что_делают (действие_настоящее) ] -> [СКАЗ] проносятся '100' - 5 -> 6 { рядом = направление -> предлог -> стоящий -> обстоятельство_место } { проноситься = действие_физическое_движение -> направление_движения -> проявление -> разнонаправленное_движение -> конечное_движение }
5 [ОБСТ] рядом -> [ где (место) - х (???] ] -> [Х] как '100' - 5 -> 4 { рядом = направление -> предлог -> стоящий -> обстоятельство_место } { как = союз }
6 [СКАЗ] проносятся -> [ что_делают (действие_настоящее) - что (субъект) ] -> [ПОДЛ] поезда '75' - 6 -> 7 { проноситься = действие_физическое_движение -> направление_движения -> проявление -> разнонаправленное_движение -> конечное_движение } { поезд = моторизированный_транспорт -> характеристики_пространства -> станция -> веревка }
6 [СКАЗ] проносятся -> [ что_делают (действие_настоящее) - где (место) ] -> [ОБСТ] рядом '100' - 6 -> 5 { проноситься = действие_физическое_движение -> направление_движения -> проявление -> разнонаправленное_движение -> конечное_движение } { рядом = направление -> предлог -> стоящий -> обстоятельство_место }
6 [СКАЗ] проносятся -> [ что_делают (действие_настоящее) - х (???] ] -> [Х] как '90' - 6 -> 4 { проноситься = действие_физическое_движение -> направление_движения -> проявление -> разнонаправленное_движение -> конечное_движение } { как = союз }
7 [ПОДЛ] поезда -> [ что (субъект) - что_делают (действие_настоящее) ] -> [СКАЗ] проносятся '75' - 7 -> 6 { поезд = моторизированный_транспорт -> характеристики_пространства -> станция -> веревка } { проноситься = действие_физическое_движение -> направление_движения -> проявление -> разнонаправленное_движение -> конечное_движение }
7 [ПОДЛ] поезда -> [ что (субъект) - где (место) ] -> [ОБСТ] рядом '90' - 7 -> 5 { поезд = моторизированный_транспорт -> характеристики_пространства -> станция -> веревка } { рядом = направление -> предлог -> стоящий -> обстоятельство_место }
7 [ПОДЛ] поезда -> [ что (субъект) - х (???] ] -> [Х] как '90' - 7 -> 4 { поезд = моторизированный_транспорт -> характеристики_пространства -> станция -> веревка } { как = союз }


=============================================
 
 Top
Kibor
Отправлено: 30 Мая, 2025 - 15:19:53
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8359
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 359




Обновил программу.
Пояснение к тестовому обновлению Logos
Logos - система грамматико-семантического анализа естественного языка(для просмотра ссылки Вам необходимо авторизоваться)
rutube(для просмотра ссылки Вам необходимо авторизоваться)
 
 Top
Kibor
Отправлено: 11 Июня, 2025 - 22:20:38
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8359
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 359




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

Цель:
Создать систему, которая понимает пользовательские запросы на естественном языке и может интерпретировать произвольный текст как с синтаксической, так и с семантической стороны. В идеале — возможность полноценного диалога по содержанию текста.

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

На видео:
– автоматическое извлечение QA-пар из произвольного текста
– генерация датасета в реальном времени
– обучение модели
– демонстрация её ответов по исходному тексту

Модель для обучения — rugpt3small_based_on_gpt2.
Для генерации использовалась программа Logos.

rutube(для просмотра ссылки Вам необходимо авторизоваться)
 
 Top
Kibor
Отправлено: 23 Июня, 2025 - 17:55:15
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8359
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 359




Краткое видео о разработке Logos.
Logos — гибридная система, сочетающая формальную грамматику, векторную семантику и графовую логику для глубокого понимания естественного языка.

rutube(для просмотра ссылки Вам необходимо авторизоваться)
 
 Top
Kibor
Отправлено: 27 Июня, 2025 - 20:33:42
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8359
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 359




Демонстрация обучения Logos.
Logos - система обработки естественного языка - система обработки естественного языка

 
 Top
Kibor
Отправлено: 14 Ноября, 2025 - 21:05:55
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8359
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 359




Краткое ознакомление с алгоритмом NLP в Кибор

rutube(для просмотра ссылки Вам необходимо авторизоваться)
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Тестирование Кибор »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by