• 大小: 964KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-05
  • 语言: Java
  • 标签: DBLPNeo4j  

资源简介

本java代码实现了将部分DBLP数据添加到Neo4j图数据库中构成网络,并实现了用PathSim算法获得与某个作者最为相似的TopK 个作者

资源截图

代码片段和文件信息

package Neo4j.Neo4jDemo;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

import org.neo4j.graphdb.Direction;
import org.neo4j.graphdb.DynamicRelationshipType;
import org.neo4j.graphdb.GraphDatabaseService;
import org.neo4j.graphdb.Node;
import org.neo4j.graphdb.Path;
import org.neo4j.graphdb.Relationship;
import org.neo4j.graphdb.RelationshipType;
import org.neo4j.graphdb.ResourceIterable;
import org.neo4j.graphdb.Transaction;
import org.neo4j.graphdb.factory.GraphDatabaseFactory;
import org.neo4j.graphdb.traversal.Evaluator;
import org.neo4j.graphdb.traversal.Evaluators;
import org.neo4j.graphdb.traversal.TraversalDescription;
import org.neo4j.graphdb.traversal.Traverser;
import org.neo4j.graphdb.traversal.Uniqueness;
import org.neo4j.graphdb.traversal.UniquenessFactory;
import org.neo4j.kernel.Traversal;


public class Main {
//作者集合
private static HashMap authorMap = null;
//作者的数量
private static int authorSize = 0;
private static int relativeAuthorSize = 0;
private static HashMap confMap = null;
//会议的数量
private static int confSize = 0;

public static void main(String args[]){
//定义Neo4j数据库,文件夹命名为ac.graphdb,后缀不能舍弃,否则neo4j community找不到数据位置
GraphDatabaseService db = new GraphDatabaseFactory().newembeddedDatabase(“D:/Neo4jDB/dblp.graphdb/“);
//创建Neo4j数据库
createGraphDB(db);
long authorNodeId = getAuthorNodeIdByName(db “Christos Faloutsos“);
List> list = calTopKSimilarity(dbauthorNodeId10);
for (Map.Entry mapping : list) {  
            System.out.println(mapping.getKey() + “:“ + mapping.getValue());  
        }
}
/**
 * 计算与源作者最为相似的前K个作者
 * @param db
 * @param authorNodeId
 * @param k
 * @return
 */
public static List> calTopKSimilarity(GraphDatabaseService dblong authorNodeIdint k){
Map AuthorSimilarMap = new HashMap();
Map confsForA = getConfsForAuthor(dbauthorNodeId);
//获得ACA元路径下相关的作者 NodeId和姓名
Map relativeAuthorMap = getDep2ForAuthor(dbauthorNodeId);
for (Map.Entry author : relativeAuthorMap.entrySet()) {
//获得相关作者的发表会议信息
Map confsForB = getConfsForAuthor(dbauthor.getKey());
float similarity = calPathSim(confsForAconfsForB);
AuthorSimilarMap.put(author.getValue() similarity);
        }
List> list = sortMap(AuthorSimilarMap);
if(k>relativeAuthorSize){
k=relativeAuthorSize;
}
return list.subList(0 k);

}
/**
 * 根据作者名称找到图数据库中作者节点的ID
 * @param db
 * @param 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        791  2018-01-06 13:45  Neo4jDemo\.classpath

     文件        561  2018-01-06 11:21  Neo4jDemo\.project

     文件         88  2018-01-06 11:24  Neo4jDemo\.settings\org.eclipse.core.resources.prefs

     文件        664  2018-01-06 13:45  Neo4jDemo\.settings\org.eclipse.jdt.core.prefs

     文件         90  2018-01-06 11:21  Neo4jDemo\.settings\org.eclipse.m2e.core.prefs

     文件    1373018  2017-05-20 14:34  Neo4jDemo\data\author.txt

     文件    2349080  2017-05-18 21:42  Neo4jDemo\data\author_conf.txt

     文件      11485  2017-05-20 14:34  Neo4jDemo\data\conf.txt

     文件        908  2018-01-06 11:26  Neo4jDemo\pom.xml

     文件      11962  2018-01-08 19:22  Neo4jDemo\src\main\java\Neo4j\Neo4jDemo\Main.java

     文件        209  2018-01-07 18:47  Neo4jDemo\src\main\java\Neo4j\Neo4jDemo\Relationships.java

     文件        222  2018-01-07 09:54  Neo4jDemo\src\main\java\Neo4j\Neo4jDemo\Type.java

     文件       1279  2018-01-08 19:22  Neo4jDemo\target\classes\Neo4j\Neo4jDemo\Main$1.class

     文件      14017  2018-01-08 19:22  Neo4jDemo\target\classes\Neo4j\Neo4jDemo\Main.class

     文件       1051  2018-01-07 18:47  Neo4jDemo\target\classes\Neo4j\Neo4jDemo\Relationships.class

     文件       1018  2018-01-07 09:54  Neo4jDemo\target\classes\Neo4j\Neo4jDemo\Type.class

     文件        617  2018-01-06 11:21  Neo4jDemo\target\test-classes\Neo4j\Neo4jDemo\AppTest.class

     目录          0  2018-01-06 17:16  Neo4jDemo\src\main\java\Neo4j\Neo4jDemo

     目录          0  2018-01-06 11:21  Neo4jDemo\src\main\java\Neo4j

     目录          0  2018-01-06 20:34  Neo4jDemo\target\classes\Neo4j\Neo4jDemo

     目录          0  2018-01-06 11:21  Neo4jDemo\target\test-classes\Neo4j\Neo4jDemo

     目录          0  2018-01-06 11:21  Neo4jDemo\src\main\java

     目录          0  2018-01-06 13:45  Neo4jDemo\target\classes\Neo4j

     目录          0  2018-01-06 11:21  Neo4jDemo\target\test-classes\Neo4j

     目录          0  2018-01-06 11:21  Neo4jDemo\src\main

     目录          0  2018-01-06 11:24  Neo4jDemo\src\test

     目录          0  2018-01-06 13:45  Neo4jDemo\target\classes

     目录          0  2018-01-06 11:21  Neo4jDemo\target\test-classes

     目录          0  2018-01-06 11:21  Neo4jDemo\.settings

     目录          0  2018-01-07 16:26  Neo4jDemo\data

............此处省略6个文件信息

评论

共有 条评论

相关资源