提取企业项目信息的制作方法

文档序号:13080254阅读:324来源:国知局
提取企业项目信息的制作方法与工艺

背景

企业可一般地被定义成组织实体,并且更具体而言是指组织的整体,包括其各个单位和位置。企业可积聚与其运营相关的大量的不同类型的数据。例如,该数据包括关于企业的各种项目的信息,包括从事于项目的人员以及在项目的过程期间被生成和收集的同项目相关的项。该项目信息通常跨众多的企业数据源散布。

概述

本文所描述的项目信息提取实现通常为企业提取项目信息并且生成项目信息数据库。在一个实现中,这是通过使用计算设备执行以下过程动作来实现的。首先,企业项目名称从与企业相关联的信息源被提取出。与对应于每个提取出的企业项目名称的项目相关联的人员同样使用与企业相关联的信息源来标识。随后生成针对该企业的项目信息数据库。该数据库具有每个项目的条目,其包括与项目相关联的提取出的企业项目名称以及被标识成与项目相关联的人员的至少一个列表。

应该注意,提供前述概述是为了以简化的形式介绍将在以下详细描述中进一步描述的概念的精选。本概述并非旨在标识出要求保护的主题的关键特征或必要特征,亦非旨在用作辅助确定要求保护的主题的范围。唯一的目的是以简化的形式呈现所要求保护的主题的某些概念,作为下文呈现的比较详细的描述的前奏。

附图简述

参考以下描述、所附权利要求书以及附图,将更好地理解本发明的具体特征、方面和优点,附图中:

图1是以简化的形式例示用于实现本文所描述的项目信息提取实现的项目信息数据库系统的一个实现的图示。

图2是例示提取项目信息和生成企业的项目信息数据库的过程的一个实现的流程图。

图3示出了用于执行被用来标识作为潜在的项目名称的企业文档中的文本字符串的赫斯特模式分析(hearstpatternanalysis)的示例性伪代码。

图4示出了用于执行基于种子的拆分过程以标识分发组(dg)标题中的企业项目名称和修饰语的示例性伪代码。

图5示出了用于执行后缀频率拆分过程以标识dg标题中的企业项目名称和修饰语的示例性伪代码。

图6a-b是例示使用包含企业文档的一个或多个信息源来标识与对应于每个提取出的企业项目名称的项目相关联的人员的过程的一个实现的流程图。

图7a-b是例示使用包含企业分发组和会议信息的一个或多个信息源来标识与对应于每个提取出的企业项目名称的项目相关联的人员的过程的一个实现的流程图。

图8a-b是例示对与项目相关联的人员根据他们的角色指定来进行排名的过程的一个实现的流程图。

图9是描绘构成用于与本文所描述的项目信息提取实现一起使用的示例性系统的通用计算设备的示图。

详细描述

在以下描述中,对附图进行了参考,附图构成了以下描述的一部分并且在其中作为说明示出了可在其中实践项目信息提取实现的具体版本。可以理解,可以使用其他实现并且可以做出结构上的改变而不背离其范围。

还应注意,出于清楚的目的,在描述项目信息提取实现时将依靠具体的术语,但并不意味着这些实现被限制于所选择的具体术语。此外,应当理解的是,每个具体术语包括以宽泛地类似方式工作以实现类似目的的所有其技术等同物。本文引用“一个实现”、或“另一实现”、或“示例性实现”、或“替代实现”意味着结合该实现描述的特定特征、特定结构、或特定特性可被包括在项目信息提取的至少一个版本中。在本说明书中各个位置出现的短语“在一个实现中”、“在另一实现中”、“在一示例性实现中”、以及“在一替换实现中”不一定全部指同一实现,也不一定是与其他实现相互排斥的分开的或替代的实现。此外,表示演示合成的一个或多个实现的过程流的次序既不固有地指示任何特定次序,也不暗示其任何限制。

如本文中所使用的,术语“组件”、“系统”、“客户端”等旨在指代计算机相关的实体,它们可以是硬件、(例如,执行中的)软件、和/或固件,或其组合。例如,组件可以是,在处理器上运行的进程、对象、可执行码、程序、函数、库、子例程、计算机,或软件和硬件的组合。作为说明,在服务器上运行的应用和该服务器两者都可以是组件。一个或多个组件可留驻在进程中,并且组件可位于一个计算机上和/或分布在两个或更多个计算机之间。术语“处理器”一般被理解成指代硬件组件,诸如计算机系统的处理单元。

而且,就术语“包括”、“含有”、“具有”、“包含”及其变体和其他类似词语在详细描述或权利要求书中的使用而言,这些术语旨在以类似于术语“包括”作为开放的过渡词的方式为包含性的而不排除任何附加或其他元素。

1.0从企业提取项目信息

一般地,本文所描述的项目信息提取实现提取与企业中的项目实体相关的结构化信息。在一个示例性实现中,该信息可包括但不限于:项目列表;与每个项目相关联的人员(任选地按角色分组);相关的会议;项目的时间线信息;与项目相关的分发组;相关的项目;与项目相关联的文档;定义、首字母缩略词、项目描述;与项目相关联的概念术语;程序代码登记;电子邮件;社交网络消息等等。.这样的信息被用于诸如搜索和推荐之类的各种各样的应用。

本文所描述的项目信息提取实现可采用许多不同的数据源。多个数据源被利用,因为每个数据源可具有对该数据源而言唯一的项目信息。在一个示例性实现中,企业内的数据源可包括但不限于:文档(连同关于谁以及何时修改、查看了文档的信息);提供有关雇员和组织分层结构,以及分发组连同是分发组的一部分的雇员的信息的活动目录;会议信息(诸如与会者、组织者、标题、描述、持续时间、是否经常发生,以及会议记录(如果可获得的话));任何企业级社交网络的社交网络信息;企业内部的电子邮件;伴随元数据(诸如用户、代码文件、注释,登记的时间、储存库位置、代码库目录)的程序代码登记等等。此外,在一个实现中,数据源还可包括其中用户与企业进行交互的外部源,诸如但不限于,新闻文章、博客文章、非企业文档、相关的公共项目、企业外部的相关人员、其他相关的实体、公司的外部通信等。

图1示出了可被用来实现本文所描述的项目信息提取实现的示例性项目信息数据库系统。注意到,本文所描述的项目信息提取实现在提取出的并被用来生成数据库的信息方面可能不同。一些实现提取企业项目名称以及与数据库的每个项目相关联的人员,而另一些实现则提取项目名称和人员以及之前提到的一个或多个同项目相关的项(例如,相关的会议、时间线信息、分发组、相关的项目、文档、定义、首字母缩略词、项目描述、概念术语、程序代码登记、电子邮件、社交网络消息等)。出于简洁的目的,图1的示例性数据库系统示出了对上述各个项目相关的项共同地并且作为选项来进行提取并存入数据库。

一个或多个计算设备100(每个都包括处理器、通信接口和存储器)主存各种提取和数据库生成模块。每当涉及多于一个计算设备时,计算设备可经由计算机网络彼此通信。在一个实现中,计算设备100主存项目名称提取模块102、相关人员提取模块104以及任选的项目相关项提取模块106。注意到,项目相关项提取模块106的任选性质通过虚线框的使用来指示。各种数据源与计算设备100进行通信,并且可由提取模块102/104/106搜索。更具体而言,这些数据源包括企业文档数据源108、活动目录110(其包括有关与企业相关联的人员和分发组列表的信息等)、企业会议数据源112以及项目相关项数据源114。注意到,项目相关项数据源114可包括但不限于,任何企业范围社交网络的社交网络信息、由企业内部生成的电子邮件、伴随元数据(诸如用户、代码文件、注释,登记的时间、储存库位置、代码库目录)的程序代码登记,以及诸如雇员记录表、公司的外部通信之类的外部源等。提取模块102/104/106与企业项目信息数据库生成模块116进行通信。数据库生成模块116根据由提取模块102/104/106提取出的信息来生成企业项目信息数据库118。

