Пожалуйста, помогите мне в моем небольшом проекте.Разделить POS-тегированные текстовые векторы/факторы на предложения с R-regex
Текстовый элемент (фактор) имеет предложения (на самом деле список многих текстовых элементов). Текст помечен тегом POS. Мне нужно разделить отдельные предложения на отдельные элементы.
Я думаю, мне нужно сопоставить все "./$. ", "!/$. ", "?/$. "
и т. Д. С некоторой функцией R и сохранить результат как список факторов. Каждый фактор является предложением.
Образец текста & Код:
library(stingr)
# Input vector/factor with "/$. " separated sentences
r <- c("Ich/PPER habe/VAFIN meinen/PPOSAT Berkeley/NN jetzt/ADV seit/APPR 11/CARD Jahren/NN im/APPRART fast/ADV täglichen/ADJA Einsatz/NN ./$. In/APPR der/ART Schule/NN und/KON im/APPRART Studium/NN war/VAFIN der/ART Rucksack/NN meistens/ADV bis/APPR zum/APPRART bersten/ADJA mit/APPR Büchern/NN gefüllt/VVPP ,/$, jetzt/ADV benutze/VVFIN ich/PPER das/ART gute/ADJA Stück/NN auf/APPR dem/ART Weg/NN zur/APPRART Arbeit/NN !/$. Das/ART Volumen/NN -LRB-/TRUNC 30/CARD Liter/NN -RRB-/TRUNC ist/VAFIN enorm/ADJD und/KON lässt/VVFIN sich/PRF ,/$, dank/APPR der/ART Form/NN ,/$, besonders/ADV für/APPR Bücher/NN und/KON Schreibutensilien/NN ideal/ADJD nutzen/VVINF ./$.")
# output list of vectors/factors with splited sentences as list elements
(r.listOfSent <- as.list(strsplit(as.character(r), "//$.")))
> r.sentlist
[[1]]
[1] "Ich/PPER habe/VAFIN meinen/PPOSAT Berkeley/NN jetzt/ADV seit/APPR 11/CARD Jahren/NN im/APPRART fast/ADV täglichen/ADJA Einsatz/NN ."
[2] " In/APPR der/ART Schule/NN und/KON im/APPRART Studium/NN war/VAFIN der/ART Rucksack/NN meistens/ADV bis/APPR zum/APPRART bersten/ADJA mit/APPR Büchern/NN gefüllt/VVPP ,/$, jetzt/ADV benutze/VVFIN ich/PPER das/ART gute/ADJA Stück/NN auf/APPR dem/ART Weg/NN zur/APPRART Arbeit/NN ."
[3] " Das/ART Volumen/NN -LRB-/TRUNC 30/CARD Liter/NN -RRB-/TRUNC ist/VAFIN enorm/ADJD und/KON lässt/VVFIN sich/PRF ,/$, dank/APPR der/ART Form/NN ,/$, besonders/ADV für/APPR Bücher/NN und/KON Schreibutensilien/NN ideal/ADJD nutzen/VVINF ."
'.' в вашем шаблоне в настоящее время рассматриваются как«любой символ», когда вместо этого вы хотите Литерал '.' Я предлагаю' strsplit (r, "/ \\ $ \\.") 'или' strsplit (r, "/ $.", fixed = TRUE) '. –
Я не уверен в этом, так как расщепление на буквенном '.' не будет разбиваться на', 'и'! 'И'? ', Что, кажется, задает вопрос ... – Ben
** @ BlueMagister ** 'strsplit (r,"/$. ", Fixed = TRUE)' works :) Танк вас! – alex