我正在使用R Rweka包来做一些文本挖掘。而不是建立一个tf-tdm单词,这是不够的,我的目的,我必须提取纳克。我使用了@Ben函数TrigramTokenizer <- function(x) NGramTokenizer(x, Weka_control(min = 2, max = 3)) tdm <- TermDocumentMatrix(a, control = list(tokenize = TrigramTokenizer))
提取三角图。输出有一个明显的错误,见下文。它收集了4个、3个和2个单词的短语。理想情况下,它应该只取4字名词短语,并放弃(3-和2-字)rest。如何强制这个解决方案,就像Python有一个备份令牌程序选项一样?
抽象策略->this is incorrect>
抽象策略板->incorrect
抽象策略棋盘游戏-> this should be the correct output
埃森哲高管
埃森哲执行简单
埃森哲高管简单评论
非常感谢。
发布于 2016-06-10 15:08:48
我认为你对你所做的尝试非常接近。不过,您必须明白,您告诉Weka要做的是捕获2克和3克的标记;这就是如何指定Weka_control的。
相反,我建议在不同的令牌器中使用不同的令牌大小,并根据您的偏好或决策规则选择或合并结果。
我认为有必要在n克字云上查看这个伟大的教程。
用于n克文本挖掘的实心代码片段是:
# QuadgramTokenizer ####
QuadgramTokenizer <- function(x) NGramTokenizer(x, Weka_control(min = 4, max = 4)四克,
# TrigramTokenizer ####
TrigramTokenizer <- function(x) NGramTokenizer(x, Weka_control(min = 3, max = 3)3克,当然还有
# BigramTokenizer ####
BigramTokenizer <- function(x) NGramTokenizer(x, Weka_control(min = 2, max = 2)两克。
您可以通过像这样分别运行不同的克大小来避免先前的问题,而不是将Weka_control设置为一个范围。
您可以像这样应用令牌程序:
tdm.ng <- TermDocumentMatrix(ds5.1g, control = list(tokenize = BigramTokenizer))
dtm.ng <- DocumentTermMatrix(ds5.1g, control = list(tokenize = BigramTokenizer))如果你仍然有问题,请提供一个可复制的例子,我会跟进。
https://stackoverflow.com/questions/37750951
复制相似问题