在一个实现中,一个或多个计算设备100执行具有指导提取模块102/104/106和企业项目信息数据库生成模块116执行以下过程动作的各种程序模块的计算机程序。现在参考图2,计算机程序指导上述模块从信息源提取企业项目名称(过程动作200),并使用信息源来标识与对应于每个提取出的企业项目名称的项目相关联的人员(过程动作202)。然后,包括每个项目的条目的项目信息数据库针对企业来被生成,该条目具有与项目相关联的提取出的企业项目名称以及被标识成与项目相关联的人员的至少一个列表(过程动作204)。

注意到,从企业相关信息源提取项目信息不只是简单地在正确的位置上进行查看。相反,在本文所描述的项目信息提取实现的上下文中,提取企业项目信息涉及找到各种信息源之间的先前隐藏的关系,并将现有信息变换成展示这些隐藏关系的形式。例如,项目名称、从事于项目的人员以及针对项目被生成的上述各种项通常跨各种信息源散布,而在它们之间没有明显的连接。因此,本文所描述的项目信息提取实现找到这些名称和项以及它们之间的关系,并且在一个实现中创建企业项目数据库,其为所发现的每个企业项目收集提取出的项目信息。

从企业数据中提取项目信息具有许多优点。从独立于与其他项目相关联的信息的角度来看,其允许更好地理解项目的性质和范围。这进而使得更容易向新雇员推荐项目。例如,新雇员经常面临信息过载的问题。对公司正进行的项目的结构化视图可帮助他或她获得对新环境的有条理的印象。在大型公司从事新项目的雇员还需要标识一个子问题(或依赖关系)是否已由公司中的其他团队解决。了解企业中正进行的各种项目可帮助员工和管理者标识跨多个项目团队的重复工作投入。此外,项目信息可帮助雇员标识企业内的联系方式。

项目的结构化视图还有助于更高效的语义搜索能力以找到与项目相关的信息。此外,从企业数据中而不是仅从外部源中提取项目信息克服了企业内的项目名称不同于具有相同概念的公知项目的状况。而且,内部项目名称可能意味着外部世界中完全不同的事物。

以下各小节将更详细地描述上述信息提取和数据库生成。

1.1从文档中提取潜在的项目名称

企业项目名称的一个来源位于被归档在企业内的各种电子存储器中的数字文档中。这些存储器在图1中被统称为文档数据源108。各个过程可单独地或以任何组合来采用以从企业的文档中提取这些项目名称。在一个实现中,常规的模式识别过程被采用以标识企业文档内的项目名称。例如,赫斯特模式分析可被采用以标识作为潜在的项目名称的企业文档中的文本字符串。图3概述了这样的步骤,其中变量np指的是名词短语。

表扩展是可被采用的另一个过程。更具体而言,在一个实现中,表在企业文档中被标识,该企业文档具有包括至少两个先前已知的企业项目名称的列或行。例如,这些先前已知的名称可使用上述赫斯特模式分析来标识。在同一列或行中被列出的其他名称随后被视为潜在的项目名称。例如,令p1和p2为两个先前已知的项目名称。现在,如果文档中的特定表包含具有同一列中的p1和p2以及10个其他字符串的列,则这10个字符串也被认为是潜在的项目名称。

更进一步,在一个实现中,潜在的项目名称在企业文档的标题中被标识。例如,从标题中删除修饰词并将剩余单词视为项目名称的项目名称-修饰语分析的变体可被采用。将在下面的小节中更详细地描述该项目名称-修饰语分析。

在一个实现中,一旦已使用前述过程中的一个或任何组合标识了潜在的项目名称,则在企业文档中不出现超过规定次数的潜在的项目名称就被排除而不作为候选。在一个版本中,阈值被设为10。在另一版本中,阈值被设为企业中每个项目的文档的平均数量的某一百分比(例如,5%)。

1.2从分发组和会议数据中提取潜在的项目名称

企业项目名称的另一来源是分发组(dg)和会议标题。参考图1,分发组标题可在活动目录110中被找到,而会议标题可在会议数据源112中被找到。

存在从企业dg和会议标题中提取项目名称的若干优点。例如,与文档相比,dg和会议标题相对具有较少的噪声。此外,dg通常是穷尽性的,因为企业往往具有分发组以链接从事于项目的所有雇员。更进一步,dg是及时的,因为每当新项目开始时,新的dg通常就会被创建。

各种过程被采用以从企业的dg和会议标题中提取这些项目名称。然而,作为预备事项,被分析的标题的数量可被减少以降低处理耗费并加速过程。在一个实现中,这涉及标识具有少于规定最大数量的与会者并且多于一个与会者的会议。落在该与会者范围之外的会议不被视作它们可能是更一般的会议或者不是特定项目的会议。此外,在一个实现中,具有少于规定最大数量的成员并且多于一个成员的分发组被标识。在此同样,落在该成员范围之外的分发组不会被视作它们可能不是项目特定的组。更进一步,在一个实现中,具有包括人员姓名或指示人员姓名的术语(例如,名字、姓氏、全名、假名(pseudonym)、昵称、电子邮件别名(emailalias)等)的标题的先前标识出的会议和分发组从考虑中排除。常规方法被采用以标识包含人员姓名的这些会议和分发组标题。

在一个实现中,一旦潜在地包括项目名称的会议和dg标题的列表已被标识,则带有项目名称修饰语术语或短语的会议和分发组标题中的潜在的项目名称被标识。更具体而言,分发组和会议标题通常包含带有修饰语术语的项目名称。由此,dg和会议标题可被拆分成两部分-即项目名称和修饰词。例如,“项目a开发团队”由项目名称“项目a”和修饰词“开发团队”组成。基于这些观察,使用项目名称-修饰语分析从dg和会议标题中提取项目名称以及生成项目名称语料库和修饰词语料库是可能的。此外,通过考虑一元(unigram)和二元(bigram)的统计频率和点一级的交互信息,提取出的项目名称的列表可被细化。现在将详细描述这些过程。然而,注意到,为了方便起见,接下来所描述的过程将聚焦于处理dg标题。可与dg标题结合使用会议标题或仅使用会议标题来采用相同的过程。该后一种替代选择得到了dg标题修饰语语料库以及分开的会议标题修饰语语料库。

1.2.1基于种子的拆分

给定如下假设:dg标题包含任选地跟有一个或多个修饰词的项目名称,提出了获得对企业dg标题进行初始(项目、修饰语)拆分的过程。在一个基于种子的实现中,这涉及从项目名称的种子集合着手并且提取与那些项目相关的修饰词。种子集可以是从文档中提取出的项目名称的列表,或者也可从已知的企业项目名称的列表(例如,5-10个名称)着手。而且,随着修饰语语料库被填充,该过程利用这些修饰语来从企业的dg标题中提取更多个项目名称。因此,经过多次迭代,更多的项目和修饰语被标识。当收敛或者在固定次数的迭代之后,修饰语列表通过移除低频单词得到修整。使用该经修整的修饰语列表,dg标题被再次处理以获得与每个dg标题对应的项目名称。

图4概述了标识dg标题中的企业项目名称和修饰语的示例性基于种子的拆分过程。该过程从项目名称种子列表着手,如上所述。此外,企业dg标题的列表被输入。例如,在一个实现中,dg标题的列表来自于上述活动目录。该过程的第一部分是迭代的。在一个版本(如图4所示)中,在移至过程的剩余部分前,过程的该部分进行了规定次数的迭代。然而,注意到在另一版本中,迭代被重复直至在最近的迭代中被发现的新的项目名称和/或修饰语低于最低阈值(即,已收敛)。更进一步,在另一版本中,迭代被重复规定的次数,或者直至在最近的迭代中被发现的新的项目名称和/或修饰语低于最低阈值,以先发生者为准。

不管使用哪种迭代方案,每个未经处理的dg标题的潜在的项目名称部分与潜在的修饰语部分之间的候选拆分的列表在每一次迭代中被生成。在第一次迭代中,所有dg标题都被视为未经处理,而在后续迭代中,只有那些没有在其中发现项目名称或修饰语的dg标题才被视为未经处理。每个未经处理的dg标题的拆分候选的列表可以以各种方式来生成,诸如稍候结合对项目名称列表细化的描述将进行描述的过程。

