2016-06-15 2 views
0

ich Text in eine TXT-Datei mit Token versehen haben sich wie folgt:Python nlp - wie für jeden Satz Token-ID von 1 nach einer Leerzeile starten

token_1 
token_2 
token_3 


token_4 
token_5 

Tokens 1, 2 und 3 den ersten Satz bilden und Token 4 und 5 bilden den zweiten Satz. Es gibt zwei Leerzeilen zwischen dem letzten Token des ersten Satzes und dem ersten Token des zweiten Satzes. (Tatsächlich habe ich zwei Versionen dieser Datei, eine hat zwei leere Zeilen zwischen den Sätzen und die andere hat keine leeren Zeilen)

Ich brauche die Token-ID, um von 1 für jeden Satz zu beginnen. Meine Ausgabe sollte wie folgt lauten:

1 token_1 
2 token_2 
3 token_3 

1 token_4 
2 token_5 

Ich weiß, ich könnte ein Erhöhen ID für alle erhalten von

id = 0 
for token in doc: 
id += 1 

aber die ID weiter als 4 und 5 im zweiten Satz. Vielen Dank im Voraus.

Antwort

0

Setzen Sie einfach Ihren Zähler am Ende eines Satzes zurück. Sie können das Ende eines Satzes mit einem Satzdetektor (oder zwei leere Zeilen in Ihrem Fall) finden.

In,

for token in doc: 
    id=id+1 

wenn die erkannte Token ein Newline ist, stellen Sie die ID auf 1

+0

Ich habe eine andere Datei mit dem gesamten Text ein Satz in einer Zeile. – ozwiz

+0

Ich habe eine andere Datei mit dem ganzen Text mit jedem Satz in einer Zeile. Wie kann ich diese Zeilen einzeln lesen und jedem Token eine ID zuweisen? file.readlines() erstellt eine Liste von Sätzen, aber das Tokenizer-Modul, das ich verwende, möchte einen Unicode-Text anstelle einer Liste und gibt einen Fehler aus. – ozwiz

+0

Machen Sie ein for-each, um die Liste zu analysieren, und Sie erhalten Strings, die Sie verwenden können. –

Verwandte Themen