当前位置: 首页 > article >正文

文本中句子的重要性排名——TextRank算法

假设我们有一段简短的文本:

机器学习是人工智能的一个重要分支。深度学习是机器学习的一种方法。人工智能在各个领域都有广泛的应用深度学习帮助人工智能提高了应用的准确性

请告诉我这段文字中最重要的一句话.

利用TextRank算法可以对文本中句子的重要性进行排序,得到最重要的句子,这个句子往往也是整段话的中心思想。

TextRank 算法步骤

1. 预处理文本:将文章分成句子,并对句子进行基本的文本处理

对于以上例子,我们将这段文字分成句子:

  句子1:机器学习是人工智能的一个重要分支。
  句子2:深度学习是机器学习的一种方法。
  句子3:人工智能在各个领域都有广泛的应用。
  句子4:深度学习帮助人工智能提高了应用的准确性。


再对句子进行分词:

  • 句子1 分词并去停用词后:['机器学习', '人工智能', '重要', '分支']

  • 句子2 分词并去停用词后:['深度学习', '机器学习', '方法']

  • 句子3 分词并去停用词后:['人工智能', '领域', '广泛', '应用']

  • 句子4 分词并去停用词后:['深度学习', '人工智能', '提高', '应用', '准确性']

2. 构建句子相似度矩阵:通过比较每对句子之间的相似性,构建句子间的相似度矩阵

 为了简化,我们假设使用词汇重叠来计算句子相似度:

1482375760a2aff24803752eb2bcd6d7.png

句子1 与其他句子的词语重叠:
  • 句子1 与 句子2:重叠词汇:['机器学习']

    • 相似度 ≈0.286

  • 句子1 与 句子3:重叠词汇:['人工智能']

    • 相似度 =0.25

  • 句子1 与 句子4:重叠词汇:['人工智能']

    • 相似度 ≈0.222

句子2 与其他句子的词语重叠:
  • 句子2 与 句子3:重叠词汇:无

    • 相似度 = 000(无重叠词汇)

  • 句子2 与 句子4:重叠词汇:['深度学习']

    • 相似度 =0.25

句子3 与 句子4 的词语重叠:

  • 句子3 与 句子4:重叠词汇:['人工智能', '应用']

    • 相似度 ≈0.444

  句子相似度矩阵:

83309fde7e59ea877cbcc26245efae00.png

3. 构建句子图:将句子视为图的节点,句子之间的相似度作为边的权重。

041815f1a703a45eacc6b36ec4275bc8.png

4. PageRank算法公式:

4d982226f2d9dbfedbd56b3a40c3cc20.png

5. 初始化每个句子的PageRank值初始值:     

   PR(句子1)=PR(句子2)=PR(句子3)=PR(句子4)=1.0  

6. 计算更新每个句子的PageRank值。

   以”句子1”为例: 

        In(句子1)={句子2,句子3,句子4} 

     
        L(句子2)=L(句子3)=2

        L(句子4)=3

f57c1013e711d04302c5aa9bdff53d26.png

20b7f7ccf548bbabbbc5732ecaa6830e.jpeg

   同样地:

e3eb1d35831676c4562ae6507f4c9b2d.png

7. 根据每个句子新的PageRank值进行下一次迭代。

这样 经过多轮迭代,得到各个句子的textRank得分

根据得分,我们对句子进行排序。最终得到:句子4是最重要的句子

深度学习帮助人工智能提高了应用的准确性。”这句话概括了文章的核心信息。

8. 其他相似矩阵计算方式

实际再使用TextRank算法时,还可以根据其他方式来测量句子之间的相似度,比如余弦相似度、词嵌入相似度、jaccard相似度等

93c042c5fc1851c167648711f0f155b5.jpeg


http://www.kler.cn/news/364697.html

相关文章:

  • Page Cache(页缓存
  • 数据结构:堆的应用
  • node.js下载安装以及环境配置超详细教程【Windows版本】
  • 程序员的最终出路在哪
  • ASP.NET MVC-font awesome-localhost可用IIS不可用
  • Spring Boot:植物健康的智能守护者
  • Linux 6种查看日志方法
  • 物联网智能项目综述
  • 软件测试学习笔记丨Selenium多frame切换
  • 用PHP写一个EACO(drc20)写一个和狗狗币,比特币,avax, bnb,eth,sol,usdt,等全球前30大数字货币的兑换去中心化小程序。
  • C++常用函数定义解释
  • JVM的基础
  • 1. 人工智能药物发现(AIDD)简介
  • python爬虫——Selenium的基本使用
  • k8s和ipvs、lvs、ipvsadm,iptables,底层梳理,具体是如何实现的
  • 【C】用c写贪吃蛇
  • 现代Web应用开发:SpringBoot房屋租赁管理系统
  • 保护敏感信息的6种数据备份最佳实践
  • Git切换账号提交代码
  • Newstar_week1_week2_wp
  • C语言之环形缓冲区概述及实现
  • 鸿蒙原生开发问题汇总 Api12
  • 医疗成像中的点云处理:PCL库算法及其应用详解
  • 请写出js中的两种定时器,区别是什么?怎么清除定时器?
  • 外向交货单行项目修改自定义字段 BAPI_OUTB_DELIVERY_CHANGE 增强
  • ab命令深入解析:ApacheBench性能测试工具