资源简介
最近几年,例如YAGO和DBpedia等大规模知识库发展有了很大的进步。知识库提供了大量的不同种类的实体信息,如人、国家、河流、城市大学等等,同时知识库包含了大量的在实体(entity)间的关系既事实(fact)。当今的知识库包含的数据量是巨大的通常有百万个实体和上亿个描述实体间关系的事实数据。
虽然目前的知识库存在大量的实体和事实数据,但是这样大规模的数据仍然不完整。目前构建知识库的方法主要有两种,一种是从大量的文本中抽取事实但这种方法必然会带来大量的噪声数据,第二是人工扩展,但这样的方法对于时间的开销是极大的。如果确保一个知识库是完整的则必须花费很大的努力来抽取大量的事实,并检查事实的正确性,因为只有正确的事实加入到知识库中才是有意义的。同时知识库的本身由于有足够的信息可以推理出更多的新的事实。例如有这样一个例子,一个知识库包含一组事实是孩子c有一个妈妈m,这样可以推理得出孩子妈妈的丈夫f很可能是孩子的父亲。该逻辑规则形式化的描述如下:
motherof(m,c)∧marriedTo(m,f)⟹fatherof(f,c)
挖掘这种规则可帮助做一下四种事情:1、利用这种规则来推理出新的事实,而这些被挖掘出的新的事实可以使知识库更完整。2、这些规则可以检测出知识库潜在的错误例如一个陈述是一个与一个男孩无关的人是这个男孩的父亲,这样的陈述很可能是错误的。3、有很多推理工具依赖其他工具提供规则,所以这些被挖掘出来的规则可以用于推理。4、这些规则描述一个普遍的规律,这些规律可以帮我我们理解分析知识库中的数据,如找到一些国家通常与说同一种语言的国家交易。或结婚是一个对称关系,或使用同一个乐器的音乐家通常互相影响等等。
AMIE的目标是从RDF格式的知识库中挖掘如上所述的逻辑规则,在语义网(Semantic Web)中存在大量的RDF知识库如YAGO、Freebase和DBpedia等。这些知识库使用RDF三元组(S,P,O)提供二元关系(binary relation)的描述。由于知识库一般只包含正例而(S,P,O)没有反例(S,¬P,O),所以RDF这样的知识库中仅能通过正例来推理。进一步来说在RDF知识库上的操作是基于开放世界假设(OWA)的。在开放世界假设下,一个事实没有在知识库中存在那么我们不能说这个事实是错误的,只能说这个陈述是未知的。这与标准的数据库在封闭世界假设的设定有本质上的区别。例如在知识库中没有包含marry(a,b),在封闭世界假设中我们可以得出这个a没有和b结婚而在开放世界假设下我们只能说a可能结婚了也可能单身。
压缩包内包含AMIE可运行源代码与相应文档资料,欢迎下载参考
代码片段和文件信息
package data;
import java.io.File;
import java.io.IOException;
import java.util.Set;
import javatools.datatypes.ByteString;
public class ColumnOverlapCalculator {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
FactDatabase source = new FactDatabase();
source.load(new File(args[0]));
printOverlapTable(source);
}
private static void printOverlapTable(FactDatabase source) {
//for each pair of relations print the overlap table
System.out.println(“Relation1\tRelation2\tRelation1-subjects\tRelation1-objects\tRelation2-subjects\tRelation2-objects\tSubject-Subject\tSubject-object\tobject-Subject\tobject-object“);
for(ByteString r1: source.predicateSize){
Set subjects1 = source.predicate2subject2object.get(r1).keySet();
Set objects1 = source.predicate2object2subject.get(r1).keySet();
int nSubjectsr1 = subjects1.size();
int nobjectsr1 = objects1.size();
for(ByteString r2: source.predicateSize){
if(r1.equals(r2))
continue;
System.out.print(r1 + “\t“);
System.out.print(r2 + “\t“);
Set subjects2 = source.predicate2subject2object.get(r2).keySet();
Set objects2 = source.predicate2object2subject.get(r2).keySet();
int nSubjectr2 = subjects2.size();
int nobjectsr2 = objects2.size();
System.out.print(nSubjectsr1 + “\t“ + nobjectsr1 + “\t“ + nSubjectr2 + “\t“ + nobjectsr2 + “\t“);
System.out.print(computeOverlap(subjects1 subjects2) + “\t“);
System.out.print(computeOverlap(subjects1 objects2) + “\t“);
System.out.print(computeOverlap(subjects2 objects1) + “\t“);
System.out.println(computeOverlap(objects1 objects2));
}
}
}
private static int computeOverlap(Set subjects1
Set subjects2) {
int overlap = 0;
for(ByteString entity1 : subjects1){
if(subjects2.contains(entity1))
++overlap;
}
return overlap;
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 406 2014-07-30 21:25 AMIE\.classpath
文件 380 2014-07-30 21:14 AMIE\.project
文件 80 2014-07-30 22:34 AMIE\.settings\org.eclipse.core.resources.prefs
文件 598 2014-07-30 21:14 AMIE\.settings\org.eclipse.jdt.core.prefs
文件 3433 2014-08-13 11:07 AMIE\bin\data\ColumnOverlapCalculator.class
文件 4326 2014-08-13 11:07 AMIE\bin\data\EntityTrimmer.class
文件 4863 2014-08-13 11:07 AMIE\bin\data\EquivalenceChecker.class
文件 1953 2014-08-13 11:07 AMIE\bin\data\EquivalenceChecker2$Node.class
文件 4606 2014-08-13 11:07 AMIE\bin\data\EquivalenceChecker2$QueryGraph.class
文件 5370 2014-08-13 11:07 AMIE\bin\data\EquivalenceChecker2.class
文件 5478 2014-08-13 11:07 AMIE\bin\data\eval\EntitiesRelationSampler.class
文件 1011 2014-08-13 11:07 AMIE\bin\data\eval\EvalResult.class
文件 1089 2014-08-13 11:07 AMIE\bin\data\eval\EvalSource.class
文件 1780 2014-08-13 11:07 AMIE\bin\data\eval\Evaluation.class
文件 3573 2014-08-13 11:07 AMIE\bin\data\eval\EvaluationsSummarizer.class
文件 5211 2014-08-13 11:07 AMIE\bin\data\eval\Evaluator.class
文件 8122 2014-08-13 11:07 AMIE\bin\data\eval\PCAFalseFactsSampler.class
文件 3169 2014-08-13 11:07 AMIE\bin\data\eval\PredictionsMerger.class
文件 15294 2014-08-13 11:07 AMIE\bin\data\eval\PredictionsSampler.class
文件 5363 2014-08-13 11:07 AMIE\bin\data\eval\RuleBodySizeEvaluator.class
文件 4592 2014-08-13 11:07 AMIE\bin\data\eval\RuleHitsEvaluator.class
文件 3865 2014-08-13 11:07 AMIE\bin\data\eval\TSVRuleJoin.class
文件 2932 2014-08-13 11:07 AMIE\bin\data\eval\TSVSpecialMerge.class
文件 1730 2014-08-13 11:07 AMIE\bin\data\FactDataba
文件 1836 2014-08-13 11:07 AMIE\bin\data\FactDataba
文件 57407 2014-08-13 11:07 AMIE\bin\data\FactDataba
文件 4285 2014-08-13 11:07 AMIE\bin\data\FactsTrimmer.class
文件 2445 2014-08-13 11:07 AMIE\bin\data\KBFunctionalConvertor.class
文件 2390 2014-08-13 11:07 AMIE\bin\data\KBSummarizer.class
文件 3290 2014-08-13 11:07 AMIE\bin\data\OntologyCoalesce.class
............此处省略952个文件信息
相关资源
- PAAS平台问题知识库
- wooyun drops乌云知识库全部文章
- 关联规则商品销售数据集
- 关联规则--CARMA.ppt
- 机器人知识库
- 基于关联规则的股票时间序列趋势预
- T10I4D100K 关联规则数据集
- 运维管理知识库管理系统
- 慧诚知识库个人免费版
- MMX-应用密码学:协议、算法与c源程序
- 关于数据挖掘方向的优秀硕士论文
- 硕士论文-基于本体的学科知识库构建
- 数据挖掘关联规则分析数据集
- wooyun drops乌云知识库全部文章.zip
- 利用网络上公开的数据构建一个小型
- 微信机器人知识库语料库
- 论文研究-数据挖掘中关联规则挖掘的
- 知识库管理系统源码+数据
- 超市数据集
- 导入Excel数据,并进行关联规则分析
- 数据挖掘原理与SPSS Clementine应用-关联
- 基于aprior的模糊关联规则挖掘算法
- EC20TC_IP AT命令中文不完整版.docx
- 图灵机器人知识库语料库
- 关联规则实验报告
- 挖掘关联规则中AprioriTid算法的改进
- 聊天机器人知识库表格
- confluence操作说明文档
- 图灵机器人知识库
- R语言 关联规则 apriori算法
评论
共有 条评论