小编hei*_*g47的帖子

在 R 中使用 N-Grams 创建文档术语矩阵

我正在使用“tm”包在 R 中创建 DocumentTermMatrix。它适用于 1-gram,但我正在尝试使用 tm 包和“tokenizers”包中的 tokenize_ngrams 函数创建 N-Grams(现在 N = 3)的 DocumenttermMatrix 。但我无法创建它。

我搜索了可能的解决方案,但没有得到太多帮助。出于隐私原因,我无法共享数据。这是我尝试过的,

library(tm)  
library(tokenizers)
Run Code Online (Sandbox Code Playgroud)

data 是一个大约有 4.5k 行和 2 列的数据框,即“doc_id”和“text”

data_corpus = Corpus(DataframeSource(data))
Run Code Online (Sandbox Code Playgroud)

n-gram 标记化的自定义函数:

ngram_tokenizer = function(x){
  temp = tokenize_ngrams(x, n_min = 1, n = 3, stopwords = FALSE, ngram_delim = "_")
  return(temp)
}
Run Code Online (Sandbox Code Playgroud)

用于 DTM 创建的控制列表:
1-gram

control_list_unigram = list(tokenize = "words",
                          removePunctuation = FALSE,
                          removeNumbers = FALSE, 
                          stopwords = stopwords("english"), 
                          tolower = T, 
                          stemming = T, 
                          weighting = function(x)
                            weightTf(x)
)
Run Code Online (Sandbox Code Playgroud)

用于 N-gram …

nlp r tokenize n-gram tm

2
推荐指数
1
解决办法
4145
查看次数

标签 统计

n-gram ×1

nlp ×1

r ×1

tm ×1

tokenize ×1