我有一个数据集,很多人都在为某些工作提供帮助。关键是我想从每个评论中检索一些.txt文件中的特定句子。到目前为止,我还没有成功地做到这一点。
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
另一个文件包含一个名为services的变量,其中包含每个人的评论,解释他们的能力,教育程度等。而我想做的就是从他们写的文本中获取他们的年龄。
来自服务文件的示例:
"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中识别整个句子,因为目前它将每个单词都作为一个字符。除此之外,我在这里发布的解释我的功能的代码片段没有用(暴徒生活......)
我真的很感激帮助解决这个问题!!
非常感谢你的帮助!!
阿德里安
答案 0 :(得分:1)
这会分成句子并捕获“tengoaños”的最后一个例子:
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"