我想用葡萄牙语标记一些文字。我认为我做的几乎一切都是正确的,但我有一个问题,我无法意识到什么可能是错误的。我在尝试这个密码:
text = '''Família S.A. dispõe de $12.400 milhões para concorrência. A
âncora desse négócio é conhecida no coração do Órgão responsável. '''
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 ], [
'''
print nltk.regexp_tokenize(text, pattern,flags=re.UNICODE)得到这样的结果:
['Fam\xc3', 'lia', 'S.A.', 'disp\xc3\xb5e', 'de', '$12.400', 'milh\xc3\xb5es', 'para', 'concorr\xc3\xaancia', '.', 'A', '\xc3', 'ncora', 'desse', 'n\xc3', 'g\xc3\xb3cio', '\xc3', 'conhecida', 'no', 'cora\xc3', '\xc3', 'o', 'do', '\xc3', 'rg\xc3', 'o', 'respons\xc3', 'vel', '.']它在某些方面完成了预期的工作,但将“Família”=“Fam\xc3”、“lia”或“cora o”=“cora\xc3”、“\xc3 3”、“o”等其他术语分开。
有什么帮助吗?
发布于 2014-10-20 11:21:58
如果某人和我有同样的问题,只需更改默认的enconding。对于葡萄牙语,我使用‘拉丁语-1’集,并与它一起解码时,打印单词,以获得正确的字符。看看这个:
#!/usr/bin/env python
# -*- coding: latin-1 -*-
""" Spliting text in portuguese (enconding 'latin-1') using regex.
"""
import nltk
import re
print "\n****** Using Regex to tokenize ******"
text = '''Família-Empresa S.A. dispõe de $12.400 milhões para concorrência. A
âncora, desse negócio, é conhecida no coração do Órgão responsável. '''
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 ], [
'''
result = nltk.regexp_tokenize(text, pattern, flags=re.UNICODE)
for w in result:
print w.decode('latin-1')
print result结果是:
****** Using Regex to tokenize ******
Família-Empresa
S.A.
dispõe
de
$12.400
milhões
para
concorrência
.
A
âncora
,
desse
negócio
,
é
conhecida
no
coração
do
Órgão
responsável
.
['Fam\xedlia-Empresa', 'S.A.', 'disp\xf5e', 'de', '$12.400', 'milh\xf5es', 'para', 'concorr\xeancia', '.', 'A', '\xe2ncora', ',', 'desse', 'neg\xf3cio', ',', '\xe9', 'conhecida', 'no', 'cora\xe7\xe3o', 'do', '\xd3rg\xe3o', 'respons\xe1vel', '.']谢谢@JustinBarber的评论,为解决这个问题提供了一些线索。
全是这些人!
https://stackoverflow.com/questions/26414665
复制相似问题