simulation.user package¶
Subpackages¶
Submodules¶
simulation.user.human_user module¶
Human (“interactive”) User¶
Author: Krisztian Balog, Shuo Zhang
-
class
simulation.user.human_user.HumanUser¶ Bases:
simulation.user.user.UserHuman user
-
generate_response(utterance)¶ Generates response based on the received system utterance.
Parameters: utterance – system utterance Returns: response
-
init_dialog()¶ Initiates dialog with the conversational system.
Returns: response
-
simulation.user.simulated_user module¶
User Simulator Class¶
This class is a user simulation client for interating with chatbots.
Author: Shuo Zhang, Krisztian Balog
-
class
simulation.user.simulated_user.SimulatedUser(persona, preferences)¶ Bases:
simulation.user.user.UserSimulated user
-
generate_response(utterance, persona=None)¶ Generates response based on the received system utterance.
Parameters: - utterance – system utterance
- persona – persona
Returns:
-
init_dialog()¶ Initiates dialog with the conversational system.
Returns: initial utterance
-
print_user()¶ Prints user profile.
Returns: None
-
update_persona(movie, rate)¶ Update pereference by adding new movie
Parameters: - movie – the recognized new movie
- rate – the movie rate
-
user()¶ Returns user profile in JSON format.
Returns: user profile in JSON format
-
simulation.user.user module¶
Base (abstract) user class¶
Author: Krisztian Balog, Shuo Zhang
-
class
simulation.user.user.User¶ Bases:
abc.ABCBase user class.
-
generate_response(utterance, persona=None)¶ Generates response based on the received system utterance.
Parameters: - utterance – system utterance
- persona – persona
Returns:
-
init_dialog()¶ Initiates dialog with the conversational system.
Returns:
-
simulation.user.user_generator module¶
Initial User Profile Generator¶
Generate initial user profiles based on actual movielens users
- User profile logic:
- Persona:
- empty for now.
- Preferences:
- Sample from the real users using MovieLens 20M Dataset
Author: Shuo Zhang
-
class
simulation.user.user_generator.UserGenerator¶ Bases:
objectClass for generating random users.
-
initial(num_user=5, num_movie=8, num_genre=8, if_title=True)¶ Creates example initial user profiles.
Parameters: - num_user – number of examples users
- num_movie – number of movies with references
- num_genre – number of geners with references
- if_title – to dispplay movie id or movie title
Returns: all users
-
static
movies()¶ Loads movies with genres.
Returns: movie db
-
static
rate_pre(rate, upper_limit=4, lower_limit=2)¶ Rates the preference.
Parameters: - rate – movie rate
- upper_limit – threshold of being positive
- lower_limit – threshold of being negative
Returns: rating
-
rates(if_title=True)¶ Dumps the ratings to get genres preferences over files.
genre_preference = sum preference_of_movie_has_this_genre / num_of_movie_has_this genre
Parameters: if_title – to display movie id or movie title Returns: all user ratings
-
static
samp(pro, dist, attribute)¶ Based on random generated probability, determine the persona category.
Parameters: - pro – probablity
- dist – probability distribution
- attribute – attribute
Returns: persona category
-