基于依存句法树的中文问题的关键词抽取方法

文档序号:26007544发布日期:2021-07-23 21:26阅读:143来源:国知局
基于依存句法树的中文问题的关键词抽取方法

技术领域:

本发明属于数据检索领域,针对校园问答系统主要提出了一种基于依存句法树的中文问题的关键词抽取方法。



背景技术:

问答系统是指使用自然语言对用户输入的问句做出相应回复的智能系统,系统根据用户所输入的问题检索标准问答库,然后自动返回相应的回答。所以,系统对问题的检索结果是否准确直接影响到该用户对问答系统的使用体验。现有技术中检索问题相应回答时,通常先将问题提取关键词集,然后再使用词集进行录入检索,若关键词抽取不准确,将直接影响到检索的结果是否准确。

目前关键词提取为根据自定义词库以及常用词库进行分词选定,存在不够精准,自定义工作量大,通用性差的技术问题。比如,对于给定的一个领域的问题,该领域的自定义词库需要人工添加,如果将该算法引入到新的领域当中,需重新添加词库,灵活性较差。另外,一些问题的关键词较冗余,对正确答案的定位并无帮助,极大地降低的检索的效率。



技术实现要素:

本发明旨在解决问题关键词提取中冗余较多,人工干预较大的问题,增强关键词提取算法在不同领域下的通用性,尽可能地减少自定义词库的工作量,并提升答案定位的准确率和效率。本发明在中文句法分词的基础上,对句子进行依存句法分析,构建出依存句法分析树。在此基础上,我们设定了新的关键词组合规则,将词与关系节点(父节点,子节点,兄弟节点)根据特定中文语法关系组合成新的关键词,并依据词节点权重对关键词赋予检索优先级权重。同时,本发明还采用了全新规则的停用词表,去除了绝大部分无效关键词,有助于提高检索效率。

基于依存句法树的中文问题的关键词抽取方法,具体实现步骤如下:

步骤1:对文本数据进行预处理:主要指对所得文本数据集进行清洗和结构化整理;

步骤2:基于依存句法构建依存句法关系树

步骤3:设定特殊规则并检索关键词

步骤4:根据关键词权重对关键词集合中的所有关键词进行优先级排序;

进一步的,步骤1所述的数据预处理主要包含以下步骤:

1-1.数据清洗:删除文本中的非法字符、空格、换行符;

1-2.删除问候语和疑问词,包括“你好”,“请问”;

1-3.采用textrank中的关键句抽取,对多个句子组成的问题文本做一个缩句操作,抽取的关键句数量为n,n=int(原句子数量*60%)。

进一步的,步骤2所述的基于依存句法构建依存句法关系树,具体实现如下:

2-1.采用hanlp库对预处理后获得的关键句进行依存句法分析得到该关键句对应的词列表,记为qi,其中,i=1,2,…,m,m为关键句中词个数;将词列表中的每个词进行属性标注:词、词序号、词性、父节点、与父节点的关系,将标注的词属性作为该词在树中的结点属性,并将结点属性存放在对应的数据结构中;

2-2.构建依存句法关系树:将词列表中的每个词作为一个节点,标注每个节点的父节点和子节点集合,以及每个节点的层数,所述的层数即每个节点到根节点的距离;

2-3.根据节点所在层,将节点赋予相对应的权重,具体权重计算如下:

其中c为依存句法树的总层数,ns为该节点所在层数。

进一步的,步骤3所述的设定特殊规则并检索关键词,具体实现如下:

3-1.设定关键词构成规则;

3-2.根据步骤3-1设定规则,深度优先搜索关键词;

3-3根据步骤3-1设定规则,广度优先搜索关键词组合。

进一步的,步骤3-1所述的设定关键词构成规则,具体实现如下:

3-1-1规则a:构成关键词的所有词节点的词性npos必须满足实义词性要求,即“动词v,名词n,形容词adj和学科词汇pro”;即

npos∈{n,v,adj,pro}(2)

3-1-2规则b:词与下一个词的连接合并,需参考词与词之间的关系;确定三个构成关键词的词关系nr分别是主谓关系,定中关系和动宾关系,即:

nr∈{主谓关系,定中关系,动宾关系}(3)

3-1-3规则c:设定冗余词库,若词节点nword在冗余词库wredundant内,则不能与其他节点合并关键词,即:

其中,冗余词库wredundant中的词满足规则a要求,但仍不具有实际意义。

进一步的,所述的深度优先搜索关键词,具体实现如下:

3-2-1.从根结点开始,如果词节点符合规则a和规则c,则深度搜索该词节点下的子节点,即如果节点α与他的子节点β的中文语法关系符合规则b,则查找β的子节点是否有关系满足规则b;若有,则继续查找子节点的子节;,若无,则返回当前已搜索到的节点链表;

3-2-2根据已经查到的节点链表,按中文语法规则合并来组成关键词,所述的中文语法规则包括如下:

规则一:对于定中关系来说:子节点在前,父节点在后,即:

key=n+nf(5)

其中,nf代表父节点的词,n代表子节点的词,nf与n构成定中关系;

规则二:对于主谓关系和动宾关系来说:父节点在后,子节点在前,即:

key=nf+n(6)

3-2-3多重关系组合

如果节点链表中存在定中关系,则将所有“定中关系”先进行优先合并,再将合并后的词与主语或者动词进行合并。

进一步的,根据广度优先搜索关键词组合,具体实现如下:

提取节点与父节点关系不是定中关系的节点,查询他的子节点是否有两个或两个以上与该节点有定中关系,若有,则按文章中出现的顺序依次合并。

进一步的,步骤4具体实现如下:

4-1.将提取出来的关键词进行关键词权重的计算:

4-1-1.提取组成关键词的节点的权重;

4-1-2.对相连的节点的权重进行相加,同层的节点权重进行相乘;

4-2.根据关键词权重对关键词集合中的所有关键词进行排序,得到最终结果。

本发明有益效果如下:

1)本发明在分词基础上,将相关联的词语进行了组合成新的关键词,对于某个特定领域或者特定问题来说,一些特定的修饰词与中心语也能组合在一起作为关键词进行检索,减少了自定义词库的词数,保证了模型的一个通用性,提升了问题定位的准确性。

2)采用关键词的优先级排序优化检索的效率,先去检索优先级高的关键词能够更快地匹配到问题所对应的答案,使得问答系统的交互性得到了一定的提升。

附图说明:

图1为关键词抽取方法流程图

图2为深度优先搜索流程图

图3为广度优先搜索流程图

具体实施方式:

下面结合附图和实施例对本发明作进一步说明。

如图1-3所示,基于依存句法树的中文问题的关键词抽取方法,具体实现步骤如下:

步骤1:对文本数据进行预处理:主要指对所得文本数据集进行清洗和结构化整理,以便后续用于模型的输入,数据预处理主要包含以下步骤:

1-1.数据清洗:删除文本中的非法字符、空格、换行符等。

1-2.删除问候语和疑问词,如“你好”,“请问”等。

1-3.采用textrank中的关键句抽取,对多个句子组成的问题文本做一个缩句操作,抽取的关键句数量为n,n=int(原句子数量*60%)。

步骤2:基于依存句法构建依存句法关系树

2-1.采用hanlp库对预处理后获得的关键句进行依存句法分析得到该关键句对应的词列表,记为qi(i=1,2,…,m),m为关键句中词个数。将词列表中的每个词进行属性标注:词、词序号、词性、父节点、与父节点的关系,将标注的词属性作为该词在树中的结点属性,并将结点属性存放在对应的数据结构中。

2-2.构建依存句法关系树:将词列表中的每个词作为一个节点,标注每个节点的父节点和子节点集合,以及每个节点的层数(即每个节点到根节点的距离)。

2-3.根据节点所在层,将节点赋予相对应的权重,具体权重计算如下:

其中c为依存句法树的总层数,ns为该节点所在层数。因为树的根节点是该句子的核心词汇,所以认为离根节点越近的词,他的权重就会越高。

步骤3:设定特殊规则并检索关键词

3-1设定关键词构成规则:

3-1-1规则a:构成关键词的所有词节点的词性npos必须满足实义词性要求,即“动词v,名词n,形容词adj和学科词汇pro”;即

npos∈{n,v,adj,pro}(2)

3-1-2规则b:词与下一个词的连接合并,需参考词与词之间的关系。对于词关系,剔除“附加关系,状中关系”等无意义词关系,确定三个构成关键词的词关系nr分别是主谓关系,定中关系和动宾关系,即:

nr∈{主谓关系,定中关系,动宾关系}(3)

3-1-3规则c:设定冗余词库,若词节点nword在冗余词库wredundant内,则不能与其他节点合并关键词,即:

其中,冗余词库wredundant中的词满足规则a要求,但仍不具有实际意义,如能愿动词和一些非实义词,如在一个问题中,像“告诉”、“感觉”、“是”这些词的词性符合规则a要求,但这些词并没有实际意义,因此该词与其他词的合并也没有意义,所以也要被去除。

综上认定,关键词的组合必须以三个规则为前提。

进一步的,在三个规则基础之上,设定了关键词搜索算法,更全面更快速地搜索和组合一个句子中可能的关键词。

关键词搜索具体算法实现如下:

3-2.根据步骤3-1规则,深度优先搜索关键词

3-2-1.从根结点开始,如果词节点符合规则a和规则c,则深度搜索该词节点下的子节点,即如果节点α与他的子节点β的中文语法关系符合规则b,则查找β的子节点是否有关系满足规则b;若有,则继续查找子节点的子节;,若无,则返回当前已搜索到的节点链表。以问题“浙江省物理竞赛三等奖有多少创新学分”为例,将该关键句拆分成如例图2的树,然后会先找到了“三等奖”这个词节点,该节点满足规则a和c,所以以该词节点为起点,深度搜索该词节点,在搜索过程中发现,竞赛的子节点“物理”与“竞赛”是定中关系,所以继续搜索到“物理”这个节点,最终返回搜索结果。深度搜索的路径和顺序已在例图上标出。

3-2-2根据已经查到的节点链表,按中文语法规则合并来组成关键词,所述的中文语法规则包括如下:

规则一:对于定中关系来说:子节点在前,父节点在后,即:

key=n+nf(5)

其中,nf代表父节点的词,n代表子节点的词,nf与n构成定中关系。以国家奖学金为例,该词会被拆分成“国家”,和“奖学金”。“国家”的父节点为“奖学金”,且“国家”与“奖学金”的关系为定中关系。因此根据该规则,将“国家”和“奖学金”合并成“国家奖学金”。

规则二:对于主谓关系和动宾关系来说:父节点在后,子节点在前,即:

key=nf+n(6)

如节点“选”和“课”,“课”的父节点为“选”,且“选”和“课”之间属于动宾关系,所以将“选”和“课”合并成“选课”。

3-2-3多重关系组合

如果节点链表中存在定中关系,则将所有“定中关系”先进行优先合并,再将合并后的词与主语或者动词进行合并。

在实际应用过程中,一个关键词可能由不同的语法关系组合而成,如“选必修课”在句子中原来被拆分成“选”,“必修”,“课”。其中,“选”和“必修”为动宾关系,而“必修”和“课”为定中关系。所以为了提取该关键词,在步骤3-2-1返回的深度节点链表上对中文语法的优先级进行了排序。

3-3根据步骤3-1规则,广度优先搜索关键词组合

进一步的,发现一些核心词会有并列的定中关系修饰该词,如“浙江省物理竞赛三等奖有多少创新学分?”这个问题,会被拆分成如例图3的树。其中,“浙江省”和“物理”都与竞赛有定中关系。针对这种情况,衍生出利用广度优先搜索关键词组合。提取节点与父节点关系不是定中关系的节点,查询他的子节点是否有两个或两个以上与该节点有定中关系,若有,则按文章中出现的顺序依次合并。

步骤4:根据关键词权重对关键词集合中的所有关键词进行优先级排序;

4-1.将提取出来的关键词进行关键词权重的计算:

4-1-1.提取组成关键词的节点的权重;

4-1-2.对相连的节点的权重进行相加,同层的节点权重进行相乘;

4-2.根据关键词权重对关键词集合中的所有关键词进行排序,得到最终结果。

实施例1:以图3为例子举例,搜索顺序如下:

1.按上述规则,首先搜索到“三等奖”该词节点;

2.按广度优先搜索方法搜索“三等奖”的子节点“浙江省”和“物理”

3.进一步的,采用步骤3-2的深度优先算法将“浙江省”和“物理”进行关键词搜索,确认是否有进一步的定中关系,最终发现“物理”有一个子节点“竞赛”。

4.最后按照文章出现顺序,合并成关键词“浙江省物理竞赛三等奖”。

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