запрос на замену neo4j для получения функций графа

#neo4j

#neo4j

Вопрос:

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

Мне нужно сгенерировать из него следующие функции neo4j:

Степень, рейтинг страницы, сообщество для продавца и клиента. Итак, в конечном итоге что-то вроде этого:

merchdegree, custDegree, CustPagerank, merchPageRank, merchCommunity, custCommunity

// Вычисление PageRank для узлов-заполнителей (это не сработает, поскольку эта библиотека устарела)

ВЫЗОВИТЕ algo.PageRank(‘Заполнитель’, ‘ПЛАТИТ’, {WriteProperty: ‘pagerank’})

// Обнаружение сообщества с использованием распространения метки

ВЫЗОВИТЕ algo.beta.labelPropagation(‘Placeholder’, ‘PAYS’, {write:true, свойство записи: «сообщество», свойство веса: «cnt»})

// Просмотр результатов PageRank (WIP)

#ВОЗВРАТ СООТВЕТСТВИЯ (p: заполнитель) p.id КАК идентификатор, p.pagerank как pagerank ЗАКАЗ ПО pagerank DESC

Однако эта библиотека устарела. Я был бы признателен, если бы кто-нибудь подсказал мне, как получить эти функции и какой альтернативный код или библиотеку необходимо использовать для этого.

Ответ №1:

В последних версиях Neo4j библиотека алгоритмов Graph устарела в пользу библиотеки Graph Data Science

PageRank теперь здесь

Примечание: Некоторые функции, возможно, немного изменились в процессе работы, поскольку у меня это удобно, вот пример использования слабо связанных компонентов для идентификации островов графа и обозначения их номером группы. Я записываю значения, потому что я делаю этот шаг во время построения графика (в отличие от создания отдельного виртуального графика в памяти)

с библиотекой графов, которую я использовал

 //assign group by algo.wcc, was unionFind
CALL algo.wcc(null, null, {
  write: true,
  writeProperty: 'group',
  consecutiveIds: true
})
YIELD nodes AS Nodes, setCount AS NbrOfComponents, writeProperty AS PropertyName;
  

теперь с GDS я использую

 call gds.wcc.write(
{
        nodeQuery: 'match (n) return id(n) as id',
    relationshipQuery:'MATCH (a)-->(b) RETURN id(a) as source, id(b) as target',
    writeProperty:'group',
    consecutiveIds:true
}
)
YIELD nodePropertiesWritten
return nodePropertiesWritten;