A framework for multi-valued categorical attributes In the scenario in which I'm working each entity could be represented in terms of N distinct properties that I will call p1, p2, ..., pn.
For each of them, an entity, can have its specific range of values for a single property.
An entity's property couldn't have any value associated to it.
Formally speaking, given an entity e and calling pk a specific property associated to e, it can have nk values associated (nk >= 0).
This is a brief example:
<entity 1>
director: Tarantino
distributor: Miramax
producer: Bender
starring: Fox, Hannah, Dreyfus, Thurman

<entity 2>
director: Tarantino
distributor: Miramax
producer: Bender
starring: Travolta, Jackson, Thurman

I'm not able to understand how to represent these entities in order to be used by a machine learning algorithm. I have seen some others that transform multi-valued categorical attributes in multiple binary attributes. I think that in this case is fundamental to analyze each property exactly as it is, with all its values. 
After the creation of this method, I will be able to represent all the entities in my dataset. 
Supposing that, in this scenario, there are users that express a preference towards some of the entities (only a binary preference e.g., Tom likes entity 1 and so on). Using a machine learning algorithm, I would like to generate a model for each user in order to be able to understand if a new entity (a new film) could or not be liked by that user (this can be expressed with a value in a range between 0-1). 
At this point I have two distinct questions that I will report here:


*

*What could be a proper way to represent the dataset entities?

*What could be a proper machine learning algorithm which is able to generate a model using the entities that I have?

 A: The most standard way of dealing with variables having an array of values is using dummy variables, i.e. creating a column for each possibility and assigning 0 and 1 depending if a n attribute is absent or present, respectively.
See for example how to do it in Pandas (if you are using Python) and Generate a dummy-variable in R.
The good thing is that you can treat 0 and 1 as categorical (e.g. for decision trees or random forests) or numerical (for various regressions, k-nearest neighbors, principal component analysis, k-mean, etc). Sometimes you need to convert all variables to numerical, even if there is only a single attribute per entry.
The bad thing is that if there are many options, either you need to restrict yourself to only the most common or perform some dimensional reduction with the principal component analysis.
The ugly thing is that even if you are using categorical-only variables, then you typically present single-valued variables with text/id, while multi-valued with dummy variables.
