前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R文本挖掘-文章关键词提取

R文本挖掘-文章关键词提取

作者头像
Erin
发布2018-01-09 11:02:25
1.8K0
发布2018-01-09 11:02:25
举报
文章被收录于专栏:大数据风控大数据风控

关键词提取(keywords)

  • 词频(Term Frequency)
  • 逆文档频率(Inverse Document Frequency) IDF就是每个词的权重,它的大小与一个词的常见程度成反比。
  • TF-IDF(Term Frequency-Inverse Document Frequency) 权衡某个分词是否关键词的指标,该值越大,是关键词的可能性就越大。

如何理解呢,举个例子: 有一篇文章,讲述的是马尔科夫模型在中文分词中的应用,假设“马尔科夫模型” 和“中文分词”这两个分词的词频一样,也就是说两个词的TF值一样,那么, 哪个更适合做这篇文章的关键词呢? 显然是“马尔科夫模型”!

用统计学语言表达,就是在词频的基础上,对每个词分配一个权重: 最常用的词(如“的”、“是”、“在”等)给予最小的权重; 最常见的词(如“中文分词”)给予较小的权重; 较少见的词(如“马尔科夫模型”)给予较大的权重。

TF计算公式 TF=该次在文档中出现的次数 IDF=log(文档总数/包含改词的文档数+1)

TF-IDF=TF*IDF

关键词提取的代码实现:

代码语言:javascript
复制
library(tm)
library(tmcn)
library(Rwordseg)

docs <- Corpus(
  DirSource(
    c(
      "SogouC.mini/Sample/C000007", "SogouC.mini/Sample/C000008",
      "SogouC.mini/Sample/C000010", "SogouC.mini/Sample/C000013",
      "SogouC.mini/Sample/C000014", "SogouC.mini/Sample/C000016",
      "SogouC.mini/Sample/C000020", "SogouC.mini/Sample/C000022",
      "SogouC.mini/Sample/C000023", "SogouC.mini/Sample/C000024"
    )
  ),
  readerControl = list(
    language='UTF-8'
  )
)
#移除空白
docs <- tm_map(docs, stripWhitespace)
#移除标点
docs <- tm_map(docs, removePunctuation)

docs <- tm_map(docs, content_transformer(segmentCN), returnType="tm")

docs <- tm_map(docs, content_transformer(function(x) iconv(x, from="UTF8", to="GB2312", sub="byte")))

tdm <- TermDocumentMatrix(
  docs, 
  control = list(
    wordLengths= c(1, 4),
    stopwords = stopwordsCN()
  )
)

TF <- as.matrix(tdm)

IDF <- apply(TF, 1, function(row) {
  return (log2(length(docs)/(sum(ifelse(row>0, 1, 0))+1)))
});

TF.IDF = TF*IDF

keywords <- apply(TF.IDF, 2, function(col) {
  keyword <- col[order(col, decreasing=TRUE)][1:5];
  return(names(keyword))
})
#获取每篇文章关键字所在的位置,
#这样子就可以获取对应的TF、IDF以及TF.IDF的值了
keywordIndexes <- apply(TF.IDF, 2, function(col) {
  index <- order(col, decreasing=TRUE)[1:5];
  return(index)
})

TF[keywordIndexes[, 1], 1]
IDF[keywordIndexes[, 1]]
TF.IDF[keywordIndexes[, 1], 1]
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年07月24日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 关键词提取(keywords)
  • TF-IDF=TF*IDF
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档