PDA

Visualizza la versione completa : splittare la frase in parole


uMoR
31-03-2006, 20:21
my @parole = split(/ /, $each);
my @parole = split(/\s+/, $each);

Usando ambedue questi casi, non mi divide alcuni spezzoni di testo tipo "a where you can get answers to your".. il perl li considera parola unica, perch ?!?! :confused:

shishii
01-04-2006, 20:53
a me funziona perfettamente, sei sicuro che la frase non contenga caratteri speciali?

uMoR
01-04-2006, 21:01
Ho scoperto che c' un altro modo non interpretato da perl per fare lo spazio. Con \s non funziona, / / nemmeno, copiando e incollando tale carattere nel sorgente funziona!

Ma non capisco che carattere sia :D

shishii
01-04-2006, 21:13
allora probabilmente il sorgente e la fonte da cui prelevi la frase sono in codifica diversa tipo utf8 e iso-8859-1

prova ad usare nel sorgente all'inizio:

#!/usr/bin/perl

use utf8;

uMoR
01-04-2006, 21:20
nel caso per fare la conversione automatica come posso fare ?

shishii
01-04-2006, 21:23
la conversione delle codifiche non una cosa banale e comporta pericoli. Sotto Linux c' un tool da linea di comando che si chiama "recode"

uMoR
01-04-2006, 21:25
e nel caso di documenti prelevati dal web conosci qualche altro sistema ?

shishii
02-04-2006, 00:16
prova a vedere se questo modulo ti serve:

http://search.cpan.org/~mthurn/I18N-Charset-1.379/lib/I18N/Charset.pm

uMoR
02-04-2006, 00:33
ho scoperto che a generare quei caratteri strani era HTML::Entities

Ora non lo uso pi e si risolto :)

Loading