Similarity.Cosine (Similarity v0.5.1)

Copy Markdown View Source

A struct that can be used to accumulate ids & attributes and calculate similarity between them.

Summary

Functions

Puts a new id with attributes into %Cosine{}.map and returns %Cosine{} struct.

Returns Similarity.cosine_srol/2 similarity between two pairs of ids (id_a, id_b) in %Cosine{}.

Returns a new %Cosine{} struct to be first used with add/3 function

Returns a stream of all unique pairs of similarities in %Cosine{}.map

Functions

add(struct, id, attributes)

Puts a new id with attributes into %Cosine{}.map and returns %Cosine{} struct.

Examples

s = Similarity.Cosine.new
s = s |> Similarity.Cosine.add("barna", [{"n_of_bacons", 3}, {"hair_color_r", 124}, {"hair_color_g", 188}, {"hair_color_b", 11}])

between(cosine, id_a, id_b)

Returns Similarity.cosine_srol/2 similarity between two pairs of ids (id_a, id_b) in %Cosine{}.

Returns 0.0 when the entries have no attributes in common. Raises ArgumentError when either ID is missing.

Examples

s = Similarity.Cosine.new
s = s |> Similarity.Cosine.add("barna", [{"n_of_bacons", 3}, {"hair_color_r", 124}, {"hair_color_g", 188}, {"hair_color_b", 11}])
s = s |> Similarity.Cosine.add("somebody", [{"n_of_bacons", 0}, {"hair_color_r", 222}, {"hair_color_g", 62}, {"hair_color_b", 11}])
s |> Similarity.Cosine.between("barna", "somebody")

new()

Returns a new %Cosine{} struct to be first used with add/3 function

stream(cosine)

Returns a stream of all unique pairs of similarities in %Cosine{}.map

Examples

s = Similarity.Cosine.new
s = s |> Similarity.Cosine.add("barna", [{"n_of_bacons", 3}, {"hair_color_r", 124}, {"hair_color_g", 188}, {"hair_color_b", 11}])
s = s |> Similarity.Cosine.add("somebody", [{"n_of_bacons", 0}, {"hair_color_r", 222}, {"hair_color_g", 62}, {"hair_color_b", 11}])
Similarity.Cosine.stream(s)