Was ich brauche, ist nach Phrasen aus Array eins in Array zwei suchen, die Wörter enthält. Sagen wir "Array" enthält ["Margaret ist ein Mädchen"; "Liebt"; "Kartoffel"; "Swim"], und ein anderer ist ein zufälliger Text von Wörtern, der in Array gespuckt wird. Wie effizient nach Phrasen (einer Wortfolge) und nur nach Wörtern suchen? Weil es altmodisch ist, wird Timing-Problem sein, wie ich denke.Wie effizient nach bestimmten Phrasen in Array von Wörtern suchen?
1
A
Antwort
2
Wenn Sie die __.exists
oder __.forall
Funktionen, die sie so lange kurzzuschließen werden als (Nicht-) passendes Ergebnis gefunden wird, die etwa so effizient wie ein for-Schleife wird:
let arr1 = [| "Margaret is a girl"; "Loves";"Potato"; "Swim" |]
let arr2 = [| "Margaret"; "is"; "a"; "girl" |]
let ``can be built from`` words phrase =
phrase
|> String.split ' '
|> Array.forall (fun word -> words |> Array.contains word)
let buildablePhrases = arr1 |> Array.filter (``can be built from`` arr2)
Wenn die Arrays riesig und der oben genannte Code ist immer noch zu langsam, ich denke, Sie müssen mit der Einführung von Optimierungen beginnen - Dubletten entfernen, häufigste Suchen zwischenspeichern usw. Welche Optimierungen sinnvoll sind, hängt von den Daten ab, mit denen Sie zu tun haben.
+0
Danke, ich werde versuchen, Ihre Gedanken in meinen Code zu implementieren! –
Verwandte Themen
- 1. Effizient nach NSString in einem Satz suchen
- 2. Wie Daten nach bestimmten Wörtern analysieren
- 3. Prolog - Suchen nach alternativen Wörtern (Synonyme)
- 4. So suchen Sie nach ähnlichen Wörtern
- 5. Filtern nach bestimmten Wörtern in Funkendatenrahmen
- 6. So suchen Sie nach bestimmten Wortposition im Array von Strings
- 7. Suche nach bestimmten Wörtern in einem Satz
- 8. Nach bestimmten Zeichen suchen
- 9. Wie suche ich mit Ajax nach exakten Phrasen oder Wörtern in einem Eingabefeld?
- 10. Wie kann ich nach bestimmten Wörtern in einer Datei suchen und dann etwas tun?
- 11. Wie Phrasen in einer Zeichenfolge in Python suchen
- 12. Arraylist suchen nach bestimmten Element
- 13. Permutationen effizient suchen
- 14. Wie suchen AV-Engines Dateien effizient nach bekannten Signaturen?
- 15. Wie man Idiome ißt und Phrasen durch NLP-Techniken von anderen üblichen Phrasen unterscheidet?
- 16. So implementieren Sie ein Schlüsselwort Suchen Sie nach bestimmten Wörtern in MySQL?
- 17. Wie kann ich nach bestimmten Daten suchen?
- 18. eine Folge von Wörtern zwischen zwei bestimmten Wörtern in R
- 19. Ich möchte nach mehreren Wörtern in einer Suchleiste suchen
- 20. Wie Daten effizient suchen mit indiaListView Reagieren
- 21. Suche nach Wörtern/Phrasen aus einem großen Datenframe mit schnellerem Weg
- 22. Wie verwende ich Python, um nach Wörtern in einem Microsoft Word Dokument zu suchen, die von einer bestimmten Schriftart sind?
- 23. Regex zu bestimmten Wörtern
- 24. ElasticSearch - Sequenzielle Suche nach Schlüsselwörtern/Phrasen
- 25. Suchen und Hinzufügen von unterstrichenen Wörtern in VBA Word
- 26. Ich muss nach Wörtern oder Sätzen im Text nach einer Datenbank suchen
- 27. Suchen Sie nach Wörtern im Eingabetext aus der Wörter Sammlung
- 28. Wie nach bestimmten Wörtern in Spalte suchen und es in derselben Zeile, aber einer anderen Zelle zurückgeben?
- 29. Wie nach Namen nach Buchstaben in einem String Array suchen?
- 30. Suchen und Ersetzen von Wörtern in einer Textdatei (Java GUI)
Was haben Sie ausprobiert und womit kämpfen Sie gerade? –
Ich habe versucht, dieses Problem mit FOR-Schleife zu sortieren, und gehe durch das gleiche Array viele Male ... Und ich möchte es verbessern, benötigte Zeit zu verkürzen –
Ihr Problem ist nicht trivial und erfordert eine nicht-triviale Lösung, wenn Sie brauchen optimale Leistung. Die Suche nach großen Texten für mehrere Strings kann effizient mit [Präfixbäumen] (https://en.wikipedia.org/wiki/Trie) (aka * tries *) implementiert werden. –