Код R для поиска слова в абзаце и копирования предложения в переменную

Ввод

Нападающий «Ювентуса» Карлос Тевес получил разрешение начать сезон в итальянском клубе вслед за бывшей звездой «Манчестер Сити». наложен Магистратским судом Маклсфилда в качестве наказания за ряд нарушений правил вождения в начале этого года. Однако теперь условия изменились, а это означает, что Тевес заплатит штраф вместо выполнения приказа, что позволит ему продолжить свою карьеру в «Ювентусе». Окружной судья Бриджит Найт признал, что в его неспособности выполнить условия своего приказа были обстоятельства, не зависящие от Тевеса, заявив: «Это всего лишь техническое нарушение. Повторяю, это не тот случай, когда футболист показывает пальцем на нос по решению суда. Считается, что команда юристов Тевеса утверждала, что, поскольку бывшая звезда «Манчестер Юнайтед» была продана «Сити», он не несет юридической ответственности за свою неспособность выполнить приказ. Я хотел бы поблагодарить суд за то, что я тс понимание.

Вопрос

Нам нужно найти слово в приведенном выше абзаце, например «Карлос», и скопировать все предложение, как показано ниже.

Результат Нападающий "Ювентуса" Карлос Тевес получил разрешение начать сезон в итальянском клубе вслед за бывшей звездой "Манчестер Сити".

В приведенном выше выводе мы можем найти слово «Карлос». Нужна ваша помощь, чтобы создать код r в этом случае


person suhas nr    schedule 18.10.2014    source источник
comment
Пожалуйста, опубликуйте код, который вы пробовали, но он не работает.   -  person hrbrmstr    schedule 18.10.2014
comment
Если у вас нет кода, взгляните на Maxent_Sent_Token_Annotator из openNLP, а затем, если у вас есть конкретные проблемы с реализацией решения, опубликуйте другой вопрос с битами, которые не работают.   -  person hrbrmstr    schedule 18.10.2014


Ответы (2)


Вот один из подходов с использованием пакета qdap:

x <- 'Juventus striker Carlos Tevez has been cleared to start the season with the Italian club after 
    the former Manchester City star.When Tevez agreed to join Juve earlier in the close season, the 
    Argentine still had to complete the majority of his 250 hours of unpaid work, imposed by 
    Macclesfield Magistrates Court as punishment for a string of driving offences earlier this year.
    However, the terms have now changed, meaning Tevez will pay a fine instead of fulfilling the order, 
    allowing him to continue his career with Juve.District Judge Bridget Knight accepted there were 
    circumstances beyond Tevez control in his inability to fulfil the terms of his order, saying: 
    "This is only a technical breach. It is not, I repeat not, a case of a footballer thumbing his nose 
    at a court order.It is thought Tevez legal team argued that as the former Manchester United star was 
    sold by City, he was not responsible in law for his inability to comply with the order.I would like 
    to thank the court for its understanding.'

library(qdap)

dat <- data.frame(text=sent_detect(x), stringsAsFactors = FALSE)
Search(dat, "Carlos")

## [1] "Juventus striker Carlos Tevez has been cleared to start the season with the Italian club after the former Manchester City star."
person Tyler Rinker    schedule 18.10.2014
comment
Я действительно мог бы установить ваш пакет, но rJava продолжает доставлять мне проблемы. Надеюсь, я смогу установить его в ближайшее время, я хочу его использовать! - person Rich Scriven; 18.10.2014
comment
@RichardScriven Я предполагаю, что это связано с разными архитектурами R и Java. У меня есть небольшой фрагмент, описывающий ресурсы для запуска и запуска: trinker.github. io/qdap_dev/vignettes/qdap_vignette.html#java - person Tyler Rinker; 18.10.2014

Сначала я бы разделил текст на предложения (при условии, что вы сохранили текст в текстовом файле с именем input.txt):

text <- readLines("input.txt")
sentences <- strsplit(text,".",fixed=TRUE)[[1]]

Затем я выбираю предложения, содержащие искомое слово, используя grep:

sentences <- sentences[grep("Carlos",sentences)]

#[1] "Juventus striker Carlos Tevez has been cleared to start the season with the Italian club after the former Manchester City star"
person Jon Cardoso    schedule 18.10.2014