本文的示例主要来自于《Julia Programming Projects》中关于相似度计算的例子:
整个解题思路并不复杂,通过计算电影之间的距离获得他们的相似度,距离短的自然相似度最高。在 Julia 中,Distances 包对常见的距离计算算法提供了支持,本文中使用的是 Hamming distance 。
相关的 julia 代码如下:
# 获取数据
julia> movies = readdlm("top_10_movies.tsv", '\t', skipstart=1)
# 另一部已分类电影
julia> nemo = ["Finding Nemo (2003)", 0, 1, 1, 0, 1, 0, 0, 0]
# 计算电影的距离
julia> using Distances
julia> distances = Dict{String, int}()
julia> [distances[movies[i, 1]] = hamming(Int[movies[i, 2:end]...], Int[nemo[2:end]...]) for i in 1:size(movies, 1)]
最后,通过查阅 distances 字典的结果可以了解最相似的电影。这里跟书中不同的是,采用 comprehension 以获得更简洁的代码,有助于大家了解 julia 语言本身的能力。
觉得有帮助的话,不妨考虑购买付费文章来支持我们 🙂 :
付费文章