从unicode中删除标点:错误

时间:2016-04-16 11:14:42

标签: python python-2.7 unicode

我需要从unicode字符串中删除标点符号。我看过几篇帖子,最推荐的帖子是enter image description here

我已实施以下内容:

table = dict.fromkeys(i for i in range(sys.maxunicode) if unicodedata.category(chr(i)).startswith('P'))

def tokenize(message):
    message = unicode(message,'utf-8').lower()
    #print message
    message = remove_punctuation_unicode(message)
    return message

def remove_punctuation_unicode(string):
    return string.translate(table)

但是当我运行代码时,弹出这个错误:

table = dict.fromkeys(i for i in range(sys.maxunicode) if unicodedata.category(chr(i)).startswith('P'))
TypeError: must be unicode, not str

我无法弄明白该怎么做。有人能告诉我如何解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

尝试使用unichr代替chr

Python 2.7.10 (default, Oct 14 2015, 16:09:02) 
[GCC 5.2.1 20151010] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys, unicodedata
>>> table = dict.fromkeys(i for i in range(sys.maxunicode) if unicodedata.category(unichr(i)).startswith('P'))
>>>