我正在清理 Europarl 的法语单语语料库(http://data.statmt.org/wmt19/translation-task/fr-de/monolingual/europarl-v7.fr.gz)。文件中的原始原始数据.gz
(我使用下载的wget
)。我想提取文本并查看它的外观,以便进一步处理语料库。
使用以下代码从中提取文本gzip
,我获得了类为 的数据bytes
。
with gzip.open(file_path, 'rb') as f_in:
print('type(f_in)=', type(f_in))
text = f_in.read()
print('type(text)=', type(text))
前几行的打印结果如下:
类型(f_in)=类'gzip.GzipFile'
类型(文本)=类'字节'
b'Reprise de la session\nJe d\xc3\xa9clare reprise la session du Parlement europ\xc3\xa9en qui avait \xc3\xa9t\xc3\xa9 interrompue le vendredi 17 d\xc3\xa9cembre dernier et je vous renouvelle tous mes vux en esp\xc3\xa9rant que vous avez pass\xc3\xa9 de bonnes vacances。\ncome vous avez pu le constater, le grand "bogue de l\'an 2000" ne s\'est pas produit。\n
我尝试使用以下代码解码utf8
二进制数据:ascii
with gzip.open(file_path, 'rb') as f_in:
print('type(f_in)=', type(f_in))
text = f_in.read().decode('utf8')
print('type(text)=', type(text))
它返回如下错误:
UnicodeEncodeError:“ascii”编解码器无法在位置 26 编码字符“\xe9”:序数不在范围内(128)
我也尝试使用codecs
和unicodedata
包来打开文件,但它也返回了编码错误。
你能帮我解释一下我应该怎么做才能得到正确格式的法语文本,例如这样吗?
Reprise de la session\nJe déclare reprise la session du Parlement européen qui avait été interrompue le vendredi 17 月 17 日 dernier et je vous renouvelle tous mes vux en espérant que vous avez passé de bonnes vacances。\nComme vous avez pu le constater, le grand " bogue de l'an 2000" ne s'est pas produit。\n
非常感谢您的帮助!