R код за търсене на дума в абзац и копиране на изречението в променлива

Вход

Нападателят на Ювентус Карлос Тевес получи разрешение да започне сезона с италианския клуб след бившата звезда на Манчестър Сити. Когато Тевес се съгласи да се присъедини към Юве по-рано в края на сезона, аржентинецът все още трябваше да завърши по-голямата част от своите 250 часа неплатена работа, наложен от Магистратския съд на Макълсфийлд като наказание за поредица от нарушения при шофиране по-рано тази година. Условията обаче сега са променени, което означава, че Тевес ще плати глоба, вместо да изпълни заповедта, което му позволява да продължи кариерата си в Юве. Окръжният съдия Бриджит Найт прие, че е имало обстоятелства извън контрола на Тевес в неговата неспособност да изпълни условията на заповедта си, като каза: „Това е само техническо нарушение. Не е, повтарям, не е случай на футболист, който си бърка в носа срещу съдебна заповед. Смята се, че правният екип на Тевес твърди, че тъй като бившата звезда на Манчестър Юнайтед е била продадена от Сити, той не носи отговорност по закон за неспособността си да изпълни заповедта. Бих искал да благодаря на съда за разбирането.

Въпрос

Трябва да потърсим дума в дадения по-горе параграф като „Карлос“ и да копираме цялото изречение, както е показано по-долу

Изход Нападателят на Ювентус Карлос Тевес получи разрешение да започне сезона с италианския клуб след бившата звезда на Манчестър Сити.

В горния резултат можем да намерим думата "Карлос". Нуждая се от вашата помощ за изграждане на 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