コード例 #1
0
def test_blend_2():
    from divisi2.blending import blend, blend_svd
    Uref, Sref, Vref = blend([mat_4x3, third_mat_4x3]).svd(k=2)
    U, S, V = blend_svd([mat_4x3, third_mat_4x3], k=2)
    rec_ref = dot(Uref * Sref, Vref.T)
    rec_opt = dot(U * S, V.T)
    assert np.allclose(rec_ref, rec_opt)
コード例 #2
0
def test_cnet_blend():
    from divisi2.blending import blend, blend_svd
    matrix = divisi2.network.conceptnet_matrix('en')
    isa = divisi2.network.filter_by_relation(matrix, 'IsA').squish().normalize_all()
    atloc = divisi2.network.filter_by_relation(matrix, 'AtLocation').squish().normalize_all()
    Uref, Sref, Vref = blend([isa, atloc]).svd(k=3)
    U, S, V = blend_svd([isa, atloc], k=3)
    rec_ref = divisi2.reconstruct(Uref, Sref, Vref)
    rec_opt = divisi2.reconstruct(U, S, V)

    # Check a random sampling of the items.
    import random
    for row in random.sample(rec_ref.row_labels, 50):
        for col in random.sample(rec_ref.col_labels, 50):
            assert np.allclose(rec_ref.entry_named(row, col),
                               rec_opt.entry_named(row, col))