【问题标题】:UnicodeEncodeError: Ascii codec can't encode character u2581 in position 0: ordinal not in range(128)UnicodeEncodeError:Ascii 编解码器无法在位置 0 编码字符 u2581:序数不在范围内(128)
【发布时间】:2018-09-08 11:39:25
【问题描述】:

Traceback(最近一次调用最后一次):文件“train.py”,第 18 行,在 tf.app.run(main=nmt.main, argv=[os.getcwd() + '\nmt\nmt\nmt.py'] + 未解析) 文件 "/usr/local/lib/python2.7/dist-packages/tensorflow/python/platform/app.py", 第 48 行,运行中 _sys.exit(main(_sys.argv[:1] + flags_passthrough)) 文件“/home/paperspace/Desktop/nmt-chatbot/nmt/nmt/nmt.py”,第 551 行,在 主要的 run_main(FLAGS, default_hparams, train_fn, inference_fn) 文件“/home/paperspace/Desktop/nmt-chatbot/nmt/nmt/nmt.py”,第 544 行,在 运行主 train_fn(hparams, target_session=target_session) 文件“/home/paperspace/Desktop/nmt-chatbot/nmt/nmt/train.py”,第 271 行,在 火车 sample_tgt_data)文件“/home/paperspace/Desktop/nmt-chatbot/nmt/nmt/train.py”,第 142 行,在 run_full_eval sample_src_data, sample_tgt_data) 文件“/home/paperspace/Desktop/nmt-chatbot/nmt/nmt/train.py”,第 55 行,在 run_sample_decode infer_model.batch_size_placeholder,summary_writer)文件“/home/paperspace/Desktop/nmt-chatbot/nmt/nmt/train.py”,第 454 行,在 _sample_decode utils.print_out(b" src:" + utils.format_sentence(src_data[decode_id], hparams.subword_option))
文件 “/home/paperspace/Desktop/nmt-chatbot/nmt/nmt/utils/misc_utils.py”, 第 193 行,在 format_sentence 中 句子= format_spm_text(句子)文件“/home/paperspace/Desktop/nmt-chatbot/nmt/nmt/utils/misc_utils.py”, 第 181 行,格式为_spm_text return u"".join(format_text(symbols).decode("utf-8").split()).replace(File “/usr/lib/python2.7/encodings/utf_8.py”,第 16 行,在解码中 return codecs.utf_8_decode(input, errors, True) UnicodeEncodeError: 'ascii' codec can't encode character u'\u2581' in 位置 0:序数不在范围内(128)

Traceback(最近一次调用最后一次):文件“train.py”,第 18 行,在 tf.app.run(main=nmt.main, argv=[os.getcwd() + '\nmt\nmt\nmt.py'] + 未解析) 文件 "/usr/local/lib/python2.7/dist-packages/tensorflow/python/platform/app.py", 第 48 行,运行中 _sys.exit(main(_sys.argv[:1] + flags_passthrough)) 文件“/home/paperspace/Desktop/nmt-chatbot/nmt/nmt/nmt.py”,第 551 行,在 主要的 run_main(FLAGS, default_hparams, train_fn, inference_fn) 文件“/home/paperspace/Desktop/nmt-chatbot/nmt/nmt/nmt.py”,第 544 行,在 运行主 train_fn(hparams, target_session=target_session) 文件“/home/paperspace/Desktop/nmt-chatbot/nmt/nmt/train.py”,第 271 行,在 火车 sample_tgt_data)文件“/home/paperspace/Desktop/nmt-chatbot/nmt/nmt/train.py”,第 142 行,在 run_full_eval sample_src_data, sample_tgt_data) 文件“/home/paperspace/Desktop/nmt-chatbot/nmt/nmt/train.py”,第 55 行,在 run_sample_decode infer_model.batch_size_placeholder,summary_writer)文件“/home/paperspace/Desktop/nmt-chatbot/nmt/nmt/train.py”,第 454 行,在 _sample_decode utils.print_out(b" src:" + utils.format_sentence(src_data[decode_id], hparams.subword_option))
文件 “/home/paperspace/Desktop/nmt-chatbot/nmt/nmt/utils/misc_utils.py”, 第 193 行,在 format_sentence 中 句子= format_spm_text(句子)文件“/home/paperspace/Desktop/nmt-chatbot/nmt/nmt/utils/misc_utils.py”, 第 181 行,格式为_spm_text return u"".join(format_text(symbols).decode("utf-8").split()).replace(File “/usr/lib/python2.7/encodings/utf_8.py”,第 16 行,在解码中 return codecs.utf_8_decode(input, errors, True) UnicodeEncodeError: 'ascii' codec can't encode character u'\u2581' in 位置 0:序数不在范围内(128)

我在这些代码行中遇到错误:

def format_spm_text(symbols):
  """Decode a text in SPM (https://github.com/google/sentencepiece) 
  format."""
  return u"".join(format_text(symbols).decode("utf-8").split()).replace(
      u"\u2581", u" ").strip().encode("utf-8")

我正在尝试通过运行名为“train.py”的文件来训练聊天机器人。我使用命令“sudo python train.py”,我当前在 Ubuntu 中的 python 版本是 3.6 版。在我的本地 MacOS 上,完全相同的代码似乎运行良好,但我在其上运行 Python 2.7 版。

【问题讨论】:

  • 此错误由 Python 2.7 (.../usr/lib/python2.7/encodings/utf_8.py...) 产生。检查python --version 并尝试使用python3 命令。
  • 尝试解码为 ''unicode-escape''。前任。 format_text(symbols).decode("unicode-escape")

标签: python terminal chatbot


【解决方案1】:

试试这个:

def format_spm_text(symbols): 
  return u"".join(format_text(symbols).decode("unicode-escape").split()).replace(
  u"\u2581", u" ").strip().encode("utf-8")

【讨论】:

  • 我尝试使用“unicode-escape”,但仍然收到 Unicode 编码错误。此外,当我尝试运行命令“sudo python3 train.py”时,我得到了“非法指令:核心转储”错误。
  • 在 MacOS 上,这段代码似乎运行良好,但在 Ubuntu 虚拟桌面上,这段代码有很多问题。我应该提一下,我在 MacOS 上使用 Python 2,在 Ubuntu 上使用 Python 3.6。
猜你喜欢
  • 2014-01-22
  • 2011-07-05
  • 1970-01-01
  • 2018-06-29
  • 2015-08-12
  • 1970-01-01
  • 2019-07-13
  • 2019-09-29
  • 2019-11-10
相关资源
最近更新 更多