搜索
您的当前位置:首页正文

HanLP关键词提取。总结

来源:哗拓教育
HanLP关键词提取。总结

原理:

依托HanLP的核⼼词典和⾃定义词典根据TF*IDF算法计算

每个命名实体和名词短语的得分score,按score倒排返回前⾯若⼲个关键词

解释: TF 称为词频,表⽰词在⼀篇⽂档中出现的频率=词在该⽂档中出现的次数 / 该⽂档中单词的总数---TF越⼤,表⽰该词对⽂档越重要DF称为⽂档频率,⼀个词在多少篇⽂章中出现过

本系统⽤的公式是:⽐重 k * 关键词在本⽂出现的次数 t / 词典中的词频 fIDF 称为逆⽂档频率=Ln(总⽂档数/出现该次的⽂档数)⾸先解析出标题和正⽂

⽤HanLP的分词器⼀句词典,初始化内容,⽣成⼀个数组 wordList,⾥⾯是分好的词,有各⾃的词性,和各⾃词在内容中所在的位置 index把标题⾥的词单独分⼀下,降低词频 f

关键词:先分短语:

遍历wordList,取每个词的词性和下词词性,可以组合起来的,拼接为⼀个短语,降低词频f,放到候选关键词数组 parsePhrase ⾥⾯机构名不做组合

形容词,名形词,动名词,习⽤语,简称略语,后跟助词,名词,动词,动名词 且词的长度都⼤于1 则组合为短语动词后跟助词,名词,动名词,则组合短语名词后跟助词,名词,动名词,动词,则组合短语数词后跟量词,名词,专有名词,或者形容词则组合短语其余都不进⾏组合

组合短语长度⼤于8或者构成的某个单词在词库词频超过300,则此短语词频为5其余的短语默认词频为3再分单词:

遍历wordlist,取每个单独的词,根据词性,降低或者增加词频。同时判断是否已存在于parsePhrase的某个短语⾥,避免重复放⼊parsePhrase。

名词,动词,形容词,长度⼤于2的动名词,习⽤语,⼈名,简称略语,从核⼼词典和扩展词典取,取不到就默认词频为3.或4排除单字符 的关键字,去除包含有第+数词的,词频增⼤带**讯,**摄等不进⾏添加

所以想添加⾃定义词典的关键词,只需要设定为单词为名词 n,动词 v,形容词 a,长度⼤于2的动名词 vn,习⽤语 l,⼈名 nr,简称略语 j在⾃定义词.txt⾥ 词频 < 3 即可。最后算分:

权重k,根据词性设定的,初始值是1,根据不同的词性 扩⼤或者缩⼩在本⽂出现次数t,遍历wordList,有重复则加1即可

根据公式:⽐重 k * 关键词在本⽂出现的次数 t / 词典中的词频 f,算出parsePhrase⾥各个候选词的分值,排序取前N个关键词,就是要提取的

摘要:

思想:句⼦短,代表性强(特殊性⾼、分⾼)复⽤上⾯的 parsePhrase 。

根据段落符号 \\n 和⼀些标点符号 识别出标题,⾸段,尾段,中间的正⽂,以及是否是带段落编号的⽂章。

根据标点符号,把⽂章分词⼀个个的句⼦,包含每个句⼦的⾸尾位置(在⽂章中的前后顺序),所在段落位置(是否⾸段,尾段等)。在这期间处理句⼦⾥的特殊字,词,

证明是⾄少含有2个段落编号的 正⽂⽂本,此时,需要去掉编号。把⾸段 的分值设置很⼤,加上标题每个句⼦都分词,从parsePhrase 找出分值想加。得到每个句⼦的值。

对句⼦进⾏分词,找出每个词在候选关键词 数组⾥的分数,累加同时对于同⼀句中重复出现的nr 等超过3个,进⾏降权对于句⼦长度⼤于50的 进⾏降权

⾸段 FIRST 如果⾸句 开始位置<10(为了给去掉的记者,某报讯等等留位置)包含很多标题中词汇,就加⼊摘要,其实已经在候选句⼦⾥,只不过吧分数加多⼀些,排名靠前点当判定为带编号⽂章,增加⾸尾段落的分值权重

取⼀些特殊词作为标识,截取后⾯的特殊符号以后的句⼦内容作为句⼦。即去除;[记者:***] 等句⼦内容等等逻辑处理完后,得到⼀个句⼦数组。先按分值⼤⼩排序

提取思想:找分⾼的⼏个句⼦,其总字数加起来刚刚⼤于要提取的摘要字数 lengthlength 和200有个对⽐当⽂章字数 size <200:当length > size 提取全⽂

当length < size 提取length字数的句⼦当size >200

当length > 200 提取200字数的句⼦当length < 200 提取length字数句⼦

提取后的句⼦,按照在⽂中出现的先后顺序,排序。

记录⼀下。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top