对于每个未经处理的dg标题,其候选拆分中的一种被选择以供处理,并且确定当前被选择的拆分的修饰语部分是否与修饰语语料库中的修饰语相匹配。注意到在一个版本中,修饰语语料库初始包括一个或多个预先建立的修饰语(例如,在dg标题中所使用的已知的项目名称修饰词和/或短语)。然而,在另一版本中,修饰语语料库初始为空。在任一情况下,在迭代过程中都会用新的修饰语来建立修饰语语料库,如很快将显而易见的。如果所考虑的未经处理的dg标题候选拆分的修饰语部分与修饰语语料库中的修饰语相匹配,则拆分的项目名称部分被添加到项目名称语料库(其包括项目名称种子列表)中,并且修饰语的出现频率值在修饰语语料库中被递增一。此外,与所考虑的候选拆分相关联的未经处理的dg标题被重新分类成经处理的dg标题。

然而,如果所考虑的未经处理的dg标题候选拆分的修饰语部分与修饰语语料库中的修饰语不匹配,则确定候选拆分的项目名称部分是否与项目名称语料库中的项目名称相匹配。如果是的话,则未经处理的dg标题候选拆分的修饰语部分被添加到修饰语语料库中并且其出现频率值被设为一。附加地,与所考虑的候选拆分相关联的未经处理的dg标题被重新分类成经处理的dg标题。

一旦所有未经处理的dg标题已如上所述进行了处理,则在仍被分类成未经处理的每个dg标题的每次后续迭代中重复该过程,尽管在语料库中有更多的项目名称和修饰语。

当迭代次数如前所述达到规定次数或者收敛时,具有小于规定计数阈值的出现频率计数的修饰语语料库中的修饰语从语料库中被移除。然后开始示例性基于种子的拆分过程的第二部分。

为了开始该过程的第二部分,修饰语语料库中的修饰语的出现频率计数被清零,并且除了上述种子项目名称之外,项目名称语料库被清空。此外,所有dg标题返回到它们初始的未经处理的分类。每个未经处理的dg标题的潜在的项目名称部分与潜在的修饰语部分之间的候选拆分的列表再次被生成。然后,对于每个未经处理的dg标题,其候选拆分中的一种被选择以供处理,并且确定该拆分的修饰语部分是否与修饰语语料库中的修饰语相匹配。如果匹配的话,则所考虑的候选拆分的项目名称部分被添加到项目名称语料库中,并且修饰语语料库中匹配的修饰语的出现频率计数被递增一。此外,与所考虑的候选拆分相关联的未经处理的dg标题被重新分类成经处理的dg标题。

注意到,修饰语出现频率计数被用于将在稍后进行描述的统计分析中的一个实现中。进一步注意到,此时在该过程中,几乎所有具有修饰语的dg标题将使该修饰语被包括在修饰语语料库中,并且其项目名称将被包括在项目名称语料库中。然而,如果dg标题仅仅是项目名称而没有任何修饰语,则上述过程的第二部分将不会把其项目名称放入项目名称语料库中。因此,在一个实现中,对于仍被分类成未经处理的dg标题,该标题被完全添加到项目名称语料库中。

1.2.2后缀频率拆分

在获得企业的dg标题的项目名称-修饰语拆分的替代过程中,长度达l的所有后缀的频率根据企业的dg标题来计算。在一个版本中,l被设为6。以大于规定的阈值(例如5)的频率出现的那些后缀被认为是修饰语并被添加到修饰语语料库中。然后,对于每个dg标题,dg的修饰语部分被计算作为存在于修饰语列表中的标题的最大后缀。dg标题的剩余部分被视为其项目名称并被添加到项目名称语料库。图5示出了标识企业dg标题中的项目名称和修饰语的示例性后缀频率拆分过程。

1.2.3项目名称列表细化

由于上述过程的输出是所考虑的每个企业dg标题的项目名称-修饰语拆分,所以项目名称列表可从项目名称语料库中被容易地生成。然而,如之前所指出的,在其他实现中,来自上述过程的项目名称-修饰语拆分输出可在生成项目名称列表之前,通过考虑一元和二元的统计频率和点一级的交互信息来进一步细化。现在将对该细化过程的一个示例性实现进行描述。

令dg为具有单词w1,w2,...,wn的dg标题,使得候选拆分具有作为项目名称的w1,...,wk和作为修饰语的wk+1到wn。显然,伴随有n个单词的dg标题具有n个这样的候选。细化过程使用在初始过程中被捕获的项目和修饰语语料库统计量来计算这些候选的分数,然后选择最高分数的一个作为获胜拆分。项目名称列表随后根据该获胜拆分来生成。具体而言,四种不同的细化过程已被开发,并且每一种都将在下面的小节中进行描述。注意到,尽管为了清楚起见,平滑术语将不在以下等式中被示出,但是在一个实现中所有计数都使用常规方法来进行平滑。

1.2.3.1一元细化过程

在一个实现中,一元细化过程(uni)被采用。令pp(wi)为项目名称语料库中wi的概率,pm(wi)为修饰语语料库中wi的概率。在uni过程中,分数计算如下:

1.2.3.2一元+二元细化过程

在一个实现中,一元+二元细化过程(unibi)被采用。unibi过程包括一元和连续的单词对的分数。令pp(wi,wi+1)为项目名称语料库中的对(wi,wi+1)的概率,pm(wi,wi+1)为修饰语语料库中的对(wi,wi+1)的概率。单词对(wk,wk+1)表示桥二元对(bridgebigrampair)(第一个词来自项目部分而第二个词来自修饰语部分的二元)。令pb(wk,wk+1)表示dg标题中的桥二元的概率,则:

1.2.3.3一元+无序的二元细化过程

在一个实现中,一元+无序的二元细化过程(unibiu)考虑所有的单词对,而不是仅考虑连续的单词对。令up表示无序的二元的概率。注意到,与unibi过程中的单个桥二元相比,unibiu过程考虑多个桥二元如下:

1.2.3.4点一级的交互信息细化过程

在一个实现中,点一级的交互信息细化过程(pmi)被采用。在该过程中,dg标题的分数被计算为其项目名称单词的平均pmi和其修饰词的平均pmi减去桥单词对的平均pmi的总计。因此:

1.2.4项目名称列表清理

在一个实现中,使用前述过程生成的项目名称列表(带有或不带有细化)经受清理过程。该清理过程涉及标识具有相同项目名称的潜在的项目。如果一对具有完全相同的项目名称的项目没有共同的会议与会者或dg成员,则每个项目名称被指定成标识不同的项目。然而,如果一对具有完全相同的项目名称的项目具有共同的会议与会者或dg成员,则每个项目名称被指定成标识相同的项目。

1.2.5项目名称分类器

除了其他方面,上述过程产生了项目名称列表。然而,在一个实现中,项目名称在项目名称分类器已将其分类成有效的项目名称之前不被视为是有效的。更具体而言,在一个实现中,已被训练来识别企业项目名称的项目名称分类器被采用。对于每个潜在的项目名称,分类器指示名称是否为有效的企业项目名称。被分类为有效的潜在的项目名称随后被指定成企业项目名称。任何常规的是/否类型分类器可被采用以用于此目的,并且可使用现在将进行描述的一组特征来训练。

以下特征中的任何一个或任何组合可被用来训练上述项目名称分类器。

a)自然语言处理(nlp)特征,诸如词性(pos):项目名称通常是名词短语。

b)模式特征:满足一些特定模式的短语更有可能是项目,例如:“...是一个旨在...的项目”。

c)数据源特征:名词短语、一般文档内容、电子邮件内容等,其中每个源基于项目名称在其中将被找到的可能性来被分配概率分数。

d)项目属性特征:会议次数、dg的数量、相关人员的数量、与潜在的项目名称相关联的子项目的数量。

e)词典特征:在web上(诸如在查询日志中)很少被找到,而在团队的企业文档中被频繁地找到的短语具有更高的概率来作为企业项目名称。

