TypeError:在将gensim转换为tensorboard时,需要一个类似字节的对象,而不是str

2024-04-26 18:49:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用以下代码将gensimw2v文件转换为Tensorboardtsv文件:

with open(outfiletsv, 'w+b') as file_vector:
    with open(outfiletsvmeta, 'w+b') as file_metadata:
        for word in model.index2word:
            file_metadata.write(gensim.utils.to_utf8(word) + gensim.utils.to_utf8('\n'))
            vector_row = '\t'.join(str(x) for x in model[word])
            file_vector.write(vector_row + '\n')

它会导致以下错误:

^{pr2}$

我将b添加到打开文件片段中的原始w+以抵消相反的问题(TypeError: write() argument must be str, not bytes)。在

我试着加上'vector_row=vector_行编码('UTF-8'),但这不起作用。在

我该如何补救TypeError?在


Tags: 文件informodelaswithutilsopen
1条回答
网友
1楼 · 发布于 2024-04-26 18:49:34

您只需将字符串转换回字节:

file_vector.write(vector_row.encode() + b'\n')

但是,您的代码已经以字节的形式读取文件,然后使用以下命令显式转换为str(我猜):'\t'.join(str(x) for x in model[word])

因此,您可能需要清理并在任何地方使用字节,而不是来回移动:)

相关问题 更多 >