Как пакет "sentimentr" разбивает абзац или предложения на более чем 1 предложение?
Я пытаюсь запустить анализ настроений в r с помощью пакета "sentimentr". Я подал в список комментариев и в выводе получил element_id, termince_id, word_count, sentiment. Комментарии с длинными фразами преобразуются в отдельные предложения. Я хочу знать логику, основанную на том, какой пакет это делает?
У меня есть 4 основных категории для моих комментариев: еда, атмосфера, цены и сервис. и я также установил биграммы для этих тем, я пытаюсь разделить предложения на основе тем
install.packages("sentimentr")
library(sentimentr)
data <- read.csv("Comments.csv")
data_new <- as.matrix(data)
scores <- sentiment(data_new)
#scores
write.csv(scores,"results.csv")
Например: "У нас была большая вечеринка из 25 человек, поэтому некоторые проблемы были понятны. Но серверы казались полностью перегруженными. Есть так много проблем, которые я даже не могу объяснить. Просто заявленная еда потребовала больше часа, так что когда он прибыл, он был переварен, у моего сына был обугленный стейк, менеджер подошел к столу и сказал, что у них уже нет стейка, я могу продолжать и продолжать. Мы были очень разочарованы "разделились на 5 предложений
1) У нас была большая группа из 25 человек, поэтому некоторые проблемы были понятны. 2) Но серверы казались полностью перегруженными. 3) Есть так много вопросов, которые я даже не могу объяснить. 4) Проще говоря, пища потребовалась более часа, когда она прибыла, она была переварена, у моего сына был обугленный стейк, менеджер подошел к столу и сказал, что у него уже нет стейка, я могу продолжать и продолжать. 5) Мы были очень разочарованы
Я хочу знать, есть ли какая-то семантическая логика за расщеплением или это просто основано на остановках?
1 ответ
Он использует texthape::split_sentence(), см. https://github.com/trinker/sentimentr/blob/e70f218602b7ba0a3f9226fb0781e9dae28ae3bf/R/get_sentences.R#L32
Немного поиска нашел логику здесь:
Т.е. да, это делится на ?.!
, но затем он использует кучу регулярных выражений для поиска исключений, таких как "№ 7" и "Филип К. Дик".