2016-04-26 31 views
0

我有一個數據集,有很多人提供自己的工作。重點是,我想從每個評論中檢索一些非常特定的句子,我有一個.txt文件。到目前爲止,我還沒有設法做到這一點。如何在R中的文本中查找特定的句子?

score.sentiment <- function(sentences, pos.words, .progress='none') 
{ 
    require(plyr) 
    require(stringr) 
    scores <- laply(sentences, function(sentence, pos.words){ 
sentence <- gsub('[[:punct:]]', "", sentence) 
    sentence <- gsub('[[:cntrl:]]', "", sentence) 
    sentence <- gsub('\\d+', "", sentence) 
    sentence <- tolower(sentence) 
    word.list <- str_split(sentence, '\\s+') 
    words <- unlist(word.list) 
    pos.matches <- match(words, pos.words) 
    score <- pos.matches 
    return(score) 
    }, pos.words, .progress=.progress) 
    scores.df <- data.frame(text=sentences) 
    return(scores.df) 
} 
results <- score.sentiment(sentences = serv$service_description, pos.words) 

文本文件被稱爲pos.words,它包含在句子西班牙語這樣的:

tengo 25 años 
tengo 47 años 
tengo 34 años 

另一個文件包含一個變量,名爲服務包含每人評論解釋自己的能力,他們的教育等。而我想要做的就是從他們寫的文字中獲得他們的年齡。從服務文件

例子:

"Me llamo Adrián y tengo 24 años. He estudiado Data Science y me gusta trabajar en el sector tecnológico" 

所以從這個示例中,我想獲得我的年齡。到目前爲止,我的想法是創建一個pos.words.txt文件,其中包含所有可能的西班牙文句子,說明年齡並將其與評論文件進行匹配。

到目前爲止出現的主要問題是,我不能創建一個正確的功能來做到這一點;我不知道如何讓R從pos.words.txt中識別整個句子,因爲現在它將每個單詞作爲一個字符。除此之外,我在這裏發佈的一段代碼解釋了我的功能不起作用(暴徒的生活...)

我真的很感謝一些幫助解決這個問題!

非常感謝您的幫助!

阿德里安

+1

這將是有益的,如果你能提供什麼你輸入一些重複性的例子txt文件和您正在搜索的txt文件看起來像是一旦它們被導入到R. – AOGSTA

+0

閱讀此指南以幫助指導您的可重現示例:http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-可重現的例子 - 如果您的代碼格式一致,它也會有所幫助。 –

回答

1

這種分裂成句子,抓住了`「TENGO A號」的最後一個實例:

inp <- "blah blah blah tengo 25 años more blah. 
    Even more blha then tengo 47 años. 
    Me llamo Adrián y tengo 34 años." 
rl <- readLines(textConnection(inp)) # might need to split at periods 
    # Then use a capture class to get the digits flanked by "tengo" and "años" 
gsub("^.+tengo[ ](\\d+)[ ]años.+$", "\\1", rl) 
[1] "25" "47" "34" 
相關問題