Ich habe versucht, einen regulären Ausdruck tokenizer mit nltk in Python zu implementieren, aber das Ergebnis ist folgendes:nltk regulären Ausdruck tokenizer
>>> import nltk
>>> text = 'That U.S.A. poster-print costs $12.40...'
>>> 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; includes ], [
... '''
>>> nltk.regexp_tokenize(text, pattern)
[('', '', ''), ('', '', ''), ('', '-print', ''), ('', '', ''), ('', '', '')]
Aber das gewünschte Ergebnis ist folgendes:
['That', 'U.S.A.', 'poster-print', 'costs', '$12.40', '...']
Warum? Wo ist der Fehler?
Try 'von nltk.tokenize Import RegexpTokenizer',' tokenizer = RegexpTokenizer (Muster) 'und dann' tokenizer.tokenize (Text) ' –
Es kehrt zurück '[ 'Das' "USA", "Posterdruck", "Kosten", "$ 12.40", "..."] in meinem Notizbuch. Vielleicht ein Versions-Problem? (3.0.4) – ayhan
Ich habe versucht mit Python 3.5 aber das Ergebnis ist das noch: [('', '', ''), ('', '', ''), ('', '-print' , '', ('', '', ''), ('', '', '')] –