DTeam 团队日志

Doer、Delivery、Dream

Julia 相似度分析小例

Posted at — Aug 15, 2019 阅读

本文的示例主要来自于《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 语言本身的能力。