毕业设计:基于python的旅游城市关键词分析系统

本文介绍了如何利用Python进行旅游城市关键词分析和情感挖掘的毕设项目,包括基于SO-PMI算法的情感分析、LDA模型的主题挖掘以及数据集的收集和处理。通过计算评论中的情感倾向,为旅游城市推广策略提供数据支持和满意度评估。
摘要由CSDN通过智能技术生成

前言

       📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。

        🚀对毕设有任何疑问都可以问学长哦!

         选题指导:

        最新最全计算机专业毕设选题精选推荐汇总

        大家好,这里是海浪学长毕设专题,本次分享的课题是

        🎯基于python的旅游城市关键词分析系统

设计思路

一、课题背景与意义

        随着旅游业的迅速发展,了解和分析旅游城市的关键词变得越来越重要。在互联网时代,人们通过搜索引擎和社交媒体平台获取旅游信息,关键词的选择和使用对于旅游城市的宣传和推广具有重要影响。可以帮助旅游从业者和决策者了解旅游城市受欢迎的关键词,分析用户需求和偏好,优化旅游城市的推广策略,提升旅游业的竞争力。

二、算法理论原理

2.1 情感分析

        SO-PMI算法是一种基于共现关系和语义倾向性的方法,用于计算词语情感极性得分。通过比较词语在正面和负面文本中的PMI值差异,SO-PMI可以衡量词语的情感倾向。较高的SO-PMI值表示正面情感倾向,较低的值表示负面情感倾向,接近于0的值表示情感中性或不确定。SO-PMI算法的应用可以提供词语的情感极性评估,对情感分析和情感词典构建具有重要意义。

        通过使用SO-PMI算法和分析贵州旅游景点评论中的词语共现情况,我们可以完成词典的扩充和构建工作。SO-PMI算法利用词语在语料库中的共现关系和语义倾向性,计算词语的情感极性得分,并将其添加到词典中,以丰富情感分析的词汇库。

# 计算词语的PMI值
def calculate_pmi(word, word_frequency, corpus):
    word_count = word_frequency[word]
    total_count = sum(word_frequency.values())
    p_word = word_count / total_count

    bigram_measures = BigramAssocMeasures()
    finder = BigramCollocationFinder.from_words(corpus.words())
    pmi = []
    for bigram, freq in finder.ngram_fd.items():
        if word in bigram:
            p_bigram = freq / total_count
            pmi_value = nltk.metrics.BigramAssocMeasures.pmi(p_word, p_bigram, freq, total_count)
            pmi.append(pmi_value)

    if pmi:
        avg_pmi = sum(pmi) / len(pmi)
        return avg_pmi
    else:
        return 0

        最终,我们可以利用这个扩充的词典来计算用户对旅游景点的情感倾向。通过对评论中的词语进行情感计算,并综合考虑词语的权重和情感极性,可以得出用户对景点的整体情感评价。这些情感得分可以通过多维度的展示方式进行呈现,如词云、情感分布图或情感倾向的统计分析,为后续的满意度分析提供数据支持。

# 构建情感词典
def build_sentiment_dictionary(positive_corpus, negative_corpus, min_pmi_threshold):
    positive_word_frequency = build_word_frequency(positive_corpus)
    negative_word_frequency = build_word_frequency(negative_corpus)

    sentiment_dictionary = {}

    for word, freq in positive_word_frequency.items():
        pmi_pos = calculate_pmi(word, positive_word_frequency, positive_corpus)
        pmi_neg = calculate_pmi(word, negative_word_frequency, negative_corpus)
        sentiment_score = pmi_pos - pmi_neg

        if sentiment_score >= min_pmi_threshold:
            sentiment_dictionary[word] = sentiment_score

    for word, freq in negative_word_frequency.items():
        pmi_pos = calculate_pmi(word, positive_word_frequency, positive_corpus)
        pmi_neg = calculate_pmi(word, negative_word_frequency, negative_corpus)
        sentiment_score = pmi_pos - pmi_neg

        if sentiment_score <= -min_pmi_threshold:
            sentiment_dictionary[word] = sentiment_score

    return sentiment_dictionary

        通过构建语法规则,我们可以对旅游景点评论进行情感得分的计算和基础词典的扩充。具体的计算步骤如下:

  • 预处理和词性标注:对旅游景点评论进行分词,并进行词性标注。根据实际情况,剔除没有情感倾向的词语。
  • 读取相关词典和表格:加载基础词典、否定词表、副词表以及相应的权重值。这些词典和表格将用于后续的情感计算。
  • 匹配情感词语:将预处理后的分词结果与情感词典进行匹配,并标记匹配到的情感词的位置。
  • 分析否定词和程度副词:确定标记的情感词之间的否定词和程度副词的数量、位置和权重。根据具体的词汇信息和权重计算方法,计算情感得分。如果没有否定词和程度副词,直接计算情感得分。

