Ich habe dieses Problem für ein paar Tage festgefahren. Ich möchte in der Lage sein zu überprüfen und zu zählen, wenn jedes Wort aus uniqueBagOfWords in einem Satz erscheint zum BeispielWie überprüft und zählt, wenn ein Wort in einem LinkedHashset in einem Satz von einer Arraylist erscheint?
UniqueBagOfWords = [i, wie, zu, spielen, Tennis, denken, Fußball, braucht, groß, Änderungen]
Ausgang würde
Satz bE- - Ich mag Tennis spielen = 1,1,1,1,0,0,0,0,0
Satz - Ich mag Fußball wie = 1,2, 0,0 0,0,1,0,0,0
public static void main(String[] args) {
List<String> sentences = new ArrayList<String>();
sentences.add("i like to play tennis");
sentences.add("i think football needs big changes");
sentences.add("i like football like");
List<String[]> bagOfWords = new ArrayList<String[]>();
for(String str : sentences){
bagOfWords.add(str.split(" "));
}
Set<String> uniqueBagOfWords = new LinkedHashSet<String>();
for(String[] s : bagOfWords){
for(String ss : s)
for(String st : ss.split(" "))
if(!uniqueBagOfWords.contains(st))
uniqueBagOfWords.add(st);
}
Ich habe das versucht, ich weiß es ist nicht richtig, aber kann nicht herausfinden, wo ich von hier aus gehen soll. Jede Hilfe wäre großartig!
Warum möchten Sie das Set trotzdem verwenden? Sie können es mit nur Arraylist tun. –
Wie bekommt man '1,1,1,1,0,0,0,0,0' aus" Ich spiele gerne Tennis "? Sollte es nicht 5 geben, da "Tennis" in der Tasche ist? – Bohemian
Sie haben einen Hash-Satz. Sie müssen es nicht durchlaufen. Verwenden Sie einfach 'contains()'. – EJP