Как и во многих классах в NetworKit, PLP
и PLM
включают метод run()
, который выполняет алгоритм, и вам необходимо вызвать его перед получением результата.
Также нет необходимости использовать метод toString()
для получения структуры сообщества;
Вы можете использовать метод getPartition()
(включенный в PLP
и PLM
, см. документацию ), который возвращает объект Partition
, представляющий структуру сообщества (вы можете найти документацию Partition
здесь ).
См. Простой пример ниже:
from networkit import *
# In this example I generate a graph with a random community structure.
# In your code use your own graph.
g = generators.ClusteredRandomGraphGenerator(100, 10, 0.5, 0.01).generate()
# Creating an instance of PLP and running the algorithm.
# Use community.PLM(g) to run the PLM algorithm.
plp = community.PLP(g).run()
# Getting the Partition object.
plpPartition = plp.getPartition()
# Getting the community IDs.
plpCommunityIDs = plpPartition.getSubsetIds()
# Getting the community ID of each node of the graph g.
plpCommunities = plpPartition.getVector()
Каждое сообщество связано с уникальным целочисленным идентификатором, а каждый узел - с идентификатором сообщества. plpCommunityIDs
- это набор, который содержит все идентификаторы сообщества, а plpCommunities
- это вектор размером n (число узлов графа), который содержит идентификатор сообщества каждого узла (например, используйте c = plpCommunities[v]
для хранения в c
идентификаторе сообщества узла v
).