我正在 python 中处理一些文本,它内部已经采用 unicode 格式,但我想删除一些特殊字符并用更标准的版本替换它们。
我目前有一条看起来像这样的线路,但它变得越来越复杂,我发现它最终会带来更多麻烦。
tmp = infile.lower().replace(u"\u2018", "'").replace(u"\u2019", "'").replace(u"\u2013", "").replace(u"\u2026", "")
例如 u\2018 和 \u2019 是left http://www.fileformat.info/info/unicode/char/2018/index.htm and right http://www.fileformat.info/info/unicode/char/2019/index.htm单引号。这些在某种程度上是可以接受的,但对于这种类型的文本处理,我认为不需要它们。
像this http://www.fileformat.info/info/unicode/char/2013/index.htmu\2013 EN DASH 和this http://www.fileformat.info/info/unicode/char/2026/index.htm绝对不需要水平省略号。
有没有办法删除这些引号并使用简单的标准引号,不会破坏“使用 nltk”的文本处理,并删除诸如 EN DASH、水平省略号之类的内容,而不会发出这样一个怪物调用,就像我看到开始抬起头一样上面的示例代码?
如果您的文本是英文并且您想以人类可读的方式清理它,请使用第三方模块unidecode https://pypi.python.org/pypi/Unidecode。它将大量字符替换为最接近的 ASCII 字符。只需申请unidecode.unidecode()
到任何字符串进行替换:
from unidecode import unidecode
clean = unidecode(u'Some text: \u2018\u2019\u2013\u03a9')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)