3.0.1 对文本分词

    1. 分词器 = worker()
    2. segment("这是一段测试文本!", 分词器)
    3. #> [1] "这是" "一段" "测试" "文本"

    3.0.2 分行输出 $bylines

    1. 分词器 = worker()
    2. 分词器$bylines = TRUE
    3. segment(c("这是第一行文本。","这是第二行文本。"), 分词器)
    4. #> [[1]]
    5. #> [1] "这是" "第一行" "文本"
    6. #>
    7. #> [[2]]
    8. #> [1] "这是" "第二行" "文本"

    在新建 worker 时设置 bylines

    1. 分词器 = worker(bylines = TRUE)
    2. segment(c("这是第一行文本。","这是第二行文本。"), 分词器)
    3. #> [[1]]
    4. #> [1] "这是" "第一行" "文本"
    5. #>
    6. #> [[2]]
    7. #> [1] "这是" "第二行" "文本"

    下面是不分行输出的结果

    1. 分词器 = worker()
    2. segment(c("这是第一行文本。","这是第二行文本。"), 分词器)
    3. #> [1] "这是" "第一行" "文本" "这是" "第二行" "文本"

    3.0.3 保留符号 $symbol

    1. 分词器 = worker()
    2. 分词器$symbol = TRUE
    3. segment(c("Hi,这是第一行文本。"), 分词器)
    4. #> [1] "Hi" "," "这是" "第一行" "文本" "。"

    重设为不保留符号

    1. 分词器$symbol = FALSE
    2. segment(c("Hi,这是第一行文本。"), 分词器)
    3. #> [1] "Hi" "这是" "第一行" "文本"

    在新建 worker 时设置 symbol

    1. 分词器 = worker(symbol = TRUE)
    2. segment(c("Hi,这是第一行文本。"), 分词器)
    3. #> [1] "Hi" "," "这是" "第一行" "文本" "。"
    4. segment(c("。,。;las"), 分词器)
    5. #> [1] "。" "," "。" ";" "las"
    6. 分词器 = worker(symbol = FALSE)
    7. segment(c("Hi,这是第一行文本。"), 分词器)
    8. #> [1] "Hi" "这是" "第一行" "文本"
    9. segment(c("。,。;las"), 分词器)
    10. #> [1] "las"

    3.0.4 添加新词到已经新建的分词器中 new_user_word()

    1. 分词器 = worker()
    2. segment("这是一个新词", 分词器)
    3. #> [1] "这是" "一个" "新词"
    4. # 第三个参数 "n" 代表新词的词性标记
    5. new_user_word(分词器, "这是一个新词", "n")
    6. #> [1] TRUE
    7. segment("这是一个新词", 分词器)
    8. #> [1] "这是一个新词"

    3.0.5 添加停止词 worker(stop_word = “…”)

    !!!! 对于分词,请不要修改默认加载的停止词文本,即 jiebaR::STOPPATH,请使用自定义的停止词路径。

    目录下有一个 stop.txt 文件,内容如下

    1. readLines("stop.txt")
    2. #> [1] "停止"
    1. 分词器 = worker(stop_word = "stop.txt")
    2. segment("这是一个停止词", 分词器)
    3. #> [1] "这是" "一个" "词"

    3.0.6 对文件进行分词 - 使用 readLines 和 writeLines

    使用 readLines 函数读取对应文本,

    1. texts = readLines("./index.rmd", encoding="UTF-8")
    2. 分词器$bylines = TRUE
    3. 分词结果 = segment(texts, 分词器)

    使用 writeLines 写入文件

    1. 合并各行分词结果 =sapply(分词结果, function(x){ paste(x, collapse = " ")})
    2. writeLines(合并各行分词结果, "./某个文件.txt")
    3. file.remove("./某个文件.txt")
    4. #> [1] TRUE

    !!!!!乱码预警

    Windows 下 writeLines 保存的文本可能会为乱码,

    对应的解决方案为 writeBin + charToRaw

    1. writeBin(charToRaw("对应文本还有一个换行符\n"), "./某个文件.txt")

    3.0.7 对文件进行分词 - 自动检测路径

    当前目录下又一个 index.rmd 的文件

    1. outputfile = segment("./index.rmd", 分词器)
    2. readLines(outputfile, 5)
    3. #> [1] "" "title jiebaR 中文 分词 文档"
    4. #> [3] "knit bookdown render book" "date r paste 更新 于 Sys Date"
    5. #> [5] "documentclass book"
    6. file.remove(outputfile)
    7. #> [1] TRUE

    指定输出路径

    1. 分词器$output = "某个文件"
    2. segment("./index.rmd", 分词器)
    3. #> [1] "某个文件"
    4. readLines("某个文件", 5)
    5. #> [1] "" "title jiebaR 中文 分词 文档"
    6. #> [3] "knit bookdown render book" "date r paste 更新 于 Sys Date"
    7. #> [5] "documentclass book"
    8. file.remove("某个文件")
    9. #> [1] TRUE

    3.0.8 关闭自动检测路径 $write = “NOFILE”

    1. 分词器$write = "NOFILE"
    2. head(segment("./index.rmd", 分词器))
    3. #> [[1]]
    4. #> [1] "index" "rmd"