厦门大学统计系的访谈

六月的最后一周,在厦门大学统计系做了一份小学期课程的分享。午餐期间,胡帆同学整理并提问了一些问题。感谢 WiseRClub 的文字整理。

以下为谈话内容

胡帆:

阅读全文

R的高性能 http 服务 fiery

前文说到使用 opencpu 来搭建 http 服务,opencpu 可以很快速的通过构建 R 包的方式来搭建 http 服务,
很快捷,而且支持各种响应机制。但我们在搭建线上服务时,经常有需求将请求响应的时间控制在100ms以内,opencpu的框架就存在问题了。
这里再介绍R的另外一个包:fiery,部署更加方便且响应优势更加明显(一般30ms以内)。

阅读全文

利用R和opencpu搭建高可用的HTTP服务

使用R提供一个高可用的服务一直对R来说都是弱点,比如JRI(Java)或Rserve这些都不是太友好。
OpenCPU的出现彻底解决了这个问题,援引OpenCPU介绍

    阅读全文

    利用 JDBC 驱动连接 R 和 Hive

    一次更新

    几年前写过一篇简单的博客来讲如何利用 RHive 协同操作 Hive 和 R。这个包貌似很久未做维护,不是太好用,其实 RHive 包底层通过 JDBC 调用数据,所以通过 RJDBC 其实是更简单的方式。废话少说,直接贴代码:

    阅读全文

    使用 R 原生函数来做文本挖掘

    最近有几位同学问到我如何利用tm包做文本挖掘,比较抱歉的是时间不太充足,不能完整更新文档。在这里只好给大家一些 tips,来利用R的原生函数来完成文本挖掘的核心步骤。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    setwd('C:/Users/Administrator/Downloads')
    options(width = 150)
    library(data.table)
    x <- fread('comment.txt', sep = '\t', header = FALSE)
    x$V3 <- iconv(x$V3, 'UTF-8', 'GBK') # 第三类为文本内容,字符集转化
    x <- x[which(nchar(x$V3) > 3),]
    n <- 10000 # 设置抽样数量,保证计算时长
    x <- x[sample(1:nrow(x),n),]

    library(jiebaR)
    library(Matrix)

    JR = worker(user = 'D:/source/RecModels/prototype/TagGen/userdict.txt')
    seg_raw <- sapply(x$V3, segment, JR) # 执行分词

    id <- unique(unlist(seg_raw)) # 生成Term
    id <- id[nchar(id) >=2 & nchar(id) <= 5] # 将Term太长和太短的去掉,比如“强”
    col_id <- as.vector(unlist(sapply(seg_raw, match, id)))
    NA_index <- !is.na(col_id)
    col_id <- col_id[NA_index] # 去除列的空值位置号
    row_num <- sapply(seg_raw, length)
    row_id <- rep(1:length(seg_raw), times = row_num)
    row_id <- row_id[NA_index] # 去除行的空值位置号
    ## 生成DTMatirx
    m <- sparseMatrix(i = row_id, j = col_id)

    阅读全文