我正在分析一些亚马逊评论。在我分析的当前步骤中,我想采用低于两颗星的评论中写的句子。我已经这样做了,应用了get句子,并编写了这个函数,以便在句子中搜索单词并仅打印出包含所有单词的单词:
ricerca <- function(sentences,keyword){
found <- lapply(sentences, function(x) grep(keyword, x, value = TRUE))
found <-found[lengths(found) > 0]
return(found)
句子是这样写的:
> class(frasi_negative)
[1] "get_sentences" "get_sentences_character" "list"
> frasi_negative[1:2]
[[1]]
[1] "Auricolari comodissimi."
[2] "Restano incollati alle orecchie e non cadono in nessuna situazione."
[3] "Suono limpido, pulito."
[4] "Bassi consistenti."
[5] "La durata della batteria è più che soddisfacente (io li ho usati anche per 4 ore di fila senza problemi)."
[6] "Decisamente soddisfatto."
[7] "Li ricomprerei."
[8] "Amazon perfetta come al solito."
[9] "AGGIORNAMENTO RECENSIONE!!!!!"
[10] "- Dopo un mese di utilizzo non è più possibile ricaricare le cuffie."
[11] "Non danno più segni di vita."
[12] "Delusissimo."
[13] "Non mi sarei mai aspettato una fine così."
[14] "Peccato perché il prodotto era praticamente perfetto."
[[2]]
[1] "Al mio cellulare (Xiaomi Redmi Note 5) si mostrano singolarmente, separate, quando cerco di connetterle."
[2] "O si connette alla destra, o alla sinistra, e in ogni caso il suono poi esce dalle casse del cellulare (nonostante aver dato alle cuffie tutti i permessi)."
[3] "Non capisco perché, data che la prima connessione era andata come si deve; spente e riaccese, hanno iniziato a comportarsi così."
[4] "Ho provato a riavviare sia loro che cellulare, a rimetterle nella scatoletta e ritoglierle, ma il problema persiste."
[5] "Non penso c'entri il mio cellulare (mai avuto problemi con prodotti simili), in ogni caso effettuo reso con rimborso."
当我尝试搜索一个单词时,它似乎有效(即使输出真的很糟糕(:
> found<-ricerca(frasi_negative, "qualità")
> found[1:3]
[[1]]
[1] "Pessima qualità."
[2] "La qualità delle chiamate telefoniche è assolutamente pessima (il proprio interlocutore non riceve in modo chiaro la nostra voce, dunque, risultano inutilizzabili come aurocolari telefonici)."
[[2]]
[1] "imbarazzanti non so la gente qui come fanno a dargli 5 stelle, l'unica cosa che mi viene in mente e che non hanno mai provato un paio di cuffie decenti, qualità dell audio pessima si sente basso e male , l'unica cosa buona e che la batteria si comporta bene - a distanza di 20 cm ogni tanto si scollegano provato con piu dispositivi sicuramente richiedo il rimborso davvero pessime"
[[3]]
[1] "La qualità costruttiva è ottima, l'accoppiamento è avvenuto in maniera facile ed immediata, e la durata è ottima."
但是当我尝试搜索几个单词时(如示例c("quality","bad")
(,它只搜索第一个单词,并得到很多警告。
我不知道如何调整此功能,因此提前感谢大家。
库:感伤者
更新: 感谢您的回答,但似乎在你们发布的两个函数中,它都会输出包含两个单词中至少一个的所有句子。我只想看看那些包含两者的。有没有办法做到这一点?
下面的函数应该遍历输入的关键字向量:
ricerca <- function(sentences,keywords){
for(i in 1:length(keywords){
found <- lapply(sentences, function(x) grep(keywords[i], x, value = TRUE))
found <-found[lengths(found) > 0]
return(found)
}
}
我希望这有帮助!
尝试使用paste
作为一个字符串组合keyword
。
ricerca <- function(sentences,keyword){
found <- lapply(sentences, function(x)
grep(paste0(keyword, collapse = "|"), x, value = TRUE))
found <-found[lengths(found) > 0]
return(found)
}