我在tidytext
中使用R
包进行n-gram分析。
由于我分析了推文,我想保留@和#来捕获提及,转发和主题标签。但是,unnest_tokens
函数会自动删除所有标点符号并将文本转换为小写。
我发现unnest_tokens
可以选择使用token='regex'
使用正则表达式,因此我可以自定义清理文本的方式。但是,它只适用于unigram分析,并且不适用于n-gram,因为我需要定义token='ngrams'
来进行n-gram分析。
有没有办法阻止unnest_tokens
在n-gram分析中将文本转换为小写?
答案 0 :(得分:1)
tokenize_words
的参数在unnest_tokens
函数调用中可用。因此,您可以直接将strip_punct = FALSE
用作unnest_tokens
的参数。
示例:
txt <- data.frame(text = "Arguments for `tokenize_words` are available within the `unnest_tokens` function call. So you can use `strip_punct = FALSE` directly as an argument for `unnest_tokens`. ", stringsAsFactors = F)
unnest_tokens(txt, palabras, "text", strip_punct =FALSE)
palabras
1 arguments
1.1 for
1.2 `
1.3 tokenize_words
1.4 `
1.5 are
1.6 available
1.7 within
1.8 the
1.9 `
1.10 unnest_tokens
1.11 `
1.12 function
1.13 call
1.14 .
1.15 so
#And some more, but you get the point.
也可用:lowercase = FALSE
和strip_numeric = TRUE
来更改默认的相反行为。
答案 1 :(得分:0)
在tidytext
版本0.1.9中,您现在可以选择标记推文,如果您不想要小写,请使用选项to_lower = FALSE
unnest_tokens(tweet_df, word, tweet_column, token = "tweets", to_lower = FALSE)