一种基于位置加权的关键词抽取方法与流程

文档序号:15163967发布日期:2018-08-14 17:13阅读:117来源:国知局
本发明属于计算机领域,涉及一种关键词的抽取方法,特别涉及一种基于位置加权的关键词抽取方法。
背景技术
:通过苏祥坤等人《基于词序统计组合的中文关键词提取技术》的研究发现,一般中文文章的行文结构的特点:首段是全文的初步概况,承载全文的主旨;末段通常是对全文的概况和总结。对于文档中的单个段落而言,文档首句常是文章的引入话题或是议论的主题,起到引出话题的铺垫作用。末句一般是该段内容的总结。对于中文句子结构而言,句子结构通常是主谓宾的结构,主语和宾语通常是名词、名词性短语、动词。通过杨凯艳《基于改进的tf-idf关键词自动提取算法研究》的研究发现,大多数关键词的词性主要包含名词、名词性短语、动词、形容词、副词。综上所述:文章的首段、末段、首句、末句、首词、末词涵盖文章关键词的概率比较高。技术实现要素:本发明提供了一种基于位置加权的关键词抽取方法,包括:预处理:对每个文档进行分段并依次对每个段落编号,然后对每个段落进行分句并依次对每个句子编号,记录各个句子的段落编号和句子编号;分词:对所述每个句子进行分词;停用词过滤:对分词后的虚词、无意义的字序列片段或者只能反映句子语法结构的词语和标点符号进行过滤,然后对每个句子中过滤之后的词语依次进行编号并记录各个词语的词语编号;位置统计:统计每个词语的段落序号、句子序号、词语序号;所述段落序号、句子序号、词语序号分别为段落编号、句子编号、词语编号;权重计算:根据权重公式计算每个词语的权重;候选关键词合并:对于相同的词语出现在文中的不同位置的权重进行合并,然后按照权重从大到小排序,输出预设数量的关键词。在本发明的一个实施例中,所述权重公式为:其中w为每个词语的权重,x1、x2、x3分别为该词语的段落序号、句子序号、词语序号,u1、u2、u3分别为该词语所在文档段落的中位数、该词语所在段落的句子总数的中位数、该词语所在句子总数的中位数。进一步地,所述σ1、σ2、σ3满足:σ1∶σ2∶σ3=1∶(1-16)∶(1-100)。优选的,所述σ1、σ2、σ3满足:σ1∶σ2∶σ3=1∶3∶9。在本发明的一个实施例中,所述σ1、σ2、σ3分别为该词语所在文档的段落总数、句子总数、词语总数。在本发明的一个实施例中,所述σ1、σ2、σ3由经过语料训练的机器学习算法模型来确定。进一步的,所述机器学习算法模型为神经网络模型。在本发明的一个实施例中,所述预设关键词的个数大于等于1。进一步的,所述预设关键词的个数可自定义。本发明的有益效果:1.发明利用中文的行文的结构特点和绝对值函数对词语的位置进行权重计算,抽取规则简单高效,准确率高。2.利用机器学习算法,本发明可处理大量的文档的关键词自动抽取,适应性强。附图说明图1为本发明的权重公式的图像;图2为本发明的基本流程图;图3为本发明的实施例1中第三段中第一个句子中的所有词语权重表;图4为本发明实施例3的神经网络模型示意图。具体实施方式为了更好的理解本发明所提出的技术方案,下面结合附图1-4和具体的实施例对本发明作进一步阐述。如图1所示,一种基于位置加权的关键词抽取方法,包括:预处理:对每个文档进行分段并依次对每个段落编号,然后对每个段落进行分句并依次对每个句子编号,记录各个句子的段落编号和句子编号;分词:对所述每个句子进行分词;停用词过滤:对分词后的虚词、无意义的字序列片段或者只能反映句子语法结构的词语和标点符号进行过滤,然后对每个句子中过滤之后的词语依次进行编号并记录各个词语的词语编号;位置统计:统计每个词语的段落序号、句子序号、词语序号;所述段落序号、句子序号、词语序号分别为段落编号、句子编号、词语编号;权重计算:根据权重公式计算每个词语的权重;候选关键词合并:对于相同的词语出现在文中的不同位置的权重进行合并,按照权重从大到小排序,输出预设数量的关键词。具体实现步骤:分段:文档数据集作为输入,对每一篇文档从开头进行遍历,遍历到前有空格后有换行符时,将文档在空格和换行符处切分,进行分段。将分完段的段落用阿拉伯数字按顺序从1进行段落序号标注,依次存储,统计全文段落总数。分句:按分段后的顺序遍历段落。遍历到标点符号是句号、问号、感叹号、省略号时,将段落在标点处切开,进行分句。将分好的句子用阿拉伯数字按顺序从1进行句子序号标注,依次存储,统计全段句子总数。分词:中文是以字为单位,但单字通常难以表达清楚的意义,一般需要两个或两个以上的字构成一个词语才能描述一个具体意思。中文文本中的分隔常是基于语句的,没有具体的词边界,因此需要额外地对词汇进行分隔处理。中文分词是指将中文的汉子序列切分成有意义的词,也被称为切词。中文分词结果的好坏直接影响关键词候选集的选择。采用中文分词精度较高的nlpir汉语分词系统对分句后的句子进行分词。停用词过滤:经过分词处理后,单个文档被转化为一个词条集合,集合中包含了候选关键词、停用词、标点符号。停用词是指与文本主题不相关的功能词,主要包括虚词、无意义的字序列片段或者只能反映句子语法结构的词语。停用词不仅不能反映文本的主题,还会干扰关键词的抽取,因而有必要将其过滤。停用词过滤和标点符号过滤可以减小词条集合的规模,有利于提高关键词抽取的精度以及速度。统计词语位置信息:将经过停用词过滤后的词语,用阿拉伯数字按顺序从1进行词语序号标注,依次存储,统计全句词语总数。权重计算:针对中文一般行文结构和句子结构的特点,本发明提出的一种基于位置加权的关键词抽取算法。该公式的函数图像可参考图1。一般地,中文文档是由段落构成,段落是由句子构成,句子是由词语构成。本发明提出的基于位置权重的关键词抽取方法,文档的段落、句子、词语都有相应的权重。一篇中文文档中每个候选关键词的位置都是由它所在全文的段落位置,所在该段落的句子位置,所在该句子的词语位置,这三个层次的位置共同决定,故采用多层次的位置加权方法,候选关键词的权重主要是由该候选关键词所在段落位置权重、句子位置权重、词语位置权重,这三个层次位置权重相加所得。即:公式(2)中w为每个词语的权重,x1、x2、x3分别表示段落序号、句子序号、词语序号。u1、u2、u3分别表示段落的中位数、句子的中位数、词语的中位数。常数因子σ与权重成反比,σ越大,权重越小。在一篇文档中词语的总数一般大于句子的总数,句子的总数一般大于段落的总数,为了调节段落、句子、词语的权重,σ的取值范围是:σ1≤σ2≤σ3。候选关键词合并:对于相同的词语出现在文中的不同位置的权重进行合并,然后按照权重从大到小排序,输出预设数量的关键词。实施例1以一篇慕课网课程中的慕课视频语音转文本的文档为例,将其作为本发明的方法的测试文档,文档内容如下:人工标注4个关键词:python,安装,第三方,模块;大家好,今天我们来讲解如何安装python的第三方模块。我们知道python内置了多有用的模块,但是对于python没有提供的内置的功能,我们可以通过安装第三方模块来完成,python提供了两种管理第三方模块的工具。一种是easy_install,第二种是pip,pip是python推荐的官方管理工具,并且已经内置到python到2.7.9版本当中,他们我们就来演示如何使用python来安装第三方的模块。首先,我们安装最新版的python2.7.9,它自带了pip管理模块使用默认的安装位置,然后我们确保选中的p然后把python.exe添加到系统pass当中。然后我们就可以耐心的等待开场完成安装好点击完成安装,然后我们就可以打开命令提示符,我们在命令提示符输入pipinstalweb.py。这样我们就可以安装一个名字叫web.py的第三方模块,开展完成以后,我们输入python,然后我们就可以导入web这个第三方模块了。如果我们要查找第三方模块的名字,我们可以通过pypi.python.org这个网站,然后输入相关的关键字来搜索对应的软件包的名字,比如搜索web.py,我们就可以看到搜索结果。这样我们就可以找到我们想要安装的第三方模块的名字,然后使用pipinstall来安装它就可以了。实施步骤:将上述测试文档作为输入,从文章开头进行遍历,遍历到前有空格后有换行符时,将文档在空格和换行符处切分,进行分段,将分好的段落用阿拉伯数字按顺序从1进行段落序号标注,依次存储,统计全文段落总数。按分段后的顺序遍历段落。遍历到标点符号是句号、问号、感叹号、省略号时,将段落在标点处切开,进行分句。将分好的句子用阿拉伯数字按顺序从1进行句子序号标注,依次存储,统计全段总句子数。采用中文分词精度较高的nlpir汉语分词系统对分好的句子进行分词,停用词过滤,然后对每个词语用阿拉伯数字按顺序从1进行词语序号标注,依次存储,统计全句词语总数。权重计算:其中x1表示段落序号,x2表示句子序号,x3表示词语序号,u1是全文中段落的中位数,u2是段落中句子的中位数,u3是句子中词语的中位数。常数因子σ按比例分别设为σ1∶σ2∶σ3=1∶3∶9。图3为文档第三段中第一个句子中的所有词语权重表,按照此种方法计算出全文所有段落中词语的权重,然后对全文的候选关键词进行合并,即对于相同的词语出现在文中的不同位置的权重进行合并。如词语“模块”在文中一共出现了10次如下表(表1)所示,所以它在全文中的最终权重是:1.770+1.722+1.612+2.277+2.552+0.496+0.607+1.497+2.222+1.889=16.643按照此种合并的方法对全文中所有词语进行合并,权重从大到小进行排序。测试文档的前20个词语如下表(表2)所示:序号候选关键词最终权重序号候选关键词最终权重1模块16.64311工具5.0562安装14.88912输入4.2783第三方13.94413提供3.8894python1114提示符3.6675pip10.11115命令3.4446搜索7.44416easy_instal13.3897名字7.38917看到3.2228web.py6.38918当中3.1679管理5.519第二3.16710使用5.520查找3.111由表2可知,测试文档抽取前4个关键词依次是:模块,安装,第三方,python。实施例2按照实施例1中的方法对测试文档进行预处理、分词、停用词过滤、位置统计、权重计算、候选关键词合并等方法如下:根据统计全文一共有3个段落,8个句子,165个词语,所以常数因子σ设置为σ1∶σ2∶σ3=3∶8∶165,该文档第三段中第一个句子的所有词语权重如下表(表3)所示:按照此种方法计算出全文所有段落中的词语的权重,然后对全文的候选关键词进行合并,即对于相同的词语出现在文中的不同位置的权重值进行合并。段落序号句子序号词语序号词语存储段落权重句子权重词语权重总权重119模块0.3330.1250.0240.482126模块0.33300.0390.3721218模块0.33300.0330.3661224模块0.33300.070.4031323模块0.3330.1250.0670.525218模块0.3330.1250.0090.467239模块0.3330.1250.0150.4732322模块0.3330.1250.0640.522315模块0.3330.0630.0580.453328模块0.3330.06300.396词语“模块”在文中一共出现了10次如上表(表4)所示,所以词语“模块”的最终权重是:0.482+0.372+0.366+0.403+0.525+0.467+0.473+0.522+0.453+0.396=4.459按照上述方法计算出全文所有段落的词语的权重,然后对全文的所有候选关键词进行合并,即对于相同的词语出现在文中的不同位置的权重进行合并。得到全文所有词语的最终权重,按权重由大到小排序,测试文档的前20个词语如下表(表5)所示:序号候选关键词最终权重序号候选关键词最终权重1模块4.45911web.py0.7882安装2.84712提供0.7703第三方2.63513输入0.6724python2.31414easy_instal10.5705pip1.76215当中0.5586名字1.50616第二0.5587搜索1.40317完成0.5528使用1.12518演示0.5349管理1.07119推荐0.51010工具0.94020看到0.508由表5可知,抽取测试文档的前4个关键词依次是:模块,安装,第三方,python结果比较:分别用tf-idf算法、textrank算法对测试文档进行关键词抽取,抽取的结果参照下表:实施例3:本发明中的候选关键词的权重都是由段落、句子、词语三个层次的位置权重组成,所以σ在段落、句子、词语中按照1∶3∶9的比例计算,但不同的文档篇幅和结构略有不同,为了关键词抽取的准确率,σ1∶σ2∶σ3=1∶(1-16)∶(1-100)。此外,每篇文章的关键词可根据用户需求或文档的主题、类型进行预设,例如测试文档中设置抽取与python相关的术语,则关键词的输出python,pip,web.py,easy_install。实施例2中段落中的σ1,句子中的σ2,词语中的σ3,这三个常数因子按照全文中的段落总数,句子总数,词语总数设置σ1∶σ2∶σ3,当数据集达到数百万条的时候,可以利用机器学习算法,如word2vec,svm、朴素贝叶斯算法、深度神经网络等进行设置。深度神经网络模型以开放的搜狗实验室或中科大的、自然语言处理与信息检索共享平台等语料库和人工标注的关键词作为训练数据集,按照公式(2)中,(如图4)确定最佳的σ1∶σ2∶σ3以适应不同的文档的输入。以上仅为本发明的具体实施例,并不以此限定本发明的保护范围;在不违反本发明构思的基础上所作的任何替换与改进,均属本发明的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1