Neo4j, Match Relationship, где люди комментируют одни и те же посты - PullRequest
0 голосов
/ 07 мая 2019

У меня есть несколько примеров данных, которые состоят из двух типов узлов;ЛИЦА и ПОСТЫ с отношением COMMENTED_ON.Я могу визуализировать в Neo4J всех людей / сообщений и кто прокомментировал что.Однако я хочу сделать что-то более сложное, чтобы изолировать людей, комментирующих одни и те же сообщения.

Джон и Тим комментируют POST1 Сара комментирует POST2 Джон и Тим комментируют POST3 Джон и Сара комментируют POST4

В приведенном выше примере Джон и Тим комментируют одни и те же видео, поскольку вы можете видеть, что оба они прокомментировали POST1 + POST3

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

Ответы [ 2 ]

0 голосов
/ 07 мая 2019

Соответствует каждому человеку, комментирующему один и тот же пост. Это будет пара человек. Соберите все посты и соберите каждое имя (вам нужно сделать это за 2 шага). Развернуть означает развернуть собранные имена людей в строки / последовательности. Сортировать результат по сообщениям (ЗАКАЗАТЬ). Затем соберите (снова) имена людей (чтобы поместить их в один список). Вернуть только первый элемент (n [0]) в списке лиц

MATCH (n1:Person)-[: COMMENTED_ON]->(post) <- [: COMMENTED_ON] - (n2: Person)
WITH n1,n2, collect(post.name) as posts
WITH collect([n1.name, n2.name]) as coln, posts
UNWIND coln as n 
WITH n , posts ORDER by posts 
WITH collect (n) as n,  posts
RETURN  n[0] as Person, posts as Post

Результат:

enter image description here

0 голосов
/ 07 мая 2019

Попробуйте это: В этом шаблоне вы представляете двух человек, комментирующих один и тот же курс.

Затем посчитайте частоту и перечислите результаты, упорядоченные по наибольшей частоте.

MATCH (p1:Person)-[:COMMENTED_ON]->(post)<-[:COMMENTED_ON]-(p2:Person)
WITH p1,p2, count(post) as freq
ORDER BY freq DESC LIMIT 100
RETURN p1.name,p2.name, freq
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...