R - Анализировать местоимения

У меня есть такое предложение:

sent <- "She likes long walks on the beach with her dogs."

Скажем, я токенизирую предложение по слову. Какие инструменты НЛП я могу использовать для получения данных о местоимениях в этом предложении, таких как подлежащее (первое лицо, второе лицо, третье лицо) и тип (притяжательное, возвратное и т. д.)?

Это называется тегированием части речи. Это область активных исследований. Это может помочь вам начать: smart-statistics.com/part-speech-tagging-r

neilfws 13.04.2018 06:45

Я знаю, что такое тегирование речи. Но ссылка не говорит мне, как сказать что-либо о местоимениях, кроме того, что это местоимения.

Christopher Costello 13.04.2018 06:55
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
347
1

Ответы 1

Короткий ответ: вам необходимо реализовать дополнительную (соответствующую) эвристику. Например, быстрый и грязный подход к обнаружению шаблона SUBJECT-VERB-OBJECT заключается в поиске троек NOUN-VERB-NOUN (или PRONOUN-VERB-NOUN), как рекомендовано Извлечь тройное подлежащее, сказуемое и объектное предложение - не уверен, что есть расширенный пакет NLP в R, который пока делает это надежно.

Для ваших данных сначала создайте теги POS, используя http://smart-statistics.com/part-speech-tagging-r/ (любой пакет POS в порядке):

library(devtools)
devtools::install_github("bnosac/RDRPOSTagger")
library(RDRPOSTagger)
devtools::install_github("ropensci/tokenizers")
library(tokenizers)

Затем создайте теги для своих данных:

sent <- "She likes long walks on the beach with her dogs."
unipostagger <- rdr_model(language = "English", annotation = "UniversalPOS")
pos <- rdr_pos(unipostagger, sent)

> pos
   doc_id token_id token   pos
1      d1        1   She  PRON
2      d1        2 likes  VERB
3      d1        3  long   ADJ
4      d1        4 walks  VERB
5      d1        5    on   ADP
6      d1        6   the   DET
7      d1        7 beach  NOUN
8      d1        8  with   ADP
9      d1        9   her  PRON
10     d1       10  dogs  NOUN
11     d1       11     . PUNCT

А затем извлеките узор:

> subj <- pos %>% filter(grepl("PRON|NOUN",pos)) %>% select(token) %>% slice(1)
> verb <- pos %>% filter(grepl("VERB",pos)) %>% select(token) %>% slice(1)
> obj <- pos %>% filter(grepl("PRON|NOUN",pos)) %>% select(token) %>% slice(n())
> paste(subj, verb, obj)
[1] "She likes dogs"

Очевидно, что эффективность будет зависеть от сложности ваших предложений.

Интересно! Есть ли пакет, который делает это в Python, который я могу просто вызвать через сетку?

Christopher Costello 13.04.2018 15:50

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