Как пакет "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

Немного поиска нашел логику здесь:

https://github.com/trinker/textshape/blob/13308ed9eb1c31709294e0c2cbdb22cc2cac93ac/R/split_sentence.R#L148

Т.е. да, это делится на ?.!, но затем он использует кучу регулярных выражений для поиска исключений, таких как "№ 7" и "Филип К. Дик".

Другие вопросы по тегам