In [5]:
import numpy
import imaginet.task as task
import imaginet.defn.audiovis_rhn as audiovis
import imaginet.defn.audiovis4 as a4
import imaginet.tts as tts

In [2]:
def read_men():
    records = []
    for line in open("/home/gchrupala/reimaginet/data/MEN/MEN_dataset_natural_form_full"):
        word1, word2, score = line.split()
        records.append((word1, word2, float(score)))
    return records
MEN = read_men()

In [3]:
import cPickle as pickle
voc_men = pickle.load(open("/home/gchrupala/reimaginet/data/MEN/voc.pkl"))
speech_men = pickle.load(open("/home/gchrupala/reimaginet/data/MEN/speech.pkl"))

In [6]:
mfcc_men = [ tts.extract_mfcc(audio) for audio in speech_men ]

In [7]:
from scipy.spatial.distance import cosine
from scipy.stats import spearmanr
def correlation(voc, emb, ratings):
    REP = dict(zip(voc, emb))
    sim = [ 1-cosine(REP[w1],REP[w2]) for (w1,w2,_) in ratings ]
    score = [s for (_,_,s) in ratings]
    return spearmanr(score, sim)

In [8]:
print "epoch r"
for epoch in range(1,11):
    model = task.load("/home/gchrupala/reimaginet/run-speech-vendrov-3/model.{}.zip".format(epoch))
    embeddings = audiovis.encode_sentences(model, mfcc_men)
    r = correlation(voc_men, embeddings, MEN)
    print epoch, r


epoch r
1 SpearmanrResult(correlation=0.13205787557923387, pvalue=3.8164105381963454e-13)
2 SpearmanrResult(correlation=0.15460361689299648, pvalue=1.6557723573170463e-17)
3 SpearmanrResult(correlation=0.20567206862028792, pvalue=5.1217318821138586e-30)
4 SpearmanrResult(correlation=0.18268372712581271, pvalue=6.3180601296737785e-24)
5 SpearmanrResult(correlation=0.19849107405065511, pvalue=4.9487316737990483e-28)
6 SpearmanrResult(correlation=0.20975510599672081, pvalue=3.523457950497284e-31)
7 SpearmanrResult(correlation=0.20593244676011355, pvalue=4.3253337705463053e-30)
8 SpearmanrResult(correlation=0.20930818410043009, pvalue=4.7359476249183197e-31)
9 SpearmanrResult(correlation=0.23208217877191567, pvalue=5.6366169686918221e-38)
10 SpearmanrResult(correlation=0.19105830342685881, pvalue=4.6783786180117401e-26)

In [10]:
print "epoch r"
for epoch in range(1,5):
    model = task.load("/home/gchrupala/reimaginet/run-rhn-coco-9/model.r.e{}.zip".format(epoch))
    embeddings = audiovis.encode_sentences(model, mfcc_men)
    r = correlation(voc_men, embeddings, MEN)
    print epoch, r


epoch r
1 SpearmanrResult(correlation=0.15149958280130493, pvalue=7.2605666248901266e-17)
2 SpearmanrResult(correlation=0.20612591233024949, pvalue=3.8143421638521231e-30)
3 SpearmanrResult(correlation=0.23905382532217584, pvalue=2.980974107447766e-40)
4 SpearmanrResult(correlation=0.2502884277233256, pvalue=4.4426496659501698e-44)

In [ ]: