3.0.1 对文本分词
分词器 = worker()segment("这是一段测试文本!", 分词器)#> [1] "这是" "一段" "测试" "文本"
3.0.2 分行输出 $bylines
分词器 = worker()分词器$bylines = TRUEsegment(c("这是第一行文本。","这是第二行文本。"), 分词器)#> [[1]]#> [1] "这是" "第一行" "文本"#>#> [[2]]#> [1] "这是" "第二行" "文本"
在新建 worker 时设置 bylines
分词器 = worker(bylines = TRUE)segment(c("这是第一行文本。","这是第二行文本。"), 分词器)#> [[1]]#> [1] "这是" "第一行" "文本"#>#> [[2]]#> [1] "这是" "第二行" "文本"
下面是不分行输出的结果
分词器 = worker()segment(c("这是第一行文本。","这是第二行文本。"), 分词器)#> [1] "这是" "第一行" "文本" "这是" "第二行" "文本"
3.0.3 保留符号 $symbol
分词器 = worker()分词器$symbol = TRUEsegment(c("Hi,这是第一行文本。"), 分词器)#> [1] "Hi" "," "这是" "第一行" "文本" "。"
重设为不保留符号
分词器$symbol = FALSEsegment(c("Hi,这是第一行文本。"), 分词器)#> [1] "Hi" "这是" "第一行" "文本"
在新建 worker 时设置 symbol
分词器 = worker(symbol = TRUE)segment(c("Hi,这是第一行文本。"), 分词器)#> [1] "Hi" "," "这是" "第一行" "文本" "。"segment(c("。,。;las"), 分词器)#> [1] "。" "," "。" ";" "las"分词器 = worker(symbol = FALSE)segment(c("Hi,这是第一行文本。"), 分词器)#> [1] "Hi" "这是" "第一行" "文本"segment(c("。,。;las"), 分词器)#> [1] "las"
3.0.4 添加新词到已经新建的分词器中 new_user_word()
分词器 = worker()segment("这是一个新词", 分词器)#> [1] "这是" "一个" "新词"# 第三个参数 "n" 代表新词的词性标记new_user_word(分词器, "这是一个新词", "n")#> [1] TRUEsegment("这是一个新词", 分词器)#> [1] "这是一个新词"
3.0.5 添加停止词 worker(stop_word = “…”)
!!!! 对于分词,请不要修改默认加载的停止词文本,即 jiebaR::STOPPATH,请使用自定义的停止词路径。
目录下有一个 stop.txt 文件,内容如下
readLines("stop.txt")#> [1] "停止"
分词器 = worker(stop_word = "stop.txt")segment("这是一个停止词", 分词器)#> [1] "这是" "一个" "词"
3.0.6 对文件进行分词 - 使用 readLines 和 writeLines
使用 readLines 函数读取对应文本,
texts = readLines("./index.rmd", encoding="UTF-8")分词器$bylines = TRUE分词结果 = segment(texts, 分词器)
使用 writeLines 写入文件
合并各行分词结果 =sapply(分词结果, function(x){ paste(x, collapse = " ")})writeLines(合并各行分词结果, "./某个文件.txt")file.remove("./某个文件.txt")#> [1] TRUE
!!!!!乱码预警
Windows 下 writeLines 保存的文本可能会为乱码,
对应的解决方案为 writeBin + charToRaw
writeBin(charToRaw("对应文本还有一个换行符\n"), "./某个文件.txt")
3.0.7 对文件进行分词 - 自动检测路径
当前目录下又一个 index.rmd 的文件
outputfile = segment("./index.rmd", 分词器)readLines(outputfile, 5)#> [1] "" "title jiebaR 中文 分词 文档"#> [3] "knit bookdown render book" "date r paste 更新 于 Sys Date"#> [5] "documentclass book"file.remove(outputfile)#> [1] TRUE
指定输出路径
分词器$output = "某个文件"segment("./index.rmd", 分词器)#> [1] "某个文件"readLines("某个文件", 5)#> [1] "" "title jiebaR 中文 分词 文档"#> [3] "knit bookdown render book" "date r paste 更新 于 Sys Date"#> [5] "documentclass book"file.remove("某个文件")#> [1] TRUE
3.0.8 关闭自动检测路径 $write = “NOFILE”
分词器$write = "NOFILE"head(segment("./index.rmd", 分词器))#> [[1]]#> [1] "index" "rmd"
