Ich habe eine riesige Liste von Textdateien zu Tokenize. Ich habe den folgenden Code, der für einen kleinen Datensatz funktioniert. Ich habe jedoch Probleme, die gleiche Prozedur mit einem großen Dataset zu verwenden. Ich gebe das Beispiel eines kleinen Datensatzes wie folgt.Tokenizing eine große Menge an Text in Python
In [1]: text = [["It works"], ["This is not good"]]
In [2]: tokens = [(A.lower().replace('.', '').split(' ') for A in L) for L in text]
In [3]: tokens
Out [3]:
[<generator object <genexpr> at 0x7f67c2a703c0>,
<generator object <genexpr> at 0x7f67c2a70320>]
In [4]: list_tokens = [tokens[i].next() for i in range(len(tokens))]
In [5]: list_tokens
Out [5]:
[['it', 'works'], ['this', 'is', 'not', 'good']]
Während alle so gut mit einer kleinen Datenmenge funktioniert, ich begegne Problem bei der Bearbeitung eine riesige Liste von Listen von Zeichenkette (mehr als 1.000.000 Listen von Strings) mit dem gleichen Code. Da ich immer noch die Zeichenfolgen mit dem großen Dataset wie in In [3]
in Token zerlegen kann, schlägt es in In [4]
fehl (d. H. Im Terminal beendet). Ich vermute, es ist nur, weil der Textkörper zu groß ist.
Ich bin daher hier, um Vorschläge zur Verbesserung der Prozedur zu erhalten, um Listen von Strings in einer Liste zu erhalten, wie ich in In [5]
.
Mein tatsächlicher Zweck ist jedoch, die Wörter in jeder Liste zu zählen. Zum Beispiel, in dem Beispiel des kleinen Datensatzes oben, werde ich die folgenden Dinge haben.
Wenn ich Generatoren nicht in Listen umwandeln muss, um die gewünschten Ergebnisse (d. H. Wortanzahl) zu erhalten, wäre das auch gut.
Bitte lassen Sie mich wissen, wenn meine Frage unklar ist. Ich würde gerne so gut wie möglich klären. Vielen Dank.
Ich würde eine 'set()' verwenden, um die ursprüngliche Liste aller Wörter in allen Zeichenfolgen zu erstellen, und dann mit einer Zählung durchlaufen, um die Wertetabelle zu generieren. – beroe
Wie viel RAM hat Ihr Computer? Außerdem nehme ich an, dass Ihr Datensatz in einer Datei gespeichert ist, können Sie ihn Satz für Satz laden? Sie werden eine Menge Speicher auf diese Weise speichern – hmicn