CN111324690B - 一种基于FrameNet的图形化语义数据库处理方法 - Google Patents
一种基于FrameNet的图形化语义数据库处理方法 Download PDFInfo
- Publication number
- CN111324690B CN111324690B CN202010144237.2A CN202010144237A CN111324690B CN 111324690 B CN111324690 B CN 111324690B CN 202010144237 A CN202010144237 A CN 202010144237A CN 111324690 B CN111324690 B CN 111324690B
- Authority
- CN
- China
- Prior art keywords
- frame
- name
- framenet
- data
- neo4j
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003672 processing method Methods 0.000 title description 2
- 238000000034 method Methods 0.000 claims abstract description 50
- 238000012545 processing Methods 0.000 claims abstract description 10
- 230000008569 process Effects 0.000 claims abstract description 6
- 238000013507 mapping Methods 0.000 claims description 4
- 238000013461 design Methods 0.000 abstract description 5
- 238000003058 natural language processing Methods 0.000 abstract description 4
- 238000005516 engineering process Methods 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 108010001267 Protein Subunits Proteins 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001149 cognitive effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000007430 reference method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012876 topography Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3344—Query execution using natural language analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/338—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/38—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/383—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Library & Information Science (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种基于FrameNet的图形化语义数据库处理方法,涉及自然语言处理技术领域,能够简化操作,也简化了表关系的设计难度。本发明包括:在初始化过程中,将FrameNet中表示框架的属性值、表示框架元素的属性值和表示词元之间的关系的属性值,存储到Neo4j中创建数据库;读取FrameNet中的注释内容数据,所述注释内容数据选自不同的语料库,将所述注释内容数据存储到Neo4j中创建的数据库中;读取FrameNet中表示框架、表示框架元素与注释之间的关系和表示词元的数据,并存储到Neo4j中创建数据库中。本发明适用于大数据技术与自然语言处理相结合的应用场景。
Description
技术领域
本发明涉及自然语言处理技术领域,尤其涉及一种基于FrameNet的图形化语义数据库处理方法。
背景技术
FrameNet是一种基于框架语义学(Frame Semantics)的包含有丰富语义信息的词汇资源。其中的框架元素按照重要程度又被分为核心框架元素和非核心框架元素。不同的框架在框架元素的种类和数量上是有差别的,这些具有个性特征的框架元素也更适合用来描述自然语言中千变万化的语义信息。
FrameNet的数据形式,具有复杂、互连接、低结构化且还在迅速变化等数据特征,这种类型的数据被关系型数据库处理时,性能会被严重制约,且数据规模越大,关系型数据库的性能下降也会越快。
因此,如何更好地处理FrameNet这类数据,成为了将大数据技术与自然语言处理相结合时,需要解决的问题。
发明内容
本发明的实施例提供一种基于FrameNet的图形化语义数据库处理方法,能够简化操作,也简化了表关系的设计难度。
步骤一、在初始化过程中,将FrameNet中表示框架的属性值、表示框架元素的属性值和表示词元之间的关系的属性值,存储到Neo4j中创建数据库;
步骤二、读取FrameNet中的注释内容数据,所述注释内容数据选自不同的语料库,将所述注释内容数据存储到Neo4j中创建的数据库中;
步骤三、读取FrameNet中表示框架、表示框架元素与注释之间的关系和表示词元的数据,并存储到Neo4j中创建数据库中。
具体的,所述步骤一中包括:
步骤1.1、从FrameNet中的各个框架的xml文件中读取属性,所读取的属性至少包括:框架的ID和definition,每个框架所包含的框架元素,每个框架所包含的框架元素的ID和name,用于激起各个框架的词元,和各个词元的name、ID和POS;
步骤1.2、从FrameNet中的frRelation.xml文件中,读取不同框架的框架元素之间的关系和较于之前的版本新增的框架之间的关系;
步骤1.3、通过Eclipse,将所述步骤1.1和所述步骤1.2中读取到的数据存储到Neo4j中创建数据库中。
所述步骤二包括:
步骤2.1、从FrameNet中的各个文档(document)的xml文件中,读取各个文档的属性值、各个文档中所包括的句子和各个文档中所包括的句子的注释;
步骤2.2、通过Eclipse将所述步骤2.1中读取到的数据存储到Neo4j中创建数据库中。
本实施例在基于对FrameNet的理解之上,将FrameNet存储在本地图形数据库中,最终以图的形式呈现出来,方便用户能够更直观、形象地观察出FrameNet中的结构。与将FrameNet存储在关系型数据库相比,该方法将FrameNet存储在Neo4j里,对数据的操作会更快,数据更直观,相应的SQL语句也更好写(Neo4j使用Cypher语言,与传统的SQL有很大的不同),更灵活,不管有什么新的数据需要存储,都是一律的节点和边,只需要考虑节点属性和边属性,而关系型数据库则意味着新的表,还要考虑和其他表的关系。基于以上的优点,相对于关系型数据库,本实施例的方案简化了操作,也简化了表关系的设计难度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为FrameNet在Neo4j中的大概结构,其中为了表示的方便,画了两个annoSet,但是它们是同一种结构;
图2a、图2b为frame文件夹中的文件在Neo4j中的结构和在Neo4j中的呈现形式;
图3a、图3b为fulltext文件夹中的文件在Neo4j中的结构和在Neo4j中的部分呈现形式;
图4a、图4b、图4c为lu文件夹中的文件在Neo4j中的结构和在Neo4j中的部分呈现形式。
具体实施方式
为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。下文中将详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。
本实施例中所述的FrameNet,指的是美国加州大学伯克利分校构建的一个基于框架语义学(Frame Semantics)的包含有丰富语义信息的词汇资源。在FrameNet中“框架”(Frame)作为一个语言学术语,是指人们在理解自然语言时激活的大脑中已有的认知结构,是用来描述一个事件或一个语义场景的一组概念。每个框架都包含了一系列被称为框架元素(Frame Elements,FEs)的语义角色,在现实语料中框架元素与语境中描述事件或事物形态的词汇相对应。框架元素按照重要程度又被分为核心框架元素和非核心框架元素。不同的框架在框架元素的种类和数量上是有差别的,这些具有个性特征的框架元素也更适合用来描述自然语言中千变万化的语义信息。
Neo4j是一个高性能的NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎。Neo4j提供了大规模可扩展性,在一台机器上可以处理数十亿节点/关系/属性的图,可以扩展到多台机器并行运行。相对于关系数据库来说,图数据库善于处理大量复杂、互连接、低结构化的数据,这些数据变化迅速,需要频繁的查询——在关系数据库中,这些查询会导致大量的表连接,因此会产生性能上的问题。Neo4j重点解决了拥有大量连接的传统RDBMS在查询时出现的性能衰退问题。通过围绕图进行数据建模,Neo4j会以相同的速度遍历节点与边,其遍历速度与构成图的数据量没有任何关系。本实施的设计目的即在于,实现将语义数据库FrameNet映射到Neo4j。
本发明实施例提供一种基于FrameNet的图形化语义数据库处理方法,包括:
步骤一、在初始化过程中,将FrameNet中表示框架的属性值、表示框架元素的属性值和表示词元之间的关系的属性值,存储到Neo4j中创建数据库。
其中,在本地Neo4j中创建数据库,将FrameNet中框架,框架元素,词元之间的关系,以及各自的属性值存储到Neo4j中。
FrameNet中的框架(frame)是FrameNet的核心,FrameNet的项目工作人员花费了相当多的时间来描述每一个作为一个整体的框架和它的每一个框架元素(frameelement),而每一个框架是由词元(lexical units或者frame-evoking elements)所激起的。框架表示故事片段,这些片段将一组单词与一组含义(meaning)连接起来;例如,词元avenger激起了Revenge这个框架,而Revenge这个框架描述了一系列复杂的事件和一组参与者。每个框架的xml文件中,都包括如下内容:该框架的definition(定义),该框架所包含的框架元素,各框架元素的定义(definition),框架元素的类型,语义类型等一系列框架元素的属性,框架间的关系,词元,词元的名字,词性,定义(definition)等一系列词元属性。
FrameNet分析目标谓词实例是使用恰当的标签集来建立注释层(layers ofannotation)。FrameNet中的每一个被注释的句子都会包含一个(或一个以上)的框架元素,一个语法功能(grammatical function)和一个句型(phrase type)。这三种框架元素的注释类型被看作是层(layer)。FrameNet的注释主要有两个来源。一个是从语料库中提取出含有词元的句子,然后为这些句子做注释。另一种是整个注释中较小的一部分,为整个正文做注释。全文注释和句子注释的不同处就在于,那些被注释的句子是由创造FrameNet的人所挑选的。而全文的注释则依赖于注释分层技术。
步骤二、读取FrameNet中的注释内容数据,所述注释内容数据选自不同的语料库,将所述注释内容数据存储到Neo4j中创建的数据库中。
其中,读取FrameNet中涉及到的corpus(语料库)以及关于corpus(语料库)的注释内容,并将从FrameNet中读取到的数据存储到Neo4j中。
步骤三、读取FrameNet中表示框架、表示框架元素与注释之间的关系和表示词元的数据,并存储到Neo4j中创建数据库中。
在本实施例的步骤一至三中,执行本实施例方法流程的设备(比如运行Neo4j的计算机、工作站等)每一步中读取的都是具体的计算机设备可读的数据,比如:第一步中的属性值,这些属性值可以是一些具体的字符数据,或者按照Neo4j中特定格式存储的数据;第二步中的注释内容,这些注释内容具体可以是一些字符数据或者特定程序语言的代码等;第三步中的表示框架、表示框架元素与注释之间的关系和表示词元的数据,这些是表示不同对象之间映射、对应关系的数据或记录;这些数据之间有依赖关系,所以需要有一定的读取顺序。
本实施例在基于对FrameNet的理解之上,将FrameNet存储在本地图形数据库中,最终以图的形式呈现出来,方便用户能够更直观、形象地观察出FrameNet中的结构。与将FrameNet存储在关系型数据库相比,该方法将FrameNet存储在Neo4j里,对数据的操作会更快,数据更直观,相应的SQL语句也更好写(Neo4j使用Cypher语言,与传统的SQL有很大的不同),更灵活,不管有什么新的数据需要存储,都是一律的节点和边,只需要考虑节点属性和边属性,而关系型数据库则意味着新的表,还要考虑和其他表的关系。基于以上的优点,相对于关系型数据库,本实施例的方案简化了操作和表关系的设计难度。
在本实施例中,所述步骤一中包括:
步骤1.1、从FrameNet中的各个框架的xml文件中读取属性,所读取的属性至少包括:框架的标识符(ID)和定义(definition)等一系列属性,每个框架所包含的框架元素,每个框架所包含的框架元素的标识符(ID)和名字(name)等属性,用于激起各个框架的词元,和各个词元的名字(name)、标识符(ID)和词性(POS)等一系列属性值。
步骤1.2、从FrameNet中的frRelation.xml文件中,读取不同框架的框架元素之间的关系和较于之前的版本新增的框架之间的关系。
其中,从FrameNet中的frRelation.xml中,读取出属于不同框架的框架元素之间的关系,以及该版本(1.7版本)的FrameNet较于之前的版本(1.0,1.2,1.3,1.5,1.6,1.7)新增的框架之间的关系。
步骤1.3、通过Eclipse,将所述步骤1.1和所述步骤1.2中读取到的数据存储到Neo4j中创建数据库中。需要说明的是,Eclipse指的是一个开放源代码的、基于Java的可扩展开发平台,它只是一个框架和一组服务,用于通过插件组件构建开发环境。目前Eclipse只有其英文名,暂时国内没有约定俗称的中文称呼。
进行数据处理的过程中,将文件夹frame中各个xml文件的框架元素(FE),框架(frame)和词元(lu)看做节点(nodes),如图2a所示。文件夹fulltext中的各个文件中的语料库(corpus),文档(doc),标签(lab),层(layer),句子(sent),注释集(annoSet)看做节点,如图3a所示。文件夹lu中的各个文件中的模式(pattern),子语料库(subCorpus:这是一种从语料库中提取的自动生成的句子语料库,其选择基于预定的句法规范)和价单元(valenceUnit)看做是节点,如图4b所示。图4a描述的是框架元素(FE)和模式(pattern),价单元(valenceUnit),注释集(annoSet)之间的关系。框架之间的关系类型有继承(Inheritance),透视(Perspective_on),总分(Subframe),先后(Precedes),起始(Inchoative_of),致使(Causative_of),Using(使用),参照(See_also),相似(Metaphor)。框架元素之间的关系除了以上9种之外,还有互斥关系(excludes),必要关系(require)。框架和框架元素之间的关系为包含(contain)和核心集(CoreSet)的关系。词元激起(evoke)框架。所以,根据以上关系类型,此方法将FrameNet的整张图中的关系类型设置为20种。
本实施例中,基于Neo4j驱动的Eclipse实现了图形数据库的构建工具,该工具可以将FrameNet这个语义库以图形化地形式展示出来,可以更直观地观察FrameNet中的结构。
工具开发在Eclipse上实现,采用Java语言。工具框架包括:
创建FrameNet_Neo4j包:FilterByXML类:用于返回文件夹中的xml文件。
Frame_Neo4j类:用于将frame文件夹中的xml文件数据存储进Neo4j中:definition方法用于为frame节点增加definition属性;FE方法用于创建FE节点,并将frame节点与FE节点联系起来;FEcoreSet方法将框架的核心框架元素表示出来;frameRelation方法将有联系的frame节点联系起来;lexUnit方法用于创建lu节点,并将frame节点与lu节点联系起来。
FrameRelation类:用于将有关系的框架元素联系起来。
Corpus_neo4j类:将从各个语料库中的句子及其注释存进Neo4j中:header方法用于创建corpus和doc节点并将二者联系起来;sentence方法用于创建sent节点并将sent节点和doc节点联系起来。
Lu_neo4j类:将框架元素和词元对应的句子及注释联系起来:pattern方法用来读取xml文件中子元素pattern的内容,根据已读取的数据,创建valenceUnit节点,pattern节点,并将FE节点和pattern节点,pattern节点和valenceUnit节点联系起来;annoSet方法用于读取xml文件中子元素annoSet的内容,根据读取到的内容,将valenceUnit节点和annoSet节点联系起来;subCorpus方法通过利用读取到的数据,创建subCorpus节点,并将该节点与lu节点联系起来;sentence方法根据读取到的信息,创建sent节点,并将sent节点和subCorpus节点联系起来;annotationSet方法根据读取到的内容,创建annoSet节点,并将sent节点和annoSet节点联系起来;layer方法根据读取到的数据创建layer节点,并将annoSet节点和layer节点连接起来;label节点根据读取到的信息创建lab节点,并将layer节点和lab节点联系起来;isEmpty方法用来处理为空的情况。
进一步的,所述步骤1.1中还包括:
将读取到的数据的存储形式进行更改,更改方式包括:
将元素frame的definition中的字符“'”替换为“|”。将元素FE的definition中的字符“'”替换为“|”。将元素frameRelation的type的属性值中的“”替换为“_”。将元素lexUnit的name的属性值中的“can't”替换为“can not”。
本实施例中,所述步骤二包括:
步骤2.1、从FrameNet中的各个文档(document)的xml文件中,读取各个文档的属性值、各个文档中所包括的句子和各个文档中所包括的句子的注释。
步骤2.2、通过Eclipse将所述步骤2.1中读取到的数据存储到Neo4j中创建数据库中。
进一步的,所述步骤2.1中还包括:
将读取到的数据的存储形式进行更改,更改方式包括:将元素document的description中的字符“'”替换为“|”;将元素sentence的文本内容text中的字符“'”替换为“_”;将节点label的name的属性值中的“'”替换为“|”;将节点label的name的属性值中的“:”替换为“colon”。
本实施例中,所述步骤3中还包括:
将读取到的数据的存储形式进行更改,更改方式包括:将元素lexUnit的name的属性值中的“can't”替换为“can not”;将元素valenceUnit的PT属性值中的“'”替换为“|”;将元素valenceUnit的为空的GF的属性值替换为“_”;将元素subCorpus的name的属性值中的“'”替换为“|”;将元素sentence的文本内容text的“'”替换为“|”;将节点label的name的属性值中的“'”替换为“|”;将节点label的name的属性值中的“:”替换为“colon”。
在本实施例中,所述步骤3中还包括:
查找已经存储至所述Neo4j的框架元素、词元、指向相关联文档的annotationSet(注释集)和所述相关联文档,其中,所述相关联文档包括已经存储至所述Neo4j的框架元素和词元;通过cypher语句,分别将框架元素和词元,与annotationSet(注释集)和所述相关联文档建立映射关系。
具体的,首先需要查找到在图中已经存储的框架元素,词元,以及涉及到的文档和annotationSet(注释集),再通过cypher语句将框架元素或者词元和它们相应的文档和注释集联系起来。
具体举例来说,
将FrameNet的文件的基本数据进行加工存入到Neo4j中,创建一个名为“FrameNet_Neo4j”的数据库。以frame文件夹中的“Duplication”为例,在Neo4j中的部分结构如图2b所示,该图中的每一个节点都是一个框架,框架之间以某种特定的框架间的关系相连接,文件结构如下表所示:
表1frame文件夹中的文件结构
为方便操作,存储的数据类型均为String类型。
将frame,FE和lu当做节点。Frame的name,ID和definition看做是节点frame的property keys,并分别命名为name,frame_ID,frame_definition。FE的abbrev,coreType,name,ID,definition看做是节点FE的property keys(属性),并分别命名为FE_abbrev,FE_coreType,FE_definition,FE_name,FE_ID。Lu的status,POS,name,ID,lemma ID,definition,sentenceCount的annotated和total,lexeme的order,headword,breakBefore,POS,name看做是节点lu的property keys,并分别命名为lu_ID,lu_POS,lu_definition,lu_lemmaID,lu_lexeme_POS,lu_lexeme_breakBefore,lu_lexeme_headword,lu_lexeme_name,lu_lexeme_order,lu_name,lu_semType_name,lu_sentenceCount_annotated,lu_sentenceCount_annotated_total,lu_status。当判断到元素frameRelation的子元素relatedFrame非空之后,将两个框架连接起来,关系的名字是frameRelation的type的属性值。此外,部分框架元素之间可能会存在require或exclude,遇到这两种关系,就直接将存在这种关系的框架元素用require或exclude联系起来。还有一种关系名为coreSet,是指框架的核心集元素,存在这种关系的,是用迭代的方法将框架和框架元素用关系名为coreSet的关系连接起来。部分代码如下:
session.run(String.format("merge(n1:frame{name:'%s',frame_ID:'%s'})",frame_name,frame_id));
该行代码通过使用“merge”来根据“name”属性值和“frame_ID”属性值来查询数据库中是否已经存在这个frame节点,若不存在,则根据上述二者的属性值创建新的frame节点。
session.run(String.format("match(n1:frame{name:'%s',frame_ID:'%s'})set n1.frame_definition='%s'",frame_name,frame_id,frame_definition));
该行代码首先查询数据库中的frame结点,查询到该frame节点之后,为该节点设置一个新的frame_definition属性值。
session.run(String.format("match(n1:FE{FE_name:'%s',FE_ID:'%s'}),(n2:FE{FE_name:'%s',FE_ID:'%s'})merge(n1)-[:require]->(n2)",FE_name,FE_ID,FE_requiresFE_name,FE_requiresFE_ID));
该行代码用来为存在require关系的两个框架元素创建require关系。
session.run(String.format("match(n1:frame{name:'%s',frame_ID:'%s'}),(n2:FE{FE_name:'%s',FE_ID:'%s'})create(n1)-[:coreSet]->(n2)",frame_name,frame_id,FEcoreSet_memberFE_name,FEcoreSet_memberFE_ID));
该行代码用来为frame节点设置核心集(coreSet),是通过将frame节点与FE节点以关系名为coreSet的关系联系起来。
具体的结构和在Neo4j中的呈现形式如图2a和图2b所示。
以文件夹fulltext中的文件“ANC_110CYL067”为例,图3b是该文件中的一篇名为“IntroHongKong”所包含的句子,中心的节点标签是doc,其余的节点标签是sent。详细的文件结构如表2所示:
表2fulltext文件夹中的文件结构
为方便操作,存储的数据类型均为String类型。
将corpus,document,sentence,annotationSet和layer看做是节点,并分别命名为corpus,doc,sent,annoSet,layer和label。将Corpus的属性:description,name,ID设为节点corpus的属性(property keys),并分别命名为:corpus_description,corpus_ID,corpus_name。Sentence的一系列属性,诸如sentNo,paragNo,aPos,ID,text等设置为节点sent的property keys,并分别命名为:sent_No,parag_No,sent_aPos,sent_ID,sent_text。除此之外,利用sentence的属性corpID将节点corpus和sent联系起来,关系名字设为:contain。部分代码如下:
session.run(String.format("match(n1:corpus{corpus_name:'%s',corp us_ID:'%s'}),(n2:doc{doc_name:'%s',doc_ID:'%s'})with n1,n2create(n1)-[:contain]->(n2)",corpus_name,corpus_ID,doc_name,doc_ID));
该行代码为语料库和它所包含的文档设置包含关系。
具体的结构和在Neo4j中的呈现形式如图3a和图3b所示。
以lu文件夹中的文件“lu10”为例,在Neo4j中的具体呈现形式如图4c所示,中心的节点标签是lu,代表lu_name是copy.v的节点,其余的节点标签是subCorpus。具体的文件结构如表3所示:
表3lu文件夹中的文件结构
为方便操作,存储的数据类型均为String类型。
将pattern,valenceUnit,annoSet,subCorpus,sentence,layer和label看做是节点,并分别命名为pattern,valenceUnit,annoSet,subCorpus,sent,layer和lab。将pattern_total,valenceUnit_GF,valenceUnit_PT和valenceUnit_FE设置为pattern的属性(propertykeys)。将VU_GF,VU_PT和VU_FE设置为valenceUnit的属性。将annoSet_ID和annoSet_status设为节点annoSet的属性。将subCorpus_name和lu_ID设置为subCorpus的属性。将sent_ID,sent_No,sent_aPos,sent_text设置为sent的属性。将lay_name,lay_rank,annoSet_ID设置为annoSet的属性。将lab_name,lab_start和lab_end设置为lab的属性。
文件frRelation的结构如表4所示:
表4frRelation的文件结构
为方便操作,存储的数据类型均为String类型。
该文件主要是用于罗列有关系的框架和框架元素。部分代码如下所示:
session.run(String.format("match(n1:FE{FE_name:'%s',FE_ID:'%s'}),(n2:FE{FE_name:'%s',FE_ID:'%s'})withn1,n2create(n1)-[:Is_Inherited_by]->(n2)",superFEName,supFEID,subFEName,subFEID));
该行代码将有被继承关系的两个框架元素在数据库中联系起来。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (6)
1.一种基于FrameNet的图形化语义数据库处理方法,其特征在于,包括:
步骤一、在初始化过程中,将FrameNet中表示框架的属性值、表示框架元素的属性值和表示词元之间的关系的属性值,存储到Neo4j中创建数据库;
步骤二、读取FrameNet中的注释内容数据,所述注释内容数据选自不同的语料库,将所述注释内容数据存储到Neo4j中创建的数据库中;
步骤三、读取FrameNet中表示框架、表示框架元素与注释之间的关系和表示词元的数据,并存储到Neo4j中创建数据库中;
所述步骤一中包括:
步骤1.1、从FrameNet中的各个框架的xml文件中读取属性,所读取的属性至少包括:框架的标识符(ID)和定义(definition),每个框架所包含的框架元素,每个框架所包含的框架元素的标识符(ID)和名字(name),用于激起各个框架的词元,和各个词元的名字(name)、标识符(ID)和词性(POS);
步骤1.2、从FrameNet中的frRelation.xml文件中,读取不同框架的框架元素之间的关系和较于之前的版本新增的框架之间的关系;
步骤1.3、通过Eclipse,将所述步骤1.1和所述步骤1.2中读取到的数据存储到Neo4j中创建数据库中。
2.根据权利要求1所述的方法,其特征在于,所述步骤1.1中还包括:
将读取到的数据的存储形式进行更改,更改方式包括:
将元素frame的definition中的字符“'”替换为“|”;
将元素FE的definition中的字符“'”替换为“|”;
将元素frameRelation的type的属性值中的“”替换为“_”;
将元素lexUnit的name的属性值中的“can't”替换为“can not”。
3.根据权利要求1所述的方法,其特征在于,所述步骤二包括:
步骤2.1、从FrameNet中的各个文档(document)的xml文件中,读取各个文档的属性值、各个文档中所包括的句子和各个文档中所包括的句子的注释;
步骤2.2、通过Eclipse将所述步骤2.1中读取到的数据存储到Neo4j中创建数据库中。
4.根据权利要求3所述的方法,其特征在于,所述步骤2.1中还包括:
将读取到的数据的存储形式进行更改,更改方式包括:
将元素document的description中的字符“'”替换为“|”;
将元素sentence的文本内容text中的字符“'”替换为“_”;
将节点label的name的属性值中的“'”替换为“|”;
将节点label的name的属性值中的“:”替换为“colon”。
5.根据权利要求1所述的方法,其特征在于,所述步骤三中还包括:
将读取到的数据的存储形式进行更改,更改方式包括:
将元素lexUnit的name的属性值中的“can't”替换为“can not”;
将元素valenceUnit的PT属性值中的“'”替换为“|”;
将元素valenceUnit的为空的GF的属性值替换为“_”;
将元素subCorpus的name的属性值中的“'”替换为“|”;
将元素sentence的文本内容text的“'”替换为“|”;
将节点label的name的属性值中的“'”替换为“|”;
将节点label的name的属性值中的“:”替换为“colon”。
6.根据权利要求5所述的方法,其特征在于,所述步骤三中还包括:
查找已经存储至所述Neo4j的框架元素、词元、指向相关联文档的注释集(annotationSet)和所述相关联文档,其中,所述相关联文档包括已经存储至所述Neo4j的框架元素和词元;
通过cypher语句,分别将框架元素和词元,与注释集(annotationSet)和所述相关联文档建立映射关系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010144237.2A CN111324690B (zh) | 2020-03-04 | 2020-03-04 | 一种基于FrameNet的图形化语义数据库处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010144237.2A CN111324690B (zh) | 2020-03-04 | 2020-03-04 | 一种基于FrameNet的图形化语义数据库处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111324690A CN111324690A (zh) | 2020-06-23 |
CN111324690B true CN111324690B (zh) | 2023-11-07 |
Family
ID=71167434
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010144237.2A Active CN111324690B (zh) | 2020-03-04 | 2020-03-04 | 一种基于FrameNet的图形化语义数据库处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111324690B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113536761B (zh) * | 2021-07-09 | 2024-01-30 | 南京航空航天大学 | 一种基于框架重要度计算句子相似度的方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110263178A (zh) * | 2019-06-03 | 2019-09-20 | 南京航空航天大学 | 一种WordNet到Neo4J的映射方法、语义检测方法及语义计算扩展接口生成方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9152623B2 (en) * | 2012-11-02 | 2015-10-06 | Fido Labs, Inc. | Natural language processing system and method |
-
2020
- 2020-03-04 CN CN202010144237.2A patent/CN111324690B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110263178A (zh) * | 2019-06-03 | 2019-09-20 | 南京航空航天大学 | 一种WordNet到Neo4J的映射方法、语义检测方法及语义计算扩展接口生成方法 |
Non-Patent Citations (1)
Title |
---|
Apoorv Agarwal 等.Using Frame Semantics in Natural Language Processing.https://aclanthology.org/W14-3008.pdf.2014,第3节. * |
Also Published As
Publication number | Publication date |
---|---|
CN111324690A (zh) | 2020-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chang et al. | A survey of web information extraction systems | |
McBride | Jena: A semantic web toolkit | |
EP2595072A1 (en) | System and method implementing a text analysis repository | |
JP3492246B2 (ja) | Xmlデータ検索処理方法および検索処理システム | |
Vrgoc et al. | MillenniumDB: a persistent, open-source, graph database | |
EP2425382B1 (en) | Method and device for improved ontology engineering | |
CN111324690B (zh) | 一种基于FrameNet的图形化语义数据库处理方法 | |
Vrgoč et al. | MillenniumDB: A Persistent, Open-Source, Graph Database | |
Dickson et al. | The semi-structured data model and implementation issues for semi-structured data | |
Voß | Describing Data Patterns. A general deconstruction of metadata standards | |
Will | Thesaurus consultancy | |
Hussain et al. | Content mathml (cmml) conversion using latex math grammar (lmg) | |
Hussain et al. | Rule Based Conversion of LAT E X Math Equations into Content MathML (CMML). | |
Tang et al. | Ontology-based semantic retrieval for education management systems | |
Kowalski et al. | RDBMS model for scientific articles analytics | |
Voß | Describing data patterns | |
Hong et al. | Extracting Web query interfaces based on form structures and semantic similarity | |
Salih | Towards from manual to automatic semantic annotation: based on ontology elements and relationships | |
Šestáková | Indexing XML documents | |
Po et al. | Automatic Lexical Annotation: an effective technique for dynamic data integration | |
Lystopadskyi | Narrative extraction from semantic graphs | |
Nguyen | Semantic and structural integration of heterogeneous XML sources | |
Marin-Castro et al. | VR-Tree: A novel tree-based approach for modeling Web Query Interfaces | |
Fernandes | Development of a web-based platform for Biomedical Text Mining | |
Yaghmazadeh | Automated synthesis of data extraction and transformation programs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |