您的位置:首页 > 理论基础 > 计算机网络

社交网络挖掘的另一个工具-igraph

2012-03-14 11:41 323 查看
工欲善其事,必先利其器

最近一直在做社交网络挖掘相关的工作,一直用的networkx这个python工具,享受python带来的便利的同时,要忍受networkx的性能问题。当分析的网络较小的时候,networkx没有问题,但是节点有几百万的时候,networkx真的很慢。所以,我就逐渐使用igraph。igraph是c实现的,性能比networkx肯定要好,而且,提供的api更丰富一些,同时支持python和R的接口,使用起来很方便。具体的区别,我会在使用过程中不断总结,并且和大家进行分享。

下载

下载igraph:点击这里。下载python接口:点击这里。这两个连接,都是针对0.5.4版本的,10年更新的。那之后,到现在还没有更新,略感失望。

安装

安装命令比较简单。 安装igraph命令如下:

./configure
make
make install

安装python接口如下:

python setup.py install

一些问题

在python中import igraph的时候,会出现以下异常

>>> from igraph import Graph
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "igraph/__init__.py", line 30, in <module>
from igraph.core import *
ImportError: No module named core

>>> from igraph import *
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.6/dist-packages/python_igraph-0.5.4-py2.6-linux-x86_64.egg/igraph/__init__.py", line 30, in <module>
from igraph.core import *
ImportError: libigraph.so.0: cannot open shared object file: No such file or directory

主要是因为找不到libigraph.so.0的库。可以如下操作

sudo updatedb
locate libigraph.so.0

找到库的位置之后,例如/usr/local/lib 执行

export LD_LIBRARY_PATH=/usr/local/lib

即可。 提供的功能如何,还需要进一步使用,不过性能应该比networkx有不少提升。欢迎交流,分享使用心得,由于这个库很久没有更新,且开源,如果可以,大家都可以贡献自己的代码,是一件很棒的事情。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: