Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >一些意大利语单词不能得到正确的表示

一些意大利语单词不能得到正确的表示
EN

Stack Overflow用户
提问于 2016-01-04 07:44:53
回答 1查看 958关注 0票数 0

我需要使用python3和nltk来规范来自意大利语wiki的文本,我有一个问题。大多数单词都是可以的,但是有些单词映射的不正确,更确切地说,是一些符号。

例如:

“水果\xE3”、“n\xE2\xba”、“citt\xe3”

我确信问题就在符号中,如à,è.

代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# coding: utf8
import os

from nltk import corpus, word_tokenize, ConditionalFreqDist


it_sw_plus = corpus.stopwords.words('italian') + ['doc', 'https']
#it_folder_names = ['AA', 'AB', 'AC', 'AD', 'AE', 'AF']
it_path = os.listdir('C:\\Users\\1\\projects\\i')
it_corpora = []

def normalize(raw_text):
    tokens = word_tokenize(raw_text)
    norm_tokens = []
    for token in tokens:
        if token not in it_sw_plus and token.isalpha():
            token = token.lower().encode('utf8')
            norm_tokens.append(token)
    return norm_tokens

for folder_name in it_path:
    path_to_files = 'C:\\Users\\1\\projects\\i\\%s' % (folder_name)
    files_list = os.listdir(path_to_files)
    for file_name in files_list:
        file_path = path_to_files + '\\' + file_name
        text_file = open(file_path)
        raw_text = text_file.read().decode('utf8')
        norm_tokens = normalize(raw_text)
        it_corpora.append(norm_tokens)
    print(it_corpora)

我如何解决这个问题?我正在运行Win7(rus)。

当我尝试这段代码时:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import io

with open('C:\\Users\\1\\projects\\i\\AA\\wiki_00', 'r', encoding='utf8') as fin:
    for line in fin:
        print (line) 

在PowerShell中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    <doc id="2" url="https://it.wikipedia.org/wiki?curid=2" title="Armonium">

Armonium



Traceback (most recent call last):
  File "i.py", line 5, in <module>
    print (line)
  File "C:\Python35-32\lib\encodings\cp866.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u2013' in position 3: character maps to <undefined>

在Python命令行中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<doc id="2" url="https://it.wikipedia.org/wiki?curid=2" title="Armonium">

Armonium



Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\1\projects\i.py", line 5, in <module>
    print (line)
  File "C:\Python35-32\lib\encodings\cp866.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u2013' in position
3: character maps to <undefined>

当我尝试请求时:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python35-32\lib\encodings\cp866.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u2013' in position
90: character maps to <undefined>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-04 08:46:25

如果您知道python2中的编码,请尝试在读取文件时指定编码。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import io
with io.open(filename, 'r', encoding='latin-1') as fin:
    for line in fin:
        print line # line should be encoded as latin-1

但是在您的例子中,您发布的文件不是latin1文件,而是utf8文件,在python3

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> import urllib.request
>>> url = 'https://raw.githubusercontent.com/GiteItAwayNow/TrueTry/master/it'
>>> response = urllib.request.urlopen(url)
>>> data = response.read()
>>> text = data.decode('utf8')
>>> print (text) # this prints the file perfectly.

在utf8中读取“python2”文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import io
with io.open(filename, 'r', encoding='utf8') as fin:
    for line in fin:
        print (line) # line should be encoded as utf8

读取“utf8”文件,在python3

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
with open(filename, 'r', encoding='utf8') as fin:
    for line in fin:
        print (line) # line should be encoded as utf8

作为一种良好的实践,在处理文本数据时,尽可能使用unicode和python3。请看一下

此外,如果尚未安装此模块以便在windows控制台上打印utf8,则应尝试:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install win-unicode-console

或者下载这个:console-0.4.zip,然后是python setup.py install

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34594768