2.2 LDA模型

        LDA模型是一种用于文本数据的主题挖掘方法,通过分析关键词频率和相关性来揭示隐藏主题。在旅游景点评论数据的分析中,我们采取了以下步骤:首先,使用Python读取了旅游景点评论数据并进行了中文分词处理。然后,利用TF-IDF函数计算了关键词的特征值,并设置了主题词数量和停用词等参数。接着,运用LDA模型进行了主题聚类分析,并通过调试主题数和阈值范围选择了最佳的主题数量。最后,利用pyLDAvis可视化工具展示了主题聚类结果,以便更好地理解和分析旅游服务的优劣势。通过这些步骤,我们能够深入挖掘评论数据中的主题信息,为进一步的旅游服务分析提供了有力支持。

        基于LDA模型的主题挖掘在文本数据分析中具有以下优势特点:通过计算关键词的频率和相关性,LDA模型能够从大量文本数据中挖掘出隐藏的主题。它不仅能够自动识别主题,还能够对主题进行聚类和分析,帮助我们理解文本数据的内在结构和内容。此外,LDA模型的可解释性较强,其结果能够以可视化的方式呈现,使得用户能够直观地理解和解释主题聚类的结果。同时,LDA模型还可以应用于大规模文本数据,并具有较好的扩展性和灵活性。

# 中文分词处理
seg_comments = []
for comment in comments:
    seg_comment = jieba.cut(comment)  # 使用jieba分词库进行中文分词
    seg_comments.append(" ".join(seg_comment))  # 将分词结果拼接为字符串

# TF-IDF计算关键词的特征值
tfidf_vectorizer = TfidfVectorizer(stop_words=["这个", "很", "不"])  # 设置停用词
tfidf_matrix = tfidf_vectorizer.fit_transform(seg_comments)

# 获取特征词列表
feature_names = tfidf_vectorizer.get_feature_names()
# 设置主题词数量
num_topics = 5

三、检测的实现

3.1 数据集

        由于网络上没有现有的合适的数据集,我决定自己收集并制作一个全新的数据集。首先,我收集了多个旅游城市的相关文本数据,包括游记、评论、推荐和广告等。然后,我使用网络爬虫技术从旅游网站、社交媒体和搜索引擎中抓取了大量的文本数据。这些数据涵盖了不同旅游城市的各个方面,包括景点介绍、餐饮推荐、住宿体验等。接下来,我对这些数据进行了清洗、去重和预处理,以确保数据的质量和一致性。通过这些步骤,我得到了一个真实、多样化且适用于旅游城市关键词分析的数据集。

3.2 实验环境搭建

        系统采用了Gephi和Python等软件和计算机语言技术,结合可视化技术,对旅游景点评论数据进行了分析和挖掘。首先,通过Python实现了数据的读取和预处理,包括中文分词处理和计算关键词的特征值。然后,利用Gephi等可视化工具,将分析结果以直观的图形方式展示出来,使用户能够更好地理解和解释主题聚类的结果。

3.3 实验及结果分析

        满意度分析方法在保留传统满意度理论核心的基础上,加强了消费者反馈的影响程度,以游客的积极情感倾向占比作为衡量满意度的媒介。通过量化形式直观地反映游客对旅游体验的满意程度,方便各景区和地市州之间的比较分析。从消费者的角度来看,评论是表达交易感受并给出评分的方式,而积极、消极和中性感受的区分相对较难,但分值是具体的量化分析,能够直接反映产品的好坏,旅游评论也是如此。因此,本实验以游客需求为核心,通过计算积极情感得分占比来评估满意度水平,以反映各地市州之间的差距。这种方法使满意度分析更加客观、可量化,并提供了一个有效的比较标准。