f)结构特征:如果其他已知的项目名称出现在具有潜在的项目名称的相同的列表或相同的表中,则潜在的项目名称作为企业项目名称的概率较高。

g)统计特征:潜在的项目名称的频率,例如,其在与相同团队相关联的文档或电子邮件标题中出现的次数经由文档或电子邮件的总数被标准化。

h)符号特征:项目名称一般而言通过将名称中每个单词的首字母大写来表示。

i)概念化特征:企业通常具有优势领域(诸如计算机科学、学术机构(如大学)、制药机构、汽车制造商、保险公司等),因此潜在的项目名称与企业优势之间的近的概念距离指示该名称为企业项目名称。

j)嵌入特征:传统的单词嵌入,其中单词由向量来表示,并且显示出更近的向量距离的类似的单词被用来比较潜在的项目名称与已知的企业项目名称。

k)关键词特征:各项目通常具有类似于“可交付使用”、“里程碑”等与它们相关联的属性。因此,如果这些属性与潜在的项目名称出现在相同的文档中,则潜在的项目名称就更有可能是企业项目名称。

l)修饰语模式特征:项目名称伴随指示企业项目名称的修饰语模式出现。

m)项目丰富性特征:在许多不同的数据源中找到的潜在的项目名称相比在一个或非常少的源中找到的潜在的项目名称更有可能是企业项目名称。

1.3使用文档将项目与人员链接

本文所描述的项目信息提取实现还可标识与对应于提取出的项目名称的企业项目相关联的人员的姓名。这是使用上述信息源来完成的,并且标识出的人员的姓名被包括在项目信息数据库中。

在一个实现中,与对应于每个提取出的企业项目名称的项目相关联的人员使用包含企业文档的一个或多个信息源来标识。更具体而言,参考图6a-b中概述的过程,提取出的企业项目名称中的先前未被选择的一个企业项目名称被选择(过程动作600)。包括被选择的企业项目名称的企业文档随后被标识(过程动作602)。所标识的文档中的先前未被选择的一个文档被选择(过程动作604),并且创作了所选文档的一个或多个人员被标识(过程动作606)。此外,在所选文档中被提到姓名的没有创作该文档的每个人员被标识(过程动作608)。然后确定是否存在尚未被考虑的包括所选企业项目名称的任何标识出的文档(过程动作610)。如果存在这样的文档,则重复过程动作604至610。当所有标识出的文档都已被考虑时,标识出的一个或多个人员被指定成与当前所选企业项目名称对应的项目的一个或多个候选成员(过程动作612)。确定是否存在尚未被考虑的任何提取出的企业项目名称(过程动作614)。如果是的话,则重复过程动作600到614。一旦所有提取出的企业项目名称都已被考虑,则该过程结束。

在前述过程的一个版本中,如果所选的文档以除了所选项目名称以外的一个或多个其他当前未被选择的提取出的企业项目名称来命名,则标识在当前所选的文档中被提到姓名的每个非创作人员的动作(即,过程动作608)涉及仅标识一个或多个人员,该一个或多个人员的姓名相较于文档中被找到的任何其他企业项目名称而言更接近于(例如,通过之前或之后的单词的数量测得)当前所选项目名称。

此外,在前述过程的一个版本中,如果当前所选项目名称在被包括在当前所选的文档中的表中被找到,则标识在所选的文档中被提到姓名的每个非创作人员的动作(即,过程动作608)涉及标识在该表的与所选项目名称相同的列或行中被提到姓名的一个或多个人员。

1.4使用分发组和会议信息将项目与人员链接

在一个实现中,与对应于每个提取出的企业项目名称的项目相关联的人员使用包含企业分发组和会议信息的一个或多个信息源来标识。更具体而言,参考图7a-b中所概述的过程,提取出的企业项目名称中的先前未被选择的一个企业项目名称被选择(过程动作700)。包括所选企业项目名称的企业分发组和会议信息随后被标识(过程动作702)。与所标识的会议信息相关联的标识出的分发组或会议中的先前未被选择的一者被选择(过程动作704)。作为当前所选分发组的分发组成员或者当前所选会议的会议与会者的一个或多个人员随后被标识(过程动作706)。然后确定是否存在包括所选企业项目名称但是尚未被考虑的任何标识出的分发组或会议信息(过程动作708)。如果存在这样的分发组或会议信息,则重复过程动作704至708。当所有标识出的分发组和会议信息都已被考虑时,标识出的一个或多个人员被指定成与当前所选企业项目名称对应的项目的一个或多个候选成员(过程动作710)。然后确定是否存在尚未被考虑的任何提取出的企业项目名称(过程动作712)。如果存在,则重复过程动作700至712。一旦所有提取出的企业项目名称都已被考虑,则该过程结束。

1.5对与项目相关联的人员进行排名

虽然前述过程标识与对应于提取出的企业项目名称的项目相关联的人员,但是它们未讨论人员涉及项目的程度。例如,使用前述过程被标识的一些人员可能仅在外围上涉及项目。知道与项目相关联的人员是主要参与者是有利的。鉴于此,在一个实现中,被标识成与对应于提取出的项目名称的项目相关联的人员基于他们参与项目的程度来进行排名。

一般地,先前所描述的数据源被用来导出针对被标识成涉及与提取出的项目名称对应的项目的每个人员的分数。在一个实现中,被指定成与提取出的企业项目名称对应的项目的成员的每个人员基于从被搜集自提及该人员的数据源的该项目的各种属性及对其的贡献导出的分数来进行排名。在一个版本中,成分分数是从每个数据源中所包含的属性和贡献导出的,该数据源包括对被排名的该人员的引用。

在一个实现中,针对以下属性和贡献中的每一者或其任何子集来导出成分分数。

a)基于由人员创作的包括所考虑的项目名称的文档的数量的成分分数。在一个版本中,每个文档对成分分数均等地作出贡献。在另一版本中,每个文档对成分分数的贡献是根据该文档才被创建了多久来进行加权的,其中越近期的文档贡献越多。

b)基于在包括人员姓名和项目名称两者的每个文档中的该人员姓名与该项目名称的邻近度(例如,通过两者之间的单词数量测得)的成分分数。

c)基于与项目名称处在文档中的表的相同列或行或者文档中的相同列表中的人员姓名的成分分数。

d)基于作为与项目相关联的分发组的成员的人员的成分分数。

e)基于作为与项目相关联的分发组的子组的成员的人员的成分分数。注意到,企业的上述活动目录可被用来标识各分发组和子组以及与它们相关联的人员。活动目录具有分层结构,其中内部节点是分发组名称,而叶子则是人员。例如,分发组g可包含子组g1和g2以及人员p1,p2,…p10。进而,子组g1和g2可包含人员(其中一些也可以是亲代分发组的成员)或更进一步的子组,等等。因此,活动目录可被用作源,以确定人员是否为与项目相关联的分发组的子组的成员。

f)基于作为与项目相关联的分发组的成员的人员的成分分数,其中该分发组的大多数成员受该人员监督。

g)基于由人员发送到与项目相关联的分发组的电子邮件的数量的成分分数。在一个版本中,每封电子邮件对成分分数均等地作出贡献。在另一版本中,每封电子邮件对成分分数的贡献是根据该电子邮件才被发送了多久来进行加权的,其中越近期的电子邮件贡献越多。

h)基于人员作出的与项目相关联的程序代码的登记的数量的成分分数。在一个版本中,每次登记对成分分数均等地作出贡献。在另一版本中,每次登记对成分分数的贡献是根据该登记才被作出了多久来进行加权的,其中越近期的登记贡献越多。

i)基于与人员组织或参加的项目相关联的会议的数量的成分分数。在一个版本中,每个会议对成分分数均等地作出贡献。在另一版本中,每个会议对成分分数的贡献是根据该会议才被召开了多久来进行加权的,其中越近期的会议贡献越多。

j)基于对与项目相关联的每个会议而言的在会议记录中归属于人员的句子数量的成分分数。

