CPU- und speichereffiziente NGram-Extraktion mit R

Ich habe einen Algorithmus geschrieben, der NGramme (Bigramme, Trigramme, ... bis 5 Gramm) aus einer Liste von 50000 Straßenadressen extrahiert. Mein Ziel ist es, für jede Adresse einen Booleschen Vektor zu haben, der angibt, ob die NGrams in der Adresse vorhanden sind oder nicht. Dafür wird jede Adresse durch einen Vektor von Attributen charakterisiert, und dann kann ich eine Gruppierung auf den Adressen durchführen. Das Algo funktioniert so: Ich beginne mit den Bi-Grammen und berechne alle Kombinationen von (az und 0-9 und / oder Tabellierung): zum Beispiel: aa, ab, ac, ..., a8, a9, a /, a, ba, bb, ... Dann führe ich für jede Adresse eine Schleife aus und extrahiere für alle Bigramme die Information 0 oder 1 (Bigramm nicht vorhanden oder vorhanden). Danach berechne ich für die Bigramme, die am häufigsten vorkommen, die Trigramme. Und so weiter ... Mein Problem ist die Zeit, die der Algo zum Laufen braucht. Ein weiteres Problem: R erreicht seine maximale Kapazität, wenn es mehr als 10000 NGrams gibt. Es ist offensichtlich, weil eine 50000 * 10000-Matrix riesig ist. Ich brauche Ihre Ideen, um das Algo zu optimieren oder zu verändern. Vielen Dank

Antworten auf die Frage(4)

Ihre Antwort auf die Frage