复制
相关文章
清理垃圾bat代码
rd /s /q %windir%\temp & md %windir%\temp
全栈程序员站长
2022/07/04
1K0
清理垃圾bat代码
/tmp目录清理问题
2019年7月10日 ⋅ 浏览量: 4   
以谁为师
2019/07/11
3.2K0
解决spark日志清理问题
由于采用了sparkstreaming 任务一直再运行导致日志文件暴涨,达到了硬盘的预警,不得已必须指定策略定期删除日志已保证服务器硬盘空间。
用户1217611
2020/11/24
2.2K0
关于清理webgame缓存的问题
直接请求百度首页http://www.baidu.com/,看到所请求的资源都是Cache
meteoric
2018/11/16
2.2K0
【Rust 基础篇】Drop Trait 清理代码
在 Rust 中,Drop trait 是一种特殊的 trait,用于定义在值离开作用域时进行清理操作的行为。通过实现 Drop trait,我们可以自定义类型在销毁时的清理逻辑,例如释放资源或执行必要的操作。
繁依Fanyi
2023/10/12
2100
解决svn清理失败,路径显示乱码问题
点击下载   SQLite是一款轻型的数据库,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。
程序员云帆哥
2022/05/12
2.2K0
解决svn清理失败,路径显示乱码问题
利用正则批量清理Teleport Ultra/Pro冗余代码
Teleport 是一款非常优秀的网站离线浏览工具(即网站整站下载工具),但该软件下载的网页文件里会包含大量冗余代码(如:tppabs),手动去修改工作量很大。
德顺
2019/11/13
9830
只需一串代码,实现清理电脑缓存
任何电脑使用时间过久都会留下垃圾痕迹,及时清理系统垃圾 bat才能确保电脑的顺畅。下面就介绍一下一键清理系统垃圾bat的方法,方便快捷。
小何.
2023/03/03
2.4K0
只需一串代码,实现清理电脑缓存
[PHP] 存储改造中的逻辑和清理遗留的问题
现象:用户读信时,根据路径的哈希结果,访问四台服务器中一台请求文件,这四台缓存机器已经下线,访问不到再去后端存储访问浪费了时间
唯一Chat
2019/09/29
5840
CMI | 关于生物清理以及垃圾清理
关于生物清理 在CMI中有个定时任务的配置文件(schedules.yml) killall: Enabled: true Repeat: true Delay: 3600 Commands: - * - * 我们可在其中添加特殊命令 - actionbar! &#x5C06;&#x5728;30&#x79D2;&#x540E;&#x6E05;&#x7406;&#x751F;&#x7269; - delay 10 - actionbar! &#x5C06;&#x5728;20&#x
BreezeCloud
2022/10/04
1.4K0
清理Xcode
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/53992611
用户1451823
2018/09/13
1.1K0
清理Xcode
Linux清理磁盘(定位高占用-->清理)
定位 df -ah可以通过 User% 那一列哪看到个占用多。 进入根目录,查询大文件与目录 cd / du -sh * | sort -n # 查看大小1GB以上的目录并且排序 du -h --max-depth=1 |grep 'G' |sort 迭代执行以上操作,定位到可以删除的大文件,将其删除即可。
bboy枫亭
2021/12/07
3.7K0
问题解决:Ubuntu 磁盘空间占满如何清理
磁盘空间占满了,有两种解决办法:开源节流。这里我讲节流。 一个命令(从根目录开始): du -h --max-depth=1 该命令用于罗列当前目录下一级以内东西大小,转换成普通人能看的。 递归。 找到病灶之后,如果不敢删,百度一下。一般如果是日志啥的但删无妨。 我找到是在 var 下面的 docker,于是百度了一下解决方法: docker system prune -a 使用的时候建议将要保留的镜像打开,不然会全给你清理了。它有给英文提示。
看、未来
2022/05/06
1.2K0
Windows更新清理工具 (winsxs 清理工具)
Windows 更新清理工具是一款效果非常显著的Windows7、Windows8操作系统清理优化工具!经常安装系统的朋友相比有所体会,刚刚安装完成的Win7、Win8其实占的空间并不大,去掉页面文件和休眠文件后,真正的系统只几个G而已,但如果你给系统升级了补丁后,你会发现系统所需要占用的空间直线上升!轻松突破10G的门槛!加上休眠文件和页面文件,本来预留给系统的30G空间马上变得也不富裕了。 究其原因,在于系统目录下的WinSxS目录占用了大量的空间!在我们安装了大量的系统更新后,新的系统文件会替代旧
张善友
2018/01/19
11.8K1
Windows更新清理工具 (winsxs 清理工具)
代码乱码问题
vs studio默认编码使用unicode,qt creator编辑器代码在vs中不识别错误
sofu456
2023/07/10
1330
代码乱码问题
10行Python代码自动清理电脑内重复文件,解放双手!
「给定一个文件夹,使用Python检查给定文件夹下有无文件重复,若存在重复则删除」
Python进阶者
2020/09/30
1K0
10行Python代码自动清理电脑内重复文件,解放双手!
「给定一个文件夹,使用Python检查给定文件夹下有无文件重复,若存在重复则删除」
刘早起
2020/08/20
1.4K0
Windows 10 电脑垃圾清理教程,缓存垃圾清理
Windows 10是目前广泛使用的操作系统之一。由于长时间运行Windows 10电脑,会积累大量临时文件、日志和其他不需要的文件,导致系统变慢并占用磁盘空间。
用户8551789
2023/04/10
3.8K0
Windows 10 电脑垃圾清理教程,缓存垃圾清理
下一个问题,你合理清理内存了吗?
大家好,我是光城,没想到昨日问题留言竟然这么多人,那么这个系列,我也将继续持续下去,今天先来给大家答案,接下来给出一个新问题。
公众号guangcity
2022/04/27
2120
10行Python代码自动清理电脑内重复文件,解放双手!
「给定一个文件夹,使用Python检查给定文件夹下有无文件重复,若存在重复则删除」
小小詹同学
2020/09/08
5080
10行Python代码自动清理电脑内重复文件,解放双手!

相似问题

查找Roslyn默认的可空上下文

25

JBehave空上下文

10

setUserVisibleHint中的空上下文

216

隐藏空上下文菜单

10

异步上下文管理器

31
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文