Skip to content
/ AIS Public

[ 9 семестр: системы искусственного интеллекта ]

Notifications You must be signed in to change notification settings

k-t-l-h/AIS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AIS

[ 9 семестр: системы искусственного интеллекта ]

Лабораторная работа 3

Как запустить

Сборка:

go build cmd\main.go

Запуск:

go run cmd\main.go

Описание данных

Данные для лабораторной сгенерированы случайным образом по следующему принципу:

  • Название статьи является случайным предложением, для генерации используется faker.Sentence()
  • Количество авторов - от 1 до 3, выбирается случайно, для генерации каждого используется faker.Name()
  • Поле исследования - одно случайное поле, выбирается из случайным образом из графа
  • Принадлежность базам (РИНЦ, ВАК, WoS) - случайным образом выбирается одна из баз
  • Год - случайное число из диапазона [1970, 2020]
  • Количество цитирований - случайное число из диапазона [0, 40]
  • Оценка - случайное число из диапазона [1, 0)
  • Время чтения - случайное число из диапазона [5, 30)

Список имен находится в файле names.json

Для коллаборативной фильтрации сгенерирована матрица оценок пользователями статьей.

  • Имя пользователя является случайным словосочетанием, для генерации используется faker.Name()
  • Оценка пользователем статьи - случайное число из диапазона [0, 5]

Полученная матрица находится в файле users.csv

Описание алгоритма коллаборативной фильтрации

  • Определяется текущий пользователь
  • Определяется корреляция оценок пользователей с оценками текущего пользователя
  • Отсекаются пользователи с отрицательной оценкой корреляции
  • Определяется текущая статья
  • Определяются оценки статей, для этого суммируются оценки отобранных пользователей, предварительно помноженные на значение их корреляции с текущим пользователем

Список имено находится в файле names.json.

Описание алгоритма контент-ориентированной фильтрации

  • Определяется текущая статья
  • Определяется корреляция оценок статей с оценками текущей статьи
  • Отсекаются статьи с отрицательной оценкой корреляции оценок
  • Для каждого пользователя определяется средняя оценка статей
  • Определяются оценки статей, для этого создается вектор оценок статьи с учетом вычета для каждого пользователя его средней оценки
  • Выводятся лучшие совпадения (сама статья не показывается)

Описание параметрического поиска

  • Параметрический поиск имеет два типа фильтров: постоянные и плавающие фильтры
  • Каждый фильтр может быть как постоянным, так и плавающим
  • Расширение пространства поиска происходит следующим образом:
    • Для области исследования: берутся соседние по графу области исследования
    • Для баз данных: добавляется по одной базе данных каждый раз
    • Для года выпуска: диапазон расширяется на единицу с каждой стороны
    • Для количества цитирований: диапазон расширяется на единицу с каждой стороны
    • Для качества исследования: диапазон расширяется на 0.1 с каждой стороны
    • Для времени чтения: диапазон расширяется на единицу с каждой стороны
  • Авторы и название статьи при поиске не учитываются

Описание алгоритма параметрического поиска

  • Запускается цикл поиска
    • Среди списка статьей ищутся те, что строго подходят под описание
    • Если удалось найти хотя бы одну подходящую статью, поиск закончен
    • Если найти подходящие статьи не удалось, то расширяем границы поиска
    • Если цикл выполнился больше X раз и ничего найти не удалось, выходим - это неудача
  • После отбора статей статьи ранжируются. Каждому параметру задается вес, влияющий на то, насколько этот признак значим для оценки схожести. Оценка схожести происходит на основе корреляции

Как определяется, подходит ли статья под критерии?

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

Откуда берутся данные?

Данные для поиска лежат в params.json. Файл содержит два объекта - объект-статья, обозначающая левую границу, и объект-статья, обозначающая правую границу. В файле keys.json лежит массив флагов, обозначающих, какие параметры можно расширять, а какие нет.

Пример работы

В примере работы искались статьи, соответствующие следующим критериям:

  • тема исследования: "complex_manifold"
  • статьи входят в РИНЦ
  • год статьи от 1970 до 2021
  • количество цитат, время чтения и оценка - любые
Рекомендации найдены за первую итерацию 
{Title:Consequatur perferendis sit aut accusantium voluptatem. Authors:[Prof. Aglae Friesen Queen Guadalupe Morissette Ms. Jazlyn Kulas] Fields:[complex_manifold] RINZ:true WAK:false WOS:false Year:2011 Citations:3 Score:0.4409283900936391 ReadingTime:21}
{Title:Voluptatem accusantium aut perferendis consequatur sit. Authors:[Prof. Aglae Friesen Mrs. Elna Schaden Miss Bernita Feeney] Fields:[complex_manifold] RINZ:true WAK:false WOS:false Year:1974 Citations:36 Score:0.5354199838094965 ReadingTime:18}

Во втором примере искались статьи, соответствующие следующим критериям:

  • тема исследования: "complex_manifold"
  • статьи входят в WOS
  • год статьи от 2000 до 2008
  • количество цитат от 0 до 2
  • менять область исследования не разрешалось

Рекомендации найдены за 2 итераций

{Title:Consequatur perferendis sit aut accusantium voluptatem. Authors:[Prof. Aglae Friesen Queen Guadalupe Morissette Ms. Jazlyn Kulas] Fields:[complex_manifold] RINZ:true WAK:false WOS:false Year:2011 Citations:3 Score:0.4409283900936391 ReadingTime:21}

Наиболее подходящие вам статьи: Счёт: 0.280130 Cтатья: Perferendis sit accusantium voluptatem aut consequatur.

Счёт: 0.279621 Cтатья: Voluptatem sit aut accusantium consequatur perferendis.

Счёт: 0.265004 Cтатья: Consequatur sit accusantium aut perferendis voluptatem.

Счёт: 0.263912 Cтатья: Perferendis consequatur sit aut voluptatem accusantium.

Счёт: 0.254610 Cтатья: Accusantium perferendis sit consequatur voluptatem aut.

About

[ 9 семестр: системы искусственного интеллекта ]

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages