本体、知识库、知识图谱、知识图谱识别之间的关系?
本体:领域术语集合。
知识库:知识集合。
知识图谱:图状具有关联性的知识集合。
知识图谱本质上是语义网络,是一种基于图的数据结构,由节点(Point)和边(Edge)组成。在知识图谱里,每个节点表示现实世界中存在的“实体”,每条边为实体与实体之间的“关系”。知识图谱是关系的最有效的表示方式。通俗地讲,知识图谱就是把所有不同种类的信息连接在一起而得到的一个关系网络。知识图谱提供了从“关系”的角度去分析问题的能力。
构建知识图谱的主要目的是获取大量的、让计算机可读的知识。但是构建知识图谱的重点在于语义理解、知识表示、QA、智能对话和用户建模。但从抽象层面看,本体最抽象,其次是知识库,最后才是知识图谱。知识库就是一个知识数据库,包含了知识的本体和知识。比如Freebase是一个知识库(结构化),维基百科也可以看成一个知识库(半结构化),等等。也就是说,本体是强调概念关系,知识图谱强调实体关系和实体属性值,知识库则是所有知识的集合。但是知识库不局限于分类和图谱,知识库可以包括规则,包括过程性知识等。而本体也可以定义得很抽象,任何概念的内涵和外延可以定义本体。
知识图谱是一系列结构化数据的处理方法,它涉及知识的提取、 表示、存储、检索等诸多技术。从渊源上讲,它是知识表示与推理、数据库、信息检索、自然语言处理等多种技术发展的融合。 但传统的知识处理方法,在实际的工程应用,特别是互联网应用中,面临实施成本高、技术周期长、熟悉该类技术的人才缺乏、 基础数据不足等诸多现实制约。实战中的知识图谱,需要充分利用成熟的工业技术,不拘泥于特定的工具和方法,特别是不盲目追求标准化、技术的先进性或者新颖性,以实际的业务出发,循序渐进推进工程的实施。
知识图谱的全周期成本:有哪些成本?分为技术成本、团队成本和组织成本。技术有知识提取的成本、知识存储的成本、知识推理的成本、知识检索的成本、运维的成本、更新的成本。教育成本,一个人进来之后,他到底是一个月之后就能干活,还是半年之后能干活,取决于你的技术架构。如果你的知识提取架构是以正则表达式为基础的,那可能很容易。如果你是以一个规则的神经网络分布式表示来做,可能要半年之后才能理解是什么,所以这都是成本。
知识图谱和专家系统有什么异同点?
专家系统一般来说是基于规则的,专家系统的知识更多的是人工构建,知识图谱可以作为专家系统的一部分存在,提供半自动构建知识库的方法。要说共同点都是人工智能的应用,肯定有很多共有技术的,不同点可能就是根据不同的场景特意的技术运用。
知识图谱: 他是迈向下一代搜索业务关键的第一步,使得搜索智能化,根据用户的意图给出用户想要的结果。
特点:
1、用户搜索次数越多,范围越广,Google 就能获取越多信息和内容。
2、赋予字串新的意义,而不只是单纯的字串。
3、融合了所有的学科,以便于用户搜索时的连贯性。
4、为用户找出更加准确的信息,作出做全面的总结并提供更有深度相关的信息。
5、把与关键词相关的知识体系系统化地展示给用户。
6、用户只需登录Google旗下60多种在线服务中的一种就能获取在其他服务上保留的信息和数据。
7、Google从整个互联网汲取有用的信息让用户能够获得更多相关的公共资源。
专家系统: 是一种模拟人类专家解决领域问题的计算机程序系统 。
特点:专家系统是一个具有大量的专门知识与经验的程序系统,它应用人工智能技术和计算机技术,根据某领域一个或多个专家提供的知识和经验,进行推理和判断,模拟人类专家的决策过程,以便解决那些需要人类专家处理的复杂问题。
什么叫专家系统?就是人去学一个东西,然后把学到的知识理论化,再把这些理论模型化,最后把这个模型程序化,形成一个系统,就叫专家系统。
知识图谱分为三个部分技术组成:
第一个部分是知识获取,主要阐述如何从非结构化、半结构化、以及结构化数据中获取知识。
第二部是数据融合,主要阐述如何将不同数据源获取的知识进行融合构建数据之间的关联。
第三部分是知识计算及应用,这一部分关注的是基于知识图谱计算功能以及基于知识图谱的应用。
1.1.1 知识获取
在处理非结构化数据方面,首先要对用户的非结构化数据提取正文。目前的互联网数据存在着大量的广告,正文提取技术希望有效的过滤广告而只保留用户关注的文本内容。当得到正文文本后,需要通过自然语言技术识别文章中的实体,实体识别通常有两种方法,一种是用户本身有一个知识库则可以使用实体链接将文章中可能的候选实体链接到用户的知识库上。另一种是当用户没有知识库则需要使用命名实体识别技术识别文章中的实体。
若文章中存在实体的别名或者简称还需要构建实体间的同义词表,这样可以使不同实体具有相同的描述。在识别实体的过程中可能会用到分词、词性标注,以及深度学习模型中需要用到分布式表达如词向量。同时为了得到不同粒度的知识还可能需要提取文中的关键词,获取文章的潜在主题等。当用户获得实体后,则需要关注实体间的关系,我们称为实体关系识别,有些实体关系识别的方法会利用句法结构来帮助确定两个实体间的关系,因此在有些算法中会利用依存分析或者语义解析。如果用户不仅仅想获取实体间的关系,还想获取一个事件的详细内容,那么则需要确定事件的触发词并获取事件相应描述的句子,同时识别事件描述句子中实体对应事件的角色。
在处理半结构化数据方面,主要的工作是通过包装器学习半结构化数据的抽取规则。由于半结构化数据具有大量的重复性的结构,因此对数据进行少量的标注,可以让机器学出一定的规则进而在整个站点下使用规则对同类型或者符合某种关系的数据进行抽取。最后当用户的数据存储在生产系统的数据库中时,需要通过 ETL 工具对用户生产系统下的数据进行重新组织、清洗、检测最后得到符合用户使用目的数据。
1.1.2 知识融合
当知识从各个数据源下获取时需要提供统一的术语将各个数据源获取的知识融合成一个庞大的知识库。提供统一术语的结构或者数据被称为本体,本体不仅提供了统一的术语字典,还构建了各个术语间的关系以及限制。本体可以让用户非常方便和灵活的根据自己的业务建立或者修改数据模型。通过数据映射技术建立本体中术语和不同数据源抽取知识中词汇的映射关系,进而将不同数据源的数据融合在一起。
同时不同源的实体可能会指向现实世界的同一个客体,这时需要使用实体匹配将不同数据源相同客体的数据进行融合。不同本体间也会存在某些术语描述同一类数据,那么对这些本体间则需要本体融合技术把不同的本体融合。最后融合而成的知识库需要一个存储、管理的解决方案。
知识存储和管理的解决方案会根据用户查询场景的不同采用不同的存储架构如 NoSQL 或者关系数据库。同时大规模的知识库也符合大数据的特征,因此需要传统的大数据平台如 Spark 或者 Hadoop 提供高性能计算能力,支持快速运算。
1.1.2 知识计算及应用
知识计算主要是根据图谱提供的信息得到更多隐含的知识,如通过本体或者规则推理技术可以获取数据中存在的隐含知识;而链接预测则可预测实体间隐含的关系;同时使用社会计算的不同算法在知识网络上计算获取知识图谱上存在的社区,提供知识间关联的路径;通过不一致检测技术发现数据中的噪声和缺陷。通过知识计算知识图谱可以产生大量的智能应用如可以提供精确的用户画像为精准营销系统提供潜在的客户;提供领域知识给专家系统提供决策数据,给律师、医生、公司 CEO 等提供辅助决策的意见;提供更智能的检索方式,使用户可以通过自然语言进行搜索;当然知识图谱也是问答必不可少的重要组建。
1.2 实体关系识别技术
基于统计学的方法将从文本中识别实体间关系的问题转化为分类问题。基于统计学的方法在实体关系识别时需要加入实体关系上下文信息确定实体间的关系,然而基于监督的方法依赖大量的标注数据,因此半监督或者无监督的方法受到了更多关注。
知识融合技术
知识融合指的是将多个数据源抽取的知识进行融合。与传统数据融合任务的主要不同是,知识融合可能使用多个知识抽取工具为每个数据项从每个数据源中抽取相应的值,而数据融合未考虑多个抽取工具。由此,知识融合除了应对抽取出来的事实本身可能存在的噪音外,还比数据融合多引入了一个噪音,就是不同抽取工具通过实体链接和本体匹配可能产生不同的结果。另外,知识融合还需要考虑本体的融合和实例的融合。
首先从已有的数据融合方法中挑选出易于产生有意义概率的、便于使用基于 MapReduce 框架的、有前途的最新方法,然后对这些挑选出的方法做出以下改进以用于知识融合:将每个抽取工具同每个信息源配对,每对作为数据融合任务中的一个数据源,这样就变成了传统的数据融合任务;改进已有数据融合方法使其输出概率,代替原来的真假二值;根据知识融合中的数据特征修改基于 MapReduce 的框架。可以将通过不同搜索引擎得到的知识卡片(即结构化的总结)融合起来的方法。
针对一个实体查询,不同搜索引擎可能返回不同的知识卡片,即便同一个搜索引擎也可能返回多个知识卡片。将这些知识卡片融合起来时,将知识融合中的三维问题将为二维问题,再应用传统的数据融合技术。不过一个新的概率打分算法,是用于挑选一个知识卡片最有可能指向的实体,并设计了一个基于学习的方法来做属性匹配。
在知识融合技术中,本体匹配扮演着非常重要的角色,提供了概念或者实体之间的对应关系。截止目前,人们已经提出了各种各样的本体匹配算法,一般可以分为模式匹配(schema matching)和实例匹配(instance matching),也有少量的同时考虑模式和实例的匹配[32-34]。从技术层面来讲,本体匹配可分为启发式方法、概率方法、基于图的方法、基于学习的方法和基于推理的方法。下面围绕模式匹配和实例匹配,具体介绍各自分类中几个具有代表性的匹配方法。
模式匹配主要寻找本体中属性和概念之间的对应关系,一个自动的语义匹配方法,该方法首先利用像 WordNet 之类的词典以及本体的结构等信息进行模式匹配,然后将结果根据加权平均的方法整合起来,再利用一些模式(patterns)进行一致性检查,去除那些导致不一致的对应关系。该过程可循环的,直到不再找到新的对应关系为止。考虑多种匹配算法的结合,利用基于术语的一些相似度计算算法,例如 n-gram 和编辑距离,这里算法计算的结果根据加权求和进行合并,还考虑了概念的层次关系和一些背景知识,最后通过用户定义的权重进行合并。
为了应对大规模的本体,使用锚(anchor)的系统,该系统以一对来自两个本体的相似概念为起点,根据这些概念的父概念和子概念等邻居信息逐渐地构建小片段,从中找出匹配的概念。新找出的匹配的概念对又可作为新的锚,然后再根据邻居信息构建新的片段。该过程不断地重复,直到未找到新的匹配概念对时停止。则以分而治之的思想处理大规模本体,该方法先根据本体的结构对其进行划分获得组块,然后从不同本体获得的组块进行基于锚的匹配,这里的锚是指事先匹配好的实体对,最后再从匹配的组块中找出对应的概念和属性。
现有的匹配方法通常是将多个匹配算法相结合,采用加权平均或加权求和的方式进行合并。但是,由于本体结构的不对称性等特征,这种固定的加权方法显出不足。基于贝叶斯决策的风险最小化提出一个动态的合并方法,该方法可以根据本体的特征,在计算每个实体对的相似度时动态地选择使用哪几个匹配算法,如何合并这些算法,其灵活性带来了很好的匹配结果。实例匹配是评估异构知识源之间实例对的相似度,用来判断这些实例是否指向给定领域的相同实体。
最近几年,随着 Web 2.0 和语义 Web 技术的不断发展,越来越多的语义数据往往具有丰富实例和薄弱模式的特点,促使本体匹配的研究工作慢慢的从模式层转移到实例层。一个自训练的方法进行实例匹配,该方法首先根据 owl:sameAs、函数型属性(functional properties)和基数(cardinalities)构建一个核(kernel),再根据区别比较明显的属性值对递归的对该核进行扩展。利用现有的局部敏感哈希技术来大幅提高实例匹配的可扩展性,该方法首先需要定义用于实例相似性分析的粒度,然后使用分割好的字符串技术实例相似度。
首先使用向量空间模型表示实例的描述性信息,再基于规则采用倒排索引(inverted indexes)获取最初的匹配候选,在使用用户定义的属性值对候选进行过滤,最后计算出的匹配候选相似度用来作为整合的向量距离,由此抽取出匹配结果。虽然已有方法中已有不少用于处理大规模本体的实例匹配问题,但是同时保证高效和高精度仍然是个很大的挑战。一个迭代的框架,充分利用特征明显的已有匹配方法来提高效率,同时基于相似度传播的方法利用一个加权指数函数来确保实例匹配的高精度。
1.4 实体链接技术
歧义性和多样性是自然语言的固有属性,也是实体链接的根本难点。如何挖掘更多、更加有效的消歧证据,设计更高性能的消歧算法依然是实体链接系统的核心研究问题,值得进一步研究。下面按照不同的实体消歧方法进行分类。
基于概率生成模型方法:一种生成概率模型,将候选实体 e 出现在某页面中的概率、特定实体 e 被表示为实体指称项的概率以及实体 e 出现在特定上下文中的概率三者相乘,得到候选实体同实体指称项之间的相似度评分值。Blanco 和 Ottaviano 等人[48]提出了用于搜索查询实体链接的概率模型,该方法采用了散列技术与上下文知识,有效地提高了实体链接的效率。
基于主题模型的方法:通过模型自动对文本中的实体指称进行标注,生成训练数据集用于训练 LDA 主题模型,然后计算实体指称和候选实体的上下文语义相似度从而消歧得到目标实体。对用户的兴趣主题建模的方法,首先构建关系图,图中包含了不同命名实体间的相互依赖关系,然后利用局部信息对关系图中每个命名实体赋予初始兴趣值,最后利用传播算法对不同命名实体的兴趣值进行传播得到最终兴趣值,选择具有最高兴趣值的候选实体。
基于图的方法:构造了一种基于图的模型,其中图节点为所有实体指称和所有候选实体;图的边分为两类,一类是实体指称和其对应的候选实体之间的边,权重为实体指称和候选实体之间的局部文本相似度,采用词袋模型和余弦距离计算得出。另一类是候选实体之间的边,权重为候选实体之间的语义相关度,采用谷歌距离计算。算法首先采集不同实体的初始置信度,然后通过图中的边对置信度进行传播和增强。
基于图和语义关系的命名实体消歧方法,该方法在维基百科上建立基于图的模型,然后在该模型上计算各个命名实体的得分从而确定了目标实体,该方法在新闻数据上取得了较高的准确率。采用基于图的方法,图中的节点为所有的候选实体,边采用两种方式构建,一种是实体之间的维基百科链接,另一种是使用实体在维基百科文章中句子的共现。图中的候选实体节点通过和实体指称的相似度值被赋予初始值,采用 PageRank 选择目标实体。使用实体的先验概率,实体指称和候选实体的上下文相似度,以及候选实体之间的内聚性构成一个加权图,从中选择出一个候选实体的密集子图作为最可能的目标实体分配给实体指称。
基于深度神经网络的方法:一种用于实体消歧的实体表示训练方法。该方法对文章内容进行自编码,利用深度神经网络模型以有监督的方式训练实体表示,依据语义表示相似度对候选实体进行排序,但该方法是一种局部性方法,没有考虑同一文本中共同出现的实体间相关性。基于深度神经网络和语义知识图谱,提出了一种基于图的半监督实体消歧义方法,将深度神经网络模型得到的实体间语义关联度作为图中的边权值。
从实验结果得出:基于语义知识图谱的 NGD 和VSM方法比起 Wikipedia anchor links 无论在关联性测试上还是在消歧性能上都具有更好的测试结果。相比 NGD 和 VSM,基于 DNN的深度语义关联方法在关联性测试上还是在消歧性能上都具有更好的关联性和更高的准确性。但该方法存在两点不足,一方面在构建深度语义关联模型时采用词袋子方法,没有考虑上下文词之间位置关系,另外一方面在消歧的过程中,构建的图模型没有充分利用已消歧实体,边权值和顶点得分随着未消歧实体增加保持不变,并没有为后续的歧义实体增加信息量。
1.5 知识推理技术
知识库推理可以粗略地分为基于符号的推理和基于统计的推理。在人工智能的研究中,基于符号的推理一般是基于经典逻辑(一阶谓词逻辑或者命题逻辑)或者经典逻辑的变异(比如说缺省逻辑)。基于符号的推理可以从一个已有的知识图谱,利用规则,推理出新的实体间关系,还可以对知识图谱进行逻辑的冲突检测。基于统计的方法一般指关系机器学习方法,通过统计规律从知识图谱中学习到新的实体间关系。
1.5.1 基于符号逻辑的推理方法
为了使得语义网络同时具备形式化语义和高效推理,一些研究人员提出了易处理(tractable)概念语言,并且开发了一些商用化的语义网络系统。这些系统的提出,使得针对概念描述的一系列逻辑语言,统称描述逻辑(description logic),得到了学术界和业界广泛关注。但是这些系统的推理效率难以满足日益增长的数据的需求,最终没能得到广泛应用。这一困局被利物浦大学的 Ian Horrocks 教授打破,他开发的 FaCT 系统可以处理一个比较大的医疗术语本体 GALEN,而且性能比其他类似的推理机要好得多。描述逻辑最终成为了 W3C 推荐的 Web 本体语言 OWL 的逻辑基础。
虽然描述逻辑推理机的优化取得了很大的进展,但是还是跟不上数据增长的速度,特别是当数据规模大到目前的基于内存的服务器无法处理的情况下。为了应对这一挑战,最近几年,研究人员开始考虑将描述逻辑和 RDFS 的推理并行来提升推理的效率和可扩展性,并且取得了很多成果。并行推理工作所借助的并行技术分为以下两类:1)单机环境下的多核、多处理器技术,比如多线程,GPU 技术等;2)多机环境下基于网络通信的分布式技术,比如 MapReduce 计算框架、Peer-To-Peer 网络框架等。很多工作尝试利用这些技术实现高效的并行推理。
单机环境下的并行技术以共享内存模型为特点,侧重于提升本体推理的时间效率。对于实时性要求较高的应用场景,这种方法成为首选。对于表达能力较低的语言,比如 RDFS、OWL EL,单机环境下的并行技术将显著地提升本体推理效率。Goodman 等人在[59]中利用高性能计算平台 Cray XMT 实现了大规模的 RDFS 本体推理,利用平台计算资源的优势限制所有推理任务在内存完成。
然而对于计算资源有限的平台,内存使用率的优化成为了不可避免的问题。工作中将 RDFS,以及表达能力更高的 OWL RL 等价地转换为 Datalog 程序,然后利用 Datalog 中的并行优化技术来解决内存的使用率问题。利用并行与串行的混合方法来提升OWL RL的推理效率,利用多线程技术实现 OWL EL 分类(classification)的方法,并实现推理机 ELK。
尽管单机环境的推理技术可以满足高推理性能的需求,但是由于计算资源有限(比如内存,存储容量),推理方法的可伸缩性(scalability)受到不同程度的限制。因此,很多工作利用分布式技术突破大规模数据的处理界限。这种方法利用多机搭建集群来实现本体推理。
首个尝试利用 Peer-To-Peer 的分布式框架实现 RDF 数据推理的工作。实验结果表明,利用分布式技术可以完成很多在单机环境下无法完成的大数据量推理任务。很多工作基于 MapReduce 的开源实现(如 Hadoop,Spark 等)设计提出了大规模本体的推理方法。实验结果证实其在大集群上可以完成上百亿的 RDF 三元组的推理。基于 MapReduce 的 OWL RL 查询算法利用 MapReduce 来实现 OWL EL 本体的推理算法在实验证明 MapReduce 技术同样可以解决大规模的 OWL EL 本体推理。工作中,进一步扩展 OWL EL 的推理技术,使得推理可以在多个并行计算平台完成。
1.5.2 基于统计的推理方法
知识图谱中基于统计的推理方法一般指关系机器学习方法。下面介绍一些典型的方法。
实体关系学习方法
实体关系学习的目的是学习知识图谱中实例和实例之间的关系。这方面的工作非常多,也是最近几年知识图谱的一个比较热的研究方向。可以分为潜在特征模型和图特征模型两种。潜在特征模型通过实例的潜在特征来解释三元组。比如说,莫言获得诺贝尔文学奖的一个可能解释是他是一个有名的作家。一个关系潜在特征模型,称为双线性(bilinear)模型,该模型考虑了潜在特征的两两交互来学习潜在的实体关系。应用两两交互的张量分解模型来学习知识图谱中的潜在关系。
翻译(translation)模型将实体与关系统一映射至低维向量空间中,且认为关系向量中承载了头实体翻译至尾实体的潜在特征。因此,通过发掘、对比向量空间中存在类似潜在特征的实体向量对,我们可以得到知识图谱中潜在的三元组关系。全息嵌入(Holographic Embedding,HolE)模型分别利用圆周相关计算三元组的组合表示及利用圆周卷积从组合表示中恢复出实体及关系的表示。与张量分解模型类似,HolE 可以获得大量的实体交互来学习潜在关系,而且有效减少了训练参数,提高了训练效率。
基于图特征模型的方法从知识图谱中观察到的三元组的边的特征来预测一条可能的边的存在。典型的方法有基于基于归纳逻辑程序(ILP)的方法,基于关联规则挖掘(ARM)的方法和路径排序(path ranking)的方法。基于 ILP 的方法和基于 ARM 的方法的共同之处在于通过挖掘的方法从知识图谱中抽取一些规则,然后把这些规则应用到知识图谱上,推出新的关系。而路径排序方法则是根据两个实体间连通路径作为特征来判断两个实体是否属于某个关系。
类型推理(typeinference)方法
知识图谱上的类型推理目的是学习知识图谱中的实例和概念之间的属于关系。SDT利用三元组主语或谓语所连接属性的统计分布以预测实例的类型。该方法可以用在任意单数据源的知识图谱,但是无法做到跨数据集的类型推理。Tipalo与LHD均使用 DBpedia 中特有的 abstract 数据,利用特定模式进行实例类型的抽取。此类方法依赖于特定结构的文本数据,无法扩展到其他知识库。
模式归纳(schemainduction)方法
模式归纳方法学习概念之间的关系,主要有基于 ILP 的方法和基于 ARM 的方法。ILP 结合了机器学习和逻辑编程技术,使得人们可以从实例和背景知识中获得逻辑结论。Lehmann 等在中提出用向下精化算子学习描述逻辑的概念定义公理的方法,即从最一般的概念(即顶概念)开始,采用启发式搜索方法使该概念不断特殊化,最终得到概念的定义。为了处理像 DBpedia 这样大规模的语义数据,该方法在中得到进一步的扩展。这些方法都在 DL-Learner中得以实现。Völker 等人在中介绍了从知识图谱中生成概念关系的统计方法,该方法通过 SPARQL 查询来获取信息,用以构建事务表。然后使用 ARM 技术从事务表中挖掘出一些相关联的概念关系。在他们的后续工作中,使用负关联规则挖掘技术学习不交概念关系,并在文献中给出了丰富的试验结果。
2 开放知识图谱
本节首先介绍当前世界范围内知名的高质量大规模开放知识图谱,包括 DBpedia、Yago、Wikidata、BabelNet、ConceptNet以及Microsoft Concept Graph等,中文开放知识图谱平台 OpenKG。
2.1 开放知识图谱
DBpedia 是一个大规模的多语言百科知识图谱,可视为是维基百科的结构化版本。DBpedia 使用固定的模式对维基百科中的实体信息进行抽取,包括 abstract、infobox、category 和 page link 等信息。图 2 示例了如何将维基百科中的实体“Busan”的 infobox 信息转换成 RDF 三元组。DBpedia 目前拥有 127 种语言的超过两千八百万个实体与数亿个 RDF 三元组,并且作为链接数据的核心,与许多其他数据集均存在实体映射关系。而根据抽样评测[96],DBpedia 中 RDF 三元组的正确率达 88%。DBpedia 支持数据集的完全下载。
2.2 中文开放知识图谱联盟介绍
中文开放知识图谱联盟(OpenKG)旨在推动中文知识图谱的开放与互联,推动知识图谱技术在中国的普及与应用,为中国人工智能的发展以及创新创业做出贡献。联盟已经搭建有 OpenKG.CN 技术平台,如图 5 所示,目前已有 35 家机构入驻。吸引了国内最著名知识图谱资源的加入,如 Zhishi.me, CN-DBPedia, PKUBase。并已经包含了来自于常识、医疗、金融、城市、出行等 15 个类目的开放知识图谱。
知识图谱15条军规:
1) 知识提取是投入很大的工作。因为周期长,反而更需要任务分解,化长期工作为若干可以短期交付的工作。
2)交付很重要。交付不一定要是最终的产品,尽可能思考是否可以可以把中间阶段变成可用的。按周为单位交付。
3)越是长期的工程,越需要在团队沟通上下功夫。及时通知团队成员已可交付模块的变化。
4)保持一个交付的心态。不仅对外交付,对内部也要交付。 联调系统就是交付的检查器。
5)保持工作不发霉最好的办法是晒。越是长期的工作,越要有意识地经常拿出来晒。
6)在线 Demo 是低成本沟通的好办法。
7)可视化工作的进度,并让所有的人都看到。
8)保存提取的中间产物:原始文件,富文本格式,text格式,段落篇章,Meme 提取,实体,标签……
9)不要用 RDF,或者三元组。那会带来演进的噩梦
10)保持提取出来的数据的可读性。保持合理的粒度的组织,不要分得太细,但也不要太大。如果原始数据可读性不好,多做一些自己用的工具来提升其可读性,如缩进、语法高亮、表格化、导出为 csv 等。数据可读性是数据debug的关键之一。
11)观察数据,不怕麻烦。知识提取是水磨功夫。牛人的能力往往就是掌握了快速观察的方法。
12)从第一分钟开始就写回归测试。写测试是节约开发时间,不是浪费时间。测试代码比提取代码还多是正常。测试提供反馈。
13)提取和测试,先写单线程,再多线程并发。写单线程的时候就考虑到数据可能会并发处理。队列方法可能简化处理架构。
14)尽可能避免问题大数据化。尽量避免分布式处理。先尽可能scale up,而后scale out。
15)适应没有标注数据、Golden standard。如果没有标准答案,可以试着用两种(或更多)不同的算法去解决同一个问题,然后比较结果是不是一致。不要等有标准答案。