k)基于由人员发送的与项目相关联的电子邮件和企业社交网络通信的数量的成分分数。在一个版本中,每封电子邮件或通信对成分分数均等地作出贡献。在另一版本中,每封电子邮件或通信对成分分数的贡献是根据该电子邮件或通信才被发送了多久来进行加权的,其中越近期的电子邮件或通信贡献越多。

成分分数被组合以产生与项目(其名称在考虑中)相关联的每个人员的整体分数。当与被标识成与对应于提取出的企业项目名称的项目相关联的人员相比时,较高的整体分数指示对项目的参与程度较高,并因此排名更高。对分数进行组合可以以各种方式来完成。例如,在一个版本中,原始分数被简单地相加。在另一版本中,涉及对一个项的数量进行计数的属性和贡献在贡献分数被相加之前基于该项的总数来被标准化。在又一个版本中,各贡献分数在它们之间使用常规方法来标准化,使得与任何一个属性或贡献相关联的最大贡献分数不超过任何其他贡献分数。

然而,前述组合方案没有考虑到一些属性和贡献更多地指示某一个人员而非其他人是项目中的主要参与者。例如,与项目相关联的dg的成员相比该dg的子组的成员更有可能是主要参与者。因此,在一个版本中,每个成分分数(不管它是如何计算出的)被分配了指示该人员是项目中的主要参与者的概率的权重。人员的成分分数的线性加权组合随后被计算出以产生该人员的整体分数。更具体而言,在一个版本中,与项目相关联的各种属性和贡献各自被分配权重。被标识成与项目相关联的人员随后基于从被搜集自提及该人员的数据源的各种属性和贡献导出的成分分数来进行排名。更具体而言,将与属性或贡献相关联的每个成分分数乘以分配给它的权重,并且将所得到的乘积相加以产生该人员的整体分数。整体分数指示当和与项目相关联的其他人进行比较时的该人员的排名。

1.5.1根据人员的角色分配来对与项目相关联的人员进行排名

上述企业数据源(例如,活动目录)通常包括对人员(诸如开发者、测试员、程序管理员、科学家等)的角色的指定。知道与项目相关联的人员的角色是有利的。因此,在一个实现中,这些角色指定被分配给人员并且被包括在项目信息数据库中。

依据人员的角色指定来对与项目相关联的人员进行排名同样是有利的。因此,例如,与项目相关联的开发者将基于他们的参与程度来被排名。知道了这些,用户便可查询数据库以找到项目的顶层开发者。

一般地,根据人员的角色指定来对与项目相关联的人员进行排名涉及标识被发现与项目相关联的每个人员的角色,并且随后以先前描述的方式对他们进行排名,但是这一次则是分开地对每个角色内的人员进行排名。

更具体而言,参考图8a-b,在一个实现中,指定标识出的一个或多个人员作为与企业项目名称对应的项目的一个或多个候选成员的动作包括首先选择被标识成与所考虑的项目相关联的人员中的先前未被选择的一个人员(过程动作800)。然后,被选择的人员的角色指定根据上述数据源来标识(过程动作802)。然后确定是否存在任何被标识成与所考虑的项目相关联的剩余的未被选择的人员(过程动作804)。如果存在的话,则重复过程动作800到804。一旦已经为与所考虑的项目相关联的人员标识了角色,则先前未被选择的角色被选择(过程动作806)。然后,针对被分配了所选角色的与项目相关联的每个人员,基于从与被搜集自提及该人员的数据源的项目相关联的各种属性和贡献导出的分数对该人员进行排名(过程动作808),并且基于该人员的排名来对被分配所考虑的角色的每个人员进行排序(过程动作810)。然后确定是否存在任何尚未被考虑的剩余的角色(过程动作812)。如果是的话,则重复过程动作806到812。一旦被分配给每个角色的人员已被排名,则该过程结束。

1.6找到相关的项目的名称

如之前所指出的,本文所描述的项目信息提取实现还可提取项目相关的项并将其包括在项目信息数据库中。一个这样的项目相关的项是与所考虑的项目相关的项目的名称。这是使用上述信息源来完成的。

更具体而言,在一个实现中,针对与提取出的企业项目名称相关联的每个项目,与同所考虑的项目相关的一个或多个项目相关联的一个或多个提取出的企业项目名称被标识。该一个或多个标识出的相关的项目名称随后被添加到与所考虑的项目相关联的项目信息数据库中。

标识相关的项目名称在一个版本中使用企业dg,而在另一个版本中使用企业会议信息来完成。在又一个版本中,dg和会议信息两者被用来标识相关的项目。以下各小节将首先描述使用dg来找到相关的项目并接着描述使用会议信息来找到相关的项目。

1.6.1使用企业分发组来找到相关的项目的名称

如果两个项目的对应的分发列表具有子集-超集(sub-super)分发组关系,则这两个项目被认为是相关的。于是,在一个版本中,标识与同所考虑的项目相关的一个或多个项目相关联的一个或多个提取出的企业项目名称涉及与所考虑的项目相关联,每个项目均与所考虑的项目的一个或多个分发组具有子集-超集分发组关系。

1.6.2使用企业会议信息来找到相关的项目的名称

在一个版本中,标识与同所考虑的项目相关的一个或多个项目相关联的一个或多个提取出的企业项目名称涉及首先标识具有少于规定数量的与会者(例如,少于20名与会者)的会议。可以认为,较大型的会议更有可能是总括的,而非专用于特定的项目。一旦会议已被标识,则用表示标识出的会议的与会者的节点以及将每个节点与其他节点相连接的边来构建加权图,每条边具有表示与由该条边所连接的节点相关联的与会者们已共同参加的会议的数量的权重。接下来,针对每个会议,确定该会议是否更有可能是与项目相关的会议或者协作会议。存在若干方式来将会议分类成项目会议或协作会议。在一个版本中,在边权重阈值处理(例如,阈值被设为5,或者阈值被设为平均边权重的某一百分比(例如20%))之后,确定是否所有的与会者形成了一个团体。如果是的话,则该会议被视为项目会议。在一个版本中,确定是否在会议标题中找到了指示项目会议的术语(例如“同步”、“每日”、“每周”、“非正式短会(standup)”,“例会(scrum)”等)。如果是的话,则该会议被视为项目会议。在一个版本中,确定是否在诸如会议的位置指定的地方找到了指示远程与会者的存在的术语。如果是的话,则该会议被视为协作会议。对协作会议的指标符的其他示例包括未被规定或指定为电话会议的会议的位置;知晓与会者居住在遥远的地方;以及会议时间在大多数与会者的正常办公时间之外。标识协作会议的更加基于公式的方法包括令针对所有会议与会者的组织分层树中的最小公共祖先(lca)为距离根x个层的一人员。如果与会者可被聚类成2-3个群集,使得lca距离根y个层,则如果x-y大于阈值(例如3或4),那么会议则被认为是协作的。在基于图表的方法中,如果诸如先前所描述的图表的密度小于阈值(例如,80%),则会议可被认为是协作的。

对于被认为是协作的所有会议,使用加权图和常规的聚类方法来标识与会者子组(团体)。具有一个以上的成员的每个子组随后被映射到提取出的项目名称。这是通过找到子组的成员的共同项目并将该子组映射为这些项目的最紧密的拟合(任选地在子组中具有>x%的项目成员)来完成的。与被映射到子组的项目相关联的项目名称被认为是相关的项目。

1.7找到与项目相关的文档

本文所描述的项目信息提取实现可同样找到与项目相关的文档。更具体而言,在一个实现中,针对与提取出的企业项目名称相关联的每个项目,与该项目相关联的一个或多个文档被标识。所标识的一个或多个相关文档或到其的链接随后被添加到与所考虑的项目相关联的项目信息数据库条目中。

在一个版本中,标识与所考虑的项目相关联的一个或多个文档涉及标识从中提取出与所考虑的项目相关联的企业项目名称的一个或多个文档。在另一版本中,标识与所考虑的项目相关联的一个或多个文档涉及索引在与企业相关联的信息源中找到的文档、搜索带有与所考虑的项目相关联的企业项目名称的索引文档以及将返回作为搜索结果(例如,前10个结果)的至少一些文档与所考虑的项目相关联。在又一版本中,上述两个过程都被用来找到与项目相关联的一个或多个文档。在该版本中,从中提取出与所考虑的项目相关联的企业项目名称的一个或多个文档将首先得到标识,并且搜索过程随后将被采用以找到与初始过程中未被找到的项目相关的一个或多个文档。

