Sto cercando di trovare le parole che si verificano in più documenti allo stesso tempo.Trattare le parole separate dallo spazio nello stesso modo
Facciamo un esempio.
doc1: "this is a document about milkyway"
doc2: "milky way is huge"
Come si può vedere nel precedente 2 documenti, parola "Milkyway" avviene in entrambi i documenti, ma nel secondo termine documento "Milkyway" è separato da uno spazio e in primo doc non lo è.
sto facendo quanto segue per ottenere la matrice termine documento in R.
library(tm)
tmp.text <- data.frame(rbind(doc1, doc2))
tmp.corpus <- Corpus(DataframeSource(tmp.text))
tmpDTM <- TermDocumentMatrix(tmp.corpus, control = list(tolower = T, removeNumbers = T, removePunctuation = TRUE,stopwords = TRUE,wordLengths = c(2, Inf)))
tmp.df <- as.data.frame(as.matrix(tmpDTM))
tmp.df
1 2
document 1 0
huge 0 1
milky 0 1
milkyway 1 0
way 0 1
Term milkyway
è presente solo nella prima doc come per la matrice di cui sopra.
Voglio essere in grado di ottenere 1 in entrambi i documenti per termine "milkyway" nella matrice sopra. Questo è solo un esempio. Ho bisogno di farlo per molti documenti. In definitiva voglio essere in grado di trattare tali parole ("milkyway" & "via lattea") in modo simile.
EDIT 1:
Non posso forzare la matrice termine documento per ottenere calcolato in modo tale che per qualsiasi parola che sta cercando di guardare per esso non deve solo cercare quella parola come un parola separata nella stringa ma anche all'interno delle stringhe? Ad esempio, un termine è milky
e c'è un documento this is milkyway
, quindi qui attualmente milky
non si verifica in questo documento ma se l'algoritmo cerca la parola in questione all'interno di stringhe troverà anche la parola milky
all'interno della stringa milkyway
, in questo modo parole milky
e way
verranno conteggiati in entrambi i miei documenti (esempio precedente).
EDIT 2:
In definitiva voglio essere in grado di calcolare la somiglianza indice del coseno tra i documenti.
Forse rimuovere gli spazi quindi utilizzare regex? – zx8754
Hai solo bisogno di farlo per "via lattea" o altri? Preferisci che siano entrambi "milkyway"? –
@ sebastian-c ho bisogno di farlo per più parole. preferisco entrambi diventare "milkyway" in qualche modo. Potrebbero esserci casi come "tutti i giorni" e "tutti i giorni". In questo caso preferirei che fossero "tutti i giorni". – user3664020