5 标记和关键词

5.0.1 标记

一段文本 = "我爱北京天安门"
标记器 = worker("tag")
结果 = tagging(一段文本, 标记器)
print(结果)
#>        r        v       ns       ns 
#>     "我"     "爱"   "北京" "天安门"
names(tagging(一段文本, 标记器))
#> [1] "r"  "v"  "ns" "ns"

对已经分好词的文本进行标记

分词器 = worker()
分词结果 = segment(一段文本, 分词器)
分词结果
#> [1] "我"     "爱"     "北京"   "天安门"
vector_tag(分词结果, 标记器)
#>        r        v       ns       ns 
#>     "我"     "爱"   "北京" "天安门"

5.0.2 关键词

topn 控制提取数量

提取器 = worker("keywords", topn = 1)
keywords("我爱北京天安门", 提取器)
#>   8.9954 
#> "天安门"

对已经分好词的文本进行标记

分词器 = worker()
分词结果 = segment(一段文本, 分词器)
分词结果
#> [1] "我"     "爱"     "北京"   "天安门"
vector_keywords(分词结果, 提取器)
#>   8.9954 
#> "天安门"

5.0.3 Simhash 与海明距离

摘要器 = worker("simhash", topn=2)
simhash("江州市长江大桥参加了长江大桥的通车仪式", 摘要器)
#> $simhash
#> [1] "12882166450308878002"
#> 
#> $keyword
#>    22.3853    8.69667 
#> "长江大桥"     "江州"
distance("hello world!", "江州市长江大桥参加了长江大桥的通车仪式", 摘要器)
#> $distance
#> [1] 23
#> 
#> $lhs
#> 11.7392 11.7392 
#> "hello" "world" 
#> 
#> $rhs
#>    22.3853    8.69667 
#> "长江大桥"     "江州"
vector_simhash(c("今天","天气","真的","十分","不错","的","感觉"),摘要器)
#> $simhash
#> [1] "12098690169796312660"
#> 
#> $keyword
#> 6.45994 6.18823 
#>  "天气"  "不错"
vector_distance(c("今天","天气","真的","十分","不错","的","感觉"),c("今天","天气","真的","十分","不错","的","感觉"),摘要器)
#> $distance
#> [1] 0
#> 
#> $lhs
#> 6.45994 6.18823 
#>  "天气"  "不错" 
#> 
#> $rhs
#> 6.45994 6.18823 
#>  "天气"  "不错"

5.0.4 tobin 进行 Simhash 数值的二进制转换。

tobin("12098690169796312660")
#> [1] "1010011111100111001011101001101110011010001110000011111001010100"

5.0.5 词频统计 freq()

freq(c("测试", "测试", "文本"))
#>   char freq
#> 1 文本    1
#> 2 测试    2

5.0.6 生成 IDF 文件 get_idf()

根据多文档词条结果计算 IDF 值。输入一个包含多个文本向量的 list,每一个文本向量代表一个文档,可自定义停止词列表。

临时输出目录 = tempfile()
a_big_list = list(c("测试","一下"),c("测试"))
get_idf(a_big_list, stop = jiebaR::STOPPATH, path = 临时输出目录)
readLines(临时输出目录)
#> [1] "一下 0.693147180559945" "测试 0"