我是 Python 的一个相当新的用户,我主要处理导入的文本文件,尤其是 csv 文件,这让我处理起来很头疼。我尝试阅读这样的文档:https://docs.python.org/2/howto/unicode.html https://docs.python.org/2/howto/unicode.html但我完全不明白所说的内容。我只是想要一些直接脚踏实地的解释。
例如,我想将从互联网导出的大量逐字记录标记为 csv 文件。我想使用 NLTK 的分词器来做到这一点。
这是我的代码:
with open('verbatim.csv', 'r') as csvfile:
reader = unicode_csv_reader(csvfile, dialect=csv.excel)
for data in reader:
tokens = nltk.word_tokenize(data)
当我对数据执行 print() 时,我得到干净的文本。
但是当我使用 tokenizer 方法时,它返回以下错误:
“ascii”编解码器无法解码位置 31 中的字节 0xe9:序号不在
范围(128)
看起来像是编码问题。我对文本所做的每一个小操作总是遇到同样的问题。你能帮我吗?
这应该可以做到:
with open('verbatim.csv') as csvfile: # No need to set mode to 'r', r is default
reader = unicode_csv_reader(csvfile, dialect=csv.excel)
for data in reader:
tokens = nltk.word_tokenize(unicode(data, 'utf-8'))
否则你也可以尝试:
import codecs
with codecs.open('verbatim.csv', encoding='utf-8') as csvfile:
reader = unicode_csv_reader(csvfile, dialect=csv.excel)
for data in reader:
tokens = nltk.word_tokenize(data)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)