8

我正在使用tidytextpackage inR进行 n-gram 分析。

由于我分析推文,因此我想保留 @ 和 # 以捕获提及、转发和主题标签。但是,unnest_tokens函数会自动删除所有标点符号并将文本转换为小写。

我发现unnest_tokens有一个使用正则表达式的选项 using token='regex',所以我可以自定义它清理文本的方式。但是,它只适用于 unigram 分析,它不适用于 n-gram,因为我需要定义token='ngrams'来进行 n-gram 分析。

有没有办法防止unnest_tokens在 n-gram 分析中将文本转换为小写?

4

2 回答 2

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 = FALSEstrip_numeric = TRUE更改默认的相反行为。

于 2018-08-03T20:11:07.033 回答
0

tidytext0.1.9 版中,您现在可以选择标记推文,如果您不想要小写,请使用该选项to_lower = FALSE

unnest_tokens(tweet_df, word, tweet_column, token = "tweets", to_lower = FALSE)
于 2018-06-03T07:58:21.797 回答