【发布时间】:2016-07-13 23:12:30
【问题描述】:
我正在阅读《Python Text Processing with NLTK》这本书,书上的结果是:
>>> stopwords.fileids()
['danish', 'dutch', 'english', 'finnish', 'french', 'german', 'hungarian', 'italian', 'norwegian', 'portuguese', 'russian', 'spanish', 'swedish', 'turkish']
但是当我在终端运行代码时,结果是:
>>> stopwords.fileids()
[u'danish', u'dutch', u'english', u'finnish', u'french', u'german', u'hungarian', u'italian', u'norwegian', u'portuguese', u'russian', u'spanish', u'swedish', u'turkish']
每个字符串前面的“u”是什么?
【问题讨论】:
-
比较两个字符串,一个带前缀 'u' 而另一个不带前缀,仍然会返回 True(完美匹配),因此在许多情况下您无需担心。
-
您当前使用的是 Python 2。您希望切换到 Python 3 进行自然语言处理,因为它具有出色的文本处理能力;这个
u前缀也没有了。 NLTK 3.0 版支持 Python 3。 -
@AnttiHaapala,如果用户使用带有 NLTK v. 2 的 Python 2,就不会有 unicode 前缀,对吗?她使用的文本中的结果(大概)是使用 Python 2 和 NLTK 2 生成的,这些结果显示 no unicode 前缀。
-
@Silenus 也许;但现在任何从事自然语言处理的人都应该同时使用 Python 3 和 NLTK 3。