[Python] Un aiuto su RegEx

Marco Ippolito ippolito.marco a gmail.com
Sab 1 Mar 2014 09:04:55 CET


Ciao a tutti,

con NLTK sto provando a correttamente suddividere  '5,300 full-time employees'
in: '5,300', 'full-time', 'employees'

Come vedete, ho provato diverse soluzioni, ma il risultato riguardante
il numero '5,300' è sempre scorretto: '5', ',' ,'300' :
'5', ',', '300', 'full-time', 'employees' invece di
'5,300',  'full-time', 'employess'

from nltk.tokenize import RegexpTokenizer
pattern = r'''(?x)              # set flag to allow verbose regexps
    ([A-Z]\.)+                  # abbreviations, e.g. U.S.A.
    | \w+(-\w+)*                # words with optional internal hyphens
    | \$?\d+(\.\d+)?%?          # currency and percentages, e.g. $12.40, 82%
    | \.\.\.                    # ellipsis
    | [][.,;"'?():-_']          # these are separate tokens
    | \d+([\d,]?\d)*(\.\d+)?    # number,number
    | \d+(\,\d+)
    | \[0-9]+\,\[0-9]+
    | /[1-9](?:\d{0,2})(?:,\d{3})*(?:\.\d*[1-9])?|0?\.\d*[1-9]|0/
'''
tokenizer = RegexpTokenizer(pattern)

Avete qualche consiglio da darmi per riuscire a mettere insieme '5',
',', '300 : '5,300' ?

Vi ringrazio.
Marco


Maggiori informazioni sulla lista Python