一、增强:分词、词性标注时,增加过滤停止词功能,默认的 STOPPATH
路径将不会被使用,不默认使用停止词库。需要自定义其他路径,停止词才能在分词时使用。停止词库的编码需要为 UTF-8 格式,否则读入的数据可能为乱码。
cutter = worker()
cutter
# Worker Type: Mix Segment
# Fixed Model Components:
# ...
# $stop_word
# NULL
# $timestamp
# [1] 1442716020
# $detect $encoding $symbol $output $write $lines $bylines can be reset
cutter = worker(stop_word="../stop.txt")
cutter
# Worker Type: Mix Segment
# Fixed Model Components:
# ...
# $stop_word
# [1] "../stop.txt"
# $timestamp
# [1] 1442716020
# $detect $encoding $symbol $output $write $lines $bylines can be reset.
二、增强:分词时,symbol = FALSE
时,2010-10-12
,20.2
类似格式的文本中的符号会被保留。单纯的符号将会被过滤。
cutter = worker()
cutter$symbol = F
cutter["2010-10-10"]
三、增加:freq()
进行词频统计,输入内容为文本向量,输出内容为文本频率的数据框。
freq(c("测试", "测试", "文本"))
四、增强:filter_segment()
现在可以输入以文本向量为内容的 list。
cutter = worker()
result_segment = list( cutter["我是测试文本,用于测试过滤分词效果。"],
cutter["我是测试文本,用于测试过滤分词效果。"])
result_segment
filter_words = c("我","你","它","大家")
filter_segment(result_segment,filter_words)
五、修复 :filter_segment()
可能会出现删除非停止词。
六、增加:filter_segment()
增加unit
选项。
处理文本时,停止词数量较多时 ,生成的正则表达式超过 265 bytes ,R 可能会报错。通过 unit
选项可以对于较多的停止词分多次处理,控制每次识别的停止词的个数,控制生成的正则表达式的长度。unit
默认值为 50,一般不需要修改 unit 的默认值。
help(regex)
Long regular expressions may or may not be accepted: the POSIX standard only requires up to 256 bytes.
filter_segment(result_segment,filter_words) # 使用默认值,一般不需要修改。
filter_segment(result_segment,filter_words, unit=10) # 如果你有较多文本长度很长的停止词词条
七、增加: C API,可以在其他 R 包调用本包的 C 接口。
// inst/include/jiebaRAPI.h
SEXP jiebaR_filecoding(SEXP fileSEXP);
SEXP jiebaR_mp_ptr(SEXP dictSEXP, SEXP userSEXP);
....
一、 增加:过滤分词结果的方法 filter_segment()
,类似于关键词提取中使用的停止词功能。
cutter = worker()
result_segment = cutter["我是测试文本,用于测试过滤分词效果。"]
result_segment
[1] "我" "是" "测试" "文本" "用于" "测试" "过滤" "分词" "效果"
filter_words = c("我","你","它","大家")
filter_segment(result_segment,filter_words)
[1] "是" "测试" "文本" "用于" "测试" "过滤" "分词" "效果"
二、 增强:分词支持 “向量文本输入 => list
输出” 与 “按行输入文件 => list
输出”
通过 bylines 选项控制是否按行输出,默认值为bylines = FALSE
。
cutter = worker(bylines = TRUE)
cutter
Worker Type: Mix Segment
Detect Encoding : TRUE
Default Encoding: UTF-8
Keep Symbols : FALSE
Output Path :
Write File : TRUE
By Lines : TRUE
Max Read Lines : 1e+05
....
cutter[c("这是非常的好","大家好才是真的好")]
[[1]]
[1] "这是" "非常" "的" "好"
[[2]]
[1] "大家" "好" "才" "是" "真的" "好"
cutter$write = FALSE
# 输入文件文本是:
# 这是一个分行测试文本
# 用于测试分行的输出结果
cutter["files.path"]
[[1]]
[1] "这是" "一个" "分行" "测试" "文本"
[[2]]
[1] "用于" "测试" "分行" "的" "输出" "结果"
# 按行写入文件
cutter$write = TRUE
cutter$bylines = TRUE
三、增加:可以使用 vector_keywords
对一个文本向量提取关键词。
keyworker = worker("keywords")
cutter = worker()
vector_keywords(cutter["这是一个比较长的测试文本。"],keyworker)
8.94485 7.14724 4.77176 4.29163 2.81755
"文本" "测试" "比较" "这是" "一个"
vector_keywords(c("今天","天气","真的","十分","不错","的","感觉"),keyworker)
6.45994 6.18823 5.64148 5.63374 4.99212
"天气" "不错" "感觉" "真的" "今天"
四、增加: write = "NOFILE"
选项,不检查文件路径。
cutter = worker(write = "NOFILE",symbol = TRUE)
cutter["./test.txt"] # 目录下有test.txt 文件
[1] "." "/" "test" "." "txt"