import alpenglow.Getter as ag
import pandas as pd
[docs]def readFactorModel(file, dimensions):
"""Utility for reading binary models --saved by online experiments-- into
pandas DataFrames.
"""
r = ag.FactorModelReader()
uif = r.read(file, dimensions)
users = []
user_factors = []
for f in uif.user_factors:
users.append(f.entity)
user_factors.append(f.factors)
items = []
item_factors = []
for f in uif.item_factors:
items.append(f.entity)
item_factors.append(f.factors)
user_df = pd.DataFrame.from_records(user_factors, columns=range(1, dimensions + 1))
user_df['user'] = users
user_df.set_index('user', inplace=True)
item_df = pd.DataFrame.from_records(item_factors, columns=range(1, dimensions + 1))
item_df['item'] = items
item_df.set_index('item', inplace=True)
return (user_df, item_df)