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

调用SparseTermSimilarityMatrix.inner_product()报bool对象解包错误

问题解决:TypeError: cannot unpack non-iterable bool object

错误原因

调用SparseTermSimilarityMatrix.inner_product()时,传入的normalized=True不符合方法参数要求。该方法的normalized参数需要接收一个二元组(比如(True, True)),分别对应X向量和Y向量是否需要归一化;但你传入了单个布尔值True,导致代码尝试将单个布尔值拆成两个变量时触发错误。

从报错的源码行normalized_X, normalized_Y = normalized能明显看出,方法期望normalized是可迭代的二元结构,单个布尔值无法被解包。

解决方案

将normalized=True替换为二元组形式,根据需求选择以下任意一种:

  • 同时归一化X和Y:normalized=(True, True)
  • 只归一化X:normalized=(True, False)
  • 只归一化Y:normalized=(False, True)
  • 保持原有向量的归一化状态:normalized=('maintain', 'maintain')

修改后的代码示例:

from gensim.similarities import (
    WordEmbeddingSimilarityIndex,
    SparseTermSimilarityMatrix
)

w2v_model         = api.load("glove-wiki-gigaword-50")
similarity_index  = WordEmbeddingSimilarityIndex(w2v_model)
similarity_matrix = SparseTermSimilarityMatrix(similarity_index, dictionary)

score = similarity_matrix.inner_product(
    X = [
        (0, 1), (1, 1), (2, 1), (3, 2), (4, 1), 
        (5, 1), (6, 1), (7, 1), (8, 1), (9, 1), 
        (10, 1), (11, 1), (12, 1), (13, 1), (14, 1), 
        (15, 1), (16, 3)
    ], 
    Y = [(221, 1), (648, 1), (8238, 1)], 
    normalized = (True, True)  # 修改为二元组形式
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 02:30:43