R科研作图学习小组

http://group.keyangou.com/RGraph
组长: 管理员:
  • 访问次数:22641
  • 小组等级:9
  • 话题:593
  • 回答:39
  • 签到:408
  • 小组排名:
  • R01-语言2-3: R读取mysql中CELL的abstract分词并生成词汇云

    木萱小主 发布于:2018.03.20
    来占个地方 
    
    #任务1
    library(RMySQL)
    #数据库连接删除函数,每个任务之前最好先清理所有的连接,调用此函数就可以
    killDbConnections <- function () {
      all_cons <- dbListConnections(MySQL())
      print(all_cons)
      for(con in all_cons)
        +  dbDisconnect(con)
      print(paste(length(all_cons), " connections killed."))
    }
    killDbConnections()
    #创建数据库连接  
    con <- dbConnect(MySQL(),host="localhost",dbname="rdb2",user="root",password="")
    dbSendQuery(con,'SET NAMES utf8')
    rs <- dbSendQuery(con, "SELECT * FROM article WHERE isdone=1")
    #下面开始新的代码
    words = data.frame(word=c(), freq = c())
    while (!dbHasCompleted(rs)) {
      chunk <- dbFetch(rs, 10)
      #chunk[,4]为title, #chunk[,5]为abstract
      count=nrow(chunk)
      cnt=1
      while(cnt<=count){
        str = gsub("[[:punct:]]", "", tolower(chunk[cnt,5])) 
        temp = as.vector(unlist(strsplit(str, split = " ")))
        temp_len = length(temp)
        cnt2 = 1
        while(cnt2 <= temp_len){
    if(temp[cnt2] %in% words$word){
        words[words$word == temp[cnt2],]$freq = words[words$word == temp[cnt2],]$freq+1
          }
    else{
            words = rbind(words,data.frame(word=c(temp[cnt2]),freq=c(1)))
          }
          cnt2 = cnt2+1
        }
        cnt = cnt +1
      }
    }
    head(words)
     
     
    #任务2
    library(wordcloud2)
    wordcloud2(words[0:1000,]) 
     
    #任务3
    #按照freq的降序排列
    new_words = words[order(words$freq,decreasing=T),]
    #去掉一些定冠词等 of and the
    del_word = c('not','two','other','during','of','it','may','the','and','in','to','a','that','is','for','by','with','we','are','an','this','these','as','from','which','at','their','have','or','our','its','but','how','be','as','here','on','can','into','data','between','both','also')
    words2 =words[which(!(words$word %in% del_word)),]
    wordcloud2(words2)


     

     

     
  • 微信截图_20180320164109.jpg(大小:5.3 KB;下载:0)
  • canvas-定冠词.png(大小:64.1 KB;下载:0)
  • canvas.png(大小:570.4 KB;下载:0)
  • 0条评论 147浏览 邀请回答
    沙发空缺中~

    小组告示

    科研狗 2012-2016 京ICP备16006621 科研好助手,专业的科研社交共享平台