2017-08-15 2 views
0

Sehr neu in R und Codierung, und versuchen, eine Häufigkeitsanalyse für eine lange Liste von Sätzen und deren Gewichtung durchzuführen. Ich habe die Daten nicht verschachtelt und mutiert, aber wenn ich versuche, Stoppwörter zu entfernen, wird die Reihenfolge der Wörter in jedem Satz randomisiert. Ich muss später Bigramme erstellen und würde es vorziehen, wenn sie auf dem ursprünglichen Satz basieren.R - Sortierung bei Verwendung von anti_join zum Entfernen von Stoppwörtern (Erstellen von Ngrammen)

Hier ist der relevante Code kann mehr geben, wenn nicht ausreichend:

library(dplyr) 
library(tidytext) 

data = data%>% 
    anti_join(stop_words)%>% 
    filter(!is.na(word)) 

Was kann ich tun, um die ursprüngliche Reihenfolge, um in jedem Satz zu behalten? Ich habe alle Wörter in einem Satz indiziert, damit ich sie mit ihrem Gewicht vergleichen kann. Gibt es eine bessere Möglichkeit, Stoppwörter zu entfernen, die die Sortierreihenfolge nicht durcheinander bringen?

sahen hier eine ähnliche Frage, aber es ist ungelöst: How to stop anti_join from reversing sort order in R?

auch versucht, dies aber nicht funktioniert hat: dplyr How to sort groups within sorted groups?

bekommen Hilfe von einem Kollegen in diesen schreiben, aber leider zur Verfügung, sie ist nicht mehr so ​​jede Einblick wird hilfreich sein. Vielen Dank!

Antwort

0

Sie eine Art Index, um Ihre Daten hinzufügen könnte

library(dplyr) 
library(tidytext) 

data = data %>% 
    dplyr::mutate(idx = 1:n()) %>% 
    dplyr::anti_join(stop_words) %>% 
    dplyr::filter(!is.na(word)) %>% 
    dplyr::arrange(idx) 

vor dem Sortieren (die dplyr:: ist nicht notwendig, aber hilft Ihnen, sich zu erinnern, wo Funktion herkommt)

+0

versucht, dieses aber mein Index ist für die ganze Phrase selbst und nicht jedes Wort darin, so wird der Satz selbst immer noch verschlüsselt. Ich möchte, dass die Bigramme für den ursprünglichen Satz erstellt werden. Wenn ich also beispielsweise Trumps Tweet von "Make America Great Again" anstelle von "Make America", "America Great" und "Great Again" verwende, gibt mein Code Bigrams wie "Make Great" zurück ":(( – shwarmashubs

+0

könnten Sie ein Beispiel veröffentlichen, wie Ihre Daten aussehen? Am besten wäre ein reproduzierbares Beispiel, damit wir damit herumspielen können. –

Verwandte Themen