1.8为项目生成时间线

本文所描述的项目信息提取实现可同样生成项目时间线。更具体而言,在一个实现中,针对与提取出的企业项目名称相关联的每个项目,项目的时间线被建立。项目时间线随后被添加到与所考虑的项目相关联的项目信息数据库条目中。

在一个版本中,为项目建立时间线涉及首先估计项目的开始日期,其中该开始日期被估计成与项目相关联的分发组的创建日期、与项目相关联的最早一次会议的日期以及与项目相关联的最早一次程序代码登记的日期中的最早的一者。如果项目已经结束,则估计该项目的结束日期。结束日期被估计成与项目相关联的最后一次会议的日期、与项目相关联的最后一次程序代码登记的日期以及与项目相关联的文档最近一次被修改的日期中的最晚的一者。上述数据源随后被采用以找到与项目相关联的事件及其发生的日期。例如,与代码登记相关联的注释、会议标题和会议记录、相关文档的内容以及被发送到相关分发组的电子邮件的电子邮件内容等可被用来列出这些事件及其各自的日期。

1.9找到其他项目相关的项

除了以上所描述的各项之外,其他项目相关的项可在企业数据源中被找到并被添加到项目信息数据库中。更具体而言,在一个实现中,针对与提取出的企业项目名称相关联的每个项目,使用常规方法来标识企业数据源中的项目相关的项,其中这些项目相关的项包括会议、分发组、程序代码登记、电子邮件、企业社交网络消息、定义、首字母缩略词、主页、幻灯片、项目描述以及同项目相关联的概念术语中的至少一者。标识出的项目相关的项或到其的链接随后被添加到与所考虑的项目相关联的项目信息数据库条目中。

2.0示例性操作环境

本文所描述的项目信息提取实现可使用多种类型的通用或专用计算系统环境或配置来操作。图9例示了可用来实现本文所描述的项目信息提取的各个方面和元素的通用计算机系统的简化示例。注意,图9中示出的简化计算设备10中的断线或虚线所表示的任何框表示该简化计算设备的替代实现。如以下所描述的,这些替代实现中的任意一个或全部可与本文通篇描述的其他替代实现组合使用。简化计算设备10通常可以在具有至少某种最小计算能力的设备中找到,这些设备诸如个人计算机(pc)、服务器计算机、手持式计算设备、膝上型或移动计算机、诸如蜂窝电话和个人数字助理(pda)等通信设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络pc、小型计算机、大型计算机、音频或视频媒体播放器。

为实现本文描述的各项目信息提取实现,该设备应当具有足够计算能力和系统存储器来启用基本计算操作。具体而言,图9中所示的简化计算设备10的计算能力一般由一个或多个处理单元12示出,并且还可包括一个或多个图形处理单元(gpu)14,这两者中的任一个或全部与系统存储器16通信。注意,简化计算设备10的处理单元12可以是专用微处理器(诸如数字信号处理器(dsp)、甚长指令字(vliw)处理器、场可编程门阵列(fpga)、或其他微控制器)或者可以是具有一个或多个处理核的常规中央处理单元(cpu)。

另外,简化计算设备10还可包括其他组件,诸如例如通信接口18。简化计算设备10还可包括一个或多个常规计算机输入设备20(例如,触摸屏、触敏表面、定点设备、键盘、音频输入设备、基于语音或话音的输入和控制设备、视频输入设备、触觉输入设备、用于接收有线或无线数据传输的设备等)或这样的设备的任何组合。

类似地,与简化计算设备10以及与可穿戴感测装置的任何其他的组件或特征的各种交互(包括输入、输出、控制、反馈)以及对与项目信息提取相关联的一个或多个用户或其他设备或系统的响应是通过各种自然用户界面(nui)场景来启用的。项目信息提取所启用的nui技术和场景包括但不限于允许一个或多个用户以“自然的”方式进行交互的界面技术,而没有输入设备(诸如鼠标、键盘、遥控器等等)所施加的人工约束。

这样的nui实现是通过使用各种技术来启用的,包括但不限于使用从经由话筒或其他传感器捕捉的用户讲话或发声导出的nui信息。这样的nui实现还通过使用各种技术来启用,包括但不限于从用户的面部表情以及用户的手、手指、腕、臂、腿、身体、头、眼等的位置、运动或定向导出的信息,其中这样的信息可以使用各种类型的2d或深度成像设备来捕捉,诸如立体或飞行时间相机系统、红外相机系统、rgb(红、绿和蓝)相机系统等等或这样的设备的任何组合。这样的nui实现的进一步示例包括但不限于从触摸和指示笔识别、姿势识别(屏幕上以及邻近屏幕或显示器表面两者)、基于空中或接触的姿势、用户触摸(在各种表面、对象或其他用户上)、基于悬停的输入或动作等等导出的nui信息。这样的nui实现还可包括但不限于使用单独地或与其他nui信息相组合地评估当前或过去用户行为、输入、动作等以预测诸如用户意图、愿望和/或目标等信息的各种预测机器智能过程。不管基于nui的信息的类型或源如何,这样的信息随后可被用来发起、终止、或以其他方式控制或与本文描述的项目信息提取实现的一个或多个输入、输出、动作或功能特征交互。

然而,应当理解,上述示例性nui场景可通过将对人工约束或附加信号的使用与nui输入的任何组合相组合来被进一步扩充。这样的人工约束或附加信号可由输入设备(诸如鼠标、键盘以及遥控器)或由各种远程设备或用户佩戴的设备(诸如加速度计、用于接收表示由用户的肌肉所生成的电信号的肌电信号的肌电传感器、心率监视器、用于测量用户排汗的电流皮肤传导传感器、用于测量或以其他方式感测用户脑活动或电场的可穿戴生物传感器或远程生物传感器、用于测量用户体温变化或差异的可穿戴生物传感器或远程生物传感器,等等)施加或生成。从这些类型的人工约束或附加信号导出的任何这样的信息可以与任何一个或多个nui输入相组合以发起、终止或以其他方式控制或与本文所描述的项目信息提取实现的一个或多个输入、输出、动作、或功能特征交互。

简化计算设备10还可包括其他光学组件,诸如一个或多个常规计算机输出设备22(例如显示设备24、音频输出设备、视频输出设备、用于传送有线或无线数据传输的设备等)。注意,用于通用计算机的典型通信接口18、输入设备20、输出设备22和存储设备26是本领域技术人员所公知的,且将不在此详细描述。

图9中所示的简化计算设备10还可包括各种计算机可读介质。计算机可读介质可以是可由计算机10经由存储设备26访问的任何可用介质,并且可包括是可移动28和/或不可移动30的易失性和非易失性介质,该介质用于存储诸如计算机可读或计算机可执行指令、数据结构、程序模块或其他数据等信息。计算机可读介质包括计算机存储介质和通信介质。计算机存储介质指的是有形的计算机可读或机器可读介质或存储设备,诸如数字多功能盘(dvd)、蓝光盘(bd)、紧致盘(cd)、软盘、磁带驱动器、硬盘驱动器、光盘驱动器、固态存储器设备、随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、cd-rom或其他光盘存储、智能卡、闪存(例如,卡、棒、以及钥匙驱动器)、磁带盒、磁带、磁盘存储、磁条或其他磁存储设备。另外,所传播的信号不被包括在计算机可读存储介质的范围内。

诸如计算机可读或计算机可执行指令、数据结构、程序模块等信息的保持还可通过使用各种上述通信介质(与计算机可读介质相对)中的任一种来编码一个或多个已调制数据信号或载波或其他传输机制或通信协议来实现,并且可包括任何有线或无线信息传递机制。注意,术语“已调制数据信号”或“载波”一般指以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。例如,通信介质可包括诸如有线网络或直接线连接等携带一个或多个已调制数据信号的有线介质,以及诸如声学、射频(rf)、红外线、激光和其他无线介质等用于传送和/或接收一个或多个已调制数据信号或载波的无线介质。

