Sto utilizzando il tokenizer da NLTK in Python.Come rimuovere la punteggiatura?
Ci sono un sacco di risposte per rimuovere le punteggiature sul forum già. Tuttavia, nessuno di loro affrontare tutti i seguenti problemi insieme:
- più di un simbolo di fila. Ad esempio, la frase: ha detto "è così". Perché c'è una virgola seguita da virgolette, il tokenizzatore non rimuoverà. "Nella frase, il tokenizzatore darà ['He', 'said', ',' ',' that ',' s ',' it. '] invece di [' He ',' said ',' that ',' s ',' it ']. Alcuni altri esempi includono '...', '-', '!?', ',' ', E così via.
- Rimuovi simbolo alla fine della frase. Vale a dire la frase: Hello World. Il tokenizer darà ['Hello', 'World.'] Invece di ['Hello', 'World']. Osserva il punto alla fine della parola 'World'. Alcuni altri esempi includono '-', ', 'all'inizio, al centro o alla fine di ogni carattere.
- Rimuovere i caratteri con i simboli di fronte e dopo. es
'*u*', '''','""'
c'è un modo elegante di risolvere entrambi i problemi?
Quali difficoltà avete in attuazione di tali requisiti? Quali problemi hai con la tua versione attuale del codice? – jfs
btw, ci sono molte domande che hanno risposte che soddisfano tutti i requisiti, ad esempio, [Rimuovi la punteggiatura da stringhe formattate Unicode] (http://stackoverflow.com/q/11066400/4279) – jfs
Come sono le risposte da [Il modo migliore per cancellare la punteggiatura da una stringa in Python] (http://stackoverflow.com/q/265960/4279) non ti riesce? – jfs