机器学习入门- 聚类和相似度(文档检索)

如何测量相似度?

如何在文章中搜索?

用于测量相似度的单词计数表示

机器学习入门- 聚类和相似度(文档检索)_第1张图片

测量相似度

机器学习入门- 聚类和相似度(文档检索)_第2张图片
机器学习入门- 聚类和相似度(文档检索)_第3张图片

单次计数的问题-文档长度-解决:归一化向量

文档复制两倍->相似度增加4倍
机器学习入门- 聚类和相似度(文档检索)_第4张图片

解决方法:归一(将不同长度文章置于平等的地位)

机器学习入门- 聚类和相似度(文档检索)_第5张图片

应用TF-IDF对于重要单词进行优先级排序

Key Word

机器学习入门- 聚类和相似度(文档检索)_第6张图片

TF-IDF文档表示方式

机器学习入门- 聚类和相似度(文档检索)_第7张图片

检索相似文档

最近邻域检索

机器学习入门- 聚类和相似度(文档检索)_第8张图片

1-最邻近

机器学习入门- 聚类和相似度(文档检索)_第9张图片

k-最邻近

机器学习入门- 聚类和相似度(文档检索)_第10张图片

文档聚类

根据主题对文档分类

机器学习入门- 聚类和相似度(文档检索)_第11张图片

聚类->事后回溯

机器学习入门- 聚类和相似度(文档检索)_第12张图片

机器学习入门- 聚类和相似度(文档检索)_第13张图片

聚类算法(k-均值)

机器学习入门- 聚类和相似度(文档检索)_第14张图片

其他应用

  • 图片搜索
  • 通过病况来分类病人
  • 产品推荐(购买历史->商品类别,用户群体)
  • 搜索优化

机器学习入门- 聚类和相似度(文档检索)_第15张图片

机器学习入门- 聚类和相似度(文档检索)_第16张图片

机器学习入门- 聚类和相似度(文档检索)_第17张图片

机器学习入门- 聚类和相似度(文档检索)_第18张图片

机器学习入门- 聚类和相似度(文档检索)_第19张图片

对wiki人物相似度聚类分析

import graphlab
people = graphlab.SFrame('people_wiki.gl/')
len(people)
obama = people[people['name'] == 'Barack Obama']
clooney = people[people['name'] == 'George Clooney']
探索单次计数
obama['word_count'] = graphlab.text_analytics.count_words(obama['text'])
print obama['word_count']
单次计数排序,[[]]
obama_word_count_table = obama[['word_count']].stack['word_count',new_column_name=['word','count']]
obama_word_count_table.head()
obama_word_count_table.sort('count',ascending=False)

机器学习入门- 聚类和相似度(文档检索)_第20张图片

计算语料库中的TF-IDF
people['word_count'] = graphlab.text_analytics.count_words(people['text'])

people.head()

tfidf = graphlab.text_analytics.tf_idf(people['word_count'])

tfidf

people['tfidf'] = tfidf

检查奥巴马文章中的TF-IDF

obama = people[people['name'] == 'Barack Obama']

obama[['tfidf']].stack('tfidf',new_column_name = ['word','tfidf']).soft('tfidf',ascending=False) 

机器学习入门- 聚类和相似度(文档检索)_第21张图片

机器学习入门- 聚类和相似度(文档检索)_第22张图片

计算相似度(距离)
obama
clinton = people[people['name'] == 'Bill Clinton' ]
beckham = people[people['name'] == 'David Beckham']
奥巴马和克林顿相似度(距离)
graphlab.distances.consine(obama['tfidf'][0],clinton['tfidf'][0])
奥巴马和贝克汉姆相似度
graphlab.distances.consine(obama['tfidf'][0],beckham['tfidf'][0])
构建最近邻域模型
knn_model = graphlab.nearest_neighbors.create[people,features=['tfidf'],label='name']
使用模型检索
knn_model.query[obama]

机器学习入门- 聚类和相似度(文档检索)_第23张图片

swift = people[people['name'] == 'Taylor Swift']
knn_model.query(swift)

你可能感兴趣的:(机器学习,文档,机器学习,class,搜索,算法)