此外,可以按计算机可执行指令或其他数据结构的形式存储、接收、传送或者从计算机可读或机器可读介质或存储设备和通信介质的任何所需组合中读取具体化本文描述的项目信息提取实现中的部分或全部的软件、程序和/或计算机程序产品。另外,所要求保护的主题事项可使用标准变成和/或工程设计技术实现为方法、装置或制造作品,以制造软件、固件、硬件或其任意组合来控制计算机以实现所公开的主题事项。如此处所使用的术语“制品”旨在涵盖可以从任何计算机可读设备或介质访问的计算机程序。

本文所描述的项目信息提取还可在由计算设备执行的诸如程序模块等计算机可执行指令的一般上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。本文所描述的项目信息提取实现还可以在其中任务由通过一个或多个通信网络链接的一个或多个远程处理设备执行或者在该一个或多个设备的云中执行的分布式计算环境中实现。在分布式计算环境中,程序模块可位于包括媒体存储设备的本地和远程计算机存储介质两者中。另外,上述指令可以部分地或整体地作为可以包括或不包括处理器的硬件逻辑电路来实现。

作为替换或补充,本文所述的功能可至少部分地由一个或多个硬件逻辑组件来执行。作为示例,而非限制,可被使用的硬件逻辑组件的说明性类型包括现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑器件(cpld)等。

3.0其他实现

注意,可以按所需的任何组合来使用本说明书全文中的上述实现的任一个或全部以形成另外的混合实现。另外,尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。更确切而言,上述具体特征和动作是作为实现权利要求的示例形式公开的。

以上描述的事物包括各示例实现。当然,出于描绘所要求保护的主题的目的而描述每一个可以想到的组件或方法的组合是不可能的,但本领域内的普通技术人员应该认识到,许多进一步的组合和排列都是可能的。因此,所要求保护的主题旨在包含落在所附权利要求书的精神和范围内的所有这样的更改、修改和变化。

对于由上述组件、设备、电路、系统等执行的各种功能,除非另外指明,否则用于描述这些组件的术语(包括对“装置”的引用)旨在对应于执行所描述的执行此处在所要求保护的主题的示例性方面中所示的功能的组件的指定功能(例如,功能上等效)的任何组件,即使这些组件在结构上不等效于所公开的结构。关于这一点,还应认识到,上述实现包括具有用于执行所要求保护的主题的各种方法的动作和/或事件的计算机可执行指令的系统以及计算机可读存储介质。

有多种方式来实现上述实现(诸如,适当的应用编程接口(api)、工具包、驱动程序代码、操作系统、控件、独立或可下载的软件对象等等),它们使应用和服务能使用在此描述的各实现。所要求保护的主题还从api(或其他软件对象)的观点来看,以及从根据本文中所述实现操作的软件或硬件对象的观点来看构想了这一用途。由此,本文中所述的各实现可具有完全采用硬件、或部分采用硬件并且部分采用软件、还完全采用软件的方面。

上述系统已经参考若干组件之间的交互被描述。将理解,这些系统和组件可包括那些组件或指定的子组件、某些指定的组件或子组件、和/或附加的组件,并且根据上述内容的各种置换和组合。子组件还可作为通信地耦合到其他组件的组件来实现,而不是被包括在父组件内(例如,分层组件)。

另外,应注意到一个或多个组件可被组合成提供聚集功能的单个组件,或被分成若干单独的子组件,且诸如管理层等任何一个或多个中间层可被设置成通信耦合到这样的子组件以便提供集成功能。本文中所述的任何组件也可与本文中未专门描述但本领域技术人员一般已知的一个或多个其他组件进行交互。

4.0权利要求支持和进一步实现

以下段落概括了可以在本文中要求保护的项目信息提取的各实现的各示例。然而,应当理解,下文概括的各实现不旨在限制可以鉴于上述描述来要求保护的主题。此外,下文概括的各实现中的任一者或全部可以按与上述描述通篇描述的实现中的一些或全部以及在附图中的一者或多者中解说的任何实现以及下文描述的任何其他实现的任何所需组合来要求保护。另外,应当注意,以下实现旨在鉴于上述描述和本文中通篇描述的附图来理解。

在一个实现中,一种使用计算设备来执行以下过程动作的计算机实现的过程被用于生成企业的项目信息数据库。首先,企业项目名称从与企业相关联的信息源中被提取出;接着与对应于每个提取出的企业项目名称的项目相关联的人员使用与企业相关联的信息源来标识;并且包括每个项目的条目的项目信息数据库针对企业来被生成,其中每个条目包括与项目相关联的提取出的企业项目名称以及被标识成与项目相关联的人员的至少一个列表。

在一个实现中,从与企业相关联的信息源提取企业项目名称的过程动作包括从包括企业文档的一个或多个信息源中提取候选企业项目名称,其中该提取包括采用赫斯特模式分析以标识企业文档中是潜在的项目名称的字符串、在企业文档中标识具有包括至少两个已知的企业项目名称的列或行的表,以及将同一列或行中列出的其他名称视作潜在的项目名称和在文档标题中标识潜在的项目名称中的至少一者;排除不在企业文档中出现多于规定次数的潜在的项目名称;采用被训练来识别企业项目名称的项目名称分类器以对剩余的潜在的项目名称中哪些是有效的企业项目名称进行分类;以及将被分类成有效的潜在的项目名称指定为企业项目名称。

在一个实现中,从与企业相关联的信息源提取企业项目名称的过程动作包括从包括会议信息和分发组信息的一个或多个信息源中提取候选企业项目名称,其中该提取包括标识具有少于规定最大数量的与会者并且多于一个与会者的会议,标识具有少于规定最大数量的成员并且多于一个成员的分发组,从标识出的会议和分发组中删除那些具有包括人员的姓名或指示人员的姓名的术语的标题的会议或组,将项目名称修饰语术语或短语之前或之后的剩余的标识出的会议和分发组中的那些名称标识成潜在的项目名称,标识具有相同的标识出的潜在的项目名称的项目,每当具有完全相同的项目名称的一对项目没有共同的会议与会者或dg成员时,将每个项目名称指定成标识分开的项目,并且每当具有完全相同的项目名称的一对项目具有共同的会议与会者或dg成员时,将该对中的每个项目名称指定成标识同一项目;采用被训练来识别企业项目名称的项目名称分类器以对哪些潜在的项目名称是有效的企业项目名称进行分类;以及将被分类成有效的潜在的项目名称指定为企业项目名称。

在一个实现中,使用与企业相关联的信息源来标识与对应于每个提取出的企业项目名称的项目相关联的人员的过程动作包括针对每个提取出的企业项目名称从包括企业文档的一个或多个信息源中标识与对应于企业项目名称的项目相关联的人员,其中该标识包括标识包括企业项目名称的企业文档,针对每个标识出的文档,标识创作了文档的一个或多个人员,并标识文档中被提到姓名的没有创作该文档的每个人员,并将标识出的一个或多个人员指定成与企业项目名称对应的项目的一个或多个候选成员。此外,在一个实现中,所考虑的文档以除了所考虑的企业项目名称以外的一个或多个其他企业项目名称来命名,并且文档中被提到姓名的每个非创作人员的上述标识包括如果一个或多个人员的姓名如通过之前或之后的单词的数量测得的相比于文档中被找到的任何其他企业项目名称而言更接近于所考虑的企业项目名称,则标识该人员。更进一步,在一个实现中,所考虑的企业项目名称在被包括在所考虑的文档中的表中被找到,并且文档中被提到姓名的每个非创作人员的上述标识包括标识在该表的与所考虑的企业项目名称相同的列或行中被提到姓名的一个或多个人员。

