Ich verwende dplyr zum Parsen einer Spalte mit Sätzen und Berechnen der Anzahl der Ngrams für jede. Hier ist ein Beispiel, das das Problem zeigt, auf das ich stoße.Verwenden von muate, um die Anzahl der Ngramme zu erhalten
Wie Sie sehen, erwartet ngram_cnt 3 und 4, aber es ergibt sich eine Spalte mit 3,3. Das Problem ist, dass der Code die Anzahl der Ngramme für den ersten Satz zurückgibt und den Rest ignoriert. Sie können versuchen, weitere Sätze hinzuzufügen, die den gleichen Effekt haben. Was mache ich falsch?
library(NLP)
library(dplyr)
library(stringr)
phrases <- c("this is the first", "and then comes the second")
df <- data.frame(phrase = phrases, id = c(1, 2))
df %>% mutate(ngram_cnt = length(ngrams(str_split(phrase, "\\s")[[1]], 2)))
Wenn ich sage,
phrases <- c("this is the first", "and then comes the second",
"and the third which is even longer")
df <- data.frame(phrase = phrases, id = c(1, 2, 3))
df %>% mutate(ngram_cnt = str_length(phrase))
dann bekomme ich die erwarteten Ergebnisse (nämlich die Länge eines jeden Satzes).