如何防止nltk语料库将扩展ascii作为unicode读取

2024-06-26 00:03:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在加载一个文本文件,其中包含南非荷兰语维基百科的纯文本版本作为nltk语料库,使用以下代码:

import nltk
from nltk.corpus import PlaintextCorpusReader
from nltk.corpus.util import LazyCorpusLoader
from __future__ import division
afwikipedia = LazyCorpusLoader('afwikipedia', PlaintextCorpusReader, r'(?!\.).*\.txt')
af = nltk.Text(afwikipedia.words())

然后,我用下面的句子看最上面的单词:

^{pr2}$

不幸的是,这种方法有几个问题“n”是南非荷兰语中非常流行的一个词,在英语中的意思与“a”相同。上面的方法将它分成两部分“'”和“n”。另外,所有扩展的ASCII字符似乎都被视为unicode而不是ASCII,因此“verpleër”变成了“verple\xc3r”。在

有人知道我该怎么解决这个问题吗?尤其是对ascii字符的unicode处理真的很烦人。在

我还做了以下工作:

# Create a file called sitecustomize.py in c:\python24\Lib\site-packages.
import sys
sys.setdefaultencoding('iso-8859-1')   # ASCII latin.

Tags: 方法from文本importsysasciiunicodecorpus
1条回答
网友
1楼 · 发布于 2024-06-26 00:03:54

这不是unicode,而是混合了8位字符的ascii。PlaintextCorpusReader接受一个encoding参数,可以用它来解决问题。在

至于将'与{}分开,这是标记器的问题。找到一个令你满意的标记器,并告诉你的语料库读者使用它。在

相关问题 更多 >