在一个实现中,使用与企业相关联的信息源来标识与对应于每个提取出的企业项目名称的项目相关联的人员的过程动作包括针对每个提取出的企业项目名称从包括分发组或会议信息的一个或多个信息源中标识与对应于企业项目名称的项目相关联的人员,其中该标识包括标识其信息包括企业项目名称的一个或多个分发组,标识其会议信息包括企业项目名称的一个或多个会议,标识作为标识出的一个或多个分发组的成员的每个人员,以及标识作为标识出的一个或多个会议的与会者的每个人员;以及将标识出的一个或多个人员指定成与企业项目名称对应的项目的一个或多个候选成员。此外,在一个实现中,将标识出的一个或多个人员指定成与企业项目名称对应的项目的一个或多个候选成员包括针对每个标识出的人员,基于从被搜集自提及该人员的数据源的与项目相关联的各种属性及贡献导出的分数来对该人员排名,以及基于该人员的排名来对被标识成与在企业项目数据库中找到的项目相关联的人员的列表中的每个标识出的人员进行排序。在一个实现中,基于从被搜集自提及人员的数据源的项目的各种属性及对其的贡献导出的分数来对该人员排名包括基于以下各项中的至少一者来分配成分分数:由人员创作的包括项目名称的文档的数量;或者在包括人员姓名和项目名称两者的每个文档中的该人员姓名与该项目名称的邻近度;或者与项目名称处在文档中的表的相同列或行或者文档中的相同列表中的人员姓名;或者作为与项目相关联的分发组的成员的人员;或者作为与项目相关联的分发组的子组的成员的人员;或者作为与项目相关联的分发组的成员的人员,其中该分发组的大多数成员受该人员监督;或者由人员发送到与项目相关联的分发组的电子邮件的数量;或者人员作出的与项目相关联的程序代码的登记的数量;或者与人员组织或参加的项目相关联的会议的数量;或者对与项目相关联的每个会议而言的在与项目相关联的会议的会议记录中归属于该人员的句子数量;或者由人员发送的与项目相关联的电子邮件和企业社交网络通信的数量。此外,在一个实现中,项目的各种属性及对其的贡献各自被分配权重,并且基于从被搜集自提及人员的数据源的项目的各种属性及对其的贡献导出的分数来对该人员排名包括将与属性或贡献相关联的每个成分分数乘以分配给该属性或贡献的权重,并将所得到的乘积相加以产生针对该人员的总体分数。此外,在一个实现中,将标识出的一个或多个人员指定成与企业项目名称对应的项目的一个或多个候选成员包括针对每个标识出的人员,标识该人员在项目内的角色,以及针对项目中每个标识出的角色以及被分配了该角色的每个人员,基于从与被搜集自提及该人员的数据源的项目相关联的各种属性和贡献导出的分数对该人员进行排名,并且基于该人员的排名来对被分配所考虑的角色的每个人员进行排序。

在一个实现中,上述用于为企业生成项目信息数据库的计算机实现的过程还包括针对与提取出的企业项目名称相关联的每个项目来标识与同所考虑的项目相关的一个或多个另外的项目相关联的一个或多个提取出的企业项目名称的过程动作,并且为企业生成项目信息数据库的过程动作还包括将同所考虑的项目相关的一个或多个项目的一个或多个提取出的企业项目名称添加到与所考虑的项目相关联的企业信息数据库条目中。在一个实现中,标识与同所考虑的项目相关的一个或多个另外的项目相关联的一个或多个提取出的企业项目名称的过程动作包括与所考虑的项目相关联,每个项目均与所考虑的项目的一个或多个分发组具有子超级分发组关系。此外,在一个实现中,标识与同所考虑的项目相关的一个或多个另外的项目相关联的一个或多个提取出的企业项目名称的过程动作包括标识具有少于规定数量的与会者的会议,用表示标识出的会议的与会者的节点以及将每个节点与其他节点相连接的边来构建加权图,每条边具有表示与由该条边所连接的节点相关联的与会者们已共同参加的会议的数量的权重,针对每个会议,确定该会议是否为与项目相关的会议或者协作会议,针对被确定为协作会议的每个会议,使用加权图和聚类方法来标识与会者子组,并且针对具有多于一个成员的每个子组,将子组映射到提取出的项目名称,并将对应于被映射到子组的提取出的项目名称的项目视作同所考虑的项目相关的项目。

在一个实现中,上述用于为企业生成项目信息数据库的计算机实现的过程还包括针对与提取出的企业项目名称相关联的每个项目来标识与所考虑的项目相关联的一个或多个文档的过程动作,并且为企业生成项目信息数据库的过程动作还包括将标识出的一个或多个文档或到其的链接添加到与所考虑的项目相关联的项目信息数据库条目中。在一个实现中,标识与所考虑的项目相关联的一个或多个文档的过程动作包括标识从中提取出与所考虑的项目相关联的企业项目名称的一个或多个文档。此外,在一个实现中,标识与所考虑的项目相关联的一个或多个文档的过程动作包括索引在与企业相关联的信息源中找到的文档,搜索带有与所考虑的项目相关联的企业项目名称的索引文档,以及将返回作为搜索结果的至少一些文档与所考虑的项目相关联。

在一个实现中,上述用于为企业生成项目信息数据库的计算机实现的过程还包括针对与提取出的企业项目名称相关联的每个项目来建立项目的时间线的过程动作,并且为企业生成项目信息数据库的过程动作还包括将针对所考虑的项目而被建立的时间线添加到与所考虑的项目相关联的项目信息数据库条目中。在一个实现中,为项目首先建立时间线的过程动作包括估计项目的开始日期,其中该开始日期被估计成与项目相关联的分发组的创建日期、与项目相关联的最早一次会议的日期以及与项目相关联的最早一次程序代码登记的日期中的最早的一者。然后,如果项目已经结束,则针对该项目来估计结束日期,其中该结束日期被估计成与项目相关联的最后一次会议的日期、与项目相关联的最后一次程序代码登记的日期以及与项目相关联的文档最近一次被修改的日期中的最晚的一者。接下来,与企业相关联的信息源被搜索,以找到与项目相关联的事件及它们发生的日期。

在一个实现中,上述用于为企业生成项目信息数据库的计算机实现的过程还包括针对与提取出的企业项目名称相关联的每个项目来标识包括以下各项中的至少一者在内的项目相关的项的过程动作:会议、或分发组、或程序代码登记、或电子邮件、或企业社交网络消息、或定义、或首字母缩略词、或主页、或幻灯片、或项目描述或者同项目相关联的概念术语,并且为企业生成项目信息数据库的过程动作还包括将标识出的项目相关的项或到其的链接添加到与所考虑的项目相关联的项目信息数据库条目中。

在一个实施中,用于企业的项目信息数据库系统被采用。该系统包括一个或多个计算设备,每个计算设备包括处理器、通信接口和存储器。如果存在多个计算设备,则它们彼此经由计算机网络通信。该系统还包括具有通过一个或多个计算设备可执行的程序模块的计算机程序。该一个或多个计算设备由计算机程序的程序模块指导,以访问与企业相关联的信息源,从信息源中提取企业项目名称,使用信息源来标识与对应于每个提取出的企业项目名称的项目相关联的人员,并为企业生成包括每个项目的条目的项目信息数据库,其中每个条目均包括与项目相关联的提取出的企业项目名称,以及被标识成与项目相关联的人员的至少一个列表。此外,在一个实现中,计算机程序包括程序模块,以用于接收针对用户的查询,包括表示企业项目名称的术语、或与企业项目相关联的人员或两者,用于在项目信息数据库中搜索对应于被查询的企业项目名称、或与企业项目相关联的人员或两者的信息,以及用于向用户提供搜索的结果。

在各种实现中,项目信息提取涉及为企业生成项目信息数据库的步骤。例如,在一个实现中,项目信息提取包括使用计算设备来执行以下过程动作:用于从与企业相关联的信息源中提取企业项目名称的提取步骤;用于使用与企业相关联的信息源来标识与对应于每个提取出的企业项目名称的项目相关联的人员的标识步骤;以及用于为企业生成包括每个项目的条目的项目信息数据库的生成步骤,其中每个条目均包括与项目相关联的提取出的企业项目名称,以及被标识成与项目相关联的人员的至少一个列表。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1