基于Python大数据机器学习的旅游数据分析可视化推荐系统
项目概述
基于机器学习TF-IDF 算法和SnowNLP的大数据智慧旅游数据分析可视化推荐系统通过数据采集、数据清洗、数据分析、数据可视化的技术,对景区数据进行爬取和收集。以旅游景点数据为基础分析景区热度,挖掘客流量、景区评价等信息,并对分析的结果进行统计。智慧旅游数据分析系统拟实现景区热度、景区展示、游客统计、景区评价、旅游路线等部分。拟定景区热度通过热力图展示,客流量、景区评价情感分析,景点路线推荐等数据通过折线图、饼图等形式呈现出来,推出各景区旅游路线,并将景区的特色场景展现给游客。
技术栈:Python+机器学习TF-IDF 算法+Requests爬虫+Echarts可视化+SnowNLP(情感分析/文本数据清洗/分词/关键词抽取)+Flask
机器学习TF-IDF 算法
什么是TF-IDF?
TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。TF-IDF加权的各种形式常被搜索引擎应用,作为文件与用户查询之间相关程度的度量或评级。除了TF-IDF以外,因特网上的搜索引擎还会使用基于链接分析的评级方法,以确定文件在搜寻结果中出现的顺序。
TF-IDF介绍
TF-IDF实际上是:TF * IDF。主要思想是:如果某个词或短语在一篇文章中出现的频率高(即TF高),并且在其他文章中很少出现(即IDF高),则认为此词或者短语具有很好的类别区分能力,适合用来分类。通俗理解TF-IDF就是:TF刻画了词语t对某篇文档的重要性,IDF刻画了词语t对整个文档集的重要性。
名词解释和数学算法
TF是词频(Term Frequency)表示词条在文本中出现的频率公式

IDF是逆向文件频率(Inverse Document Frequency)某一特定词语的IDF,可以由总文件数目除以包含该词语的文件的数目,再将得到的商取对数得到。如果包含词条t的文档越少,IDF越大,则说明词条具有很好的类别区分能力公式

解释分子|D|:语料库中的文件总数分母:包含词语的文件数目(即文件数目)如果该词语不在语料库中,就会导致分母为零。
TF-IDF实际上是:TF * IDF。某一特定文件内的高词语频率,以及该词语在整个文件集合中的低文件频率,可以产生出高权重的TF-IDF。因此,TF-IDF倾向于过滤掉常见的词语,保留重要的词语。公式:TF-IDF=TF*IDF
TF-IDF应用举例
from jieba.analyse.tfidf import TFIDF
class WordSegmentPOSKeywordExtractor(TFIDF):
def extract_sentence(self, sentence, keyword_ratios=None):
words = .postokenizer.cut(sentence)
freq = {}
seg_words = []
pos_words = []
w words:
wc = w.word
seg_words.append(wc)
pos_words.append(w.flag)
(wc.strip()) < wc.lower() .stop_words:
freq[wc] = freq.get(wc, ) +
keyword_ratios keyword_ratios > :
total = (freq.values())
k freq:
freq[k] *= .idf_freq.get(k, .median_idf) / total
tags = (freq, key=freq.__getitem__, reverse=)
top_k = (keyword_ratios * (seg_words))
tags = tags[:top_k]
key_words = [(word tags) word seg_words]
seg_words, pos_words, key_words
:
seg_words