相关代码示例:

# 定义积极、消极和中性情感词列表
positive_words = ["美", "优美", "值得"]
negative_words = ["差", "不推荐", "不便利", "难走"]

# 初始化积极和消极情感得分
positive_score = 0
negative_score = 0

# 遍历评论列表,计算积极和消极情感得分
for comment in comments:
    for word in positive_words:
        if word in comment:
            positive_score += 1
            break
    for word in negative_words:
        if word in comment:
            negative_score += 1
            break

# 计算积极情感得分占比
total_score = positive_score + negative_score
positive_ratio = positive_score / total_score * 100

# 输出积极情感得分占比
print("积极情感得分占比: %.2f%%" % positive_ratio)

实现效果图样例:

创作不易,欢迎点赞、关注、收藏。

毕设帮助,疑难解答,欢迎打扰!

最后

### 回答1: So-PMI扩充情感词典程序是一种用于增强情感词典的方法,它能够自动地从大规模的文本数据中,通过词语的共现频率,计算出词语之间的关联程度,以此来补充情感词典中的缺陷。 该程序的主要思路是以“so-pmi”(Simpson overlap Pointwise Mutual Information)算法为基础,通过计算文本中情感词汇与其他词语之间的共现频率和相关性,然后通过加强相关性强的词内在的情感色彩,进而增强情感词典的效力。 该程序的应用场景非常广泛,包括社交媒体等大量文本数据的情感分析,以及服务于广告等领域的情感定位,通过不断更新和完善情感词典,寻找出最能反映用户情感的词汇,为营销者提供更加精准的关键词。 在实际应用中,拥有一个完善的情感词典对于情感分析的准确性和效率都非常重要,而So-PMI扩充情感词典程序就为这一问题提供了一种新的解决方案。通过该程序的不断优化和迭代,将确保情感词典的不断完善和更新,为用户提供更加精准、高效、全面的情感分析服务。 ### 回答2: So-PMI是基于点互信息(PMI算法的情感词典扩充程序,用于识别文本中的情感极性(正面或负面),并且可以将其扩充到新的词汇当中。 该程序的工作原理是分析单词之间在语料库中出现的频率,计算出它们之间的PMI值。如果某个词汇与正面评价或负面评价词汇的PMI值比其他一般词汇高,那么该词汇很有可能与情感极性相关。由此,程序可以通过PMI计算的方式来标记新的情感词。 扩充了情感词典之后,So-PMI程序可以更好地理解文本的情感含义,并提供更准确的情感分析。除了文本分析,So-PMI还可以应用于情感识别、舆情分析、社会媒体分析等多个领域。 总之,so-PMI扩充情感词典程序是一种有效的情感分析工具,可以提高文本情感分析的准确性和覆盖面,具有广泛的应用前景。 ### 回答3: So-PMI是一种基于情感词典的自然语言处理技术,其主要应用于对文本情感分析和情感分类。在传统的情感分析方法中,情感词典是关键的组成部分,通过词典中预先定义好的情感词进行情感评估。然而,传统的方法只考虑了单一的情感极性,难以识别多义词的不同情感,也无法识别出带有强烈或微弱情感的词语。特别是在面对语言的多样性和情感隐含的情况下,传统方法可能会遇到困难。 So-PMI方法则通过一种基于单词对之间PMI(点互信息)的计算方法,对情感词典进行扩展和更新。它利用论坛和新闻社交媒体的文本数据,将同一单词和情感词的共现频率和单独出现频率相比较,并计算单词与情感词间的PMI指标。这种方法解决了传统情感词典中存在的单一情感词问题,同时区分不同的极性和强度。因此,So-PMI扩充的情感词典更加准确和全面,更适用于不同场景下的情感分析。 总之,So-PMI扩充情感词典程序是一种基于单词对之间PMI的计算方法,能够有效改善传统情感分析方法的不足,提高情感分析的准确性和细粒度,并且已经在自然语言处理领域得到了广泛应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值