You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python使用deepcut分词泰语文本时遇UnicodeDecodeError求助

解决deepcut泰文分词后的UnicodeDecodeError问题

你这是把Python 3里的字符串和字节对象搞混啦!咱们来一步步理清问题:

问题根源

在Python 3环境下,deepcut.tokenize()返回的结果已经是Unicode字符串组成的列表,根本不是字节对象。你尝试对这些字符串调用.decode('utf-8'),等于先把字符串默认编码成字节(这一步就生成了错误的字节序列),再去解码,自然触发了UnicodeDecodeError。

而你看到的['\xe0', '\xb8', '\x95', ...],其实是错误遍历导致的——你把result里的每个字符串拆成了单个字符的字节表示,正常的result应该是['ตัดคำ', 'ได้', 'ดี', 'มาก']这样的字符串列表。

正确的处理代码

直接使用分词结果就行,完全不需要额外解码:

import deepcut
thai = 'ตัดคำได้ดีมาก'
result = deepcut.tokenize(thai)

# 直接打印整个分词结果
print(result)  # 输出: ['ตัดคำ', 'ได้', 'ดี', 'มาก']

# 遍历打印每个分词
for word in result:
    print(word)

验证类型(可选)

要是你想确认返回元素的类型,可以跑这段代码:

print(type(result[0]))  # 输出: <class 'str'>,说明是字符串类型,完全不需要解码

之前你写的for i in result其实是在遍历字符串的每个字符(因为result里的元素本身就是字符串),所以才会输出单个字节的转义序列,这也是个小误区哦!

内容的提问来源于stack exchange,提问作者Cryssie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:00:19