基于标题分类的主题句提取方法
代码实现地址:点击打开链接
基于标题分类的主题句提取方法可描述为: 给定一篇新闻报道, 计算标题与新闻主题词集的相似度, 判断标题是否具有提示性。对于提示性标题,抽取新闻报道中与其最相似的句子作为主题句; 否则, 综合利用多种特征计算新闻报道中句子的重要性, 将得分最高的句子作为主题句。
算法过程:
1. 构造新闻的主题词集
(1) 对于爬取的有标签的或关键词的文章,将标签作为主题词集的一部分。
(2) 对文本做预处理,分句、分词并去除停用词,词性过滤、词频过滤。
(3) 使用TF-IDF计算文章中每个词的权重,该处主要是计算词的权重,也可以使用其他方法如word2vec,进行主题词提取。然后选取K个词作为主题词集。加上标签共选20个词作为每篇文章的主题词集。
2. 标题分类
将标题分为两类,一类是有提示性,一类是没有提示性。计算标题与主题词集的相似度。
(1) 对标题分词,然后计算标题与主题词集中词的重合的个数。将个数作为相似度度量。仅考虑实义词如:动词、名词、命名实体等。这里设置相似度的阀值为1,即重合的个数大于等于1时该标题具有提示性,重合的个数小于1时不具有提示性。
标题具有提示性标记为1,不具有提示性标记为0。
3. 主题句特征选取
(1) 句子的相对词频
先根据之前计算出的词的权重,计算出每个句子的所有词的权重的和A作为这个句子的相对词频,然后找出所有句子中具有最大相对词频的句子,对应的词的权重和为B。
Score(Si)=A/B
(2) 句子位置
对于一篇文章中的第i条句子Si.
这里l=3。需要按段分句。
(3) 句子长度
主题句倾向于取长句子。
这里C=16。
(4) 命名实体
对句子中出现的如who/whom/when/where这里命名实体词做统计,出现这种词越多的句子是主题句的可能性越大。若命名实体词出现的次数为A,句子的长度为B。则:
Score(Si)=A/B.
(5) 句子与标题的重合度
首先找出句子跟标题重合的词,计算重合的词的权重和为A,然后计算标题的每个词的权重和为B。
Score(Si)=A/B
把上面每一步计算出的结果作为句子的特征值。
4. 主题句提取
计算每个句子的总分,每个句子的总分是各个特征分量的线性组合。
ɑ表示标题是否具有提示性,若标题具有提示性则该值为1,否则该值为0。
Wk是(1)-(4)对应特征的权重。Scorek为特征计算值。
Wk的确定需要基于训练语料训练后得到最优组合。
5. 特征权重参数学习
使用GIS通过迭代算法进行特征权重的估计。
确定(1)-(5)的权重分别为term:0.1,loc:0.5,len:0.1,ne:0.1,ht:0.2。
参考:中文新闻关键事件的主题句识别 北京大学学报(自然科学版), 第47 卷, 第5 期