n-grams表,并标识文本出现的行

n-grams表,并标识文本出现的行,r,nlp,text-mining,n-gram,quanteda,R,Nlp,Text Mining,N Gram,Quanteda,我想构造一个表,其中n-grams显示为一列,并且是从中构造它们的数据帧的行号 例如,以下代码用于构造n-gram(本例中为四元图): #库 图书馆(quanteda) 库(数据表) 图书馆(tidyverse) 图书馆(stringr) #数据帧 数据您可以在textstat\u frequency()中指定与组名相对应的组,这将提供对原始“行号”的引用 库(“quanteda”) ##软件包版本:2.1.2 库(“数据表”) #数据帧 数据非常感谢您的帮助在计算1克时,是否有方法将第3列和第

我想构造一个表,其中n-grams显示为一列,并且是从中构造它们的数据帧的行号

例如,以下代码用于构造n-gram(本例中为四元图):

#库
图书馆(quanteda)
库(数据表)
图书馆(tidyverse)
图书馆(stringr)
#数据帧

数据您可以在
textstat\u frequency()
中指定与组名相对应的组,这将提供对原始“行号”的引用

库(“quanteda”)
##软件包版本:2.1.2
库(“数据表”)
#数据帧

数据非常感谢您的帮助在计算1克时,是否有方法将第3列和第5列关联起来?说出Col3_条目和Col5_条目以及特征、频率和行号。例如,“花”一词出现在第2行和第5行。其目的是在Col3_条目中包含B2、F5条目,在Col5_条目中包含Bad、Perfect条目,对应于flower in column功能。我在数据中创建了一个列名称rownumber,其中包含条目1:nrow(数据)。然后计算单报并将其设置为数据帧。然后使用“``合并的%group\U by(功能)%>%summarise(Freq=n(),Column3=toString(Column3),Column5=toString(Column5))``方法链接合并它:有捷径/更好的方法吗?
# Libraries
library(quanteda)
library(data.table)
library(tidyverse)
library(stringr)

# Dataframe
Data <- data.frame(Column1 = c(1.222, 3.445, 5.621, 8.501, 9.302), 
                  Column2 = c(654231, 12347, -2365, 90000, 12897), 
                  Column3 = c('A1', 'B2', 'E3', 'C1', 'F5'), 
                  Column4 = c('I bought it', 'The flower has a beautiful fragrance', 'It was bought by me', 'I have bought it', 'The flower smells good'), 
                  Column5 = c('Good', 'Bad', 'Ok', 'Moderate', 'Perfect'))

# Text column of interest
TextColumn <- Data$Column4

# Corpus
Content <-  corpus(TextColumn)

# Tokenization
Tokens <- tokens(Content, what = "word",
                               remove_punct = TRUE,
                               remove_symbols = TRUE,
                               remove_numbers = FALSE,
                               remove_url = TRUE,
                               remove_separators = TRUE,
                               split_hyphens = FALSE,
                               include_docvars = TRUE,
                               padding = FALSE)

Tokens <- tokens_tolower(Tokens)

# n-grams

quadgrams <- dfm(tokens_ngrams(Tokens, n = 4))
quadgrams_freq <- textstat_frequency(quadgrams)                  # quadgram frequency
quadgrs <- subset(quadgrams_freq,select=c(feature,frequency))
names(quadgrs) <- c("ngram","freq")
quadgrs <- as.data.table(quadgrs)