R中如何利用余弦算法实现文章的自动摘要
来源:互联网 发布:三月软件工作室面试 编辑:程序博客网 时间:2024/06/05 16:56
自动摘要
自动摘要,就是利用计算机自动地从原始文献中提取摘要。
例如百度经验中的经验摘要,简短的描述了该经验的主要解决问题。
自动摘要的算法原理
余弦相似度(Cosine Similarity)
算法步骤:
- 获取到需要摘要的文章
- 对该文章进行词频统计
- 对该文章进行分句 根据中文的标点符号,一般我们采用。,?进行分句
- 计算分句与文章之间的余弦相似度
代码实现:
library(tm)library(tmcn)library(Rwordseg)docs <- Corpus( DirSource( c( "SogouC.mini/SampleNamed/C000007", "SogouC.mini/SampleNamed/C000008", "SogouC.mini/SampleNamed/C000010", "SogouC.mini/SampleNamed/C000013", "SogouC.mini/SampleNamed/C000014", "SogouC.mini/SampleNamed/C000016", "SogouC.mini/SampleNamed/C000020", "SogouC.mini/SampleNamed/C000022", "SogouC.mini/SampleNamed/C000023", "SogouC.mini/SampleNamed/C000024" ) ), readerControl = list( language='UTF-8' ))#使用矩阵的方式计算cosineDist <- function(x){ return(x%*%t(x)/(sqrt(rowSums(x^2) %*% t(rowSums(x^2))))) }#字符串分隔函数strsplits <- function(x, splits, ...) { for (split in splits) { x <- unlist(strsplit(x, split, ...)) } return(x[nchar(x)>3])}mainSegs <- data.frame( name=c(NA), seg1=c(NA), seg2=c(NA), seg3=c(NA));for(i in 1:length(docs)) { #分句 segs <- unlist( strsplits( docs[[i]]$content, splits=c('。', '?') ) ); doc <- Corpus(VectorSource(c(segs, paste(docs[[i]]$content, collapse = "。")))) doc <- tm_map( doc, content_transformer(segmentCN), returnType="tm" ) #移除空白 doc <- tm_map( doc, stripWhitespace ) #移除标点 doc <- tm_map( doc, removePunctuation ) doc <- tm_map( doc, removeNumbers ) tdm <- DocumentTermMatrix( doc, control = list( wordLengths= c(1, 4), stopwords = stopwordsCN() ) ) TF <- as.matrix(tdm) cosSimilar <- cosineDist(TF) resultIndex <- apply(cosSimilar, 2, function(col) { return(order(col, decreasing=TRUE)[2:4]); }) mainSegs[i, 1] <- docs[[i]]$meta$id; mainSegs[i, 2:4] <- segs[resultIndex[, length(segs)+1]]}
阅读全文
0 0
- R中如何利用余弦算法实现文章的自动摘要
- R中如何利用余弦算法实现相似文章的推荐
- TextRank算法自动摘要的Java实现
- R语言自动提取新闻摘要的简单实现
- 余弦定理实现新闻自动分类算法
- 余弦定理实现新闻自动分类算法
- 如何准备文章的摘要
- php利用余弦相似度计算文章的相似度
- TF-IDF与余弦相似性的应用(三):自动摘要
- TF-IDF与余弦相似性的应用(三):自动摘要
- TF-IDF与余弦相似性的应用(三):自动摘要
- TF-IDF与余弦相似性的应用(三):自动摘要
- TF-IDF与余弦相似性的应用(三):自动摘要(系列三篇)
- TF-IDF与余弦相似性的应用(三):自动摘要
- TF-IDF与余弦相似性的应用(三):自动摘要
- TF-IDF与余弦相似性的应用(三):自动摘要
- TF-IDF与余弦相似性的应用(三):自动摘要(转)
- TF-IDF与余弦相似性的应用(三):自动摘要
- bzoj 1070zkw费用流
- 排序算法之快速排序
- HTML5移动端手机网站开发流程
- 洛谷 P1815 蠕虫游戏 _NOI导刊2011提高(02)
- 网络模拟器WANem使用配置图文教程
- R中如何利用余弦算法实现文章的自动摘要
- CCAI2017 | 王坚博士现场致辞:人工智能是推动科技发展的动力
- 本例方法利用yeoman快速搭建React+webpack+es6脚手架由实践总结 一、安装最新的node.js 原博文是这样写说的 npm install -g n //首先安装n模块 n s
- ubuntu14.04 配置并测试 git
- Python入门基础
- Gradle学习笔记 --- Unindexed remote maven repositories found. Disable...
- 理解快速排序
- 1010. Radix (25)
- 【TFS安装】源代码管理工具TFS2013 UPDATE3 安装与使用